summaryrefslogtreecommitdiff
path: root/sys-fs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-fs
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-fs')
-rw-r--r--sys-fs/archivemount/Manifest11
-rw-r--r--sys-fs/archivemount/archivemount-0.8.3.ebuild17
-rw-r--r--sys-fs/archivemount/archivemount-0.8.4.ebuild17
-rw-r--r--sys-fs/archivemount/archivemount-0.8.5.ebuild17
-rw-r--r--sys-fs/archivemount/archivemount-0.8.7.ebuild17
-rw-r--r--sys-fs/archivemount/metadata.xml8
-rw-r--r--sys-fs/arm-fdisk/Manifest6
-rw-r--r--sys-fs/arm-fdisk/arm-fdisk-3.0.6-r1.ebuild43
-rw-r--r--sys-fs/arm-fdisk/metadata.xml8
-rw-r--r--sys-fs/atari-fdisk/Manifest7
-rw-r--r--sys-fs/atari-fdisk/atari-fdisk-0.7.1.5.4.ebuild49
-rw-r--r--sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-gcc-5-inline.patch22
-rw-r--r--sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-prompt-logic.patch15
-rw-r--r--sys-fs/atari-fdisk/metadata.xml7
-rw-r--r--sys-fs/aufs-headers/Manifest15
-rw-r--r--sys-fs/aufs-headers/aufs-headers-3.19_p20150323.ebuild27
-rw-r--r--sys-fs/aufs-headers/aufs-headers-3.19_p20150420.ebuild27
-rw-r--r--sys-fs/aufs-headers/aufs-headers-4.0_p20150420.ebuild27
-rw-r--r--sys-fs/aufs-headers/aufs-headers-4.0_p20151116.ebuild27
-rw-r--r--sys-fs/aufs-headers/aufs-headers-4.1_p20161010.ebuild27
-rw-r--r--sys-fs/aufs-headers/aufs-headers-4.1_p20170130.ebuild27
-rw-r--r--sys-fs/aufs-headers/metadata.xml10
-rw-r--r--sys-fs/aufs-util/Manifest16
-rw-r--r--sys-fs/aufs-util/aufs-util-3.19_p20150323.ebuild45
-rw-r--r--sys-fs/aufs-util/aufs-util-3.19_p20150420.ebuild45
-rw-r--r--sys-fs/aufs-util/aufs-util-4.0_p20150420.ebuild46
-rw-r--r--sys-fs/aufs-util/aufs-util-4.0_p20151116.ebuild45
-rw-r--r--sys-fs/aufs-util/aufs-util-4.1_p20161010.ebuild46
-rw-r--r--sys-fs/aufs-util/aufs-util-4.1_p20170130.ebuild46
-rw-r--r--sys-fs/aufs-util/files/aufs-util-4.0_p20150420-version.patch16
-rw-r--r--sys-fs/aufs-util/metadata.xml10
-rw-r--r--sys-fs/aufs3/Manifest15
-rw-r--r--sys-fs/aufs3/aufs3-3_p20160219.ebuild184
-rw-r--r--sys-fs/aufs3/aufs3-3_p20160223.ebuild184
-rw-r--r--sys-fs/aufs3/aufs3-3_p20160627.ebuild184
-rw-r--r--sys-fs/aufs3/aufs3-3_p20160815.ebuild184
-rw-r--r--sys-fs/aufs3/aufs3-3_p20160822.ebuild184
-rw-r--r--sys-fs/aufs3/files/README.gentoo20
-rw-r--r--sys-fs/aufs3/files/pax-3.11.patch89
-rw-r--r--sys-fs/aufs3/metadata.xml20
-rw-r--r--sys-fs/aufs4/Manifest25
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20160219.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20160223.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20160627.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20160815.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20161010.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20161219.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20170130.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20170220.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20170313.ebuild184
-rw-r--r--sys-fs/aufs4/aufs4-0_pre20170612.ebuild184
-rw-r--r--sys-fs/aufs4/files/README.gentoo20
-rw-r--r--sys-fs/aufs4/files/pax-4.patch89
-rw-r--r--sys-fs/aufs4/metadata.xml20
-rw-r--r--sys-fs/autorun/Manifest6
-rw-r--r--sys-fs/autorun/autorun-3.17.ebuild35
-rw-r--r--sys-fs/autorun/files/autorun-3.17-headers.patch13
-rw-r--r--sys-fs/autorun/metadata.xml11
-rw-r--r--sys-fs/avfs/Manifest11
-rw-r--r--sys-fs/avfs/avfs-1.0.1.ebuild60
-rw-r--r--sys-fs/avfs/avfs-1.0.2.ebuild60
-rw-r--r--sys-fs/avfs/avfs-1.0.3.ebuild60
-rw-r--r--sys-fs/avfs/avfs-1.0.4.ebuild62
-rw-r--r--sys-fs/avfs/metadata.xml8
-rw-r--r--sys-fs/bashmount/Manifest5
-rw-r--r--sys-fs/bashmount/bashmount-3.2.0.ebuild29
-rw-r--r--sys-fs/bashmount/metadata.xml8
-rw-r--r--sys-fs/bcache-tools/Manifest17
-rw-r--r--sys-fs/bcache-tools/bcache-tools-1.0.5.ebuild51
-rw-r--r--sys-fs/bcache-tools/bcache-tools-1.0.8.ebuild51
-rw-r--r--sys-fs/bcache-tools/bcache-tools-1.0.8_p20140220-r1.ebuild77
-rw-r--r--sys-fs/bcache-tools/bcache-tools-9999.ebuild57
-rw-r--r--sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-status-python3.patch8
-rw-r--r--sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-crc64.patch55
-rw-r--r--sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-noprobe.patch32
-rw-r--r--sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-probe-bcache-underlinking.patch13
-rw-r--r--sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-20131018-fedconf.patch5
-rw-r--r--sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-status-20130826-man.patch49
-rw-r--r--sys-fs/bcache-tools/metadata.xml10
-rw-r--r--sys-fs/bedup/Manifest6
-rw-r--r--sys-fs/bedup/bedup-0.10.1.ebuild26
-rw-r--r--sys-fs/bedup/bedup-9999.ebuild38
-rw-r--r--sys-fs/bedup/metadata.xml11
-rw-r--r--sys-fs/bindfs/Manifest7
-rw-r--r--sys-fs/bindfs/bindfs-1.13.6.ebuild23
-rw-r--r--sys-fs/bindfs/bindfs-1.13.7.ebuild23
-rw-r--r--sys-fs/bindfs/metadata.xml15
-rw-r--r--sys-fs/btrfs-progs/Manifest55
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-3.14.2.ebuild61
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-3.16.2.ebuild62
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-3.17.3.ebuild62
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-3.18.2.ebuild62
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-3.19.1.ebuild79
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.0.1.ebuild79
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.1.2.ebuild80
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.10.2.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.11.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.12.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.13.1.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.13.2.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.2.2.ebuild80
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.3.1.ebuild96
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.4.1.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.5.3.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.6.1.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.7.3.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.8.1-r1.ebuild95
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.8.3.ebuild95
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.8.4.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.8.5.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.9.1.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-4.9.ebuild93
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-9999.ebuild93
-rw-r--r--sys-fs/btrfs-progs/files/btrfs-progs-3.14.2-install-man.patch13
-rw-r--r--sys-fs/btrfs-progs/files/btrfs-progs-4.8.1-fix-ioctl.h36
-rw-r--r--sys-fs/btrfs-progs/files/btrfs-progs-4.8.3-fix-ioctl-again.patch9
-rw-r--r--sys-fs/btrfs-progs/metadata.xml20
-rw-r--r--sys-fs/btrfsmaintenance/Manifest3
-rw-r--r--sys-fs/btrfsmaintenance/btrfsmaintenance-0.3.1.ebuild45
-rw-r--r--sys-fs/btrfsmaintenance/metadata.xml15
-rw-r--r--sys-fs/cachefilesd/Manifest12
-rw-r--r--sys-fs/cachefilesd/cachefilesd-0.10.5-r4.ebuild56
-rw-r--r--sys-fs/cachefilesd/cachefilesd-0.10.9.ebuild57
-rw-r--r--sys-fs/cachefilesd/files/cachefilesd-0.10.4-makefile.patch24
-rw-r--r--sys-fs/cachefilesd/files/cachefilesd-0.10.9-makefile.patch19
-rw-r--r--sys-fs/cachefilesd/files/cachefilesd-3.init55
-rw-r--r--sys-fs/cachefilesd/files/cachefilesd-tmpfiles.d1
-rw-r--r--sys-fs/cachefilesd/files/cachefilesd.conf7
-rw-r--r--sys-fs/cachefilesd/metadata.xml8
-rw-r--r--sys-fs/clamfs/Manifest9
-rw-r--r--sys-fs/clamfs/clamfs-1.0.1-r2.ebuild42
-rw-r--r--sys-fs/clamfs/files/clamfs-1.0.1-gcc45.patch15
-rw-r--r--sys-fs/clamfs/files/clamfs-1.0.1-gentoo.patch12
-rw-r--r--sys-fs/clamfs/files/clamfs.confd1
-rw-r--r--sys-fs/clamfs/files/clamfs.initd21
-rw-r--r--sys-fs/clamfs/metadata.xml13
-rw-r--r--sys-fs/cloudfuse/Manifest5
-rw-r--r--sys-fs/cloudfuse/cloudfuse-1.0.ebuild23
-rw-r--r--sys-fs/cloudfuse/metadata.xml17
-rw-r--r--sys-fs/copyfs/Manifest7
-rw-r--r--sys-fs/copyfs/copyfs-1.0.1.ebuild43
-rw-r--r--sys-fs/copyfs/files/copyfs-1.0-unlink.patch158
-rw-r--r--sys-fs/copyfs/files/copyfs-1.0.1-gentoo.patch46
-rw-r--r--sys-fs/copyfs/metadata.xml5
-rw-r--r--sys-fs/cramfs/Manifest5
-rw-r--r--sys-fs/cramfs/cramfs-1.1.ebuild32
-rw-r--r--sys-fs/cramfs/metadata.xml11
-rw-r--r--sys-fs/cryfs/Manifest4
-rw-r--r--sys-fs/cryfs/cryfs-0.9.7.ebuild79
-rw-r--r--sys-fs/cryfs/cryfs-9999.ebuild79
-rw-r--r--sys-fs/cryfs/metadata.xml14
-rw-r--r--sys-fs/cryptmount/Manifest3
-rw-r--r--sys-fs/cryptmount/cryptmount-5.2.2.ebuild51
-rw-r--r--sys-fs/cryptmount/metadata.xml11
-rw-r--r--sys-fs/cryptsetup/Manifest10
-rw-r--r--sys-fs/cryptsetup/cryptsetup-1.7.4.ebuild126
-rw-r--r--sys-fs/cryptsetup/cryptsetup-1.7.5.ebuild126
-rw-r--r--sys-fs/cryptsetup/files/1.6.7-dmcrypt.confd111
-rw-r--r--sys-fs/cryptsetup/files/1.6.7-dmcrypt.rc339
-rw-r--r--sys-fs/cryptsetup/files/setup-1.7.0.py21
-rw-r--r--sys-fs/cryptsetup/metadata.xml20
-rw-r--r--sys-fs/ctmg/Manifest4
-rw-r--r--sys-fs/ctmg/ctmg-1.2.ebuild22
-rw-r--r--sys-fs/ctmg/metadata.xml8
-rw-r--r--sys-fs/davl/Manifest8
-rw-r--r--sys-fs/davl/davl-1.2.4-r1.ebuild35
-rw-r--r--sys-fs/davl/davl-1.2.4-r2.ebuild34
-rw-r--r--sys-fs/davl/files/davl-1.2.1-asneeded.patch41
-rw-r--r--sys-fs/davl/files/davl-1.2.4-fragment.patch20
-rw-r--r--sys-fs/davl/metadata.xml8
-rw-r--r--sys-fs/dd-rescue/Manifest11
-rw-r--r--sys-fs/dd-rescue/dd-rescue-1.46.ebuild83
-rw-r--r--sys-fs/dd-rescue/dd-rescue-1.99.5.ebuild86
-rw-r--r--sys-fs/dd-rescue/dd-rescue-1.99.6.ebuild90
-rw-r--r--sys-fs/dd-rescue/files/dd_rescue-1.99-musl.patch90
-rw-r--r--sys-fs/dd-rescue/files/dd_rescue-1.99-test_fix.patch11
-rw-r--r--sys-fs/dd-rescue/metadata.xml8
-rw-r--r--sys-fs/ddrescue/Manifest7
-rw-r--r--sys-fs/ddrescue/ddrescue-1.21-r1.ebuild39
-rw-r--r--sys-fs/ddrescue/ddrescue-1.22-r1.ebuild39
-rw-r--r--sys-fs/ddrescue/metadata.xml8
-rw-r--r--sys-fs/devfsd/Manifest11
-rw-r--r--sys-fs/devfsd/devfsd-1.3.25-r9.ebuild59
-rw-r--r--sys-fs/devfsd/files/devfs-start.sh28
-rw-r--r--sys-fs/devfsd/files/devfs-stop.sh16
-rw-r--r--sys-fs/devfsd/files/devfsd-1.3.25-kernel-2.5.patch131
-rw-r--r--sys-fs/devfsd/files/devfsd-1.3.25-no-nis.patch69
-rw-r--r--sys-fs/devfsd/files/devfsd-1.3.25-pic.patch16
-rw-r--r--sys-fs/devfsd/files/devfsd.conf138
-rw-r--r--sys-fs/devfsd/metadata.xml8
-rw-r--r--sys-fs/dfc/Manifest5
-rw-r--r--sys-fs/dfc/dfc-3.0.5-r1.ebuild35
-rw-r--r--sys-fs/dfc/metadata.xml8
-rw-r--r--sys-fs/diskdev_cmds/Manifest9
-rw-r--r--sys-fs/diskdev_cmds/diskdev_cmds-332.14.ebuild40
-rw-r--r--sys-fs/diskdev_cmds/diskdev_cmds-332.14_p1.ebuild46
-rw-r--r--sys-fs/diskdev_cmds/files/diskdev_cmds-respect-cflags.patch9
-rw-r--r--sys-fs/diskdev_cmds/metadata.xml12
-rw-r--r--sys-fs/dislocker/Manifest5
-rw-r--r--sys-fs/dislocker/dislocker-0.7.1-r1.ebuild47
-rw-r--r--sys-fs/dislocker/dislocker-9999.ebuild47
-rw-r--r--sys-fs/dislocker/metadata.xml11
-rw-r--r--sys-fs/dmg2img/Manifest9
-rw-r--r--sys-fs/dmg2img/dmg2img-1.6.5.ebuild35
-rw-r--r--sys-fs/dmg2img/dmg2img-1.6.6.ebuild35
-rw-r--r--sys-fs/dmg2img/dmg2img-1.6.7.ebuild35
-rw-r--r--sys-fs/dmg2img/metadata.xml12
-rw-r--r--sys-fs/dmraid/Manifest9
-rw-r--r--sys-fs/dmraid/dmraid-1.0.0_rc16-r3.ebuild100
-rw-r--r--sys-fs/dmraid/files/dmraid-1.0.0_rc16-parallel-make.patch11
-rw-r--r--sys-fs/dmraid/files/dmraid-1.0.0_rc16-return-all-sets.patch11
-rw-r--r--sys-fs/dmraid/files/dmraid-1.0.0_rc16-static-build-fixes.patch110
-rw-r--r--sys-fs/dmraid/files/dmraid-1.0.0_rc16-undo-p-rename.patch13
-rw-r--r--sys-fs/dmraid/metadata.xml16
-rw-r--r--sys-fs/dosfstools/Manifest8
-rw-r--r--sys-fs/dosfstools/dosfstools-4.0-r1.ebuild47
-rw-r--r--sys-fs/dosfstools/dosfstools-4.1.ebuild37
-rw-r--r--sys-fs/dosfstools/files/dosfstools-4.0-udevlibs.patch36
-rw-r--r--sys-fs/dosfstools/metadata.xml14
-rw-r--r--sys-fs/duperemove/Manifest18
-rw-r--r--sys-fs/duperemove/duperemove-0.09.1.ebuild25
-rw-r--r--sys-fs/duperemove/duperemove-0.09.2.ebuild35
-rw-r--r--sys-fs/duperemove/duperemove-0.09.3.ebuild30
-rw-r--r--sys-fs/duperemove/duperemove-0.09.4.ebuild30
-rw-r--r--sys-fs/duperemove/duperemove-0.09.5.ebuild30
-rw-r--r--sys-fs/duperemove/duperemove-0.10.ebuild33
-rw-r--r--sys-fs/duperemove/duperemove-0.11_beta4.ebuild34
-rw-r--r--sys-fs/duperemove/files/duperemove-0.11_beta4-sysmacros.patch10
-rw-r--r--sys-fs/duperemove/metadata.xml15
-rw-r--r--sys-fs/e2fsprogs/Manifest18
-rw-r--r--sys-fs/e2fsprogs/e2fsprogs-1.43.3-r1.ebuild139
-rw-r--r--sys-fs/e2fsprogs/e2fsprogs-1.43.5.ebuild135
-rw-r--r--sys-fs/e2fsprogs/e2fsprogs-1.43.6.ebuild135
-rw-r--r--sys-fs/e2fsprogs/files/e2fsck.conf6
-rw-r--r--sys-fs/e2fsprogs/files/e2fsprogs-1.40-fbsd.patch11
-rw-r--r--sys-fs/e2fsprogs/files/e2fsprogs-1.41.8-makefile.patch10
-rw-r--r--sys-fs/e2fsprogs/files/e2fsprogs-1.42.13-fix-build-cflags.patch13
-rw-r--r--sys-fs/e2fsprogs/files/e2fsprogs-1.43-sysmacros.patch125
-rw-r--r--sys-fs/e2fsprogs/files/fsck_ext2fs.896
-rw-r--r--sys-fs/e2fsprogs/files/fsck_ext2fs.c147
-rw-r--r--sys-fs/e2fsprogs/metadata.xml15
-rw-r--r--sys-fs/e2tools/Manifest7
-rw-r--r--sys-fs/e2tools/e2tools-0.0.16.ebuild32
-rw-r--r--sys-fs/e2tools/files/e2tools-0.0.16-prototypes.patch167
-rw-r--r--sys-fs/e2tools/files/e2tools-0.0.16-qsort-const.patch102
-rw-r--r--sys-fs/e2tools/metadata.xml8
-rw-r--r--sys-fs/e4rat/Manifest11
-rw-r--r--sys-fs/e4rat/e4rat-0.2.4_pre20141201-r1.ebuild63
-rw-r--r--sys-fs/e4rat/e4rat-0.2.4_pre20141201.ebuild62
-rw-r--r--sys-fs/e4rat/files/e4rat-0.2.2-libdir.patch14
-rw-r--r--sys-fs/e4rat/files/e4rat-0.2.2-shared-build.patch74
-rw-r--r--sys-fs/e4rat/files/e4rat-0.2.4-gcc6.patch11
-rw-r--r--sys-fs/e4rat/files/e4rat-0.2.4-strdup.patch41
-rw-r--r--sys-fs/e4rat/files/e4rat-0.2.4-sysmacros.patch13
-rw-r--r--sys-fs/e4rat/metadata.xml11
-rw-r--r--sys-fs/ecryptfs-utils/Manifest5
-rw-r--r--sys-fs/ecryptfs-utils/ecryptfs-utils-108-r1.ebuild82
-rw-r--r--sys-fs/ecryptfs-utils/metadata.xml19
-rw-r--r--sys-fs/encfs/Manifest10
-rw-r--r--sys-fs/encfs/encfs-1.7.5.ebuild43
-rw-r--r--sys-fs/encfs/encfs-1.8.1.ebuild49
-rw-r--r--sys-fs/encfs/encfs-1.9.2.ebuild34
-rw-r--r--sys-fs/encfs/files/encfs-1.7.5-fix-pod.patch16
-rw-r--r--sys-fs/encfs/metadata.xml12
-rw-r--r--sys-fs/etcd-fs/Manifest7
-rw-r--r--sys-fs/etcd-fs/etcd-fs-0_p20140620.ebuild34
-rw-r--r--sys-fs/etcd-fs/etcd-fs-0_p20170517.ebuild34
-rw-r--r--sys-fs/etcd-fs/metadata.xml13
-rw-r--r--sys-fs/eudev/Manifest24
-rw-r--r--sys-fs/eudev/eudev-1.10-r2.ebuild298
-rw-r--r--sys-fs/eudev/eudev-1.9-r2.ebuild300
-rw-r--r--sys-fs/eudev/eudev-3.1.2.ebuild271
-rw-r--r--sys-fs/eudev/eudev-3.1.5.ebuild240
-rw-r--r--sys-fs/eudev/eudev-3.2.2-r1.ebuild242
-rw-r--r--sys-fs/eudev/eudev-3.2.2.ebuild240
-rw-r--r--sys-fs/eudev/eudev-3.2.4.ebuild240
-rw-r--r--sys-fs/eudev/eudev-4.9999.ebuild225
-rw-r--r--sys-fs/eudev/eudev-9999.ebuild240
-rw-r--r--sys-fs/eudev/files/40-gentoo.rules10
-rw-r--r--sys-fs/eudev/files/eudev-exclude-MD.patch53
-rw-r--r--sys-fs/eudev/files/eudev-fix-disk-by-id.patch43
-rw-r--r--sys-fs/eudev/files/eudev-fix-selinux-headers.patch32
-rw-r--r--sys-fs/eudev/files/eudev-fix-selinux-linking.patch30
-rw-r--r--sys-fs/eudev/files/udev-postmount55
-rw-r--r--sys-fs/eudev/metadata.xml24
-rw-r--r--sys-fs/exfat-utils/Manifest9
-rw-r--r--sys-fs/exfat-utils/exfat-utils-1.2.4.ebuild21
-rw-r--r--sys-fs/exfat-utils/exfat-utils-1.2.6.ebuild21
-rw-r--r--sys-fs/exfat-utils/exfat-utils-1.2.7.ebuild21
-rw-r--r--sys-fs/exfat-utils/metadata.xml15
-rw-r--r--sys-fs/ext3grep/Manifest8
-rw-r--r--sys-fs/ext3grep/ext3grep-0.10.2.ebuild37
-rw-r--r--sys-fs/ext3grep/files/ext3grep-0.10.1-gcc44.patch197
-rw-r--r--sys-fs/ext3grep/files/ext3grep-0.10.2-include-unistd_h-for-sysconf.patch15
-rw-r--r--sys-fs/ext3grep/files/ext3grep-0.10.2-new-e2fsprogs.diff34
-rw-r--r--sys-fs/ext3grep/metadata.xml10
-rw-r--r--sys-fs/ext4magic/Manifest6
-rw-r--r--sys-fs/ext4magic/ext4magic-0.3.2.ebuild37
-rw-r--r--sys-fs/ext4magic/files/ext4magic-0.3.2-sysmacros.patch13
-rw-r--r--sys-fs/ext4magic/metadata.xml19
-rw-r--r--sys-fs/extundelete/Manifest10
-rw-r--r--sys-fs/extundelete/extundelete-0.2.0-r1.ebuild26
-rw-r--r--sys-fs/extundelete/extundelete-0.2.0-r2.ebuild29
-rw-r--r--sys-fs/extundelete/extundelete-0.2.4.ebuild20
-rw-r--r--sys-fs/extundelete/files/extundelete-0.2.0-build.patch23
-rw-r--r--sys-fs/extundelete/metadata.xml11
-rw-r--r--sys-fs/f2fs-tools/Manifest9
-rw-r--r--sys-fs/f2fs-tools/f2fs-tools-1.6.1.ebuild30
-rw-r--r--sys-fs/f2fs-tools/f2fs-tools-1.8.0.ebuild35
-rw-r--r--sys-fs/f2fs-tools/files/f2fs-tools-1.6.1-sysmacros.patch45
-rw-r--r--sys-fs/f2fs-tools/files/f2fs-tools-1.8.0-sysmacros.patch10
-rw-r--r--sys-fs/f2fs-tools/metadata.xml11
-rw-r--r--sys-fs/fatsort/Manifest7
-rw-r--r--sys-fs/fatsort/fatsort-1.3.ebuild39
-rw-r--r--sys-fs/fatsort/fatsort-1.4.2.ebuild38
-rw-r--r--sys-fs/fatsort/metadata.xml17
-rw-r--r--sys-fs/fuse-convmvfs/Manifest6
-rw-r--r--sys-fs/fuse-convmvfs/files/mount.convmvfs8
-rw-r--r--sys-fs/fuse-convmvfs/fuse-convmvfs-0.2.6.ebuild24
-rw-r--r--sys-fs/fuse-convmvfs/metadata.xml8
-rw-r--r--sys-fs/fuse-exfat/Manifest9
-rw-r--r--sys-fs/fuse-exfat/fuse-exfat-1.2.4.ebuild24
-rw-r--r--sys-fs/fuse-exfat/fuse-exfat-1.2.6.ebuild24
-rw-r--r--sys-fs/fuse-exfat/fuse-exfat-1.2.7.ebuild24
-rw-r--r--sys-fs/fuse-exfat/metadata.xml15
-rw-r--r--sys-fs/fuse-zip/Manifest5
-rw-r--r--sys-fs/fuse-zip/fuse-zip-0.4.2.ebuild34
-rw-r--r--sys-fs/fuse-zip/metadata.xml12
-rw-r--r--sys-fs/fuse/Manifest14
-rw-r--r--sys-fs/fuse/files/fuse-2.9.3-kernel-types.patch19
-rw-r--r--sys-fs/fuse/files/fuse-fbsd.init23
-rw-r--r--sys-fs/fuse/files/fuse.init35
-rw-r--r--sys-fs/fuse/fuse-2.9.7.ebuild83
-rw-r--r--sys-fs/fuse/fuse-3.0.0_rc3.ebuild86
-rw-r--r--sys-fs/fuse/fuse-3.1.0.ebuild44
-rw-r--r--sys-fs/fuse/fuse-3.1.1.ebuild48
-rw-r--r--sys-fs/fuse/metadata.xml12
-rw-r--r--sys-fs/fuse4bsd/Manifest13
-rw-r--r--sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-gcc4.patch12
-rw-r--r--sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-ports.patch491
-rw-r--r--sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-fbsd91.patch15
-rw-r--r--sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-ports.patch475
-rw-r--r--sys-fs/fuse4bsd/fuse4bsd-0.3.0.ebuild50
-rw-r--r--sys-fs/fuse4bsd/fuse4bsd-0.3.9_pre1.ebuild71
-rw-r--r--sys-fs/fuse4bsd/metadata.xml8
-rw-r--r--sys-fs/fuseiso/Manifest7
-rw-r--r--sys-fs/fuseiso/files/fuseiso-20070708-fix-typo.patch12
-rw-r--r--sys-fs/fuseiso/files/fuseiso-20070708-largeiso.patch48
-rw-r--r--sys-fs/fuseiso/fuseiso-20070708-r1.ebuild28
-rw-r--r--sys-fs/fuseiso/metadata.xml14
-rw-r--r--sys-fs/genext2fs/Manifest5
-rw-r--r--sys-fs/genext2fs/genext2fs-1.4.1.ebuild18
-rw-r--r--sys-fs/genext2fs/metadata.xml11
-rw-r--r--sys-fs/gfs2-utils/Manifest9
-rw-r--r--sys-fs/gfs2-utils/gfs2-utils-3.1.2.ebuild49
-rw-r--r--sys-fs/gfs2-utils/gfs2-utils-3.1.3.ebuild49
-rw-r--r--sys-fs/gfs2-utils/gfs2-utils-3.1.5.ebuild51
-rw-r--r--sys-fs/gfs2-utils/metadata.xml9
-rw-r--r--sys-fs/go-mtpfs/Manifest4
-rw-r--r--sys-fs/go-mtpfs/go-mtpfs-9999.ebuild48
-rw-r--r--sys-fs/go-mtpfs/metadata.xml11
-rw-r--r--sys-fs/growpart/Manifest6
-rw-r--r--sys-fs/growpart/growpart-0.0.1.ebuild22
-rw-r--r--sys-fs/growpart/growpart-0.0.30.ebuild22
-rw-r--r--sys-fs/growpart/metadata.xml11
-rw-r--r--sys-fs/gt5/Manifest7
-rw-r--r--sys-fs/gt5/files/gt5-1.4.0-bash-shabang.patch9
-rw-r--r--sys-fs/gt5/files/gt5-1.4.0-empty-dirs.patch11
-rw-r--r--sys-fs/gt5/gt5-1.4.0-r2.ebuild31
-rw-r--r--sys-fs/gt5/metadata.xml7
-rw-r--r--sys-fs/hfsplusutils/Manifest11
-rw-r--r--sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-cflags.patch23
-rw-r--r--sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-errno.patch19
-rw-r--r--sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-gcc4.patch132
-rw-r--r--sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-glob.patch12
-rw-r--r--sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-stdlib.patch22
-rw-r--r--sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-string.patch33
-rw-r--r--sys-fs/hfsplusutils/hfsplusutils-1.0.4-r1.ebuild44
-rw-r--r--sys-fs/hfsplusutils/metadata.xml8
-rw-r--r--sys-fs/hfsutils/Manifest8
-rw-r--r--sys-fs/hfsutils/files/hfsutils-3.2.6-errno.patch13
-rw-r--r--sys-fs/hfsutils/files/hfsutils-3.2.6-fix-tcl-8.6.patch8
-rw-r--r--sys-fs/hfsutils/files/largerthan2gb.patch14
-rw-r--r--sys-fs/hfsutils/hfsutils-3.2.6-r5.ebuild50
-rw-r--r--sys-fs/hfsutils/metadata.xml8
-rw-r--r--sys-fs/inotify-tools/Manifest5
-rw-r--r--sys-fs/inotify-tools/inotify-tools-3.14.ebuild34
-rw-r--r--sys-fs/inotify-tools/metadata.xml17
-rw-r--r--sys-fs/iprutils/Manifest19
-rw-r--r--sys-fs/iprutils/files/iprdump16
-rw-r--r--sys-fs/iprutils/files/iprdump-r116
-rw-r--r--sys-fs/iprutils/files/iprinit20
-rw-r--r--sys-fs/iprutils/files/iprinit-r120
-rw-r--r--sys-fs/iprutils/files/iprupdate11
-rw-r--r--sys-fs/iprutils/files/iprupdate-r111
-rw-r--r--sys-fs/iprutils/files/iprutils-2.4.11.1-basename.patch10
-rw-r--r--sys-fs/iprutils/files/iprutils-2.4.11.1-migrate_cand.patch11
-rw-r--r--sys-fs/iprutils/files/iprutils-2.4.7-tinfo.patch14
-rw-r--r--sys-fs/iprutils/files/iprutils-2.4.8-tinfo.patch14
-rw-r--r--sys-fs/iprutils/iprutils-2.4.13.1.ebuild54
-rw-r--r--sys-fs/iprutils/iprutils-2.4.14.1.ebuild53
-rw-r--r--sys-fs/iprutils/iprutils-2.4.7.ebuild45
-rw-r--r--sys-fs/iprutils/metadata.xml11
-rw-r--r--sys-fs/jdiskreport-bin/Manifest9
-rw-r--r--sys-fs/jdiskreport-bin/jdiskreport-bin-1.2.5-r1.ebuild31
-rw-r--r--sys-fs/jdiskreport-bin/jdiskreport-bin-1.3.0.ebuild31
-rw-r--r--sys-fs/jdiskreport-bin/jdiskreport-bin-1.4.1.ebuild31
-rw-r--r--sys-fs/jdiskreport-bin/metadata.xml13
-rw-r--r--sys-fs/jfsutils/Manifest7
-rw-r--r--sys-fs/jfsutils/files/jfsutils-1.1.15-linux-headers.patch13
-rw-r--r--sys-fs/jfsutils/files/jfsutils-1.1.15-sysmacros.patch15
-rw-r--r--sys-fs/jfsutils/jfsutils-1.1.15.ebuild38
-rw-r--r--sys-fs/jfsutils/metadata.xml14
-rw-r--r--sys-fs/jmtpfs/Manifest5
-rw-r--r--sys-fs/jmtpfs/jmtpfs-0.5.ebuild29
-rw-r--r--sys-fs/jmtpfs/metadata.xml10
-rw-r--r--sys-fs/ldapfuse/Manifest5
-rw-r--r--sys-fs/ldapfuse/ldapfuse-1.0-r1.ebuild24
-rw-r--r--sys-fs/ldapfuse/metadata.xml8
-rw-r--r--sys-fs/lde/Manifest6
-rw-r--r--sys-fs/lde/files/lde-2.6.1-no-shadowing.patch39
-rw-r--r--sys-fs/lde/lde-2.6.1-r1.ebuild33
-rw-r--r--sys-fs/lde/metadata.xml11
-rw-r--r--sys-fs/lessfs/Manifest7
-rw-r--r--sys-fs/lessfs/lessfs-1.5.13.ebuild48
-rw-r--r--sys-fs/lessfs/lessfs-1.7.0.ebuild50
-rw-r--r--sys-fs/lessfs/metadata.xml19
-rw-r--r--sys-fs/libeatmydata/Manifest11
-rw-r--r--sys-fs/libeatmydata/files/libeatmydata-105-undpkg.patch14
-rw-r--r--sys-fs/libeatmydata/libeatmydata-105-r1.ebuild32
-rw-r--r--sys-fs/libeatmydata/libeatmydata-65.ebuild29
-rw-r--r--sys-fs/libeatmydata/libeatmydata-82-r1.ebuild26
-rw-r--r--sys-fs/libeatmydata/libeatmydata-82.ebuild29
-rw-r--r--sys-fs/libeatmydata/metadata.xml15
-rw-r--r--sys-fs/libfat/Manifest5
-rw-r--r--sys-fs/libfat/libfat-0.3a.ebuild20
-rw-r--r--sys-fs/libfat/metadata.xml11
-rw-r--r--sys-fs/loop-aes/Manifest9
-rw-r--r--sys-fs/loop-aes/loop-aes-3.7j.ebuild77
-rw-r--r--sys-fs/loop-aes/loop-aes-3.7k.ebuild77
-rw-r--r--sys-fs/loop-aes/loop-aes-3.7l.ebuild77
-rw-r--r--sys-fs/loop-aes/metadata.xml18
-rw-r--r--sys-fs/lsscsi/Manifest6
-rw-r--r--sys-fs/lsscsi/files/lsscsi-0.28-sysmacros.patch37
-rw-r--r--sys-fs/lsscsi/lsscsi-0.28.ebuild18
-rw-r--r--sys-fs/lsscsi/metadata.xml8
-rw-r--r--sys-fs/lufis/Manifest6
-rw-r--r--sys-fs/lufis/files/lufis-allow-uid-and-gid-addon.patch29
-rw-r--r--sys-fs/lufis/lufis-0.3.ebuild34
-rw-r--r--sys-fs/lufis/metadata.xml8
-rw-r--r--sys-fs/lufs/Manifest10
-rw-r--r--sys-fs/lufs/files/lufs-0.9.7-enable-gnome-2.patch72
-rw-r--r--sys-fs/lufs/files/lufs-0.9.7-fPIC.patch12
-rw-r--r--sys-fs/lufs/files/lufs-0.9.7-gcc43.patch33
-rw-r--r--sys-fs/lufs/files/lufs-automount-port.diff28
-rw-r--r--sys-fs/lufs/files/lufs-no-kernel.patch111
-rw-r--r--sys-fs/lufs/lufs-0.9.7-r3.ebuild70
-rw-r--r--sys-fs/lufs/metadata.xml11
-rw-r--r--sys-fs/lvm2/Manifest62
-rw-r--r--sys-fs/lvm2/files/clvmd.confd-2.02.399
-rw-r--r--sys-fs/lvm2/files/clvmd.rc-2.02.39145
-rw-r--r--sys-fs/lvm2/files/device-mapper.conf-1.02.22-r31
-rw-r--r--sys-fs/lvm2/files/device-mapper.rc-2.02.105-r2146
-rw-r--r--sys-fs/lvm2/files/dmeventd.initd-2.02.67-r125
-rw-r--r--sys-fs/lvm2/files/dmtab11
-rw-r--r--sys-fs/lvm2/files/lvm-monitoring.initd-2.02.105-r238
-rw-r--r--sys-fs/lvm2/files/lvm.confd-2.02.28-r25
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.105-r296
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.116-r4132
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.116-r6132
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.166-r2145
-rw-r--r--sys-fs/lvm2/files/lvm.rc-2.02.172145
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.106-pthread-pkgconfig.patch32
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.108-example.conf.in.patch50
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.108-static-pkgconfig-libs.patch104
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.129-dynamic-static-ldflags.patch59
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.129-example.conf.in.patch52
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.129-static-pkgconfig-libs.patch102
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.130-pthread-pkgconfig.patch32
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.139-dynamic-static-ldflags.patch63
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.145-mkdev.patch127
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.172-static-pkgconfig-libs.patch104
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.56-lvm2create_initrd.patch72
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.63-always-make-static-libdm.patch42
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch18
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.70-asneeded.patch15
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.92-dynamic-static-ldflags.patch63
-rw-r--r--sys-fs/lvm2/files/lvm2-2.02.99-locale-muck.patch11
-rw-r--r--sys-fs/lvm2/files/lvmetad.initd-2.02.105-r212
-rw-r--r--sys-fs/lvm2/files/lvmetad.initd-2.02.116-r317
-rw-r--r--sys-fs/lvm2/files/lvmlockd.initd-2.02.166-r117
-rw-r--r--sys-fs/lvm2/lvm2-2.02.116-r1.ebuild271
-rw-r--r--sys-fs/lvm2/lvm2-2.02.116-r2.ebuild274
-rw-r--r--sys-fs/lvm2/lvm2-2.02.116-r4.ebuild281
-rw-r--r--sys-fs/lvm2/lvm2-2.02.116-r5.ebuild290
-rw-r--r--sys-fs/lvm2/lvm2-2.02.116-r6.ebuild290
-rw-r--r--sys-fs/lvm2/lvm2-2.02.116.ebuild271
-rw-r--r--sys-fs/lvm2/lvm2-2.02.136-r1.ebuild283
-rw-r--r--sys-fs/lvm2/lvm2-2.02.136-r2.ebuild284
-rw-r--r--sys-fs/lvm2/lvm2-2.02.136.ebuild274
-rw-r--r--sys-fs/lvm2/lvm2-2.02.139-r1.ebuild284
-rw-r--r--sys-fs/lvm2/lvm2-2.02.139.ebuild283
-rw-r--r--sys-fs/lvm2/lvm2-2.02.145-r1.ebuild288
-rw-r--r--sys-fs/lvm2/lvm2-2.02.145-r2.ebuild290
-rw-r--r--sys-fs/lvm2/lvm2-2.02.145.ebuild284
-rw-r--r--sys-fs/lvm2/lvm2-2.02.166-r2.ebuild297
-rw-r--r--sys-fs/lvm2/lvm2-2.02.166.ebuild290
-rw-r--r--sys-fs/lvm2/lvm2-2.02.171.ebuild297
-rw-r--r--sys-fs/lvm2/lvm2-2.02.172.ebuild297
-rw-r--r--sys-fs/lvm2/lvm2-2.02.173.ebuild297
-rw-r--r--sys-fs/lvm2/metadata.xml32
-rw-r--r--sys-fs/lxcfs/Manifest10
-rw-r--r--sys-fs/lxcfs/files/lxcfs-2.0.4-fusermount-path.patch11
-rw-r--r--sys-fs/lxcfs/files/lxcfs-2.0.4.initd26
-rw-r--r--sys-fs/lxcfs/files/lxcfs-2.0.6-fusermount-path.patch11
-rw-r--r--sys-fs/lxcfs/files/lxcfs-2.0.6.initd26
-rw-r--r--sys-fs/lxcfs/lxcfs-2.0.4.ebuild70
-rw-r--r--sys-fs/lxcfs/lxcfs-2.0.6.ebuild70
-rw-r--r--sys-fs/lxcfs/metadata.xml21
-rw-r--r--sys-fs/mac-fdisk/Manifest14
-rw-r--r--sys-fs/mac-fdisk/files/big_pt.patch80
-rw-r--r--sys-fs/mac-fdisk/files/largerthan2gb.patch14
-rw-r--r--sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch112
-rw-r--r--sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch481
-rw-r--r--sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch455
-rw-r--r--sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch190
-rw-r--r--sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild54
-rw-r--r--sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild52
-rw-r--r--sys-fs/mac-fdisk/metadata.xml8
-rw-r--r--sys-fs/mdadm/Manifest27
-rw-r--r--sys-fs/mdadm/files/etc-default-mdadm9
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-DDF-validate-metadata_update-size-before-using-it.patch44
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-Grow-Do-not-try-to-restart-if-reshape-is-running.patch45
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-Grow-fix-removal-of-line-in-wrong-case.patch39
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-IMSM-use-strcpy-rather-than-pointless-strncpy.patch32
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-IMSM-validate-metadata_update-size-before-using-it.patch128
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-Makefile-install-mdadm-grow-continue-.service.patch28
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-mdmon-allow-prepare_update-to-report-failure.patch119
-rw-r--r--sys-fs/mdadm/files/mdadm-3.3.1-mdmon-ensure-Unix-domain-socket-is-created-with-safe.patch34
-rw-r--r--sys-fs/mdadm/files/mdadm-3.4-sysmacros.patch31
-rw-r--r--sys-fs/mdadm/files/mdadm.confd7
-rw-r--r--sys-fs/mdadm/files/mdadm.rc25
-rw-r--r--sys-fs/mdadm/files/mdadm.weekly5
-rw-r--r--sys-fs/mdadm/files/mdraid.confd11
-rw-r--r--sys-fs/mdadm/files/mdraid.rc39
-rw-r--r--sys-fs/mdadm/mdadm-3.3.1-r2.ebuild95
-rw-r--r--sys-fs/mdadm/mdadm-3.4.ebuild88
-rw-r--r--sys-fs/mdadm/mdadm-4.0.ebuild88
-rw-r--r--sys-fs/mdadm/metadata.xml8
-rw-r--r--sys-fs/metadata.xml32
-rw-r--r--sys-fs/mhddfs/Manifest6
-rw-r--r--sys-fs/mhddfs/files/mhddfs-respect-compiler-vars.patch66
-rw-r--r--sys-fs/mhddfs/metadata.xml8
-rw-r--r--sys-fs/mhddfs/mhddfs-0.1.39.ebuild46
-rw-r--r--sys-fs/mp3fs/Manifest7
-rw-r--r--sys-fs/mp3fs/metadata.xml11
-rw-r--r--sys-fs/mp3fs/mp3fs-0.32.ebuild23
-rw-r--r--sys-fs/mp3fs/mp3fs-0.91.ebuild20
-rw-r--r--sys-fs/mtd-utils/Manifest7
-rw-r--r--sys-fs/mtd-utils/files/mtd-utils-1.5.2-sysmacros.patch32
-rw-r--r--sys-fs/mtd-utils/metadata.xml11
-rw-r--r--sys-fs/mtd-utils/mtd-utils-1.5.2.ebuild65
-rw-r--r--sys-fs/mtd-utils/mtd-utils-99999999.ebuild61
-rw-r--r--sys-fs/mtools/Manifest13
-rw-r--r--sys-fs/mtools/files/mtools-4.0.18-attr.patch51
-rw-r--r--sys-fs/mtools/files/mtools-4.0.18-locking.patch163
-rw-r--r--sys-fs/mtools/files/mtools-4.0.18-memset.patch27
-rw-r--r--sys-fs/mtools/metadata.xml8
-rw-r--r--sys-fs/mtools/mtools-4.0.15.ebuild43
-rw-r--r--sys-fs/mtools/mtools-4.0.17.ebuild44
-rw-r--r--sys-fs/mtools/mtools-4.0.18-r2.ebuild53
-rw-r--r--sys-fs/mtools/mtools-4.0.18.ebuild49
-rw-r--r--sys-fs/mtpfs/Manifest17
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-fix-mutex-crash.patch70
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-g_printf.patch10
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-unitialized-variable.patch12
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0001-Use-GMutex-instead-of-GStaticMutex.patch49
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0002-Free-rawdevices-after-opening-the-connected-device.patch28
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0003-Allocate-additional-byte-for-trailing-null.patch55
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0004-Use-storageid-to-access-storageArea.patch42
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0005-Use-O_ACCMODE-to-pull-out-the-access-portion-of-the-.patch46
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0006-Check-for-find_storage-failures.patch109
-rw-r--r--sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0007-Use-path-instead-of-fields-0-for-find_storage.patch29
-rw-r--r--sys-fs/mtpfs/metadata.xml21
-rw-r--r--sys-fs/mtpfs/mtpfs-1.0.ebuild45
-rw-r--r--sys-fs/mtpfs/mtpfs-1.1-r3.ebuild56
-rw-r--r--sys-fs/multipath-tools/Manifest17
-rw-r--r--sys-fs/multipath-tools/files/multipath-tools-0.5.0-makefile.patch200
-rw-r--r--sys-fs/multipath-tools/files/multipath-tools-0.5.0-systemd-pkgconfig.patch24
-rw-r--r--sys-fs/multipath-tools/files/multipath-tools-0.6.2-ignore-modprobe-failures.patch25
-rw-r--r--sys-fs/multipath-tools/files/multipath-tools-0.6.4-sysmacros.patch60
-rw-r--r--sys-fs/multipath-tools/files/multipath.rc27
-rw-r--r--sys-fs/multipath-tools/files/rc-multipathd20
-rw-r--r--sys-fs/multipath-tools/metadata.xml11
-rw-r--r--sys-fs/multipath-tools/multipath-tools-0.5.0-r1.ebuild65
-rw-r--r--sys-fs/multipath-tools/multipath-tools-0.6.4-r1.ebuild99
-rw-r--r--sys-fs/multipath-tools/multipath-tools-0.7.1.ebuild94
-rw-r--r--sys-fs/multipath-tools/multipath-tools-0.7.2.ebuild94
-rw-r--r--sys-fs/ncdu/Manifest5
-rw-r--r--sys-fs/ncdu/metadata.xml19
-rw-r--r--sys-fs/ncdu/ncdu-1.12.ebuild20
-rw-r--r--sys-fs/nilfs-utils/Manifest9
-rw-r--r--sys-fs/nilfs-utils/metadata.xml25
-rw-r--r--sys-fs/nilfs-utils/nilfs-utils-2.1.5-r1.ebuild36
-rw-r--r--sys-fs/nilfs-utils/nilfs-utils-2.1.6.ebuild36
-rw-r--r--sys-fs/nilfs-utils/nilfs-utils-2.2.2.ebuild36
-rw-r--r--sys-fs/ntfs3g/Manifest11
-rw-r--r--sys-fs/ntfs3g/files/99-ntfs3g.rules1
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch25
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch40
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch43
-rw-r--r--sys-fs/ntfs3g/metadata.xml31
-rw-r--r--sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild94
-rw-r--r--sys-fs/ntfs3g/ntfs3g-2017.3.23.ebuild93
-rw-r--r--sys-fs/ocfs2-tools/Manifest9
-rw-r--r--sys-fs/ocfs2-tools/files/ocfs2-tools-1.6.4-asneeded.patch78
-rw-r--r--sys-fs/ocfs2-tools/files/ocfs2-tools-recent-kernels.patch19
-rw-r--r--sys-fs/ocfs2-tools/files/ocfs2.confd37
-rw-r--r--sys-fs/ocfs2-tools/files/ocfs2.initd124
-rw-r--r--sys-fs/ocfs2-tools/metadata.xml11
-rw-r--r--sys-fs/ocfs2-tools/ocfs2-tools-1.8.2-r2.ebuild83
-rw-r--r--sys-fs/owfs/Manifest15
-rw-r--r--sys-fs/owfs/files/owfs-3.1-vendordir.patch26
-rw-r--r--sys-fs/owfs/files/owfs-3.1p4-sysmacros.patch78
-rw-r--r--sys-fs/owfs/files/owfs.confd2
-rw-r--r--sys-fs/owfs/files/owfs.initd-r135
-rw-r--r--sys-fs/owfs/files/owftpd.confd2
-rw-r--r--sys-fs/owfs/files/owftpd.initd-r135
-rw-r--r--sys-fs/owfs/files/owhttpd.confd2
-rw-r--r--sys-fs/owfs/files/owhttpd.initd-r135
-rw-r--r--sys-fs/owfs/files/owserver.confd2
-rw-r--r--sys-fs/owfs/files/owserver.initd-r134
-rw-r--r--sys-fs/owfs/metadata.xml25
-rw-r--r--sys-fs/owfs/owfs-3.1_p4.ebuild190
-rw-r--r--sys-fs/progsreiserfs/Manifest6
-rw-r--r--sys-fs/progsreiserfs/files/progsreiserfs-0.3.1_rc8-autotools.patch13
-rw-r--r--sys-fs/progsreiserfs/metadata.xml12
-rw-r--r--sys-fs/progsreiserfs/progsreiserfs-0.3.1_rc8.ebuild59
-rw-r--r--sys-fs/pysize/Manifest7
-rw-r--r--sys-fs/pysize/files/0.2-setuptools-automagic.patch12
-rw-r--r--sys-fs/pysize/files/psyco-0.2-automagic.patch20
-rw-r--r--sys-fs/pysize/metadata.xml7
-rw-r--r--sys-fs/pysize/pysize-0.2-r1.ebuild62
-rw-r--r--sys-fs/pytagsfs/Manifest5
-rw-r--r--sys-fs/pytagsfs/metadata.xml11
-rw-r--r--sys-fs/pytagsfs/pytagsfs-0.9.2.ebuild43
-rw-r--r--sys-fs/quota/Manifest26
-rwxr-xr-xsys-fs/quota/files/ldap-scripts/applySystemQuotas.pl104
-rwxr-xr-xsys-fs/quota/files/ldap-scripts/edquota_editor32
-rw-r--r--sys-fs/quota/files/ldap-scripts/quota.schema18
-rwxr-xr-xsys-fs/quota/files/ldap-scripts/setSystemQuotas.pl140
-rw-r--r--sys-fs/quota/files/ldap-scripts/setquota-ldap.pl148
-rw-r--r--sys-fs/quota/files/quota-4.03-default_fpic_fpie.patch32
-rw-r--r--sys-fs/quota/files/quota-4.03-distribute_ldap-scripts.patch23
-rw-r--r--sys-fs/quota/files/quota-4.03-dont_override_cflags.patch22
-rw-r--r--sys-fs/quota/files/quota-4.03-explicitely_print_disabled_options.patch69
-rw-r--r--sys-fs/quota/files/quota-4.03-fix_build_without_ldap.patch85
-rw-r--r--sys-fs/quota/files/quota-4.03-no_rpc.patch57
-rw-r--r--sys-fs/quota/files/quota-4.03-noldap_linking.patch75
-rw-r--r--sys-fs/quota/files/quota-4.03-repqouta_F_option_arg.patch27
-rw-r--r--sys-fs/quota/files/quota-4.03-respect_docdir.patch21
-rw-r--r--sys-fs/quota/files/quota-4.04-glibc226.patch43
-rw-r--r--sys-fs/quota/files/quota.confd20
-rw-r--r--sys-fs/quota/files/quota.rc737
-rw-r--r--sys-fs/quota/files/rpc.rquotad.initd25
-rw-r--r--sys-fs/quota/metadata.xml15
-rw-r--r--sys-fs/quota/quota-4.03.ebuild83
-rw-r--r--sys-fs/quota/quota-4.04-r1.ebuild83
-rw-r--r--sys-fs/quota/quota-4.04.ebuild79
-rw-r--r--sys-fs/quotatool/Manifest10
-rw-r--r--sys-fs/quotatool/files/quotatool-1.4.13-ldflags.patch23
-rw-r--r--sys-fs/quotatool/metadata.xml8
-rw-r--r--sys-fs/quotatool/quotatool-1.4.13.ebuild26
-rw-r--r--sys-fs/quotatool/quotatool-1.4.6.ebuild19
-rw-r--r--sys-fs/quotatool/quotatool-1.6.2.ebuild26
-rw-r--r--sys-fs/rar2fs/Manifest5
-rw-r--r--sys-fs/rar2fs/metadata.xml11
-rw-r--r--sys-fs/rar2fs/rar2fs-1.25.2.ebuild26
-rw-r--r--sys-fs/rarfs/Manifest5
-rw-r--r--sys-fs/rarfs/metadata.xml11
-rw-r--r--sys-fs/rarfs/rarfs-0.1.1-r1.ebuild34
-rw-r--r--sys-fs/reiser4progs/Manifest6
-rw-r--r--sys-fs/reiser4progs/files/reiser4progs-1.0.7-readline-6.3.patch16
-rw-r--r--sys-fs/reiser4progs/metadata.xml14
-rw-r--r--sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild48
-rw-r--r--sys-fs/reiserfs-defrag/Manifest5
-rw-r--r--sys-fs/reiserfs-defrag/metadata.xml16
-rw-r--r--sys-fs/reiserfs-defrag/reiserfs-defrag-0.2.2.ebuild24
-rw-r--r--sys-fs/reiserfsprogs/Manifest12
-rw-r--r--sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.25-no_acl.patch12
-rw-r--r--sys-fs/reiserfsprogs/metadata.xml8
-rw-r--r--sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild21
-rw-r--r--sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild48
-rw-r--r--sys-fs/reiserfsprogs/reiserfsprogs-3.6.26.ebuild49
-rw-r--r--sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild49
-rw-r--r--sys-fs/safecopy/Manifest5
-rw-r--r--sys-fs/safecopy/metadata.xml12
-rw-r--r--sys-fs/safecopy/safecopy-1.7.ebuild47
-rw-r--r--sys-fs/scan-ffs/Manifest5
-rw-r--r--sys-fs/scan-ffs/metadata.xml22
-rw-r--r--sys-fs/scan-ffs/scan-ffs-1.2.ebuild25
-rw-r--r--sys-fs/shake/Manifest9
-rw-r--r--sys-fs/shake/files/shake-0.999-fix_stat_include.patch22
-rw-r--r--sys-fs/shake/files/shake-0.999-uclibc.patch49
-rw-r--r--sys-fs/shake/metadata.xml12
-rw-r--r--sys-fs/shake/shake-0.999.ebuild25
-rw-r--r--sys-fs/shake/shake-1.0.ebuild22
-rw-r--r--sys-fs/simple-mtpfs/Manifest7
-rw-r--r--sys-fs/simple-mtpfs/metadata.xml16
-rw-r--r--sys-fs/simple-mtpfs/simple-mtpfs-0.1.ebuild25
-rw-r--r--sys-fs/simple-mtpfs/simple-mtpfs-0.3.0.ebuild30
-rw-r--r--sys-fs/snapraid/Manifest18
-rw-r--r--sys-fs/snapraid/files/snapraid-11.0-minor.patch39
-rw-r--r--sys-fs/snapraid/metadata.xml12
-rw-r--r--sys-fs/snapraid/snapraid-10.0.ebuild15
-rw-r--r--sys-fs/snapraid/snapraid-11.0-r1.ebuild24
-rw-r--r--sys-fs/snapraid/snapraid-6.2.ebuild20
-rw-r--r--sys-fs/snapraid/snapraid-6.3.ebuild20
-rw-r--r--sys-fs/snapraid/snapraid-7.0.ebuild22
-rw-r--r--sys-fs/snapraid/snapraid-7.1.ebuild17
-rw-r--r--sys-fs/snapraid/snapraid-8.1.ebuild17
-rw-r--r--sys-fs/squashfs-tools/Manifest19
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-2gb.patch30
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-aligned-data.patch15
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-extmatch.patch121
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-local-cve-fix.patch19
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-mem-overflow.patch35
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-musl.patch24
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-sysmacros.patch25
-rw-r--r--sys-fs/squashfs-tools/files/squashfs-tools-4.3-xattrs.patch34
-rw-r--r--sys-fs/squashfs-tools/metadata.xml15
-rw-r--r--sys-fs/squashfs-tools/squashfs-tools-3.2_p2.ebuild39
-rw-r--r--sys-fs/squashfs-tools/squashfs-tools-3.4.ebuild39
-rw-r--r--sys-fs/squashfs-tools/squashfs-tools-4.3-r2.ebuild75
-rw-r--r--sys-fs/squashfs-tools/squashfs-tools-9999.ebuild67
-rw-r--r--sys-fs/squashfuse/Manifest7
-rw-r--r--sys-fs/squashfuse/metadata.xml17
-rw-r--r--sys-fs/squashfuse/squashfuse-0.1.100.ebuild34
-rw-r--r--sys-fs/squashfuse/squashfuse-0.1_p20130530.ebuild44
-rw-r--r--sys-fs/static-dev/Manifest4
-rw-r--r--sys-fs/static-dev/metadata.xml8
-rw-r--r--sys-fs/static-dev/static-dev-0.1.ebuild44
-rw-r--r--sys-fs/sysfsutils/Manifest5
-rw-r--r--sys-fs/sysfsutils/metadata.xml11
-rw-r--r--sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild38
-rw-r--r--sys-fs/tmsu/Manifest3
-rw-r--r--sys-fs/tmsu/metadata.xml21
-rw-r--r--sys-fs/tmsu/tmsu-0.6.1.ebuild41
-rw-r--r--sys-fs/traydevice/Manifest5
-rw-r--r--sys-fs/traydevice/metadata.xml8
-rw-r--r--sys-fs/traydevice/traydevice-1.6.2-r1.ebuild37
-rw-r--r--sys-fs/treesize/Manifest6
-rw-r--r--sys-fs/treesize/files/0.54.1-amd64.patch10
-rw-r--r--sys-fs/treesize/metadata.xml11
-rw-r--r--sys-fs/treesize/treesize-0.54.1.ebuild30
-rw-r--r--sys-fs/udev-init-scripts/Manifest12
-rw-r--r--sys-fs/udev-init-scripts/metadata.xml7
-rw-r--r--sys-fs/udev-init-scripts/udev-init-scripts-27.ebuild64
-rw-r--r--sys-fs/udev-init-scripts/udev-init-scripts-30.ebuild50
-rw-r--r--sys-fs/udev-init-scripts/udev-init-scripts-31.ebuild50
-rw-r--r--sys-fs/udev-init-scripts/udev-init-scripts-32.ebuild44
-rw-r--r--sys-fs/udev-init-scripts/udev-init-scripts-9999.ebuild50
-rw-r--r--sys-fs/udev/Manifest24
-rw-r--r--sys-fs/udev/files/232-0002-build-sys-add-check-for-gperf-lookup-function-signat.patch302
-rw-r--r--sys-fs/udev/files/233-format-warnings.patch84
-rw-r--r--sys-fs/udev/files/234-uucp-group.patch11
-rw-r--r--sys-fs/udev/files/systemd-232-pkgconfig.patch50
-rw-r--r--sys-fs/udev/files/udev-229-sysmacros.patch82
-rw-r--r--sys-fs/udev/metadata.xml16
-rw-r--r--sys-fs/udev/udev-216.ebuild489
-rw-r--r--sys-fs/udev/udev-225-r1.ebuild430
-rw-r--r--sys-fs/udev/udev-233.ebuild408
-rw-r--r--sys-fs/udev/udev-234-r1.ebuild329
-rw-r--r--sys-fs/udev/udev-235.ebuild329
-rw-r--r--sys-fs/udev/udev-9999.ebuild329
-rw-r--r--sys-fs/udftools/Manifest26
-rw-r--r--sys-fs/udftools/files/cdrwtool-linux2.6-fix-v2.patch22
-rw-r--r--sys-fs/udftools/files/pktcdvd.init61
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b-bigendian.patch28
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b-gcc4.patch15
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b-limits_h.patch23
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b-openflags.patch15
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b3-extsize.patch44
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b3-man-missing-options.patch57
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b3-mkudffs-bigendian.patch115
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b3-staticanal.patch164
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b3-warningfixes.patch94
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b3-warningfixes2.patch160
-rw-r--r--sys-fs/udftools/files/udftools-1.0.0b3-wrudf_help.patch52
-rw-r--r--sys-fs/udftools/metadata.xml12
-rw-r--r--sys-fs/udftools/udftools-1.0.0b-r10.ebuild48
-rw-r--r--sys-fs/udftools/udftools-1.0.0b-r9.ebuild42
-rw-r--r--sys-fs/udftools/udftools-1.1.ebuild24
-rw-r--r--sys-fs/udftools/udftools-1.2.ebuild24
-rw-r--r--sys-fs/udftools/udftools-1.3.ebuild24
-rw-r--r--sys-fs/udiskie/Manifest9
-rw-r--r--sys-fs/udiskie/metadata.xml12
-rw-r--r--sys-fs/udiskie/udiskie-0.6.2.ebuild56
-rw-r--r--sys-fs/udiskie/udiskie-0.6.4.ebuild56
-rw-r--r--sys-fs/udiskie/udiskie-1.1.1.ebuild54
-rw-r--r--sys-fs/udisks/Manifest20
-rw-r--r--sys-fs/udisks/files/udisks-1.0.2-ntfs-3g.patch12
-rw-r--r--sys-fs/udisks/files/udisks-1.0.4-revert-floppy.patch18
-rw-r--r--sys-fs/udisks/files/udisks-1.0.5-stat-includes.patch25
-rw-r--r--sys-fs/udisks/files/udisks-1.0.5-sysmacros.patch72
-rw-r--r--sys-fs/udisks/files/udisks-2.6.4-udisksdprivdir.patch22
-rw-r--r--sys-fs/udisks/metadata.xml15
-rw-r--r--sys-fs/udisks/udisks-1.0.5-r1.ebuild105
-rw-r--r--sys-fs/udisks/udisks-2.1.8.ebuild110
-rw-r--r--sys-fs/udisks/udisks-2.6.4.ebuild128
-rw-r--r--sys-fs/udisks/udisks-2.6.5.ebuild127
-rw-r--r--sys-fs/udisks/udisks-2.7.2.ebuild130
-rw-r--r--sys-fs/udisks/udisks-2.7.3.ebuild130
-rw-r--r--sys-fs/ufsutils/Manifest6
-rw-r--r--sys-fs/ufsutils/metadata.xml8
-rw-r--r--sys-fs/ufsutils/ufsutils-8.2_p3.ebuild53
-rw-r--r--sys-fs/unionfs-fuse/Manifest8
-rw-r--r--sys-fs/unionfs-fuse/metadata.xml11
-rw-r--r--sys-fs/unionfs-fuse/unionfs-fuse-1.0.ebuild21
-rw-r--r--sys-fs/unionfs-fuse/unionfs-fuse-2.0.ebuild21
-rw-r--r--sys-fs/unionfs-fuse/unionfs-fuse-9999.ebuild23
-rw-r--r--sys-fs/vhba/Manifest5
-rw-r--r--sys-fs/vhba/metadata.xml11
-rw-r--r--sys-fs/vhba/vhba-20170610.ebuild81
-rw-r--r--sys-fs/vzquota/Manifest5
-rw-r--r--sys-fs/vzquota/metadata.xml4
-rw-r--r--sys-fs/vzquota/vzquota-3.1.ebuild30
-rw-r--r--sys-fs/wpflash/Manifest6
-rw-r--r--sys-fs/wpflash/files/wpflash-gentoo.patch223
-rw-r--r--sys-fs/wpflash/metadata.xml8
-rw-r--r--sys-fs/wpflash/wpflash-0.ebuild30
-rw-r--r--sys-fs/xfsdump/Manifest10
-rw-r--r--sys-fs/xfsdump/files/xfsdump-3.0.4-no-symlink.patch22
-rw-r--r--sys-fs/xfsdump/files/xfsdump-3.0.5-prompt-overflow.patch14
-rw-r--r--sys-fs/xfsdump/files/xfsdump-3.1.6-linguas.patch32
-rw-r--r--sys-fs/xfsdump/metadata.xml8
-rw-r--r--sys-fs/xfsdump/xfsdump-3.1.6.ebuild53
-rw-r--r--sys-fs/xfsdump/xfsdump-3.1.8.ebuild67
-rw-r--r--sys-fs/xfsprogs/Manifest20
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch117
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.12.0-sharedlibs.patch81
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.3.0-cross-compile.patch181
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.3.0-sharedlibs.patch80
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.5.0-linguas.patch32
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.7.0-libxcmd-link.patch30
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.7.0-sharedlibs.patch81
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.9.0-cross-compile.patch143
-rw-r--r--sys-fs/xfsprogs/files/xfsprogs-4.9.0-underlinking.patch30
-rw-r--r--sys-fs/xfsprogs/metadata.xml8
-rw-r--r--sys-fs/xfsprogs/xfsprogs-4.12.0.ebuild95
-rw-r--r--sys-fs/xfsprogs/xfsprogs-4.13.1.ebuild94
-rw-r--r--sys-fs/xfsprogs/xfsprogs-4.5.0.ebuild102
-rw-r--r--sys-fs/xfsprogs/xfsprogs-4.9.0.ebuild95
-rw-r--r--sys-fs/yaffs-utils/Manifest5
-rw-r--r--sys-fs/yaffs-utils/files/yaffs-utils-9999-build.patch36
-rw-r--r--sys-fs/yaffs-utils/metadata.xml8
-rw-r--r--sys-fs/yaffs-utils/yaffs-utils-9999.ebuild29
-rw-r--r--sys-fs/yaffs2-utils/Manifest5
-rw-r--r--sys-fs/yaffs2-utils/files/yaffs2-utils-9999-build.patch46
-rw-r--r--sys-fs/yaffs2-utils/metadata.xml8
-rw-r--r--sys-fs/yaffs2-utils/yaffs2-utils-9999.ebuild29
-rw-r--r--sys-fs/yaffs2utils/Manifest7
-rw-r--r--sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-build.patch47
-rw-r--r--sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-unyaffs2-pointer.patch13
-rw-r--r--sys-fs/yaffs2utils/metadata.xml8
-rw-r--r--sys-fs/yaffs2utils/yaffs2utils-0.2.9.ebuild31
-rw-r--r--sys-fs/zerofree/Manifest9
-rw-r--r--sys-fs/zerofree/metadata.xml11
-rw-r--r--sys-fs/zerofree/zerofree-1.0.1.ebuild37
-rw-r--r--sys-fs/zerofree/zerofree-1.0.3.ebuild37
-rw-r--r--sys-fs/zerofree/zerofree-1.0.4.ebuild37
-rw-r--r--sys-fs/zfs-kmod/Manifest66
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch39
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch40
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch51
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch36
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-flush-properly.patch42
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch105
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-hardened-support.patch473
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch32
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch36
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch41
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-arc-read-panic.patch42
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-getdents.patch32
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch73
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-1.patch50
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-2.patch37
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch58
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch73
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch167
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-linux-3.10-compat.patch108
-rw-r--r--sys-fs/zfs-kmod/files/zfs-kmod-0.6.5-discard-on-zvol-fix.patch31
-rw-r--r--sys-fs/zfs-kmod/metadata.xml18
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc13-r4.ebuild123
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc14-r5.ebuild136
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.1-r2.ebuild151
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.2-r3.ebuild128
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.4.2.ebuild141
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5-r1.ebuild153
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.10.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.11.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.2.ebuild145
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r4.ebuild158
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.3.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.4-r1.ebuild158
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.4.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.6.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.7.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.8.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.5.9.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.7.0.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.7.1.ebuild144
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-9999.ebuild144
-rw-r--r--sys-fs/zfs/Manifest64
-rw-r--r--sys-fs/zfs/files/bash-completion232
-rw-r--r--sys-fs/zfs/files/bash-completion-r1391
-rw-r--r--sys-fs/zfs/files/zed25
-rw-r--r--sys-fs/zfs/files/zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch34
-rw-r--r--sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch30
-rw-r--r--sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch42
-rw-r--r--sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch167
-rw-r--r--sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch57
-rw-r--r--sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch256
-rw-r--r--sys-fs/zfs/files/zfs-init.sh.in29
-rw-r--r--sys-fs/zfs/files/zfs.service.in16
-rw-r--r--sys-fs/zfs/metadata.xml20
-rw-r--r--sys-fs/zfs/zfs-0.6.0_rc13-r2.ebuild122
-rw-r--r--sys-fs/zfs/zfs-0.6.0_rc14-r1.ebuild128
-rw-r--r--sys-fs/zfs/zfs-0.6.1-r4.ebuild153
-rw-r--r--sys-fs/zfs/zfs-0.6.2-r5.ebuild152
-rw-r--r--sys-fs/zfs/zfs-0.6.3-r2.ebuild149
-rw-r--r--sys-fs/zfs/zfs-0.6.4.2.ebuild141
-rw-r--r--sys-fs/zfs/zfs-0.6.5.10.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.11.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.2-r1.ebuild207
-rw-r--r--sys-fs/zfs/zfs-0.6.5.3-r1.ebuild225
-rw-r--r--sys-fs/zfs/zfs-0.6.5.3-r3.ebuild229
-rw-r--r--sys-fs/zfs/zfs-0.6.5.3-r4.ebuild229
-rw-r--r--sys-fs/zfs/zfs-0.6.5.3-r5.ebuild229
-rw-r--r--sys-fs/zfs/zfs-0.6.5.3.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.4-r1.ebuild229
-rw-r--r--sys-fs/zfs/zfs-0.6.5.4-r2.ebuild229
-rw-r--r--sys-fs/zfs/zfs-0.6.5.4.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.6.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.7.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.8-r1.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.8.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.6.5.9.ebuild197
-rw-r--r--sys-fs/zfs/zfs-0.7.0-r2.ebuild201
-rw-r--r--sys-fs/zfs/zfs-0.7.1-r1.ebuild201
-rw-r--r--sys-fs/zfs/zfs-9999.ebuild206
952 files changed, 56339 insertions, 0 deletions
diff --git a/sys-fs/archivemount/Manifest b/sys-fs/archivemount/Manifest
new file mode 100644
index 000000000000..bfead8d4d52c
--- /dev/null
+++ b/sys-fs/archivemount/Manifest
@@ -0,0 +1,11 @@
+DIST archivemount-0.8.3.tar.gz 127412 SHA256 e78899a8b7c9cb43fa4526d08c54a9e171475c00bf095770b8779a33e37661ff SHA512 f0d50cdce44a0ee57f0d3a32cb37af4159a7400e47a8c61360c9c0c1be6fdbe98d2aa1cc530b3a71fe70e4f550ea5ed431204d738931dca757135677e1984733 WHIRLPOOL c7466b672f6599de83602d81b423bd3b1b687c02efb6f042f64214f7ac54e3eae11418fbb51347a2ff34bb73dc9406b5bef3b2dd655e13030133dd98e2f28ac9
+DIST archivemount-0.8.4.tar.gz 127751 SHA256 e8dae319a03993d8fb342e85603371c0b0a40752bc22368aceac46c113c3b0ea SHA512 bea9461991cfef129a156f682cb83d58c56b5efe64de21a4fff5858c9e3d3aede5b9b265ee1ae7eb7115290e326c4090c364a3b8de8f3399263ffe54142fd619 WHIRLPOOL 3becd3e22dbca527e72712fb168b9470e0cfdebbc6ee1465b97078394c310dfc614e467a226832067945cf0e176f610bf27405485e9dd7712f90748fd31df718
+DIST archivemount-0.8.5.tar.gz 128998 SHA256 3c919fc46077a0f458cb52454d72c34f1cefda4e2a4e6c987a5156458f144f79 SHA512 ad0feec23b5fa41481520081d6615a8001168daff88bd7314c4127072b946434ade4e4e7505ea325a594d1cfc2d9438ddf72de2a2a0fe39ec5d1abf050c84b3a WHIRLPOOL c2df59d645d5db8786eca3520cd24ca6d5c0f2b317dbd6ad21432e65a76b91a2c234920d45674f18fe3b3b29566f3f6023d5f2ee7005a55459b9c06ebd3911e6
+DIST archivemount-0.8.7.tar.gz 129305 SHA256 47045ca8d4d62fbe0b4248574c65cf90a6d29b488d166aec8c365b6aafe131b6 SHA512 8869786b7fe6ef12eef2150c42a4e152e033a9387383a689a4e9ab4ead7548c11f9db8f19c62ef55ab858a6387b02af59741f39de3d600aee08ed4ddd0afe7c1 WHIRLPOOL b324c854d5dfa7358053efe37cc4446f931e42b7ea705ce99ec69463a2f08e1a6d53fb6737a2279dae805ec392cbc0c2d5233da9857eb731a8efae48e2a9ddb0
+EBUILD archivemount-0.8.3.ebuild 424 SHA256 844ec3e16cfc24b6bb784cd44ad078080c9c7cdc4685b855e5d565f274b3241c SHA512 0a5a864ec1ca3511fabaab5af5a9d0bcfe92eff8beea05f53a2a9a7f24a8ce70b156f09114b2c2f5bb3888fcb17328e86bd5b400787b25b6c47b13cf2c641419 WHIRLPOOL 681aa7d25784515f400128fd1060d93402c5cc488f17bbf0d7e68a3e6646bffd4a00acf3fabe2c14433ce53363017d479cce84b99c028df9f3970cefcd0b1612
+EBUILD archivemount-0.8.4.ebuild 424 SHA256 becd7cf3337bf18918d32b7d6e1e9777b549167447e917478002532ee5402d69 SHA512 0431e9345894e1cd0720dc94cb7b6994332ffba082b5df956dc04f19492933d5b864bc4db7e5542c542bec8f6f9d2cac4a2f870a651818ec44b5a989ab16ee76 WHIRLPOOL f09890b77c01421f75aa165eeb1b277d3c2d3754152939e883d681232a0ee113d3464362fc7a7cabdc98585f07b11483485e1bb75ae0b8c316f0d1dc19974ba5
+EBUILD archivemount-0.8.5.ebuild 424 SHA256 becd7cf3337bf18918d32b7d6e1e9777b549167447e917478002532ee5402d69 SHA512 0431e9345894e1cd0720dc94cb7b6994332ffba082b5df956dc04f19492933d5b864bc4db7e5542c542bec8f6f9d2cac4a2f870a651818ec44b5a989ab16ee76 WHIRLPOOL f09890b77c01421f75aa165eeb1b277d3c2d3754152939e883d681232a0ee113d3464362fc7a7cabdc98585f07b11483485e1bb75ae0b8c316f0d1dc19974ba5
+EBUILD archivemount-0.8.7.ebuild 424 SHA256 becd7cf3337bf18918d32b7d6e1e9777b549167447e917478002532ee5402d69 SHA512 0431e9345894e1cd0720dc94cb7b6994332ffba082b5df956dc04f19492933d5b864bc4db7e5542c542bec8f6f9d2cac4a2f870a651818ec44b5a989ab16ee76 WHIRLPOOL f09890b77c01421f75aa165eeb1b277d3c2d3754152939e883d681232a0ee113d3464362fc7a7cabdc98585f07b11483485e1bb75ae0b8c316f0d1dc19974ba5
+MISC ChangeLog 2452 SHA256 eb884eabf57092712b3ff91d441235466dac4e689e29a310257e446bfb86fe7d SHA512 2499b4724d2752aacf37f32cdaa240b0dc6b4487322617042f445c60f9c4cde2c3826bc3bd061c9114d0eb6191ceb0c22d9f28de508915560d369850ac25fe99 WHIRLPOOL 92e713fece4a2cb351254368accdc5c927011cfd65188ccb10eb431a575766e097865eccbde4584fe1f70ac97ab43e3c815b662cdef12e1213b3b249afe16b5c
+MISC ChangeLog-2015 648 SHA256 7220b9eeeab445a5a0b97797b9c1f2cdfab67ccdcf8994840de3a0471f72696d SHA512 c055a18b23093dc54c5bd40ed9a68c93fa1f9b2e6751466705b6912b73d8e0e81d1c13f75fb2b7e3f02b25c09d60adabc0144c0c339ea9d93d94d217bb5ec581 WHIRLPOOL 4651fbad8a82a460e39c4d80992ce6b298f79b04ec22d6114f03be16718ff6e229650451044111117dbdb537f9bf9ff5202182ba892dc50517a4ada98ac5942b
+MISC metadata.xml 246 SHA256 92d5540a2f0904365eafb8ce96e6320cfc14e08f22e124d721521ef77ddbf6f6 SHA512 ca07e0609b698c2b53062b71008fee49b91af78fc2ef25997311e37985d79283d333f5b842257a16e7dee36ce34c07d405e1f93742f341f10ca70904e9f9a4e6 WHIRLPOOL d15a33750d6ada278082c675223992c98cccf98af92ec04ab5b908816381ab6965714988fac87a795265973c6fb81a588a08c385ac6fb66046d14d119e0c236c
diff --git a/sys-fs/archivemount/archivemount-0.8.3.ebuild b/sys-fs/archivemount/archivemount-0.8.3.ebuild
new file mode 100644
index 000000000000..86378806ce4b
--- /dev/null
+++ b/sys-fs/archivemount/archivemount-0.8.3.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="Mount archives using libarchive and FUSE"
+HOMEPAGE="http://www.cybernoia.de/software/archivemount/"
+SRC_URI="http://www.cybernoia.de/software/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-arch/libarchive:=
+ sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
diff --git a/sys-fs/archivemount/archivemount-0.8.4.ebuild b/sys-fs/archivemount/archivemount-0.8.4.ebuild
new file mode 100644
index 000000000000..012a3f1b3820
--- /dev/null
+++ b/sys-fs/archivemount/archivemount-0.8.4.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="Mount archives using libarchive and FUSE"
+HOMEPAGE="http://www.cybernoia.de/software/archivemount/"
+SRC_URI="http://www.cybernoia.de/software/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-arch/libarchive:=
+ sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
diff --git a/sys-fs/archivemount/archivemount-0.8.5.ebuild b/sys-fs/archivemount/archivemount-0.8.5.ebuild
new file mode 100644
index 000000000000..012a3f1b3820
--- /dev/null
+++ b/sys-fs/archivemount/archivemount-0.8.5.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="Mount archives using libarchive and FUSE"
+HOMEPAGE="http://www.cybernoia.de/software/archivemount/"
+SRC_URI="http://www.cybernoia.de/software/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-arch/libarchive:=
+ sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
diff --git a/sys-fs/archivemount/archivemount-0.8.7.ebuild b/sys-fs/archivemount/archivemount-0.8.7.ebuild
new file mode 100644
index 000000000000..012a3f1b3820
--- /dev/null
+++ b/sys-fs/archivemount/archivemount-0.8.7.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="Mount archives using libarchive and FUSE"
+HOMEPAGE="http://www.cybernoia.de/software/archivemount/"
+SRC_URI="http://www.cybernoia.de/software/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="app-arch/libarchive:=
+ sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
diff --git a/sys-fs/archivemount/metadata.xml b/sys-fs/archivemount/metadata.xml
new file mode 100644
index 000000000000..78e64a5cf1ad
--- /dev/null
+++ b/sys-fs/archivemount/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/arm-fdisk/Manifest b/sys-fs/arm-fdisk/Manifest
new file mode 100644
index 000000000000..9dd7606e1d3c
--- /dev/null
+++ b/sys-fs/arm-fdisk/Manifest
@@ -0,0 +1,6 @@
+DIST acorn-fdisk_3.0.6-6.2.diff.gz 5580 SHA256 d84e6a8c05114b044cace9d7705d319cbe38c3878eaf0918b1965453d88254ad SHA512 076587945548f10fef92a93910aee670927a2de9b1b32fd1b4ab72b1cfc26440177745f09b62f9b903987e3802060f4e278e1647ee12b7e2f29a0fd7b36ff188 WHIRLPOOL 6424710566c0c76e6aebcc32f5a9f4251402fc198aa22cad236caa10bf111b3a2a4377b940e6f98035a7193ca7e4b6045ba558557ad2b5b02422c09cb68ffc60
+DIST arm-fdisk-3.0.6.tar.gz 62266 SHA256 d6254982717be92aaffa1b6a2690d4e8b258285f7596beb196a9d24ceacf3a05 SHA512 954c1112c8108da676a0c4223de3a7b0320a37286b0ed099f3000bf4777ebb483b0b62eb0a5dd480f775c503020e7d9ed6ef737ef7bbc5bce858ae68aa471a3f WHIRLPOOL 3f26a40aa9823bdd87c163cc09d13e99679379238b233f32fe04b8235c4f42ce5d105d05a7a68561900c41b4990d177e69e0e694c5a8598a8e1d19e3745e78d9
+EBUILD arm-fdisk-3.0.6-r1.ebuild 1001 SHA256 ba266879e67f2b6659bac9246359f6dfc0592bed5d33869cb61a3aaa774e43e3 SHA512 5b7043ff93c0e50b87db06cff3f73b856ce3110eddfd1da3305acee0d76f8366ba06860e8af787ed4c52e2037f99236dfcde2b8d8899e857ef50529a8b2bc220 WHIRLPOOL 3f2ba50e712297fb7bbcba37e2cf0c74240d7bc9d7ca6bea726897c952815af69e72d14f460bf2fa7dd06d1c6e92fb7522442907b58b689ba8325eab28fb7c44
+MISC ChangeLog 2615 SHA256 387c94f9dff7325565c828d24c653822a1a4d13ba56e4e7d90016b14708c6914 SHA512 876d14871f3d50c972669096fabedc8cdc37be7ea9a5e7e2e61fdc7e62a055ac1658748d070fe515f3e2ba4fe07ee082cd4b30dc8d0b54e8a8215bedf16e084b WHIRLPOOL abe871b49b410fdbae9d56c5bc3a0b1e501efd70a7a1828090c8ed949d35bd672e861da133c67d3c95610c5ab60619f0899face676bed8934c003f9fcbbf3390
+MISC ChangeLog-2015 2290 SHA256 c91a3db72728d5c2d851641d443b2a33589f279aae21e4b84baaa05014135dff SHA512 df6ac855a0aaad8b2253c14d3a50e98b0a580a396f6e192ab2e0c476125d785a8805db8e8b8d1a64a4098d1dba9da9eb7b056a51919e8c73df7884325e490ecf WHIRLPOOL b793d8350db0f325104a1fdfacb6f1e0cd63d4b4082165e311ada2ee52215809f738364fbd80819b063815c3f2a0e7e375ae06db9f4ad72b3f98f27831988b53
+MISC metadata.xml 255 SHA256 2329f28bac0cd2e531f9e28d5d16d6c2f0a20878723e101565aefc5233b33531 SHA512 4408b5018e974df4d7508f29e255f318bbd09b4056927cae6406ff1f427c06d5d655f677a28440cb84af04e411c88e4582f9ad1ea76829afeee0bbe4e3841c2f WHIRLPOOL fc074050885e70dd142f3d3de3b966b62dd7bb1d095e6ab94f78962d8a1adebc6297fa3889093c3752e82afe170baece19e8458e9e2387b5ed52dbb6efe66e09
diff --git a/sys-fs/arm-fdisk/arm-fdisk-3.0.6-r1.ebuild b/sys-fs/arm-fdisk/arm-fdisk-3.0.6-r1.ebuild
new file mode 100644
index 000000000000..263933596f93
--- /dev/null
+++ b/sys-fs/arm-fdisk/arm-fdisk-3.0.6-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils toolchain-funcs
+
+DEB_VER=6.2
+DESCRIPTION="edit disk partitions on Acorn machines"
+HOMEPAGE="http://www.arm.linux.org.uk/"
+SRC_URI="ftp://ftp.arm.linux.org.uk/pub/armlinux/source/other/${P}.tar.gz
+ mirror://debian/pool/main/a/acorn-fdisk/acorn-fdisk_${PV}-${DEB_VER}.diff.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc s390 sh sparc x86"
+IUSE=""
+
+DEPEND=""
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${WORKDIR}"/acorn-fdisk_${PV}-${DEB_VER}.diff
+
+ find "${S}" -name Makefile -print0 | xargs -0 \
+ sed -i \
+ -e "s:-O2 -Wall\( -g\)\?::" \
+ -e "/^CFLAGS/s:=:+=:" \
+ -e "/^LDFLAGS/s:=:+=:" \
+ -e '/^STRIP/s:strip:true:'
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ AR="$(tc-getAR)" || die
+}
+
+src_install() {
+ into /
+ newsbin fdisk ${PN} || die "sbin failed"
+ dosym ${PN} /sbin/acorn-fdisk
+ dodoc ChangeLog README debian/changelog
+}
diff --git a/sys-fs/arm-fdisk/metadata.xml b/sys-fs/arm-fdisk/metadata.xml
new file mode 100644
index 000000000000..3101c4efc863
--- /dev/null
+++ b/sys-fs/arm-fdisk/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>arm@gentoo.org</email>
+ <name>Gentoo Linux ARM Development</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/atari-fdisk/Manifest b/sys-fs/atari-fdisk/Manifest
new file mode 100644
index 000000000000..284943f3a7f4
--- /dev/null
+++ b/sys-fs/atari-fdisk/Manifest
@@ -0,0 +1,7 @@
+AUX atari-fdisk-0.7.1.5.4-gcc-5-inline.patch 722 SHA256 d2c5e7bfdacf0bf31ddc7192d99181e930a37e0309d946bcb01bd88c3a76d605 SHA512 aeda384a27e6ed408e82ede3e7821976daece0b577b2aa26250b183697387ea39a01ffc1bbe8aa09c570f0897ecf6022477e7a4126c6e90181a5c0a88cbe11c1 WHIRLPOOL 0999844053875749a63535701883b8167743a5606ef4bc635a5e3f1ce9fe8c0c35ba125dc25cf032918f45b9a3be1e7c0a2e02001a617a1eec964d844399c529
+AUX atari-fdisk-0.7.1.5.4-prompt-logic.patch 495 SHA256 2471db2a65f6ac35cfe297b5ce66ecaea71950d98f9754eafb1f2aac26eae100 SHA512 7be32b061f2aaea03579282e9df5b78d207b823551ffeb91a20a96bd28fc57969e21b7e54da2af15bd0c74ea346ef904dee798405b61a593bd9149064b9bbec5 WHIRLPOOL e1c26e4d3c337a60e0543f05bd4799633b1badef62b1da1882e87fe617df75b374402ef10dc4ed4cece61f93b5a9a4a2a01a7e9519e7393426528b341fbd9b64
+DIST atari-fdisk_0.7.1-5.4.tar.gz 47576 SHA256 81ddb3a0d0088fb32011cede6deacb98a2b97da24fc8b2efe87dc45da601b96f SHA512 014be9a92b19f81901f814308b0f380df77de712f1e3f69438cf7ae7c57c53111cfc39f60899facd04af8b5457e980fdc689bfbfe2a91e5c2a0de8446a724961 WHIRLPOOL 324ee5ce4408d1f93407d4bde83d2c86e23114d1d4d877794d6474c042b47fe7428697b3d57863841cc0253ea1fd28b458d0169783d2bdc41b27caa56c05e71b
+EBUILD atari-fdisk-0.7.1.5.4.ebuild 1247 SHA256 f77052d3b9dd30fd5cb6e68997a8afbb444e2fd215d79e9a9521675cb0ae6fd5 SHA512 3f6c4fc948bad575091c3a77b8c6787bb2d71f8032bf20ad7b5113d48ad37fe6b936b4142f32aba1cd4c9e4b0fcfb3eaca0fd0faf6829dcdfbb6f22718aa7b4f WHIRLPOOL 24eacb5a286fae2a1bce817b2c684f689917c7fba0fdb45ed820aeaec8f3ca349b61f5039831312f8dfc8210730c78c19753f17692533371f3cb365e702841a8
+MISC ChangeLog 3374 SHA256 d0110b5c7c2650f7d80e345235e6150875e5328b75c9ff0b97879fccfa18d2a7 SHA512 d1e5f62d162cc6b6f036ee74dd89fc417de4c5ee9ab7b0a12e360a9658ac3596c382d73dcced8b822737800d5f1c7cb77e526b553d6bca1b58aeb240bdc1a37b WHIRLPOOL 4630e70518d7cb5f88f433457a960a3b4917fe23d09d5994f76e3c786a61663b434e8f2a59d2fbfc42bc0f75650c281be316e38a06bce9db5da548b5027469b9
+MISC ChangeLog-2015 827 SHA256 b0f603c96a4f635d5e8b4980e0c3b741dfe1653a5a8c96bb82e5aa372fd4d728 SHA512 574bb899bfabe2262e8f2699aa256cf8f4a6885bc2a30d70932a83afa8c6732a33c2f436e867738e3efdd34f26d1e71967a1c5257ba0e67e162bf96f91169fab WHIRLPOOL 3200b56fa36c2421a2ce1a1047585f8586d9a4b3672bf4ab5ebe7394a4c356996bd452f2ec5534a8853eb575b7a9be6786fa5f8a74fbbfbb811bc7ef03dc0e9f
+MISC metadata.xml 213 SHA256 25201b50912f8282edccadb7016c2c5028738474a86da19964ee191141663a49 SHA512 66584639f70df67edf15360939d73d26f6097167cc24df4713171d34527fc373a3685b6ad531b9cd629a76e861d13b231284c633d863482b59347580e04037c2 WHIRLPOOL deaa91b1fc4729dd6aedfcc2eb0ea781d1da2ceebea8813d900abd62c8c09f052b482930ab5a54c2e556bddc9896924252c27485575213c07ea685496a751fb8
diff --git a/sys-fs/atari-fdisk/atari-fdisk-0.7.1.5.4.ebuild b/sys-fs/atari-fdisk/atari-fdisk-0.7.1.5.4.ebuild
new file mode 100644
index 000000000000..24091b4d2ac2
--- /dev/null
+++ b/sys-fs/atari-fdisk/atari-fdisk-0.7.1.5.4.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit versionator toolchain-funcs eutils
+
+MY_PV=$(get_version_component_range 1-3)
+DEB_PV=$(get_version_component_range 4-5)
+DESCRIPTION="create and edit the partition table of a disk partitioned in Atari format"
+HOMEPAGE="https://packages.qa.debian.org/a/atari-fdisk.html"
+SRC_URI="mirror://debian/pool/main/a/${PN}/${PN}_${MY_PV}-${DEB_PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+# Note: The code assumes sizeof(long) == 4 everywhere. If you try to
+# use this on 64bit systems (where sizeof(long) == 8), then misbehavior
+# and memory corruption will ensue.
+KEYWORDS="-* m68k x86"
+IUSE=""
+
+S=${WORKDIR}/${PN}-${MY_PV}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-0.7.1.5.4-prompt-logic.patch
+ epatch "${FILESDIR}"/${PN}-0.7.1.5.4-gcc-5-inline.patch
+}
+
+src_compile() {
+ emake \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ CC="$(tc-getCC)" \
+ COMPILE_ARCH=m68k
+}
+
+src_install() {
+ dodoc NEWS README TODO debian/changelog
+ doman debian/atari-fdisk.8
+
+ into /
+ if [[ $(tc-arch) == "m68k" ]] ; then
+ dosbin fdisk
+ dosym fdisk /sbin/atari-fdisk
+ dosym atari-fdisk.8 /usr/share/man/man8/fdisk.8
+ else
+ dosbin atari-fdisk
+ fi
+}
diff --git a/sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-gcc-5-inline.patch b/sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-gcc-5-inline.patch
new file mode 100644
index 000000000000..a7d1486d23c1
--- /dev/null
+++ b/sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-gcc-5-inline.patch
@@ -0,0 +1,22 @@
+gcc 5 changed the default C standard which changes the behavior of extern
+inline. convert these tiny funcs to static inline to fix builds.
+
+https://bugs.gentoo.org/568732
+
+--- a/fdisk.h
++++ b/fdisk.h
+@@ -224,12 +224,12 @@ extern jmp_buf listingbuf;
+ : \
+ (__var = (__typeof(__var))swab32((unsigned long)__var)))
+
+-extern __inline__ unsigned short swab16( unsigned short val )
++static __inline__ unsigned short swab16( unsigned short val )
+ {
+ return( (val << 8) | (val >> 8) );
+ }
+
+-extern __inline__ unsigned long swab32( unsigned long val )
++static __inline__ unsigned long swab32( unsigned long val )
+ {
+ unsigned short vall = val, valh = val >> 16;
+ vall = (vall << 8) | (vall >> 8);
diff --git a/sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-prompt-logic.patch b/sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-prompt-logic.patch
new file mode 100644
index 000000000000..c9a0192ce753
--- /dev/null
+++ b/sys-fs/atari-fdisk/files/atari-fdisk-0.7.1.5.4-prompt-logic.patch
@@ -0,0 +1,15 @@
+there is a function called "primary_possible" which is used to set the
+"prim_possible" variable a few lines before this, but the logic will
+incorrectly test "primary_possible" instead of "prim_possible".
+
+--- a/menufuncs.c
++++ b/menufuncs.c
+@@ -599,7 +599,7 @@ void new_partition( void )
+ }
+ else if (!ext_possible)
+ make_ext = 0;
+- else if (!primary_possible)
++ else if (!prim_possible)
+ make_ext = 1;
+ else
+ /* Create an extended partition if this is the 4th part. (to avoid
diff --git a/sys-fs/atari-fdisk/metadata.xml b/sys-fs/atari-fdisk/metadata.xml
new file mode 100644
index 000000000000..66aa7666588f
--- /dev/null
+++ b/sys-fs/atari-fdisk/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>m68k@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/aufs-headers/Manifest b/sys-fs/aufs-headers/Manifest
new file mode 100644
index 000000000000..9bb304a0cb33
--- /dev/null
+++ b/sys-fs/aufs-headers/Manifest
@@ -0,0 +1,15 @@
+DIST aufs-headers-3.19_p20150323.tar.xz 3136 SHA256 84f70923b23268abe3cf8ccb547f30a40d9d4a8f422ce6f070fb3eb78233ec55 SHA512 a137003b8b09ac3b929914dba27a13a9c2d803733ab7e073388b2a34f329f0b1ffcbe9646787738565ef28d3be77ca4a9bc520d759db4ca799cb2aa3643ee06f WHIRLPOOL 74f36e80805fd17861cd66c9b17f76371b8a726d3422c1ef6dbb8e7cd5ebb350b795bc9026898a472f4091e3745e1683dc18e2bd88fd8492eaaef49dde53968b
+DIST aufs-headers-3.19_p20150420.tar.xz 3140 SHA256 b9b05adbc65d489e41d8290e25ed701350b15eb6033be48a80010661050553de SHA512 257acbdd2439d7250e1903dbd7098d5a71749110caec6f6eecbc2e93b07859b5a751138a8000204ab735e3082ad15fdf249b132a7bac0ad6fbb0994213ab601d WHIRLPOOL 67545b7b7481f48313b4b45bfa027edf86ed5e11c11f01cbfdbdcd38378f5f00709f29ca270fd3341c5745825366105462778f4d309f0f3f9b82265a009be58e
+DIST aufs-headers-4.0_p20150420.tar.xz 3140 SHA256 977e9ca19213faaeae58b2e28b458ee7369c361846f89ec86a043571bab35366 SHA512 fe1d42c66721cf78125070f29fc40dc3f88d84f8a59a35333a427f1d6e0353207ad595a8bd3e12591fcb73a54b76db122d2f2519c7db4dee0557f38dfdc0fe03 WHIRLPOOL 2a92b6dd45a6b52f69e634fffcfbf105fb01f3ad56ee68015c01ed499b0f4fe38e1793b19e05d38f509b2ac1d8f8ce1c1b7183ff746c448697c8270be4be1ee7
+DIST aufs-headers-4.0_p20151116.tar.xz 3136 SHA256 17abd867842d0ff83380576e0824691cf064a2d64fa110530ce4614f5d321fb1 SHA512 58205696948354f8d31230e6b709a136c720de2125bd00fe5929aaa1a70456bccf9c05cbca34412e0092cfd623aedefc8876ece3a7f6b02741a7b1e608aa0f65 WHIRLPOOL 4397bfe743ed047f7f5197edf8e35eaac5c35146b3ee6b7a764225df04f044184f0a5c4b575c3b75c4b02de15be610c237c14060a0cb65c1a40a81769bc7451b
+DIST aufs-headers-4.1_p20161010.tar.xz 3140 SHA256 7ce81a06f2f62c643d417c2e8ff595b99fbdb6339db453c69687e72726781d40 SHA512 d47fe0666c4a1d6d9a78cbd94f790d46fee08bf88a17035ab59b7bb488dc1d8239c612bde06c580edd6227d82993ddbe84a5d576f3daae4d83dd51800fe26b03 WHIRLPOOL fa8286ce53387b4f14586dbf74c3240f7619c85f581987445dabd1571b30c228e86cb2b4166ab9dc1ab8270c4ee2b56090ec6164e2d1924fe175577cc3cd69c4
+DIST aufs-headers-4.1_p20170130.tar.xz 3136 SHA256 80e00d607e000bab68fd2e47600a7d3d8ed46809fca1c0da52d70680de5b8f0d SHA512 d8099a59784739b76eac74de7113754981b6d2d4155eaf42f9d36ea4b6c84f6f49cd96ce0b9e19b2507674cd9b91667fe8520f1cfb7ff0e1d5c58596e784c6d0 WHIRLPOOL 9bb79bd66c908c615e117483cd7fc3f2154d2c0b9104db7d00f710071bcaf603014efce62027cc1135c8612d6a366c7202a74b82a2e1156264feee2cf88db5e7
+EBUILD aufs-headers-3.19_p20150323.ebuild 640 SHA256 ed975b6e61d0ad66311bab4b26063444fd8d986f2ef5a4d737bf96971c3d23ac SHA512 451a6309d90b0eeddb0b98dd84e64bf3af22d1755bf38934884c6d82c4cd896475e7fdd0cdfcf24fbf423fc8af54377cf231a3548ba9bf7d11bf605dbba5315e WHIRLPOOL 475d2f974ebb0bab8958c2673d9cb0a8b3cf13287ceca4b6d972ca395c03a5708847de533a207eab983bd17194cf35f05c63ae02c76e93e4c4628313f1b4595a
+EBUILD aufs-headers-3.19_p20150420.ebuild 640 SHA256 ed975b6e61d0ad66311bab4b26063444fd8d986f2ef5a4d737bf96971c3d23ac SHA512 451a6309d90b0eeddb0b98dd84e64bf3af22d1755bf38934884c6d82c4cd896475e7fdd0cdfcf24fbf423fc8af54377cf231a3548ba9bf7d11bf605dbba5315e WHIRLPOOL 475d2f974ebb0bab8958c2673d9cb0a8b3cf13287ceca4b6d972ca395c03a5708847de533a207eab983bd17194cf35f05c63ae02c76e93e4c4628313f1b4595a
+EBUILD aufs-headers-4.0_p20150420.ebuild 638 SHA256 93af617f60873ae32f118323afa4225f17571be96e888f5d1ad52bf1ab5e9a58 SHA512 71dc711b426ef279932705fe164492e43af91d5daebeebf21c151ec0ed6304cb0c7935f5c80d7cc75a9f426507d5c10517680197b539593318718a542c019579 WHIRLPOOL c6497aeda9cce5cc904d0676493c067310516d7004afb038529b9382271e452b6333c5c1b0a62483c508f1c19c0f45f50022f7f71ca4d0fcbbe54a177b6a2069
+EBUILD aufs-headers-4.0_p20151116.ebuild 640 SHA256 ed975b6e61d0ad66311bab4b26063444fd8d986f2ef5a4d737bf96971c3d23ac SHA512 451a6309d90b0eeddb0b98dd84e64bf3af22d1755bf38934884c6d82c4cd896475e7fdd0cdfcf24fbf423fc8af54377cf231a3548ba9bf7d11bf605dbba5315e WHIRLPOOL 475d2f974ebb0bab8958c2673d9cb0a8b3cf13287ceca4b6d972ca395c03a5708847de533a207eab983bd17194cf35f05c63ae02c76e93e4c4628313f1b4595a
+EBUILD aufs-headers-4.1_p20161010.ebuild 640 SHA256 991144870c207022731c9e411506b0bf46a9239b099a0997f97c0009a68cd6c8 SHA512 30b4c711f2ff535150dacc60442c66073ce28ddd38f0ca39275e7fd682284c06936e85230e2934ba32d2663bd3a91e699d925e9bee11c3727a63864c49cfb92a WHIRLPOOL aa75574d7162bd6eb8ea8b3ed7810cd3312b6946e7369be6aee68e28dfb6a7a804cd0119c6de3efea9ab49d3e9be79f8ff48e6dd10c0521b3969f6b387f6a117
+EBUILD aufs-headers-4.1_p20170130.ebuild 640 SHA256 8fa309c4c2029c58ca31cf4304792462f9092df34aa393b2a482add429e97c00 SHA512 cd147fad8c2c1b38c6ee40c528d64cef282dbd2898250548bf94b4c930c4e55ddcc13a88a8dce76aec13c9013d661d3bc5778dd28f037b6c9387b79a9aa2255f WHIRLPOOL 94a5aca53d79b621b47329f713f3a12b013e1e5cdb872e13b4e19cfd288e0b8282cff56af28b4adb55cd7da37bc12d1186402fff9259b41972c881d547e5f528
+MISC ChangeLog 3751 SHA256 ab759dd55eb9c4f4bcb7c223f0b1d4a7f1dfdadd9a200cb900481ca7cd544a4f SHA512 49869dbfbfc790995928362d1047d5de014908714b306bece63409efe83c267711f76470cc6b94b11110886bf48fd865aa2cb47e668e8ac212df2d9392c5aefb WHIRLPOOL dc389947d43ab3398eb0a0dc5dfc15af5255a0ddf10b519b1687045ce94c24d352a288149d8c755a2eaddd0f338e358b814ec186303ad227e7b8c0c2e81b05b4
+MISC ChangeLog-2015 6274 SHA256 052ab8dadbb95bc33c5a133b255fb5e98d1ea561470a4382dbbde52dc92b6556 SHA512 f52329aba36e506fd5a55e4d9de30b38348784e08e0aa8479515ffd9fa25bc2f76935c86a49665573278be74803dbda04d2cd291c6b480484c8cc70b3826fdb8 WHIRLPOOL ba7be66d4559bcd3c2bc93b9dd46ace4e82c2106c041407c383ced044b534945b783ad8259ad4a9d2555fbf286960f6f00395ed60836ab7ee9682d6b7bdbc321
+MISC metadata.xml 297 SHA256 71c90eca967143ef63c892a3f488b9f5092783860e3501875ae5615fdd724bb8 SHA512 fdf9bf9558a618fd070f65d91b96b9037498503a4df0d06f1b595a9157c34ddaf3c13de9922f32663fb9499394d8c669fe7957dd213ec8e0ed4e66e3638d837f WHIRLPOOL b4f86da8ccc488346e7956268873d83a1f45f2ed04b84c7f5208ecda0badbab76b50de16a728fe3f2d1f58f4794407e5980be4929c3e2e70b7440d54d9ddce26
diff --git a/sys-fs/aufs-headers/aufs-headers-3.19_p20150323.ebuild b/sys-fs/aufs-headers/aufs-headers-3.19_p20150323.ebuild
new file mode 100644
index 000000000000..96d6c06c1dae
--- /dev/null
+++ b/sys-fs/aufs-headers/aufs-headers-3.19_p20150323.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit versionator
+
+DESCRIPTION="User space headers for aufs3"
+HOMEPAGE="http://aufs.sourceforge.net/"
+# Clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-linux.git
+# Check aufs release Branch
+# Create .config
+# make headers_install INSTALL_HDR_PATH=${T}
+# find ${T} -type f \( ! -name "*aufs*" \) -delete
+# find ${T} -type d -empty -delete
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}"
+
+src_install() {
+ doheader -r include/*
+}
diff --git a/sys-fs/aufs-headers/aufs-headers-3.19_p20150420.ebuild b/sys-fs/aufs-headers/aufs-headers-3.19_p20150420.ebuild
new file mode 100644
index 000000000000..96d6c06c1dae
--- /dev/null
+++ b/sys-fs/aufs-headers/aufs-headers-3.19_p20150420.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit versionator
+
+DESCRIPTION="User space headers for aufs3"
+HOMEPAGE="http://aufs.sourceforge.net/"
+# Clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-linux.git
+# Check aufs release Branch
+# Create .config
+# make headers_install INSTALL_HDR_PATH=${T}
+# find ${T} -type f \( ! -name "*aufs*" \) -delete
+# find ${T} -type d -empty -delete
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}"
+
+src_install() {
+ doheader -r include/*
+}
diff --git a/sys-fs/aufs-headers/aufs-headers-4.0_p20150420.ebuild b/sys-fs/aufs-headers/aufs-headers-4.0_p20150420.ebuild
new file mode 100644
index 000000000000..69ae941dbdc8
--- /dev/null
+++ b/sys-fs/aufs-headers/aufs-headers-4.0_p20150420.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit versionator
+
+DESCRIPTION="User space headers for aufs3"
+HOMEPAGE="http://aufs.sourceforge.net/"
+# Clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-linux.git
+# Check aufs release Branch
+# Create .config
+# make headers_install INSTALL_HDR_PATH=${T}
+# find ${T} -type f \( ! -name "*aufs*" \) -delete
+# find ${T} -type d -empty -delete
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+S="${WORKDIR}"
+
+src_install() {
+ doheader -r include/*
+}
diff --git a/sys-fs/aufs-headers/aufs-headers-4.0_p20151116.ebuild b/sys-fs/aufs-headers/aufs-headers-4.0_p20151116.ebuild
new file mode 100644
index 000000000000..96d6c06c1dae
--- /dev/null
+++ b/sys-fs/aufs-headers/aufs-headers-4.0_p20151116.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit versionator
+
+DESCRIPTION="User space headers for aufs3"
+HOMEPAGE="http://aufs.sourceforge.net/"
+# Clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-linux.git
+# Check aufs release Branch
+# Create .config
+# make headers_install INSTALL_HDR_PATH=${T}
+# find ${T} -type f \( ! -name "*aufs*" \) -delete
+# find ${T} -type d -empty -delete
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}"
+
+src_install() {
+ doheader -r include/*
+}
diff --git a/sys-fs/aufs-headers/aufs-headers-4.1_p20161010.ebuild b/sys-fs/aufs-headers/aufs-headers-4.1_p20161010.ebuild
new file mode 100644
index 000000000000..237b5d1a9e20
--- /dev/null
+++ b/sys-fs/aufs-headers/aufs-headers-4.1_p20161010.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit versionator
+
+DESCRIPTION="User space headers for aufs3"
+HOMEPAGE="http://aufs.sourceforge.net/"
+# Clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-linux.git
+# Check aufs release Branch
+# Create .config
+# make headers_install INSTALL_HDR_PATH=${T}
+# find ${T} -type f \( ! -name "*aufs*" \) -delete
+# find ${T} -type d -empty -delete
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}"
+
+src_install() {
+ doheader -r include/*
+}
diff --git a/sys-fs/aufs-headers/aufs-headers-4.1_p20170130.ebuild b/sys-fs/aufs-headers/aufs-headers-4.1_p20170130.ebuild
new file mode 100644
index 000000000000..be408d85c1cd
--- /dev/null
+++ b/sys-fs/aufs-headers/aufs-headers-4.1_p20170130.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit versionator
+
+DESCRIPTION="User space headers for aufs3"
+HOMEPAGE="http://aufs.sourceforge.net/"
+# Clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-linux.git
+# Check aufs release Branch
+# Create .config
+# make headers_install INSTALL_HDR_PATH=${T}
+# find ${T} -type f \( ! -name "*aufs*" \) -delete
+# find ${T} -type d -empty -delete
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S="${WORKDIR}"
+
+src_install() {
+ doheader -r include/*
+}
diff --git a/sys-fs/aufs-headers/metadata.xml b/sys-fs/aufs-headers/metadata.xml
new file mode 100644
index 000000000000..32681342c088
--- /dev/null
+++ b/sys-fs/aufs-headers/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">aufs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/aufs-util/Manifest b/sys-fs/aufs-util/Manifest
new file mode 100644
index 000000000000..42deb221bf6f
--- /dev/null
+++ b/sys-fs/aufs-util/Manifest
@@ -0,0 +1,16 @@
+AUX aufs-util-4.0_p20150420-version.patch 369 SHA256 a170ee4aff98b62fd86cc1de29019303f705d009ccc443f64c1bc12d89681462 SHA512 0ef48129bee4a72372f82e3c3c73379f0f4e55849b3ce2c4ebd930d688bc3878c64582765b5e1dff868d460e5069b9263b3ac998e6cd00fce2b3cdbeef79ffe2 WHIRLPOOL 3f6d90a90a1cc0f73515a32f04926784738f35be383a03880bf269d65994556d3535386978bf8e62be60d17ff7421fb97c544da593bb19de22dc835c0a8c8e35
+DIST aufs-util-3.19_p20150323.tar.xz 97980 SHA256 6a7c342f7cda2abd7ee0eb20c40419c7e34a88cf73d77f4a9a697370a996fe7d SHA512 49f138538ea8997ddb6bedf368815f16a5d42a49b5f72c1548cd9c3718bb00831224e80e9b4dd8c984a6fb40b11223e317757020076d432117541f7d361b892b WHIRLPOOL 59d65f468bbb36ac11f200e45d2449549512a1b2168c4776764a540d22d919969067b551704d55403111a0b68364831152177dda8ace101fe77e158e86d82d25
+DIST aufs-util-3.19_p20150420.tar.xz 97980 SHA256 2ab7f16ee4a67b8ac85903da2e2f6569c8659ee217f060923ba93865a3ff212f SHA512 fe329e9efdbd7b585664b81c2bcd2d63ce5344d013eb2d76c6247e042c1cbe44a4a3ab6e8317734c06c24c1eeffe438d8f91a8e57d95b34e238b21a8b9389e8a WHIRLPOOL 0d3c6aa78e9ecbbb2cabbcddfbf7a9edd1d931b5993047e98f4eaf20e7c60c0077819a2c0b7d0f2e3fd85f6f9eedf86c17c508f3437194e2379295d94e1dc62d
+DIST aufs-util-4.0_p20150420.tar.xz 97924 SHA256 f6d19dad3729da05af9e283e48a4a573b7e00e5e822aa1741e0c225e69171fde SHA512 9a988dcd3640e4797c731ab921161bccbd125fc23475e39681b3a398a238715cb85ac8fe8dfc64053af7478c8c33fe28b7e8cc3a2f97eb31e3c4049305043085 WHIRLPOOL 50baac4fe8bfcc750038e586f9dc3fd2d819ba485951e624c0b07c95c81000fbe7c0b70cf55b61667be7210dff328290cbf95a198680e59549c31c3979d2c471
+DIST aufs-util-4.0_p20151116.tar.xz 98116 SHA256 bc8a47dbf04ea5a0dbb5a3196fdbd174e2b7c2d1fe59a5f2c9641f50e03972f5 SHA512 35da6ccff82d7c74f1f9d680ddf17fc438811565b010ead274febac79b4352ee461d66e48b36123f0091d75a5d1c15ea078038a849ded11a20fd6859015abadc WHIRLPOOL cf42e236b0e08567abef78ba60ba8bebd39e7c160e07aca7d58bcb8d8ad3d3e471b2670f09562f5093111f40f86c01b1ad113270e031a503e5b52906a73146fb
+DIST aufs-util-4.1_p20161010.tar.xz 100124 SHA256 3cf1db96ffc656d4a7121e660e1062cd8c51cfa8035fc7136d84651eca8043db SHA512 2b9eacdafe7f81d84c4d0404e62988222365c00f4fe17abc9038ee6330695445fc49b3b5e5d531afbbbcf690d695297379ca15dedeb3729983d145a751714379 WHIRLPOOL 26ea65e00c00a7911539bfce3db599ba288a8a46d07978cc809f942685da9dbd78709a2b38dc48a5550cc7c0c5938b881cdf28eb2cb13d28e5a42d0babb4e8ea
+DIST aufs-util-4.1_p20170130.tar.xz 100144 SHA256 70be4b1f20d3c14ec2367d9e1d299e6d845560041ed7b45e55518b90fd8a6e5a SHA512 bf47829bdd93472a318e3eb1fd76332a95a42b3ec39b4d3392baac419ca70bd47b7b0c6209592ad70c284ee997a71e3448e79fa0ad6b4a6db16ffa0c47ed11ca WHIRLPOOL bc74e70baf03e2b4ac446e7695b7764b8432eaccddd9b9b47614a6fd7d8b51c56ae2942551713b9a433d80c37c35d512e10ef7157e92767b4a76027174b61d73
+EBUILD aufs-util-3.19_p20150323.ebuild 1005 SHA256 3627d7b0f921cc8c0df67dd005dcb3c806ec191e17aa87b6a29a64f7965efc3d SHA512 0116b36a54f8d97229f5c31a88811a631e2e20c2b281b49cffe295f1008b51da3c7015599548c30c9dbf37e73360a0b16a091717eb85d4c87a129fe4c7939f24 WHIRLPOOL 77616de96e1589625f90b2716c3c4ffa7101c33ec313e3dc3f5fd634abf415262367e6279c1d4cda8f13abe05aea788e61a211626f0189af369d04c1d7182a45
+EBUILD aufs-util-3.19_p20150420.ebuild 1005 SHA256 3627d7b0f921cc8c0df67dd005dcb3c806ec191e17aa87b6a29a64f7965efc3d SHA512 0116b36a54f8d97229f5c31a88811a631e2e20c2b281b49cffe295f1008b51da3c7015599548c30c9dbf37e73360a0b16a091717eb85d4c87a129fe4c7939f24 WHIRLPOOL 77616de96e1589625f90b2716c3c4ffa7101c33ec313e3dc3f5fd634abf415262367e6279c1d4cda8f13abe05aea788e61a211626f0189af369d04c1d7182a45
+EBUILD aufs-util-4.0_p20150420.ebuild 1050 SHA256 c431f73758240af7a277cc58bd90502868a3368b1fae52d3b83f1bb846068e21 SHA512 d31189a425dd920d039920aa482274eb00af24f44a50ff549d36aba06c6d5a87a90b60bda3f2fb3057cb32afee30fbe2870004010f62312a8f8f788eefc078a6 WHIRLPOOL 920edbba5a2cbd97ee297ba08cc89bbb35a9b55749ecbfaade49603d54f4bb7430fc97a59bc28f1d8e157d0d4232649cddf706301dc3629d0dc7b5a5058fc816
+EBUILD aufs-util-4.0_p20151116.ebuild 1011 SHA256 c95bbc7992dbea2b2a77c0bef8417b7aa9bc29b1480b0edc90f2a25133f42455 SHA512 e9aae683088ed63823f1c0586456ac7f1b3bd3bbf837ff2e8abb71a1e33acf005a0e1ff7c500b364820cb172444980822692250b582a838b76e6ea74e3fb6474 WHIRLPOOL fd6d1ec5370fd4f17769dfad33ff862b41eeb6107a5280385515b826ac2c79c27502679827ee38d773c76c372949f5609d02b9461f28eb2727803a48114d57f9
+EBUILD aufs-util-4.1_p20161010.ebuild 1020 SHA256 6aa9c4cc47255c8e667e7e8d1605eba82ee6d481a2850a1498b8d3d309ac6e5a SHA512 10fa15fac1bf6d226030a9511ff93ec95f3b7edf2c7f38cac44b148326857c162d8bedbb9dbeea1fba88e9e93ed0f9d022db05104b1e9a8500f5c309c9df9fe1 WHIRLPOOL 145adcfd7e2ceae3fc196ab270938a324e9fd4bd2dd6850b1cfcfcc1953e08a4075ee31b9eb3ddb09857d0ebeda0b3b874808fe7f96f7fa5ad9cad9d22301021
+EBUILD aufs-util-4.1_p20170130.ebuild 1020 SHA256 b64f51727064537c298a86593489e8ebb08042a9bc925175ab62d38543bc5d10 SHA512 e568606dcd2d50839433cb5acaa1e41be730f7feadec891541fc1ab7b8fd6a1d59a5b00fe6140a2b8d5604a55bdd8054a98de907109ff1f5992e7e785fff6f33 WHIRLPOOL 6df8ffc583a83baa3f2395254bfd9cce28537eaf796136b46147c5a84697eab81fc1313229fdd4b44f144bd38d3ace5b9d0209fb57439cb9d1c7e0093399bea5
+MISC ChangeLog 3695 SHA256 8c6a89a1448dae4211bee559d535c329bbb7bd7a9e62c66b1727921329c36499 SHA512 b882744e205f2b56053caa3737d6b6a1161013e8ec3c25a9a3b4c988ff808ec5144a5404583a40ba5b1e85bf2f5bd8ae8988ffe8ddf0789d1eea75b2c57102c2 WHIRLPOOL 2c795dfcf7e91d6b551982008ab97bac12e75302889624e88f1f85a818b506c1da5c3636caedb9c9c12ab66c1eb1867e25ece7ce8b770b7530c1f5c6744cb92b
+MISC ChangeLog-2015 7667 SHA256 83a8337e5df8b0cc8f32e075ef6e50c5d25bdbace6e6afd92b896cdacc51799a SHA512 7195f931b364b0dad33057dd4a1da19bf154705d90bcd9bd39d9885ca7eefa2112e1f7ccbb144da1c12a31d8dd4c04d1e63f82ae1497982740b954908d54a37d WHIRLPOOL a7e0e76afb2170036fabd6f3a861d60feedb4bf40e6575bcb3d4e93067e0dfa6e41d045a81c218891c0ced429fd02cd2a89edebe114844635f89e586b4063bf0
+MISC metadata.xml 297 SHA256 71c90eca967143ef63c892a3f488b9f5092783860e3501875ae5615fdd724bb8 SHA512 fdf9bf9558a618fd070f65d91b96b9037498503a4df0d06f1b595a9157c34ddaf3c13de9922f32663fb9499394d8c669fe7957dd213ec8e0ed4e66e3638d837f WHIRLPOOL b4f86da8ccc488346e7956268873d83a1f45f2ed04b84c7f5208ecda0badbab76b50de16a728fe3f2d1f58f4794407e5980be4929c3e2e70b7440d54d9ddce26
diff --git a/sys-fs/aufs-util/aufs-util-3.19_p20150323.ebuild b/sys-fs/aufs-util/aufs-util-3.19_p20150323.ebuild
new file mode 100644
index 000000000000..00e8f53be185
--- /dev/null
+++ b/sys-fs/aufs-util/aufs-util-3.19_p20150323.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit flag-o-matic linux-info multilib toolchain-funcs
+
+DESCRIPTION="Utilities are always necessary for aufs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+# git archive -v --prefix=${P}/ --remote=git://git.code.sf.net/p/aufs/aufs-util aufs3.14 -o ${P}.tar
+# xz -ve9 *.tar
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ !sys-fs/aufs2
+ !<sys-fs/aufs3-3_p20130318"
+DEPEND="${RDEPEND}
+ ~sys-fs/aufs-headers-${PV}"
+
+src_prepare() {
+ sed \
+ -e "/LDFLAGS += -static -s/d" \
+ -e "/CFLAGS/s:-O::g" \
+ -i Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e "s:m 644 -s:m 644:g" \
+ -e "s:/usr/lib:/usr/$(get_libdir):g" \
+ -i libau/Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e '/LDLIBS/s:-lrt::g' \
+ -e '/LDLIBS/s:$: -lrt:g' \
+ -i fhsm/Makefile || die
+
+ tc-export CC AR
+ export HOSTCC=$(tc-getCC)
+}
diff --git a/sys-fs/aufs-util/aufs-util-3.19_p20150420.ebuild b/sys-fs/aufs-util/aufs-util-3.19_p20150420.ebuild
new file mode 100644
index 000000000000..00e8f53be185
--- /dev/null
+++ b/sys-fs/aufs-util/aufs-util-3.19_p20150420.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit flag-o-matic linux-info multilib toolchain-funcs
+
+DESCRIPTION="Utilities are always necessary for aufs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+# git archive -v --prefix=${P}/ --remote=git://git.code.sf.net/p/aufs/aufs-util aufs3.14 -o ${P}.tar
+# xz -ve9 *.tar
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ !sys-fs/aufs2
+ !<sys-fs/aufs3-3_p20130318"
+DEPEND="${RDEPEND}
+ ~sys-fs/aufs-headers-${PV}"
+
+src_prepare() {
+ sed \
+ -e "/LDFLAGS += -static -s/d" \
+ -e "/CFLAGS/s:-O::g" \
+ -i Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e "s:m 644 -s:m 644:g" \
+ -e "s:/usr/lib:/usr/$(get_libdir):g" \
+ -i libau/Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e '/LDLIBS/s:-lrt::g' \
+ -e '/LDLIBS/s:$: -lrt:g' \
+ -i fhsm/Makefile || die
+
+ tc-export CC AR
+ export HOSTCC=$(tc-getCC)
+}
diff --git a/sys-fs/aufs-util/aufs-util-4.0_p20150420.ebuild b/sys-fs/aufs-util/aufs-util-4.0_p20150420.ebuild
new file mode 100644
index 000000000000..5d9dae2940a9
--- /dev/null
+++ b/sys-fs/aufs-util/aufs-util-4.0_p20150420.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info multilib toolchain-funcs
+
+DESCRIPTION="Utilities are always necessary for aufs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+# git archive -v --prefix=${P}/ --remote=git://git.code.sf.net/p/aufs/aufs-util aufs4.0 -o ${P}.tar
+# xz -ve9 *.tar
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="
+ !sys-fs/aufs2
+ !<sys-fs/aufs3-3_p20130318"
+DEPEND="${RDEPEND}
+ ~sys-fs/aufs-headers-${PV}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-version.patch
+ sed \
+ -e "/LDFLAGS += -static -s/d" \
+ -e "/CFLAGS/s:-O::g" \
+ -i Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e "s:m 644 -s:m 644:g" \
+ -e "s:/usr/lib:/usr/$(get_libdir):g" \
+ -i libau/Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e '/LDLIBS/s:-lrt::g' \
+ -e '/LDLIBS/s:$: -lrt:g' \
+ -i fhsm/Makefile || die
+
+ tc-export CC AR
+ export HOSTCC=$(tc-getCC)
+}
diff --git a/sys-fs/aufs-util/aufs-util-4.0_p20151116.ebuild b/sys-fs/aufs-util/aufs-util-4.0_p20151116.ebuild
new file mode 100644
index 000000000000..ef0ac24fc292
--- /dev/null
+++ b/sys-fs/aufs-util/aufs-util-4.0_p20151116.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info multilib toolchain-funcs
+
+DESCRIPTION="Utilities are always necessary for aufs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+# git archive -v --prefix=${P}/ --remote=git://git.code.sf.net/p/aufs/aufs-util aufs4.0 -o ${P}.tar
+# xz -ve9 *.tar
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ !sys-fs/aufs2
+ !<sys-fs/aufs3-3_p20130318"
+DEPEND="${RDEPEND}
+ ~sys-fs/aufs-headers-${PV}"
+
+src_prepare() {
+ sed \
+ -e "/LDFLAGS += -static -s/d" \
+ -e "/CFLAGS/s:-O::g" \
+ -i Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e "s:m 644 -s:m 644:g" \
+ -e "s:/usr/lib:/usr/$(get_libdir):g" \
+ -i libau/Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e '/LDLIBS/s:-lrt::g' \
+ -e '/LDLIBS/s:$: -lrt:g' \
+ -i fhsm/Makefile || die
+
+ tc-export CC AR
+ export HOSTCC=$(tc-getCC)
+}
diff --git a/sys-fs/aufs-util/aufs-util-4.1_p20161010.ebuild b/sys-fs/aufs-util/aufs-util-4.1_p20161010.ebuild
new file mode 100644
index 000000000000..6ccd17ef6704
--- /dev/null
+++ b/sys-fs/aufs-util/aufs-util-4.1_p20161010.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info multilib toolchain-funcs
+
+DESCRIPTION="Utilities are always necessary for aufs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+# git archive -v --prefix=${P}/ --remote=git://git.code.sf.net/p/aufs/aufs-util aufs4.0 -o ${P}.tar
+# xz -ve9 *.tar
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ !sys-fs/aufs2
+ !<sys-fs/aufs3-3_p20130318"
+DEPEND="${RDEPEND}
+ ~sys-fs/aufs-headers-${PV}"
+
+src_prepare() {
+ sed \
+ -e "/LDFLAGS += -static -s/d" \
+ -e "/CFLAGS/s:-O::g" \
+ -i Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e "s:m 644 -s:m 644:g" \
+ -e "s:/usr/lib:/usr/$(get_libdir):g" \
+ -i libau/Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e '/LDLIBS/s:-lrt::g' \
+ -e '/LDLIBS/s:$: -lrt:g' \
+ -i fhsm/Makefile || die
+
+ tc-export CC AR
+ export HOSTCC=$(tc-getCC)
+ default
+}
diff --git a/sys-fs/aufs-util/aufs-util-4.1_p20170130.ebuild b/sys-fs/aufs-util/aufs-util-4.1_p20170130.ebuild
new file mode 100644
index 000000000000..a709e0871aa6
--- /dev/null
+++ b/sys-fs/aufs-util/aufs-util-4.1_p20170130.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info multilib toolchain-funcs
+
+DESCRIPTION="Utilities are always necessary for aufs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+# git archive -v --prefix=${P}/ --remote=git://git.code.sf.net/p/aufs/aufs-util aufs4.0 -o ${P}.tar
+# xz -ve9 *.tar
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ !sys-fs/aufs2
+ !<sys-fs/aufs3-3_p20130318"
+DEPEND="${RDEPEND}
+ ~sys-fs/aufs-headers-${PV}"
+
+src_prepare() {
+ sed \
+ -e "/LDFLAGS += -static -s/d" \
+ -e "/CFLAGS/s:-O::g" \
+ -i Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e "s:m 644 -s:m 644:g" \
+ -e "s:/usr/lib:/usr/$(get_libdir):g" \
+ -i libau/Makefile || die
+
+ sed \
+ -e '/LDFLAGS/s: -s::g' \
+ -e '/LDLIBS/s:-lrt::g' \
+ -e '/LDLIBS/s:$: -lrt:g' \
+ -i fhsm/Makefile || die
+
+ tc-export CC AR
+ export HOSTCC=$(tc-getCC)
+ default
+}
diff --git a/sys-fs/aufs-util/files/aufs-util-4.0_p20150420-version.patch b/sys-fs/aufs-util/files/aufs-util-4.0_p20150420-version.patch
new file mode 100644
index 000000000000..b861bb2bb0b7
--- /dev/null
+++ b/sys-fs/aufs-util/files/aufs-util-4.0_p20150420-version.patch
@@ -0,0 +1,16 @@
+ ver.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ver.c b/ver.c
+index 200b119..38abdd5 100644
+--- a/ver.c
++++ b/ver.c
+@@ -25,7 +25,7 @@
+ int main(int argc, char *argv[])
+ {
+ regex_t preg;
+- const char *pat = "^4\\.[0-9][0-9]";
++ const char *pat = "^4\\.[0-9][0-9]?";
+
+ if (regcomp(&preg, pat, REG_EXTENDED | REG_NOSUB))
+ AuFin("regcomp");
diff --git a/sys-fs/aufs-util/metadata.xml b/sys-fs/aufs-util/metadata.xml
new file mode 100644
index 000000000000..32681342c088
--- /dev/null
+++ b/sys-fs/aufs-util/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">aufs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/aufs3/Manifest b/sys-fs/aufs3/Manifest
new file mode 100644
index 000000000000..61c23190848c
--- /dev/null
+++ b/sys-fs/aufs3/Manifest
@@ -0,0 +1,15 @@
+AUX README.gentoo 911 SHA256 9b9eb681f692f052105bf3d3d15e689685a5fcfba1d90a88b3351158d4cebd97 SHA512 f22f1e1fae62c7a03230194c05701dc03502b84a52cfc8aacb5fbfab2c1f8bed9d4f3f97d0095578d497b09f818a3a45a04ef8527983e0cbfa9db10baeb1b691 WHIRLPOOL 73c88b3df5e691659e2e2044bda00119e742178868fa74ca7990c3d0204eaca495bc625353c22804c7420db807774941cdddd2e901c2cbceb36aa220ee3d4d95
+AUX pax-3.11.patch 2722 SHA256 133d80384de031c73d989a36b4e88571a5b1084c51366cfec3f5234e7e1ef446 SHA512 dc7e8eba4aa01552ec0d44636db99aa7c3d9af11f1182165ad7da383f9ed4cd92e4b9aef779b3d2bcb62797fd7d673ae35294ee1b9b768320be5bb5a03893de8 WHIRLPOOL e329ea70448d30510b5dc64ba9eca54c969c6781dc75ed326714ad0de90d10f43844e62e840cf1bfaed0ebb166b9f8a3cdef295ff06f5b38b4e5d75857e3fb46
+DIST aufs3-standalone-3_p20160219.tar.xz 3256736 SHA256 23652c6d8fd12a9a29454293f13add7e0f97f2ec542b69e5dfecbc99064c4247 SHA512 af65cb3d9890c05ec24d64d27759d8c0fa98f35887d62a7ec77ebc496ec9de02563bc5a3e05b67c342926b062fe077c7a8de543291177a4e0210b2159027e1af WHIRLPOOL 1ed7042c9e1e8efc29fa36fcbd2f09a10ffa51cc9d6b349869f6f6947ed27399deb2fa1035df7dbaf69dcbfa7eddb6f240b934a343732ace26f77bcf2e72167a
+DIST aufs3-standalone-3_p20160223.tar.xz 3270932 SHA256 4e213e678991a028595893a2c3425894bef021cd374a6798f80ad8863bf7f593 SHA512 37805b54a2471def5948d3484349de7bfc4fee09788b36b9589aba2006484cf330bb642f27862d74a528999cf2e7fa4888b5d46b54bb3e7f8468c6857f34730f WHIRLPOOL 1e42d1a32a62b25923041b8f71b00f8ae1a8b8524752b1d796ae2fd2ada79792cbe2a35ad380e24ecad8374bbd432674763d69ffa9144dfc3074742b33d4d138
+DIST aufs3-standalone-3_p20160627.tar.xz 3443904 SHA256 1802aa5232780f2840efc8cdd85b74081632b2f9e83e97de0a89a607887710ee SHA512 6c6256d5f042dbcde26abfb665fdfd8eee4193104fc3270371fdf503a560dd888b5306e3cfe4c6a1f95cd669b41279573dfc54aec8b5b5327220fa055bbbdb3d WHIRLPOOL 88b5768910562c0c9eb28796d1031d85a68123f0ab43427355f2bb8b64a1a409aacc89be9ca77aeffd92b18524827c40826c02ef545c24cffcfe03d94eb913a8
+DIST aufs3-standalone-3_p20160815.tar.xz 3501932 SHA256 83982c675faf4fa0bcd64b1f95de9cbba09e4b90da3294af1e8218214d384df7 SHA512 502a1516e0e9f307a9e29669799f9572b225b38ed7c790130bd9d9c01fcb83d2bf81ca5d27136827b595838e9ee42544d9be130bf632be6a61cdf7e07d0f9676 WHIRLPOOL 6d7df7051f287dc6cc847ef817e28f9401f22b874fcbfa7f4fccaf0e8d9dfe8bc7ac3834c1494ffe3da473e6bf36abee8cfd1eeeaed4d13c03fe18318470586a
+DIST aufs3-standalone-3_p20160822.tar.xz 3515768 SHA256 77d79912c66913e584a746b1f1aea8708eb8190522d2473e13582251a6e33a69 SHA512 b3f6dc4883f565f73a81ff3aaf90bdca41419fe506c16b027e471e9901dce83a1e4d7a217574b686389433e2d7b280a53c0dbe805fad709f83cd5a689a53cc13 WHIRLPOOL 92a39bdf00ef7cc6f854e0823f784b0577709d84b07f8db1457be5f75bf0c102626ff62d38f57658253bf619b71f45070904275b1987ed9dd53c17ff25d3439c
+EBUILD aufs3-3_p20160219.ebuild 5163 SHA256 f872ca4e5571507d9bb8ce200a4d36acd11f108a309cbd1d582c5d286199c95a SHA512 67991d3aa05dfc4589d86022c9f088f05d8ce9b802e9eba9bf7433e98462a6ca5f2811080e28341383f2fddc3f35fdcef64c8899060d42b5e1c215afa4ba3151 WHIRLPOOL a1cda0eded9f8ca19dce1a13260c8df5d6bb891e7e1a517837920d4c6d2d957f739ac0305d7436c517b0d11a3a4b3a0e7b11f87575ab4bfb72a86916ab20d3f5
+EBUILD aufs3-3_p20160223.ebuild 5165 SHA256 ece18267c5a3d9d434f6c55aaebb46ab1bb96e28ec7bb4843e6fbdc2a89235a9 SHA512 fa351d2b7b80bc8ea214e709fabaff8c04afca77133207cf0f991268c5f23482d622d5d61a6246486bece5deec5d70656d4db330736fab7dceb35c7af391e216 WHIRLPOOL 6ab88608982d2af766e9ae6df383a819ff489dd1738c5b54c670b9533464d6e41e455ac7be4b5d9ca9d04ffae37c9847d3d0371ca5f076a5a8200305a73209cd
+EBUILD aufs3-3_p20160627.ebuild 5165 SHA256 ece18267c5a3d9d434f6c55aaebb46ab1bb96e28ec7bb4843e6fbdc2a89235a9 SHA512 fa351d2b7b80bc8ea214e709fabaff8c04afca77133207cf0f991268c5f23482d622d5d61a6246486bece5deec5d70656d4db330736fab7dceb35c7af391e216 WHIRLPOOL 6ab88608982d2af766e9ae6df383a819ff489dd1738c5b54c670b9533464d6e41e455ac7be4b5d9ca9d04ffae37c9847d3d0371ca5f076a5a8200305a73209cd
+EBUILD aufs3-3_p20160815.ebuild 5165 SHA256 ece18267c5a3d9d434f6c55aaebb46ab1bb96e28ec7bb4843e6fbdc2a89235a9 SHA512 fa351d2b7b80bc8ea214e709fabaff8c04afca77133207cf0f991268c5f23482d622d5d61a6246486bece5deec5d70656d4db330736fab7dceb35c7af391e216 WHIRLPOOL 6ab88608982d2af766e9ae6df383a819ff489dd1738c5b54c670b9533464d6e41e455ac7be4b5d9ca9d04ffae37c9847d3d0371ca5f076a5a8200305a73209cd
+EBUILD aufs3-3_p20160822.ebuild 5165 SHA256 ece18267c5a3d9d434f6c55aaebb46ab1bb96e28ec7bb4843e6fbdc2a89235a9 SHA512 fa351d2b7b80bc8ea214e709fabaff8c04afca77133207cf0f991268c5f23482d622d5d61a6246486bece5deec5d70656d4db330736fab7dceb35c7af391e216 WHIRLPOOL 6ab88608982d2af766e9ae6df383a819ff489dd1738c5b54c670b9533464d6e41e455ac7be4b5d9ca9d04ffae37c9847d3d0371ca5f076a5a8200305a73209cd
+MISC ChangeLog 7593 SHA256 adf826b51edf593c4877059a5bc244368a16a5941787ea2e6b73d20d33784a0e SHA512 f4846c27c31518bf75929ef75d54104282b386788c57c1cb46fc5313cc73bc9ae0e5d7b7914e573bbe2f1e4d91a28fc82b47434a229ad914add894ec68497572 WHIRLPOOL 38cefa160333b6b99f219ae1df920a7bf8bf6f95c2ef763c071b23e8678a8a5d3e3d46c8348a5db53916f9f261dda42a41d64410703106d2ae7297183329b23f
+MISC ChangeLog-2015 30608 SHA256 082107edc4a662f0042556d0d2d5f49021deef459c860a38803deab9a3813bf1 SHA512 6d04021cb63434fb76b0bae294eb36c842f0a8d2685369623d798aec8c6a47238a1f6651979d6dbcc88b7496dfc86c35fe8a0a707ea6a0491654d1331819a393 WHIRLPOOL d4e004f260989f034f04aa6a12911e599b1a745d545b40a94064e4929d86e1bbd6b6fc99800707d32b929ba744ba77b375395abda3dbc1581750586e864216b5
+MISC metadata.xml 809 SHA256 36364d972f838e36cbf1cb5b5857077cac43ba9a05ae57be7aa9050af93b1e25 SHA512 043c012f55866721363c82fd80007c4ed8420fd8eec95459aac9fb913d855a0be5f135035ba5e3fcab668641ca61897d71ea8e48c1d45f171d418c812620d576 WHIRLPOOL 4ce31dd2931da5af1ae06aa0cce080196e9500ee7cf1760c93e0fa8445a84a6ea10a76b40ac0027b75e73f9507f5a7966636f1bf619e04d04fd31956bdd484ee
diff --git a/sys-fs/aufs3/aufs3-3_p20160219.ebuild b/sys-fs/aufs3/aufs3-3_p20160219.ebuild
new file mode 100644
index 000000000000..8c40ec61abbe
--- /dev/null
+++ b/sys-fs/aufs3/aufs3-3_p20160219.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=19
+# highest supported version
+KERN_MAX_VER=20
+# lowest supported version
+KERN_MIN_VER=18
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs3-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs4"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 3 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 3 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "25" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".25+
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "1" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".1+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-3.11.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs3-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs3/aufs3-3_p20160223.ebuild b/sys-fs/aufs3/aufs3-3_p20160223.ebuild
new file mode 100644
index 000000000000..2a786f02ab2c
--- /dev/null
+++ b/sys-fs/aufs3/aufs3-3_p20160223.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=19
+# highest supported version
+KERN_MAX_VER=20
+# lowest supported version
+KERN_MIN_VER=18
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs3-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs4"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 3 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 3 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "25" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".25+
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "1" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".1+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-3.11.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs3-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs3/aufs3-3_p20160627.ebuild b/sys-fs/aufs3/aufs3-3_p20160627.ebuild
new file mode 100644
index 000000000000..2a786f02ab2c
--- /dev/null
+++ b/sys-fs/aufs3/aufs3-3_p20160627.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=19
+# highest supported version
+KERN_MAX_VER=20
+# lowest supported version
+KERN_MIN_VER=18
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs3-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs4"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 3 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 3 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "25" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".25+
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "1" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".1+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-3.11.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs3-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs3/aufs3-3_p20160815.ebuild b/sys-fs/aufs3/aufs3-3_p20160815.ebuild
new file mode 100644
index 000000000000..2a786f02ab2c
--- /dev/null
+++ b/sys-fs/aufs3/aufs3-3_p20160815.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=19
+# highest supported version
+KERN_MAX_VER=20
+# lowest supported version
+KERN_MIN_VER=18
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs3-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs4"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 3 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 3 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "25" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".25+
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "1" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".1+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-3.11.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs3-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs3/aufs3-3_p20160822.ebuild b/sys-fs/aufs3/aufs3-3_p20160822.ebuild
new file mode 100644
index 000000000000..2a786f02ab2c
--- /dev/null
+++ b/sys-fs/aufs3/aufs3-3_p20160822.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=19
+# highest supported version
+KERN_MAX_VER=20
+# lowest supported version
+KERN_MIN_VER=18
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs3-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs4"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 3 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 3 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "25" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".25+
+ elif [[ "${KV_MINOR}" == "18" ]] && [[ "${KV_PATCH}" -ge "1" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".1+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs3"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs3 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-3.11.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs3-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs3/files/README.gentoo b/sys-fs/aufs3/files/README.gentoo
new file mode 100644
index 000000000000..64dfe94b4bda
--- /dev/null
+++ b/sys-fs/aufs3/files/README.gentoo
@@ -0,0 +1,20 @@
+There several other patches in aufs3. They are all
+optional. When you meet some problems, they will help you. You can find them
+in the documentation directory.
+
+ - aufs3-loopback.patch
+ Supports a nested loopback mount in a branch-fs. This patch is
+ unnecessary until aufs produces a message such like "you may want to try
+ another patch for loopback file".
+
+ - vfs-ino.patch
+ Modifies a system global kernel internal function get_next_ino() in
+ order to stop assigning 0 for an inode-number. Not directly related to
+ aufs, but recommended generally.
+
+ - tmpfs-idr.patch
+ Keeps the tmpfs inode number as the lowest value. Effective to reduce
+ the size of aufs XINO files for tmpfs branch. Also it prevents the
+ duplication of inode number, which is important for backup
+ tools, aubrsync or other utilities. When you find aufs XINO files for
+ tmpfs branch growing too much, try this patch.
diff --git a/sys-fs/aufs3/files/pax-3.11.patch b/sys-fs/aufs3/files/pax-3.11.patch
new file mode 100644
index 000000000000..cf216a5708ca
--- /dev/null
+++ b/sys-fs/aufs3/files/pax-3.11.patch
@@ -0,0 +1,89 @@
+--- a/fs/aufs/dynop.c 2012-10-09 15:41:32.652989534 -0400
++++ b/fs/aufs/dynop.c 2012-10-09 15:41:58.562989820 -0400
+@@ -149,9 +149,11 @@
+ #define DySet(func, dst, src, h_op, h_sb) do { \
+ DyDbgInc(cnt); \
+ if (h_op->func) { \
+- if (src.func) \
+- dst.func = src.func; \
+- else \
++ if (src.func) { \
++ pax_open_kernel(); \
++ *(void **)&dst.func = src.func; \
++ pax_close_kernel(); \
++ } else \
+ AuDbg("%s %s\n", au_sbtype(h_sb), #func); \
+ } \
+ } while (0)
+@@ -159,7 +161,9 @@
+ #define DySetForce(func, dst, src) do { \
+ AuDebugOn(!src.func); \
+ DyDbgInc(cnt); \
+- dst.func = src.func; \
++ pax_open_kernel(); \
++ *(void **)&dst.func = src.func; \
++ pax_close_kernel(); \
+ } while (0)
+
+ #define DySetAop(func) \
+@@ -266,15 +270,17 @@
+ */
+ static void dy_adx(struct au_dyaop *dyaop, int do_dx)
+ {
++ pax_open_kernel();
+ if (!do_dx) {
+- dyaop->da_op.direct_IO = NULL;
+- dyaop->da_op.get_xip_mem = NULL;
++ *(void **)&dyaop->da_op.direct_IO = NULL;
++ *(void **)&dyaop->da_op.get_xip_mem = NULL;
+ } else {
+- dyaop->da_op.direct_IO = aufs_aop.direct_IO;
+- dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem;
++ *(void **)&dyaop->da_op.direct_IO = aufs_aop.direct_IO;
++ *(void **)&dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem;
+ if (!dyaop->da_get_xip_mem)
+- dyaop->da_op.get_xip_mem = NULL;
++ *(void **)&dyaop->da_op.get_xip_mem = NULL;
+ }
++ pax_close_kernel();
+ }
+
+ static struct au_dyaop *dy_aget(struct au_branch *br,
+--- a/fs/aufs/f_op_sp.c 2012-10-09 15:41:32.652989534 -0400
++++ b/fs/aufs/f_op_sp.c 2012-10-09 15:41:58.562989820 -0400
+@@ -104,7 +104,7 @@
+ static int aufs_open_sp(struct inode *inode, struct file *file);
+ static struct au_sp_fop {
+ int done;
+- struct file_operations fop; /* not 'const' */
++ file_operations_no_const fop; /* not 'const' */
+ spinlock_t spin;
+ } au_sp_fop[AuSp_Last] = {
+ [AuSp_FIFO] = {
+@@ -157,8 +157,10 @@
+ h_file = au_hf_top(file);
+ spin_lock(&p->spin);
+ if (!p->done) {
+- p->fop = *h_file->f_op;
++ pax_open_kernel();
++ memcpy((void *)&p->fop, h_file->f_op, sizeof(p->fop));
+ p->fop.owner = THIS_MODULE;
++ pax_close_kernel();
+ if (p->fop.aio_read)
+ p->fop.aio_read = aufs_aio_read_sp;
+ if (p->fop.aio_write)
+--- a/fs/aufs/sysfs.c 2013-10-20 17:08:37.000000000 -0400
++++ b/fs/aufs/sysfs.c 2013-10-19 17:08:29.000000000 -0400
+@@ -233,8 +233,10 @@
+ for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) {
+ attr = &br_sysfs->attr;
+ sysfs_attr_init(attr);
+- attr->name = br_sysfs->name;
+- attr->mode = S_IRUGO;
++ pax_open_kernel();
++ *(void **)&attr->name = br_sysfs->name;
++ *(void **)&attr->mode = S_IRUGO;
++ pax_close_kernel();
+ br_sysfs++;
+ }
+ }
diff --git a/sys-fs/aufs3/metadata.xml b/sys-fs/aufs3/metadata.xml
new file mode 100644
index 000000000000..f0e5c642768d
--- /dev/null
+++ b/sys-fs/aufs3/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="debug">Enable additional debugging support</flag>
+ <flag name="hfs">Enable hfs support</flag>
+ <flag name="fuse">Enable fuse support</flag>
+ <flag name="inotify">Enable inotify support</flag>
+ <flag name="kernel-patch">Patch the current kernel for aufs3 support</flag>
+ <flag name="nfs">Enable support for nfs export</flag>
+ <flag name="pax_kernel">Apply patch needed for pax enabled kernels</flag>
+ <flag name="ramfs">Enable initramfs/rootfs support</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">aufs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/aufs4/Manifest b/sys-fs/aufs4/Manifest
new file mode 100644
index 000000000000..099bbae357a2
--- /dev/null
+++ b/sys-fs/aufs4/Manifest
@@ -0,0 +1,25 @@
+AUX README.gentoo 911 SHA256 9b9eb681f692f052105bf3d3d15e689685a5fcfba1d90a88b3351158d4cebd97 SHA512 f22f1e1fae62c7a03230194c05701dc03502b84a52cfc8aacb5fbfab2c1f8bed9d4f3f97d0095578d497b09f818a3a45a04ef8527983e0cbfa9db10baeb1b691 WHIRLPOOL 73c88b3df5e691659e2e2044bda00119e742178868fa74ca7990c3d0204eaca495bc625353c22804c7420db807774941cdddd2e901c2cbceb36aa220ee3d4d95
+AUX pax-4.patch 2722 SHA256 133d80384de031c73d989a36b4e88571a5b1084c51366cfec3f5234e7e1ef446 SHA512 dc7e8eba4aa01552ec0d44636db99aa7c3d9af11f1182165ad7da383f9ed4cd92e4b9aef779b3d2bcb62797fd7d673ae35294ee1b9b768320be5bb5a03893de8 WHIRLPOOL e329ea70448d30510b5dc64ba9eca54c969c6781dc75ed326714ad0de90d10f43844e62e840cf1bfaed0ebb166b9f8a3cdef295ff06f5b38b4e5d75857e3fb46
+DIST aufs4-standalone-0_pre20160219.tar.xz 1049884 SHA256 22d0f723ff52190670da0e3dc4a3f0b81ba0b3b6f287484cf81165c6cd4b2040 SHA512 95999199ac0d430a6ab2dbda75f34d9640179865d5be3b1db119c1e613f5bd167193dd7cf662ebcea9d81ad8008d9dbd8dd835d5a7a297456f8587364e7f16b1 WHIRLPOOL a8b7a9c80c7715d0f75c9ee15e78bfbef2db11d4d9fea6ac1e8163f86b735c57b7e6a5612ac269fbcc2c483537a06c1e7704b9c3db2c7dff09b08d228ba607a1
+DIST aufs4-standalone-0_pre20160223.tar.xz 1072092 SHA256 46c9e0bb68902fb92028a435fab9d31a6193407af8c29d8ce0cdefd2e841b723 SHA512 adafd18416a43af076292ea216db73f0569f25ce34d03ebde5aea049745c47979cc4778eef8f671d48a5f7d7ac5751f788d286f467a106c6660412e88442b18e WHIRLPOOL c41763b4abb78afb291a4fbe7e1010ffc6c82a62a9d8b8b0cd23ecff65ae8f6142265f7de9f4e5ee260e0f98ca04f08881778ad7035ecde6e0c910d8a38e3be7
+DIST aufs4-standalone-0_pre20160627.tar.xz 1427036 SHA256 47e8fbaef29d62b7d5856103966e254840771d329dc2a181014d43a19629063b SHA512 c2e3d92fc6ca8968071a40d2773b63ec21fdd2bb12e8375dced30279ffcafcd06cacb0c20a6bb5378704c5de670426d0d92149bb5737507e3515b5df648e1b81 WHIRLPOOL 813262655193abf9fc61b993f70c11e052f5803b66ac8fdfcbd4b476ef03e7ae7c7be13520e9c7c3349d1ab89628dabf6b01a81f98ed82082c15515922ab07c5
+DIST aufs4-standalone-0_pre20160815.tar.xz 1648360 SHA256 35b2b8c558a9927eb6079055fbe040bc790d31131193afde6270f5cc6dd19603 SHA512 a9a86ce4fce04100704cce1acf04b8eeff6a2b81cc591d3ceeafa736a3a8e8fed59538f9301af6cb3ec496dd914b81a3134669ba8871624b2266cc3f731b9fae WHIRLPOOL 68c6241c7680670e68d2b09fdc8008a90b666c9baf49960785c626637d412811ba12582b62830a49309cc8f2b36a1ff874973ad89eb61b80ed0cf02e58a86a53
+DIST aufs4-standalone-0_pre20161010.tar.xz 1635556 SHA256 86d9ba7c401640a990991ca7dbea587ac755253791e0d325ec77ca01730359e3 SHA512 520f47255ee33762f111f93ceeaaee9cf6136c13fb6968a7a7d49388c189e112875f076c5fecdad2123d137a2bc0b74e9c0e6e8913e75dfede30e7a65dd74616 WHIRLPOOL 6b8b1836093ba29bfbf24a6a02231c9514a406d99a5b78bd9db660d388efc9f6e09957b11bc5c3f1f4dc71188a37822e708d48bf5940627881373897b08f3c85
+DIST aufs4-standalone-0_pre20161219.tar.xz 1823772 SHA256 92554aa017279d31c3a3228f32dee70f7dee3cdd105b4f281f16e92900120d24 SHA512 59fc0df19716d8f03e2547d98d6f412e921576d60afd783e5691a07c09b298ee61f491501e07ec154665a56d11b1887f94813ef5972254e6391251a48ba156c9 WHIRLPOOL 8470f594e6ebb6d56da9b4c20d1b372a77aac2e0b7e009e15f76d082b8ad51b287ccc1da7f64cbcb4d513af4780795b811dea1b1f953e306bb23d56a72453a36
+DIST aufs4-standalone-0_pre20170130.tar.xz 1761280 SHA256 ea854a64dabfb6b2d6c6befd96f4cad75dc1c827399b8ad2f72c2ed495e9c18c SHA512 beb121b36bb6056e48d5402b10bdfb8b6cd20d61b7d74221e5abd10226f58f40be1a0853e06a09cc1f94d50543030a9fd0a1c117570b1ad7467bf4156a1492ea WHIRLPOOL 39e75962842e4de6c151c9fd3c414bd0e7ce268be6fad699f97ebff3480b1a5f6a9966445035967dd4ec96423847b797dd72c9ae8f1067c152c83cf0ca488a85
+DIST aufs4-standalone-0_pre20170220.tar.xz 2115232 SHA256 96dcb9d94d1d2358a61e9d5cdfb9c9e6e4886018f5d24a76ab8deb7e03b7f04f SHA512 c68cf12573a0f3d9ec9419c63759d2b6f120eaafbbc005553c31d9c07b77d61612b903dc7ebdb2a8de8a52ded62e20b08cd32206b3cd3df196f0c1da82d472f7 WHIRLPOOL a2a3f10d003999a9498978a7b0d013cf918070cad975bfe54429d158d980943864fd810178a0639925d54c33974d13fa782950c77756469c646ebc57ddd6f917
+DIST aufs4-standalone-0_pre20170313.tar.xz 1883012 SHA256 195b0a821fe9fe7f22416848699bb464434d6c7562d981a3fa64f8670234b516 SHA512 7d711e0ebdc38aa79d3b7cdb04c91f3029c233bacdadca87a8622d48826c261c678d6a2cda6b627a0db0f248b35448e0d9da30e2c8e2e42e3b1e3ae6327033ba WHIRLPOOL 41410d251ede7e85faee6aaac4139aa00862f7dfdf4eeef6baef72f0324d594cf48c416d3d3dc7ff98ad0563d3b7b0b3c20f75784947660947b20a74331d89c7
+DIST aufs4-standalone-0_pre20170612.tar.xz 2017248 SHA256 fe725b22ace944b26cc33a79fe8cb977824937473ee4b67b95d62854da1dd589 SHA512 2d0fd1dce7b1a421533e667420fc69a44c378753dccddc3768eebdb906a023e41378b38961004a58b1c4f2e3844c86f8cb4be238e634318a380881eab513acfa WHIRLPOOL c74bea33b077e3dda7abe165daf0e5c54e1949f6b3d3928b47e50d13e9dee1a9b2a49605b85d9afb52dd36c69a61c1f07969e4a05da0aa705051d719b8a86776
+EBUILD aufs4-0_pre20160219.ebuild 5069 SHA256 d8f28085ae0693564e62d1f8f790d72365800a0d520c9e36b60e85c5b37ba1b2 SHA512 5482bc519f49fe439f6cdc5e2a5c7041fe9359ca6804f9757f6d3b1a5ca9387e4e52735500a5c1038a6f21e22684039811fab51afb337d123980cf14132fa6f7 WHIRLPOOL 7bf3cd55469fd27b582ea57132a23bc67ca9b27070c1e52e223127817c5d5715d74e9913e8aa049bc0d3074cfed0c46a6fbdb25ac7e660be25913aacacdb9c3f
+EBUILD aufs4-0_pre20160223.ebuild 5069 SHA256 d8f28085ae0693564e62d1f8f790d72365800a0d520c9e36b60e85c5b37ba1b2 SHA512 5482bc519f49fe439f6cdc5e2a5c7041fe9359ca6804f9757f6d3b1a5ca9387e4e52735500a5c1038a6f21e22684039811fab51afb337d123980cf14132fa6f7 WHIRLPOOL 7bf3cd55469fd27b582ea57132a23bc67ca9b27070c1e52e223127817c5d5715d74e9913e8aa049bc0d3074cfed0c46a6fbdb25ac7e660be25913aacacdb9c3f
+EBUILD aufs4-0_pre20160627.ebuild 5069 SHA256 ae1674210d594091803cd98fcab4a5a451655b53ded37cc0cfc8f0824869726a SHA512 ee12cf58211697584c8314b46acc150c8e0e1ecf4a003883c0e9666df128d2298f46506e6248e1671e3a8ea677336331e4e98502a3d8636821023e29fe446ba4 WHIRLPOOL 23e413311af73f8e9eb9af5536910923a2e53bb164b2be67b4984e3a6fb836c0843a2535a3f5a7bb7770d1d33bc60737defed73b06a61d2de9a4e8c8aa9a15d4
+EBUILD aufs4-0_pre20160815.ebuild 5069 SHA256 ae1674210d594091803cd98fcab4a5a451655b53ded37cc0cfc8f0824869726a SHA512 ee12cf58211697584c8314b46acc150c8e0e1ecf4a003883c0e9666df128d2298f46506e6248e1671e3a8ea677336331e4e98502a3d8636821023e29fe446ba4 WHIRLPOOL 23e413311af73f8e9eb9af5536910923a2e53bb164b2be67b4984e3a6fb836c0843a2535a3f5a7bb7770d1d33bc60737defed73b06a61d2de9a4e8c8aa9a15d4
+EBUILD aufs4-0_pre20161010.ebuild 5069 SHA256 4b56b26647dda6aaf7a26ec603c95992155f0ef0223be74c604a0502faa9860d SHA512 fd486f8b5c4447479686aeb65d15f5992c20d72c31e6524cb4ced86a7ef4f96bd36d9f2a3252d87beda191f80bc7e042fe57ad7bf3335bf796813d59293a90a0 WHIRLPOOL b4d45760df994a78a73e5ab3079bf6152f99b418de6321cb8b1e8e4067bbf8f4c427f729527dc9055825d87a3a7a98dddbd52f59619da24e1749cb025fc2b744
+EBUILD aufs4-0_pre20161219.ebuild 5069 SHA256 4b56b26647dda6aaf7a26ec603c95992155f0ef0223be74c604a0502faa9860d SHA512 fd486f8b5c4447479686aeb65d15f5992c20d72c31e6524cb4ced86a7ef4f96bd36d9f2a3252d87beda191f80bc7e042fe57ad7bf3335bf796813d59293a90a0 WHIRLPOOL b4d45760df994a78a73e5ab3079bf6152f99b418de6321cb8b1e8e4067bbf8f4c427f729527dc9055825d87a3a7a98dddbd52f59619da24e1749cb025fc2b744
+EBUILD aufs4-0_pre20170130.ebuild 5070 SHA256 b215cd1740df75261ba15d56d297005f7c6f83e480c8389359e518cea9dd291c SHA512 756b514a6d2d86692e872a2e513f95ae9b0387b44d1ffdd506eb9c698eef74b601de45d24dd02e75610aa8e6fbef91bd44c10b34c006a3cdad17b74b8d17a5b5 WHIRLPOOL b775cef39ec8119bbb5b82f77227b8f35d91c9b29743f8e41ed66d3a1277027362dd6ba289ed3b863609ac49965e2b12e1a9bae12643c1dc7daa4c473fa8cfe9
+EBUILD aufs4-0_pre20170220.ebuild 5070 SHA256 b215cd1740df75261ba15d56d297005f7c6f83e480c8389359e518cea9dd291c SHA512 756b514a6d2d86692e872a2e513f95ae9b0387b44d1ffdd506eb9c698eef74b601de45d24dd02e75610aa8e6fbef91bd44c10b34c006a3cdad17b74b8d17a5b5 WHIRLPOOL b775cef39ec8119bbb5b82f77227b8f35d91c9b29743f8e41ed66d3a1277027362dd6ba289ed3b863609ac49965e2b12e1a9bae12643c1dc7daa4c473fa8cfe9
+EBUILD aufs4-0_pre20170313.ebuild 5070 SHA256 5a8e50bcc13bbd19ff8e2f28b71c1b1bb985aa0b6affe5488ee595c9ea9a0609 SHA512 7af320fd64d5da1edfd1a5c2eb4b433a2b03c9ee85cc6d40e71af086856589cc66d92336223a4d36c2ec08cabf1bf5c8f225b9935f3da86429718752efaca939 WHIRLPOOL aef3c0c428a5f4215ae33991209fa5dd357c77f0bc7b820348bf5da06a6471f7f6edd26070f61963e7be1e829b12b80950c5b97711d7b5a19bed950ced7c5216
+EBUILD aufs4-0_pre20170612.ebuild 5071 SHA256 07f102c3aaabaae0e07d372072f98d0b9b16789aaa8b3b3d5f3b5812116de0a2 SHA512 967961b3757a59705eddb781d470893deb54080fa70f52609d0228830fafb94737dd40b5e3269601b92f50e65795738809c1bde433949f9f504a575639e0d3b3 WHIRLPOOL 934add0c44f2993f2dec324b12edfbef25a62ce2df18c590478df684e2bfbb219e9e956eeab8b9c49519f7a7ec28a1365d3c43b457cc5dfc4afb4a48078df766
+MISC ChangeLog 7679 SHA256 a26f1f94bebd38395c6162e8e45f03aa9e41dfe9147ff1ea8c5c00161f90401a SHA512 06a64b896f1ae97b05a96f29f05e82887b2968e646561a09291fbd1e83dce2bceca3b0ff9caddf1ae109d356d518dfd1ebdf7cf6cbb054a9722492f819066ce9 WHIRLPOOL 07dd85072931199d69207bb2b2fcfc6bb06f3d00511f7090bcdeb95ec5ca78406c81e0b1ea4c7f159ad505dde8149199c260bce3eab2e3ea65e3c209f6e46e96
+MISC ChangeLog-2015 1365 SHA256 e771df45ce7333a94ae23d05016f2644530233f1385683dd1cc1905cf67ec602 SHA512 84886306c5ffa5fac414d73e19ef31fa68e393e4fd449be0cca9b13af2fed37d3517b3ce486ea2b7b95d9de91ead61f66309d380b4626d552178520f8df7a0de WHIRLPOOL ec795a56aa3551a77c2c0ebc8ea526ed6c5ad1556a8246d38de993a806cae4a5c9512170992a500372474ea66bee7c92921c28808e1264d4aa8ab09145cbbbf5
+MISC metadata.xml 809 SHA256 36364d972f838e36cbf1cb5b5857077cac43ba9a05ae57be7aa9050af93b1e25 SHA512 043c012f55866721363c82fd80007c4ed8420fd8eec95459aac9fb913d855a0be5f135035ba5e3fcab668641ca61897d71ea8e48c1d45f171d418c812620d576 WHIRLPOOL 4ce31dd2931da5af1ae06aa0cce080196e9500ee7cf1760c93e0fa8445a84a6ea10a76b40ac0027b75e73f9507f5a7966636f1bf619e04d04fd31956bdd484ee
diff --git a/sys-fs/aufs4/aufs4-0_pre20160219.ebuild b/sys-fs/aufs4/aufs4-0_pre20160219.ebuild
new file mode 100644
index 000000000000..cb3b25bc99ab
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20160219.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=4
+# highest supported version
+KERN_MAX_VER=5
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20160223.ebuild b/sys-fs/aufs4/aufs4-0_pre20160223.ebuild
new file mode 100644
index 000000000000..cb3b25bc99ab
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20160223.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=4
+# highest supported version
+KERN_MAX_VER=5
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20160627.ebuild b/sys-fs/aufs4/aufs4-0_pre20160627.ebuild
new file mode 100644
index 000000000000..2ce209aa7456
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20160627.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=5
+# highest supported version
+KERN_MAX_VER=6
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20160815.ebuild b/sys-fs/aufs4/aufs4-0_pre20160815.ebuild
new file mode 100644
index 000000000000..2ce209aa7456
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20160815.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=5
+# highest supported version
+KERN_MAX_VER=6
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20161010.ebuild b/sys-fs/aufs4/aufs4-0_pre20161010.ebuild
new file mode 100644
index 000000000000..74da974872fd
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20161010.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=8
+# highest supported version
+KERN_MAX_VER=9
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20161219.ebuild b/sys-fs/aufs4/aufs4-0_pre20161219.ebuild
new file mode 100644
index 000000000000..74da974872fd
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20161219.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=8
+# highest supported version
+KERN_MAX_VER=9
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20170130.ebuild b/sys-fs/aufs4/aufs4-0_pre20170130.ebuild
new file mode 100644
index 000000000000..ff94ecb3cd1c
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20170130.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=9
+# highest supported version
+KERN_MAX_VER=10
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20170220.ebuild b/sys-fs/aufs4/aufs4-0_pre20170220.ebuild
new file mode 100644
index 000000000000..ff94ecb3cd1c
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20170220.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=9
+# highest supported version
+KERN_MAX_VER=10
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20170313.ebuild b/sys-fs/aufs4/aufs4-0_pre20170313.ebuild
new file mode 100644
index 000000000000..0be383f2e126
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20170313.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=9
+# highest supported version
+KERN_MAX_VER=11
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/aufs4-0_pre20170612.ebuild b/sys-fs/aufs4/aufs4-0_pre20170612.ebuild
new file mode 100644
index 000000000000..551496bccb00
--- /dev/null
+++ b/sys-fs/aufs4/aufs4-0_pre20170612.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic linux-info linux-mod multilib readme.gentoo-r1 toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=10
+# highest supported version
+KERN_MAX_VER=11
+# lowest supported version
+KERN_MIN_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="https://dev.gentoo.org/~jlec/distfiles/aufs4-standalone-${PV}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse hfs inotify kernel-patch nfs pax_kernel ramfs"
+
+DEPEND="
+ dev-util/patchutils
+ dev-vcs/git"
+RDEPEND="
+ sys-fs/aufs-util
+ !sys-fs/aufs
+ !sys-fs/aufs2
+ !sys-fs/aufs3"
+
+S="${WORKDIR}"/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" \
+ && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is
+ # possible w/out a kernel unpacked on the system
+ [[ -n "$PKG_SETUP_HAS_BEEN_RAN" ]] && return
+
+ get_version
+ kernel_is lt 4 ${KERN_MIN_VER} 0 && \
+ die "the kernel version isn't supported by upstream anymore. Please upgrade."
+ kernel_is gt 4 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" == "1" ]] && [[ "${KV_PATCH}" -ge "13" ]]; then
+ PATCH_BRANCH="${KV_MINOR}".13+
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ case ${KV_EXTRA} in
+ "")
+ elog "It seems you are using vanilla-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources with USE=vanilla"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ "-gentoo")
+ elog "It seems you are using gentoo-sources with aufs4"
+ elog "Please use sys-kernel/aufs-sources"
+ elog "This will save you the nasty reemerge of sys-fs/aufs4 on every kernel upgrade"
+ ;;
+ esac
+
+ pushd "${T}" &> /dev/null || die
+ unpack ${A}
+
+ cd ${PN}-standalone || die
+
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using ${module_branch} as patch source"
+ git checkout -q -b local-${PN}.${PATCH_BRANCH} ${module_branch} || die
+
+ combinediff \
+ ${PN}-base.patch ${PN}-standalone.patch > "${T}"/combined-1.patch
+ combinediff \
+ "${T}"/combined-1.patch ${PN}-mmap.patch \
+ > ${PN}-standalone-base-mmap-combined.patch
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < ${PN}-standalone-base-mmap-combined.patch > /dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch \
+ --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} \
+ < "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch \
+ > /dev/null
+ epatch "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+
+ popd &> /dev/null
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || \
+ die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-4.patch
+
+ sed \
+ -e "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" \
+ -i Makefile || die
+
+ eapply_user
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake \
+ CC=$(tc-getCC) \
+ LD=$(tc-getLD) \
+ LDFLAGS="$(raw-ldflags)" \
+ ARCH=$(tc-arch-kernel) \
+ CONFIG_AUFS_FS=m \
+ KDIR="${KV_OUT_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ use doc && dodoc -r Documentation
+
+ use kernel-patch || \
+ doins "${T}"/${PN}-standalone/${PN}-standalone-base-mmap-combined.patch
+
+ dodoc \
+ Documentation/filesystems/aufs/README \
+ "${T}"/${PN}-standalone/{aufs4-loopback,vfs-ino,tmpfs-idr}.patch
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/aufs4/files/README.gentoo b/sys-fs/aufs4/files/README.gentoo
new file mode 100644
index 000000000000..64dfe94b4bda
--- /dev/null
+++ b/sys-fs/aufs4/files/README.gentoo
@@ -0,0 +1,20 @@
+There several other patches in aufs3. They are all
+optional. When you meet some problems, they will help you. You can find them
+in the documentation directory.
+
+ - aufs3-loopback.patch
+ Supports a nested loopback mount in a branch-fs. This patch is
+ unnecessary until aufs produces a message such like "you may want to try
+ another patch for loopback file".
+
+ - vfs-ino.patch
+ Modifies a system global kernel internal function get_next_ino() in
+ order to stop assigning 0 for an inode-number. Not directly related to
+ aufs, but recommended generally.
+
+ - tmpfs-idr.patch
+ Keeps the tmpfs inode number as the lowest value. Effective to reduce
+ the size of aufs XINO files for tmpfs branch. Also it prevents the
+ duplication of inode number, which is important for backup
+ tools, aubrsync or other utilities. When you find aufs XINO files for
+ tmpfs branch growing too much, try this patch.
diff --git a/sys-fs/aufs4/files/pax-4.patch b/sys-fs/aufs4/files/pax-4.patch
new file mode 100644
index 000000000000..cf216a5708ca
--- /dev/null
+++ b/sys-fs/aufs4/files/pax-4.patch
@@ -0,0 +1,89 @@
+--- a/fs/aufs/dynop.c 2012-10-09 15:41:32.652989534 -0400
++++ b/fs/aufs/dynop.c 2012-10-09 15:41:58.562989820 -0400
+@@ -149,9 +149,11 @@
+ #define DySet(func, dst, src, h_op, h_sb) do { \
+ DyDbgInc(cnt); \
+ if (h_op->func) { \
+- if (src.func) \
+- dst.func = src.func; \
+- else \
++ if (src.func) { \
++ pax_open_kernel(); \
++ *(void **)&dst.func = src.func; \
++ pax_close_kernel(); \
++ } else \
+ AuDbg("%s %s\n", au_sbtype(h_sb), #func); \
+ } \
+ } while (0)
+@@ -159,7 +161,9 @@
+ #define DySetForce(func, dst, src) do { \
+ AuDebugOn(!src.func); \
+ DyDbgInc(cnt); \
+- dst.func = src.func; \
++ pax_open_kernel(); \
++ *(void **)&dst.func = src.func; \
++ pax_close_kernel(); \
+ } while (0)
+
+ #define DySetAop(func) \
+@@ -266,15 +270,17 @@
+ */
+ static void dy_adx(struct au_dyaop *dyaop, int do_dx)
+ {
++ pax_open_kernel();
+ if (!do_dx) {
+- dyaop->da_op.direct_IO = NULL;
+- dyaop->da_op.get_xip_mem = NULL;
++ *(void **)&dyaop->da_op.direct_IO = NULL;
++ *(void **)&dyaop->da_op.get_xip_mem = NULL;
+ } else {
+- dyaop->da_op.direct_IO = aufs_aop.direct_IO;
+- dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem;
++ *(void **)&dyaop->da_op.direct_IO = aufs_aop.direct_IO;
++ *(void **)&dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem;
+ if (!dyaop->da_get_xip_mem)
+- dyaop->da_op.get_xip_mem = NULL;
++ *(void **)&dyaop->da_op.get_xip_mem = NULL;
+ }
++ pax_close_kernel();
+ }
+
+ static struct au_dyaop *dy_aget(struct au_branch *br,
+--- a/fs/aufs/f_op_sp.c 2012-10-09 15:41:32.652989534 -0400
++++ b/fs/aufs/f_op_sp.c 2012-10-09 15:41:58.562989820 -0400
+@@ -104,7 +104,7 @@
+ static int aufs_open_sp(struct inode *inode, struct file *file);
+ static struct au_sp_fop {
+ int done;
+- struct file_operations fop; /* not 'const' */
++ file_operations_no_const fop; /* not 'const' */
+ spinlock_t spin;
+ } au_sp_fop[AuSp_Last] = {
+ [AuSp_FIFO] = {
+@@ -157,8 +157,10 @@
+ h_file = au_hf_top(file);
+ spin_lock(&p->spin);
+ if (!p->done) {
+- p->fop = *h_file->f_op;
++ pax_open_kernel();
++ memcpy((void *)&p->fop, h_file->f_op, sizeof(p->fop));
+ p->fop.owner = THIS_MODULE;
++ pax_close_kernel();
+ if (p->fop.aio_read)
+ p->fop.aio_read = aufs_aio_read_sp;
+ if (p->fop.aio_write)
+--- a/fs/aufs/sysfs.c 2013-10-20 17:08:37.000000000 -0400
++++ b/fs/aufs/sysfs.c 2013-10-19 17:08:29.000000000 -0400
+@@ -233,8 +233,10 @@
+ for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) {
+ attr = &br_sysfs->attr;
+ sysfs_attr_init(attr);
+- attr->name = br_sysfs->name;
+- attr->mode = S_IRUGO;
++ pax_open_kernel();
++ *(void **)&attr->name = br_sysfs->name;
++ *(void **)&attr->mode = S_IRUGO;
++ pax_close_kernel();
+ br_sysfs++;
+ }
+ }
diff --git a/sys-fs/aufs4/metadata.xml b/sys-fs/aufs4/metadata.xml
new file mode 100644
index 000000000000..f0e5c642768d
--- /dev/null
+++ b/sys-fs/aufs4/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="debug">Enable additional debugging support</flag>
+ <flag name="hfs">Enable hfs support</flag>
+ <flag name="fuse">Enable fuse support</flag>
+ <flag name="inotify">Enable inotify support</flag>
+ <flag name="kernel-patch">Patch the current kernel for aufs3 support</flag>
+ <flag name="nfs">Enable support for nfs export</flag>
+ <flag name="pax_kernel">Apply patch needed for pax enabled kernels</flag>
+ <flag name="ramfs">Enable initramfs/rootfs support</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">aufs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/autorun/Manifest b/sys-fs/autorun/Manifest
new file mode 100644
index 000000000000..f8a17f7781e0
--- /dev/null
+++ b/sys-fs/autorun/Manifest
@@ -0,0 +1,6 @@
+AUX autorun-3.17-headers.patch 225 SHA256 3734aca3b15e2fefec5ce2e3e5d1a2a7cea74e55a5b6531e26a0cb703d23b197 SHA512 636e485b39160b406f200c3773168bc1d1e3006da663bf77cae696c66d8808a889eb0aba582995c01898ee9867b4a21693b9861808cd75f25c4221dcf8b7b563 WHIRLPOOL 8ef843c9d5bea752b8beef98e26d615340681904c8fbf40c62dc0055d68711c9797b22f79a20de603c70b7e279eff7bb00721031ade0b55491dff619aba8cb40
+DIST autorun-3.17.tar.gz 481168 SHA256 5f1bc8c9a5ba9796f6803bd8dc7a43a2f95aa8f351b7aa63e56a198717852e91 SHA512 cb3885fa578616013ec66658c31caa49240b77c10f18c1597d7583d0efa5318c716d8ed468f3387702e94353c0db8c74f202a736278cde563c99d2337cdac11e WHIRLPOOL 1ebfba9899c64880975fdb3de8ce9e295129b6aa47ab0ef8e6c51089a83c24a4c796bdc40c9b2be6ab893c7bda30fa4459b515a551f87e1d671c0aade653b770
+EBUILD autorun-3.17.ebuild 674 SHA256 8605ccd9eba5ca97746b8731503baa63cd801c3a092742833ccb165c818ae469 SHA512 70c72d802438c060da0b3dee26bddd8570951358333749d96511132d709f3372d21c6c16ef1507431ea7dc16fd736906e46638075c5c24ff6e9f5aef53018173 WHIRLPOOL 5d3eece43f67fd1fef233046c3cf2298cd0cedd3b2a41cae5d130b0a579d4f152418a66b82ba0c4e037a6476461dccae4f4ebe92e11639fccaf76609a58dbd73
+MISC ChangeLog 2957 SHA256 72518f0fda286fc73510d8c11cbb203389760698009d03732e1abdfef0073b64 SHA512 bf0ef2e0bbdea23f48cf08c4cb6139c5b8c422be1548c2166aa8caf35462a4dd31b1e094efa0972be6b03d3798c19e1e2d4b4fe6d9d857a1e1eba4748f6009c5 WHIRLPOOL dfb915f6aa25021acd04a6d24d8067601672ef0d4060495c4cf2b9a88b4d3c8a07d6d0470ed28f8bf26ee95f127b197c8510c3be94a3445603f53fdc5b2b9406
+MISC ChangeLog-2015 1042 SHA256 c537ba411a47a7a20e9d4a4b2cb7010a44f025ac528b796caf68a889e6309ce1 SHA512 f555a9dd301d40f28d472d2ec2407dceacc3ea7a1280ea122295ac3bff02e908ec9e0feec2bf43d079db2516cb565e0e2b4219e3d4bf4f998748741400db06dc WHIRLPOOL 73595c6bebc88bc495d00833d7819f0c488a2afe2ad1501f5368254bfd74597582d3bc7574759d457a22e146525706cbe43fdce3f7a9a8223ecefb535b97b23e
+MISC metadata.xml 327 SHA256 a8f9440443c8fb888bfb009c1160991e45a20c2a3be38538832d7f0c95aca5d5 SHA512 fa4f2e3c910483f762241332c9f86a686ec3f318984fff6fda4bd4e775c1474bb3fc3d1e6035245554c7dade28f37dd2bb8ccdd029b9d71be9d88befbff41b6b WHIRLPOOL 0a6b3f6b48372ec388161f97927ef7b486ce0222a46d3ece0fb53f5973e0b61b463abc34a90b5b889cc6fc7ea3bde64ce37a49228ed20f4e2172df983072437b
diff --git a/sys-fs/autorun/autorun-3.17.ebuild b/sys-fs/autorun/autorun-3.17.ebuild
new file mode 100644
index 000000000000..0b1869badd02
--- /dev/null
+++ b/sys-fs/autorun/autorun-3.17.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=2
+inherit eutils
+
+DESCRIPTION="auto cdrom mounter for the lazy user"
+HOMEPAGE="http://autorun.sourceforge.net/"
+SRC_URI="mirror://sourceforge/autorun/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="sys-devel/gettext
+ dev-util/intltool
+ app-text/xmlto
+ app-text/docbook-xml-dtd:4.1.2"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-headers.patch
+}
+
+src_configure() {
+ export KDEDIR=/usr
+ econf \
+ --disable-dependency-tracking
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc AUTHORS ChangeLog NEWS README
+}
diff --git a/sys-fs/autorun/files/autorun-3.17-headers.patch b/sys-fs/autorun/files/autorun-3.17-headers.patch
new file mode 100644
index 000000000000..642f1596b704
--- /dev/null
+++ b/sys-fs/autorun/files/autorun-3.17-headers.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/251684
+
+--- autorun.cc
++++ autorun.cc
+@@ -90,6 +90,8 @@ char *strchr (), *strrchr ();
+
+ #include <errno.h>
+
++#include <stdlib.h>
++
+ #ifndef MNTTYPE_ISO9660
+ #define MNTTYPE_ISO9660 "iso9660"
+ #endif
diff --git a/sys-fs/autorun/metadata.xml b/sys-fs/autorun/metadata.xml
new file mode 100644
index 000000000000..e0205f85b3f2
--- /dev/null
+++ b/sys-fs/autorun/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="sourceforge">autorun</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/avfs/Manifest b/sys-fs/avfs/Manifest
new file mode 100644
index 000000000000..0348b7607e83
--- /dev/null
+++ b/sys-fs/avfs/Manifest
@@ -0,0 +1,11 @@
+DIST avfs-1.0.1.tar.bz2 678562 SHA256 6c6558c35864660e6d26e67f42caeb2bc8f9ef2ad0c502fd659fb7d94724aaf1 SHA512 3eefb07ed303343c4e5ec873fb519f171e8b19f00efda5e78f4af573fccabbefa59f77a677a34a569343db743bb41368beaf6e399d69f228ad0a77878e41adf0 WHIRLPOOL 68153492899a67b36bb8f982bb319469ee8cdf64e8c1ae642fd2f746736bc5ee93c22b0fa005ffc42d5bed543332875b5d6ed096bfd0a8bf2c2da3cc47cfacbf
+DIST avfs-1.0.2.tar.bz2 723051 SHA256 52693953e8290281d441a898040c5ac2989f11bc1fcb83ca5063c37a125a1c9a SHA512 a248c025388d169e2c6a57f04487c0aefb2c574647aade49c3a27d62621c0ead25b321b87518cdd718cb238387a766ec9e7fef434f30dcc4dd2bf9fbcc3de020 WHIRLPOOL 71f3949f39b130522d98fdf6ae431c8d410fc83d4e91028223c6bf0a247373ac129257c1b85efacbe430320d6e870b373a3e65cbfad31eb123f691f02da5c26d
+DIST avfs-1.0.3.tar.bz2 722861 SHA256 c6dee77b2b71567528f897727e51695587189765fc35f694e4734db0a7d4fec8 SHA512 b20a8bcba0d1d0181a14d5f1204f0532817037e3b5d32931f00f988793cb6cdabec82298686d82aa34885209d22841754e990c9c35b6384e0b441f99fd3d1efd WHIRLPOOL 406b708b5b9516ec97e024f518eb7370031edf8410d8637763bacd05f6d15ceb06217c43a8f28381c0d2f9fbfcd991a27b57cb45521ed71696e70e41352b7de2
+DIST avfs-1.0.4.tar.bz2 719761 SHA256 6b652120d9ed8730a9dcfd161d0e68481d176e854d94bed67754cb7b03e0b100 SHA512 3cfda7a471b5e696984acf9101312e898bc68fe16196bfee8e6a255bd182c279a6ad53fee09c0d6554a968f837e97652e95d794fa46f0d384dd41ae426d49516 WHIRLPOOL d65b667a0cccb908f3baa8ff10dd1bacaa3ff3797909ec36b4905d885365cfe8bcdcde31da7b46281baea7f0dad47cdd78d0e2b7887080f618b22c51951c1dac
+EBUILD avfs-1.0.1.ebuild 1420 SHA256 806d3940745f39659e08c41e47e4a4cad1c383f3de79a3fc026dffe17dfb0034 SHA512 ddc9dc91a49a3ced2a99e6b9c2dac0e4fcf0c34d73162616602dfab9ff013c6bf128c0adcd34ee79759ef1cce470297caf36bdb9ade95de7b8eb37e2e5674103 WHIRLPOOL 7adee8bbc4213fa60ec5d12ca61693ab9ee2a194752eeaf4815ff160e70b21f4502ccc8a994247f1609ed6a4bf3e3d4fd31234603ca151be24e8e073277d4ff3
+EBUILD avfs-1.0.2.ebuild 1424 SHA256 b2627a40433675177e73a2a6fd59a615fab0c71b1e15b3a16805b8ce122d1a73 SHA512 c2636ddba05feff4f056bce5ed65b33b559556b869046e50696d9a5f136b74f0ee4f8b38ba6f3c0be35a23ebf64e7e724c6b5b87ab90710330441aa32f5a448b WHIRLPOOL 5cbef5473fe76958ea62d9323c01f6cf002a58e4646da027f0e5759aa2e05f61b0f72c4cf624211f1ba93f9de5ea7e294a26daf3a3f4ab08320eb2dc15508360
+EBUILD avfs-1.0.3.ebuild 1424 SHA256 1191c637994a94f7133892d49f89f82bd2aabbce4a2047c1e86b71b2d9010d0f SHA512 7d18d0345035d497b4be9136df305647576f641052eb15bb26913d256185b88932b9e664f2604b38f283a9728c71650c36f7097e67789abc4c86c38a2f1ade55 WHIRLPOOL ac4bb3c6b641582e5558ea06c6cff637f45d47aa20de0ed89af8640fb6f5a6c337c33c09b88c6341d7e55674f7d3dd4fb5dcf2364f4c7fa6d7c3180fe6dab36d
+EBUILD avfs-1.0.4.ebuild 1478 SHA256 26381a89013e3cde25beffe2dcebc0f8b1692ccb65d65c09883eff4efa3e2d8b SHA512 565a3706a29e2a7b2df4f84e3a248da23dd340e5c17824195dece14177801ef8e00038a6a6198129c467370c9c225c641136814c1d9e6eb42a65b08e2f597e28 WHIRLPOOL b91f4e4e365277eb324d29f8d8cb8a6374d01925da943b4cdd98e1d3509d410dafae860c8401a2f9a421728e1fdab8e32c2213456c144769489d6d79d95a0049
+MISC ChangeLog 2778 SHA256 c54bab7f5af76ec13d87e2c251ef701f73bdb1fa62240a78f7ca3f1a60d9ca4f SHA512 6ede1f7f270641c4c45ce652ce9038e99a84ee76f21489d1d165f2e3d6a3a44acb60bba36a70932ccbb506686e1057bebf49e45e16f84616edec396219b70444 WHIRLPOOL cc4bb5403fbc2a1185d70b270d539f1c0519fc010b57fac97e38058a88bfa98835fd00e33b17345f2f10e7ed1805dd1ee9d63fdb7588fd4d92aa5e0b4399a218
+MISC ChangeLog-2015 6952 SHA256 a5d8ba1f33e427d4a5063e502056d99d4d7354f07a55184937d77bda15b67ad1 SHA512 dd83376fb5b98701abaee5443fb7bdc02f3ed130d7d0d9c17c2d14e066aeae97fa8f408028dcf65bb0a06a97bde847253540ddca4c6d9625aa6e0d6a5bff1d86 WHIRLPOOL 8a8b24f5ac782605ad1c33d9873e661e571520a3cc326e5d97b02655d03701cca522e6314c478b5b4be04e405e22cb864910a3018a8bd4c575d449d6a5e0f75b
+MISC metadata.xml 239 SHA256 e01986b1bb35e23311b531bd2079f2fe318dbdac214974c1212d614b0a20a73a SHA512 1ff01fab98c54473889aa827bb8f89ac9a8e22a7bc1489fd628a1253bfb7e6c214dfbda11c715fc645042fb03581dda8631e4d2c325257b780695ed0b735e947 WHIRLPOOL e3e84ddd5ecdc2beb594037ae27c551a454e923a2629b3761992ec68755de1e6a0a115bd843c78a0fd26163f5f947c7f9a7218b045b2b609c43568370dbe3941
diff --git a/sys-fs/avfs/avfs-1.0.1.ebuild b/sys-fs/avfs/avfs-1.0.1.ebuild
new file mode 100644
index 000000000000..c5aa5af0bb49
--- /dev/null
+++ b/sys-fs/avfs/avfs-1.0.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+inherit eutils
+
+DESCRIPTION="AVFS is a virtual filesystem that allows browsing of compressed files"
+HOMEPAGE="https://sourceforge.net/projects/avf"
+SRC_URI="mirror://sourceforge/avf/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~hppa ppc ppc64 x86"
+IUSE="static-libs +lzma"
+
+RDEPEND=">=sys-fs/fuse-2.4
+ sys-libs/zlib
+ app-arch/bzip2
+ lzma? ( app-arch/xz-utils )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ econf \
+ --enable-fuse \
+ --enable-library \
+ --enable-shared \
+ --with-system-zlib \
+ --with-system-bzlib \
+ $(use_enable static-libs static) \
+ $(use_with lzma xz)
+}
+
+src_install() {
+ default
+
+ # remove cruft
+ rm "${D}"/usr/bin/{davpass,ftppass} || die
+
+ # install docs
+ dodoc doc/{api-overview,background,FORMAT,INSTALL.*,README.avfs-fuse}
+ dosym /usr/lib/avfs/extfs/README /usr/share/doc/${PF}/README.extfs
+
+ docinto scripts
+ dodoc scripts/{avfscoda*,*pass}
+
+ prune_libtool_files
+}
+
+pkg_postinst() {
+ einfo "This version of AVFS includes FUSE support. It is user-based."
+ einfo "To execute:"
+ einfo "1) as user, mkdir ~/.avfs"
+ einfo "2) make sure fuse is either compiled into the kernel OR"
+ einfo " modprobe fuse or add to startup."
+ einfo "3) run mountavfs"
+ einfo "To unload daemon, type umountavfs"
+ einfo
+ einfo "READ the documentation! Enjoy :)"
+}
diff --git a/sys-fs/avfs/avfs-1.0.2.ebuild b/sys-fs/avfs/avfs-1.0.2.ebuild
new file mode 100644
index 000000000000..e48ad20ffdf6
--- /dev/null
+++ b/sys-fs/avfs/avfs-1.0.2.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils
+
+DESCRIPTION="AVFS is a virtual filesystem that allows browsing of compressed files"
+HOMEPAGE="https://sourceforge.net/projects/avf"
+SRC_URI="mirror://sourceforge/avf/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="static-libs +lzma"
+
+RDEPEND=">=sys-fs/fuse-2.4
+ sys-libs/zlib
+ app-arch/bzip2
+ lzma? ( app-arch/xz-utils )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ econf \
+ --enable-fuse \
+ --enable-library \
+ --enable-shared \
+ --with-system-zlib \
+ --with-system-bzlib \
+ $(use_enable static-libs static) \
+ $(use_with lzma xz)
+}
+
+src_install() {
+ default
+
+ # remove cruft
+ rm "${D}"/usr/bin/{davpass,ftppass} || die
+
+ # install docs
+ dodoc doc/{api-overview,background,FORMAT,INSTALL.*,README.avfs-fuse}
+ dosym /usr/lib/avfs/extfs/README /usr/share/doc/${PF}/README.extfs
+
+ docinto scripts
+ dodoc scripts/{avfscoda*,*pass}
+
+ prune_libtool_files
+}
+
+pkg_postinst() {
+ einfo "This version of AVFS includes FUSE support. It is user-based."
+ einfo "To execute:"
+ einfo "1) as user, mkdir ~/.avfs"
+ einfo "2) make sure fuse is either compiled into the kernel OR"
+ einfo " modprobe fuse or add to startup."
+ einfo "3) run mountavfs"
+ einfo "To unload daemon, type umountavfs"
+ einfo
+ einfo "READ the documentation! Enjoy :)"
+}
diff --git a/sys-fs/avfs/avfs-1.0.3.ebuild b/sys-fs/avfs/avfs-1.0.3.ebuild
new file mode 100644
index 000000000000..ac3655b36020
--- /dev/null
+++ b/sys-fs/avfs/avfs-1.0.3.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils
+
+DESCRIPTION="AVFS is a virtual filesystem that allows browsing of compressed files"
+HOMEPAGE="https://sourceforge.net/projects/avf"
+SRC_URI="mirror://sourceforge/avf/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="static-libs +lzma"
+
+RDEPEND=">=sys-fs/fuse-2.4
+ sys-libs/zlib
+ app-arch/bzip2
+ lzma? ( app-arch/xz-utils )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ econf \
+ --enable-fuse \
+ --enable-library \
+ --enable-shared \
+ --with-system-zlib \
+ --with-system-bzlib \
+ $(use_enable static-libs static) \
+ $(use_with lzma xz)
+}
+
+src_install() {
+ default
+
+ # remove cruft
+ rm "${D}"/usr/bin/{davpass,ftppass} || die
+
+ # install docs
+ dodoc doc/{api-overview,background,FORMAT,INSTALL.*,README.avfs-fuse}
+ dosym /usr/lib/avfs/extfs/README /usr/share/doc/${PF}/README.extfs
+
+ docinto scripts
+ dodoc scripts/{avfscoda*,*pass}
+
+ prune_libtool_files
+}
+
+pkg_postinst() {
+ einfo "This version of AVFS includes FUSE support. It is user-based."
+ einfo "To execute:"
+ einfo "1) as user, mkdir ~/.avfs"
+ einfo "2) make sure fuse is either compiled into the kernel OR"
+ einfo " modprobe fuse or add to startup."
+ einfo "3) run mountavfs"
+ einfo "To unload daemon, type umountavfs"
+ einfo
+ einfo "READ the documentation! Enjoy :)"
+}
diff --git a/sys-fs/avfs/avfs-1.0.4.ebuild b/sys-fs/avfs/avfs-1.0.4.ebuild
new file mode 100644
index 000000000000..6a10095f50bb
--- /dev/null
+++ b/sys-fs/avfs/avfs-1.0.4.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils
+
+DESCRIPTION="AVFS is a virtual filesystem that allows browsing of compressed files"
+HOMEPAGE="https://sourceforge.net/projects/avf"
+SRC_URI="mirror://sourceforge/avf/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="static-libs +lzma"
+
+RDEPEND=">=sys-fs/fuse-2.4
+ sys-libs/zlib
+ app-arch/bzip2
+ lzma? ( app-arch/xz-utils )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_configure() {
+ econf \
+ --enable-fuse \
+ --enable-library \
+ --enable-shared \
+ --with-system-zlib \
+ --with-system-bzlib \
+ $(use_enable static-libs static) \
+ $(use_with lzma xz)
+}
+
+src_install() {
+ default
+
+ # remove cruft
+ rm "${D}"/usr/bin/{davpass,ftppass} || die
+
+ # install docs
+ dodoc doc/{api-overview,background,FORMAT,INSTALL.*,README.avfs-fuse}
+ dosym /usr/lib/avfs/extfs/README /usr/share/doc/${PF}/README.extfs
+
+ docinto scripts
+ dodoc scripts/{avfscoda*,*pass}
+
+ prune_libtool_files
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ einfo "This version of AVFS includes FUSE support. It is user-based."
+ einfo "To execute:"
+ einfo "1) as user, mkdir ~/.avfs"
+ einfo "2) make sure fuse is either compiled into the kernel OR"
+ einfo " modprobe fuse or add to startup."
+ einfo "3) run mountavfs"
+ einfo "To unload daemon, type umountavfs"
+ einfo
+ einfo "READ the documentation! Enjoy :)"
+ fi
+}
diff --git a/sys-fs/avfs/metadata.xml b/sys-fs/avfs/metadata.xml
new file mode 100644
index 000000000000..2b99454f38c2
--- /dev/null
+++ b/sys-fs/avfs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="sourceforge">avf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/bashmount/Manifest b/sys-fs/bashmount/Manifest
new file mode 100644
index 000000000000..2541db46fb67
--- /dev/null
+++ b/sys-fs/bashmount/Manifest
@@ -0,0 +1,5 @@
+DIST bashmount-3.2.0.tar.gz 18152 SHA256 814ee05cd433cff369da46c199803f5e7990395f0d99480ac6294e07ac2c6850 SHA512 9fd287f67ecb61c9b72d1fc6a5b85b39d48671299585ad456ff3e14cf2304ad540de1462bbf3eafd333ac038cf8a7f2286f5077b896ea88dff570306f7c7d642 WHIRLPOOL d8e5c986156cf2ebdc5a70048d1aa467065412e866879d66fc0adbce10b5580b040bb28dde11f4fe5dc1bc469c8e4b797828df80d40fdc54dddc0294744bfe3b
+EBUILD bashmount-3.2.0.ebuild 584 SHA256 988f776e55dc5c2e1854d3afa9c89b8a82e2676557ed50fd36eb126a2d723dd3 SHA512 0a1ee47d5505d72ac0928be4dcbaca48923e0d04a47ce4a16bbfb58c421506ea291c45b77b344c86c5fe09b9912d56ca8dcdd86db7310030bd249c6a1b8a4389 WHIRLPOOL a006f38bf54885f646ac18f5afd1c9020d84a88cef7bdd458e6acf9a77db6436972ca5f21d122d3c302c333775d7651ee605ea1e2c66b93bb3942d6cc92045a8
+MISC ChangeLog 2640 SHA256 45d5ffec23cc6d435cd5376ede7ac8efe786666f42fb914ec757a4ff44452520 SHA512 01111cf596b2e11ba4f449d4f25fe54e7648bfc72d9a69bfb85197535f3a65834155227ed55f858c49c01438bbee727406229040047b1a3130d6cf4ffb2a05b8 WHIRLPOOL f3a793a79abe8bb8838362419384838968696ea2271a866c30019914b884108d6cf871e42f4d49b3ada21f9eed0aa7082232e1ee66b1be25799a05b6c5f3eca1
+MISC ChangeLog-2015 1860 SHA256 d38fcc7dc4f380a7ba9e281ed5a0f7015e33d264c267316005279aaf14a8cd0c SHA512 97bb19b6801ecb4e5ebf1222a5668356e4185db98ea08caec7f0d3fb982c0de4d0cf437f83beb5147131c74d74b7f48732b9d0f39ce7feaa9e65d19dbe295e83 WHIRLPOOL 18c1a7f968bbb73e8d29cf14fd31d07187bff2f799f805a1c21fc8d8b2beb0e91f5d2436d7fbd2f3d2d9e46eb3f9a49594406db8c74a7c7697b738e6f8b7c654
+MISC metadata.xml 246 SHA256 e92303934b848d3ec9794c25de7bda3ea56b26fcf3963ca76de245f57bd09686 SHA512 d9990b6587013c58d123758bb630e46ea6e7ac3435a075eadf0922bf3e48e8a97a8303d704da320b236d9cb9ec996288b5e6d7245f11175911b8cb3d9c649ccd WHIRLPOOL de512432227ae652befbc9aa323fb3b6562e6ca3ec81b677cd800e7b0fc12ea151a909911386f9d3af5068f6ed26f3867cce2896d5809fcf6b23d9b4c5608e7b
diff --git a/sys-fs/bashmount/bashmount-3.2.0.ebuild b/sys-fs/bashmount/bashmount-3.2.0.ebuild
new file mode 100644
index 000000000000..9124bc3307ef
--- /dev/null
+++ b/sys-fs/bashmount/bashmount-3.2.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="Bash script that uses udisks to mount removable devices without GUI"
+HOMEPAGE="https://sourceforge.net/projects/bashmount/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+# sys-apps/util-linux -> lsblk
+RDEPEND="app-shells/bash
+ sys-apps/dbus
+ sys-apps/util-linux
+ sys-fs/udisks:2
+ virtual/eject"
+DEPEND=""
+
+src_install() {
+ dobin ${PN}
+ insinto /etc
+ doins ${PN}.conf
+ doman ${PN}.1
+ dodoc NEWS
+}
diff --git a/sys-fs/bashmount/metadata.xml b/sys-fs/bashmount/metadata.xml
new file mode 100644
index 000000000000..16ee64e7f2d8
--- /dev/null
+++ b/sys-fs/bashmount/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="sourceforge">bashmount</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/bcache-tools/Manifest b/sys-fs/bcache-tools/Manifest
new file mode 100644
index 000000000000..596f5acadb36
--- /dev/null
+++ b/sys-fs/bcache-tools/Manifest
@@ -0,0 +1,17 @@
+AUX 1.0.8_p20140220/bcache-status-python3.patch 320 SHA256 0c6e7f3c16f778c5fe935895e9652e7393fc1f13e9fddf5bce279867de591be3 SHA512 d522cd5e6296a55ced53dab25a5e0978d04ec8eb0a6b353753b4627a3f0318658b0c52a27e6cd4a81d39e6f646aa0c936797b89280cb32490d4e671fbb532476 WHIRLPOOL 56459748ef7fd80caf1a0467e6f7d15889d29add802cb5e52126742fd43ab653a369a3588c61ffced8d8b35098c96fe4c582929eb18bd72cdc182dde1f66fb98
+AUX 1.0.8_p20140220/bcache-tools-1.0.8-crc64.patch 1869 SHA256 28f7db58ef1041180c5f96368cdb803fa35f1efe23443798f1f4b74d13aca0ac SHA512 ce4706849c2c4f7c414682d2f9df37989eb79a0b52d8ddf1e903065a6f5fb190cb3476f6579670d5a6cba0f2d13ab843e454966798edbf9cd4e54cc4a1a6c2cd WHIRLPOOL 598599a8caa0f728b758aacd3888a41017cb83bd15243f4f95e5a012eabf3e8e49ebb9539e13cb08831bb0f27745ffa093fe5e26d76365f1b0aa71b64da6e349
+AUX 1.0.8_p20140220/bcache-tools-1.0.8-noprobe.patch 1335 SHA256 f82b512fb8ffa8d808f03280a0fb38b317f661c03943a6032f979be4855c169c SHA512 d1a28bb32f28a074c46244213c09c6dfdd93b18647b94cabd29c2e3f2e6d28fba015bfdda4bcda412ea511ee6eee057becf1bb913bc4007e3deb378c0da5b735 WHIRLPOOL c513a97101e11cbfd4ca97e08894e19976d0b57be44daf827823f4ada57933d5dffaa83d206c2bfb9eaf7cc2004bc0b2979fd12d8f269ba1de87ae41a5b41766
+AUX 1.0.8_p20140220/bcache-tools-1.0.8-probe-bcache-underlinking.patch 531 SHA256 2d60afa14bd5b0e91e474d36d68f0bea54fb008c328f92b3bc7c4bfe4f6dde3c SHA512 883dbb66051bc7d1cbb170235ef8dbb4a1d115d0a598eae907d89fae6365c2e6725929e1297f9f74c742150d893ed8febb99a03bf55e91f0b90cc33314cf51d2 WHIRLPOOL ff8311a4550e3089696c47ae1b8b211811f0959c79e4ffbc45dc31138264b1d99c1429aacc17072fe2a61accffe2fd355dd99493c394fd10c28946c94837033e
+AUX 1.0.8_p20140220/bcache-tools-20131018-fedconf.patch 253 SHA256 8df197319cc9102ed98ebdbf5032892f23e8385a71843147b8111fbd9c72d9b1 SHA512 459875969ef1a80a5bb635e5da2187222a01aefe9ea49eb7feeab89d5290e4d478a0e5e37e424dd77a69916811b0ad3f82f7ec4e0ae91ae686e3fe7f5eac9d57 WHIRLPOOL 978ad6bf04e6f8a5655a509761a7d396163489f077d1bda5f153b5cdedf58041f0871ccf91973d7fb6865ec5bd820a18e888c293293c8789ded163ccb6bbee14
+AUX 1.0.8_p20140220/bcache-tools-status-20130826-man.patch 1095 SHA256 11c7b012b1200dcc1eb0a846f0f25d73eebf9cc304cc8b0dfee4c53e391ec59b SHA512 44f4227e7cd3e4ec3b4c90d27445be8bfa36b229aa11a08b9b66c08c224dc9c006c0d358580b0906a8372eb83b938c0a5a199665680e96898aa2070bb55000de WHIRLPOOL eb7b0ef093e8a47c7bc933a7831ab354d6a8286b208667c1252ee8171b6511082eb3d3d55da0a8236f5ce5c10a7ab3ad9fe4abb733c6092fb84d11c13c642193
+DIST bcache-status-20140220.tar.gz 3779 SHA256 5f05ced834a80c824bb5fc78a6b1a71641ebc981c77422679b5514d44d5e055d SHA512 0c8db02dc865b469f3a5964f679a3bfdf5cdbf5a2f6ccd5d81544f3bb3c06df2f5d06b9f09aaec527ec90229740dcd31fbb33e2628721b6da139cfcee6b48d7c WHIRLPOOL eee642edaf8c9fd7b567d6e0c83aa7bbbfe1c147db97998dafb716ba9e76d0e5ba8f87c4226b9309ca8f8ba1a3f66c83f03f162d4ebc4569008fc7d1ce026acf
+DIST bcache-tools-1.0.5.tgz 21934 SHA256 1449294ef545b3dc6f715f7b063bc2c8656984ad73bcd81a0dc048cbba416ea9 SHA512 aaf27e4cc3037d482cb14c8bb083c1ce5cda5641a19cec67ca1ad22cde71ce035e49701145c6d920b4d62058897c4b7d29d341b3b8bd436c9c51e2f8bdb5c568 WHIRLPOOL 7c2dd6919ba7cc7eebab0c90b517cd73ab4b7e02aedf4c998d95681e3feeedf5368fa5edf58a6a3e079fd7ad3ae5040fe6f02c743132f054c7f56fbad9c44f4b
+DIST bcache-tools-1.0.8.tgz 22153 SHA256 d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c SHA512 21eaed457e5de623089c0d4e1c11394a3950f29c749c502bfd5dd94d3dcdc7379c4a910825e33bf9fc8080df656949b94a1a28d19048a8eb6422976cb391b7dc WHIRLPOOL 7fada61d2bce55755dd75a1d5518c264c0470b071b6a3c6a003bb3016554eba5715014edfda1a05597d3dca1b557fd7eaea19df467c6c503ad1a52b9664657ef
+DIST bcache-tools-1.0.8_p20140220.tgz 22153 SHA256 d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c SHA512 21eaed457e5de623089c0d4e1c11394a3950f29c749c502bfd5dd94d3dcdc7379c4a910825e33bf9fc8080df656949b94a1a28d19048a8eb6422976cb391b7dc WHIRLPOOL 7fada61d2bce55755dd75a1d5518c264c0470b071b6a3c6a003bb3016554eba5715014edfda1a05597d3dca1b557fd7eaea19df467c6c503ad1a52b9664657ef
+EBUILD bcache-tools-1.0.5.ebuild 950 SHA256 f0bd5849a808642f4761761ad7206658f710b322beb6935bed5da90c6648d893 SHA512 94e89384c4783604f1a930ed840428deb9574fbae37653ac5e6c3d315be62fb3497ba6a463ef95f3a0fa5a983a56cff84d55dba371b6f3ce7f2d39ab6323f028 WHIRLPOOL b687652c708be6a5824825a05604a9001210680e8bb2ecefea6639cc2d0482408898c9e843e1e616eb7c4ea58883035948e0423a23b43bf357a78e676c5a55e4
+EBUILD bcache-tools-1.0.8.ebuild 950 SHA256 f0bd5849a808642f4761761ad7206658f710b322beb6935bed5da90c6648d893 SHA512 94e89384c4783604f1a930ed840428deb9574fbae37653ac5e6c3d315be62fb3497ba6a463ef95f3a0fa5a983a56cff84d55dba371b6f3ce7f2d39ab6323f028 WHIRLPOOL b687652c708be6a5824825a05604a9001210680e8bb2ecefea6639cc2d0482408898c9e843e1e616eb7c4ea58883035948e0423a23b43bf357a78e676c5a55e4
+EBUILD bcache-tools-1.0.8_p20140220-r1.ebuild 1600 SHA256 6690c68735ad1fee43c33c2a7f2a6e8115f1e90dc27aabdaa0ec7f48a64930c6 SHA512 47c51e16d667ca999af9a6f1743790082641067f4fbe79e9539d2a8c787641b31711703917a9ba1960b46e9788413207d25c6053284e57be0ec5bcd5f4facc21 WHIRLPOOL d19c05de02cf71c9078583157160489083318f50c98cd446466e68897d948098f84212e2148496c44a7e1036c4e6a901a25a5b83a988e2c14bbb7ec778db12fb
+EBUILD bcache-tools-9999.ebuild 994 SHA256 d84859632b73bf45e473e6d35dd0f1ca658af5cf88177a5475a5135196c0285f SHA512 d329bdbaa5f93eb42cfe8e7d77416d01f279db42f3f28f3186399253641442e064395db9ea9ea56db26f8cb9d3fd432eac986799c3f342bf1187fe1885709f02 WHIRLPOOL c4d39a5c50a44ffe1a95e02e0803638e9ef830eeb3b469623106f06f6d9903bbbc53b9b91f551c780439082d096721d1825377e8120575aac17f461982634a76
+MISC ChangeLog 4493 SHA256 86f34bb357f84600348e036c882927a80a0d9428f4dcfae691c459c66d0582e8 SHA512 d0d59d18a9c47e2aedfb8195e753643ac16cc9da981d1e51ef80b62432395a2415371f26f32df9caec95312fcad3370186f0815c6f12c0b016a08febb4b14a5c WHIRLPOOL ce39e45c3baa84cd8cae7eba5be9b2bbe86d85467f0942508a001ccf1417b6b664519d31165343c461c75a984041798276a45b1b23f37fc5fac402af03a1102e
+MISC ChangeLog-2015 1520 SHA256 7db197d5557cb19560985a20cea7493d739b9c7b0b5dbbf3f71d6523431756b2 SHA512 a65e6d492252b5aa8640bc2c0e676d194cfee6436601d19d83eec78b5a3b3f7fc80b93ea18e17420845fab690eb6ad077b7b6b464fead9fac745934b5ed4e2c6 WHIRLPOOL bd196bee8509e3348d70c75ecc87cd8bd72b6e4711152c71d616b90c019f81f0cbb37ea53eafe48b4313cd67a3557dc31079bccf8097cc657a1c9a3ea97a109d
+MISC metadata.xml 304 SHA256 5774594a5416b221102988ae0bdd15095168ce582dc8cc525a8d60158fcf4833 SHA512 4b5575ff0ece142ff6839b8a8a81c7c0515ac42993f5ca415d53d3a85a7171ff565332edbb237448cd662abe6f1d1ffa5dce0eb21817dd861a728f0652dcb541 WHIRLPOOL 43701037ee7a417a9a38137afc0ab3ced7148e34904849dce00d7f27802ef797b8aabeecdc28be5268f211a7ccf98cce1542eb698571985164d012bd39bf7aa7
diff --git a/sys-fs/bcache-tools/bcache-tools-1.0.5.ebuild b/sys-fs/bcache-tools/bcache-tools-1.0.5.ebuild
new file mode 100644
index 000000000000..6cbfae0c1a1e
--- /dev/null
+++ b/sys-fs/bcache-tools/bcache-tools-1.0.5.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs udev
+
+DESCRIPTION="Tools for bcachefs"
+HOMEPAGE="http://bcache.evilpiepirate.org/"
+SRC_URI="https://github.com/g2p/bcache-tools/archive/v${PV}.tar.gz -> ${P}.tgz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=">=sys-apps/util-linux-2.24"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ tc-export CC
+ sed \
+ -e '/^CFLAGS/s:-O2::' \
+ -e '/^CFLAGS/s:-g:-std=gnu89:' \
+ -i Makefile || die
+}
+
+src_install() {
+ into /
+ dosbin make-bcache bcache-super-show
+
+ exeinto $(get_udevdir)
+ doexe bcache-register probe-bcache
+
+ udev_dorules 69-bcache.rules
+
+ insinto /etc/initramfs-tools/hooks/bcache
+ doins initramfs/hook
+
+ # that is what dracut does
+ insinto /usr/lib/dracut/modules.d/90bcache
+ doins dracut/module-setup.sh
+
+ doman *.8
+
+ dodoc README
+}
+
+pkg_postinst() {
+ udev_reload
+}
diff --git a/sys-fs/bcache-tools/bcache-tools-1.0.8.ebuild b/sys-fs/bcache-tools/bcache-tools-1.0.8.ebuild
new file mode 100644
index 000000000000..6cbfae0c1a1e
--- /dev/null
+++ b/sys-fs/bcache-tools/bcache-tools-1.0.8.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs udev
+
+DESCRIPTION="Tools for bcachefs"
+HOMEPAGE="http://bcache.evilpiepirate.org/"
+SRC_URI="https://github.com/g2p/bcache-tools/archive/v${PV}.tar.gz -> ${P}.tgz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND=">=sys-apps/util-linux-2.24"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ tc-export CC
+ sed \
+ -e '/^CFLAGS/s:-O2::' \
+ -e '/^CFLAGS/s:-g:-std=gnu89:' \
+ -i Makefile || die
+}
+
+src_install() {
+ into /
+ dosbin make-bcache bcache-super-show
+
+ exeinto $(get_udevdir)
+ doexe bcache-register probe-bcache
+
+ udev_dorules 69-bcache.rules
+
+ insinto /etc/initramfs-tools/hooks/bcache
+ doins initramfs/hook
+
+ # that is what dracut does
+ insinto /usr/lib/dracut/modules.d/90bcache
+ doins dracut/module-setup.sh
+
+ doman *.8
+
+ dodoc README
+}
+
+pkg_postinst() {
+ udev_reload
+}
diff --git a/sys-fs/bcache-tools/bcache-tools-1.0.8_p20140220-r1.ebuild b/sys-fs/bcache-tools/bcache-tools-1.0.8_p20140220-r1.ebuild
new file mode 100644
index 000000000000..bc8099d825ce
--- /dev/null
+++ b/sys-fs/bcache-tools/bcache-tools-1.0.8_p20140220-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python3_{4,5} )
+
+inherit eutils flag-o-matic python-r1 toolchain-funcs udev
+
+DESCRIPTION="Tools for bcachefs"
+HOMEPAGE="http://bcache.evilpiepirate.org/"
+SRC_URI="
+ https://github.com/g2p/bcache-tools/archive/v${PV%%_p*}.tar.gz -> ${P}.tgz
+ https://dev.gentoo.org/~jlec/distfiles/bcache-status-20140220.tar.gz
+"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ >=sys-apps/util-linux-2.24"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}/bcache-status-python3.patch
+ "${FILESDIR}"/${PV}/bcache-tools-1.0.8-crc64.patch
+ "${FILESDIR}"/${PV}/bcache-tools-1.0.8-noprobe.patch
+ "${FILESDIR}"/${PV}/bcache-tools-20131018-fedconf.patch
+ "${FILESDIR}"/${PV}/bcache-tools-status-20130826-man.patch
+)
+
+S="${WORKDIR}"/${P%%_p*}
+
+src_prepare() {
+ tc-export CC
+ sed \
+ -e '/^CFLAGS/s:-O2::' \
+ -e '/^CFLAGS/s:-g:-std=gnu99:' \
+ -i Makefile || die
+
+ append-lfs-flags
+
+ cp ../bcache-status*/bcache-status . || die
+
+ epatch "${PATCHES[@]}"
+}
+
+src_install() {
+ into /
+ dosbin make-bcache bcache-super-show
+
+ exeinto $(get_udevdir)
+ doexe bcache-register probe-bcache
+
+ python_foreach_impl python_doscript bcache-status
+
+ udev_dorules 69-bcache.rules
+
+ insinto /etc/initramfs-tools/hooks/bcache
+ doins initramfs/hook
+
+ # that is what dracut does
+ insinto /usr/lib/dracut/modules.d/90bcache
+ doins dracut/module-setup.sh
+
+ doman *.8
+
+ dodoc README
+}
+
+pkg_postinst() {
+ udev_reload
+}
diff --git a/sys-fs/bcache-tools/bcache-tools-9999.ebuild b/sys-fs/bcache-tools/bcache-tools-9999.ebuild
new file mode 100644
index 000000000000..1ac411be39f2
--- /dev/null
+++ b/sys-fs/bcache-tools/bcache-tools-9999.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+EGIT_NONSHALLOW=true
+
+inherit git-r3 toolchain-funcs udev
+
+DESCRIPTION="Tools for bcachefs"
+HOMEPAGE="http://bcache.evilpiepirate.org/"
+SRC_URI=""
+EGIT_REPO_URI="https://github.com/g2p/bcache-tools.git"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND=">=sys-apps/util-linux-2.24"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ tc-export CC
+ sed \
+ -e '/^CFLAGS/s:-O2::' \
+ -e '/^CFLAGS/s:-g:-std=gnu89:' \
+ -i Makefile || die
+}
+
+src_install() {
+ into /
+ dosbin make-bcache bcache-super-show
+
+ exeinto $(get_udevdir)
+ doexe bcache-register probe-bcache
+
+ udev_dorules 69-bcache.rules
+
+ insinto /etc/initramfs-tools/hooks/bcache
+ doins initramfs/hook
+
+ insinto /etc/initcpio/install/bcache
+ doins initcpio/install
+
+ # that is what dracut does
+ insinto /usr/lib/dracut/modules.d/90bcache
+ doins dracut/module-setup.sh
+
+ doman *.8
+
+ dodoc README
+}
+
+pkg_postinst() {
+ udev_reload
+}
diff --git a/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-status-python3.patch b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-status-python3.patch
new file mode 100644
index 000000000000..0cb08cc1a281
--- /dev/null
+++ b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-status-python3.patch
@@ -0,0 +1,8 @@
+--- bcache-tools-1.0.8/bcache-status.orig 2015-06-20 08:56:22.343589706 +0200
++++ bcache-tools-1.0.8/bcache-status 2015-06-20 08:56:39.971692433 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Dumb script to dump (some) of bcache status
+ # Copyright 2014 Darrick J. Wong. All rights reserved.
diff --git a/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-crc64.patch b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-crc64.patch
new file mode 100644
index 000000000000..9b11d80c0091
--- /dev/null
+++ b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-crc64.patch
@@ -0,0 +1,55 @@
+diff -ruN bcache-tools-1.0.8.orig/bcache.c bcache-tools-1.0.8/bcache.c
+--- bcache-tools-1.0.8.orig/bcache.c 2014-12-04 23:51:24.000000000 +0100
++++ bcache-tools-1.0.8/bcache.c 2015-05-22 19:40:41.039355096 +0200
+@@ -26,7 +26,7 @@
+ * x^7 + x^4 + x + 1
+ */
+
+-static const uint64_t crc_table[256] = {
++const uint64_t crc_table[256] = {
+ 0x0000000000000000ULL, 0x42F0E1EBA9EA3693ULL, 0x85E1C3D753D46D26ULL,
+ 0xC711223CFA3E5BB5ULL, 0x493366450E42ECDFULL, 0x0BC387AEA7A8DA4CULL,
+ 0xCCD2A5925D9681F9ULL, 0x8E224479F47CB76AULL, 0x9266CC8A1C85D9BEULL,
+@@ -114,16 +114,3 @@
+ 0x5DEDC41A34BBEEB2ULL, 0x1F1D25F19D51D821ULL, 0xD80C07CD676F8394ULL,
+ 0x9AFCE626CE85B507ULL
+ };
+-
+-inline uint64_t crc64(const void *_data, size_t len)
+-{
+- uint64_t crc = 0xFFFFFFFFFFFFFFFFULL;
+- const unsigned char *data = _data;
+-
+- while (len--) {
+- int i = ((int) (crc >> 56) ^ *data++) & 0xFF;
+- crc = crc_table[i] ^ (crc << 8);
+- }
+-
+- return crc ^ 0xFFFFFFFFFFFFFFFFULL;
+-}
+diff -ruN bcache-tools-1.0.8.orig/bcache.h bcache-tools-1.0.8/bcache.h
+--- bcache-tools-1.0.8.orig/bcache.h 2014-12-04 23:51:24.000000000 +0100
++++ bcache-tools-1.0.8/bcache.h 2015-05-22 19:40:34.924320569 +0200
+@@ -115,7 +115,20 @@
+ #define BDEV_STATE_DIRTY 2U
+ #define BDEV_STATE_STALE 3U
+
+-uint64_t crc64(const void *_data, size_t len);
++extern const uint64_t crc_table[];
++
++inline uint64_t crc64(const void *_data, size_t len)
++{
++ uint64_t crc = 0xFFFFFFFFFFFFFFFFULL;
++ const unsigned char *data = _data;
++
++ while (len--) {
++ int i = ((int) (crc >> 56) ^ *data++) & 0xFF;
++ crc = crc_table[i] ^ (crc << 8);
++ }
++
++ return crc ^ 0xFFFFFFFFFFFFFFFFULL;
++}
+
+ #define node(i, j) ((void *) ((i)->d + (j)))
+ #define end(i) node(i, (i)->keys)
+Binary files bcache-tools-1.0.8.orig/bcache-register and bcache-tools-1.0.8/bcache-register differ
diff --git a/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-noprobe.patch b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-noprobe.patch
new file mode 100644
index 000000000000..6d2d9f515379
--- /dev/null
+++ b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-noprobe.patch
@@ -0,0 +1,32 @@
+diff -ruN bcache-tools-1.0.8.orig/69-bcache.rules bcache-tools-1.0.8/69-bcache.rules
+--- bcache-tools-1.0.8.orig/69-bcache.rules 2014-12-04 23:51:24.000000000 +0100
++++ bcache-tools-1.0.8/69-bcache.rules 2014-12-05 19:38:42.284643952 +0100
+@@ -7,17 +7,10 @@
+ KERNEL=="fd*|sr*", GOTO="bcache_end"
+
+ # blkid was run by the standard udev rules
+-# It recognised bcache (util-linux 2.24+)
+-ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found"
+-# It recognised something else; bail
+-ENV{ID_FS_TYPE}=="?*", GOTO="bcache_backing_end"
+-
+ # Backing devices: scan, symlink, register
+-IMPORT{program}="probe-bcache -o udev $tempnode"
+ ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end"
+ ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+
+-LABEL="bcache_backing_found"
+ RUN{builtin}+="kmod load bcache"
+ RUN+="bcache-register $tempnode"
+ LABEL="bcache_backing_end"
+diff -ruN bcache-tools-1.0.8.orig/dracut/module-setup.sh bcache-tools-1.0.8/dracut/module-setup.sh
+--- bcache-tools-1.0.8.orig/dracut/module-setup.sh 2014-12-04 23:51:24.000000000 +0100
++++ bcache-tools-1.0.8/dracut/module-setup.sh 2014-12-05 19:32:37.771480651 +0100
+@@ -29,6 +29,6 @@
+ }
+
+ install() {
+- inst_multiple ${udevdir}/probe-bcache ${udevdir}/bcache-register
++ inst_multiple ${udevdir}/bcache-register
+ inst_rules 69-bcache.rules
+ }
diff --git a/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-probe-bcache-underlinking.patch b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-probe-bcache-underlinking.patch
new file mode 100644
index 000000000000..c6ca74d68882
--- /dev/null
+++ b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-1.0.8-probe-bcache-underlinking.patch
@@ -0,0 +1,13 @@
+Fix underlinking in GCC 4.9 and below
+
+--- bcache-tools-1.0.8/Makefile
++++ bcache-tools-1.0.8/Makefile
+@@ -24,7 +24,7 @@
+ make-bcache: LDLIBS += `pkg-config --libs uuid blkid`
+ make-bcache: CFLAGS += `pkg-config --cflags uuid blkid`
+ make-bcache: bcache.o
+-probe-bcache: LDLIBS += `pkg-config --libs uuid blkid`
++probe-bcache: LDLIBS += `pkg-config --libs uuid blkid` bcache.o
+ probe-bcache: CFLAGS += `pkg-config --cflags uuid blkid`
+ bcache-super-show: LDLIBS += `pkg-config --libs uuid`
+ bcache-super-show: CFLAGS += -std=gnu99
diff --git a/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-20131018-fedconf.patch b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-20131018-fedconf.patch
new file mode 100644
index 000000000000..993ec216f888
--- /dev/null
+++ b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-20131018-fedconf.patch
@@ -0,0 +1,5 @@
+diff -ruN bcache-tools-20130827.orig/configure bcache-tools-20130827/configure
+--- bcache-tools-20130827.orig/configure 1970-01-01 01:00:00.000000000 +0100
++++ bcache-tools-20130827/configure 2013-08-31 15:12:41.093218432 +0200
+@@ -0,0 +1 @@
++#!/bin/sh
diff --git a/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-status-20130826-man.patch b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-status-20130826-man.patch
new file mode 100644
index 000000000000..3eabb3f4b832
--- /dev/null
+++ b/sys-fs/bcache-tools/files/1.0.8_p20140220/bcache-tools-status-20130826-man.patch
@@ -0,0 +1,49 @@
+diff -ruN bcache-tools-20130820.orig/bcache-status.8 bcache-tools-20130820/bcache-status.8
+--- bcache-tools-20130820.orig/bcache-status.8 1970-01-01 01:00:00.000000000 +0100
++++ bcache-tools-20130820/bcache-status.8 2013-08-26 23:32:02.477274882 +0200
+@@ -0,0 +1,45 @@
++.TH bcache-status 8
++.SH NAME
++bcache-status \- Display useful bcache statistics
++.SH SYNOPSIS
++.B bcache-status
++[\fB \--help\fR ]
++[\fB \-f\fR ]
++[\fB \-h\fR ]
++[\fB \-d\fR ]
++[\fB \-t\fR ]
++[\fB \-a\fR ]
++[\fB \-r\fR ]
++[\fB \-s\fR ]
++[\fB \-g\fR ]
++.SH DESCRIPTION
++This command displays useful bcache statistics in a convenient way.
++.SH OPTIONS
++.TP
++.BR \---help
++Print help message and exit.
++.TP
++.BR \-f,\ --five-minute
++Print the last five minutes of stats.
++.TP
++.BR \-h,\ --hour
++Print the last hour of stats.
++.TP
++.BR \-d,\ --day
++Print the last day of stats.
++.TP
++.BR \-t,\ --total
++Print total stats.
++.TP
++.BR \-a,\ --all
++Print all stats.
++.TP
++.BR \-r,\ --reset-stats
++Reset stats after printing them.
++.TP
++.BR \-s,\ --sub-status
++Print subdevice status.
++.TP
++.BR \-g,\ --gc
++Print subdevice status.
++
diff --git a/sys-fs/bcache-tools/metadata.xml b/sys-fs/bcache-tools/metadata.xml
new file mode 100644
index 000000000000..afb6723f41a7
--- /dev/null
+++ b/sys-fs/bcache-tools/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">g2p/bcache-tools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/bedup/Manifest b/sys-fs/bedup/Manifest
new file mode 100644
index 000000000000..4115451ab81a
--- /dev/null
+++ b/sys-fs/bedup/Manifest
@@ -0,0 +1,6 @@
+DIST bedup-0.10.1.tar.gz 48138 SHA256 3c386343b8ec9bf452fad288b9e192450d4ddbfd3a19992b400084c7dbda4aed SHA512 681d925b4ce948efb85fe04b4b2083e72089c28c5fc24a5c367007870975e65bd112a538069be5f32df9d06eed418ced51bfc44da295d0ea3b946069faf8b23e WHIRLPOOL 8ae2165edcd92370400887bd1eaaea947754aae87149b13159b707090af75c046302adef1f21bf2fac6ef8daecd1b56d2e2c1c85bfdb9d2f93279b6dd83d3799
+EBUILD bedup-0.10.1.ebuild 695 SHA256 9804c5410bd7386611af3b1a856c4821be29523102b09f4bd52dbbe08d477ce8 SHA512 385d5a51f99bafa1638366be2eafb1b198c8c6eb027eb1c047fb590c4e917b09e968510059e964fc8bddeb0f1bdfb89938c383cd8cb35d713b280d513c7a89c4 WHIRLPOOL 3b38b21997916960871c117536ab62a29707172ec29c40a422987c5cc1b4ec36ec8a55b70c021a22db7d8ffae50e78344518ea96883e6e405e4fbf3362bbb0b8
+EBUILD bedup-9999.ebuild 845 SHA256 89041b2f85f4045ebf002682fe893998f34cf5e85e6e72437806c7d0c17c0cc2 SHA512 ae5a182dba00fe5954bc851fd30779f093b024d34bbd74679607c705a9534b424d9b9cd518b50a7d231994f6fd108b7d6eeb2199c74870810b11b6c75a0dae26 WHIRLPOOL bab56dd37ddb475aa2a27511883fa63555f33e18bdd59ca96162fd6bfa55d4f43efa04ecbe8bcf3ba79c2e8f154d7688de42305e407311062a769e9dccfeb0d2
+MISC ChangeLog 3236 SHA256 5e9484a5362d32b8354812887f41c4a8a48389579214c4e4668dba63ce5b90dc SHA512 231ed4e5caaaacd8f29c0d2bbfc799deb045f4987556300479d99b1216b013d48dcb9b69ee8a7cd4ca6373bb300791ae0d954adff77f580d494e01fd0a9f4520 WHIRLPOOL 68cc85c7c29bfdf973cbf9e714923d032422d07fa8c0014b9c32bd7f0640532a82d33a1cbd3c296227cf7040551fda5c7b3dce3845116ea7c60ef2557f58333b
+MISC ChangeLog-2015 1871 SHA256 8c6790d495875b37dda95e523517036258440455ea6d6c54462ad11653b9ec07 SHA512 6980ff27d714a76265a543fa341b0514912c99ad9352c0a01d8874a4fe0424142f89fb0b6c63f829ab1093b75e894fc0157ef18ef2b7cc3e4774241b89c40752 WHIRLPOOL b294c11436c42424af44b523ff228cbda5c4bb9a33a47d1957b4ee8a3114f4bf36c1e9db3b3ff1ad9e831f81ec32081fc49666abffbd219b12ee73246cf2982c
+MISC metadata.xml 321 SHA256 aa6e7aca923e20ccbf5e12795711df1bd59d534b4613133e2cb16822a14f6f2e SHA512 c0e402519353b29d43d9944739ea4d2e2fb9ae845def7827b3aa6166738b271d805ac81f9ff9435efcc848ed312b8d30f2d25249d501f8262223bafa312c2c41 WHIRLPOOL 9139a649054e3b524bd5a44ca928cbdc4b8ad2d28552103b971d9fbbf25154b06d4c50c8314af08a89e620652b3b91efee74be1f87306f04204f1344a4e001b0
diff --git a/sys-fs/bedup/bedup-0.10.1.ebuild b/sys-fs/bedup/bedup-0.10.1.ebuild
new file mode 100644
index 000000000000..ba5aa99cdcf0
--- /dev/null
+++ b/sys-fs/bedup/bedup-0.10.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python{3_4,3_5,3_6} )
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Btrfs file de-duplication tool"
+HOMEPAGE="https://github.com/g2p/bedup"
+SRC_URI="https://github.com/g2p/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+# we need btrfs-progs with includes installed.
+DEPEND=">=dev-python/cffi-0.5:=[${PYTHON_USEDEP}]
+ >=sys-fs/btrfs-progs-0.20_rc1_p358"
+RDEPEND="${DEPEND}
+ dev-python/alembic[${PYTHON_USEDEP}]
+ dev-python/pyxdg[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8.2[sqlite,${PYTHON_USEDEP}]"
diff --git a/sys-fs/bedup/bedup-9999.ebuild b/sys-fs/bedup/bedup-9999.ebuild
new file mode 100644
index 000000000000..94d37527fda4
--- /dev/null
+++ b/sys-fs/bedup/bedup-9999.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python3_{4,5,6} )
+
+#if LIVE
+EGIT_REPO_URI="https://github.com/g2p/bedup.git"
+inherit git-r3
+#endif
+
+inherit distutils-r1 vcs-snapshot
+
+DESCRIPTION="Btrfs file de-duplication tool"
+HOMEPAGE="https://github.com/g2p/bedup"
+SRC_URI="https://github.com/g2p/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+# we need btrfs-progs with includes installed.
+DEPEND=">=dev-python/cffi-0.5:=[${PYTHON_USEDEP}]
+ >=sys-fs/btrfs-progs-0.20_rc1_p358"
+RDEPEND="${DEPEND}
+ dev-python/alembic[${PYTHON_USEDEP}]
+ dev-python/pyxdg[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8.2[sqlite,${PYTHON_USEDEP}]"
+
+#if LIVE
+SRC_URI=
+KEYWORDS=
+
+src_unpack() { git-r3_src_unpack; }
+#endif
diff --git a/sys-fs/bedup/metadata.xml b/sys-fs/bedup/metadata.xml
new file mode 100644
index 000000000000..a2bbde201ace
--- /dev/null
+++ b/sys-fs/bedup/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">g2p/bedup</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/bindfs/Manifest b/sys-fs/bindfs/Manifest
new file mode 100644
index 000000000000..a0b989ddb4a0
--- /dev/null
+++ b/sys-fs/bindfs/Manifest
@@ -0,0 +1,7 @@
+DIST bindfs-1.13.6.tar.gz 374840 SHA256 3c654c2d5d9780189b87b19002ecdeb32d97914481f5f1f841f7585700f8df97 SHA512 d6c1845edc160419d50283995602cabff204b41d6116d89ffba4a7153482e803cacc45ae95e2e9b13c798b59a32aa4016a2b00cc51db1a5f6b720f09a97b87f1 WHIRLPOOL 392f16dfd024eb777db5dc9b103fcac313c848a7bca43bd8d35c990c089d6b45c2ebf9819ccb619029ae7b7bf15cd27f9381545133193d11f9a0e8707a445ca3
+DIST bindfs-1.13.7.tar.gz 398511 SHA256 09a41b32db5ef54220161a79ffa4721507bc18bf9b3f6fcbbc05f0c661060041 SHA512 720fa089dac56b316240c1c8ee3958961d82dee6788b272ec9b22c222d28d03695f9ab8c35759f303298afb5c04da58e20214dbd9147cbf414a6a9c3e5882712 WHIRLPOOL a63cf7666a0ec9c1b393663fc63c16bafda968e5be7ae768bdd4b627e0bb206f9cffde749b96e86e22f5586bc3085321d97f1b7bfd501ff7e96f33e1453ddcb7
+EBUILD bindfs-1.13.6.ebuild 477 SHA256 bd8fd78d88ee990eb8fc5d4aecb568b2288d1b61712a8d14d915e9387bfef4fc SHA512 8b5108191ebab25223e104b910a7dd764bb37f3d8da0fe36e81cf6949be124634a2c9e6c7ec94600231b26a8e8ef0f7e9dc7be2bd4873774842da031c935cd22 WHIRLPOOL 604fe190cdbe3520a46a39882eab2e9ad38c767b97864a13c501620a31e30817f16d507c7e1bea2135a255ee41e2d53e58b5a330ceba026a4585cb574c8c82ba
+EBUILD bindfs-1.13.7.ebuild 477 SHA256 bd8fd78d88ee990eb8fc5d4aecb568b2288d1b61712a8d14d915e9387bfef4fc SHA512 8b5108191ebab25223e104b910a7dd764bb37f3d8da0fe36e81cf6949be124634a2c9e6c7ec94600231b26a8e8ef0f7e9dc7be2bd4873774842da031c935cd22 WHIRLPOOL 604fe190cdbe3520a46a39882eab2e9ad38c767b97864a13c501620a31e30817f16d507c7e1bea2135a255ee41e2d53e58b5a330ceba026a4585cb574c8c82ba
+MISC ChangeLog 3509 SHA256 9b2a82cbc218b91577d8bd54c8e4c3e6fbdda60e559c5570765a54a5471dc0d9 SHA512 b0ea9cf0df8edeee77a509b7d595fd34759de953cbe6e925771643092a40334f0a714a17e8e54e4799ad5277a9af462272bc5cb261d5748363fd23b51ac555bc WHIRLPOOL 18460dbb6ed5b279198d8a013f519504e6bf5b3c847a3ee17c13e8cef49aba504b5a630fc24be1f6c9dde14be5c5d9696d5f2fc58f3d35edf74e37aa837b33b4
+MISC ChangeLog-2015 2571 SHA256 a8258720a6224cf8035c13a9a8837c175920b538f1f14ef446a0e63abb8e3279 SHA512 a7f787f141c45427b0ddc5f6c6889f12688297cfe701f4848dd605dd8a4114cfb6cc40d9afff343fccf65c19ac665d6c249035b0a72f9299e9d3dc0372e0701a WHIRLPOOL aa0095490e734985d9e7154347a250567a681126a50751c737eba3ed2e17c53b3c0b85accbac89f2a1cdf049623db9a9f2795ed37821513b54ea4eec60a8ccf9
+MISC metadata.xml 432 SHA256 7682a8feb729dbbea363fe780910ece1131973ae5c7a08b368d7c4421d0a4c51 SHA512 1d22b2bad552a622edcebc9b52823a812f483588257c379077e1cc323bfffea67ed2802a3f62c9264cadf355ae3f96ab4705d005286c598f25447efe813fb06c WHIRLPOOL 417d865acc810542b0af6b16a71fb5edcad9797dc171beea07ca26dbab0b0b84f3997692cf0cb8703571c269924f7f210b11c5f1768c5e2cc921f693c45adf34
diff --git a/sys-fs/bindfs/bindfs-1.13.6.ebuild b/sys-fs/bindfs/bindfs-1.13.6.ebuild
new file mode 100644
index 000000000000..e8f1bd439eb8
--- /dev/null
+++ b/sys-fs/bindfs/bindfs-1.13.6.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="FUSE filesystem for bind mounting with altered permissions"
+HOMEPAGE="http://bindfs.org/"
+SRC_URI="http://bindfs.org/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug"
+
+RDEPEND=">=sys-fs/fuse-2.9"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+RESTRICT="test"
+
+src_configure() {
+ econf $(use_enable debug debug-output)
+}
diff --git a/sys-fs/bindfs/bindfs-1.13.7.ebuild b/sys-fs/bindfs/bindfs-1.13.7.ebuild
new file mode 100644
index 000000000000..e8f1bd439eb8
--- /dev/null
+++ b/sys-fs/bindfs/bindfs-1.13.7.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="FUSE filesystem for bind mounting with altered permissions"
+HOMEPAGE="http://bindfs.org/"
+SRC_URI="http://bindfs.org/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug"
+
+RDEPEND=">=sys-fs/fuse-2.9"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+RESTRICT="test"
+
+src_configure() {
+ econf $(use_enable debug debug-output)
+}
diff --git a/sys-fs/bindfs/metadata.xml b/sys-fs/bindfs/metadata.xml
new file mode 100644
index 000000000000..8b640391a575
--- /dev/null
+++ b/sys-fs/bindfs/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">bindfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/btrfs-progs/Manifest b/sys-fs/btrfs-progs/Manifest
new file mode 100644
index 000000000000..342f7eeccce6
--- /dev/null
+++ b/sys-fs/btrfs-progs/Manifest
@@ -0,0 +1,55 @@
+AUX btrfs-progs-3.14.2-install-man.patch 451 SHA256 95245d802fb3d69e027b9f1d08afcb04aa5877f7f713c7ee820d68bf36bce3c8 SHA512 75e232199b0fc79e622cd016f6a6adaaa6880522cde78210b805813ddd57f1fb546eb8cf31f65fd79fd73628bf9d56d0a98ad2ca32661e0320cdac200ee4b171 WHIRLPOOL f0fb586ae46969d245d2a27cc3e7fb19f6581e4a1ba6c943f97f8483677ddba13e5da91d0aaf8ffada464c7a318c914a26e511d944e826694cf987c380c2885c
+AUX btrfs-progs-4.8.1-fix-ioctl.h 1071 SHA256 579758c11f1b8a8e3276018f14a011af9a6ef45762ead00487cc617c416b26db SHA512 8cd7c9cc34924905e81694c38ba3900a08d30b41b7d2eb9d3a682ca82a7493f8809254758765b834a437d89bdade5346d98bba438ad76fb9cedfc97520a13391 WHIRLPOOL b98aaf139fc1fc47df9dc29a7beaad29d3dbb7ff6da579fe7124773328ab036effd94c400744d9a758fa2ffd682e0c389cd403de96e8b42c156c51183ea6c6d7
+AUX btrfs-progs-4.8.3-fix-ioctl-again.patch 220 SHA256 73ed9cff29344987274f3bde6fab0daf40bfbe9f029bf2ecd0ec8440b9e50fa3 SHA512 3a16591d5aa9db10203a3f0ae49cff05883162bbe25cf72304e7366b11de114828b8c50132665db5965d1a254754b601ae530a930fe5046c347d3868cc4cd287 WHIRLPOOL 104fab567706cfe82c8d40644ff022c96880bae322089b4b282c147780e6a7b97573d206c9b765bc7921d44efda585f21c879c10cc51434201382fb895c19720
+DIST btrfs-progs-v3.14.2.tar.xz 275372 SHA256 70e1d0ca887bfa5062dc74cc5d4556c19adb08453fbfa57edae6802d9c917793 SHA512 02f0cf7581b41143707769e53debecfdd3f5a1dd717530c33d4a657b09feafd73bb43408516a58fb6d2754365803018673321c7c1898b81bb36194f05a0d8955 WHIRLPOOL 4561adf84b6570e165be04c8c7b014646f4be11b7f9840a5929103271cb7e121006b515645968f9a4b7cbaf8b0a407c2e74b82b91bd6688b7f58b06fedf70e95
+DIST btrfs-progs-v3.16.2.tar.xz 291604 SHA256 d4d62abe0c2b8e86888f96e4bd21ca7e25c2d53120a3b9e8c6f987344147732b SHA512 7dc0f2f8f0bbddbbf1d4d99854425341c4b3997334c65d7e936bcec1ee5ca880101b8b45498721502857b478edae6237a934c7d4acb735de43c6d8ff35efe53b WHIRLPOOL 19e1fadeefcd40bfecf1b957c37da3387351e1f6cae04add59fd689524338c165e3547b799520e74bacc351ef236eec2481c1043159b58358b77cd74cf3db281
+DIST btrfs-progs-v3.17.3.tar.xz 588424 SHA256 e7bd9ff8d95b515973d3a1255c17fd481bcd75e4420f00c6c9c99489d1ddac2c SHA512 faa9b0d5281f72777d4b64b96774dcb1d6f579fd84e3bac3c256e779bf6fd67ee17aaf8f904dd29a8a8592f504e3e8af0caf1ab261689457a30467d3c1fb6a71 WHIRLPOOL 6ce02a7b078a277b882a2249ea4b628ce7b5dd16572d618b8cb999f88115c84ac30c9c9928525754edd458f86a458c9cf5c1753cb293c49e0d000795fae31604
+DIST btrfs-progs-v3.18.2.tar.xz 1029228 SHA256 dd8ddb4d201e5ffd32a15ed0e1f33fbc2c8fb16383f1519a9fae136698c2dfec SHA512 7fd125eeedabd54178f5198ac09c364b6772125124adcdb2620515a51c331307205ae06ff81375a49ebc62650d537c6f9eed2b63bf1f7e97b9ff047cda8a2cc4 WHIRLPOOL e5df056188abc2f57941b92be2774208fd1409f580c9604242f81aeda78f4be6d95f4cacfcf39917db363a033fb3b11f1eb864c15cccf24491fc1b660fce3803
+DIST btrfs-progs-v3.19.1.tar.xz 1101168 SHA256 248862a7e7e06188bb495bbaa05d3e0e34628b61a10ef03234b3b00698ce88db SHA512 c8b1c348afe3e32f54a72fcf361700bd63c12272e34ab34774936a2eca338dbea568d452f494d6ddd3c7be75b37a6d400fec33500548ed9b6df008212613d7f5 WHIRLPOOL 75bb08fe5ab49711f264d6cd35ddac39ea722ef2bcd57c53ad0d483cdf329b1b1b89c0b70280dea161568fd78c44eae30c76fb574ee649200237a13b3df1d8d4
+DIST btrfs-progs-v4.0.1.tar.xz 1104340 SHA256 2c2e10e79edd16a92effe8619c527fd130bc272fbca67896e1705bb2ec0293cb SHA512 52e5165f2fdd0f27f9c2f099b774523c36ab442948a13ede03736297a139903af4c0c444c77abc14b05f3cf633b006eb9dbc29f2b127858698ee1b6ad517a53f WHIRLPOOL ad8d2280c9205537a1045a835bffb39d73684fea87841215cd0916fdc91285aa299dc5885446b3c3aa50fcc2ab562a4b58a33cc9537ede3f57df4bc566aacb47
+DIST btrfs-progs-v4.1.2.tar.xz 1123080 SHA256 62db60c6a0868afb6302112cea54c756873bc30b826696b167ec03ecd61b2f12 SHA512 dd159bcc3adb65efd4f612d75f5a6b30df8ad9fa06ef952dd03dac965256de37eab26f4cc2fb3840178403ccbb7368cae11638e27eadb9b1835b636c4b126e2e WHIRLPOOL 819e6d61ecbb0f2d099abcda70ae9ab53b3311a28131fdedbbad7cc033c4984309a460f704d2f2ce7cf36cf0e034e82618c1b45002fdfbb5eced648883e12a29
+DIST btrfs-progs-v4.10.2.tar.xz 1508304 SHA256 ed09df670338562a52d9e7d76a362cc932737e2a67adca4c09395374be1de60a SHA512 1a21ca29d03c8d0e697ce075b841e38b021771a67da20087c80ab84bb87c5f56ea80695f9b2a25a2a159fba8b01d74a364435f5462545ec00ebd6f335d3fcd6f WHIRLPOOL 621f1af0273ca3b27e63e20b8a6ec9a3f6519f67fb669f1295be7f742b68362f3c7295be5e4d12ce48e9bc5753d1099b03e52b71fdf878d02664cf1e59720de6
+DIST btrfs-progs-v4.11.tar.xz 1508580 SHA256 e17a68cc52a27d905b715445e91ddbaa4d42de4847d54836d6ed21e012dabf0e SHA512 914fb415f7ddec4d3ee203b67cde135dcc4c62d3e25e76e920b9a0ee5099d1cf75d21611795ce5aee78908ed466dc74b0b7ab2e036224b7e357e421f13e4f6c8 WHIRLPOOL 54b8d129ab0bd931dd7dab3c00c0b33cfeabaeaa9f9526d6a48adefc2b58537e8e8302538a7072820d21646360979f3b7fe78049f0244068f46cf6f7eeb6d18e
+DIST btrfs-progs-v4.12.tar.xz 1587604 SHA256 917710c84a9d529c92038390ddf8ace19ad409f61cdcf93c38ccaf2678472ece SHA512 6a9b13241edda68c866249874189aafb121f73515bf71e46f1f574eff858405d9ce22a251a07c6437f0dc21ca6ee55b4b57c15b431ce63faa3c16d1c8112616e WHIRLPOOL c929a5f453af005004b858873b3f5c78c8d51372644b3611cf2fc4900c45fee7a6153cf2f09fdf16336928b2427160c4393697751429dc4f1a405721f9ea70e5
+DIST btrfs-progs-v4.13.1.tar.xz 1672248 SHA256 e04f80fe55429a8a2541ab01951bb29a12c071d7ce8baa318b8feb49f3de8ab2 SHA512 4fabfaa36b67afcc21a3917bd1faae106a82a2bc97a3670dd054a33490ae60e63512a28af5fe27b016de1e7213809f89e096c39a082f0a5d4e48f8e377eba7ba WHIRLPOOL 0adda0f7fa4bd45c433ae988dbeb64774cd0af6e690c9895fea54aca5a71e7d93b2d314f6e09e827b26cbe441e44ea428cb41eac2a6345f04008351d7404c8e9
+DIST btrfs-progs-v4.13.2.tar.xz 1673732 SHA256 75c7331f1306495dfffabe542ef6c5539808f0cdaebdf14fa8b7ab09c59448bd SHA512 50db13868ed43433ec9b655825767e6e76036f407edc0caffecd4b371baf7d817575c2f25c77fe3d5e741bb52d57757c6c762de0c00cbefede615358a803d80a WHIRLPOOL c3dd7b8ee7c3e1b62885b2e1ad8f0bc4e72b24fd55090f43c7e95eaa2517c51c71d299c4f2450267721d41f1fa792ed48896b8e17215b65d50e61c6a1583cd98
+DIST btrfs-progs-v4.2.2.tar.xz 1143760 SHA256 5d87e4ebb2a3a288c167791e489bfa484034d185c704870c484cb0771d921316 SHA512 2ad23546b3bb421faad1f67da37566b6ae1887c5340c0f1d06ca59fc0cd0fb1060d92e74e36ba7bfd85b0aff30811525654cd03b7d3570b0b51c2d8e2d6d9a76 WHIRLPOOL 5051f232bf5d6c2d19bc0fba9f2653546fc09000279863637a7ab44ff5c8bd107e5307aef3d2fbc7113581df3c224965f882045153eb9fa10da5b34cc4318188
+DIST btrfs-progs-v4.3.1.tar.xz 1184416 SHA256 0cb5ff15deed01cdf5a77f3f61b7dc9d2cd6787bcf6b6b7dcef424d16e8afd3a SHA512 661c7c05ee3527cc34f3aa08e88e252e6e836a86752f7e607e3f6dc0a9a861d3bc645a6fa0a5af5f6abfe4f3f2f7e193cffc2bb1c53595e0b7f99c3ff59daeff WHIRLPOOL 503ab00d8362ab2b4b9b91a8de18cca9eba1d76f2331f54cbecc7e89cc491dce3cfbd761d8e6e37773499cea7ef67a66dc7f544d7590d0c82acbef90ebe0c824
+DIST btrfs-progs-v4.4.1.tar.xz 1173248 SHA256 9964e3ae4fb64692e109ddd733de4554e708348ffa18f0fc16a0cbd4bf40a8fc SHA512 3086e2e0385d9e14edcfa25e1aee1ed98087dd5b91a66aa450786c932d79841b5c4ee3f9a40b8fdecee0ba1e386196b89679d28e58e4924ce66cd78c5e3c0d4a WHIRLPOOL 188c4dec4f699262b023268e4a582312443aeaf0ea798446105d7288f6375cbad92ea2e8514def0b22cc8991c3ca9aefc5220dd8b6922aa4b506572da973ec33
+DIST btrfs-progs-v4.5.3.tar.xz 1207344 SHA256 e6e79608d81ccda62ad877c20e4d0868dc68e570ba42f4c94e66bf5e8ee0ebd3 SHA512 7bb15728577cdc56773e87583196ed36e15a4c417f03816e8a101506070e667b8e51f66fcf98095ddc20c9ce10da0b78de1171e9c8a6cb20a4811fd35d508961 WHIRLPOOL c938f35d4ec74beeb41e8ab56632bb33c7500f283cef3d59ff97494ab957be9f2e309feb80e383c29417ba78d7e2a89704faf6fe2558a06852944790f434172c
+DIST btrfs-progs-v4.6.1.tar.xz 1281240 SHA256 4ed15ccd0fa730c13e52fb930141a0d3f300f2bb34cb1366b32d093eaaa18919 SHA512 7bdf350a3051326f495e1694e11b27b830dce219ddbb0a805f1916f5deecdbd5332c3cd8abe36296832e196eee45e4cdc4695e99e186a51b85ec8b9f6ff5381d WHIRLPOOL d7c06549947278002c4de91f47b2b85d93a714bf1e984ce2b4d7321bcb8b0a11dd60cd84e070c382f61e67e919d3cbc88a723aaa5ab42806ecbe65ae01c4ae34
+DIST btrfs-progs-v4.7.3.tar.xz 1341512 SHA256 90cd6f0ce5a8bed5fcd6ea8a70d81de4a038163035d48a9ae0339bbf51df771c SHA512 2609bfa90483a14daf33b77f4f1560ca75de602ad3d4ce705a95f1aebbec016574db91b0287287622e49d199507c90243eb6739bb5719a5f99557f8f3e8e2c1a WHIRLPOOL 819879310484ba70d96f5492aca5463e5ba0c646dbd5e4b4ca797b76c754a352753641ef4d0f4ffe0109d07c72d99be5a2b1c749b1f03225cd582a83c9cf0d5a
+DIST btrfs-progs-v4.8.1.tar.xz 1348472 SHA256 836e6d707abfc155319c072f53d296261cbd17f0e03484a3694b8af48640db83 SHA512 43738c21b7c066fc13af742f61aad54572d5c293acb98915a2aa0ba6ec0e32022bf663155d77435d1179f05fb75b97bd0aba28da2ade04b596ef5348e8b5415c WHIRLPOOL d4b1e4c5ca0c826394b5d95ea92e27f0c625a0f5c940bdd88e310a7328f4ad77b4060f5f61d4b05ef03705fe605591dc7ae6c9368f37aa73b69fedee0ed0d448
+DIST btrfs-progs-v4.8.3.tar.xz 1396920 SHA256 c1a60c317d2fcaf8420779d2d0717ae53882c2bc22bc44e3bdcd5efb7ca68ef2 SHA512 bf6ed0269823bfe385659f652bcc18c76c3cac3ca6f04f76f1ebe1fd5e2212884edeed7f5649979f8d83745256e9555c038eb6713b262759ee424bb9f6f0f4ac WHIRLPOOL 4a4b20308e08ed85f73d70e95f0f971965a7e8abae35e12769a4c697f0f1502cc070240b5319579adf3f8565cf669acdf4b5aa32dfca77148b8f23bd97349f76
+DIST btrfs-progs-v4.8.4.tar.xz 1466164 SHA256 bf26ead666c337a62a74bc9ec7f8dd9ee200e60e5fe5289967d53328eff261c5 SHA512 f53a0bfcbeaa43b00e09b811b1e6eb5159cd8a4c78ddb26a5ce87975d203794cf6d0a026d4a646bed0266fbc2bec1833fe48a3ff3850ea27bc7a19d7aa7ad54b WHIRLPOOL caf015a1ab9411ef5ddfab50a32d11b678b6b931cf871a9bca88925a500612cb5718e8cd411cf39b6e94b2544e222545d24c89470b04545501d87b986ebf3e84
+DIST btrfs-progs-v4.8.5.tar.xz 1466688 SHA256 d247b1c022aca5def3415bfa51e00c566cce36660a3ee517d4b6a1af911a08ef SHA512 497c221fe329febc7cca777e347e8ab6ebb368070d35cb5122214bcf928eb2e7e854f7b0af5bc846f0d34ad84dfb33b372d24bf947ca0b15cb83291c390c664b WHIRLPOOL 3786ddbac699a22359911e89c989e58da7d7b6700f5380560645b6abc0cd46703bf512f8077c64b84fd5552915de1b620c7fe9aa0d96def025e7a3432bdfcd2e
+DIST btrfs-progs-v4.9.1.tar.xz 1476524 SHA256 464a9bfd2b5eda76b0246ee0a4043f4de8d17c10312bc8b84abc5fbf9317fede SHA512 143f5c8863f3b9eff2e4ca2c750bb80ffe62f66d0c15d23e6f5bf75dab0133dcd3ff4d4c722360560de24b73e3da1222f265230d18de06d7bccd85ad2cb9a6a5 WHIRLPOOL 34aa6010ad38b2bd88f22e4308dca587305a9f4c7c0053b60a2cb5d4a7fddcb92ca384152fcffe9c8bfe476de046dae0ab88093f9c9c4a805ebba07d3d8837e2
+DIST btrfs-progs-v4.9.tar.xz 1475844 SHA256 e227baeb4652e83aab33135ec29b30339e2c99bba67d56fb589cd8a6b642c8a3 SHA512 e39abf3808dd8b7ac2424cbf240cec5da12fb3e5d2eeaa2ed6a0e4b7d8bdc28a4c92891236feff70b801ce1e78b65370e05aed252890a076c0b1b9bbfd020f46 WHIRLPOOL 1dc2c98d2aec9dd41a661c6f03d5b0ca4d8e80f53f5951c5071a3fde67ebb72f97ecf89ee3448185d2c33c65f60a6de61e983169fabdf6284a6ef40c770573e6
+EBUILD btrfs-progs-3.14.2.ebuild 1252 SHA256 b66386ca09fd7e82b654058c289e51b9d8ab3b8fd1b2d652cfc6c9a7794aa40a SHA512 7dba479e65e7dc216b4a1b0af1b32561dcaf80f81893c96eef934267c9101c1e1069122ba990515f62fdcf30dc8d174f37a518bbda1679dab63eb5cff19e177a WHIRLPOOL bcc690d28d1592022aec434ecb67fd722e20cc4b943033766d22ed6c9fc48894e9104fa899ec5e0952c2a200397a890c72f9318de3c45ccb6dbdea8fea1fdf8a
+EBUILD btrfs-progs-3.16.2.ebuild 1257 SHA256 a197596356ecbc3368ec6a706bafaa4d4c2b0bae7cb483c91196c4ff0e2e2122 SHA512 2321b579af3ee75282836090bc1c0fa71e2f80fa039a479ea71755674f09cacc18e269430e1617e4b1dadd2a9a80b6155cfd0cf2231b6f3ef6fd58f03934caf2 WHIRLPOOL 674364bea6e68b6619c6a38d5e2b98c619be80f9f25454790d3543b416c56f6ff925137c122b53f04d4da38d9d7c0830efceee9fe3e38025714a9f1c1a4bcb8d
+EBUILD btrfs-progs-3.17.3.ebuild 1257 SHA256 f9e078e57e9db44510766dbc59da7b15a08c2210b5024ae73af4c350bb72bd98 SHA512 7465dc3c0e41bf7d499e897af4a28c2f0af58e382cebc2a4d61e9f4eae80aeed7a8af23d4a2d5d155c1185639b2c467c36101f36c1245b45b7491a9c3152c406 WHIRLPOOL 0601ec09e4d8ee75e194db1cb3b2fe68c9c85e9aaa1533b5ad3fda8bb79e85309b710139a3432d6a5c0ad0afc310dd6caabea69932deb9cbbd22c02a2877b732
+EBUILD btrfs-progs-3.18.2.ebuild 1264 SHA256 21063934d022a83025694283e8fdc32d632a54b72b70b3882477b92bdc3b330f SHA512 152cd4da549f7b2af7fb90b4e06bfa52e1cc06f64a704e72e1172fd39b667fb6e083367901f857334590018845243ec56c4cd03a9886faa80fdc054f1586a148 WHIRLPOOL 544e81329202219bd2ae579f30e8e1044f0310eac81404c30df3fa5d308334ccf173254a6e31d20b209ffd0b8efcbe3230e1e700f11c108cc90f12c8158793e9
+EBUILD btrfs-progs-3.19.1.ebuild 1862 SHA256 aabc6972c58e9c34d63970ea7d5decc0c4f56b60e2ae0c0a32212a7142f9e0c8 SHA512 e147cc134f68d04adae5cc9c21b1a81e4b6a3e46576bfa58dd441fc7d50148e407d66ebf97e5c84a25a026f50ced58a30b77216f1f2f8bacb89bcde4eeb14dd1 WHIRLPOOL 3a6fcc811d169248b5259610ffe6a1eb392b39063fd1e5c740e0d451e00a3259e4ce0d0ef2c829e3392adb93d97ff92ab0c10f439f3f0a4054857dc28f324d9e
+EBUILD btrfs-progs-4.0.1.ebuild 1865 SHA256 3a01d7264bcb4a10bef2fd96ea3198541a26082032c026cf58ddde26da528f03 SHA512 28ae046ec8a5bd9a523fe057fbc8e6fcc1a1b9be3662926727a3158fe5d1661019f6564b418e81ab1aa814311f90de12a8fd8745fb3846a369a7410a83953c3e WHIRLPOOL b6c03f9044086aa36f418bf6cdea8c505abe4d1acb1d545d4b85ceb73973594862016adffc15ecc5d8cb2c8bbf1e7943f357c4c60bc8ebef16de85b459380b47
+EBUILD btrfs-progs-4.1.2.ebuild 1891 SHA256 4001d1a94da1c6c8aa967fa5049f0eda7d8c96b35dc54671eca649d2a1d6ff49 SHA512 9f0771068eae7ec9bd54545d1f7d1146e9c1a221599dacb40c15106f73ea15bded433adc13dda8d2f7e302b2b4a989fd3a4442904ab222901eab70652e43d28c WHIRLPOOL 6ec33e86a895b1ad7aa54566e106e620c1f7a00f6fa34fdff23c2fd21ed514d759833f9591c093c45e17a70e8d7770cb64b3231668950b966f664290e3c249ed
+EBUILD btrfs-progs-4.10.2.ebuild 2196 SHA256 ad1e36ffe7bc55e7839a539fd1438d7b99443e8b97c21ed6239a305ca7d087c7 SHA512 8e0a96dbde8d3d89be0ce9b0941ea2cfb25baeed7eebc35e5f80665cad2aa81a1f71c46bd6c4cd93f68416de18b5a7b783f7aca104ca0a66522f8a51f485e864 WHIRLPOOL 5e02f872904bff7565adecebf4d3602b197982c8d84db65571ffd6b2e5d698fafa564976ea6947cbfc43c46477de04d8d7dc28c4f8bcd6cb1b12e601e017311c
+EBUILD btrfs-progs-4.11.ebuild 2201 SHA256 2bbee37700101d8b7a4decba322c433c3d35304bb0b2289c036e48dedee553a3 SHA512 51c6ab63b8cb3c0d6c99eec8412136a51788307c53eacbef3a81045b9cb093b9aa1c7cf9c2422d66bbcc9b714981927cac681c9838b5851d3311a3d9d2e4e6c4 WHIRLPOOL a7fbf25f98bf4d6aa9e354b87944439f23826fd3ee1b06943c46595963b1ad9a9e8b187c0a0c12a8a28fcaa7397eb336e651696ecbdffefb6db5377b5bfe1bb4
+EBUILD btrfs-progs-4.12.ebuild 2201 SHA256 2bbee37700101d8b7a4decba322c433c3d35304bb0b2289c036e48dedee553a3 SHA512 51c6ab63b8cb3c0d6c99eec8412136a51788307c53eacbef3a81045b9cb093b9aa1c7cf9c2422d66bbcc9b714981927cac681c9838b5851d3311a3d9d2e4e6c4 WHIRLPOOL a7fbf25f98bf4d6aa9e354b87944439f23826fd3ee1b06943c46595963b1ad9a9e8b187c0a0c12a8a28fcaa7397eb336e651696ecbdffefb6db5377b5bfe1bb4
+EBUILD btrfs-progs-4.13.1.ebuild 2201 SHA256 2bbee37700101d8b7a4decba322c433c3d35304bb0b2289c036e48dedee553a3 SHA512 51c6ab63b8cb3c0d6c99eec8412136a51788307c53eacbef3a81045b9cb093b9aa1c7cf9c2422d66bbcc9b714981927cac681c9838b5851d3311a3d9d2e4e6c4 WHIRLPOOL a7fbf25f98bf4d6aa9e354b87944439f23826fd3ee1b06943c46595963b1ad9a9e8b187c0a0c12a8a28fcaa7397eb336e651696ecbdffefb6db5377b5bfe1bb4
+EBUILD btrfs-progs-4.13.2.ebuild 2201 SHA256 2bbee37700101d8b7a4decba322c433c3d35304bb0b2289c036e48dedee553a3 SHA512 51c6ab63b8cb3c0d6c99eec8412136a51788307c53eacbef3a81045b9cb093b9aa1c7cf9c2422d66bbcc9b714981927cac681c9838b5851d3311a3d9d2e4e6c4 WHIRLPOOL a7fbf25f98bf4d6aa9e354b87944439f23826fd3ee1b06943c46595963b1ad9a9e8b187c0a0c12a8a28fcaa7397eb336e651696ecbdffefb6db5377b5bfe1bb4
+EBUILD btrfs-progs-4.2.2.ebuild 1891 SHA256 4001d1a94da1c6c8aa967fa5049f0eda7d8c96b35dc54671eca649d2a1d6ff49 SHA512 9f0771068eae7ec9bd54545d1f7d1146e9c1a221599dacb40c15106f73ea15bded433adc13dda8d2f7e302b2b4a989fd3a4442904ab222901eab70652e43d28c WHIRLPOOL 6ec33e86a895b1ad7aa54566e106e620c1f7a00f6fa34fdff23c2fd21ed514d759833f9591c093c45e17a70e8d7770cb64b3231668950b966f664290e3c249ed
+EBUILD btrfs-progs-4.3.1.ebuild 2260 SHA256 16bfad2751d4276db96b21621817d4920a7e2428199de538d155156b7da27ed5 SHA512 8e435e7c541dda1b45e1a0ea4af82143688101bcf5cc3afc83c38429f2c300420bc72f56460dd237cce1cda7c0c84de8fa552cac4b2fa6d5052f7388b5041727 WHIRLPOOL 8de6f8974b685f700318f7155b5d2d1b77dd821e089d328638383c66463efae0f9071b41c3153eb6536ddd7bc14d0da0077760d3fbb18842699522be379cbdb2
+EBUILD btrfs-progs-4.4.1.ebuild 2233 SHA256 724612f14dcf1201b8ee80384de93c4dd67145b27d32e34900fa20d75861bbaa SHA512 85038dfcffd849ffdd62239f275e63a2fc4ce693c140c598c89f3dc19c92fa5b72c61fef27192d46853f3bcf828aa7efb34e74949acbd919cb358e1a20654dcd WHIRLPOOL 22e9b8c8e85367d49f338ca80507ac5757a9e8150640b30160f9c209650af6a87cde4dd9f34528b12b1e53029ab7544a82c6ce7bbbefc5ba52b46f60845e2933
+EBUILD btrfs-progs-4.5.3.ebuild 2201 SHA256 768b646d1ffbb970bfcdc32116986b06a58455af3a27f7b354346c493ee3e9e2 SHA512 a2506e9d43d8b408d5d16bafdbfabe4f5ca6861a77e079dad62580418680a34dfb7ccb7ba847b1f05accb8afb8e624c5aeb86a940f354250dc8006884d9a47f1 WHIRLPOOL ffbf60d1effd0a1a901540307e27e91c23afc4603b4ff5762860d5e0af137bd05bcf99d11f74fa527e4a33b9b3f05af4446723ceb10462c2386e6f765aaa7716
+EBUILD btrfs-progs-4.6.1.ebuild 2196 SHA256 ad1e36ffe7bc55e7839a539fd1438d7b99443e8b97c21ed6239a305ca7d087c7 SHA512 8e0a96dbde8d3d89be0ce9b0941ea2cfb25baeed7eebc35e5f80665cad2aa81a1f71c46bd6c4cd93f68416de18b5a7b783f7aca104ca0a66522f8a51f485e864 WHIRLPOOL 5e02f872904bff7565adecebf4d3602b197982c8d84db65571ffd6b2e5d698fafa564976ea6947cbfc43c46477de04d8d7dc28c4f8bcd6cb1b12e601e017311c
+EBUILD btrfs-progs-4.7.3.ebuild 2201 SHA256 768b646d1ffbb970bfcdc32116986b06a58455af3a27f7b354346c493ee3e9e2 SHA512 a2506e9d43d8b408d5d16bafdbfabe4f5ca6861a77e079dad62580418680a34dfb7ccb7ba847b1f05accb8afb8e624c5aeb86a940f354250dc8006884d9a47f1 WHIRLPOOL ffbf60d1effd0a1a901540307e27e91c23afc4603b4ff5762860d5e0af137bd05bcf99d11f74fa527e4a33b9b3f05af4446723ceb10462c2386e6f765aaa7716
+EBUILD btrfs-progs-4.8.1-r1.ebuild 2243 SHA256 c9b4c16130c1385764a7251d41fcc09d71d79ae88093fdc4b1009ff3f013b6bd SHA512 01fe15654d7f31f0d3253d1cabad3d2161bdb677773e0eb591f72dd086da86ac42b56bb350a298ef7d26d329bbddda1a30dac690e9e0501a77fbb61fe4038cbe WHIRLPOOL 61ee900e8a2c6dbeaf80ae4d8827dccd71e581df886e721d6dcb2c87475c9cdaa9b7fb8ec58cca47f544115119e8ed6533585934bba8cbeb2de56f2119a4813b
+EBUILD btrfs-progs-4.8.3.ebuild 2253 SHA256 39cffe68c1d512b6fdd3dfa32bb9c6d7f86eddbec27fe659e641638efd66423c SHA512 b95eb2ad176ca6c7313052d180d1b7d824537044eba5a3dee360449ebb133ec61b1e801c981a4aa47b3e289c1570c6d411b26f0442b792fc921540e531c78d72 WHIRLPOOL 1a68e041e3639d54408d25a5dae812383791d16171298b42ea959984534a7999a93a69acd8c7f52be4a713a99706aadd7d96e93330a5d428c44e6be12316858d
+EBUILD btrfs-progs-4.8.4.ebuild 2201 SHA256 768b646d1ffbb970bfcdc32116986b06a58455af3a27f7b354346c493ee3e9e2 SHA512 a2506e9d43d8b408d5d16bafdbfabe4f5ca6861a77e079dad62580418680a34dfb7ccb7ba847b1f05accb8afb8e624c5aeb86a940f354250dc8006884d9a47f1 WHIRLPOOL ffbf60d1effd0a1a901540307e27e91c23afc4603b4ff5762860d5e0af137bd05bcf99d11f74fa527e4a33b9b3f05af4446723ceb10462c2386e6f765aaa7716
+EBUILD btrfs-progs-4.8.5.ebuild 2201 SHA256 768b646d1ffbb970bfcdc32116986b06a58455af3a27f7b354346c493ee3e9e2 SHA512 a2506e9d43d8b408d5d16bafdbfabe4f5ca6861a77e079dad62580418680a34dfb7ccb7ba847b1f05accb8afb8e624c5aeb86a940f354250dc8006884d9a47f1 WHIRLPOOL ffbf60d1effd0a1a901540307e27e91c23afc4603b4ff5762860d5e0af137bd05bcf99d11f74fa527e4a33b9b3f05af4446723ceb10462c2386e6f765aaa7716
+EBUILD btrfs-progs-4.9.1.ebuild 2201 SHA256 2bbee37700101d8b7a4decba322c433c3d35304bb0b2289c036e48dedee553a3 SHA512 51c6ab63b8cb3c0d6c99eec8412136a51788307c53eacbef3a81045b9cb093b9aa1c7cf9c2422d66bbcc9b714981927cac681c9838b5851d3311a3d9d2e4e6c4 WHIRLPOOL a7fbf25f98bf4d6aa9e354b87944439f23826fd3ee1b06943c46595963b1ad9a9e8b187c0a0c12a8a28fcaa7397eb336e651696ecbdffefb6db5377b5bfe1bb4
+EBUILD btrfs-progs-4.9.ebuild 2201 SHA256 768b646d1ffbb970bfcdc32116986b06a58455af3a27f7b354346c493ee3e9e2 SHA512 a2506e9d43d8b408d5d16bafdbfabe4f5ca6861a77e079dad62580418680a34dfb7ccb7ba847b1f05accb8afb8e624c5aeb86a940f354250dc8006884d9a47f1 WHIRLPOOL ffbf60d1effd0a1a901540307e27e91c23afc4603b4ff5762860d5e0af137bd05bcf99d11f74fa527e4a33b9b3f05af4446723ceb10462c2386e6f765aaa7716
+EBUILD btrfs-progs-9999.ebuild 2201 SHA256 768b646d1ffbb970bfcdc32116986b06a58455af3a27f7b354346c493ee3e9e2 SHA512 a2506e9d43d8b408d5d16bafdbfabe4f5ca6861a77e079dad62580418680a34dfb7ccb7ba847b1f05accb8afb8e624c5aeb86a940f354250dc8006884d9a47f1 WHIRLPOOL ffbf60d1effd0a1a901540307e27e91c23afc4603b4ff5762860d5e0af137bd05bcf99d11f74fa527e4a33b9b3f05af4446723ceb10462c2386e6f765aaa7716
+MISC ChangeLog 11132 SHA256 0c54d2a80dd689f3762685e94ab550f2a27d33ae432435303b9e19b909950475 SHA512 4da361f70e00cf63b34d50d54002d4a3bdd49831f758edc6e989a56e0f4d7b3b13c3e4ed0783f60392826d9e940834a502c1a45289022779529a761b5d82c615 WHIRLPOOL 5f6dc767533b1481f78f62ceb5f22df87ea7f29a28196f388e1371e0cc7b61578cc13aa575e1241d6635a5f549208555ab9852b7c402c854b5de44dededf3dd2
+MISC ChangeLog-2015 17405 SHA256 afad43040420e659470f318b069c989d976b5027c7d0c95ee1fcf4cdfa8990f5 SHA512 bfebbcfc924deb8808fbd11221add329eb01a20675d5c10b7a7a63b7ca7287922601f9b2a213f0832efd1cf2bfb693a1b172459a340b447982517f0e303bed79 WHIRLPOOL a296b422cac0a9e5192bd908b4a670942173f6dae0f85e8a217670ad670f2b9c126fded68b3eac551d8a3d15d58f6683f012006165a8a39190567d2f8e0b79cf
+MISC metadata.xml 665 SHA256 2ea7c9339eb3f5bb49f5f3c2acf2e86aefb5b3f51694a8b5576ac51d8f0f4bac SHA512 c7d2e00e0440de70b5a61464d8fbbc2366dbdf9dedcb5cfa6dbc6311fc32ee2bc44cebe55ae0da37de1c327a055589c1ebf388a3d23cb313a0ecd35c42fd4ab4 WHIRLPOOL 2ba502c701ccfd5778f9fcd138d531334a6e258a3a35fa9f2fe5891276403ea6504158663e3a6ac8a7db1b3b3cf38ef824d578ea8ef780eaa1d7b9dc024a670d
diff --git a/sys-fs/btrfs-progs/btrfs-progs-3.14.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-3.14.2.ebuild
new file mode 100644
index 000000000000..c92d22cfc56c
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-3.14.2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha amd64 arm ~ia64 ~mips ppc ppc64 ~sparc x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/mason/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ inherit git-2
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE=""
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ sys-fs/e2fsprogs:0=
+"
+DEPEND="${RDEPEND}
+ sys-apps/acl
+ app-text/asciidoc
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-3.14.2-install-man.patch"
+ epatch_user
+}
+
+src_compile() {
+ emake \
+ AR="$(tc-getAR)" \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ BUILD_VERBOSE=1
+}
+
+src_install() {
+ emake install \
+ DESTDIR="${D}" \
+ prefix=/usr \
+ bindir=/sbin \
+ libdir=/usr/$(get_libdir) \
+ mandir=/usr/share/man
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-3.16.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-3.16.2.ebuild
new file mode 100644
index 000000000000..8768a89951b5
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-3.16.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ inherit git-r3
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE=""
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ sys-fs/e2fsprogs:0=
+"
+DEPEND="${RDEPEND}
+ sys-apps/acl
+ app-text/asciidoc
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+src_prepare() {
+ epatch_user
+}
+
+src_compile() {
+ emake \
+ AR="$(tc-getAR)" \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ BUILD_VERBOSE=1
+}
+
+src_install() {
+ emake install \
+ DESTDIR="${D}" \
+ prefix=/usr \
+ bindir=/sbin \
+ libdir=/usr/$(get_libdir) \
+ mandir=/usr/share/man
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-3.17.3.ebuild b/sys-fs/btrfs-progs/btrfs-progs-3.17.3.ebuild
new file mode 100644
index 000000000000..b4a859e551dd
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-3.17.3.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ inherit git-r3
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE=""
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ sys-fs/e2fsprogs:0=
+"
+DEPEND="${RDEPEND}
+ sys-apps/acl
+ app-text/asciidoc
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+src_prepare() {
+ epatch_user
+}
+
+src_compile() {
+ emake \
+ AR="$(tc-getAR)" \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ BUILD_VERBOSE=1
+}
+
+src_install() {
+ emake install \
+ DESTDIR="${D}" \
+ prefix=/usr \
+ bindir=/sbin \
+ libdir=/usr/$(get_libdir) \
+ mandir=/usr/share/man
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-3.18.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-3.18.2.ebuild
new file mode 100644
index 000000000000..ae8956a2b652
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-3.18.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ inherit git-r3
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE=""
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ sys-fs/e2fsprogs:0=
+"
+DEPEND="${RDEPEND}
+ sys-apps/acl
+ app-text/asciidoc
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+src_prepare() {
+ epatch_user
+}
+
+src_compile() {
+ emake \
+ AR="$(tc-getAR)" \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ BUILD_VERBOSE=1
+}
+
+src_install() {
+ emake install \
+ DESTDIR="${D}" \
+ prefix=/usr \
+ bindir=/sbin \
+ libdir=/usr/$(get_libdir) \
+ mandir=/usr/share/man
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-3.19.1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-3.19.1.ebuild
new file mode 100644
index 000000000000..1fadf24a61ec
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-3.19.1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit bash-completion-r1 eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ app-text/asciidoc
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ epatch_user
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ default
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.0.1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.0.1.ebuild
new file mode 100644
index 000000000000..62bff36c8f0b
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.0.1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit bash-completion-r1 eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ppc64 ~sparc x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ epatch_user
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ default
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.1.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.1.2.ebuild
new file mode 100644
index 000000000000..0f9295456a1a
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.1.2.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit bash-completion-r1 eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ epatch_user
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ default
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.10.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.10.2.ebuild
new file mode 100644
index 000000000000..a5b593962faf
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.10.2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ppc64 ~sparc x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.11.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.11.ebuild
new file mode 100644
index 000000000000..397d271d38c9
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.11.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.12.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.12.ebuild
new file mode 100644
index 000000000000..397d271d38c9
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.12.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.13.1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.13.1.ebuild
new file mode 100644
index 000000000000..397d271d38c9
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.13.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.13.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.13.2.ebuild
new file mode 100644
index 000000000000..397d271d38c9
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.13.2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.2.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.2.2.ebuild
new file mode 100644
index 000000000000..0f9295456a1a
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.2.2.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit bash-completion-r1 eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
+ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ epatch_user
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ default
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.3.1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.3.1.ebuild
new file mode 100644
index 000000000000..670da034806a
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.3.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit bash-completion-r1 eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ppc64 ~sparc x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ epatch_user
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+
+ # Bug 572512
+ dodir /sbin
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.4.1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.4.1.ebuild
new file mode 100644
index 000000000000..5d5fe5103ac9
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.4.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit bash-completion-r1 eutils multilib toolchain-funcs
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ~ppc64 ~sparc x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ epatch_user
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.5.3.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.5.3.ebuild
new file mode 100644
index 000000000000..fa7bc3eb6b36
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.5.3.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.6.1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.6.1.ebuild
new file mode 100644
index 000000000000..a5b593962faf
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.6.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ppc64 ~sparc x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.7.3.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.7.3.ebuild
new file mode 100644
index 000000000000..fa7bc3eb6b36
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.7.3.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.8.1-r1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.8.1-r1.ebuild
new file mode 100644
index 000000000000..2d14380ad90f
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.8.1-r1.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+PATCHES=("${FILESDIR}"/${P}-fix-ioctl.h)
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.8.3.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.8.3.ebuild
new file mode 100644
index 000000000000..8a75a9fca115
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.8.3.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+PATCHES=("${FILESDIR}"/${P}-fix-ioctl-again.patch)
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.8.4.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.8.4.ebuild
new file mode 100644
index 000000000000..fa7bc3eb6b36
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.8.4.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.8.5.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.8.5.ebuild
new file mode 100644
index 000000000000..fa7bc3eb6b36
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.8.5.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.9.1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.9.1.ebuild
new file mode 100644
index 000000000000..397d271d38c9
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.9.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-4.9.ebuild b/sys-fs/btrfs-progs/btrfs-progs-4.9.ebuild
new file mode 100644
index 000000000000..fa7bc3eb6b36
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-4.9.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild b/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild
new file mode 100644
index 000000000000..fa7bc3eb6b36
--- /dev/null
+++ b/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+libbtrfs_soname=0
+
+if [[ ${PV} != 9999 ]]; then
+ MY_PV=v${PV}
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz"
+ S="${WORKDIR}"/${PN}-${MY_PV}
+else
+ WANT_LIBTOOL=none
+ inherit autotools git-r3
+ EGIT_REPO_URI="git://repo.or.cz/btrfs-progs-unstable/devel.git"
+ EGIT_BRANCH="devel"
+fi
+
+DESCRIPTION="Btrfs filesystem utilities"
+HOMEPAGE="https://btrfs.wiki.kernel.org"
+
+LICENSE="GPL-2"
+SLOT="0/${libbtrfs_soname}"
+IUSE="+convert static static-libs"
+
+RESTRICT=test # tries to mount repared filesystems
+
+RDEPEND="
+ dev-libs/lzo:2=
+ sys-apps/util-linux:0=[static-libs(+)?]
+ sys-libs/zlib:0=
+ convert? (
+ sys-fs/e2fsprogs:0=
+ sys-libs/e2fsprogs-libs:0=
+ )
+"
+DEPEND="${RDEPEND}
+ convert? ( sys-apps/acl )
+ >=app-text/asciidoc-8.6.0
+ app-text/docbook-xml-dtd:4.5
+ app-text/xmlto
+ static? (
+ dev-libs/lzo:2[static-libs(+)]
+ sys-apps/util-linux:0[static-libs(+)]
+ sys-libs/zlib:0[static-libs(+)]
+ convert? (
+ sys-fs/e2fsprogs:0[static-libs(+)]
+ sys-libs/e2fsprogs-libs:0[static-libs(+)]
+ )
+ )
+"
+
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+=" sys-devel/gnuconfig"
+fi
+
+src_prepare() {
+ default
+ if [[ ${PV} == 9999 ]]; then
+ eautoreconf
+ mkdir config || die
+ local automakedir="$(autotools_run_tool --at-output automake --print-libdir)"
+ [[ -e ${automakedir} ]] || die "Could not locate automake directory"
+ ln -s "${automakedir}"/install-sh config/install-sh || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.guess config/config.guess || die
+ ln -s "${EPREFIX}"/usr/share/gnuconfig/config.sub config/config.sub || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ $(use_enable convert)
+ $(use_enable elibc_glibc backtrace)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake V=1 all $(usev static)
+}
+
+src_install() {
+ local makeargs=(
+ $(usex static-libs '' 'libs_static=')
+ $(usex static install-static '')
+ )
+ emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ newbashcomp btrfs-completion btrfs
+}
diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-3.14.2-install-man.patch b/sys-fs/btrfs-progs/files/btrfs-progs-3.14.2-install-man.patch
new file mode 100644
index 000000000000..69e36aaadeba
--- /dev/null
+++ b/sys-fs/btrfs-progs/files/btrfs-progs-3.14.2-install-man.patch
@@ -0,0 +1,13 @@
+diff --git a/Documentation/Makefile b/Documentation/Makefile
+index 034559e..f461bf2 100644
+--- a/Documentation/Makefile
++++ b/Documentation/Makefile
+@@ -75,7 +75,7 @@ install: install-man
+ install-man: man
+ $(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
+ $(INSTALL) -m 644 $(GZ_MAN8) $(DESTDIR)$(man8dir)
+- $(LNS) btrfs-check.8.gz $(DESTDIR)$(man8dir)
++ $(LNS) btrfs-check.8.gz $(DESTDIR)$(man8dir)/btrfsck.8.gz
+
+ clean:
+ $(RM) *.xml *.xml+ *.8 *.8.gz
diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-4.8.1-fix-ioctl.h b/sys-fs/btrfs-progs/files/btrfs-progs-4.8.1-fix-ioctl.h
new file mode 100644
index 000000000000..61b60c78faae
--- /dev/null
+++ b/sys-fs/btrfs-progs/files/btrfs-progs-4.8.1-fix-ioctl.h
@@ -0,0 +1,36 @@
+commit 3ddbf895db678fb40f7513bac9dbc36fd4095693
+Author: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Mon Oct 24 09:08:53 2016 +0100
+
+ ioctl.h: add missing kernel compatibility header for BUILD_ASSERT
+
+ Header breakage noticed by cynede. Reproducible as:
+
+ $ gcc -c /usr/include/btrfs/ioctl.h -o /tmp/a.o
+ /usr/include/btrfs/ioctl.h:42:14: error: expected declaration specifiers or '...' before 'sizeof'
+ BUILD_ASSERT(sizeof(struct btrfs_ioctl_vol_args) == 4096);
+ ^~~~~~
+
+ Basically gcc tries to say us BUILD_ASSERT is not visible.
+
+ BUILD_ASSERT lives in kerncompat.h which this change adds.
+
+ Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+
+diff --git a/ioctl.h b/ioctl.h
+index a7235c0..abea7ed 100644
+--- a/ioctl.h
++++ b/ioctl.h
+@@ -26,6 +26,12 @@ extern "C" {
+ #include <asm/types.h>
+ #include <linux/ioctl.h>
+
++#if BTRFS_FLAT_INCLUDES
++#include "kerncompat.h"
++#else
++#include <btrfs/kerncompat.h>
++#endif /* BTRFS_FLAT_INCLUDES */
++
+ #ifndef __user
+ #define __user
+ #endif
diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-4.8.3-fix-ioctl-again.patch b/sys-fs/btrfs-progs/files/btrfs-progs-4.8.3-fix-ioctl-again.patch
new file mode 100644
index 000000000000..9c894900e4ab
--- /dev/null
+++ b/sys-fs/btrfs-progs/files/btrfs-progs-4.8.3-fix-ioctl-again.patch
@@ -0,0 +1,9 @@
+diff --git a/ioctl.h b/ioctl.h
+index cdfb888..ad4372c 100644
+--- a/ioctl.h
++++ b/ioctl.h
+@@ -710,3 +710,3 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code)
+ default:
+- return NULL;
++ return 0;
+ }
diff --git a/sys-fs/btrfs-progs/metadata.xml b/sys-fs/btrfs-progs/metadata.xml
new file mode 100644
index 000000000000..579960674527
--- /dev/null
+++ b/sys-fs/btrfs-progs/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <use>
+ <flag name="convert">Build ext2 conversion utility (btrfs-convert)</flag>
+ <flag name="static">Build static binaries in addition to the dynamic ones</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-fs/btrfsmaintenance/Manifest b/sys-fs/btrfsmaintenance/Manifest
new file mode 100644
index 000000000000..4cfb7d88dbc3
--- /dev/null
+++ b/sys-fs/btrfsmaintenance/Manifest
@@ -0,0 +1,3 @@
+DIST btrfsmaintenance-0.3.1.tar.gz 19698 SHA256 e2f6a6cd433a38407c580630e3f4a0c4747390f0e129d5c9d0f91ec461cfb855 SHA512 89be6da3d6bb3f85f645ac899f173d19cb787e938dd2fc91be16b3202a6784ca33dc4a4d9f9ee78ac6a96468dbaa4f4dc7a2f2e6998d550ea44d7af24198dbfb WHIRLPOOL ee3c73da6a4b88e6b3cd63660fcb1164599e3d09d378f385b6f1ec3613b287d90d2c8be9b4d66472ea56e1755f6a1091bcaec75cb844d376ec98fc54de882f51
+EBUILD btrfsmaintenance-0.3.1.ebuild 1383 SHA256 7cd2486a19feee1a9f8cde3580aaa6b14dbc23384749884a127479f7ede1f053 SHA512 c585bb7588f7d055c8d483d335821ee10135169562654f9e38e88470d35dd2470f334e8f0ff8cc146f978535cdf6fd6f0b867cc449e673408a4af20fbc510e35 WHIRLPOOL 0182777c9b053e8b92c4a2e5a7e8053389245e612f15c6c7de95c4a675862d9675c5f97b65fd235308abfa0a68768973699ffd5eda97d2434558728620a71a60
+MISC metadata.xml 454 SHA256 ce3e6ce4d0b96bd7dabcda04b92d8bae042e6c2435ea432efd61036494e3ea16 SHA512 d23ea714ccb28d7f7266fc12c89bafb4b673025e285d1ca6faddaf74b99b39f54aefb043848e2812db5c28ef950ff86ba075d1afac51c0ce23c8c7c9691eb96e WHIRLPOOL 0c2e9ccfbd0e9cdd57bb34ea9d0d6c384b6901782e0586afe64958e6fef6a06d4f261edfc6eb02c5944c017f0613eb54ad8bf5f9cf46e3f9f2b66b79aac7a6a9
diff --git a/sys-fs/btrfsmaintenance/btrfsmaintenance-0.3.1.ebuild b/sys-fs/btrfsmaintenance/btrfsmaintenance-0.3.1.ebuild
new file mode 100644
index 000000000000..d70dc711e301
--- /dev/null
+++ b/sys-fs/btrfsmaintenance/btrfsmaintenance-0.3.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Scripts for btrfs maintenance tasks like periodic scrub, balance, trim or defrag"
+HOMEPAGE="https://github.com/kdave/btrfsmaintenance"
+SRC_URI="https://github.com/kdave/btrfsmaintenance/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ sys-fs/btrfs-progs
+ virtual/cron"
+
+src_install() {
+ dodoc README.md CONTRIBUTING.md btrfsmaintenance.changes
+ insinto /etc/default
+ newins sysconfig.btrfsmaintenance btrfsmaintenance
+ insinto /usr/share/btrfsmaintenance
+ doins btrfsmaintenance-functions
+ exeinto /usr/share/btrfsmaintenance
+ doexe btrfs*.sh
+ insinto /usr/lib/systemd/system
+ doins btrfsmaintenance-refresh.service
+}
+
+pkg_postinst() {
+ elog "Installing default btrfsmaintenance scripts"
+ "${EROOT%/}"/usr/share/btrfsmaintenance/btrfsmaintenance-refresh-cron.sh || die
+ elog "Now edit cron periods and mount points in /etc/default/btrfsmaintenance"
+ elog "then run /usr/share/btrfsmaintenance/btrfsmaintenance-refresh-cron.sh to"
+ elog "update cron symlinks"
+}
+
+pkg_prerm() {
+ if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+ elog "Removing symlinks from btrfsmaintenance cron tasks"
+ "${EROOT%/}"/usr/share/btrfsmaintenance/btrfsmaintenance-refresh-cron.sh uninstall || die
+ fi
+}
diff --git a/sys-fs/btrfsmaintenance/metadata.xml b/sys-fs/btrfsmaintenance/metadata.xml
new file mode 100644
index 000000000000..1aba136c2736
--- /dev/null
+++ b/sys-fs/btrfsmaintenance/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>martin.dummer@gmx.net</email>
+ <name>Martin Dummer</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">kdave/btrfsmaintenance</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/cachefilesd/Manifest b/sys-fs/cachefilesd/Manifest
new file mode 100644
index 000000000000..0c59590f82d7
--- /dev/null
+++ b/sys-fs/cachefilesd/Manifest
@@ -0,0 +1,12 @@
+AUX cachefilesd-0.10.4-makefile.patch 628 SHA256 615df8e77a409f852749cd607c6a4efc03780c2105bd0ce8fbcb1b02df87fdc9 SHA512 b6092b5c98c63b8479af22c6bf1812da9124a54c8e51e9e7531bf7984d3816090cc0a0126d6d506f8d42bc19863b2ba486b373d5c5577d47369cf3a1b2c78e72 WHIRLPOOL ac74923fd47026cf643fa1036cd79a80f08fafae6f0a606075c296f922218d16c2bd1f1e7267bd84566d023491fe092b3db69a559c93545f9d2c4c683c7df6cf
+AUX cachefilesd-0.10.9-makefile.patch 609 SHA256 dc9f156be5c41fe697b8fe231a9504ee3f497fc522cc40f52b493e49b11d0d9d SHA512 cda279d9403dcae3cc1ba15bda7093536bc4bdf20c1dd9cc8e26f8bec504c4524e829e1ee8a936acecab71ff1d855520274383f916d9d15076dc9e876d88dee7 WHIRLPOOL 561649ac2ffbb6b363076ce3d5768a5755f3dcdc6054b48af45bf55732bb99f0399dad4680e927c9920d950b31705d4e2a6591b5f16a030ee8e3ff8362e43a95
+AUX cachefilesd-3.init 1677 SHA256 03273e15479d0214ab46f39629b9473dae87e7255894c60a16d9413853ff18bf SHA512 ca227db027c1673f9e1339f6a3952c93a2cbdf454adb690e43c8eb49860cf998b5e12f0191ec58c78055212f7a65269b77a413e7ee89c3293ac9a3af5a0ec8f8 WHIRLPOOL 3badffde9486e0627e5b1ed5eae14e522328751a4bcf9a7a7cd9743c2d2eb4c297fed6b6bfa2d2c486e26c17d48bfe9d788e406259f506fed72adecef8a3f39c
+AUX cachefilesd-tmpfiles.d 32 SHA256 8908a4bb666be2b28ff867e7df23c9361357f0b4cde59f59abbe0390653b6188 SHA512 37ddd3a452cc1d639b3ea3e98fc528c4552dd7f768a05fd1e4ad1821bbd6a0092f1cc5cfa4e7e41664952e4fd06001724fe64f6a16115fff15c542732d2ffec3 WHIRLPOOL 04cfa3991da0a8d46bc2e034d29526c31cfc3bb28ccce5115be1591e8bae3e043e904b93362ef7ac43dbe2ec38325068057aa116c8db3eaa248c1bbcea1d22fd
+AUX cachefilesd.conf 296 SHA256 160ed6e0633adb05942cdf78cc8a559015c915b84c21540e842beb965b17987a SHA512 6b82563b27b3a202afa6922bf4059836c7d363c5350d2b348ecca6ae12de2ae31d903e65b00f427712e7df22c0401b181177e168715e5e375b290f6d247fd846 WHIRLPOOL 2eecccf1ccfda7f848f985479d1d84f890955e8e2d7011e793a9d83042dfc08d9b2c1158c7eadbbfcc8a2c4740fb96a8d7164a2217f36dac2cd1766bc682168c
+DIST cachefilesd-0.10.5.tar 112640 SHA256 125ea4f6aef4bf8e936a7cc747b59e074537a8aed74cd1bab3f05d7fbc47287f SHA512 996e47de40cff4d2c0d265689ef3a33aee6ef0d0432a03d7428133c091e77b0e099bd1346b5638bf2d9df6bb47bce519491b420d5916a3211c4e04e158ad92e8 WHIRLPOOL fad173739c307629ffef091a0cad890ee9bb3b133471de1fe9bb43cc06ee46a051fdb97262f9380a8133fb49cd87b9cbd3ee71205867046bd361f890c2645f1e
+DIST cachefilesd-0.10.9.tar.bz2 26555 SHA256 c897ec6704615f26de3ddc20ff30a191ce995cb8973d2cde88b4b28c1a1e6bca SHA512 06ab444a7df8ec37c15bc03554510f4acbb453e0730277f036abc5d61f9e377d90d9387dd5237ea481b95b1bf097b5992adce90ce971fe29760cc4c0d3c9cf34 WHIRLPOOL 97a398ebaecfdc5f16317607ef4a17a4518969930f2ca436eebeaca445a763eaef03cd648e8a21b0c9bebe8a25c072108c227162185b90e666bb41580cd5883a
+EBUILD cachefilesd-0.10.5-r4.ebuild 1480 SHA256 4586e2e3ccd00e3b55b9b5928cc8a6b492175ac856177ce145d1138006c61868 SHA512 65cea8918efadaadca5a2eb422b1fa1082d741977ac8420eb2b7f2e7fc6c03e758cfd046c1cf1f609a1f50d046132bf029b9f490fc1e3eb458c25315f582fb92 WHIRLPOOL ab6be9ed3e2cfd658c91fc449c477c2ffcafdcbebead3ac29ea64292f3c418d799940cc15d2cbaa1fefe0f583f5107788f8d20e01a4c97249d5d9c333987442f
+EBUILD cachefilesd-0.10.9.ebuild 1475 SHA256 f35f0cd93f87c88ec05f4c3fa0cb04af291f9ece9f2e0c1a209916fc6d5c10ec SHA512 7c554794416a185738ba1fabda6395fe6443b6eb519bf2c750a414980cd66af5b218c9375a9747d0234b7566f1b583f2c4d267f66fc780dc1db0c4bb27de6c4d WHIRLPOOL 61e4903e758ddee83c589e5d9170b475b86f12205cfcd67bf03eccbd48d8aaa1ad73c09f186247f54b3b3e1e0fdba87284be79d3c9614f156eea969010196c2c
+MISC ChangeLog 3702 SHA256 9d5c7b1da2353a15c4acefe839446fffb7d3a40da44672603de6a108efa15116 SHA512 60a5e391be2b7ccefc097545d0bfce0888b19a1b386d5bcda3d950e3b849c1953fbc6c00c69ee57d325eb0a4341d3a3296d863e09fc42c58fd963d6fe553104e WHIRLPOOL 078e9f50b5f3f4e6031a3c9a95221c805c96f0b61c542da43c92794b83103e175b67d3e8e10d00baac45f485e68a5a8b31e6328606fe90c5f10348e49d4213aa
+MISC ChangeLog-2015 3015 SHA256 9a32992afe8e605fe5d64b61d8a1510c0a6643eef1a5245ff434838d33caf506 SHA512 73b927670846169307f3266e5cc0ecc5a2eb4a51416056d746633b6ccf643085e784b9f42dafc61c2869c416f1cd44c46a79b1a12cc075c34c9db30b899689a7 WHIRLPOOL 8e175749e746935d4f8cc9c850031993b3f5f5ba01c9ca3c21823090ee0adbb1464028159849e39effe6f85d25431052570681bce3f78a6cfc635d2ad0af8e68
+MISC metadata.xml 247 SHA256 476881b53a1d153f1c3c21b5e7b81ca4d704b7b868aa58eef6a2faa531aabb5d SHA512 189f876175728dfb474cf2ccb122ebfe48b068cc5fd65a3cfed7dad947dd9ce0fc7c89ce5c0982fdee5262025236b7d5cccf48b55c67c5cd33e84910c28e0b46 WHIRLPOOL 2225cc6e12a88d99aca5e7b1a986bc808e64840a95fa9cfba2b21f841eb1619c8c86170d0701c3088bc9acac4cdb86467dd85f36e5315b635dcfed348b289bc8
diff --git a/sys-fs/cachefilesd/cachefilesd-0.10.5-r4.ebuild b/sys-fs/cachefilesd/cachefilesd-0.10.5-r4.ebuild
new file mode 100644
index 000000000000..c1084bae7fcb
--- /dev/null
+++ b/sys-fs/cachefilesd/cachefilesd-0.10.5-r4.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils flag-o-matic systemd toolchain-funcs
+
+DESCRIPTION="Provides a caching directory on an already mounted filesystem"
+HOMEPAGE="https://people.redhat.com/~dhowells/fscache/"
+SRC_URI="https://people.redhat.com/~dhowells/fscache/${P}.tar.bz2 -> ${P}.tar"
+
+SLOT="0"
+LICENSE="GPL-2+"
+KEYWORDS="amd64 x86"
+IUSE="doc selinux"
+
+RDEPEND="selinux? ( sec-policy/selinux-cachefilesd )"
+DEPEND=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-0.10.4-makefile.patch
+ tc-export CC
+ if ! use selinux; then
+ sed -e '/^secctx/s:^:#:g' -i cachefilesd.conf || die
+ fi
+
+ append-flags -fpie
+}
+
+src_install() {
+ default
+
+ if use selinux; then
+ insinto /usr/share/doc/${P}
+ doins -r selinux
+ fi
+
+ dodoc howto.txt
+
+ newconfd "${FILESDIR}"/${PN}.conf ${PN}
+ newinitd "${FILESDIR}"/${PN}-3.init ${PN}
+
+ systemd_dounit ${PN}.service
+ systemd_newtmpfilesd "${FILESDIR}"/${PN}-tmpfiles.d ${PN}.conf
+}
+
+pkg_postinst() {
+ [[ -d /var/cache/fscache ]] && return
+ elog "Before CacheFiles can be used, a directory for local storage"
+ elog "must be created. The default configuration of /etc/cachefilesd.conf"
+ elog "uses /var/cache/fscache. The filesystem mounted there must support"
+ elog "extended attributes (mount -o user_xattr)."
+ echo ""
+ elog "Once that is taken care of, start the daemon, add -o ...,fsc"
+ elog "to the mount options of your network mounts, and let it fly!"
+}
diff --git a/sys-fs/cachefilesd/cachefilesd-0.10.9.ebuild b/sys-fs/cachefilesd/cachefilesd-0.10.9.ebuild
new file mode 100644
index 000000000000..b0bebcb564b0
--- /dev/null
+++ b/sys-fs/cachefilesd/cachefilesd-0.10.9.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic systemd toolchain-funcs
+
+DESCRIPTION="Provides a caching directory on an already mounted filesystem"
+HOMEPAGE="https://people.redhat.com/~dhowells/fscache/"
+SRC_URI="https://people.redhat.com/~dhowells/fscache/${P}.tar.bz2"
+
+SLOT="0"
+LICENSE="GPL-2+"
+KEYWORDS="amd64 ~x86"
+IUSE="doc selinux"
+
+RDEPEND="selinux? ( sec-policy/selinux-cachefilesd )"
+DEPEND=""
+
+src_prepare() {
+ eapply_user
+ eapply "${FILESDIR}"/${PN}-0.10.9-makefile.patch
+ if ! use selinux; then
+ sed -e '/^secctx/s:^:#:g' -i cachefilesd.conf || die
+ fi
+
+ tc-export CC
+ append-flags -fpie
+}
+
+src_install() {
+ default
+
+ if use selinux; then
+ insinto /usr/share/doc/${P}
+ doins -r selinux
+ fi
+
+ dodoc howto.txt
+
+ newconfd "${FILESDIR}"/${PN}.conf ${PN}
+ newinitd "${FILESDIR}"/${PN}-3.init ${PN}
+
+ systemd_dounit ${PN}.service
+ systemd_newtmpfilesd "${FILESDIR}"/${PN}-tmpfiles.d ${PN}.conf
+}
+
+pkg_postinst() {
+ [[ -d /var/cache/fscache ]] && return
+ elog "Before CacheFiles can be used, a directory for local storage"
+ elog "must be created. The default configuration of /etc/cachefilesd.conf"
+ elog "uses /var/cache/fscache. The filesystem mounted there must support"
+ elog "extended attributes (mount -o user_xattr)."
+ echo ""
+ elog "Once that is taken care of, start the daemon, add -o ...,fsc"
+ elog "to the mount options of your network mounts, and let it fly!"
+}
diff --git a/sys-fs/cachefilesd/files/cachefilesd-0.10.4-makefile.patch b/sys-fs/cachefilesd/files/cachefilesd-0.10.4-makefile.patch
new file mode 100644
index 000000000000..5cbb24001c95
--- /dev/null
+++ b/sys-fs/cachefilesd/files/cachefilesd-0.10.4-makefile.patch
@@ -0,0 +1,24 @@
+ Makefile | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index d5d352e..9a98bf5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,4 +1,3 @@
+-CFLAGS := -g -O2 -Wall
+ INSTALL := install
+ DESTDIR :=
+ ETCDIR := /etc
+@@ -38,7 +37,10 @@ endif
+ ###############################################################################
+ all: cachefilesd
+
+-cachefilesd: cachefilesd.c Makefile
++cachefilesd.o: cachefilesd.c
++ $(CC) $(CFLAGS) -c $<
++
++cachefilesd: cachefilesd.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+
+ ###############################################################################
diff --git a/sys-fs/cachefilesd/files/cachefilesd-0.10.9-makefile.patch b/sys-fs/cachefilesd/files/cachefilesd-0.10.9-makefile.patch
new file mode 100644
index 000000000000..276eff35a1c0
--- /dev/null
+++ b/sys-fs/cachefilesd/files/cachefilesd-0.10.9-makefile.patch
@@ -0,0 +1,19 @@
+--- cachefilesd-0.10.9/Makefile.old 2016-07-18 11:12:38.467106807 +0800
++++ cachefilesd-0.10.9/Makefile 2016-07-18 11:13:59.937770347 +0800
+@@ -1,4 +1,3 @@
+-CFLAGS := -g -O2 -Wall -Wsign-compare
+ INSTALL := install
+ DESTDIR :=
+ ETCDIR := /etc
+@@ -40,7 +39,10 @@
+ ###############################################################################
+ all: cachefilesd
+
+-cachefilesd: cachefilesd.c Makefile
++cachefilesd.o: cachefilesd.c
++ $(CC) $(CFLAGS) -c $<
++
++cachefilesd: cachefilesd.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+
+ ###############################################################################
diff --git a/sys-fs/cachefilesd/files/cachefilesd-3.init b/sys-fs/cachefilesd/files/cachefilesd-3.init
new file mode 100644
index 000000000000..665fab3b369d
--- /dev/null
+++ b/sys-fs/cachefilesd/files/cachefilesd-3.init
@@ -0,0 +1,55 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need localmount
+ use logger
+ before nfsmount
+}
+
+checkxattr() {
+ local testpath testfile ret
+ # SELinux requires xattrs, so we can assume things work already
+ [ -f /sys/fs/selinux/status ] && return 0;
+ testpath=$(awk '/^[[:space:]]*dir/ {print $2}' /etc/cachefilesd.conf)
+ checkpath -d "${testpath}"
+ testfile="${testpath}/.tmp-xattr-test.cachefilesd"
+ touch "${testfile}"
+ # creates a file in the testpath and tries to set an attribute on it to check
+ # if the support is available
+ attr -s test -V xattr "${testfile}" 2>&1 > /dev/null
+ ret=$?
+ rm -f "${testfile}"
+ [ ${ret} -ne 0 ] && eerror "xattr support missing on the ${testpath} filesystem"
+ return ${ret}
+}
+
+start() {
+ ebegin "Starting cachefilesd"
+ checkxattr || return $?
+ # check if the cachefiles modules is loaded (or builtin)
+ if [ ! -c /dev/cachefiles ] ; then
+ local ret
+ einfo "/dev/cachefiles doesn't exist, trying to modprobe cachefiles"
+ modprobe cachefiles
+ ret=$?
+ if [ $ret -ne 0 ] ; then
+ eerror "cachefiles modules cannot be loaded so cachefilesd "
+ eerror "cannot be started, aborting. Did you build fscache in your "
+ eerror "kernel? Note that you need a 2.6.30 or better kernel"
+ return $ret
+ fi
+ fi
+
+ start-stop-daemon --start --pidfile /run/cachefilesd.pid --exec /sbin/cachefilesd -- ${OPTIONS}
+ eend $? "Failed to start cachefilesd. Check the system log to see the error"
+
+}
+
+stop() {
+ ebegin "Stopping cachefilesd"
+ start-stop-daemon --stop --exec /sbin/cachefilesd --pidfile /run/cachefilesd.pid
+ eend $? "Failed to stop cachefilesd"
+}
+
diff --git a/sys-fs/cachefilesd/files/cachefilesd-tmpfiles.d b/sys-fs/cachefilesd/files/cachefilesd-tmpfiles.d
new file mode 100644
index 000000000000..11da15afd7f0
--- /dev/null
+++ b/sys-fs/cachefilesd/files/cachefilesd-tmpfiles.d
@@ -0,0 +1 @@
+d /var/cache/fscache 0755 - - -
diff --git a/sys-fs/cachefilesd/files/cachefilesd.conf b/sys-fs/cachefilesd/files/cachefilesd.conf
new file mode 100644
index 000000000000..28bc434c2486
--- /dev/null
+++ b/sys-fs/cachefilesd/files/cachefilesd.conf
@@ -0,0 +1,7 @@
+# Config file for /etc/init.d/cachefilesd
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# -d - This can be specified multiple times.
+# -f <configfile> - Read the specified configuration file instead of /etc/cachefiles.conf
+OPTIONS=""
diff --git a/sys-fs/cachefilesd/metadata.xml b/sys-fs/cachefilesd/metadata.xml
new file mode 100644
index 000000000000..76f45cdee0f4
--- /dev/null
+++ b/sys-fs/cachefilesd/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>perfinion@gentoo.org</email>
+ <name>Jason Zaman</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/clamfs/Manifest b/sys-fs/clamfs/Manifest
new file mode 100644
index 000000000000..02af1bda810d
--- /dev/null
+++ b/sys-fs/clamfs/Manifest
@@ -0,0 +1,9 @@
+AUX clamfs-1.0.1-gcc45.patch 391 SHA256 6d630a0f87c9f99f6718152a9bda58834de99f7e83a14b84d40a539aef4d041c SHA512 00bc13b5abfb07d08e5b34d2490d62de6f8c0daf78f920dcf5a0c92b203d3fd769ea631247cc3f61992ee4453875a8707379a1c9e399e805dec9c8c47cf2a5de WHIRLPOOL 4b2e24b4988e1768ffaae10116177d0584c5ba2742b7ac0f0dcae3e9b60bc5b7f50fa80beeed817f2ce03e719bc27870c1abd0cc87731a8df59fd3e2aad9a3fc
+AUX clamfs-1.0.1-gentoo.patch 675 SHA256 b32331afa6d317a98fea26496c102778dae8acd751085a80769bd450efaaeb92 SHA512 3b96022c30b66cf62c440d4150168bed5a25b4bdac1cca8ac97d3383c5bf16749712185a7011aebc97c2730d42d6b90e48dd9b1825988c2a5366ca1af916296c WHIRLPOOL 9dad3fb065deb1e2bd0ef1c91bac1be76c15c5393ef20392083b49d6cad596aaa2045bcd828f19a464c79fdd7b78cfd4c2c3dafe11187f4512cd0fc0b8b68ffc
+AUX clamfs.confd 41 SHA256 81e44ff517a49b97382e9d42f4f829d1c7b20a7e6689ff7f99ed611b13498bd4 SHA512 a49afb1e2684732581c4b6274744be71193e48137d71abf4d12b943d1b91502b52fd077a6124c33182e6796cbdb609c000e0f3c1baa05b9349ab4a38b247280d WHIRLPOOL d4763e5af73a892a739f4f1171da18970d8477b2eb90ceb682347cad1a00b2958e4ca4f5fd5773ac7fba47691f24bc1199a9d16887574e1239890b19ecb116d0
+AUX clamfs.initd 441 SHA256 bb1aef9484c1b1c508c75f85b8aa261da30225c6178d0599642b2bf79e408861 SHA512 5a3b2de57733893df42d307ac299ec785f9e7a9d52bbd4139c166b607c5e803d3052afaee5dcc95b430fdb76a0da05c198c419dd8f3885e7d2d1b5d5e3c6e8b6 WHIRLPOOL 5597a7950ebc583c43a0104e9f5c7f1691d659f45cfa2a5fcfe6d733391e127fa18fd7711adac1acc7b5b83b73036c1e1e8e5fa7bd413080c14d4ca61a924ba6
+DIST clamfs-1.0.1.tar.gz 142386 SHA256 d4f8b0ce767fab3deeb356e8c7cd45a34b5e3de43177735b4f315fc16aa11d03 SHA512 8a9912c068c178049e8538da729635af1372e8ad1f7bc0e14cc7506208d15a4c1fdab7cf229dd683a3245168c627a3d994ec5b24bca5f12efc9ff638040e3258 WHIRLPOOL 3df3764f07983fa9c043c72b3755041735dd39ad1e32f90a175b3cdbe305cf62562334666aa7171e9263d0b821cc4688deee00ff0d8c1be23580abd3184f6bee
+EBUILD clamfs-1.0.1-r2.ebuild 880 SHA256 6f2bd52e949ef5dcac1ea32ee746175689788e486531baadb4d806832d0c037f SHA512 2f2e279660e3d02ed2005f98c9db6d57c56fe5dc46ccf8105d2ae7cc19240ea66efd47599cc33f7cb566a31b505d91e56f1499005e416221cdeb51cb5ce23b2a WHIRLPOOL e52c186ccd34a72774f4bb9dd3eeeb42f301a8be7d24ecc8355d8eeee8589723a06bd4cf5bf79d422b44744c6812f71c7f15f246876c6d74be295cd10540a821
+MISC ChangeLog 3066 SHA256 36e4ca0755e937ec548da0bcea960beb16ca57741ab1a1fd8e2fd2219707b43c SHA512 180492cac61bbf4690841ccfa7a5669384ee3480cef66f42e9f30ed7f754b5e79ee43208275bbac20cac9efe06e92811b954bd2ca40d9c35eff116e5787404ac WHIRLPOOL b541172c6ca7fafcdc8b207c0090a38ba7ed177960a4ec0752477c28a450eb886d09fb840982082889863c74537ba61a590a32cd180ad5f8ed1393b682956fab
+MISC ChangeLog-2015 708 SHA256 116fbb3bd2c849473927a91bd90f26bb93cb9e3744439a59960bc86917f4112f SHA512 f429a508b90db28928389376257b03eb44210ce0e28ca036ac69b67040b6d1c21d49f49c48ec23543eb327a1115f12f2900aac9490ff2de63dc1c224c13c685f WHIRLPOOL 0d2d7e89f5f0329ee6f8b157b78d7be55ab9accbad7f9a0538d41a8859250f8ede83ba798ca6044a75ab03b483d239c630d755e8f00aaa22bbf20067578fb0ce
+MISC metadata.xml 475 SHA256 2af5d6f8be60495be76fcdf60665b858c4b4b95003bc1a03e1f453ab9094f7b4 SHA512 b6df75e41f257bd6d420906c1aadbdab5efac2e6910ffcdf41f6353d3745f17f1f7df7733e816944c87f8f7503082bcdc422430c601ab06701408663fc150011 WHIRLPOOL 1e4323775452cae0d319a555abb0cbf85e038a605b2b60607d149897c348cd8b293521bfe536478a7c38a7b30dfee7ae8f49284474c3c26cadeaa4d1e751966f
diff --git a/sys-fs/clamfs/clamfs-1.0.1-r2.ebuild b/sys-fs/clamfs/clamfs-1.0.1-r2.ebuild
new file mode 100644
index 000000000000..0fbd8b5055af
--- /dev/null
+++ b/sys-fs/clamfs/clamfs-1.0.1-r2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+inherit eutils linux-info
+
+DESCRIPTION="A FUSE-based user-space file system with on-access anti-virus file scanning"
+HOMEPAGE="http://clamfs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-libs/boost-1.33
+ sys-fs/fuse
+ dev-cpp/commoncpp2
+ dev-libs/rlog
+ dev-libs/poco"
+RDEPEND="${DEPEND}
+ app-antivirus/clamav"
+
+CONFIG_CHECK="~FUSE_FS"
+
+src_prepare() {
+ eapply "${FILESDIR}/${P}-gentoo.patch"
+ eapply -p0 "${FILESDIR}/${P}-gcc45.patch"
+ eapply_user
+}
+
+src_install() {
+ emake install DESTDIR="${D}"
+
+ insinto /etc/clamfs
+ doins doc/clamfs.xml
+
+ newinitd "${FILESDIR}/${PN}.initd" ${PN}
+ newconfd "${FILESDIR}/${PN}.confd" ${PN}
+
+ dodoc AUTHORS ChangeLog NEWS README TODO
+}
diff --git a/sys-fs/clamfs/files/clamfs-1.0.1-gcc45.patch b/sys-fs/clamfs/files/clamfs-1.0.1-gcc45.patch
new file mode 100644
index 000000000000..1f5f63a252f2
--- /dev/null
+++ b/sys-fs/clamfs/files/clamfs-1.0.1-gcc45.patch
@@ -0,0 +1,15 @@
+Fix building with gcc 4.5
+
+http://bugs.gentoo.org/show_bug.cgi?id=320107
+
+--- src/scancache.cxx
++++ src/scancache.cxx
+@@ -37,7 +37,7 @@
+ }
+
+ ScanCache::ScanCache(long int elements, long int expire):
+- ExpireLRUCache<ino_t, CachedResult>::ExpireLRUCache<ino_t, CachedResult>(elements, expire) {
++ ExpireLRUCache<ino_t, CachedResult>(elements, expire) {
+ }
+
+ ScanCache::~ScanCache() {
diff --git a/sys-fs/clamfs/files/clamfs-1.0.1-gentoo.patch b/sys-fs/clamfs/files/clamfs-1.0.1-gentoo.patch
new file mode 100644
index 000000000000..f5c02daca6d6
--- /dev/null
+++ b/sys-fs/clamfs/files/clamfs-1.0.1-gentoo.patch
@@ -0,0 +1,12 @@
+diff -Naur clamfs-1.0.1.orig/doc/clamfs.xml clamfs-1.0.1/doc/clamfs.xml
+--- clamfs-1.0.1.orig/doc/clamfs.xml 2009-02-07 23:09:26.000000000 +0900
++++ clamfs-1.0.1/doc/clamfs.xml 2010-01-08 18:19:13.000000000 +0900
+@@ -16,7 +16,7 @@
+ check - (yes or no) check if clamd is available on startup (useful if
+ mounting clamfs file systems from /etc/fstab early on startup,
+ while clamav daemon is not yet started) -->
+- <clamd socket="/var/run/clamav/clamd.ctl" check="yes" />
++ <clamd socket="/var/run/clamav/clamd.sock" check="yes" />
+
+ <!-- File system settings
+ root - real directory to attach as our root
diff --git a/sys-fs/clamfs/files/clamfs.confd b/sys-fs/clamfs/files/clamfs.confd
new file mode 100644
index 000000000000..941549a4ca60
--- /dev/null
+++ b/sys-fs/clamfs/files/clamfs.confd
@@ -0,0 +1 @@
+CLAMFS_CONFFILE="/etc/clamfs/clamfs.xml"
diff --git a/sys-fs/clamfs/files/clamfs.initd b/sys-fs/clamfs/files/clamfs.initd
new file mode 100644
index 000000000000..a98bd4d91a97
--- /dev/null
+++ b/sys-fs/clamfs/files/clamfs.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use logger
+ need clamd
+}
+
+start() {
+ ebegin "Starting clamfs"
+ start-stop-daemon --start --quiet \
+ --exec /usr/bin/clamfs -- ${CLAMFS_CONFFILE}
+ eend $? "Failed to start clamfs"
+}
+
+stop() {
+ ebegin "Stopping clamfs"
+ start-stop-daemon --stop --quiet --name clamfs
+ eend $? "Failed to stop clamfs"
+}
diff --git a/sys-fs/clamfs/metadata.xml b/sys-fs/clamfs/metadata.xml
new file mode 100644
index 000000000000..dfe00d7ec76e
--- /dev/null
+++ b/sys-fs/clamfs/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <longdescription lang="en">
+ ClamFS is a FUSE-based user-space file system for Linux with on-access
+ anti-virus file scanning through clamd daemon (a file scanning service
+ developed by ClamAV Project).
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">clamfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/cloudfuse/Manifest b/sys-fs/cloudfuse/Manifest
new file mode 100644
index 000000000000..089e7cfcb426
--- /dev/null
+++ b/sys-fs/cloudfuse/Manifest
@@ -0,0 +1,5 @@
+DIST cloudfuse-1.0.tar.gz 63361 SHA256 4684fcc7c596c3fd696e9b4f436fb5da4883ddbd4b36ce6dee4ef1b8f965a4a9 SHA512 c2631898f14a90a251e6fb94e62457d1f8594a53bde873326955c401785067aef750393d7a73e97c22146654d0a9e5fa909a3d26b280909a9ecf09c1bc7f0fb7 WHIRLPOOL e71934f11865696778a95227bd31aa34e1cdf2fcabb24437ed1c493e18f09a073125a9f100f3484e4f2b1f28a6e84920020acd8d12acac6c479e400b16ae629c
+EBUILD cloudfuse-1.0.ebuild 462 SHA256 c71f4e76a9bca2ccf8368d3686c559ec09cac80480cf1f00129802a6f3e29a6b SHA512 91b0b454e1a5e0b0d1b199e0adf00583531c05f733e37c51c6986a26a8f87f69833f1a77b5509bff253d952c5039492e80cd8146df2e1bedd204ddd2610d64a5 WHIRLPOOL c79bdc2122194827f75785e134dbc53b00316186f01b5b35f4e5862adbdf6ad7cd9ca986946502e14d879f4f3fd0c30bdb5fd4e289330b294aa09bd1362f9668
+MISC ChangeLog 2710 SHA256 3bd8e35c33fb90776ec0532710fcfb5494cbece5d142ddfbcecbb2ff1ad1a598 SHA512 05c4ad25f52e6dd79b761454bfabe8d058f66ba55c2023dfb62cec964550c8088a02a12d1516706ce895ceb306f539a1e495950bc613d491fc460de06fd0270c WHIRLPOOL 01b35fb1ac25dec6eadf8f0bfad84bce12ef7646cec50191df725ea726c4a3869f4699ec7d5a6ae970e2c12bf144885fe55bd6ee34ca845cc5cc5b9a07c60836
+MISC ChangeLog-2015 374 SHA256 bd16f1cac8ebcdfc65c3687f5e16844790a31f9adb857632f8877cda7f5efdca SHA512 0fc3a1244adc9a02dcfc22c18f2792c2073cd84f673f43bd43c4ac11c8eadcadc4e2c7b4116eada6dfb4a59ec0dd1c20d1908e984b46b69723d90b6f53511f20 WHIRLPOOL 4300348f633c916512df49b356239295d4e19bc14a046efd773ed729fc4075f32e675f049506cdc60507cb3a73f057f1efe635814302ab9b227a1a7af5a229f0
+MISC metadata.xml 551 SHA256 ce8834ab28b67480f0af6a98c44a23be159242b6a6ffa2b300c21d58f7b6d70e SHA512 b33072193acfc1440431e40a9cd4d464e9492de14aa260e86b9738c406bab6a9633fff76a8fb70807ef16be0eb861e4b878fe58d94afd4a8e8c983b916141710 WHIRLPOOL 7ed1fc091d8d8a84b1b26a4fdf4c10712978e69c3770bb9b222b656cbe2f4b0fed16b7185dc355e859b72a045a590c8acae813f53c2fc41078c7fea0c5512cf3
diff --git a/sys-fs/cloudfuse/cloudfuse-1.0.ebuild b/sys-fs/cloudfuse/cloudfuse-1.0.ebuild
new file mode 100644
index 000000000000..9e1a9a1db695
--- /dev/null
+++ b/sys-fs/cloudfuse/cloudfuse-1.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="A FUSE filesystem for Rackspace's Cloud Files"
+HOMEPAGE="http://redbo.github.io/cloudfuse/"
+SRC_URI="https://github.com/redbo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="
+ dev-libs/libxml2
+ dev-libs/openssl:0
+ net-misc/curl
+ sys-fs/fuse
+"
+
+RDEPEND="${DEPEND}"
diff --git a/sys-fs/cloudfuse/metadata.xml b/sys-fs/cloudfuse/metadata.xml
new file mode 100644
index 000000000000..ea34ee5410b9
--- /dev/null
+++ b/sys-fs/cloudfuse/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>stasibear@gentoo.org</email>
+ <name>Erik Mackdanz</name>
+ </maintainer>
+ <longdescription>
+ Cloudfuse is a FUSE application which provides access
+ to Rackspace's Cloud Files. The README claims that
+ Openstack Swift is also supported, though I haven't
+ tested this yet.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">redbo/cloudfuse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/copyfs/Manifest b/sys-fs/copyfs/Manifest
new file mode 100644
index 000000000000..c4d68a16f6cc
--- /dev/null
+++ b/sys-fs/copyfs/Manifest
@@ -0,0 +1,7 @@
+AUX copyfs-1.0-unlink.patch 4383 SHA256 b442e18bf37b108e661fb641e463cb64d919308a5c9b09c5817fc7f04703f0c1 SHA512 dc4a665e98f5250f36ff5dffb4b1ebe58ce9939724d58a0f99f6b21a7d7440947bc90bd6f07f471774cbcca9da5cc0b9f621081e2384797cf47302cb2769b0bb WHIRLPOOL 01290aafc1d424b93ca32c4f378c99c020729be1366d48d0eec4b535bfd913ce57c360988a9aa1e36b239e8e153138cc7b4ca8808ff9dff4a3058b06370a7cdf
+AUX copyfs-1.0.1-gentoo.patch 999 SHA256 6571725e25606c3da8085f442df6a06c3bea93263f2fdf1dc4726cbf21c37c52 SHA512 45cf7dd29ef8deb2421177cf513906fd40864b93192a5cb2556ed3cd85227d173f7fd9a24e1c4ac78426f1059ffa5a05e348bf64ad6759575774f60407d31143 WHIRLPOOL 56ccd2daa226b321bd493bbb1e61037fa563667d49248282a2c57539be4246cb573aa1121659eea3d675fe58568fba4d5e3d9bbc19d7836bdaac58e13caeed0c
+DIST copyfs-1.0.1.tar.bz2 38429 SHA256 63022f60e2c6b488bef509add0e7cdb41d597ded22a70c1c6ae74ab4a6b7e0f7 SHA512 abe1a125913f35d8390385562d56a5a1aa238ec03bfa044d61ac8f514a4986bfa70502d30af9dbc90e58910dab7f0ab5e230de0b4fa2eb45fe3a2f6514be0a07 WHIRLPOOL e230bb1f4cf24bbc6cdf9bfcad4324d7861e6b36b3dd5a9611e62e52520635e2605831d697a548f82fb589422ac79e4997efbc9b2ef689746860d04932d3f5f2
+EBUILD copyfs-1.0.1.ebuild 1007 SHA256 1973a75b5ee5d9028e2b4c00befb9990ad8dfbf6ba7f441b90549035310fb7e8 SHA512 b598a3579c2c41a81a3b3fa68014aa290467f84f0e0600402dd9ee8d93ae19aa43344370e7c53c807a7ae847b6d8a95f78ceaf5ff5eae8fa780715056eb13af2 WHIRLPOOL 014dfdfc30daae955454f7bc421b1f85c22aaf4c4049416a90ca5d7a79ea8e6d327a9101febbdf94f18b48cd1b3864c760c95edf5c58a813fc4786aa2fd4316d
+MISC ChangeLog 2585 SHA256 19b576283267a6f042a8bf97d75cda9c346dd6aa6a6ada7997c025f79cd39c9f SHA512 03ef66ad539fc5c69a9e2f1e1475059072e5d87242c3b9f86f3b0e9a23f5181faa23abd3343f3e5cf73602a68e1ba1a8cde3f96d3f0908b41ed0c54b2ddd5dbd WHIRLPOOL 635211558796dcff37d42a48d0839d3c2b55138be343a06b53559ab771df25c8201f68b0980ba09db286d89eac6a6f85b9f03a49f2c035d7ce62fb69815f6725
+MISC ChangeLog-2015 1209 SHA256 833009291ef002ba0662c11c7f89aef024c1340531e7799987b640e454e3a7e1 SHA512 e77e16247940e8f9d78c78bd6da286d65c777dd11c328a6c79de20b75d2b913c340b72835d36d145783ead78f3dff435eeed45229174b97e887949d6cdcc9af1 WHIRLPOOL 6c5af7112b29b3b7db87c26355258edce2a3f66d07fa6778627071bffa2ca342a343b835b28caac6a2004abf844de7a22f5e491f44ca75a6a60d401faeba065c
+MISC metadata.xml 166 SHA256 2caff447f5bd2701d8456ada5cc633c41ef4373fa4bfeabeb73599d40bcc941b SHA512 a56648c974a1d14dd4c18237532773c72057a13ab90c58b5da04f185e3c12a8bd8d5c21fb06053507f31766291a82dc7d87b34cd65fd94cfe2af7295c813ef84 WHIRLPOOL 1ff70497eca6531f0e0614c72a19f4b8e5ff486a58d369f4f0b36308d1d6b01168f9da887740e3b9f536236be251d3fe05f904d27a9233a7cf613416ba882968
diff --git a/sys-fs/copyfs/copyfs-1.0.1.ebuild b/sys-fs/copyfs/copyfs-1.0.1.ebuild
new file mode 100644
index 000000000000..dcec1e63bce8
--- /dev/null
+++ b/sys-fs/copyfs/copyfs-1.0.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit autotools eutils toolchain-funcs
+
+DESCRIPTION="fuse-based filesystem for maintaining configuration files"
+HOMEPAGE="http://invaders.mars-attacks.org/~boklm/copyfs/"
+SRC_URI="${HOMEPAGE}/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64 ~ppc"
+IUSE=""
+
+DEPEND=">=sys-fs/fuse-2.0
+ sys-apps/attr"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # this patch fixes sandbox violations
+ epatch "${FILESDIR}"/${P}-gentoo.patch
+
+ # this patch adds support for cleaning up the versions directory
+ # the patch is experimental at best, but it's better than your
+ # versions directory filling up with unused files
+ #
+ # patch by stuart@gentoo.org
+ epatch "${FILESDIR}"/${PN}-1.0-unlink.patch
+ eautoreconf
+}
+
+src_configure() {
+ econf --bindir="${D}/usr/bin" --mandir="${D}/usr/share/man"
+}
+
+src_compile() {
+ emake CC=$(tc-getCC) || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+}
diff --git a/sys-fs/copyfs/files/copyfs-1.0-unlink.patch b/sys-fs/copyfs/files/copyfs-1.0-unlink.patch
new file mode 100644
index 000000000000..f4ee28fae148
--- /dev/null
+++ b/sys-fs/copyfs/files/copyfs-1.0-unlink.patch
@@ -0,0 +1,158 @@
+diff -u --recursive copyfs-1.0-orig/cache.c copyfs-1.0/cache.c
+--- copyfs-1.0-orig/cache.c 2004-12-10 13:34:08.000000000 +0000
++++ copyfs-1.0/cache.c 2004-12-18 20:30:17.945445677 +0000
+@@ -94,6 +94,61 @@
+ }
+
+ /*
++ * Remove metadata from the cache
++ */
++void cache_remove_metadata(metadata_t *metadata)
++{
++ version_t * version;
++
++ int atHead = 1;
++ int atTail = 1;
++
++ if (NULL == metadata)
++ return ;
++
++ /* Disconnect it from the list */
++ if (metadata->md_previous)
++ {
++ metadata->md_previous->md_next = metadata->md_next;
++ atHead = 0;
++ }
++
++ if (metadata->md_next)
++ {
++ metadata->md_next->md_previous = metadata->md_previous;
++ atTail = 0;
++ }
++
++ if (atHead)
++ {
++ metadata->md_bucket->b_contents = metadata->md_next;
++ if (metadata->md_next != NULL)
++ metadata->md_next->md_previous = NULL;
++ }
++
++ metadata->md_bucket->b_count--;
++ if (metadata->md_bucket->b_count == 0)
++ metadata->md_bucket->b_contents = NULL;
++
++ version = metadata->md_versions;
++
++ while (NULL != version)
++ {
++ metadata->md_versions = version->v_next;
++ free(version);
++ version = metadata->md_versions;
++ }
++
++ if (metadata->md_vfile != NULL)
++ free (metadata->md_vfile);
++
++ if (metadata->md_vpath != NULL)
++ free (metadata->md_vpath);
++
++ free(metadata);
++}
++
++/*
+ * Clean the older items out of the cache to free space. The goal is to
+ * half the number of items, so that we don't get called constantly.
+ */
+@@ -122,6 +177,7 @@
+ bucket = &cache_hash_table[CACHE_HASH(metadata->md_vfile)];
+ metadata->md_previous = NULL;
+ metadata->md_next = bucket->b_contents;
++ metadata->md_bucket = bucket;
+ if (bucket->b_contents)
+ bucket->b_contents->md_previous = metadata;
+ bucket->b_contents = metadata;
+diff -u --recursive copyfs-1.0-orig/cache.h copyfs-1.0/cache.h
+--- copyfs-1.0-orig/cache.h 2004-12-10 13:34:08.000000000 +0000
++++ copyfs-1.0/cache.h 2004-12-18 20:04:32.072307652 +0000
+@@ -11,6 +11,7 @@
+ void cache_initialize(void);
+ void cache_finalize(void);
+ metadata_t *cache_get_metadata(const char *vpath);
++void cache_remove_metadata(metadata_t *metadata);
+ void cache_add_metadata(metadata_t *metadata);
+ int cache_find_maximal_match(char **array, metadata_t **result);
+
+diff -u --recursive copyfs-1.0-orig/interface.c copyfs-1.0/interface.c
+--- copyfs-1.0-orig/interface.c 2004-12-18 20:04:21.560474299 +0000
++++ copyfs-1.0/interface.c 2004-12-18 20:17:22.367357210 +0000
+@@ -137,6 +137,7 @@
+ file = helper_build_composite("-S", "/", entry->d_name +
+ strlen(METADATA_PREFIX));
+ metadata = rcs_translate_to_metadata(file, rcs_version_path);
++
+ free(file);
+ if (metadata && !metadata->md_deleted)
+ {
+@@ -176,18 +177,42 @@
+ metadata = rcs_translate_to_metadata(path, rcs_version_path);
+ if (!metadata || metadata->md_deleted)
+ return -ENOENT;
+- version = rcs_find_version(metadata, LATEST, LATEST);
+- if (lstat(version->v_rfile, &st_rfile) == -1)
+- return -errno;
+- if (S_ISDIR(st_rfile.st_mode))
+- return -EISDIR;
++
++ /* remove all of the versions that we know about */
++
++ version = metadata->md_versions;
++
++ while (NULL != version)
++ {
++ /* if we can't stat the file, we assume it's already toast */
++
++ if (lstat(version->v_rfile, &st_rfile) == 0)
++ {
++ if (S_ISDIR(st_rfile.st_mode))
++ {
++ return -EISDIR;
++ }
++
++ if (unlink(version->v_rfile) == -1)
++ return -errno;
++ }
++
++ /* move on to the next version */
++ metadata->md_versions = version->v_next;
++ free(version);
++
++ version = metadata->md_versions;
++ }
++
++ /* if we get to here, we've released all the versions */
+ metadata->md_deleted = 1;
+ metafile = create_meta_name(metadata->md_vfile, "metadata");
+- if (write_metadata_file(metafile, metadata) == -1) {
+- free(metafile);
++ if (unlink(metafile) == -1)
+ return -errno;
+- }
+ free(metafile);
++
++ cache_remove_metadata(metadata);
++
+ return 0;
+ }
+
+diff -u --recursive copyfs-1.0-orig/structs.h copyfs-1.0/structs.h
+--- copyfs-1.0-orig/structs.h 2004-12-10 13:34:08.000000000 +0000
++++ copyfs-1.0/structs.h 2004-12-18 20:04:32.073307446 +0000
+@@ -38,6 +38,8 @@
+
+ metadata_t *md_next; /* Next file in bucket */
+ metadata_t *md_previous; /* Previous " */
++
++ bucket_t *md_bucket; /* Our container */
+ };
+
+ struct bucket_t
diff --git a/sys-fs/copyfs/files/copyfs-1.0.1-gentoo.patch b/sys-fs/copyfs/files/copyfs-1.0.1-gentoo.patch
new file mode 100644
index 000000000000..f0ddfab94af4
--- /dev/null
+++ b/sys-fs/copyfs/files/copyfs-1.0.1-gentoo.patch
@@ -0,0 +1,46 @@
+--- a/ea.c
++++ b/ea.c
+@@ -1,10 +1,11 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#include <attr/xattr.h>
++#include <sys/xattr.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <fuse.h>
++#include <sys/errno.h>
+
+ #include "helper.h"
+ #include "structs.h"
+--- a/interface.c
++++ b/interface.c
+@@ -23,7 +23,7 @@
+ #include <errno.h>
+ #include <sys/stat.h>
+ #include <stdlib.h>
+-#include <attr/xattr.h>
++#include <sys/xattr.h>
+ #include <sys/time.h>
+ #include <time.h>
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -27,7 +27,7 @@
+ OBJ = $(SRC:.c=.o)
+
+ CC = gcc
+-CFLAGS = -Wall -ansi -W -std=c99 -g -ggdb -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
++CFLAGS += -Wall -ansi -W -std=c99 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
+ LIBS = -lfuse
+
+ all: $(TARGET)
+@@ -54,7 +54,7 @@
+ rm -rf /tmp/copyfs-dist
+
+ $(TARGET): $(OBJ)
+- gcc -o $(TARGET) $(OBJ) $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(TARGET) $(OBJ) $(LIBS)
+
+ # Dependencies (use gcc -MM -D_FILE_OFFSET_BITS=64 *.c to regenerate)
+
diff --git a/sys-fs/copyfs/metadata.xml b/sys-fs/copyfs/metadata.xml
new file mode 100644
index 000000000000..6f49eba8f496
--- /dev/null
+++ b/sys-fs/copyfs/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<!-- maintainer-needed -->
+</pkgmetadata>
diff --git a/sys-fs/cramfs/Manifest b/sys-fs/cramfs/Manifest
new file mode 100644
index 000000000000..f19c0411c5c3
--- /dev/null
+++ b/sys-fs/cramfs/Manifest
@@ -0,0 +1,5 @@
+DIST cramfs-1.1.tar.gz 24179 SHA256 133caca2c4e7c64106555154ee0ff693f5cf5beb9421ce2eb86baee997d22368 SHA512 6c18dbe32df57f7d132fb2a59a917ad381156ca1f720c1ad0997ca81c62e82fd43ebb0339c5a66d5b144a72ce5c7ae93596522fe2698259f2b68c31db26e3b63 WHIRLPOOL fd36364c10141ac0058d4614ba26d20f82667eb3c7559845a0e3f8904ab2b43ecd1682a87bb7e4f1216c4ec79c1b07602b1056d430b77f67aa3d719dc3a19420
+EBUILD cramfs-1.1.ebuild 668 SHA256 a42f02ab3d9e77b1097ee3bb7737f869f5d37367e31b4e32a6e3b49a37e72333 SHA512 7900e1b764bb4c9d73e3716b9e8bb3ded8efb7507fcbc9abe17e30ada371bbc58eb37d7527c46e634aee92fac69f6c3ff96c9a3a3ef5a7f4b5e5ce779bf657b5 WHIRLPOOL 97eeedeb39011d24cbea524f3acb16e13aeb01f66e928ffc9971bdf9486c52afda7b50942292522e2fb2855e5bc6abe2834a9b5213bbdd602ff2fcc358d0789c
+MISC ChangeLog 3111 SHA256 14c4d95c65bdf5803e681c9a1bf1eccb46240af51a83d00686ead131e89d367a SHA512 19a2831bf5485478bdd57e4b7f0478e6605d72ec541e39356dab811710ec3945ce10cf0cabf9a17cf4fee18d1c2637f60953c09be04494ea37039f50b7439a61 WHIRLPOOL a7b0b747fb2f9084b6aa8f86d3619e6f7629833985c74d9e66a3c8dd9d09a5f1999ccff1721c4e34a51bcfecc89a098a6423a221806598ffd79d8f48bbed068e
+MISC ChangeLog-2015 1155 SHA256 64899d01e182fdec9594f617835018ad0cfcc63680daf1feafaabf62b3cdf168 SHA512 f6798c98420979a5224487d375dd7ad4ebf810ee5115f048f578f0dd38a689d08a7ea59676c33911be5749962f4055c55996ba35e22c2787854e7d6ca4257ffa WHIRLPOOL d90d01eaa51ed608bd18aee31ae0d89bcc1c8b2207cbfddef5976ecda946c4760d065f4b2a2be4c2fdca0be8ec9ecde7a85582915d7b173ff45bee8e296d08e9
+MISC metadata.xml 326 SHA256 7cd93514caf828f4173fca4830ff12d02f42bfa0769a247dc0de8b36764639a3 SHA512 adb8fa2cf18de2f83d1560eeb8af2b8a8cc81c6f30df05012c3999c1e1f5b0d450c48d81e27db3c01e61a3aced9c580acc06ec3e6a5f127800cae2fbf14872d5 WHIRLPOOL 82ddd542bb722995d357988148677163c3a21f30cf3159c80bc6ad2db0a2587ffeb60495c393ed171a350df85cc234fce88e42364351a105a2f9ff57e870d45d
diff --git a/sys-fs/cramfs/cramfs-1.1.ebuild b/sys-fs/cramfs/cramfs-1.1.ebuild
new file mode 100644
index 000000000000..2e22125930fa
--- /dev/null
+++ b/sys-fs/cramfs/cramfs-1.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit toolchain-funcs
+
+DESCRIPTION="Linux filesystem designed to be simple, small, and to compress things well"
+HOMEPAGE="https://sourceforge.net/projects/cramfs/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ppc ~sparc x86"
+IUSE=""
+
+DEPEND="sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ sed -i '1i#include <sys/sysmacros.h>' mkcramfs.c || die #580196
+}
+
+src_compile() {
+ emake CFLAGS="${CFLAGS}" CC="$(tc-getCC)"
+}
+
+src_install() {
+ into /
+ dosbin mkcramfs cramfsck
+ dodoc README NOTES
+}
diff --git a/sys-fs/cramfs/metadata.xml b/sys-fs/cramfs/metadata.xml
new file mode 100644
index 000000000000..088ee8bcf6a3
--- /dev/null
+++ b/sys-fs/cramfs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="sourceforge">cramfs</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/cryfs/Manifest b/sys-fs/cryfs/Manifest
new file mode 100644
index 000000000000..ea776c2f1f8a
--- /dev/null
+++ b/sys-fs/cryfs/Manifest
@@ -0,0 +1,4 @@
+DIST cryfs-0.9.7.tar.xz 970588 SHA256 c998069217c29c026a944da47eea0a9e73eda914ef0f891f436701bcbdbbe4d7 SHA512 962c7e5e7ea153ed41cb47094b71bc41457e26203b94cc5e349c4d21e86630e32113c0193a248eee8ead41bede1c712d4c006150f84a6e1c2a0a0a7c02a1911b WHIRLPOOL c5560f8c87bcdaf3dd3bc1cded88fdbc3f74a2284584cad1f55e4dd380849290eb56b265fd4ea98a2f8b3ea842b733e6a0d77a9013efe294a5ec3a342897bd19
+EBUILD cryfs-0.9.7.ebuild 1937 SHA256 9ce34cbb0e2f0fafa879b3a832702323045a0d82b4d2fe94825ae7b0eb0da94e SHA512 9b8f50a59a6b8db328ab9fb8725aeeb589196cfb786a99c0a6ccfeecac7537b12beb1563d45ca268447667239aec268cfd52be6273506ddd0cde69b944176268 WHIRLPOOL 7e211151357cfb2ae36f01b71b40d97c5b87df5553051eaee956b9fb2c7bb2d54e1a093bd3e543353d613eb1ad0c6fe7df779e1fd450d3475ed5d6d3174bbe31
+EBUILD cryfs-9999.ebuild 1937 SHA256 9ce34cbb0e2f0fafa879b3a832702323045a0d82b4d2fe94825ae7b0eb0da94e SHA512 9b8f50a59a6b8db328ab9fb8725aeeb589196cfb786a99c0a6ccfeecac7537b12beb1563d45ca268447667239aec268cfd52be6273506ddd0cde69b944176268 WHIRLPOOL 7e211151357cfb2ae36f01b71b40d97c5b87df5553051eaee956b9fb2c7bb2d54e1a093bd3e543353d613eb1ad0c6fe7df779e1fd450d3475ed5d6d3174bbe31
+MISC metadata.xml 516 SHA256 a4732095885a80fa95c3ab2d6d1f35a1912930562de424b8304419d5c13ac336 SHA512 d452400e202e5f1ce607cdd554e7e40ee626b43dcc344b3d9f87bbdd2bc4b6bf072615e09b26adcf5a0a751837db62f2f02c4c5421510d929be6e935bcf03dd4 WHIRLPOOL f03565893870b31964dff43d3b4123062696fe3a9977173098d5eb4bd21e58c5d3062858665cf46fdfb12aa83b999fb86df8824502aadadae3304f7a3078910e
diff --git a/sys-fs/cryfs/cryfs-0.9.7.ebuild b/sys-fs/cryfs/cryfs-0.9.7.ebuild
new file mode 100644
index 000000000000..cc9eea2b0e7b
--- /dev/null
+++ b/sys-fs/cryfs/cryfs-0.9.7.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+
+inherit cmake-utils python-any-r1
+
+DESCRIPTION="Encrypted FUSE filesystem that conceals metadata"
+HOMEPAGE="https://www.cryfs.org/"
+
+SLOT=0
+IUSE="test update-check"
+
+LICENSE="LGPL-3 BSD-2 MIT"
+# cryfs - LGPL-3
+# scrypt - BSD-2
+# spdlog - MIT
+
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/cryfs/cryfs"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/cryfs/cryfs/releases/download/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}"
+fi
+
+RDEPEND=">=dev-libs/boost-1.56:=
+ >=dev-libs/crypto++-5.6.3:=
+ net-misc/curl:=
+ >=sys-fs/fuse-2.8.6:=
+ dev-libs/openssl:0="
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}"
+
+src_prepare() {
+ # remove tests that require internet access to comply with Gentoo policy
+ sed -i -e '/CurlHttpClientTest.cpp/d' -e '/FakeHttpClientTest.cpp/d' test/cpp-utils/CMakeLists.txt || die
+
+ # remove non-applicable warning
+ sed -i -e '/WARNING! This is a debug build. Performance might be slow./d' src/cryfs-cli/Cli.cpp || die
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ # upstream restricts installing files to Release configuration
+ # (CMAKE_BUILD_TYPE does not affect anything else)
+ local CMAKE_BUILD_TYPE=Release
+ local mycmakeargs=(
+ "-DBoost_USE_STATIC_LIBS=off"
+ "-DCRYFS_UPDATE_CHECKS=$(usex update-check)"
+ "-DBUILD_TESTING=$(usex test)"
+ )
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ local TMPDIR="${T}"
+ addread /dev/fuse
+ addwrite /dev/fuse
+ local tests_failed=()
+
+ for i in gitversion cpp-utils parallelaccessstore blockstore blobstore fspp cryfs cryfs-cli ; do
+ "${BUILD_DIR}"/test/${i}/${i}-test || tests_failed+=( "${i}" )
+ done
+
+ adddeny /dev/fuse
+
+ if [[ -n ${tests_failed[@]} ]] ; then
+ eerror "The following tests failed:"
+ eerror "$tests_failed[@]"
+ die "At least one test failed"
+ fi
+}
diff --git a/sys-fs/cryfs/cryfs-9999.ebuild b/sys-fs/cryfs/cryfs-9999.ebuild
new file mode 100644
index 000000000000..cc9eea2b0e7b
--- /dev/null
+++ b/sys-fs/cryfs/cryfs-9999.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+
+inherit cmake-utils python-any-r1
+
+DESCRIPTION="Encrypted FUSE filesystem that conceals metadata"
+HOMEPAGE="https://www.cryfs.org/"
+
+SLOT=0
+IUSE="test update-check"
+
+LICENSE="LGPL-3 BSD-2 MIT"
+# cryfs - LGPL-3
+# scrypt - BSD-2
+# spdlog - MIT
+
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/cryfs/cryfs"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/cryfs/cryfs/releases/download/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}"
+fi
+
+RDEPEND=">=dev-libs/boost-1.56:=
+ >=dev-libs/crypto++-5.6.3:=
+ net-misc/curl:=
+ >=sys-fs/fuse-2.8.6:=
+ dev-libs/openssl:0="
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}"
+
+src_prepare() {
+ # remove tests that require internet access to comply with Gentoo policy
+ sed -i -e '/CurlHttpClientTest.cpp/d' -e '/FakeHttpClientTest.cpp/d' test/cpp-utils/CMakeLists.txt || die
+
+ # remove non-applicable warning
+ sed -i -e '/WARNING! This is a debug build. Performance might be slow./d' src/cryfs-cli/Cli.cpp || die
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ # upstream restricts installing files to Release configuration
+ # (CMAKE_BUILD_TYPE does not affect anything else)
+ local CMAKE_BUILD_TYPE=Release
+ local mycmakeargs=(
+ "-DBoost_USE_STATIC_LIBS=off"
+ "-DCRYFS_UPDATE_CHECKS=$(usex update-check)"
+ "-DBUILD_TESTING=$(usex test)"
+ )
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ local TMPDIR="${T}"
+ addread /dev/fuse
+ addwrite /dev/fuse
+ local tests_failed=()
+
+ for i in gitversion cpp-utils parallelaccessstore blockstore blobstore fspp cryfs cryfs-cli ; do
+ "${BUILD_DIR}"/test/${i}/${i}-test || tests_failed+=( "${i}" )
+ done
+
+ adddeny /dev/fuse
+
+ if [[ -n ${tests_failed[@]} ]] ; then
+ eerror "The following tests failed:"
+ eerror "$tests_failed[@]"
+ die "At least one test failed"
+ fi
+}
diff --git a/sys-fs/cryfs/metadata.xml b/sys-fs/cryfs/metadata.xml
new file mode 100644
index 000000000000..5f26c5a3bc9b
--- /dev/null
+++ b/sys-fs/cryfs/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>adebeus@gmail.com</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="update-check">Enable automatic checking for updates and security vulnerabilities</flag>
+ </use>
+ <longdescription>Encrypted FUSE filesystem that conceals metadata</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/cryptmount/Manifest b/sys-fs/cryptmount/Manifest
new file mode 100644
index 000000000000..ce535e2819c6
--- /dev/null
+++ b/sys-fs/cryptmount/Manifest
@@ -0,0 +1,3 @@
+DIST cryptmount-5.2.2.tar.gz 743638 SHA256 2730782bcf1834e6f1b3575db1dde53e638d3679bc09d4eaf63111b428767859 SHA512 e8767728c49b7f8dc4f777778d5a9d1b912ea2c4c5363dbb5035a208aa1bd1f2565ce12a0666d75e9ee677bde04029082d20c22cf46a216f5e87a4adf7093572 WHIRLPOOL 772479a152b8ee3f2bb645b4d35a387522ba242b768a1d81b476734395d6696fa12923655e18e1bb69b07f15eeafa7a895dd4c7f685a9c93ac777cf87c6c0a1f
+EBUILD cryptmount-5.2.2.ebuild 1118 SHA256 8ae3d118e520c6da41c9b3eca317ef2500a219f3377cffaf552cc8142ea989af SHA512 5746a3eb8cee6c46f8ec86c7ace69b0fde7ef48c744c4c567512fac5bb8da0d71817de302d38aecaee8314968f9ec953f8f3e830927fe6cdd971fa95e4e05f51 WHIRLPOOL c25e29a7f8a52e51a8c8d679e8fb1b5b26c754ad8e898366a1e7625f7ad6484db5d01f5de8adad34c21a7259ed0eb02afd5e696f8061353561ca54eae2def461
+MISC metadata.xml 416 SHA256 6f7cd6053927f9681f09f5cac430da8fceccd18b829a61756232e061a66860b6 SHA512 aed33cb7b5205b2227109d99dd96dd341386406079ddf2a1583c0998215183ab3460160a33f2dfe6fb673236e37a061f7d41273e978b58081d787175fb5f8840 WHIRLPOOL 1c866f4b22290faec78f4276c38c8cc9c47c24a8debd80206cc1abbbdf5633ed2318c5683f1b20200f65dfa94d379688177a9ffaa06eb6e61ddfeeaaf56dbb14
diff --git a/sys-fs/cryptmount/cryptmount-5.2.2.ebuild b/sys-fs/cryptmount/cryptmount-5.2.2.ebuild
new file mode 100644
index 000000000000..5708d3b0ad3d
--- /dev/null
+++ b/sys-fs/cryptmount/cryptmount-5.2.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit linux-info systemd
+
+DESCRIPTION="A utility for management and user-mode mounting of encrypted filesystems"
+HOMEPAGE="http://cryptmount.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="nls +ssl systemd"
+
+DOCS=( AUTHORS ChangeLog NEWS README RELNOTES ToDo )
+
+RDEPEND="
+ dev-libs/libgcrypt:0=
+ nls? ( virtual/libintl )
+ ssl? ( dev-libs/openssl:0= )
+ systemd? ( sys-apps/systemd )"
+
+DEPEND="
+ ${RDEPEND}
+ nls? ( sys-devel/gettext )"
+
+CONFIG_CHECK="BLK_DEV_DM"
+ERROR_BLK_DEV_DM="Please enable Device mapper support in your kernel config
+ -> Device Drivers
+ -> Multi-device support (RAID and LVM)
+ -> Multiple devices driver support (RAID and LVM) (MD)
+ <M> Device mapper support"
+
+src_configure() {
+ econf \
+ --enable-cswap \
+ --enable-delegation \
+ --enable-fsck \
+ --enable-luks \
+ --with-libgcrypt \
+ $(use_enable nls) \
+ $(use_enable ssl openssl-compat) \
+ $(use_with systemd)
+}
+
+src_install() {
+ default
+}
diff --git a/sys-fs/cryptmount/metadata.xml b/sys-fs/cryptmount/metadata.xml
new file mode 100644
index 000000000000..ccc363c97a28
--- /dev/null
+++ b/sys-fs/cryptmount/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>isav@alzari.pw</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ </maintainer>
+ <longdescription>A utility for management and user-mode mounting of encrypted filesystems</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/cryptsetup/Manifest b/sys-fs/cryptsetup/Manifest
new file mode 100644
index 000000000000..59957d4b7545
--- /dev/null
+++ b/sys-fs/cryptsetup/Manifest
@@ -0,0 +1,10 @@
+AUX 1.6.7-dmcrypt.confd 3919 SHA256 3d933a54abe62a547294b83208dbf5d7615d9c7f380d6504c91fff3620530803 SHA512 74422d5e1614b43af894ea01da1ea80d805ec7f77981cbb80a6b1a4becad737a8825d7269812499095a7f50d39fa7da5bf4e4edae63529b1fe87b9176943a733 WHIRLPOOL cdad077e6c542e93b766c023a7db9cde372609114a0d8333e94dbf281292a145dd2f96db2895dc7f6dd130ed193ebe254e13cff24e47430738e0fb4c6e38dc71
+AUX 1.6.7-dmcrypt.rc 8815 SHA256 d04627e1a64e4d86e957b20ff6f478fb376833b7602098a708af9c070e30a980 SHA512 fdbf44f7508ca10ab89e858c206fd9dc397a11d8a553045584ab95046c309a84dd6c7ab0c0ea63c66f7d52b31ed3a1ce46d5ce2ce2588f0d6593a1c4cc1c4194 WHIRLPOOL c7eb2e70bdcf59d5390f9551154ef2db67ce6cafc5dc24dcceef324eb1509661e5a639d880d40bcd2b09ebbda016802a6826c16a2ff7f0d9cbac622f61aebb1c
+AUX setup-1.7.0.py 788 SHA256 ef9fc9cc2b0ab065838adcb65e117e124e59686360fb033dd8c51632a8da1c69 SHA512 823fe8a90a76de9f259a5b69425601b78a0b6c1204cda613e224cc21e4eebc2b22b4be9f53efe843156c45a20a099385bc4dad6d653a26749336023d3ae5de89 WHIRLPOOL 26d4d90a00a5be81b8cfadd0682d032be955b71c3c2707532a95aada423fdc52edde351af2addf307b602fcd51130dc95372dc1f11bbd80d51208a1b56010add
+DIST cryptsetup-1.7.4.tar.xz 1232068 SHA256 7ccf893ef79a38fb92d61f03c17b964982119f5319cdaa85a1335b8558cca016 SHA512 c5f58227b38dcc2e2858c4bbcb641acead3b6bcdad0d8d76e5f46936669e4aff4dbc20a2980040341320d35d39f029725a9f20607753cad44f64ac0443b64b71 WHIRLPOOL f00d0e529a5d34460733e8110584266b42011055d81d94b0ae8d47a1f11f1639c4b658a55415241e72c431c615d896a94ae444a518a0b56f971b888a5ab7cc09
+DIST cryptsetup-1.7.5.tar.xz 1232696 SHA256 2b30cd1d0dd606a53ac77b406e1d37798d4b0762fa89de6ea546201906a251bd SHA512 d473f7b06d705a3868a70f3767fafc664436b5897ba59025ea1268f815cb80a9076841ff9ff96cc130fb83ba18b03c1eee38cfaf1b471fdd883a3e126b771439 WHIRLPOOL cd2fe15a08f3202c89055e334a3c56fcb60a19bda8135c7d833f384e9beb7fcd6f31fbbd4ac29572f46199f05bd6055b89b3d6733828354d9c985b3e55da4e14
+EBUILD cryptsetup-1.7.4.ebuild 4025 SHA256 a396ac6b06858d53266a6f16d5797e9446fa6575b002e0c43ce53f27fc622751 SHA512 9b46af09764085af0f6de8e99629839f45b9567110dde94db040e875805ad753f111136da06ffc0a65f3ebd8fa705e0a7509961a24c08032e501967e081f8928 WHIRLPOOL 365cb1aea2098827ee6d17dea3f12a581c3e5cd6f315c86cffc5c98ecd03437500534376d5499691dfb2c1ede319ddc875655325da0feb75a480ec77eb6be2d9
+EBUILD cryptsetup-1.7.5.ebuild 4045 SHA256 931dafa300398093ecd3111750fb685080d217ea0c99af72221dbca5f5925e56 SHA512 838908ef46db7d9710e9071ec21af4c0243a5b1c5220107522b0145cdb38eb1bc0fde392d276c988cf1b3e14880d4db73b1992e849d416113f01ed05dc0581fd WHIRLPOOL 8ad914bedbce8c63063a817454b4359d4727eb39e5bbcc660cd03054034fc63a6ad0741c0f6206f19c87477204c0460a5874c6460a4b74fd329e2c7c3b1ea469
+MISC ChangeLog 8475 SHA256 f9a9f9529c9f1d7307451447cb403805805eb1d4255c9e4fee5c30c46dd5614f SHA512 73b80c6e0ad31d22dda7ea3802be98152bd7ec68d9277081ffd22d073cb3cf9c8bcd7ef083098423bb356c9a5035dccc26db434d5acdcf8f0753fe5d39bc8073 WHIRLPOOL 64aee26e26813436fb035326680aaca1f2d6593d5df9ac6ae3c9fec6329fcef044179d46a9a9648afaed44a420bc067b09e21150fce51b1576b157987a84e2b4
+MISC ChangeLog-2015 32120 SHA256 4f04d04798e6b09ebc80f72f45a4841673e38e05909ccebb5d40c230db0a3272 SHA512 ebf79904c294d29fbeb42d497db5bbac85afdcaaf532ecdae863778ecd9f9c882dd0c3c28994c410611e3eef30492c9bb5696db3c2e4eb49f2e932ee9696185a WHIRLPOOL 8cfe06024e910bfbd0e547fb342ce22c837c79cb29524077272f7478edc6284ed3ef504142b52d6844fa582cd4c4cfb94163c9c40ff074716bd744d2ef039aff
+MISC metadata.xml 879 SHA256 20635e38f0d217140afc4fc93b43abc856049f2c5104cf9dcb2ff2062e56f960 SHA512 1b7f57625f159b0ef144ad968eb20c6785b822e7f254c1cccd75ba8f012357cc818cb9323d64999ba1ff084d7fc89c116db071f51505a62c78f1bfc87596e86a WHIRLPOOL 6b61c3895e6f5fb4250e74e14fdf7658fb4496dbad1cc2ee76aa9d7deba6cd67530ca7d01730c397ea73c4ef398ea53ba90823c18bfab2269d84b78d4dc800c1
diff --git a/sys-fs/cryptsetup/cryptsetup-1.7.4.ebuild b/sys-fs/cryptsetup/cryptsetup-1.7.4.ebuild
new file mode 100644
index 000000000000..c3027e72aaee
--- /dev/null
+++ b/sys-fs/cryptsetup/cryptsetup-1.7.4.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+inherit autotools distutils-r1 linux-info libtool eutils versionator
+
+DESCRIPTION="Tool to setup encrypted devices with dm-crypt"
+HOMEPAGE="https://gitlab.com/cryptsetup/cryptsetup/blob/master/README.md"
+SRC_URI="mirror://kernel/linux/utils/${PN}/v$(get_version_component_range 1-2)/${P}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+CRYPTO_BACKENDS="+gcrypt kernel nettle openssl"
+# we don't support nss since it doesn't allow cryptsetup to be built statically
+# and it's missing ripemd160 support so it can't provide full backward compatibility
+IUSE="${CRYPTO_BACKENDS} libressl nls pwquality python reencrypt static static-libs udev urandom"
+REQUIRED_USE="^^ ( ${CRYPTO_BACKENDS//+/} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ static? ( !gcrypt )" #496612
+
+LIB_DEPEND="dev-libs/libgpg-error[static-libs(+)]
+ dev-libs/popt[static-libs(+)]
+ sys-apps/util-linux[static-libs(+)]
+ gcrypt? ( dev-libs/libgcrypt:0=[static-libs(+)] )
+ nettle? ( >=dev-libs/nettle-2.4[static-libs(+)] )
+ openssl? (
+ !libressl? ( dev-libs/openssl:0=[static-libs(+)] )
+ libressl? ( dev-libs/libressl:=[static-libs(+)] )
+ )
+ pwquality? ( dev-libs/libpwquality[static-libs(+)] )
+ sys-fs/lvm2[static-libs(+)]
+ udev? ( virtual/libudev[static-libs(+)] )"
+# We have to always depend on ${LIB_DEPEND} rather than put behind
+# !static? () because we provide a shared library which links against
+# these other packages. #414665
+RDEPEND="static-libs? ( ${LIB_DEPEND} )
+ ${LIB_DEPEND//\[static-libs\(+\)\]}
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ static? ( ${LIB_DEPEND} )"
+
+#PATCHES=( )
+
+pkg_setup() {
+ local CONFIG_CHECK="~DM_CRYPT ~CRYPTO ~CRYPTO_CBC ~CRYPTO_SHA256"
+ local WARNING_DM_CRYPT="CONFIG_DM_CRYPT:\tis not set (required for cryptsetup)\n"
+ local WARNING_CRYPTO_SHA256="CONFIG_CRYPTO_SHA256:\tis not set (required for cryptsetup)\n"
+ local WARNING_CRYPTO_CBC="CONFIG_CRYPTO_CBC:\tis not set (required for kernel 2.6.19)\n"
+ local WARNING_CRYPTO="CONFIG_CRYPTO:\tis not set (required for cryptsetup)\n"
+ check_extra_config
+}
+
+src_prepare() {
+ sed -i '/^LOOPDEV=/s:$: || exit 0:' tests/{compat,mode}-test || die
+ #epatch "${PATCHES[@]}"
+ epatch_user && eautoreconf
+
+ if use python ; then
+ cd python
+ cp "${FILESDIR}"/setup-1.7.0.py setup.py || die
+ distutils-r1_src_prepare
+ fi
+}
+
+src_configure() {
+ if use kernel ; then
+ ewarn "Note that kernel backend is very slow for this type of operation"
+ ewarn "and is provided mainly for embedded systems wanting to avoid"
+ ewarn "userspace crypto libraries."
+ fi
+
+ # We disable autotool python integration so we can use eclasses
+ # for proper integration with multiple python versions.
+ econf \
+ --sbindir=/sbin \
+ --enable-shared \
+ --disable-python \
+ $(use_enable static static-cryptsetup) \
+ $(use_enable static-libs static) \
+ $(use_enable nls) \
+ $(use_enable pwquality) \
+ $(use_enable reencrypt cryptsetup-reencrypt) \
+ $(use_enable udev) \
+ $(use_enable !urandom dev-random) \
+ --with-crypto_backend=$(for x in ${CRYPTO_BACKENDS//+/} ; do usev ${x} ; done)
+
+ use python && cd python && distutils-r1_src_configure
+}
+
+src_compile() {
+ default
+ use python && cd python && distutils-r1_src_compile
+}
+
+src_test() {
+ if [[ ! -e /dev/mapper/control ]] ; then
+ ewarn "No /dev/mapper/control found -- skipping tests"
+ return 0
+ fi
+ local p
+ for p in /dev/mapper /dev/loop* ; do
+ addwrite ${p}
+ done
+ default
+}
+
+src_install() {
+ default
+ if use static ; then
+ mv "${ED}"/sbin/cryptsetup{.static,} || die
+ mv "${ED}"/sbin/veritysetup{.static,} || die
+ use reencrypt && { mv "${ED}"/sbin/cryptsetup-reencrypt{.static,} || die ; }
+ fi
+ prune_libtool_files --modules
+
+ newconfd "${FILESDIR}"/1.6.7-dmcrypt.confd dmcrypt
+ newinitd "${FILESDIR}"/1.6.7-dmcrypt.rc dmcrypt
+
+ use python && cd python && distutils-r1_src_install
+}
diff --git a/sys-fs/cryptsetup/cryptsetup-1.7.5.ebuild b/sys-fs/cryptsetup/cryptsetup-1.7.5.ebuild
new file mode 100644
index 000000000000..d4e5a41d31a8
--- /dev/null
+++ b/sys-fs/cryptsetup/cryptsetup-1.7.5.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+
+inherit autotools distutils-r1 linux-info libtool eutils versionator
+
+DESCRIPTION="Tool to setup encrypted devices with dm-crypt"
+HOMEPAGE="https://gitlab.com/cryptsetup/cryptsetup/blob/master/README.md"
+SRC_URI="mirror://kernel/linux/utils/${PN}/v$(get_version_component_range 1-2)/${P}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+CRYPTO_BACKENDS="+gcrypt kernel nettle openssl"
+# we don't support nss since it doesn't allow cryptsetup to be built statically
+# and it's missing ripemd160 support so it can't provide full backward compatibility
+IUSE="${CRYPTO_BACKENDS} libressl nls pwquality python reencrypt static static-libs udev urandom"
+REQUIRED_USE="^^ ( ${CRYPTO_BACKENDS//+/} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ static? ( !gcrypt )" #496612
+
+LIB_DEPEND="dev-libs/libgpg-error[static-libs(+)]
+ dev-libs/popt[static-libs(+)]
+ sys-apps/util-linux[static-libs(+)]
+ gcrypt? ( dev-libs/libgcrypt:0=[static-libs(+)] )
+ nettle? ( >=dev-libs/nettle-2.4[static-libs(+)] )
+ openssl? (
+ !libressl? ( dev-libs/openssl:0=[static-libs(+)] )
+ libressl? ( dev-libs/libressl:=[static-libs(+)] )
+ )
+ pwquality? ( dev-libs/libpwquality[static-libs(+)] )
+ sys-fs/lvm2[static-libs(+)]
+ udev? ( virtual/libudev[static-libs(+)] )"
+# We have to always depend on ${LIB_DEPEND} rather than put behind
+# !static? () because we provide a shared library which links against
+# these other packages. #414665
+RDEPEND="static-libs? ( ${LIB_DEPEND} )
+ ${LIB_DEPEND//\[static-libs\(+\)\]}
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ static? ( ${LIB_DEPEND} )"
+
+#PATCHES=( )
+
+pkg_setup() {
+ local CONFIG_CHECK="~DM_CRYPT ~CRYPTO ~CRYPTO_CBC ~CRYPTO_SHA256"
+ local WARNING_DM_CRYPT="CONFIG_DM_CRYPT:\tis not set (required for cryptsetup)\n"
+ local WARNING_CRYPTO_SHA256="CONFIG_CRYPTO_SHA256:\tis not set (required for cryptsetup)\n"
+ local WARNING_CRYPTO_CBC="CONFIG_CRYPTO_CBC:\tis not set (required for kernel 2.6.19)\n"
+ local WARNING_CRYPTO="CONFIG_CRYPTO:\tis not set (required for cryptsetup)\n"
+ check_extra_config
+}
+
+src_prepare() {
+ sed -i '/^LOOPDEV=/s:$: || exit 0:' tests/{compat,mode}-test || die
+ #epatch "${PATCHES[@]}"
+ epatch_user && eautoreconf
+
+ if use python ; then
+ cd python
+ cp "${FILESDIR}"/setup-1.7.0.py setup.py || die
+ distutils-r1_src_prepare
+ fi
+}
+
+src_configure() {
+ if use kernel ; then
+ ewarn "Note that kernel backend is very slow for this type of operation"
+ ewarn "and is provided mainly for embedded systems wanting to avoid"
+ ewarn "userspace crypto libraries."
+ fi
+
+ # We disable autotool python integration so we can use eclasses
+ # for proper integration with multiple python versions.
+ econf \
+ --sbindir=/sbin \
+ --enable-shared \
+ --disable-python \
+ $(use_enable static static-cryptsetup) \
+ $(use_enable static-libs static) \
+ $(use_enable nls) \
+ $(use_enable pwquality) \
+ $(use_enable reencrypt cryptsetup-reencrypt) \
+ $(use_enable udev) \
+ $(use_enable !urandom dev-random) \
+ --with-crypto_backend=$(for x in ${CRYPTO_BACKENDS//+/} ; do usev ${x} ; done)
+
+ use python && cd python && distutils-r1_src_configure
+}
+
+src_compile() {
+ default
+ use python && cd python && distutils-r1_src_compile
+}
+
+src_test() {
+ if [[ ! -e /dev/mapper/control ]] ; then
+ ewarn "No /dev/mapper/control found -- skipping tests"
+ return 0
+ fi
+ local p
+ for p in /dev/mapper /dev/loop* ; do
+ addwrite ${p}
+ done
+ default
+}
+
+src_install() {
+ default
+ if use static ; then
+ mv "${ED}"/sbin/cryptsetup{.static,} || die
+ mv "${ED}"/sbin/veritysetup{.static,} || die
+ use reencrypt && { mv "${ED}"/sbin/cryptsetup-reencrypt{.static,} || die ; }
+ fi
+ prune_libtool_files --modules
+
+ newconfd "${FILESDIR}"/1.6.7-dmcrypt.confd dmcrypt
+ newinitd "${FILESDIR}"/1.6.7-dmcrypt.rc dmcrypt
+
+ use python && cd python && distutils-r1_src_install
+}
diff --git a/sys-fs/cryptsetup/files/1.6.7-dmcrypt.confd b/sys-fs/cryptsetup/files/1.6.7-dmcrypt.confd
new file mode 100644
index 000000000000..642ff087078b
--- /dev/null
+++ b/sys-fs/cryptsetup/files/1.6.7-dmcrypt.confd
@@ -0,0 +1,111 @@
+# /etc/conf.d/dmcrypt
+
+# For people who run dmcrypt on top of some other layer (like raid),
+# use rc_need to specify that requirement. See the runscript(8) man
+# page for more information.
+
+#--------------------
+# Instructions
+#--------------------
+
+# Note regarding the syntax of this file. This file is *almost* bash,
+# but each line is evaluated separately. Separate swaps/targets can be
+# specified. The init-script which reads this file assumes that a
+# swap= or target= line starts a new section, similar to lilo or grub
+# configuration.
+
+# Note when using gpg keys and /usr on a separate partition, you will
+# have to copy /usr/bin/gpg to /bin/gpg so that it will work properly
+# and ensure that gpg has been compiled statically.
+# See http://bugs.gentoo.org/90482 for more information.
+
+# Note that the init-script which reads this file detects whether your
+# partition is LUKS or not. No mkfs is run unless you specify a makefs
+# option.
+
+# Global options:
+#----------------
+
+# How long to wait for each timeout (in seconds).
+dmcrypt_key_timeout=1
+
+# Max number of checks to perform (see dmcrypt_key_timeout).
+#dmcrypt_max_timeout=300
+
+# Number of password retries.
+dmcrypt_retries=5
+
+# Arguments:
+#-----------
+# target=<name> == Mapping name for partition.
+# swap=<name> == Mapping name for swap partition.
+# source='<dev>' == Real device for partition.
+# Note: You can (and should) specify a tag like UUID
+# for blkid (see -t option). This is safer than using
+# the full path to the device.
+# key='</path/to/keyfile>[:<mode>]' == Fullpath from / or from inside removable media.
+# remdev='<dev>' == Device that will be assigned to removable media.
+# gpg_options='<opts>' == Default are --quiet --decrypt
+# options='<opts>' == cryptsetup, for LUKS you can only use --readonly
+# loop_file='<file>' == Loopback file.
+# Note: If you omit $source, then a free loopback will
+# be looked up automatically.
+# pre_mount='cmds' == commands to execute before mounting partition.
+# post_mount='cmds' == commands to execute after mounting partition.
+#-----------
+# Supported Modes
+# gpg == decrypt and pipe key into cryptsetup.
+# Note: new-line character must not be part of key.
+# Command to erase \n char: 'cat key | tr -d '\n' > cleanKey'
+
+#--------------------
+# dm-crypt examples
+#--------------------
+
+## swap
+# Swap partitions. These should come first so that no keys make their
+# way into unencrypted swap.
+# If no options are given, they will default to: -c aes -h sha1 -d /dev/urandom
+# If no makefs is given then mkswap will be assumed
+#swap=crypt-swap
+#source='/dev/hda2'
+
+## /home with passphrase
+#target=crypt-home
+#source='/dev/hda5'
+
+## /home with regular keyfile
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey'
+
+## /home with gpg protected key
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey:gpg'
+
+## /home with regular keyfile on removable media(such as usb-stick)
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey'
+#remdev='/dev/sda1'
+
+## /home with gpg protected key on removable media(such as usb-stick)
+#target=crypt-home
+#source='/dev/hda5'
+#key='/full/path/to/homekey:gpg'
+#remdev='/dev/sda1'
+
+## /tmp with regular keyfile
+#target=crypt-tmp
+#source='/dev/hda6'
+#key='/full/path/to/tmpkey'
+#pre_mount='/sbin/mkreiserfs -f -f ${dev}'
+#post_mount='chown root:root ${mount_point}; chmod 1777 ${mount_point}'
+
+## Loopback file example
+#target='crypt-loop-home'
+#source='/dev/loop0'
+#loop_file='/mnt/crypt/home'
+
+# The file must be terminated by a newline. Or leave this comment last.
diff --git a/sys-fs/cryptsetup/files/1.6.7-dmcrypt.rc b/sys-fs/cryptsetup/files/1.6.7-dmcrypt.rc
new file mode 100644
index 000000000000..cdd20ba929d4
--- /dev/null
+++ b/sys-fs/cryptsetup/files/1.6.7-dmcrypt.rc
@@ -0,0 +1,339 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ before checkfs fsck
+
+ if grep -qs ^swap= "${conf_file}" ; then
+ before swap
+ fi
+}
+
+# We support multiple dmcrypt instances based on $SVCNAME
+conf_file="/etc/conf.d/${SVCNAME}"
+
+# Get splash helpers if available.
+if [ -e /sbin/splash-functions.sh ] ; then
+ . /sbin/splash-functions.sh
+fi
+
+# Setup mappings for an individual target/swap
+# Note: This relies on variables localized in the main body below.
+dm_crypt_execute() {
+ local dev ret mode foo
+
+ if [ -z "${target}" -a -z "${swap}" ] ; then
+ return
+ fi
+
+ # Set up default values.
+ : ${dmcrypt_key_timeout:=1}
+ : ${dmcrypt_max_timeout:=300}
+ : ${dmcrypt_retries:=5}
+
+ # Handle automatic look up of the source path.
+ if [ -z "${source}" -a -n "${loop_file}" ] ; then
+ source=$(losetup --show -f "${loop_file}")
+ fi
+ case ${source} in
+ *=*)
+ source=$(blkid -l -t "${source}" -o device)
+ ;;
+ esac
+ if [ -z "${source}" ] || [ ! -e "${source}" ] ; then
+ ewarn "source \"${source}\" for ${target} missing, skipping..."
+ return
+ fi
+
+ if [ -n "${target}" ] ; then
+ # let user set options, otherwise leave empty
+ : ${options:=' '}
+ elif [ -n "${swap}" ] ; then
+ if cryptsetup isLuks ${source} 2>/dev/null ; then
+ ewarn "The swap you have defined is a LUKS partition. Aborting crypt-swap setup."
+ return
+ fi
+ target=${swap}
+ # swap contents do not need to be preserved between boots, luks not required.
+ # suspend2 users should have initramfs's init handling their swap partition either way.
+ : ${options:='-c aes -h sha1 -d /dev/urandom'}
+ : ${pre_mount:='mkswap ${dev}'}
+ fi
+
+ if [ -n "${loop_file}" ] ; then
+ dev="/dev/mapper/${target}"
+ ebegin " Setting up loop device ${source}"
+ losetup ${source} ${loop_file}
+ fi
+
+ # cryptsetup:
+ # open <device> <name> # <device> is $source
+ # create <name> <device> # <name> is $target
+ local arg1="create" arg2="${target}" arg3="${source}"
+ if cryptsetup isLuks ${source} 2>/dev/null ; then
+ arg1="open"
+ arg2="${source}"
+ arg3="${target}"
+ fi
+
+ # Older versions reported:
+ # ${target} is active:
+ # Newer versions report:
+ # ${target} is active[ and is in use.]
+ if cryptsetup status ${target} | egrep -q ' is active' ; then
+ einfo "dm-crypt mapping ${target} is already configured"
+ return
+ fi
+ splash svc_input_begin ${SVCNAME} >/dev/null 2>&1
+
+ # Handle keys
+ if [ -n "${key}" ] ; then
+ read_abort() {
+ # some colors
+ local ans savetty resettty
+ [ -z "${NORMAL}" ] && eval $(eval_ecolors)
+ einfon " $1? (${WARN}yes${NORMAL}/${GOOD}No${NORMAL}) "
+ shift
+ # This is ugly as s**t. But POSIX doesn't provide `read -t`, so
+ # we end up having to implement our own crap with stty/etc...
+ savetty=$(stty -g)
+ resettty='stty ${savetty}; trap - EXIT HUP INT TERM'
+ trap 'eval "${resettty}"' EXIT HUP INT TERM
+ stty -icanon
+ stty min 0 time "$(( $2 * 10 ))"
+ ans=$(dd count=1 bs=1 2>/dev/null) || ans=''
+ eval "${resettty}"
+ if [ -z "${ans}" ] ; then
+ printf '\r'
+ else
+ echo
+ fi
+ case ${ans} in
+ [yY]) return 0;;
+ *) return 1;;
+ esac
+ }
+
+ # Notes: sed not used to avoid case where /usr partition is encrypted.
+ mode=${key##*:} && ( [ "${mode}" = "${key}" ] || [ -z "${mode}" ] ) && mode=reg
+ key=${key%:*}
+ case "${mode}" in
+ gpg|reg)
+ # handle key on removable device
+ if [ -n "${remdev}" ] ; then
+ # temp directory to mount removable device
+ local mntrem="${RC_SVCDIR}/dm-crypt-remdev.$$"
+ if [ ! -d "${mntrem}" ] ; then
+ if ! mkdir -p "${mntrem}" ; then
+ ewarn "${source} will not be decrypted ..."
+ einfo "Reason: Unable to create temporary mount point '${mntrem}'"
+ return
+ fi
+ fi
+ i=0
+ einfo "Please insert removable device for ${target}"
+ while [ ${i} -lt ${dmcrypt_max_timeout} ] ; do
+ foo=""
+ if mount -n -o ro "${remdev}" "${mntrem}" 2>/dev/null >/dev/null ; then
+ # keyfile exists?
+ if [ ! -e "${mntrem}${key}" ] ; then
+ umount -n "${mntrem}"
+ rmdir "${mntrem}"
+ einfo "Cannot find ${key} on removable media."
+ read_abort "Abort" ${dmcrypt_key_timeout} && return
+ else
+ key="${mntrem}${key}"
+ break
+ fi
+ else
+ [ -e "${remdev}" ] \
+ && foo="mount failed" \
+ || foo="mount source not found"
+ fi
+ : $((i += 1))
+ read_abort "Stop waiting after $i attempts (${foo})" -t 1 && return
+ done
+ else # keyfile ! on removable device
+ if [ ! -e "${key}" ] ; then
+ ewarn "${source} will not be decrypted ..."
+ einfo "Reason: keyfile ${key} does not exist."
+ return
+ fi
+ fi
+ ;;
+ *)
+ ewarn "${source} will not be decrypted ..."
+ einfo "Reason: mode ${mode} is invalid."
+ return
+ ;;
+ esac
+ else
+ mode=none
+ fi
+ ebegin " ${target} using: ${options} ${arg1} ${arg2} ${arg3}"
+ if [ "${mode}" = "gpg" ] ; then
+ : ${gpg_options:='-q -d'}
+ # gpg available ?
+ if command -v gpg >/dev/null ; then
+ i=0
+ while [ ${i} -lt ${dmcrypt_retries} ] ; do
+ # paranoid, don't store key in a variable, pipe it so it stays very little in ram unprotected.
+ # save stdin stdout stderr "values"
+ timeout ${dmcrypt_max_timeout} gpg ${gpg_options} ${key} 2>/dev/null | \
+ cryptsetup --key-file - ${options} ${arg1} ${arg2} ${arg3}
+ ret=$?
+ # The timeout command exits 124 when it times out.
+ [ ${ret} -eq 0 -o ${ret} -eq 124 ] && break
+ : $(( i += 1 ))
+ done
+ eend ${ret} "failure running cryptsetup"
+ else
+ ewarn "${source} will not be decrypted ..."
+ einfo "Reason: cannot find gpg application."
+ einfo "You have to install app-crypt/gnupg first."
+ einfo "If you have /usr on its own partition, try copying gpg to /bin ."
+ fi
+ else
+ if [ "${mode}" = "reg" ] ; then
+ cryptsetup ${options} -d ${key} ${arg1} ${arg2} ${arg3}
+ ret=$?
+ eend ${ret} "failure running cryptsetup"
+ else
+ cryptsetup ${options} ${arg1} ${arg2} ${arg3}
+ ret=$?
+ eend ${ret} "failure running cryptsetup"
+ fi
+ fi
+ if [ -d "${mntrem}" ] ; then
+ umount -n ${mntrem} 2>/dev/null >/dev/null
+ rmdir ${mntrem} 2>/dev/null >/dev/null
+ fi
+ splash svc_input_end ${SVCNAME} >/dev/null 2>&1
+
+ if [ ${ret} -ne 0 ] ; then
+ cryptfs_status=1
+ else
+ if [ -n "${pre_mount}" ] ; then
+ dev="/dev/mapper/${target}"
+ eval ebegin \"" pre_mount: ${pre_mount}"\"
+ eval "${pre_mount}" > /dev/null
+ ewend $? || cryptfs_status=1
+ fi
+ fi
+}
+
+# Lookup optional bootparams
+get_bootparam_val() {
+ # We're given something like:
+ # foo=bar=cow
+ # Return the "bar=cow" part.
+ case $1 in
+ *=*)
+ echo "${1#*=}"
+ ;;
+ esac
+}
+
+start() {
+ local header=true cryptfs_status=0
+ local gpg_options key loop_file target targetline options pre_mount post_mount source swap remdev
+
+ local x
+ for x in $(cat /proc/cmdline) ; do
+ case "${x}" in
+ key_timeout=*)
+ dmcrypt_key_timeout=$(get_bootparam_val "${x}")
+ ;;
+ esac
+ done
+
+ while read targetline <&3 ; do
+ case ${targetline} in
+ # skip comments and blank lines
+ ""|"#"*) continue ;;
+ # skip service-specific openrc configs #377927
+ rc_*) continue ;;
+ esac
+
+ ${header} && ebegin "Setting up dm-crypt mappings"
+ header=false
+
+ # check for the start of a new target/swap
+ case ${targetline} in
+ target=*|swap=*)
+ # If we have a target queued up, then execute it
+ dm_crypt_execute
+
+ # Prepare for the next target/swap by resetting variables
+ unset gpg_options key loop_file target options pre_mount post_mount source swap remdev
+ ;;
+
+ gpg_options=*|remdev=*|key=*|loop_file=*|options=*|pre_mount=*|post_mount=*|source=*)
+ if [ -z "${target}${swap}" ] ; then
+ ewarn "Ignoring setting outside target/swap section: ${targetline}"
+ continue
+ fi
+ ;;
+
+ dmcrypt_*=*)
+ # ignore global options
+ continue
+ ;;
+
+ *)
+ ewarn "Skipping invalid line in ${conf_file}: ${targetline}"
+ ;;
+ esac
+
+ # Queue this setting for the next call to dm_crypt_execute
+ eval "${targetline}"
+ done 3< ${conf_file}
+
+ # If we have a target queued up, then execute it
+ dm_crypt_execute
+
+ ewend ${cryptfs_status} "Failed to setup dm-crypt devices"
+}
+
+stop() {
+ local line header
+
+ # Break down all mappings
+ header=true
+ egrep "^(target|swap)=" ${conf_file} | \
+ while read line ; do
+ ${header} && einfo "Removing dm-crypt mappings"
+ header=false
+
+ target= swap=
+ eval ${line}
+
+ [ -n "${swap}" ] && target=${swap}
+ if [ -z "${target}" ] ; then
+ ewarn "invalid line in ${conf_file}: ${line}"
+ continue
+ fi
+
+ ebegin " ${target}"
+ cryptsetup remove ${target}
+ eend $?
+ done
+
+ # Break down loop devices
+ header=true
+ grep '^source=./dev/loop' ${conf_file} | \
+ while read line ; do
+ ${header} && einfo "Detaching dm-crypt loop devices"
+ header=false
+
+ source=
+ eval ${line}
+
+ ebegin " ${source}"
+ losetup -d "${source}"
+ eend $?
+ done
+
+ return 0
+}
diff --git a/sys-fs/cryptsetup/files/setup-1.7.0.py b/sys-fs/cryptsetup/files/setup-1.7.0.py
new file mode 100644
index 000000000000..0da063c0b1c8
--- /dev/null
+++ b/sys-fs/cryptsetup/files/setup-1.7.0.py
@@ -0,0 +1,21 @@
+import os
+from distutils.core import setup, Extension
+
+top_srcdir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+
+def get_ver():
+ with open(os.path.join(top_srcdir, 'configure')) as f:
+ for line in f:
+ if line.startswith('PACKAGE_VERSION='):
+ return line.split('=')[1].replace("'", '').strip()
+
+module = Extension('pycryptsetup',
+ include_dirs=[os.path.join(top_srcdir, 'lib')],
+ extra_compile_args=['-include', os.path.join(top_srcdir, 'config.h')],
+ library_dirs=[os.path.join(top_srcdir, 'lib', '.libs')],
+ libraries=['cryptsetup'],
+ sources=['pycryptsetup.c'])
+
+setup(name='pycryptsetup',
+ version=get_ver(),
+ ext_modules=[module])
diff --git a/sys-fs/cryptsetup/metadata.xml b/sys-fs/cryptsetup/metadata.xml
new file mode 100644
index 000000000000..32a868bf8834
--- /dev/null
+++ b/sys-fs/cryptsetup/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<use>
+ <flag name="gcrypt">Use <pkg>dev-libs/libgcrypt</pkg> crypto backend</flag>
+ <flag name="kernel">Use kernel crypto backend (mainly for embedded systems)</flag>
+ <flag name="nettle">Use <pkg>dev-libs/nettle</pkg> crypto backend</flag>
+ <flag name="openssl">Use <pkg>dev-libs/openssl</pkg> crypto backend</flag>
+ <flag name="pwquality">Use <pkg>dev-libs/libpwquality</pkg> for password quality checking</flag>
+ <flag name="urandom">Use /dev/urandom instead of /dev/random</flag>
+ <flag name="reencrypt">Build cryptsetup-reencrypt</flag>
+</use>
+<upstream>
+ <remote-id type="google-code">cryptsetup</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/ctmg/Manifest b/sys-fs/ctmg/Manifest
new file mode 100644
index 000000000000..73d03ccbdee7
--- /dev/null
+++ b/sys-fs/ctmg/Manifest
@@ -0,0 +1,4 @@
+DIST ctmg-1.2.tar.xz 3824 SHA256 694f3164bb43395a4997a0a112b035776d8532d4f2b9be3c1b862e658ccb5db6 SHA512 6c4b7881c57cead41c7c0065c55805af7fee901723f61bdb06e5cb64dbba08add382d80f931f3321dca5e1e0f8080ab7da4520e58494694ba21900d23717c816 WHIRLPOOL b52cf84a1d1bd992900a863b87a1ba8eeeee9623606450e8c83bc981abb183ed3bb898562331d3e60eb471ee7735ea9bacf54a68120daefa973181218d6674fe
+EBUILD ctmg-1.2.ebuild 558 SHA256 ef633c98124de7afbf9d831022c3e8300683ed1ad85ca7c6954c4ccf9ccfa183 SHA512 0ee2ed80ad46aa68871cdb944565da37c0cc6820c261120c0c87cb9d2ba929b1c7058e576c77d69919b9a7b0371ea4e826629b12ca8a863de7ff4b82a5e53696 WHIRLPOOL c403c72d65499c083ba5989c458e2965bf70d4f96cec0921d8aa41195212b68f7f95ac38565a6ce8fc530e8e9b79dd5fe733988866b039acde1a6eaa87b3e2ff
+MISC ChangeLog 1055 SHA256 1c381b9be8d4662ce8a0a57ca676b383bca6dc5baf89dc22be4e74ca8768b7f5 SHA512 44d7209385f5925a3b06a127e21535d70c7796377987ce6db2ba2279bbc4fa94c5e36398d6aa61d47321b604f54042bf7e7b6b23a38f3e84923245601345614b WHIRLPOOL b4a6239b94523f2f82c5918b803173f3c313b2d69a18dcaf55ff7da4aa58ce7e89ea06eedf301a9dac93a89cc7ed7440144bee57c6d630aca144f077205aac42
+MISC metadata.xml 250 SHA256 b7a9bbddea766f7eb561a7d52a7f6be34183f44d309efae362085c1ab536ae09 SHA512 d2115b154bf731eac11fd7b96a95baa2467cb660371f7a3dc7a7a77cf4a6cf992b97c5353f184010eac1d37cdfffa6c5d9ec35d82e171f0fad5086767d0173a5 WHIRLPOOL 4cf60a5d2fb9d0af392a436d8829e387883112156cb313f44c0e58ccd52a0552a6d307ee3ceb8be396ac044da186698e41faf261f6cf6da0a1aff0ba8b47eb17
diff --git a/sys-fs/ctmg/ctmg-1.2.ebuild b/sys-fs/ctmg/ctmg-1.2.ebuild
new file mode 100644
index 000000000000..7b15ffabf682
--- /dev/null
+++ b/sys-fs/ctmg/ctmg-1.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="Simple wrapper around cryptsetup for encrypted containers"
+HOMEPAGE="http://git.zx2c4.com/ctmg/about/"
+SRC_URI="http://git.zx2c4.com/${PN}/snapshot/${P}.tar.xz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86 arm arm64"
+IUSE=""
+
+DEPEND=""
+RDEPEND="sys-fs/cryptsetup sys-apps/util-linux sys-fs/e2fsprogs sys-apps/coreutils app-admin/sudo"
+
+src_compile() { :; }
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/sys-fs/ctmg/metadata.xml b/sys-fs/ctmg/metadata.xml
new file mode 100644
index 000000000000..915f00227065
--- /dev/null
+++ b/sys-fs/ctmg/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zx2c4@gentoo.org</email>
+ <name>Jason A. Donenfeld</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/davl/Manifest b/sys-fs/davl/Manifest
new file mode 100644
index 000000000000..5fc20874bf61
--- /dev/null
+++ b/sys-fs/davl/Manifest
@@ -0,0 +1,8 @@
+AUX davl-1.2.1-asneeded.patch 921 SHA256 b10b11dd5447e717b9f05a6970b6ac89824e539fc03b4b9d83ff29da2bb5f102 SHA512 6f5bc5fb0a8e3ab220f9ea32bdec7c04209a412d9ead78aa0198088ddb5c7c8ac01536ac0356470d84e1347504023e015e0cbbadd16c53271142a4f694d9f8fe WHIRLPOOL 8d6343654df96d56ac21e4bd46fdcc1a63035631f3bca7c17d5e27d01cb766f812be58f48b585930d74c1d300320d269672884d22e8c2b272e9d424f28cd18d4
+AUX davl-1.2.4-fragment.patch 1051 SHA256 bc4d28ac9d91b077e5dcf7546448eb52e9dd4e8de5bc76420321ea8a1fb96135 SHA512 28ae8da5d2f2a910cbbd5b7f5a97de3fb5a0700d070f9f1e7b4b4462dec6f334ad486b298b3bcc7a8314c56b3215245b55880884bbaaf2e03ca9961b0595c133 WHIRLPOOL 82ea2d5370ac763305832384f43625910bf842fe98c977d3451019429a672fca5bc0adba2222e004dee2b9ed87b296a3b8fc336e6a6a1957140b49e3ecb3316f
+DIST davl-1.2.4.tar.bz2 47539 SHA256 d0a1b0a2528ff029374c5019b04140ca3a99baacb9576cbaa5ee4e87e6c34fb5 SHA512 71c33c0bfaca7c7557541517ec9e7b084e4d50e7504e02d412442566c6046c8a68fe4020e05a3e2da5c9309bd75ba06abba8f16fad96b476b5c961814d24d602 WHIRLPOOL 9378bbf5e47bce2afb8f7038914b535839da03b65e713072303b5efb23e035b792b82dae6233d0a9eb8730094294009d10f331c2099994019224ddbf6c71dbe4
+EBUILD davl-1.2.4-r1.ebuild 706 SHA256 699af4e53fe96839ab89d247a8c635f4617d0ee586dd39c77afc4a19cacfc31e SHA512 8b657accc1323eff2ad1e2a5d4bc51fd5cd9614c908a5ca9ee18526c6e1004354e0ef1d29e577ba226ec3843d8155c037b842910d5c544fc06b28c249cd275a1 WHIRLPOOL a665bf031da4bb02046d5e5c19df0ea8aac10c3f99ecca3bdea57fd3e0a6f24df155e77953b0ccd400afa4ca9afa63e6110093fdbba5d2ee4a14751957e137ed
+EBUILD davl-1.2.4-r2.ebuild 679 SHA256 eed52efd6785c5420c807f8cacc80362943e1a6be01ca392202027bb420a8640 SHA512 05c01d0348328874ffad9b174178e8dbf2d1db5e76372d9fefe0b749081bf0e2847a32aabd734c40aaa5dbcd9f00900024b40f9ec479ca7d48e02d512c707fc3 WHIRLPOOL 3e21f19a4bd43a18083d9ecf23c093e3c031a068dc83fdbc296117ff383589352edb36a4f62d0d3314530d9920e2a1a4118343297c3066a0b0a47d85ac2b5bf5
+MISC ChangeLog 2632 SHA256 c04afa3c003a0e725aceb54fa95688ad8d9116946f40ef0464a080aaf302fff1 SHA512 a65cf000df38be268a566d65a5f1d4e4d43508a16e5d9d1c1c75e21e128c6cfc62fd0aaafd4c05c4fb971f062e9e128f839ce6a968c1c3c0b4c70a5891b4e640 WHIRLPOOL 3c795ac9992c9c5ef9413063505dc8b474ccbfe6d153c1c72d9ad91fdb4e3c793da14dddad655cd7aaa9d0aa1e962ba8b5e52c9e0623e657945ce5f79fe63911
+MISC ChangeLog-2015 1587 SHA256 2e8566c9c14ae1ad4d4e44a25bbbeeb836670610e2adce44012288144246a864 SHA512 b1fb75ea1c75d675eac0fb60c821184a23f5fa72d3ca67b0d073f29194ac11956af896bb1a1ce5bf768b81a2f2b0fadc3bd055e75941a46bcf948bd38ba127e0 WHIRLPOOL 531fb9adcbfdf475c5660f28200d0155519edfed5ae993efafdf8d3a67ac516300e8ebeee1d52156ffe766f7ec029040a17298e1a79af2c9d05fe4b8fe0a6e01
+MISC metadata.xml 246 SHA256 30803312f20675c4a72afc006f545a0a08122058d72d7df123c5ec1949806b83 SHA512 432831d7b45256845a789fe5b611fc5192ea2cc3186ed8ce04cf28f44756187c3343f7f156fc039017c9af2e842c09b36918ee48b9cd07139ef0e9278c41a35f WHIRLPOOL d8c379753d3d44a9da87435b2fe5d7e714e522e1100727732c1210903c583050b12664a1e202ff370f73b29864bede53c2c1b3f64089cad11e7cac8d15f41740
diff --git a/sys-fs/davl/davl-1.2.4-r1.ebuild b/sys-fs/davl/davl-1.2.4-r1.ebuild
new file mode 100644
index 000000000000..7075c9b71cfa
--- /dev/null
+++ b/sys-fs/davl/davl-1.2.4-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Visualizes the fragmentation status of ext2/3 filesystems"
+HOMEPAGE="http://davl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=x11-libs/gtk+-2.6:2"
+DEPEND="${RDEPEND}
+ >=sys-fs/e2fsprogs-1.41.7-r1
+ virtual/pkgconfig"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-1.2.1-asneeded.patch \
+ "${FILESDIR}"/${P}-fragment.patch
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dobin src/{cdavl/cdavl,gdavl/gdavl}
+ dodoc README
+ doman doc/*.8
+}
diff --git a/sys-fs/davl/davl-1.2.4-r2.ebuild b/sys-fs/davl/davl-1.2.4-r2.ebuild
new file mode 100644
index 000000000000..7d27600f6a5d
--- /dev/null
+++ b/sys-fs/davl/davl-1.2.4-r2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit toolchain-funcs
+
+DESCRIPTION="Visualizes the fragmentation status of ext2/3 filesystems"
+HOMEPAGE="http://davl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=x11-libs/gtk+-2.6:2"
+DEPEND="${RDEPEND}
+ >=sys-fs/e2fsprogs-1.41.7-r1
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.2.1-asneeded.patch
+ "${FILESDIR}"/${P}-fragment.patch
+)
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dobin src/{cdavl/cdavl,gdavl/gdavl}
+ dodoc README
+ doman doc/*.8
+}
diff --git a/sys-fs/davl/files/davl-1.2.1-asneeded.patch b/sys-fs/davl/files/davl-1.2.1-asneeded.patch
new file mode 100644
index 000000000000..819d16d09e75
--- /dev/null
+++ b/sys-fs/davl/files/davl-1.2.1-asneeded.patch
@@ -0,0 +1,41 @@
+--- a/src/cdavl/Makefile
++++ b/src/cdavl/Makefile
+@@ -4,10 +4,6 @@
+ include $(PATH_LIST)
+
+
+-CC = gcc
+-DEBUG =
+-#DEBUG = -DDEBUG
+-CFLAGS = -Wall -g -O -D_FILE_OFFSET_BITS=64 $(DEBUG)
+ HEADERS = cdavl.h ../common/util.h ../drv/liveinfo_app.h
+ OBJS = ../common/util.o
+ CDAVL = cdavl
+--- a/src/gdavl/Makefile
++++ b/src/gdavl/Makefile
+@@ -4,22 +4,14 @@
+ include $(PATH_LIST)
+
+
+-CC = gcc
+-CFLAGS1 = -Wall -g -O `gtk-config --cflags --libs`
+-CFLAGS2 = -Wall -g -O `pkg-config --cflags --libs gtk+-2.0`
+-CFLAGS = -D$(GTK_VER)
+-ifeq ($(GTK_VER), GTK2)
+- CFLAGS += $(CFLAGS2)
+-else
+- CFLAGS += $(CFLAGS1)
+-endif
++CFLAGS += -D$(GTK_VER) `pkg-config --cflags gtk+-2.0`
++LDLIBS = `pkg-config --libs gtk+-2.0`
+ DEBUG =
+ #DEBUG = -D DEBUG
+ GDAVL = gdavl
+
+
+-$(GDAVL): gdavl.c if.c gdavl.h
+- $(CC) $(CFLAGS) $(DEBUG) -o $(GDAVL) gdavl.c if.c
++$(GDAVL): gdavl.o if.o
+
+ clean:
+ rm -rf $(GDAVL) *.o test/*.png test/log test/test.log
diff --git a/sys-fs/davl/files/davl-1.2.4-fragment.patch b/sys-fs/davl/files/davl-1.2.4-fragment.patch
new file mode 100644
index 000000000000..a6b2e40b240a
--- /dev/null
+++ b/sys-fs/davl/files/davl-1.2.4-fragment.patch
@@ -0,0 +1,20 @@
+cdavl.c:101:53: error: ‘struct ext2_super_block’ has no member named ‘s_log_frag_size’
+cdavl.c:105:53: error: ‘struct ext2_super_block’ has no member named ‘s_frags_per_group’
+
+http://bugs.gentoo.org/425820
+
+--- a/src/cdavl/cdavl.c
++++ b/src/cdavl/cdavl.c
+@@ -98,9 +98,11 @@
+ PRINT4("s_free_inodes_count: ", le32_to_cpu(sb->s_free_inodes_count));
+ PRINT4("s_first_data_block: ", le32_to_cpu(sb->s_first_data_block));
+ PRINT4("s_log_block_size: ", le32_to_cpu(sb->s_log_block_size));
++ #if 0
+ PRINT4("s_log_frag_size: ", le32_to_cpu(sb->s_log_frag_size));
+- PRINT4("s_blocks_per_group: ", le32_to_cpu(sb->s_blocks_per_group));
+ PRINT4("s_frags_per_group: ", le32_to_cpu(sb->s_frags_per_group));
++ #endif
++ PRINT4("s_blocks_per_group: ", le32_to_cpu(sb->s_blocks_per_group));
+ PRINT4("s_inodes_per_group: ", le32_to_cpu(sb->s_inodes_per_group));
+ PRINT4("s_mtime: ", le32_to_cpu(sb->s_mtime));
+ PRINT4("s_wtime: ", le32_to_cpu(sb->s_wtime));
diff --git a/sys-fs/davl/metadata.xml b/sys-fs/davl/metadata.xml
new file mode 100644
index 000000000000..6b0782c2e5c4
--- /dev/null
+++ b/sys-fs/davl/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="sourceforge">davl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/dd-rescue/Manifest b/sys-fs/dd-rescue/Manifest
new file mode 100644
index 000000000000..4646eb783d49
--- /dev/null
+++ b/sys-fs/dd-rescue/Manifest
@@ -0,0 +1,11 @@
+AUX dd_rescue-1.99-musl.patch 2224 SHA256 f2f92ddca8e5d60ef7648ded5daae27d1ac54f5b4e141a4d64da4802db3da4b1 SHA512 51dd97748c96a711682450fd8c3018498fc6a3cc2663b52be6b1205c7cbdcb033d182543c81b5c09130f3ad26a4cd50ac1a16b2845996fe70118556b2804dd5b WHIRLPOOL 07cc2cb46cf735b2fdee0a5b7ca91dbe1a575e54c3e5aee6896b96b8d2da6db2f555d060187db8cdafbbad9f2b9ac82732d716ae2e13e2c12212c99a40cae445
+AUX dd_rescue-1.99-test_fix.patch 497 SHA256 233a02e8d3a4dfbac30748e00ce152f63cd0c7394a021556fb35dc074e77981a SHA512 2544e1336763d2951eceafed6de7c2155403bf005eb0eb26e813451b5efdefbdc74eacf97e75229da3720414d0df0f0e9c4dddb254f5068e310765057dcc4349 WHIRLPOOL bd650d61c0f195396732b11349c8cbcc56eb70fa68b795bc6d5a8cc3c04da01cccc64a4e698304bdaf3860520b1221f835c67f74cc4ac3935e1be02ad5be1b3f
+DIST dd_rescue-1.46.tar.gz 126790 SHA256 9e09b5583f778fe43b6c473998fe0455486d5ffeacbb72b022d6cf5ba8241aba SHA512 efd1bf5d80d4bafa6e6971caa84205dc5df4456a29a9fa3bb56aa984d68675ae3418e8ba3a355906f491f0f2e750c38fd695e37dbd193e554cd41afec3841e28 WHIRLPOOL ac965019d38539962018bcc5a6d32cbf303b4d00d5ed91d643655a820f17bfa1ca81b5123f95220663823e6622d55099a2da08aaacf60cefc37097aa3354c729
+DIST dd_rescue-1.99.5.tar.bz2 170712 SHA256 125d327118d1beab24b5858accb2c755dc07ae5b40bb07a985d837c6e3256935 SHA512 a240eb9d50950cefbc65d953c84a8e3782d39282aff4e7fa42364b40cee0eb0a02f61315786a1008cf7ae9c3d758700e9f3a0087b9477b3ffbfcbcef59f07d88 WHIRLPOOL 543a818b748086b1d1163343b02b8e83f7a03713d5394fc0702f48b515cd50b24e30898990439689cbef8270d0b410fdea2dc5b50b8c45728f9ed38c23d414c5
+DIST dd_rescue-1.99.6.tar.bz2 171621 SHA256 92b72d8b6962cfbff23b1360a1d401ae6946123be2d0c901cb585aa383b0b4f8 SHA512 b91508ebdd5f5a4945fa15a86b530bb03e49e74ffe6d2227c9dac4a5fa1b8e9ccf6f1e68204220b571b4661b78892be3a955005f253fd691a85977f35fc74b5e WHIRLPOOL d29a4ba69b319d6563d9822c3e951205cabd1263cdea1f8582803ef6046531549c22a2c838c909c65239b280eff07c1d314bef8ef1ceec335cdf9ab0ce02c161
+EBUILD dd-rescue-1.46.ebuild 1935 SHA256 039673bd5721f6b3cf0c72ce9da992b8ec83b0e8c8bedc11e8c3664861d93ffa SHA512 57bdaccabd2da99bb329c82f47e52fbd2066f736c742b8de551671fab294297e45a874daa0ddd701234a3e6c216f52ddee55283d70bf1a166d3538f32485e8c7 WHIRLPOOL 3b51461dd9868424b15051c2fc3cfdccb250b86e96a13eea7dce48e2cb2cace53d78ebf07a572bc960dbd65222ee10949b215866fe9495d9072454d359cd6fe3
+EBUILD dd-rescue-1.99.5.ebuild 2039 SHA256 5bc672b660cd03b7ab88cbb42a31c1a500c78f8b7e2b49c7d5aa7e716e0022f0 SHA512 411b9c56ae10eed02006538bb6f479e671128fca9d77829dbaeb7a5c4395dcf0e8619fdb564be2c3dfdd705ff8e5eab8fe18f653377ecf62da3e0125c74834fb WHIRLPOOL 5b36943f925e3100ddd9ee9e408ac5270f0815a0edadb8b7ba316863449e429fc6cda14175ba608391baa9a560e6a93cafaa25d3ade723b6564cfee96bde1e00
+EBUILD dd-rescue-1.99.6.ebuild 2012 SHA256 fa2e9122e7341c5d665f2d999cf3cd35e0b7c78ebd57f24aa003cdb7902194c8 SHA512 cf7ae56d76409c667cdb25e836a0f55461b59427fdb6a78499147a8ffd718bafe68df7eff3047d088a8429396419afdcfb6f436a6d98750c4f6f2444229f6711 WHIRLPOOL 9ad0535955b3a72345c1c7e2864e7be8638cdd8423f9a77751b34f8787f4975f390fb3f177cab75ab10007308f99686dba9ad8ca8459853ba3a695269f2b219b
+MISC ChangeLog 4520 SHA256 94ed6b8cae2e5e6de6004ab39fbdff83159619ad6d156fab1650cc824b785b3e SHA512 20a625bebe3c67ae6f4eb1943dfec3261ffa9fcc8f65e2a91a82c3a9535c2d35c9ce79d50bcd4d200c9587acb438945e3d12f9bae58dce4c46b9e29055875a17 WHIRLPOOL 63e4f06c877c5b294255f9b1eaadfec2272fff0b7111cbb817520ab278403ea9a5f39ea884c64bc385fcd7b1df38abb181637f99cba89802924dc82666ef022c
+MISC ChangeLog-2015 5656 SHA256 1987982105db8d034407cb60b98ab9e6eb56a59d4cb946da4ab189a6bded83c7 SHA512 5da8ca84df5f25bdd12af1870102aea8b4157c7a38f92f1eeb4572e4f9646bee228b23d9631178d9d7f23343995f199e95f78b3a7e5ba3c5d526d820c472c1fb WHIRLPOOL b449b53f3c8ccef279878b69c33ed3f5ed8dfea42d624e94856967db9a697d6284c1342411d542d1d644e348335567d8e8247792dcf97314624fd511194a2c50
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/dd-rescue/dd-rescue-1.46.ebuild b/sys-fs/dd-rescue/dd-rescue-1.46.ebuild
new file mode 100644
index 000000000000..70f8a57d7af3
--- /dev/null
+++ b/sys-fs/dd-rescue/dd-rescue-1.46.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs flag-o-matic multilib autotools
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Similar to dd but can copy from source with errors"
+HOMEPAGE="http://www.garloff.de/kurt/linux/ddrescue/"
+SRC_URI="http://www.garloff.de/kurt/linux/ddrescue/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~mips ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="cpu_flags_x86_avx2 lzo cpu_flags_x86_sse4_2 static xattr"
+
+RDEPEND="lzo? ( dev-libs/lzo )
+ xattr? ( sys-apps/attr )"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_PN}
+
+src_prepare() {
+ sed -i \
+ -e 's:-ldl:$(LDFLAGS) -ldl:' \
+ -e 's:-shared:$(CFLAGS) $(LDFLAGS) -shared:' \
+ Makefile
+ eautoreconf
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ # OpenSSL is only used by a random helper tool we don't install.
+ ac_cv_header_attr_xattr_h=$(usex xattr) \
+ ac_cv_header_openssl_evp_h=no \
+ ac_cv_lib_lzo2_lzo1x_1_compress=$(usex lzo) \
+ econf
+}
+
+_emake() {
+ local arch
+ case ${ARCH} in
+ x86) arch=i386;;
+ amd64) arch=x86_64;;
+ arm) arch=arm;;
+ arm64) arch=aarch64;;
+ esac
+
+ local os=$(usex kernel_linux Linux IDK)
+
+ # The Makefile is a mess. Override a few vars rather than patch it.
+ emake \
+ MACH="${arch}" \
+ OS="${os}" \
+ HAVE_SSE42=$(usex cpu_flags_x86_sse4_2 1 0) \
+ HAVE_AVX2=$(usex cpu_flags_x86_avx2 1 0) \
+ RPM_OPT_FLAGS="${CFLAGS} ${CPPFLAGS}" \
+ CFLAGS_OPT='$(CFLAGS)' \
+ LDFLAGS="${LDFLAGS} -Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/${PN}" \
+ CC="$(tc-getCC)" \
+ "$@"
+}
+
+src_compile() {
+ _emake
+}
+
+src_test() {
+ _emake check
+}
+
+src_install() {
+ # easier to install by hand than trying to make sense of the Makefile.
+ dobin dd_rescue
+ dodir /usr/$(get_libdir)/${PN}
+ cp -pPR libddr_*.so "${ED}"/usr/$(get_libdir)/${PN}/ || die
+ dodoc README.dd_rescue
+ doman dd_rescue.1
+ use lzo && doman ddr_lzo.1
+}
diff --git a/sys-fs/dd-rescue/dd-rescue-1.99.5.ebuild b/sys-fs/dd-rescue/dd-rescue-1.99.5.ebuild
new file mode 100644
index 000000000000..6121e84d1aa2
--- /dev/null
+++ b/sys-fs/dd-rescue/dd-rescue-1.99.5.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs flag-o-matic multilib autotools
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Similar to dd but can copy from source with errors"
+HOMEPAGE="http://www.garloff.de/kurt/linux/ddrescue/"
+SRC_URI="http://www.garloff.de/kurt/linux/ddrescue/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="cpu_flags_x86_avx2 lzo cpu_flags_x86_sse4_2 static xattr"
+
+RDEPEND="lzo? ( dev-libs/lzo )
+ xattr? ( sys-apps/attr )"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}/${MY_PN}-1.99-test_fix.patch"
+ epatch "${FILESDIR}/${MY_PN}-1.99-musl.patch"
+
+ sed -i \
+ -e 's:-ldl:$(LDFLAGS) -ldl:' \
+ -e 's:-shared:$(CFLAGS) $(LDFLAGS) -shared:' \
+ Makefile
+ eautoreconf
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ # OpenSSL is only used by a random helper tool we don't install.
+ ac_cv_header_attr_xattr_h=$(usex xattr) \
+ ac_cv_header_openssl_evp_h=no \
+ ac_cv_lib_lzo2_lzo1x_1_compress=$(usex lzo) \
+ econf
+}
+
+_emake() {
+ local arch
+ case ${ARCH} in
+ x86) arch=i386;;
+ amd64) arch=x86_64;;
+ arm) arch=arm;;
+ arm64) arch=aarch64;;
+ esac
+
+ local os=$(usex kernel_linux Linux IDK)
+
+ # The Makefile is a mess. Override a few vars rather than patch it.
+ emake \
+ MACH="${arch}" \
+ OS="${os}" \
+ HAVE_SSE42=$(usex cpu_flags_x86_sse4_2 1 0) \
+ HAVE_AVX2=$(usex cpu_flags_x86_avx2 1 0) \
+ RPM_OPT_FLAGS="${CFLAGS} ${CPPFLAGS}" \
+ CFLAGS_OPT='$(CFLAGS)' \
+ LDFLAGS="${LDFLAGS} -Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/${PN}" \
+ CC="$(tc-getCC)" \
+ "$@"
+}
+
+src_compile() {
+ _emake
+}
+
+src_test() {
+ _emake check
+}
+
+src_install() {
+ # easier to install by hand than trying to make sense of the Makefile.
+ dobin dd_rescue
+ dodir /usr/$(get_libdir)/${PN}
+ cp -pPR libddr_*.so "${ED}"/usr/$(get_libdir)/${PN}/ || die
+ dodoc README.dd_rescue
+ doman dd_rescue.1
+ use lzo && doman ddr_lzo.1
+}
diff --git a/sys-fs/dd-rescue/dd-rescue-1.99.6.ebuild b/sys-fs/dd-rescue/dd-rescue-1.99.6.ebuild
new file mode 100644
index 000000000000..858a583dbdd7
--- /dev/null
+++ b/sys-fs/dd-rescue/dd-rescue-1.99.6.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs flag-o-matic multilib autotools
+
+MY_PN="${PN/-/_}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Similar to dd but can copy from source with errors"
+HOMEPAGE="http://www.garloff.de/kurt/linux/ddrescue/"
+SRC_URI="http://www.garloff.de/kurt/linux/ddrescue/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="cpu_flags_x86_avx2 lzo cpu_flags_x86_sse4_2 static xattr"
+
+RDEPEND="lzo? ( dev-libs/lzo )
+ xattr? ( sys-apps/attr )"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${MY_PN}-1.99-musl.patch"
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e 's:-ldl:$(LDFLAGS) -ldl:' \
+ -e 's:-shared:$(CFLAGS) $(LDFLAGS) -shared:' \
+ Makefile
+
+ eautoreconf
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ # OpenSSL is only used by a random helper tool we don't install.
+ ac_cv_header_attr_xattr_h=$(usex xattr) \
+ ac_cv_header_openssl_evp_h=no \
+ ac_cv_lib_lzo2_lzo1x_1_compress=$(usex lzo) \
+ econf
+}
+
+_emake() {
+ local arch
+ case ${ARCH} in
+ x86) arch=i386;;
+ amd64) arch=x86_64;;
+ arm) arch=arm;;
+ arm64) arch=aarch64;;
+ esac
+
+ local os=$(usex kernel_linux Linux IDK)
+
+ # The Makefile is a mess. Override a few vars rather than patch it.
+ emake \
+ MACH="${arch}" \
+ OS="${os}" \
+ HAVE_SSE42=$(usex cpu_flags_x86_sse4_2 1 0) \
+ HAVE_AVX2=$(usex cpu_flags_x86_avx2 1 0) \
+ RPM_OPT_FLAGS="${CFLAGS} ${CPPFLAGS}" \
+ CFLAGS_OPT='$(CFLAGS)' \
+ LDFLAGS="${LDFLAGS} -Wl,-rpath,${EPREFIX%/}/usr/$(get_libdir)/${PN}" \
+ CC="$(tc-getCC)" \
+ "$@"
+}
+
+src_compile() {
+ _emake
+}
+
+src_test() {
+ _emake check
+}
+
+src_install() {
+ # easier to install by hand than trying to make sense of the Makefile.
+ dobin dd_rescue
+ dodir /usr/$(get_libdir)/${PN}
+ cp -pPR libddr_*.so "${ED%/}"/usr/$(get_libdir)/${PN}/ || die
+ dodoc README.dd_rescue
+ doman dd_rescue.1
+ use lzo && doman ddr_lzo.1
+}
diff --git a/sys-fs/dd-rescue/files/dd_rescue-1.99-musl.patch b/sys-fs/dd-rescue/files/dd_rescue-1.99-musl.patch
new file mode 100644
index 000000000000..6647e5f687c6
--- /dev/null
+++ b/sys-fs/dd-rescue/files/dd_rescue-1.99-musl.patch
@@ -0,0 +1,90 @@
+--- a/ffs.h 2016-02-09 03:37:14.422639513 +0000
++++ b/ffs.h 2016-02-09 03:38:59.843641094 +0000
+@@ -27,7 +27,8 @@
+ #ifdef HAVE_ENDIAN_H
+ #include <endian.h>
+ #endif
+-
++/* __WORDSIZE */
++#include <sys/reg.h>
+
+ #ifdef HAVE_FFS
+ # define myffs(x) ffs(x)
+--- a/fiemap.h 2016-02-09 03:45:05.550646582 +0000
++++ b/fiemap.h 2016-02-09 03:45:56.683647349 +0000
+@@ -31,3 +31,4 @@
+
+ #endif /* _FIEMAPH */
+
++#include <sys/reg.h>
+--- a/libddr_hash.c 2016-02-09 03:49:16.334650345 +0000
++++ b/libddr_hash.c 2016-02-09 03:50:01.309651020 +0000
+@@ -32,6 +32,7 @@
+ #include <errno.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <sys/reg.h>
+
+ #include <netinet/in.h> /* For ntohl/htonl */
+ #include <endian.h>
+--- a/libddr_lzo.c 2016-02-09 03:52:31.775653278 +0000
++++ b/libddr_lzo.c 2016-02-09 03:52:53.537653604 +0000
+@@ -26,6 +26,7 @@
+ #include <errno.h>
+ #include <netinet/in.h>
+ #include <sys/stat.h>
++#include <sys/reg.h>
+ #include <signal.h>
+ #include <lzo/lzo1x.h>
+ #include <lzo/lzo1y.h>
+--- a/libddr_null.c 2016-02-09 03:54:04.110654663 +0000
++++ b/libddr_null.c 2016-02-09 03:54:18.018654872 +0000
+@@ -10,6 +10,7 @@
+ #include "ddr_ctrl.h"
+ #include <string.h>
+ #include <stdlib.h>
++#include <sys/reg.h>
+
+ /* fwd decl */
+ extern ddr_plugin_t ddr_plug;
+--- a/sha512.h 2016-02-09 03:55:33.209656000 +0000
++++ b/sha512.h 2016-02-09 03:56:39.923657001 +0000
+@@ -2,6 +2,8 @@
+ #define _SHA512_H
+
+ #include "hash.h"
++/* __WORDSIZE */
++#include <sys/reg.h>
+
+ void sha512_init(hash_t *ctx);
+ void sha384_init(hash_t *ctx);
+--- a/fmt_no.h 2016-02-09 04:52:13.760707026 +0000
++++ b/fmt_no.h 2016-02-09 04:52:50.874707583 +0000
+@@ -1,4 +1,6 @@
+ /** Decl for int to str conversion with highlighting */
++#define _GNU_SOURCE
++#include <fcntl.h>
+
+ #ifndef _FMT_NO_H
+ #define _FMT_NO_H
+--- a/fstrim.h 2016-02-09 04:55:43.871710178 +0000
++++ b/fstrim.h 2016-02-09 04:56:11.270710590 +0000
+@@ -1,3 +1,6 @@
++#define _GNU_SOURCE
++#include <fcntl.h>
++
+ #ifndef _FSTRIM_H
+ #define _FSTRIM_H
+
+--- a/ddr_ctrl.h 2016-02-09 04:58:08.442712348 +0000
++++ b/ddr_ctrl.h 2016-02-09 04:58:50.842712984 +0000
+@@ -7,6 +7,9 @@
+ * License: GNU GPLv2 or v3
+ */
+
++#define _GNU_SOURCE
++#include <fcntl.h>
++
+ #ifndef _DDR_CTRL_H
+ #define _DDR_CTRL_H
+
diff --git a/sys-fs/dd-rescue/files/dd_rescue-1.99-test_fix.patch b/sys-fs/dd-rescue/files/dd_rescue-1.99-test_fix.patch
new file mode 100644
index 000000000000..6ddf7116f9fb
--- /dev/null
+++ b/sys-fs/dd-rescue/files/dd_rescue-1.99-test_fix.patch
@@ -0,0 +1,11 @@
+--- dd_rescue-1.99/test_crypt.sh
++++ dd_rescue-1.99/test_crypt.sh
+@@ -97,7 +97,7 @@
+ $VG ./dd_rescue -t -m 4096 urandom urandom.new || exit 1
+ # Ensure that we don't have 01 or 02 02 or ... at the end,
+ # which would trip pad=asneeded
+-echo -n "a" | dd_rescue -S 4095 -m 1 - urandom.new
++echo -n "a" | ./dd_rescue -S 4095 -m 1 - urandom.new
+ mv urandom.new urandom
+ enc_dec_compare_keys urandom AES192-CBC "" pad=always "" "-qpt"
+ enc_dec_compare_keys urandom AES192-CBC "" pad=asneeded "" "-qpt"
diff --git a/sys-fs/dd-rescue/metadata.xml b/sys-fs/dd-rescue/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/dd-rescue/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/ddrescue/Manifest b/sys-fs/ddrescue/Manifest
new file mode 100644
index 000000000000..7bfe5b1d6ef3
--- /dev/null
+++ b/sys-fs/ddrescue/Manifest
@@ -0,0 +1,7 @@
+DIST ddrescue-1.21.tar.lz 74716 SHA256 f09e4eb6a209cbd0fe8ee6db2d558238cdc969afa1d94150f263402ac882e1ac SHA512 6b8fddc621af90acc90e54c8688ea5d18721ea922b4433f2ed76f44bbaf5bd90b560b380c02a133fa7f67da85436d058861820eeeb46bbb7d3ef53821c0de079 WHIRLPOOL 819c4166ba0595514996bebf3540fff091877991db069c177b696a854f9a80cccb47c847c5a179d20dbf8170eb49a03c9cd122b673d706589fa3b53dd1c2996a
+DIST ddrescue-1.22.tar.lz 80050 SHA256 09857b2e8074813ac19da5d262890f722e5f7900e521a4c60354cef95eea10a7 SHA512 3e5236374e2c1baae40026f59cf7040414d798a48d4edd6c6bde919e658ca958a795421301439ab2b8aa9f1d8fc60a2fff84b26e22a350e4150850b9830ce754 WHIRLPOOL 27df23ea4b470fa3955fa7e4c37e93af35e30bde6e1190106e14048c0b979a2eaf2e411bc928137f151eb8020e4d4df6fb8a894e66500e5edaeaca6a8d2bcd25
+EBUILD ddrescue-1.21-r1.ebuild 895 SHA256 0cdc1e16668c495d50259c8d50398e5ad64c28b84313bb6a205c3a5315891783 SHA512 64b7d0cf4ca44de210739cc83952b22bd3767200cea0f9e3f24d66517746eef5dc7b531befab9ea61604afb85b262633687037368aedff493e3b821ef3414208 WHIRLPOOL 17150dad207d95a4fb2dd5947794c38531e3bdb2ec09f640a141e1689ab94690e6af40612143f83b8674a34e281ede4d7973bffe62309995ba92e49aa22b89e8
+EBUILD ddrescue-1.22-r1.ebuild 875 SHA256 80070db840f81d39a66f8f7afa64dedcdf41e80eb16824e80cd4ea7d8d9820af SHA512 85ce9dc6917d5c1d04dab0dd42fd6d77f02698a0634200e1daa5d2159ab0d088f9d5c703ee7cd57b76e5437d2411efaf8e340f78b73a6f53264356ccfcb70cc1 WHIRLPOOL cf2efe108895d749728d22918455f947062f069e9ed7a4f265bd8332dadea81f71482f832273adf765579453b1077b3d839a6123612da55594a49c734375ca7f
+MISC ChangeLog 4019 SHA256 ac4b5345afa099b9bbc1f22085493393b2508442a1af06c61ff7bae63f07bf34 SHA512 2f00911cce58506e89bdefabf3b04c854190a4e37da8a9c32385ce29cd745f8f8163bbd8afd9a33c2551bd5c9806056e6e732b5f25f8553440f020be6bdd569f WHIRLPOOL c4113e5e130d8023f095cbcd8ef2380f9fd11ba20ee9d87c10313686b549104918674b036e274bc12c96809514aa18fac013e95e69b9973ca60608a5f71571bd
+MISC ChangeLog-2015 7064 SHA256 c0d878f0a55bec58c0877adb691d22b427001c3f5463b652a65492aaf72dc8ff SHA512 dcb16d275b7be91de67b300dbc90135ac32ea437165bb6e625df70eabd170fc05ff26f50f3019ebb2cc82ec19ea868bc171facb42f8874b763c3963adca06e70 WHIRLPOOL e1e3cc115a6d13e78969b075bb6d02c33475836e4ca5e69496a44efb8733274c0ec6153a99c88dc5422dc7b4e4aa1ac0022b0e4be4623821c2eb5d069ea9ee54
+MISC metadata.xml 257 SHA256 60e4ef3049f5fa18420a7f022f935739458c852364eae6f39636410f0902c089 SHA512 ff078cacb115b8f3624b45d883d8ed72701e3d2fccae06c04c633eb60821b23681cc151e00689d1b6035c94570535e7ac0de51a55dae99f606886164883185ea WHIRLPOOL 81d95f2549c08fe57538c904c4d9d89f5c12c342e3ad031414bd4abb4e58fc8a0c37edbd62941fbdbf2b5b69ab2bec2e6798704b53b35f78806d625ae7377697
diff --git a/sys-fs/ddrescue/ddrescue-1.21-r1.ebuild b/sys-fs/ddrescue/ddrescue-1.21-r1.ebuild
new file mode 100644
index 000000000000..19225cfd6b59
--- /dev/null
+++ b/sys-fs/ddrescue/ddrescue-1.21-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs flag-o-matic unpacker
+
+DESCRIPTION="Copy data from one file or block device to another with read-error recovery"
+HOMEPAGE="https://www.gnu.org/software/ddrescue/ddrescue.html"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.lz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~ia64 ppc ~sparc x86 ~amd64-linux"
+IUSE="static"
+
+DEPEND="$(unpacker_src_uri_depends)"
+RDEPEND=""
+
+src_configure() {
+ use static && append-ldflags -static
+
+ # not a normal configure script
+ econf \
+ --prefix="${EPREFIX}"/usr \
+ CXX="$(tc-getCXX)" \
+ CPPFLAGS="${CPPFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}" \
+ LDFLAGS="${LDFLAGS}"
+}
+
+src_test() {
+ ./testsuite/check.sh "${S}"/testsuite || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install-man
+ dodoc ChangeLog README NEWS AUTHORS
+}
diff --git a/sys-fs/ddrescue/ddrescue-1.22-r1.ebuild b/sys-fs/ddrescue/ddrescue-1.22-r1.ebuild
new file mode 100644
index 000000000000..74ecc8b944dc
--- /dev/null
+++ b/sys-fs/ddrescue/ddrescue-1.22-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs flag-o-matic unpacker
+
+DESCRIPTION="Copy data from one file or block device to another with read-error recovery"
+HOMEPAGE="https://www.gnu.org/software/ddrescue/ddrescue.html"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.lz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86 ~amd64-linux"
+IUSE="static"
+
+DEPEND="$(unpacker_src_uri_depends)"
+RDEPEND=""
+
+src_configure() {
+ use static && append-ldflags -static
+
+ # not a normal configure script
+ econf \
+ --prefix="${EPREFIX}"/usr \
+ CXX="$(tc-getCXX)" \
+ CPPFLAGS="${CPPFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}" \
+ LDFLAGS="${LDFLAGS}"
+}
+
+src_test() {
+ ./testsuite/check.sh "${S}"/testsuite || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install-man
+ einstalldocs
+}
diff --git a/sys-fs/ddrescue/metadata.xml b/sys-fs/ddrescue/metadata.xml
new file mode 100644
index 000000000000..c7be278b6458
--- /dev/null
+++ b/sys-fs/ddrescue/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/devfsd/Manifest b/sys-fs/devfsd/Manifest
new file mode 100644
index 000000000000..a26c7c95f50e
--- /dev/null
+++ b/sys-fs/devfsd/Manifest
@@ -0,0 +1,11 @@
+AUX devfs-start.sh 622 SHA256 6bb438672192887752e3ab69fac6d47853a9c0b72755f924d0c9d3efe8a7cbc3 SHA512 9087c774a3fdabae1216c6a96e522d09efcc19c6739554d9ae4d7e14b231577bdad0904a3a9a177321c288ea572e252621b0be4bc4cd61962ff6a692531f8003 WHIRLPOOL 9de77a203d854b2b4fe6aa4198a7158c690490541bbfec068caf90d081882c46daca9ff3df41b294a5f65202939241df43b83f3bfa1443bd04b13fbb9a6f0abb
+AUX devfs-stop.sh 326 SHA256 a636a187a1f7193aa264a745e00c527c6532ed107ede743df46acdf5ef5a8fc8 SHA512 0f2784a83e49c39b574a8db137b9ab95947f2946c0f6d2a0d64b4ff6d6bd28fefc7a8049b58a7bf672bdaeea616d32dd3a0eff829f7fa67f715db97b06a2aa19 WHIRLPOOL 40e09b1658c93c12ae8e886368759e9ea370b62f0c61b45b713b5a4f7f5ad6a7e485f03161ef74a7bba220faf20a5431458bfebf901de1a31657f77c15136eef
+AUX devfsd-1.3.25-kernel-2.5.patch 3929 SHA256 1998b639ff9f1cf1be0c51ba69073f153b04d28dcbcc145e63c112187ba7d4b3 SHA512 fce2254b23be6bc85592874ad3c80582dcbc03b114a16eea86d1c087571c34db366c09fb04d0e1565ac4fd52fbcea411bad7965474f84e8b1df194db9cdff082 WHIRLPOOL 86c96d9a32adcca28670c774a9b7141b7dbf40f3bf90dc00b0a904ccd2edfaf25e8e4b2099044ff75ad2cb623570caa74ae3f3dda61b451d81cc1f8f97efe3f5
+AUX devfsd-1.3.25-no-nis.patch 2142 SHA256 9b119575c2de6860b195599f6da87f917495efc52ac80f08d70fc63d26472848 SHA512 17cce86a687e03abc310c8aa886758b26d5a9ddc183f07375d5d9282c303f9a1472af11c441345e49cd7341a2dbad4d87a1b032b340d8ea9d922a7b389513d42 WHIRLPOOL 69bfd5ac5763369d099bccefc4fb0159d4aa7407ef4a7d6540c1c870fd0d3c1969b6c3f2f062415e9eee965697bd341003a029379efecfb06b8433f36e6db9d1
+AUX devfsd-1.3.25-pic.patch 529 SHA256 b04fb0ea11eba34adbce237cf3a94a48c2643073c783576846442b15ac24cbc4 SHA512 1f40e3f043cd96a1055b96088cb523fcabb67ab4e9ceca3ea4c9f963964003c3fa67fa050b9189d295a7ffdecc68d2161c49d2e78fe38b51c9faeff94681cd39 WHIRLPOOL 6e4c11ada33f145b4a86e8bad2805488c6fbd2527f7d45b1f29e265400bf2b2d5566f663a9aff88c77c794b6927eb743440c9ef72000d0946273939a34e516c8
+AUX devfsd.conf 5886 SHA256 8bde233bf1981119bc8b6f0e79a6b090e2a57e875c3578681d9bcf9abcb8203d SHA512 95717275ffe39d9c99fbdf8b562278ec8756aba572aac1d789aa3a089f44138158c882399443ef42a97fd1a7a0500d2ab6e271323b52e4e25e83d2ac96408d15 WHIRLPOOL 006472bf8199315b2943c16fa969df8a3c1058f732e672dcbee28c65f99f3f8b495d1a87b60c23eb35c3709858528eb7b8050eb76e1b96f7ec03ef318292f8b3
+DIST devfsd-v1.3.25.tar.gz 42645 SHA256 d0b030fdc45b989fe8030dbb0c025fb7229228d88e5e4f056d9499f4056f6d08 SHA512 3bf18edb0fc823b96b938b22fc0f978823acfd37708d24d9fec8a25dfdaced165be6162fd5a20bdf30bfc615699faea8239fc77b99c30f035fd7c6b40e7c8c2c WHIRLPOOL a54cbc26c9591601e60a7468f89fd5d3c2dd633984d5787641ea63cba5ce2a566b08dd3dc0e3bc636b584ab6eb35bf7eec31c05a87e7f1c4cb8425fc848dfccd
+EBUILD devfsd-1.3.25-r9.ebuild 1447 SHA256 b9f93b3e20790bb3b8a41d6081190197e3b97f425601c9fc9c41d05c6f00f306 SHA512 874f858953089cea254a24c566437db5e6397d5cddd069752aa9552a17d0e55d4ca6e52a59c7d5b3a4dfc9c9a86e39c319b1f32f34bf8aa1ba273a72f6c1c7a5 WHIRLPOOL be59599a2fcf82ae2b2e69a97bc8cbf31c9c711abc15b869846cc7e9c64c3351074fb8c8f5f25d7100a5db43d8e2efccf5c4f40bcda373cb4b440e1d1d137a52
+MISC ChangeLog 3250 SHA256 cfbc3c181a44ef0630eb15538c879cbcf5f5beb3a31c934086942ecb91e0c0d2 SHA512 da7e9a52098061e09e89911a7f22e2c0e1e2f961eba1094c4ab1131f573ccb9326359feae47c205a1556417419400ed1e0223a9573d37940de7d5b780c78ce3e WHIRLPOOL fd276591765b62426a12a6762c30f5eedd0a7d1de9a89d9b2436566dbfeb2ab69e34ffcad24dff0eef758ff1a2d9e9f319dbe2929df3e3cf2628bf36aaec6f56
+MISC ChangeLog-2015 6743 SHA256 e439e62520719af577679fe2fd1bdd4f2e3307510dbffaab247cc05273b564e7 SHA512 95dc2c83806d693c371a66d6dd216b8a3d6d86d57b39f2c2cf2caa4ffc435166eaca0ce0f89cc1ddeed9777ae4f8c5339d3e437eec6974238274f524d94eb4d5 WHIRLPOOL 86ae64101617fbec515fc4ad334da53a7444dbb3c4acba24d1becb350be054a60bc3973f1c7119f8445d6e920dd2bda94ac5a47d8fb61d7b884fa834d3f7b1a1
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/devfsd/devfsd-1.3.25-r9.ebuild b/sys-fs/devfsd/devfsd-1.3.25-r9.ebuild
new file mode 100644
index 000000000000..16647cbdbf8b
--- /dev/null
+++ b/sys-fs/devfsd/devfsd-1.3.25-r9.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Daemon for the Linux Device Filesystem"
+HOMEPAGE="http://www.atnf.csiro.au/~rgooch/linux/"
+SRC_URI="ftp://ftp.atnf.csiro.au/pub/people/rgooch/linux/daemons/devfsd/devfsd-v${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="<sys-kernel/linux-headers-2.6.18"
+RDEPEND=""
+
+S=${WORKDIR}/${PN}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-kernel-2.5.patch
+ epatch "${FILESDIR}"/${P}-pic.patch
+ epatch "${FILESDIR}"/${P}-no-nis.patch
+
+ use elibc_uclibc || append-cppflags -DHAVE_NIS
+ sed -i \
+ -e "s:-O2:${CFLAGS}:g" \
+ -e 's:/usr/man:/usr/share/man:' \
+ -e 's:/usr/src/linux:.:' \
+ -e '32,34d;11,16d' -e '6c\' \
+ -e 'DEFINES := -DLIBNSL="\\"/lib/libnsl.so.1\\""' \
+ -e 's:install -s:install:' \
+ GNUmakefile
+ use elibc_uclibc && sed -e 's|libnsl.so.1|libnsl.so.0|' -i GNUmakefile
+ tc-export CC
+}
+
+src_install() {
+ dodir /sbin /usr/share/man /etc
+ emake PREFIX="${D}" install
+ dodoc devfsd.conf INSTALL
+
+ keepdir /etc/devfs.d
+ insinto /etc
+ doins "${FILESDIR}"/devfsd.conf
+
+ insinto /lib/rcscripts/addons
+ doins "${FILESDIR}"/devfs-{start,stop}.sh
+}
+
+pkg_postinst() {
+ echo
+ einfo "You may wish to read the Gentoo Linux Device Filesystem Guide,"
+ einfo "which can be found online at:"
+ einfo " https://wwwold.gentoo.org/doc/en/devfs-guide.xml"
+ echo
+}
diff --git a/sys-fs/devfsd/files/devfs-start.sh b/sys-fs/devfsd/files/devfs-start.sh
new file mode 100644
index 000000000000..b8d832494e95
--- /dev/null
+++ b/sys-fs/devfsd/files/devfs-start.sh
@@ -0,0 +1,28 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+main() {
+ local mymounts=$(awk '($2 == "devfs") { print "yes"; exit 0 }' /proc/filesystems)
+
+ # Is devfs support compiled in?
+ if [[ ${mymounts} == "yes" ]] ; then
+ if [[ ${devfs_automounted} == "no" ]] ; then
+ ebegin "Mounting devfs at /dev"
+ try mount -n -t devfs devfs /dev
+ eend $?
+ else
+ ebegin "Kernel automatically mounted devfs at /dev"
+ eend 0
+ fi
+ ebegin "Starting devfsd"
+ /sbin/devfsd /dev >/dev/null
+ eend $? "Could not start /sbin/devfsd"
+ else
+ devfs="no"
+ fi
+}
+
+main
+
+
+# vim:ts=4
diff --git a/sys-fs/devfsd/files/devfs-stop.sh b/sys-fs/devfsd/files/devfs-stop.sh
new file mode 100644
index 000000000000..0b4856bc82c7
--- /dev/null
+++ b/sys-fs/devfsd/files/devfs-stop.sh
@@ -0,0 +1,16 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+main() {
+ # We need to properly terminate devfsd to save the permissions
+ if [[ -n $(ps --no-heading -C 'devfsd') ]]; then
+ ebegin "Stopping devfsd"
+ killall -15 devfsd &>/dev/null
+ eend $?
+ fi
+}
+
+main
+
+
+# vim:ts=4
diff --git a/sys-fs/devfsd/files/devfsd-1.3.25-kernel-2.5.patch b/sys-fs/devfsd/files/devfsd-1.3.25-kernel-2.5.patch
new file mode 100644
index 000000000000..bafa600c31ce
--- /dev/null
+++ b/sys-fs/devfsd/files/devfsd-1.3.25-kernel-2.5.patch
@@ -0,0 +1,131 @@
+diff -urpN devfsd/GNUmakefile devfsd.kernel25/GNUmakefile
+--- devfsd/GNUmakefile 2003-09-21 02:09:45.082973960 +0200
++++ devfsd.kernel25/GNUmakefile 2003-09-21 02:10:23.317161480 +0200
+@@ -12,13 +12,16 @@ endif
+ all: devfsd rpm.spec
+
+
+-OBJECTS = devfsd.o expression.o compat_name.o
++OBJECTS = devfsd.o expression.o compat_name.o check_kernel.o
+
+ CFLAGS = -O2 -I. -I$(KERNEL_DIR)/include -Wall $(CEXTRAS) $(DEFINES)
+
+ devfsd: $(OBJECTS)
+ $(CC) -O2 -o devfsd $(OBJECTS) $(LDFLAGS) -export-dynamic -ldl
+
++check_kernel.o: check_kernel.c
++ $(CC) -fomit-frame-pointer -O2 -c $<
++
+ install: devfsd
+ if [ ! -e $(SBINDIR) ]; then mkdir -p $(SBINDIR); fi
+ rm -f $(SBINDIR)/devfsd
+diff -urpN devfsd/check_kernel.c devfsd.kernel25/check_kernel.c
+--- devfsd/check_kernel.c 1970-01-01 02:00:00.000000000 +0200
++++ devfsd.kernel25/check_kernel.c 2003-09-21 01:59:56.645430064 +0200
+@@ -0,0 +1,44 @@
++#include <sys/types.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <errno.h>
++#include <asm/unistd.h>
++
++extern char *modules_devfs;
++
++/* copied over from module-init-tools backward_compat.c */
++#ifndef __ia64 /* breaks ia64. */
++static _syscall2(long, create_module, const char *, name, size_t, size);
++#else
++#define create_module(name, size) \
++ syscall(__NR_create_module, (name), (size))
++#endif
++
++/* returns true if we have a 2.5.48+ kernel */
++int check_kernel_version (int verbose)
++{
++ int k25 = 1;
++
++ errno = 0;
++ if (create_module(NULL, 0) >= 0 /* Uh oh, what have I just done? */
++ || errno != ENOSYS)
++ k25 = 0;
++
++ if (verbose)
++ fprintf (stderr, "devfsd: kernel %s detected\n",
++ k25 ? "2.5.48+" : "2.4");
++
++ return k25;
++}
++
++void update_config_file (int verbose)
++{
++ int k25 = check_kernel_version (verbose);
++
++ if (k25)
++ modules_devfs = "/etc/modules.devfs";
++
++ if (verbose)
++ fprintf (stderr, "devfsd: using %s for MODLOAD\n", modules_devfs);
++}
++
+diff -urpN devfsd/devfsd.c devfsd.kernel25/devfsd.c
+--- devfsd/devfsd.c 2003-09-21 02:06:10.763555464 +0200
++++ devfsd.kernel25/devfsd.c 2003-09-21 02:12:17.482805664 +0200
+@@ -396,10 +396,16 @@ EXTERN_FUNCTION (flag st_expr_expand,
+ EXTERN_FUNCTION (const char *get_old_name,
+ (const char *devname, unsigned int namelen,
+ char *buffer, unsigned int major, unsigned int minor) );
+-
++EXTERN_FUNCTION (int check_kernel_version,
++ (int) );
++EXTERN_FUNCTION (void update_config_file,
++ (int) );
+
+ /* Public data */
+ flag syslog_is_open = FALSE;
++/* set to new style, runtime test will override it later */
++char *modules_devfs = "/etc/modules.devfs";
++
+
+
+ /* Public functions */
+@@ -507,7 +513,6 @@ static struct event_type
+ {0xffffffff, NULL, NULL}
+ };
+
+-
+ /* Public functions follow */
+
+ int main (int argc, char **argv)
+@@ -651,6 +656,7 @@ int main (int argc, char **argv)
+ /* Set umask so that mknod(2), open(2) and mkdir(2) have complete control
+ over permissions */
+ umask (0);
++ update_config_file (trace_level);
+ read_config (CONFIG_FILE, FALSE, &event_mask);
+ /* Do the scan before forking, so that boot scripts see the finished
+ product */
+@@ -1217,7 +1223,7 @@ static void action_modload (const struct
+ [RETURNS] Nothing.
+ */
+ {
+- char *argv[6];
++ char *argv[7];
+ char device[STRING_LENGTH];
+ char *env[4] = {"HOME=/", "TERM=linux", /* Safe mode environment */
+ "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL};
+@@ -1240,9 +1246,13 @@ static void action_modload (const struct
+ argv[0] = "/sbin/modprobe";
+ argv[1] = "-k";
+ argv[2] = "-C";
+- argv[3] = "/etc/modules.devfs";
++ argv[3] = modules_devfs;
+ argv[4] = device;
+- argv[5] = NULL;
++ if (check_kernel_version (trace_level))
++ argv[5] = "-q";
++ else
++ argv[5] = NULL;
++ argv[6] = NULL;
+ snprintf (device, sizeof (device), "/dev/%s", info->devname);
+ if (trace_level > 1)
+ fprintf (stderr, "%s modprobe with name: \"%s\"\n",
diff --git a/sys-fs/devfsd/files/devfsd-1.3.25-no-nis.patch b/sys-fs/devfsd/files/devfsd-1.3.25-no-nis.patch
new file mode 100644
index 000000000000..c676b7e980c9
--- /dev/null
+++ b/sys-fs/devfsd/files/devfsd-1.3.25-no-nis.patch
@@ -0,0 +1,69 @@
+--- devfsd/devfsd.c.mps 2003-12-04 15:54:03.000000000 +0100
++++ devfsd/devfsd.c 2003-12-04 16:05:32.000000000 +0100
+@@ -283,8 +283,10 @@
+ #include <regex.h>
+ #include <errno.h>
+ #include <dlfcn.h>
++#ifdef HAVE_NIS
+ #include <rpcsvc/ypclnt.h>
+ #include <rpcsvc/yp_prot.h>
++#endif
+ #include <karma.h>
+ #include "devfsd.h"
+ #include "version.h"
+@@ -414,9 +416,11 @@
+ unsigned long *event_mask);
+ static void process_config_line (CONST char *line, unsigned long *event_mask);
+ static void *dlsym_nofail (const char *file, void *handle, char *symbol);
++#ifdef HAVE_NIS
+ static int process_yp_line (int instatus, char *inkey, int inkeylen,
+ char *inval, int invallen, char *indata);
+ static void load_libnsl (void);
++#endif
+ static flag do_servicing (int fd, unsigned long event_mask);
+ static void service_name (const struct devfsd_notify_struct *info);
+ static void action_permissions (const struct devfsd_notify_struct *info,
+@@ -486,9 +490,11 @@
+ {"fd/2", "stderr"},
+ {NULL, NULL},
+ };
++#ifdef HAVE_NIS
+ static int (*my_yp_all) (char *domain, char *map,
+ struct ypall_callback *callback); /* = NULL */
+ static int (*my_yp_get_default_domain) (char **domainptr); /* = NULL */
++#endif
+ static struct event_type
+ {
+ unsigned int type; /* The DEVFSD_NOTIFY_* value */
+@@ -714,6 +720,7 @@
+ [RETURNS] Nothing.
+ */
+ {
++#ifdef HAVE_NIS
+ if (location[0] == '+')
+ {
+ /* It's a YP map */
+@@ -736,6 +743,7 @@
+ SYSLOG (LOG_ERR, "error reading map: \"%s\"\n", location + 1);
+ exit (1);
+ }
++#endif
+ read_config_file (location, optional, event_mask);
+ } /* End Function read_config */
+
+@@ -1006,6 +1014,7 @@
+ return (result);
+ } /* End Function dlsym_nofail */
+
++#ifdef HAVE_NIS
+ static void load_libnsl (void)
+ {
+ #ifdef LIBNSL /* It comes from a shared object */
+@@ -1034,6 +1043,7 @@
+ if (invallen > 0) process_config_line (inval, (unsigned long *) indata);
+ return (0);
+ } /* End Function process_yp_line */
++#endif
+
+ static flag do_servicing (int fd, unsigned long event_mask)
+ /* [SUMMARY] Service devfs changes until a signal is received.
diff --git a/sys-fs/devfsd/files/devfsd-1.3.25-pic.patch b/sys-fs/devfsd/files/devfsd-1.3.25-pic.patch
new file mode 100644
index 000000000000..67e325333c07
--- /dev/null
+++ b/sys-fs/devfsd/files/devfsd-1.3.25-pic.patch
@@ -0,0 +1,16 @@
+--- check_kernel.c.orig 2004-02-06 16:41:32.000000000 -0500
++++ check_kernel.c 2004-02-06 16:41:55.000000000 -0500
+@@ -6,13 +6,8 @@
+
+ extern char *modules_devfs;
+
+-/* copied over from module-init-tools backward_compat.c */
+-#ifndef __ia64 /* breaks ia64. */
+-static _syscall2(long, create_module, const char *, name, size_t, size);
+-#else
+ #define create_module(name, size) \
+ syscall(__NR_create_module, (name), (size))
+-#endif
+
+ /* returns true if we have a 2.5.48+ kernel */
+ int check_kernel_version (int verbose)
diff --git a/sys-fs/devfsd/files/devfsd.conf b/sys-fs/devfsd/files/devfsd.conf
new file mode 100644
index 000000000000..e3b7ee473d86
--- /dev/null
+++ b/sys-fs/devfsd/files/devfsd.conf
@@ -0,0 +1,138 @@
+# Sample /etc/devfsd.conf configuration file.
+# Richard Gooch <rgooch@atnf.csiro.au> 17-FEB-2002
+#
+# The Gentoo Linux Team - http://www.gentoo.org/
+# - Many fixes, etc
+#
+
+# Enable full compatibility mode for old device names. You may comment these
+# out if you don't use the old device names. Make sure you know what you're
+# doing!
+REGISTER .* MKOLDCOMPAT
+UNREGISTER .* RMOLDCOMPAT
+
+# You may comment out the above and uncomment the following if you've
+# configured your system to use the original "new" devfs names or the really
+# new names
+#REGISTER ^vc/.* MKOLDCOMPAT
+#UNREGISTER ^vc/.* RMOLDCOMPAT
+#REGISTER ^pty/.* MKOLDCOMPAT
+#UNREGISTER ^pty/.* RMOLDCOMPAT
+#REGISTER ^misc MKOLDCOMPAT
+#UNREGISTER ^misc RMOLDCOMPAT
+
+# You may comment these out if you don't use the original "new" names
+REGISTER .* MKNEWCOMPAT
+UNREGISTER .* RMNEWCOMPAT
+
+# Enable module autoloading. You may comment this out if you don't use
+# autoloading
+LOOKUP .* MODLOAD
+
+# Uncomment the following if you want to set the group to "tty" for the
+# pseudo-tty devices. This is necessary so that mesg(1) can later be used to
+# enable/disable talk requests and wall(1) messages.
+REGISTER ^pty/s.* PERMISSIONS -1.tty 0600
+REGISTER ^pts/.* PERMISSIONS -1.tty 0600
+
+# Uncomment this if you want permissions to be saved and restored
+# NB: Do NOT change the following!
+# Do not do this for pseudo-terminal devices
+REGISTER ^pt[sy]/.* IGNORE
+CHANGE ^pt[sy]/.* IGNORE
+CREATE ^pt[sy]/.* IGNORE
+DELETE ^pt[sy] IGNORE
+REGISTER ^log IGNORE
+CHANGE ^log IGNORE
+CREATE ^log IGNORE
+DELETE ^log IGNORE
+REGISTER .* COPY /lib/dev-state/$devname $devpath
+CHANGE .* COPY $devpath /lib/dev-state/$devname
+CREATE .* COPY $devpath /lib/dev-state/$devname
+DELETE .* CFUNCTION GLOBAL unlink /lib/dev-state/$devname
+RESTORE /lib/dev-state
+
+# You can force default like this :
+# PERMISSIONS owner_and_group access_mode
+
+# ALSA/OSS stuff
+# Comment/change these if you want to change the permissions on
+# the audio devices
+LOOKUP snd MODLOAD ACTION snd
+LOOKUP dsp MODLOAD
+LOOKUP mixer MODLOAD
+LOOKUP midi MODLOAD
+REGISTER sound/.* PERMISSIONS root.audio 660
+REGISTER snd/.* PERMISSIONS root.audio 660
+
+# Uncomment this to let PAM manage devfs
+#REGISTER .* CFUNCTION /lib/security/pam_console_apply_devfsd.so pam_console_apply_single $devpath
+
+# Autoload the sg module if generic scsi driver compiled as module.
+#LOOKUP ^sg$ MODLOAD ACTION sg
+
+# Give the cdrom group access to /dev/sg0
+REGISTER ^scsi/host.*/bus.*/target.*/lun.*/generic PERMISSIONS root.cdrom 660
+
+# Give the cdrom group access to the cdrom devices
+REGISTER ^scsi/host.*/bus.*/target.*/lun.*/cd PERMISSIONS root.cdrom 660
+REGISTER ^ide/host.*/bus.*/target.*/lun.*/cd PERMISSIONS root.cdrom 660
+
+# Give the floppy group access to the floppy devices
+REGISTER ^floppy/.* PERMISSIONS root.floppy 660
+
+# Give the usb group access to the usb devices
+REGISTER ^usb/.* PERMISSIONS root.usb 660
+REGISTER ^tts/USB.* PERMISSIONS root.usb 660
+REGISTER ^usb/tts/(.*)$ CFUNCTION GLOBAL mksymlink $devname ttyUSB\1
+UNREGISTER ^usb/tts/(.*)$ CFUNCTION GLOBAL unlink ttyUSB\1
+
+# Video devices
+REGISTER ^v4l/.* PERMISSIONS root.video 660
+REGISTER ^dri/.* PERMISSIONS root.video 660
+REGISTER ^nvidia.* PERMISSIONS root.video 660
+
+# General note for the following auto creation of symlinks:
+#
+# If you change the device that the symlink points to,
+# you should also remove the symlink before restarting
+# devfsd
+
+# Create /dev/cdrom for the first cdrom drive
+LOOKUP ^cdrom$ CFUNCTION GLOBAL mksymlink cdroms/cdrom0 cdrom
+REGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL mksymlink $devname cdrom
+UNREGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL unlink cdrom
+
+# Create /dev/dvd for the second cdrom drive
+# (change 'cdroms/cdrom1' to suite your setup)
+# NOTE: We add the fully qualified path here, else some apps
+# have problems to resolve the true device (drip comes to mind)
+#LOOKUP ^dvd$ CFUNCTION GLOBAL mksymlink ${mntpnt}/cdroms/cdrom1 dvd
+#REGISTER ^cdroms/cdrom1$ CFUNCTION GLOBAL mksymlink ${devpath} dvd
+#UNREGISTER ^cdroms/cdrom1$ CFUNCTION GLOBAL unlink dvd
+
+# Create /dev/cdrw for the first cdrom on the scsi bus
+# (change 'sr0' to suite your setup)
+#LOOKUP ^cdrw$ CFUNCTION GLOBAL mksymlink sr0 cdrw
+#REGISTER ^sr0$ CFUNCTION GLOBAL mksymlink $devname cdrw
+#UNREGISTER ^sr0$ CFUNCTION GLOBAL unlink cdrw
+
+# Create /dev/mouse
+LOOKUP ^mouse$ CFUNCTION GLOBAL mksymlink misc/psaux mouse
+REGISTER ^misc/psaux$ CFUNCTION GLOBAL mksymlink $devname mouse
+UNREGISTER ^misc/psaux$ CFUNCTION GLOBAL unlink mouse
+
+# Manage USB mouse
+REGISTER ^input/mouse0$ CFUNCTION GLOBAL mksymlink $devname usbmouse
+UNREGISTER ^input/mouse0$ CFUNCTION GLOBAL unlink usbmouse
+REGISTER ^input/mice$ CFUNCTION GLOBAL mksymlink $devname usbmouse
+UNREGISTER ^input/mice$ CFUNCTION GLOBAL unlink usbmouse
+
+# Create compatibility link for broken misc/net/tun driver
+REGISTER ^misc/net/tun$ CFUNCTION GLOBAL unlink net/tun
+REGISTER ^misc/net/tun$ CFUNCTION GLOBAL symlink /dev/$devname net/tun
+
+# Support additional config installed by packages ...
+INCLUDE /etc/devfs.d
+
+# devfsd.conf ends here
diff --git a/sys-fs/devfsd/metadata.xml b/sys-fs/devfsd/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/devfsd/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/dfc/Manifest b/sys-fs/dfc/Manifest
new file mode 100644
index 000000000000..3f2484f857da
--- /dev/null
+++ b/sys-fs/dfc/Manifest
@@ -0,0 +1,5 @@
+DIST dfc-3.0.5.tar.gz 43310 SHA256 3c947a1d6bc53347b1643921dcbf4c6f8fe7eb6167fc1f4e9436366f036d857a SHA512 f828ede8aee0a496518d1ee9583ba71495cdd01ee0d22833e3b46aeb5f5f870ce7de629923d129a7bf795b458feec10f9a16882134dae34dd2ace7ea9eebb134 WHIRLPOOL 060a9aa44a5b4294bc71fabd38b7d55a15fcf65ad3b9bef2d64b98f9e57670f6cb1370ba6b58fa65bfc01d067d9cf911f4e20cbdca5dbeea97b87f721f737423
+EBUILD dfc-3.0.5-r1.ebuild 838 SHA256 d7a46ff9a465061a3ba43c5348e92be24e499e0d7300bf6de981e620593862b0 SHA512 e962103b8151061def9bae37a24d56bfbcb0920cd3db9dd07879fca77c56955c9e2321838806cb6f81ca066d9f903442d18df200d5bada19d9557b51bb519ed2 WHIRLPOOL b5c16b57c6d7648b9ca581d65106fc8d3c3b35c75fead9901c0d9ef42ffdd2f4919fdf9e274c86a78cfa8a21d4b15e6103efce60409831bf920c0142dc7ba697
+MISC ChangeLog 2168 SHA256 783288f1e646ae5c42a573b544dbc99796031e5f2efdd22e17a2b9221e7c6d65 SHA512 037f949d620482d9afba769fa30f8f25e586e2b2e00336a3c8ff226a4396dda5bcab7434041ff500e73cf35739a6c3aedb8e677bee0a82b950d80c7fc01ad161 WHIRLPOOL 871bdbdf73b0bac26b28c5dfcff4c3c3c351af4b6e14609ffe140ed023f1403dfc404ae0e9a91db65941807a0b77a5c640443c41eeb0b6a6d9490f6317316584
+MISC ChangeLog-2015 915 SHA256 5e4767287080751f942299413dceb1a6cb92faa7246447d40c6c55256a6a87c0 SHA512 40b713f22f221d6445e4ca51bc4c353223ce3c11165d7be43f450411ce24105acbd974b9e3cec7d932b90ad28a40248ed3fded859752349d93073899985ed1cd WHIRLPOOL d60a762bed3934cd2ad7eb5fea7b1f098e1294aa427594355a664b3961cda7fbbff4802e7ded6176243b244f9344aef6120a2f93083907bb30cdeadaebde917c
+MISC metadata.xml 240 SHA256 617d68811d3753c1c435f47fbe63983b453190a8f7ad6cb8577e963793ba7281 SHA512 923a0a24ce7efb7b5c6e6561521def809a20d77a8dca21ca55c1bd8e0e34139c0d5d6ec683180f0b97ddb809ea124765eba82f1135abe08c93f4dfb353d18da8 WHIRLPOOL bad18ca161e86a61cd8cabb13793d9e8830ad820d922adf08c354546e308f402d9e0227b4013935dbefc08810220ba1575454eafeb733cc5515aba28b1857055
diff --git a/sys-fs/dfc/dfc-3.0.5-r1.ebuild b/sys-fs/dfc/dfc-3.0.5-r1.ebuild
new file mode 100644
index 000000000000..989df7268997
--- /dev/null
+++ b/sys-fs/dfc/dfc-3.0.5-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit cmake-utils
+
+DESCRIPTION="A simple CLI tool that display file system usage, with colors"
+HOMEPAGE="http://projects.gw-computing.net/projects/dfc"
+SRC_URI="http://projects.gw-computing.net/attachments/download/467/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="nls"
+
+DEPEND="nls? (
+ virtual/libintl
+ sys-devel/gettext
+)"
+RDEPEND="nls? ( virtual/libintl )"
+
+src_configure() {
+ mycmakeargs=(
+ # avoid installing xdg config in /usr
+ -DXDG_CONFIG_DIR="${EPREFIX}"/etc/xdg
+ # use the standard Gentoo doc path
+ -DDFC_DOC_PATH="${EPREFIX}"/usr/share/doc/${PF}
+ # disable automagic dependency
+ $(cmake-utils_use nls NLS_ENABLED)
+ -DLFS_ENABLED=ON
+ -DGRIM=OFF
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/sys-fs/dfc/metadata.xml b/sys-fs/dfc/metadata.xml
new file mode 100644
index 000000000000..4f503c94254e
--- /dev/null
+++ b/sys-fs/dfc/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>dlan@gentoo.org</email>
+ <name>Yixun Lan</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/diskdev_cmds/Manifest b/sys-fs/diskdev_cmds/Manifest
new file mode 100644
index 000000000000..88bd2a384e17
--- /dev/null
+++ b/sys-fs/diskdev_cmds/Manifest
@@ -0,0 +1,9 @@
+AUX diskdev_cmds-respect-cflags.patch 384 SHA256 db25fa235d7d1472ee963229b397f86ceb2da2c001e58754a51d7cd2dee69306 SHA512 db60e9cd8a87fb048f1a97605c578701319c09a370774a7f41cea6d43ded38636796461456a4e1fccac3511f700de9770fb6a4beb7c85e463f23c37f1e3e7afb WHIRLPOOL 099d8748b62d550aae4e61d3f73c03459f356a1bb187be71b8cd62f87c13fffbac125d20ea6c83f74b6bc789a47b5d0dc0e537c4e3f959a8458cc61b51e9dfee
+DIST diskdev_cmds-332.14.patch.bz2 40477 SHA256 695889250a1faad15d841f86d62af49b492e4db792d683d21c99340e3a35e68a SHA512 def4966fd638e5d6602ad3170347e657ff5a44d45e5075cb6d355575fad5a5c654618e658d00c98b055426d12dfac27b7ca4c1924625b58a6778f32413cb65be WHIRLPOOL 3c290cf75cc2b8894900bd1e23c430d2b86cd55dff0d4dc73f2965346eff6b806cedebe51a20528c82a2b41cf3bc1451f5a758e240a6cda99ad7f495cee6fd8e
+DIST diskdev_cmds-332.14.tar.gz 714035 SHA256 a46bec392661a02d9683355baf4442d494e2bcde0ffb094aacc1e57ddc03b3d4 SHA512 e1df91fb5330dc01a79de99dd8b1f389a337a19c2136994d59b7cbca9c2e1cb5f7d47101366dd01db4e23a5d3d7afab41758045bf7402d739fa22182dc922044 WHIRLPOOL bb39c2949c7b05ca82301894954ccd726b5c962d6af61bf04c7e262de3304e788f38c392e8dd526d1038f9389c42033993ca8feb708fd94b7e94fd958db9728e
+DIST diskdev_cmds-332.14_p1.patch.bz2 21989 SHA256 8e6889b318b1015e9be13dc12b3694c8e7077428a1142fbeb503609771f49bda SHA512 aaef096aa6a3f2e09bcc8c1831172c3d68994589ade505153ade00e6f4d0c49263b63212f8616ece597b1ee218a87474bb1c3812d15f34c5bc5c51fd7b72a062 WHIRLPOOL efca536f9c5dcb8308945731094227f7b12b23b0f930a4d88add7780b4f9206631653d9ef008572936426a6fb5641393bd3ff39a393f66e88f6558584f7439e1
+EBUILD diskdev_cmds-332.14.ebuild 1103 SHA256 d4790b4c67cacedf47b7f2c920a54a1eca8a294c463e7384cd0dc5464f4caaf3 SHA512 aee2bc4879d4603e789bceb978f84fb76e94843ab7cf8361bfc173626192c1c3e3105d8ed6a93fe5830882dc68d8504c2909c3de65efbeedb2416dda6d3d5267 WHIRLPOOL 03bf91fbe63373094e9c947125ff3e21b8b0130286203f807c873d5a55a24cc9be019e68625add2cb181ba11737efe54b91b6926f5394793b0518045a87d8c4e
+EBUILD diskdev_cmds-332.14_p1.ebuild 1646 SHA256 65d57834830a9237b9ab35bb3cc6d0a38bc3d5673648d8f6b29bd276a57e47c9 SHA512 e1993149d84f0fa8d1eeb4521209db934d1e7019a83e5aebf2ee9da365b5c126019dae82f22a29d5c2697de2c8d4139741ce335e08362148d7ad4b1e79b9224e WHIRLPOOL b2b1eec91d588a5c6d47d4bb7440da13240e69b255504deac29766a648dd44efdd7c571c32eb456b1b886c9cafc196f319b291a452497e2016c5f7bc710c067a
+MISC ChangeLog 3246 SHA256 196428c27b843135413b9c5532a1cabb55dc6b4a39c27a8a34c642d56e88d69f SHA512 3348b0de2db834065a2e0e0d56b43b44f10ee5d82992460bc122d4882fa2f5c5d2b73327475a331331b25dcbf1b1e5b6ce83df5b6472d95b0c75327859743d04 WHIRLPOOL 73ee66b41ad704614be3787ae2989efda08a3e17f6f8f764d6caccced43a2044af42fee66ee50bcb1a81535744d36d932cdb8ac422a336a86f4c6e07791bad9a
+MISC ChangeLog-2015 1439 SHA256 ed6e699a0e47ac53f9fbe283d317970947fc09f31f9976f7f0ee3ac271d2b46c SHA512 3ec8bc20e4d2df52333f1426346ced83b2739686035ee34eda6f4c0f8929547b313fdcd29dbc7b37ee43ffc84f26ef090c0cf0ed96feca6378bc98571f98d050 WHIRLPOOL 259f690ef584c552569b68df858425c0a4ba11fbefd856c298ee0f019a83fd87ab278641c3b04d9203e4ccfa58770b7043190a10f7b1377c37a0f7673afd1ad2
+MISC metadata.xml 390 SHA256 7d59933e5f58dfcb1a79c8e414fcb8c4d5cc347fa411ced2cc142ebfd929b0d1 SHA512 713593a494fe0722fc1ea9984450a392585e57d2e317d99bbac73a2f713ff87950d52b11124ce2f3c7536755302c364d94ca38389b93789d3af5f5d19d8fc0fa WHIRLPOOL 4eccc6293d8646a845c5a8bd5087ad24e760b641bc25222a46139d92dbedb9f9352102d7c97fdb17d6ef89acd1ce352b3e3acd3a02e4b7ec89e954e5c74a2a34
diff --git a/sys-fs/diskdev_cmds/diskdev_cmds-332.14.ebuild b/sys-fs/diskdev_cmds/diskdev_cmds-332.14.ebuild
new file mode 100644
index 000000000000..ac35ce661d49
--- /dev/null
+++ b/sys-fs/diskdev_cmds/diskdev_cmds-332.14.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils
+
+DESCRIPTION="HFS and HFS+ utils ported from OSX, supplies mkfs and fsck"
+HOMEPAGE="http://opendarwin.org"
+SRC_URI="http://darwinsource.opendarwin.org/tarballs/apsl/diskdev_cmds-${PV}.tar.gz
+ mirror://gentoo/diskdev_cmds-${PV}.patch.bz2"
+LICENSE="APSL-2"
+SLOT="0"
+KEYWORDS="-amd64 ~ppc ~x86"
+IUSE=""
+DEPEND=""
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${WORKDIR}"/diskdev_cmds-${PV}.patch
+}
+
+src_compile() {
+ emake -f Makefile.lnx || die "emake failed"
+}
+
+src_install() {
+ exeinto /sbin
+ doexe fsck_hfs.tproj/fsck_hfs
+ doexe newfs_hfs.tproj/newfs_hfs
+ dosym /sbin/newfs_hfs /sbin/mkfs.hfs
+ dosym /sbin/newfs_hfs /sbin/mkfs.hfsplus
+ dosym /sbin/fsck_hfs /sbin/fsck.hfs
+ dosym /sbin/fsck_hfs /sbin/fsck.hfsplus
+ doman newfs_hfs.tproj/newfs_hfs.8
+ newman newfs_hfs.tproj/newfs_hfs.8 mkfs.hfs.8
+ newman newfs_hfs.tproj/newfs_hfs.8 mkfs.hfsplus.8
+ doman fsck_hfs.tproj/fsck_hfs.8
+ newman fsck_hfs.tproj/fsck_hfs.8 fsck.hfs.8
+ newman fsck_hfs.tproj/fsck_hfs.8 fsck.hfsplus.8
+}
diff --git a/sys-fs/diskdev_cmds/diskdev_cmds-332.14_p1.ebuild b/sys-fs/diskdev_cmds/diskdev_cmds-332.14_p1.ebuild
new file mode 100644
index 000000000000..a9d5501cfc90
--- /dev/null
+++ b/sys-fs/diskdev_cmds/diskdev_cmds-332.14_p1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils
+
+MY_PV=${PV%_p*}
+
+DESCRIPTION="HFS and HFS+ utils ported from OSX, supplies mkfs and fsck"
+HOMEPAGE="http://opendarwin.org"
+SRC_URI="http://darwinsource.opendarwin.org/tarballs/apsl/diskdev_cmds-${MY_PV}.tar.gz
+ mirror://gentoo/diskdev_cmds-${PV}.patch.bz2"
+LICENSE="APSL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86"
+IUSE=""
+DEPEND="dev-libs/openssl"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${WORKDIR}"/diskdev_cmds-${PV}.patch
+ epatch "${FILESDIR}"/diskdev_cmds-respect-cflags.patch
+}
+
+src_compile() {
+ emake -f Makefile.lnx || die "emake failed"
+}
+
+src_install() {
+ into /
+ dosbin fsck_hfs.tproj/fsck_hfs || die "dosbin fsck failed"
+ dosbin newfs_hfs.tproj/newfs_hfs || die "dosbin newfs failed"
+ dosym /sbin/newfs_hfs /sbin/mkfs.hfs || die "dosym mkfs.hfs failed"
+ dosym /sbin/newfs_hfs /sbin/mkfs.hfsplus || die "dosym mkfs.hfsplus failed"
+ dosym /sbin/fsck_hfs /sbin/fsck.hfs || die "dosym fsck.hfs failed"
+ dosym /sbin/fsck_hfs /sbin/fsck.hfsplus || die "dosym fsck.hfsplus failed"
+ doman newfs_hfs.tproj/newfs_hfs.8 || die "doman newfs_hfs.8 failed"
+ newman newfs_hfs.tproj/newfs_hfs.8 mkfs.hfs.8 || die "doman mkfs.hfs.8 failed"
+ newman newfs_hfs.tproj/newfs_hfs.8 mkfs.hfsplus.8 || die "doman mkfs.hfsplus.8 failed"
+ doman fsck_hfs.tproj/fsck_hfs.8 || die "doman fsck_hfs.8 failed"
+ newman fsck_hfs.tproj/fsck_hfs.8 fsck.hfs.8 || die "doman fsck.hfs.8 failed"
+ newman fsck_hfs.tproj/fsck_hfs.8 fsck.hfsplus.8 || die "doman fsck.hfsplus.8 failed"
+}
diff --git a/sys-fs/diskdev_cmds/files/diskdev_cmds-respect-cflags.patch b/sys-fs/diskdev_cmds/files/diskdev_cmds-respect-cflags.patch
new file mode 100644
index 000000000000..3f939f61163a
--- /dev/null
+++ b/sys-fs/diskdev_cmds/files/diskdev_cmds-respect-cflags.patch
@@ -0,0 +1,9 @@
+--- Makefile.lnx.bak 2009-07-22 11:58:10.000000000 -0400
++++ Makefile.lnx 2009-07-22 11:57:37.000000000 -0400
+@@ -1,5 +1,5 @@
+ CC := gcc
+-CFLAGS := -g3 -Wall -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1
++CFLAGS += -Wall -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1
+ SUBDIRS := newfs_hfs.tproj fsck_hfs.tproj
+
+ all clean:
diff --git a/sys-fs/diskdev_cmds/metadata.xml b/sys-fs/diskdev_cmds/metadata.xml
new file mode 100644
index 000000000000..2b0a4b9725c3
--- /dev/null
+++ b/sys-fs/diskdev_cmds/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+<email>ppc@gentoo.org</email>
+<name>Gentoo Linux PowerPC Development</name>
+</maintainer>
+<longdescription lang="en">
+HFS+ Filesytstem tools (mkfs.hfsplus and fsck.hfsplus), ported from Apple's
+versions.
+</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/dislocker/Manifest b/sys-fs/dislocker/Manifest
new file mode 100644
index 000000000000..25f775e3e6e5
--- /dev/null
+++ b/sys-fs/dislocker/Manifest
@@ -0,0 +1,5 @@
+DIST dislocker-0.7.1.tar.gz 103194 SHA256 742fb5c1b3ff540368ced54c29eae8b488ae5a5fcaca092947e17c2d358a6762 SHA512 8852ba3e363fdea992eebecfe1e4dad2b85404f57c57ce6b2937a9859d03cfa88d969926c9e11e6d22596c6d96805b7d1737893ae2c5a957448ab26708bce226 WHIRLPOOL 1f8b8769cac08be4df70c953f967c8408d44b34ebc8e7b0b09e400b827e01234b467990ca0f2cee80518cdea63fbf40cadc75faf4caacd723226a27ee6978fe6
+EBUILD dislocker-0.7.1-r1.ebuild 1190 SHA256 1ae95bb6c27c7c95448bb57acc1bf04dfe888727fa289d745585a929c99e5ec9 SHA512 8a3507ab0641fb0dbbcbfd968e2c9a45531533485a0d38d079975bdcaec1e4ec3228373e6f1600e5195b944534c342015ec684b4815b6adc5c8dd4b04a2f00dd WHIRLPOOL 70708857a6157dd94293af1835b86ed2e183477d2d3b39fc0cfd19bbb3ad7cf7376622b6871eb0b2d5f2158829e342a4c1168f21b022fdd687cb86a25becc9ae
+EBUILD dislocker-9999.ebuild 1190 SHA256 1ae95bb6c27c7c95448bb57acc1bf04dfe888727fa289d745585a929c99e5ec9 SHA512 8a3507ab0641fb0dbbcbfd968e2c9a45531533485a0d38d079975bdcaec1e4ec3228373e6f1600e5195b944534c342015ec684b4815b6adc5c8dd4b04a2f00dd WHIRLPOOL 70708857a6157dd94293af1835b86ed2e183477d2d3b39fc0cfd19bbb3ad7cf7376622b6871eb0b2d5f2158829e342a4c1168f21b022fdd687cb86a25becc9ae
+MISC ChangeLog 1235 SHA256 9a3cab004a19b94da391c99f1b630204d4d0c091636146376a3cf25ce4e3c535 SHA512 5ea9ed0c0cc776369d72f0cabb456f7ba76764ba7f6eeaf17d3969f2ccb13a2d34d293248f02ef5c4016d1ffad44e517742d03cf5389b91b185abc064d6055a0 WHIRLPOOL cf133bf6ae4fc9e8135aafa4712da88a6feb67ac66da0b26ff9f2498a92b6cabb0c46cd66709f41b3cb62a4225f003d2021722bc6a406b2fee65fad9631681d7
+MISC metadata.xml 343 SHA256 ea2f5b27ddce5b54eafbbcded86777bca6b4fe11c64fc8a2811b490b9129ab2c SHA512 479da4294232d9c49530e2ed2c936c824c697b08d722309addb64bc77dd083365b0d4ce063dd331e4dbd13a0185885dca7bf5d62a6a09dfc6e7a38fd7e25f448 WHIRLPOOL d588216ea963e9caf2d03adf2ebeb48135ebb4f082f1a9c32ef9d656506c25803e295f1b18be37a7cca84ecc21142e0ed897ee993c22412041a95b9d6640774e
diff --git a/sys-fs/dislocker/dislocker-0.7.1-r1.ebuild b/sys-fs/dislocker/dislocker-0.7.1-r1.ebuild
new file mode 100644
index 000000000000..f0bc602be4d9
--- /dev/null
+++ b/sys-fs/dislocker/dislocker-0.7.1-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils cmake-utils flag-o-matic
+
+DESCRIPTION="Dislocker is used to read BitLocker encrypted partitions."
+HOMEPAGE="https://github.com/Aorimn/dislocker"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/Aorimn/dislocker.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/Aorimn/dislocker/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="ruby"
+
+DEPEND="sys-fs/fuse:*
+ net-libs/mbedtls
+ ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.3 ) )"
+
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+# We either need to change Werror to Wno-error or remove the multiple declarations of FORTIFY_SOURCE
+# sed 's:Werror:Wno-error:g' -i "${S}/src/CMakeLists.txt" || die
+ sed 's:-D_FORTIFY_SOURCE=2::g' -i "${S}/src/CMakeLists.txt" || die
+
+ sed 's:\.\./man:'../../${P}/man':g' -i "${S}/src/CMakeLists.txt" || die
+}
+
+src_configure() {
+ mycmakeargs=(
+ $(cmake-utils_use_find_package ruby Ruby)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ find "${S}/man/linux" -name '*.1' -exec doman '{}' +
+ cmake-utils_src_install
+}
diff --git a/sys-fs/dislocker/dislocker-9999.ebuild b/sys-fs/dislocker/dislocker-9999.ebuild
new file mode 100644
index 000000000000..f0bc602be4d9
--- /dev/null
+++ b/sys-fs/dislocker/dislocker-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils cmake-utils flag-o-matic
+
+DESCRIPTION="Dislocker is used to read BitLocker encrypted partitions."
+HOMEPAGE="https://github.com/Aorimn/dislocker"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/Aorimn/dislocker.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/Aorimn/dislocker/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="ruby"
+
+DEPEND="sys-fs/fuse:*
+ net-libs/mbedtls
+ ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.3 ) )"
+
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+# We either need to change Werror to Wno-error or remove the multiple declarations of FORTIFY_SOURCE
+# sed 's:Werror:Wno-error:g' -i "${S}/src/CMakeLists.txt" || die
+ sed 's:-D_FORTIFY_SOURCE=2::g' -i "${S}/src/CMakeLists.txt" || die
+
+ sed 's:\.\./man:'../../${P}/man':g' -i "${S}/src/CMakeLists.txt" || die
+}
+
+src_configure() {
+ mycmakeargs=(
+ $(cmake-utils_use_find_package ruby Ruby)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ find "${S}/man/linux" -name '*.1' -exec doman '{}' +
+ cmake-utils_src_install
+}
diff --git a/sys-fs/dislocker/metadata.xml b/sys-fs/dislocker/metadata.xml
new file mode 100644
index 000000000000..9cc82876f8af
--- /dev/null
+++ b/sys-fs/dislocker/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>nativemad@gentoo.org</email>
+ <name>Andreas Schuerch</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">Aorimn/dislocker</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/dmg2img/Manifest b/sys-fs/dmg2img/Manifest
new file mode 100644
index 000000000000..5811b37d8681
--- /dev/null
+++ b/sys-fs/dmg2img/Manifest
@@ -0,0 +1,9 @@
+DIST dmg2img-1.6.5.tar.gz 23442 SHA256 400a16cbe5cb2bf8a9eec4a43ef3546e0329f248bbd2a79f6d9a1ebc0b503308 SHA512 31528a23986848a8ab319768a8254db6b0035324cbac8328ef865b98ab2cddfd606da19a27202c4ef53cdc5dda75aca489859f82115a5dde6fe9b1f20cd6bd46 WHIRLPOOL bbf35c53b42f821603610a33faa1868b2c4d66e76347d39ba2069662c7ea65d3b5aacfa6f2d09e5e602b5fb47e68d3914cd8cab8d6009aba2b6f8fff40f5077d
+DIST dmg2img-1.6.6.tar.gz 23115 SHA256 9ba6384a7fb8cc852efa87df5e2b4e1d493dc5bff1a77daf2435fa00301adc85 SHA512 3bfea079f2bec24a56146314fe9135f92dae934e01edbc8435b0aff88d17ff8c3626e533435fad41ccee5d75a6262230ae87c75147744a1bf6625b656fc75713 WHIRLPOOL 5510de560bb44117dc9ad4ba14e9ff8bea6e4c7798f82aa9920dae947df2da6137c06b5887df664a68e06d5a241b786c8b67b92c6def7b162281cb1932f4e3c7
+DIST dmg2img-1.6.7.tar.gz 23238 SHA256 02aea6d05c5b810074913b954296ddffaa43497ed720ac0a671da4791ec4d018 SHA512 4c42841c5cdbf868b6038648a6c83e78d4b7f2010f7065d7b3f4c2c04d13af9489716c1dfa867aff5f3c3b3eef96dc3fc0610eff13fec139265f37f468e339e6 WHIRLPOOL 160ba33e29884d3c3da6dfcb130b3d34cd114eafbd8157541ebd28e0bc2720cbe3ec14f9e1f43d3e0d6d91e1bcdc033f9030bbf5a52ffbc9cfd7c8c16294979f
+EBUILD dmg2img-1.6.5.ebuild 660 SHA256 3f46b12f98d9cc4846f385b132f81af007267033e35e0e0422a4d291072a1b95 SHA512 24b8a380d574417196b895c264d51f2806666911e1ccb20cf3a773e216935ac5e93f0615eaf5864213439c1f480b855cc3c714c83d6c47e876402451b321b75a WHIRLPOOL 2d8bf90cfcf642ae2383ff417deb3eabaaac37e8b9b50312828b9ebfd2ab6eecd4745de47e8b54e1fdc043260c922078c6d754fbdba6594ac448d15e2519d744
+EBUILD dmg2img-1.6.6.ebuild 663 SHA256 4d08188bdbd30d220e07f694c62540893495d0f8b843689e6699f336caf924a7 SHA512 ed1bff42a9b43b941685e88d03144743a20ce5ef00720eff5d0ee2159185dda5101ef40b1755e8ee9c7bb0c0ab727b00ca14eb95290fc3b5ea25856c97895f8d WHIRLPOOL 2e6066f9ca933272f5022b238851ac85559be246eff23ed397ff7ff6cbeabcc2c208626e253275b073f8566ce2a679e7966b70988187fb1f8eeb5b040592454f
+EBUILD dmg2img-1.6.7.ebuild 663 SHA256 4d08188bdbd30d220e07f694c62540893495d0f8b843689e6699f336caf924a7 SHA512 ed1bff42a9b43b941685e88d03144743a20ce5ef00720eff5d0ee2159185dda5101ef40b1755e8ee9c7bb0c0ab727b00ca14eb95290fc3b5ea25856c97895f8d WHIRLPOOL 2e6066f9ca933272f5022b238851ac85559be246eff23ed397ff7ff6cbeabcc2c208626e253275b073f8566ce2a679e7966b70988187fb1f8eeb5b040592454f
+MISC ChangeLog 3416 SHA256 89188eb86f7df65700c5cb88f427363dc032be84632164f85e0c87a900277d9d SHA512 1b7de00ca0ba3b7e37898bc7c625ec44ecbd4d7d9ab96167fc6b1c811bcf4bfcd27dd88fda4954e4ab86a3a4dcf6f3d9cd44b11e32b6f241ce043b5a403fee91 WHIRLPOOL 78a0a7f6ee50beddd858560b5eb8073e84c23fd143ca43e8c72b31b1200fde2baae38e6dc560d4d354011f19b2936b085b8b650d8a7c1592d7fbb9b7058d1745
+MISC ChangeLog-2015 1404 SHA256 242008bf9e36e308ccf2d8cedfa28bf636bb128e0a0fde0b89b95e2f9b1d8b26 SHA512 337670442e85de97dd68781703f641922388b0d542e8d5e58439df01c02b679c21f7194ecc1f4a18528cb6fc2e02d35a06259532d7b1a54f028c128228666a66 WHIRLPOOL 28bb24122c93f5875270e1ca41b318c14fa643d72917a46311d713f9c90041f5ffb99f0b5380f782c606ec4971d2526ff3804c9dce829612b62642d3c7e5a624
+MISC metadata.xml 446 SHA256 d6f4d484bc453796bda647b741996e435452a3448f8d40430fa3f5611a570bcf SHA512 412c28e15abe2581fa29247d58b239a140171b018bcdfd5b437cb1991239eff33ce4bee9ecb14dada6bf74105f13ae230dc6dc46e1906952b81cb7491d3e9449 WHIRLPOOL dd4ca48869265914631b75571d965a0db5b44d177fd22ecf3c46f3f2466ddbd597586366abc19bd70a7d58287e8d2d4f617e177d43d1c665cd22610616cc5148
diff --git a/sys-fs/dmg2img/dmg2img-1.6.5.ebuild b/sys-fs/dmg2img/dmg2img-1.6.5.ebuild
new file mode 100644
index 000000000000..914a2e834b4b
--- /dev/null
+++ b/sys-fs/dmg2img/dmg2img-1.6.5.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+inherit toolchain-funcs
+
+DESCRIPTION="Converts Apple DMG files to standard HFS+ images"
+HOMEPAGE="http://vu1tur.eu.org/tools"
+SRC_URI="http://vu1tur.eu.org/tools/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/openssl
+ app-arch/bzip2
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ sys-apps/sed"
+
+src_prepare() {
+ sed -i -e 's:-s:$(LDFLAGS):g' Makefile || die "sed failed"
+}
+
+src_compile() {
+ tc-export CC
+ emake CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin dmg2img vfdecrypt
+ dodoc README
+ doman vfdecrypt.1
+}
diff --git a/sys-fs/dmg2img/dmg2img-1.6.6.ebuild b/sys-fs/dmg2img/dmg2img-1.6.6.ebuild
new file mode 100644
index 000000000000..a212ddf78d63
--- /dev/null
+++ b/sys-fs/dmg2img/dmg2img-1.6.6.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit toolchain-funcs
+
+DESCRIPTION="Converts Apple DMG files to standard HFS+ images"
+HOMEPAGE="http://vu1tur.eu.org/tools"
+SRC_URI="http://vu1tur.eu.org/tools/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/openssl:0=
+ app-arch/bzip2
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ sys-apps/sed"
+
+src_prepare() {
+ sed -i -e 's:-s:$(LDFLAGS):g' Makefile || die "sed failed"
+}
+
+src_compile() {
+ tc-export CC
+ emake CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin dmg2img vfdecrypt
+ dodoc README
+ doman vfdecrypt.1
+}
diff --git a/sys-fs/dmg2img/dmg2img-1.6.7.ebuild b/sys-fs/dmg2img/dmg2img-1.6.7.ebuild
new file mode 100644
index 000000000000..a212ddf78d63
--- /dev/null
+++ b/sys-fs/dmg2img/dmg2img-1.6.7.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit toolchain-funcs
+
+DESCRIPTION="Converts Apple DMG files to standard HFS+ images"
+HOMEPAGE="http://vu1tur.eu.org/tools"
+SRC_URI="http://vu1tur.eu.org/tools/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/openssl:0=
+ app-arch/bzip2
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ sys-apps/sed"
+
+src_prepare() {
+ sed -i -e 's:-s:$(LDFLAGS):g' Makefile || die "sed failed"
+}
+
+src_compile() {
+ tc-export CC
+ emake CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin dmg2img vfdecrypt
+ dodoc README
+ doman vfdecrypt.1
+}
diff --git a/sys-fs/dmg2img/metadata.xml b/sys-fs/dmg2img/metadata.xml
new file mode 100644
index 000000000000..ddd4434d2b60
--- /dev/null
+++ b/sys-fs/dmg2img/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<longdescription lang="en">
+ dmg2img is an application that can convert .dmg files, popular on Mac OSX
+ systems, to HFS+ disk images, suitable for mounting on Linux systems.
+</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/dmraid/Manifest b/sys-fs/dmraid/Manifest
new file mode 100644
index 000000000000..460c6bfbe0dc
--- /dev/null
+++ b/sys-fs/dmraid/Manifest
@@ -0,0 +1,9 @@
+AUX dmraid-1.0.0_rc16-parallel-make.patch 594 SHA256 f8a3d665822fa652d839af70fcef800d59c296891144a42603a473d6d9a69fc4 SHA512 deb57258ab2aacd8e9b17e8430ba6f7453930280ac2990fe33e5f6cf0ef572591c30385ec3f0a23b335ae004c87b09d5fb2f1fe821f67acd79fde7e0a4d32c7c WHIRLPOOL d7f32dd53f6527c354a7dfa4ec95966819d3e4414c63978a5b3534da8581b86cdac3ca71021ba7ef19141cc38569c281be52882b054c3131439c24e156145d0d
+AUX dmraid-1.0.0_rc16-return-all-sets.patch 283 SHA256 a45054960405e41ec81bfe113adbf273d5c3292897233d58500ea12305c3c7cc SHA512 28da140287f7ed8625fc6a7131948b76898df8fbbdce9be278852ddc8f466a8e6352c7d4e1e96aa51a3737895e12c0607501bc657a43f1ab54d879d5510c310e WHIRLPOOL 061bf2a9d789c0a0e0385b28345889c380ba3d824351639a9c2c84ab193956f62e61d4c04116a9128783d653118f7598a65071109b9779749a295a5226e3c0ea
+AUX dmraid-1.0.0_rc16-static-build-fixes.patch 3840 SHA256 ba062ea97d9193f3bf567e031077393890349f01dad3c5864556e82d4d44f767 SHA512 ff2aaebec2be1ace40377a4bcd91c802c190ac4047643478d6f99e3023cf69b4a5e8230519ce2f3febe5d6419a54557184739bcbeaa08047354ca93f27e4ec67 WHIRLPOOL ef57ad27eb7919d66ac46353b19a00405a0937505f960d7952b65d90137b0ae0d8ea12d13df4461c8e737bae620e736b5d0c2bf41a91fe3eb35850d2a804ca89
+AUX dmraid-1.0.0_rc16-undo-p-rename.patch 531 SHA256 5eb8d6b268249fe3ef9e184376dfc04a2b8cffb4204c41d69480f3ae09caa670 SHA512 b5b93d49e716c585284dfd89fe4651fd5bb6921196a053797aeec9cf5654f11da7b2ed1ad93f2df15fd3ef47c95efd67aeecc196fcfd3feb22f7903ad103a8c6 WHIRLPOOL 0343c2619499c43478438081c751c2e23133d39a45ef12e2fb6664babf6e4d1e385f07714cc487603e8b0962f2a0314bb56bc0df81c179e51d7013df94222102
+DIST dmraid-1.0.0.rc16-3.tar.bz2 232743 SHA256 93421bd169d71ff5e7d2db95b62b030bfa205a12010b6468dcdef80337d6fbd8 SHA512 7c45e5117adc52fc2094b1b2bad4f4c518a46317a2196611966d72085ba3587c4ac8d1080f9d934888c01788f2b2d3d621c6f0d3e2a023c0fb1f9f3fa7fc127e WHIRLPOOL 87915ea0013766da8a9722b437bfe146b4b2c7560a7814ac6caab92054ddc3b4b59ceb4d413609d5eaab92b5cee67886ade7924455f1dba19f1b8dabc25d3498
+EBUILD dmraid-1.0.0_rc16-r3.ebuild 3267 SHA256 e732f3dc82c073e11d4649e5dba8af889b48817a9af9543240f05a674d03b703 SHA512 eca54618444b7e4afa2e69dcb134adcaaaa9a370d43623cc008b6b03e11683839aed8ad2335f60c70b69094e91bdc4eca9f346962d11102ac607c97e06906172 WHIRLPOOL b1eee57323acea7652f7d16aa48a41ea70c39b2c9afa44556a584f0e9617f44c5c8aa1f6e04828358d6b038e3bdc4368f533b37c867995bb51c10bac1d8a71ee
+MISC ChangeLog 3638 SHA256 f646d10f1cfeb805b0413d0b4ac04dfb9a6a31bc9bebf2b8d03502c300b83d92 SHA512 9a83079a5759336c89b176655f6fe16da8f6a553f3378d858bfb56e7b0ab0b59692e9675bfb01a47996d3516b5b6a46e127abc8b48260fd79e76ba0497a93e45 WHIRLPOOL ca4a7971889f3f40bc3993962188a528ac12ef33a10846bc2acdae18a79771991b270917cd29bccdd101f68f2c035e8c62b9d9f53c5fbf925ed216a56927dcca
+MISC ChangeLog-2015 7648 SHA256 497c4f60643e4d5c0598388fcb2d086856f9f58871ffcd4063481d93dca01a54 SHA512 9e8fb9a886cd12645687b8c87ea7800c7ad2b52e9f4dc825bfd33dfe98056fd152dd79480edb1d7402b23cef3490851b0d882e5e43202647511d8130f68296ab WHIRLPOOL 66c6e8c4b98f4bf66d32b8f52f8ff008f24610f77db680be97a88430df109e3f278941aed48d3ce3a2c4267af949f6f8def2055054465fea7b2e9e6344a8b49f
+MISC metadata.xml 769 SHA256 c5aecb2733e924a3dbcfbc723293b83f385a194104099dbacde155e3de2eb593 SHA512 e716dad80405dae942af5ded092214854432f43a5c622e8ce41f36af3f514c9425de401da278e2b0a2abc96103e4894896ff539f5665e5c48ec2640e57d11e26 WHIRLPOOL d99b191a2565a197d3a477f48fa80aea42ae848e236b6f3d3c63059f18e88378da9a61a6770573227cecf894a677b6d972e1b8cb0af286fec542d35cc4a84953
diff --git a/sys-fs/dmraid/dmraid-1.0.0_rc16-r3.ebuild b/sys-fs/dmraid/dmraid-1.0.0_rc16-r3.ebuild
new file mode 100644
index 000000000000..8c99b3b48310
--- /dev/null
+++ b/sys-fs/dmraid/dmraid-1.0.0_rc16-r3.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools linux-info flag-o-matic eutils
+
+MY_PV=${PV/_/.}-3
+
+DESCRIPTION="Device-mapper RAID tool and library"
+HOMEPAGE="https://people.redhat.com/~heinzm/sw/dmraid/"
+SRC_URI="https://people.redhat.com/~heinzm/sw/dmraid/src/${PN}-${MY_PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86"
+IUSE="dietlibc intel_led klibc led mini static"
+REQUIRED_USE="klibc? ( !dietlibc )"
+
+RDEPEND=">=sys-fs/lvm2-2.02.45
+ klibc? ( dev-libs/klibc )
+ dietlibc? ( dev-libs/dietlibc )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ static? ( sys-fs/lvm2[static-libs] )"
+
+S=${WORKDIR}/${PN}/${MY_PV}/${PN}
+
+pkg_setup() {
+ if kernel_is lt 2 6 ; then
+ ewarn "You are using a kernel < 2.6"
+ ewarn "DMraid uses recently introduced Device-Mapper features."
+ ewarn "These might be unavailable in the kernel you are running now."
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-undo-p-rename.patch \
+ "${FILESDIR}"/${P}-return-all-sets.patch \
+ "${FILESDIR}"/${P}-static-build-fixes.patch \
+ "${FILESDIR}"/${P}-parallel-make.patch
+ # pkg_check_modules is not in aclocal.m4 by default, and eautoreconf doesnt add it
+ einfo "Appending pkg.m4 from system to aclocal.m4"
+ cat "${ROOT}"/usr/share/aclocal/pkg.m4 >>"${S}"/aclocal.m4 || die "Could not append pkg.m4"
+ epatch_user
+ eautoreconf
+
+ einfo "Creating prepatched source archive for use with Genkernel"
+ # archive the patched source for use with genkernel
+ cd "${WORKDIR}" || die
+ mkdir -p "tmp/${PN}" || die
+ cp -a "${PN}/${MY_PV}/${PN}" "tmp/${PN}" || die
+ mv "tmp/${PN}/${PN}" "tmp/${PN}/${MY_PV}" || die
+ cd tmp || die
+ tar -jcf ${PN}-${MY_PV}-prepatched.tar.bz2 ${PN} || die
+ mv ${PN}-${MY_PV}-prepatched.tar.bz2 .. || die
+}
+
+src_configure() {
+ econf --with-usrlibdir='${prefix}'/$(get_libdir) \
+ $(use_enable static static_link) \
+ $(use_enable mini) \
+ $(use_enable led) \
+ $(use_enable intel_led) \
+ $(use_enable klibc) \
+ $(use_enable dietlibc)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc CHANGELOG README TODO KNOWN_BUGS doc/*
+ insinto /usr/share/${PN}
+ doins "${WORKDIR}"/${PN}-${MY_PV}-prepatched.tar.bz2
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "For booting Gentoo from Device-Mapper RAID you can use a Genkernel initramfs."
+ elog
+ elog "Genkernel will generate the kernel and the initramfs with a statically "
+ elog "linked dmraid binary (its own version which may not be the same as this version):"
+ elog "\t emerge -av sys-kernel/genkernel"
+ elog "\t genkernel --dmraid all"
+ fi
+ # skip this message if this revision has already been emerged
+ if [[ " ${REPLACING_VERSIONS} " != *\ ${PVR}\ * ]]; then
+ elog
+ elog "A pre-patched distfile of this version of DMRAID has been installed at"
+ elog "/usr/share/${PN}/${PN}-${MY_PV}-prepatched.tar.bz2 , to support using it within a"
+ elog "Genkernel initramfs."
+ elog
+ fi
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "If you would rather use this version of DMRAID with Genkernel, update the following"
+ elog "in /etc/genkernel.conf:"
+ elog "\t DMRAID_VER=\"${MY_PV}\""
+ elog "\t DMRAID_SRCTAR=\"/usr/share/${PN}/${PN}-${MY_PV}-prepatched.tar.bz2\""
+ elog
+ fi
+}
diff --git a/sys-fs/dmraid/files/dmraid-1.0.0_rc16-parallel-make.patch b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-parallel-make.patch
new file mode 100644
index 000000000000..8c89374588fb
--- /dev/null
+++ b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-parallel-make.patch
@@ -0,0 +1,11 @@
+--- dmraid/1.0.0.rc16-3/dmraid/lib/Makefile.in.orig 2016-09-20 12:54:09.416628404 +0200
++++ dmraid/1.0.0.rc16-3/dmraid/lib/Makefile.in 2016-09-20 12:55:06.343698229 +0200
+@@ -79,7 +79,7 @@
+ -Wl,-soname,$(notdir $@).$(DMRAID_LIB_MAJOR) \
+ $(DEVMAPPEREVENT_LIBS) $(DEVMAPPER_LIBS) $(DL_LIBS) $(LIBS)
+
+-$(LIB_EVENTS_SHARED): $(OBJECTS2)
++$(LIB_EVENTS_SHARED): $(OBJECTS2) $(LIB_SHARED)
+ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(OBJECTS2) \
+ -shared -Wl,--discard-all -Wl,--no-undefined -Wl,-soname,$(notdir $@) \
+ $(LIB_SHARED) $(DEVMAPPEREVENT_LIBS) $(DEVMAPPER_LIBS) $(PTHREAD_LIBS) $(LIBS)
diff --git a/sys-fs/dmraid/files/dmraid-1.0.0_rc16-return-all-sets.patch b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-return-all-sets.patch
new file mode 100644
index 000000000000..1e6c71322498
--- /dev/null
+++ b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-return-all-sets.patch
@@ -0,0 +1,11 @@
+--- a/1.0.0.rc16/lib/metadata/metadata.c 2009-11-27 21:57:50.182129589 -0800
++++ b/1.0.0.rc16/lib/metadata/metadata.c 2009-11-27 21:57:58.950964293 -0800
+@@ -839,7 +839,7 @@
+ */
+ if (T_GROUP(rs)) {
+ _discover_partitions(lc, &rs->sets);
+- return;
++ continue;
+ }
+
+ /*
diff --git a/sys-fs/dmraid/files/dmraid-1.0.0_rc16-static-build-fixes.patch b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-static-build-fixes.patch
new file mode 100644
index 000000000000..298811701e4e
--- /dev/null
+++ b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-static-build-fixes.patch
@@ -0,0 +1,110 @@
+--- tools/Makefile.in.old 2010-05-31 07:18:31.000000000 -0400
++++ tools/Makefile.in 2010-12-13 13:15:22.000000000 -0500
+@@ -60,17 +60,23 @@
+ ifeq ("@KLIBC@", "no")
+ ifeq ("@STATIC_LINK@", "no")
+ LDFLAGS += -rdynamic
++ MYLIBOBJ=$(top_builddir)/lib/libdmraid.so
+ else
+ LDFLAGS += -static
++ MYLIBOBJ=$(top_builddir)/lib/libdmraid.a
++ DMRAIDLIBS += \
++ $(DEVMAPPEREVENT_LIBS) \
++ $(DEVMAPPER_LIBS) \
++ $(DL_LIBS)
+ endif
+ endif
+
+ .PHONY: install_dmraid_tools
+
+-dmraid: $(OBJECTS) $(top_builddir)/lib/libdmraid.a
++dmraid: $(OBJECTS) $(MYLIBOBJ)
+ $(CC) -o $@ $(OBJECTS) $(LDFLAGS) -L$(top_builddir)/lib $(DMRAIDLIBS) $(LIBS)
+
+-dmevent_tool: $(OBJECTS2) $(top_builddir)/lib/libdmraid.a
++dmevent_tool: $(OBJECTS2) $(MYLIBOBJ)
+ $(CC) -o $@ $(OBJECTS2) $(INCLUDES) $(LDFLAGS) -L$(top_builddir)/lib \
+ $(DMEVENTTOOLLIBS) $(DMRAIDLIBS) $(LIBS)
+
+--- lib/Makefile.in.old 2010-10-27 07:31:46.000000000 -0400
++++ lib/Makefile.in 2010-12-13 13:04:16.000000000 -0500
+@@ -60,11 +60,11 @@
+ USRLIB_RELPATH = $(shell echo $(abspath $(usrlibdir) $(libdir)) | \
+ $(AWK) -f $(top_srcdir)/tools/relpath.awk)
+
+-TARGETS = $(LIB_STATIC)
++TARGETS = $(LIB_STATIC) $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+
+ ifeq ("@KLIBC@", "no")
+ ifeq ("@STATIC_LINK@", "no")
+- TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
++ TARGETS = $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+ endif
+ endif
+
+--- configure.in 2010-05-31 07:18:30.000000000 -0400
++++ configure.in.new 2010-12-07 13:30:40.000000000 -0500
+@@ -155,6 +155,15 @@
+ Default is dynamic linking]),
+ [STATIC_LINK=$enableval], [STATIC_LINK=no])
+
++if test "x$STATIC_LINK" != "xno"; then
++ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
++ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
++ fi
++ PKG_CONFIG="${PKG_CONFIG} --static"
++ ac_cv_env_PKG_CONFIG_set=set
++fi
++PKG_PROG_PKG_CONFIG([0.2])
++
+ dnl Enables shared libdmraid
+ AC_ARG_ENABLE(shared_lib,
+ AC_HELP_STRING([--enable-shared_lib], [Use this to generate shared
+@@ -248,23 +257,31 @@
+ AC_HELP_STRING([--with-devmapper-prefix=PFX],
+ [Where is devmapper library installed]),
+ [DEVMAPPER_LIBS="-L$withval/lib"
+- DEVMAPPER_CFLAGS="-I$withval/include"],
++ DEVMAPPER_CFLAGS="-I$withval/include"
++ dmprefix=$withval],
+ [DEVMAPPER_LIBS=
+- DEVMAPPER_CFLAGS=])
+-save_LDFLAGS=$LDFLAGS
+-save_CPPFLAGS=$CPPFLAGS
+-LDFLAGS="$LDFLAGS $DEVMAPPER_LIBS"
+-CPPFLAGS="$CPPFLAGS $DEVMAPPER_CFLAGS"
+-AC_CHECK_LIB(devmapper-event, dm_event_handler_create,
+- [DEVMAPPEREVENT_LIBS="$DEVMAPPER_LIBS -ldevmapper-event"],
+- [AC_MSG_ERROR([device-mapper-event library is either missing or is too old and badly linked])])
+-AC_CHECK_LIB(devmapper, dm_task_set_name,
+- [DEVMAPPER_LIBS="$DEVMAPPER_LIBS -ldevmapper"],
+- [AC_MSG_ERROR([device-mapper library is missing])])
+-AC_CHECK_HEADERS(libdevmapper.h libdevmapper-event.h,,
+- [AC_MSG_ERROR([Missing headers device-mapper headers])])
+-CPPFLAGS=$save_CPPFLAGS
+-LDFLAGS=$save_LDFLAGS
++ DEVMAPPER_CFLAGS=
++ dmprefix=no])
++if test "x$dmprefix" = xno ; then
++ PKG_CHECK_MODULES([DEVMAPPER],[devmapper],
++ [PKG_CHECK_MODULES([DEVMAPPEREVENT],[devmapper-event])
++ ])
++else
++ save_LDFLAGS=$LDFLAGS
++ save_CPPFLAGS=$CPPFLAGS
++ LDFLAGS="$LDFLAGS $DEVMAPPER_LIBS"
++ CPPFLAGS="$CPPFLAGS $DEVMAPPER_CFLAGS"
++ AC_CHECK_LIB(devmapper-event, dm_event_handler_create,
++ [DEVMAPPEREVENT_LIBS="$DEVMAPPER_LIBS -ldevmapper-event"],
++ [AC_MSG_ERROR([device-mapper-event library is either missing or is too old and badly linked])])
++ AC_CHECK_LIB(devmapper, dm_task_set_name,
++ [DEVMAPPER_LIBS="$DEVMAPPER_LIBS -ldevmapper"],
++ [AC_MSG_ERROR([device-mapper library is missing])])
++ AC_CHECK_HEADERS(libdevmapper.h libdevmapper-event.h,,
++ [AC_MSG_ERROR([Missing headers device-mapper headers])])
++ CPPFLAGS=$save_CPPFLAGS
++ LDFLAGS=$save_LDFLAGS
++fi
+
+ VERSION=$srcdir/tools/VERSION
+ DMRAID_LIB_MAJOR=$(cut -d. -f1 $VERSION) \ No newline at end of file
diff --git a/sys-fs/dmraid/files/dmraid-1.0.0_rc16-undo-p-rename.patch b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-undo-p-rename.patch
new file mode 100644
index 000000000000..6636b0563086
--- /dev/null
+++ b/sys-fs/dmraid/files/dmraid-1.0.0_rc16-undo-p-rename.patch
@@ -0,0 +1,13 @@
+Author: Giuseppe Iuculano <giuseppe@iuculano.it>
+Description: Removed "p" from device name. A proper upgrade script is needed before using it.
+--- a/1.0.0.rc15/lib/format/partition/dos.c
++++ b/1.0.0.rc15/lib/format/partition/dos.c
+@@ -31,7 +31,7 @@ _name(struct lib_context *lc, struct rai
+ {
+ const char *base = get_basename(lc, rd->di->path);
+
+- return type ? snprintf(str, len, "%s%s%u", base, OPT_STR_PARTCHAR(lc),
++ return type ? snprintf(str, len, "%s%u", base,
+ partition) : snprintf(str, len, "%s", base);
+ }
+
diff --git a/sys-fs/dmraid/metadata.xml b/sys-fs/dmraid/metadata.xml
new file mode 100644
index 000000000000..631bce7f7303
--- /dev/null
+++ b/sys-fs/dmraid/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <use>
+ <flag name="dietlibc">Compile against <pkg>dev-libs/dietlibc</pkg></flag>
+ <flag name="intel_led">Enable Intel LED support</flag>
+ <flag name="klibc">Compile against <pkg>dev-libs/klibc</pkg></flag>
+ <flag name="led">Enable LED support</flag>
+ <flag name="mini">Create a minimal binary suitable for early boot environments</flag>
+ </use>
+ <maintainer type="person">
+ <email>axs@gentoo.org</email>
+ <name>Ian Stakenvicius</name>
+ </maintainer>
+ <longdescription>This software discovers, activates, deactivates and displays properties of software RAID sets eg: ATARAID and contained DOS partitions.</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/dosfstools/Manifest b/sys-fs/dosfstools/Manifest
new file mode 100644
index 000000000000..72a32cb3332e
--- /dev/null
+++ b/sys-fs/dosfstools/Manifest
@@ -0,0 +1,8 @@
+AUX dosfstools-4.0-udevlibs.patch 1132 SHA256 5b06733ca41ef9def498cb75c1636f473b2624c6f8cb9334092cbb0c933b712a SHA512 0ae6fac866f4f634ed733279859c039f789d8420401217c039c06c995cd0be1fc697b24353135ee5c7abf04e4638c810726f0a310979251dd126e70c76739928 WHIRLPOOL d6bfebe17ec7741661409fe9e25a353059792d61f1a0698d01d5382062bcf8201833b1c6f642790adea1cd83c9cce45629002a8cf53eb7ac30cf09efe02e9b1e
+DIST dosfstools-4.0.tar.xz 157564 SHA256 9037738953559d1efe04fc5408b6846216cc0138f7f9d32de80b6ec3c35e7daf SHA512 81acf54dc87e1a8b436848b0c8c596c8b9a2f334c5b3e5496547feb243b70ef320a621a9b5afaa8b054f45a5c2184fae9ae167019f2f83aba417a10954a23a58 WHIRLPOOL eb6de4523ff2fbc7161bd75e0983148faf85d700489647ad8792abd4fb41503b85b2b2b6feb684a14d37c0c04d0307a5d885f5010f8ba386037a8e9eea512f85
+DIST dosfstools-4.1.tar.xz 172936 SHA256 e6b2aca70ccc3fe3687365009dd94a2e18e82b688ed4e260e04b7412471cc173 SHA512 e7a8aab34255d15e6865a7b031971352af1255134fab83389673bcc3cbd6ba255241bd2429070aeb4b927f8d7d73ccf1aeafe94566b133e88e7586897c317b78 WHIRLPOOL 6504926aab2d38b03ac70af06d969c1e9576fa6604939e57182d5e3acc692651080e5b5f5af8b2f9a1c27392a0c26a89da7ab02ad0f530dd38399d5a6393d115
+EBUILD dosfstools-4.0-r1.ebuild 1128 SHA256 3fad55ffdea24dacbb79e4def420d2a03921bdbf67584d2c59cca6ce452a40b5 SHA512 846bed50093c29ad3f47948f3b0a6538f9e05dffccf82131af97f0c6092a05e22b3e97b20c12fcaac3ce5c8d2f3e4544a80cbd3a66ad89b00df09dece366571d WHIRLPOOL d0d667a5933ef17ede2c4846f68654bdbc4ae16691b681d6d5d6ab09af314724840a7819a7b1697ee2c9c60b6e4827b8abd1ba9a946c2968ad2ae083dacb28a5
+EBUILD dosfstools-4.1.ebuild 1012 SHA256 504c4c3f01191d6d0ac584651e4027631a352620ab4f9926afb80bfa929953a8 SHA512 dd6dfb8251c5fa3adbd7cd5febcdbd2143d41eb5b68d4c9bd6444965ac2653a1baab730e3ab9a4aeb82ea82c370ea16c4370d9d19914383277acf5a78d166ceb WHIRLPOOL 27338c32a577df0d2e5d7f7f7bb602a17b45889e8de81fb22a4de953727b732fa61c73b0e8cb9d497186f65163e6b7f74e8026dd81a61b5efd907d5df6f9e8e2
+MISC ChangeLog 6980 SHA256 14b7a237967dbfe4a3b2543a8626c69959c2c350095cd78e6ea093b9d164f258 SHA512 a554c37c1bdf9747654b52aed35bec1bcedc7a42cc05cebf212240e90627658f435c01df31ee79d7f2d4ccaba9b937df6d08d3cf448fc7e92b985f9dfc9c5449 WHIRLPOOL 154f1cf5a1d4c2629d41743d6dcebe58336c0d0ccd7de8e67b119e07f15a572f809af049753435c8484789f6401a5779adbf501205520cecf528c1f3c67b39e2
+MISC ChangeLog-2015 20367 SHA256 458f538cee8d13aef12cda3eee347fe40b24687be906909f316c7bdb29d4e61d SHA512 df112e1d37d1e43e264082109220e81acc0298b44a32ece8dd9a452a5c1100f4d81f90c740b12827260ab2853abaf8ee01a4c07d3f28a0fa345122f425eee200 WHIRLPOOL 051b08bfcc74a948c6ba6930d43afc089621c5871b086cc3b54c5c25fb67dceeb56fcade5fe4e2d34404c2f95273d22afcbd9318da4e89414c9056d54a208cd8
+MISC metadata.xml 424 SHA256 821cc5f833e124bfe1fae683127cd2276a69f49870ea3a9748227311aae6cd74 SHA512 d82795b70fc583b8154a2c3b14b6565cff36924b91fb3888cd2b6c36d8036614be6d67a0ea0fc96f2fa4bfa5516675b8aa74571e578ad8d42c06cb9f503c565d WHIRLPOOL 2555be401c8c866a5182345476c65b148f7b8c2d43c380dcbe3b003258895e82dc49741d773ee5613c0e398a91698c16780261b2839ee566a1cc02eb349053a3
diff --git a/sys-fs/dosfstools/dosfstools-4.0-r1.ebuild b/sys-fs/dosfstools/dosfstools-4.0-r1.ebuild
new file mode 100644
index 000000000000..4e41940da926
--- /dev/null
+++ b/sys-fs/dosfstools/dosfstools-4.0-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit autotools toolchain-funcs flag-o-matic
+
+DESCRIPTION="DOS filesystem tools - provides mkdosfs, mkfs.msdos, mkfs.vfat"
+HOMEPAGE="https://github.com/dosfstools/dosfstools"
+SRC_URI="https://github.com/dosfstools/dosfstools/releases/download/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="compat +udev"
+
+CDEPEND="udev? ( virtual/libudev )"
+DEPEND="${CDEPEND}
+ udev? ( virtual/pkgconfig )"
+RDEPEND="${CDEPEND}"
+
+RESTRICT="test" # there is no test target #239071
+
+PATCHES=(
+ "${FILESDIR}/${P}-udevlibs.patch"
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ $(use_enable compat compat-symlinks) \
+ $(use_with udev)
+}
+
+src_install() {
+ default
+ if ! use compat; then
+ # Keep fsck -t vfat and mkfs -t vfat working, bug 584980.
+ dosym fsck.fat /usr/sbin/fsck.vfat
+ dosym mkfs.fat /usr/sbin/mkfs.vfat
+ fi
+}
diff --git a/sys-fs/dosfstools/dosfstools-4.1.ebuild b/sys-fs/dosfstools/dosfstools-4.1.ebuild
new file mode 100644
index 000000000000..36848b2cec2b
--- /dev/null
+++ b/sys-fs/dosfstools/dosfstools-4.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit toolchain-funcs flag-o-matic
+
+DESCRIPTION="DOS filesystem tools - provides mkdosfs, mkfs.msdos, mkfs.vfat"
+HOMEPAGE="https://github.com/dosfstools/dosfstools"
+SRC_URI="https://github.com/dosfstools/dosfstools/releases/download/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="compat test +udev"
+
+CDEPEND="udev? ( virtual/libudev )"
+DEPEND="${CDEPEND}
+ test? ( app-editors/vim-core )
+ udev? ( virtual/pkgconfig )"
+RDEPEND="${CDEPEND}"
+
+src_configure() {
+ econf \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ $(use_enable compat compat-symlinks) \
+ $(use_with udev)
+}
+
+src_install() {
+ default
+ if ! use compat; then
+ # Keep fsck -t vfat and mkfs -t vfat working, bug 584980.
+ dosym fsck.fat /usr/sbin/fsck.vfat
+ dosym mkfs.fat /usr/sbin/mkfs.vfat
+ fi
+}
diff --git a/sys-fs/dosfstools/files/dosfstools-4.0-udevlibs.patch b/sys-fs/dosfstools/files/dosfstools-4.0-udevlibs.patch
new file mode 100644
index 000000000000..23204770f770
--- /dev/null
+++ b/sys-fs/dosfstools/files/dosfstools-4.0-udevlibs.patch
@@ -0,0 +1,36 @@
+From 7538785afd751de509cd00740adf57fc6d730e33 Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Tue, 10 May 2016 09:47:57 +0200
+Subject: [PATCH] Don't link to udev via LDFLAGS. There's LDADD for such a
+ task.
+
+See also:
+https://www.gnu.org/software/automake/manual/html_node/Linking.html
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ src/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 3d22ba7..a15e6e7 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -34,12 +34,12 @@ mkfs_common_sources = device_info.c device_info.h \
+ mkfs_fat_SOURCES = mkfs.fat.c msdos_fs.h $(mkfs_common_sources)
+ mkfs_fat_CPPFLAGS = -I$(srcdir)/blkdev
+ mkfs_fat_CFLAGS = $(AM_CFLAGS) $(UDEV_CFLAGS)
+-mkfs_fat_LDFLAGS = $(UDEV_LIBS)
++mkfs_fat_LDADD = $(UDEV_LIBS)
+
+ testdevinfo_SOURCES = testdevinfo.c $(mkfs_common_sources)
+ testdevinfo_CPPFLAGS = -I$(srcdir)/blkdev
+ testdevinfo_CFLAGS = $(AM_CFLAGS) $(UDEV_CFLAGS)
+-testdevinfo_LDFLAGS = $(UDEV_LIBS)
++testdevinfo_LDADD = $(UDEV_LIBS)
+
+
+ if COMPAT_SYMLINKS
+--
+2.8.2
+
diff --git a/sys-fs/dosfstools/metadata.xml b/sys-fs/dosfstools/metadata.xml
new file mode 100644
index 000000000000..ffedbfb729c1
--- /dev/null
+++ b/sys-fs/dosfstools/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="github">dosfstools/dosfstools</remote-id>
+</upstream>
+<use>
+ <flag name="compat">Install symlinks for legacy names of the tools</flag>
+</use>
+</pkgmetadata>
diff --git a/sys-fs/duperemove/Manifest b/sys-fs/duperemove/Manifest
new file mode 100644
index 000000000000..a28c32708646
--- /dev/null
+++ b/sys-fs/duperemove/Manifest
@@ -0,0 +1,18 @@
+AUX duperemove-0.11_beta4-sysmacros.patch 259 SHA256 70767387439bbf7ed75c49860bcf1787bbf5c41bd188b976a9003fa8aca591f7 SHA512 59decd2c3d761faf683edf807454f3a00f4c71ce60302b2fb9e4ce7408f449659f714ec71488f4a69dd1d1a12bd1e5715f2d897e66fc947adf3cd1d70ac63790 WHIRLPOOL b838108089eed893fb57bd36e51813480e216d73b9a43a2820501daa46c5e9db5601a0d39ec279ef72810676df58cc4d4337cabeb730708c465053ba5a74a81d
+DIST duperemove-0.09.1.tar.gz 54978 SHA256 58d5635fa48bf88108dd833453638ad394427750f58b5ee0f3f1a8f1ec9c141b SHA512 49de99b64c8b0a71a47474480f33b07f2e6602c355621a9d0c6c92a3b7c2f2f5e6c03abc4e2459a1b96fa9543767c0abe48c5c63daf53962a3033a3b1984a037 WHIRLPOOL bed45acfd63f49f44832589964a305614649b6f41013295d1710d784f8dfeb34ff5721ae641790b97b70541222987135377913843b516850f62689ad66a18661
+DIST duperemove-0.09.2.tar.gz 55715 SHA256 2f7155bb916f4827a940c7ceb16c785b529320e621d3c7cbbd78639a06e65094 SHA512 acc1c16ed3faf08e54d4adfcc9f852d2c967981bc461ab45b0673f46f2e86109020d56e641da9764d46f2cc53cbcad5d2aa014357a819ae170375d784b2c08c5 WHIRLPOOL b5cd27237fadbe9aecf76abf63788bcbbabcc17625f1d3daeeee2b315b1a3b9b67fa9309703857e0c564d53fd1573983aa9a55c5b406a56855af7911375bc60b
+DIST duperemove-0.09.3.tar.gz 55722 SHA256 349b047cfb388f2d616695b4ecbfa091243f84024bd75fbbbd7b88fb498794a0 SHA512 fe2a19088ec9ac3dda35da8b9580ddcc1c3b49e60824f2c1bbf8c013756c060b4c9663d1977bb6622c4de19754fd4a1011cc09ef3c785c2b4b218e0c9fb15b87 WHIRLPOOL 022eba5fb6ad1a4c74a4843762e7ccc7f6ba8187adbd6eb1bbe0168482cdd57664d7f6d9b4715d36866a8d026786abcf1e77ec87530f46fbea59b1357d4c90a4
+DIST duperemove-0.09.4.tar.gz 55725 SHA256 9d4c7fe0fd7ae3acb8c144e5fa8648749366c1e67a97ecbb28f07df0bb72fb29 SHA512 dff728a34bdf8df71aa13b7f9c8ffae8ce643337f4dafacb3ceeb778d326b1885f63ae03215c6d714c4fcd7b2f26b03e47d7ad3a42eca3f2d5de5b596b653bf1 WHIRLPOOL 806e5469ac7fbd6b9a1e3803f153a6a2e5eecc14fa05b9f08b3d5b1f16609fb5bc2c576c45133ac6c6a76e5d63fce4a98d44ab4e8b180b5cbccf06355d3967bc
+DIST duperemove-0.09.5.tar.gz 56175 SHA256 8c8c781ab53435dfcc114d2a500525c72428fdbafc14ead10de115d77b447b69 SHA512 111127d9ab7d5567de8393197cf5bc977db1f64b7405fd848e1ca5aaa5ca7a3057fa06b61b161d0dfc45e0c5ebcc2406218d9a834db519c7ca348cdc7a0fe2f2 WHIRLPOOL aff0d6cbab8f6f76cc528316dd17656e3b190809e3955bf83f59745b5dfd085e17b832dc09b4aa3ca6312bbfb199bea0f3ecb4f59d1bcc11c1743d97da93213c
+DIST duperemove-0.10.tar.gz 95656 SHA256 1ef855c4d0a85efc8757edcac5ea7189d896d2f2abad0e572c47f6568cf050aa SHA512 11bb1a9937b9ca7969b9176bb4cfc8fff91c257a8645baa0ca0ec6b634ae3c464712414f856d5a75ed16c6d13f0ae85ac3584df1f474575a975cb20ae0d7a9f1 WHIRLPOOL f31164803447b6ba917fa214eac35037e67ab090215b97e4610f46b3276d0a3c2f3c9ee024ea813e63cbacbe2c7778d35188131c85ffc08fc47b2abd4e312d38
+DIST duperemove-0.11.beta4.tar.gz 114532 SHA256 fdccc29670c39e36751217263bef0f7d0803c3773b0bbb61fcd651370798b6c0 SHA512 e3879f558026a11d34c996243eeeab267bebec508a0bafa76ad563fe81c3bf911650745f27bd449c4d788c302b08324bb780e4d86dc5996678e06a1df233a286 WHIRLPOOL cc8a7e7784a66af793ddf3ea5974605cbb735b738965939dafdf12f6cec2f1629d35f3454061ec1051ea7e4cb8703c85ebabdd81d290e1fb0dfa347612d66328
+EBUILD duperemove-0.09.1.ebuild 473 SHA256 6f47288df1b5195ae04cee1da93a7a74235bcda37cb9507167ae3396198d4602 SHA512 4170bf829851b9b372519f21e9d9fb2d973477f8694b785a46de92fb94498650d12127a0b15900e795d521ad86f99fcb580f6fce685700573ee9d8c0c0ecb948 WHIRLPOOL 55d114b74cadd58257db6bd05d60232371656e255d29d6a33129a50c8e31239bd2ff280874df808a416eeb389de18b6f7562942746dfbc8c2983088e95b286ed
+EBUILD duperemove-0.09.2.ebuild 909 SHA256 4ba8cc6f31ab104e8502f840fa1705ca50364d3c1a20e30bc722a4e680bf4d09 SHA512 1141d45db5cb3d3cc2d891552ca36c9c40a439cf8e27529857dc579e72fceadfe891ce336fa16ecd88367363e5d69dad2abb19ca95c2b2441f18c2b7befc5a7d WHIRLPOOL ff2d8a10597d2999132766138cd318f4c8a788c1d652454270bccdb2078d9ffcf64a689ee59f9571ff8e9f329a6b3fcfb30f21cc19af78582231bffc61c817e7
+EBUILD duperemove-0.09.3.ebuild 734 SHA256 69b8862b32e96e728b63741062f29d5218523ac77fa6349b68d78b896551fae5 SHA512 f36634414470f80342f41b1aaa766f2fc8d4e1c027636512cd0f9f4d0e3cfdfb8908d434ae4d609d99c36c2d92d273aa2664d406f3d1bd491670a83614fd9894 WHIRLPOOL b315c4dfdc7cdfe59d88493fc8af2b7a596ab62fc1453521bb4485fd96b99d26ac0c544f99f48a48c54d114ca8cb62792ae7c59cb4193410c70c22daf6005856
+EBUILD duperemove-0.09.4.ebuild 734 SHA256 69b8862b32e96e728b63741062f29d5218523ac77fa6349b68d78b896551fae5 SHA512 f36634414470f80342f41b1aaa766f2fc8d4e1c027636512cd0f9f4d0e3cfdfb8908d434ae4d609d99c36c2d92d273aa2664d406f3d1bd491670a83614fd9894 WHIRLPOOL b315c4dfdc7cdfe59d88493fc8af2b7a596ab62fc1453521bb4485fd96b99d26ac0c544f99f48a48c54d114ca8cb62792ae7c59cb4193410c70c22daf6005856
+EBUILD duperemove-0.09.5.ebuild 734 SHA256 69b8862b32e96e728b63741062f29d5218523ac77fa6349b68d78b896551fae5 SHA512 f36634414470f80342f41b1aaa766f2fc8d4e1c027636512cd0f9f4d0e3cfdfb8908d434ae4d609d99c36c2d92d273aa2664d406f3d1bd491670a83614fd9894 WHIRLPOOL b315c4dfdc7cdfe59d88493fc8af2b7a596ab62fc1453521bb4485fd96b99d26ac0c544f99f48a48c54d114ca8cb62792ae7c59cb4193410c70c22daf6005856
+EBUILD duperemove-0.10.ebuild 831 SHA256 f2e345711ba2cd7190c1bac14295a5e888b810836bdb72be42789d14e6d1d90a SHA512 1869181a31a17d9ae5a85d4034bc8d87105b2e05cb49071476b195ada90787b01ab1e6c42dd04771d6189aed03a512b410db77409a349a8af968fc3b4cc8c7e5 WHIRLPOOL b6969ee85e9ee1aba2b8007ec9418e749a53246299663f60569c408d5e1003a37fb13b3cb5748d9c7f2bf3bf7f488fd42f8a69c0a2d8e909255a6c5ba3a4a8b2
+EBUILD duperemove-0.11_beta4.ebuild 766 SHA256 9657907811a72343d75863b04ba1cf9268635707bf3676e35a2ec943cd4c6778 SHA512 1b480cc6b94e974bd32ffd8f912d00f2bd1b542046bd0885d725de4fe7ae7fe4645d2f8b533fb182bf8437f3e77f9a1ffb79fe8dec2ce4db450c740538a4674c WHIRLPOOL 70fe95b39c9b7bf0f9979bb1d9a4a327773948ab19c2c0df0a4c3b8954b6ab8a958c14499619cf2a29d6575bfcdfbd5aa46b7bf4ca5a9a41fe21f2937f4e0c03
+MISC ChangeLog 2918 SHA256 3b8f1dc172f52d9291b42e05c2c5cd31c4bcdd0f91663c58aba1eb23a298569b SHA512 e2449c616ea0fbc6aaf31df2bda2b6dbc8d0162cb52cecb0f984a8e107e3934a5a2c02e42fcd85437e9ca2b15fd469d6b53972db6163c7c0a6b2a37916c825ea WHIRLPOOL 28e6038cc67a03b2045ea54bef0e535f8c2be05d41350548c4ad31175072995ebaa3a415c1aa4b80a21d3b929d1b9e94b176ee1efa03f66fb1c934501ed350cf
+MISC ChangeLog-2015 1130 SHA256 0d1fce5ddde666836edd84eef8c0009dd0ed7d32fc6600c8ae53331e5918a4f0 SHA512 53058134e84406ddacf9f85dc39161a844d18bcd614cc76ad52da4f27b0b1b936d0b84ad9e1bd42cf15531dce682572e4b8fd10e134119f3a0817231b94a5bc7 WHIRLPOOL 3204f3ac15ff145aa1d0069a4b034c9a3aa3df1ac9a0670ef4a99d96ec2ca48604879d978bb89da25ec2148c8db29c8df39e6bbb7ed51c0546be13d509a1bf45
+MISC metadata.xml 475 SHA256 c6c1ec0909202da671c72ba3aa235f72e41cbfc43c2513dac11fbd551236668d SHA512 dc74d3d2be21f9cc6ac03cd6812d6e90bccd26bdcaf0a4e22f16ec7bae30e8cd252ac4b191aee2d4d94d45401ac680b9ee9ce8c7adad7a92afac908c9ab24de1 WHIRLPOOL 7d54e028afe208a59262d57a218a07b8e549a990c00d0107ead9c6dc50f8d7f2fea44c5eec94a97d136ba6325ff77c294998d74b05c1b241a4c522e23fcbf606
diff --git a/sys-fs/duperemove/duperemove-0.09.1.ebuild b/sys-fs/duperemove/duperemove-0.09.1.ebuild
new file mode 100644
index 000000000000..aea32e31e001
--- /dev/null
+++ b/sys-fs/duperemove/duperemove-0.09.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+DESCRIPTION="Btrfs deduplication utility."
+
+HOMEPAGE="https://github.com/markfasheh/duperemove"
+
+SRC_URI="https://github.com/markfasheh/duperemove/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+
+SLOT="0"
+
+KEYWORDS="~amd64"
+
+DEPEND="dev-libs/glib:2="
+
+RDEPEND="${DEPEND}"
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" install
+}
diff --git a/sys-fs/duperemove/duperemove-0.09.2.ebuild b/sys-fs/duperemove/duperemove-0.09.2.ebuild
new file mode 100644
index 000000000000..36b1db08909f
--- /dev/null
+++ b/sys-fs/duperemove/duperemove-0.09.2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Btrfs deduplication utility"
+HOMEPAGE="https://github.com/markfasheh/duperemove"
+SRC_URI="https://github.com/markfasheh/duperemove/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="dev-libs/glib:2=
+ dev-libs/libgcrypt:0="
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ # https://github.com/markfasheh/duperemove/issues/53#issuecomment-89796552
+ sed -i -e '/glib2_mutex_unlock/s:mutex_lock:mutex_unlock:' duperemove.c || die
+}
+
+src_compile() {
+ # CC & CFLAGS are set via = so need to override them
+ # LIBRARY_FLAGS are set via += so need to pass them via env
+ export LIBRARY_FLAGS="${LDFLAGS}"
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Wall"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" install
+}
diff --git a/sys-fs/duperemove/duperemove-0.09.3.ebuild b/sys-fs/duperemove/duperemove-0.09.3.ebuild
new file mode 100644
index 000000000000..17b2c00c5202
--- /dev/null
+++ b/sys-fs/duperemove/duperemove-0.09.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Btrfs deduplication utility"
+HOMEPAGE="https://github.com/markfasheh/duperemove"
+SRC_URI="https://github.com/markfasheh/duperemove/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="dev-libs/glib:2=
+ dev-libs/libgcrypt:0="
+DEPEND="${RDEPEND}"
+
+src_compile() {
+ # CC & CFLAGS are set via = so need to override them
+ # LIBRARY_FLAGS are set via += so need to pass them via env
+ export LIBRARY_FLAGS="${LDFLAGS}"
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Wall"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" install
+}
diff --git a/sys-fs/duperemove/duperemove-0.09.4.ebuild b/sys-fs/duperemove/duperemove-0.09.4.ebuild
new file mode 100644
index 000000000000..17b2c00c5202
--- /dev/null
+++ b/sys-fs/duperemove/duperemove-0.09.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Btrfs deduplication utility"
+HOMEPAGE="https://github.com/markfasheh/duperemove"
+SRC_URI="https://github.com/markfasheh/duperemove/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="dev-libs/glib:2=
+ dev-libs/libgcrypt:0="
+DEPEND="${RDEPEND}"
+
+src_compile() {
+ # CC & CFLAGS are set via = so need to override them
+ # LIBRARY_FLAGS are set via += so need to pass them via env
+ export LIBRARY_FLAGS="${LDFLAGS}"
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Wall"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" install
+}
diff --git a/sys-fs/duperemove/duperemove-0.09.5.ebuild b/sys-fs/duperemove/duperemove-0.09.5.ebuild
new file mode 100644
index 000000000000..17b2c00c5202
--- /dev/null
+++ b/sys-fs/duperemove/duperemove-0.09.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Btrfs deduplication utility"
+HOMEPAGE="https://github.com/markfasheh/duperemove"
+SRC_URI="https://github.com/markfasheh/duperemove/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="dev-libs/glib:2=
+ dev-libs/libgcrypt:0="
+DEPEND="${RDEPEND}"
+
+src_compile() {
+ # CC & CFLAGS are set via = so need to override them
+ # LIBRARY_FLAGS are set via += so need to pass them via env
+ export LIBRARY_FLAGS="${LDFLAGS}"
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Wall"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" install
+}
diff --git a/sys-fs/duperemove/duperemove-0.10.ebuild b/sys-fs/duperemove/duperemove-0.10.ebuild
new file mode 100644
index 000000000000..fc9db47deaec
--- /dev/null
+++ b/sys-fs/duperemove/duperemove-0.10.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Btrfs deduplication utility"
+HOMEPAGE="https://github.com/markfasheh/duperemove"
+SRC_URI="https://github.com/markfasheh/duperemove/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+# includes code from libbloom, xxhash (BSD-2)
+# includes code from polarssl (GPL-2+)
+LICENSE="GPL-2 GPL-2+ BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="
+ dev-db/sqlite:3=
+ dev-libs/glib:2="
+DEPEND="${RDEPEND}"
+
+src_compile() {
+ # CC & CFLAGS are set via = so need to override them
+ # LIBRARY_FLAGS are set via += so need to pass them via env
+ local -x LIBRARY_FLAGS="${LDFLAGS}"
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Wall"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" install
+}
diff --git a/sys-fs/duperemove/duperemove-0.11_beta4.ebuild b/sys-fs/duperemove/duperemove-0.11_beta4.ebuild
new file mode 100644
index 000000000000..281d0698988b
--- /dev/null
+++ b/sys-fs/duperemove/duperemove-0.11_beta4.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs
+
+DESCRIPTION="Btrfs deduplication utility"
+HOMEPAGE="https://github.com/markfasheh/duperemove"
+SRC_URI="https://github.com/markfasheh/duperemove/archive/v${PV/_/.}.tar.gz -> ${P/_/.}.tar.gz"
+
+# includes code from libbloom, xxhash (BSD-2)
+# includes code from polarssl (GPL-2+)
+LICENSE="GPL-2 GPL-2+ BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-db/sqlite:3=
+ dev-libs/glib:2="
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${P/_/.}
+
+PATCHES=( "${FILESDIR}/${P}-sysmacros.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Wall"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/sys-fs/duperemove/files/duperemove-0.11_beta4-sysmacros.patch b/sys-fs/duperemove/files/duperemove-0.11_beta4-sysmacros.patch
new file mode 100644
index 000000000000..6355f5e9146f
--- /dev/null
+++ b/sys-fs/duperemove/files/duperemove-0.11_beta4-sysmacros.patch
@@ -0,0 +1,10 @@
+--- a/dbfile.c 2016-09-27 22:28:49.000000000 +0200
++++ b/dbfile.c 2017-08-17 18:23:30.768591897 +0200
+@@ -8,6 +8,7 @@
+ #include <inttypes.h>
+ #include <stddef.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+
+ #include "csum.h"
+ #include "filerec.h"
diff --git a/sys-fs/duperemove/metadata.xml b/sys-fs/duperemove/metadata.xml
new file mode 100644
index 000000000000..87dd74d07802
--- /dev/null
+++ b/sys-fs/duperemove/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>rich0@gentoo.org</email>
+ </maintainer>
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <longdescription>Btrfs deduplication utility.</longdescription>
+ <upstream>
+ <remote-id type="github">markfasheh/duperemove</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/e2fsprogs/Manifest b/sys-fs/e2fsprogs/Manifest
new file mode 100644
index 000000000000..e936b908fa6c
--- /dev/null
+++ b/sys-fs/e2fsprogs/Manifest
@@ -0,0 +1,18 @@
+AUX e2fsck.conf 138 SHA256 c2864aa7c5c5bf27227909bdb9af395fc07294d1f93d372ef10c79309d7aec08 SHA512 d10a8ef566a60815b6f65414d84d23f3ec535c2a93cd780d4425488465f4eff6910c20d0163d1b7d334e9f4c707beab35bf63078b9ec3a5602763ea219bddbef WHIRLPOOL b05c69b375411efe850a993a244e26513d6e4a8c1cfb3ea91617a283c819a47f2200a459849285a0e60288e86869d624aeee0589f4a6b9243572c500671f3b31
+AUX e2fsprogs-1.40-fbsd.patch 352 SHA256 52865c6600fa0f601a89e4396797ae2d23a1ed895e64b098c36e8bcab1ac8505 SHA512 86374e641f958d7c4b53eb44abf7933af064b55a38fef6ca26f848bb63f0c6bf2966852c7cf0770337aef95ff965de95ef282205771e86be36e7ad74e8f81146 WHIRLPOOL b8889db0ced2312a06cbf2ca135340a9cb6c88aa0e3fc467f4cb4dc3c40c90f4be57d1678a735ef42a1d4b8313bcd1a3130d899cf5e9af39bfd13a37d1b1d449
+AUX e2fsprogs-1.41.8-makefile.patch 317 SHA256 f8a4e2180f557c3bb9a50c38300e406420b3df296f50d6eab59d0b28cb65904d SHA512 dbd738affe910d3812ca4d969a6d4295b09abc413cab23f29dcbd0c1e82eefa095a61a377c494dd9b7e1d189d4edadc469dbf2d1a1068c11dd5fc8311bd83f8f WHIRLPOOL f81ecb87217bb312bbbb08357f76b2d5d7c2dc9cdee69d37e67e7b34632f4a3f3d2bab66aa600fa98776808b30cada735de05135ac60a5c2f9b59daf88b7eb53
+AUX e2fsprogs-1.42.13-fix-build-cflags.patch 290 SHA256 3dc8246ee1d00d1ff4652aad0c4768d8a94317a5e8580507da33d23d8dbcf622 SHA512 fed2a8502fafb56a21c88d680a42848bdc8921b228f74842ce3f702279917b6e6c0d1204ee060ea0d2d5ebb02465fc1f3d1a4304068a59b45bf1ddfbdfd46507 WHIRLPOOL d68c4944734a67320a75f8e951b714b3fda08b220680797412ce946bb3c4f531074e4e8417ae92afec5b3d997ac20322f6e87c328b9269ef497a9a33da2c48e7
+AUX e2fsprogs-1.43-sysmacros.patch 3301 SHA256 63ca9a2808ddfa62832447b9c1b4cab939849a34648d3445e09eac72810e0035 SHA512 181d1f71eb6776357521115ccd85227ee5c83bb798f198624722dc71e96f44f301ea79034182000f123fb9fc05db67de51206ff398c1a95f59b0f4dda8ba9ac6 WHIRLPOOL 5114aaa517e64831c24763470698d2913f042aa4424ef905aa32cf518e0889fcc5b9944e8e4dc78301594827bbfe4364314d76421e5de4b40043edb3db507f97
+AUX fsck_ext2fs.8 3802 SHA256 e7f4778d173c031a1cc2dd222816a89ce42207ac96353d089f037650f28f1d1a SHA512 639af16c7881bdfca55a9cd39623d3eeb9ae0ca93f8e65321c69ab1b2591cb17cdd0cfc21d27c20b8cc65bd295cccf23e47f740fffb91f4cf17e32959bb166d0 WHIRLPOOL fc6892a98f5b40e32c252f74450fd4659fd873b9029f78429d03422daa920c4cb8d4fc2527259b7834b41d3d30c9dac50f70c05949edff11a1f539dcd275c62f
+AUX fsck_ext2fs.c 2793 SHA256 7ec106ba31bf93dc334f946a88301d7eb26c2c35a65a7b8938b73c811e0d010c SHA512 1cac2963c0e85dd6a111bfe2a00f2b4f65c17a05bf0039cec073d4109ad4b0efee8905cff1a25098e0693f367db300054d92598a85dfbe8e5db7ff6419534af6 WHIRLPOOL 7290cf636ab232b8479b18acc97c2911109b1cf564df3352e1ccf87ef7693ad459face01436bb9a50edcc816a3adcb362cd8abf21ae3c839930d3d203cdb7f53
+DIST e2fsprogs-1.42.9-mint-r1.patch.xz 9012 SHA256 3904654080b7f7776e97b703d17e1b59ae1d6f5e0cf32193b86e986bc0a9b396 SHA512 591a7c80d65082eebcdc455028be6ade05c9aae96c94f654106be0facef330a8875dae82891e6e3ad2b48dece2b4e1c1940dbc47cd3eba3e6eea3b5ddba9a8fc WHIRLPOOL ae6fc015fa77bfbde7a4ba2205c014b655e736c4ed5cb63a913245c6c40fa0637b65fa3eec6399dd1793c494892b76e0bbc12ffa6ac9c39d4da27333d8bbf6c7
+DIST e2fsprogs-1.43.3-missing_uninit_bg.patch 1317 SHA256 4a4a59215efde3b0b398a19c9e74f73ae9bbbca954cf3e2aaaaa5f0a9f836313 SHA512 bd80dd679245c4d26837fa5a0f7dc6a05560973d912a3fe8f5c3c8c352675496f21c9b775d37fb190a7fbb3fb61882b6d4d6a20b34918cda0bfe65e7d0cce8e8 WHIRLPOOL a03a7461183b08ac178dc7d0c6a230df93d75902b0abc33ec0c7a19d018fdc4264910e688db4708bd16b23d175a3a9928e38c31f8377f7d28352bac83a8cd90f
+DIST e2fsprogs-1.43.3.tar.gz 7405892 SHA256 ce8ef1bbb0d4730f170167284fda156ac9d6bf18db2750eb94af619a81b19927 SHA512 77e753f77222a0a7a334d7d93c900ea6cb339ed40af29952e414fc4e45d8c5c01d67771978a941195effe666df965746c2b31977c5f05ff307429b978dac8dea WHIRLPOOL c90dea3d01a103b7d11d0611b1b005748065ae90f15a02f3bde4c4baf9403931b40d2024297a2e02a92d11841d35decf8a4715d682212d4641ff34bb2f80d5db
+DIST e2fsprogs-1.43.5.tar.gz 7596581 SHA256 466db1da11e227143fbdf6a401833e0ab17cf43d927f5baa4a7042b3ce8a3932 SHA512 c174a5110d59110cbc5e9982825993e18241a831b26bb5927447ad238172a51b5870b7431b38ce27f26761abf6af0249ddf1229f32be1c2ed58a67a9704991ed WHIRLPOOL 8aec75bd8e103226fb8d92da00cc52cdd86726336a34fd0cc54c0d85d816d190cb0f133aa2f271a637aaccab165a9c5b5feb0ad348d73685f1debd1d9ba91b03
+DIST e2fsprogs-1.43.6.tar.gz 7466907 SHA256 233d70ac434cdfba792dc0f83944c0ec854468d604fb22325ae65c4adfc90239 SHA512 95e3e7def177de921d3204aeace4cb8243d79872468d3289cace0547798c84e92af253022deb803cd8c045411283b01431728a86b14b9e8b45cdd5dca739db66 WHIRLPOOL 862769b1775d87297c30a242a2578971435115ebf381156f0c16078a2ad0e19f03e8af41c93d00d6324a11af6d4cf333b0a1a8fe3eee76fcbb47fc825f3481c5
+EBUILD e2fsprogs-1.43.3-r1.ebuild 4040 SHA256 8eda4767977a467c700bd79f9b4b1b70ccabf76b007db75498101fc6edfe977e SHA512 5053ec14ad968d6f4f8bb0cf0a227c0f56af71eaf0201fe7d53448c962f6f097aeb92b561381194aea58f5d3d99421d455ad50f280413d83ada6b281e1361c9c WHIRLPOOL 278072ab829a9e9ea8810b98d70f43211ab71b187b3500b0c9297ca337a308f1eecc6978ffe685da06988debe2059301b49cb7b67b035b977a200a5fe35d1c7b
+EBUILD e2fsprogs-1.43.5.ebuild 3803 SHA256 25d55af84a2f9710128989a2d3882bac946bd1bef23e4027494f0fc6af5b91da SHA512 5ede2280b2d42c18e14315654f6dc092b02b757927ba1a4973417f514b6dc66f506dec85e69f1a0c00e177a3950b74bb42fe0994d15a50c2c83455cb7baeb7d9 WHIRLPOOL afd8d04b1ccef5a2b532b18992bf609844fb4fb52b74e1c3b5f67677d217d095f20389d089e447af4dd2f9f06a97a390123d1633b17e3dea23533dd985cc714f
+EBUILD e2fsprogs-1.43.6.ebuild 3803 SHA256 25d55af84a2f9710128989a2d3882bac946bd1bef23e4027494f0fc6af5b91da SHA512 5ede2280b2d42c18e14315654f6dc092b02b757927ba1a4973417f514b6dc66f506dec85e69f1a0c00e177a3950b74bb42fe0994d15a50c2c83455cb7baeb7d9 WHIRLPOOL afd8d04b1ccef5a2b532b18992bf609844fb4fb52b74e1c3b5f67677d217d095f20389d089e447af4dd2f9f06a97a390123d1633b17e3dea23533dd985cc714f
+MISC ChangeLog 7643 SHA256 c0cf2dd26e491ad39b3f867c0bd9296e10749d0f1838cb7cec65ba1d15e5956f SHA512 f46d87e5a695385f4642bb03316ceb7b622461d938c3af2c5e15836a07384cae7a573c86750217c3d49bf00b870187c248aaefa2bac1e819a6b21ae9e7f4b2cd WHIRLPOOL 0fe755f687bedb25e32f4d6050f77e6dcc4179e24211589fb6c10ceef98ad12e3bc2733a86db9de11bdaf618cf290901705fe947b30c87bab719f0182e44a036
+MISC ChangeLog-2015 48117 SHA256 fd49ccd4dc8e7a53c8cba64fb936f960ee7c58fcf4150485321b23475a193f84 SHA512 82134fcce2aaa6bf15f3339b79b657b4e0827a132cca8c89a6521f7c6bc1246d3d55cd46d6c9adbd5b3e6f458e9f4e5e267d10f4c9929f15c9cd985949f5ee85 WHIRLPOOL ed9f1377d27424101d492f92a515cdf60f723cd6f519ea8a82b16d46ec86c7f297b8224b6d2833c83a6ca5e4c6f2140e7155beb1ce0d45f503debc51d71b9db2
+MISC metadata.xml 520 SHA256 d7e8aff0886fa1a93bdd7f347cd5850753bc1cf1cf6eefde71e98a8aa6ac5eb4 SHA512 a5ff91610ed175147f1a9c2c725a30380908c02fc04c6b7df2792cb4fd805f9137374d2a910e456128a7bf2fec9e83af3063bcb5f2ad51394bed8bed648e3905 WHIRLPOOL 2f2712617962a77cc37b8761ec4965fd61654a084de695f72cb1c2a4a678a76dbb9cd4e1b5aed67ac6649f7222cb75f86bc36e24fce96a68f8448d33a733f69a
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.43.3-r1.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.43.3-r1.ebuild
new file mode 100644
index 000000000000..b2af3e041a6a
--- /dev/null
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.43.3-r1.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+case ${PV} in
+*_pre*) UP_PV="${PV%_pre*}-WIP-${PV#*_pre}" ;;
+*) UP_PV=${PV} ;;
+esac
+
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities"
+HOMEPAGE="http://e2fsprogs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/e2fsprogs/${PN}-${UP_PV}.tar.gz
+ mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${UP_PV}/${PN}-${UP_PV}.tar.gz
+ elibc_mintlib? ( mirror://gentoo/${PN}-1.42.9-mint-r1.patch.xz )"
+
+# Fix for bug #598100
+SRC_URI+=" http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/patch/?id=d33e690fe7a6cbeb51349d9f2c7fb16a6ebec9c2 -> ${PN}-1.43.3-missing_uninit_bg.patch"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 -x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~m68k-mint"
+IUSE="fuse nls static-libs elibc_FreeBSD"
+
+RDEPEND="~sys-libs/${PN}-libs-${PV}
+ >=sys-apps/util-linux-2.16
+ fuse? ( sys-fs/fuse )
+ nls? ( virtual/libintl )"
+DEPEND="${RDEPEND}
+ nls? ( sys-devel/gettext )
+ virtual/pkgconfig
+ sys-apps/texinfo"
+
+S=${WORKDIR}/${P%_pre*}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.41.8-makefile.patch
+ "${FILESDIR}"/${PN}-1.40-fbsd.patch
+ "${FILESDIR}"/${PN}-1.42.13-fix-build-cflags.patch #516854
+ "${FILESDIR}"/${PN}-1.43-sysmacros.patch
+
+ # Upstream patches (can usually removed with next version bump)
+ "${DISTDIR}"/${P}-missing_uninit_bg.patch
+)
+
+src_prepare() {
+ if [[ ${CHOST} == *-mint* ]] ; then
+ PATCHES+=( "${WORKDIR}"/${PN}-1.42.9-mint-r1.patch )
+ fi
+
+ epatch "${PATCHES[@]}"
+
+ # blargh ... trick e2fsprogs into using e2fsprogs-libs
+ rm -rf doc
+ sed -i -r \
+ -e 's:@LIBINTL@:@LTLIBINTL@:' \
+ -e '/^(STATIC_)?LIB(COM_ERR|SS)/s:[$][(]LIB[)]/lib([^@]*)@(STATIC_)?LIB_EXT@:-l\1:' \
+ -e '/^DEP(STATIC_)?LIB(COM_ERR|SS)/s:=.*:=:' \
+ MCONFIG.in || die "muck libs" #122368
+ sed -i -r \
+ -e '/^LIB_SUBDIRS/s:lib/(et|ss)::g' \
+ Makefile.in || die "remove subdirs"
+ ln -s $(which mk_cmds) lib/ss/ || die
+
+ # Avoid rebuild
+ echo '#include_next <ss/ss_err.h>' > lib/ss/ss_err.h
+}
+
+src_configure() {
+ # Keep the package from doing silly things #261411
+ export VARTEXFONTS=${T}/fonts
+
+ # needs open64() prototypes and friends
+ append-cppflags -D_GNU_SOURCE
+
+ ac_cv_path_LDCONFIG=: \
+ econf \
+ --with-root-prefix="${EPREFIX}/" \
+ --enable-symlink-install \
+ $(tc-is-static-only || echo --enable-elf-shlibs) \
+ $(tc-has-tls || echo --disable-tls) \
+ --without-included-gettext \
+ $(use_enable fuse fuse2fs) \
+ $(use_enable nls) \
+ --disable-libblkid \
+ --disable-libuuid \
+ --disable-fsck \
+ --disable-uuidd
+ if [[ ${CHOST} != *-uclibc ]] && grep -qs 'USE_INCLUDED_LIBINTL.*yes' config.{log,status} ; then
+ eerror "INTL sanity check failed, aborting build."
+ eerror "Please post your ${S}/config.log file as an"
+ eerror "attachment to https://bugs.gentoo.org/show_bug.cgi?id=81096"
+ die "Preventing included intl cruft from building"
+ fi
+}
+
+src_compile() {
+ emake V=1 COMPILE_ET=compile_et MK_CMDS=mk_cmds
+
+ # Build the FreeBSD helper
+ if use elibc_FreeBSD ; then
+ cp "${FILESDIR}"/fsck_ext2fs.c .
+ emake V=1 fsck_ext2fs
+ fi
+}
+
+src_install() {
+ # need to set root_libdir= manually as any --libdir options in the
+ # econf above (i.e. multilib) will screw up the default #276465
+ emake \
+ STRIP=: \
+ root_libdir="${EPREFIX}/usr/$(get_libdir)" \
+ DESTDIR="${D}" \
+ install install-libs
+ dodoc README RELEASE-NOTES
+
+ insinto /etc
+ doins "${FILESDIR}"/e2fsck.conf
+
+ # Move shared libraries to /lib/, install static libraries to
+ # /usr/lib/, and install linker scripts to /usr/lib/.
+ gen_usr_ldscript -a e2p ext2fs
+ # configure doesn't have an option to disable static libs :/
+ use static-libs || find "${D}" -name '*.a' -delete
+
+ if use elibc_FreeBSD ; then
+ # Install helpers for us
+ into /
+ dosbin "${S}"/fsck_ext2fs
+ doman "${FILESDIR}"/fsck_ext2fs.8
+
+ # filefrag is linux only
+ rm \
+ "${ED}"/usr/sbin/filefrag \
+ "${ED}"/usr/share/man/man8/filefrag.8 || die
+ fi
+}
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.43.5.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.43.5.ebuild
new file mode 100644
index 000000000000..e3cc852d20ef
--- /dev/null
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.43.5.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+case ${PV} in
+*_pre*) UP_PV="${PV%_pre*}-WIP-${PV#*_pre}" ;;
+*) UP_PV=${PV} ;;
+esac
+
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities"
+HOMEPAGE="http://e2fsprogs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/e2fsprogs/${PN}-${UP_PV}.tar.gz
+ mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${UP_PV}/${PN}-${UP_PV}.tar.gz
+ elibc_mintlib? ( mirror://gentoo/${PN}-1.42.9-mint-r1.patch.xz )"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 -x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~m68k-mint"
+IUSE="fuse nls static-libs elibc_FreeBSD"
+
+RDEPEND="~sys-libs/${PN}-libs-${PV}
+ >=sys-apps/util-linux-2.16
+ fuse? ( sys-fs/fuse )
+ nls? ( virtual/libintl )"
+DEPEND="${RDEPEND}
+ nls? ( sys-devel/gettext )
+ virtual/pkgconfig
+ sys-apps/texinfo"
+
+S="${WORKDIR}/${P%_pre*}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.41.8-makefile.patch
+ "${FILESDIR}"/${PN}-1.40-fbsd.patch
+ "${FILESDIR}"/${PN}-1.42.13-fix-build-cflags.patch #516854
+
+ # Upstream patches (can usually removed with next version bump)
+)
+
+src_prepare() {
+ if [[ ${CHOST} == *-mint* ]] ; then
+ PATCHES+=( "${WORKDIR}"/${PN}-1.42.9-mint-r1.patch )
+ fi
+
+ default
+
+ # blargh ... trick e2fsprogs into using e2fsprogs-libs
+ rm -rf doc
+ sed -i -r \
+ -e 's:@LIBINTL@:@LTLIBINTL@:' \
+ -e '/^(STATIC_)?LIB(COM_ERR|SS)/s:[$][(]LIB[)]/lib([^@]*)@(STATIC_)?LIB_EXT@:-l\1:' \
+ -e '/^DEP(STATIC_)?LIB(COM_ERR|SS)/s:=.*:=:' \
+ MCONFIG.in || die "muck libs" #122368
+ sed -i -r \
+ -e '/^LIB_SUBDIRS/s:lib/(et|ss)::g' \
+ Makefile.in || die "remove subdirs"
+ ln -s $(which mk_cmds) lib/ss/ || die
+
+ # Avoid rebuild
+ echo '#include_next <ss/ss_err.h>' > lib/ss/ss_err.h
+}
+
+src_configure() {
+ # Keep the package from doing silly things #261411
+ export VARTEXFONTS="${T}/fonts"
+
+ # needs open64() prototypes and friends
+ append-cppflags -D_GNU_SOURCE
+
+ local myeconfargs=(
+ --with-root-prefix="${EPREFIX}/"
+ --enable-symlink-install
+ $(tc-is-static-only || echo --enable-elf-shlibs)
+ $(tc-has-tls || echo --disable-tls)
+ --without-included-gettext
+ $(use_enable fuse fuse2fs)
+ $(use_enable nls)
+ --disable-libblkid
+ --disable-libuuid
+ --disable-fsck
+ --disable-uuidd
+ )
+ ac_cv_path_LDCONFIG=: econf "${myeconfargs[@]}"
+ if [[ ${CHOST} != *-uclibc ]] && grep -qs 'USE_INCLUDED_LIBINTL.*yes' config.{log,status} ; then
+ eerror "INTL sanity check failed, aborting build."
+ eerror "Please post your ${S}/config.log file as an"
+ eerror "attachment to https://bugs.gentoo.org/show_bug.cgi?id=81096"
+ die "Preventing included intl cruft from building"
+ fi
+}
+
+src_compile() {
+ emake V=1 COMPILE_ET=compile_et MK_CMDS=mk_cmds
+
+ # Build the FreeBSD helper
+ if use elibc_FreeBSD ; then
+ cp "${FILESDIR}"/fsck_ext2fs.c .
+ emake V=1 fsck_ext2fs
+ fi
+}
+
+src_install() {
+ # need to set root_libdir= manually as any --libdir options in the
+ # econf above (i.e. multilib) will screw up the default #276465
+ emake \
+ STRIP=: \
+ root_libdir="${EPREFIX}/usr/$(get_libdir)" \
+ DESTDIR="${D}" \
+ install install-libs
+ dodoc README RELEASE-NOTES
+
+ insinto /etc
+ doins "${FILESDIR}"/e2fsck.conf
+
+ # Move shared libraries to /lib/, install static libraries to
+ # /usr/lib/, and install linker scripts to /usr/lib/.
+ gen_usr_ldscript -a e2p ext2fs
+ # configure doesn't have an option to disable static libs :/
+ use static-libs || find "${D}" -name '*.a' -delete
+
+ if use elibc_FreeBSD ; then
+ # Install helpers for us
+ into /
+ dosbin "${S}"/fsck_ext2fs
+ doman "${FILESDIR}"/fsck_ext2fs.8
+
+ # filefrag is linux only
+ rm \
+ "${ED%/}"/usr/sbin/filefrag \
+ "${ED%/}"/usr/share/man/man8/filefrag.8 || die
+ fi
+}
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.43.6.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.43.6.ebuild
new file mode 100644
index 000000000000..e3cc852d20ef
--- /dev/null
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.43.6.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+case ${PV} in
+*_pre*) UP_PV="${PV%_pre*}-WIP-${PV#*_pre}" ;;
+*) UP_PV=${PV} ;;
+esac
+
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities"
+HOMEPAGE="http://e2fsprogs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/e2fsprogs/${PN}-${UP_PV}.tar.gz
+ mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${UP_PV}/${PN}-${UP_PV}.tar.gz
+ elibc_mintlib? ( mirror://gentoo/${PN}-1.42.9-mint-r1.patch.xz )"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 -x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~m68k-mint"
+IUSE="fuse nls static-libs elibc_FreeBSD"
+
+RDEPEND="~sys-libs/${PN}-libs-${PV}
+ >=sys-apps/util-linux-2.16
+ fuse? ( sys-fs/fuse )
+ nls? ( virtual/libintl )"
+DEPEND="${RDEPEND}
+ nls? ( sys-devel/gettext )
+ virtual/pkgconfig
+ sys-apps/texinfo"
+
+S="${WORKDIR}/${P%_pre*}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.41.8-makefile.patch
+ "${FILESDIR}"/${PN}-1.40-fbsd.patch
+ "${FILESDIR}"/${PN}-1.42.13-fix-build-cflags.patch #516854
+
+ # Upstream patches (can usually removed with next version bump)
+)
+
+src_prepare() {
+ if [[ ${CHOST} == *-mint* ]] ; then
+ PATCHES+=( "${WORKDIR}"/${PN}-1.42.9-mint-r1.patch )
+ fi
+
+ default
+
+ # blargh ... trick e2fsprogs into using e2fsprogs-libs
+ rm -rf doc
+ sed -i -r \
+ -e 's:@LIBINTL@:@LTLIBINTL@:' \
+ -e '/^(STATIC_)?LIB(COM_ERR|SS)/s:[$][(]LIB[)]/lib([^@]*)@(STATIC_)?LIB_EXT@:-l\1:' \
+ -e '/^DEP(STATIC_)?LIB(COM_ERR|SS)/s:=.*:=:' \
+ MCONFIG.in || die "muck libs" #122368
+ sed -i -r \
+ -e '/^LIB_SUBDIRS/s:lib/(et|ss)::g' \
+ Makefile.in || die "remove subdirs"
+ ln -s $(which mk_cmds) lib/ss/ || die
+
+ # Avoid rebuild
+ echo '#include_next <ss/ss_err.h>' > lib/ss/ss_err.h
+}
+
+src_configure() {
+ # Keep the package from doing silly things #261411
+ export VARTEXFONTS="${T}/fonts"
+
+ # needs open64() prototypes and friends
+ append-cppflags -D_GNU_SOURCE
+
+ local myeconfargs=(
+ --with-root-prefix="${EPREFIX}/"
+ --enable-symlink-install
+ $(tc-is-static-only || echo --enable-elf-shlibs)
+ $(tc-has-tls || echo --disable-tls)
+ --without-included-gettext
+ $(use_enable fuse fuse2fs)
+ $(use_enable nls)
+ --disable-libblkid
+ --disable-libuuid
+ --disable-fsck
+ --disable-uuidd
+ )
+ ac_cv_path_LDCONFIG=: econf "${myeconfargs[@]}"
+ if [[ ${CHOST} != *-uclibc ]] && grep -qs 'USE_INCLUDED_LIBINTL.*yes' config.{log,status} ; then
+ eerror "INTL sanity check failed, aborting build."
+ eerror "Please post your ${S}/config.log file as an"
+ eerror "attachment to https://bugs.gentoo.org/show_bug.cgi?id=81096"
+ die "Preventing included intl cruft from building"
+ fi
+}
+
+src_compile() {
+ emake V=1 COMPILE_ET=compile_et MK_CMDS=mk_cmds
+
+ # Build the FreeBSD helper
+ if use elibc_FreeBSD ; then
+ cp "${FILESDIR}"/fsck_ext2fs.c .
+ emake V=1 fsck_ext2fs
+ fi
+}
+
+src_install() {
+ # need to set root_libdir= manually as any --libdir options in the
+ # econf above (i.e. multilib) will screw up the default #276465
+ emake \
+ STRIP=: \
+ root_libdir="${EPREFIX}/usr/$(get_libdir)" \
+ DESTDIR="${D}" \
+ install install-libs
+ dodoc README RELEASE-NOTES
+
+ insinto /etc
+ doins "${FILESDIR}"/e2fsck.conf
+
+ # Move shared libraries to /lib/, install static libraries to
+ # /usr/lib/, and install linker scripts to /usr/lib/.
+ gen_usr_ldscript -a e2p ext2fs
+ # configure doesn't have an option to disable static libs :/
+ use static-libs || find "${D}" -name '*.a' -delete
+
+ if use elibc_FreeBSD ; then
+ # Install helpers for us
+ into /
+ dosbin "${S}"/fsck_ext2fs
+ doman "${FILESDIR}"/fsck_ext2fs.8
+
+ # filefrag is linux only
+ rm \
+ "${ED%/}"/usr/sbin/filefrag \
+ "${ED%/}"/usr/share/man/man8/filefrag.8 || die
+ fi
+}
diff --git a/sys-fs/e2fsprogs/files/e2fsck.conf b/sys-fs/e2fsprogs/files/e2fsck.conf
new file mode 100644
index 000000000000..401cec45eec1
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsck.conf
@@ -0,0 +1,6 @@
+# See the e2fsck.conf man page for more info
+
+[options]
+
+# allow fsck to run sanely at any point in time #142850
+buggy_init_scripts = yes
diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.40-fbsd.patch b/sys-fs/e2fsprogs/files/e2fsprogs-1.40-fbsd.patch
new file mode 100644
index 000000000000..7d0919600d05
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsprogs-1.40-fbsd.patch
@@ -0,0 +1,11 @@
+--- a/lib/ext2fs/ext2_fs.h
++++ b/lib/ext2fs/ext2_fs.h
+@@ -414,7 +414,7 @@
+
+ #define i_size_high i_dir_acl
+
+-#if defined(__KERNEL__) || defined(__linux__)
++#if defined(__KERNEL__) || defined(__linux__) || defined(__FreeBSD__)
+ #define i_reserved1 osd1.linux1.l_i_reserved1
+ #define i_frag osd2.linux2.l_i_frag
+ #define i_fsize osd2.linux2.l_i_fsize
diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.41.8-makefile.patch b/sys-fs/e2fsprogs/files/e2fsprogs-1.41.8-makefile.patch
new file mode 100644
index 000000000000..b7d3d96856b5
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsprogs-1.41.8-makefile.patch
@@ -0,0 +1,10 @@
+--- e2fsprogs-1.41.5/Makefile.in
++++ e2fsprogs-1.41.5/Makefile.in
+@@ -281,6 +66,7 @@
+ uninstall: uninstall-progs-recursive uninstall-shlibs-libs-recursive uninstall-doc-libs
+
+ install-libs: install-libs-recursive
++install-libs-recursive: | install-shlibs-libs-recursive
+
+ uninstall-libs: uninstall-libs-recursive
+
diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.42.13-fix-build-cflags.patch b/sys-fs/e2fsprogs/files/e2fsprogs-1.42.13-fix-build-cflags.patch
new file mode 100644
index 000000000000..dcab9a34de09
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsprogs-1.42.13-fix-build-cflags.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/516854
+
+--- e2fsprogs-1.42.13/configure
++++ e2fsprogs-1.42.13/configure
+@@ -1315,6 +1315,8 @@
+ if test $cross_compiling = no; then
+ BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
+ BUILD_LDFLAGS="$LDFLAGS"
++else
++ BUILD_CFLAGS="$INCLUDES"
+ fi
+
+
diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.43-sysmacros.patch b/sys-fs/e2fsprogs/files/e2fsprogs-1.43-sysmacros.patch
new file mode 100644
index 000000000000..2dbb40c1bd6e
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsprogs-1.43-sysmacros.patch
@@ -0,0 +1,125 @@
+From 30ef41f68703b6a16027cc8787118b87f1462dff Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 28 Mar 2016 20:31:33 -0400
+Subject: [PATCH e2fsprogs] include sys/sysmacros.h as needed
+
+The minor/major/makedev macros are not entirely standard. glibc has had
+the definitions in sys/sysmacros.h since the start, and wants to move away
+from always defining them implicitly via sys/types.h (as this pollutes the
+namespace in violation of POSIX). Other C libraries have already dropped
+them. Since the configure script already checks for this header, use that
+to pull in the header in files that use these macros.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ debugfs/debugfs.c | 3 +++
+ lib/blkid/devname.c | 3 +++
+ lib/blkid/devno.c | 3 +++
+ lib/ext2fs/finddev.c | 3 +++
+ lib/ext2fs/ismounted.c | 3 +++
+ misc/create_inode.c | 4 ++++
+ misc/mk_hugefiles.c | 3 +++
+ 7 files changed, 22 insertions(+)
+
+diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
+index ba8be40..7d481bc 100644
+--- a/debugfs/debugfs.c
++++ b/debugfs/debugfs.c
+@@ -26,6 +26,9 @@ extern char *optarg;
+ #include <errno.h>
+ #endif
+ #include <fcntl.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+
+ #include "debugfs.h"
+ #include "uuid/uuid.h"
+diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c
+index 3e2efa9..671e781 100644
+--- a/lib/blkid/devname.c
++++ b/lib/blkid/devname.c
+@@ -36,6 +36,9 @@
+ #if HAVE_SYS_MKDEV_H
+ #include <sys/mkdev.h>
+ #endif
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+ #include <time.h>
+
+ #include "blkidP.h"
+diff --git a/lib/blkid/devno.c b/lib/blkid/devno.c
+index 479d977..61e6fc7 100644
+--- a/lib/blkid/devno.c
++++ b/lib/blkid/devno.c
+@@ -31,6 +31,9 @@
+ #if HAVE_SYS_MKDEV_H
+ #include <sys/mkdev.h>
+ #endif
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+
+ #include "blkidP.h"
+
+diff --git a/lib/ext2fs/finddev.c b/lib/ext2fs/finddev.c
+index 311608d..62fa0db 100644
+--- a/lib/ext2fs/finddev.c
++++ b/lib/ext2fs/finddev.c
+@@ -31,6 +31,9 @@
+ #if HAVE_SYS_MKDEV_H
+ #include <sys/mkdev.h>
+ #endif
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+
+ #include "ext2_fs.h"
+ #include "ext2fs.h"
+diff --git a/lib/ext2fs/ismounted.c b/lib/ext2fs/ismounted.c
+index e0f69dd..7404996 100644
+--- a/lib/ext2fs/ismounted.c
++++ b/lib/ext2fs/ismounted.c
+@@ -49,6 +49,9 @@
+ #if HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+
+ #include "ext2_fs.h"
+ #include "ext2fs.h"
+diff --git a/misc/create_inode.c b/misc/create_inode.c
+index 4dbd8e5..98aeb41 100644
+--- a/misc/create_inode.c
++++ b/misc/create_inode.c
+@@ -22,6 +22,10 @@
+ #include <attr/xattr.h>
+ #endif
+ #include <sys/ioctl.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
++
+ #include <ext2fs/ext2fs.h>
+ #include <ext2fs/ext2_types.h>
+ #include <ext2fs/fiemap.h>
+diff --git a/misc/mk_hugefiles.c b/misc/mk_hugefiles.c
+index 71a15c5..00e95cd 100644
+--- a/misc/mk_hugefiles.c
++++ b/misc/mk_hugefiles.c
+@@ -35,6 +35,9 @@ extern int optind;
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+ #include <libgen.h>
+ #include <limits.h>
+ #include <blkid/blkid.h>
+--
+2.8.2
+
diff --git a/sys-fs/e2fsprogs/files/fsck_ext2fs.8 b/sys-fs/e2fsprogs/files/fsck_ext2fs.8
new file mode 100644
index 000000000000..aa31cf1db172
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/fsck_ext2fs.8
@@ -0,0 +1,96 @@
+.TH fsck_ext2fs 8 2006-07-02 "Matthias Andree" "FreeBSD Ports"
+.\"
+.\" fsck_ext2fs.8 - manual page for fsck_ext2fs wrapper
+.\"
+.\" (C) Copyright 2006 by Matthias Andree <matthias.andree@gmx.de>
+.\"
+.\" License: This file may be redistributed in accordance with the terms
+.\" of the GNU General Public License v2.
+.\"
+.\" Upstream $Id: fsck_ext2fs.8,v 1.3 2006/07/02 11:45:21 emma Exp $
+.\" $FreeBSD: ports/sysutils/e2fsprogs/files/fsck_ext2fs.8,v 1.1 2006/07/04 15:47:51 leeym Exp $
+.\"
+.SH NAME
+.B fsck_ext2fs
+\- compatibility wrapper for e2fsck
+.SH SYNOPSIS
+.P
+.B fsck_ext2fs
+[\fB\-Fpfnyv\fR] [\fB\-b\fR \fIblock\fR]
+.SH DESCRIPTION
+.P
+\fBfsck_ext2fs\fR maps the traditional FreeBSD \fBfsck_ffs\fR options to
+options with the same functionality for \fBe2fsck,\fR runs \fBe2fsck\fR
+and then maps its exit status to values that FreeBSD understands.
+\fBe2fsck\fR is a utility to check and repair ext2 and ext3 file
+systems.
+
+.SH OPTIONS
+.IP \fB\-F\fR
+(check foreground mode required) Immediately exits with status 1 to tell
+\fBfsck\fR that ext2fs cannot be checked in the background. \fBfsck\fR
+usually runs \fBfsck_*\fR programs twice, first with \fB\-F\fR to find
+out if they can do background checking, then either immediately without
+\fB\-F\fR for foreground checking or deferred in the background with
+\fB\-B\fR.
+.IP \fB\-p\fR
+(preen mode) This option suppresses adding the \fB\-f\fR option (unless
+\fB\-f\fR is also given) and adds the \fB\-p\fR option to the
+\fBe2fsck\fR command line. This causes \fBe2fsck\fR to automatically fix
+any filesystem problems that can safely be fixed without operator
+intervention. Without this option given, \fBe2fsck\fR will be run with
+the \fB\-f\fR option to force a check, since interactive scan and repair
+mode is the default on FreeBSD, but not on Linux where \fBe2fsck\fR
+comes from.
+.IP \fB\-f\fR
+(force check) This option forces the check of a clean file system while
+preening and is passed to \fBe2fsck\fR verbatim.
+.IP \fB\-n\fR
+("no" mode) This option causes the file system to be opened in read-only
+mode and assume "no" as answer to all questions. This is the only way to
+safely run \fBfsck\fR on a mounted ext2 or ext3 file system. This option
+is passed to \fBe2fsck\fR verbatim.
+.IP \fB\-y\fR
+("yes" mode) This option is passed verbatim to \fBe2fsck\fR and causes
+it to assume "yes" as answer to all questions. This allows the
+non-interactive use of e2fsck but is rather aggressive. Use with care.
+.IP \fB\-v\fR
+(verbose output) This option is passed verbatim to \fBe2fsck\fR and
+causes it to verbosely report its progress.
+.IP "\fB\-b\fR \fIblock\fR"
+(use alternate super block) This option is passed verbatim to
+\fBe2fsck\fR and selects an alternate super block, for use when the
+primary super block has been damaged. Please see the \fBe2fsck\fR(8)
+manual page for details.
+
+.SH EXIT STATUS
+If errors remain after \fBe2fsck\fR, an invalid option or too many
+options have been specified, \fBe2fsck\fR was killed with a signal or
+the \fIfork\fB system call failed, \fBfsck_ext2fs\fR exits with status
+EXIT_FAILURE (usually 1). If \fBe2fsck\fR cannot be started, exits with
+status 127. If the file system is clean after \fBe2fsck\fR operation,
+exits with status EXIT_SUCCESS (0).
+
+.SH NOTES
+.P
+This utility is merely meant as an adaptor so that \fBe2fsck\fR can be
+run during the boot process, it does not support all options that
+\fBe2fsck\fR offers. If you need one of its advanced options, please run
+\fBe2fsck\fR directly.
+
+.SH FILES
+.TP
+.I /sbin/e2fsck
+is the location of the \fBe2fsck\fR program to run.
+
+.SH AUTHOR
+.P
+Matthias Andree <matthias.andree@gmx.de> wrote the program and this
+manual page.
+.SH CONFORMING TO
+The FreeBSD 6.1 command line interface for \fBfsck_ufs\fR(8).
+.SH SEE ALSO
+.BR fsck (8),
+.BR e2fsck (8)
+and
+.BR fsck_ufs (8).
diff --git a/sys-fs/e2fsprogs/files/fsck_ext2fs.c b/sys-fs/e2fsprogs/files/fsck_ext2fs.c
new file mode 100644
index 000000000000..f5e3e5e9a8c9
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/fsck_ext2fs.c
@@ -0,0 +1,147 @@
+/*
+ * fsck_ext2fs - wrapper for e2fsck on FreeBSD
+ * Copyright (C) 2004,2006 Matthias Andree <matthias.andree@gmx.de>
+ * redistributable in accordance with the
+ * GNU General Public License v2
+ *
+ * $FreeBSD: ports/sysutils/e2fsprogs/files/fsck_ext2fs.c,v 1.5 2006/07/04 15:47:51 leeym Exp $
+ *
+ * Upstream: $Id: fsck_ext2fs.c,v 1.6 2006/07/02 11:37:49 emma Exp $
+ *
+ * format: gindent -kr
+ */
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/wait.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <errno.h>
+
+__attribute__ ((noreturn))
+static int die(const char *tag)
+{
+ perror(tag);
+ exit(EXIT_FAILURE);
+}
+
+int main(int argc, char **argv)
+{
+ int ch, i = 1, force = 0, status, verbose = 0, t;
+ long block = 0;
+ enum { normal, preen, yes, no } mode = normal;
+ char *cmd[256];
+ pid_t pid;
+
+ cmd[0] = "/sbin/e2fsck";
+ while ((ch = getopt(argc, argv, "BFpfnyb:v")) != -1) {
+ switch (ch) {
+ case 'p':
+ mode = preen;
+ break;
+ case 'f':
+ force = 1;
+ break;
+ case 'n':
+ mode = no;
+ break;
+ case 'y':
+ mode = yes;
+ break;
+ case 'b':
+ block = atol(optarg);
+ break;
+ case 'v':
+ verbose++;
+ break;
+ case 'F':
+ /* e2fsck does not support background checking,
+ * hence exit with nonzero status to force
+ * the foreground check. */
+ exit(1);
+ case 'B':
+ default:
+ fprintf(stderr, "%s: unknown option -%c\n",
+ argv[0], optopt);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ if (force)
+ cmd[i++] = "-f";
+
+ switch (mode) {
+ case normal:
+ /* FreeBSD needs -f to force a check only in context
+ * with -p -- so map normal to force to match
+ * expectations */
+ if (!force)
+ cmd[i++] = "-f";
+ break;
+ case yes:
+ cmd[i++] = "-y";
+ break;
+ case no:
+ cmd[i++] = "-n";
+ break;
+ case preen:
+ cmd[i++] = "-p";
+ break;
+ }
+
+ if (block) {
+ static char b[30];
+
+ sprintf(b, "-b %ld", block);
+ cmd[i++] = b;
+ }
+
+ /* silently limit verbose to 15 so we don't overflow the cmd array */
+ if (verbose > 15)
+ verbose = 15;
+
+ for (t = verbose; t > 1; t--)
+ cmd[i++] = "-v";
+
+ while (optind < argc) {
+ cmd[i++] = argv[optind++];
+ /* sanity check so we don't overflow the cmd buffer */
+ if (i+1 == sizeof(cmd)/sizeof(cmd[0])) {
+ errno = E2BIG;
+ die(argv[0]);
+ }
+ }
+
+ cmd[i++] = 0;
+
+ if (verbose) {
+ for (i=0; cmd[i]; i++)
+ fputs(cmd[i], stderr),
+ fputc(' ', stderr);
+ fputc('\n', stderr);
+ }
+
+ pid = fork();
+ switch (pid) {
+ case -1:
+ /* error */
+ die("fork");
+ break;
+ case 0:
+ /* child */
+ (void) execv(cmd[0], cmd);
+ perror("execve");
+ _exit(127);
+ default:
+ /* parent */
+ if (pid != waitpid(pid, &status, 0))
+ die("waitpid");
+ if (WIFSIGNALED(status)
+ || (WIFEXITED(status) && WEXITSTATUS(status) >= 4))
+ exit(EXIT_FAILURE);
+ }
+ exit(EXIT_SUCCESS);
+}
diff --git a/sys-fs/e2fsprogs/metadata.xml b/sys-fs/e2fsprogs/metadata.xml
new file mode 100644
index 000000000000..ba8429b814c1
--- /dev/null
+++ b/sys-fs/e2fsprogs/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<use>
+ <flag name='fuse'>Build fuse2fs, a FUSE file system client for ext2/ext3/ext4 file systems</flag>
+</use>
+<upstream>
+ <remote-id type="cpe">cpe:/a:ext2_filesystems_utilities:e2fsprogs</remote-id>
+ <remote-id type="sourceforge">e2fsprogs</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/e2tools/Manifest b/sys-fs/e2tools/Manifest
new file mode 100644
index 000000000000..4531dfd73505
--- /dev/null
+++ b/sys-fs/e2tools/Manifest
@@ -0,0 +1,7 @@
+AUX e2tools-0.0.16-prototypes.patch 5088 SHA256 06f0a1351509cb96970e43f96e955c4243185972a85ed3310905514ac7a43846 SHA512 88deb44d0534901c5238281459a06c4d15022bccf363ec27d62faa56d1a78ea90a77a5a46d0b6752067ff83ddf53791398e64f518fd9c59dba1203dd651796fa WHIRLPOOL 0f87e6ed8deeb0d94faa8c6419fdb6a4e11b388712a95dc9e2ed1a653be17bad973843f40f311d03d307c24e68b9acfac1a3cc86cc5723280388727245e4f393
+AUX e2tools-0.0.16-qsort-const.patch 3298 SHA256 bca128e1f85f13f07a847b8064ea30d4b298b1ef0119ccc6d2ce218215ef2c1d SHA512 a063eceb7ccfbc5a2289d877ad3b5f025d7f3b40a445a40804743858d29822fdaae304b0718d71fbdd0d77f477e91caa23bc43914a1b11d7241b109a946208ea WHIRLPOOL 0c8c094682a00bf92ee9a24f958e87084098682ceedafd9c616a8b06a7a72fad14c4b6225e82fadc314ff2727992a96c233881c05f0925d3720b53323274418c
+DIST e2tools-0.0.16.tar.gz 72333 SHA256 4e3c8e17786ccc03fc9fb4145724edf332bb50e1b3c91b6f33e0e3a54861949b SHA512 8be79385c07027286951755a7ca0407215b517d4abba5546a0958fcb5e8feaffc993d35dd56bde39e14d397875941fc812c713db3d27247cd8e9ee7ed6a153b4 WHIRLPOOL 0131317a6e46fe9c55eb4a0e3da1bcf4480ebfc94e3b3b6f78b82bbac9d819017378ecabd54b57f6d7a31830bb5d260f5013be242840857d3a7ce1ade8b0843e
+EBUILD e2tools-0.0.16.ebuild 767 SHA256 5b52fa14ce024a9604b3ff8e7e8976064de064fe68113ca81b7330c210e370ee SHA512 274dd304d3452efb511e8f721724487beebcda085e894b2db078c41a843885d6b7f3de0eec3ce982f5e34fe19ee610e1b0f14dba2f16acb9766407c2c0b3633c WHIRLPOOL 09225a8a4e8532064e2153f3ee4d2169c0fc220c5d1a61922a8fdb4eb0dbedfc3162c049c1c6959562756ac5b1c203d4a180a9ebfa181d9f42c20d7176fd8fcb
+MISC ChangeLog 3480 SHA256 1083aa43fd71a5221e36cff069cce80cd36a615b3cd3dfa48208073f17c500e7 SHA512 14157eefc1f7f452c0dd566065952820ddc50bafe3bf1de8dfdfd9953adb0b32f5b5f22c3652491a7781f172963774a16a7d7a4d941c318814d33777cf1717bb WHIRLPOOL 7d5eb1be52950132660d756bcea3c9720cae1e1c943dfa1c1089efd491e661d42805153c955d6eb25f35534d3a582a417c70fbad20a33d53ed0a0cb81c42c1f3
+MISC ChangeLog-2015 348 SHA256 fc344ed0cb5d3634e908e9ae2960cc1c0dd26da2a219a1fd84dd70ae52dcdc8a SHA512 aa88b14689fabd11e2a4a61803900f5318e5062a68d5b94ff03a87932504fc541f52cb5ac84543089f5624c77ae58ee7ed60b04478eb05c871b126748c0cbd18 WHIRLPOOL 23abc7c6e5f4290ace14bdfcbc138a2d3648acbbdd87020adb65293b03f32b084990bbb7085475b0c2af54aefa7c16c4a4bc95f1472c007d635eb36c6829d4bc
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/e2tools/e2tools-0.0.16.ebuild b/sys-fs/e2tools/e2tools-0.0.16.ebuild
new file mode 100644
index 000000000000..2471b9e8b1b6
--- /dev/null
+++ b/sys-fs/e2tools/e2tools-0.0.16.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="utilities to read, write, and manipulate files in an ext2/ext3 filesystem"
+HOMEPAGE="http://home.earthlink.net/~k_sheff/sw/e2tools/"
+SRC_URI="http://home.earthlink.net/~k_sheff/sw/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="sys-fs/e2fsprogs
+ sys-libs/e2fsprogs-libs"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-prototypes.patch
+ epatch "${FILESDIR}"/${P}-qsort-const.patch
+ sed -i '/e2cp_LDADD/s:-L@[^@]*@::' Makefile.in || die
+}
+
+src_configure() {
+ # The configure script is ancient.
+ export CONFIG_SHELL="/bin/bash"
+ tc-export CC
+ default
+}
diff --git a/sys-fs/e2tools/files/e2tools-0.0.16-prototypes.patch b/sys-fs/e2tools/files/e2tools-0.0.16-prototypes.patch
new file mode 100644
index 000000000000..39a9ddb7daad
--- /dev/null
+++ b/sys-fs/e2tools/files/e2tools-0.0.16-prototypes.patch
@@ -0,0 +1,167 @@
+fix various missing prototype warnings
+
+--- a/e2tools.h
++++ b/e2tools.h
+@@ -63,38 +63,33 @@
+ #define E2T_FORCE 1
+ #define E2T_DO_MV 2
+
+-#ifndef COPY_C
++/* copy.c */
+ extern long copy(int argc, char *argv[]);
+ extern int my_strcmp(const void *n1, const void *n2);
+-#endif
+
+-#ifdef LN_C
++/* ln.c */
+ extern long do_ln(int argc, char *argv[]);
+
+ extern long create_hard_link(ext2_filsys fs, ext2_ino_t cwd, ext2_ino_t
+ new_file_ino, char *newfile, int ln_flags);
+-#endif
+
+-#ifndef LS_C
++/* ls.c */
+ extern long do_list_dir(int argc, char *argv[]);
+-#endif
+
+-#ifndef MKDIR_C
++/* mkdir.c */
+ extern long e2mkdir(int argc, char *argv[]);
+ extern long create_dir(ext2_filsys fs, ext2_ino_t root, ext2_ino_t *cwd,
+ char *dirname, struct stat *def_stat);
+-#endif
++extern long change_cwd(ext2_filsys fs, ext2_ino_t root, ext2_ino_t *cwd,
++ char *dirname);
+
+-#ifdef MV_C
++/* mv.c */
+ extern long do_mv(int argc, char *argv[]);
+ extern long get_file_parts(ext2_filsys fs, ext2_ino_t root, char *pathname,
+ ext2_ino_t *dir_ino, char **dir_name,
+ char **base_name);
+
+-#endif
+-
+-
+-#ifndef READ_C
++/* read.c */
+ extern long get_file(ext2_filsys fs, ext2_ino_t root, ext2_ino_t cwd,
+ char *infile, char *outfile, int keep);
+ extern long retrieve_data(ext2_filsys fs, ext2_ino_t src, int dest_fd,
+@@ -102,17 +97,14 @@ extern long retrieve_data(ext2_filsys fs, ext2_ino_t src, int dest_fd,
+ ext2_off_t *ret_pos);
+ extern long read_to_eof(ext2_file_t infile, int dest_fd, ext2_off_t offset,
+ ext2_off_t *ret_pos);
+-#endif
+
+-#ifndef RM_C
++/* rm.c */
+ extern long e2rm(int argc, char *argv[]);
+-#endif
+
+-#ifndef TAIL_C
++/* tail.c */
+ extern long do_tail(int argc, char *argv[]);
+-#endif
+
+-#ifndef UTIL_C
++/* util.c */
+ extern mode_t ext2_mode_xlate(__u16 lmode);
+ extern __u16 host_mode_xlate(mode_t hmode);
+ extern long open_filesystem(char *name, ext2_filsys *fs, ext2_ino_t *root, int
+@@ -125,13 +117,14 @@ extern long rm_file(ext2_filsys fs, ext2_ino_t cwd, char *outfile, ext2_ino_t
+ delfile);
+ extern long delete_file(ext2_filsys fs, ext2_ino_t inode);
+ extern void init_stat_buf(struct stat *buf);
+-#endif
++#include <regex.h>
++extern regex_t *make_regexp(char *shell);
++extern int is_file_regexp(char *ptr);
+
+-#ifndef WRITE_C
++/* write.c */
+ extern long
+ put_file(ext2_filsys fs, ext2_ino_t cwd, char *infile, char *outfile,
+ ext2_ino_t *outfile_ino, int keep, struct stat *def_stat);
+-#endif
+
+ #endif
+
+--- a/elist.c
++++ b/elist.c
+@@ -41,12 +41,9 @@
+ /* Feature Test Switches */
+ /* Headers */
+ #include <memory.h>
++#include <stdlib.h>
+ #include "elist.h"
+
+-#ifndef NULL
+-#define NULL ((void *)0)
+-#endif
+-
+ elist_t *
+ elist_new()
+ {
+--- a/ls.c
++++ b/ls.c
+@@ -703,7 +703,7 @@ void short_disp(ls_file_t *info, int *col, int options)
+ char lbr, rbr;
+ char tmp[300];
+ int thislen;
+- static max_col_size = 0;
++ static int max_col_size = 0;
+
+ if (max_col_size == 0)
+ {
+--- a/mkdir.c
++++ b/mkdir.c
+@@ -357,7 +357,7 @@ create_dir(ext2_filsys fs, ext2_ino_t root, ext2_ino_t *cwd,
+ def_stat)))
+ {
+ fprintf(stderr,
+- "create_dir: error creating directory %s/%s:%d\n",
++ "create_dir: error creating directory %s/%s:%ld\n",
+ dirname, dname, retval);
+ ext2fs_free_mem((void **) &buf);
+ return(retval);
+@@ -415,7 +415,7 @@ create_dir(ext2_filsys fs, ext2_ino_t root, ext2_ino_t *cwd,
+ if ((retval = create_subdir(fs, root, cwd, dirname, def_stat)))
+ {
+ fprintf(stderr,
+- "create_dir: error creating directory %s:%d\n",
++ "create_dir: error creating directory %s:%ld\n",
+ dirname, retval);
+ return(retval);
+ }
+--- a/progress.c
++++ b/progress.c
+@@ -26,6 +26,8 @@
+ /* Feature Test Switches */
+ /* System Headers */
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+@@ -154,7 +156,7 @@ void update_progress(unsigned long num_bytes)
+ if (prog_sbuf != NULL && prog_time != tv.tv_sec)
+ {
+ prog_time = tv.tv_sec;
+- fprintf(stderr, "%s %10d / %10d\r", prog_file, num_bytes,
++ fprintf(stderr, "%s %10lu / %10jd\r", prog_file, num_bytes,
+ prog_sbuf->st_size);
+ fflush(stderr);
+ }
+--- a/rm.c
++++ b/rm.c
+@@ -244,7 +244,6 @@ e2rm(int argc, char *argv[])
+ retval = ext2fs_dir_iterate2(gbl_fs, curr_ino,
+ DIRENT_FLAG_INCLUDE_EMPTY, 0,
+ rm_dir_proc,
+- (void *)
+ (verbose) ? &verbose : NULL);
+ }
+ else
diff --git a/sys-fs/e2tools/files/e2tools-0.0.16-qsort-const.patch b/sys-fs/e2tools/files/e2tools-0.0.16-qsort-const.patch
new file mode 100644
index 000000000000..532b8fb45630
--- /dev/null
+++ b/sys-fs/e2tools/files/e2tools-0.0.16-qsort-const.patch
@@ -0,0 +1,102 @@
+the qsort func expects a callback with const pointers, so update all the
+prototypes to match
+
+--- a/elist.c
++++ b/elist.c
+@@ -136,7 +133,7 @@ elist_insert(elist_t *l, void *data)
+ return(l);
+ }
+
+-void elist_sort(elist_t *l, int (sort_func)(void *, void *), int reverse)
++void elist_sort(elist_t *l, int (sort_func)(const void *, const void *), int reverse)
+ {
+ int c=0;
+ elist_t *tl;
+--- a/elist.h
++++ b/elist.h
+@@ -33,7 +33,7 @@ extern void elist_free(elist_t *l, void (*data_free)(void *));
+ extern elist_t * elist_append(elist_t *l, void *data);
+ extern elist_t * elist_insert(elist_t *l, void *data);
+ extern void
+-elist_sort(elist_t *l, int (sort_func)(void *, void *), int reverse);
++elist_sort(elist_t *l, int (sort_func)(const void *, const void *), int reverse);
+ #endif
+
+ #endif
+--- a/ls.c
++++ b/ls.c
+@@ -98,15 +98,15 @@ long_disp(ls_file_t *info, int *col, int options);
+ void
+ short_disp(ls_file_t *info, int *col, int options);
+ int
+-no_sort(void *n1, void *n2);
++no_sort(const void *n1, const void *n2);
+ int
+-name_sort(void *n1, void *n2);
++name_sort(const void *n1, const void *n2);
+ int
+-inode_sort(void *n1, void *n2);
++inode_sort(const void *n1, const void *n2);
+ int
+-mod_time_sort(void *n1, void *n2);
++mod_time_sort(const void *n1, const void *n2);
+ int
+-creat_time_sort(void *n1, void *n2);
++creat_time_sort(const void *n1, const void *n2);
+ long
+ add_ls_file(char *name, int namelen, ext2_ino_t dir, ext2_ino_t ino,
+ int entry, int type, struct list_dir_struct *ls);
+@@ -331,7 +331,7 @@ do_list_dir(int argc, char *argv[])
+ char *dup_path = NULL;
+ char *dir_name;
+ char *base_name;
+- int (*file_sort)(void *n1, void *n2) = name_sort;
++ int (*file_sort)(const void *n1, const void *n2) = name_sort;
+ void (*file_disp)(ls_file_t *n, int *col, int options) = short_disp;
+ elist_t *files=NULL;
+ int col=0;
+@@ -791,7 +791,7 @@ void short_disp(ls_file_t *info, int *col, int options)
+ * MM/DD/YY Name Description
+ *
+ */
+-int no_sort(void *n1, void *n2)
++int no_sort(const void *n1, const void *n2)
+ {
+ ls_file_t *f1 = *((ls_file_t **) n1);
+ ls_file_t *f2 = *((ls_file_t **) n2);
+@@ -835,7 +835,7 @@ int no_sort(void *n1, void *n2)
+ * MM/DD/YY Name Description
+ *
+ */
+-int name_sort(void *n1, void *n2)
++int name_sort(const void *n1, const void *n2)
+ {
+ ls_file_t *f1 = *((ls_file_t **) n1);
+ ls_file_t *f2 = *((ls_file_t **) n2);
+@@ -880,7 +880,7 @@ int name_sort(void *n1, void *n2)
+ * MM/DD/YY Name Description
+ *
+ */
+-int inode_sort(void *n1, void *n2)
++int inode_sort(const void *n1, const void *n2)
+ {
+ ls_file_t *f1 = *((ls_file_t **) n1);
+ ls_file_t *f2 = *((ls_file_t **) n2);
+@@ -925,7 +925,7 @@ int inode_sort(void *n1, void *n2)
+ * MM/DD/YY Name Description
+ *
+ */
+-int mod_time_sort(void *n1, void *n2)
++int mod_time_sort(const void *n1, const void *n2)
+ {
+ ls_file_t *f1 = *((ls_file_t **) n1);
+ ls_file_t *f2 = *((ls_file_t **) n2);
+@@ -971,7 +971,7 @@ int mod_time_sort(void *n1, void *n2)
+ * MM/DD/YY Name Description
+ *
+ */
+-int creat_time_sort(void *n1, void *n2)
++int creat_time_sort(const void *n1, const void *n2)
+ {
+ ls_file_t *f1 = *((ls_file_t **) n1);
+ ls_file_t *f2 = *((ls_file_t **) n2);
diff --git a/sys-fs/e2tools/metadata.xml b/sys-fs/e2tools/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/e2tools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/e4rat/Manifest b/sys-fs/e4rat/Manifest
new file mode 100644
index 000000000000..89aaa1c84066
--- /dev/null
+++ b/sys-fs/e4rat/Manifest
@@ -0,0 +1,11 @@
+AUX e4rat-0.2.2-libdir.patch 509 SHA256 7b8427c7380c6a56a9c70a1f2f8794550e46f4a110efd9e4cd476f9079e39157 SHA512 c942b1fe189500c666e0994c3b7563a96b05fe065f0b3c2ff5f99bb3a0b462cc13e5ac6ecc692e10d6eec43f2d83c1f80bed7c3f354cda3f3f0d85d358e85d0f WHIRLPOOL 65d0fc8e1ac179346ff75bd60332c920215d3a9252cdd2044515df106d1fb35ec1d15ddde15a9622e7fdd03d50a90ed7584e2d0ccb5a668fab10a1b274b5b478
+AUX e4rat-0.2.2-shared-build.patch 2560 SHA256 0ece6e10a5a77857bb16a61952c69211318046c435cd7f91c522c0c59c19cbaa SHA512 0cb8acc4c2df6cc92574f46153516dbc0cb91240cccb46e2879d60a515af066688db3c79a5f66cf5da43b5a51a85c9cea22cef52178ebea5aec7c267f67562d0 WHIRLPOOL 67361405f6cf52f1f130054b7ad0669c7e06313c761c71f51549acac63a56762bb0dd57d556c6c6ebbe0e7e9dafb774869bd517defbde54e0546dfb1521a1c12
+AUX e4rat-0.2.4-gcc6.patch 542 SHA256 a827c1eb43b15b36c3365dc0a30d4b57f62aec2983e01f2ec64e70e1853ae8f9 SHA512 9bb843a0359acb843a513f701b71a2b666c550d28708a14cdc6e77c4fc56362a10990cfe3fbed2ff9724dc71bc0be6ec72be4309b6e2383120ca75697f359512 WHIRLPOOL 37a11c575fad734c1f001624bbf1695f64a7f5fa567a5ef93d066a88109e42c87579c7e9f94a7ab6a1e45ecb2239649f2e61b11622db72ceb854535fde2869de
+AUX e4rat-0.2.4-strdup.patch 1427 SHA256 efcf1c27cccec567d99ff24a96dea6eda32d48452c1c861d14e864847361335d SHA512 62d2b4b2b5e8a9b309b920d20fee98057f7e7564cf86e01f8d4cbd3219b47caf7d78ddfe71b01fde46997bb8966e2ce76df4d32ec6ab9a6190a1351bc2faf6cc WHIRLPOOL a5a6383093a8402d1334d88f769c32529bd95860562770c23060a357fbd7e346cc4ca1d0cd48e6ec91dd0616eca5ce60a9c165e4a14df3c3abf8a3efef0db777
+AUX e4rat-0.2.4-sysmacros.patch 288 SHA256 419662b3f45c68a739172ecd5fac6bb4ecaad1be0558c1fd9f0a4e02aec5f902 SHA512 50883828bf95368c31c620fac46728c6bfaf768a794158b30614cb2c0b7a65ee82e8bcf12268a26de93e87fb6b0466bc93e29a7dd69895234693745e24a6da59 WHIRLPOOL d48091b55b42a9aeef2ebcdc9181556fe5bb3dc32c5ea34e5fd082ac2ccff13028246f045b820d194fb9a51df92fcfa7bc7c7586e2cec32c0b919ba463bc0f84
+DIST e4rat-0.2.4_pre20141201.tar.xz 60408 SHA256 757d9d76b395a8b5092205bf623ba73860546f5f13efdf6b6347217b4ebe9e4b SHA512 61a53f6ac420392df5894d3f76de28c5d2e33fd3a6548cf8c9de52818bf937ba8bf8629db1b89103faa73b660548d7e467e17d7f2794a4100ca07971ded0cfb9 WHIRLPOOL 6c33956a6a601fd05d89325a2d2fa96ddf00c7e8130ac599c39e59e1ee3d3c21fc5ce712421969d96e96cfadd91fdbe6acc24d31d7acf413632fb49a575edeae
+EBUILD e4rat-0.2.4_pre20141201-r1.ebuild 1612 SHA256 ea9d49e9d0881b3674f2a4d824eca3dfcc0f766cb8de31901e4a47386dedfc29 SHA512 889c80b66c54fc1377c4ccc66608093fc09e0e389acf56b0ad9fa69c2cf1c8d8fafc39a612cb76530fb67087698b3c3543fcd40fe9b3420677ed5fd85dc5e793 WHIRLPOOL 63cea8a820a5372a1b33cdb3d608cc63c1852e15ea446d8043c3df6cbb996126681bff601a1f187c254786f756eeadacbc0d206168a5efb9dd86a6f8b2d03abe
+EBUILD e4rat-0.2.4_pre20141201.ebuild 1570 SHA256 4adefc8498e6f62c15a4de30fc170a9a0f1b5d4336b8400e2aabdc2fa23269b7 SHA512 9f8fcdeea6541af1f20487920fdb3d11e3ab2dbda7a8b7ecf284492a48338e264616a475442ce765c937c7f2d44b2b2f277d0a8fc73021f7fa7391fa7e92c21e WHIRLPOOL 77c4158c6feb8a1c554a7601668db35b2a77b34162df2a540f3ebb93c411ae0bd6e68c00e06b7cd1cb22b50cb9fd2342b0fe8f1d889772e8224c780e0606c70e
+MISC ChangeLog 3598 SHA256 dd8b8b86040a27f2621d92b12bb95b0d36beb0d6338e985a1e864aee67911297 SHA512 b5058ad7d8e8da10c5fd0aed02b72a6cd6034a62ca0388145f5c510ca2f998f5cb33892492e74368fd9d03328f16655feb9eb28b5fc01fdff528a18e0e4c2360 WHIRLPOOL d9ac3ce627f74d2cd8a80118f3eb842c7477816c2076505637b4a5c2f3a0b4ec41c9dd8c3e7f1e2b64754e23157fc9755cbe2ebb3dbba9c59836b79ad2abbac5
+MISC ChangeLog-2015 3138 SHA256 0b6ade99e2cf02df427bf4a5923e107a9f6b6e5f63bed3000a5402b6736e49fb SHA512 0fe4d5d025ea8cc9ef55b752f2445269e42ad036d47680d0ac24c9b90f86b75531dba0fe7affa1dbf7e4222bf3a1aea565ec7e09204111d745e037a5cc390057 WHIRLPOOL b337ca37dd11338cadf0440a6d406dfd48c138dd168fdcf5f57a19749fe140e56fa3e0635138a304b0f6dbaaf92f81dd898b8eb0932f8445c0a743aeede60515
+MISC metadata.xml 325 SHA256 b1cc5029a51cd30866c47c99ced2f8260966451265ed2be2c2bef79bda0b0a75 SHA512 3630260f53b5922cd23604a77495370f77cef226d9ca2ba42b31f3ed342f53f9f00c5c4a22eb2f9041dde577f612f8ba2ea9af1a649d105f52c1d15b41a0d516 WHIRLPOOL 4ff34e857165daaab51e379ce733bc0d7b3f2be28d38f181a91206ae24d41d1648f5e5d22aecb121a72b9632a8772c70139d9ae1e49410dbc61796c6d262bf77
diff --git a/sys-fs/e4rat/e4rat-0.2.4_pre20141201-r1.ebuild b/sys-fs/e4rat/e4rat-0.2.4_pre20141201-r1.ebuild
new file mode 100644
index 000000000000..b7a6e6d7662a
--- /dev/null
+++ b/sys-fs/e4rat/e4rat-0.2.4_pre20141201-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit cmake-utils linux-info readme.gentoo-r1
+
+DESCRIPTION="Toolset to accelerate the boot process and application startup"
+HOMEPAGE="http://e4rat.sourceforge.net/"
+#SRC_URI="mirror://sourceforge/${PN}/${P/-/_}_src.tar.gz"
+SRC_URI="https://dev.gentoo.org/~pacho/${PN}/${PN}-0.2.4_pre20141201.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-lang/perl:=
+ >=dev-libs/boost-1.42:=
+ sys-fs/e2fsprogs
+ sys-process/audit[static-libs(+)]
+ sys-process/lsof
+"
+DEPEND="${DEPEND}"
+
+CONFIG_CHECK="~AUDITSYSCALL"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.2.2-shared-build.patch
+ "${FILESDIR}"/${PN}-0.2.2-libdir.patch
+ "${FILESDIR}"/${PN}-0.2.4-sysmacros.patch #580534
+ "${FILESDIR}"/${PN}-0.2.4-gcc6.patch #594046
+ "${FILESDIR}"/${PN}-0.2.4-strdup.patch
+)
+
+pkg_setup() {
+ check_extra_config
+ DOC_CONTENTS="
+ To launch systemd from e4rat you simply need to edit /etc/e4rat.conf
+ and set:\n
+ ; path to init process binary (DEFAULT: /sbin/init)\n
+ init /usr/lib/systemd/systemd"
+}
+
+src_install() {
+ cmake-utils_src_install
+ # relocate binaries to /sbin. If someone knows of a better way to do it
+ # please do tell me
+ dodir sbin
+ find "${D}"/usr/sbin -type f -exec mv {} "${D}"/sbin/. \; \
+ || die
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ if has_version sys-apps/preload; then
+ elog "It appears you have sys-apps/preload installed. This may"
+ elog "has negative effects on ${PN}. You may want to disable preload"
+ elog "when using ${PN}."
+ fi
+}
diff --git a/sys-fs/e4rat/e4rat-0.2.4_pre20141201.ebuild b/sys-fs/e4rat/e4rat-0.2.4_pre20141201.ebuild
new file mode 100644
index 000000000000..35b98532f0ad
--- /dev/null
+++ b/sys-fs/e4rat/e4rat-0.2.4_pre20141201.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit cmake-utils linux-info readme.gentoo-r1
+
+DESCRIPTION="Toolset to accelerate the boot process and application startup"
+HOMEPAGE="http://e4rat.sourceforge.net/"
+#SRC_URI="mirror://sourceforge/${PN}/${P/-/_}_src.tar.gz"
+SRC_URI="https://dev.gentoo.org/~pacho/${PN}/${PN}-0.2.4_pre20141201.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="
+ dev-lang/perl:=
+ >=dev-libs/boost-1.42:=
+ sys-fs/e2fsprogs
+ sys-process/audit[static-libs(+)]
+ sys-process/lsof
+"
+DEPEND="${DEPEND}"
+
+CONFIG_CHECK="~AUDITSYSCALL"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.2.2-shared-build.patch
+ "${FILESDIR}"/${PN}-0.2.2-libdir.patch
+ "${FILESDIR}"/${PN}-0.2.4-sysmacros.patch #580534
+ "${FILESDIR}"/${PN}-0.2.4-gcc6.patch #594046
+)
+
+pkg_setup() {
+ check_extra_config
+ DOC_CONTENTS="
+ To launch systemd from e4rat you simply need to edit /etc/e4rat.conf
+ and set:\n
+ ; path to init process binary (DEFAULT: /sbin/init)\n
+ init /usr/lib/systemd/systemd"
+}
+
+src_install() {
+ cmake-utils_src_install
+ # relocate binaries to /sbin. If someone knows of a better way to do it
+ # please do tell me
+ dodir sbin
+ find "${D}"/usr/sbin -type f -exec mv {} "${D}"/sbin/. \; \
+ || die
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+ if has_version sys-apps/preload; then
+ elog "It appears you have sys-apps/preload installed. This may"
+ elog "has negative effects on ${PN}. You may want to disable preload"
+ elog "when using ${PN}."
+ fi
+}
diff --git a/sys-fs/e4rat/files/e4rat-0.2.2-libdir.patch b/sys-fs/e4rat/files/e4rat-0.2.2-libdir.patch
new file mode 100644
index 000000000000..eaa2695d7872
--- /dev/null
+++ b/sys-fs/e4rat/files/e4rat-0.2.2-libdir.patch
@@ -0,0 +1,14 @@
+Index: e4rat-0.2.2/src/CMakeLists.txt
+===================================================================
+--- e4rat-0.2.2.orig/src/CMakeLists.txt
++++ e4rat-0.2.2/src/CMakeLists.txt
+@@ -170,8 +170,7 @@ endif(NOT BUILD_CORE_LIBRARY_STATIC)
+
+ INSTALL(TARGETS ${${PROJECT_NAME}_TARGETS}
+ RUNTIME DESTINATION "sbin"
+- LIBRARY DESTINATION "lib"
+- ARCHIVE DESTINATION "lib"
++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ )
+
+ INSTALL(DIRECTORY DESTINATION "/var/lib/${PROJECT_NAME}")
diff --git a/sys-fs/e4rat/files/e4rat-0.2.2-shared-build.patch b/sys-fs/e4rat/files/e4rat-0.2.2-shared-build.patch
new file mode 100644
index 000000000000..636eb52fb612
--- /dev/null
+++ b/sys-fs/e4rat/files/e4rat-0.2.2-shared-build.patch
@@ -0,0 +1,74 @@
+Index: e4rat-0.2.2/CMakeLists.txt
+===================================================================
+--- e4rat-0.2.2.orig/CMakeLists.txt
++++ e4rat-0.2.2/CMakeLists.txt
+@@ -14,7 +14,6 @@ IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_D
+ set(CMAKE_INSTALL_PREFIX "/" CACHE PATH "e4rat install prefix" FORCE)
+ ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
+-set(Boost_USE_STATIC_LIBS ON)
+ set(Boost_USE_MULTITHREADED OFF)
+ add_definitions(-DBOOST_FILESYSTEM_VERSION=2)
+ find_package(Boost 1.41 COMPONENTS system filesystem regex REQUIRED)
+Index: e4rat-0.2.2/src/CMakeLists.txt
+===================================================================
+--- e4rat-0.2.2.orig/src/CMakeLists.txt
++++ e4rat-0.2.2/src/CMakeLists.txt
+@@ -131,21 +131,12 @@ IF(CMAKE_BUILD_TYPE STREQUAL "debug")
+ )
+ ENDIF(CMAKE_BUILD_TYPE STREQUAL "debug")
+
+-# On 64 bit architecture you cannot link a static to a shared library
+-# Therefore -static-libstdc++ will fail.
+-if(BUILD_CORE_LIBRARY_STATIC)
+- add_library(${PROJECT_NAME}-core STATIC
+- ${${PROJECT_NAME}-core_SRC}
+- )
+-else(BUILD_CORE_LIBRARY_STATIC)
+- add_library(${PROJECT_NAME}-core SHARED
+- ${${PROJECT_NAME}-core_SRC}
+- )
+- set_target_properties(${PROJECT_NAME}-core PROPERTIES
+- SOVERSION 0
+- LINK_FLAGS "-static-libgcc -static-libstdc++"
+- )
+-endif(BUILD_CORE_LIBRARY_STATIC)
++add_library(${PROJECT_NAME}-core SHARED
++ ${${PROJECT_NAME}-core_SRC}
++)
++set_target_properties(${PROJECT_NAME}-core PROPERTIES
++ SOVERSION 0
++)
+
+ target_link_libraries(${PROJECT_NAME}-core
+ ${${PROJECT_NAME}_LIBRARIES}
+@@ -158,15 +149,13 @@ foreach( EXE ${PROJECT_NAME}-collect
+ TARGET_LINK_LIBRARIES(${EXE}
+ ${PROJECT_NAME}-core
+ )
+- set_target_properties(${EXE} PROPERTIES
+- LINK_FLAGS "-static-libgcc -static-libstdc++"
+- )
+ endforeach( EXE )
+
+ ###
+ # install project targets
+ ###
+ set(${PROJECT_NAME}_TARGETS
++ ${PROJECT_NAME}-core
+ ${PROJECT_NAME}-collect
+ ${PROJECT_NAME}-preload
+ ${PROJECT_NAME}-realloc
+Index: e4rat-0.2.2/src/cmake/Findaudit.cmake
+===================================================================
+--- e4rat-0.2.2.orig/src/cmake/Findaudit.cmake
++++ e4rat-0.2.2/src/cmake/Findaudit.cmake
+@@ -1,7 +1,7 @@
+ FIND_PATH(AUDIT_INCLUDE_DIR libaudit.h /usr/include
+ /usr/local/include)
+
+-FIND_LIBRARY(AUDIT_LIBRARY NAMES libaudit.a PATH /usr/lib /usr/local/lib)
++FIND_LIBRARY(AUDIT_LIBRARY NAMES audit PATH /usr/lib /usr/local/lib)
+
+ IF (AUDIT_INCLUDE_DIR AND AUDIT_LIBRARY)
+ SET(AUDIT_FOUND TRUE)
diff --git a/sys-fs/e4rat/files/e4rat-0.2.4-gcc6.patch b/sys-fs/e4rat/files/e4rat-0.2.4-gcc6.patch
new file mode 100644
index 000000000000..cdf14e5c92eb
--- /dev/null
+++ b/sys-fs/e4rat/files/e4rat-0.2.4-gcc6.patch
@@ -0,0 +1,11 @@
+--- e4rat-0.2.4_pre20141201/src/logging.hh.old 2016-09-21 22:01:37.631925077 -0400
++++ e4rat-0.2.4_pre20141201/src/logging.hh 2016-09-21 22:01:44.351086734 -0400
+@@ -93,7 +93,7 @@
+ #define dump_log(...) logger.write(__VA_ARGS__)
+
+ #ifdef DEBUG_ENABLED
+- #define debug(format,args...) dump_log(Debug, "%s:%d in %s(): "format, __FILE__, __LINE__, __FUNCTION__, ## args)
++ #define debug(format,args...) dump_log(Debug, "%s:%d in %s(): " format, __FILE__, __LINE__, __FUNCTION__, ## args)
+ #else
+ #define debug(format,args...)
+ #endif
diff --git a/sys-fs/e4rat/files/e4rat-0.2.4-strdup.patch b/sys-fs/e4rat/files/e4rat-0.2.4-strdup.patch
new file mode 100644
index 000000000000..c3a9cd0e8ca0
--- /dev/null
+++ b/sys-fs/e4rat/files/e4rat-0.2.4-strdup.patch
@@ -0,0 +1,41 @@
+--- e4rat-0.2.4_pre20141201/src/e4rat-collect.cc.orig 2014-11-24 12:12:12.000000000 +0300
++++ e4rat-0.2.4_pre20141201/src/e4rat-collect.cc 2017-02-12 02:16:25.151757182 +0300
+@@ -32,6 +32,7 @@
+ #include <fcntl.h>
+ #include <fstream>
+ #include <signal.h>
++#include <cstring>
+
+ /* EXT2_SUPER_MAGIC */
+ #include <ext2fs/ext2_fs.h>
+@@ -361,7 +362,9 @@
+ {
+ create_pid_late = true;
+
+- outPath = Config::get<std::string>("startup_log_file").c_str();
++ // It is unsafe to use Config::get<T>(arg)c_str() pointer
++ // directly, since it may be overwritten by later get calls.
++ outPath = strdup(Config::get<std::string>("startup_log_file").c_str());
+ verbose = 0;
+ }
+ else
+--- e4rat-0.2.4_pre20141201/src/e4rat-preload.cc.orig 2014-11-24 12:12:12.000000000 +0300
++++ e4rat-0.2.4_pre20141201/src/e4rat-preload.cc 2017-02-12 02:16:38.425552630 +0300
+@@ -25,6 +25,7 @@
+
+ #include <iostream>
+ #include <fstream>
++#include <cstring>
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -227,7 +228,8 @@
+ try {
+ if(getpid() == 1)
+ {
+- const char* logfile = Config::get<std::string>("startup_log_file").c_str();
++ // pointer may change, string must be copied
++ const char* logfile = strdup(Config::get<std::string>("startup_log_file").c_str());
+ notice("Open %s ... ", logfile);
+ FILE* infile = fopen(logfile, "r");
+ if(!infile)
diff --git a/sys-fs/e4rat/files/e4rat-0.2.4-sysmacros.patch b/sys-fs/e4rat/files/e4rat-0.2.4-sysmacros.patch
new file mode 100644
index 000000000000..5cdcf3f05ae5
--- /dev/null
+++ b/sys-fs/e4rat/files/e4rat-0.2.4-sysmacros.patch
@@ -0,0 +1,13 @@
+https://sourceforge.net/p/e4rat/tickets/5/
+https://bugs.gentoo.org/580534
+
+--- a/src/common.hh
++++ b/src/common.hh
+@@ -20,6 +20,7 @@
+ #ifndef COMMON_HH
+ #define COMMON_HH
+
++#include <sys/sysmacros.h>
+ #include <linux/types.h>
+ #include <boost/filesystem.hpp>
+ #include <boost/regex.hpp>
diff --git a/sys-fs/e4rat/metadata.xml b/sys-fs/e4rat/metadata.xml
new file mode 100644
index 000000000000..141e2b6b51e6
--- /dev/null
+++ b/sys-fs/e4rat/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>bircoph@gentoo.org</email>
+ <name>Andrew Savchenko</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">e4rat</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/ecryptfs-utils/Manifest b/sys-fs/ecryptfs-utils/Manifest
new file mode 100644
index 000000000000..16a9da314844
--- /dev/null
+++ b/sys-fs/ecryptfs-utils/Manifest
@@ -0,0 +1,5 @@
+DIST ecryptfs-utils_108.orig.tar.gz 659465 SHA256 52838b1ad41113ba88a4318b19af10cf307100c6b3f62c608998d40312fbd7dd SHA512 856d8fac587921f1b5cd0b4ff269c7db8941b6b183506c5bc2e640a77994293f3e09ecfaef94f12c00f2378e756ecec252d3f59eebbabb4229105f8be87653ba WHIRLPOOL 0e6544df51204e0fe8b9e980cded34b49b3d4cc3ad45aa367b1806d93cfc5a0e337378fb008bee4afd0846520e00cc8ff51b3de69e00263d2338a120522b5ecb
+EBUILD ecryptfs-utils-108-r1.ebuild 1993 SHA256 695ae7603e2814bd085c625b6a07768fc23b6d460cad4fb2e878964c5fdcd8f6 SHA512 97a3e55a90b6853f50f91abdf7c74fc044109d5cf1901a6e37445c4fab9cede404f7eb52e24830e8a023f468312992f8dc1a02b6a1410eb200acfa6c0d19db48 WHIRLPOOL 0e7fee24436a7d93f57e08eb302bd368974c809ac645978375ef68cbc0543fa49f44a81e19c9140e07b80de1b29b0f75b6e8d848df47e10d987c1d344980bd17
+MISC ChangeLog 2876 SHA256 0839b0bbbc226982398842cb01e1e3285339dbe64deb27f466b618f662d4b675 SHA512 857c3b0c6a803d45fc643e2fa0a9cee05031a580f825dcb6297127bcbcd44841a1dc4d88507176d38fc03f50546cd04ea99b2a2aed43231f6c4046df5b0a8100 WHIRLPOOL 94ceef5998e470845cbf164052c68457054e2aef1186236a9045b8ca54c98eec6497f50aa113127dbe0cc9372cf94eb5fe4d6593e18610d978a89e53d7b6e113
+MISC ChangeLog-2015 10210 SHA256 d57444e5e0cb39f2f687eb1045e0a8ce6b4dd9433f36adab5402e1eaa89fbe53 SHA512 8a295dd3f47be535adb76952e44b9cbd54c6065805cb21878cbb4e85512c63a75e0398ea1a37d0d5a005cfab6399acc4a8ea0a9e01d12778c146ab3235f515fa WHIRLPOOL c8ebfb1450ed272a36b051e44ad8a4315c858f2b239b627be58bb6c10b473e4be41408acdf826d6a15fa02166666416c96a15be6e4d011a1a32c00741303470b
+MISC metadata.xml 727 SHA256 aa130a481824d14f524718d01a020305b396897b5e5b36df5276aaab33289a09 SHA512 87eaf8fc34e2f5ca0a2c60aa0d051901f6353e65eb6f63e29e26594588c69dd5f14039a6153bd5bc295a06674d8bb625fa43ccfd7f334188d8333f307405ab5a WHIRLPOOL 9edbeeee2b46f518ebb109d389933c7f7d3781c54ce22a3b23118b24985d932713067622ac09c3e8536053f52a817d456878eaec796c71346dafcf97d2aaef99
diff --git a/sys-fs/ecryptfs-utils/ecryptfs-utils-108-r1.ebuild b/sys-fs/ecryptfs-utils/ecryptfs-utils-108-r1.ebuild
new file mode 100644
index 000000000000..0cd09f5f26ec
--- /dev/null
+++ b/sys-fs/ecryptfs-utils/ecryptfs-utils-108-r1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit flag-o-matic pam python-single-r1 linux-info autotools
+
+DESCRIPTION="eCryptfs userspace utilities"
+HOMEPAGE="https://launchpad.net/ecryptfs"
+SRC_URI="https://launchpad.net/ecryptfs/trunk/${PV}/+download/${PN}_${PV}.orig.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="doc gpg gtk openssl pam pkcs11 python suid tpm"
+
+RDEPEND=">=sys-apps/keyutils-1.0
+ >=dev-libs/libgcrypt-1.2.0:0
+ dev-libs/nss
+ gpg? ( app-crypt/gpgme )
+ gtk? ( x11-libs/gtk+:2 )
+ openssl? ( >=dev-libs/openssl-0.9.7 )
+ pam? ( sys-libs/pam )
+ pkcs11? (
+ >=dev-libs/openssl-0.9.7
+ >=dev-libs/pkcs11-helper-1.04
+ )
+ python? ( ${PYTHON_DEPS} )
+ tpm? ( app-crypt/trousers )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ sys-devel/gettext
+ >=dev-util/intltool-0.41.0
+ python? ( dev-lang/swig )"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+
+ CONFIG_CHECK="~ECRYPT_FS"
+ linux-info_pkg_setup
+}
+
+src_configure() {
+ append-cppflags -D_FILE_OFFSET_BITS=64
+
+ econf \
+ --enable-nss \
+ --with-pamdir=$(getpam_mod_dir) \
+ $(use_enable doc docs) \
+ $(use_enable gpg) \
+ $(use_enable gtk gui) \
+ $(use_enable openssl) \
+ $(use_enable pam) \
+ $(use_enable pkcs11 pkcs11-helper) \
+ $(use_enable python pywrap) \
+ $(use_enable tpm tspi)
+}
+
+src_install(){
+ emake DESTDIR="${D}" install
+
+ if use python; then
+ echo "ecryptfs-utils" > "${D}$(python_get_sitedir)/ecryptfs-utils.pth" || die
+ fi
+
+ use suid && fperms u+s /sbin/mount.ecryptfs_private
+
+ find "${ED}" -name '*.la' -exec rm -f '{}' + || die
+}
+
+pkg_postinst() {
+ if use suid; then
+ ewarn
+ ewarn "You have chosen to install ${PN} with the binary setuid root. This"
+ ewarn "means that if there are any undetected vulnerabilities in the binary,"
+ ewarn "then local users may be able to gain root access on your machine."
+ ewarn
+ fi
+}
diff --git a/sys-fs/ecryptfs-utils/metadata.xml b/sys-fs/ecryptfs-utils/metadata.xml
new file mode 100644
index 000000000000..8fb8852b5c3b
--- /dev/null
+++ b/sys-fs/ecryptfs-utils/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>crypto@gentoo.org</email>
+ <name>Crypto</name>
+ </maintainer>
+ <use>
+ <flag name="gpg">Enable <pkg>app-crypt/gnupg</pkg> key module</flag>
+ <flag name="openssl">Enable <pkg>dev-libs/openssl</pkg> key
+ module</flag>
+ <flag name="pkcs11">Enable PKCS#11 (Smartcards) key module</flag>
+ <flag name="tpm">Enable support for Trusted Platform Module (TPM) using <pkg>app-crypt/trousers</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:ecryptfs:ecryptfs_utils</remote-id>
+ <remote-id type="launchpad">ecryptfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/encfs/Manifest b/sys-fs/encfs/Manifest
new file mode 100644
index 000000000000..fcccf2fbc8a4
--- /dev/null
+++ b/sys-fs/encfs/Manifest
@@ -0,0 +1,10 @@
+AUX encfs-1.7.5-fix-pod.patch 648 SHA256 8697013720d7022723cf4af5fbc7b490ebf56c14d72c2ef68e4a3f46af20c2de SHA512 aab2d30ebf3545391256dc6d5d18b4dcb0b15ab754272faac8aa48be213229265485dbc20691e3cc51d589baf3d6f27e6016a34b3ac9559f32a96f67ca891815 WHIRLPOOL ce4d135e1c97f75bad0b7de250cec77ffe53ea8270732c9b3d29207dcb5943bc17882c42adec12128c5740eb98a75d43bb78fee062d05dbe624f170e8e524364
+DIST encfs-1.7.5.tar.gz 168162 SHA256 111f15521479832a0ec5473c7e201316c88cae4e2c70bf8cea7fa23acb42c017 SHA512 e0cb9181d9c6c54a36dd19ab7a78d6f9ad0f017129d1addab012e72e00a3bb7e19481a2fbc511fd2a505c8b971cd93a02e556c6420b07acfba68ac3c37d224d7 WHIRLPOOL d0036483f404e81ba34d90a3bb5e422bf5354a05727cb75dcf8ab39c77b11276a21ec9e1e7933f554dbeb77107f4773d7251fbf50d5f4e2109d22658b8303177
+DIST encfs-1.8.1.tar.gz 316534 SHA256 ed6b69d8aba06382ad01116bbce2e4ad49f8de85cdf4e2fab7ee4ac82af537e9 SHA512 47e6cdded84c65bdb98c14774472a2f9df67f2bea05e4c2e20811d785c5ee458b708030922db9a5b49382495235a329bc8e889d104cc8501cd954119699847c6 WHIRLPOOL ccbd21927a9395dc178c41ebdf2fced4f8f7e14c23194baca32aa4270526388a34fd8817c2675d8610f983a90f121629056817c6599944f60a5d73b970e968f1
+DIST encfs-1.9.2.tar.gz 11043181 SHA256 cd9e972cd9565cdc26473c86d2c77c98de31fc6f604fa7d149dd5d6e35d46eaa SHA512 7664a2f48dddde77cae005aba70962704b002f60afb2da35c4661f7e4e22ce5c003d3b674ce125fcc72e9f0588164c1f7dbf22f2b9061d0736b8c164c1ec70a5 WHIRLPOOL 2ced1b71d94479daa06e79abf2faa7df9f47515fd6a2591d81af284a25be9af00be6d3c101f944072fd2af83436d8ec0022937748ecbb7e21d5f4e3273e11682
+EBUILD encfs-1.7.5.ebuild 944 SHA256 c990c86097988337e201403273e4fa0a2f344a3575f830debde88f36db936269 SHA512 7cc33ba27c23b1220cdd59a494fe92c219041c3dcff2189301ac8ba1d635ea117e41c6d5658fa3ad00d883df0961ac9ba56e44c7b09149670f95d3b7d6cc4848 WHIRLPOOL d096db865ffefcd4197867d00323b23a11097bde35ed76e83bc0c7790a26948439dd23235538f786cdeae46c5e54fbf73cf6c72508e43390514af34a4af712ea
+EBUILD encfs-1.8.1.ebuild 1186 SHA256 40adb539441f44dcd5e8dbadd68afd27a2348be9cf7f97ac7d392dfb144effd7 SHA512 d9133dbcf045e0a9fdef6c7fe8f7e8aa67b82d776f0f05388c93a891a54c3f9f48ab4d2ec232e358c54e2d713248a45a66ef950825e4e2677157f7fde154a1a9 WHIRLPOOL aae41c2ac421bb0c1cd941b64afd67e6a61b551b8b1d67bff54303aa9cca34417eae188b7dce311606725e4b9429b74c93a4d59ec4f3f4054c1075e97af1d0a3
+EBUILD encfs-1.9.2.ebuild 752 SHA256 b44d504db417bdc99c8a811a11124816037fbff5aad02a6225af7f1e57747a76 SHA512 3ae238ce2440306d45242e41cb05b84ede290d5ca783823d98f585e9411206e18cb5c7f3c7e34323ad6ec336594f4e3713cd0211a484a38f45b3b62bf6422c9a WHIRLPOOL 7d8208eaac0401f6b13669031af4b7eae360792b19d1067f283a8e2c26608512fd2ece3478e58bc554dacd19eed38e6648f88768778d8cecd4ccaa78039582ec
+MISC ChangeLog 3294 SHA256 e87782fcefa2d214f8c9d6c7e5c6e291eff2b0ba339a1688b31c32ce90666a28 SHA512 7fc8b48dcb9725787fe8b758517fe18fbc08f3f147e61def8eb7ff332679d232c5b86f5b6bfd6730d711d085686ed1314461d1cccdc076a8aa2704b364809afd WHIRLPOOL 87ca5f2b5bd9914b28a58c466530551c3bac9fdb423f2a6157d35207a18e075e5c69c0ad90183e4e1fba5e57218dc1e5068bfa96adfb43b0b862ed5cc6ffed82
+MISC ChangeLog-2015 10886 SHA256 330001625c837483a929b1c941b074a5bb193e605e82832a3d8781f4674f9218 SHA512 f883fbe1c404fb0b5ba504b940c5cc587f218062619f5fdaebe3f98cbfd608ca23de9171eb2a05eda9509bd0db3e779c103bb87cd77823dc1914f4a9b6a57137 WHIRLPOOL d734f74f218e00e76faeb546df6abefd9ec7e953f7e120e57def9a1811b2dd996ce66c68000c419ce11aa54c281bb0d40203086c0cb1caa5b046945aee8c9c74
+MISC metadata.xml 379 SHA256 ee1d24d7310c3b0ab2f32308a3346b4d1f9b43faa286252bd2d187aea78e14f9 SHA512 f94de3e423b8666aafc57201813f1b4e7a1be7da71736957aa70c4aa2d92d2b64a240e58c82bec472d97df0afefe5ba95e863243fda973804555e1625118b59f WHIRLPOOL cd76bb23f9c436ed7d6ea437c476fffcf2247670781b38bbcd33b56409ec449fe38772029a899781e2b87233822c37521fe1653fd75c7a50d3330149cf903835
diff --git a/sys-fs/encfs/encfs-1.7.5.ebuild b/sys-fs/encfs/encfs-1.7.5.ebuild
new file mode 100644
index 000000000000..8d95f5d6548a
--- /dev/null
+++ b/sys-fs/encfs/encfs-1.7.5.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils multilib
+
+DESCRIPTION="An implementation of encrypted filesystem in user-space using FUSE"
+HOMEPAGE="https://vgough.github.io/encfs/"
+SRC_URI="https://github.com/vgough/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~sparc x86"
+IUSE="xattr"
+
+RDEPEND="dev-libs/boost:=
+ dev-libs/openssl:0
+ >=dev-libs/rlog-1.4
+ >=sys-fs/fuse-2.7.0
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ virtual/pkgconfig
+ xattr? ( sys-apps/attr )
+ sys-devel/gettext"
+
+src_prepare() {
+ epatch "${FILESDIR}/encfs-1.7.5-fix-pod.patch"
+ eautoreconf
+}
+
+src_configure() {
+ use xattr || export ac_cv_header_attr_xattr_h=no
+
+ econf \
+ --disable-dependency-tracking
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc AUTHORS ChangeLog README
+ find "${D}" -name '*.la' -delete
+}
diff --git a/sys-fs/encfs/encfs-1.8.1.ebuild b/sys-fs/encfs/encfs-1.8.1.ebuild
new file mode 100644
index 000000000000..6624588a26f7
--- /dev/null
+++ b/sys-fs/encfs/encfs-1.8.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit autotools eutils multilib
+
+DESCRIPTION="An implementation of encrypted filesystem in user-space using FUSE"
+HOMEPAGE="https://vgough.github.io/encfs/"
+SRC_URI="https://github.com/vgough/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~sparc x86"
+IUSE="xattr nls"
+
+RDEPEND="dev-libs/boost:=
+ dev-libs/openssl:0
+ >=dev-libs/rlog-1.3
+ >=sys-fs/fuse-2.5
+ sys-libs/zlib"
+# Your libc probably provides xattrs, but to be safe
+# we'll dep on sys-apps/attr. This should be fixed
+# if we ever create a virtual/attr.
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ virtual/pkgconfig
+ xattr? ( sys-apps/attr )
+ nls? ( sys-devel/gettext )"
+
+src_prepare() {
+ eautoreconf
+}
+
+src_configure() {
+ # configure searches for either attr/xattr.h or sys/xattr.h
+ use xattr || export ac_cv_header_{attr,sys}_xattr_h=no
+
+ econf \
+ $(use_enable nls) \
+ --disable-valgrind \
+ --enable-openssl \
+ --disable-dependency-tracking
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc AUTHORS ChangeLog README.md
+ find "${D}" -name '*.la' -delete
+}
diff --git a/sys-fs/encfs/encfs-1.9.2.ebuild b/sys-fs/encfs/encfs-1.9.2.ebuild
new file mode 100644
index 000000000000..e1ed5b33785b
--- /dev/null
+++ b/sys-fs/encfs/encfs-1.9.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+inherit cmake-utils
+
+DESCRIPTION="An implementation of encrypted filesystem in user-space using FUSE"
+HOMEPAGE="https://vgough.github.io/encfs/"
+SRC_URI="https://github.com/vgough/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3 LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="libressl nls"
+
+RDEPEND="
+ !libressl? ( dev-libs/openssl:= )
+ libressl? ( dev-libs/libressl:= )
+ dev-libs/tinyxml2:0/3
+ sys-fs/fuse:=
+ sys-libs/zlib"
+DEPEND="
+ ${RDEPEND}
+ dev-lang/perl
+ sys-devel/gettext
+ virtual/pkgconfig"
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_NLS="$(usex nls)"
+ -DUSE_INTERNAL_TINYXML=OFF
+ )
+ cmake-utils_src_configure
+}
diff --git a/sys-fs/encfs/files/encfs-1.7.5-fix-pod.patch b/sys-fs/encfs/files/encfs-1.7.5-fix-pod.patch
new file mode 100644
index 000000000000..1089a92da286
--- /dev/null
+++ b/sys-fs/encfs/files/encfs-1.7.5-fix-pod.patch
@@ -0,0 +1,16 @@
+diff -Naur encfs-1.7.5.orig/encfs/encfsctl.pod encfs-1.7.5/encfs/encfsctl.pod
+--- encfs-1.7.5.orig/encfs/encfsctl.pod 2011-12-29 17:26:28.000000000 -0500
++++ encfs-1.7.5/encfs/encfsctl.pod 2014-11-01 14:24:48.636330176 -0400
+@@ -1,4 +1,3 @@
+-=cut
+ Copyright (c) 2003-2004, Valient Gough <vgough@pobox.com>
+ All rights reserved.
+
+diff -Naur encfs-1.7.5.orig/encfs/encfs.pod encfs-1.7.5/encfs/encfs.pod
+--- encfs-1.7.5.orig/encfs/encfs.pod 2011-12-29 17:26:28.000000000 -0500
++++ encfs-1.7.5/encfs/encfs.pod 2014-11-01 14:24:51.132330290 -0400
+@@ -1,4 +1,3 @@
+-=cut
+ Copyright (c) 2003-2008, Valient Gough <vgough@pobox.com>
+ All rights reserved.
+
diff --git a/sys-fs/encfs/metadata.xml b/sys-fs/encfs/metadata.xml
new file mode 100644
index 000000000000..fd1afc6ac46f
--- /dev/null
+++ b/sys-fs/encfs/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">encfs</remote-id>
+ <remote-id type="github">vgough/encfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/etcd-fs/Manifest b/sys-fs/etcd-fs/Manifest
new file mode 100644
index 000000000000..01e15461e8e4
--- /dev/null
+++ b/sys-fs/etcd-fs/Manifest
@@ -0,0 +1,7 @@
+DIST etcd-fs-0_p20140620.zip 12608 SHA256 9882517f171242babf0067d4b6a0de61e9559a12c1d57068e0c2082557a64bf9 SHA512 9f0066ed635bf33812c2ab71d320d42e45684312243bff2e17c0d58eee25723ef980c59d6a7ca751ceacd69e75af7edc691d5595ab06d5de1bdfe244656367e9 WHIRLPOOL 620a2f916c3734b82be5ab6a3a8f3f849d86832f9127d05df00f176b04eabc47be12e131e2017313738a614ebcf8dfee7e7226a3dc6ed5a0c33836dc6a68166b
+DIST etcd-fs-0_p20170517.tar.gz 8575 SHA256 97437987941342c12b42cafbfca0ca949aa52023ba627ccb82dbc3dedcb37402 SHA512 1695eeb70895d316db68fca45b0cdcef6f4bb00b39a443bd85a7d457a1437476562d269226f7cc872fbec22555c4f4b94d48617688294400685e1719224fa92f WHIRLPOOL 77aba7ea8f70c411bd8db9b2a2769d64c0396f7f9d59b0fe4ca1dbf5bb7609c924f7500ea5fa76a1d410949033e1fc104024c32d022cdbf4af1e95be2fd4f5b1
+EBUILD etcd-fs-0_p20140620.ebuild 743 SHA256 4803f1bcc6d2bd1777f64f391ae7305c01a6a4150641436175d3e2bc5c56db9f SHA512 84b9e397b4e4c175e548af3e82ff72562dbf680ee66892f11226930e3736dbaf0e3b5b42ca9afa70a2d70a3ed14c04abd8dfc48b359f8832aaf5743afc92d544 WHIRLPOOL db3040a6cc2dcda921740874b9c48e37f39192c2ae06a9d3ba25afb6d1520aa2f6e2004928118a0e26d8993817f6f29c1b0b7defe941744d1180b87e52e2c947
+EBUILD etcd-fs-0_p20170517.ebuild 735 SHA256 f44448d0f9a40d38321c4af28b99cacc9cfee51aa59bd1f776cabe00a8f9b3c9 SHA512 7d4458f240815664017574aa83ec8d522843beade8eb3ad071a1398c0238a354916aad261f46f8582b96c9a8b49b450fa4b1d2c3721097d3a13f3f4584cd7c32 WHIRLPOOL 1e2c81d505ada7f20cc022b79a3bbad540eb7a3881aa430abd63bab5dae1505c28abfc108b5d16ce43ebee77e8d81eff5b026a12ecc7f8949a0f144c17c852ad
+MISC ChangeLog 2186 SHA256 4d8beca6b578bbcf57730b54d8baa573a7de6851d9b0323cc60bbb20619bdae7 SHA512 fcb49843db71c63e8c8a9514096675e5510a62a4913683212e93ad0ce0748e9d3e78169464bcd4cb7d3661e8558cd400ef9c5bc36b607c2aa9054d0fd8e99e3c WHIRLPOOL 5c724219a3abd2d6a510ac6f380923bc3f38daf3920cb277324f8415c6b55dde3f6105a8c3d6a802bdf81b5c50eb8749f1584b8019d241605d0a83defec962ab
+MISC ChangeLog-2015 523 SHA256 6c41fe9363736aae5e03c513d5314248b3a4b5fce157d8467c2f1bd69c9258aa SHA512 9fcf75d2e6d3173f94784e3a728b2e6520fc9ee4748034408b8cd9b77fe2173b8187eb4d8f7e59de1468dabffb3b37b205a135a58d7cba6520d2983b5c6aaa50 WHIRLPOOL 86df46c44bdfaec37aa61a5c0bf0be204f0131be6e2bf86d726cb4816596cfe68547dcde9ff16d4e983dc5aa88f1fe9523d284ce0fa415642afd31ba4ef445ab
+MISC metadata.xml 528 SHA256 09f64f60ebbeb4f2132f7434ab5461a35b774c5166f4a5f1453c5034ef91328b SHA512 42b4837d689032e27dfe9aaaa74c520f710eec8ca9827659c1316aeee4ff9e22bb024df5464f31097db5ab1d89bdcf84abeed74d30b68921023f0501030695f9 WHIRLPOOL 88b4ee1f50da2b37b00cf368982a488ed9b06333b7092681f2c785f5f28b20bf4b40329780595f3038064bda999c952a2156564fab2cbe369a315359f350997d
diff --git a/sys-fs/etcd-fs/etcd-fs-0_p20140620.ebuild b/sys-fs/etcd-fs/etcd-fs-0_p20140620.ebuild
new file mode 100644
index 000000000000..080636ee059b
--- /dev/null
+++ b/sys-fs/etcd-fs/etcd-fs-0_p20140620.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit golang-base
+
+KEYWORDS="~amd64"
+EGO_PN="github.com/xetorthio/${PN}"
+DESCRIPTION="Use etcd as a FUSE filesystem"
+HOMEPAGE="https://${EGO_PN}"
+EGIT_COMMIT="395eacbaebccccc5f03ed11dc887ea2f1af300a0"
+SRC_URI="${HOMEPAGE}/archive/${EGIT_COMMIT}.zip -> ${P}.zip"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE=""
+RESTRICT="test"
+DEPEND="app-arch/unzip
+ dev-db/go-etcd:=
+ dev-libs/go-fuse:="
+RDEPEND=""
+S=${WORKDIR}/${PN}-${EGIT_COMMIT}
+
+src_compile() {
+ CGO_CFLAGS=${CFLAGS} GOPATH=${S} \
+ go build \
+ -x -ldflags="-v -linkmode=external -extldflags '${LDFLAGS}'" \
+ etcdfs.go || die
+}
+
+src_install() {
+ dobin etcdfs
+ dodoc README.md
+}
diff --git a/sys-fs/etcd-fs/etcd-fs-0_p20170517.ebuild b/sys-fs/etcd-fs/etcd-fs-0_p20170517.ebuild
new file mode 100644
index 000000000000..20ec3917e7ec
--- /dev/null
+++ b/sys-fs/etcd-fs/etcd-fs-0_p20170517.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit golang-base
+
+KEYWORDS="~amd64"
+EGO_PN="github.com/xetorthio/${PN}"
+DESCRIPTION="Use etcd as a FUSE filesystem"
+HOMEPAGE="https://${EGO_PN}"
+EGIT_COMMIT="1eeace3bc20b15e4347c631a1cf7b45f3852518a"
+SRC_URI="${HOMEPAGE}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE=""
+RESTRICT="test"
+DEPEND="
+ dev-db/go-etcd:=
+ dev-libs/go-fuse:="
+RDEPEND=""
+S=${WORKDIR}/${PN}-${EGIT_COMMIT}
+
+src_compile() {
+ CGO_CFLAGS=${CFLAGS} GOPATH=${S} \
+ go build \
+ -x -ldflags="-v -linkmode=external -extldflags '${LDFLAGS}'" \
+ etcdfs.go || die
+}
+
+src_install() {
+ dobin etcdfs
+ dodoc README.md
+}
diff --git a/sys-fs/etcd-fs/metadata.xml b/sys-fs/etcd-fs/metadata.xml
new file mode 100644
index 000000000000..6dc674fcd92b
--- /dev/null
+++ b/sys-fs/etcd-fs/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <bugs-to>https://github.com/xetorthio/etcd-fs/issues</bugs-to>
+ <changelog>https://github.com/xetorthio/etcd-fs/commits/master</changelog>
+ <doc>https://github.com/xetorthio/etcd-fs/blob/master/README.md</doc>
+ <remote-id type="github">xetorthio/etcd-fs</remote-id>
+ </upstream>
+ <maintainer type="person">
+ <email>zmedico@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/eudev/Manifest b/sys-fs/eudev/Manifest
new file mode 100644
index 000000000000..412e8bbcfcfd
--- /dev/null
+++ b/sys-fs/eudev/Manifest
@@ -0,0 +1,24 @@
+AUX 40-gentoo.rules 365 SHA256 e11d66732dc0d629fdb8c06357db8be5339f2ecf28c2572c5af8637449f549ec SHA512 7554879eaeb12869a78835e4ac814b63c41ddd8715ff9b8d1b75e5b13edf697906371eb10d6c4f0a4c6cb9a44b21a4839985811a3357e18d3b8a842181666e0b WHIRLPOOL 54d962fa515255df5f37bc5c71a3774a909a809809138dba12ed22c6fda78ef336f4e98014f37dbc44289de1ba08f5f2ea31311e14b29a0bbe2cc3d6587d7425
+AUX eudev-exclude-MD.patch 2887 SHA256 3e9889862756ad7b683593e5a63316b4531a1836bec324c0dec647339f53cf53 SHA512 955013bcb849f156b8c3b17d99c52699ac371b05c0fa866a473b7db049c77cd86ef41192301bf78af97ea944e8e6d09e60288348198b73f340517fd2be19004b WHIRLPOOL 745b16d56a6000d88a2b711a21bbbfe1d96a9d33d8eb6d9e51491a26266924b5092cf8b8a4ffa5f0247887a3ef0a83b2ea4c8ee8ad620c601b9f7ae8e530c57a
+AUX eudev-fix-disk-by-id.patch 2381 SHA256 3f1e1bcbcfeb024b09f5e80210f24a89fd0bba254633f60856513c10a4af9579 SHA512 f5a6fdeaaebb64d4086c153ab0629cc826be961a3f8f7f5bbf4283617cb30b1f228e983ef76f023805ea00bff2b1f5c903a549c0d4675227b94c104f69e3fefe WHIRLPOOL 0e73e4c3b0e2b285c519eb12d6fa85f18f153b0a030803af07381cfece35beffb79e70d933c01ca28b1f0c4cad1f2bd650954ccd93260fe6272a48a70bec79e3
+AUX eudev-fix-selinux-headers.patch 788 SHA256 5845b7b5e337e7202fe9dede75d9f4c6b70ce5cb25252397bd16419e634981d5 SHA512 ee11d435bb40e64fa3f88799be3e803e30d779009389b5faecd6416fa8eebee36e55ec7e2d59c4894268881f838ea94ba56240a425694fdbfd9dc5fe297c1bcb WHIRLPOOL 14c086d5bc37933b7ac2e0b3b54d65cbe2c8a8afefe798c1ead516bb36196b783c4cbb13abf298be8918915bde3c4475a74545a793fed4393a93d67c719c773a
+AUX eudev-fix-selinux-linking.patch 919 SHA256 9d40fe52fa899334725e40b6cf56a92e7b1e276bfc15315026e8330a22125860 SHA512 27f15fb1ead796206cbbbd7296813303b01aaae35f67388dd7e126e1fab07231cad5735cb63d5a4bbade0d9736949af76c4cff9119be14f3bbeef8014e02daa1 WHIRLPOOL fb4a49beea0bdf8c91c78fbf314e8737ad7c2f26b374c921005a5171d34d672ffdeb5f0fa7198a9574ba822ac6cd59c321c9073149035d773c1c8f3331eabb20
+AUX udev-postmount 1208 SHA256 b0327069dbb57b39600079b87df80915dabb77c2fa298d6ae109ca04f8ba08b5 SHA512 8ef1b911843ab13acb1c1b9b7a0a5cd76659f395c3db9e579429556f23eacebb414507dc0231e2455e7589bc70054fa1e6b6dd93dd833f7101c0da0597aabf88 WHIRLPOOL d5263b61f1531822b9fd9f994d796c4328d7c4ccc0958bca27ca2c64b44549e5ca73334c94fd0e58aebc0f136ed8d60429736c2b8ee79d49572108525f362d45
+DIST eudev-1.10.tar.gz 1776717 SHA256 401eeb29147d3e24d87849a8006df62eadeb369d913484d59e9e35f3f73a20d1 SHA512 76ba9e3c732a6baad448500ef72368e985e0edf45b80d920e23432b5ee2da3e841c5faf2cc281af6432625758608c31eb441c6af9e2161d4e7264348e33e086f WHIRLPOOL d3251a1ef18e46e000a0941156ca4daa33b54a6147fece4cee6d863f86c98068e88bc11bc8a90f45c578ed62338218c5c8b4b06bb6132610e3d4a30bf79fe192
+DIST eudev-1.9.tar.gz 1762520 SHA256 8f17e92f1177ce9352bde00360e227a7cbb3b97ac8816174bee34be80e44cef0 SHA512 13bd7df42d686818f499856d260e5dfaf10425f06e05449bf4cc8318667b166e2ae9c5e8b519008285aeaab9284ec5fde1f9f19e536dd4bae09a5439c86336b3 WHIRLPOOL d0504f05e191e94229bf60a497cab82fe461f52072ba7ed2171654e684397e4ffa9ba47c8b18cd0cc6d0168701dcac3b7d4b6c73168382e2432c7c229b2d0293
+DIST eudev-3.1.2.tar.gz 1858004 SHA256 4393b69e93dd8117defde6519b199d479f9d051f52061157a1a7a41b8fe10273 SHA512 d9aeb37a163ce4a0c116f75a927b4b99f8445d06624fbb3c28ade18f3effd8c54af5a4a52477c31a0452822a3dc0901468263195256e9dbf79d2ef08cf46f2b6 WHIRLPOOL 2249128672d2adfa968c123a2538063331348bc8e8481ad9c25bf8d9fb4d2d3c8a05417439f155d9ababe657b19a595c18c6ba60ad0d5584a8ead86220b39577
+DIST eudev-3.1.5.tar.gz 1745524 SHA256 f75885a430cd50fe4b31732f808ba7f9b2adf0f26b53b8ba2957b0c1d84b6f2a SHA512 c5192e085ca4230aaac918e701989b712e5bda1558db31eb6ba635c17c4bdff398458d51cefbc5fb77a7c775ec1e04b1dbe019b8314cac3f43a5c1ae61521b5e WHIRLPOOL bc845c474101635c039515489e1316053156d3dd5f9c915c312324b9a1a6168f831e7476eeff834487fc83289e5d5eea2ba764c10bb6628b7c18d188de5f3846
+DIST eudev-3.2.2.tar.gz 1821812 SHA256 3e4c56ec2fc1854afd0a31f3affa48f922c62d40ee12a0c1a4b4f152ef5b0f63 SHA512 38465ba6a68c3a8756d750ac36dfde0e220c3b13d058a8fcb664ee628e95d2f83b4155cb080a7bd518a5435c7c502aa3fa785a99233ebb24dda406441a753f7a WHIRLPOOL bcebd850c5c9b0ffea21bbb3517feb15f2328f602366daa2fd13b62ce62b0834815b98618fbe80bbe9db9d27085a6ef917c4b1e597f6ad47182acf7386786bbb
+DIST eudev-3.2.4.tar.gz 1856432 SHA256 dddcf4c89b21f5f3210f7e4d3888c92cbfc657ff734ac21b6bdd3f5bcb146fed SHA512 1843a42d8c670379fec034e4401120202ae9383b74f81e52d93d83199a69016c27f7f7bf421e16abd3523dfa8158f9f28cd554f12f99a28e3004ece1c0342200 WHIRLPOOL 6856678fb37020f265f564fef31d2372655f8e7c7919f8124e1d50df41aae250a64f301ef200f8779b05c70c3b9b43b12ed464dc47a73b802e69f8e7720788c2
+EBUILD eudev-1.10-r2.ebuild 9129 SHA256 2184dad4a675c01575d819f8a6e45d1d9133db76ef933b8f508fc4aceceaf688 SHA512 4e5ad6d4f127ab487e901c881afc1793dd3daeb7bf0c9acef74073328c3aeefdfece4db6661306d645f5f02cacd371fb5bc3bfc3b5cf18f01ed8d307b063f635 WHIRLPOOL 67a6620cdb2464347fdf976110b2a15ca969ef00b449eb3323753b6fef221328d1e74d28ce9d12c746b0b53c6b89c9d7eb5b71dea2cfe97cfc0c2f799eb0c97b
+EBUILD eudev-1.9-r2.ebuild 9161 SHA256 51ba95509e938db6bea507fda1876ce2ce13c73fb2b9f70a7da26a0f8a755e6e SHA512 6ea5a209ce20b08c6b70744901deabde6ce77a5a7d8aede4998a76f68ec9fb632093e5621660e58f3560ce7f16013e5382885283bdb031c419c1cae350378aa7 WHIRLPOOL 0952090399764c202ea6841c3af3d69612cfd3e9c214965d8f9fd79f0a56ee004e38f1d69118a484150fd9f2987a922340a57a2d424035e05ed8aaac98723015
+EBUILD eudev-3.1.2.ebuild 7935 SHA256 980bee77592b21817f57399ab0afc8915eef49b5a54e8ef8e8dc0380f6f91989 SHA512 5c6e370e54856f5ed3c5c386b9dae42555afaaada6e21982f99fc4474b34ddf71f51c1f743da5386773bedaf36d8a2227521dfe418d09c6be5374a094b8a1641 WHIRLPOOL 3cd016033f92fb4235bcf9fc9524c3d7a86d2a7a994a37d2ff9825139fdf43afd22a05bcb46c841d82353022c2c053273f098b638c131106a60139e0092a4253
+EBUILD eudev-3.1.5.ebuild 7263 SHA256 61af8458c13d2136f3c9057459c774b4f50c23f2a67971cc2c3e850a8e5ded95 SHA512 78e671ad126858117926336debf2126278fec9f2175427f3d7ff045cba1d365c9c0eb4c04d1ebe2e99daf0d314993e163067aeb84ec560a5c6c5af2d243794b2 WHIRLPOOL 837352ec2981c2bae144acfaa3941adfdee60498d4de4945795a62c39a8a7befec485190eaa6d5c04cc7a53f8370668036bed250db7ab8acbf59a1cc9fa27a2f
+EBUILD eudev-3.2.2-r1.ebuild 7364 SHA256 f6edc879b8cc642fd2d7cfab45017782237ab6bdb779036184ba1751e1b20554 SHA512 f92aa71ccac9aed7038dff3cb75dbf2c849d61edd5b3eb86a56b467d3bb07881aa4057baba0163a7751fbbd15778ca6299ff6095614705bde9359e2c9647052c WHIRLPOOL c12effcd482129c862d751c6f7824872ff758e51f11313b1a4037c89c2179a766d6dc7de1afb5184c62ebc31b061b24f65a507e8aef9d34e78af760478f3e757
+EBUILD eudev-3.2.2.ebuild 7320 SHA256 d93fdc6bd53c6e493c704e7883b6b73ba4acf746602f5bb0ef61bec0b92b19bd SHA512 bb92bbad63ec770d8eae06d88ded85d96928a5a30e3c5b1ca022ea134b245022a73b1cf212e7d4dc149341b30db61f001b2f122d4e9d9ff152277c326c3989c5 WHIRLPOOL dbc9fdb961fafd462c4e543ab9d02bd1747fec0815b5149881fb21833cb18f8119bb28b59f47a950b6118e591790f3916543086ba84288354d12f4cdb5d7382c
+EBUILD eudev-3.2.4.ebuild 7314 SHA256 2f4d16e2e19ddcf7345489790c1e46136f6fcaa5ce5b60cbb9c796d317923101 SHA512 bba81dcce7562500933c7836a951ce1f7a71a7755b106c604189938b782697a837fd7d712cc5a0bedacb0eab6d260728a6a109c6a8876e48d4d4541341d34fef WHIRLPOOL 8f70e588d326573a58906eab1d72fd210fb840b69022a04b53245fe497a3a4edb87f2d1110a605fbbf4bd4bb5d8adf44c41394f516de0554a67525f66665bee0
+EBUILD eudev-4.9999.ebuild 6604 SHA256 0e903c0c2fc7443195a50ec69b56b75d05dd7020411aeb382f2b33912ec718af SHA512 c5b231b5dc6406255b38e67e99b054e429f5c482614eb905f9a9c0c03af9c7107c30c29850f0a2566e6731f4d206e957b4d714ef59739c60835e80a0b6a3e4fd WHIRLPOOL 56b50f2ae709c994d14362d689db60c44e2a00d263e647a3b990d65fac88557941101bd62a55e25e5599006b7944c067c9081dec6ca1f683ff013f08be4e49b8
+EBUILD eudev-9999.ebuild 7314 SHA256 2f4d16e2e19ddcf7345489790c1e46136f6fcaa5ce5b60cbb9c796d317923101 SHA512 bba81dcce7562500933c7836a951ce1f7a71a7755b106c604189938b782697a837fd7d712cc5a0bedacb0eab6d260728a6a109c6a8876e48d4d4541341d34fef WHIRLPOOL 8f70e588d326573a58906eab1d72fd210fb840b69022a04b53245fe497a3a4edb87f2d1110a605fbbf4bd4bb5d8adf44c41394f516de0554a67525f66665bee0
+MISC ChangeLog 11021 SHA256 4bf9e16fe9607d25dad137eb30308233c3d3c2dd89fb68ee8008a11dfaa70a15 SHA512 b54c268eea07b0e60d4e0b88a2efc66295e001da6d0a0c4d26b77f7e81cab0a2df46b82b6aa9444c9838eb4c63f479dc655207c5f8b39395ba54509341f10dfe WHIRLPOOL 3873661dbaefc20ec3f9f77c7e73df6404b7d324de90166b69f279549022424dcef185d7b00dde172fa22036f5984947abae97ee28361c01e3912b5a16f54f47
+MISC ChangeLog-2015 24551 SHA256 1990a418a2339df1b5df0b00aa6acc102d84261ef33203913b443fea20991f29 SHA512 a4d91049fa4267605fa8eb994a1dbca226d54f440ab9126d0623c51aa9078b50a1e1988310b2a1a2fb73a7fb5af252c41feddce1dc1e0f634be0510cf2a31cbf WHIRLPOOL 6d6e506833f409c3b6dca123c967bfcc0665d000bb4eb182bfe0a0afe27ce883499e508055d21992b64557537efdf303bc79476fbd48e9ad6f1ae1d98a296f61
+MISC metadata.xml 1157 SHA256 ba03136f85c5709e7a5d6759ac8552626420aac0e192ea738a9d2846f97dfd13 SHA512 cff7201ebbe8f4d3de081755c7b2fab115cbde63f73dec4bb4d9a3e878ee62ff28559e4fed2ad0e571c5448029c4f3162466011dfcbc1efcb5296864d6f5ffcb WHIRLPOOL 9e7e177d3d73cd96b8c8de4f928045e2d92a41202ccfd1201f657e43efd5ed24399f412ccc2057aaef894fb6f928f2aadc252c1c16b39a6fa738edb5d7da5d8c
diff --git a/sys-fs/eudev/eudev-1.10-r2.ebuild b/sys-fs/eudev/eudev-1.10-r2.ebuild
new file mode 100644
index 000000000000..da554bc8b022
--- /dev/null
+++ b/sys-fs/eudev/eudev-1.10-r2.ebuild
@@ -0,0 +1,298 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+KV_min=2.6.39
+
+inherit autotools eutils linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-2
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 arm hppa ~mips ppc ppc64 x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="doc gudev +hwdb +kmod introspection +keymap +modutils +openrc +rule-generator selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ gudev? ( >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] )
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ keymap? ( dev-util/gperf )
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ doc? ( >=dev-util/gtk-doc-1.18 )
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd
+ gudev? ( !dev-libs/libgudev )"
+
+PDEPEND="hwdb? ( >=sys-apps/hwids-20140304[udev] )
+ keymap? ( >=sys-apps/hwids-20140304[udev] )
+ openrc? ( >=sys-fs/udev-init-scripts-26 )"
+
+REQUIRED_USE="keymap? ( hwdb )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ if ! use rule-generator; then
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists:"
+ ewarn "\ttouch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+ ewarn "We are working on a better solution for the next beta release."
+ ewarn
+ fi
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ # Bug #520684
+ epatch "${FILESDIR}"/${PN}-fix-selinux-headers.patch
+ epatch "${FILESDIR}"/${PN}-fix-selinux-linking.patch
+
+ epatch_user
+
+ if use doc; then
+ gtkdocize --docdir docs || die "gtkdocize failed"
+ else
+ echo 'EXTRA_DIST =' > docs/gtk-doc.make
+ fi
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --docdir=/usr/share/doc/${PF}
+ --libdir=/usr/$(get_libdir)
+ --with-rootlibexecdir=/lib/udev
+ --with-firmware-path="${EPREFIX}usr/lib/firmware/updates:${EPREFIX}usr/lib/firmware:${EPREFIX}lib/firmware/updates:${EPREFIX}lib/firmware"
+ --with-html-dir="/usr/share/doc/${PF}/html"
+ --enable-split-usr
+ --exec-prefix=/
+
+ $(use_enable gudev)
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir=/$(get_libdir)
+ $(use_enable doc gtk-doc)
+ $(use_enable introspection)
+ $(use_enable keymap)
+ $(use_enable kmod libkmod)
+ $(usex kmod --enable-modules $(use_enable modutils modules))
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ $(use_enable rule-generator)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-gtk-doc
+ --disable-introspection
+ --disable-keymap
+ --disable-libkmod
+ --disable-modules
+ --disable-selinux
+ --disable-rule-generator
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/shared
+ emake -C src/libudev
+ use gudev && emake -C src/gudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ use gudev && emake -C src/gudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+ rm -rf "${ED}"/usr/share/doc/${PF}/LICENSE.*
+
+ use rule-generator && use openrc && doinitd "${FILESDIR}"/udev-postmount
+
+ # drop distributed hwdb files, they override sys-apps/hwids
+ rm -f "${ED}"/etc/udev/hwdb.d/*.hwdb
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ insinto /usr/share/doc/${PF}/html/gudev
+ doins "${S}"/docs/gudev/html/*
+
+ insinto /usr/share/doc/${PF}/html/libudev
+ doins "${S}"/docs/libudev/html/*
+}
+
+pkg_preinst() {
+ local htmldir
+ for htmldir in gudev libudev; do
+ if [[ -d ${EROOT}usr/share/gtk-doc/html/${htmldir} ]]; then
+ rm -rf "${EROOT}"usr/share/gtk-doc/html/${htmldir}
+ fi
+ if [[ -d ${ED}/usr/share/doc/${PF}/html/${htmldir} ]]; then
+ dosym ../../doc/${PF}/html/${htmldir} \
+ /usr/share/gtk-doc/html/${htmldir}
+ fi
+ done
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ if use rule-generator && use openrc && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
+ ewarn
+ ewarn "Please add the udev-postmount init script to your default runlevel"
+ ewarn "to ensure the legacy rule-generator functionality works as reliably"
+ ewarn "as possible."
+ ewarn "\trc-update add udev-postmount default"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-1.9-r2.ebuild b/sys-fs/eudev/eudev-1.9-r2.ebuild
new file mode 100644
index 000000000000..3a6dfbe8e4bc
--- /dev/null
+++ b/sys-fs/eudev/eudev-1.9-r2.ebuild
@@ -0,0 +1,300 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+KV_min=2.6.39
+
+inherit autotools eutils linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-2
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 arm hppa ~mips ppc ppc64 x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="doc gudev +hwdb +kmod introspection +keymap +modutils +openrc +rule-generator selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ gudev? ( >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] )
+ introspection? ( >=dev-libs/gobject-introspection-1.31.1 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ keymap? ( dev-util/gperf )
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ doc? ( >=dev-util/gtk-doc-1.18 )
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd
+ gudev? ( !dev-libs/libgudev )"
+
+PDEPEND="hwdb? ( >=sys-apps/hwids-20140304[udev] )
+ keymap? ( >=sys-apps/hwids-20140304[udev] )
+ openrc? ( >=sys-fs/udev-init-scripts-26 )"
+
+REQUIRED_USE="keymap? ( hwdb )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ if ! use rule-generator; then
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists:"
+ ewarn "\ttouch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+ ewarn "We are working on a better solution for the next beta release."
+ ewarn
+ fi
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ # Exclude MD from block device ownership event locking, bug #517986
+ epatch "${FILESDIR}"/${PN}-exclude-MD.patch
+
+ epatch_user
+
+ if [[ ! -e configure ]]; then
+ if use doc; then
+ gtkdocize --docdir docs || die "gtkdocize failed"
+ else
+ echo 'EXTRA_DIST =' > docs/gtk-doc.make
+ fi
+ eautoreconf
+ else
+ elibtoolize
+ fi
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --docdir=/usr/share/doc/${PF}
+ --libdir=/usr/$(get_libdir)
+ --with-rootlibexecdir=/lib/udev
+ --with-firmware-path="${EPREFIX}usr/lib/firmware/updates:${EPREFIX}usr/lib/firmware:${EPREFIX}lib/firmware/updates:${EPREFIX}lib/firmware"
+ --with-html-dir="/usr/share/doc/${PF}/html"
+ --enable-split-usr
+ --exec-prefix=/
+
+ $(use_enable gudev)
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir=/$(get_libdir)
+ $(use_enable doc gtk-doc)
+ $(use_enable introspection)
+ $(use_enable keymap)
+ $(use_enable kmod libkmod)
+ $(usex kmod --enable-modules $(use_enable modutils modules))
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ $(use_enable rule-generator)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-gtk-doc
+ --disable-introspection
+ --disable-keymap
+ --disable-libkmod
+ --disable-modules
+ --disable-selinux
+ --disable-rule-generator
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/libudev
+ use gudev && emake -C src/gudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ use gudev && emake -C src/gudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+ rm -rf "${ED}"/usr/share/doc/${PF}/LICENSE.*
+
+ use rule-generator && use openrc && doinitd "${FILESDIR}"/udev-postmount
+
+ # drop distributed hwdb files, they override sys-apps/hwids
+ rm -f "${ED}"/etc/udev/hwdb.d/*.hwdb
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ insinto /usr/share/doc/${PF}/html/gudev
+ doins "${S}"/docs/gudev/html/*
+
+ insinto /usr/share/doc/${PF}/html/libudev
+ doins "${S}"/docs/libudev/html/*
+}
+
+pkg_preinst() {
+ local htmldir
+ for htmldir in gudev libudev; do
+ if [[ -d ${EROOT}usr/share/gtk-doc/html/${htmldir} ]]; then
+ rm -rf "${EROOT}"usr/share/gtk-doc/html/${htmldir}
+ fi
+ if [[ -d ${ED}/usr/share/doc/${PF}/html/${htmldir} ]]; then
+ dosym ../../doc/${PF}/html/${htmldir} \
+ /usr/share/gtk-doc/html/${htmldir}
+ fi
+ done
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ if use rule-generator && use openrc && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
+ ewarn
+ ewarn "Please add the udev-postmount init script to your default runlevel"
+ ewarn "to ensure the legacy rule-generator functionality works as reliably"
+ ewarn "as possible."
+ ewarn "\trc-update add udev-postmount default"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-3.1.2.ebuild b/sys-fs/eudev/eudev-3.1.2.ebuild
new file mode 100644
index 000000000000..b80fcbbe4aa9
--- /dev/null
+++ b/sys-fs/eudev/eudev-3.1.2.ebuild
@@ -0,0 +1,271 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+KV_min=2.6.39
+
+inherit autotools eutils linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-2
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="doc gudev +hwdb +kmod introspection selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ gudev? ( >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] )
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ doc? ( >=dev-util/gtk-doc-1.18
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ )
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd
+ gudev? ( !dev-libs/libgudev )"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+ hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ epatch_user
+
+ if use doc; then
+ gtkdocize --docdir docs || die "gtkdocize failed"
+ else
+ echo 'EXTRA_DIST =' > docs/gtk-doc.make
+ fi
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --with-rootrundir=/run
+ --docdir=/usr/share/doc/${PF}
+ --libdir=/usr/$(get_libdir)
+ --with-rootlibexecdir=/lib/udev
+ --with-html-dir="/usr/share/doc/${PF}/html"
+ --enable-split-usr
+ --enable-manpages
+ --disable-hwdb
+ --exec-prefix=/
+
+ $(use_enable gudev)
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir=/$(get_libdir)
+ $(use_enable doc gtk-doc)
+ $(use_enable introspection)
+ $(use_enable kmod)
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-gtk-doc
+ --disable-introspection
+ --disable-kmod
+ --disable-selinux
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/shared
+ emake -C src/libudev
+ use gudev && emake -C src/gudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ use gudev && emake -C src/gudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+ rm -rf "${ED}"/usr/share/doc/${PF}/LICENSE.*
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ if ! [[ ${PV} = 9999* ]]; then
+ insinto /usr/share/doc/${PF}/html/gudev
+ doins "${S}"/docs/gudev/html/*
+
+ insinto /usr/share/doc/${PF}/html/libudev
+ doins "${S}"/docs/libudev/html/*
+ fi
+}
+
+pkg_preinst() {
+ local htmldir
+ for htmldir in gudev libudev; do
+ if [[ -d ${EROOT}usr/share/gtk-doc/html/${htmldir} ]]; then
+ rm -rf "${EROOT}"usr/share/gtk-doc/html/${htmldir}
+ fi
+ if [[ -d ${ED}/usr/share/doc/${PF}/html/${htmldir} ]]; then
+ dosym ../../doc/${PF}/html/${htmldir} \
+ /usr/share/gtk-doc/html/${htmldir}
+ fi
+ done
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-3.1.5.ebuild b/sys-fs/eudev/eudev-3.1.5.ebuild
new file mode 100644
index 000000000000..c02a8b50c5ee
--- /dev/null
+++ b/sys-fs/eudev/eudev-3.1.5.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+KV_min=2.6.39
+
+inherit autotools eutils linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-2
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 sparc x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="+hwdb +kmod introspection rule-generator selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+ hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ epatch_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --with-rootrundir=/run
+ --libdir=/usr/$(get_libdir)
+ --with-rootlibexecdir=/lib/udev
+ --enable-split-usr
+ --enable-manpages
+ --disable-hwdb
+ --exec-prefix=/
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir=/$(get_libdir)
+ $(use_enable introspection)
+ $(use_enable kmod)
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ $(use_enable rule-generator)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-introspection
+ --disable-kmod
+ --disable-selinux
+ --disable-rule-generator
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/shared
+ emake -C src/libudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ use rule-generator && doinitd "${FILESDIR}"/udev-postmount
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ if use rule-generator && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
+ ewarn
+ ewarn "Please add the udev-postmount init script to your default runlevel"
+ ewarn "to ensure the legacy rule-generator functionality works as reliably"
+ ewarn "as possible."
+ ewarn "\trc-update add udev-postmount default"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-3.2.2-r1.ebuild b/sys-fs/eudev/eudev-3.2.2-r1.ebuild
new file mode 100644
index 000000000000..ea86f7733805
--- /dev/null
+++ b/sys-fs/eudev/eudev-3.2.2-r1.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+KV_min=2.6.39
+
+inherit autotools linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="+hwdb +kmod introspection rule-generator selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+ hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ eapply "${FILESDIR}"/${PN}-fix-disk-by-id.patch
+
+ eapply_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --with-rootrundir=/run
+ --libdir="${EPREFIX}"/usr/$(get_libdir)
+ --with-rootlibexecdir="${EPREFIX}"/lib/udev
+ --enable-split-usr
+ --enable-manpages
+ --disable-hwdb
+ --exec-prefix="${EPREFIX}"
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir="${EPREFIX}"/$(get_libdir)
+ $(use_enable introspection)
+ $(use_enable kmod)
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ $(use_enable rule-generator)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-introspection
+ --disable-kmod
+ --disable-selinux
+ --disable-rule-generator
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/shared
+ emake -C src/libudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ use rule-generator && doinitd "${FILESDIR}"/udev-postmount
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ if use rule-generator && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
+ ewarn
+ ewarn "Please add the udev-postmount init script to your default runlevel"
+ ewarn "to ensure the legacy rule-generator functionality works as reliably"
+ ewarn "as possible."
+ ewarn "\trc-update add udev-postmount default"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-3.2.2.ebuild b/sys-fs/eudev/eudev-3.2.2.ebuild
new file mode 100644
index 000000000000..aab0ee8dc61e
--- /dev/null
+++ b/sys-fs/eudev/eudev-3.2.2.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+KV_min=2.6.39
+
+inherit autotools eutils linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-2
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="+hwdb +kmod introspection rule-generator selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+ hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ epatch_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --with-rootrundir=/run
+ --libdir="${EPREFIX}"/usr/$(get_libdir)
+ --with-rootlibexecdir="${EPREFIX}"/lib/udev
+ --enable-split-usr
+ --enable-manpages
+ --disable-hwdb
+ --exec-prefix="${EPREFIX}"
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir="${EPREFIX}"/$(get_libdir)
+ $(use_enable introspection)
+ $(use_enable kmod)
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ $(use_enable rule-generator)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-introspection
+ --disable-kmod
+ --disable-selinux
+ --disable-rule-generator
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/shared
+ emake -C src/libudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ use rule-generator && doinitd "${FILESDIR}"/udev-postmount
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ if use rule-generator && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
+ ewarn
+ ewarn "Please add the udev-postmount init script to your default runlevel"
+ ewarn "to ensure the legacy rule-generator functionality works as reliably"
+ ewarn "as possible."
+ ewarn "\trc-update add udev-postmount default"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-3.2.4.ebuild b/sys-fs/eudev/eudev-3.2.4.ebuild
new file mode 100644
index 000000000000..a864deb766cc
--- /dev/null
+++ b/sys-fs/eudev/eudev-3.2.4.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+KV_min=2.6.39
+
+inherit autotools linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="+hwdb +kmod introspection rule-generator selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+ hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ eapply_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --with-rootrundir=/run
+ --libdir="${EPREFIX}"/usr/$(get_libdir)
+ --with-rootlibexecdir="${EPREFIX}"/lib/udev
+ --enable-split-usr
+ --enable-manpages
+ --disable-hwdb
+ --exec-prefix="${EPREFIX}"
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir="${EPREFIX}"/$(get_libdir)
+ $(use_enable introspection)
+ $(use_enable kmod)
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ $(use_enable rule-generator)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-introspection
+ --disable-kmod
+ --disable-selinux
+ --disable-rule-generator
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/shared
+ emake -C src/libudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ use rule-generator && doinitd "${FILESDIR}"/udev-postmount
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ if use rule-generator && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
+ ewarn
+ ewarn "Please add the udev-postmount init script to your default runlevel"
+ ewarn "to ensure the legacy rule-generator functionality works as reliably"
+ ewarn "as possible."
+ ewarn "\trc-update add udev-postmount default"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-4.9999.ebuild b/sys-fs/eudev/eudev-4.9999.ebuild
new file mode 100644
index 000000000000..d4d1cd4aefd0
--- /dev/null
+++ b/sys-fs/eudev/eudev-4.9999.ebuild
@@ -0,0 +1,225 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+KV_min=2.6.39
+
+inherit autotools linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 4.9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ EGIT_BRANCH="eudev-4"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+ KEYWORDS=""
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 GPL-2"
+SLOT="0"
+IUSE="+blkid efi +hwdb +kmod selinux smack test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+ hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ eapply_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --prefix=/
+ --libdir=/usr/$(get_libdir)
+ --includedir=/usr/include
+ --enable-manpages
+ --disable-hwdb
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ $(use_enable blkid)
+ $(use_enable efi)
+ $(use_enable kmod)
+ $(use_enable selinux)
+ $(use_enable smack)
+ )
+ else
+ econf_args+=(
+ --disable-blkid
+ --disable-efi
+ --disable-kmod
+ --disable-selinux
+ --disable-smack
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+#multilib_src_compile() {
+# if multilib_is_native_abi; then
+# emake
+# else
+# emake -C src/libudev
+# fi
+#}
+
+#multilib_src_install() {
+# if multilib_is_native_abi; then
+# emake DESTDIR="${D}" install
+# else
+# emake -C src/libudev DESTDIR="${D}" install
+# fi
+#}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/eudev-9999.ebuild b/sys-fs/eudev/eudev-9999.ebuild
new file mode 100644
index 000000000000..a864deb766cc
--- /dev/null
+++ b/sys-fs/eudev/eudev-9999.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+KV_min=2.6.39
+
+inherit autotools linux-info multilib multilib-minimal user
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gentoo/eudev.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~blueness/${PN}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://github.com/gentoo/eudev"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="+hwdb +kmod introspection rule-generator selinux static-libs test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-${KV_min}
+ >=dev-util/intltool-0.50
+ test? ( app-text/tree dev-lang/perl )"
+
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ !sys-fs/udev
+ !sys-apps/systemd"
+
+PDEPEND=">=sys-fs/udev-init-scripts-26
+ hwdb? ( >=sys-apps/hwids-20140304[udev] )"
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+pkg_pretend() {
+ ewarn
+ ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
+ ewarn "as described in the URL below:"
+ ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ ewarn
+ ewarn "This functionality is enabled BY DEFAULT because eudev has no means of synchronizing"
+ ewarn "between the default or user-modified choice of sys-fs/udev. If you wish to disable"
+ ewarn "this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn "exists: touch /etc/udev/rules.d/80-net-name-slot.rules"
+ ewarn
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+ get_running_version
+
+ # These are required kernel options, but we don't error out on them
+ # because you can build under one kernel and run under another.
+ if kernel_is lt ${KV_min//./ }; then
+ ewarn
+ ewarn "Your current running kernel version ${KV_FULL} is too old to run ${P}."
+ ewarn "Make sure to run udev under kernel version ${KV_min} or above."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # change rules back to group uucp instead of dialout for now
+ sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
+ || die "failed to change group dialout to uucp"
+
+ eapply_user
+ eautoreconf
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ ac_cv_header_sys_capability_h=yes
+ DBUS_CFLAGS=' '
+ DBUS_LIBS=' '
+ --with-rootprefix=
+ --with-rootrundir=/run
+ --libdir="${EPREFIX}"/usr/$(get_libdir)
+ --with-rootlibexecdir="${EPREFIX}"/lib/udev
+ --enable-split-usr
+ --enable-manpages
+ --disable-hwdb
+ --exec-prefix="${EPREFIX}"
+ )
+
+ # Only build libudev for non-native_abi, and only install it to libdir,
+ # that means all options only apply to native_abi
+ if multilib_is_native_abi; then
+ econf_args+=(
+ --with-rootlibdir="${EPREFIX}"/$(get_libdir)
+ $(use_enable introspection)
+ $(use_enable kmod)
+ $(use_enable static-libs static)
+ $(use_enable selinux)
+ $(use_enable rule-generator)
+ )
+ else
+ econf_args+=(
+ --disable-static
+ --disable-introspection
+ --disable-kmod
+ --disable-selinux
+ --disable-rule-generator
+ )
+ fi
+ ECONF_SOURCE="${S}" econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ emake
+ else
+ emake -C src/shared
+ emake -C src/libudev
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake -C src/libudev DESTDIR="${D}" install
+ fi
+}
+
+multilib_src_test() {
+ # make sandbox get out of the way
+ # these are safe because there is a fake root filesystem put in place,
+ # but sandbox seems to evaluate the paths of the test i/o instead of the
+ # paths of the actual i/o that results.
+ # also only test for native abi
+ if multilib_is_native_abi; then
+ addread /sys
+ addwrite /dev
+ addwrite /run
+ default_src_test
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+
+ insinto /lib/udev/rules.d
+ doins "${FILESDIR}"/40-gentoo.rules
+
+ use rule-generator && doinitd "${FILESDIR}"/udev-postmount
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${EROOT}"dev/loop 2>/dev/null
+ if [[ -d ${EROOT}dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # REPLACING_VERSIONS should only ever have zero or 1 values but in case it doesn't,
+ # process it as a list. We only care about the zero case (new install) or the case where
+ # the same version is being re-emerged. If there is a second version, allow it to abort.
+ local rv rvres=doitnew
+ for rv in ${REPLACING_VERSIONS} ; do
+ if [[ ${rvres} == doit* ]]; then
+ if [[ ${rv%-r*} == ${PV} ]]; then
+ rvres=doit
+ else
+ rvres=${rv}
+ fi
+ fi
+ done
+
+ if use hwdb && has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ # reload database after it has be rebuilt, but only if we are not upgrading
+ # also pass if we are -9999 since who knows what hwdb related changes there might be
+ if [[ ${rvres} == doit* ]] && [[ ${ROOT%/} == "" ]] && [[ ${PV} != "9999" ]]; then
+ udevadm control --reload
+ fi
+ fi
+ if [[ ${rvres} != doitnew ]]; then
+ ewarn
+ ewarn "You need to restart eudev as soon as possible to make the"
+ ewarn "upgrade go into effect:"
+ ewarn "\t/etc/init.d/udev --nodeps restart"
+ fi
+
+ if use rule-generator && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qsv 'boot\|default\|sysinit'; then
+ ewarn
+ ewarn "Please add the udev-postmount init script to your default runlevel"
+ ewarn "to ensure the legacy rule-generator functionality works as reliably"
+ ewarn "as possible."
+ ewarn "\trc-update add udev-postmount default"
+ fi
+
+ elog
+ elog "For more information on eudev on Gentoo, writing udev rules, and"
+ elog "fixing known issues visit: https://wiki.gentoo.org/wiki/Eudev"
+}
diff --git a/sys-fs/eudev/files/40-gentoo.rules b/sys-fs/eudev/files/40-gentoo.rules
new file mode 100644
index 000000000000..365c6ea0d441
--- /dev/null
+++ b/sys-fs/eudev/files/40-gentoo.rules
@@ -0,0 +1,10 @@
+# do not edit this file, it will be overwritten on update
+
+# Propably unrequired, check how it is with OSS/OSS4, then remove
+SUBSYSTEM=="snd", GROUP="audio"
+
+# Gentoo specific usb group
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
+
+# Keep this for Linux 2.6.32 support wrt #457868
+SUBSYSTEM=="mem", KERNEL=="null|zero|full|random|urandom", MODE="0666"
diff --git a/sys-fs/eudev/files/eudev-exclude-MD.patch b/sys-fs/eudev/files/eudev-exclude-MD.patch
new file mode 100644
index 000000000000..d56026168809
--- /dev/null
+++ b/sys-fs/eudev/files/eudev-exclude-MD.patch
@@ -0,0 +1,53 @@
+From 2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay@vrfy.org>
+Date: Thu, 24 Jul 2014 23:37:35 +0200
+Subject: [PATCH] udev: exclude MD from block device ownership event locking
+
+MD instantiates devices at open(). This is incomptible with the
+locking logic, as the "change" event emitted when stopping a
+device will bring it back.
+---
+ src/udev/udevd.c | 23 +++++++----------------
+ 1 file changed, 7 insertions(+), 16 deletions(-)
+
+diff --git a/src/udev/udevd.c b/src/udev/udevd.c
+index a45d324..db935d6 100644
+--- a/src/udev/udevd.c
++++ b/src/udev/udevd.c
+@@ -285,26 +285,17 @@ static void worker_new(struct event *event)
+ udev_event->exec_delay = exec_delay;
+
+ /*
+- * Take a "read lock" on the device node; this establishes
++ * Take a shared lock on the device node; this establishes
+ * a concept of device "ownership" to serialize device
+- * access. External processes holding a "write lock" will
++ * access. External processes holding an exclusive lock will
+ * cause udev to skip the event handling; in the case udev
+- * acquired the lock, the external process will block until
++ * acquired the lock, the external process can block until
+ * udev has finished its event handling.
+ */
+-
+- /*
+- * <kabi_> since we make check - device seems unused - we try
+- * ioctl to deactivate - and device is found to be opened
+- * <kay> sure, you try to take a write lock
+- * <kay> if you get it udev is out
+- * <kay> if you can't get it, udev is busy
+- * <kabi_> we cannot deactivate openned device (as it is in-use)
+- * <kay> maybe we should just exclude dm from that thing entirely
+- * <kabi_> IMHO this sounds like a good plan for this moment
+- */
+- if (streq_ptr("block", udev_device_get_subsystem(dev)) &&
+- !startswith(udev_device_get_sysname(dev), "dm-")) {
++ if (!streq_ptr(udev_device_get_action(dev), "remove") &&
++ streq_ptr("block", udev_device_get_subsystem(dev)) &&
++ !startswith(udev_device_get_sysname(dev), "dm-") &&
++ !startswith(udev_device_get_sysname(dev), "md")) {
+ struct udev_device *d = dev;
+
+ if (streq_ptr("partition", udev_device_get_devtype(d)))
+--
+1.8.5.5
+
diff --git a/sys-fs/eudev/files/eudev-fix-disk-by-id.patch b/sys-fs/eudev/files/eudev-fix-disk-by-id.patch
new file mode 100644
index 000000000000..07bc0c518c62
--- /dev/null
+++ b/sys-fs/eudev/files/eudev-fix-disk-by-id.patch
@@ -0,0 +1,43 @@
+diff -ruN eudev-3.2.2-orig/rules/60-persistent-storage.rules eudev-3.2.2-new/rules/60-persistent-storage.rules
+--- eudev-3.2.2-orig/rules/60-persistent-storage.rules 2016-12-11 16:41:58.000000000 +0100
++++ eudev-3.2.2-new/rules/60-persistent-storage.rules 2017-04-26 23:14:04.197109882 +0200
+@@ -83,6 +83,9 @@
+ # by-id (World Wide Name)
+ ENV{DEVTYPE}=="disk", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}"
+ ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}-part%n"
++#(Temporary) Compatibility rule for old broken WWNs in case some uses them:
++ENV{DEVTYPE}=="disk", ENV{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}"
++ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}-part%n"
+
+ # by-partlabel/by-partuuid links (partition metadata)
+ ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}"
+diff -ruN eudev-3.2.2-orig/src/ata_id/ata_id.c eudev-3.2.2-new/src/ata_id/ata_id.c
+--- eudev-3.2.2-orig/src/ata_id/ata_id.c 2016-11-17 22:14:19.000000000 +0100
++++ eudev-3.2.2-new/src/ata_id/ata_id.c 2017-04-26 23:18:51.116127146 +0200
+@@ -645,10 +645,22 @@
+ * All other values are reserved.
+ */
+ word = identify.wyde[108];
+- if ((word & 0xf000) == 0x5000)
+- printf("ID_WWN=0x%1$"PRIu64"x\n"
+- "ID_WWN_WITH_EXTENSION=0x%1$"PRIu64"x\n",
+- identify.octa[108/4]);
++ if ((word & 0xf000) == 0x5000){
++ uint64_t wwn;
++
++ wwn = identify.wyde[108];
++ wwn <<= 16;
++ wwn |= identify.wyde[109];
++ wwn <<= 16;
++ wwn |= identify.wyde[110];
++ wwn <<= 16;
++ wwn |= identify.wyde[111]; /* Could possibly done nicer ? */
++ printf("ID_WWN=0x%1$" PRIx64 "\n"
++ "ID_WWN_WITH_EXTENSION=0x%1$" PRIx64 "\n",
++ wwn);
++ printf("ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE=0x%" PRIu64 "x\n",
++ identify.octa[108/4]);
++ }
+
+ /* from Linux's include/linux/ata.h */
+ if (identify.wyde[0] == 0x848a ||
diff --git a/sys-fs/eudev/files/eudev-fix-selinux-headers.patch b/sys-fs/eudev/files/eudev-fix-selinux-headers.patch
new file mode 100644
index 000000000000..1d1d8dcc236f
--- /dev/null
+++ b/sys-fs/eudev/files/eudev-fix-selinux-headers.patch
@@ -0,0 +1,32 @@
+From 361aa273d6fedda161c14b24302f009a58331693 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
+Date: Tue, 2 Sep 2014 21:20:24 +0200
+Subject: [PATCH] fix SELINUX build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
+---
+ src/shared/label.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/shared/label.c b/src/shared/label.c
+index 3c6277a..e674241 100644
+--- a/src/shared/label.c
++++ b/src/shared/label.c
+@@ -23,6 +23,11 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
++#ifdef HAVE_SELINUX
++#include <selinux/selinux.h>
++#include <selinux/label.h>
++#endif
++
+ #include "label.h"
+ #include "util.h"
+ #include "path-util.h"
+--
+2.1.0
+
diff --git a/sys-fs/eudev/files/eudev-fix-selinux-linking.patch b/sys-fs/eudev/files/eudev-fix-selinux-linking.patch
new file mode 100644
index 000000000000..6a5e05bcaf1e
--- /dev/null
+++ b/sys-fs/eudev/files/eudev-fix-selinux-linking.patch
@@ -0,0 +1,30 @@
+From e7f7217b9b9dbb3304116eae2b0ad90c84ede034 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
+Date: Wed, 3 Sep 2014 11:01:31 +0200
+Subject: [PATCH] link libudev against SELINUX
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
+---
+ src/libudev/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/libudev/Makefile.am b/src/libudev/Makefile.am
+index 868a9fc..72e43bc 100644
+--- a/src/libudev/Makefile.am
++++ b/src/libudev/Makefile.am
+@@ -54,7 +54,8 @@ libudev_la_LDFLAGS = \
+ -Wl,--version-script=$(top_srcdir)/src/libudev/libudev.sym
+
+ libudev_la_LIBADD = \
+- $(top_builddir)/src/shared/libudev_shared.la
++ $(top_builddir)/src/shared/libudev_shared.la \
++ $(SELINUX_LIBS)
+
+ libudev_private_la_SOURCES = \
+ $(libudev_la_SOURCES) \
+--
+2.1.0
+
diff --git a/sys-fs/eudev/files/udev-postmount b/sys-fs/eudev/files/udev-postmount
new file mode 100644
index 000000000000..f1f94f48902a
--- /dev/null
+++ b/sys-fs/eudev/files/udev-postmount
@@ -0,0 +1,55 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend()
+{
+ need localmount
+ keyword -vserver -lxc
+}
+
+dir_writeable()
+{
+ touch "$1"/.test.$$ 2>/dev/null && rm "$1"/.test.$$
+}
+
+# store persistent-rules that got created while booting
+# when / was still read-only
+store_persistent_rules()
+{
+ # create /etc/udev/rules.d if it does not exist and /etc/udev is writable
+ [ -d /etc/udev/rules.d ] || \
+ dir_writeable /etc/udev && \
+ mkdir -p /etc/udev/rules.d
+
+ # only continue if rules-directory is writable
+ dir_writeable /etc/udev/rules.d || return 0
+
+ local file dest
+ for file in /run/udev/tmp-rules--*; do
+ dest=${file##*tmp-rules--}
+ [ "$dest" = '*' ] && break
+ type=${dest##70-persistent-}
+ type=${type%%.rules}
+ ebegin "Saving udev persistent ${type} rules to /etc/udev/rules.d"
+ cat "$file" >> /etc/udev/rules.d/"$dest" && rm -f "$file"
+ eend $? "Failed moving persistent rules!"
+ done
+}
+
+start()
+{
+ # check if this system uses udev
+ [ -d /run/udev ] || return 0
+
+ # store persistent-rules that got created while booting
+ # when / was still read-only
+ store_persistent_rules
+}
+
+stop()
+{
+ return 0
+}
+
+# vim:ts=4
diff --git a/sys-fs/eudev/metadata.xml b/sys-fs/eudev/metadata.xml
new file mode 100644
index 000000000000..39ad39998e68
--- /dev/null
+++ b/sys-fs/eudev/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>eudev@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="blkid">enable blkid support</flag>
+ <flag name="efi">enable EFI support</flag>
+ <flag name="gudev">enable libudev gobject interface</flag>
+ <flag name="hwdb">read vendor/device string database and add it to udev database</flag>
+ <flag name="keymap">map custom hardware's multimedia keys</flag>
+ <flag name="kmod">enable module loading through libkmod</flag>
+ <flag name="modutils">enable module loading support - use modutils calls if kmod not enabled</flag>
+ <flag name="openrc">install the OpenRC init scripts</flag>
+ <flag name="smack">enable SMACK security model</flag>
+ <flag name="rule-generator">install legacy rule generator rules and support scripts - note
+ that the functionality within was dropped from sys-fs/udev as it is not stable in
+ all cases; use at your own risk</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">gentoo/eudev</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/exfat-utils/Manifest b/sys-fs/exfat-utils/Manifest
new file mode 100644
index 000000000000..4d4803b667d5
--- /dev/null
+++ b/sys-fs/exfat-utils/Manifest
@@ -0,0 +1,9 @@
+DIST exfat-utils-1.2.4.tar.gz 167004 SHA256 6aa51926416b9d0977b456902f4c4cd10bcce4b2d160859a7a2fc9ca6bcbbb11 SHA512 88c012b535a761493b7c417fad6d1cdafdfb71a5a7e29279e73c7220111edc51bf2e9857f9f3b786b7324227db5ea7b919b599c5b44b6e121fae004a7bdc15e5 WHIRLPOOL 2a14db7589816ee5e183a763b2f0c25ec20bf8f453e46d45d023302a9715b8a9a0de03803a5ea4df36dc732503d935f8d46edd1288ecd323fda88d6545be2a57
+DIST exfat-utils-1.2.6.tar.gz 167375 SHA256 b96b6692cf92a629c9eca0fe8c782646e20479524c7d2a99b7e9b43c3cf8ac43 SHA512 dc7aaa708cbfef887d6a03d7877488ea6699c053d9cc825243480ae912fe3d76b5e4297559b352defd5b234f159806a16aa407ac1b26206e86d6d9dd4c8bcc36 WHIRLPOOL 116b2ddc460353dcd6e77aaf262a50fc64b3538b1f6240e432642402c028666f69c3381f962c2c826266f64cbe281c8c48712f664278cb50c71f473c77397918
+DIST exfat-utils-1.2.7.tar.gz 158468 SHA256 386132d155b92c7d27735483663f2724844cb904ef9ecd83c374cffe831dffe4 SHA512 316bf4c770b880f5c2e33792a41849094bad26c279253da3abb6a6fcb3e9287d45bdd7cb1205f9cf4b68e277bc0a557391ff82d96365f9c209ef9500e4017d80 WHIRLPOOL 6c78475191ac3fb7b0d859dfbe927ec9e975182e3927d762eb318684405799a23b35a6697f7bb73c9aa586019967984585e1d402a7c5eccfceb71c1197f7e44d
+EBUILD exfat-utils-1.2.4.ebuild 649 SHA256 38f92c59bfdd2f95278d670dca1e261d1917a21db6047aaf7df821541010813a SHA512 c8a6ae79392bcf7b9edd419dbe83f1e85260018ae87656d6bad9365156812198c85f7c6af52b1012ddfccc9a5ad1b47f95e2a489c627eccf20840f459bddceda WHIRLPOOL 483fd4d943308a7ca7f4366d7172614ec1f08cab116cbec3351d5cafdfa70f350c96d4cc336eafa62f2caf785fe119a8d66ea073bdfa04a9c2b57647319b74f0
+EBUILD exfat-utils-1.2.6.ebuild 651 SHA256 fe0b98f649b114145fadc711b044c25eb3a4725dd795d4b5b32b517e188106d8 SHA512 96c22dd901dd0672d1d28034e1061aa1764e8513ad6495bf8f0e9703d7f2c2c10496b922ee2323cff63eda936f5e81e929b9d75a90584bfbddd7ee8dd27328dc WHIRLPOOL 291afb53fbef4f48476b5ebf53f9f15f2c97f59b7feb6547cd8d358ab571d7080feabd84adb90042dac773c0a07f890c851b9eaa30a30c2d6190829e9b2cb8e0
+EBUILD exfat-utils-1.2.7.ebuild 651 SHA256 fe0b98f649b114145fadc711b044c25eb3a4725dd795d4b5b32b517e188106d8 SHA512 96c22dd901dd0672d1d28034e1061aa1764e8513ad6495bf8f0e9703d7f2c2c10496b922ee2323cff63eda936f5e81e929b9d75a90584bfbddd7ee8dd27328dc WHIRLPOOL 291afb53fbef4f48476b5ebf53f9f15f2c97f59b7feb6547cd8d358ab571d7080feabd84adb90042dac773c0a07f890c851b9eaa30a30c2d6190829e9b2cb8e0
+MISC ChangeLog 6434 SHA256 17842da0ca264fba2cde3b1d03f299728a9c617ebb2a53bf05d849140462203d SHA512 93e6cd217117ed6ef3cf62774af6e6ff9fddb6c33b7035fab1d44cf3d64c671ba189ab768272a09a6d2778fc6e6d4cfe336bf9ff71e7064e5d4e32cf589ad266 WHIRLPOOL cac6acdd3761e35327458ddabb7fbac1303a238519c3d6b38bb8492cb036ca9ef932289c2a98d950f50f3caec73035451d2e27178d30fc41faad9fa4ad75c65b
+MISC ChangeLog-2015 2322 SHA256 435dce37f228c7efdbdded978ed5e2294972fdcd2546ae8661949eed0c4adfc2 SHA512 4dbd6edbc71750c092af0ab10345f0910f5ab199dcfc8205826a762bc8f930c5f353ebf496958c8669e16e81fabf856e08721e3ad52377aa743d553904b5e76d WHIRLPOOL 51febd0cc2fb9add6a373bc4d9dfd760aa68287a44ce423219cbeaf4fb40dc9e852edd3a3977a290809cf3a0aeefbdb6703f097ae5e4d5c75095e5cef922110b
+MISC metadata.xml 451 SHA256 ee41d185c1caf45e3942c20b386b8189515df888e85c7276f8e792db53ff6c4e SHA512 e9b06c7885b8f6d5d114042e9fa8946583b2a481ef74d4269e0d462ff995fb7da3d4ef171d401c48f517c93ca8b954f7f72f1fc0a9ac294b232e7d8a5da228c9 WHIRLPOOL 876a308a186eae48ddfbc65cfe646c325a348bad655dd96ff6078bd2c4a69451d4875025f08bbcd5985d640fd747df88bc732a722bfb501e55cd704bdf8efb38
diff --git a/sys-fs/exfat-utils/exfat-utils-1.2.4.ebuild b/sys-fs/exfat-utils/exfat-utils-1.2.4.ebuild
new file mode 100644
index 000000000000..4c5878165df0
--- /dev/null
+++ b/sys-fs/exfat-utils/exfat-utils-1.2.4.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="exFAT filesystem utilities"
+HOMEPAGE="https://github.com/relan/exfat"
+SRC_URI="https://github.com/relan/exfat/releases/download/v${PV}/${P}.tar.gz"
+
+# COPYING is GPL-2 but ChangeLog says "Relicensed the project from GPLv3+ to GPLv2+"
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~arm-linux ~x86-linux"
+
+DOCS=( ChangeLog )
+
+src_install() {
+ default
+ dosym exfatfsck.8 /usr/share/man/man8/fsck.exfat.8
+ dosym mkexfatfs.8 /usr/share/man/man8/mkfs.exfat.8
+}
diff --git a/sys-fs/exfat-utils/exfat-utils-1.2.6.ebuild b/sys-fs/exfat-utils/exfat-utils-1.2.6.ebuild
new file mode 100644
index 000000000000..c16c9ef677b9
--- /dev/null
+++ b/sys-fs/exfat-utils/exfat-utils-1.2.6.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="exFAT filesystem utilities"
+HOMEPAGE="https://github.com/relan/exfat"
+SRC_URI="https://github.com/relan/exfat/releases/download/v${PV}/${P}.tar.gz"
+
+# COPYING is GPL-2 but ChangeLog says "Relicensed the project from GPLv3+ to GPLv2+"
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~arm-linux ~x86-linux"
+
+DOCS=( ChangeLog )
+
+src_install() {
+ default
+ dosym exfatfsck.8 /usr/share/man/man8/fsck.exfat.8
+ dosym mkexfatfs.8 /usr/share/man/man8/mkfs.exfat.8
+}
diff --git a/sys-fs/exfat-utils/exfat-utils-1.2.7.ebuild b/sys-fs/exfat-utils/exfat-utils-1.2.7.ebuild
new file mode 100644
index 000000000000..c16c9ef677b9
--- /dev/null
+++ b/sys-fs/exfat-utils/exfat-utils-1.2.7.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="exFAT filesystem utilities"
+HOMEPAGE="https://github.com/relan/exfat"
+SRC_URI="https://github.com/relan/exfat/releases/download/v${PV}/${P}.tar.gz"
+
+# COPYING is GPL-2 but ChangeLog says "Relicensed the project from GPLv3+ to GPLv2+"
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~arm-linux ~x86-linux"
+
+DOCS=( ChangeLog )
+
+src_install() {
+ default
+ dosym exfatfsck.8 /usr/share/man/man8/fsck.exfat.8
+ dosym mkexfatfs.8 /usr/share/man/man8/mkfs.exfat.8
+}
diff --git a/sys-fs/exfat-utils/metadata.xml b/sys-fs/exfat-utils/metadata.xml
new file mode 100644
index 000000000000..2b2d336f4adb
--- /dev/null
+++ b/sys-fs/exfat-utils/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>floppym@gentoo.org</email>
+</maintainer>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="google-code">exfat</remote-id>
+ <remote-id type="github">relan/exfat</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/ext3grep/Manifest b/sys-fs/ext3grep/Manifest
new file mode 100644
index 000000000000..d706b6b92182
--- /dev/null
+++ b/sys-fs/ext3grep/Manifest
@@ -0,0 +1,8 @@
+AUX ext3grep-0.10.1-gcc44.patch 7824 SHA256 44162b8e0cb8d29c45afad37a125dc831b186923ec631f4698cb4dd7054c5e72 SHA512 11404bb9f606a223f328068d7b42911a49df05a0bee68e88e15b58c66964357bab1888af4a3284f3ea7ed559753ac7c80d4db59c63b53ee52117b8c92aae5607 WHIRLPOOL 88af4ebc1e8e76a5f2bf2c896f0aa8ea5ba20a46a4167f711683622545aeab7fc0eeb68a980b1375bc851cb74231293e6fc95bf75fa9fb94abaffe44d443aa7e
+AUX ext3grep-0.10.2-include-unistd_h-for-sysconf.patch 267 SHA256 cf6e664b30df2d2bddf6e6b183b386854999e8f88ee2207e9465831d4b605fd1 SHA512 4675ec597a131f91d9452f10c2d163fa8fa0d883b3138e475992596778cfd80f0499d3dff4092f6bbf09b6e7653c8d35ff18ca98217c8856d1a85596621079ac WHIRLPOOL 7ba7c7a3020115e55178519e113d4b5af453e7768c2494a5f1f1472b17c6174a6eba883ca3c962015095aba29071e575c131012f62023295f4b9580e0c4363a7
+AUX ext3grep-0.10.2-new-e2fsprogs.diff 1478 SHA256 86407fe3bb74218d32dce0a8f4c4f21b3158a115111b3b225072d77ac4475a47 SHA512 f16b5ed428c7bd1bf453d331eb1c114a13a2ec7fdc19d61b9788c5f4f3e5d4d85c013c738e04dbea12967a678d81bddedb60e573ac97c801efffa3ef27774e19 WHIRLPOOL b52a977600bf29f82571a2b98f1c64a079ad19ed00d4fc82e3201a9743f8a5981d3040f77dfaa18eea097e93303313e15ee4917954ed3ab81ac3432bb6446242
+DIST ext3grep-0.10.2.tar.gz 236364 SHA256 586f3e939d2ffd782f6f006b81a3df2dc477c6da03f21edb8860c5c4f7198f3e SHA512 301a65c91d2342753a4588c40d496114067a18ceceb999f10fe3fc49c7d3a20c7836dba915575db352c89de7ff0ed3553cd8fbd2d1540109cb0ff7fa8f530b6f WHIRLPOOL ec56fae174c57c4736284f7f06628353b6c60490b1c9847fbade5808be50aa6a05aa427d8fa5d634c50dfdc196ef744b3dfc7e70955ea4122f2d84e7122259ae
+EBUILD ext3grep-0.10.2.ebuild 817 SHA256 3fe50e12c19d64076d3b619efa119d578c6c46fc45cf3dff0e250d8f1fce1602 SHA512 c748ed20bc31c81789c23653615a8f62608f6910500ab1f564d16a455b905f8274e2619a188724247ec445e51c24d8388bd164e429193f4bcf891590c308e70c WHIRLPOOL a56355fca9340a2321b30ce15a3f91ce5cf568aae9fb957b0ee229d73710d43c1d1d0282c01e9338b9d3c97fc119fd9807d552b3b6361655fe5c4c1ced2c27e2
+MISC ChangeLog 2643 SHA256 fc601db89683e3705ac782a2f23aa3e5c0162d1cac9969a6f08cd367b41517e7 SHA512 ab3474668b993cf08be9cd834fdfe325e83029f2ed2c72ff46ee9b23f374b5d20ca785ce1768fb3f01b08532ac298d242a556cf681c61550d4751d3b9ed5fb97 WHIRLPOOL 5edaaa36b4cbbd7e21a4a046e710ddc1b760bc7989c5e9c9d72df6d94097440c16b58228d667c66efb0cd1a5a496f6be1f7b271e2fcfcd5577951bc589ad13e1
+MISC ChangeLog-2015 1283 SHA256 b9cbab9d53c605a47da1815d0a633ffba929cace38a5e49b1af1213e615d70ef SHA512 feea111efd06173ede03fc5ef80557f55b2c453190f652914e33262b0c0135c6a266839b4c70bfe5e031437562f8e297710d1b026a74c360da0051e82886725d WHIRLPOOL 3bbdddf51619c100af903f8823bb478b35da08b0de84513b71e64856915e16a52c55732c850d1e67c22c202c6594555ec3c9794897a4527348961a289a519805
+MISC metadata.xml 294 SHA256 9ad6fdc9b0f17b573797b50ccfc7e25f602ca2d411ab0226314fb0eaff3b4229 SHA512 db238ab8c6f8c7c51748dc51b47d4f34553671e36792ca466b1dceaafd41293c65af7303bf060315a826bb995ea34445b5b016918556b2d3ff2fc09077a57ae5 WHIRLPOOL f4bf0d957ab4b0ab38b6c7ee7d237980f29bae872a52e395642dd128fb2074b5ed672ed13e22f32e7b774b4d57af2eecff453b65e6f5ad30d32ba157a20eee53
diff --git a/sys-fs/ext3grep/ext3grep-0.10.2.ebuild b/sys-fs/ext3grep/ext3grep-0.10.2.ebuild
new file mode 100644
index 000000000000..88c27978d04d
--- /dev/null
+++ b/sys-fs/ext3grep/ext3grep-0.10.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+inherit eutils
+
+DESCRIPTION="Recover deleted files on an ext3 file system"
+HOMEPAGE="https://code.google.com/p/ext3grep/"
+SRC_URI="https://ext3grep.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug pch"
+
+DOCS="NEWS README"
+
+RDEPEND=""
+DEPEND="sys-fs/e2fsprogs
+ virtual/os-headers
+ virtual/pkgconfig"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-0.10.1-gcc44.patch \
+ "${FILESDIR}"/${P}-include-unistd_h-for-sysconf.patch
+
+ # Fix build against latest e2fsprogs, taken from
+ # https://code.google.com/p/ext3grep/issues/detail?id=34
+ epatch "${FILESDIR}"/${P}-new-e2fsprogs.diff
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable pch)
+}
diff --git a/sys-fs/ext3grep/files/ext3grep-0.10.1-gcc44.patch b/sys-fs/ext3grep/files/ext3grep-0.10.1-gcc44.patch
new file mode 100644
index 000000000000..a7a668c783b9
--- /dev/null
+++ b/sys-fs/ext3grep/files/ext3grep-0.10.1-gcc44.patch
@@ -0,0 +1,197 @@
+diff -Naur ext3grep-0.10.1-orig/src/commandline.cc ext3grep-0.10.1/src/commandline.cc
+--- ext3grep-0.10.1-orig/src/commandline.cc 2008-12-14 16:25:53.000000000 +0100
++++ ext3grep-0.10.1/src/commandline.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -32,6 +32,8 @@
+ #include "globals.h"
+ #include "restore.h"
+ #include "accept.h"
++#include <ctime>
++#include <limits>
+
+ // Commandline options.
+ bool commandline_superblock = false;
+diff -Naur ext3grep-0.10.1-orig/src/custom.cc ext3grep-0.10.1/src/custom.cc
+--- ext3grep-0.10.1-orig/src/custom.cc 2008-10-23 00:20:32.000000000 +0200
++++ ext3grep-0.10.1/src/custom.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -42,6 +42,9 @@
+ #include "get_block.h"
+ #include "init_consts.h"
+ #include "print_inode_to.h"
++#include <sys/time.h>
++#include <cstring>
++#include <ctime>
+
+ // The first part of this file was written and used for custom job:
+ // recovering emails on a 40 GB partition that had no information
+diff -Naur ext3grep-0.10.1-orig/src/debug.h ext3grep-0.10.1/src/debug.h
+--- ext3grep-0.10.1-orig/src/debug.h 2008-06-27 17:01:19.000000000 +0200
++++ ext3grep-0.10.1/src/debug.h 2009-08-04 00:25:07.000000000 +0200
+@@ -31,6 +31,7 @@
+
+ #include <iostream>
+ #include <cstdlib> // std::exit, EXIT_FAILURE
++#include <stdint.h>
+
+ #define AllocTag1(p)
+ #define AllocTag2(p, desc)
+diff -Naur ext3grep-0.10.1-orig/src/directories.cc ext3grep-0.10.1/src/directories.cc
+--- ext3grep-0.10.1-orig/src/directories.cc 2008-10-16 00:45:31.000000000 +0200
++++ ext3grep-0.10.1/src/directories.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -33,6 +33,9 @@
+ #include "indirect_blocks.h"
+ #include "get_block.h"
+ #include "directories.h"
++#include <cstring>
++#include <ctime>
++#include <algorithm>
+
+ //-----------------------------------------------------------------------------
+ //
+diff -Naur ext3grep-0.10.1-orig/src/dir_inode_to_block.cc ext3grep-0.10.1/src/dir_inode_to_block.cc
+--- ext3grep-0.10.1-orig/src/dir_inode_to_block.cc 2008-06-28 15:40:06.000000000 +0200
++++ ext3grep-0.10.1/src/dir_inode_to_block.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -40,6 +40,8 @@
+ #include "print_inode_to.h"
+ #include "directories.h"
+ #include "journal.h"
++#include <cstring>
++#include <limits>
+
+ //-----------------------------------------------------------------------------
+ //
+diff -Naur ext3grep-0.10.1-orig/src/histogram.cc ext3grep-0.10.1/src/histogram.cc
+--- ext3grep-0.10.1-orig/src/histogram.cc 2008-06-28 16:13:31.000000000 +0200
++++ ext3grep-0.10.1/src/histogram.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -29,6 +29,7 @@
+ #endif
+
+ #include "commandline.h"
++#include <cstring>
+
+ //-----------------------------------------------------------------------------
+ //
+diff -Naur ext3grep-0.10.1-orig/src/indirect_blocks.cc ext3grep-0.10.1/src/indirect_blocks.cc
+--- ext3grep-0.10.1-orig/src/indirect_blocks.cc 2008-10-20 20:45:29.000000000 +0200
++++ ext3grep-0.10.1/src/indirect_blocks.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -54,6 +54,7 @@
+ #include "forward_declarations.h"
+ #include "endian_conversion.h"
+ #include "superblock.h"
++#include <set>
+
+ //-----------------------------------------------------------------------------
+ //
+diff -Naur ext3grep-0.10.1-orig/src/init_directories.cc ext3grep-0.10.1/src/init_directories.cc
+--- ext3grep-0.10.1-orig/src/init_directories.cc 2008-06-29 21:08:31.000000000 +0200
++++ ext3grep-0.10.1/src/init_directories.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -39,6 +39,7 @@
+ #include "get_block.h"
+ #include "journal.h"
+ #include "dir_inode_to_block.h"
++#include <limits>
+
+ all_directories_type all_directories;
+ inode_to_directory_type inode_to_directory;
+diff -Naur ext3grep-0.10.1-orig/src/init_files.cc ext3grep-0.10.1/src/init_files.cc
+--- ext3grep-0.10.1-orig/src/init_files.cc 2008-06-29 04:39:33.000000000 +0200
++++ ext3grep-0.10.1/src/init_files.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -33,6 +33,7 @@
+ #include "globals.h"
+ #include "forward_declarations.h"
+ #include "journal.h"
++#include <algorithm>
+
+ //-----------------------------------------------------------------------------
+ //
+diff -Naur ext3grep-0.10.1-orig/src/inode.cc ext3grep-0.10.1/src/inode.cc
+--- ext3grep-0.10.1-orig/src/inode.cc 2008-06-29 04:44:39.000000000 +0200
++++ ext3grep-0.10.1/src/inode.cc 2009-08-04 00:25:41.000000000 +0200
+@@ -33,6 +33,7 @@
+ #include "globals.h"
+ #include "conversion.h"
+ #include "inode.h"
++#include <limits>
+
+ #if USE_MMAP
+ void inode_unmap(int group)
+diff -Naur ext3grep-0.10.1-orig/src/is_blockdetection.h ext3grep-0.10.1/src/is_blockdetection.h
+--- ext3grep-0.10.1-orig/src/is_blockdetection.h 2008-07-11 02:23:37.000000000 +0200
++++ ext3grep-0.10.1/src/is_blockdetection.h 2009-08-04 00:25:40.000000000 +0200
+@@ -31,6 +31,8 @@
+
+ #include "inode.h" // Needed for InodePointer
+
++#include <cstring>
++
+ // Return type of is_directory.
+ enum is_directory_type {
+ isdir_no = 0, // Block is not a directory.
+diff -Naur ext3grep-0.10.1-orig/src/journal.cc ext3grep-0.10.1/src/journal.cc
+--- ext3grep-0.10.1-orig/src/journal.cc 2008-10-18 03:06:35.000000000 +0200
++++ ext3grep-0.10.1/src/journal.cc 2009-08-04 00:25:40.000000000 +0200
+@@ -37,6 +37,8 @@
+ #include "indirect_blocks.h"
+ #include "get_block.h"
+ #include "commandline.h"
++#include <algorithm>
++#include <ctime>
+
+ //-----------------------------------------------------------------------------
+ //
+diff -Naur ext3grep-0.10.1-orig/src/last_undeleted_directory_inode_refering_to_block.cc ext3grep-0.10.1/src/last_undeleted_directory_inode_refering_to_block.cc
+--- ext3grep-0.10.1-orig/src/last_undeleted_directory_inode_refering_to_block.cc 2008-07-11 19:18:57.000000000 +0200
++++ ext3grep-0.10.1/src/last_undeleted_directory_inode_refering_to_block.cc 2009-08-04 00:25:41.000000000 +0200
+@@ -29,6 +29,7 @@
+ #include "is_blockdetection.h"
+ #include "inode_refers_to.h"
+ #include "journal.h"
++#include <limits>
+
+ // Return std::numeric_limits<int>::max() if the inode is still allocated
+ // and refering to the given block, otherwise return the Journal sequence
+diff -Naur ext3grep-0.10.1-orig/src/ostream_operators.cc ext3grep-0.10.1/src/ostream_operators.cc
+--- ext3grep-0.10.1-orig/src/ostream_operators.cc 2008-10-20 20:45:29.000000000 +0200
++++ ext3grep-0.10.1/src/ostream_operators.cc 2009-08-04 00:25:41.000000000 +0200
+@@ -31,6 +31,7 @@
+ #include "endian_conversion.h"
+ #include "superblock.h"
+ #include "globals.h"
++#include <ctime>
+
+ //-----------------------------------------------------------------------------
+ //
+diff -Naur ext3grep-0.10.1-orig/src/print_inode_to.cc ext3grep-0.10.1/src/print_inode_to.cc
+--- ext3grep-0.10.1-orig/src/print_inode_to.cc 2008-10-17 03:27:15.000000000 +0200
++++ ext3grep-0.10.1/src/print_inode_to.cc 2009-08-04 00:25:41.000000000 +0200
+@@ -30,6 +30,7 @@
+ #include "FileMode.h"
+ #include "globals.h"
+ #include "print_symlink.h"
++#include <ctime>
+
+ void print_inode_to(std::ostream& os, Inode const& inode)
+ {
+diff -Naur ext3grep-0.10.1-orig/src/restore.cc ext3grep-0.10.1/src/restore.cc
+--- ext3grep-0.10.1-orig/src/restore.cc 2008-10-18 17:30:54.000000000 +0200
++++ ext3grep-0.10.1/src/restore.cc 2009-08-04 00:25:41.000000000 +0200
+@@ -44,6 +44,9 @@
+ #include "FileMode.h"
+ #include "indirect_blocks.h"
+ #include "print_symlink.h"
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+
+ #ifdef CPPGRAPH
+ void iterate_over_all_blocks_of__with__restore_file_action(void) { restore_file_action(0, 0, NULL); }
+diff -Naur ext3grep-0.10.1-orig/src/show_journal_inodes.cc ext3grep-0.10.1/src/show_journal_inodes.cc
+--- ext3grep-0.10.1-orig/src/show_journal_inodes.cc 2008-10-18 03:06:35.000000000 +0200
++++ ext3grep-0.10.1/src/show_journal_inodes.cc 2009-08-04 00:25:41.000000000 +0200
+@@ -30,6 +30,7 @@
+
+ #include "journal.h"
+ #include "print_inode_to.h"
++#include <limits>
+
+ void show_journal_inodes(int inodenr)
+ {
diff --git a/sys-fs/ext3grep/files/ext3grep-0.10.2-include-unistd_h-for-sysconf.patch b/sys-fs/ext3grep/files/ext3grep-0.10.2-include-unistd_h-for-sysconf.patch
new file mode 100644
index 000000000000..bf38c27e7095
--- /dev/null
+++ b/sys-fs/ext3grep/files/ext3grep-0.10.2-include-unistd_h-for-sysconf.patch
@@ -0,0 +1,15 @@
+http://bugs.gentoo.org/422789
+
+--- src/init_consts.cc
++++ src/init_consts.cc
+@@ -27,6 +27,10 @@
+ #include "debug.h"
+ #endif
+
++#if USE_MMAP
++#include <unistd.h> /* sysconf */
++#endif
++
+ #include "globals.h"
+ #include "superblock.h"
+ #include "forward_declarations.h"
diff --git a/sys-fs/ext3grep/files/ext3grep-0.10.2-new-e2fsprogs.diff b/sys-fs/ext3grep/files/ext3grep-0.10.2-new-e2fsprogs.diff
new file mode 100644
index 000000000000..45b54b807bd7
--- /dev/null
+++ b/sys-fs/ext3grep/files/ext3grep-0.10.2-new-e2fsprogs.diff
@@ -0,0 +1,34 @@
+diff -ur ext3grep-0.10.1/src/ext3.h ext3grep-0.10.1.new/src/ext3.h
+--- ext3grep-0.10.1/src/ext3.h 2008-04-09 11:20:31.000000000 +0000
++++ ext3grep-0.10.1.new/src/ext3.h 2011-12-10 07:00:50.000000000 +0000
+@@ -24,6 +24,17 @@
+ #ifndef EXT3_H
+ #define EXT3_H
+
++// this trickery needs to happen before ext2_fs is included so
++// bail out if it has already been included by another path
++#ifdef _LINUX_EXT2_FS_H
++ #error please include this file before any other includes of ext2fs/ext2_fs.h
++#endif
++
++// some versions of the ext2 headers call this s_frags_per_group and some
++// call it s_clusters_per_group, define one to the other so our code works
++// with both
++#define s_clusters_per_group s_frags_per_group
++
+ // Use the header files from e2progs (http://e2fsprogs.sourceforge.net)
+ // We can use these headers and then everything named ext2 or ext3.
+ #include <ext2fs/ext2_fs.h> // Definitions of ext2, ext3 and ext4.
+@@ -110,6 +121,12 @@
+ __u32 faddr(void) const { return i_faddr; }
+ __u16 uid_high(void) const { return i_uid_high; }
+ __u16 gid_high(void) const { return i_gid_high; }
++#ifndef i_reseved2
++ //i_reseved2 has been split into two fields in recent
++ //versions of the headers, luckilly we can still access
++ //it in one peice through the hurd side of the union
++ #define i_reserved2 osd2.hurd2.h_i_author
++#endif
+ __u32 reserved2(void) const { return i_reserved2; }
+
+ void set_reserved2(__u32 val) { i_reserved2 = val; }
diff --git a/sys-fs/ext3grep/metadata.xml b/sys-fs/ext3grep/metadata.xml
new file mode 100644
index 000000000000..02fa89d149d1
--- /dev/null
+++ b/sys-fs/ext3grep/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>hanno@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">ext3grep</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/ext4magic/Manifest b/sys-fs/ext4magic/Manifest
new file mode 100644
index 000000000000..c6e350ca10a7
--- /dev/null
+++ b/sys-fs/ext4magic/Manifest
@@ -0,0 +1,6 @@
+AUX ext4magic-0.3.2-sysmacros.patch 291 SHA256 ae6baa687fdceb6fe3b661839efe76840765c3eb9789329af07626cee0eb146c SHA512 9914c9db3876194b08fe2f9752c0f49f72e88a5bbead72095dc186a3c60eef7a29326d51624381f177d31ee50ad4f9076dbef755936770fbfdf55fa7be82ab35 WHIRLPOOL 3e8bf8662b245089f5bc2fa673eb72365f90e4c87770568bf80413079e9b3839a8666a6af86df20c53f7e4af631bfd1181f095777e54f87f591c392b429b402d
+DIST ext4magic-0.3.2.tar.gz 426941 SHA256 8d9c6a594f212aecf4eb5410d277caeaea3adc03d35378257dfd017ef20ea115 SHA512 81bc9ba40dc2ea0bfb01bec160a1bbf0bf8a7983241aba34190d3571386f4d7dc63409866737b8d64516a3594eba11c819bbb721a1942c0a675d5675a7bba9a1 WHIRLPOOL 34bb59fa31babb0ac0edf098ed428c0f3a30976ce81edda15c1498e69f5a8d4453e3f7a133bd42dfe30bd11a42561ae8dd653a56e5831a8aaafacc90ba840da0
+EBUILD ext4magic-0.3.2.ebuild 957 SHA256 3a6fecc1e465e6c35f7a58d2a4bc3118363f54992d76bf8d88cc10d64dbf1ac0 SHA512 29fae83ce7629c1094307254690fa50d89cb62414f878e26ea1f84eca0e02e030c27689ee9bf386dabb989ada6f2eaa65b5b25aa4fee1dc10a500e13f4756360 WHIRLPOOL e7dc3af89ca6dcaffcb7d2a24de452687dedaf02ba39476f13855734889e9452fa0bd4ef457f7dc3fdbf39571025bb2648a6b714d481f1ed7f6d53f016cf4ad7
+MISC ChangeLog 3220 SHA256 ef088f6059316516ca9a608f6263f2df6346bcb24e2aff5c598d3978e03e0eeb SHA512 9c835edeb8353ce6a8f3aae85d0b04ca237046f8127d60f10a79072b9c7141af91c30f0b508dd83aad1f90b0e336869e6a0802481d8f2fde3a53e13dadb3da9d WHIRLPOOL 8a3365332c56c7e575b341b934a7ed6b16a15459c97df0b5959a32075824a7bb887b3335b3d9d8a387d17c98b2ae809cde76f57e4151ce67c6a1dff4c8469b60
+MISC ChangeLog-2015 2331 SHA256 12fc451515d0b9d9ae097567e33d3fe7d223ffc2b9f127c21a7d5c951bef15ad SHA512 0e265f932bab7d77d3da15fb2d0b568c31d39705567cd98133b539c6923fe4c18efa46389314e186edef36f075e39da2a430b623f467d4b50ec00c5317daeec6 WHIRLPOOL dad3a96f5c0d03fcb791c5d09ab275b54c42478da70b9b89bf59fe3a4a8c39ef00aa3370b6038a34ac2d4113ae314a9534c5352bae7159892b02abb19262af1a
+MISC metadata.xml 686 SHA256 54b14c0af614047379f757721e53882afbaf4222a97a8f9a57af0a1f4997db70 SHA512 1b525595caa1d1b839dbb3ae96b62449f6f141fdde8ad3a0d30df95d5cc8e23c2b0e645e3d91434ae7861c30852f96619d11be4c439f156ab56cbd1876ad633d WHIRLPOOL 9ef27bd24f2f4743c7959c8a113ee3c019de921d16d2acc305e6bb61ed6d56a3d89644dc996934506581152367c9d356e52077ab4e10d8f5e3377ecb77fad33f
diff --git a/sys-fs/ext4magic/ext4magic-0.3.2.ebuild b/sys-fs/ext4magic/ext4magic-0.3.2.ebuild
new file mode 100644
index 000000000000..9d37a2331a9d
--- /dev/null
+++ b/sys-fs/ext4magic/ext4magic-0.3.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Linux admin tool, can help to recover deleted or overwritten files on ext3 and ext4 filesystems"
+HOMEPAGE="https://sourceforge.net/projects/ext4magic/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug expert-mode file-attr"
+
+RDEPEND="app-arch/bzip2
+ >=sys-apps/file-5.04
+ sys-apps/util-linux
+ >=sys-fs/e2fsprogs-1.41.9
+ sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+DOCS="AUTHORS ChangeLog NEWS README TODO"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-sysmacros.patch #580192
+}
+
+src_configure() {
+ # build-system incorrectly recognizes '--disable-feature' options as enabled!
+ econf \
+ $(usex debug '--enable-debug' '') \
+ $(usex debug '--enable-debug-magic' '') \
+ $(usex expert-mode '--enable-expert-mode' '') \
+ $(usex file-attr '--enable-file-attr' '')
+}
diff --git a/sys-fs/ext4magic/files/ext4magic-0.3.2-sysmacros.patch b/sys-fs/ext4magic/files/ext4magic-0.3.2-sysmacros.patch
new file mode 100644
index 000000000000..954d9612b5ae
--- /dev/null
+++ b/sys-fs/ext4magic/files/ext4magic-0.3.2-sysmacros.patch
@@ -0,0 +1,13 @@
+https://sourceforge.net/p/ext4magic/tickets/4/
+https://bugs.gentoo.org/580192
+
+--- a/src/recover.c
++++ b/src/recover.c
+@@ -21,6 +21,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <utime.h>
diff --git a/sys-fs/ext4magic/metadata.xml b/sys-fs/ext4magic/metadata.xml
new file mode 100644
index 000000000000..4f2ff8681bf7
--- /dev/null
+++ b/sys-fs/ext4magic/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>gokturk@gentoo.org</email>
+ <name>Göktürk Yüksek</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <use>
+ <flag name="expert-mode">Builds ext4magic with expert mode. Highly useful in recovering data from a corrupted filesystem</flag>
+ <flag name="file-attr">Enable the recovery of file attributes (append, immutable, nodump etc)</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">ext4magic</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/extundelete/Manifest b/sys-fs/extundelete/Manifest
new file mode 100644
index 000000000000..7f29a28fc659
--- /dev/null
+++ b/sys-fs/extundelete/Manifest
@@ -0,0 +1,10 @@
+AUX extundelete-0.2.0-build.patch 1083 SHA256 99bd56bed3e23b2d7facb05b9d869a906db4b04bd4c4fe4c074c35b93977c0c8 SHA512 e7a4c9497f9c349bf6bcc04bfe643313246dce6f38b7d1e86bf6b9cacb937fb0ef5f56980c17d951a810d7f298ff2348484d8078d081cc084725ff6da50d8f1d WHIRLPOOL 1ea43b071ab14ae0985d9b341210deea0b8146614bbfed1325a60aaf81fc9fbc60f348caf6c950a5e3d37789eea084b77645404b1ad2321659a9fc9e7ac7c8df
+DIST extundelete-0.2.0.tar.bz2 97851 SHA256 0f6a3004d8ddcafe63059a104c174f753c7fc95455081f3ff5aaf3b8c100f97b SHA512 2d4b18110795a5318fab5c5889a9b516360ea420215d0a3692322b30e87d5bb3954bbba725a067322cd76e7bba06466032a1405f9fc6dbc3f318723be238b317 WHIRLPOOL 5e79c5485eb323593289bc7b82a0960c9174e91f1491b9c64097c6095b7065b14dfafa3efe89030dbd3007d28ff54bb4d12814f5a5cf72920ceff63085c437a9
+DIST extundelete-0.2.4.tar.bz2 108472 SHA256 a1f9dd61247056d36401ce5d6785e74d08a184340eebd3865c345ddaa93f19f4 SHA512 5c896055b6fa3c38f283a043cca744513fdc1a60e212eac0c78fa868064a8eeb11f540c4cc5ca89ac68da0c1705a40fe45731c203b6748808f85e9870a207bcd WHIRLPOOL b7b9372ce38edf03c9d11199ff0ff225e1993b2e5a791f288db802f4a7789bca52c5e9d56361f18831cf472bdab4b7349e8b0f41ecbd26a6fcdee7d7a9772ec2
+DIST extundelete_0.2.0-2.1.debian.tar.gz 6862 SHA256 3e37f24ac60bd60a0d162184b2834b85bac0cd4cd2d055e1f687ed6a88f70f97 SHA512 37b74347a3017edfd28714731125f968f66beac1b7b7ebd1d44e3d3dff9da06216560433f330f4a544da24f7083f6e900fbe8a5c2930e8760405cb72e6a918e3 WHIRLPOOL e403d2f546d3d15032f6e49220cc0ca55bb9d7cfd0515030b57058e4d177f00ac34c378d08e5eb61245287322fa9d4d579d169e41e2b6b01e0109e112dff7642
+EBUILD extundelete-0.2.0-r1.ebuild 536 SHA256 8a5a9b42210fe04b9d083beb06d696d4f99acddcb9a78612bb99cc5dad334fbb SHA512 b82f1918c06342a65f49575a01deb966d1bb54ef27b597c02f1f76f09477b721265907975f95e4d1c368095f5a6b360b9615382ada841b492a022e66a91ed072 WHIRLPOOL d492a5e72e546d966c711b79cb691447147328c5c555194790f8a2a7ba564982ae38fd792845957898d98c99818f49d164ec8ec0f096501c4fbb6bbe82596c12
+EBUILD extundelete-0.2.0-r2.ebuild 691 SHA256 de05351b21814f907bd77ef51f16286d4e7d5faa0fb11b066bf6af4657521547 SHA512 9aa727f0e2e7c6a7f4f9d40f9c0b1ef5e95c11096db8b8e1adb5eeb4dd0ddec8b84b3c16231131122701bf0cc02a951edddc09519642af2463ea57bba56e43de WHIRLPOOL 2d67c43f3d7966f0be39d298af9ece90fa7c20c885ee27e68c082479d1d9423de99e8e7ccc6aaacbedfd93b6ea26c48315c0636dad4ab49f6d1a31d914ac8d7b
+EBUILD extundelete-0.2.4.ebuild 475 SHA256 5a4ab89a232612a5e39346c8793f60cc45484b314cc941a6cfefc0a697252148 SHA512 7fe852c3762b56654c1cf17c7cfa7f27eadafc999051a12613a330c2e055c13392d61965a9e4ff902dd0e499a9ef85934a38945fef2a09c9dd0ef50b44092ae1 WHIRLPOOL 6aa5c476b72ab2d65307ce1f50b7da7258b44c4aac440784e553ce00f86058141e56f2639a3d0a37f9dc136a93790b0102c43171f7ec905ab028e1e5eae7d748
+MISC ChangeLog 3231 SHA256 309f6dab34f4948a092f9c125e7c1117e8f44aca8ebfc30c92def379f2f00b21 SHA512 ada76f4d82d241f052a80ba8ac05edc06470079abeaf1d3dca7f4ce6e0fa3f1cd5ba977cd983908861ca8224c19a8a78b63bd1b34e7f29df765d16fb9bfdfcfc WHIRLPOOL ea9ca218b096b2d53525446e9887667baec6622a3640f2ca917e172acab52f6ede225630b9af35b294471095ee2ea60321becb5771f3f91f9f682a58eed2a1f8
+MISC ChangeLog-2015 1876 SHA256 3b66bc22dafb7079ff0364191679e8d492396252409254f0373eb53a6132c862 SHA512 409ab5c9522e176db75e7bdf81cc9268d5bc7b26deea70c6acc809a96d84f110818b6765fcdd11c82b36cf6076ca217943215dcd4c0cf37b3d5111ab55def8f6 WHIRLPOOL 99df1a06d1832971d9f2479cf6e850aca3525e47fc4ccf0d4e5a34443572b1a796cc1c2007026fb54122e172f983cb88127bdeef9de74d86c162963ae9cb314c
+MISC metadata.xml 331 SHA256 fdb9062a088eafa2acec141b971bd917bddd0e025454d16a1a9bb4405d3819b3 SHA512 80a20fc119f4dca6944d16d590b6eea94162aa1286c6e797e5c9d29b6782696b00e64d1ec07f6e1f0cf99ce5fa02cccddadb7056abc8997d4919384b3e0b1c09 WHIRLPOOL 44cda783fc2137cbe1fa0c41980b7f41233cb8336a8176f2c9536b85429e52c9918bb9f71202ef38da75a999cadaf7723a6c53f253c3a11e7706f564d0d16070
diff --git a/sys-fs/extundelete/extundelete-0.2.0-r1.ebuild b/sys-fs/extundelete/extundelete-0.2.0-r1.ebuild
new file mode 100644
index 000000000000..0e929fe3ab72
--- /dev/null
+++ b/sys-fs/extundelete/extundelete-0.2.0-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+inherit eutils
+
+_E2FS=1.42
+
+DESCRIPTION="A utility to undelete files from an ext3 or ext4 partition"
+HOMEPAGE="http://extundelete.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND=">=sys-fs/e2fsprogs-${_E2FS}
+ >=sys-libs/e2fsprogs-libs-${_E2FS}"
+DEPEND="${RDEPEND}"
+
+DOCS="README"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+}
diff --git a/sys-fs/extundelete/extundelete-0.2.0-r2.ebuild b/sys-fs/extundelete/extundelete-0.2.0-r2.ebuild
new file mode 100644
index 000000000000..59f1f1bda6e0
--- /dev/null
+++ b/sys-fs/extundelete/extundelete-0.2.0-r2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils
+
+_UNDEL_DEB=2.1
+_UNDEL_E2FS=1.42.6
+
+DESCRIPTION="A utility to undelete files from an ext3 or ext4 partition"
+HOMEPAGE="http://extundelete.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+ mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV}-${_UNDEL_DEB}.debian.tar.gz"
+
+LICENSE="GPL-2"
+SLOT=0
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=sys-fs/e2fsprogs-${_UNDEL_E2FS}
+ >=sys-libs/e2fsprogs-libs-${_UNDEL_E2FS}"
+DEPEND=${RDEPEND}
+
+DOCS=README
+
+src_prepare() {
+ local d=${WORKDIR}/debian/patches
+ EPATCH_SOURCE=${d} epatch $(<"${d}"/series)
+}
diff --git a/sys-fs/extundelete/extundelete-0.2.4.ebuild b/sys-fs/extundelete/extundelete-0.2.4.ebuild
new file mode 100644
index 000000000000..c39d376e3b00
--- /dev/null
+++ b/sys-fs/extundelete/extundelete-0.2.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="A utility to undelete files from an ext3 or ext4 partition"
+HOMEPAGE="http://extundelete.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT=0
+KEYWORDS="amd64 ~arm x86"
+IUSE=""
+
+E2FSPROGS=1.42.6
+RDEPEND=">=sys-fs/e2fsprogs-${E2FSPROGS}
+ >=sys-libs/e2fsprogs-libs-${E2FSPROGS}"
+DEPEND=${RDEPEND}
+
+DOCS=README
diff --git a/sys-fs/extundelete/files/extundelete-0.2.0-build.patch b/sys-fs/extundelete/files/extundelete-0.2.0-build.patch
new file mode 100644
index 000000000000..2bd56ef2bbdf
--- /dev/null
+++ b/sys-fs/extundelete/files/extundelete-0.2.0-build.patch
@@ -0,0 +1,23 @@
+http://bugs.gentoo.org/402633
+http://projects.archlinux.org/svntogit/community.git/tree/trunk/extundelete-build.patch?h=packages/extundelete
+
+--- src/extundelete.cc
++++ src/extundelete.cc
+@@ -943,3 +943,3 @@
+ {
+- group_descriptor_table[n] = fs->group_desc[n];
++ group_descriptor_table[n] = *ext2fs_group_desc(fs, fs->group_desc, n);
+ }
+@@ -2613,3 +2613,4 @@
+ inode->osd2.linux2.l_i_gid_high = le16_to_cpu( (uint16_t *) &inodebuf[item*60] );
+- inode->osd2.linux2.l_i_reserved2 = le32_to_cpu( (uint32_t *) &inodebuf[item*62] );
++ inode->osd2.linux2.l_i_checksum_lo = le16_to_cpu( (uint16_t *) &inodebuf[item*62] );
++ inode->osd2.linux2.l_i_reserved = le16_to_cpu( (uint16_t *) &inodebuf[item*63] );
+ }
+--- src/insertionops.cc
++++ src/insertionops.cc
+@@ -65,3 +65,3 @@
+ os << "# Blocks per group: " << s_block->s_blocks_per_group << std::endl;
+- os << "# Fragments per group: " << s_block->s_frags_per_group << std::endl;
++ os << "# Fragments per group: " << s_block->s_clusters_per_group << std::endl;
+ os << "# Inodes per group: " << s_block->s_inodes_per_group << std::endl;
diff --git a/sys-fs/extundelete/metadata.xml b/sys-fs/extundelete/metadata.xml
new file mode 100644
index 000000000000..a5550604b142
--- /dev/null
+++ b/sys-fs/extundelete/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="sourceforge">extundelete</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/f2fs-tools/Manifest b/sys-fs/f2fs-tools/Manifest
new file mode 100644
index 000000000000..a83ec296b21e
--- /dev/null
+++ b/sys-fs/f2fs-tools/Manifest
@@ -0,0 +1,9 @@
+AUX f2fs-tools-1.6.1-sysmacros.patch 1555 SHA256 f3a2364f7263092a6d7e0875738a4cb4b95474f7be0c9d2ad158f4f4126f8a69 SHA512 10e3f473f21d00126fc570ad82f9f6218ed1fba7eb0fe24947c4e67186f82db09fa7563c10ccb74398652f41cda4753afa31d8140cdcb003ce0da0f71bc64415 WHIRLPOOL fab8dd17576a87f139931535d7f4e7dc817b0f442d24f05d9ff19704e8e35d31d70bf341911064fe10e199bf92bbb54a38e9ee099a9135e565cdd7ea41fb2939
+AUX f2fs-tools-1.8.0-sysmacros.patch 324 SHA256 0708ae4d53f3e295d297cc29b509847179f2012490a9356b262bbe352af72f33 SHA512 15e2e79c34efe001c08d059ad4f6a01e7f066b6e8e2466e8d3c6423f8c59a90582cb345ce62cbc340bd0aac2eff6f21113d2cc8b88135e828f36ce5b08b4b6d2 WHIRLPOOL 60eb824bfee4a1bb32a11c5f09512a4fd0da85b19da74655780356717ee61a768b13cfac63dd8057e2a71af77dce19f4dc781cf6aad0f769ab615f858c3bb8c7
+DIST f2fs-tools-1.6.1.tar.xz 282152 SHA256 1c2f9ab663d26c939924ad6bbcfbacf676bec1f6dbae8f9ef5362ade4b03d885 SHA512 108327042079d9e864899a20f2dd94019be1b957fd7ffa295af097c5b93a5065ea9c36de9bae83f84a6412ac496340849fc44de041e24461a2919073eed15cf2 WHIRLPOOL b5659154da6e48138b4f49481a68b25c95ba2461971609b4cb0399d173a7c0e5b0203baccd8da2adc7a8c2d7b078620649aea9ee57739498452a8b946fb43836
+DIST f2fs-tools-1.8.0.tar.xz 301108 SHA256 0d9b00d9e873da4508bb297c7a5ef46050af350deb21b32898c16ed5164bb6a4 SHA512 aff27e1113cc3034194e496883570143bd6a3cc7cc077e868255052298a401cc36c423579b4e695fe3e480d770ae05f9d14d9bb4bbc0311bdd5e23e37950a27f WHIRLPOOL 4a7ae8533e4a02bd9d1ee09461c7bd30e8ef8d47bcc4e7adfe631eb14c2231fb0db9a253eeca7d0437296ad65abd446ab2249bc48ccc07b89f923d078d17e4dc
+EBUILD f2fs-tools-1.6.1.ebuild 737 SHA256 159d1de76701b2595902fe6454be263a62759d9c0f716d65a67dd131d1652b4f SHA512 a303cc13d4fee5657d93008d9d189dfcfed920bc80e6f4e383d751e29f83745659ee23d8917abddc733a1f2ed66d991c8b9a10aa93ac2134e7e164899a789d22 WHIRLPOOL 83403bcb6761d0a99a7ab6f67751d4ca5eeb4824d2632fb114b50c02aeb248b7eeac1353259032d4be2646c31c6cb627fd1ef7d246820644ffccd7f48e5569a3
+EBUILD f2fs-tools-1.8.0.ebuild 782 SHA256 7f3e599c0cbd29c1faa08054acc6c2dddbe21ff31be085bddac3763285f5a815 SHA512 96814eda2864cad7b00f213e2482f962f08df61d8c7f9af4bbe4a6946735c7680df83ff3729b42d4441caf39b8f32d1490f53a7a4c26c7d36ae5a18dfad55976 WHIRLPOOL 55c2f166fd284e6eb3e0e81966910f4e4563b6a84218f5e6a20d10db5b24d9e202053c349a51a490913d449d7d1386eca32107f254996853a3ca8e049a969f3d
+MISC ChangeLog 6266 SHA256 bf037f748f30266d2e742cd2d1634ec41fdecee34868fc5b4e5d8bc62d486236 SHA512 17e24d18affc402c8f72855420e9fca2c2f81552080326cfff37300e6f6ec9fea9afc1016f1e8f421b17664e9d74c1a53899be25da4f10cc33e30fc86c9e69c8 WHIRLPOOL 570631a6333514bd1c56b74827e643536b6e3211fa22ef945dd2eedc5d9bbccb3bc9debddafe0d82a37b7e047dbbf72601f473a0d57819087464da297ac687f4
+MISC ChangeLog-2015 2185 SHA256 92643ab7dc9878e3a0f4dbcc61085f9bfbc629f34f1c7a7f10b62d344dc6a49f SHA512 5a2dc01cbb3ca1ae1e81b0978954975b220d015b4fca39b30f15f9afb02bbab6d825153a4ef191cd9a36b9fbf0b0624c413e5e57308bef5fc6f3bf9329e5b4c1 WHIRLPOOL 38dab2fd45ca4208f9c7f945103a715e2601613597e8242d3d015905b3f19088da4a12d7d72c7769cd79581cdb0b437ebcb3fc24c1d75dbb457d6d2284ef662b
+MISC metadata.xml 332 SHA256 4e1cb81c66b944bba224c9aac140df609f7b7639c2b19ba62476ce37f559caf6 SHA512 bc1094f4316330324f30e1fc02c2ec4c4ac3a4201b3d6203dc24845bcbcd194a2c762b39399aef2f42d9df0064ca75c84495e49832b8fd02038bfba7a177ac7b WHIRLPOOL 23696f69ba884991eb2bdccb5021fefc384fe506827a83bbc8626ab6b5055b0a3a505e163cdd1c3246abc9e7b3e2ab2def71a8f5b81d4192b09c7e89eed603a4
diff --git a/sys-fs/f2fs-tools/f2fs-tools-1.6.1.ebuild b/sys-fs/f2fs-tools/f2fs-tools-1.6.1.ebuild
new file mode 100644
index 000000000000..0b088d41d9a5
--- /dev/null
+++ b/sys-fs/f2fs-tools/f2fs-tools-1.6.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit multilib eutils
+
+DESCRIPTION="Tools for Flash-Friendly File System (F2FS)"
+HOMEPAGE="https://git.kernel.org/?p=linux/kernel/git/jaegeuk/f2fs-tools.git;a=summary"
+SRC_URI="https://dev.gentoo.org/~blueness/f2fs-tools/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/0"
+KEYWORDS="amd64 arm ~mips ppc ppc64 x86"
+IUSE=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-sysmacros.patch #580338
+}
+
+src_configure() {
+ #This is required to install to /sbin, bug #481110
+ econf --prefix=/ --includedir=/usr/include
+}
+
+src_install() {
+ default
+ rm -f "${ED}"/$(get_libdir)/libf2fs.{,l}a
+ rm -f "${ED}"/$(get_libdir)/libf2fs_format.{,l}a
+}
diff --git a/sys-fs/f2fs-tools/f2fs-tools-1.8.0.ebuild b/sys-fs/f2fs-tools/f2fs-tools-1.8.0.ebuild
new file mode 100644
index 000000000000..fe85240c1de3
--- /dev/null
+++ b/sys-fs/f2fs-tools/f2fs-tools-1.8.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="Tools for Flash-Friendly File System (F2FS)"
+HOMEPAGE="https://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/about/"
+SRC_URI="https://dev.gentoo.org/~blueness/f2fs-tools/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0/2"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86"
+IUSE="selinux"
+
+RDEPEND="
+ sys-apps/util-linux
+ selinux? ( sys-libs/libselinux )"
+DEPEND="$RDEPEND"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-sysmacros.patch #623660
+)
+
+src_configure() {
+ #This is required to install to /sbin, bug #481110
+ econf \
+ --bindir="${EPREFIX}"/sbin \
+ --disable-static \
+ $(use_with selinux)
+}
+
+src_install() {
+ default
+ find "${D}" -name "*.la" -delete || die
+}
diff --git a/sys-fs/f2fs-tools/files/f2fs-tools-1.6.1-sysmacros.patch b/sys-fs/f2fs-tools/files/f2fs-tools-1.6.1-sysmacros.patch
new file mode 100644
index 000000000000..f5cc4a090188
--- /dev/null
+++ b/sys-fs/f2fs-tools/files/f2fs-tools-1.6.1-sysmacros.patch
@@ -0,0 +1,45 @@
+https://bugs.gentoo.org/580338
+
+From d6abcb38899cd03d59e0f30c49419695f86ae543 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 18 Apr 2016 18:18:07 -0400
+Subject: [PATCH] fibmap: pull in sys/sysmacros.h for major/minor
+
+These funcs are provided by sys/sysmacros.h, so include the header
+directly. Building with alternative C libraries can fail otherwise
+like so:
+
+fibmap.c: In function 'print_stat':
+fibmap.c:36:32: warning: implicit declaration of function 'major' [-Wimplicit-function-declaration]
+ printf("dev [%d:%d]\n", major(st->st_dev), minor(st->st_dev));
+ ^
+fibmap.c:36:51: warning: implicit declaration of function 'minor' [-Wimplicit-function-declaration]
+ printf("dev [%d:%d]\n", major(st->st_dev), minor(st->st_dev));
+ ^
+fibmap.o: In function 'print_stat':
+tools/fibmap.c:36: undefined reference to 'minor'
+tools/fibmap.c:36: undefined reference to 'major'
+fibmap.o: In function 'stat_bdev':
+tools/fibmap.c:59: undefined reference to 'minor'
+tools/fibmap.c:59: undefined reference to 'major'
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ tools/fibmap.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/fibmap.c b/tools/fibmap.c
+index 224b233..6b092f5 100644
+--- a/tools/fibmap.c
++++ b/tools/fibmap.c
+@@ -8,6 +8,7 @@
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <libgen.h>
+ #include <linux/hdreg.h>
+ #include <linux/types.h>
+--
+2.7.4
+
diff --git a/sys-fs/f2fs-tools/files/f2fs-tools-1.8.0-sysmacros.patch b/sys-fs/f2fs-tools/files/f2fs-tools-1.8.0-sysmacros.patch
new file mode 100644
index 000000000000..7ca70222fd5a
--- /dev/null
+++ b/sys-fs/f2fs-tools/files/f2fs-tools-1.8.0-sysmacros.patch
@@ -0,0 +1,10 @@
+--- f2fs-tools-1.8.0/lib/libf2fs.c.orig 2017-07-03 03:01:53.000000000 +0600
++++ f2fs-tools-1.8.0/lib/libf2fs.c 2017-08-17 00:45:01.638979885 +0600
+@@ -16,6 +16,7 @@
+ #include <fcntl.h>
+ #include <mntent.h>
+ #include <time.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <sys/mount.h>
+ #include <sys/ioctl.h>
diff --git a/sys-fs/f2fs-tools/metadata.xml b/sys-fs/f2fs-tools/metadata.xml
new file mode 100644
index 000000000000..e2b7d573df60
--- /dev/null
+++ b/sys-fs/f2fs-tools/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">f2fs-tools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/fatsort/Manifest b/sys-fs/fatsort/Manifest
new file mode 100644
index 000000000000..94c7b85d32a5
--- /dev/null
+++ b/sys-fs/fatsort/Manifest
@@ -0,0 +1,7 @@
+DIST fatsort-1.3.365.tar.gz 57209 SHA256 77acc374b189e80e3d75d3508f3c0ca559f8030f1c220f7cfde719a4adb03f3d SHA512 e3611841501e6dded8fd6270188ffb00191a20e93d84b0729cd2e215d37317f48e08bd67da41b88604858ef6f661e4b921b80645f454b78f91bfd2d0d4254d29 WHIRLPOOL 0998259baf3f315b0d7485fdf7d8172fa4c8f17f3f41fd163780eeaf7b6eda6c2e5dfdd99e9d0dd603bcd53aa6fc2a1ea6e1e2a2f14d211a8fc01b8db4ddeb9d
+DIST fatsort-1.4.2.439.tar.xz 41852 SHA256 bdbcf99307baef3e76d99700691ac525c9a9cf96d8433b45c89314940cc6a1e0 SHA512 c51b5316b34e1a74e2a8d1c625716fd022d32e40a92ef56b88fbc940b5e6dd6c978b733f180477e8b5b3235b46cd16eb74798c5aadd45de9ead1f1bafdf52fee WHIRLPOOL d72031ef071c2748488935a35ac8d7ba84d162312e35ac69fb5799e699f495ae190fb9230f875a2624c013d5eba4a3e9c49f7fbda76b661fc55a1692adae7951
+EBUILD fatsort-1.3.ebuild 779 SHA256 2677a611d3ee1f98ba7e520c27fedce2e11c2ac0056dab075db5bfbf615643ea SHA512 dfd525dc3af5a865f3ddc2fa483a536037f8bccf32df2d8dfc393d9a6f77bc0e87b568be2d293edd8b1f796588981edf2f4db0526732e6643884f5db6a5a5f4e WHIRLPOOL 95c411c8821cbf4dba4ce46115425e5c51a2ccdf31c42e7c1e037702e80c1a1627fc0f26f0994df897065f7b3df56c84775ae2c29f6b14af32403334a51f4094
+EBUILD fatsort-1.4.2.ebuild 796 SHA256 3e3b466a1fac7495531ca76ff149e55f70a922eff5b647fef3bda3e49769fa36 SHA512 4638f2012e753d85cf71ce9143d1871453678d018ea9c40d316a7c6817afa20f485eb890374349e29d52ea0dfa23807ca81d90883b57252fa975caec84ff822f WHIRLPOOL 3cdf7ef6e03e6682af4d75c0e8a8cdf9103825a04aa51f6fe5d643808343a81875262a5f0df1bc4ad0ad9ca5a99778e04ec277ad82b96e4a2bbd2b4935d9b6cf
+MISC ChangeLog 2346 SHA256 316ae7571c9ec83ecebde45d1c8f635731b20ca803882cfb773f2e16a8cc4758 SHA512 7719900f383e59f3ddc5e8fcf0690f1f0bed88efd1f229832077b66fca48785ec4ab5f21f9d3c5fd23cd7a3a633daddd97743b0eba7b962b514151f5c4118b3e WHIRLPOOL 5bc9d85821683571f93363a725802f8901063721283737cd18a46325b5943efaf5aeaf32959e2bf97ba9adb193c369011f958fe62eed81cfc8581cfec4852484
+MISC ChangeLog-2015 6353 SHA256 a34716cf4c54661e379ee26f3bd9e263fc7fa3ae0ef383a69ccfabe7ba55047f SHA512 52d95b9d127c466e5819ff7d186b45a9304a44300ea70bece7518f30438bf7f58e16e36061b153ec45b5bac0cd7382dc02f845ea2f18d1d02feb875b8e748fae WHIRLPOOL f82fb96d988e5b18cd479cbfa27c88505c95207c4e4bd47d3d16e0cb39395e983b1037f4abd34b50f57f68916b918fe52be1719b4a9dac970820e51448ee5ba1
+MISC metadata.xml 738 SHA256 0954708386e5d4be88e0d010ba59ecc085adf3d8451a5bbc30502771c0281405 SHA512 42cb5be41b29129b17ea55591d352872ccd6078705068c6899d4f1f5a5b99ab5f6809e75ee6b49bd6b536f6b66632ce9e1859f4bbad764b966d5520a8aa5a228 WHIRLPOOL 7fbc84aa341e1f6af48e46341138fa36016af25bf19420cecbea00e1ebb33770321a128bbd2eece9cf488d91396d82089e7b90654caadd6f3030a174de9d3b66
diff --git a/sys-fs/fatsort/fatsort-1.3.ebuild b/sys-fs/fatsort/fatsort-1.3.ebuild
new file mode 100644
index 000000000000..d2e195201b1f
--- /dev/null
+++ b/sys-fs/fatsort/fatsort-1.3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+SVN_REV=365
+MY_P=${P}.${SVN_REV}
+
+DESCRIPTION="Sorts files on FAT16/32 partitions, ideal for basic audio players"
+HOMEPAGE="http://fatsort.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+DEPEND="test? ( dev-util/bbe sys-fs/dosfstools )"
+
+RESTRICT="test? ( userpriv )"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ sed -i -e '/^\(MANDIR=\|SBINDIR=\)/s|/usr/local|/usr|' \
+ $(find ./ -name Makefile) || die
+}
+
+src_compile() {
+ emake CC=$(tc-getCC) LD=$(tc-getCC) \
+ CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
+ DESTDIR="${D}"
+}
+
+src_test() {
+ make tests
+}
diff --git a/sys-fs/fatsort/fatsort-1.4.2.ebuild b/sys-fs/fatsort/fatsort-1.4.2.ebuild
new file mode 100644
index 000000000000..355a59c1440b
--- /dev/null
+++ b/sys-fs/fatsort/fatsort-1.4.2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs
+
+SVN_REV=439
+MY_P=${P}.${SVN_REV}
+
+DESCRIPTION="Sorts files on FAT16/32 partitions, ideal for basic audio players"
+HOMEPAGE="http://fatsort.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ default
+
+ sed -i -e '/^\(MANDIR=\|SBINDIR=\)/s|/usr/local|/usr|' \
+ $(find ./ -name Makefile) || die
+}
+
+src_compile() {
+ emake CC=$(tc-getCC) LD=$(tc-getCC) \
+ CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
+ DESTDIR="${D}"
+}
+
+src_test() {
+ # Tests require root permissions and mounting filesystems which does
+ # not work inside the ebuild environment
+ true
+}
diff --git a/sys-fs/fatsort/metadata.xml b/sys-fs/fatsort/metadata.xml
new file mode 100644
index 000000000000..c21da8d2168c
--- /dev/null
+++ b/sys-fs/fatsort/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>billie@gentoo.org</email>
+ <name>Daniel Pielmeier</name>
+ </maintainer>
+ <longdescription><pkg>sys-fs/fatsort</pkg> is a utility that sorts FAT16 and FAT32 partitions. It even can
+ handle long file name entries. It reads the boot sector and sorts the
+ directory structure recursively. The main use case is to sort files on an
+ Audio player that does not implement the sorting function itself but plays
+ the files in the same order as they were copied to the disk.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">fatsort</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/fuse-convmvfs/Manifest b/sys-fs/fuse-convmvfs/Manifest
new file mode 100644
index 000000000000..5d5e36498488
--- /dev/null
+++ b/sys-fs/fuse-convmvfs/Manifest
@@ -0,0 +1,6 @@
+AUX mount.convmvfs 170 SHA256 38da1609751a45776bd2fa000e8c90881a9afef4bfa45ab3dca9d770c76dc45e SHA512 5419088466cf3e0a1a97da25d574569230279e0b6b2555ce073ca5a0f0e819dc4a267f830d540d550a68cf8ba74b3ba25c2066f9a40bb357be750159e86a521c WHIRLPOOL 49693190fefc82c815dd19214e9ef8719f0a9ad9a9e7bf12caa3a8c87086eccda946a01b2f374a7c88b0e16fa723e36be9ffa6752ed3f16d458577b34f32d46c
+DIST fuse-convmvfs-0.2.6.tar.gz 94252 SHA256 67566fd4bc3f66211156872c60164aca898dcbba0669d52b8f74a9911b789695 SHA512 5cea997822067f01dc1cd7b11356be7dc33a805ad142fb8612bce34deb4771879af9922c3a76f989e6d63d3464f4fffb22bfafa3eaa82e21a6e506f73df97aab WHIRLPOOL 2fb0fe3162a7ea992045023074447067bf4dc37c2b10fe6f93f89bcf3e130616975fe37fdea4afbd4aae5a1f41b18fedbd38be5d972d72f8eee6b03500a1d719
+EBUILD fuse-convmvfs-0.2.6.ebuild 487 SHA256 936baad44ae25879789d73abf4c55893d9ba7fe82f348baa035abb74d785819c SHA512 f984161220463acadd4897ba7e1c2f1b859501a48720f09e6fa7df91887fc60c70c0f9c90592aa56b5993247148d5e19edf532b22e68919810f134e9d832312e WHIRLPOOL 3f84e9150da76bce9af159d0f25b4513e112eba1608f67d6096ce20384b19ef754b48a6096d02964e8b36adc98e5c0d4a77ab1017da2d2aca88613519578c252
+MISC ChangeLog 2561 SHA256 13fd4316f553311084cedc41a6eb09dfee8813929d0b46ef522757e292a07375 SHA512 9d5172c897845ebd3813f14abab4941890e28e9470cf4885883ff937a1039cbc2d666d40c06d55526a309aae76087f3031a2187de97b86d201d19ddb55fd168a WHIRLPOOL 6bd10533e5774cd58bd9e5d28a99220b351ea2c38178a6ef9d498c78076da72f4b3e2d9660fa0181e9a6d737c1902c70a7c34e66a62848cc3ae2d391fbb4b02e
+MISC ChangeLog-2015 471 SHA256 b12e65f3dcf83e2fc3406e508d4d2463f90a088dd635c11fc4cba0a6068c1a65 SHA512 3db6f56d2a55d6c29c3235f124be967e85a427a1196675f48dd9fc616c92ef98c0b013cf97653bb81e81779b42ac207d4e1f8200fb6d23d8db4836753302efed WHIRLPOOL 4bdde3f6cc3c06dc020006e8174096ad8b8ecc0883efdee2914e23daec3f687b959aadadf85a59bbb30afa3c49e93d17512fa53f996c700f5a2bbe509e8c7e18
+MISC metadata.xml 250 SHA256 d54bb14450f17de7c8c2f3acffd28632a7397646894bd26c741e29b04967ce7b SHA512 89a3e975aa260abddb192ab8adaf41c4fa8ea3a88dcf5a4323aa42a2181b4dd6fce3e397627f48d2015c0cbb42f658fca06e6fe096ec6ddc150bb80f48db322f WHIRLPOOL ade48b8d0e355323292a2c14905c267a30f2d241d53b368eab0ea514720ddcbb64a66b09184d0fb2ad91555ae8c9025bc155fc7f360bcb1f2f6aeb1e0225b058
diff --git a/sys-fs/fuse-convmvfs/files/mount.convmvfs b/sys-fs/fuse-convmvfs/files/mount.convmvfs
new file mode 100644
index 000000000000..cb383aa5463e
--- /dev/null
+++ b/sys-fs/fuse-convmvfs/files/mount.convmvfs
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# small wrapper-script to use convmvfs from
+# /etc/fstab and via "mount -t convmvfs".
+
+srcdir="${1}"
+shift
+exec /usr/bin/convmvfs "${@}" -o "srcdir=${srcdir}"
diff --git a/sys-fs/fuse-convmvfs/fuse-convmvfs-0.2.6.ebuild b/sys-fs/fuse-convmvfs/fuse-convmvfs-0.2.6.ebuild
new file mode 100644
index 000000000000..0d66eb3f3fdf
--- /dev/null
+++ b/sys-fs/fuse-convmvfs/fuse-convmvfs-0.2.6.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit eutils
+
+DESCRIPTION="FUSE file system to convert filename charset"
+HOMEPAGE="http://fuse-convmvfs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="sys-fs/fuse"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ default
+ exeinto /sbin
+ doexe "${FILESDIR}/mount.convmvfs"
+}
diff --git a/sys-fs/fuse-convmvfs/metadata.xml b/sys-fs/fuse-convmvfs/metadata.xml
new file mode 100644
index 000000000000..09c0bcc12d50
--- /dev/null
+++ b/sys-fs/fuse-convmvfs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="sourceforge">fuse-convmvfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/fuse-exfat/Manifest b/sys-fs/fuse-exfat/Manifest
new file mode 100644
index 000000000000..0c15143d9301
--- /dev/null
+++ b/sys-fs/fuse-exfat/Manifest
@@ -0,0 +1,9 @@
+DIST fuse-exfat-1.2.4.tar.gz 136048 SHA256 9312d23a5d82543ad2e9ab7f0a0b471aea53eeb8eae664451c881b46d849756e SHA512 e425df39b205de017250ae29231a1d485649710fa08d6c46f2c831e3ff6a696f20e5bf2086d7803b992edc7e9296ee28df5cf1321cc21183f96e373aa3b5fcd9 WHIRLPOOL 1168756eee2698a6bd14412a618d33b2769dad0d6aedef46317efb1c50b2f546c0fab25ab9faa39914e7b4111416cd854b0639de07928356d8418bf3df4401c3
+DIST fuse-exfat-1.2.6.tar.gz 136534 SHA256 e1105256d75860c0678f98bbae0b8fe465d4c96ed187b7035556097f152478e7 SHA512 93132583b9637c9c48eeaa40d49222686488db7123d0c524d6f70daf6e11fdb5b2b0e44046820b36d3a31a3421165ff9546beb93cb94a6f04cb2d0477aa0c420 WHIRLPOOL 16d4fe2dde62cc87087ad530d15631a7fff40c119acfacc8f42af203c6983cf19738c7e559a7a72f79ea28f0fc5bfa7e7ed3f14395654596bd67fc50894000ef
+DIST fuse-exfat-1.2.7.tar.gz 135447 SHA256 82c3cd328179fd1ab8c5e9f1a10b831c2d67c1cf15a7b9b361fc35d02c63c035 SHA512 dd41a9dac2c0229b42127ef517b15d0f63095bdde57a534a7bf4c473a14164964372ae9c8f8d35bf73f8e0ad3acc66483e34f35e90ed18bb88d2696a5cb9645e WHIRLPOOL 02034c57b5cb0200e3b5dae3f4f706472021b9573bbc7a11b3eda21e83404b36e9bf256dbedaec50da48af813f124d85267284d3acd27f1ec2d100837bbfadcb
+EBUILD fuse-exfat-1.2.4.ebuild 669 SHA256 3d087a659855fa557d15c62490754eb846250557fa970f39944d89a48e332d88 SHA512 3668b64925e6ae839a2be8556becb28a88006fb77089b8647af8f89d214e8f054ebf65fe41f0142a79f44f6c523f3adff87487cb00779d9a941819b6654d5787 WHIRLPOOL e3b4796ccc03c0774331d672254f6c3646b6dae9009b1794415f8cc44126bf6b0664599a80031600afad59de7737c1c77380beb117228a144ff4a6b2e2f4767f
+EBUILD fuse-exfat-1.2.6.ebuild 671 SHA256 261314973b0de31b8bd8b286686a598210d9b2ce9337e8b0e0110e40d0ef5c4f SHA512 eb085490011b47985081aed348a4fa908d5dffe0ff27d7ed0a950dccee22aa322685463caff520728d65d1d37739b5f3894f22b683a3e5203681aef209680d55 WHIRLPOOL d2e5533b52b8d44d41ec7de92d862251f5b96588a16320977e6a51007dca04a7efb49744fa8342987f4ec7128d23b2cf683b2501ac2a4b0b3e1673ecd8f960c7
+EBUILD fuse-exfat-1.2.7.ebuild 671 SHA256 261314973b0de31b8bd8b286686a598210d9b2ce9337e8b0e0110e40d0ef5c4f SHA512 eb085490011b47985081aed348a4fa908d5dffe0ff27d7ed0a950dccee22aa322685463caff520728d65d1d37739b5f3894f22b683a3e5203681aef209680d55 WHIRLPOOL d2e5533b52b8d44d41ec7de92d862251f5b96588a16320977e6a51007dca04a7efb49744fa8342987f4ec7128d23b2cf683b2501ac2a4b0b3e1673ecd8f960c7
+MISC ChangeLog 6203 SHA256 a5ed67ce337c995567ac6cad5512f9884547d3a8f563d16c0d0827ea8445c011 SHA512 269c014575f120c7c21f7b9f530fdd026fca342c91b4c74032e394820858f279e0637b7de6d1ffd3c1e3d0f91e063ed65072efa014ab7175a7106f70c1e61a77 WHIRLPOOL 033ae107b5d8773e203b8f0b8711f72de48ced1033f9b3709b98125fd78f54707b9f2dbc18e14a2a519c105cf14c6d560929de3a40e7300803cfe572e9611b3a
+MISC ChangeLog-2015 2959 SHA256 c2d23d2634e5cb3115c34380f21bc4dfb92ff8d9a6dc0509525b974d4f7d086c SHA512 6ef05f2d54788d00571d60ba4b96497355381c3655a12f25eb9eeda30c91630320f1835396e5cc039a0ad76241f328cdd37b7b41d8a9b0480e31b4bfebbe6a39 WHIRLPOOL 280780a16126b7d4e86b0cca7732faf5ba8ad936d03fd16cdb533107cc512e44f09fc15d60ceca747bdd1c98433092ea8a45badeeca34988bfb85b2ab4baabd4
+MISC metadata.xml 451 SHA256 ee41d185c1caf45e3942c20b386b8189515df888e85c7276f8e792db53ff6c4e SHA512 e9b06c7885b8f6d5d114042e9fa8946583b2a481ef74d4269e0d462ff995fb7da3d4ef171d401c48f517c93ca8b954f7f72f1fc0a9ac294b232e7d8a5da228c9 WHIRLPOOL 876a308a186eae48ddfbc65cfe646c325a348bad655dd96ff6078bd2c4a69451d4875025f08bbcd5985d640fd747df88bc732a722bfb501e55cd704bdf8efb38
diff --git a/sys-fs/fuse-exfat/fuse-exfat-1.2.4.ebuild b/sys-fs/fuse-exfat/fuse-exfat-1.2.4.ebuild
new file mode 100644
index 000000000000..54bbc72c75a4
--- /dev/null
+++ b/sys-fs/fuse-exfat/fuse-exfat-1.2.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="exFAT filesystem FUSE module"
+HOMEPAGE="https://github.com/relan/exfat"
+SRC_URI="https://github.com/relan/exfat/releases/download/v${PV}/${P}.tar.gz"
+
+# COPYING is GPL-2 but ChangeLog says "Relicensed the project from GPLv3+ to GPLv2+"
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~arm-linux ~x86-linux"
+
+RDEPEND="sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( ChangeLog )
+
+src_install() {
+ default
+ dosym mount.exfat-fuse.8 /usr/share/man/man8/mount.exfat.8
+}
diff --git a/sys-fs/fuse-exfat/fuse-exfat-1.2.6.ebuild b/sys-fs/fuse-exfat/fuse-exfat-1.2.6.ebuild
new file mode 100644
index 000000000000..5380f93ed279
--- /dev/null
+++ b/sys-fs/fuse-exfat/fuse-exfat-1.2.6.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="exFAT filesystem FUSE module"
+HOMEPAGE="https://github.com/relan/exfat"
+SRC_URI="https://github.com/relan/exfat/releases/download/v${PV}/${P}.tar.gz"
+
+# COPYING is GPL-2 but ChangeLog says "Relicensed the project from GPLv3+ to GPLv2+"
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~arm-linux ~x86-linux"
+
+RDEPEND="sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( ChangeLog )
+
+src_install() {
+ default
+ dosym mount.exfat-fuse.8 /usr/share/man/man8/mount.exfat.8
+}
diff --git a/sys-fs/fuse-exfat/fuse-exfat-1.2.7.ebuild b/sys-fs/fuse-exfat/fuse-exfat-1.2.7.ebuild
new file mode 100644
index 000000000000..5380f93ed279
--- /dev/null
+++ b/sys-fs/fuse-exfat/fuse-exfat-1.2.7.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="exFAT filesystem FUSE module"
+HOMEPAGE="https://github.com/relan/exfat"
+SRC_URI="https://github.com/relan/exfat/releases/download/v${PV}/${P}.tar.gz"
+
+# COPYING is GPL-2 but ChangeLog says "Relicensed the project from GPLv3+ to GPLv2+"
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~arm-linux ~x86-linux"
+
+RDEPEND="sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( ChangeLog )
+
+src_install() {
+ default
+ dosym mount.exfat-fuse.8 /usr/share/man/man8/mount.exfat.8
+}
diff --git a/sys-fs/fuse-exfat/metadata.xml b/sys-fs/fuse-exfat/metadata.xml
new file mode 100644
index 000000000000..2b2d336f4adb
--- /dev/null
+++ b/sys-fs/fuse-exfat/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>floppym@gentoo.org</email>
+</maintainer>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="google-code">exfat</remote-id>
+ <remote-id type="github">relan/exfat</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/fuse-zip/Manifest b/sys-fs/fuse-zip/Manifest
new file mode 100644
index 000000000000..415ddbaacd05
--- /dev/null
+++ b/sys-fs/fuse-zip/Manifest
@@ -0,0 +1,5 @@
+DIST fuse-zip-0.4.2.tar.gz 672323 SHA256 3d4ee113d4c7918ad3c660f8088473d5fabf67b3476fef16ec7f5bd8a4182fdc SHA512 73e38ee96b6bd24ee74b13e57994dddcd97abb99997c1d2bae4801f37a2cf1665cef0cbe4c6cca26d8423c4a9cb5fec2583ad033e242b4807ae87719f2e5f2a7 WHIRLPOOL efe1fbe48103cb679817bbbd132f0e87d9ce8b55175a37329f75cfec3056948d627143e974a3c221aad9a1c130ff0909238be574a029ed46df2d284b9c039f55
+EBUILD fuse-zip-0.4.2.ebuild 881 SHA256 c8c88d825a9350f22fa45883bdbfe1d7051bec85c9e1d161ee4e06458fce6a88 SHA512 d521fc413a82072f38cd9193a5bc0f24cd86f0b882c7b6a0d70ed1be130130efce4f99e0c9b361b5d48cb87fdec6087a0f80b39fba9a62715073fa400956a212 WHIRLPOOL 072828f1d9fdd0470f0745c432d993b4f94e2dbf47daebc6866272647dc5b4454c215a555a26441f9c28c37ab715dc4475b7e9d3d5910a188c5ab92069e84b23
+MISC ChangeLog 3661 SHA256 dcb3d197265cb75d98ed575b18b3a9a30202dd79e507260b5507c9e5b9091572 SHA512 7c7665df5aff93b201a1b5a977fb6da0036b9ff468aa5011e5a1c41f3cb1aa13d0120b05e7252c722bf98e29ab5d8cf311b4cd9fa38ca2e0ba968287505fc345 WHIRLPOOL a31bc50ce46c495a39195fab98cfd12a460ba4ff8cb973c67a8978f4d1a5032b9240bdf03755e27d5c446dbfd1d74cdb2b18e6bf09394b2ae3a828aebdf5635c
+MISC ChangeLog-2015 1667 SHA256 8bd659f27441b40e2e695185b8779cff5bd9a818a20254d6ec3e2b9435c7d7b8 SHA512 e524a160a2db9e831a2f01625a1544e5d3bd63116ca48c1820fee315ca66d2576b9c8fa6875c534d97ce50d45097c57e899f8bc068502a07de770c299459f32c WHIRLPOOL bf66e2a22b64863cda00c4e7c2b61ed265c3af189a37952ec1d00337ab978629b66b170e900bcd4e0d0e01dc278f95cc4e111f867b91dbe1d33fe1fe6bd80b0e
+MISC metadata.xml 388 SHA256 7c2377da511c1db08f99b6a73bc89cf7d51cbcfe0a8716352dc630af4d5f4915 SHA512 08f5a44d72e9f11caf0913bd613202e3e3605cdd989ad56fbfeb106f2c8c18e74395b315921c81e30a70149eed7f20747b2416ad1c2ba356a1cec831e0be5b11 WHIRLPOOL 60202c0904a1218d3f8a917e3f704df1174da3c638cd043f699c0cb9dc9264f0faa37e4fc007cdf100babace3185b66e6aedd83a5693381918082ee36a7b61b5
diff --git a/sys-fs/fuse-zip/fuse-zip-0.4.2.ebuild b/sys-fs/fuse-zip/fuse-zip-0.4.2.ebuild
new file mode 100644
index 000000000000..4436c8c05131
--- /dev/null
+++ b/sys-fs/fuse-zip/fuse-zip-0.4.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="FUSE file system to navigate, extract, create and modify ZIP archives"
+HOMEPAGE="https://bitbucket.org/agalanin/fuse-zip"
+SRC_URI="https://bitbucket.org/agalanin/${PN}/downloads/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-libs/libzip-0.11.2:=
+ >=sys-fs/fuse-2.7:="
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+src_prepare() {
+ # Fix strip than installing fuse-zip
+ sed -i -e 's/install -m 755 -s/install -m 755/' Makefile || die "sed failed"
+ #enable parallel build
+ sed -i -e "s:make :\$\(MAKE\) :" Makefile || die "sed failed"
+ # Fix prefix
+ sed -i -e "s:^prefix=.*:prefix=/usr:" Makefile || die "sed failed"
+}
+
+src_compile() {
+ emake CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} ${LDFLAGS}"
+}
diff --git a/sys-fs/fuse-zip/metadata.xml b/sys-fs/fuse-zip/metadata.xml
new file mode 100644
index 000000000000..77ee45c5d763
--- /dev/null
+++ b/sys-fs/fuse-zip/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>hwoarang@gentoo.org</email>
+ <name>Markos Chandras</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">fuse-zip</remote-id>
+ <remote-id type="bitbucket">agalanin/fuse-zip</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/fuse/Manifest b/sys-fs/fuse/Manifest
new file mode 100644
index 000000000000..40ce621d4ac8
--- /dev/null
+++ b/sys-fs/fuse/Manifest
@@ -0,0 +1,14 @@
+AUX fuse-2.9.3-kernel-types.patch 434 SHA256 f8953ffaa7b5ee118193058e9468fb4113018931d31b42146a150a36edf29604 SHA512 909d43fbe190400d4beabd9801bf554e38a5bb5a3545930883976f42a2090c8768e485183949269639ddeae5bae5490b37dc23f031c48d6c4fd4c9facf08b66b WHIRLPOOL 7872c4af8ab9ce26fbce8636f99916dc090e4022aa942b5502ff1f508ac6ff7f3122ea011ac32cbb49000536b88ebef2ee216c273394348703f86550c9887953
+AUX fuse-fbsd.init 468 SHA256 9239983ac7fa845844c0b2534cad199f70b60be71b2aaea7699a5f224584d03d SHA512 c8ae0e1932e34e2078bb8a1ab47c6d2d489f832f7adb118668624d3f0695ebf8b3ac2468a8db98579ef30078eac6989421aae7d7893e30a50e5c35d0a00ad6a9 WHIRLPOOL 6dbb6aa019c9cd93c896389987555e86e798256328b56947204bbce1303d909fc9789db7febb753e22a79718491a60d7c99d4e3aa6c776eb214f88ff440ca889
+AUX fuse.init 757 SHA256 66ce65e2459fef26bb1711d706a23643a9af7a80e03ee6be836a377310b00682 SHA512 7f6a503ef23cfa8b809c544375c2d83ad56525269b48ad1a7dff0ce36f4bf2f2a3fafed9dc70a71ff6281b261db5f01829e16c06f041921a5d8c8d715a04a8c1 WHIRLPOOL 0b2691f1174a271d4de08cadbad14f7d150a30d2bbf02aa7e8090e139bd5f7a9a5fc1cd2cef510e3c299e19b66db480fac1d528c7bca18d18b4024c9a710a322
+DIST fuse-2.9.7.tar.gz 661138 SHA256 832432d1ad4f833c20e13b57cf40ce5277a9d33e483205fc63c78111b3358874 SHA512 f47304d9c7a1815f7a2905b7bdb7785d4c10292a80c8dc1ec45d895af96bc6ffd6d84ff2617bd976a1d0867ab8ec1a404a5a05ace85a69ecca830f371d08f8e2 WHIRLPOOL 826f77920356c129cda5ca158e37327688d2aa044c0ecdaabe8d52e724b0349813460d876571672bcb59a5b8004018593abdb314187b6b6706fee69b9eadaae7
+DIST fuse-3.0.0rc3.tar.gz 744606 SHA256 f8c64ebc8e3e29c33f0877c673a4a1a060569299690f32dc682ba4a2aa1ee50b SHA512 a50d12d70ee44c217f198a231bf37b323d36741aacb5d6b2fbf6f8cfc645d9106d7f05f7cc7be29bd64098b48797f8c53a239194bf49e714b9a0dc12bf885e35 WHIRLPOOL 55a66383ca712458d5006a043ca71f157522621df9283e6c42b6c44b2548869a72b7804485db69be3d60c194da906bf4660fb16fab10f8d5afae60eb4670c7a8
+DIST fuse-3.1.0.tar.gz 809470 SHA256 b4d496fd39b9bf69b7cdeea1cbe6e8e3794dfaafe2a16ffac01a4ff10336e19e SHA512 e6278aef67162439b736af28528edb0f39a4513f584e5949a269cc3bc07a14436e6f0b69dbe8002db6f60de9139c452568b5a091baa49119a7f61422b7aec84c WHIRLPOOL 8a4eb0cb79131da2eba550edaa1ff5b1eb02eecfb7157f3257d81427c37b404718e67593d67106f5cb09724a1dd9997f4e3c472915ff74e8fdb3f86d9daf1008
+DIST fuse-3.1.1.tar.gz 819205 SHA256 4e89cf58d0b498fc37f7474193fe9c17dbd3b5d14e5abc6ff629b33e81f1d213 SHA512 38c61380f08cc9cde576d4d8fdc3b9a7c703c753ae9c477ec5210fddfe235055dc925e024ba74f3200576974f901d05b5d138cecf1baffe7b17f17ed23fdc391 WHIRLPOOL 64c9716d1e6f02d2eedf0ab5865dc3684bdcaac637fcd577d9b90ba739c8a0c16d2b29a2e5dafa98c54b73e4972c5a95169bb58fb56c39f0e995a45deec246e3
+EBUILD fuse-2.9.7.ebuild 2217 SHA256 31627c78e9755b9c475cfe537962b19b1d184eafe23cfe90f2e41ac3798aaad9 SHA512 40735712f825b32f9db1078d78549be073db57329ffc243ef0cd46b8faf06fcb7961143d2779a8bc1ea8cdbfc0328110d9cc460f93e3eed8f51a58894d12287c WHIRLPOOL 057f8004a77e826c707d9748e126984501880027882184a49c04aedfdd5d6ba0e1a3de3a46c28c0805decc51b96e1694f65ac982b3b64631a1f49bf4e255cbda
+EBUILD fuse-3.0.0_rc3.ebuild 2175 SHA256 771fb3d7a739f39d230b6739d9af371f1bd4a1dcec3130eee57fcc7147ae152c SHA512 683cb8c47f8d592305e83c01a926a305ebf89b7d1f35394d93c3dc6afdf99c1f778468147191fb2689947491cbbbb23a97ec028f4c68e3eac7460b8318e96e3f WHIRLPOOL 398d1053e45dffab51e1183be334d929890b5b04cca87d437558831b670cd1bf9a6bc3b61979df2710d2888b245f7c45fb1dd5e3c2c4cdcf8d4caaaea3d9d45b
+EBUILD fuse-3.1.0.ebuild 982 SHA256 5330d0cd089d7e1cb53f7af9cf61eb67a0fd90ebb7d0702e74309fbcd7c54d25 SHA512 8730ae6ce93a3a09574531acfa1029d649c26353aa45da6d25426db93cdcad94df87f0f18ae0fdecc304d6619d2b385d6d3423240356fde7cfd7bac120fc3e36 WHIRLPOOL 53b82344ec6e65fec5903aaa8062ad465f4085f59968075359c89fa620d62ac080c68493d9a2662645d37cfbd8f5aaed18b0bd2dd2d28d405b0d3d1fa79f6f59
+EBUILD fuse-3.1.1.ebuild 1032 SHA256 20d7867815701812fb1d58f84ecd1e57f02ee5759aef7761fa8e9b8c5481f526 SHA512 4fc85ec2409032548ecc680c851604bdafd9e07a42419800004f04dbd64a7d6604325af8e35716e389194e1d6a97b350ae4b82efb6597232244471570f18790f WHIRLPOOL f16e49bc4faf2fae1c63ce69b7ee7070e547ec88295c101c0bf0069f1d95603b6e05ba32b743d5d1358328c3966f4a5b213ba3e7e516b87ef8eed051ece515a8
+MISC ChangeLog 4825 SHA256 1bad0da6f3fec7e8fd99034c9295289647baf7192a7bd80272f3734ead14a302 SHA512 10f21481199ec2ab74666ba1520678899858a9d96b43969fab82e887dc08a91a7b6976038abc5cc499eee149a6b04a6bb3ebc4fb8471afc171e0075bba3d2068 WHIRLPOOL cab9bcdf9559cb2671986e3e1d97852ed96767d6f8c09aab422c2ee4931f9293c5b6df211da42e061fffe39699932b9b71c76ed32e26c34e6857d4ae479091ef
+MISC ChangeLog-2015 27380 SHA256 d51b5a7d22daccf5a2f8355ad8abc927d7b9614726faeda6ba6e0d912a92ed19 SHA512 0af668df05e347b91dda98b6ffdbe6d81dcd3f0ca0c2c9cc7def2f2789674297d58df3315d0fb41e7a3ea73e00aaf0eeecb159c8e898fa873a7f2934f5ef5209 WHIRLPOOL 46dc9df38275bcef89c4b58fdafc4782b7bf538ad850a68866df1ca1dfb7a320b8cf7fbe216db290bc2ced8b9f1a52ae4ce9f4a98102a659c6a39897ba8eafc2
+MISC metadata.xml 391 SHA256 49dc941699b6c5c7493484a85434f36620e66f30fbfd314693df4d06be898662 SHA512 181d574140e8459c76d7392cf63eec85e1b40142b31b9ac1a19bf657c8482b581c1ea23fdae6a523bbad4943e3245409dfc14eea38243b78ef541e3cad49a180 WHIRLPOOL 61f3e35760261757272f95f604f8e796437193ea331153c3464873a3fcf4fe5821b057798e69ebcc4229acf8989d2378fd083ba2f6520b1fb525df4aa35e7e1a
diff --git a/sys-fs/fuse/files/fuse-2.9.3-kernel-types.patch b/sys-fs/fuse/files/fuse-2.9.3-kernel-types.patch
new file mode 100644
index 000000000000..52d9658a2d88
--- /dev/null
+++ b/sys-fs/fuse/files/fuse-2.9.3-kernel-types.patch
@@ -0,0 +1,19 @@
+this is a minimal version of:
+https://sourceforge.net/p/fuse/fuse/ci/6b02a7082ae4c560427ff95b51aa8930bb4a6e1f/
+
+--- a/include/fuse_kernel.h
++++ b/include/fuse_kernel.h
+@@ -88,12 +88,7 @@
+ #ifndef _LINUX_FUSE_H
+ #define _LINUX_FUSE_H
+
+-#include <sys/types.h>
+-#define __u64 uint64_t
+-#define __s64 int64_t
+-#define __u32 uint32_t
+-#define __s32 int32_t
+-#define __u16 uint16_t
++#include <linux/types.h>
+
+ /*
+ * Version negotiation:
diff --git a/sys-fs/fuse/files/fuse-fbsd.init b/sys-fs/fuse/files/fuse-fbsd.init
new file mode 100644
index 000000000000..27d90cc867f3
--- /dev/null
+++ b/sys-fs/fuse/files/fuse-fbsd.init
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need localmount
+}
+
+start() {
+ ebegin "Starting fuse"
+ if ! kldstat -q -m fuse; then
+ kldload fuse >/dev/null 2>&1 || eerror $? "Error loading fuse module"
+ fi
+ eend ${?}
+}
+
+stop() {
+ ebegin "Stopping fuse"
+ if kldstat -q -m fuse; then
+ kldunload fuse >/dev/null 2>&1 || eerror $? "Error unloading fuse module"
+ fi
+ eend ${?}
+}
diff --git a/sys-fs/fuse/files/fuse.init b/sys-fs/fuse/files/fuse.init
new file mode 100644
index 000000000000..6c99929c2266
--- /dev/null
+++ b/sys-fs/fuse/files/fuse.init
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+MOUNTPOINT=/sys/fs/fuse/connections
+
+depend() {
+ need localmount
+}
+
+start() {
+
+ ebegin "Starting fuse"
+ if ! grep -qw fuse /proc/filesystems; then
+ modprobe fuse >/dev/null 2>&1 || eerror $? "Error loading fuse module"
+ fi
+ if grep -qw fusectl /proc/filesystems && \
+ ! grep -qw $MOUNTPOINT /proc/mounts; then
+ mount -t fusectl none $MOUNTPOINT >/dev/null 2>&1 || \
+ eerror $? "Error mounting control filesystem"
+ fi
+ eend ${?}
+
+}
+
+stop() {
+
+ ebegin "Stopping fuse"
+ if grep -qw $MOUNTPOINT /proc/mounts; then
+ umount $MOUNTPOINT >/dev/null 2>&1 || \
+ eerror $? "Error unmounting control filesystem"
+ fi
+ eend ${?}
+
+}
diff --git a/sys-fs/fuse/fuse-2.9.7.ebuild b/sys-fs/fuse/fuse-2.9.7.ebuild
new file mode 100644
index 000000000000..552bdfe7e681
--- /dev/null
+++ b/sys-fs/fuse/fuse-2.9.7.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils libtool linux-info udev toolchain-funcs
+
+DESCRIPTION="An interface for filesystems implemented in userspace"
+HOMEPAGE="https://github.com/libfuse/libfuse"
+SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="examples kernel_linux kernel_FreeBSD static-libs"
+
+PDEPEND="kernel_FreeBSD? ( sys-fs/fuse4bsd )"
+DEPEND="virtual/pkgconfig"
+
+pkg_setup() {
+ if use kernel_linux ; then
+ if kernel_is lt 2 6 9 ; then
+ die "Your kernel is too old."
+ fi
+ CONFIG_CHECK="~FUSE_FS"
+ FUSE_FS_WARNING="You need to have FUSE module built to use user-mode utils"
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ local PATCHES=( "${FILESDIR}"/${PN}-2.9.3-kernel-types.patch )
+ # sandbox violation with mtab writability wrt #438250
+ # don't sed configure.in without eautoreconf because of maintainer mode
+ sed -i 's:umount --fake:true --fake:' configure || die
+ elibtoolize
+
+ default
+}
+
+src_configure() {
+ econf \
+ INIT_D_PATH="${EPREFIX}/etc/init.d" \
+ MOUNT_FUSE_PATH="${EPREFIX}/sbin" \
+ UDEV_RULES_PATH="${EPREFIX}/$(get_udevdir)/rules.d" \
+ $(use_enable static-libs static) \
+ --disable-example
+}
+
+src_install() {
+ local DOCS=( AUTHORS ChangeLog README.md README.NFS NEWS doc/how-fuse-works doc/kernel.txt )
+ default
+
+ if use examples ; then
+ docinto examples
+ dodoc example/*
+ fi
+
+ if use kernel_linux ; then
+ newinitd "${FILESDIR}"/fuse.init fuse
+ elif use kernel_FreeBSD ; then
+ insinto /usr/include/fuse
+ doins include/fuse_kernel.h
+ newinitd "${FILESDIR}"/fuse-fbsd.init fuse
+ else
+ die "We don't know what init code install for your kernel, please file a bug."
+ fi
+
+ prune_libtool_files
+ rm -rf "${D}"/dev
+
+ dodir /etc
+ cat > "${ED}"/etc/fuse.conf <<-EOF
+ # Set the maximum number of FUSE mounts allowed to non-root users.
+ # The default is 1000.
+ #
+ #mount_max = 1000
+
+ # Allow non-root users to specify the 'allow_other' or 'allow_root'
+ # mount options.
+ #
+ #user_allow_other
+ EOF
+}
diff --git a/sys-fs/fuse/fuse-3.0.0_rc3.ebuild b/sys-fs/fuse/fuse-3.0.0_rc3.ebuild
new file mode 100644
index 000000000000..43bf6fd1bdd8
--- /dev/null
+++ b/sys-fs/fuse/fuse-3.0.0_rc3.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils libtool linux-info udev toolchain-funcs
+
+MY_P=${P/_/}
+
+DESCRIPTION="An interface for filesystems implemented in userspace"
+HOMEPAGE="https://github.com/libfuse/libfuse"
+SRC_URI="https://github.com/libfuse/libfuse/releases/download/${MY_P}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="examples kernel_linux kernel_FreeBSD static-libs"
+
+PDEPEND="kernel_FreeBSD? ( sys-fs/fuse4bsd )"
+DEPEND="virtual/pkgconfig"
+
+S=${WORKDIR}/${MY_P}
+
+pkg_setup() {
+ if use kernel_linux ; then
+ if kernel_is lt 2 6 9 ; then
+ die "Your kernel is too old."
+ fi
+ CONFIG_CHECK="~FUSE_FS"
+ FUSE_FS_WARNING="You need to have FUSE module built to use user-mode utils"
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ # sandbox violation with mtab writability wrt #438250
+ # don't sed configure.in without eautoreconf because of maintainer mode
+ sed -i 's:umount --fake:true --fake:' configure || die
+ elibtoolize
+
+ default
+}
+
+src_configure() {
+ econf \
+ INIT_D_PATH="${EPREFIX}/etc/init.d" \
+ MOUNT_FUSE_PATH="${EPREFIX}/sbin" \
+ UDEV_RULES_PATH="${EPREFIX}/$(get_udevdir)/rules.d" \
+ $(use_enable static-libs static) \
+ --disable-example
+}
+
+src_install() {
+ local DOCS=( AUTHORS README.md doc/README.NFS doc/kernel.txt )
+ default
+
+ if use examples ; then
+ docinto examples
+ dodoc example/*
+ fi
+
+ if use kernel_linux ; then
+ newinitd "${FILESDIR}"/fuse.init fuse
+ elif use kernel_FreeBSD ; then
+ insinto /usr/include/fuse
+ doins include/fuse_kernel.h
+ newinitd "${FILESDIR}"/fuse-fbsd.init fuse
+ else
+ die "We don't know what init code install for your kernel, please file a bug."
+ fi
+
+ prune_libtool_files
+ rm -rf "${D}"/dev
+
+ dodir /etc
+ cat > "${ED}"/etc/fuse.conf <<-EOF
+ # Set the maximum number of FUSE mounts allowed to non-root users.
+ # The default is 1000.
+ #
+ #mount_max = 1000
+
+ # Allow non-root users to specify the 'allow_other' or 'allow_root'
+ # mount options.
+ #
+ #user_allow_other
+ EOF
+}
diff --git a/sys-fs/fuse/fuse-3.1.0.ebuild b/sys-fs/fuse/fuse-3.1.0.ebuild
new file mode 100644
index 000000000000..ac994543f9a4
--- /dev/null
+++ b/sys-fs/fuse/fuse-3.1.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit meson multilib-minimal
+
+DESCRIPTION="An interface for filesystems implemented in userspace"
+HOMEPAGE="https://github.com/libfuse/libfuse"
+SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="3"
+#KEYWORDS="~amd64"
+RESTRICT="test"
+
+DOCS=( AUTHORS README.md doc/README.NFS doc/kernel.txt )
+
+src_prepare() {
+ default
+ # passthough_ll is broken on systems with 32-bit pointers
+ cat /dev/null > example/meson.build || die
+}
+
+multilib_src_configure() {
+ meson_src_configure
+}
+
+multilib_src_compile() {
+ eninja
+}
+
+multilib_src_install() {
+ DESTDIR="${D}" eninja install
+}
+
+multilib_src_install_all() {
+ default
+ rm "${ED%/}"/dev/fuse || die
+ rmdir "${ED%/}"/dev || die
+ rm "${ED%/}"/etc/init.d/fuse3 || die
+ rmdir "${ED%/}"/etc{/init.d,} || die
+ mv "${ED%/}"/usr/share/man/man8/mount.fuse{,3}.8.gz || die
+}
diff --git a/sys-fs/fuse/fuse-3.1.1.ebuild b/sys-fs/fuse/fuse-3.1.1.ebuild
new file mode 100644
index 000000000000..f2e588be8b69
--- /dev/null
+++ b/sys-fs/fuse/fuse-3.1.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit meson multilib-minimal
+
+DESCRIPTION="An interface for filesystems implemented in userspace"
+HOMEPAGE="https://github.com/libfuse/libfuse"
+SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="3"
+#KEYWORDS="~amd64"
+RESTRICT="test"
+
+DEPEND="
+ virtual/pkgconfig
+"
+
+DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt )
+
+src_prepare() {
+ default
+ # passthough_ll is broken on systems with 32-bit pointers
+ cat /dev/null > example/meson.build || die
+}
+
+multilib_src_configure() {
+ meson_src_configure
+}
+
+multilib_src_compile() {
+ eninja
+}
+
+multilib_src_install() {
+ DESTDIR="${D}" eninja install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ rm "${ED%/}"/dev/fuse || die
+ rmdir "${ED%/}"/dev || die
+ rm "${ED%/}"/etc/init.d/fuse3 || die
+ rmdir "${ED%/}"/etc{/init.d,} || die
+ mv "${ED%/}"/usr/share/man/man8/mount.fuse{,3}.8.gz || die
+}
diff --git a/sys-fs/fuse/metadata.xml b/sys-fs/fuse/metadata.xml
new file mode 100644
index 000000000000..42343713afc0
--- /dev/null
+++ b/sys-fs/fuse/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:fuse:fuse</remote-id>
+ <remote-id type="github">libfuse/libfuse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/fuse4bsd/Manifest b/sys-fs/fuse4bsd/Manifest
new file mode 100644
index 000000000000..55b4bdf942ca
--- /dev/null
+++ b/sys-fs/fuse4bsd/Manifest
@@ -0,0 +1,13 @@
+AUX fuse4bsd-0.3.0-gcc4.patch 432 SHA256 ea81c1d6aaba492a4bf5cecae0929d85ac427e30aebacb19b72ed1a380baa21b SHA512 edbd1ac4b7fc4ad81f6787edbe2d5202d3566f5b05c996bf65ab0bf97f69ce99fe14d42707c3a2852ac967082a3cfbf2688d4377b67221240b7d2af0f345b2fc WHIRLPOOL 44a8506824d4833596b67db75e2fe4fada19a36583ad6771094e5325fa5bc5fc8062859bf7e7a9ae7b68fe00723984c44f6201aece022213af1a327080d718b6
+AUX fuse4bsd-0.3.0-ports.patch 13090 SHA256 51a11321b4a792ca8e6127d1ab0982ffed32b1dcaa1c26102254c1aa61ba4278 SHA512 aae25a811ff987aa6beebccf72bda7309552ffa08402d0ae2d1c06c40f5b689d00ee4702cbff0cfcf874d43dadddc94cd088444645fef87bc59a91ac66f680cc WHIRLPOOL ad23409a5c23614773d8df6b68142da55ebc063ab037ee9be0cd998f19fbd6d8a9f10899f0c88754d92b58fca57bcd562684dd4e793dd357f2e1029a8fb2337f
+AUX fuse4bsd-0.3.9_pre1-fbsd91.patch 508 SHA256 2ff41ec6b99b9309288b927d686dac234d5a6c1d0f40724522d00d46bc27ac9c SHA512 9a02ef10ffc1134470a807c7d475c56ac7139835593e06c66a2ed182f39e7488468035ae940a6ef0551e6d888689969d5838733e0fcd398fc524e1de9fd1e8b3 WHIRLPOOL ae427655a4fa0a8996cc597c249f919db75a3631ab5f2a3180aebb3e229eaced4fe80a6d8b70bd6ebd5fc75989214f21ad4f1ddf180fd8f7cba657cb736fc150
+AUX fuse4bsd-0.3.9_pre1-ports.patch 12209 SHA256 2af30fcec3f7ea2a99e549768ac133138c628111e26fb39d8a201b4fdf19ffff SHA512 0d149e517bfa2b0260e86bda7f1d3f06c6328dd1803f72a1e823e91bb596e5f0a0bcf4fd00a70f574935eb96c515049001d8e7c42bc0893d81fb2e371fcef67c WHIRLPOOL bdc8d8ff082a0882d0cce62675d9cbeec0af80fff370466a90f510027bfc9219e4307b9c11c676769f2b86da1f9f770a31ed2eb8bfb9626c0366e78e3bb8f7a8
+DIST 498acaef33b0.tar.gz 116035 SHA256 3fff52dc292f481b4c51cad3e9cf5f8982e38a25e809ee986e8406c81aff0119 SHA512 6427d888cea5b1519c4ae92ec8ec640535692c59dd8ca987a32574050239c9ff4cb92a4cf6b34f3c1363becdd9fd75c031f5db4bda34b298898466066740845a WHIRLPOOL 4f78cb0228a73e76e15e6d85c2db94e1eaf75eb10507e533bb51c4a52092fc9c881187f10aca12bc89b791058790f9a84e139698e0e64ee602fe5efb3c03b82a
+DIST freebsd-sbin-6.2.tar.bz2 1162548 SHA256 aef424c07686bb72fbd06e4fd66a01b00bd36b70fec02ebdc228061cd4b435dd SHA512 db46b03f324713ea03d38f453426b2b8d683e64e0b8bec7de70332a62855f5d3b81169c8bad37d8f3d2a35edf191165894e9e450200d9795d2c03d7675d17329 WHIRLPOOL 28bb471713f74f078170fc12f6b69e15628a6528e6a87b4426da70e72106a0f4ae787f0275bb4741667992caa963354cf50f25fe8d5bf7d83c713e65a4c41378
+DIST freebsd-sbin-9.1.tar.bz2 1273913 SHA256 45008b0733b232ef03707ef5fa3e5c889e3b3728393d736bd9a869ea83be6447 SHA512 9f186602b7de96f268c352ca386986652fddf5570e7eca1afa8c0d2bdc83b57df1198efe47f36dd5c7a6abf4f9c935f1c8207a4a12a6b2153bd6c3c6292719dc WHIRLPOOL 20920dfa9607a0ce854319cef29bbd77fb1b31f6f6cfd5ac60cbd678169e43929e215743fe636d0c224443f3e6149a8f07c292d647f7f901592795ac292699f9
+DIST fuse4bsd-0.3.0.tar.gz 168068 SHA256 5ed1d9b0542d6962c135f6f2e8d296ab3feb51f239954cc6acc50833318854fe SHA512 1e65150ed5aa798e92007c95b4588f1d8c19e04ce7433d28ccdbc1b1492e319e0108641b41d7d6846494da6af4473d5d76ff81f4068b3dfda9d1463d8d995d3e WHIRLPOOL bbbf76abfea9b4b38e0d4723f6109f52d4f15212cedec4a978433978d14afe35f7ee214414c54ee6493a8f5f54afc7de377a86740f93154cc37bd654234bb2a0
+EBUILD fuse4bsd-0.3.0.ebuild 1308 SHA256 e9bb1adcfab2e899d41b7ee5ba54230668a4a95ecbc3d8a7df6da8bb981247d3 SHA512 5d7a0f4d529c259b3c784c61a1d6173d3b0fe7d3668a0c056d6931bd9e118f52f655e43e43a1862f41161f8b643a0757e5140fe0d9a097f8e6b0e6a064c14b52 WHIRLPOOL fadd6d7370fbc87ae115d2fb3131e83e07c2ca92ba90847fc7df0ce64d2cba6257188976875793603e5d0738ec43c9d398c333cea2ffe92dd6f15da5ee5c929c
+EBUILD fuse4bsd-0.3.9_pre1.ebuild 1880 SHA256 422b8237cedfacd4215e97ac61c6590703705897ed28af29e39a53472442dd79 SHA512 3ef2aabe3fbdaee4dbd8fff11434101cb0759025f9e90146b3d9dae2bd37e8e239f000b3819de0f9878015963aa31e248f67539326362ea8c4a534878d2b6730 WHIRLPOOL 370f9d4459d30910441af9e91dce66e8da12e24a36195e593c8381ee9b413810fec635474600a1ec095e623083ac2ff2fb87fdf279079440b99507db5fe795a2
+MISC ChangeLog 2648 SHA256 7fb7335e0474654680bec6f9fcd4309acf46fba8a693a53f1849c77c7fc7108e SHA512 6b13bf85930dd8c75d3c67e33d7fbd9b555f3b5c8684e7aefecadf84dc7b058ce3b719dd9b2012002ae9c34204b4051d3299410d529f663d7d9d2f8ffbca191b WHIRLPOOL 9eb9f5b0c82074a862bb15808f36fdbd6b0315b084b099282d2db1e2c7d0d05dc1e0382b5380aa28c4022e251b1ec659c5f7da652f5af1510960f5a309bd7376
+MISC ChangeLog-2015 1382 SHA256 2479ed2147c8f03faa505fb032387f7c88316fc6fa8da386233a2eade61c1bbf SHA512 8f5b8c54b1c5055da1068f907ac01282b9c3e98798ea40c8543c736cc00e3f566ecc8c9c12fe1f88ab4db2ed249f2426ee174cb87fd7f737dffaeefb0a44a81b WHIRLPOOL 7fba46cb4f6eb0d0d6c4449c9059ff7465fad4b441e17e3dd21a053e88f2ff8b7bf882aae1395ba29610cd4f4afcf8626faed055af1fbd60c10abcfa03386526
+MISC metadata.xml 238 SHA256 501d93b0c41ed422505100f002758cd173cd9783ae7fbb53e2ec5f238c868340 SHA512 173efaa53a514acf1e2f0c6681c82a48ec16d505844f551d2cc823ee8685b27837c7461f7956c12182059ee7e83023e2f0bcd5d1afab74beeaf998487193656d WHIRLPOOL 4ca51d994f011a5e7e4939f02a54b5c2f9f3e526665893c9ac2876c9871b7dc80361393d41c5247b3a5520e82d31d0dd10da520e7715c94b806a94ce0fed2a5a
diff --git a/sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-gcc4.patch b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-gcc4.patch
new file mode 100644
index 000000000000..ca1158e9fc1f
--- /dev/null
+++ b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-gcc4.patch
@@ -0,0 +1,12 @@
+diff -ur fuse4bsd-0.3.0.old/fuse_module/fuse.c fuse4bsd-0.3.0/fuse_module/fuse.c
+--- fuse4bsd-0.3.0.old/fuse_module/fuse.c 2006-11-05 14:32:44.000000000 +0100
++++ fuse4bsd-0.3.0/fuse_module/fuse.c 2006-11-05 14:33:43.000000000 +0100
+@@ -5971,7 +5971,7 @@
+ extern struct cdevsw fmaster_cdevsw[5];
+ static struct cdev *fmaster_dev[5];
+ #endif
+-extern struct vfsconf fuse_vfsconf;
++static struct vfsconf fuse_vfsconf;
+
+
+ static void
diff --git a/sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-ports.patch b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-ports.patch
new file mode 100644
index 000000000000..a2c349919298
--- /dev/null
+++ b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.0-ports.patch
@@ -0,0 +1,491 @@
+--- fuse_module/fmaster.c Mon Jun 19 22:10:26 2006 +0200
++++ fuse_module/fmaster.c Mon Jun 19 22:23:08 2006 +0200
+@@ -506,22 +506,22 @@ fuse_response_prettyprint(enum fuse_opco
+ case FUSE_FSYNCDIR:
+ //pp_buf(fresp);
+ break;
+-#if FUSE_HAS_GETLK
++#ifdef FUSE_HAS_GETLK
+ case FUSE_GETLK:
+ panic("FUSE_GETLK implementor has forgotten to define a response body format check");
+ break;
+ #endif
+-#if FUSE_HAS_SETLK
++#ifdef FUSE_HAS_SETLK
+ case FUSE_SETLK:
+ panic("FUSE_SETLK implementor has forgotten to define a response body format check");
+ break;
+ #endif
+-#if FUSE_HAS_SETLKW
++#ifdef FUSE_HAS_SETLKW
+ case FUSE_SETLKW:
+ panic("FUSE_SETLKW implementor has forgotten to define a response body format check");
+ break;
+ #endif
+-#if FUSE_HAS_ACCESS
++#ifdef FUSE_HAS_ACCESS
+ case FUSE_ACCESS:
+ break;
+ #endif--- fuse_module/fuse.c.orig Wed Sep 27 15:49:47 2006
++++ fuse_module/fuse.c Wed Sep 27 15:52:02 2006
+@@ -75,7 +75,7 @@
+ };
+
+
+-#if USE_OLD_CLONEHANDLER_API
++#ifdef USE_OLD_CLONEHANDLER_API
+ static void fusedev_clone(void *arg, char *name, int namelen, struct cdev **dev);
+ #else
+ static void fusedev_clone(void *arg, struct ucred *cred, char *name, int namelen, struct cdev **dev);
+@@ -120,7 +120,7 @@
+ __static void fuse_insert_message(struct fuse_ticket *tick);
+ __static fuse_handler_t fuse_standard_handler;
+ static fuse_handler_t fuse_fsync_handler;
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static fuse_handler_t fuse_forgetful_handler;
+ #endif
+
+@@ -852,27 +852,27 @@
+ case FUSE_FSYNCDIR:
+ err = blen == 0 ? 0 : EINVAL;
+ break;
+-#if FUSE_HAS_GETLK
++#ifdef FUSE_HAS_GETLK
+ case FUSE_GETLK:
+ panic("FUSE_GETLK implementor has forgotten to define a response body format check");
+ break;
+ #endif
+-#if FUSE_HAS_SETLK
++#ifdef FUSE_HAS_SETLK
+ case FUSE_SETLK:
+ panic("FUSE_SETLK implementor has forgotten to define a response body format check");
+ break;
+ #endif
+-#if FUSE_HAS_SETLKW
++#ifdef FUSE_HAS_SETLKW
+ case FUSE_SETLKW:
+ panic("FUSE_SETLKW implementor has forgotten to define a response body format check");
+ break;
+ #endif
+-#if FUSE_HAS_ACCESS
++#ifdef FUSE_HAS_ACCESS
+ case FUSE_ACCESS:
+ err = blen == 0 ? 0 : EINVAL;
+ break;
+ #endif
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ case FUSE_CREATE:
+ err = blen == sizeof(struct fuse_entry_out) + sizeof(struct fuse_open_out) ? 0 : EINVAL;
+ break;
+@@ -881,7 +881,7 @@
+ panic("fuse opcodes out of sync");
+ }
+
+-#if _DEBUG2G
++#ifdef _DEBUG2G
+ if (err)
+ DEBUG2G("op %s (#%d) with body size %d: invalid body size\n",
+ (0 <= opcode && opcode <= fuse_opnames_entries) ? fuse_opnames[opcode] : "???",
+@@ -904,7 +904,7 @@
+ uint64_t nid, enum fuse_opcode op, size_t blen,
+ struct thread* td, struct ucred *cred)
+ {
+- ihead->len = sizeof(ihead) + blen; /* actually not used by lib */
++ ihead->len = sizeof(*ihead) + blen; /* actually not used by lib */
+ ihead->unique = tick->unique;
+ ihead->nodeid = nid;
+ ihead->opcode = op;
+@@ -988,7 +988,7 @@
+ return (0);
+ }
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static int
+ fuse_forgetful_handler(struct fuse_callback_node *caliban, struct uio *uio)
+ {
+@@ -1242,7 +1242,7 @@
+ static int
+ fusedev_write(struct cdev *dev, struct uio *uio, int ioflag)
+ {
+-#if _DEBUG_MSGING
++#ifdef _DEBUG_MSGING
+ static int counter=0;
+ #endif
+ struct fuse_out_header *ohead;
+@@ -1415,7 +1415,7 @@
+ if ((err = fuse_callbn_wait_answer(&fdip->tick->callbn))) {
+ /* Uh-huh, we got interrupted... */
+
+-#if ! DONT_TRY_HARD_PREVENT_IO_IN_VAIN
++#ifndef DONT_TRY_HARD_PREVENT_IO_IN_VAIN
+ struct fuse_callback_node *fcallbn;
+ unsigned age;
+ #endif
+@@ -1438,7 +1438,7 @@
+ age = fdip->tick->age;
+ fuse_callbn_set_answered(&fdip->tick->callbn);
+ mtx_unlock(&fdip->tick->callbn.answer_mtx);
+-#if ! DONT_TRY_HARD_PREVENT_IO_IN_VAIN
++#ifndef DONT_TRY_HARD_PREVENT_IO_IN_VAIN
+ /*
+ * If we are willing to pay with one more locking, we
+ * can save on I/O by getting the device write handler
+@@ -1662,7 +1662,7 @@
+ /* static vop_pathconf_t fuse_pathconf; */
+ static vfs_hash_cmp_t fuse_vnode_cmp;
+ static vfs_hash_cmp_t fuse_vnode_bgdrop_cmp;
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static vfs_hash_cmp_t fuse_vnode_fgdrop_cmp;
+ #endif
+ /* static vfs_vget_t fuse_vget; */
+@@ -1683,7 +1683,7 @@
+ static vop_lookup_t fuse_lookup;
+ static int iterate_filehandles(struct vnode *vp, struct thread *td, struct ucred *cred, fuse_metrics_t fmetr, void *param);
+ static fuse_metrics_t fuse_standard_metrics;
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static __inline int create_filehandle(struct vnode *vp, struct thread *td, struct ucred *cred, int mode, struct fuse_dispatcher *fdip);
+ #endif
+ static struct fuse_filehandle *get_filehandle(struct vnode *vp, struct thread *td, struct ucred *cred, int mode, struct get_filehandle_param *gefhp);
+@@ -1729,7 +1729,7 @@
+
+ static b_strategy_t fuse_bufstrategy;
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static vop_access_t fuse_germ_access;
+ #endif
+
+@@ -1773,7 +1773,7 @@
+ .vop_unlock = fuse_unlock,
+ };
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static struct vop_vector fuse_germ_vnops;
+ #endif
+
+@@ -2092,7 +2092,7 @@
+
+ if (! (fmnt->mntopts & FUSEFS_SECONDARY)) {
+ data->mp = mp;
+-#if ! REALTIME_TRACK_UNPRIVPROCDBG
++#ifndef REALTIME_TRACK_UNPRIVPROCDBG
+ fmnt->mntopts &= ~FUSEFS_UNPRIVPROCDBG;
+ fmnt->mntopts |= get_unprivileged_proc_debug(td) ? FUSEFS_UNPRIVPROCDBG : 0;
+ #endif
+@@ -2380,7 +2380,7 @@
+ return (0);
+ }
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ /*
+ * Vnode comparison function with which the given vnode always
+ * gets inserted, but got marked invalid upon a clash. Caller
+@@ -2654,7 +2654,7 @@
+
+ fuse_filehandle_gc(vp, td, NULL);
+
+-#if ! DONT_STORE_FS_MAP
++#ifndef DONT_STORE_FS_MAP
+ /*
+ * Dropping vnodes when they are not in use would mean that
+ * the respective inode must be freed on the daemon's side
+@@ -2751,7 +2751,7 @@
+ int denied;
+
+ if ((denied = cr_candebug(
+-#if REALTIME_TRACK_UNPRIVPROCDBG
++#ifdef REALTIME_TRACK_UNPRIVPROCDBG
+ get_unprivileged_proc_debug(td),
+ #else
+ fmnt->mntopts & FUSEFS_UNPRIVPROCDBG,
+@@ -2948,7 +2948,7 @@
+
+ } else {
+ struct sx *devlock = fdi.slock;
+-#if FUSE_HAS_ACCESS
++#ifdef FUSE_HAS_ACCESS
+ struct fuse_access_in *fai;
+
+ if (! (facp->facc_flags & FACCESS_DO_ACCESS))
+@@ -3056,7 +3056,7 @@
+
+ bzero(&facp, sizeof(facp));
+ if (
+-#if NO_EARLY_PERM_CHECK_HACK
++#ifdef NO_EARLY_PERM_CHECK_HACK
+ 1
+ #else
+ dvp->v_vflag & VV_ROOT
+@@ -3281,8 +3281,12 @@
+ DEBUG("we peacefully found that file\n");
+
+ if (flags & ISDOTDOT) {
+- vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td);
++ VOP_UNLOCK(dvp, 0, td);
++ err = vn_lock(pdp, cnp->cn_lkflags, td);
+ VREF(pdp);
++ vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
++ if (err)
++ goto out;
+ *vpp = pdp;
+ } else if (nid == VTOI(dvp)) {
+ VREF(dvp); /* We want ourself, ie "." */
+@@ -3347,7 +3351,7 @@
+ if (islastcn && flags & ISOPEN)
+ ((struct fuse_vnode_data *)(*vpp)->v_data)->flags |= FVP_ACCESS_NOOP;
+
+-#if ! NO_EARLY_PERM_CHECK_HACK
++#ifndef NO_EARLY_PERM_CHECK_HACK
+ if (! islastcn) {
+ /* We have the attributes of the next item
+ * *now*, and it's a fact, and we do not have
+@@ -3486,7 +3490,7 @@
+ return (0);
+ }
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static __inline int
+ create_filehandle(struct vnode *vp, struct thread *td, struct ucred *cred,
+ int mode, struct fuse_dispatcher *fdip)
+@@ -3643,7 +3647,7 @@
+ * the vnode... if the vnode is a germ, it will be tried to be initialized
+ * via a dedicated method, but from that on we go on as usual.)
+ */
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ if (vp->v_op == &fuse_germ_vnops) {
+ KASSERT(gefhp, ("create_filehandle called without get_filehandle_param"));
+ gone_create = 1;
+@@ -3709,7 +3713,7 @@
+ if ((err = fdisp_wait_answ(&fdi)))
+ goto out;
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ setup_filehandle:
+ #endif
+ foo = fdi.answ;
+@@ -4184,7 +4188,7 @@
+ #define BSD_FUSE_PAGENO_BOUND MIN(FUSE_MAX_PAGES_PER_REQ, MAXBSIZE / PAGE_SIZE)
+
+ bcount = MIN(MAXBSIZE, biosize * BSD_FUSE_PAGENO_BOUND);
+-#if BIOREAD_CONSIDER_FILE_SIZE
++#ifdef BIOREAD_CONSIDER_FILE_SIZE
+ if (vp->v_type != VDIR) {
+ /*
+ * for directories we can't predict the size, in fact
+@@ -4493,7 +4497,7 @@
+ break;
+ }
+
+-#if ZERO_PAD_INCOMPLETE_BUFS
++#ifdef ZERO_PAD_INCOMPLETE_BUFS
+ if (isbzero(buf), FUSE_NAME_OFFSET) {
+ err = -1;
+ break;
+@@ -4658,7 +4662,7 @@
+ struct vnode *dvp = ap->a_dvp;
+ struct vnode **vpp = ap->a_vpp;
+ struct vattr *vap = ap->a_vap;
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ struct fuse_dispatcher fdi;
+ struct fuse_vnode_data *fvdat;
+ int err;
+@@ -4949,7 +4953,7 @@
+ if (err)
+ goto out;
+
+-#if ! DONT_DO_CHECKPATH
++#ifndef DONT_DO_CHECKPATH
+ if (doingdirectory && fdvp != tdvp) {
+ /*
+ * Check for pathname conflict.
+@@ -5396,7 +5400,6 @@
+ struct vnode *vp = fioda->vp;
+ struct uio *uio = fioda->uio;
+ struct ucred *cred = fioda->cred;
+- struct fuse_filehandle *fufh = fioda->fufh;
+
+ int biosize;
+
+@@ -5506,7 +5509,7 @@
+ if ((bp->b_flags & B_CACHE) == 0) {
+ bp->b_iocmd = BIO_READ;
+ vfs_busy_pages(bp, 0);
+- fuse_strategy_i(vp, bp, fufh, 0);
++ fuse_strategy_i(vp, bp, NULL, 0);
+ if ((err = bp->b_error)) {
+ brelse(bp);
+ break;
+@@ -5741,7 +5744,7 @@
+ chunksize, (long long unsigned)fri->offset, respsize);
+
+ if (respsize < chunksize) {
+-#if ZERO_PAD_INCOMPLETE_BUFS
++#ifdef ZERO_PAD_INCOMPLETE_BUFS
+ /*
+ * "if we don't get enough data, just fill the
+ * rest with zeros."
+@@ -5888,7 +5891,7 @@
+ "vp=%p, rc=%d", bp, vp, rc));
+ }
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ static int
+ fuse_germ_access(struct vop_access_args *ap)
+ {
+@@ -5908,7 +5911,7 @@
+
+ /* Modeled after tunclone() of net/if_tun.c
+ */
+-#if USE_OLD_CLONEHANDLER_API
++#ifdef USE_OLD_CLONEHANDLER_API
+ static void
+ fusedev_clone(void *arg, char *name, int namelen, struct cdev **dev)
+ #else
+@@ -6019,7 +6022,7 @@
+ fuse_fileops.fo_close = fuse_close_f;
+ fuse_fileops.fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE;
+
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ memcpy(&fuse_germ_vnops, &dead_vnodeops, sizeof(struct vop_vector));
+ fuse_germ_vnops.vop_access = fuse_germ_access;
+ fuse_germ_vnops.vop_open = fuse_open;
+--- fuse_module/fuse.h.orig Fri Feb 10 17:31:53 2006
++++ fuse_module/fuse.h Sun Jul 16 14:43:20 2006
+@@ -8,7 +8,7 @@
+
+ #ifndef USE_OLD_CLONEHANDLER_API
+ #if __FreeBSD_version < 600034 || ( __FreeBSD_version >= 700000 && __FreeBSD_version < 700002 )
+-#define USE_OLD_CLONEHANDLER_API 1
++#define USE_OLD_CLONEHANDLER_API
+ #endif
+ #endif
+
+@@ -19,10 +19,10 @@
+ */
+ #if FUSE_KERNELABI_GEQ(7, 3)
+ #ifndef FUSE_HAS_ACCESS
+-#define FUSE_HAS_ACCESS 1
++#define FUSE_HAS_ACCESS
+ #endif
+ #ifndef FUSE_HAS_CREATE
+-#define FUSE_HAS_CREATE 1
++#define FUSE_HAS_CREATE
+ #endif
+ #endif
+
+@@ -75,7 +75,7 @@
+ size_t len; /* To keep track of size of the data pushed into base, =< len, of course */
+ };
+
+-#if ! FUSE_AUX
++#ifndef FUSE_AUX
+ #ifndef FUSE_MAX_STORED_FREE_TICKETS
+ #define FUSE_MAX_STORED_FREE_TICKETS 0
+ #endif
+@@ -251,7 +251,7 @@
+ int flags;
+ LIST_HEAD(, fuse_filehandle) fh_head;
+ int fh_counter;
+-#if FUSE_HAS_CREATE
++#ifdef FUSE_HAS_CREATE
+ struct componentname *germcnp;
+ #endif
+ };
+@@ -260,6 +260,9 @@
+
+ /* Debug related stuff */
+
++#ifndef DEBUGTOLOG
++#define DEBUGTOLOG 0
++#endif
+ #if DEBUGTOLOG
+ #define dprintf(args ...) log(LOG_DEBUG, args)
+ #else
+@@ -267,6 +270,9 @@
+ #endif
+
+ #define DEBLABEL "[fuse-debug] "
++#ifndef _DEBUG
++#define _DEBUG 0
++#endif
+ #if _DEBUG
+ #ifndef _DEBUG2G
+ #define _DEBUG2G 1
+@@ -280,6 +286,9 @@
+ #define DEBUG(args ...)
+ #endif
+
++#ifndef _DEBUG2G
++#define _DEBUG2G 0
++#endif
+ #if _DEBUG2G
+ #ifndef _DEBUG3G
+ #define _DEBUG3G 1
+@@ -290,6 +299,9 @@
+ #define DEBUG2G(args ...)
+ #endif
+
++#ifndef _DEBUG3G
++#define _DEBUG3G 0
++#endif
+ #if _DEBUG3G
+ #define DEBUG3G(args, ...) \
+ printf(DEBLABEL "%s:%d: " args, __func__, __LINE__, ## __VA_ARGS__)
+@@ -297,13 +309,19 @@
+ #define DEBUG3G(args ...)
+ #endif
+
++#ifndef FMASTER
++#define FMASTER 0
++#endif
+ #if FMASTER
+ #ifndef _DEBUG_MSGING
+ #define _DEBUG_MSGING 1
+ #endif
+ #endif
+
+-#if _DEBUG_MSGING
++#ifndef _DEBUG_MSG
++#define _DEBUG_MSG 0
++#endif
++#ifdef _DEBUG_MSGING
+ #define fuprintf(args...) \
+ uprintf("[kern] " args)
+ #else
+@@ -319,7 +337,7 @@
+ void fprettyprint(struct fuse_iov *fiov, size_t dlen);
+ #endif
+
+-#if IGNORE_INLINE
++#ifdef IGNORE_INLINE
+ #define __inline
+ #endif
+
+--- fuse_module/fuse_subr.c.orig Fri Feb 10 17:31:53 2006
++++ fuse_module/fuse_subr.c Wed Sep 27 11:57:01 2006
+@@ -15,9 +15,11 @@
+ {
+ int err;
+ int unprivileged_proc_debug;
++ size_t ilen = sizeof(unprivileged_proc_debug);
+
+ err = kernel_sysctlbyname(td, "security.bsd.unprivileged_proc_debug",
+- NULL, 0, &unprivileged_proc_debug, sizeof(unprivileged_proc_debug), NULL, 0);
++ &unprivileged_proc_debug, &ilen,
++ NULL, 0, NULL, 0);
+
+ if (err)
+ unprivileged_proc_debug = 0;
diff --git a/sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-fbsd91.patch b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-fbsd91.patch
new file mode 100644
index 000000000000..cc3ea70ec7af
--- /dev/null
+++ b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-fbsd91.patch
@@ -0,0 +1,15 @@
+Taken from FreeBSD ports
+
+extra-patch-fuse_module__fuse_vnops.c
+
+--- fuse_module/fuse_vfsops.c.orig 2008-02-05 07:25:57.000000000 +0200
++++ fuse_module/fuse_vfsops.c 2011-09-08 10:27:43.000000000 +0300
+@@ -224,7 +231,7 @@
+ struct cdev *fdev;
+ struct sx *slock;
+ struct fuse_data *data;
+- int mntopts = 0, __mntopts = 0, max_read_set = 0, secondary = 0;
++ uint64_t mntopts = 0, __mntopts = 0, max_read_set = 0, secondary = 0;
+ unsigned max_read = ~0;
+ struct vnode *rvp;
+ struct fuse_vnode_data *fvdat;
diff --git a/sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-ports.patch b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-ports.patch
new file mode 100644
index 000000000000..cf4cf4441196
--- /dev/null
+++ b/sys-fs/fuse4bsd/files/fuse4bsd-0.3.9_pre1-ports.patch
@@ -0,0 +1,475 @@
+Taken from FreeBSD Ports
+
+cat sysutils/fusefs-kmod/files/patch-* > fuse4bsd-0.3.9_pre20080208-ports.patch
+
+
+--- fuse_module/Makefile.orig 2008-02-05 08:25:57.000000000 +0300
++++ fuse_module/Makefile 2009-01-14 00:29:13.000000000 +0300
+@@ -1,3 +1,5 @@
++.undef KERNCONF
++
+ .include "../Makefile.common"
+
+ SRCS = fuse_main.c \
+@@ -22,7 +24,8 @@
+
+ .if defined(KERNCONF)
+ KERNCONF1!= echo ${KERNCONF} | sed -e 's/ .*//g'
+-KERNCONFDIR= /usr/obj/usr/src/sys/${KERNCONF1}
++KRNLOBJDIR!= make -C /usr/src -f /usr/src/Makefile.inc1 -V KRNLOBJDIR
++KERNCONFDIR= ${KRNLOBJDIR}/${KERNCONF1}
+ .endif
+
+ .if defined(KERNCONFDIR)
+--- fuse_module/fuse.h.orig 2008-02-05 00:25:57.000000000 -0500
++++ fuse_module/fuse.h 2009-05-13 18:40:19.000000000 -0400
+@@ -25,6 +25,22 @@
+ #endif
+ #endif
+
++#ifndef VFSOPS_TAKES_THREAD
++#if __FreeBSD_version >= 800087
++#define VFSOPS_TAKES_THREAD 0
++#else
++#define VFSOPS_TAKES_THREAD 1
++#endif
++#endif
++
++#ifndef VOP_ACCESS_TAKES_ACCMODE_T
++#if __FreeBSD_version >= 800052
++#define VOP_ACCESS_TAKES_ACCMODE_T 1
++#else
++#define VOP_ACCESS_TAKES_ACCMODE_T 0
++#endif
++#endif
++
+ #ifndef VOP_OPEN_TAKES_FP
+ #if __FreeBSD_version >= 700044
+ #define VOP_OPEN_TAKES_FP 1
+@@ -49,6 +65,14 @@
+ #endif
+ #endif
+
++#ifndef VOP_GETATTR_TAKES_THREAD
++#if __FreeBSD_version >= 800046
++#define VOP_GETATTR_TAKES_THREAD 0
++#else
++#define VOP_GETATTR_TAKES_THREAD 1
++#endif
++#endif
++
+ #ifndef USE_PRIVILEGE_API
+ /*
+ * __FreeBSD_version bump was omitted for introduction of
+--- fuse_module/fuse_dev.c
++++ fuse_module/fuse_dev.c
+@@ -52,8 +52,13 @@
+ .d_read = fusedev_read,
+ .d_write = fusedev_write,
+ .d_version = D_VERSION,
++#ifndef D_NEEDMINOR
++#define D_NEEDMINOR 0
++#endif
+ #if ! DO_GIANT_MANUALLY
+- .d_flags = D_NEEDGIANT,
++ .d_flags = D_NEEDMINOR|D_NEEDGIANT,
++#else
++ .d_flags = D_NEEDMINOR,
+ #endif
+ };
+
+@@ -548,7 +553,12 @@
+ /* find any existing device, or allocate new unit number */
+ i = clone_create(&fuseclones, &fuse_cdevsw, &unit, dev, 0);
+ if (i) {
+- *dev = make_dev(&fuse_cdevsw, unit2minor(unit),
++ *dev = make_dev(&fuse_cdevsw,
++#if __FreeBSD_version < 800062
++ unit2minor(unit),
++#else /* __FreeBSD_version >= 800062 */
++ unit,
++#endif /* __FreeBSD_version < 800062 */
+ UID_ROOT, GID_OPERATOR,
+ S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP,
+ "fuse%d", unit);
+--- fuse_module/fuse_io.c.orig 2008-02-05 00:25:57.000000000 -0500
++++ fuse_module/fuse_io.c 2009-07-13 09:31:24.000000000 -0400
+@@ -35,6 +35,10 @@
+ #include <vm/vnode_pager.h>
+ #include <vm/vm_object.h>
+
++#if (__FreeBSD_version >= 800000)
++#define vfs_bio_set_validclean vfs_bio_set_valid
++#endif
++
+ #include "fuse.h"
+ #include "fuse_session.h"
+ #include "fuse_vnode.h"
+@@ -157,7 +161,11 @@
+ goto out;
+
+ if (uio->uio_rw == UIO_WRITE && fp->f_flag & O_APPEND) {
+- if ((err = VOP_GETATTR(vp, &va, cred, td)))
++ if ((err = VOP_GETATTR(vp, &va, cred
++#if VOP_GETATTR_TAKES_THREAD
++ , td
++#endif
++ )))
+ goto out;
+ uio->uio_offset = va.va_size;
+ } else if ((flags & FOF_OFFSET) == 0)
+@@ -227,7 +235,7 @@
+ return (0);
+
+ biosize = vp->v_mount->mnt_stat.f_iosize;
+- bcount = min(MAXBSIZE, biosize);
++ bcount = MIN(MAXBSIZE, biosize);
+
+ DEBUG2G("entering loop\n");
+ do {
+@@ -352,7 +360,7 @@
+ fri = fdi.indata;
+ fri->fh = fufh->fh_id;
+ fri->offset = uio->uio_offset;
+- fri->size = min(uio->uio_resid,
++ fri->size = MIN(uio->uio_resid,
+ fusefs_get_data(vp->v_mount)->max_read);
+
+ DEBUG2G("fri->fh %llu, fri->offset %d, fri->size %d\n",
+@@ -399,7 +407,7 @@
+ while (uio->uio_resid > 0) {
+ int transfersize;
+
+- chunksize = min(iov->iov_len, nmax);
++ chunksize = MIN(iov->iov_len, nmax);
+
+ if (uio->uio_rw == UIO_READ) {
+ struct fuse_read_in *fri;
+@@ -464,7 +472,7 @@
+ {
+ int err;
+
+- if ((err = uiomove(buf, min(reqsize, bufsize), uio)))
++ if ((err = uiomove(buf, MIN(reqsize, bufsize), uio)))
+ return (err);
+
+ if (bufsize < reqsize)
+@@ -502,7 +510,7 @@
+ }
+
+ while (uio->uio_resid > 0) {
+- chunksize = min(uio->uio_resid,
++ chunksize = MIN(uio->uio_resid,
+ fusefs_get_data(vp->v_mount)->max_write);
+
+ fdi.iosize = sizeof(*fwi) + chunksize;
+@@ -569,7 +577,7 @@
+ do {
+ lbn = uio->uio_offset / biosize;
+ on = uio->uio_offset & (biosize-1);
+- n = min((unsigned)(biosize - on), uio->uio_resid);
++ n = MIN((unsigned)(biosize - on), uio->uio_resid);
+
+ DEBUG2G("lbn %d, on %d, n %d, uio offset %d, uio resid %d\n",
+ (int)lbn, on, n, (int)uio->uio_offset, uio->uio_resid);
+@@ -739,8 +747,8 @@
+ */
+ if (n) {
+ if (bp->b_dirtyend > 0) {
+- bp->b_dirtyoff = min(on, bp->b_dirtyoff);
+- bp->b_dirtyend = max((on + n), bp->b_dirtyend);
++ bp->b_dirtyoff = MIN(on, bp->b_dirtyoff);
++ bp->b_dirtyend = MAX((on + n), bp->b_dirtyend);
+ } else {
+ bp->b_dirtyoff = on;
+ bp->b_dirtyend = on + n;
+@@ -823,7 +831,11 @@
+ #if FUSELIB_CONFORM_BIOREAD
+ struct vattr va;
+
+- if ((err = VOP_GETATTR(vp, &va, cred, curthread)))
++ if ((err = VOP_GETATTR(vp, &va, cred
++#if VOP_GETATTR_TAKES_THREAD
++ , curthread
++#endif
++ )))
+ goto out;
+ #endif
+
+@@ -831,7 +843,7 @@
+ bp->b_resid = bp->b_bcount;
+ while (bp->b_resid > 0) {
+ DEBUG2G("starting bio with resid %ld\n", bp->b_resid);
+- chunksize = min(bp->b_resid,
++ chunksize = MIN(bp->b_resid,
+ fusefs_get_data(vp->v_mount)->max_read);
+ fdi.iosize = sizeof(*fri);
+ if (! op)
+@@ -842,8 +854,8 @@
+ fri->fh = fufh->fh_id;
+ fri->offset = ((off_t)bp->b_blkno) * biosize + ioff;
+ #if FUSELIB_CONFORM_BIOREAD
+- chunksize = min(chunksize,
+- min(fri->offset + bp->b_resid,
++ chunksize = MIN(chunksize,
++ MIN(fri->offset + bp->b_resid,
+ va.va_size) - fri->offset);
+ if (chunksize == 0) {
+ respsize = -1;
+@@ -901,7 +913,7 @@
+
+ bufdat = bp->b_data + bp->b_dirtyoff;
+ while (bp->b_dirtyend > bp->b_dirtyoff) {
+- chunksize = min(bp->b_dirtyend - bp->b_dirtyoff,
++ chunksize = MIN(bp->b_dirtyend - bp->b_dirtyoff,
+ fusefs_get_data(vp->v_mount)->max_write);
+
+ fdi.iosize = sizeof(*fwi);
+--- fuse_module/fuse_main.c.00 2010-08-15 14:40:29.000000000 +0400
++++ fuse_module/fuse_main.c 2010-08-15 15:56:56.000000000 +0400
+@@ -108,6 +108,9 @@
+ switch (what) {
+ case MOD_LOAD: /* kldload */
+
++#if __FreeBSD_version > 800009
++ fuse_fileops.fo_truncate = vnops.fo_truncate;
++#endif
+ fuse_fileops.fo_ioctl = vnops.fo_ioctl;
+ fuse_fileops.fo_poll = vnops.fo_poll;
+ fuse_fileops.fo_kqfilter = vnops.fo_kqfilter;
+
+
+--- fuse_module/fuse_vfsops.c.orig 2008-02-05 00:25:57.000000000 -0500
++++ fuse_module/fuse_vfsops.c 2009-05-13 18:54:01.000000000 -0400
+@@ -18,6 +18,7 @@
+ #include <sys/namei.h>
+ #include <sys/mount.h>
+ #include <sys/sysctl.h>
++#include <sys/fcntl.h>
+
+ #include "fuse.h"
+ #include "fuse_session.h"
+@@ -213,8 +214,14 @@
+ * Mount system call
+ */
+ static int
++#if VFSOPS_TAKES_THREAD
+ fuse_mount(struct mount *mp, struct thread *td)
+ {
++#else
++fuse_mount(struct mount *mp)
++{
++ struct thread *td = curthread;
++#endif
+ int err = 0;
+ size_t len;
+ char *fspec, *subtype = NULL;
+@@ -529,8 +536,14 @@
+ * Unmount system call
+ */
+ static int
++#if VFSOPS_TAKES_THREAD
+ fuse_unmount(struct mount *mp, int mntflags, struct thread *td)
+ {
++#else
++fuse_unmount(struct mount *mp, int mntflags)
++{
++ struct thread *td = curthread;
++#endif
+ int flags = 0, err = 0;
+ struct fuse_data *data;
+ struct fuse_secondary_data *fsdat = NULL;
+@@ -633,8 +646,14 @@
+
+ /* stolen from portalfs */
+ static int
++#if VFSOPS_TAKES_THREAD
+ fuse_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td)
+ {
++#else
++fuse_root(struct mount *mp, int flags, struct vnode **vpp)
++{
++ struct thread *td = curthread;
++#endif
+ /*
+ * Return locked reference to root.
+ */
+@@ -650,7 +669,11 @@
+ data = fsdat->master;
+ sx_slock(&data->mhierlock);
+ if (data->mpri == FM_PRIMARY)
+- err = fuse_root(data->mp, flags, vpp, td);
++ err = fuse_root(data->mp, flags, vpp
++#if VFSOPS_TAKES_THREAD
++ , td
++#endif
++ );
+ else
+ err = ENXIO;
+ sx_sunlock(&data->mhierlock);
+@@ -667,7 +690,11 @@
+ if (vp->v_type == VNON) {
+ struct vattr va;
+
+- (void)VOP_GETATTR(vp, &va, td->td_ucred, td);
++ (void)VOP_GETATTR(vp, &va, td->td_ucred
++#if VOP_GETATTR_TAKES_THREAD
++ , td
++#endif
++ );
+ }
+ *vpp = vp;
+ #if _DEBUG2G
+@@ -678,8 +705,14 @@
+ }
+
+ static int
++#if VFSOPS_TAKES_THREAD
+ fuse_statfs(struct mount *mp, struct statfs *sbp, struct thread *td)
+ {
++#else
++fuse_statfs(struct mount *mp, struct statfs *sbp)
++{
++ struct thread *td = curthread;
++#endif
+ struct fuse_dispatcher fdi;
+ struct fuse_statfs_out *fsfo;
+ struct fuse_data *data;
+@@ -696,7 +729,11 @@
+
+ sx_slock(&data->mhierlock);
+ if (data->mpri == FM_PRIMARY)
+- err = fuse_statfs(data->mp, sbp, td);
++ err = fuse_statfs(data->mp, sbp
++#if VFSOPS_TAKES_THREAD
++ , td
++#endif
++ );
+ else
+ err = ENXIO;
+ sx_sunlock(&data->mhierlock);
+@@ -794,7 +831,11 @@
+ if (nodeid == FUSE_ROOT_ID) {
+ if (parentid != FUSE_NULL_ID)
+ return (ENOENT);
+- err = VFS_ROOT(mp, myflags, vpp, td);
++ err = VFS_ROOT(mp, myflags, vpp
++#if VFSOPS_TAKES_THREAD
++ , td
++#endif
++ );
+ if (err)
+ return (err);
+ KASSERT(*vpp, ("we neither err'd nor found the root node"));
+--- ./fuse_module/fuse_vnops.c.orig 2012-09-19 06:04:10.512413490 +0200
++++ ./fuse_module/fuse_vnops.c 2012-09-19 06:20:44.949613892 +0200
+@@ -799,8 +799,11 @@
+ struct vnode *vp = ap->a_vp;
+ struct vattr *vap = ap->a_vap;
+ struct ucred *cred = ap->a_cred;
++#if VOP_GETATTR_TAKES_THREAD
+ struct thread *td = ap->a_td;
+-
++#else
++ struct thread *td = curthread;
++#endif
+ struct fuse_dispatcher fdi;
+ struct timespec uptsp;
+ int err = 0;
+@@ -871,7 +874,11 @@
+ fuse_access(ap)
+ struct vop_access_args /* {
+ struct vnode *a_vp;
++#if VOP_ACCESS_TAKES_ACCMODE_T
++ accmode_t a_accmode;
++#else
+ int a_mode;
++#endif
+ struct ucred *a_cred;
+ struct thread *a_td;
+ } */ *ap;
+@@ -886,7 +893,13 @@
+ else
+ facp.facc_flags |= FACCESS_DO_ACCESS;
+
+- return fuse_access_i(vp, ap->a_mode, ap->a_cred, ap->a_td, &facp);
++ return fuse_access_i(vp,
++#if VOP_ACCESS_TAKES_ACCMODE_T
++ ap->a_accmode,
++#else
++ ap->a_mode,
++#endif
++ ap->a_cred, ap->a_td, &facp);
+ }
+
+ /*
+@@ -946,7 +959,11 @@
+ /* We are to do the check in-kernel */
+
+ if (! (facp->facc_flags & FACCESS_VA_VALID)) {
+- err = VOP_GETATTR(vp, VTOVA(vp), cred, td);
++ err = VOP_GETATTR(vp, VTOVA(vp), cred
++#if VOP_GETATTR_TAKES_THREAD
++ , td
++#endif
++ );
+ if (err)
+ return (err);
+ facp->facc_flags |= FACCESS_VA_VALID;
+@@ -1544,7 +1561,7 @@
+ struct fuse_vnode_data *fvdat = VTOFUD(vp);
+ uint64_t parentid = fvdat->parent_nid;
+ struct componentname *cnp = fvdat->germcnp;
+- struct fuse_open_in *foi;
++ struct fuse_create_in *foi;
+ struct fuse_entry_out *feo;
+ struct fuse_mknod_in fmni;
+ int err;
+@@ -1929,7 +1946,11 @@
+ * It will not invalidate pages which are dirty, locked, under
+ * writeback or mapped into pagetables.")
+ */
++#if VOP_GETATTR_TAKES_THREAD
+ err = vinvalbuf(vp, 0, td, PCATCH, 0);
++#else
++ err = vinvalbuf(vp, 0, PCATCH, 0);
++#endif
+ fufh->flags |= FOPEN_KEEP_CACHE;
+ }
+
+@@ -3005,8 +3026,11 @@
+ struct vattr *vap = ap->a_vap;
+ struct vnode *vp = ap->a_vp;
+ struct ucred *cred = ap->a_cred;
++#if VOP_GETATTR_TAKES_THREAD
+ struct thread *td = ap->a_td;
+-
++#else
++ struct thread *td = curthread;
++#endif
+ int err = 0;
+ struct fuse_dispatcher fdi;
+ struct fuse_setattr_in *fsai;
+--- mount_fusefs/mount_fusefs.c 2008-02-05 07:25:57.000000000 +0200
++++ mount_fusefs/mount_fusefs.c 2012-01-07 21:07:35.000000000 +0200
+@@ -44,6 +44,7 @@
+ #include <getopt.h>
+ #include <libgen.h>
+ #include <limits.h>
++#include <osreldate.h>
+ #include <paths.h>
+
+ #include "fuse4bsd.h"
+@@ -312,7 +313,12 @@
+ * Resolve the mountpoint with realpath(3) and remove unnecessary
+ * slashes from the devicename if there are any.
+ */
++#if __FreeBSD_version >= 1000005
++ if (checkpath(dir, mntpath) != 0)
++ err(1, "%s", mntpath);
++#else
+ (void)checkpath(dir, mntpath);
++#endif
+ (void)rmslashes(dev, dev);
+
+ if (strcmp(dev, "auto") == 0)
diff --git a/sys-fs/fuse4bsd/fuse4bsd-0.3.0.ebuild b/sys-fs/fuse4bsd/fuse4bsd-0.3.0.ebuild
new file mode 100644
index 000000000000..a04605e252f7
--- /dev/null
+++ b/sys-fs/fuse4bsd/fuse4bsd-0.3.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit portability toolchain-funcs eutils flag-o-matic
+
+DESCRIPTION="Fuse for FreeBSD"
+HOMEPAGE="http://fuse4bsd.creo.hu/"
+# -sbin is needed for getmntopts.c, hardcoding 6.2 is nasty but can't think of
+# any better solution right now
+SRC_URI="http://fuse4bsd.creo.hu/downloads/${P}.tar.gz
+ mirror://gentoo/freebsd-sbin-6.2.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~x86-fbsd"
+IUSE=""
+
+DEPEND=">=sys-freebsd/freebsd-sources-6.2
+ virtual/pmake"
+RDEPEND="sys-fs/fuse"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ cp /usr/include/fuse/fuse_kernel.h fuse_module/
+ cp "${WORKDIR}/sbin/mount/getmntopts.c" mount_fusefs/
+ epatch "${FILESDIR}"/${P}-gcc4.patch
+ epatch "${FILESDIR}"/${P}-ports.patch
+}
+
+src_compile() {
+ tc-export CC
+ $(get_bmake) \
+ KMODDIR=/boot/modules BINDIR=/usr/sbin MANDIR=/usr/share/man/man \
+ MOUNT="${WORKDIR}/sbin/mount" LDFLAGS="$(raw-ldflags)" \
+ || die "$(get_bmake) failed"
+}
+
+src_install() {
+ dodir /boot/modules
+ $(get_bmake) \
+ KMODDIR=/boot/modules BINDIR=/usr/sbin MANDIR=/usr/share/man/man \
+ DESTDIR="${D}" install \
+ || die "$(get_bmake) failed"
+
+ for docdir in ./ ./plaintext_out ./html_chunked_out ./html_aux; do
+ docinto ${docdir}
+ dodoc doc/${docdir}/*
+ done
+}
diff --git a/sys-fs/fuse4bsd/fuse4bsd-0.3.9_pre1.ebuild b/sys-fs/fuse4bsd/fuse4bsd-0.3.9_pre1.ebuild
new file mode 100644
index 000000000000..7b0dbafe770a
--- /dev/null
+++ b/sys-fs/fuse4bsd/fuse4bsd-0.3.9_pre1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit portability toolchain-funcs eutils flag-o-matic
+
+DESCRIPTION="Fuse for FreeBSD"
+HOMEPAGE="http://fuse4bsd.creo.hu/"
+# -sbin is needed for getmntopts.c, hardcoding 6.2 is nasty but can't think of
+# any better solution right now
+SRC_URI="http://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/fuse4bsd/498acaef33b0.tar.gz
+ mirror://gentoo/freebsd-sbin-9.1.tar.bz2"
+S="${WORKDIR}/fuse4bsd-498acaef33b0"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~x86-fbsd"
+IUSE="doc"
+
+DEPEND=">=sys-freebsd/freebsd-sources-9.1
+ virtual/pmake
+ doc? ( app-text/deplate )"
+RDEPEND="sys-fs/fuse"
+
+QA_TEXTRELS="boot/modules/fuse.ko"
+
+src_prepare() {
+ cp /usr/include/fuse/fuse_kernel.h fuse_module/ || die
+ cp "${WORKDIR}/sbin/mount/getmntopts.c" mount_fusefs/ || die
+ epatch "${FILESDIR}"/${P}-ports.patch
+ epatch "${FILESDIR}"/${P}-fbsd91.patch
+ sed -i -e "s:^DEPLATE=.*:DEPLATE=${EPREFIX}/usr/bin/deplate:" \
+ doc/Makefile || die
+}
+
+src_compile() {
+ filter-ldflags "-Wl,--hash-style=*"
+ tc-export CC
+ cd "${S}"/fuse_module
+ $(get_bmake) \
+ KMODDIR=/boot/modules BINDIR=/usr/sbin MANDIR=/usr/share/man/man \
+ MOUNT="${WORKDIR}/sbin/mount" LDFLAGS="$(raw-ldflags)" \
+ || die "$(get_bmake) failed"
+
+ cd "${S}"/mount_fusefs
+ $(get_bmake) \
+ KMODDIR=/boot/modules BINDIR=/usr/sbin MANDIR=/usr/share/man/man \
+ MOUNT="${WORKDIR}/sbin/mount" \
+ || die "$(get_bmake) failed"
+
+ if use doc; then
+ cd "${S}"/doc
+ $(get_bmake) all || die "$(get_bmake) failed"
+ fi
+}
+
+src_install() {
+ dodir /boot/modules
+ $(get_bmake) \
+ KMODDIR=/boot/modules BINDIR=/usr/sbin MANDIR=/usr/share/man/man \
+ DESTDIR="${ED}" install \
+ || die "$(get_bmake) failed"
+
+ dodoc doc/{CREDITS,README}
+ if use doc; then
+ dodoc doc/plaintext_out/* doc/pdf_out/*.pdf
+ docinto html
+ dodoc doc/html_chunked_out/*
+ fi
+}
diff --git a/sys-fs/fuse4bsd/metadata.xml b/sys-fs/fuse4bsd/metadata.xml
new file mode 100644
index 000000000000..a00f3aeb1f81
--- /dev/null
+++ b/sys-fs/fuse4bsd/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>bsd@gentoo.org</email>
+ <name>BSD Project</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/fuseiso/Manifest b/sys-fs/fuseiso/Manifest
new file mode 100644
index 000000000000..b5db28ad6c0f
--- /dev/null
+++ b/sys-fs/fuseiso/Manifest
@@ -0,0 +1,7 @@
+AUX fuseiso-20070708-fix-typo.patch 683 SHA256 5c7a6e6c4d78420dd7050d1adda740d40fb9c4a6023dacd896680a7422ce2e92 SHA512 ccfbcdba2c81d834d658f399f378feb6fec9d920c0fcc5cce3cd744f26cb94708a739c34e9e7cc374d31920a84bc6fbcc5b3ff841ee0d352de96a90cdc7c266e WHIRLPOOL 8a0d6c4c72f754967063198b19e9f1e458c77e4cc809d5fd7691f08265a1bd3eb9c5693bbb8f112ec13a5202dff9d1375913b533195cf40c432806042202afd6
+AUX fuseiso-20070708-largeiso.patch 2583 SHA256 aaad2a0ea55e783b667aff98569d1a2514b57fd0e73a111db335ae2b4febb111 SHA512 f3268473d771de520f80d6ccdc6147fdc0c250f4b28070b7cb7b75734b893431ee3e20c46acb54f51f177c2e60f554c5ae8c2e3a514aa97a4208f514512be9cf WHIRLPOOL d25e60270ceaf2ed4182a62672fadbae2ace10437652b9cc89dd8df63d0b12436f75f6e1c0f55577015129b51c5c4b2ee828ccc7d9b26559c30c8290a33732da
+DIST fuseiso-20070708.tar.bz2 239960 SHA256 8b242e077d66cd20900c59c905ff90b4c934b0613dd5a20facb0b1260ac5fd88 SHA512 d9d8153101494434fe4ec9c684cec46a1eee46fd3ce06e97fa27f4746990f866e1f23f256b2659e60296d2362cea05d259a0a2ef669ecddf7a0a7e44110c4ae0 WHIRLPOOL df6dd63a3e56cfbce8f85e37215c50d155ee9fb780a80a463c34b79ed1f7964cc3ba6d6b990e32dc991020be309bfdd08a2866ebf3eeedda03ed8262687a1fb4
+EBUILD fuseiso-20070708-r1.ebuild 644 SHA256 270d1041aa95efd7b0c0e54493735faa2752c7c788797ba73c5bbca178375af4 SHA512 ca2756794a08df83a8a64e9a94ed56ad1c62f3e8c9e60ec154e6448a162ca354136f3fce191a7d718c27d6ac76fed07ae730cb0bfc29eaa968f017b6d7ac1cc2 WHIRLPOOL a1be63c825181178959478ccd004ed09a153cc7911dc71bb8f5184baaa90a22a6bfdbeac786c477e3667cd939842b3d5af1c9046c0fe3ee1c3491650080a0481
+MISC ChangeLog 3185 SHA256 e5ec2565a6b033c1d53fde05c58e12a913ff1e7ccb765d3e7b5c11b9b13c9e20 SHA512 c30700bb1b132ca7ec7fdd91ed874f66e4df48fbf3b298e76f14e8db6dacd8f279aae9276f37e99843b1904f390bbffcbfdae41e497d34aa7c4c1f92cd75d674 WHIRLPOOL 866c4e904eedd6752d943cc0ef22edd7d98415eecb38b90f97178521579dece9da0c4fe19fd2509c0c5ae093880e1919ab76de04f87300f911ab3762f78d2000
+MISC ChangeLog-2015 1503 SHA256 18bea1e1acc82f0312370ad0782f5ec2f6b0507f72958bf5995e054d04837726 SHA512 09762b99b5fb8d0a696572c95e6e335eaa90b4c59aebd14ae7f8b36277c719934264e8c8cabeca2b413e6fff865ba774cf0e1b6f0cfb09b41554b0a515c8ec58 WHIRLPOOL e988cab8aee245cda1ea0474cb18708e0a9bb25de37f538702757c1dd95513db6ca89f3d11db0bb40d83c3f1a4a31d51a9f3346812f608a8a0310c5d23df4942
+MISC metadata.xml 420 SHA256 1b7459a20a1a3996d03020bd0a0eff491e37731ccd71e95b1cceb3b0bc0a67b2 SHA512 03659deebcb170d3144010e020528bf2ab8fc946f324a70da5b68db30d0ce89864b355abc358287ee01b3758d3495c246bc102e2a0d61fc54e8c549dad9228e6 WHIRLPOOL f6b576cc8e935db163fcc31da2b69c0a47dc11044358888153df15e513640329cd8a51f6380e30e9dc685e8aaeff84b5f829a8cbfb7b8c24acc26ac639b5cc05
diff --git a/sys-fs/fuseiso/files/fuseiso-20070708-fix-typo.patch b/sys-fs/fuseiso/files/fuseiso-20070708-fix-typo.patch
new file mode 100644
index 000000000000..522ee7598e0e
--- /dev/null
+++ b/sys-fs/fuseiso/files/fuseiso-20070708-fix-typo.patch
@@ -0,0 +1,12 @@
+diff -urp fuseiso-20070708.org/src/fuseiso.c fuseiso-20070708/src/fuseiso.c
+--- fuseiso-20070708.org/src/fuseiso.c 2013-08-22 19:33:46.316904170 +0800
++++ fuseiso-20070708/src/fuseiso.c 2013-08-22 19:31:54.789908834 +0800
+@@ -295,7 +295,7 @@ void usage(const char* prog) {
+ " -f -- run in foreground, do not daemonize\n"
+ " -d -- run in foreground and print debug information\n"
+ " -s -- run single-threaded\n"
+- "\nPlease consult with FUSE ducumentation for more information\n",
++ "\nPlease consult with FUSE documentation for more information\n",
+ VERSION,
+ prog);
+ };
diff --git a/sys-fs/fuseiso/files/fuseiso-20070708-largeiso.patch b/sys-fs/fuseiso/files/fuseiso-20070708-largeiso.patch
new file mode 100644
index 000000000000..e323768d247e
--- /dev/null
+++ b/sys-fs/fuseiso/files/fuseiso-20070708-largeiso.patch
@@ -0,0 +1,48 @@
+http://bugzilla.redhat.com/show_bug.cgi?id=440436
+
+diff -ur fuseiso-20070708.orig/src/isofs.c fuseiso-20070708/src/isofs.c
+--- fuseiso-20070708.orig/src/isofs.c 2007-07-08 15:22:59.000000000 +0300
++++ fuseiso-20070708/src/isofs.c 2009-10-25 12:02:16.000000000 +0200
+@@ -178,7 +178,7 @@
+ context.data_size = isonum_723(context.pd.logical_block_size);
+
+ if(!context.block_size) {
+- fprintf(stderr, "init: wrong block data size %d, using default 2048\n", context.data_size);
++ fprintf(stderr, "init: wrong block data size %Lu, using default 2048\n", context.data_size);
+ context.data_size = 2048;
+ };
+
+@@ -324,7 +324,7 @@
+
+ if(context.block_size != 2048) {
+ // report unusual data block size
+- printf("Data block size: %d\n", context.block_size);
++ printf("Data block size: %Lu\n", context.block_size);
+ };
+
+ char buf[129];
+@@ -479,7 +479,7 @@
+ };
+ size_t len = read(context.fd, buf, context.data_size);
+ if(len != context.data_size) {
+- fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %d required; errno %d, message %s\n",
++ fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %Lu required; errno %d, message %s\n",
+ len, (int) off, context.data_size, errno, strerror(errno));
+ fprintf(stderr, "isofs_read_raw_block: huh? reading zeros beyond file end? someone want to save a penny?\n");
+ memset(buf + len, 0, context.data_size - len);
+diff -ur fuseiso-20070708.orig/src/isofs.h fuseiso-20070708/src/isofs.h
+--- fuseiso-20070708.orig/src/isofs.h 2006-10-17 04:50:39.000000000 +0300
++++ fuseiso-20070708/src/isofs.h 2009-10-25 12:02:16.000000000 +0200
+@@ -38,9 +38,9 @@
+ struct iso_directory_record *root;
+ int file_offset; // offset to begin of useful data (for .nrg files)
+ int id_offset; // offset to CD001 inside file
+- size_t block_size; // raw block size
+- size_t block_offset; // offset from block start to data
+- size_t data_size; // data size inside block
++ off_t block_size; // raw block size
++ off_t block_offset; // offset from block start to data
++ off_t data_size; // data size inside block
+ int susp; // parse susp entries
+ int susp_skip; // skip bytes from susp SP entry
+ int joliet_level; // joliet extension level (1, 2 or 3)
diff --git a/sys-fs/fuseiso/fuseiso-20070708-r1.ebuild b/sys-fs/fuseiso/fuseiso-20070708-r1.ebuild
new file mode 100644
index 000000000000..30d3f56f6ded
--- /dev/null
+++ b/sys-fs/fuseiso/fuseiso-20070708-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Fuse module to mount ISO9660"
+HOMEPAGE="https://sourceforge.net/projects/fuseiso"
+SRC_URI="http://superb-dca2.dl.sourceforge.net/project/fuseiso/fuseiso/20070708/fuseiso-20070708.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="sys-fs/fuse
+ sys-libs/zlib
+ dev-libs/glib:2"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-largeiso.patch"
+ epatch "${FILESDIR}/${P}-fix-typo.patch" # bug #482078
+ epatch_user
+}
diff --git a/sys-fs/fuseiso/metadata.xml b/sys-fs/fuseiso/metadata.xml
new file mode 100644
index 000000000000..220254c786eb
--- /dev/null
+++ b/sys-fs/fuseiso/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zhaoxiaoqiang007@gmail.com</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">fuseiso</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/genext2fs/Manifest b/sys-fs/genext2fs/Manifest
new file mode 100644
index 000000000000..7bed0c067706
--- /dev/null
+++ b/sys-fs/genext2fs/Manifest
@@ -0,0 +1,5 @@
+DIST genext2fs-1.4.1.tar.gz 103283 SHA256 404dbbfa7a86a6c3de8225c8da254d026b17fd288e05cec4df2cc7e1f4feecfc SHA512 1b9ec7044014423345ae6b09862ba6903f5b3e0f68fb8bbcf97daf2705471cc1633a9fdbc5e00afe1b191e1af7bed87bde2e538bc7365469218f2a00b062845c WHIRLPOOL c92cda39f10b988ae753fcd8b70c7abd687832f96f2b80322e55ae560e73657ceb0eaad62b190fb538976151d6c9278ad859848fe190e97b366f0cabb21fae2c
+EBUILD genext2fs-1.4.1.ebuild 447 SHA256 28d186f3165f05df7852c6449ffe070ffe307eb8f88a7c8734b4de61fe49c6a6 SHA512 80fd0ec26d8e640354de35832e715dd17d5f85523669c50365609d7243f1fc0dc9ddaed7697562993d8e3fbc2b3c306c0c508223720867c408b313a83a82e4a5 WHIRLPOOL b922ec09a85bca11f51ddf6b5fd764804232fd892028f955b378897c4ebc22f2d0b5dc8b3fe78a70d932b2f7c1b5208828bf49d2cbdbbd58fd9128600a6606ca
+MISC ChangeLog 2803 SHA256 7a7f850771eb8d03f0ebc4c915883528bf732c2be9736710160ff6801c37ea54 SHA512 ab4e2658d55bb37b217e22e3f8c8e0309a180096caa6634b7fa0e139bf8629be6f207e9d80abbfa4a1dad77d8a6571b42e289fd7b4e6940c317ec4ba82feb15e WHIRLPOOL b03231ca07c4eaf8cb8f87a5d717f57338c658ad8763f1c848df800c61219aeb38324b6345087cbc745d567b1e9b460e316fcc4fc085c74608fc822a3c0cbb00
+MISC ChangeLog-2015 2258 SHA256 009b7675a617858cb9fbea52cc8fec94fa858cae01b7b7187f4888dea0fdd1a7 SHA512 7a3d5a61c2f76a25e8e30a2157f227c21fb78335a8732390b68b732930d5f9dbcbde629fbbd21e13c5ec6eedeb54b3ae4445ec147c7a6cf06f59a2ae3e20a8ff WHIRLPOOL 015c14ffb10e529647bebcad9c8b621cb48bd91baf6f03645506fa0f9ba661a038859e3d598001a4a4307a15b16f73012da761ded3617823a935c933e0016c6a
+MISC metadata.xml 330 SHA256 f273a231d8d04ad1ffc378f18b7f46840aeac3a57ba44af39eb4e011b5af7e36 SHA512 8e48e07c5c2ca3b935067bbf1b66524f1c9d83393df4efe704afdd37abd7041688a63ba59b3a3441fdf62dc97d75da625b89a0125f2872e63f9643f2f1845dbf WHIRLPOOL 9f91a63b623c41f8363007dc3dd957934923d44bf4e6cf7055ba1ad7808703e413f0ea38b7d79701133be2b1cf7f220bdf081c4214f78e173d51957e506a2fea
diff --git a/sys-fs/genext2fs/genext2fs-1.4.1.ebuild b/sys-fs/genext2fs/genext2fs-1.4.1.ebuild
new file mode 100644
index 000000000000..c9db85526b7a
--- /dev/null
+++ b/sys-fs/genext2fs/genext2fs-1.4.1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DESCRIPTION="generate ext2 file systems"
+HOMEPAGE="https://sourceforge.net/projects/genext2fs"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ~mips ppc sparc x86"
+IUSE=""
+
+DEPEND=""
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+ dodoc AUTHORS ChangeLog NEWS README TODO
+}
diff --git a/sys-fs/genext2fs/metadata.xml b/sys-fs/genext2fs/metadata.xml
new file mode 100644
index 000000000000..1d0d031c2f4c
--- /dev/null
+++ b/sys-fs/genext2fs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>embedded@gentoo.org</email>
+ <name>Embedded Gentoo</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">genext2fs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/gfs2-utils/Manifest b/sys-fs/gfs2-utils/Manifest
new file mode 100644
index 000000000000..91666a566ae5
--- /dev/null
+++ b/sys-fs/gfs2-utils/Manifest
@@ -0,0 +1,9 @@
+DIST gfs2-utils-3.1.2.tar.gz 348485 SHA256 34e3eabb0b95bcb4358268df6209af597688e7138161152b51d1c60b533d9fbd SHA512 f71c28505a8de6970aa3ff42b1b68990c831229afc24c1297a61b95078093f7ada2e171637b2eb3aa6a2541a84ccea21ec395a84a183048d80e5f77101b8818b WHIRLPOOL 9c0f5d4c1e0937d51de4e4916ce0d292022f97dc88206d797a086802687524d64b2a6f50ceb6a2ee5b734766684ad5a2c6804478613b6b78ade78dadfdf204e8
+DIST gfs2-utils-3.1.3.tar.gz 356745 SHA256 0f27670ef1cb46105e9adbe3ffbc7bd51112bbb12164754d9d0c799344b6fe33 SHA512 3a3ac7cd446d20ebdae2f8283acc828a9e104509e35196c8320579f7bc7dd4eb1fb75873541f10bcdd614505beba6c70f188428a2ddac7725c2fa23c9cc86910 WHIRLPOOL cd2e1cf15435b087d74c0f0e82ff565f596a62396832e36b4c788b0d1839ab00415b954477666f73fd491860022adaa646dfbe33691a2f738e4e13bc9259e604
+DIST gfs2-utils-3.1.5.tar.gz 336862 SHA256 8676bb20e0961883920803e19e79dc6205df86ef4c66080275706c6da9a13d18 SHA512 85fea4ea93eaad2f0bdb6c57c9d193a8ee8be47e05dff15f2883ca11487f49d843a2d02590f4844c7ce9d80f8967bd6dd18b652e56f78f9f3ae9e9c7274b285e WHIRLPOOL 7a5027b9302da04d55ddd44b18e1638a30c1adfcbf30041dd609198ada36b0a7258ba52ca7df291cd2c587ec0c1664d357b73cf5c54846afb2ab2eabb05ea2c0
+EBUILD gfs2-utils-3.1.2.ebuild 916 SHA256 683ca8bfca8ee2f08abdb3c1286ffb5b7cd8e6bc187e95fa5db2ef2554e26ca4 SHA512 5ba3cdea65f27f0d940868baed2f8ccf8ea1f3a7a2e9b634fe88a9f314ce86a6085a182a9ed515dd546d9b52793da44351031cf18d1878c5a71c54a55c6067ca WHIRLPOOL 429bd510d62600cee7b84ce986f993e10c303fc6dc6824432257419d684a2a2d013aecbe653e38475239b04e348df782bfe2f1801fdb48ead86b2c2f5068f7be
+EBUILD gfs2-utils-3.1.3.ebuild 916 SHA256 0b8febff7fbd4296363810db2979d4df1f99ee2bddca2a20126e3770072e6da5 SHA512 cfe6319773e310cc12a2c2f391efa594fafaf35b34650f1bd855d7b86ffa48c37da3a34fbba569e9576f3f695fee0ed3384fb57310aaa847bb58ee9baf1d8d07 WHIRLPOOL 0af38e43f17c18156ed0e82254481d9c022d9f3927ef4d7742bcecd42a4c1d77f3968d61cb93ff2be8276890a04dffcc358f627681232044cafc39f7fbbff6a6
+EBUILD gfs2-utils-3.1.5.ebuild 884 SHA256 e40aef8f745c05a748d01418d87543a7e99ef360a765b02652083f023cfe3567 SHA512 e5aba10442a251e59d7f62cba0e6f311374e6c05041c5cd73e7d1e0d14e27b83b718990a18ac03cdab93d5b2577f171c5fc5fe70c3e4a0a043c2a3ac10505966 WHIRLPOOL dd2a73c3857178cbfce1b1ed880decb6380de2b0e19a4b359a636a41c911b8a85288f42bf0f76871be786b2fee391685ee4af92b2e185ce7e6269d9ffd6cacfc
+MISC ChangeLog 2550 SHA256 15375bd25e53edec499bacec6ea0a67c3bd4f55d6550b7fea5bce62eedda3508 SHA512 91df800829bed0a00ba1751994120e70d48a65ddd4092982a9a5295de81e6b83f4f57c3877e2150a57f78507523cdab6fa42e71aafe5967defad33fee01d44ad WHIRLPOOL 97b7bdb7c799f9a202afbc17fd9ad071288cbf54fceacc399070ee88df72c3b518a8abca32ebd855cf4fc9c7c17aa011193afdf94f9562bf375feb168a17fa7a
+MISC ChangeLog-2015 741 SHA256 d1dca220e16bd67187b4609bcfa71cc52225912eeb094149a2a857605bdf56f1 SHA512 4a2cc239b95024d872e32e3cacb1fd412ba4a3fb292d3022a855760511d4cc104728800e26d6e65343000746c984802170b13f9c237133dd40795650a23ff29b WHIRLPOOL 67c00bd7f39f93bb84b7db64dc650a2141bc286dfb413d992830e7de12861117feee2df56b414283b442238d37a9f60527de29b61f86971e43095abc781d8bb8
+MISC metadata.xml 308 SHA256 78756e935f100416df8945ac59f65b3552364f8bf03f42ffc3e89ba96a76acfe SHA512 5693315cdf03c0f990207eb96687ca613106955245b5706a88736b8a65a2899b68972bffcc802f2ccac76a267176f45b1fc8b2d4aec0327a2e2ce77498593430 WHIRLPOOL bf54de573ad68adf093068d74cdc0f7f6fbb3d9e130daa7f2893d1e19a55e1c7c0fb907636113d45fb448af0ddafee787bd2507b6a9a3d75e4613b3a438203f4
diff --git a/sys-fs/gfs2-utils/gfs2-utils-3.1.2.ebuild b/sys-fs/gfs2-utils/gfs2-utils-3.1.2.ebuild
new file mode 100644
index 000000000000..c45f9c09b991
--- /dev/null
+++ b/sys-fs/gfs2-utils/gfs2-utils-3.1.2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit autotools linux-info
+
+DESCRIPTION="GFS2 Utilities"
+HOMEPAGE="https://fedorahosted.org/cluster/wiki/HomePage"
+SRC_URI="https://fedorahosted.org/releases/${PN:0:1}/${PN:1:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug"
+
+RDEPEND="sys-cluster/corosync
+ sys-cluster/openais
+ sys-cluster/liblogthread
+ sys-cluster/libccs
+ sys-cluster/libfence
+ sys-cluster/libdlm
+ sys-libs/ncurses"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}"
+
+src_prepare() {
+ mkdir m4
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ --with-kernel="${KERNEL_DIR}" \
+ --localstatedir=/var
+}
+
+src_install() {
+ default
+ rm -rf "${D}/usr/share/doc"
+ dodoc doc/*.txt
+
+ rmdir "${D}"/var/run/{cluster,} # cman-init.d creates it
+
+ keepdir /var/{lib,log}/cluster
+}
diff --git a/sys-fs/gfs2-utils/gfs2-utils-3.1.3.ebuild b/sys-fs/gfs2-utils/gfs2-utils-3.1.3.ebuild
new file mode 100644
index 000000000000..83a301199ada
--- /dev/null
+++ b/sys-fs/gfs2-utils/gfs2-utils-3.1.3.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit autotools linux-info
+
+DESCRIPTION="GFS2 Utilities"
+HOMEPAGE="https://fedorahosted.org/cluster/wiki/HomePage"
+SRC_URI="https://fedorahosted.org/releases/${PN:0:1}/${PN:1:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug"
+
+RDEPEND="sys-cluster/corosync
+ sys-cluster/openais
+ sys-cluster/liblogthread
+ sys-cluster/libccs
+ sys-cluster/libfence
+ sys-cluster/libdlm
+ sys-libs/ncurses"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}"
+
+src_prepare() {
+ mkdir m4
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ --with-kernel="${KERNEL_DIR}" \
+ --localstatedir=/var
+}
+
+src_install() {
+ default
+ rm -rf "${D}/usr/share/doc"
+ dodoc doc/*.txt
+
+ rmdir "${D}"/var/run/{cluster,} # cman-init.d creates it
+
+ keepdir /var/{lib,log}/cluster
+}
diff --git a/sys-fs/gfs2-utils/gfs2-utils-3.1.5.ebuild b/sys-fs/gfs2-utils/gfs2-utils-3.1.5.ebuild
new file mode 100644
index 000000000000..5d7f5ea6d52a
--- /dev/null
+++ b/sys-fs/gfs2-utils/gfs2-utils-3.1.5.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools linux-info
+
+DESCRIPTION="GFS2 Utilities"
+HOMEPAGE="https://fedorahosted.org/cluster/wiki/HomePage"
+SRC_URI="https://fedorahosted.org/releases/${PN:0:1}/${PN:1:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug"
+
+RDEPEND="sys-cluster/corosync
+ sys-cluster/openais
+ sys-cluster/liblogthread
+ sys-cluster/libccs
+ sys-cluster/libfence
+ sys-cluster/libdlm
+ sys-libs/ncurses"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}"
+
+src_prepare() {
+ epatch_user
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ --localstatedir=/var
+}
+
+src_compile() {
+ # parallel build is broken
+ emake -j1
+}
+
+src_install() {
+ default
+ rm -rf "${D}/usr/share/doc"
+ dodoc doc/*.txt
+
+ keepdir /var/{lib,log}/cluster
+}
diff --git a/sys-fs/gfs2-utils/metadata.xml b/sys-fs/gfs2-utils/metadata.xml
new file mode 100644
index 000000000000..a6290a32e789
--- /dev/null
+++ b/sys-fs/gfs2-utils/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cluster@gentoo.org</email>
+ <name>Gentoo Cluster Project</name>
+ </maintainer>
+ <longdescription>GFS2 Utilities</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/go-mtpfs/Manifest b/sys-fs/go-mtpfs/Manifest
new file mode 100644
index 000000000000..eeb321b61d3b
--- /dev/null
+++ b/sys-fs/go-mtpfs/Manifest
@@ -0,0 +1,4 @@
+EBUILD go-mtpfs-9999.ebuild 1062 SHA256 02abf4d83c95b8a1c9eee27cde4c11aeae0cb6e3e5efa928138e65fc87d39878 SHA512 4865c4c9d0c3e62cc9e4aef2b071e823385842228b5626dd474357e9f9dec9738243c5d25e326235904c0f23bfa49a45db7ec5a502549fc0ce73b1bb060cc284 WHIRLPOOL 49e400f6d21800b4c024e3c98a75ede52ab2c3206854f7d318de434e3cb82929d77d276536a086ced8c0112524fae86d42a534d93c17a6800c94d407946a799f
+MISC ChangeLog 2175 SHA256 15dd638d14a1dffc3d51e079323d5d8c162d879186a7f719e9950bcf578b0cd1 SHA512 db6f7285c575742bd5237ca2d000c0c691e7710a3ec510bf37daef6e92464da41fb7875f849db9b06027008bafe72ae04dbea83253479235df186ca756ae1578 WHIRLPOOL 5e6800ebe999a0c85bd8aa04e37d098074fa80e9f0b03d2766b60366d74a058270c93850a1927ac8ec85539834c6aeb030d9751b602f0c04ab392088743bdc1e
+MISC ChangeLog-2015 1090 SHA256 0fe4bbd8ba75dfe7c82ed9b69a4034afb22129d9345430627cc5e9d2164b905d SHA512 92cd0ce54ccc431a5dfa99f2226c6d6f36e662e4a74b0ce4c906a1b1d4ddc5fbebe8f488b210ea88205767c203156824f48e17c649f057189b06a35190592701 WHIRLPOOL 577a01b63307a03de3eaa78ad08f1fa2fb53f9baa87b19c3c0dd95c9b6a24c0f1a681ddb998110701a1d1d79bf2872a306c02f21131e6c970822412d6c00dbb4
+MISC metadata.xml 327 SHA256 1f4fe14d985361cb656e150337e913eb75844764f95f2d1202701a884a146c77 SHA512 a8debf10dfbec6f73b80abede368c00dd5d20f319edc28ae5264400fe4916c9a4150c134a68757e007d309222f2051ce66cb36d12be181f7d65e954725db2d66 WHIRLPOOL 83792277a87a4c5dc2a8b15f5e4155127e7d3c2b154cf0906996b7a3655336a728be7e6f694eab99ec1725ecf767f709ce52d9b8a6ae100bcd00e3ad63711d32
diff --git a/sys-fs/go-mtpfs/go-mtpfs-9999.ebuild b/sys-fs/go-mtpfs/go-mtpfs-9999.ebuild
new file mode 100644
index 000000000000..79178eb3ff39
--- /dev/null
+++ b/sys-fs/go-mtpfs/go-mtpfs-9999.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit git-r3 flag-o-matic toolchain-funcs
+
+DESCRIPTION="a simple FUSE filesystem for mounting Android devices as a MTP device"
+HOMEPAGE="https://github.com/hanwen/go-mtpfs"
+EGIT_REPO_URI="https://github.com/hanwen/go-mtpfs.git"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+COMMON_DEPEND="virtual/libusb
+ virtual/udev"
+DEPEND="${COMMON_DEPEND}
+ dev-libs/go-fuse
+ dev-libs/go-usb
+ dev-lang/go
+ media-libs/libmtp"
+
+RDEPEND="${COMMON_DEPEND}"
+
+#Tests require a connected mtp device
+RESTRICT="test"
+
+GO_PN="github.com/hanwen/${PN}"
+EGIT_CHECKOUT_DIR="${S}/src/${GO_PN}"
+QA_FLAGS_IGNORED=usr/bin/go-mtpfs
+
+export GOPATH="${S}"
+
+src_compile() {
+ go build -ldflags '-extldflags=-fno-PIC' -v -x -work ${GO_PN} || die
+}
+
+src_test() {
+ go test -ldflags '-extldflags=-fno-PIC' ${GO_PN}/fs || die
+ go test -ldflags '-extldflags=-fno-PIC' ${GO_PN}/usb || die
+ go test -ldflags '-extldflags=-fno-PIC' ${GO_PN}/mtp || die
+}
+
+src_install() {
+ dobin go-mtpfs
+}
diff --git a/sys-fs/go-mtpfs/metadata.xml b/sys-fs/go-mtpfs/metadata.xml
new file mode 100644
index 000000000000..dc1d6c77a19c
--- /dev/null
+++ b/sys-fs/go-mtpfs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">hanwen/go-mtpfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/growpart/Manifest b/sys-fs/growpart/Manifest
new file mode 100644
index 000000000000..112dbea8ab5a
--- /dev/null
+++ b/sys-fs/growpart/Manifest
@@ -0,0 +1,6 @@
+DIST growpart-0.0.1.gz 7731 SHA256 a990731b618280413ac911321f22b3db3d41e2c9ff0d3b21d8053d0faaa2b954 SHA512 84645e68f8ee913740333d3dca097e1322d74c99020af7205f6f4c2527469a2fbb4cbc3fe69bda7e19b5758897e9e6a09b17a4d1fb1f2934bf7c45186156eae9 WHIRLPOOL e58b27d5132d47c323ad2c5d558d5f0b5e4add11a9fee6d108e7fd81c56efd8ce060b15ed2304a8a76536f1eb6870de766188596ea78eb74b212c54f94cfb99b
+DIST growpart-0.0.30.gz 7897 SHA256 99b361a98fc9f4b2d718e0269ada51f0188d75297db771cda4d75b3006e8deb9 SHA512 ed6cf92149c0802c4a08427fa025ce2666dd7c32c5d1f362f4d14973f709dfd73124fd85b7eaf179daad5dfb1d126e86d7db0fb1fe7e2d496e17bf0bc1bc9c58 WHIRLPOOL 8d01729605edcce4da5a6a189a00c86ff1cb54ea11b780da657e1b945be9f87decc46af5b9aa6c071ed73c4e4475c375e1ee7953175892b182830560093c2f84
+EBUILD growpart-0.0.1.ebuild 504 SHA256 bfce8810f3b6d4fd945b61feb0322dfe8472d989c99d815605f4432541366eba SHA512 3f4bf22da670ed117992c1ae8ea32f54633f4ba5fc1c849b58c1c9fe4abe89c49617102a027d4581214dc96bde2d74c80645836a72e9e3c26a63847d1b5ee3c7 WHIRLPOOL b19c019831eb11401631a9df9b31ee0384e3b146f6c10b7a7ed5a3e65dbf0813c9c8e7b2ba4bdf174c9adfbee282b86d2b376993eada2a20f8ce3feed583dc95
+EBUILD growpart-0.0.30.ebuild 509 SHA256 4ff8ae14cd65e0e3ed6d97eaf018c089d5d681deee1a5706ec077b7db7837b6a SHA512 5bfedfdd4f8373ea77e969432caf5ae798ded477bc26fc44d0a7a448aaec17806b6f5271b3d6ecfea5def85005c129188d13c8a3991d22a8beb54c43b3639a1a WHIRLPOOL 899efbb89fb621630d08543ba70db58be445a0466a34421ed78cbd525b728df763e70c86c75f98d908d8cecc15b3af47a6abe34157d673ad2a24235d3925418d
+MISC ChangeLog 763 SHA256 c13a1665fc66534462200c9477e58b28c56494b97f96a0f8356860cb27bfff48 SHA512 5cb29bdf1a2e1c01fb1f3624c45336b354c67625385fdaa8311adad2e7fb4951f683e93ce9a6e7fa7115e0d5835ce6a35a38269fd0ec98821479635387327470 WHIRLPOOL 860d70db0cc010a33970251ace634c22dc8c006adf25e02f0fb6e49dfe205b98d0268ad0940ae6f00c7d7565e375958456f45b084bbefeb8d3d609a9872933e5
+MISC metadata.xml 330 SHA256 30e981d42ef228cacfff23800c13cd0032ef9186734490a419578db698768e31 SHA512 dc5e3efe296cfb0fd207d93ba4279d325fe50f52d9aa932a57d0cb0eb9bdc3a46c0d46be76115bcfe1db74f55c87a195c1a21b71f92b6b5a3b707577a54366e9 WHIRLPOOL 1f77dd747c10da848ccc5f0e02222e4987cf8192bf367a1d43f55d90819ff54f4561472c3e5df36252be371248710759964ee93e6182922921edca37f939e5aa
diff --git a/sys-fs/growpart/growpart-0.0.1.ebuild b/sys-fs/growpart/growpart-0.0.1.ebuild
new file mode 100644
index 000000000000..3f9e119286a4
--- /dev/null
+++ b/sys-fs/growpart/growpart-0.0.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="A script that can grow your rootfs on first boot"
+HOMEPAGE="http://manpages.ubuntu.com/manpages/natty/man1/growpart.1.html"
+SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/${PN}/${P}.gz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=" sys-apps/gptfdisk"
+
+src_install() {
+ exeinto /usr/sbin/
+ newexe "growpart-${PV}" growpart
+}
diff --git a/sys-fs/growpart/growpart-0.0.30.ebuild b/sys-fs/growpart/growpart-0.0.30.ebuild
new file mode 100644
index 000000000000..1c3c31db971e
--- /dev/null
+++ b/sys-fs/growpart/growpart-0.0.30.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="A script that can grow your rootfs on first boot"
+HOMEPAGE="http://manpages.ubuntu.com/manpages/natty/man1/growpart.1.html"
+SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/${PN}/${P}.gz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ppc64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="sys-apps/gptfdisk"
+
+src_install() {
+ exeinto /usr/sbin/
+ newexe "growpart-${PV}" growpart
+}
diff --git a/sys-fs/growpart/metadata.xml b/sys-fs/growpart/metadata.xml
new file mode 100644
index 000000000000..ef2b3b755493
--- /dev/null
+++ b/sys-fs/growpart/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ grow your root partition
+ </longdescription>
+</pkgmetadata>
diff --git a/sys-fs/gt5/Manifest b/sys-fs/gt5/Manifest
new file mode 100644
index 000000000000..1a7a486670c3
--- /dev/null
+++ b/sys-fs/gt5/Manifest
@@ -0,0 +1,7 @@
+AUX gt5-1.4.0-bash-shabang.patch 292 SHA256 4874f44532b0d4038399ff7663c62503308fae4048a6715220663fbe4cccecda SHA512 d8e58bd47e3e2a867b54852ac73148618679d286a9d5ea93d19038be2ad34375ed150eaa33b095a18724cd40f0d0df61df31630cbb8dd936615ec7e6b595e032 WHIRLPOOL cf17884be599e79fbffe26a5597df2ee8b60c7a8b3bb05d0a80b67f3b464cb16535e0de4cbeb642c31956bfeb8cf9a650ebfc260f12eed1621373a8633b42753
+AUX gt5-1.4.0-empty-dirs.patch 339 SHA256 47be75e34dcb9de44ccf3dbb61b633a7904a359efe70dd7678ef9838ca3a035d SHA512 4a494660e10ee7ecdd8aa56ac8a25d6e544c42a535466119fd2702ff9bf0cf0e26e492f2e98a34ea4b5741c20357fa6d2b600dea76f9ead89b20cd9461f86b9c WHIRLPOOL 2da006a81173f0cd90d9b61c8d42fc65dd8aa706c3e817004d0ff4e66dc516504ae67e56da08985492f9f1b5b4dd5677d7966777dedb096470ef997df37dce48
+DIST gt5-1.4.0.tar.gz 16504 SHA256 785a2a71f77e29d2cf4bbd2c6f49f690d6fdcb5f53abd51aee393572fd7fa03e SHA512 5006a033ec203e229cc56db90af6b92d20b6cf0de4602abf3dec65e91906991d80e8682767ab10348ff8351baf919e515e2e950cf0d9d9210956916e26ce10fa WHIRLPOOL ef2fd629c272b0a4746e3ec22bdeb24489943289a5c962286265c7a331fdd75554d6748b69d34c18824dcb8cc4f20c6e55036401d8f55127fd5b951a16c19dcd
+EBUILD gt5-1.4.0-r2.ebuild 588 SHA256 1e491922a39cef13b2a81a830818368d8b5c4e883a68487efa17c0b8689ce3d2 SHA512 07a4d6734dcaaa5a2ba8887a9e89b3f9a37ceb348ace8ae3bea503f8e5380d12bef1c9e883a59ed991550b27be46067bb1677138bcb1f21a28cc4b5211a8646b WHIRLPOOL c07fc243148cb99143cd7ae8bf646a61cc9f62e4dddb0628834fab611d16d7e880ec38e4a41b4777dc7319e9405f241134a860f0a368f5faba45ada7207a04e3
+MISC ChangeLog 2363 SHA256 4a9b257c5697c067eeba61463b45db3203221c1acf7b19283d9552b1f5093f04 SHA512 148401e7acbc6af1160e2ba1cdd5af13033cd5681cb427d9fc1c498159ebc27895d478bc278c247daab11d3fdb56bc22e24fee6e2dc7d9b828acec109aa8a07c WHIRLPOOL 4fed3bb74caec4aec2474b4537b484c72ed3be62424e216a14fa318a5e54d46dd5c92bcc572ae9603f32752120b1080994b2685cd7d4aa88c61ea680253af9a9
+MISC ChangeLog-2015 1572 SHA256 bdd91af4a20554aef2a80af715adcc39ea9e62399d509b541076dbdff2c3cc5f SHA512 c444094058bbfcbfbf55499f3b2b9dbb5c86cdc681e0a0e01a041a3c040c87a137ea40eb0eb7b6d8aaf51baed7870d52321002abdb1dcc4aed961cb11af163c3 WHIRLPOOL 476e048b9ab71de9f8557f687536137f8de0c2cd0dc700651a06132774b3c5eedca74552f0f1d2d244222c4393b66538df82ad231f216af99b86e258a44786e6
+MISC metadata.xml 212 SHA256 c81baebf2fd8084caeefb523f3af503dca791ce1546a10daa5973249e31a7241 SHA512 d2990d0c4d09e385a0bc11dc828709472a395b01ff9a77a08c9317d226fc47bb2bd9839870547220ecfa8993fa73c9f9a78e291e1855ac948494536ed7318d2c WHIRLPOOL 5300e4edaa82d6928bfdf955eeba67741253bc902519f366c72ccae1669a3c9db0b5cc0e7055b7c400df3b1b65085eda365ad6adcb3b4644aaee5299b9297094
diff --git a/sys-fs/gt5/files/gt5-1.4.0-bash-shabang.patch b/sys-fs/gt5/files/gt5-1.4.0-bash-shabang.patch
new file mode 100644
index 000000000000..d28d9f6c1eed
--- /dev/null
+++ b/sys-fs/gt5/files/gt5-1.4.0-bash-shabang.patch
@@ -0,0 +1,9 @@
+diff -ru gt5-1.4.0.orig/gt5 gt5-1.4.0/gt5
+--- gt5-1.4.0.orig/gt5 2007-09-17 00:29:48.685233203 +0200
++++ gt5-1.4.0/gt5 2007-09-17 00:29:55.684165472 +0200
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ version=1.4.0
+
+ #HTML-colours: ---------------------------------------------------------------
diff --git a/sys-fs/gt5/files/gt5-1.4.0-empty-dirs.patch b/sys-fs/gt5/files/gt5-1.4.0-empty-dirs.patch
new file mode 100644
index 000000000000..4aab4d0ab840
--- /dev/null
+++ b/sys-fs/gt5/files/gt5-1.4.0-empty-dirs.patch
@@ -0,0 +1,11 @@
+--- /usr/bin/gt5.old 2011-01-10 23:01:29.778000092 +0100
++++ /usr/bin/gt5 2011-01-10 23:01:16.577000089 +0100
+@@ -261,7 +261,7 @@
+
+ #can du handle depths?
+ DEPTH="$(du --help 2>&1 | "$AWK" '
+- /depth/{sub(/^[^-]*/,""); sub(/[N ].*/,""); print; exit}
++ /depth/{sub(/^[^-]*/,""); sub(/,[N ].*/,""); print; exit}
+ ')$((MAX_DEPTH+1))"
+
+ {
diff --git a/sys-fs/gt5/gt5-1.4.0-r2.ebuild b/sys-fs/gt5/gt5-1.4.0-r2.ebuild
new file mode 100644
index 000000000000..8385aa87dfcc
--- /dev/null
+++ b/sys-fs/gt5/gt5-1.4.0-r2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils
+
+DESCRIPTION="a diff-capable 'du-browser'"
+HOMEPAGE="http://gt5.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~sparc x86"
+IUSE=""
+
+RDEPEND="|| ( www-client/links
+ www-client/elinks
+ www-client/lynx )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}/${P}-bash-shabang.patch" \
+ "${FILESDIR}/${P}-empty-dirs.patch"
+}
+
+src_install() {
+ dobin gt5
+ doman gt5.1
+ dodoc Changelog README
+}
diff --git a/sys-fs/gt5/metadata.xml b/sys-fs/gt5/metadata.xml
new file mode 100644
index 000000000000..54a468d458c4
--- /dev/null
+++ b/sys-fs/gt5/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <remote-id type="sourceforge">gt5</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/hfsplusutils/Manifest b/sys-fs/hfsplusutils/Manifest
new file mode 100644
index 000000000000..c604ccd8878b
--- /dev/null
+++ b/sys-fs/hfsplusutils/Manifest
@@ -0,0 +1,11 @@
+AUX hfsplusutils-1.0.4-cflags.patch 702 SHA256 9433ca3555cd4a64058feffbd09834c560eac9fa873397ac32194059f7f6324c SHA512 b66a64a085abdb2c6c2b1f8008019ea41e9e4ee4b58ecbbf96aad4500392d1935a9aa9bd2694fc62af7cf196ddf556e754908bbcdeb64842e8e72a3cbb125a05 WHIRLPOOL 97fb396f9077acc3aba26df2114afa7d54a70c690b15b1d356fd357c1dba6836d9af6a9d8d6805e59c24eb71d25afd874982de65c1920bbe4390e4f716afe0af
+AUX hfsplusutils-1.0.4-errno.patch 445 SHA256 e55554fa1fbca89edf935eab0852807c7fff58bef2c42faa36a0a25bbcb2a8d2 SHA512 c8df462d82870f027c4c9af5e5c8036d8a9eab89f04d46f6bbdd4679325f751296b99f4f48aa36dcf6dde5b4db3a15f6791e6984f9f02f0e58e8cc47516bb8fd WHIRLPOOL 0af4dc855e2ae73c9918b8260a4810e8c130aad698f388c4ad35cbfc68e94ee2701bbf62043cc0bd85987a8b38812accc7b1a1081711cedaea608ade69cc1771
+AUX hfsplusutils-1.0.4-gcc4.patch 6221 SHA256 a4211cd30893972b853c1e47d9b03330feca79d4998b03336e2b7aed3f6ff9c1 SHA512 a1919c6aaee1369cf1d99fd0ee5a47051318f624960a52528d546cec5fe6a6c57f4b3f8ce9824457ec9be9b0d8cd3aca816c990542aae50f140bd22d93153616 WHIRLPOOL fe773871046a174e22875e9619def6824bb9fd26c5ae36f86e5571a98b8b8a59dfd9c430aa76ccafd78e3460a08544e2bf36337d6e0c6690c5d8dcdfe5570396
+AUX hfsplusutils-1.0.4-glob.patch 288 SHA256 e1ccfa1de86ec3378ed91a318488392c090f432c63e78b8c304175cb90ed3c9b SHA512 43f2c51977193d4ac1d9f4d056a6bf1bee2d9b82d27e50edfaa35545710e5a8f8010a6606e868c6670e8958fb52a605e3618299fa61dcf943f8a729186a59291 WHIRLPOOL 8f78180767f922841ea6840a03c39b0d7c62317800a96e8176b12740a282818719fe1c24dbc9683cf1d38790a0cec390753a30549b078d0125d0bad9aa0733f7
+AUX hfsplusutils-1.0.4-stdlib.patch 403 SHA256 8ed4d468541735011dbff28b20f0783c00156544317126d178574244a3ca1191 SHA512 23361a4cae07b679cb5c6122cf1a74aac19a11b0b892a369683881ed1bed63cfb1369aa84762b0447f2c91b1226a73c9f42b06fe8cb25a40dd7fc58fbf22806a WHIRLPOOL b79ab926bab6d9feb10a444078a5f90b1cdf03b1db293d0f2f35676813920e54df55a549f50b3d4934b1d001ab70703679a313864e3861343d078dcaf6e3d548
+AUX hfsplusutils-1.0.4-string.patch 606 SHA256 cf2649c3c29c6610feb42b2c12fd5aac71f4877d5af37d329f45eba685679bfe SHA512 5f7d4a7bbbb15479d00d3ff49fac08328b5d3fb4549d3278b43c73025ab4f0f5657c7b084b2671a5e1524a88bbcf5bc459b88c8d944cdc98fbf0c2ba4e6b0339 WHIRLPOOL 6f3d991e8afa3913118f022c20fa00d35c73c9ce0728257f59725b383530d4724c0456d55dd296f18c64c319d3f1b80e8710fc9dc57e0de60d00bbf02d441e14
+DIST hfsplus_1.0.4.src.tar.bz2 185461 SHA256 032b1c663b1400f3ea1c2ec1a03adebd6e57e51fd38e997befdd223448a10c6d SHA512 94cf6bc8e9d561dea5e8b5860c4ef979f21349d6546c767b43c18156fa1f805e843fae8a64096c147a28886467f5e2012b06b93918773457eaf486b85958b2ee WHIRLPOOL 77a55b03b4f6f87a035cdde6d0511ce2db8680bfb8f847bd4969d02c68980faedd989dc74e6286d8b68811e3a4c72488a1f17a9816dd0861b5b69f47aa17e0d2
+EBUILD hfsplusutils-1.0.4-r1.ebuild 1023 SHA256 d1b994f6770b5f55915d7c339c1956d4a709ddad1a5db12a34a35c6508e5eb04 SHA512 f1f59aa8d9e938cbc4b72529eb5474b272d34c1dae30d08fe77ca4e2ce4879d2fd19181c7a14ba369a0870a21b257b8bff9dc2636b4a892104bc22ffd3ac7199 WHIRLPOOL 417eb87a6da8cb6fb4df4ac831cfc2c7295f0afa20839dae79ecbcc9e25ae8bf7909b1e652b683dd57c2fa2800db9c56663e5a7455115ced19406502c50f1a67
+MISC ChangeLog 3181 SHA256 47aac1cd1cbce32178cfd72bae2b4a66a25cb1f4c61284b11ebed474d6eec0c1 SHA512 4a875b50354319b9be42d07d8bdd29cbe670985aa805efcf7f01774ffac00819402ff775ec560f90cee088acb474c4cdf3c16977e04f778a74636ab12525b574 WHIRLPOOL 1ed838ba1ce7093065ebcd6ede245de91c0e8468c87e33256b3cc25b1cdfaabc2c738a6426305d8a0fbe39224543f7de8d8ba4b2680928becd41f65d35bc0636
+MISC ChangeLog-2015 3175 SHA256 81a1a5af372afb8d50aca2d160e5a7acf31045661fc4171e48b8c2dbbcdea155 SHA512 3eac6f09167c34cfce6e8e3fe52a36f7265ed8c8c359f6de46dfe7c8b3444dc5aea623a5152805e0d14cfa98c457fdad8b42df13489b23b0ab477ba14a6a5b7d WHIRLPOOL ff518a5d0b954ad1742d2ee6f2d13b6e9169d497b54ad077c319434febe9919e752e491297ad3eef59dd502037916934085cb9ef07be68d313ce11067ce70337
+MISC metadata.xml 259 SHA256 e7ac6b67c4c89040a00b23bda7a3b2fd4ac8affc1055daf3015ccc8580640f6f SHA512 ca71b1781806d20022c238e5b5d10f9154c78e0fa51f2603de34c48ecbe4cbc2c3190cf046526840546743644c691ee7fe51e31a4617b01bb7602dde803c1538 WHIRLPOOL 2a2aa19a448eca4dea84d129fd194a7ee4d77bdc1b5120abd3b667ce156cdeeb4616a7c7cd23fbccb7ba08e6e166aaba0fac63a6afa208d826acee37b0e560fe
diff --git a/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-cflags.patch b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-cflags.patch
new file mode 100644
index 000000000000..2006c7d711ef
--- /dev/null
+++ b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-cflags.patch
@@ -0,0 +1,23 @@
+don't clobber the user's settings that configure already put together for us
+
+--- a/libhfsp/src/Makefile.am
++++ b/libhfsp/src/Makefile.am
+@@ -27,7 +27,5 @@
+ blockiter.c btree.c btreecheck.c fscheck.c hfstime.c libhfsp.c os.c unicode.c \
+ record.c volume.c partitions.c
+
+-CFLAGS = -O2 -Wall
+-
+ # I need to clean up these headers first before i can distribute them ...
+ # include_HEADERS = apple.h hfs.h hfsp.h libhfsp.h
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -8,8 +8,6 @@
+
+ INCLUDES = -I../libhfsp/src
+
+-CFLAGS = -O2 -Wall
+-
+ bin_PROGRAMS = hpmount hpumount hpls hpcd hpcopy hppwd hpfsck hprm hpmkdir
+
+ hpmount_SOURCES = hpmount.c hpcache.c hfsputil.c glob.c dstring.c dlist.c
diff --git a/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-errno.patch b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-errno.patch
new file mode 100644
index 000000000000..c9caeb4208fb
--- /dev/null
+++ b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-errno.patch
@@ -0,0 +1,19 @@
+diff -ruN hfsplus.orig/src/hpmkdir.c hfsplus-1.0.4/src/hpmkdir.c
+--- hfsplus.orig/src/hpmkdir.c 2003-03-30 20:09:59.000000000 +0200
++++ hfsplus-1.0.4/src/hpmkdir.c 2003-03-30 20:11:15.000000000 +0200
+@@ -46,8 +46,9 @@
+ # include <string.h>
+ # include <time.h>
+ # include <ctype.h>
+-# include <errno.h>
+ */
++# include <errno.h>
++
+ # include <stdio.h>
+ # include <stdlib.h>
+
+@@ -164,3 +165,4 @@
+ hfsputil_perrorp(argv0);
+ return -1;
+ }
++
diff --git a/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-gcc4.patch b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-gcc4.patch
new file mode 100644
index 000000000000..04724440ddbf
--- /dev/null
+++ b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-gcc4.patch
@@ -0,0 +1,132 @@
+--- hfsplus-1.0.4/libhfsp/src/btree.c~ 2002-03-05 19:50:28.000000000 +0000
++++ hfsplus-1.0.4/libhfsp/src/btree.c 2005-04-30 12:48:48.000000000 +0100
+@@ -393,7 +393,7 @@ static int btree_init(btree* bt, volume*
+ {
+ p = volume_readfromfork(vol, nodebuf, fork, 0, bt->blkpernode,
+ HFSP_EXTENT_DATA, bt->cnid);
+- ((char*) p) += HEADER_RESERVEDOFFSET; // skip header
++ p += HEADER_RESERVEDOFFSET; // skip header
+ }
+
+ bt->alloc_bits = malloc(alloc_size);
+--- hfsplus-1.0.4/libhfsp/src/swab.h~ 2002-03-05 19:50:29.000000000 +0000
++++ hfsplus-1.0.4/libhfsp/src/swab.h 2005-04-30 12:48:05.000000000 +0100
+@@ -36,28 +36,28 @@
+
+ #define bswabU16(val) bswap_16(val)
+
+-#define bswabU16_inc(ptr) bswap_16(*((UInt16*) (ptr))++)
+-#define bswabU32_inc(ptr) bswap_32(*((UInt32*) (ptr))++)
+-#define bswabU64_inc(ptr) bswap_64(*((UInt64*) (ptr))++)
+-
+-#define bstoreU16_inc(ptr, val) (*((UInt16*) (ptr))++) = bswap_16(val)
+-#define bstoreU32_inc(ptr, val) (*((UInt32*) (ptr))++) = bswap_32(val)
+-#define bstoreU64_inc(ptr, val) (*((UInt64*) (ptr))++) = bswap_64(val)
++#define bswabU16_inc(ptr) bswap_16(*(*((UInt16**) (void *)(&ptr)))++)
++#define bswabU32_inc(ptr) bswap_32(*(*((UInt32**) (void *)(&ptr)))++)
++#define bswabU64_inc(ptr) bswap_64(*(*((UInt64**) (void *)(&ptr)))++)
++
++#define bstoreU16_inc(ptr, val) (*(*((UInt16**) (void *)(&ptr)))++) = bswap_16(val)
++#define bstoreU32_inc(ptr, val) (*(*((UInt32**) (void *)(&ptr)))++) = bswap_32(val)
++#define bstoreU64_inc(ptr, val) (*(*((UInt64**) (void *)(&ptr)))++) = bswap_64(val)
+
+ #else // BYTE_ORDER == BIG_ENDIAN
+
+ #define bswabU16(val) val
+
+-#define bswabU16_inc(ptr) (*((UInt16*) (ptr))++)
+-#define bswabU32_inc(ptr) (*((UInt32*) (ptr))++)
+-#define bswabU64_inc(ptr) (*((UInt64*) (ptr))++)
+-
+-#define bstoreU16_inc(ptr, val) (*((UInt16*) (ptr))++) = val
+-#define bstoreU32_inc(ptr, val) (*((UInt32*) (ptr))++) = val
+-#define bstoreU64_inc(ptr, val) (*((UInt64*) (ptr))++) = val
++#define bswabU16_inc(ptr) (*(*((UInt16**) (void *)(&ptr)))++)
++#define bswabU32_inc(ptr) (*(*((UInt32**) (void *)(&ptr)))++)
++#define bswabU64_inc(ptr) (*(*((UInt64**) (void *)(&ptr)))++)
++
++#define bstoreU16_inc(ptr, val) (*(*((UInt16**) (void *)(&ptr)))++) = val
++#define bstoreU32_inc(ptr, val) (*(*((UInt32**) (void *)(&ptr)))++) = val
++#define bstoreU64_inc(ptr, val) (*(*((UInt64**) (void *)(&ptr)))++) = val
+
+ #endif
+
+ /* for the sake of compleetness and readability */
+-#define bswabU8_inc(ptr) (*((UInt8*) (ptr))++)
+-#define bstoreU8_inc(ptr,val) (*((UInt8*) (ptr))++) = val
++#define bswabU8_inc(ptr) (*(*((UInt8**) (void *)(&ptr)))++)
++#define bstoreU8_inc(ptr,val) (*(*((UInt8**) (void *)(&ptr)))++) = val
+--- hfsplus-1.0.4/libhfsp/src/btreecheck.c~ 2002-03-05 19:50:29.000000000 +0000
++++ hfsplus-1.0.4/libhfsp/src/btreecheck.c 2005-04-30 12:49:22.000000000 +0100
+@@ -264,7 +264,7 @@ static int fscheck_btree_init(btree* bt,
+ {
+ p = volume_readfromfork(vol, nodebuf, fork, 0, bt->blkpernode,
+ HFSP_EXTENT_DATA, bt->cnid);
+- ((char*) p) += HEADER_RESERVEDOFFSET; // skip header
++ p += HEADER_RESERVEDOFFSET; // skip header
+ }
+
+ bt->alloc_bits = malloc(alloc_size);
+--- hfsplus-1.0.4/libhfsp/src/fscheck.c~ 2002-03-25 15:48:37.000000000 +0000
++++ hfsplus-1.0.4/libhfsp/src/fscheck.c 2005-04-30 12:50:26.000000000 +0100
+@@ -230,7 +230,7 @@ static int fscheck_volume_readbuf(volume
+ vh->write_count = bswabU32_inc(p);
+ vh->encodings_bmp = bswabU64_inc(p);
+ memcpy(vh->finder_info, p, 32);
+- ((char*) p) += 32; // So finderinfo must be swapped later, ***
++ p += 32; // So finderinfo must be swapped later, ***
+ p = volume_readfork(p, &vh->alloc_file );
+ p = volume_readfork(p, &vh->ext_file );
+ p = volume_readfork(p, &vh->cat_file );
+@@ -277,12 +277,12 @@ static int fscheck_read_wrapper(volume *
+ printf("Volume is wrapped in HFS volume "
+ " (use hfsck to check this)\n");
+
+- ((char*) p) += 0x12; /* skip unneded HFS vol fields */
++ p += 0x12; /* skip unneded HFS vol fields */
+ drAlBlkSiz = bswabU32_inc(p); /* offset 0x14 */
+- ((char*) p) += 0x4; /* skip unneded HFS vol fields */
++ p += 0x4; /* skip unneded HFS vol fields */
+ drAlBlSt = bswabU16_inc(p); /* offset 0x1C */
+
+- ((char*) p) += 0x5E; /* skip unneded HFS vol fields */
++ p += 0x5E; /* skip unneded HFS vol fields */
+ signature = bswabU16_inc(p); /* offset 0x7C, drEmbedSigWord */
+ if (signature != HFSP_VOLHEAD_SIG)
+ HFSP_ERROR(-1, "This looks like a normal HFS volume");
+--- hfsplus-1.0.4/libhfsp/src/volume.c~ 2002-03-26 18:00:29.000000000 +0000
++++ hfsplus-1.0.4/libhfsp/src/volume.c 2005-04-30 12:51:41.000000000 +0100
+@@ -345,7 +345,7 @@ static int volume_readbuf(hfsp_vh* vh, v
+ vh->write_count = bswabU32_inc(p);
+ vh->encodings_bmp = bswabU64_inc(p);
+ memcpy(vh->finder_info, p, 32);
+- ((char*) p) += 32; // finderinfo is not used by now
++ p += 32; // finderinfo is not used by now
+ p = volume_readfork(p, &vh->alloc_file );
+ p = volume_readfork(p, &vh->ext_file );
+ p = volume_readfork(p, &vh->cat_file );
+@@ -381,7 +381,7 @@ static int volume_writebuf(hfsp_vh* vh,
+ bstoreU32_inc(p, vh->write_count );
+ bstoreU64_inc(p, vh->encodings_bmp );
+ memcpy(p, vh->finder_info, 32);
+- ((char*) p) += 32; // finderinfo is not used by now
++ p += 32; // finderinfo is not used by now
+ p = volume_writefork(p, &vh->alloc_file );
+ p = volume_writefork(p, &vh->ext_file );
+ p = volume_writefork(p, &vh->cat_file );
+@@ -417,12 +417,12 @@ static int volume_read_wrapper(volume *
+
+ UInt16 embeds, embedl; /* Start/lenght of embedded area in blocks */
+
+- ((char*) p) += 0x12; /* skip unneeded HFS vol fields */
++ p += 0x12; /* skip unneeded HFS vol fields */
+ drAlBlkSiz = bswabU32_inc(p); /* offset 0x14 */
+- ((char*) p) += 0x4; /* skip unneeded HFS vol fields */
++ p += 0x4; /* skip unneeded HFS vol fields */
+ drAlBlSt = bswabU16_inc(p); /* offset 0x1C */
+
+- ((char*) p) += 0x5E; /* skip unneeded HFS vol fields */
++ p += 0x5E; /* skip unneeded HFS vol fields */
+ signature = bswabU16_inc(p); /* offset 0x7C, drEmbedSigWord */
+ if (signature != HFSP_VOLHEAD_SIG)
+ HFSP_ERROR(-1, "This looks like a normal HFS volume");
diff --git a/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-glob.patch b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-glob.patch
new file mode 100644
index 000000000000..cd92d0a0a86d
--- /dev/null
+++ b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-glob.patch
@@ -0,0 +1,12 @@
+--- src/glob.c.orig 2002-10-09 08:02:31.000000000 -0500
++++ src/glob.c 2002-10-09 08:02:46.000000000 -0500
+@@ -48,7 +48,7 @@
+
+ switch (*pat)
+ {
+- case NULL: // pattern at end
++ case '\0': // pattern at end
+ return (!*str); // String at end ?
+
+ case '*': // match all
+
diff --git a/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-stdlib.patch b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-stdlib.patch
new file mode 100644
index 000000000000..211a50225eb8
--- /dev/null
+++ b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-stdlib.patch
@@ -0,0 +1,22 @@
+needed for exit() prototype
+
+--- a/libhfsp/src/os.c
++++ b/libhfsp/src/os.c
+@@ -46,6 +46,7 @@ int fstat(int, struct stat *);
+ # endif
+
+ # include <stdio.h>
++# include <stdlib.h>
+
+
+ # include <errno.h>
+--- a/libhfsp/src/record.c
++++ b/libhfsp/src/record.c
+@@ -32,6 +32,7 @@
+ #include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+
+ #include "libhfsp.h"
+ #include "hfstime.h"
diff --git a/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-string.patch b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-string.patch
new file mode 100644
index 000000000000..37abcbd31899
--- /dev/null
+++ b/sys-fs/hfsplusutils/files/hfsplusutils-1.0.4-string.patch
@@ -0,0 +1,33 @@
+needed for mem* funcs
+
+--- a/libhfsp/src/unicode.c
++++ b/libhfsp/src/unicode.c
+@@ -16,7 +16,7 @@
+ #include <stdlib.h>
+ #include <endian.h>
+ #include <byteswap.h>
+-#include <linux/string.h>
++#include <string.h>
+
+ #define __USE_GNU
+ /* need wcsrtomb */
+--- a/libhfsp/src/partitions.c
++++ b/libhfsp/src/partitions.c
+@@ -31,6 +31,7 @@
+ #include "os.h"
+ #include "libhfsp.h"
+
++#include <string.h>
+ #include <stdlib.h>
+
+ /*
+--- a/libhfsp/src/record.c
++++ b/libhfsp/src/record.c
+@@ -32,6 +32,7 @@
+
+ #include <errno.h>
+ #include <stdio.h>
++#include <string.h>
+
+ #include "libhfsp.h"
+ #include "hfstime.h"
diff --git a/sys-fs/hfsplusutils/hfsplusutils-1.0.4-r1.ebuild b/sys-fs/hfsplusutils/hfsplusutils-1.0.4-r1.ebuild
new file mode 100644
index 000000000000..71cc51b2ebaa
--- /dev/null
+++ b/sys-fs/hfsplusutils/hfsplusutils-1.0.4-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit autotools eutils flag-o-matic
+
+MY_P="hfsplus_${PV}"
+DESCRIPTION="HFS+ Filesystem Access Utilities (a PPC filesystem)"
+HOMEPAGE="http://penguinppc.org/historical/hfsplus/"
+SRC_URI="http://penguinppc.org/historical/hfsplus/${MY_P}.src.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="ppc ppc64 x86"
+IUSE="static-libs"
+
+DEPEND="app-arch/bzip2"
+RDEPEND=""
+
+S=${WORKDIR}/hfsplus-${PV}
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-glob.patch"
+ epatch "${FILESDIR}/${P}-errno.patch"
+ epatch "${FILESDIR}/${P}-gcc4.patch"
+ epatch "${FILESDIR}/${P}-string.patch"
+ epatch "${FILESDIR}/${P}-stdlib.patch"
+ epatch "${FILESDIR}/${P}-cflags.patch"
+ # let's avoid the Makefile.cvs since isn't working for us
+ eautoreconf
+
+ append-flags -fgnu89-inline
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ find "${ED}"/usr/ -name libhfsp.la -delete
+ newman doc/man/hfsp.man hfsp.1
+}
diff --git a/sys-fs/hfsplusutils/metadata.xml b/sys-fs/hfsplusutils/metadata.xml
new file mode 100644
index 000000000000..5eb05198076b
--- /dev/null
+++ b/sys-fs/hfsplusutils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>ppc@gentoo.org</email>
+ <name>Gentoo Linux PowerPC Development</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/hfsutils/Manifest b/sys-fs/hfsutils/Manifest
new file mode 100644
index 000000000000..d3696c6ab772
--- /dev/null
+++ b/sys-fs/hfsutils/Manifest
@@ -0,0 +1,8 @@
+AUX hfsutils-3.2.6-errno.patch 377 SHA256 06d374f92d3535d770b63c6cc98fa2e9ea942685e8f90c13270c2908ed98c735 SHA512 564eb03f85299c3fddd5f61d1563b38951a866daeca1bd1ba020a4e1fe8603ae22f1f764be54ecb1fdc47f97bbca68a512936fff21b2a359050ddebef978eb1b WHIRLPOOL 458861f268ae0a0ef7c02c488d3392294322113090a0c4c377f976603ff25b2601faca1b8b3caa998fe6287a47cbc25e010cc57c0b87372460097328c2eb11ce
+AUX hfsutils-3.2.6-fix-tcl-8.6.patch 184 SHA256 bfa6dfcf2fe62d9be52094adff12d79780304a62db815219086d46dfcf093ee0 SHA512 0868c22b49f5cae7602982f71a0ea8e9c1f4cd350a27b7bb8d810db8d1d4b2396358f410875e21cc2b0611d127960384dc152a93abc0ec63128efaaf5d81a0f2 WHIRLPOOL 9ecd14402ed26b0ab979793ceeaf9e9b09dd814021b952f40ed42b9d24bea70cd83182cb889ce6ffa52d4dffae7fa9c57f22e65a3fd50dd57600dcaf90cf66e7
+AUX largerthan2gb.patch 289 SHA256 3427de6fde5e6916879b59054ffb129b5d37180772d7111607d98423fb76a3da SHA512 896b4c89e04b8d0ec6ac66d928a60ccbdab30fd6bb7196e747af91b0823f7875542bfb0c3264062dc9627493d859a6ef28571848fd5e82a73a460ef705bd5362 WHIRLPOOL e4438c82796be63d6722eca4c80812633f9e22c6a41ecfbb800d29b18f240451f26df717932464d189276c462d74fde80c9b587dc92414956e108246d223dfa5
+DIST hfsutils-3.2.6.tar.gz 207697 SHA256 bc9d22d6d252b920ec9cdf18e00b7655a6189b3f34f42e58d5bb152957289840 SHA512 0db3050e5969c4e4e6c6ddb10cbc221a5837eb1e12f9331e7129511d31a4ec8d38420ed0b948dadc85ed990f3b1085e930eb7f0c37b3883866d963e47cbbb173 WHIRLPOOL 7e9e42a0ee1fbe8bf7e2deac790892d3ee2fc0b51208b56f6b3a7016ce382c12081ab38dd376edbdc949c212786b317124c447afb613da3b9a7403c0c3020b54
+EBUILD hfsutils-3.2.6-r5.ebuild 1063 SHA256 e11e661094ba587139d77a7a3aea62d8e5fe040c49814a5b0dc99eb56b9181eb SHA512 59a248c347493b65f6dcd4dcd320a59b677f7849df7628a98d35ffb8f7370afb94bc2b7cc8f14a6c93775f7096a2374441f8f1c23b48973e0b4f19e3e77283ff WHIRLPOOL 7130e1b7ea3c8b8b18b91b8c5d348895c47f0823e9049a517a0871a3708b0302864177fc1c8eaf2b95a145485ff28b819932d708d3dafea7647b7206432b6571
+MISC ChangeLog 2540 SHA256 634d90c3e79d9795f1463ce6c0568135abf7569af352ad10fa3159134b81881e SHA512 9c7a71aef3984db2a3eadb4a851df7483196998bbf38de784dcd93ceeba7388396a867204b91863b84ace2ae76c7cf00f3fdae683893f5e9ed42b8a69ba140c0 WHIRLPOOL 00726f98392ad8f8d3ca22868160928b7b002462f8baf93060b63c81f180e63cb3607a574093d49123c772341f953bd3129deb955c1d0ba3af3ef227156a7274
+MISC ChangeLog-2015 4176 SHA256 2f0e3a1632aaec2aa706a551b1576a375b7e14b00777fd7408e85e597fa9eed4 SHA512 69c0f46c98e89f32645cc6dac3973d3c14377a77b3fcf5da8c3d0f94cd84a71ef36637b453415abaaea4df4afd9da768135752ce6786e9e940f0526aa27fa2cc WHIRLPOOL 068a0252327181b986dad24a30dc4fb93011145707f6f02c3d6c6f1558b4e230b3cd15a04929229f3384ac867497390203ae7b578fd903d65bba3b13a74b8eff
+MISC metadata.xml 259 SHA256 e7ac6b67c4c89040a00b23bda7a3b2fd4ac8affc1055daf3015ccc8580640f6f SHA512 ca71b1781806d20022c238e5b5d10f9154c78e0fa51f2603de34c48ecbe4cbc2c3190cf046526840546743644c691ee7fe51e31a4617b01bb7602dde803c1538 WHIRLPOOL 2a2aa19a448eca4dea84d129fd194a7ee4d77bdc1b5120abd3b667ce156cdeeb4616a7c7cd23fbccb7ba08e6e166aaba0fac63a6afa208d826acee37b0e560fe
diff --git a/sys-fs/hfsutils/files/hfsutils-3.2.6-errno.patch b/sys-fs/hfsutils/files/hfsutils-3.2.6-errno.patch
new file mode 100644
index 000000000000..6e25f794b220
--- /dev/null
+++ b/sys-fs/hfsutils/files/hfsutils-3.2.6-errno.patch
@@ -0,0 +1,13 @@
+diff -ruN hfsutils.orig/tclhfs.c hfsutils-3.2.6/tclhfs.c
+--- hfsutils.orig/tclhfs.c 2003-03-31 17:34:55.000000000 +0200
++++ hfsutils-3.2.6/tclhfs.c 2003-03-31 17:39:51.000000000 +0200
+@@ -43,8 +43,7 @@
+ # include "charset.h"
+ # include "suid.h"
+ # include "version.h"
+-
+-extern int errno;
++# include <errno.h>
+
+ # define ERROR(code, str) (hfs_error = (str), errno = (code))
+
diff --git a/sys-fs/hfsutils/files/hfsutils-3.2.6-fix-tcl-8.6.patch b/sys-fs/hfsutils/files/hfsutils-3.2.6-fix-tcl-8.6.patch
new file mode 100644
index 000000000000..19f15424543c
--- /dev/null
+++ b/sys-fs/hfsutils/files/hfsutils-3.2.6-fix-tcl-8.6.patch
@@ -0,0 +1,8 @@
+--- hfsutils-3.2.6/config.h.in
++++ hfsutils-3.2.6/config.h.in
+@@ -91,3 +91,5 @@
+ # ifndef HAVE_STRTOL
+ long strtol(const char *, char **, int);
+ # endif
++
++#define USE_INTERP_RESULT 1
diff --git a/sys-fs/hfsutils/files/largerthan2gb.patch b/sys-fs/hfsutils/files/largerthan2gb.patch
new file mode 100644
index 000000000000..a688ff621a30
--- /dev/null
+++ b/sys-fs/hfsutils/files/largerthan2gb.patch
@@ -0,0 +1,14 @@
+--- libhfs/os/unix.c-orig 1998-11-02 23:09:13.000000000 +0100
++++ libhfs/os/unix.c 2004-12-13 14:39:28.099124272 +0100
+@@ -19,6 +19,11 @@
+ * $Id$
+ */
+
++#ifdef __linux__
++#define _FILE_OFFSET_BITS 64
++#define _LARGE_FILES
++#endif
++
+ # ifdef HAVE_CONFIG_H
+ # include "config.h"
+ # endif
diff --git a/sys-fs/hfsutils/hfsutils-3.2.6-r5.ebuild b/sys-fs/hfsutils/hfsutils-3.2.6-r5.ebuild
new file mode 100644
index 000000000000..e44c4bc2efa1
--- /dev/null
+++ b/sys-fs/hfsutils/hfsutils-3.2.6-r5.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="HFS FS Access utils"
+HOMEPAGE="http://www.mars.org/home/rob/proj/hfs/"
+SRC_URI="ftp://ftp.mars.org/pub/hfs/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ppc64 sparc x86"
+IUSE="tcl tk"
+
+DEPEND="
+ tcl? ( dev-lang/tcl:0= )
+ tk? ( dev-lang/tk:0= )"
+RDEPEND="${DEPEND}"
+
+# use tk requires tcl - bug #150437
+REQUIRED_USE="tk? ( tcl )"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}-errno.patch \
+ "${FILESDIR}"/largerthan2gb.patch \
+ "${FILESDIR}"/${P}-fix-tcl-8.6.patch
+}
+
+src_configure() {
+ econf $(use_with tcl) $(use_with tk)
+}
+
+src_compile() {
+ emake AR="$(tc-getAR) rc" CC="$(tc-getCC)" RANLIB="$(tc-getRANLIB)"
+ emake CC="$(tc-getCC)" -C hfsck
+}
+
+src_install() {
+ dodir /usr/bin /usr/lib /usr/share/man/man1
+ emake \
+ prefix="${D}"/usr \
+ MANDEST="${D}"/usr/share/man \
+ infodir="${D}"/usr/share/info \
+ install
+ dobin hfsck/hfsck
+ dodoc BLURB CHANGES README TODO doc/*.txt
+}
diff --git a/sys-fs/hfsutils/metadata.xml b/sys-fs/hfsutils/metadata.xml
new file mode 100644
index 000000000000..5eb05198076b
--- /dev/null
+++ b/sys-fs/hfsutils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>ppc@gentoo.org</email>
+ <name>Gentoo Linux PowerPC Development</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/inotify-tools/Manifest b/sys-fs/inotify-tools/Manifest
new file mode 100644
index 000000000000..5dea4a2fd863
--- /dev/null
+++ b/sys-fs/inotify-tools/Manifest
@@ -0,0 +1,5 @@
+DIST inotify-tools-3.14.tar.gz 358772 SHA256 222bcca8893d7bf8a1ce207fb39ceead5233b5015623d099392e95197676c92f SHA512 6074d510e89bba5da0d7c4d86f2562c662868666ba0a7ea5d73e53c010a0050dd1fc01959b22cffdb9b8a35bd1b0b43c04d02d6f19927520f05889e8a9297dfb WHIRLPOOL fb22537b127ed8c03f4d0501d498c3731d7b85ce688ab8f281c7173d615c876d9ccd77b1d5a2a4effed642cfa30a99738b751608c9f279ce627ae951b41cada4
+EBUILD inotify-tools-3.14.ebuild 793 SHA256 372e32cf88e24adb3744fd1bf67dd8c36049d1683a50a799f29457130efeb59f SHA512 316279c93f1277e74547a4e728847353e11068bcc0fd2fc26b988d9b9c2c0029ac1c7d5e14a0c64eb526312c7e70c1364c2763835402863838987533a39b7044 WHIRLPOOL ecb0ec29d21742ad75d2c51cb1cdb624d1a2a88a1df4dee51bd6fd5507497ced96842028955efc76ab21d261eb3d3fa158d825a3a9f11c55c2b36177799001f9
+MISC ChangeLog 3393 SHA256 9528ff0f255618e38a6ae4b422a600493f5f9978587ec10943b5c59f4704fae7 SHA512 b11ba1b3ccea2f1f29462c9855cc422d9d6a6aee7ce5c5855e51263b9306f5b3117bce8b6b41d6f11265536c17565f58aa0e05c4d9b112ce08892b5c691fa763 WHIRLPOOL 4fb8c558bb107e48f00c4554c423f4c4988f4a6374f6f154ba6726592569a19ac84c6103e5a8940d519bc7ea9ebf262fdab95501606a323695db1d1410aba476
+MISC ChangeLog-2015 5740 SHA256 1c7563bc600decda3cce873910f4fbe1cd46763ad5ece40e7bebb4c96b4228b6 SHA512 c072cd2a4304b3bce2e71c244ff81eaffaf0ead41aaa449e0db62e2df1f7729325a1df5005753b7b9e4f075462d9dff2519af9a9b95bd3e65cc421e5661f8f8e WHIRLPOOL 7ef6f19f6523b99a5c2da103e7f438a9a79c024521ccaa1fffcb4952c21c40df80e0b660544111372b565513cd557933a788613dad627368331bacc9ef59b3a9
+MISC metadata.xml 649 SHA256 794c3971508bcbe9e7cdc5727b1f7f486aa05d0529824f08644c811e1fff103f SHA512 62eaab525f91d97a37b526fb07b7ee4b5c7abcfdd9f785655d3252de2a4f545649da51341c5c0ff4201e0ea097bb7206d2dbe5285c9008a392c55e4802c229e7 WHIRLPOOL 3f5fb5ade49fbd9f4c4c4c66b3af2a859b4967c738ae11f333539b217c2d8c0ae2066df68ada16bd054a628da66a7ac0916705f7d955c429666f18d8daea666f
diff --git a/sys-fs/inotify-tools/inotify-tools-3.14.ebuild b/sys-fs/inotify-tools/inotify-tools-3.14.ebuild
new file mode 100644
index 000000000000..8db9c3ff722f
--- /dev/null
+++ b/sys-fs/inotify-tools/inotify-tools-3.14.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="a set of command-line programs providing a simple interface to inotify"
+HOMEPAGE="https://github.com/rvoicilas/inotify-tools/wiki"
+SRC_URI="mirror://github/rvoicilas/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ~mips ~sparc x86"
+IUSE="doc"
+
+DEPEND="doc? ( app-doc/doxygen )"
+RDEPEND=""
+
+src_prepare() {
+ default
+ # timestamps are busted in tarball
+ find . -type f -exec touch -r configure {} +
+}
+
+src_configure() {
+ # only docs installed are doxygen ones, so use /html
+ econf \
+ --docdir='$(datarootdir)'/doc/${PF}/html \
+ $(use_enable doc doxygen)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc README NEWS AUTHORS ChangeLog
+}
diff --git a/sys-fs/inotify-tools/metadata.xml b/sys-fs/inotify-tools/metadata.xml
new file mode 100644
index 000000000000..b385aee8e3b2
--- /dev/null
+++ b/sys-fs/inotify-tools/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <longdescription>
+inotify-tools is a set of command-line programs for Linux providing a simple
+interface to inotify. These programs can be used to monitor and act upon
+filesystem events. Requires a Linux kernel supporting inotify.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">rvoicilas/inotify-tools</remote-id>
+ <remote-id type="sourceforge">inotify-tools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/iprutils/Manifest b/sys-fs/iprutils/Manifest
new file mode 100644
index 000000000000..96b98fdf6516
--- /dev/null
+++ b/sys-fs/iprutils/Manifest
@@ -0,0 +1,19 @@
+AUX iprdump 256 SHA256 580a1f5abb52397fa0a59c5b3e08957c77ab26d42a010b24fffbd8254318f020 SHA512 19459acaac6915f341042682a8b8c36726492241a7f3047fd4e3da9d9ca01aedcde97dddc12821bcdbf2c9c541ccf3527100e87ff4dbf616ab7676860f4793a0 WHIRLPOOL 403d8bfd2b2afba872bdcec49d9b47c20e2b32942d0d756cc505011a514b677eab7a514f862463e3524d351530ff5d515757fa36b614239c134e9ff588aa5f49
+AUX iprdump-r1 272 SHA256 1cfa9b05dedf9a4401b0bc7156cba19fb36d14296a7f1a9515db03bf15f0a396 SHA512 0b067dce09c7c25a8a02cdb52153f8a3070fe96e180c9a237e64179b27315ce11cdd3c0fe4f1b05cd8059c693c038e986366ccdb9d78d8fd0a9621f014f2bc7e WHIRLPOOL e06046780c5fc2f73241d4ee2d0b4b89b05e75aa051eacad459908fba760efcd508de3243195b28745bc25fa07c211be2ecc7b7ec426896a2fbc6b49383ca042
+AUX iprinit 346 SHA256 8efdb915c1929ceef232b7872d7a758de3af09436fa35248259cce6179896709 SHA512 39b98ba9b1bcd07a4ee7fff74927fb858918226624c0b64b60e33144d968c931d6dc836106dee67bd34fbece8bf056a31bf8449eaaf886c5501dd15aa1124625 WHIRLPOOL e1daf8bee78a077d1152a51cc0adb8652e7ccf1c1712179816e5c803f6d4a64f784abe05f510917cec22f1798f4d8dcffaa2aa89e36a8a1760d2763003aded54
+AUX iprinit-r1 350 SHA256 0eb87e2928c7d6b6590d96485df2760eecd76234fda324cb2e497f4fbd1bc2ed SHA512 acd1197bda70e7698c0df0ad48c74df870ee2932d87a5a78b0d3cb3c634b372e9accc25cafa4266da027979469bfd634941a0203d62b5082f4455008f1e8e758 WHIRLPOOL 4bf1c6ea3c3b8ee9ef7a9706675a2feae9c9ce96af85eb44837115eabf969644871c288865ca9588af676e4a1c9c20265beea0a7a83198e8c47dbc8ac11586b9
+AUX iprupdate 193 SHA256 3eaee631845847261e1027f51cf92fd3d9d8cc2867f8e8a1d5e6e56f7d1f030f SHA512 1b793065cf39cccdf8937546ee4becdc9e202733786ca77768955cc7936fdd41f73622e2019b5a81ec500d97dff019470585030f145955f37e012b2cee20181b WHIRLPOOL 4b237cb7b979688741c13b00241bf0277afd54453d3212ac019731dee91a90a1f52e10820f71ae42af6ae2c00895ed5d6a79c1551af2541d8b8a7591fc580bb6
+AUX iprupdate-r1 197 SHA256 20480407e28b90cfbce5818bc6fd5948169edd65b379aea7b2911d51ca790421 SHA512 2398ff3b8c4331f959f3740f003cb119b95357ffa15b9c4c9bb44ab191d2e863ef0b00e90d54ea012a66f309d2e3dc7fbd87c9e8817606523d0805a02153f29c WHIRLPOOL 656149d5591e8f8fca76ba650c789b827acbd643537247eaa8f3b6c1903efa716e9670dedd5fac1aa8a9bb96dfb10a84cd011f59adda6893e06f0cc9c7c44da6
+AUX iprutils-2.4.11.1-basename.patch 172 SHA256 2f5977bbf220f39a8407b70ecde024f90c3713e3b42f325790e49061be9a2b7f SHA512 3c0d027d720970028588a241a2399ed5cd658b69b0d4f6ff1645b0ce3eb58eb1af7e485cb674972f11033261f4d9ec9a0c42f583f319123cbab48ce6481caa7d WHIRLPOOL 340af0b863e2e84f0862abcbbbb9975503014a3d0d882a3342b65aff549157aa1b4c0c521d02b35c833f7158928d97257bd5a2c69bac211f7a75868775986977
+AUX iprutils-2.4.11.1-migrate_cand.patch 271 SHA256 5980c47d21303578c2c3327be2272e6c9ff7e84a05b54a75ec908983b7ef79dd SHA512 064b3c89cca536054cf05804c462997124d006cedad6db5a16c7e1a0b46a32a5ce3c2aa57080f5a6b3d7076eb54d14609223a0bcf69e06c882595eacf706df4e WHIRLPOOL cb6af4ff69da305d19ea57a106cf52523c3d3b61e93a7d0c6bd30b389e8ebf56b33654a33a9efa8bfa6c7ec9168ddaa80e030202f468575727355c3236e2613b
+AUX iprutils-2.4.7-tinfo.patch 569 SHA256 19ef925e52ee1f57ddb28d887155ee3ba1db7133c4dd97915ef567f55e5fe8c7 SHA512 2d489b2a5107fe16c0cbdbcaeb589249d27b7bf40633d9c830d7384053e0659690d2db974a2447a3383bf5af04cc94d64d0fcadc5b18432f57dbc69e338aa0fc WHIRLPOOL c64d1df7520727c05f60a37745ad0c6dd14df0c7e9f42a8d4f79fc2646c9f8b4806e663ea72416ec89e7b5e041ed257b92b7fa0b224e0232d794ecb847e0f0ae
+AUX iprutils-2.4.8-tinfo.patch 551 SHA256 57f07c430a7a4880536b20fef3fef1ad20a9e6c42572b30ac959cea32cecf31e SHA512 c03595b85e17edee22191c49bf8a3361b0c81a9f4dc50bf6d2393dc2be5a0a7c0c77c61de9d17c2e262d150fb0a896274c89442b4df29742532595448171fd5a WHIRLPOOL 75037c58159abb423f44b9b9118c7916c084a6dbf4ab6f25e52798f99e0dddcec406096be1382cb192b8113b2bdc840fc06b7efd770c057020c0badf862a44b3
+DIST iprutils-2.4.13.1.tar.gz 523921 SHA256 22e49f34fbd86e7c1d3505670dd1f6a46a98dd9e45ba8800caa4c18db561abb5 SHA512 1ae4b9370ab20c49d035e05dd3571b3e20595c160a3d173ffa2c2bbd2709f67c12ef08b3498ce5e9e6e0c8bf128ebc7d851f0b3c761b6293b3d475ad060148d8 WHIRLPOOL bc20ecfc43b83c2525733e6c4069963480eeb08910b35b2f002b807be33ad7e272a5c404120dea2f8d4d4859f585e5e01513f305c6ac5b1543ad44a4cb2312a4
+DIST iprutils-2.4.14.1.tar.gz 524534 SHA256 581403fbca17d4858383f8a6961c0e4aecb3f0f214a3680924238a94b9dc3ddf SHA512 74ef79332134746f6b9b6890dc04bb42573f154aecbc4314198847342a909a21c0d2982cc3c849b0d1ca191d08c3b1eb5d59a334f75140830cdf91d55438e8a8 WHIRLPOOL 4aae4ecd112515d2b5845d9d27d9d6a401f14d8cf39d647b2c1a298587f26bc8be445a4abedb228773273985853b5afa3aaaa4c8a42fcc094c3fdb0fada6fa6b
+DIST iprutils-2.4.7.tar.gz 467671 SHA256 bb3a729b35824428d9a7d4db0a25d5ec89ff1dfcc13dd3c62fe254dc56408dd0 SHA512 9e6fd37cb72ce1d092b02f1cdfeb9e97962007327f92f4d9dd2a755489dab3a5d51a459d2f256d8453de74935a5cee8f25f71a820d82347ae67aa72a89043a91 WHIRLPOOL 190a906a91114f56b434e9efb657f9b3ba8a6b145715934f20919dc18521ee696604403134d35a5196c0d8d823c32b5f9e08aaa40bacddebeb42e5dae7ceab02
+EBUILD iprutils-2.4.13.1.ebuild 1092 SHA256 5e4d6660e90f323bf816e9ab40e061e436f0a6771dce8056ccd60b45eb426f3d SHA512 437b31450bb48c43296f71034885fc33f0d0a94c8ed9386246df688a9085128f205b749e0f2d83b0b4a033e5e012a18d2f7566b5ee4e48722af088c052b3b8ec WHIRLPOOL c7b0ff5cb09bd98375580ee5e9ab23af037c8cd0e751e539f6ead8667213838c8b123250e60bd3c9b4f348f699786d2b69c9b64d0d6952813fd8b18941ee89dc
+EBUILD iprutils-2.4.14.1.ebuild 1042 SHA256 37b6a170f62e44f239e8b266288cefc6cd3023fe1f5718abe2e9610ef856e083 SHA512 04546e13ebf9cbc927fb152bce0193126220aa9ff64f4397a1d776885c245a9b8f3301191dcc9cbfc8d7a38d74d3c680e572e26315d2df47d6710be3fb90a541 WHIRLPOOL 759b0126a5f7747233ffeae751d67222898071567fbb6d58c95bc64ecc3750d5de0813a0d4192fba6971e795342d49a31a6bef49285d6e2f483006771dd24060
+EBUILD iprutils-2.4.7.ebuild 835 SHA256 832e52268d93c2f8956e84ae6cf7593d69383cb8cbdef2584a098e0e5b15a40e SHA512 5c9fad08625fabbd520aa02efd689fca7b1739e545fbca2d059ca4d0322b03009cb82df32bb09d118104b779bc8a1f9b43b76122eedb857e4d58d3871200ea1f WHIRLPOOL 4baf7c68aeb12bf24c2e3e3397214c5b58232ba3df7c94a15ded2bfe5bfbf82630101dd5402d34724263072f60b19b6f8b40148e67537637abc7f25cf19f7a27
+MISC ChangeLog 4854 SHA256 d1ebcbe3e436e8446513a0f6fcff84bbd26b809d6ce8947da9e8ddf90b5a1bab SHA512 39c4b9c40ee3088b56918cd2c6e65805fb064a43e422b7d3c342de8462188b9d695a2689d5555dc4e0295da044c951046d801b8031202b373319e7625a92ff24 WHIRLPOOL d8e6b541bab2ccf3ccb465bc1f8f9dbdd07a75ce35ce528af4e17b1267bf051fa0b0b871d092710b2e872b1271433791b3784d2559f1efa581ee7fd49fb7054e
+MISC ChangeLog-2015 7922 SHA256 db2135fdb5c168b33782c22af2f525a097a7c194ca6109daca01f4aed05b1c94 SHA512 caf79f5142ac399602096d9d2e0082af0bebda0c43d84e49961965f83c9e6c518ba30e2c8a13cd47d669d368a9f643ffec6e11a5a04d3b4d734e69b369c8a7e1 WHIRLPOOL 9b4eb4b328917507eeb72206fc6fc1c7808cbc525c9f367ae88ca3df2ece9e3f16936ace8923185c7f3f96aa3a023c8a967e6d8bdccc7f67fc876fb460211ab1
+MISC metadata.xml 338 SHA256 d0b8274bb77db54099c9ad311cf4aa40efbc5c986d1de6399e73ad21b8d1e290 SHA512 6323616f564434719f3466d45a7d0a41969ac75a8e6efb5b0225a915061f9a5e8698aa296633ec54f3708903b39ac2d8fe5275686a2bd76bd1ae8662b8dc7600 WHIRLPOOL cbf7baaed85fb06f514ec6a129669d1b000e984fa9c9ded33a6f0c730a63c4930e099d0fd1d23961a9649605a502e447e9cf8fcb4177ecccbfb6073bc191ce07
diff --git a/sys-fs/iprutils/files/iprdump b/sys-fs/iprutils/files/iprdump
new file mode 100644
index 000000000000..4bc9fdee64f4
--- /dev/null
+++ b/sys-fs/iprutils/files/iprdump
@@ -0,0 +1,16 @@
+#!/sbin/openrc-run
+
+depend() {
+ need logger iprinit
+}
+
+start() {
+ ebegin "Starting the ipr dump daemon"
+ start-stop-daemon --start --quiet --exec /sbin/iprdump
+
+}
+
+stop() {
+ ebegin "Stopping the ipr dump daemon"
+ start-stop-daemon --stop --name iprdump
+}
diff --git a/sys-fs/iprutils/files/iprdump-r1 b/sys-fs/iprutils/files/iprdump-r1
new file mode 100644
index 000000000000..ffa87333475a
--- /dev/null
+++ b/sys-fs/iprutils/files/iprdump-r1
@@ -0,0 +1,16 @@
+#!/sbin/openrc-run
+
+depend() {
+ need logger iprinit
+}
+
+start() {
+ ebegin "Starting the ipr dump daemon"
+ start-stop-daemon --start --quiet --exec /usr/sbin/iprdump -- --daemon
+
+}
+
+stop() {
+ ebegin "Stopping the ipr dump daemon"
+ start-stop-daemon --stop --name iprdump
+}
diff --git a/sys-fs/iprutils/files/iprinit b/sys-fs/iprutils/files/iprinit
new file mode 100644
index 000000000000..0b8a032c7f20
--- /dev/null
+++ b/sys-fs/iprutils/files/iprinit
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+
+depend() {
+ need logger
+}
+
+
+start() {
+ ebegin "Starting ipr initialization daemon"
+
+ if [ ! -d /sys/class/scsi_generic ] ; then
+ /sbin/modprobe sg
+ fi
+ start-stop-daemon --start --quiet --exec /sbin/iprinit -- --daemon
+}
+
+stop() {
+ ebegin "Shutting down ipr initialization daemon"
+ start-stop-daemon --stop --name iprinit
+}
diff --git a/sys-fs/iprutils/files/iprinit-r1 b/sys-fs/iprutils/files/iprinit-r1
new file mode 100644
index 000000000000..ef68305dbba3
--- /dev/null
+++ b/sys-fs/iprutils/files/iprinit-r1
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+
+depend() {
+ need logger
+}
+
+
+start() {
+ ebegin "Starting ipr initialization daemon"
+
+ if [ ! -d /sys/class/scsi_generic ] ; then
+ /sbin/modprobe sg
+ fi
+ start-stop-daemon --start --quiet --exec /usr/sbin/iprinit -- --daemon
+}
+
+stop() {
+ ebegin "Shutting down ipr initialization daemon"
+ start-stop-daemon --stop --name iprinit
+}
diff --git a/sys-fs/iprutils/files/iprupdate b/sys-fs/iprutils/files/iprupdate
new file mode 100644
index 000000000000..3c493149dbf9
--- /dev/null
+++ b/sys-fs/iprutils/files/iprupdate
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+depend() {
+ need logger iprinit
+}
+
+start() {
+ ebegin "Checking ipr microcode levels"
+ /sbin/iprupdate 2>&1 > /dev/null
+ eend $? "Failed to complete ipr microcode updates"
+}
diff --git a/sys-fs/iprutils/files/iprupdate-r1 b/sys-fs/iprutils/files/iprupdate-r1
new file mode 100644
index 000000000000..65a1db2418d5
--- /dev/null
+++ b/sys-fs/iprutils/files/iprupdate-r1
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+depend() {
+ need logger iprinit
+}
+
+start() {
+ ebegin "Checking ipr microcode levels"
+ /usr/sbin/iprupdate 2>&1 > /dev/null
+ eend $? "Failed to complete ipr microcode updates"
+}
diff --git a/sys-fs/iprutils/files/iprutils-2.4.11.1-basename.patch b/sys-fs/iprutils/files/iprutils-2.4.11.1-basename.patch
new file mode 100644
index 000000000000..941c4902d49e
--- /dev/null
+++ b/sys-fs/iprutils/files/iprutils-2.4.11.1-basename.patch
@@ -0,0 +1,10 @@
+--- a/iprconfig.c
++++ b/iprconfig.c
+@@ -29,6 +29,7 @@
+ #include <sys/wait.h>
+
+ #include <math.h>
++#include <libgen.h> /* basename() */
+
+ char *tool_name = "iprconfig";
+
diff --git a/sys-fs/iprutils/files/iprutils-2.4.11.1-migrate_cand.patch b/sys-fs/iprutils/files/iprutils-2.4.11.1-migrate_cand.patch
new file mode 100644
index 000000000000..86ae3af6af4e
--- /dev/null
+++ b/sys-fs/iprutils/files/iprutils-2.4.11.1-migrate_cand.patch
@@ -0,0 +1,11 @@
+--- a/iprconfig.c
++++ b/iprconfig.c
+@@ -16827,7 +16828,7 @@
+ }
+
+ if (!dev->array_rcd->migrate_cand) {
+- scsi_err(dev, "%s is not a candidate for array migration.\n");
++ scsi_err(dev, "%s is not a candidate for array migration.\n", args[0]);
+ return -EINVAL;
+ }
+
diff --git a/sys-fs/iprutils/files/iprutils-2.4.7-tinfo.patch b/sys-fs/iprutils/files/iprutils-2.4.7-tinfo.patch
new file mode 100644
index 000000000000..406f3efff2a7
--- /dev/null
+++ b/sys-fs/iprutils/files/iprutils-2.4.7-tinfo.patch
@@ -0,0 +1,14 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -30,7 +30,10 @@
+ AC_CHECK_LIB([menu], [new_menu], [], [AC_ERROR("libmenu not found.")])
+ AC_CHECK_LIB([panel], [show_panel], [], [AC_ERROR("libpanel not found.")])
+ AC_CHECK_LIB([ncurses], [curses_version], [],
+- [AC_ERROR("libncurses not found.")])
++ AC_CHECK_LIB([tinfo], [curses_version], [],
++ [AC_ERROR("libncurses not found.")]))
++AC_CHECK_LIB([ncurses], [wnoutrefresh], [],
++ [AC_ERROR("libncurses not found.")])
+
+ # Checks for header files.
+ AC_CHECK_HEADERS([fcntl.h libintl.h locale.h netinet/in.h nl_types.h \
diff --git a/sys-fs/iprutils/files/iprutils-2.4.8-tinfo.patch b/sys-fs/iprutils/files/iprutils-2.4.8-tinfo.patch
new file mode 100644
index 000000000000..29930b76387e
--- /dev/null
+++ b/sys-fs/iprutils/files/iprutils-2.4.8-tinfo.patch
@@ -0,0 +1,14 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -51,7 +51,10 @@
+
+ save_LIBS="$LIBS"
+ AC_CHECK_LIB([ncurses], [curses_version], [],
+- [AC_ERROR("libncurses not found.")])
++ AC_CHECK_LIB([tinfo], [curses_version], [],
++ [AC_ERROR("libncurses not found.")]))
++AC_CHECK_LIB([ncurses], [wnoutrefresh], [],
++ [AC_ERROR("libncurses not found.")])
+ AC_CHECK_LIB([form], [free_form], [], [AC_ERROR("libform not found.")])
+ AC_CHECK_LIB([m], [matherr], [], [AC_ERROR("libm not found.")])
+ AC_CHECK_LIB([menu], [new_menu], [], [AC_ERROR("libmenu not found.")])
diff --git a/sys-fs/iprutils/iprutils-2.4.13.1.ebuild b/sys-fs/iprutils/iprutils-2.4.13.1.ebuild
new file mode 100644
index 000000000000..f6bbf2a45ed9
--- /dev/null
+++ b/sys-fs/iprutils/iprutils-2.4.13.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools bash-completion-r1 eutils toolchain-funcs
+
+DESCRIPTION="IBM's tools for support of the ipr SCSI controller"
+SRC_URI="mirror://sourceforge/iprdd/${P}.tar.gz"
+HOMEPAGE="https://sourceforge.net/projects/iprdd/"
+
+SLOT="0"
+LICENSE="IBM"
+KEYWORDS="~ppc ~ppc64"
+IUSE="static-libs"
+
+IPRUTILS_DEPEND="
+ >=sys-libs/ncurses-5.4-r5:=
+ >=sys-apps/pciutils-2.1.11-r1
+"
+RDEPEND="
+ ${IPRUTILS_DEPEND}
+ virtual/logger
+ virtual/udev
+"
+DEPEND="
+ ${IPRUTILS_DEPEND}
+ virtual/pkgconfig
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.8-tinfo.patch
+ "${FILESDIR}"/${PN}-2.4.11.1-basename.patch
+ "${FILESDIR}"/${PN}-2.4.11.1-migrate_cand.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install () {
+ emake DESTDIR="${D}" \
+ bashcompdir=$(get_bashcompdir) install
+
+ newinitd "${FILESDIR}"/iprinit-r1 iprinit
+ newinitd "${FILESDIR}"/iprupdate-r1 iprupdate
+ newinitd "${FILESDIR}"/iprdump-r1 iprdump
+
+ prune_libtool_files
+}
diff --git a/sys-fs/iprutils/iprutils-2.4.14.1.ebuild b/sys-fs/iprutils/iprutils-2.4.14.1.ebuild
new file mode 100644
index 000000000000..778b5d7ea8d1
--- /dev/null
+++ b/sys-fs/iprutils/iprutils-2.4.14.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools bash-completion-r1 eutils toolchain-funcs
+
+DESCRIPTION="IBM's tools for support of the ipr SCSI controller"
+SRC_URI="mirror://sourceforge/iprdd/${P}.tar.gz"
+HOMEPAGE="https://sourceforge.net/projects/iprdd/"
+
+SLOT="0"
+LICENSE="IBM"
+KEYWORDS="~ppc ~ppc64"
+IUSE="static-libs"
+
+IPRUTILS_DEPEND="
+ >=sys-libs/ncurses-5.4-r5:=
+ >=sys-apps/pciutils-2.1.11-r1
+"
+RDEPEND="
+ ${IPRUTILS_DEPEND}
+ virtual/logger
+ virtual/udev
+"
+DEPEND="
+ ${IPRUTILS_DEPEND}
+ virtual/pkgconfig
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.8-tinfo.patch
+ "${FILESDIR}"/${PN}-2.4.11.1-basename.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install () {
+ emake DESTDIR="${D}" \
+ bashcompdir=$(get_bashcompdir) install
+
+ newinitd "${FILESDIR}"/iprinit-r1 iprinit
+ newinitd "${FILESDIR}"/iprupdate-r1 iprupdate
+ newinitd "${FILESDIR}"/iprdump-r1 iprdump
+
+ prune_libtool_files
+}
diff --git a/sys-fs/iprutils/iprutils-2.4.7.ebuild b/sys-fs/iprutils/iprutils-2.4.7.ebuild
new file mode 100644
index 000000000000..564d077fbed4
--- /dev/null
+++ b/sys-fs/iprutils/iprutils-2.4.7.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools eutils toolchain-funcs
+
+DESCRIPTION="IBM's tools for support of the ipr SCSI controller"
+SRC_URI="mirror://sourceforge/iprdd/${P}.tar.gz"
+HOMEPAGE="https://sourceforge.net/projects/iprdd/"
+
+SLOT="0"
+LICENSE="IBM"
+KEYWORDS="ppc ppc64"
+IUSE="static-libs"
+
+DEPEND="
+ >=sys-libs/ncurses-5.4-r5
+ >=sys-apps/pciutils-2.1.11-r1
+ virtual/udev
+"
+RDEPEND="
+ ${DEPEND}
+ virtual/logger
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.4.7-tinfo.patch
+
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install () {
+ default
+
+ newinitd "${FILESDIR}"/iprinit-r1 iprinit
+ newinitd "${FILESDIR}"/iprupdate-r1 iprupdate
+ newinitd "${FILESDIR}"/iprdump-r1 iprdump
+
+ prune_libtool_files
+}
diff --git a/sys-fs/iprutils/metadata.xml b/sys-fs/iprutils/metadata.xml
new file mode 100644
index 000000000000..80c2bd5108e9
--- /dev/null
+++ b/sys-fs/iprutils/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ppc@gentoo.org</email>
+ <name>Gentoo Linux PowerPC Development</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">iprdd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/jdiskreport-bin/Manifest b/sys-fs/jdiskreport-bin/Manifest
new file mode 100644
index 000000000000..2e2206767e46
--- /dev/null
+++ b/sys-fs/jdiskreport-bin/Manifest
@@ -0,0 +1,9 @@
+DIST jdiskreport-1_2_5.zip 613585 SHA256 30efef5f5e75ed6f51a9a3973711960c5eccae503edcf00f728948d6b19b12d2 SHA512 d23641610a9fba6b7b2c5d529244229e807d89bd2b4c339e59522547f3b45a32415d6819a4ee8d5bd4a8789ea4610887428bfd5a5a4c56b11911da035a560993 WHIRLPOOL 8c2f13ca29e4184117cd20a684b8e9d7ab60abeeaab260b5d8dbeb5430013543c8ca872814c2c23da5f74e0e932ff6da4e287e867a556918fb4620d7dde779ff
+DIST jdiskreport-1_3_0.zip 650433 SHA256 abc308ef722023db5384cb98d251e4e458ab4f794c4fc2138a86e177d2c1f1ed SHA512 9d57e7db810117a27c1d8d2aef40113652f25055e3512500fdf5f8806b1d68f4be8b4231e281d690108301afde3cc6b70f061c71d3fafef06689ca3228dd44ea WHIRLPOOL a39b9843a5a1e456e621b50c4967be2905755addcff0cf80e79baea88efbb628d6f1a48537ac9f1bedb2d87d9f0a067d8e921ea5f87619c4227da9d12c4a16b4
+DIST jdiskreport-1_4_1.zip 864613 SHA256 a834d3b50bcba0711caff7284103c16025c03057ea6ebfc34a3ac1a5f9fcb534 SHA512 c1e17bdaab739561ae46475d69805e18be271a0d41b555e981cde59091d6c46fe3cf6775bdd992200edbb4646b7a04003a6b67bfedc18161952a20e47b18ea38 WHIRLPOOL 07266fc401ce0c0d74cf30b96974119c3277bdad0971f9ca66347d2d15052e0cba58072572b4b8615762c72fcffd5a0a71df876454dd0d1683ce06502328f513
+EBUILD jdiskreport-bin-1.2.5-r1.ebuild 657 SHA256 f1542b5650325295eb2c0e2c126e288a9cba7cb5506d6a81442f83a1905430c2 SHA512 5e94bcc6854fd35be214e1b0d743dc5e8a9e1dd9e1cc6605a8b98681065a4869416019a42cac4ca7a3a4b5147754951c06f5f5772f830f3214348c68af04cf1a WHIRLPOOL 892d32f7f7c0d8d6e548726cf8f1f991e1ae5bb9a5a7d7d7fd66167ac8f185aaf56845ba271f376e607129075495665d665ad16ec07540d84735de1c042d1c4f
+EBUILD jdiskreport-bin-1.3.0.ebuild 657 SHA256 f1542b5650325295eb2c0e2c126e288a9cba7cb5506d6a81442f83a1905430c2 SHA512 5e94bcc6854fd35be214e1b0d743dc5e8a9e1dd9e1cc6605a8b98681065a4869416019a42cac4ca7a3a4b5147754951c06f5f5772f830f3214348c68af04cf1a WHIRLPOOL 892d32f7f7c0d8d6e548726cf8f1f991e1ae5bb9a5a7d7d7fd66167ac8f185aaf56845ba271f376e607129075495665d665ad16ec07540d84735de1c042d1c4f
+EBUILD jdiskreport-bin-1.4.1.ebuild 657 SHA256 5e2944bc5a11f1732fa7f403daa70e9fcbc2d33fca516af8db1c58b98ef62bd9 SHA512 297b8db83f118f37e79981ba32a8884923cf73ed662fe51c2b1c3641f8dd9e32f526b59f90d32a24b6994a9058e47aa3f43f1defbced835a2c0d4510e2b69ebb WHIRLPOOL 33e2f401bd2e1dfe0e0b816fd423e4d67ca3d14f98cdcbe13031ec5a18a68a18c684b20591713d637a222b6a58ff2a48d1a3d4aac8a54c57877042ed1c0e50e7
+MISC ChangeLog 2986 SHA256 f1c32fc0bf73e4858ab4642f228c6950298abea9374afc31614396c176538f8c SHA512 c1a9aeaabc749650b54592aa3a8501d525f82180f8be33816c8a75125cc50140bfcabad66f37eb30f8903192292eeddfc103d096bc99c05beda3c5f57b5de8ad WHIRLPOOL 36310931fc4516c9ed65801d047be368171a44619e6731e90192f3796b46d4de0a5bfe3fb98bcae98a00d3b7d947c9a9567a6f9aaa0e86f0f7964dd3e6250c8b
+MISC ChangeLog-2015 1998 SHA256 864fcf85d9902183cd992b15c56dd036877584875839fa573974203ca3ce5e9e SHA512 91e921337bd6013f46759acd08972b1e3caeec0ff80e475f8b17967c05a3bb2efec850cce27302e33d952524686292acede796849b3f4bea048786450fdf069a WHIRLPOOL 9f011ed0265d7b14fce2182995c16ab6b00e95d1630738b12d913d310b3489dbecc8084cd517f95ff9c6d917aba707e038ea66822dce6b4c12c14d62b7ae8892
+MISC metadata.xml 449 SHA256 b0f37878fffd3eec6a8a32ef72b47e3ae02cda5ed8ae2aac652d2f5348dcf6fd SHA512 d0192d871b568d54810f2d2d973666fc309f8855c18b53e89631fb9495770978bfc1b583094151e6dc0916444b6594f3c588db5a070762b3c5b844848752673c WHIRLPOOL f7648d16d89b274322c0d16d6dd7523953a9e3a46ba90285311561c1422e38ef8985181fa2acd159997d26be61fc3d483be333c64d2e1fd9e30d0054fc2caf45
diff --git a/sys-fs/jdiskreport-bin/jdiskreport-bin-1.2.5-r1.ebuild b/sys-fs/jdiskreport-bin/jdiskreport-bin-1.2.5-r1.ebuild
new file mode 100644
index 000000000000..050e68827747
--- /dev/null
+++ b/sys-fs/jdiskreport-bin/jdiskreport-bin-1.2.5-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit java-pkg-2
+
+MY_PN=${PN/-bin/}
+MY_PV=${PV//\./_}
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="JDiskReport helps you to understand disk drive usage"
+HOMEPAGE="http://www.jgoodies.com/freeware/jdiskreport/"
+SRC_URI="http://www.jgoodies.com/download/${MY_PN}/${MY_P}.zip"
+
+LICENSE="freedist"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=">=virtual/jre-1.4"
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+src_install() {
+ java-pkg_newjar ${MY_PN}-${PV}.jar
+ java-pkg_dolauncher ${MY_PN}
+
+ dodoc README.txt RELEASE-NOTES.txt || die
+}
diff --git a/sys-fs/jdiskreport-bin/jdiskreport-bin-1.3.0.ebuild b/sys-fs/jdiskreport-bin/jdiskreport-bin-1.3.0.ebuild
new file mode 100644
index 000000000000..050e68827747
--- /dev/null
+++ b/sys-fs/jdiskreport-bin/jdiskreport-bin-1.3.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit java-pkg-2
+
+MY_PN=${PN/-bin/}
+MY_PV=${PV//\./_}
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="JDiskReport helps you to understand disk drive usage"
+HOMEPAGE="http://www.jgoodies.com/freeware/jdiskreport/"
+SRC_URI="http://www.jgoodies.com/download/${MY_PN}/${MY_P}.zip"
+
+LICENSE="freedist"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=">=virtual/jre-1.4"
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+src_install() {
+ java-pkg_newjar ${MY_PN}-${PV}.jar
+ java-pkg_dolauncher ${MY_PN}
+
+ dodoc README.txt RELEASE-NOTES.txt || die
+}
diff --git a/sys-fs/jdiskreport-bin/jdiskreport-bin-1.4.1.ebuild b/sys-fs/jdiskreport-bin/jdiskreport-bin-1.4.1.ebuild
new file mode 100644
index 000000000000..287bb83f39ad
--- /dev/null
+++ b/sys-fs/jdiskreport-bin/jdiskreport-bin-1.4.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit java-pkg-2
+
+MY_PN=${PN/-bin/}
+MY_PV=${PV//\./_}
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="JDiskReport helps you to understand disk drive usage"
+HOMEPAGE="http://www.jgoodies.com/freeware/jdiskreport/"
+SRC_URI="http://www.jgoodies.com/download/${MY_PN}/${MY_P}.zip"
+
+LICENSE="freedist"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="app-arch/unzip"
+RDEPEND=">=virtual/jre-1.6"
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+src_install() {
+ java-pkg_newjar ${MY_PN}-${PV}.jar
+ java-pkg_dolauncher ${MY_PN}
+
+ dodoc README.txt RELEASE-NOTES.txt || die
+}
diff --git a/sys-fs/jdiskreport-bin/metadata.xml b/sys-fs/jdiskreport-bin/metadata.xml
new file mode 100644
index 000000000000..3486ef84ce48
--- /dev/null
+++ b/sys-fs/jdiskreport-bin/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+ <longdescription lang="en">
+ JDiskReport enables you to understand how much space the files and
+ directories consume on your disk drives, and it helps you find obsolete
+ files and folders.
+ </longdescription>
+</pkgmetadata>
diff --git a/sys-fs/jfsutils/Manifest b/sys-fs/jfsutils/Manifest
new file mode 100644
index 000000000000..03ec73c84931
--- /dev/null
+++ b/sys-fs/jfsutils/Manifest
@@ -0,0 +1,7 @@
+AUX jfsutils-1.1.15-linux-headers.patch 318 SHA256 53df9e9c304bd0f13e12719aa69b4b825684aa0ebccc50aecceda37b282ad596 SHA512 1fd097f403e0ffd434b433fcbf20664166b7ed9b9878f81719d45747fc96249ebac25f8afc9f1f6e532bfac90fe98f1474bb616da3c83fd69cc57d2fe3c11815 WHIRLPOOL 51e0111ffeb9cee342c98d3b628c09708613027fec58b232360b3e451a2675b0d408b50e4d5485ebb1774c47f647a42f36ef012b9fa751b31e1b8c493597cf22
+AUX jfsutils-1.1.15-sysmacros.patch 276 SHA256 fd1a4e794a3bf2ebdb4b81f582e147655d70aadd59689aacea0ccc32c6381a28 SHA512 3f6472cdfc706e32cc2cefdf673450cb98e81c24c16dea47cacd95f83d75461c8750a9f4dc73ac30782d91e2b7814efdc7e736ef30bffb6cc8ceaf6dba8d51d5 WHIRLPOOL dd010f5ed3fca76476d46e6a9719e79302d70cd4efd1d47a49831f4069423df9bf3b7aa0f964282ecb211be713827de8c9a7de9ffea73831895de35a2384438b
+DIST jfsutils-1.1.15.tar.gz 539148 SHA256 244a15f64015ce3ea17e49bdf6e1a0fb4f9af92b82fa9e05aa64cb30b5f07a4d SHA512 fa8ba7f4997471da3e6ea7239564f3395046222cfbb2b10e37b24ad0bd107b7eadbb51ce328d89d193034360b4035ca5e0e5b0b416a74483d7a2c0a2b9c65858 WHIRLPOOL 8a62c037601999f616041250e06adc10fceb48fc80b319003383ac08b2e1fbb2aaaca781848be2845d6e99f05d1d7a884f9af89e2a6236d64cc4387be02222e8
+EBUILD jfsutils-1.1.15.ebuild 908 SHA256 1a5c516a092ba3e453fe72d9041245e1bd999e6a8d2acb4d8143a11681b0d340 SHA512 652a8c67d456fe24de4894e50d1ac18085afc3c7f3cd572544b1a6baebea67d44468bc7ab33fb3f686c3508f8abed10c673d8fd3a914126f84ad91cc663757df WHIRLPOOL 44096ee39ec1589999bf28691585b52535ee3ae2975f78352e8b989c5ba733c6707713752d91b5094e199a58b297e1bb54c532643a04dc7e6c8e63b11d64f27d
+MISC ChangeLog 3261 SHA256 e2988e3db6e851d36c998930646ce0bfe74fa51b2affd8aa4845c81e86df2742 SHA512 dc84cda865d438dbe26df481c7be4f68ba27749a3dec53866539d966b8d5337f54abc4ed191f62bb4c144947847bef9eb46ceab1ee65863926eba85bcd13ddc0 WHIRLPOOL ccea5fcd82e79e29d1a42aa0ba3e1b77d878c6c8fc079913f4e23d62479d291cf5c019beb57184e77d2633d61a84e548d84e3afe6e2a3ea67fcfea2ebdb4834b
+MISC ChangeLog-2015 12014 SHA256 ed306ed58c113aaa080e2df320ec63241b64a35e7565b9b3342fb353998c531a SHA512 31111db49c10ecf2d264bd9e2cf997e7d2a3e0893dd2d781ab39d00ef0bf8bf5611dc02284d81f44cc6169e93194ec3ff7f2d6490c3a3a269aeee7829f0b8db8 WHIRLPOOL 2d7d3fbdbb6a7457d7539dfc63b39624a92273d60a32eb21dd4bf05b355139f22197f8342cdde32b77815e1df021ce4bd2abd951effd8cbf2bc57c403c21385b
+MISC metadata.xml 420 SHA256 1f1b8f3ff1601c2354646c86fe8d76e80be52c16e6083e5b6509e8d3c2e807ce SHA512 15c5545e60302be536d0f09b4529a76d13d57e8bbd45be1294798bbf11247c8a7148849b5e5481eab968007d1dcb1f43db6297ed752901a5b564136b8bbf1a11 WHIRLPOOL 68891bc4cf56624734e2f72d938a2aca1943868ff0d084df81afda8575fcba9990ac6c15a3c3072904431f0fbac26b15f30f592ccd398599b3a928a666c80499
diff --git a/sys-fs/jfsutils/files/jfsutils-1.1.15-linux-headers.patch b/sys-fs/jfsutils/files/jfsutils-1.1.15-linux-headers.patch
new file mode 100644
index 000000000000..db3803ea5d53
--- /dev/null
+++ b/sys-fs/jfsutils/files/jfsutils-1.1.15-linux-headers.patch
@@ -0,0 +1,13 @@
+https://sourceforge.net/p/jfs/bugs/286/
+https://bugs.gentoo.org/448844
+
+--- a/libfs/devices.h
++++ b/libfs/devices.h
+@@ -42,6 +42,7 @@
+
+ struct stat;
+
++#include <stdint.h>
+ int ujfs_get_dev_size(FILE *, int64_t * size);
+ int ujfs_rw_diskblocks(FILE *, int64_t, int32_t, void *, int32_t);
+ int ujfs_flush_dev(FILE *);
diff --git a/sys-fs/jfsutils/files/jfsutils-1.1.15-sysmacros.patch b/sys-fs/jfsutils/files/jfsutils-1.1.15-sysmacros.patch
new file mode 100644
index 000000000000..82f9d632ac53
--- /dev/null
+++ b/sys-fs/jfsutils/files/jfsutils-1.1.15-sysmacros.patch
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/580056
+
+--- a/libfs/devices.c
++++ b/libfs/devices.c
+@@ -30,6 +30,10 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+
++#if HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
++
+ #ifdef HAVE_SYS_MOUNT_H
+ #ifdef HAVE_SYS_PARAM_H
+ #include <sys/param.h>
diff --git a/sys-fs/jfsutils/jfsutils-1.1.15.ebuild b/sys-fs/jfsutils/jfsutils-1.1.15.ebuild
new file mode 100644
index 000000000000..d0b41cae9f48
--- /dev/null
+++ b/sys-fs/jfsutils/jfsutils-1.1.15.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="IBM's Journaling Filesystem (JFS) Utilities"
+HOMEPAGE="http://jfs.sourceforge.net/"
+SRC_URI="http://jfs.sourceforge.net/project/pub/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh ~sparc x86"
+IUSE="static"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-linux-headers.patch #448844
+ epatch "${FILESDIR}"/${P}-sysmacros.patch #580056
+}
+
+src_configure() {
+ # It doesn't compile on alpha without this LDFLAGS
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ use static && append-ldflags -static
+ econf --sbindir=/sbin
+}
+
+src_install () {
+ default
+
+ rm -f "${ED}"/sbin/{mkfs,fsck}.jfs || die
+ dosym /sbin/jfs_mkfs /sbin/mkfs.jfs
+ dosym /sbin/jfs_fsck /sbin/fsck.jfs
+}
diff --git a/sys-fs/jfsutils/metadata.xml b/sys-fs/jfsutils/metadata.xml
new file mode 100644
index 000000000000..048c190bdfca
--- /dev/null
+++ b/sys-fs/jfsutils/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ </maintainer>
+ <longdescription>
+ Utilities for working with IBM's journaled file system
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">jfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/jmtpfs/Manifest b/sys-fs/jmtpfs/Manifest
new file mode 100644
index 000000000000..1fbf6736c09e
--- /dev/null
+++ b/sys-fs/jmtpfs/Manifest
@@ -0,0 +1,5 @@
+DIST jmtpfs-0.5.tar.gz 142914 SHA256 c0cacc4751c586a3b2b0fcd9c98dae4810a5d44f3eb9d2870868a15eeb696883 SHA512 1997d202199af59ae2138701855864e4dab624fff4feac08ea98e3e4ed6c39e4181d8f9fec35db0e83570f48de204f3d00e1b0d2244ec677f77a99b1dc9c38b3 WHIRLPOOL 041ab7f515abe66bd6141a085e13151c8754b18cb490ebd6ced7f7400e2f94047a4c4ff5044c9db5b7a0b08bcdad220f19636df8997acce11ceb4daa170a11f5
+EBUILD jmtpfs-0.5.ebuild 523 SHA256 499bb04cda597a59022be092bae6d98e149ae4bc614b1b60ed1c92da085da3d2 SHA512 2789599a26fc8f0d349face029f5876fdd33e2a9e2236dbb4e6b4cc21ff3a3b48e63576f2abb66b58122cdc5216815f54c348272b88e8737e9ef2b62c5c15384 WHIRLPOOL 5692a481cbfdc4cf426507a5f363890ad9b3cebbbee9f2d971fc376efe08b569a9b21b1b2f9f5b101d5b39cdbc9041179ed034c0e3ec091cfdb1a12150237347
+MISC ChangeLog 2167 SHA256 377a3243f3834e31696785b641ce46161fd279814445a9e99e4de530ca9dbfb2 SHA512 acd19f7404a9dc79c3e8f7067b7af8e99f318cfec6ddec2c95845d955357932cfdfdb30c28d7361c93e0772e61364e9469ff90758e47648e3e2701aa2d8da8f8 WHIRLPOOL 3ffe55af15c324ae72a67afdbbb9fb9524a95a2e05ff48544f0aa4d09b550c4b6bb6851cb50203bae038a0a9a0b34e8f72f9ebc2457f1bcc469ef8d333df4429
+MISC ChangeLog-2015 340 SHA256 c9f58f95246543c7bae47afaa31f947311d6426cd36b3f7c7b8507a8bf1969a2 SHA512 cec139f5ea631d49ea3b68efe31013dc46558972b81cef6a6be9d63a1a05e3c8eeda4d04d4ec3cee660c3ac4c4dd6449c18969dae6db8e7a09f9150785ffae0f WHIRLPOOL c4f49ddaf96b2fe4d68eba3dbf012e69d67279434b46bac079e189a5d48f7315fb99c446b86f08ec5071f01498b423585b06d0a03662cd5531b4167689f4114d
+MISC metadata.xml 298 SHA256 7388d7acbabaeca7ff4051455697c6e111637f59b061a0a44756dbf15b14ad50 SHA512 0164dff12990e4ab1cf98d21baf3d3f02354aec3827244112f1f6a7f02769d3d7210ffb0c190ddd5b193921df44237bb0e1a9a2cfc860fe5b3fd3be5ab6ab922 WHIRLPOOL 6e1badcfd6d8729e0c0e6c810dd1a7625000b5cb05c3308a339df35c8234f935be63bacd74f100cf425380276081094a0eb64f6f398598a362a2286f3b7f176b
diff --git a/sys-fs/jmtpfs/jmtpfs-0.5.ebuild b/sys-fs/jmtpfs/jmtpfs-0.5.ebuild
new file mode 100644
index 000000000000..d913faaf4893
--- /dev/null
+++ b/sys-fs/jmtpfs/jmtpfs-0.5.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools
+
+DESCRIPTION="A FUSE and libmtp based filesystem for accessing MTP devices"
+HOMEPAGE="https://github.com/JasonFerrara/jmtpfs"
+SRC_URI="${HOMEPAGE}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=media-libs/libmtp-1.1.6
+ sys-fs/fuse
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+"
+
+DOCS=(AUTHORS NEWS README)
+
+src_prepare() {
+ eautoreconf
+}
diff --git a/sys-fs/jmtpfs/metadata.xml b/sys-fs/jmtpfs/metadata.xml
new file mode 100644
index 000000000000..f268713ff9a5
--- /dev/null
+++ b/sys-fs/jmtpfs/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jer@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">JasonFerrara/jmtpfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/ldapfuse/Manifest b/sys-fs/ldapfuse/Manifest
new file mode 100644
index 000000000000..f862b3bb063f
--- /dev/null
+++ b/sys-fs/ldapfuse/Manifest
@@ -0,0 +1,5 @@
+DIST ldapfuse-1.0.tar.xz 76024 SHA256 8ef6d5d423bf798fcd1361a1c14f4972b264eae331f6683503ec76910c660f27 SHA512 ea9af757d69fe9931ac745039d75a52d3e590c16737a71e6d9a6a8654b5514a1c86e26925f5cbe117c5bedcef8888ce69bec3bec2c02fe4dd233fee7f3118e7f WHIRLPOOL fd10ef9152fa2c1ebcf9bff26dcfaff0efba6ac4b9613290240a0ab009676fe19012d3db2e7d9cbe4fab6709c42150d8797bf183772f18917a961dd481b2f15c
+EBUILD ldapfuse-1.0-r1.ebuild 520 SHA256 9b36e51fe725496f9f66058511e10d32a7616dc8250814fc40944a920e5a7dc1 SHA512 2ea0f9f19bd85992212df57f17e1680ca56705154697267907cc4e5f42e4a86ccd3416ae2ccdb04b45eb94502644ab610ca27c95d21a905eac817e14a772fd34 WHIRLPOOL 8caf4194a687f4702472cfb4716703b94339fd38e7c290d4f60d2d2cf2117a941c9c253b8dd6fb88902cedf8e7dfb12c68be731302cf13765f6dbd6b3bf0f8f1
+MISC ChangeLog 2630 SHA256 2b776ae38e26c1ad633e946f4feedb96f30eb7e4d2c1f03ae5f04e272d45f105 SHA512 018b77dab1a01ab48ac4200c9159da38cfcf2e1ca3530d2c0c7022155abc1d31ad311d66e6c06b4fb99441c5765e2403db240e5e8950892064e10adf10f81b26 WHIRLPOOL 5e6eb7537325d30ed514af43f27053cc78c1ea9f6d4a0a8d3f0ee759e2f28a51f5d7336f96d7ac58ab3ab561a3341841b7e2afe468dd1eaf2fa32a122c5ea554
+MISC ChangeLog-2015 562 SHA256 63f06358da9085dcffb330cfbc2db380174ed31af24b5555416f31ac0052ebcf SHA512 386cd52fc334f003b1bd7a6cb47030371ca4562e73c29c907c19b4ad970ffdbbac55eaa30d16735fbdddb7f64464cc7299b9c9b13a3f533fd188e834ee445eef WHIRLPOOL 27b5195e04aa57d495aa8453934b542e13240645dea596d61053e4be43ccc11bb5bb037a61edf0154a6671cf555ec78633edbbecf62628119da4df3bf25b7f2b
+MISC metadata.xml 245 SHA256 23a2b284661b2d49c9dfc23a5d16d28c8465313dfa8d7241886978843e3a785b SHA512 6b8638887d57ae5e5377f3d1db187607bb64ede9f633367aa9ba9548638630ef738c420f67aa97989611e1ff5885062fbd4246ad3fb59c9021ec770b822de0ca WHIRLPOOL 98a46a82173a829ab91e6a5de9e0315ad9467f35346d030ff1aec3f08c4358e202454c99a1aab24d8926a619bf186217dd028b2bce1120f3f6fc6f91dff343cc
diff --git a/sys-fs/ldapfuse/ldapfuse-1.0-r1.ebuild b/sys-fs/ldapfuse/ldapfuse-1.0-r1.ebuild
new file mode 100644
index 000000000000..c6a326959d2a
--- /dev/null
+++ b/sys-fs/ldapfuse/ldapfuse-1.0-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="A virtual filesystem for FUSE which allows navigation of an LDAP tree"
+HOMEPAGE="https://sourceforge.net/projects/ldapfuse/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ net-nds/openldap
+ sys-fs/fuse
+ >=sys-libs/libhx-3.12"
+
+DEPEND="
+ ${RDEPEND}
+ app-arch/xz-utils
+ virtual/pkgconfig"
+
+DOCS=( doc/changelog.txt doc/rfcs.txt )
diff --git a/sys-fs/ldapfuse/metadata.xml b/sys-fs/ldapfuse/metadata.xml
new file mode 100644
index 000000000000..73284e371767
--- /dev/null
+++ b/sys-fs/ldapfuse/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="sourceforge">ldapfuse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/lde/Manifest b/sys-fs/lde/Manifest
new file mode 100644
index 000000000000..55b59513d8ef
--- /dev/null
+++ b/sys-fs/lde/Manifest
@@ -0,0 +1,6 @@
+AUX lde-2.6.1-no-shadowing.patch 1296 SHA256 50496fe95c73cf4c188df7d93907ae30baad8ad590ea107f365edefdd9e74ba7 SHA512 71545fc978fc5ef792fe61d5495e5690d50f6a9e44b1a48b835738cb0b05737db311fe10851b90655373e2d5cb5f7e47a4befcc40db5170092e28243fa99b32b WHIRLPOOL 15c67b3b99db605e209d1f81a6a571b1a9c15aae6890726236d38c814cf042cd8a8165acff0061aac11f154b125253fc787524ae33ab26e635cf4768a053ad17
+DIST lde-2.6.1.tar.gz 598050 SHA256 d987555145a05d7b8c9f65e3f0f9754da1c29cc9933597d1765117b7ef3b0694 SHA512 b77baa9998a3d45493b6949a81df81dc5c0ee27060108bbae29548af09595aa260fdfcd12e958ea8ecf12805d97c157f5aad147137d6b42d806529ac6a3ab015 WHIRLPOOL 633adea5b8f685486bb002acfa8fa556fa589c01c300b1b66ae3742c6989f6cb976120e1edd6e968eedb84e500ccb761f85593e72e3db9f9f55267be4a2c1333
+EBUILD lde-2.6.1-r1.ebuild 584 SHA256 d966506cc29a603f5e2a07d9eda0fd88506338411b2cd6e3f0d22bba4fad00e0 SHA512 42cd34a8b8b77c9ac457390ab349e0ed07b7f34620d2bd13dcce52f93639b2aa30a5aad1c9e9674854d8fd10b3dfff3bd3f1b589708661751fdc1aaf7eb6ccc4 WHIRLPOOL f85c9367bc9bdacaa6ee0bc50733d75db6733b453d64acbeca2043d71e0fe995905aed8df3a46a3a73068963f3eafc0166cdf7b9d0a1c9d13aa9fe39fd4c2e63
+MISC ChangeLog 2949 SHA256 b26d4f75c1ef483f2a19aad09b654147f3f301d3afb0d230844dc7dfb4b6aaa0 SHA512 6e0d44d1459ca95719308a247dd5538c74fe5b73691a44d68606ba1ba196ad14081dc0210c321d945f891c80935a2c3785afcdc6641d09d9dbf7d1aedeeae23e WHIRLPOOL fa8655349807c3acca30883e4c7d2f87068c93bdde9a00d82ac5a5c75b7a3885d511a852f7a961387eed959cb4efeb3903b9b16a691ab91510f108daa18e4481
+MISC ChangeLog-2015 916 SHA256 86770c348725757f1ca5cf22cf3873b69110315d1f5d64fdf7b13baaa595bf17 SHA512 ed7068f446c75a229af206e6b726a6753dc4a8f220d158c979641298b1361495a705649037c57ce5f236e85a1387f3740bc7530ebc582a9bab31fe9408ceb746 WHIRLPOOL 130854de956f34dbf1967e58dc5c28ea132b20d78e2fbe8bbfb00f3523c3bce3cb118f848ae07978b3095c56b42f6f506ea68d67b14595e37a19319246a31357
+MISC metadata.xml 323 SHA256 6b5d7456faddec095a174957b7caad0561cfa1af7894271f96934097e432890f SHA512 7da6b75e5be951e2227e74cd49fb6a6f4c2be3770021989d9fcc43a816138ddbaa2841f1a28316e8312fc624b5ee2124320a212379eda33ecace5f0a83293d4f WHIRLPOOL 01320cb4b3b4e7125d32958ee6dc94bd2fb8dd3e19d08a6420f0c0324ef2f7422f6184de9ac489d65a1a255206e35c3c37477202f6eb091a75894af76e194e3a
diff --git a/sys-fs/lde/files/lde-2.6.1-no-shadowing.patch b/sys-fs/lde/files/lde-2.6.1-no-shadowing.patch
new file mode 100644
index 000000000000..586bbf3e8768
--- /dev/null
+++ b/sys-fs/lde/files/lde-2.6.1-no-shadowing.patch
@@ -0,0 +1,39 @@
+rename daylight to avoid shadowing the daylight function and pissing off gcc
+
+http://bugs.gentoo.org/141881
+
+--- lde/src/swiped/cnews/getdate.y
++++ lde/src/swiped/cnews/getdate.y
+@@ -24,7 +24,7 @@
+
+ static int timeflag, dateflag, dayflag, relflag;
+ static time_t relsec, relmonth;
+- static int hh, mm, ss, merid, daylight;
++ static int hh, mm, ss, merid, foo_daylight;
+ static int dayord, dayreq;
+ static int month, day, year;
+ static int ourzone;
+@@ -68,19 +68,19 @@
+ {hh = $1; mm = $3; merid = $4;}
+ | NUMBER ':' NUMBER NUMBER
+ {hh = $1; mm = $3; merid = 24;
+- daylight = STANDARD; ourzone = $4%100 + 60*$4/100;}
++ foo_daylight = STANDARD; ourzone = $4%100 + 60*$4/100;}
+ | NUMBER ':' NUMBER ':' NUMBER
+ {hh = $1; mm = $3; ss = $5; merid = 24;}
+ | NUMBER ':' NUMBER ':' NUMBER MERIDIAN
+ {hh = $1; mm = $3; ss = $5; merid = $6;}
+ | NUMBER ':' NUMBER ':' NUMBER NUMBER
+ {hh = $1; mm = $3; ss = $5; merid = 24;
+- daylight = STANDARD; ourzone = $6%100 + 60*$6/100;};
++ foo_daylight = STANDARD; ourzone = $6%100 + 60*$6/100;};
+
+ zone: ZONE
+- {ourzone = $1; daylight = STANDARD;}
++ {ourzone = $1; foo_daylight = STANDARD;}
+ | DAYZONE
+- {ourzone = $1; daylight = DAYLIGHT;};
++ {ourzone = $1; foo_daylight = DAYLIGHT;};
+
+ dyspec: DAY
+ {dayord = 1; dayreq = $1;}
diff --git a/sys-fs/lde/lde-2.6.1-r1.ebuild b/sys-fs/lde/lde-2.6.1-r1.ebuild
new file mode 100644
index 000000000000..30c88f3438ed
--- /dev/null
+++ b/sys-fs/lde/lde-2.6.1-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="ext2fs and minix disk editor for linux"
+HOMEPAGE="http://lde.sourceforge.net/"
+SRC_URI="mirror://sourceforge/lde/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="sys-libs/ncurses:0="
+DEPEND="
+ ${RDEPEND}
+ dev-util/yacc"
+
+S="${WORKDIR}/${PN}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-no-shadowing.patch"
+)
+
+DOCS=( WARNING README TODO COPYING )
+
+RESTRICT="test"
+
+src_install() {
+ dosbin "${PN}"
+ newman "doc/${PN}.man" "${PN}.8"
+ einstalldocs
+}
diff --git a/sys-fs/lde/metadata.xml b/sys-fs/lde/metadata.xml
new file mode 100644
index 000000000000..bf4c7f8ac56b
--- /dev/null
+++ b/sys-fs/lde/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="sourceforge">lde</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/lessfs/Manifest b/sys-fs/lessfs/Manifest
new file mode 100644
index 000000000000..c70e5a16250d
--- /dev/null
+++ b/sys-fs/lessfs/Manifest
@@ -0,0 +1,7 @@
+DIST lessfs-1.5.13.tar.gz 506221 SHA256 eba0ec05d4586d8741776dc96ca9369a9544fb8b8998d5c692da331ddf4ba7f2 SHA512 7143b7e1df8e059184d003be6519cac323fa035a6d9005b4e007504328d58624232ff9a494ecf11d445977f9138e7c41492d7fd30721065e5293927f85585604 WHIRLPOOL 2ef56b0057178678e280b65d458aa6c216c16e84b9524be8bfe66c2da0778f4ca89dd991dc4644f31fbb432621c4e08575d8191ccfc3f8197834a5096440d813
+DIST lessfs-1.7.0.tar.gz 514667 SHA256 d5782ab88ca79bf8f7d790d440f30e3979ec8ecad2a8eae75d33260bfadc8711 SHA512 a868b28159fbcd2e7672607d46e3007c7b959bd8c8880b6c98cdab6c61fd104ac222e156f543c2b3e9f9d9fe2f1879c2988ee80605946f03b646481e7c6f15d1 WHIRLPOOL bee790252b5a0ce5b71621c65e5454334ef55f003e55c7b7a96acafec11281606c50820e7d3ed68675255953b2f479881d329e351e79684a057a6e6433036ee8
+EBUILD lessfs-1.5.13.ebuild 1218 SHA256 13c486fb5fa08ed4ca741e54560f719c28240f6790773b0d048a1283993a4b4d SHA512 ef9ff6d16f0397fded5f6eeb21039e760485f73f61579f7a1345228ae6a94ebdad1c4a98a92d008585ceb16cab54999bfd8b40eb06476c9049542dfc4e1e7d52 WHIRLPOOL 4d33cb7f4c63334b8dac6ce16e5215f91c2a47c89814adb3ec456666b9c341c57c3f420c863fe7a3e7f054fb58784af24b258076b5ac90fe4255f5c79ed772d3
+EBUILD lessfs-1.7.0.ebuild 1281 SHA256 ea668ebb5f93d59de253aa7899ac4a3fc0ecb3db591970ba50c7033b1d15efb8 SHA512 e930c0ebb872b82702a495dd62fb3782dc64b10afce925f34311d80e00ebecfde203da2f171102ad39035849da1043ac69c0480c2c43461b7803c18e340c1100 WHIRLPOOL 99bb9932ad873ce918cef6bb88ebf35313544224f15037f0a4f665ad10c63fdb8469ec30fc3d386f2799cd380a2cdeff5627397fb7eadcf0acdd3c165d6bde62
+MISC ChangeLog 2223 SHA256 b35024c88f8c4380cd712d601dbbd9b996fca0cc60fc0591ef598da2e2f12003 SHA512 45d0fc5610ef3774392111b11e9ca7e7f104ad2be7d8cff580548e7478e072076d797b548d5a10738994387fdb0cf62283782c9ffaa499c9c5047f67621d0342 WHIRLPOOL d109eb32d17051fd258cb2a22aee4697ce6533fc9e0a376d75770f4522a6ff4ceb362943210cbc02499f152400a3c0c3c9584ceae2f130fdbc4aefe9f1599e7b
+MISC ChangeLog-2015 10233 SHA256 f571ddf01146f6b511cbca19f68581b506f2331fce6f3c485de088ad4e91d35b SHA512 80bb6ba2d1f1f39a9a091de5e9b08bc32e798f5de7d8b6e0d7b0f1f8dbd8ba4ccd0a02958b4c87d334bf29d3e5a9870d7c4cdb1f07d2b9750fab923f1fa7eb0b WHIRLPOOL de8902d0137d97b8dba235fc6cf0d491b20434e4c733bce95b6302412bab77328c8b1e2d1f88766a35233bc8e396893b81eed49479a34d53aab43f1611d16797
+MISC metadata.xml 1505 SHA256 9d9f6101ccb4b85bee3e7daa33a9b420ac316558c7f80087fcaea506e899a07d SHA512 d9a93c34bbfc60ab5e3287367613ae66529e8a25abe7c89983fd547e862262c268a14e4de96a45949b451b9d00e1dc8b733d65e9b1ad93ff2b67b4f82a87f77e WHIRLPOOL 4ba540aa41e1392f4d1aaf16c4ad932d6cce5d81f52c8e1cc9b39327db0c0da0f499cc88a404cd87d9ca811faae7d1a8ef99c8c71f9c8b36152d9082a33c085c
diff --git a/sys-fs/lessfs/lessfs-1.5.13.ebuild b/sys-fs/lessfs/lessfs-1.5.13.ebuild
new file mode 100644
index 000000000000..5c82d93ff3bd
--- /dev/null
+++ b/sys-fs/lessfs/lessfs-1.5.13.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo
+
+MY_PV="${PV/_/-}"
+MY_P="${PN}-${MY_PV}"
+DESCRIPTION="A high performance inline data deduplicating filesystem"
+HOMEPAGE="http://www.lessfs.com"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/${MY_P}/${MY_P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="berkdb crypt debug filelog memtrace lzo"
+
+DEPEND="berkdb? ( sys-libs/db )
+ >=dev-db/tokyocabinet-1.4.42
+ app-crypt/mhash
+ >=sys-fs/fuse-2.8.0
+ crypt? ( dev-libs/openssl )
+ lzo? ( dev-libs/lzo )"
+
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+DOC_CONTENTS="Default configuration file: /etc/${PN}.cfg.
+ If your host is a client consult the following configuration
+ file: /usr/share/doc/${PF}/${PN}.cfg-slave.*"
+
+src_configure() {
+ econf \
+ $(use_enable debug) $(use_enable debug lckdebug) \
+ $(use_enable filelog) $(use_with crypt crypto) \
+ $(use_with lzo) $(use_enable memtrace) \
+ $(use_with berkdb berkeleydb)
+}
+
+src_install () {
+ emake DESTDIR="${D}" install
+ dodoc ChangeLog FAQ README.*
+ insinto /etc
+ newins examples/lessfs.cfg-master ${PN}.cfg
+ dodoc examples/lessfs.* etc/lessfs.*
+ readme.gentoo_create_doc
+}
diff --git a/sys-fs/lessfs/lessfs-1.7.0.ebuild b/sys-fs/lessfs/lessfs-1.7.0.ebuild
new file mode 100644
index 000000000000..2ac2752cb109
--- /dev/null
+++ b/sys-fs/lessfs/lessfs-1.7.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo
+
+MY_PV="${PV/_/-}"
+MY_P="${PN}-${MY_PV}"
+DESCRIPTION="A high performance inline data deduplicating filesystem"
+HOMEPAGE="http://www.lessfs.com"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/${MY_P}/${MY_P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="berkdb crypt debug filelog memtrace lzo snappy"
+
+DEPEND="berkdb? ( sys-libs/db )
+ crypt? ( dev-libs/openssl )
+ lzo? ( dev-libs/lzo )
+ snappy? ( app-arch/snappy )
+ >=dev-db/tokyocabinet-1.4.42
+ app-crypt/mhash
+ >=sys-fs/fuse-2.8.0"
+
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+DOC_CONTENTS="Default configuration file: /etc/${PN}.cfg.
+ If your host is a client consult the following configuration
+ file: /usr/share/doc/${PF}/${PN}.cfg-slave.*"
+
+src_configure() {
+ econf \
+ $(use_enable debug) $(use_enable debug lckdebug) \
+ $(use_enable filelog) $(use_with crypt crypto) \
+ $(use_with lzo) $(use_enable memtrace) \
+ $(use_with berkdb berkeleydb) \
+ $(use_with snappy)
+}
+
+src_install () {
+ emake DESTDIR="${D}" install
+ dodoc ChangeLog FAQ README.*
+ insinto /etc
+ newins examples/lessfs.cfg-master ${PN}.cfg
+ dodoc examples/lessfs.* etc/lessfs.*
+ readme.gentoo_create_doc
+}
diff --git a/sys-fs/lessfs/metadata.xml b/sys-fs/lessfs/metadata.xml
new file mode 100644
index 000000000000..ce642aedde3e
--- /dev/null
+++ b/sys-fs/lessfs/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>hwoarang@gentoo.org</email>
+ <name>Markos Chandras</name>
+ </maintainer>
+ <use>
+ <flag name="filelog">Enable the ability to log to a file instead of syslog</flag>
+ <flag name="memtrace">Enable leefs to create a report regarding the memory allocation. This feature should be used for debugging purposes to avoid performance degradation</flag>
+ <flag name="snappy">Enable snappy compression using the <pkg>app-arch/snappy</pkg> library</flag>
+ </use>
+ <longdescription lang="en">
+Data deduplication (often called “intelligent compression” or “single-instance storage”) is a method of reducing storage needs by eliminating redundant data. Data deduplication is often used for backup purposes and for virtual machine image storage. lessfs can determine if data is redundant by calculating a unique (192 bit) tiger hash of each block of data that is written. When lessfs has determined that a block of data needs to be stored it first compresses the block with LZO or QUICKLZ compression. The combination of these two techniques results in a very high overall compression rate for many types of data. Multimedia files like mp3, avi or jpg files can not be compressed by lessfs when they are only stored once on the filesystem.
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">lessfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/libeatmydata/Manifest b/sys-fs/libeatmydata/Manifest
new file mode 100644
index 000000000000..c4245b11ef6a
--- /dev/null
+++ b/sys-fs/libeatmydata/Manifest
@@ -0,0 +1,11 @@
+AUX libeatmydata-105-undpkg.patch 379 SHA256 29a159d5a0f11f1a18ae04303103d1a45cf79456272edf06be3ea07de32cba7e SHA512 b6b56e90305937eebe6a043f40c904a1facbf480d9f63a3c59d8bd96150c810bb2cb4aaffafc3d02f4c01179eeec5cce2f5b285d0db6fb7664ea5b2fa64f2ec5 WHIRLPOOL b681b45ce7e7ee3c743327ab4ef85dbe17f845f4b6c55081ac44be74d00bc9718ed12a8035b98828aeb1413ab7a34030d8bb9550e0334edfd357816869a3371b
+DIST libeatmydata-105.tar.gz 419427 SHA256 bdd2d068b6b27cf47cd22aa4c5da43b3d4a05944cfe0ad1b0d843d360ed3a8dd SHA512 fb2ac1400d5e3c44bfc952c72f29a4c7234edf5b756a9602ad822c57fbc9813c35d2da9492e2982abf81e0826d278da2d31ee1865e806754e0b387ad699367d4 WHIRLPOOL 52e3e4db47b279d654450cacc76e24d2138f35299d55c81fd8760a1e054450d9d0e21ec3163ddce5116a868e0ea04783c014ca13480f8140e3a422b6480a83e2
+DIST libeatmydata-65.tar.gz 408813 SHA256 8a16c1ff04aeceed1891e2772728359d3368347e1807bed60fc6147d8968d5c1 SHA512 b2e3ed9c67b6ae9b0e5918b114bf0fb6e59dda3bff9b9331a8c280243822d4c77f35e9b08138ea65a74c893cc2bd67677bbf28b03bc61f011b24dd39d171adc2 WHIRLPOOL 51347727497073130ab4ea18d963a8d98c3e950a56c612f0485f205908b1b97f10f6e0afdad2a3d1c448bde2132426fc0a173a6140009a26a3a8db581b13460e
+DIST libeatmydata-82.tar.gz 407977 SHA256 0b675f58069f912727cee5eb75f9ff1a6a8300fe7e3fe4fc6bdd03b7c2c15b29 SHA512 882b2464c26d99ea0b01a2f1171dddb637ac0b3509c18416da4e0199f515ff23c43a7bb5eb641bc3447a2c6be06c261260713565c3e4c4b988995d09f52d623c WHIRLPOOL 5f6decc9e2a8de05379bd16874b2fb8865b52b115686c11cb0d0126b2ace822e0722cf0e2a7810e9f573fb1845dac00db991ecdbef10e98f49a1a5e4a7705153
+EBUILD libeatmydata-105-r1.ebuild 721 SHA256 8de6cee47477ec1b4f326db02ce883217b3cc7c9485160bb891204958d24b59a SHA512 bac43be9c7e44e78d936eb7e098b25a0de8d558acfa6528504f85005a6939f074b796a4d499cadfa6989cc224ea5241271a3d75a78223ecf63fca44dbe7b619d WHIRLPOOL bb58efeb6a94fce66b865e63cef00e453a73c941c3605ee9c849bc5c4a715607bdc7ed7a9696343e071fc80f7d29dc1475b2fc5298d958690beb1445ef1f50b5
+EBUILD libeatmydata-65.ebuild 649 SHA256 8f8dce20ffddbebc53bacd6c1cf387c32c81cf93cfcc0de5ecf7912240c9f596 SHA512 e118b378c9be5994d98c53983492f21ae14ce68df273a0d7c9848ca0d9d2b739af334e215f19b54b474e19aa7666cbc1fc676b15f8c3d3e291e06fed41708688 WHIRLPOOL b1fe66c1c9e320f5e11984f6478377b4e47a7c792b7f2513117f44e67d74cb2c31824f5d922082d9d90a05ea64e24da65a12fb4337ce120ccbde2ecd5e821144
+EBUILD libeatmydata-82-r1.ebuild 633 SHA256 5df15e4fcd6979adfcf0ea5ca77724803bff87c654fcfae53abd67f503283f7b SHA512 0da34a098b3b030954b585bd422808c160993c3f9a906297424e2e2868c13b661276732555bd3bead745fe77271f4d8bd7b9fbe09fcf4e27977d4ac8fe4c96c8 WHIRLPOOL 4b9237675c7ef26141e2bee898886e5826da2009547f4a18d250dd56a63be4e39183afdf4a158b5c890b4d791ba28523437352ca6f9653bd82db92ca61d30b2a
+EBUILD libeatmydata-82.ebuild 638 SHA256 3b585aa26f60150ab0afab8fc3271df31090b3f6868e3b189c6534d3cdbec46e SHA512 c464486f81fe3db2531a54664cfe6d88a2a4445f6f0a39353ec2cca102b7d37323752180a313177a944336572566ab9f5d5c4053ea38f787ace4211a0d7603ec WHIRLPOOL d355a482537aaaab3215528a7e48a246fcdcd816db8bd75288dc7f5f7898350aeb04b3bb5b66c2defd29bfd440c80cff8f32748c38e551917c934b3a61c8b051
+MISC ChangeLog 2407 SHA256 3f7b7ad7a0416d55d089ff6a0b19d6cc5e8a4a1de5cefa3fd33e489ae7940f75 SHA512 7d0daea0706914571a45dddc8bd72cd35694da21e22081effb1d09b9ca1fa2b1246bab35acfd1e0d87eabd527ad700ffac8fe831a4b1e4a2793b893737dfd32e WHIRLPOOL 2167895c9540fc170ec3a9e83aad7612b987a21493a951c0bdd799b1b689f882e0092a03eba3a8f031f6c459a1868c28bbd56cae92b22c41836401a0ad616e53
+MISC ChangeLog-2015 1279 SHA256 3a97b8b00ba58f83a3285eb5688fbe57cbde175d35987f8d5fa9c02aa91ce9a2 SHA512 b16681579c5fccd0920fe4934a33b463f2e4f32fa183f11b859caafe5983bc154ce8724f56d9fc3f291c88d8e815f124c1ecfcba9450bf3089a9ece9e975715a WHIRLPOOL 7f2d167b0e2127d9921aa22bd166722c83ad984ae956542b82e5da0580e320bbc293637fb7a905337635973e5c41ae4084b183f873d382f9360bdf826fb16689
+MISC metadata.xml 512 SHA256 a3bacb11ae315aa7e545997d68eac16d23e6173444ca85e1fb28fe520860b226 SHA512 4b436b230dfafd7554ffe9ef222fda5aa4e4132768f945c34cde4fed9359f2782e0f371617ecf52b55339f278fbd51f28fe58bf50ec600bef8644c82f594d363 WHIRLPOOL bdd6c1f451e4d7787e3efeddd578af2ea42f2289511d1221fa4b0d22ddddaa928044cee1bd1a2e62a68896b04a320be3e22e3edb4abc9c61710d4bbcf5f862e8
diff --git a/sys-fs/libeatmydata/files/libeatmydata-105-undpkg.patch b/sys-fs/libeatmydata/files/libeatmydata-105-undpkg.patch
new file mode 100644
index 000000000000..3ffd698c7ddd
--- /dev/null
+++ b/sys-fs/libeatmydata/files/libeatmydata-105-undpkg.patch
@@ -0,0 +1,14 @@
+Don't rely on debian's way to multilib/multiarch.
+
+https://bugs.gentoo.org/550344
+diff --git a/eatmydata.in b/eatmydata.in
+index 40468db..aa143f0 100644
+--- a/eatmydata.in
++++ b/eatmydata.in
+@@ -17,5 +17,4 @@
+
+-export `dpkg-architecture|grep DEB_BUILD_MULTIARCH`
++shlib="@libexecdir@/eatmydata.sh"
+
+-shlib="/usr/lib/$DEB_BUILD_MULTIARCH/eatmydata.sh"
+ if [ -f "$shlib" ]; then
diff --git a/sys-fs/libeatmydata/libeatmydata-105-r1.ebuild b/sys-fs/libeatmydata/libeatmydata-105-r1.ebuild
new file mode 100644
index 000000000000..b2469bdc105a
--- /dev/null
+++ b/sys-fs/libeatmydata/libeatmydata-105-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools-multilib eutils
+
+DESCRIPTION="LD_PRELOAD hack to convert sync()/msync() and the like to NO-OP"
+HOMEPAGE="https://launchpad.net/libeatmydata/"
+SRC_URI="https://launchpad.net/${PN}/trunk/release-${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+# sandbox fools LD_PRELOAD and libeatmydata does not get control
+# bug/feature in sandbox?
+#DEPEND="test? ( dev-util/strace )"
+RESTRICT=test
+
+DEPEND="sys-apps/sed"
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-105-undpkg.patch
+)
+
+multilib_src_install_all() {
+ prune_libtool_files --all
+
+ dodoc AUTHORS README
+}
diff --git a/sys-fs/libeatmydata/libeatmydata-65.ebuild b/sys-fs/libeatmydata/libeatmydata-65.ebuild
new file mode 100644
index 000000000000..127851189ff9
--- /dev/null
+++ b/sys-fs/libeatmydata/libeatmydata-65.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+inherit eutils
+
+DESCRIPTION="LD_PRELOAD hack to convert sync()/msync() and the like to NO-OP"
+HOMEPAGE="https://launchpad.net/libeatmydata/"
+SRC_URI="https://launchpad.net/${PN}/trunk/release-${PV}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+# sandbox fools LD_PRELOAD and libeatmydata does not get control
+# bug/feature in sandbox?
+#DEPEND="test? ( dev-util/strace )"
+RESTRICT=test
+
+DEPEND="sys-apps/sed"
+RDEPEND=""
+
+src_install() {
+ default
+
+ prune_libtool_files --all
+ dodoc AUTHORS README
+}
diff --git a/sys-fs/libeatmydata/libeatmydata-82-r1.ebuild b/sys-fs/libeatmydata/libeatmydata-82-r1.ebuild
new file mode 100644
index 000000000000..624cc4199b35
--- /dev/null
+++ b/sys-fs/libeatmydata/libeatmydata-82-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools-multilib eutils
+
+DESCRIPTION="LD_PRELOAD hack to convert sync()/msync() and the like to NO-OP"
+HOMEPAGE="https://launchpad.net/libeatmydata/"
+SRC_URI="https://launchpad.net/${PN}/trunk/${P}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+# sandbox fools LD_PRELOAD and libeatmydata does not get control
+# bug/feature in sandbox?
+#DEPEND="test? ( dev-util/strace )"
+RESTRICT=test
+
+DEPEND="sys-apps/sed"
+RDEPEND=""
+
+multilib_src_install_all() {
+ dodoc AUTHORS README
+}
diff --git a/sys-fs/libeatmydata/libeatmydata-82.ebuild b/sys-fs/libeatmydata/libeatmydata-82.ebuild
new file mode 100644
index 000000000000..c62be8f843ba
--- /dev/null
+++ b/sys-fs/libeatmydata/libeatmydata-82.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils
+
+DESCRIPTION="LD_PRELOAD hack to convert sync()/msync() and the like to NO-OP"
+HOMEPAGE="https://launchpad.net/libeatmydata/"
+SRC_URI="https://launchpad.net/${PN}/trunk/${P}/+download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+
+# sandbox fools LD_PRELOAD and libeatmydata does not get control
+# bug/feature in sandbox?
+#DEPEND="test? ( dev-util/strace )"
+RESTRICT=test
+
+DEPEND="sys-apps/sed"
+RDEPEND=""
+
+src_install() {
+ default
+
+ prune_libtool_files --all
+ dodoc AUTHORS README
+}
diff --git a/sys-fs/libeatmydata/metadata.xml b/sys-fs/libeatmydata/metadata.xml
new file mode 100644
index 000000000000..77dcbe5e8b01
--- /dev/null
+++ b/sys-fs/libeatmydata/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+ <longdescription>
+ eatmydata: library and utilities designed to disable fsync and friends.
+ Used as LD_PRELOAD hack to hijack fsync() and open(O_SYNC) calls.
+ </longdescription>
+ <upstream>
+ <remote-id type="launchpad">libeatmydata</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/libfat/Manifest b/sys-fs/libfat/Manifest
new file mode 100644
index 000000000000..fc7c86b964e6
--- /dev/null
+++ b/sys-fs/libfat/Manifest
@@ -0,0 +1,5 @@
+DIST libfat-0.3a.tar.gz 384923 SHA256 42f7d74df7e516d602ae70576be9d829f2e217dd2245ac1ea7b26bb7b300734a SHA512 c9257df5f9dab7ed99e83d6ca7cd6df4dca658a33062d69be8c48a6e38a39d3f7fec592a7c6c86b22816d681942647578566fbf457a5ebe08e029689d38099cc WHIRLPOOL 64b2f5badbce0e70835dc1dc3dc5edc2e9b11ff2cb5d4c554442ae0efb20e5ce5239c253ab30d447a4798d88a937293927180046e24b3d8bb7fc0ba625e5ea32
+EBUILD libfat-0.3a.ebuild 474 SHA256 97424173edba809a7845f2ebbaa0c5de31fc68a9eb956570ca96c2b8cdcf935a SHA512 5f2f282529706679cd75c1a61b7817fc52ced2417e244b8a52bcd40e112c86fb1cff2558bd6145af2ce28fda1531eeebf4f5951390365de58bd5b03c98217a00 WHIRLPOOL cdf32ce816157f4206e35e41166f825783e45447aaafaf80f516a28c3d9eab7ab473558c1b58cb478e7da702a5cf2b58c9b43e7d2f3aa79263a2420bdbc3c33c
+MISC ChangeLog 2169 SHA256 147f197eea2b075fe79b22665e821626dd8206aac32df5d8d5622c757c5ed799 SHA512 b867ebd80d9770e43b74ff52e6f5d71842bba3ab95b9ebe31ef0ca1985ebdcc71fbdc0a87604acaee30ee9840d0822e1cd8f0cae59395cb33d50bec085dbad64 WHIRLPOOL 0db7eeb54cba71e07dc4ccf3ec59308f0c9697d13066a60b2193d900cdff8a6e55463d36bb851212c991c74c38ed46fbadd674a8accfdcbe50bb3675e4467bb2
+MISC ChangeLog-2015 367 SHA256 5b1942f1e7afb76c93443af05cf9e3c68dc53e33d3ea1a59c929c2196fcee2dc SHA512 56e172a1fdc1ed35192f64c172cad7c03554c0ab2dba412ec9a1a0bb1605f3556b01a9727c6d7987ff941c6211f4be26a661ff3a3b6c41fd43c448036b8ce1f8 WHIRLPOOL 8a36b5a0dd81b9e47231c4746bb4f419972380c706ca7664d28af70c68926bb21bbdcfe40fcd0fa162e3efe32699d8bbe9e3a2a8a47e7b763424ad30c6d6cd91
+MISC metadata.xml 353 SHA256 fbc461c8d95963ae303b1361e6e8639109095c2c2630f24580d7e95b47a331f7 SHA512 c0f24d0802ca0ecc38433a730bd018d6de11960d3695b94891b1625e11388f7bab861a7aaad28d353c785744a8696777e3740a7e4ac185461aa65dccef4d54a8 WHIRLPOOL dc9e23135db5a9fa5056fc448fbf86d81e9839a92fc7d85553f47a26b93fe4d9474259fd6210254a109465aab27b6697c8eaf78929e2c80e86f6ebe5fa6b1001
diff --git a/sys-fs/libfat/libfat-0.3a.ebuild b/sys-fs/libfat/libfat-0.3a.ebuild
new file mode 100644
index 000000000000..7cbf73e62388
--- /dev/null
+++ b/sys-fs/libfat/libfat-0.3a.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+DESCRIPTION="Support library to access and manipulate FAT12 / FAT16 / FAT32 file systems"
+HOMEPAGE="http://libfat.sourceforge.net"
+SRC_URI="mirror://sourceforge/libfat/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/glib:2
+ sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S=${WORKDIR}/fuse-umfuse-fat-0.1
diff --git a/sys-fs/libfat/metadata.xml b/sys-fs/libfat/metadata.xml
new file mode 100644
index 000000000000..8c503f1a5141
--- /dev/null
+++ b/sys-fs/libfat/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>vapier@gentoo.org</email>
+ <description>make whatever changes you want</description>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">libfat</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/loop-aes/Manifest b/sys-fs/loop-aes/Manifest
new file mode 100644
index 000000000000..3d51c0fee19c
--- /dev/null
+++ b/sys-fs/loop-aes/Manifest
@@ -0,0 +1,9 @@
+DIST loop-AES-v3.7j.tar.bz2 326818 SHA256 67ede839d4cac657359c39b05eac46f6991054768a7e1096bef5b92edb3b8aba SHA512 e1b59680680e2b40bb42cad9f1e89a344c7bfd0ee01fdc26151e9edea64b5111744588bc05c672de16c76ae0a3e4d6a8d4c4c9c09709a9f93bfc62a2f64ba7c7 WHIRLPOOL a3798edc3f1393ddf97aeada84c1c5a6e74b8cef94e72629774c4db70001206d5cd429df61035a215131f0281ef284469751eefad1f7ee3fd7cf24153b57077d
+DIST loop-AES-v3.7k.tar.bz2 327457 SHA256 3299629ecbcdd54ad703e77eaab395f8a2e46d4a83a30a299e55b549d4d7e44d SHA512 91144642818f81343a1326759a087cc2e9dbf6c3594472d1d508ce811215d5215d673681ad8d563c8c6b2e9203b0e10314829988932b2f9d3382cb1a13d7cacf WHIRLPOOL 9dcfc27d2b598cf6cb1125411d54fb9625e744f441dc75d553ad35ef80c8535bb4cef84613aaa5fe3d5c680243f39ed1654db8e0ea14d9e707d9f8531cc08893
+DIST loop-AES-v3.7l.tar.bz2 328646 SHA256 47fdeb3150f65e15d6c7a44ee6c6b2311a8186163ba5e47a008d59dda38ee31a SHA512 368a9186e3fb08e281facafbcdc7a37ccfea701c2b34564319e80d8b379e4c7d58f5b6416218616b6597ee01a2f5160491b9c9758fbb69a1f8b17c2b2382af94 WHIRLPOOL a7cc5481f776d60c1c7a8484beecd670c668a1eeecca9ee051d2ee4c6a6d6272c2b871b1c1a6ef2a6ffb5f257118a119c1c8ed29600cc4a8acec8449a4ce106a
+EBUILD loop-aes-3.7j.ebuild 2048 SHA256 4e963acc614d9bc3220b39fce3d8e9d7003e8794bcc6fccc5795bb066d85b5c9 SHA512 617c2a7662706be9778537e308cb74bd54e8c5cc5e5b3552fc4bc794f3c7d4f26ff60cea8a6944184993195d189f1944a3dcc619005f2055ae3d113e4a9d4605 WHIRLPOOL 7a0caf81407d487683847173a8667258980704a3f05eb11d57eec13fe5599503ff8b3ca533a034f51d456b3112f83caafac84448a8877b0a6f0a4160d0766d9d
+EBUILD loop-aes-3.7k.ebuild 2048 SHA256 4e963acc614d9bc3220b39fce3d8e9d7003e8794bcc6fccc5795bb066d85b5c9 SHA512 617c2a7662706be9778537e308cb74bd54e8c5cc5e5b3552fc4bc794f3c7d4f26ff60cea8a6944184993195d189f1944a3dcc619005f2055ae3d113e4a9d4605 WHIRLPOOL 7a0caf81407d487683847173a8667258980704a3f05eb11d57eec13fe5599503ff8b3ca533a034f51d456b3112f83caafac84448a8877b0a6f0a4160d0766d9d
+EBUILD loop-aes-3.7l.ebuild 2048 SHA256 4e963acc614d9bc3220b39fce3d8e9d7003e8794bcc6fccc5795bb066d85b5c9 SHA512 617c2a7662706be9778537e308cb74bd54e8c5cc5e5b3552fc4bc794f3c7d4f26ff60cea8a6944184993195d189f1944a3dcc619005f2055ae3d113e4a9d4605 WHIRLPOOL 7a0caf81407d487683847173a8667258980704a3f05eb11d57eec13fe5599503ff8b3ca533a034f51d456b3112f83caafac84448a8877b0a6f0a4160d0766d9d
+MISC ChangeLog 3465 SHA256 4ad15ca54148e992c5a6ab6224839f0802efdc76110e56b4afa14afbe978ae56 SHA512 7bd4a9582e5bfcac3310e18f3d258062789cbb57fb13913ea1b80fb13e0565fa5b8968500047e403cf3db61e0f1ea4801f25d3ff1c1ebaa7fe77579de50065d2 WHIRLPOOL 2a128f294ff3f2e06874f5b7bdb138b8dba35a272892a78002f09f6573d3b2bfe023a2cf8f8dfb71994ccd84d95f1162a842950da77dd866e5ec8883ce2b51f2
+MISC ChangeLog-2015 14658 SHA256 3ac157d592589c78c762cbd38e67521c9ad100edfbb3a580576331aee5cc5d70 SHA512 6b201712082fbf637fe0b65460cd7726720deb34695309c8f1cfa0d78f5fa149237892a3db61bea707fe40ed6293b03dbdec3b3d93017a8cf208c71ea6ba0672 WHIRLPOOL 17923eb1d197d355fed2324f68103f6ec4f0910f471e00bd377bbd2f939118a63b9e784505f21117bda5161da85ba22d56e6d73658fbe49bf8eb36e2c02622cb
+MISC metadata.xml 633 SHA256 083e5767a9d4f0f2b24dfedb30e5b0e6bb9c5f4d7d67da51f6ceebe42728cc63 SHA512 75e4ed0408d32a91012b03de7ac1f4ac4aac8a20ccc73ad612a9fe79e9046d79eee189e40692c13822e219b8ee35800b04fe36c88168be24248222c6ddd6193c WHIRLPOOL c310d3437118d7e6b09a7f6e4e4e0a3a5235f3351c85f2ff827c873cf7b3f279e0f02d9b7f59798d4b92a2401d44bf8dff170b310ab9b4b1768af7a6fe490424
diff --git a/sys-fs/loop-aes/loop-aes-3.7j.ebuild b/sys-fs/loop-aes/loop-aes-3.7j.ebuild
new file mode 100644
index 000000000000..b548d0430472
--- /dev/null
+++ b/sys-fs/loop-aes/loop-aes-3.7j.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit linux-mod
+
+MY_P="${PN/aes/AES}-v${PV}"
+
+DESCRIPTION="Linux kernel module to encrypt disk partitions with AES cipher"
+HOMEPAGE="http://loop-aes.sourceforge.net/loop-AES.README"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
+IUSE="cpu_flags_x86_aes extra-ciphers keyscrub cpu_flags_x86_padlock"
+
+DEPEND="app-crypt/loop-aes-losetup"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ CONFIG_CHECK="!BLK_DEV_LOOP"
+ MODULE_NAMES="loop(block::tmp-d-kbuild)"
+ BUILD_TARGETS="all"
+
+ BUILD_PARAMS=" \
+ V=1 \
+ LINUX_SOURCE=\"${KERNEL_DIR}\" \
+ KBUILD_OUTPUT=\"${KBUILD_OUTPUT}\" \
+ USE_KBUILD=y MODINST=n RUNDM=n"
+ use cpu_flags_x86_aes && BUILD_PARAMS="${BUILD_PARAMS} INTELAES=y"
+ use keyscrub && BUILD_PARAMS="${BUILD_PARAMS} KEYSCRUB=y"
+ use cpu_flags_x86_padlock && BUILD_PARAMS="${BUILD_PARAMS} PADLOCK=y"
+
+ if use extra-ciphers; then
+ MODULE_NAMES="${MODULE_NAMES}
+ loop_blowfish(block::tmp-d-kbuild)
+ loop_serpent(block::tmp-d-kbuild)
+ loop_twofish(block::tmp-d-kbuild)"
+ BUILD_PARAMS="${BUILD_PARAMS} EXTRA_CIPHERS=y"
+ fi
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc README
+ dobin loop-aes-keygen
+ doman loop-aes-keygen.1
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "For more instructions take a look at examples in README at:"
+ einfo "'${EPREFIX}/usr/share/doc/${PF}'"
+ einfo
+ einfo "If you have a newer Intel processor (i5, i7), and you use AES"
+ einfo "you may want to consider using the aes-ni use flag. It will"
+ einfo "use your processors native AES instructions giving quite a speed"
+ einfo "increase."
+ einfo
+
+ ewarn
+ ewarn "Please consider using loop-aes-losetup package instead of"
+ ewarn "util-linux[loop-aes], it will enable all loop-aes services"
+ ewarn "without patching util-linux package"
+ ewarn
+ ewarn "In future only loop-aes-losetup will be available in portage"
+ ewarn
+}
diff --git a/sys-fs/loop-aes/loop-aes-3.7k.ebuild b/sys-fs/loop-aes/loop-aes-3.7k.ebuild
new file mode 100644
index 000000000000..b548d0430472
--- /dev/null
+++ b/sys-fs/loop-aes/loop-aes-3.7k.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit linux-mod
+
+MY_P="${PN/aes/AES}-v${PV}"
+
+DESCRIPTION="Linux kernel module to encrypt disk partitions with AES cipher"
+HOMEPAGE="http://loop-aes.sourceforge.net/loop-AES.README"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
+IUSE="cpu_flags_x86_aes extra-ciphers keyscrub cpu_flags_x86_padlock"
+
+DEPEND="app-crypt/loop-aes-losetup"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ CONFIG_CHECK="!BLK_DEV_LOOP"
+ MODULE_NAMES="loop(block::tmp-d-kbuild)"
+ BUILD_TARGETS="all"
+
+ BUILD_PARAMS=" \
+ V=1 \
+ LINUX_SOURCE=\"${KERNEL_DIR}\" \
+ KBUILD_OUTPUT=\"${KBUILD_OUTPUT}\" \
+ USE_KBUILD=y MODINST=n RUNDM=n"
+ use cpu_flags_x86_aes && BUILD_PARAMS="${BUILD_PARAMS} INTELAES=y"
+ use keyscrub && BUILD_PARAMS="${BUILD_PARAMS} KEYSCRUB=y"
+ use cpu_flags_x86_padlock && BUILD_PARAMS="${BUILD_PARAMS} PADLOCK=y"
+
+ if use extra-ciphers; then
+ MODULE_NAMES="${MODULE_NAMES}
+ loop_blowfish(block::tmp-d-kbuild)
+ loop_serpent(block::tmp-d-kbuild)
+ loop_twofish(block::tmp-d-kbuild)"
+ BUILD_PARAMS="${BUILD_PARAMS} EXTRA_CIPHERS=y"
+ fi
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc README
+ dobin loop-aes-keygen
+ doman loop-aes-keygen.1
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "For more instructions take a look at examples in README at:"
+ einfo "'${EPREFIX}/usr/share/doc/${PF}'"
+ einfo
+ einfo "If you have a newer Intel processor (i5, i7), and you use AES"
+ einfo "you may want to consider using the aes-ni use flag. It will"
+ einfo "use your processors native AES instructions giving quite a speed"
+ einfo "increase."
+ einfo
+
+ ewarn
+ ewarn "Please consider using loop-aes-losetup package instead of"
+ ewarn "util-linux[loop-aes], it will enable all loop-aes services"
+ ewarn "without patching util-linux package"
+ ewarn
+ ewarn "In future only loop-aes-losetup will be available in portage"
+ ewarn
+}
diff --git a/sys-fs/loop-aes/loop-aes-3.7l.ebuild b/sys-fs/loop-aes/loop-aes-3.7l.ebuild
new file mode 100644
index 000000000000..b548d0430472
--- /dev/null
+++ b/sys-fs/loop-aes/loop-aes-3.7l.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit linux-mod
+
+MY_P="${PN/aes/AES}-v${PV}"
+
+DESCRIPTION="Linux kernel module to encrypt disk partitions with AES cipher"
+HOMEPAGE="http://loop-aes.sourceforge.net/loop-AES.README"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~sparc ~x86"
+IUSE="cpu_flags_x86_aes extra-ciphers keyscrub cpu_flags_x86_padlock"
+
+DEPEND="app-crypt/loop-aes-losetup"
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ CONFIG_CHECK="!BLK_DEV_LOOP"
+ MODULE_NAMES="loop(block::tmp-d-kbuild)"
+ BUILD_TARGETS="all"
+
+ BUILD_PARAMS=" \
+ V=1 \
+ LINUX_SOURCE=\"${KERNEL_DIR}\" \
+ KBUILD_OUTPUT=\"${KBUILD_OUTPUT}\" \
+ USE_KBUILD=y MODINST=n RUNDM=n"
+ use cpu_flags_x86_aes && BUILD_PARAMS="${BUILD_PARAMS} INTELAES=y"
+ use keyscrub && BUILD_PARAMS="${BUILD_PARAMS} KEYSCRUB=y"
+ use cpu_flags_x86_padlock && BUILD_PARAMS="${BUILD_PARAMS} PADLOCK=y"
+
+ if use extra-ciphers; then
+ MODULE_NAMES="${MODULE_NAMES}
+ loop_blowfish(block::tmp-d-kbuild)
+ loop_serpent(block::tmp-d-kbuild)
+ loop_twofish(block::tmp-d-kbuild)"
+ BUILD_PARAMS="${BUILD_PARAMS} EXTRA_CIPHERS=y"
+ fi
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc README
+ dobin loop-aes-keygen
+ doman loop-aes-keygen.1
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "For more instructions take a look at examples in README at:"
+ einfo "'${EPREFIX}/usr/share/doc/${PF}'"
+ einfo
+ einfo "If you have a newer Intel processor (i5, i7), and you use AES"
+ einfo "you may want to consider using the aes-ni use flag. It will"
+ einfo "use your processors native AES instructions giving quite a speed"
+ einfo "increase."
+ einfo
+
+ ewarn
+ ewarn "Please consider using loop-aes-losetup package instead of"
+ ewarn "util-linux[loop-aes], it will enable all loop-aes services"
+ ewarn "without patching util-linux package"
+ ewarn
+ ewarn "In future only loop-aes-losetup will be available in portage"
+ ewarn
+}
diff --git a/sys-fs/loop-aes/metadata.xml b/sys-fs/loop-aes/metadata.xml
new file mode 100644
index 000000000000..40d08800ede3
--- /dev/null
+++ b/sys-fs/loop-aes/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>crypto@gentoo.org</email>
+ <name>Crypto</name>
+ </maintainer>
+ <use>
+ <flag name="extra-ciphers">Enable extra ciphers</flag>
+ <flag name="keyscrub">Protects the encryption key in memory but takes
+ more cpu resources</flag>
+ <flag name="cpu_flags_x86_padlock">Use VIA padlock instructions,
+ detected at run time, code still works on non-padlock processors</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">loop-aes</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/lsscsi/Manifest b/sys-fs/lsscsi/Manifest
new file mode 100644
index 000000000000..e9ec2c85cd20
--- /dev/null
+++ b/sys-fs/lsscsi/Manifest
@@ -0,0 +1,6 @@
+AUX lsscsi-0.28-sysmacros.patch 1232 SHA256 b7c566e2b78c2a7c7dddeaf954ec84cd304bca62439ffa19a6ade8796119fe0d SHA512 d597b32f42a9616476cd54ceb7480cd34850289dd3c0fff8d0d54aad22a6fbc473613f18ab011819de7eeefb4232ad0152630a6da03cc02057b3d9eec763ac62 WHIRLPOOL 490514d7e99dc2931d13a7aaeb4644b496f248bd97a1f1f768f73d0f6aaa5da43c27e72ff35d31d3247beb9a739cf176cba2a9cc5b0a58979e56e4499c75c2fb
+DIST lsscsi-0.28.tgz 150259 SHA256 025d009a1af42bc5b2fca664c44c9ecdfd754356e4a44f5c6aced2420afadd50 SHA512 6d5cf8ebc42af0d8dbe8f2a1e90f4c429d058f184027318686fd22bc117e66c0b1847e4c97964d3d0e1b7bf4a5f1e296e1e3575ed2f5ff999eef70bdfb9ea4d4 WHIRLPOOL c6606475ad9642f0a867b49ff08ccbb8390c3c0d6c912a1701b7ccabd77c400ee074127831b436252ef7665fdac7d35fe06d95c55d2d2e585000be8eafc1d321
+EBUILD lsscsi-0.28.ebuild 424 SHA256 e39b6b16690b1571d32f8c59ee22e473e7665812d16514aecca599fc48482b22 SHA512 4efed74f282adc66f35b6c2308ffea8a4d96a815a15406622eb52cf2077e3fcb9480f98b2882bc3e57127d7543ea4d36da122348dd5952f5231a9a072e1adf4f WHIRLPOOL 34ad0a236a293c4478df8a33c51106bd1478eea4b573f843ee08f80ede8d4913600c6e26f39756aac69a57c1880faead775baeb0a4f7dafd3545d9e27d3ad44e
+MISC ChangeLog 3350 SHA256 1fb556dfcd8ad67fc277576d6810d91a19ae46c07b22e70f1bef85843672c5e0 SHA512 9347b5476bc588b1f2ce61a40201e5de33aa1e21a890bf5cd27f37eb130208167cf3a3a665a7affb4d76e3e80f1b009330fa9681046fca7c18734ff2953cd2e3 WHIRLPOOL b6ba5369da70f89dc12d37abe5445650bfea3c86135d2e7ac4097356bd31685326471df31e61c6ad58c2d7d0751f309db1777289f6912c3242bf3c6b50c722bf
+MISC ChangeLog-2015 10486 SHA256 c5c8099a60e105b389233f7a9457d0c80b0cda7b376e81e6aed294d21b3cd7c9 SHA512 c61c4fab4664978fb8086efd11e2bb05fc1e28cf3910f4637a9ae88ad12c631fa3ec8cb4651169dc07dc9541925ba8a0bdf93eaf57649133e9e505e74b518dd6 WHIRLPOOL 7b7450c32a1e2b4fa0bebe70a34ab206ca1cbd906aa0d35d6d05c71d096f23611c2a737a7e43e9337fe0eb2478e79aa789298db5cd3aa35f8b757017a8401fd7
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/lsscsi/files/lsscsi-0.28-sysmacros.patch b/sys-fs/lsscsi/files/lsscsi-0.28-sysmacros.patch
new file mode 100644
index 000000000000..099256fdcdca
--- /dev/null
+++ b/sys-fs/lsscsi/files/lsscsi-0.28-sysmacros.patch
@@ -0,0 +1,37 @@
+https://bugs.gentoo.org/580494
+
+From 5f1d6f46c8c1ac134841cfcce22dc7639598e032 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 19 Apr 2016 03:07:23 -0400
+Subject: [PATCH] include sys/sysmacros.h for major/minor
+
+These funcs are defined in sys/sysmacros.h, so include it to avoid:
+lsscsi.c: In function 'collect_dev_nodes':
+lsscsi.c:961:32: warning: implicit declaration of function 'major' [-Wimplicit-function-declaration]
+ cur_ent->maj = major(stats.st_rdev);
+ ^
+lsscsi.c:962:32: warning: implicit declaration of function 'minor' [-Wimplicit-function-declaration]
+ cur_ent->min = minor(stats.st_rdev);
+ ^
+lsscsi.o: In function 'get_dev_node':
+lsscsi.c:(.text+0x10f0): undefined reference to 'major'
+lsscsi.c:(.text+0x1117): undefined reference to 'minor'
+---
+ src/lsscsi.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lsscsi.c b/src/lsscsi.c
+index e494169..61cfebd 100644
+--- a/src/lsscsi.c
++++ b/src/lsscsi.c
+@@ -23,6 +23,7 @@
+ #include <unistd.h>
+ #include <getopt.h>
+ #include <fcntl.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <dirent.h>
+--
+2.7.4
+
diff --git a/sys-fs/lsscsi/lsscsi-0.28.ebuild b/sys-fs/lsscsi/lsscsi-0.28.ebuild
new file mode 100644
index 000000000000..e45263a560f3
--- /dev/null
+++ b/sys-fs/lsscsi/lsscsi-0.28.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="SCSI sysfs query tool"
+HOMEPAGE="http://sg.danny.cz/scsi/lsscsi.html"
+SRC_URI="http://sg.danny.cz/scsi/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 sparc x86"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-sysmacros.patch #580494
+}
diff --git a/sys-fs/lsscsi/metadata.xml b/sys-fs/lsscsi/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/lsscsi/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/lufis/Manifest b/sys-fs/lufis/Manifest
new file mode 100644
index 000000000000..709262c217af
--- /dev/null
+++ b/sys-fs/lufis/Manifest
@@ -0,0 +1,6 @@
+AUX lufis-allow-uid-and-gid-addon.patch 1090 SHA256 d022c6d928fa060db4eb2a89984dd61f070f7c3055a2b38e54dd11ddf0e45f8a SHA512 7e5680560b624e033530dea158684d92c134bd8b73ab0d9030eb2c73416785c546915aeb8e13dd815730dca65925659394b86c0a8ad1b94acac04e8e787762e4 WHIRLPOOL ab8aa37192eb3a05e57638573d69f33473e9939db92b00644bfc0c2701ed475be25974c8b49cce68af8e831151400e91716d0e2ebba4fd187136d83ab02bc637
+DIST lufis-0.3.tar.gz 18158 SHA256 84b2c6fb0a14e07a62c7859e1c6903cddb41343a95b1e9115e6da44d1fa29837 SHA512 86f0c77e748ab7ba3f92ed9563011e8262b435a8878bf3629c8fa4a8e1bec058249a288e2aafd395f524748b419a599c6533900348b4e23239f47930a874e14e WHIRLPOOL 8810aba92973cfb55527f08ee7d389611d45b738989a5ba6c35a58f8041751b06138d72bfbc511d75f93a52add94844799c94ea2608e7b112a7e125e65a7f7c2
+EBUILD lufis-0.3.ebuild 622 SHA256 902d8fcb449655f835caa9279bc0ace6131826060a1ae79a223c1d7156b5029d SHA512 b951e7334dffb752df47920e1482dbd57590ad02df59f9e9278395f33f8e20c82edd22330b5251d68f013c60719289321ad6e5aa17707067dda813db2dcd032a WHIRLPOOL b8db8564a948be74a1e96c3f5786a120b16413454d5e08ff397f0247961ac09416c60fa3c3648ac6eeffadaf570b4dfe5541fe8d3b1c9077961bbc7256b2e0c6
+MISC ChangeLog 2679 SHA256 125e4db78e121599686545ec1e498e64d9821da153b1b66a4fac8dde5594395b SHA512 25c88e9336f42316672735faeb932b89f286e6ffa51d90c08b233cbb950f56485a2d07e538734118b4c9113c8ad2da5c4ab12355852179a3b5d1452d3f29830f WHIRLPOOL b3a9aac3a26097c211320a9d088243cfcd0f106a50443a0f1b24a3e95e34de8dcb1b173d974cdf69494eb5417a24f5285088ad831589d7f6c913e4e5e4d23038
+MISC ChangeLog-2015 1437 SHA256 eb8e78fe1d56436baa492008feb8e3e382f2c026669b4efd93fdbfbcf8de4bce SHA512 5d8a4cc90dd8efd16d4bba2a44f3038b1ba023bb71392f58e45eef4ade294728e62294f5837ce5084b58fc9a048d60850ab7de26ba5e5fbf81918bf675fbfc54 WHIRLPOOL 10c4f3e240b71cd944a9c71150bd463018ee9f54ffe3ea31347d7f0131ae51a1067f7428b7f0178d356e544706193425aaab5ef3405a9e6b675d813d064ca7ee
+MISC metadata.xml 246 SHA256 b1f33cbda3c9882062f074bd46fad2a14ac95a1665bcf662792a496636af2eba SHA512 41ea0697fbdeac910a35652ecb4de0a35d7a531956c7c0ace6364c9cef6e1348ecd427a1c5b9301b779d2f189ffbdcd04c7c9f59fb429ef73b75af9d140a92af WHIRLPOOL db12c560fce4766e2703899995add266fe9eeffbaceef9d9703807f2e9d85427afab1ab11bba3b4646962fe600eaaf3abc77478e7ebd7b0950743d226bb2f814
diff --git a/sys-fs/lufis/files/lufis-allow-uid-and-gid-addon.patch b/sys-fs/lufis/files/lufis-allow-uid-and-gid-addon.patch
new file mode 100644
index 000000000000..006559762b85
--- /dev/null
+++ b/sys-fs/lufis/files/lufis-allow-uid-and-gid-addon.patch
@@ -0,0 +1,29 @@
+--- lufis-0.3.orig/lufis.c 2005-02-05 18:59:56.000000000 +0100
++++ lufis-0.3/lufis.c 2005-02-05 19:00:38.000000000 +0100
+@@ -276,15 +276,21 @@ static int lu_getattr(const char *path,
+ if(res < 0)
+ return res;
+
+- /* Take uid= and gid= vars when the filesystem returns 1 */
++ // Take uid= and gid= vars when the filesystem returns 1
+ if(fattr.f_uid == (uid_t) 1) {
+- lu_opt_getint(&lu_cfg, "MOUNT", "uid", &option_uid, 0);
+- fattr.f_uid = (uid_t) option_uid;
++ if(!lu_opt_getint(&lu_cfg, "MOUNT", "uid", &option_uid, 0))
++ fattr.f_uid = (uid_t) option_uid;
++ else
++ // default to 0 (root) when no argument was supplied
++ fattr.f_uid = (uid_t) 0;
+ }
+
+ if(fattr.f_gid == (gid_t) 1) {
+- lu_opt_getint(&lu_cfg, "MOUNT", "gid", &option_gid, 0);
+- fattr.f_gid = (gid_t) option_gid;
++ if(!lu_opt_getint(&lu_cfg, "MOUNT", "gid", &option_gid, 0))
++ fattr.f_gid = (gid_t) option_gid;
++ else
++ // default to 0 (root) when no argument was supplied
++ fattr.f_gid = (gid_t) 0;
+ }
+
+ stbuf->st_mode = fattr.f_mode;
diff --git a/sys-fs/lufis/lufis-0.3.ebuild b/sys-fs/lufis/lufis-0.3.ebuild
new file mode 100644
index 000000000000..df57946bde05
--- /dev/null
+++ b/sys-fs/lufis/lufis-0.3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit toolchain-funcs
+
+DESCRIPTION="Wrapper to use lufs modules with fuse kernel support"
+HOMEPAGE="http://fuse.sourceforge.net/"
+SRC_URI="mirror://sourceforge/fuse/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ppc x86"
+IUSE=""
+
+DEPEND="!<sys-fs/lufs-0.9.7-r3
+ >=sys-fs/fuse-1.3"
+
+PATCHES=(
+ "${FILESDIR}"/lufis-allow-uid-and-gid-addon.patch
+)
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dobin lufis
+ dodoc README ChangeLog
+
+ insinto /usr/include/lufs/
+ doins fs.h proto.h
+}
diff --git a/sys-fs/lufis/metadata.xml b/sys-fs/lufis/metadata.xml
new file mode 100644
index 000000000000..0bedf0370d9c
--- /dev/null
+++ b/sys-fs/lufis/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="sourceforge">fuse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/lufs/Manifest b/sys-fs/lufs/Manifest
new file mode 100644
index 000000000000..372181ca7eb6
--- /dev/null
+++ b/sys-fs/lufs/Manifest
@@ -0,0 +1,10 @@
+AUX lufs-0.9.7-enable-gnome-2.patch 2893 SHA256 727ff1eda0f6f3c5abc0226cec687e35fa443d6336c7bb7de441c4fa2dc92d90 SHA512 59ee306dc0f3ec0c080738850bd8ea3fbd582ac573d74f2e3b920ddb96af69164c24437dcf545b0a33881e2f2bd609809411f89f46ea451387ce699a4f62f856 WHIRLPOOL 1fe7ec58220d7c8d238e5defe30eace9c37af385072823f94341a25eb63c78e3b1609188655ebe86b1df7ec17c10aa9c2740b2e0194658c6c8d7536f71ba303f
+AUX lufs-0.9.7-fPIC.patch 714 SHA256 6f889e1f17eb265b73666a6eb9feca00402531fa9116a41bee498a228467f323 SHA512 8677e14d0323ce588f5679b4037a190fc686f4458b8cde65903e736f5ccbe4f7af8b643e72598d1d8acf21d41e358cb424b3ecad0d1737278ad572aad7acbeca WHIRLPOOL f7cb5f3af31908c9f1fb1086a9cc2072651c0b4bb3acc5e4193d24df504a57d49c08ac1467e88ccfc0cd6c7b77af1925cd1cc5e568c7509da1ca31bb793ad911
+AUX lufs-0.9.7-gcc43.patch 877 SHA256 dd03bf3ce89cfcbd22b90e6220fb65f8bb70fd025f62de711334a07447ccf461 SHA512 4eda5f796d857d5d89b28cf2bde2dce92a1526a5824f9f15fc0418ad41e0cae315202ad5facf398efdb32c1cc9dcd8b910deaa1d7b6d134c7c7b49b5e1fcfb75 WHIRLPOOL 9741325b6fafd9a06cdc9f242a6f48ec07cda7ffa1968d33e0308d6fd9f298195c8b5422b6f07edc8d6d32cb9a5d67117df0e6c2bb438885aebbb92015bc4184
+AUX lufs-automount-port.diff 754 SHA256 87dba7403484e036fc63625c85a7da12efc538e6a5da12013795475dc918791e SHA512 006149b123cf052e3b3e16cf301b05ae7604d3415a40c069a536afe5f0c8ab503dcc6e518f6323a0bd25a5597300f16535ce5d9caf3fb781071331271c4cef3f WHIRLPOOL 35c10c7fe0802528b10ded50ba401919f1a64ae6db108073d06ad29fb0bbff5883f1f819d6d63cc8eabaa201583adaea5eb7a3e32b6038c89e837b5571a33c88
+AUX lufs-no-kernel.patch 3347 SHA256 4d537437b7af583cf6f3736264c96c53cd2f2b1be1387e058c7c9a7ed97b5d04 SHA512 690e12928f206856859f94bb2ed4a9ca0d6e34fea2a9cb84c17293e54ee0230e2d01bca11cbd3ac5298f442483b3be3fb557129a044905738139b997bcf20743 WHIRLPOOL 3e132caa27fb7d52fc40a8f91d00593843ba76971ad0e4098a2ca303cb7d39f028c97e32cd457a66aa15bd40fb6e3921a75b911eddef44744326ce58c8e29412
+DIST lufs-0.9.7.tar.gz 537772 SHA256 2d91457906ee2ff1e26de82987019fe2efe22d9c3b6c7741b7ed8fffbae51411 SHA512 c7c70de89bd3f31e4fbae3e4a4acb04a6c29d0dac2b52e18a99dd2563db57ca9b3ff5e3fef53b45b9eea4b689122a30fef887973a9eb6e13b12c38fc957bfb91 WHIRLPOOL 12396c23de5927b8fded49cb49dcf668e18ab553e5af77f95af67537dceb8ad3d7008d160c00177c69274fcb2935537b04d87b291e5c7f9519f1d1992bc07734
+EBUILD lufs-0.9.7-r3.ebuild 1691 SHA256 2ac3b16d9de40469fa2df42fe3e85dbded2deb9145e65a325370b24dbb7b6d5f SHA512 8aa699b80adebfc42eb35c380a284fc6e56bcb724ebec310aa9034979932535eb9a593332d9bb5d1c8de3ce5a7811301e09e03e0816a2efdfe0de4c0235cfa29 WHIRLPOOL 47ae434238ea8f358feca932c74eab3ebc93ddafb1e18297623594b2845c9969fb0cdf51a7cb8f48cf23179ffb18290f3e39edf10dec46c4b46c31d9cdab3b8a
+MISC ChangeLog 3332 SHA256 08271d498b3c615f809e9d0a5b36b0328819f2ecb05b67a8731a0aac13c8cb42 SHA512 377b55b5f589ad44942a96aa5d139571daf58014f5bf315e8498bc102215e121b03cfb99e8329265ec6e25f948c3b83227f42782744f771dab7171b69acd0731 WHIRLPOOL 69a8ea50c1936f84e48573f050d9a415e95d8911d6ad3f9b36b895f854fafc29c42a54b65de581a46fd4e367193160c045c5128a76ea0f26f2ac96a723edcf1f
+MISC ChangeLog-2015 6688 SHA256 91aeac7a52b8f9eeee07aea11797a5882fab2f6899b20a6353cf9c039ca517a4 SHA512 a4755717f5d6312ce785a2bdbe6521fcefb899251ac13ae5b631bfd90d993ff852163e1bde6eb268f069d8e919cba8bcc51f069ec808c13f4cca6827a5bb37fd WHIRLPOOL 9ce12a6042f7f988032d59e3b966eaf56b1874682cab0df0f80e15db5295d42d484c1f9dd6411b563dae561348564f80478599ae50942d406b8c75cbc5b5af12
+MISC metadata.xml 324 SHA256 ae55da4ed00358889642834c750002ea6ec037b38bc8d5c33a928b4e7f8ab2c2 SHA512 0f93937ea367a04e67b3d03a4a000b4e020a3ac4ca432eaa9dccfd82211a3db52afbeb4f3fd800e2164fa22dfa6f70ffbec6ecea44aad8aac8dc675920f9ac19 WHIRLPOOL 3126e23bb6c39173195639c3bc0b1005241b598687b6b32de26cc44948e19c882c537949f30dea591142ced6b3c4a782608f7c8fade8b58f84c76b9c7716dfa0
diff --git a/sys-fs/lufs/files/lufs-0.9.7-enable-gnome-2.patch b/sys-fs/lufs/files/lufs-0.9.7-enable-gnome-2.patch
new file mode 100644
index 000000000000..6d6d4ba3b1ab
--- /dev/null
+++ b/sys-fs/lufs/files/lufs-0.9.7-enable-gnome-2.patch
@@ -0,0 +1,72 @@
+diff -upr -x aclocal.m4 -x Makefile.in -x configure -x '.*' -x autom4te.cache -x kernel lufs-0.9.7.orig/config.h.in lufs-0.9.7/config.h.in
+--- lufs-0.9.7.orig/config.h.in 2003-10-29 22:48:48.000000000 +0000
++++ lufs-0.9.7/config.h.in 2004-01-13 22:51:00.000000000 +0000
+@@ -9,6 +9,9 @@
+ /* Define if libchipcard is present. */
+ #undef HAS_LIBCHIPCARD
+
++/* Define if using libgnome-2 rather than 1. */
++#undef HAS_LIBGNOME_2
++
+ /* Define if ssh is found. */
+ #undef HAS_SSH
+
+diff -upr -x aclocal.m4 -x Makefile.in -x configure -x '.*' -x autom4te.cache -x kernel lufs-0.9.7.orig/configure.in lufs-0.9.7/configure.in
+--- lufs-0.9.7.orig/configure.in 2003-10-29 22:40:28.000000000 +0000
++++ lufs-0.9.7/configure.in 2004-01-13 22:50:20.802647656 +0000
+@@ -164,7 +164,9 @@ AC_SUBST(SSHPROG)
+ dnl Checking gnome
+ AC_CHECK_PROG(GCONF, gnome-config, gnome-config)
+ AC_CHECK_PROG(GVFSCONF, gnome-vfs-config, gnome-vfs-config)
++AC_CHECK_PROG(PKGCONF, pkg-config, pkg-config)
+ AC_CHECK_LIB(gnomevfs, gnome_vfs_init, HAS_GNOMEVFS=1,)
++AC_CHECK_LIB(gnomevfs-2, gnome_vfs_init, HAS_GNOMEVFS2=1,`$PKGCONF --libs-only-l gnome-vfs-2.0`)
+ if test "$GCONF" -a "$GVFSCONF" -a "$HAS_GNOMEVFS"
+ then
+ AC_DEFINE([HAS_GVFS], 1, [Define if gvfs is to be built.])
+@@ -172,6 +174,16 @@ then
+ GVFS_LDADD="`$GCONF --libs gnome` `$GVFSCONF --libs`"
+ GVFS_CFLAGS="`$GCONF --cflags gnome` `$GVFSCONF --cflags`"
+ opt_fs="$opt_fs gvfs"
++elif test "$PKGCONF" -a "$HAS_GNOMEVFS2"
++then
++ AC_DEFINE([HAS_GVFS], 1, [Define if gvfs is to be built.])
++ AC_DEFINE([HAS_LIBGNOME_2], 1, [Define if using libgnome-2 rather than 1.])
++ define_has_libgnome_2="#define HAS_LIBGNOME_2"
++ AC_SUBST(define_has_libgnome_2)
++
++ GVFS_LDADD="`$PKGCONF --libs libgnome-2.0` `$PKGCONF --libs gnome-vfs-2.0`"
++ GVFS_CFLAGS="`$PKGCONF --cflags libgnome-2.0` `$PKGCONF --cflags gnome-vfs-2.0`"
++ opt_fs="$opt_fs gvfs"
+ fi
+ AC_SUBST(GVFS_LDADD)
+ AC_SUBST(GVFS_CFLAGS)
+diff -upr -x aclocal.m4 -x Makefile.in -x configure -x '.*' -x autom4te.cache -x kernel lufs-0.9.7.orig/filesystems/gvfs/gvfs.cpp lufs-0.9.7/filesystems/gvfs/gvfs.cpp
+--- lufs-0.9.7.orig/filesystems/gvfs/gvfs.cpp 2003-03-08 21:45:29.000000000 +0000
++++ lufs-0.9.7/filesystems/gvfs/gvfs.cpp 2004-01-13 22:55:44.906376400 +0000
+@@ -36,8 +36,13 @@
+ #include <lufs/fs.h>
+
+ #include "gvfs.h"
++#include "config.h"
+
++#ifdef HAS_LIBGNOME_2
++#include <libgnome/libgnome.h>
++#else
+ #include <gnome.h>
++#endif
+ #include <libgnomevfs/gnome-vfs.h>
+
+ extern "C" {
+@@ -275,7 +280,11 @@ GVFS::do_readdir(char* d, struct directo
+ goto out_uri;
+ }
+
++#ifdef HAS_LIBGNOME_2
++ if(gnome_vfs_directory_open_from_uri(&dir, uri, GNOME_VFS_FILE_INFO_DEFAULT) != GNOME_VFS_OK){
++#else
+ if(gnome_vfs_directory_open_from_uri(&dir, uri, GNOME_VFS_FILE_INFO_DEFAULT, NULL) != GNOME_VFS_OK){
++#endif
+ WARN("could not open directory!");
+ goto out_info;
+ }
diff --git a/sys-fs/lufs/files/lufs-0.9.7-fPIC.patch b/sys-fs/lufs/files/lufs-0.9.7-fPIC.patch
new file mode 100644
index 000000000000..05bb1d2f5d25
--- /dev/null
+++ b/sys-fs/lufs/files/lufs-0.9.7-fPIC.patch
@@ -0,0 +1,12 @@
+--- filesystems/gnetfs/Makefile.in 2004-03-18 15:59:28.391299639 +0000
++++ filesystems/gnetfs/Makefile.in 2004-03-18 15:59:45.316142704 +0000
+@@ -197,7 +197,7 @@
+ @AMDEP_TRUE@ ./$(DEPDIR)/vtree.Plo ./$(DEPDIR)/xfer.Plo
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++COMPILE = $(CC) -fPIC $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) -prefer-pic $(DEFS) $(DEFAULT_INCLUDES) \
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
diff --git a/sys-fs/lufs/files/lufs-0.9.7-gcc43.patch b/sys-fs/lufs/files/lufs-0.9.7-gcc43.patch
new file mode 100644
index 000000000000..3736ba62b017
--- /dev/null
+++ b/sys-fs/lufs/files/lufs-0.9.7-gcc43.patch
@@ -0,0 +1,33 @@
+--- filesystems/ftpfs/ftplib.cpp.orig 2008-06-08 20:01:35.000000000 +0200
++++ filesystems/ftpfs/ftplib.cpp 2008-06-08 20:01:53.000000000 +0200
+@@ -20,6 +20,7 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
++#include <cstring>
+ #include <unistd.h>
+ #include <netdb.h>
+ #include <stdio.h>
+--- filesystems/ftpfs/ftpfs.h.orig 2008-06-08 20:04:33.000000000 +0200
++++ filesystems/ftpfs/ftpfs.h 2008-06-08 20:05:07.000000000 +0200
+@@ -23,6 +23,8 @@
+ #ifndef _FTPFS_H_
+ #define _FTPFS_H_
+
++#include <cstdlib>
++#include <cstring>
+ using namespace std;
+
+ struct directory;
+--- filesystems/sshfs/sftplib.h.orig 2008-06-08 20:08:55.000000000 +0200
++++ filesystems/sshfs/sftplib.h 2008-06-08 20:09:43.000000000 +0200
+@@ -28,6 +28,9 @@
+
+ #include <string>
+
++#include <cstring>
++#include <cstdlib>
++
+ using namespace std;
+
+ #define MAXDATA 32768
diff --git a/sys-fs/lufs/files/lufs-automount-port.diff b/sys-fs/lufs/files/lufs-automount-port.diff
new file mode 100644
index 000000000000..b184b20aba97
--- /dev/null
+++ b/sys-fs/lufs/files/lufs-automount-port.diff
@@ -0,0 +1,28 @@
+Files lufs-0.9.5.org/util/a.out and lufs-0.9.5/util/a.out differ
+diff -Nur lufs-0.9.5.org/util/auto.sshfs.c lufs-0.9.5/util/auto.sshfs.c
+--- lufs-0.9.5.org/util/auto.sshfs.c 2003-10-24 16:51:49.000000000 +0200
++++ lufs-0.9.5/util/auto.sshfs.c 2003-10-24 16:54:15.000000000 +0200
+@@ -26,6 +26,8 @@
+ int
+ main(int argc, char **argv){
+ char *c;
++ char *d;
++ int port = 22;
+
+ if(argc < 2)
+ return 1;
+@@ -34,8 +36,12 @@
+ return 1;
+
+ *c = 0;
+-
+- printf("-fstype=lufs,fs=sshfs,quiet,host=%s,username=%s none\n", c + 1, argv[1]);
++ d = strchr(c + 1, ':');
++ if (d) {
++ port = atoi(d + 1);
++ *d = 0;
++ }
++ printf("-fstype=lufs,fs=sshfs,quiet,host=%s,port=%d,username=%s none\n", c + 1,port, argv[1]);
+
+ return 0;
+ }
diff --git a/sys-fs/lufs/files/lufs-no-kernel.patch b/sys-fs/lufs/files/lufs-no-kernel.patch
new file mode 100644
index 000000000000..75a67dbf9a1a
--- /dev/null
+++ b/sys-fs/lufs/files/lufs-no-kernel.patch
@@ -0,0 +1,111 @@
+diff -pur lufs-0.9.7.orig/configure.in lufs-0.9.7/configure.in
+--- lufs-0.9.7.orig/configure.in 2005-02-07 07:59:18.000000000 +0100
++++ lufs-0.9.7/configure.in 2005-02-07 07:59:40.000000000 +0100
+@@ -9,107 +9,6 @@ AM_INIT_AUTOMAKE(lufs,0.9.7)
+ dnl "static" FSs
+ opt_fs="localfs locasefs ftpfs gnetfs"
+
+-AC_ARG_ENABLE(kernel-support,
+- [ --enable-kernel-support enable building of the kernel module (default=yes)],
+- [ KERNEL_SUPPORT=$enableval ],)
+-
+-if test "$KERNEL_SUPPORT" != "no"
+-then
+-
+- dnl Checking os
+- AC_MSG_CHECKING(OS)
+- OS_DIR=`uname -s`
+- if test ! -d kernel/$OS_DIR
+- then
+- AC_MSG_ERROR($OS_DIR - not supported!)
+- else
+- AC_MSG_RESULT($OS_DIR)
+- fi
+-
+- dnl LINUX kernel configuration
+- if test "$OS_DIR"="Linux"
+- then
+-
+- dnl Checking kernel & headers
+- AC_MSG_CHECKING(kernel)
+- AC_ARG_WITH(kernel,
+- [ --with-kernel=VERSION specify a kernel version to compile for],
+- [KERNEL_VERSION=$withval],
+- [KERNEL_VERSION=`uname -r`])
+- MODULES_DIR=/lib/modules/$KERNEL_VERSION
+- AC_MSG_RESULT($KERNEL_VERSION)
+-
+- AC_MSG_CHECKING(kernel support)
+- KERNEL_DIR=`echo $KERNEL_VERSION | cut -d'.' -f1,2`
+- if test ! -d kernel/$OS_DIR/$KERNEL_DIR
+- then
+- AC_MSG_ERROR([$KERNEL_DIR not supported!])
+- else
+- AC_MSG_RESULT([supported in kernel/$OS_DIR/$KERNEL_DIR])
+- fi
+-
+- AC_MSG_CHECKING(kernel headers)
+- AC_ARG_WITH(kheaders,
+- [ --with-kheaders=DIR specify the location of the kernel headers],
+- [KERNEL_HDR=$withval],
+- [KERNEL_HDR=$MODULES_DIR/build/include])
+- if test ! -f $KERNEL_HDR/linux/fs.h
+- then
+- AC_MSG_ERROR([not found in $KERNEL_HDR. please install them!])
+- else
+- AC_MSG_RESULT([found in $KERNEL_HDR])
+- fi
+-
+- AC_MSG_CHECKING(kernel configuration)
+- if test -f $MODULES_DIR/build/.config
+- then
+- tmp=`cat $MODULES_DIR/build/.config | grep CONFIG_MODVERSIONS=y`
+- if test "$tmp"
+- then
+- AC_MSG_RESULT([found, using modversions])
+- MODVERSIONS="yes"
+-# MODV_FLAGS="-DMODVERSIONS -include $KERNEL_HDR/linux/modversions.h"
+- else
+- AC_MSG_RESULT([found, not using modversions])
+- fi
+- else
+- AC_MSG_RESULT([not found at $MODULES_DIR/build/.config, assuming modversions support])
+- MODVERSIONS="yes"
+-# MODV_FLAGS="-DMODVERSIONS -include $KERNEL_HDR/linux/modversions.h"
+- fi
+-
+- AC_ARG_ENABLE(modversions,
+- [ --enable-modversions enable modeversions support (default=auto-detect)],
+- [ if test $enableval = "yes"; then MODVERSIONS="yes"; else MODVERSIONS=""; fi ],)
+-
+- if test $MODVERSIONS; then
+- AC_MSG_CHECKING(modversions.h)
+- if test -f $KERNEL_HDR/linux/modversions.h; then
+- MODV_FILE="$KERNEL_HDR/linux/modversions.h"
+- fi
+-
+- if test -f $KERNEL_HDR/config/modversions.h; then
+- MODV_FILE="$KERNEL_HDR/config/modversions.h"
+- fi
+-
+- if test $MODV_FILE; then
+- MODV_FLAGS="-DMODVERSIONS -include $MODV_FILE"
+- AC_MSG_RESULT([$MODV_FILE])
+- else
+- AC_MSG_ERROR([not found!])
+- fi
+- fi
+-
+- AC_SUBST(MODV_FLAGS)
+- AC_SUBST(KERNEL_DIR)
+- AC_SUBST(MODULES_DIR)
+- AC_SUBST(KERNEL_HDR)
+-
+- fi
+-fi
+-AC_SUBST(OS_DIR)
+-
+-
+ dnl options
+ AC_ARG_ENABLE(debug,
+ [ --enable-debug enable debug messages to stdout (default=no)],
diff --git a/sys-fs/lufs/lufs-0.9.7-r3.ebuild b/sys-fs/lufs/lufs-0.9.7-r3.ebuild
new file mode 100644
index 000000000000..97acfc39d2d9
--- /dev/null
+++ b/sys-fs/lufs/lufs-0.9.7-r3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils autotools
+
+DESCRIPTION="User-mode filesystem implementation"
+HOMEPAGE="https://sourceforge.net/projects/lufs/"
+SRC_URI="mirror://sourceforge/lufs/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86 ppc ~amd64"
+IUSE="debug"
+
+RDEPEND="sys-fs/lufis"
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${P}-fPIC.patch
+ epatch "${FILESDIR}"/lufs-automount-port.diff
+ epatch "${FILESDIR}"/${P}-enable-gnome-2.patch
+ epatch "${FILESDIR}"/lufs-no-kernel.patch
+ epatch "${FILESDIR}"/${P}-gcc43.patch
+
+ filesystems="ftpfs localfs"
+ use amd64 || filesystems+=" sshfs"
+
+ eautoreconf
+}
+
+src_compile() {
+ einfo "Compiling for ${filesystems}"
+ unset ARCH
+ econf $(use_enable debug) || die
+
+ cd filesystems
+ local i
+ for i in ${filesystems} ; do
+ cd ${i}
+ emake || die "emake ${i} failed"
+ cd ..
+ done
+}
+
+src_install() {
+ cd filesystems
+ local i
+ for i in ${filesystems} ; do
+ cd ${i}
+ emake DESTDIR="${D}" install || die "emake install ${i} failed"
+ cd ..
+ done
+}
+
+pkg_postinst() {
+ ewarn "Lufs Kernel support and lufsd,lufsmnt have been disabled in favour"
+ ewarn "of lufis, please use lufis to mount lufs-filesystems, eg:"
+ if use amd64; then
+ elog "# lufis fs=ftpfs,host=ftp.kernel.org /mnt/lufis/ -s"
+ else
+ elog "# lufis fs=sshfs,host=dev.gentoo.org,username=genstef /mnt/lufis/ -s"
+ fi
+ ewarn "If something does not work for you with this setup please"
+ ewarn "complain to bugs.gentoo.org"
+ einfo "Note: There is also the native sshfs implementation now"
+ use amd64 && ewarn "lufs-sshfs does not work on amd64 and is disabled there."
+}
diff --git a/sys-fs/lufs/metadata.xml b/sys-fs/lufs/metadata.xml
new file mode 100644
index 000000000000..323e5c2f3bdb
--- /dev/null
+++ b/sys-fs/lufs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="sourceforge">lufs</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/lvm2/Manifest b/sys-fs/lvm2/Manifest
new file mode 100644
index 000000000000..0e86b875a159
--- /dev/null
+++ b/sys-fs/lvm2/Manifest
@@ -0,0 +1,62 @@
+AUX clvmd.confd-2.02.39 213 SHA256 68442d5c9da81bad79fa6b1beaede290f24ea6a4e4415f3d9f4e37ccca6c524a SHA512 9614c4188c9a5bcf398d1f521b52d7e2281fcdf76265fdaca4acda22be282d8468e82b54a2661d5753f4b9a442ebe93a60daf87c846db4e275a283f71c9fd8e2 WHIRLPOOL b429d06a5200d37f46e72190060bc2fe866575ba441b5f92d12d939bdc5d411ef37e895a7369bbaaf733b1a0d0305a05d499c7ae6c7360fe8767e902d2a3bfc4
+AUX clvmd.rc-2.02.39 3590 SHA256 50f7297c3a66656832dc7cacb4a6b8614a30748c59a19b56ed479a99e9068c7c SHA512 2a16b700f475a65477d548b4cb5fb26129c86d2244b7b5716ffdb4e9b13cf2e37bc1fc986c080c5c4d1c0e2b5436b0cc6fcb0527c9b98c1b29b85ca512551532 WHIRLPOOL e546e98765c8740b3893f25207694bc6b33fb3d46f15facbf856c41ded17071fbad4c969a826ecc13c8cef06b02198406de0760c685b31390034ee25f7922617
+AUX device-mapper.conf-1.02.22-r3 15 SHA256 57777904f12a35617e5a4193c964ebb32396452487fd02353e71e16e7b46bc22 SHA512 1846e0ca1be7170d4c0beb694a23aea4d19b24b99a248bb0f4e034286a6beede0a8efc474b0c237e33ee72c86c93b6238f2d5ea23e224765acba99c90633261e WHIRLPOOL a0de185e849cd4d1aab9f145a6330f267ca547ba4ec7720be6f33e2c3c4c182b8674ea220b894f0fc806fe6637ba7bcabd739ca57b53b3efa5fad0cf1e57ba2e
+AUX device-mapper.rc-2.02.105-r2 3707 SHA256 e8bfde63341f9e6136ee20a15ed9ea455e2259dbcaea756f8c3d0f710c1c2746 SHA512 9940b1154a8c07cf2f2c975e209bfb1e78913d3ea77ac6334684a9b38c4f4bd34b349b71c078c9ad5700f554046771ee05e17f07b75dc4e7d839f1df2305cc4f WHIRLPOOL 33516cc0046961718dbaf8a0fd3602d8975790d93aaadbb6905b858f411e1c88857bb7d8283dce0b44b0345911c0ad9a14edec3f4e702433d639fca1367a4016
+AUX dmeventd.initd-2.02.67-r1 565 SHA256 5edaaad292d4fd6b67fd5323636dd2e839be33ae16fbc7872dadb0499fcf22da SHA512 c0f5317ab0cba700eab3b643fd134d8a23fe4b332c47fd94728e43dfdf97250561f60ecb47808d2c65e55cdec65cccbd51f264540c0d973b2df7ded4ec129c34 WHIRLPOOL ee6306caba934ea4d52033631e4598b250a407c3e7a906a0109582c5f3453c8f8f3985a2410aacbd8966b897e389a4b67cb62ed22d75a98d60c7d495f5b1544b
+AUX dmtab 319 SHA256 f86d54983e26bb36ce1d1a46f15165fed90ec6c76e5881fb04978d77952de874 SHA512 a8cc69ff832eafd64d7e45854df3380a9c5f9648297e2606c5b9b47e0015c93c7da6ef3dfd35800f36a3371635fa1906605c524be82d6740fd435c7f6bf2807b WHIRLPOOL 2ba4aceb6a030421b9384c65e5836de886f67518491c3409f3df1b09c97a4095d66d03e5e726edcad4224572b723012e8b5ccbfca4cd3e1ea46917e50e54bc73
+AUX lvm-monitoring.initd-2.02.105-r2 963 SHA256 42847d8e6dabbcf2cc19846c6ad22cbab65e9a033c4add569b152504b16ab477 SHA512 dc13304e8d644a55f0490c84acc36b95f43fc0e86c4b44f85f54f6ed3213ad665454e7432b3621f307b3468af0c33525c24705f4a2783e35a26e02ff1c828779 WHIRLPOOL aa417a0dd3c62ed74240579ff56a1a34e5f13b9c2bf40c274290428ef581d971158efd3dacc7ba4e274db37d6d408b3b6bb438c51519fae4dbf540d1283ebffc
+AUX lvm.confd-2.02.28-r2 173 SHA256 28370c089c39c248d7ded0960b8d8a9256bada44d44c22ce3cec87d512ef6844 SHA512 67b153cbc5c2327c15f042b3b5590c1d8fdf9823efb19c80192ac4dcf98e530efea8ecae0aaaa4a54b0e3e4907565aa21455b364df1dbe8f2e7dffa1c5d355d0 WHIRLPOOL 06467b28ad2acf36984eef1b7b7e3d88277505760f848a808d85820cd1cccf6bb7397c00624d36961d9bdbb994e55de03444a7cfc97ecefd9bd3b785a3c6fdbf
+AUX lvm.rc-2.02.105-r2 2960 SHA256 e5bcc5aeed1ae95cf4199c10fcfa0488d7790e0bafe512c7947902cbd451928d SHA512 8d8ccac694110e3538aeb246244b1b129d960f35d54eb583d77e9d54bed243248b121262557fc0c69bc734a04ca35c0485428e65b1a4d06c438828a239053fae WHIRLPOOL 62d63d64ee444fd573e4511dd64bb799aacd5edabf817788155268b27f71004e7c44659f78b7f3e4e81e74054967da99b2569005866f98f020731815e95ab083
+AUX lvm.rc-2.02.116-r4 3771 SHA256 c7044358d8bde5f9786f40fa126011612c2255ee38bd540f5482608cbe8d9bef SHA512 aa19a17ea3c6626355ac6f82aa383e7a9b253248513d7ef876e381d1a58ab78267e0e39df95a53114675582312693a128cf517051f906aa17a244f8d398f3aed WHIRLPOOL 78b241ddfe9ed4b407d0e014074a87a0de7fb6cfbdd2293d631ff3fcd2fc458e26a8e0c870b7bdb3b9db13c604e9df93686c3dbb75378d28a1fd3a4b880fa3e4
+AUX lvm.rc-2.02.116-r6 3783 SHA256 088285a83ab2ea527126c36eeb72181f42815bd32b95e4442ad2b8a1c94600e5 SHA512 f819faf7844c3b946b437aee8eb5dd52bfdbb9b820a2024ad42166895e72e194898b16a34c44c69786539d19e5458c12a333f99db02c26589567bb6aabb23639 WHIRLPOOL bf10b0ba73200d17a71ecf6c4d8a3bcef9e23a2807d3e8ae432021bf2b1fe9c48931ac40af2d3f8bfd9a3cf3c4bd1e301ead404a3cd3e939d395b708963b07f6
+AUX lvm.rc-2.02.166-r2 4146 SHA256 257e6801b1d2890fe77b7d030489066d9129712eae395b77ae5e9e461d435f80 SHA512 a08891d52d1b7f38d09d15100ae19737ab6b65ae51f1e5d2ca43dd08988fee272972ea02fb3a04240d56812089a0744d215fed87e2ed29d09cfccba0de59d3c7 WHIRLPOOL 94bb01f3595869cd393994621b1e0e0770842d3e284dad0d109ba0fd6a64cd261d7ef55f19ce015c7e6d20609b66b21ee06d396f2230591bcbc5ad0ffe34d619
+AUX lvm.rc-2.02.172 4207 SHA256 499fae740d7740895842e2a6db8736272ceacf2d4b6f57f00a8ff91b7993d1da SHA512 8aff8ed7f854dd326dd78c4862cd0a518deed10e05533d0a17fe47c18db8bf29b26799950f534b52aeabacd3fb70d83f12c523cab0a0f2d669aa0ff9d3fa1832 WHIRLPOOL 257b351e720c8ecd061a4d8ce941f35f83e0647c0457a986fcb327f0256ed9dc39fd784b157a3db9391ac9a2f796ac6f0201c199b4d245f759b037b35d7fc2d6
+AUX lvm2-2.02.106-pthread-pkgconfig.patch 860 SHA256 aaf04bdb140cbedebe731a04846cbb7459cdd002ee4616a3d0725136edb5ef02 SHA512 ae073936ee15fdeabde4d3948a65f6a435b82e62aa0ddadbad399b69bd5c9bfc181d5e0be1beae9f6e899a6e8b9d7c21add13f7a1606cb5ed4762ed5aa5aa223 WHIRLPOOL 9e822f0f1c7c67b5443fb9e62547a1893d8c91f91d63f03c9f4b3d9a20cd24c377f5697f2fe24028f10949550af6f2a05d95db6d5e29700dfaa05f1c3d615773
+AUX lvm2-2.02.108-example.conf.in.patch 1681 SHA256 c9e0b46965f68c25495e21ca9504699031ed88dbb69407a08d53569ddc88ae4c SHA512 b4e983892b7ff47e5e7617376197daa62cfd063cf398235dc4a436fd9025ec4b1e263d7418e2c2943d53be494cba4209e9d4230d54a78762b0ca526f92e9746c WHIRLPOOL 0fc73d8e6f47596fa1789118aefebf931fb217342259da838d701bdeb96f21d7de59f29ac81c3c0f4a00db711e86b9fac6b4c889cf05ffc90ad8fd5a9ef77cd1
+AUX lvm2-2.02.108-static-pkgconfig-libs.patch 3302 SHA256 5cbdb4c4db1a77767a8cf3a89490eb0e21a2d4cc7729a8ffb099e4d0746e2775 SHA512 246f1029f9346d6bc57c2062c8a223535d0b832fa6bd86947b8b91b094dbc388706a9914f9ca0531666f77e73544612e2819335435b7576b4e91cdb1b0e4f041 WHIRLPOOL 53e723bdcfe07f668abf6fe9e6093ae38d81b01bd10ade0b40a037d44c367a6945ed86d14d70c2af8af6e7063763fd3620591b5c7384bd255b98cceb7ee192f3
+AUX lvm2-2.02.129-dynamic-static-ldflags.patch 2250 SHA256 dacd53356c8287f2dcedf6d4cf9aa3664a0fcdbc1a03d691abce29d49a7a0fa9 SHA512 43884e69dab82d417d9e834b528034b985d6e7cd2d7bdd3a2e30a03fe114670d56bf3b9e6c2d670275261f1eebb97125eb2f2abe53904866c220e16f9d6effa7 WHIRLPOOL 79e76ce5a7bcf875293dc11d2897a6089c069a7039b0a72056f1fa50f73129409153078fbde5fdf14b59ff2e1afd8bea9bd6b6fa0841d2e1dd53212e0f0d5508
+AUX lvm2-2.02.129-example.conf.in.patch 1844 SHA256 0a5f5dfbeb36da9320c936752fa4e240c5ea82307321098e0c59e43e153548cc SHA512 a2bceec0d051fd2f7749e702d6bbabbc0edf98b11b3211256d2a49d781b1fe89071f36052045726b11b0e0bdd98242b88fc57128a048a7d6d6448c298a6233ed WHIRLPOOL a00b9e37be876377e9b156a9c4674a0d731766c73bb5b297d948ddfb4fb069732b159ea909a35682a95438647060b238303a85c97f350c47e45b97c90c536226
+AUX lvm2-2.02.129-static-pkgconfig-libs.patch 3299 SHA256 fb8ca89e330096a0a0abb80db1922b54b4ed84408863de07ec3dc7a2d882b302 SHA512 28906793a51737679e51bf83298388ea3ca081f513d34b4c38f3fa09f574c9957f4eedfde0179e31be90631e12d41c78b3bb4bb74c069a99a69ae703f3a2f2f7 WHIRLPOOL 9f0f25896dae3f750262514a0e2f8a29a8edb1f949fc41518da98cf991d24e8216003aff7a3fba535ac1a75e8686d8dc297375da52f2188cd7b309b8067758d6
+AUX lvm2-2.02.130-pthread-pkgconfig.patch 915 SHA256 7df0c39dcbb0e24381327e5b08e377fc80bc7e5d990abf4f3f2b3e0fc5158adc SHA512 1e45ccb3bf824fd2f8276b4ca103e95960e401e793944af68a16929040015b42d601b09adbb8f01e833071d501440a20381fe263fd1884d8fb2e7d7f5463da6d WHIRLPOOL bc5805586fd58db54c538d4d87621389ebfb4b7146b46390719c4c3d983222ec51616667b2871ff754a0348f47b210288f8fe3cbe17f95206d97a61cc1b32b8f
+AUX lvm2-2.02.139-dynamic-static-ldflags.patch 2874 SHA256 2f09df6fe503f426e9970e9243e6380654dd4037b8475a371e56ee6ed4287c46 SHA512 3486c6d0500f233cbedfe28a2c20f03e4a80301e011fa0fd41b3765eed71dc5e00c8f6f09d40c3702ea87e372db3e4dae64c32e4ffe45700bbbf137804b748fa WHIRLPOOL 427e8be7dab3afcd4bfa8bbec86d691ed99d98eb52ebe7c740eec7a90bb42dce92fc127ca3ef0a6f6da07041a3682f59b1937b836ccd0a8733200e538e53ccc0
+AUX lvm2-2.02.145-mkdev.patch 4111 SHA256 d9a351f8d1321d5a374b648845ecdb51f74fa23a4ff8b58757d3e184649c42bc SHA512 f3953eb8bf73adc8d048edd2c560fad3c5afbfcee19ca354f06de2b10ea2e947c972cd180fa26cf0d3dc30b5aae8946e79faac3f3a1cfb6f31222244d308a588 WHIRLPOOL cd9b3148835afa9cbb15790438e2272aab0748f88080636fe477527dadcfc5b0ea293c5f75e3e16fe9705bc3f4384d86345052baeb153a489e00fc5ce02530f6
+AUX lvm2-2.02.172-static-pkgconfig-libs.patch 3851 SHA256 7c52f1bbd73c63d2c5eb0868696382178e181183b4f25ed90341fe2bbea48a08 SHA512 15e031c22f96d3a12e985129ccfa24e91edbbf30741a8075f089ae22f482f9b0c41f39d3c92ba41dde34a7afb505e0816347d385a9eb5d7692ad63053aabe79d WHIRLPOOL f54205f9988448641a129da2dfeb2705c774e03c542ad105c8faa38ad7c3a232fb16da80d310c438c70cf66c6ad226a60d49c3a388587ab03f121b8e3807a07d
+AUX lvm2-2.02.56-lvm2create_initrd.patch 2032 SHA256 b892d0544e05350e78ea400c16e6fd3657671d9bdf50bfae70505fd79bdda081 SHA512 b2a1705fa6b962027ebc5047583547489afe8ef8d8977c6284a28d0a8b0e05e20e6c48bd6c02a8bb02de9cfb40ac2d6e2a4b8ed8ef8c4ae7b6ea9a29bc4194de WHIRLPOOL cb533df528be0aae4bf50966285ef7a238f810d955ee86d5b446f43944d093732eff6ef8178d1654c4a2c075049ffc11994a99de6291bab1140cb8812be8b8a0
+AUX lvm2-2.02.63-always-make-static-libdm.patch 1420 SHA256 1c498b5efce77ed16bbbfcd9e0ec6da404a9c70c7ad0959ed7b60733adfcfc21 SHA512 67735af9e51369d5b3b400cab4f9ffa25f8dea1c1ec3d01855cb3c5aeade5c39a35eeed43f3a665204fe6bbba4ca43baecd845330bf26d023064b94ca3d1317c WHIRLPOOL f273c893acedfd658e7947abb5f4b528f15de9808ae3862ec8a9189ba7de4ea6998dc67dbc7af642ca3a27bba2ef8eabfd48337f532145f88500988f564313b1
+AUX lvm2-2.02.67-createinitrd.patch 660 SHA256 d59f5642fff9d9575227bfd0b3d103d928a6f7b08b417d6c458704171f11da39 SHA512 17fbba5d34ece5c1c25ef35fa3bbc3d6fcd20b44bd766c049bbc120853a8d60c9544db5790645a7814db5c272fd12d383699a8a9be6f4e9c56a7c0a1bb29ade2 WHIRLPOOL b358a31a9ee669a4fccf42280da5342c214932bfd83deee92d41351eb37dc6c0b2e5dc7419f2304128b5d285fed92db5b2e1634a71bbf1310d36b54d1a353bb0
+AUX lvm2-2.02.70-asneeded.patch 336 SHA256 0f1ec293f2cb37345c247bb4b8c3603f1b5d41bb4f62604520e708998f58ce4a SHA512 c4aa5b7120c5b28a3d646b50b561060553dedba766348260e5db6d56776f1474cec09daeab50e1aca2e1d2d166b9ed57e83673b92bc1c305669c13a719696600 WHIRLPOOL 1d1f0bcb62d8c6dcbe9f87c13de6f03d4e9ae0104373fc565bc83a75e299e5e9b3012ce659e73d551f468a9ba70991cefde7abb52061d39c405750f94c27be4c
+AUX lvm2-2.02.92-dynamic-static-ldflags.patch 3031 SHA256 90b880572186d4d1abf049d39e5f11e4cfedb3707c29eeb9740ceccdb3b62468 SHA512 edb78081d12bebaccd31c2474cb531563b729f1ad966afaff7892556177ee7a68217cc699c65383318066139ba62183adc8334f46f8f8933d62b6b5dcd11a023 WHIRLPOOL 6880a29dfb6747f167c41506e1472c0d48ef7af3a545238c733949f85f3f8f36110fb6908c6f626260f7ed975e56a4e8ccf42ece4d758fa3570154cbe970f2a3
+AUX lvm2-2.02.99-locale-muck.patch 405 SHA256 fa135beaec5a75a271852da44009390e040c53ca05d6932e9565315ee1cd28ef SHA512 1c898693f71d165d55458ab87886a25206930c202b5aea95eba394ad06162cc710c1435e598acb9bcd3fbf46abf5409be972f6ce73bd02b2e177e1af780ae7ad WHIRLPOOL 68f6383c23f23820c964ab11c7581c18661281703b8ae8ccffcf6ff5cbc52c7265f642a3f5130d901c0d44e75132868c47e60830b8bc296555c143aa4eb4f95e
+AUX lvmetad.initd-2.02.105-r2 287 SHA256 5b4c806ef07acdb1d3a8c8a8eda7c43ebc88760a7e9034dd81269fb6c2a44cbf SHA512 5fe1a47a1c54546af70c64fc001db3111e519cb81d8672761b64f50b4c552d0fa79bd0770fb4f4f3e0e0ac584b1e13ea91ac1a33cea1cc1f484cff0dde1a3b0b WHIRLPOOL e9a12a7bf17e3bf8b76132a067a1cb395e92c53757e5a2e102aa5024e71b779fdcd23f32331eb628aff94eeb76bea6ef87ec575ea9528754ee349a0b9b6710a4
+AUX lvmetad.initd-2.02.116-r3 348 SHA256 e7f17004d505eae5d8a2fb336b22f1cdb20bb2ecf85a98daf2485bb4b0d4ff12 SHA512 19aafd07aa6ebe3f05e321048480f746a9aafd1ad4e0323486db5c54035430f607e171d2246e91bbbf8a2a7e15278d793ad13d84e824df7af65345070483a696 WHIRLPOOL d11b18ec2b933c0fcb89a1dc913130ba3f0bd003c65b5f703f92c108e6ca4d00190b9a0b948b0afde13d2017a34da3fab8f2354a2324228597fcac3676fc2265
+AUX lvmlockd.initd-2.02.166-r1 393 SHA256 c7c3c7dfa651030fd277ba6713bd8cc6bfa361068e90316cbf8d501f42eeabf9 SHA512 11d6f186799d8628220eccb4823e5bd251bc3c447e6c3f8a63c025dc4e08e0a7638a8439967ea2ee8a717264887597be4992afca59571ebaa651441782288081 WHIRLPOOL 8d0ace7512b27027a70211097ee661a877fe3c2da5d28c0d863dc21d207f6198cacba0a6f86d620e8387fda7c3f996689da5e971e96a9466a2ea9a713b88636b
+DIST LVM2.2.02.116.tgz 1538340 SHA256 2479d6ea61c405efcfcd8a78390d00c1d2e9c92c0262f3ed599f2c0fb6f0b767 SHA512 992541339637d597257850b4ff7f5348fb7cdcccf806ac8d986a3be1ad1edc5f6bfaedeed5128690c541d1a485cdc75742e90a766363c39867901003518fb84d WHIRLPOOL 1e89ec941882fddba62c9649be46eb5bc6c9cb899669d4bbe4a4a1023c8bf7d8264c4815ef88bb39dedcb9637815411feb826aa102e629d77b80e45e099e398d
+DIST LVM2.2.02.136.tgz 1891010 SHA256 c6af90097d8f7cd851d38c4f57bb3ad7039cfa123f1e336dba957814a298bd8c SHA512 ebda683e7dbeb2c4860a583d47e60756d18127e37a373ab2958af8e54b9bee0d2e3370b7803d88fa4b08564345c88af55bfbac317081160118ce4b3733b69f9d WHIRLPOOL 8020fdddac648e32084801ffaf9b00b8a683870c8dd8dd5969851fd081eb1efd578decd82cd4a7a24fb6150c55afafdd819a76eb7eb6926cdc057455cc1d1618
+DIST LVM2.2.02.139.tgz 1897293 SHA256 f423b1f2eee70efd671afc0982caa92e9413a582404057244021314172ec3a07 SHA512 f112207d7447606915026495b931bffc4c0d68d36b9a8792fe4b7abf8b743bc4559da5c79145cb4d457337118e60552f9df511e31f2799001d29d006f7946cc0 WHIRLPOOL 8a1ca0bb6946b1f6761223a4a9e7c5e3e5247ff4b85bc08734258f4616fbabb0ea7a3b22b4a245367997ad810b4b304b747d8da0bd128c241fbafe645855b7f9
+DIST LVM2.2.02.145.tgz 1986370 SHA256 98b7c4c07c485a462c6a86e1a5265757133ceea36289ead8a419af29ef39560b SHA512 84e28b3efc940837ea9da70fce620744aea0945ba29383b76ad7bcd4b5259b897c714162a8e8b7cfe26ae736a3ad2eca633a3e0df4d6280a32b28bd4cf472d27 WHIRLPOOL b8c6f4b737625547d4c2994d055f3334e2954f160d10840f1405b6a78f25fc17ba1d270f574408c151140e2afceb007cbfa1c146ed105bbdeca001a03368d549
+DIST LVM2.2.02.166.tgz 2148324 SHA256 e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655051b94 SHA512 8bebe9b474f791b5edf5366b0bd24861fbbaf8a83afa2a9e2a8e3917e05e4ecbf6877f018be03ffb4e9b4c8832208264165b85182bf79a07661adf35128b4a21 WHIRLPOOL a4c2e0b2e8da85301b2518b35193304436715fdf45cbc7bc28fd6f7b88af15e611134d5a530d2311b23544aa67c3a7f13fd3780d4d46fc10854e624fb8b27870
+DIST LVM2.2.02.171.tgz 2333643 SHA256 b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964 SHA512 801adcc2ae483f81edf6bfba73090b6b8f710370e48764f08a62da71d617157075bea01593c2535ad5ba71dcb5e0cfe83cec9a65180a6e8b9e0d214bdee79883 WHIRLPOOL fedd62612c6bb4b7764277a0d4474ff3557f041858c71eb7bf2a1c06b646637fe719f91a12c1b5c58ccefa7f4d2daba6bf30409340c52fd3a1b8b01ce62467ab
+DIST LVM2.2.02.172.tgz 2351684 SHA256 eab09d4132e6ade4db22249e554919045948efb908ffa40409e8e8e0c316f708 SHA512 402612667f279be5f1c682b9037022788e9b76e3157907a0832e8b7847c3aa96e4b44a3bd880657a7e577ab46db0e4f283ac6edbb52502e365617633c802ae40 WHIRLPOOL 618123038cbfce1cba7e90e22e5ffccc9d92ddad4b60dd92dedc46ea26729700c6c7003e701c4f2a511f4a34a834ea277f619c557e2865540e4dd9826a8aa76b
+DIST LVM2.2.02.173.tgz 2363504 SHA256 ceb9168c7e009ef487f96a1fe969b23cbb07d920ffb71769affdbdf30fea8d64 SHA512 c2ea8beafe006abf9282f51ec98600fd0ebff816d53c10ecbb19bbf336ada4825135cf9c92ccd364afb18f8b1d7e163eff5bdec8dfdd70dfb9ba45db2f6bdd5e WHIRLPOOL fcafa785bb6c9223b52e31c09570bc68bae9495431b947265e31a2b680b549f76f2fe1d2ccc56420ceec50e8b55ef9314706d9bc50348b3c449192d9fe03c4d0
+EBUILD lvm2-2.02.116-r1.ebuild 9247 SHA256 53f3dc802b283c28b88669fa4086e60cc08700a16c781b64a7dc14bc18b825f9 SHA512 d1274a15d39b795fd94e24ab32bb1bfb776b288aedcb45b8c3ac64f0bcee013c51d4a524c91479e7523d7b28afc68f32a911b9b7adcd1bc7844a31329904e547 WHIRLPOOL 7e9d4725e6be60405510d3c9326fb7fb615125b6063ed954bf2c8006579697324d3d63ff42b2e73f75f1da21bfe93bd9e6e8f2540b1b4e37720da267e5deeeec
+EBUILD lvm2-2.02.116-r2.ebuild 9386 SHA256 9cd89b3c0b0fc41f11a9b68fe879ae58d844a072cd4d52ab977d86b73454dbc9 SHA512 42b3583ca14a706cd13fd4ed79e4f1bf680b6d3312aa8b815be8ffe7b0ccc74107b8df0629ad1a353be354fac6815057ecb9f0dd742be8dabfa9ccc981e30f58 WHIRLPOOL ff2b65d3f6b93c2cb6ec58d25427f173cab94faef09ea5e37fdba50f664f989b3eaedc0009c0f70eed10017a06a575cb9a2f8f8a38366cc89dfa1aa050c04564
+EBUILD lvm2-2.02.116-r4.ebuild 9572 SHA256 285831c790f3f303eceb84cf212f49fcea9bc752494841fe83c9d0ddf5f3078a SHA512 763b64def4f7ce4b2d0ed01c7733b643460ff73c3b8f1ff2dfb79c1ec46b822e38c02be7c0d73c8d2ef5f3090526dd608c0a0df916d4bd0d5af0901669a985f7 WHIRLPOOL aff9a98e3f842bff2e0d82b35a36e204c89302d7c4b138e4fda984dfdf2008fa8b8cff2b099fe305eb15f020a0ea5a1cda36e02a68380bd9c594134af2279c31
+EBUILD lvm2-2.02.116-r5.ebuild 9797 SHA256 98b04c74e73051129eced2aeb9364038b15d68a9c45bbd0fc58ec738431a7865 SHA512 49b95949d45d7afaeb64012b771dc0bf7c16ff7b8d59cb8840b2d3df2875c1c1daf80e2918014bcde381e42220056cb9005e2f5587d0b35aca07ae4c4ac3d009 WHIRLPOOL d8a6b7e0e9d291e4d6bbbb953ed289f48d95c720f71e1ad043b7b09264816463186e773c2f3cda6a1e96cf0f2a18276598f6e7a88ccab1cab9894230bf4574d7
+EBUILD lvm2-2.02.116-r6.ebuild 9797 SHA256 f576343d566ac4d4f75a49e038b3d499964a8b02e52a77cb65fa3508aebc1c17 SHA512 614c3a457fd5d2964d9da4801c537a5b0e3860477a7403ba02c05648d145899572b41b42174c767224f8a08308937ff97db0143f963c9f9b17d7628eef60832f WHIRLPOOL 9cf753e652d2b7b2829dae576f0ace75bbffa663b01703342605d5f414d61dd91f9e3b59e3e12aad639ac7cfd234339542b4476167bca34633ca8f56b37c31ff
+EBUILD lvm2-2.02.116.ebuild 9206 SHA256 631a123e3bf1e7d5a0999c36c1bfadb5fd1e3bc12ca4975055da9aafd0aefb2e SHA512 b687bc4adbe48a19a26581596cec343cc0d99affd8d2d1b035a4fc4ddfa0fb5557315515c13adbac7daeee70156b3bd9a4586c97a7b34fc00f2a367c3e7b447d WHIRLPOOL aa19c2b4521d4d819c128f8d6a1d84fc03a294e13b36f4498ad68de83c30fbb74bb35252167e179ce9eab5a2983313d3e626f27d10d04b33179907a7104022f9
+EBUILD lvm2-2.02.136-r1.ebuild 9605 SHA256 df0cf9d448f859423ebb9ce73a0569cac6bb875d7412e690d49f46ec23656907 SHA512 d50d04bf8743983e600d3b2f86b2deec12154d528c7dafbf7091c9a07d0a93d9cb30dabe4b9ad74115c41a374eab1990578fd72324e562511fefcf3410b299ec WHIRLPOOL 8dd3603c622674498e0fa3e41570e490b73f9ce7557e1f44489c2641e368b3069309994151324de3ebec5f6691b97e50d1cb7eabd9170816c6e96f841a7a1b1f
+EBUILD lvm2-2.02.136-r2.ebuild 9645 SHA256 4bcd5eb09961a153b3277437a17c03fd529348b6d4c7ac14870995b97476724c SHA512 9f76ca5aa607fbc40e52ab77ca0bfe57cae2c54a32def22c9de7e5a4a4485cb875d6263ccb306cfb351d091df435228a2d311f520fc18aed753420065be8622b WHIRLPOOL 3523e0f03ef8d700ba25830fd91e07f9bf6f73c9fe5dec8c8190a9ee741905072ea08a92e802d67a5a7bb99d2cf4372e4e95da9a01048d02d9bdf8cd34ed698c
+EBUILD lvm2-2.02.136.ebuild 9387 SHA256 26d781bbb4a7935ef9147b64a87fcf9e7b798c0064baddeb2ebec7ea3815478d SHA512 59045f50c3c71af252eb3455a496764dad79d327e989bb57546f499fe3f00a83531f505100513f0a62187872e126c3ec53e2090a0697bb63f3557175319a7474 WHIRLPOOL 2c0a9aae781adca899ae7d18296403f5335e197fbd2aa6120ded0cfabe0886a2c7d534ba0ee41ff509eeebf69e7d1848e390fa36cf89726025cfb15da1b087d0
+EBUILD lvm2-2.02.139-r1.ebuild 9645 SHA256 b4bc754193a30400eb223a54ae17307f469bd8c5bebd7bc357a8c5d5a2397e6e SHA512 84e13facf26a8df7ff7cbb3bee6d23d9f97d7a178628c98dcfd0bb84d5e5081313786f98bfdd7332e9b29fe6324bdfac6efb77f00c2b078793e74a8a0b970db2 WHIRLPOOL 3bbfd6840dd9b181f8d2c3721613d215966987ec0a1f32201224dd5c43f19bd7720c5746c1cfc963edb4b75617884d53cff3c8c84effeea28565a2a926468aaf
+EBUILD lvm2-2.02.139.ebuild 9605 SHA256 665b11bbc20341672d8716f65a82def11692bea895167494b615b5a4e4bd926c SHA512 7d0367f75cc7fcb5639dca3e6eaac201392706a2bf0f548c2244c09f8106eabc1fad292fc56913d48a221c9c7cfa325376b3523f75f921e877dc4c3b624b947c WHIRLPOOL 75fe0242b8fc0fadd2cf70a7362ef552664494c5c6237dfbf8c119f3b32c8833ab664f476efc22d97b4ba4c7515f4fd8d9120bdeeba9d6e5a16de2a78cf8f893
+EBUILD lvm2-2.02.145-r1.ebuild 9495 SHA256 25d295e895b3396fc58c95045770733702fac845fc60c45ab9938ca589a006fe SHA512 ff2473dab88dab220b394c15f6ba401b6988c23f4d0dcc864527b428ef583e603c6984dcc58574ea3a25010ca055e7cef711c618f032623ee63edd922861fdbf WHIRLPOOL dbdb0b87ce4358ecf571d1cabbd45dda6c1ba111da1512480511d914f704b8bc01b3175a87e4f121111ce3fb267e4be4cff901e983b0433fc36aefe5f79477c8
+EBUILD lvm2-2.02.145-r2.ebuild 9574 SHA256 eadfe1730819e905a4aeedb3f9a2373daab6575b03499d514a793c66b74c7078 SHA512 e4ace8b6b681901690cf95f15ee6ee583d2ff3cb8287d8ee7970f769e1544f1ed5a657122dbfba9723693146ff046582d97bdc50d966018469798b660ad9064d WHIRLPOOL ddd8944e0ba10755c155c83df8db412bcab6c8f9a1b0529815520c4e0a67fcae78a85cda3e27baec8355a3965ffd6b434fb6f098bb0cb2f15c5d292ee36af4d9
+EBUILD lvm2-2.02.145.ebuild 9633 SHA256 16c48e47ced662da0a09e575fb4e7dba6f15546bde7d45eaa6e347c6c96a7d6a SHA512 950229bcccf673055c61b7c84b40db9ac8220a0f5de5cb8e623596944fe521ffefa50240435a03fcaf52cb8b9dde326b68e84e1b74d31396c91655d554be914a WHIRLPOOL f98a30ef6536c62b4aad6e13b79a7f66fc91d6973a01a2a679fb65613499ff19030765ea8e9e60040c519a595bb5bd2885fbd8b1d905dcd1a0ca454afdfbfe76
+EBUILD lvm2-2.02.166-r2.ebuild 9748 SHA256 238445e8249dd8c043c3fd314b670bb46a2f3afe150230d06ba9243dbaea9727 SHA512 af30011c90f26fb7bbd6ddce7d4da2a52e9fa6fd0ec53b6719b6442a50156d77c46eb8a29739e8b0f05376c750ae420369aa589b14b7732c14c14401df406dab WHIRLPOOL ec2e597a89ee591b21128fb420c8ba3a0e5942bd7a5c0c56e585905729fa2a3a928c82353cb65e6af0f22a12fbcf55ea16f7523342f331d41d99286e07718bf6
+EBUILD lvm2-2.02.166.ebuild 9604 SHA256 9b51a0dda77b9f2eb9a51b7fb8350de03979693436e081a0137f076d08ba272d SHA512 5a1340aeda463ed0abf23b7b9d87e2c2c8ee42306f78e0a3b739a2523fedabcdd5b635e4ba29ff5e81ff39ca60f698ff2d17522bc0f95bf0fcce6efb4e4c7d32 WHIRLPOOL 5cad1fdd4fdfcbacdec46a15829849634adb9140772f9aa67b1682ae5e1ecb7b1fd25476610cde0152c2c80be27c551e23a72c7c077891817a6348df125e53cf
+EBUILD lvm2-2.02.171.ebuild 9786 SHA256 ae836a3dc1e4a176127d2ebad857acde066bf30000a4cb8c733ddfcabf02c8c8 SHA512 64ffd1a9760cb78e08f94c795b70311f6040d6a876097e87d960a0aee02453abbe7887f6e1cdf086c82de45d9088e22a2aa8570a04f6686991447b5630728471 WHIRLPOOL fc2929b6b99dcdb0ea43794b8d6e63f558445b8c78c53ca7fe8bbf69f54cb440cd1b8e369ac6dc8894f44cbcb3d7123f06d21082ced4fea4c078ea965a973975
+EBUILD lvm2-2.02.172.ebuild 9783 SHA256 2d11ffa01c1a5c8c1f498f9205bb255756419aae764022abc8b12d23f267db2b SHA512 7143d36db5322aaf07cde2b76807da87cf9e7f8e35eb1a3a9d50ee173199ba3f6ac4dbbfb56029f5998381deaf04c470a5fff83b552ec1abdc4f1ea646e232a2 WHIRLPOOL d47de72d844ff49d852b29a37f4234bb52ac2c28fcc43d5684f88700685dd42e29d38b542d24f5bdc0f28135a2f089851eb5f080a09d075320aac3e8d446290b
+EBUILD lvm2-2.02.173.ebuild 9783 SHA256 2d11ffa01c1a5c8c1f498f9205bb255756419aae764022abc8b12d23f267db2b SHA512 7143d36db5322aaf07cde2b76807da87cf9e7f8e35eb1a3a9d50ee173199ba3f6ac4dbbfb56029f5998381deaf04c470a5fff83b552ec1abdc4f1ea646e232a2 WHIRLPOOL d47de72d844ff49d852b29a37f4234bb52ac2c28fcc43d5684f88700685dd42e29d38b542d24f5bdc0f28135a2f089851eb5f080a09d075320aac3e8d446290b
+MISC ChangeLog 14543 SHA256 1f3302bd2e563ecfdb72829dacb3c4c92a55f65106b571640a6a6880b3a34250 SHA512 8e29c06d00fe8287aba2ce66a285640475dccd5e9606ad37c66028da93ade772350b15eb22cd4e41820dcca90268f0c3fe76474de0a724998b6db1a6510cc947 WHIRLPOOL 3ebeb9366061a2928970670085ba16cabb645a595117f610f57cf10c32061bf654f1a0e51c7f5e22d89e46e80d6c4ca1bd444f503df33eb8089b29dc5581b285
+MISC ChangeLog-2015 72475 SHA256 224bbc0870f81aa361a1d5e14ec0d6620e38ca885ea981f613b07bf96b69b5c5 SHA512 05bea0dd8353bc302e1cf70cafdff405d74dfcb291f8a145fc879e9a03ce41476dccdd7322dd5bf6c8c2ab6c6b615d29c2f96bccfcf179b4b043fbac6b949dab WHIRLPOOL 7c2e264238f32f892fbddd1e6712f94049a83d2bd66e90d921d4b353812a172ef3924bc2efa6e74e32877d69d52c9720c390ef501976fadc2064b3ea00ec18a7
+MISC metadata.xml 1397 SHA256 2b717cd8b25dab45bbf8e04e9d1ea312132ab7d969dbaabcf5ce3665da04dab1 SHA512 1ed97dbef323b6703097c20de99e9003c88663a887bcf87c9489baddfa180aa3d8645e4e60cd3eb3b9505603997ac3ab98a7ee96a813b77b9dc25862dd332d35 WHIRLPOOL f7d03ebb6752c774d7d0415a0cf1d936e9206e4a923cc9b670d593bbc412baa9a0c96f369fd8be1170642ca8d54ec5165cc1929b88e4267e73ec630ed6b82cde
diff --git a/sys-fs/lvm2/files/clvmd.confd-2.02.39 b/sys-fs/lvm2/files/clvmd.confd-2.02.39
new file mode 100644
index 000000000000..57821709f5f8
--- /dev/null
+++ b/sys-fs/lvm2/files/clvmd.confd-2.02.39
@@ -0,0 +1,9 @@
+# CLVMD_CLUSTER_TIMEOUT -- amount of time to wait for cluster quorum.
+
+CLVMD_CLUSTER_TIMEOUT=30
+
+
+# CLVMD_NODES_TIMEOUT -- amount of time to wait for the other nodes to
+# join the cluster.
+
+CLVMD_NODES_TIMEOUT=60
diff --git a/sys-fs/lvm2/files/clvmd.rc-2.02.39 b/sys-fs/lvm2/files/clvmd.rc-2.02.39
new file mode 100644
index 000000000000..efadd892ee94
--- /dev/null
+++ b/sys-fs/lvm2/files/clvmd.rc-2.02.39
@@ -0,0 +1,145 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+[ -x /usr/sbin/clvmd ] && CLVMD_BIN="/usr/sbin/clvmd" || CLVMD_BIN="/sbin/clvmd"
+
+[ -z "$CLVMD_CLUSTER_TIMEOUT" ] && CLVMD_CLUSTER_TIMEOUT=30
+[ -n "$CLVMD_NODES_TIMEOUT" ] || CLVMD_NODES_TIMEOUT=60
+
+VGCHANGE="/sbin/vgchange"
+VGSCAN="/sbin/vgscan"
+VGDISPLAY="/sbin/vgdisplay"
+CLVMD_PIDFILE="/var/run/clvmd.pid"
+
+depend() {
+ use net dns logger dmeventd
+ want cman corosync openais
+}
+
+load_modules() {
+ local module modules
+ modules=$1
+
+ for module in ${modules}; do
+ ebegin "Loading ${module} kernel module"
+ modprobe ${module}
+ eend $? "Failed to load ${module} kernel module"
+ done
+}
+
+unload_modules() {
+ local module modules
+ modules=$1
+
+ for module in ${modules}; do
+ ebegin "Unloading ${module} kernel module"
+ modprobe -r ${module}
+ eend $? "Failed to unload ${module} kernel module"
+ done
+}
+
+umount_gfs_filesystems() {
+ local sig retry
+ local remaining="$(awk '$3 == "gfs" { print $2 }' /proc/mounts | sort -r)"
+
+ if [ -n "${remaining}" ]
+ then
+ sig=
+ retry=3
+ while [ -n "${remaining}" -a "${retry}" -gt 0 ]
+ do
+ if [ "${retry}" -lt 3 ]
+ then
+ ebegin "Unmounting GFS filesystems (retry)"
+ umount ${remaining} &>/dev/null
+ eend $? "Failed to unmount GFS filesystems this retry"
+ else
+ ebegin "Unmounting GFS filesystems"
+ umount ${remaining} &>/dev/null
+ eend $? "Failed to unmount GFS filesystems"
+ fi
+ remaining="$(awk '$3 == "gfs" { print $2 }' /proc/mounts | sort -r)"
+ [ -z "${remaining}" ] && break
+ /bin/fuser -k -m ${sig} ${remaining} &>/dev/null
+ sleep 5
+ retry=$((${retry} -1))
+ sig=-9
+ done
+ fi
+}
+
+
+start_volumes() {
+ ebegin "Scanning LVM volumes"
+ $VGSCAN > /dev/null 2>&1
+ eend $?
+
+ ret=$?
+ if [ "$ret" -eq 5 ]
+ then
+ einfo " Waiting for other nodes to join the cluster ($CLVMD_NODES_TIMEOUT seconds)"
+ fi
+
+ clustervgs=`$VGDISPLAY 2> /dev/null | awk 'BEGIN {RS="VG Name"} {if (/Clustered/) print $1;}'`
+ for vg in $clustervgs; do
+ ebegin " Activating Clustered VG: ${vg} "
+
+ wait=0
+ while [ -n "$($VGCHANGE -a y ${vg} 2>&1 |grep "clvmd not running")" ]; do
+ if [ $wait -lt $CLVMD_NODES_TIMEOUT ]; then
+ sleep 3
+ wait=$(($wait + 3))
+ else
+ eend 1
+ fi
+ done
+ eend 0
+ done
+}
+
+stop_volumes() {
+ # Deactivate only clustered volumes
+ clustervgs=`$VGDISPLAY 2> /dev/null | awk 'BEGIN {RS="VG Name"} {if (/Clustered/) print $1;}'`
+ for vg in $clustervgs; do
+ ebegin " Shutting Down Clustered VG: ${vg} "
+ $VGCHANGE -anl ${vg} >/dev/null
+ eend $?
+ done
+}
+
+
+start() {
+ local module=$(awk '$1 == "dm_mod" { print $1 }' /proc/{modules,devices})
+
+ if [ -z "${module}" ]; then
+ load_modules "dm-mod"
+ sleep 1s
+ fi
+
+ ebegin "Starting clvmd ($CLVMD_CLUSTER_TIMEOUT seconds)"
+
+ start-stop-daemon --start --quiet --exec ${CLVMD_BIN} -- -T ${CLVMD_CLUSTER_TIMEOUT}
+ eend $?
+
+ start_volumes
+}
+
+stop() {
+
+ # umount GFS filesystems
+ umount_gfs_filesystems
+
+ #stop_volumes
+
+ ebegin "Stopping clvmd"
+ #start-stop-daemon --stop -s TERM --quiet --exec ${CLVMD_BIN} --name clvmd
+ killall -TERM ${CLVMD_BIN} >/dev/null
+ eend $?
+
+ #local module=$(awk '$1 == "dm_mod" { print $1 }' /proc/modules)
+
+ #if [[ "$?" -eq 0 && ! -z "${module}" ]]; then
+ # unload_modules "dm-mod"
+ #fi
+}
diff --git a/sys-fs/lvm2/files/device-mapper.conf-1.02.22-r3 b/sys-fs/lvm2/files/device-mapper.conf-1.02.22-r3
new file mode 100644
index 000000000000..bc7a25158635
--- /dev/null
+++ b/sys-fs/lvm2/files/device-mapper.conf-1.02.22-r3
@@ -0,0 +1 @@
+RC_AFTER="lvm"
diff --git a/sys-fs/lvm2/files/device-mapper.rc-2.02.105-r2 b/sys-fs/lvm2/files/device-mapper.rc-2.02.105-r2
new file mode 100644
index 000000000000..7dbacce0d94f
--- /dev/null
+++ b/sys-fs/lvm2/files/device-mapper.rc-2.02.105-r2
@@ -0,0 +1,146 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ # As of .67-r1, we call ALL lvm start/stop scripts with --sysinit, that
+ # means dmeventd is NOT notified, as it cannot be safely running
+ before dmeventd checkfs fsck
+ after modules
+}
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+# char **build_dmsetup_command(volume)
+#
+# Returns complete dmsetup command given single volume name
+build_dmsetup_command() {
+ local count dmsetup_cmd
+
+ # Number of lines mentioning volume name
+ count=$(grep -v -e '^[[:space:]]*\(#\|$\)' /etc/dmtab | grep -c ${1})
+
+ # If there's just one line:
+ if [ ${count} -eq 1 ] ; then
+ echo "echo $(grep -v -e '^[[:space:]]*\(#\|$\)' /etc/dmtab | \
+ grep ${1} | awk '{$1=""; print $0}') | /sbin/dmsetup create ${1}"
+
+ # For all cases with more lines:
+ elif [ ${count} -gt 1 ] ; then
+ for c in $( seq 1 ${count} ) ; do
+ if [ ${c} -eq 1 ] ; then
+ # Heavy escaping in awk-statement because we cannot use apostrophes
+ dmsetup_cmd="echo -e $(grep -v -e '^[[:space:]]*\(#\|$\)' /etc/dmtab | \
+ grep ${1} | awk NR==${c}\ \{\$1=\"\"\;\ print\ \$0\})"
+ else
+ # Append starting with newline
+ dmsetup_cmd="${dmsetup_cmd}\\\\n \
+ $(grep -v -e '^[[:space:]]*\(#\|$\)' /etc/dmtab | \
+ grep ${1} | awk NR==${c}\ \{\$1=\"\"\;\ print\ \$0\})"
+ fi
+ done
+ echo "${dmsetup_cmd} | /sbin/dmsetup create ${1}"
+ fi
+
+ return 0
+}
+
+# char **get_new_dm_volumes(void)
+#
+# Return unique volumes from /etc/dmtab
+get_new_dm_volumes() {
+ local volume
+
+ # Filter comments and blank lines
+ grep -v -e '^[[:space:]]*\(#\|$\)' /etc/dmtab | \
+ awk '{ print $1 }' | \
+ uniq | \
+ while read volume ; do
+ # If it exists, skip it
+ dmvolume_exists "${volume%:}" && continue
+
+ echo "${volume%:}"
+ done
+
+ return 0
+}
+
+# int dmvolume_exists(volume)
+#
+# Return true if volume exists in DM table
+dmvolume_exists() {
+ local x line volume=$1
+
+ [ -z "${volume}" ] && return 1
+
+ /sbin/dmsetup ls 2>/dev/null | \
+ while read line ; do
+ for x in ${line} ; do
+ # the following conditonal return only breaks out
+ # of the while loop, as it is running in a pipe.
+ [ "${x}" = "${volume}" ] && return 1
+ # We only want to check the volume name
+ break
+ done
+ done
+
+ # if 1 was returned from the above loop, then indicate that
+ # volume exists
+ [ $? = 1 ] && return 0
+
+ # otherwise the loop exited normally and the volume does not
+ # exist
+ return 1
+}
+
+# int is_empty_dm_volume(volume)
+#
+# Return true if the volume exists in DM table, but is empty/non-valid
+is_empty_dm_volume() {
+ local table volume=$1
+
+ set -- $(/sbin/dmsetup table 2>/dev/null | grep -e "^${volume}:")
+ [ "${volume}" = "$1" -a -z "$2" ]
+}
+
+
+start() {
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ # Ensure the dirs exist for locking and running
+ checkpath -q -d -m 0700 -o root:root /run/lvm /run/lock/lvm
+
+ local x volume
+
+ if [ -x /sbin/dmsetup -a -c /dev/mapper/control -a -f /etc/dmtab ] ; then
+ [ -n "$(get_new_dm_volumes)" ] && \
+ einfo " Setting up device-mapper volumes:"
+
+ get_new_dm_volumes | \
+ while read x ; do
+ [ -n "${x}" ] || continue
+
+ volume="${x##* }"
+
+ ebegin " Creating volume: ${volume}"
+ if ! eval $(build_dmsetup_command ${volume}) >/dev/null 2>/dev/null ; then
+ eend 1 " Error creating volume: ${volume}"
+ # dmsetup still adds an empty volume in some cases,
+ # so lets remove it
+ is_empty_dm_volume "${volume}" && \
+ /sbin/dmsetup remove "${volume}" 2>/dev/null
+ else
+ eend 0
+ fi
+ done
+ fi
+}
+
diff --git a/sys-fs/lvm2/files/dmeventd.initd-2.02.67-r1 b/sys-fs/lvm2/files/dmeventd.initd-2.02.67-r1
new file mode 100644
index 000000000000..930e84baa866
--- /dev/null
+++ b/sys-fs/lvm2/files/dmeventd.initd-2.02.67-r1
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+PIDFILE=/run/dmeventd.pid
+BIN=/sbin/dmeventd
+
+depend() {
+ # As of .67-r1, we call ALL lvm start/stop scripts with --sysinit, that
+ # means dmeventd is NOT notified, as it cannot be safely running
+ after lvm device-mapper
+}
+
+start() {
+ ebegin "Starting dmeventd"
+ start-stop-daemon --start --exec $BIN --pidfile $PIDFILE
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping dmeventd"
+ start-stop-daemon --stop --exec $BIN --pidfile $PIDFILE
+ eend $?
+}
+
diff --git a/sys-fs/lvm2/files/dmtab b/sys-fs/lvm2/files/dmtab
new file mode 100644
index 000000000000..37a0d2864629
--- /dev/null
+++ b/sys-fs/lvm2/files/dmtab
@@ -0,0 +1,11 @@
+#/etc/dmraid: config file for adding device-mapper volumes at boot
+
+# Format: <volume name>: <table>
+# Example: isw0: 0 312602976 striped 2 128 /dev/sda 0 /dev/sdb 0
+#
+# Alternatively you can create all your volumes the first time, and just run:
+#
+# dmsetup table >> /etc/dmtab
+#
+# and verify that they are correct.
+
diff --git a/sys-fs/lvm2/files/lvm-monitoring.initd-2.02.105-r2 b/sys-fs/lvm2/files/lvm-monitoring.initd-2.02.105-r2
new file mode 100644
index 000000000000..d603718cc226
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm-monitoring.initd-2.02.105-r2
@@ -0,0 +1,38 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# This script is based on upstream file
+# LVM2.2.02.67/scripts/lvm2_monitoring_init_red_hat.in
+
+depend() {
+ # As of .67-r1, we call ALL lvm start/stop scripts with --sysinit, that
+ # means dmeventd is NOT notified, as it cannot be safely running
+ need lvm dmeventd
+}
+
+VGCHANGE=/sbin/vgchange
+VGS=/sbin/vgs
+
+start() {
+ ret=0
+ # TODO do we want to separate out already active groups only?
+ VGSLIST=`$VGS --noheadings -o name --rows 2> /dev/null`
+ ebegin "Starting LVM monitoring for VGs ${VGSLIST}:"
+ $VGCHANGE --monitor y --poll y ${VGSLIST}
+ ret=$?
+ eend $ret
+ return $ret
+
+}
+
+stop() {
+ ret=0
+ # TODO do we want to separate out already active groups only?
+ VGSLIST=`$VGS --noheadings -o name --rows 2> /dev/null`
+ ebegin "Stopping LVM monitoring for VGs ${VGSLIST}:"
+ $VGCHANGE --monitor n ${VGSLIST}
+ ret=$?
+ eend $ret
+ return $ret
+}
diff --git a/sys-fs/lvm2/files/lvm.confd-2.02.28-r2 b/sys-fs/lvm2/files/lvm.confd-2.02.28-r2
new file mode 100644
index 000000000000..2fbd8668c376
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.confd-2.02.28-r2
@@ -0,0 +1,5 @@
+# LVM should normally only be started after mdraid is available
+# this is because LVM physical volumes are very often MD devices.
+RC_AFTER="mdraid"
+
+# vim: ft=gentoo-conf-d
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.105-r2 b/sys-fs/lvm2/files/lvm.rc-2.02.105-r2
new file mode 100644
index 000000000000..c59f9c3c8788
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.105-r2
@@ -0,0 +1,96 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ before checkfs fsck
+ after modules device-mapper
+ need lvmetad sysfs
+}
+
+config='global { locking_dir = "/run/lock/lvm" }'
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+start() {
+ # LVM support for /usr, /home, /opt ....
+ # This should be done *before* checking local
+ # volumes, or they never get checked.
+
+ # NOTE: Add needed modules for LVM or RAID, etc
+ # to /etc/modules.autoload if needed
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+ if [ -z "${CDBOOT}" ] ; then
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ if [ -d /proc/lvm ] || dm_in_proc ; then
+ ebegin "Setting up the Logical Volume Manager"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}pvscan\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgscan --mknodes\n"
+ # And turn them on!
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ly\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed to setup the LVM"
+ fi
+ fi
+}
+
+stop() {
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+# Stop LVM2
+if [ -x /sbin/vgs ] && \
+ [ -x /sbin/vgchange ] && \
+ [ -x /sbin/lvchange ] && \
+ [ -f /etc/lvmtab -o -d /etc/lvm ] && \
+ [ -d /proc/lvm -o "`grep device-mapper /proc/misc 2>/dev/null`" ]
+then
+ einfo "Shutting down the Logical Volume Manager"
+
+
+ VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null)
+
+ if [ "$VGS" ]
+ then
+ ebegin " Shutting Down LVs & VGs"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${VGS}\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ln ${VGS}\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed (possibly some LVs still needed for /usr or root)"
+ fi
+
+ einfo "Finished shutting down the Logical Volume Manager"
+ return 0
+fi
+}
+
+# vim:ts=4
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.116-r4 b/sys-fs/lvm2/files/lvm.rc-2.02.116-r4
new file mode 100644
index 000000000000..74b4a41b9ea0
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.116-r4
@@ -0,0 +1,132 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+_get_lvm_path() {
+ local lvm_path=
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ echo "${lvm_path}"
+}
+
+_need_lvmetad()
+{
+ local lvm_path="$(_get_lvm_path)"
+ [ ! -x "${lvm_path}" ] && return 1
+ ${lvm_path} dumpconfig global | grep -q 'use_lvmetad=1'
+}
+
+depend() {
+ before checkfs fsck
+ after modules device-mapper
+ # We may use lvmetad based on the configuration. If we added lvmetad
+ # support while lvm2 is running then we aren't dependent on it. For the
+ # more common case, if its disabled in the config we aren't dependent
+ # on it.
+ config /etc/lvm/lvm.conf
+ local _need=
+ if service_started; then
+ _need=$(service_get_value need)
+ else
+ if _need_lvmetad; then
+ _need="${_need} lvmetad"
+ fi
+ fi
+ need sysfs ${_need}
+}
+
+config='global { locking_dir = "/run/lock/lvm" }'
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+start() {
+ # LVM support for /usr, /home, /opt ....
+ # This should be done *before* checking local
+ # volumes, or they never get checked.
+
+ # NOTE: Add needed modules for LVM or RAID, etc
+ # to /etc/modules.autoload if needed
+ lvm_path="$(_get_lvm_path)"
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+ if [ -z "${CDBOOT}" ] ; then
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ if [ -d /proc/lvm ] || dm_in_proc ; then
+ ebegin "Setting up the Logical Volume Manager"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}pvscan\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgscan --mknodes\n"
+ # And turn them on!
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ly\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed to setup the LVM"
+ fi
+ fi
+}
+
+start_post()
+{
+ # Save if we needed lvmetad
+ if _need_lvmetad; then
+ service_set_value need lvmetad
+ fi
+}
+
+stop() {
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+# Stop LVM2
+if [ -x /sbin/vgs ] && \
+ [ -x /sbin/vgchange ] && \
+ [ -x /sbin/lvchange ] && \
+ [ -f /etc/lvmtab -o -d /etc/lvm ] && \
+ [ -d /proc/lvm -o "`grep device-mapper /proc/misc 2>/dev/null`" ]
+then
+ einfo "Shutting down the Logical Volume Manager"
+
+ VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null)
+
+ if [ "$VGS" ]
+ then
+ ebegin " Shutting Down LVs & VGs"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${VGS}\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ln ${VGS}\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed (possibly some LVs still needed for /usr or root)"
+ fi
+
+ einfo "Finished shutting down the Logical Volume Manager"
+ return 0
+fi
+}
+
+# vim:ts=4
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.116-r6 b/sys-fs/lvm2/files/lvm.rc-2.02.116-r6
new file mode 100644
index 000000000000..1bf075fae3ef
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.116-r6
@@ -0,0 +1,132 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+_get_lvm_path() {
+ local lvm_path=
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ echo "${lvm_path}"
+}
+
+_need_lvmetad()
+{
+ local lvm_path="$(_get_lvm_path)"
+ [ ! -x "${lvm_path}" ] && return 1
+ ${lvm_path} dumpconfig global 2>/dev/null | grep -q 'use_lvmetad=1'
+}
+
+depend() {
+ before checkfs fsck
+ after modules device-mapper
+ # We may use lvmetad based on the configuration. If we added lvmetad
+ # support while lvm2 is running then we aren't dependent on it. For the
+ # more common case, if its disabled in the config we aren't dependent
+ # on it.
+ config /etc/lvm/lvm.conf
+ local _need=
+ if service_started; then
+ _need=$(service_get_value need)
+ else
+ if _need_lvmetad; then
+ _need="${_need} lvmetad"
+ fi
+ fi
+ need sysfs ${_need}
+}
+
+config='global { locking_dir = "/run/lock/lvm" }'
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+start() {
+ # LVM support for /usr, /home, /opt ....
+ # This should be done *before* checking local
+ # volumes, or they never get checked.
+
+ # NOTE: Add needed modules for LVM or RAID, etc
+ # to /etc/modules.autoload if needed
+ lvm_path="$(_get_lvm_path)"
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+ if [ -z "${CDBOOT}" ] ; then
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ if [ -d /proc/lvm ] || dm_in_proc ; then
+ ebegin "Setting up the Logical Volume Manager"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}pvscan\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgscan --mknodes\n"
+ # And turn them on!
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ly\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed to setup the LVM"
+ fi
+ fi
+}
+
+start_post()
+{
+ # Save if we needed lvmetad
+ if _need_lvmetad; then
+ service_set_value need lvmetad
+ fi
+}
+
+stop() {
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+# Stop LVM2
+if [ -x /sbin/vgs ] && \
+ [ -x /sbin/vgchange ] && \
+ [ -x /sbin/lvchange ] && \
+ [ -f /etc/lvmtab -o -d /etc/lvm ] && \
+ [ -d /proc/lvm -o "`grep device-mapper /proc/misc 2>/dev/null`" ]
+then
+ einfo "Shutting down the Logical Volume Manager"
+
+ VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null)
+
+ if [ "$VGS" ]
+ then
+ ebegin " Shutting Down LVs & VGs"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${VGS}\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ln ${VGS}\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed (possibly some LVs still needed for /usr or root)"
+ fi
+
+ einfo "Finished shutting down the Logical Volume Manager"
+ return 0
+fi
+}
+
+# vim:ts=4
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.166-r2 b/sys-fs/lvm2/files/lvm.rc-2.02.166-r2
new file mode 100644
index 000000000000..11329bbeaf33
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.166-r2
@@ -0,0 +1,145 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+_get_lvm_path() {
+ local lvm_path=
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ echo "${lvm_path}"
+}
+
+_need_lvmetad()
+{
+ local lvm_path="$(_get_lvm_path)"
+ [ ! -x "${lvm_path}" ] && return 1
+ ${lvm_path} dumpconfig global 2>/dev/null | grep -q 'use_lvmetad=1'
+}
+
+_need_lvmlockd()
+{
+ local lvm_path="$(_get_lvm_path)"
+ [ ! -x "${lvm_path}" ] && return 1
+ ${lvm_path} dumpconfig global 2>/dev/null | grep -q 'use_lvmlockd=1'
+}
+depend() {
+ before checkfs fsck
+ after modules device-mapper
+ # We may use lvmetad based on the configuration. If we added lvmetad
+ # support while lvm2 is running then we aren't dependent on it. For the
+ # more common case, if its disabled in the config we aren't dependent
+ # on it.
+ config /etc/lvm/lvm.conf
+ local _need=
+ if service_started; then
+ _need=$(service_get_value need)
+ else
+ if _need_lvmetad; then
+ _need="${_need} lvmetad"
+ fi
+ if _need_lvmlockd; then
+ _need="${_need} lvmlockd"
+ fi
+ fi
+ need sysfs ${_need}
+}
+
+config='global { locking_dir = "/run/lock/lvm" }'
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+start() {
+ # LVM support for /usr, /home, /opt ....
+ # This should be done *before* checking local
+ # volumes, or they never get checked.
+
+ # NOTE: Add needed modules for LVM or RAID, etc
+ # to /etc/modules.autoload if needed
+ lvm_path="$(_get_lvm_path)"
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+ if [ -z "${CDBOOT}" ] ; then
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ if [ -d /proc/lvm ] || dm_in_proc ; then
+ ebegin "Setting up the Logical Volume Manager"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}pvscan\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgscan --mknodes\n"
+ # And turn them on!
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ly\n"
+ if _need_lvmlockd; then
+ # Start lockd VGs as required
+ lvm_commands="${lvm_commands}vgchange --lock-start --lock-opt auto\n"
+ fi
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed to setup the LVM"
+ fi
+ fi
+}
+
+start_post()
+{
+ # Save if we needed lvmetad
+ if _need_lvmetad; then
+ service_set_value need lvmetad
+ fi
+}
+
+stop() {
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+# Stop LVM2
+if [ -x /sbin/vgs ] && \
+ [ -x /sbin/vgchange ] && \
+ [ -x /sbin/lvchange ] && \
+ [ -f /etc/lvmtab -o -d /etc/lvm ] && \
+ [ -d /proc/lvm -o "`grep device-mapper /proc/misc 2>/dev/null`" ]
+then
+ einfo "Shutting down the Logical Volume Manager"
+
+ VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null)
+
+ if [ "$VGS" ]
+ then
+ ebegin " Shutting Down LVs & VGs"
+ #still echo stderr for debugging
+ lvm_commands="#! ${lvm_path} --config '${config}'\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}lvchange --sysinit -a ln ${VGS}\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgchange --sysinit -a ln ${VGS}\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed (possibly some LVs still needed for /usr or root)"
+ fi
+
+ einfo "Finished shutting down the Logical Volume Manager"
+ return 0
+fi
+}
+
+# vim:ts=4
diff --git a/sys-fs/lvm2/files/lvm.rc-2.02.172 b/sys-fs/lvm2/files/lvm.rc-2.02.172
new file mode 100644
index 000000000000..9e22c2801ff1
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm.rc-2.02.172
@@ -0,0 +1,145 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+_get_lvm_path() {
+ local lvm_path=
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ echo "${lvm_path}"
+}
+
+_need_lvmetad()
+{
+ local lvm_path="$(_get_lvm_path)"
+ [ ! -x "${lvm_path}" ] && return 1
+ ${lvm_path} dumpconfig global 2>/dev/null | grep -q 'use_lvmetad=1'
+}
+
+_need_lvmlockd()
+{
+ local lvm_path="$(_get_lvm_path)"
+ [ ! -x "${lvm_path}" ] && return 1
+ ${lvm_path} dumpconfig global 2>/dev/null | grep -q 'use_lvmlockd=1'
+}
+depend() {
+ before checkfs fsck
+ after modules device-mapper
+ # We may use lvmetad based on the configuration. If we added lvmetad
+ # support while lvm2 is running then we aren't dependent on it. For the
+ # more common case, if its disabled in the config we aren't dependent
+ # on it.
+ config /etc/lvm/lvm.conf
+ local _need=
+ if service_started; then
+ _need=$(service_get_value need)
+ else
+ if _need_lvmetad; then
+ _need="${_need} lvmetad"
+ fi
+ if _need_lvmlockd; then
+ _need="${_need} lvmlockd"
+ fi
+ fi
+ need sysfs ${_need}
+}
+
+config='global { locking_dir = "/run/lock/lvm" }'
+
+dm_in_proc() {
+ local retval=0
+ for x in devices misc ; do
+ grep -qs 'device-mapper' /proc/${x}
+ retval=$((${retval} + $?))
+ done
+ return ${retval}
+}
+
+start() {
+ # LVM support for /usr, /home, /opt ....
+ # This should be done *before* checking local
+ # volumes, or they never get checked.
+
+ # NOTE: Add needed modules for LVM or RAID, etc
+ # to /etc/modules.autoload if needed
+ lvm_path="$(_get_lvm_path)"
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+ if [ -z "${CDBOOT}" ] ; then
+ if [ -e /proc/modules ] && ! dm_in_proc ; then
+ modprobe dm-mod 2>/dev/null
+ fi
+ if [ -d /proc/lvm ] || dm_in_proc ; then
+ ebegin "Setting up the Logical Volume Manager"
+ #still echo stderr for debugging
+ lvm_commands="#!${lvm_path}\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}pvscan --config '${config}'\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgscan --config '${config}' --mknodes\n"
+ # And turn them on!
+ lvm_commands="${lvm_commands}vgchange --config '${config}' --sysinit -a ly\n"
+ if _need_lvmlockd; then
+ # Start lockd VGs as required
+ lvm_commands="${lvm_commands}vgchange --config '${config}' --lock-start --lock-opt auto\n"
+ fi
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 >/dev/null
+ eend $? "Failed to setup the LVM"
+ fi
+ fi
+}
+
+start_post()
+{
+ # Save if we needed lvmetad
+ if _need_lvmetad; then
+ service_set_value need lvmetad
+ fi
+}
+
+stop() {
+ for lvm_path in /bin/lvm /sbin/lvm ; do
+ [ -x "$lvm_path" ] && break
+ done
+ if [ ! -x "$lvm_path" ]; then
+ eerror "Cannot find lvm binary in /sbin or /bin!"
+ return 1
+ fi
+# Stop LVM2
+if [ -x /sbin/vgs ] && \
+ [ -x /sbin/vgchange ] && \
+ [ -x /sbin/lvchange ] && \
+ [ -f /etc/lvmtab -o -d /etc/lvm ] && \
+ [ -d /proc/lvm -o "`grep device-mapper /proc/misc 2>/dev/null`" ]
+then
+ einfo "Shutting down the Logical Volume Manager"
+
+ VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null)
+
+ if [ "$VGS" ]
+ then
+ ebegin " Shutting Down LVs & VGs"
+ #still echo stderr for debugging
+ lvm_commands="#!${lvm_path}\n"
+ # Extra PV find pass because some devices might not have been available until very recently
+ lvm_commands="${lvm_commands}lvchange --config '${config}' --sysinit -a ln ${VGS}\n"
+ # Now make the nodes
+ lvm_commands="${lvm_commands}vgchange --config '${config}' --sysinit -a ln ${VGS}\n"
+ # Order of this is important, have to work around dash and LVM readline
+ printf "%b\n" "${lvm_commands}" | $lvm_path /proc/self/fd/0 --config "${config}" >/dev/null
+ eend $? "Failed (possibly some LVs still needed for /usr or root)"
+ fi
+
+ einfo "Finished shutting down the Logical Volume Manager"
+ return 0
+fi
+}
+
+# vim:ts=4
diff --git a/sys-fs/lvm2/files/lvm2-2.02.106-pthread-pkgconfig.patch b/sys-fs/lvm2/files/lvm2-2.02.106-pthread-pkgconfig.patch
new file mode 100644
index 000000000000..594d60617259
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.106-pthread-pkgconfig.patch
@@ -0,0 +1,32 @@
+Make sure that libdm usage always brings in pthread libraries, both in
+pkgconfig and during manual build.
+
+--- tools/Makefile.in
++++ tools/Makefile.in
+@@ -87,6 +87,7 @@
+ INSTALL_LVM_TARGETS += install_tools_static
+ INSTALL_DMSETUP_TARGETS += install_dmsetup_static
+ INSTALL_CMDLIB_TARGETS += install_cmdlib_static
++ STATIC_LIBS += @PTHREAD_LIBS@
+ endif
+
+ LVMLIBS = $(LVMINTERNAL_LIBS)
+@@ -118,6 +119,10 @@
+
+ include $(top_builddir)/make.tmpl
+
++ifeq ("@STATIC_LINK@", "yes")
++ STATIC_LIBS += @PTHREAD_LIBS@
++endif
++
+ device-mapper: $(TARGETS_DM)
+
+ CFLAGS_dmsetup.o += $(UDEV_CFLAGS) $(EXTRA_EXEC_CFLAGS)
+--- libdm/libdevmapper.pc.in
++++ libdm/libdevmapper.pc.in
+@@ -8,4 +8,5 @@
+ Version: @DM_LIB_PATCHLEVEL@
+ Cflags: -I${includedir}
+ Libs: -L${libdir} -ldevmapper
++Libs.private: -L${libdir} @PTHREAD_LIBS@
+ Requires.private: @SELINUX_PC@ @UDEV_PC@
diff --git a/sys-fs/lvm2/files/lvm2-2.02.108-example.conf.in.patch b/sys-fs/lvm2/files/lvm2-2.02.108-example.conf.in.patch
new file mode 100644
index 000000000000..af5a5afe258d
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.108-example.conf.in.patch
@@ -0,0 +1,50 @@
+Maintainer note: Forward ported without editing from lvm2-2.02.99-example.conf.in.patch to apply cleanly.
+
+--- conf/example.conf.in
++++ conf/example.conf.in
+@@ -105,6 +105,10 @@
+ # By default we accept every block device:
+ # filter = [ "a/.*/" ]
+
++ # Gentoo: we exclude /dev/nbd by default, because it makes a lot of kernel
++ # noise when you probed while not available.
++ filter = [ "r|/dev/nbd.*|", "a/.*/" ]
++
+ # Exclude the cdrom drive
+ # filter = [ "r|/dev/cdrom|" ]
+
+@@ -522,7 +526,8 @@
+ # e.g. vgscan.lvm1 and they will stop working after you start using
+ # the new lvm2 on-disk metadata format.
+ # The default value is set when the tools are built.
+- # fallback_to_lvm1 = 0
++ # Gentoo: the LVM tools are a seperate package.
++ fallback_to_lvm1 = 0
+
+ # The default metadata format that commands should use - "lvm1" or "lvm2".
+ # The command line override is -M1 or -M2.
+@@ -1182,12 +1187,13 @@
+
+ # Metadata settings
+ #
+-# metadata {
++metadata {
+ # Default number of copies of metadata to hold on each PV. 0, 1 or 2.
+ # You might want to override it from the command line with 0
+ # when running pvcreate on new PVs which are to be added to large VGs.
+
+- # pvmetadatacopies = 1
++ # Gentoo: enable for data safety, but PV resize is then disabled.
++ # pvmetadatacopies = 2
+
+ # Default number of copies of metadata to maintain for each VG.
+ # If set to a non-zero value, LVM automatically chooses which of
+@@ -1222,7 +1228,7 @@
+ # the supplied toolset to make changes (e.g. vgcfgrestore).
+
+ # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
+-#}
++}
+
+ # Event daemon
+ #
diff --git a/sys-fs/lvm2/files/lvm2-2.02.108-static-pkgconfig-libs.patch b/sys-fs/lvm2/files/lvm2-2.02.108-static-pkgconfig-libs.patch
new file mode 100644
index 000000000000..3ab699868a5d
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.108-static-pkgconfig-libs.patch
@@ -0,0 +1,104 @@
+Maintainer note: Forward ported without editing from lvm2-2.02.107-static-pkgconfig-libs.patch to apply cleanly.
+
+--- configure.in
++++ configure.in
+@@ -1067,6 +1067,7 @@
+ fi])
+ if test "$BLKID_WIPING" = yes; then
+ BLKID_PC="blkid"
++ BLKID_STATIC_LIBS=`$PKG_CONFIG --static --libs $BLKID_PC`
+ AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.])
+ fi
+ fi
+@@ -1092,6 +1093,7 @@
+ if test "$UDEV_SYNC" = yes; then
+ pkg_config_init
+ PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"])
++ UDEV_STATIC_LIBS=`$PKG_CONFIG --static --libs libudev`
+ AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
+ fi
+
+@@ -1312,19 +1314,32 @@
+ if test "$SELINUX" = yes; then
+ AC_CHECK_LIB([sepol], [sepol_check_context], [
+ AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.])
+- SELINUX_LIBS="-lsepol"])
++ SEPOL_LIBS="-lsepol"])
++
++ dnl -- init pkgconfig if required
++ if test x$PKGCONFIG_INIT != x1; then
++ pkg_config_init
++ fi
++ PKG_CHECK_MODULES(SELINUX, libselinux, [
++ SELINUX_PC="libselinux"
++ SELINUX_STATIC_LIBS=`$PKG_CONFIG --static --libs libselinux`
++ SELINUX_LIBS="$SELINUX_LIBS $SEPOL_LIBS"
++ AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
++ ],[
++ dnl -- old non-pkgconfig method, is buggy with static builds
+
+ AC_CHECK_LIB([selinux], [is_selinux_enabled], [
+ AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout)
+ AC_CHECK_HEADERS([selinux/label.h])
+ AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
+- SELINUX_LIBS="-lselinux $SELINUX_LIBS"
++ SELINUX_LIBS="-lselinux $SEPOL_LIBS"
+ SELINUX_PC="libselinux"
+ HAVE_SELINUX=yes ], [
+ AC_MSG_WARN(Disabling selinux)
+ SELINUX_LIBS=
+ SELINUX_PC=
+ HAVE_SELINUX=no ])
++ ])
+ fi
+
+ ################################################################################
+@@ -1626,6 +1641,7 @@
+ ################################################################################
+ AC_SUBST(APPLIB)
+ AC_SUBST(AWK)
++AC_SUBST(BLKID_STATIC_LIBS)
+ AC_SUBST(BLKID_PC)
+ AC_SUBST(BLKID_WIPING)
+ AC_SUBST(BUILD_CMIRRORD)
+@@ -1721,6 +1737,7 @@
+ AC_SUBST(SALCK_CFLAGS)
+ AC_SUBST(SALCK_LIBS)
+ AC_SUBST(SELINUX_LIBS)
++AC_SUBST(SELINUX_STATIC_LIBS)
+ AC_SUBST(SELINUX_PC)
+ AC_SUBST(SNAPSHOTS)
+ AC_SUBST(STATICDIR)
+@@ -1735,6 +1752,7 @@
+ AC_SUBST(CACHE_DUMP_CMD)
+ AC_SUBST(CACHE_REPAIR_CMD)
+ AC_SUBST(CACHE_RESTORE_CMD)
++AC_SUBST(UDEV_STATIC_LIBS)
+ AC_SUBST(UDEV_PC)
+ AC_SUBST(UDEV_RULES)
+ AC_SUBST(UDEV_SYNC)
+--- make.tmpl.in
++++ make.tmpl.in
+@@ -43,7 +43,7 @@
+
+ LIBS = @LIBS@
+ # Extra libraries always linked with static binaries
+-STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS)
++STATIC_LIBS = $(SELINUX_STATIC_LIBS) $(UDEV_STATIC_LIBS) $(BLKID_STATIC_LIBS)
+ DEFS += @DEFS@
+ # FIXME set this only where it's needed, not globally?
+ CFLAGS += @CFLAGS@
+@@ -57,10 +57,13 @@
+ PTHREAD_LIBS = @PTHREAD_LIBS@
+ READLINE_LIBS = @READLINE_LIBS@
+ SELINUX_LIBS = @SELINUX_LIBS@
++SELINUX_STATIC_LIBS = @SELINUX_STATIC_LIBS@
+ UDEV_CFLAGS = @UDEV_CFLAGS@
+ UDEV_LIBS = @UDEV_LIBS@
++UDEV_STATIC_LIBS = @UDEV_STATIC_LIBS@
+ BLKID_CFLAGS = @BLKID_CFLAGS@
+ BLKID_LIBS = @BLKID_LIBS@
++BLKID_STATIC_LIBS = @BLKID_STATIC_LIBS@
+ TESTING = @TESTING@
+
+ # Setup directory variables
diff --git a/sys-fs/lvm2/files/lvm2-2.02.129-dynamic-static-ldflags.patch b/sys-fs/lvm2/files/lvm2-2.02.129-dynamic-static-ldflags.patch
new file mode 100644
index 000000000000..efdfb81a8d1a
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.129-dynamic-static-ldflags.patch
@@ -0,0 +1,59 @@
+--- LVM2.2.02.129/configure.in
++++ LVM2.2.02.129/configure.in
+@@ -31,6 +31,7 @@
+ linux*)
+ CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
+ ELDFLAGS="-Wl,--export-dynamic"
++ STATIC_LDFLAGS="-Wl,--no-export-dynamic"
+ # FIXME Generate list and use --dynamic-list=.dlopen.sym
+ CLDWHOLEARCHIVE="-Wl,-whole-archive"
+ CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
+@@ -2008,6 +2009,7 @@
+ AC_SUBST(SELINUX_PC)
+ AC_SUBST(SNAPSHOTS)
+ AC_SUBST(STATICDIR)
++AC_SUBST(STATIC_LDFLAGS)
+ AC_SUBST(STATIC_LINK)
+ AC_SUBST(TESTING)
+ AC_SUBST(TESTSUITE_DATA)
+--- LVM2.2.02.129/daemons/dmeventd/Makefile.in
++++ LVM2.2.02.129/daemons/dmeventd/Makefile.in
+@@ -66,7 +66,7 @@
+ $(DL_LIBS) $(LVMLIBS) $(LIBS) -rdynamic
+
+ dmeventd.static: $(LIB_STATIC) dmeventd.o $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) $(STATIC_LDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \
+ dmeventd.o $(DL_LIBS) $(LVMLIBS) $(LIBS) $(STATIC_LIBS)
+
+ ifeq ("@PKGCONFIG@", "yes")
+--- LVM2.2.02.129/make.tmpl.in
++++ LVM2.2.02.129/make.tmpl.in
+@@ -48,6 +48,7 @@
+ # FIXME set this only where it's needed, not globally?
+ CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@
+ LDFLAGS ?= @COPTIMISE_FLAG@ @LDFLAGS@
++STATIC_LDFLAGS += @STATIC_LDFLAGS@
+ CLDFLAGS += @CLDFLAGS@
+ ELDFLAGS += @ELDFLAGS@
+ LDDEPS += @LDDEPS@
+--- LVM2.2.02.129/tools/Makefile.in
++++ LVM2.2.02.129/tools/Makefile.in
+@@ -129,7 +129,7 @@
+ -o $@ dmsetup.o -ldevmapper $(LIBS)
+
+ dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(STATIC_LDFLAGS) -static -L$(interfacebuilddir) \
+ -o $@ dmsetup.o -ldevmapper $(STATIC_LIBS) $(LIBS)
+
+ all: device-mapper
+@@ -146,7 +146,7 @@
+ endif
+
+ lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(STATIC_LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
+ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
+
+ liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
diff --git a/sys-fs/lvm2/files/lvm2-2.02.129-example.conf.in.patch b/sys-fs/lvm2/files/lvm2-2.02.129-example.conf.in.patch
new file mode 100644
index 000000000000..076e06080ca3
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.129-example.conf.in.patch
@@ -0,0 +1,52 @@
+Maintainer note: Forward ported without editing from lvm2-2.02.108-example.conf.in.patch to apply cleanly.
+
+--- LVM2.2.02.129/conf/example.conf.in
++++ LVM2.2.02.129/conf/example.conf.in
+@@ -128,6 +128,9 @@
+ # Example
+ # Accept every block device:
+ # filter = [ "a|.*/|" ]
++ # Gentoo: we exclude /dev/nbd by default, because it makes a lot of kernel
++ # noise when you probed while not available.
++ filter = [ "r|/dev/nbd.*|", "a/.*/" ]
+ # Reject the cdrom drive:
+ # filter = [ "r|/dev/cdrom|" ]
+ # Work with just loopback devices, e.g. for testing:
+@@ -620,7 +623,8 @@
+ # tools need to be installed with .lvm1 suffices, e.g. vgscan.lvm1.
+ # They will stop working once the lvm2 on-disk metadata format is used.
+ # This configuration option has an automatic default value.
+- # fallback_to_lvm1 = @DEFAULT_FALLBACK_TO_LVM1@
++ # Gentoo: the LVM tools are a seperate package.
++ fallback_to_lvm1 = 0
+
+ # Configuration option global/format.
+ # The default metadata format that commands should use.
+@@ -1413,7 +1417,7 @@
+
+ # Configuration section metadata.
+ # This configuration section has an automatic default value.
+-# metadata {
++metadata {
+
+ # Configuration option metadata/pvmetadatacopies.
+ # Number of copies of metadata to store on each PV.
+@@ -1431,7 +1435,8 @@
+ #
+ # This configuration option is advanced.
+ # This configuration option has an automatic default value.
+- # pvmetadatacopies = 1
++ # Gentoo: enable for data safety, but PV resize is then disabled.
++ # pvmetadatacopies = 2
+
+ # Configuration option metadata/vgmetadatacopies.
+ # Number of copies of metadata to maintain for each VG.
+@@ -1486,7 +1491,7 @@
+ #
+ # This configuration option is advanced.
+ # This configuration option does not have a default value defined.
+-# }
++}
+
+ # Configuration section report.
+ # LVM report command output formatting.
diff --git a/sys-fs/lvm2/files/lvm2-2.02.129-static-pkgconfig-libs.patch b/sys-fs/lvm2/files/lvm2-2.02.129-static-pkgconfig-libs.patch
new file mode 100644
index 000000000000..239694523b3d
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.129-static-pkgconfig-libs.patch
@@ -0,0 +1,102 @@
+--- LVM2.2.02.129/configure.in
++++ LVM2.2.02.129/configure.in
+@@ -1287,6 +1287,7 @@
+ fi])
+ if test "$BLKID_WIPING" = yes; then
+ BLKID_PC="blkid"
++ BLKID_STATIC_LIBS=`$PKG_CONFIG --static --libs $BLKID_PC`
+ DEFAULT_USE_BLKID_WIPING=1
+ AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.])
+ else
+@@ -1332,6 +1333,7 @@
+ if test "$UDEV_SYNC" = yes; then
+ pkg_config_init
+ PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"])
++ UDEV_STATIC_LIBS=`$PKG_CONFIG --static --libs libudev`
+ AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
+ fi
+
+@@ -1558,19 +1560,32 @@
+ if test "$SELINUX" = yes; then
+ AC_CHECK_LIB([sepol], [sepol_check_context], [
+ AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.])
+- SELINUX_LIBS="-lsepol"])
++ SEPOL_LIBS="-lsepol"])
++
++ dnl -- init pkgconfig if required
++ if test x$PKGCONFIG_INIT != x1; then
++ pkg_config_init
++ fi
++ PKG_CHECK_MODULES(SELINUX, libselinux, [
++ SELINUX_PC="libselinux"
++ SELINUX_STATIC_LIBS=`$PKG_CONFIG --static --libs libselinux`
++ SELINUX_LIBS="$SELINUX_LIBS $SEPOL_LIBS"
++ AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
++ ],[
++ dnl -- old non-pkgconfig method, is buggy with static builds
+
+ AC_CHECK_LIB([selinux], [is_selinux_enabled], [
+ AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout)
+ AC_CHECK_HEADERS([selinux/label.h])
+ AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
+- SELINUX_LIBS="-lselinux $SELINUX_LIBS"
++ SELINUX_LIBS="-lselinux $SEPOL_LIBS"
+ SELINUX_PC="libselinux"
+ HAVE_SELINUX=yes ], [
+ AC_MSG_WARN(Disabling selinux)
+ SELINUX_LIBS=
+ SELINUX_PC=
+ HAVE_SELINUX=no ])
++ ])
+ fi
+
+ ################################################################################
+@@ -1902,6 +1917,7 @@
+ ################################################################################
+ AC_SUBST(APPLIB)
+ AC_SUBST(AWK)
++AC_SUBST(BLKID_STATIC_LIBS)
+ AC_SUBST(BLKID_PC)
+ AC_SUBST(BUILD_CMIRRORD)
+ AC_SUBST(BUILD_DMEVENTD)
+@@ -2005,6 +2021,7 @@
+ AC_SUBST(SALCK_CFLAGS)
+ AC_SUBST(SALCK_LIBS)
+ AC_SUBST(SELINUX_LIBS)
++AC_SUBST(SELINUX_STATIC_LIBS)
+ AC_SUBST(SELINUX_PC)
+ AC_SUBST(SNAPSHOTS)
+ AC_SUBST(STATICDIR)
+@@ -2020,6 +2037,7 @@
+ AC_SUBST(CACHE_DUMP_CMD)
+ AC_SUBST(CACHE_REPAIR_CMD)
+ AC_SUBST(CACHE_RESTORE_CMD)
++AC_SUBST(UDEV_STATIC_LIBS)
+ AC_SUBST(UDEV_PC)
+ AC_SUBST(UDEV_RULES)
+ AC_SUBST(UDEV_SYNC)
+--- LVM2.2.02.129/make.tmpl.in
++++ LVM2.2.02.129/make.tmpl.in
+@@ -43,7 +43,7 @@
+
+ LIBS = @LIBS@
+ # Extra libraries always linked with static binaries
+-STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS)
++STATIC_LIBS = $(SELINUX_STATIC_LIBS) $(UDEV_STATIC_LIBS) $(BLKID_STATIC_LIBS)
+ DEFS += @DEFS@
+ # FIXME set this only where it's needed, not globally?
+ CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@
+@@ -58,10 +58,13 @@
+ PTHREAD_LIBS = @PTHREAD_LIBS@
+ READLINE_LIBS = @READLINE_LIBS@
+ SELINUX_LIBS = @SELINUX_LIBS@
++SELINUX_STATIC_LIBS = @SELINUX_STATIC_LIBS@
+ UDEV_CFLAGS = @UDEV_CFLAGS@
+ UDEV_LIBS = @UDEV_LIBS@
++UDEV_STATIC_LIBS = @UDEV_STATIC_LIBS@
+ BLKID_CFLAGS = @BLKID_CFLAGS@
+ BLKID_LIBS = @BLKID_LIBS@
++BLKID_STATIC_LIBS = @BLKID_STATIC_LIBS@
+ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+ TESTING = @TESTING@
+
diff --git a/sys-fs/lvm2/files/lvm2-2.02.130-pthread-pkgconfig.patch b/sys-fs/lvm2/files/lvm2-2.02.130-pthread-pkgconfig.patch
new file mode 100644
index 000000000000..11db632e2e7e
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.130-pthread-pkgconfig.patch
@@ -0,0 +1,32 @@
+Make sure that libdm usage always brings in pthread libraries, both in
+pkgconfig and during manual build.
+
+--- LVM2.2.02.130/libdm/libdevmapper.pc.in
++++ LVM2.2.02.130/libdm/libdevmapper.pc.in
+@@ -9,4 +9,4 @@
+ Cflags: -I${includedir}
+ Libs: -L${libdir} -ldevmapper
+ Requires.private: @SELINUX_PC@ @UDEV_PC@
+-Libs.private: -lm @RT_LIB@
++Libs.private: -lm @RT_LIB@ @PTHREAD_LIBS@
+--- LVM2.2.02.130/tools/Makefile.in
++++ LVM2.2.02.130/tools/Makefile.in
+@@ -90,6 +90,7 @@
+ INSTALL_LVM_TARGETS += install_tools_static
+ INSTALL_DMSETUP_TARGETS += install_dmsetup_static
+ INSTALL_CMDLIB_TARGETS += install_cmdlib_static
++ STATIC_LIBS += @PTHREAD_LIBS@
+ endif
+
+ LVMLIBS = $(LVMINTERNAL_LIBS)
+@@ -120,6 +121,10 @@
+
+ include $(top_builddir)/make.tmpl
+
++ifeq ("@STATIC_LINK@", "yes")
++ STATIC_LIBS += @PTHREAD_LIBS@
++endif
++
+ device-mapper: $(TARGETS_DM)
+
+ CFLAGS_dmsetup.o += $(UDEV_CFLAGS) $(EXTRA_EXEC_CFLAGS)
diff --git a/sys-fs/lvm2/files/lvm2-2.02.139-dynamic-static-ldflags.patch b/sys-fs/lvm2/files/lvm2-2.02.139-dynamic-static-ldflags.patch
new file mode 100644
index 000000000000..312e546e2403
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.139-dynamic-static-ldflags.patch
@@ -0,0 +1,63 @@
+diff -ur LVM2.2.02.139_O/configure.in LVM2.2.02.139/configure.in
+--- LVM2.2.02.139_O/configure.in 2016-01-19 12:54:33.155187005 +0000
++++ LVM2.2.02.139/configure.in 2016-01-19 12:56:39.487181372 +0000
+@@ -31,6 +31,7 @@
+ linux*)
+ CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
+ ELDFLAGS="-Wl,--export-dynamic"
++ STATIC_LDFLAGS="-Wl,--no-export-dynamic"
+ # FIXME Generate list and use --dynamic-list=.dlopen.sym
+ CLDWHOLEARCHIVE="-Wl,-whole-archive"
+ CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
+@@ -2009,6 +2010,7 @@
+ AC_SUBST(SELINUX_PC)
+ AC_SUBST(SNAPSHOTS)
+ AC_SUBST(STATICDIR)
++AC_SUBST(STATIC_LDFLAGS)
+ AC_SUBST(STATIC_LINK)
+ AC_SUBST(TESTING)
+ AC_SUBST(TESTSUITE_DATA)
+diff -ur LVM2.2.02.139_O/daemons/dmeventd/Makefile.in LVM2.2.02.139/daemons/dmeventd/Makefile.in
+--- LVM2.2.02.139_O/daemons/dmeventd/Makefile.in 2016-01-19 12:54:33.278186999 +0000
++++ LVM2.2.02.139/daemons/dmeventd/Makefile.in 2016-01-19 12:57:44.277178484 +0000
+@@ -67,7 +67,7 @@
+ $(DL_LIBS) $(LVMLIBS) $(LIBS) -rdynamic
+
+ dmeventd.static: $(LIB_STATIC) dmeventd.o $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) $(STATIC_LDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \
+ dmeventd.o $(DL_LIBS) $(LVMLIBS) $(LIBS) $(STATIC_LIBS)
+
+ ifeq ("@PKGCONFIG@", "yes")
+diff -ur LVM2.2.02.139_O/make.tmpl.in LVM2.2.02.139/make.tmpl.in
+--- LVM2.2.02.139_O/make.tmpl.in 2016-01-19 12:54:33.529186988 +0000
++++ LVM2.2.02.139/make.tmpl.in 2016-01-19 12:58:31.514176378 +0000
+@@ -49,6 +49,7 @@
+ # FIXME set this only where it's needed, not globally?
+ CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@
+ LDFLAGS ?= @COPTIMISE_FLAG@ @LDFLAGS@
++STATIC_LDFLAGS += @STATIC_LDFLAGS@
+ CLDFLAGS += @CLDFLAGS@
+ ELDFLAGS += @ELDFLAGS@
+ LDDEPS += @LDDEPS@
+diff -ur LVM2.2.02.139_O/tools/Makefile.in LVM2.2.02.139/tools/Makefile.in
+--- LVM2.2.02.139_O/tools/Makefile.in 2016-01-08 18:51:21.000000000 +0000
++++ LVM2.2.02.139/tools/Makefile.in 2016-01-19 13:00:08.349172060 +0000
+@@ -129,7 +129,7 @@
+ -o $@ dmsetup.o -ldevmapper $(LIBS)
+
+ dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(STATIC_LDFLAGS) -static -L$(interfacebuilddir) \
+ -o $@ dmsetup.o -ldevmapper $(M_LIBS) $(PTHREAD_LIBS) $(STATIC_LIBS) $(LIBS)
+
+ all: device-mapper
+@@ -146,7 +146,7 @@
+ endif
+
+ lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(STATIC_LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
+ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
+
+ liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
diff --git a/sys-fs/lvm2/files/lvm2-2.02.145-mkdev.patch b/sys-fs/lvm2/files/lvm2-2.02.145-mkdev.patch
new file mode 100644
index 000000000000..f91dccd5c188
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.145-mkdev.patch
@@ -0,0 +1,127 @@
+https://bugs.gentoo.org/580062
+
+From 2a1d0fa8ea765604cd8274aac5aa7876f1c145c9 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 19 Apr 2016 23:53:22 -0400
+Subject: [PATCH] convert major/minor/makedev handling
+
+Most of the files in here use MAJOR/MINOR/MKDEV macros, but a few
+missed it. Update the defines in those files to match them.
+---
+ daemons/cmirrord/functions.c | 16 ++++++++++++----
+ daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c | 12 ++++++++++--
+ lib/filters/filter-sysfs.c | 6 ++++--
+ 3 files changed, 26 insertions(+), 8 deletions(-)
+
+diff --git a/daemons/cmirrord/functions.c b/daemons/cmirrord/functions.c
+index e9d3c09..5b3cb38 100644
+--- a/daemons/cmirrord/functions.c
++++ b/daemons/cmirrord/functions.c
+@@ -20,6 +20,14 @@
+ #include <time.h>
+ #include <unistd.h>
+
++#ifdef __linux__
++# include "kdev_t.h"
++#else
++# define MAJOR(x) major((x))
++# define MINOR(x) minor((x))
++# define MKDEV(x,y) makedev((x),(y))
++#endif
++
+ #define BYTE_SHIFT 3
+
+ /*
+@@ -333,8 +341,8 @@ static int find_disk_path(char *major_minor_str, char *path_rtn, int *unlink_pat
+ continue;
+ }
+ if (S_ISBLK(statbuf.st_mode) &&
+- (major(statbuf.st_rdev) == major) &&
+- (minor(statbuf.st_rdev) == minor)) {
++ (MAJOR(statbuf.st_rdev) == major) &&
++ (MINOR(statbuf.st_rdev) == minor)) {
+ LOG_DBG(" %s: YES", dep->d_name);
+ if (closedir(dp))
+ LOG_DBG("Unable to closedir /dev/mapper %s",
+@@ -1451,7 +1459,7 @@ static int disk_status_info(struct log_c *lc, struct dm_ulog_request *rq)
+ }
+
+ r = sprintf(data, "3 clustered-disk %d:%d %c",
+- major(statbuf.st_rdev), minor(statbuf.st_rdev),
++ MAJOR(statbuf.st_rdev), MINOR(statbuf.st_rdev),
+ (lc->log_dev_failed) ? 'D' : 'A');
+ if (r < 0)
+ return r;
+@@ -1514,7 +1522,7 @@ static int disk_status_table(struct log_c *lc, struct dm_ulog_request *rq)
+ }
+
+ r = sprintf(data, "clustered-disk %d:%d %u %s%s ",
+- major(statbuf.st_rdev), minor(statbuf.st_rdev),
++ MAJOR(statbuf.st_rdev), MINOR(statbuf.st_rdev),
+ lc->region_size,
+ (lc->sync == DEFAULTSYNC) ? "" :
+ (lc->sync == NOSYNC) ? "nosync " : "sync ",
+diff --git a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
+index 7b060ed..4098203 100644
+--- a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
++++ b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
+@@ -20,6 +20,14 @@
+ #include <stdarg.h>
+ #include <pthread.h>
+
++#ifdef __linux__
++# include "kdev_t.h"
++#else
++# define MAJOR(x) major((x))
++# define MINOR(x) minor((x))
++# define MKDEV(x,y) makedev((x),(y))
++#endif
++
+ /* First warning when snapshot is 80% full. */
+ #define WARNING_THRESH (DM_PERCENT_1 * 80)
+ /* Run a check every 5%. */
+@@ -148,8 +156,8 @@ static void _umount(const char *device, int major, int minor)
+ continue; /* can't stat, skip this one */
+
+ if (S_ISBLK(st.st_mode) &&
+- major(st.st_rdev) == major &&
+- minor(st.st_rdev) == minor) {
++ MAJOR(st.st_rdev) == major &&
++ MINOR(st.st_rdev) == minor) {
+ log_error("Unmounting invalid snapshot %s from %s.", device, words[1]);
+ if (!_run(UMOUNT_COMMAND, "-fl", words[1], NULL))
+ log_error("Failed to umount snapshot %s from %s: %s.",
+diff --git a/lib/filters/filter-sysfs.c b/lib/filters/filter-sysfs.c
+index 3115f86..5f76e8b 100644
+--- a/lib/filters/filter-sysfs.c
++++ b/lib/filters/filter-sysfs.c
+@@ -19,6 +19,8 @@
+
+ #include <dirent.h>
+
++#include "kdev_t.h"
++
+ static int _locate_sysfs_blocks(const char *sysfs_dir, char *path, size_t len,
+ unsigned *sysfs_depth)
+ {
+@@ -120,7 +122,7 @@ static struct dev_set *_dev_set_create(struct dm_pool *mem,
+
+ static unsigned _hash_dev(dev_t dev)
+ {
+- return (major(dev) ^ minor(dev)) & (SET_BUCKETS - 1);
++ return (MAJOR(dev) ^ MINOR(dev)) & (SET_BUCKETS - 1);
+ }
+
+ /*
+@@ -171,7 +173,7 @@ static int _parse_dev(const char *file, FILE *fp, dev_t *result)
+ return 0;
+ }
+
+- *result = makedev(major, minor);
++ *result = MKDEV(major, minor);
+ return 1;
+ }
+
+--
+2.7.4
+
diff --git a/sys-fs/lvm2/files/lvm2-2.02.172-static-pkgconfig-libs.patch b/sys-fs/lvm2/files/lvm2-2.02.172-static-pkgconfig-libs.patch
new file mode 100644
index 000000000000..e25cb760ea89
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.172-static-pkgconfig-libs.patch
@@ -0,0 +1,104 @@
+diff -Nuar --exclude '*.orig' --exclude '*.rej' LVM2.2.02.172.orig/configure.in LVM2.2.02.172/configure.in
+--- LVM2.2.02.172.orig/configure.in 2017-06-28 08:54:27.000000000 -0700
++++ LVM2.2.02.172/configure.in 2017-07-09 14:58:11.933777531 -0700
+@@ -1324,6 +1324,7 @@
+ PKG_CHECK_MODULES(BLKID, blkid >= 2.24,
+ [ BLKID_WIPING=yes
+ BLKID_PC="blkid"
++ BLKID_STATIC_LIBS=`$PKG_CONFIG --static --libs $BLKID_PC`
+ DEFAULT_USE_BLKID_WIPING=1
+ AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.])
+ ], [if test "$BLKID_WIPING" = maybe; then
+@@ -1372,6 +1373,7 @@
+ if test "$UDEV_SYNC" = yes; then
+ pkg_config_init
+ PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"])
++ UDEV_STATIC_LIBS=`$PKG_CONFIG --static --libs libudev`
+ AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
+
+ AC_CHECK_LIB(udev, udev_device_get_is_initialized, AC_DEFINE([HAVE_LIBUDEV_UDEV_DEVICE_GET_IS_INITIALIZED], 1,
+@@ -1653,19 +1655,32 @@
+ if test "$SELINUX" = yes; then
+ AC_CHECK_LIB([sepol], [sepol_check_context], [
+ AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.])
+- SELINUX_LIBS="-lsepol"])
++ SEPOL_LIBS="-lsepol"])
++
++ dnl -- init pkgconfig if required
++ if test x$PKGCONFIG_INIT != x1; then
++ pkg_config_init
++ fi
++ PKG_CHECK_MODULES(SELINUX, libselinux, [
++ SELINUX_PC="libselinux"
++ SELINUX_STATIC_LIBS=`$PKG_CONFIG --static --libs libselinux`
++ SELINUX_LIBS="$SELINUX_LIBS $SEPOL_LIBS"
++ AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
++ ],[
++ dnl -- old non-pkgconfig method, is buggy with static builds
+
+ AC_CHECK_LIB([selinux], [is_selinux_enabled], [
+ AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout)
+ AC_CHECK_HEADERS([selinux/label.h])
+ AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
+- SELINUX_LIBS="-lselinux $SELINUX_LIBS"
++ SELINUX_LIBS="-lselinux $SEPOL_LIBS"
+ SELINUX_PC="libselinux"
+ HAVE_SELINUX=yes ], [
+ AC_MSG_WARN(Disabling selinux)
+ SELINUX_LIBS=
+ SELINUX_PC=
+ HAVE_SELINUX=no ])
++ ])
+ fi
+
+ ################################################################################
+@@ -2011,6 +2026,7 @@
+ ################################################################################
+ AC_SUBST(APPLIB)
+ AC_SUBST(AWK)
++AC_SUBST(BLKID_STATIC_LIBS)
+ AC_SUBST(BLKID_PC)
+ AC_SUBST(BUILD_CMIRRORD)
+ AC_SUBST(BUILD_DMEVENTD)
+@@ -2125,6 +2141,7 @@
+ AC_SUBST(SALCK_CFLAGS)
+ AC_SUBST(SALCK_LIBS)
+ AC_SUBST(SELINUX_LIBS)
++AC_SUBST(SELINUX_STATIC_LIBS)
+ AC_SUBST(SELINUX_PC)
+ AC_SUBST(SNAPSHOTS)
+ AC_SUBST(STATICDIR)
+@@ -2140,6 +2157,7 @@
+ AC_SUBST(CACHE_DUMP_CMD)
+ AC_SUBST(CACHE_REPAIR_CMD)
+ AC_SUBST(CACHE_RESTORE_CMD)
++AC_SUBST(UDEV_STATIC_LIBS)
+ AC_SUBST(UDEV_PC)
+ AC_SUBST(UDEV_RULES)
+ AC_SUBST(UDEV_SYNC)
+diff -Nuar --exclude '*.orig' --exclude '*.rej' LVM2.2.02.172.orig/make.tmpl.in LVM2.2.02.172/make.tmpl.in
+--- LVM2.2.02.172.orig/make.tmpl.in 2017-06-28 08:54:28.000000000 -0700
++++ LVM2.2.02.172/make.tmpl.in 2017-07-09 14:56:38.262933483 -0700
+@@ -53,7 +53,7 @@
+
+ LIBS = @LIBS@
+ # Extra libraries always linked with static binaries
+-STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS)
++STATIC_LIBS = $(SELINUX_STATIC_LIBS) $(UDEV_STATIC_LIBS) $(BLKID_STATIC_LIBS)
+ DEFS += @DEFS@
+ # FIXME set this only where it's needed, not globally?
+ CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@
+@@ -68,10 +68,13 @@
+ PTHREAD_LIBS = @PTHREAD_LIBS@
+ READLINE_LIBS = @READLINE_LIBS@
+ SELINUX_LIBS = @SELINUX_LIBS@
++SELINUX_STATIC_LIBS = @SELINUX_STATIC_LIBS@
+ UDEV_CFLAGS = @UDEV_CFLAGS@
+ UDEV_LIBS = @UDEV_LIBS@
++UDEV_STATIC_LIBS = @UDEV_STATIC_LIBS@
+ BLKID_CFLAGS = @BLKID_CFLAGS@
+ BLKID_LIBS = @BLKID_LIBS@
++BLKID_STATIC_LIBS = @BLKID_STATIC_LIBS@
+ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+ TESTING = @TESTING@
+
diff --git a/sys-fs/lvm2/files/lvm2-2.02.56-lvm2create_initrd.patch b/sys-fs/lvm2/files/lvm2-2.02.56-lvm2create_initrd.patch
new file mode 100644
index 000000000000..59aaa9b34a08
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.56-lvm2create_initrd.patch
@@ -0,0 +1,72 @@
+--- LVM2.2.02.56/scripts/lvm2create_initrd/lvm2create_initrd.orig 2006-11-21 22:41:56.000000000 +0000
++++ LVM2.2.02.56/scripts/lvm2create_initrd/lvm2create_initrd 2009-12-26 01:47:08.025224602 +0000
+@@ -54,7 +54,9 @@
+ DEVRAM=/tmp/initrd.$$
+
+ # set defaults
+-BINFILES=${BINFILES:-"`which lvm` `which bash` `which busybox` `which pivot_root`"}
++LVM=`which lvm.static`
++LVM=${LVM:-"`which lvm`"}
++BINFILES=${BINFILES:-"${LVM} `which bash` `which busybox` `which pivot_root`"}
+ BASICDEVICES=${BASICDEVICES:-"std consoleonly fd"}
+ BLOCKDEVICES=${BLOCKDEVICES:-"md hda hdb hdc hdd sda sdb sdc sdd"}
+ MAKEDEV=${MAKEDEV:-"debian"}
+@@ -119,6 +121,10 @@
+ echo "$PRE Mounting /proc"
+ mount -t proc none /proc
+
++# We need /sys for lvm
++echo "$PRE Mounting /sys"
++mount -t sysfs sysfs /sys
++
+ # plug in modules listed in /etc/modules
+ if [ -f /etc/modules ]; then
+ echo -n "$PRE plugging in kernel modules:"
+@@ -179,26 +185,29 @@
+ # run a shell if we're passed lvm2rescue on commandline
+ grep lvm2rescue /proc/cmdline 1>/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+- lvm vgchange --ignorelockingfailure -P -a y
++ $LVM vgchange --ignorelockingfailure -P -a y
+ do_shell
+ else
+- lvm vgchange --ignorelockingfailure -a y
++ $LVM vgchange --ignorelockingfailure -a y
+ fi
+
+ echo "$PRE Mounting root filesystem $rootvol ro"
+ mkdir /rootvol
+ if ! mount -t auto -o ro $rootvol /rootvol; then
+- echo "\t*FAILED*";
++ echo "\t*FAILED TRYING TO MOUNT ROOTVOL*";
+ do_shell
+ fi
+
+ echo "$PRE Umounting /proc"
+ umount /proc
+
++echo "$PRE Umounting /sys"
++umount /sys
++
+ echo "$PRE Changing roots"
+ cd /rootvol
+ if ! pivot_root . initrd ; then
+- echo "\t*FAILED*"
++ echo "\t*FAILED PIVOT TO NEW ROOT*"
+ do_shell
+ fi
+
+@@ -356,7 +365,7 @@
+ fi
+
+ verbose "creating basic set of directories in $TMPMNT"
+-(cd $TMPMNT; mkdir bin dev etc lib proc sbin var)
++(cd $TMPMNT; mkdir bin dev etc lib proc sbin sys var)
+ if [ $? -ne 0 ]; then
+ echo "$cmd -- ERROR creating directories in $TMPMNT"
+ cleanup 1
+@@ -499,4 +508,3 @@
+ FINALTXT
+
+ cleanup 0
+-
diff --git a/sys-fs/lvm2/files/lvm2-2.02.63-always-make-static-libdm.patch b/sys-fs/lvm2/files/lvm2-2.02.63-always-make-static-libdm.patch
new file mode 100644
index 000000000000..5ddcb4e56711
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.63-always-make-static-libdm.patch
@@ -0,0 +1,42 @@
+diff -Nuar --exclude '*~' LVM2.2.02.63.orig/daemons/dmeventd/Makefile.in LVM2.2.02.63/daemons/dmeventd/Makefile.in
+--- LVM2.2.02.63.orig/daemons/dmeventd/Makefile.in 2010-04-09 14:42:48.000000000 -0700
++++ LVM2.2.02.63/daemons/dmeventd/Makefile.in 2010-04-19 11:53:27.000000000 -0700
+@@ -28,11 +28,12 @@
+ INSTALL_LIB_TARGETS = install_lib_dynamic
+
+ LIB_NAME = libdevmapper-event
++LIB_STATIC = $(LIB_NAME).a
++INSTALL_LIB_TARGETS += install_lib_static
++TARGETS += $(LIB_STATIC)
+ ifeq ("@STATIC_LINK@", "yes")
+- LIB_STATIC = $(LIB_NAME).a
+- TARGETS += $(LIB_STATIC) dmeventd.static
++ TARGETS += dmeventd.static
+ INSTALL_DMEVENTD_TARGETS += install_dmeventd_static
+- INSTALL_LIB_TARGETS += install_lib_static
+ endif
+
+ LIB_VERSION = $(LIB_VERSION_DM)
+diff -Nuar --exclude '*~' LVM2.2.02.63.orig/libdm/Makefile.in LVM2.2.02.63/libdm/Makefile.in
+--- LVM2.2.02.63.orig/libdm/Makefile.in 2010-04-09 14:42:51.000000000 -0700
++++ LVM2.2.02.63/libdm/Makefile.in 2010-04-19 11:52:20.000000000 -0700
+@@ -34,8 +34,8 @@
+
+ INCLUDES = -I$(srcdir)/$(interface) -I$(srcdir)
+
+-ifeq ("@STATIC_LINK@", "yes")
+ LIB_STATIC = $(interface)/libdevmapper.a
++ifeq ("@STATIC_LINK@", "yes")
+ endif
+
+ LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX)
+@@ -63,8 +63,8 @@
+
+ INSTALL_TYPE = install_dynamic
+
+-ifeq ("@STATIC_LINK@", "yes")
+ INSTALL_TYPE += install_static
++ifeq ("@STATIC_LINK@", "yes")
+ endif
+
+ ifeq ("@PKGCONFIG@", "yes")
diff --git a/sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch b/sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch
new file mode 100644
index 000000000000..7f0bfb894f02
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.67-createinitrd.patch
@@ -0,0 +1,18 @@
+X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=301331
+X-Gentoo-Bug: 301331
+
+diff -Nuar LVM2.2.02.67.orig/scripts/lvm2create_initrd/lvm2create_initrd LVM2.2.02.67/scripts/lvm2create_initrd/lvm2create_initrd
+--- LVM2.2.02.67.orig/scripts/lvm2create_initrd/lvm2create_initrd 2010-06-07 18:44:34.182980475 +0000
++++ LVM2.2.02.67/scripts/lvm2create_initrd/lvm2create_initrd 2010-06-07 18:51:27.636312899 +0000
+@@ -469,9 +469,9 @@
+ rmdir $TMPMNT/lost+found
+
+ echo "$cmd -- ummounting ram disk"
+-umount $DEVRAM
++umount $TMPMNT
+ if [ $? -ne 0 ]; then
+- echo "$cmd -- ERROR umounting $DEVRAM"
++ echo "$cmd -- ERROR umounting $TMPMNT"
+ cleanup 1
+ fi
+
diff --git a/sys-fs/lvm2/files/lvm2-2.02.70-asneeded.patch b/sys-fs/lvm2/files/lvm2-2.02.70-asneeded.patch
new file mode 100644
index 000000000000..1bae0db10c1d
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.70-asneeded.patch
@@ -0,0 +1,15 @@
+http://bugs.gentoo.org/330255
+
+liblvm2app.so: undefined reference to `floor'
+
+--- LVM2/liblvm/Makefile.in
++++ LVM2/liblvm/Makefile.in
+@@ -39,7 +39,7 @@
+
+ include $(top_builddir)/make.tmpl
+
+-LIBS += $(LVMINTERNAL_LIBS) -ldevmapper
++LIBS += $(LVMINTERNAL_LIBS) -ldevmapper -lm
+
+ ifeq ("@DMEVENTD@", "yes")
+ LIBS += -ldevmapper-event
diff --git a/sys-fs/lvm2/files/lvm2-2.02.92-dynamic-static-ldflags.patch b/sys-fs/lvm2/files/lvm2-2.02.92-dynamic-static-ldflags.patch
new file mode 100644
index 000000000000..de2b294ef3e4
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.92-dynamic-static-ldflags.patch
@@ -0,0 +1,63 @@
+diff -Nuar --exclude '*.rej' --exclude '*.orig' LVM2.2.02.92.orig/configure.in LVM2.2.02.92/configure.in
+--- LVM2.2.02.92.orig/configure.in 2012-02-20 11:36:27.000000000 -0800
++++ LVM2.2.02.92/configure.in 2012-02-20 15:53:40.700124222 -0800
+@@ -32,6 +32,7 @@
+ COPTIMISE_FLAG="-O2"
+ CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
+ ELDFLAGS="-Wl,--export-dynamic"
++ STATIC_LDFLAGS="-Wl,--no-export-dynamic"
+ # FIXME Generate list and use --dynamic-list=.dlopen.sym
+ CLDWHOLEARCHIVE="-Wl,-whole-archive"
+ CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
+@@ -1458,6 +1459,7 @@
+ AC_SUBST(SELINUX_PC)
+ AC_SUBST(SNAPSHOTS)
+ AC_SUBST(STATICDIR)
++AC_SUBST(STATIC_LDFLAGS)
+ AC_SUBST(STATIC_LINK)
+ AC_SUBST(TESTING)
+ AC_SUBST(THIN)
+diff -Nuar --exclude '*.rej' --exclude '*.orig' LVM2.2.02.92.orig/daemons/dmeventd/Makefile.in LVM2.2.02.92/daemons/dmeventd/Makefile.in
+--- LVM2.2.02.92.orig/daemons/dmeventd/Makefile.in 2012-02-20 15:48:04.861683196 -0800
++++ LVM2.2.02.92/daemons/dmeventd/Makefile.in 2012-02-20 15:52:50.732314588 -0800
+@@ -65,7 +65,7 @@
+ $(DL_LIBS) $(LVMLIBS) $(LIBS) -rdynamic
+
+ dmeventd.static: $(LIB_STATIC) dmeventd.o $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) $(STATIC_LDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \
+ dmeventd.o $(DL_LIBS) $(LVMLIBS) $(LIBS) $(STATIC_LIBS)
+
+ ifeq ("@PKGCONFIG@", "yes")
+diff -Nuar --exclude '*.rej' --exclude '*.orig' LVM2.2.02.92.orig/make.tmpl.in LVM2.2.02.92/make.tmpl.in
+--- LVM2.2.02.92.orig/make.tmpl.in 2012-02-20 15:48:05.034685963 -0800
++++ LVM2.2.02.92/make.tmpl.in 2012-02-20 15:48:58.622550855 -0800
+@@ -38,6 +38,7 @@
+ ELDFLAGS += @ELDFLAGS@
+ LDDEPS += @LDDEPS@
+ LDFLAGS += @LDFLAGS@
++STATIC_LDFLAGS += @STATIC_LDFLAGS@
+ LIB_SUFFIX = @LIB_SUFFIX@
+ LVMINTERNAL_LIBS = -llvm-internal $(UDEV_LIBS) $(DL_LIBS)
+ DL_LIBS = @DL_LIBS@
+diff -Nuar --exclude '*.rej' --exclude '*.orig' LVM2.2.02.92.orig/tools/Makefile.in LVM2.2.02.92/tools/Makefile.in
+--- LVM2.2.02.92.orig/tools/Makefile.in 2011-11-14 13:30:36.000000000 -0800
++++ LVM2.2.02.92/tools/Makefile.in 2012-02-20 15:52:25.242901501 -0800
+@@ -126,7 +126,7 @@
+ -o $@ dmsetup.o -ldevmapper $(LIBS)
+
+ dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(STATIC_LDFLAGS) -static -L$(interfacebuilddir) \
+ -o $@ dmsetup.o -ldevmapper $(STATIC_LIBS) $(LIBS)
+
+ all: device-mapper
+@@ -136,7 +136,7 @@
+ $(LVMLIBS) $(READLINE_LIBS) $(LIBS) -rdynamic
+
+ lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
++ $(CC) $(CFLAGS) $(LDFLAGS) $(STATIC_LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
+ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
+
+ liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
diff --git a/sys-fs/lvm2/files/lvm2-2.02.99-locale-muck.patch b/sys-fs/lvm2/files/lvm2-2.02.99-locale-muck.patch
new file mode 100644
index 000000000000..fe7ec87931e3
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-2.02.99-locale-muck.patch
@@ -0,0 +1,11 @@
+--- LVM2/make.tmpl.in
++++ LVM2/make.tmpl.in
+@@ -395,7 +395,7 @@
+ ( cat $(srcdir)/.exported_symbols; \
+ if test x$(EXPORTED_HEADER) != x; then \
+ $(CC) -E -P $(INCLUDES) $(DEFS) $(EXPORTED_HEADER) | \
+- $(SED) -ne "/^typedef|}/!s/.*[ *]\($(EXPORTED_FN_PREFIX)_[a-z0-9_]*\)(.*/\1/p"; \
++ LC_ALL=C $(SED) -ne "/^typedef|}/!s/.*[ *]\($(EXPORTED_FN_PREFIX)_[a-z0-9_]*\)(.*/\1/p"; \
+ fi \
+ ) > $@
+
diff --git a/sys-fs/lvm2/files/lvmetad.initd-2.02.105-r2 b/sys-fs/lvm2/files/lvmetad.initd-2.02.105-r2
new file mode 100644
index 000000000000..c95a47d5be51
--- /dev/null
+++ b/sys-fs/lvm2/files/lvmetad.initd-2.02.105-r2
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/run/lvmetad.pid"
+command="/sbin/lvmetad"
+command_args="${LVMETAD_OPTS:=-p ${pidfile}}"
+start_stop_daemon_args="--pidfile ${pidfile}"
+
+depend() {
+ :
+}
diff --git a/sys-fs/lvm2/files/lvmetad.initd-2.02.116-r3 b/sys-fs/lvm2/files/lvmetad.initd-2.02.116-r3
new file mode 100644
index 000000000000..2efce4223e55
--- /dev/null
+++ b/sys-fs/lvm2/files/lvmetad.initd-2.02.116-r3
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/run/lvmetad.pid"
+command="/sbin/lvmetad"
+command_args="${LVMETAD_OPTS:=-p ${pidfile}}"
+start_stop_daemon_args="--pidfile ${pidfile}"
+
+depend() {
+ :
+}
+
+start_pre()
+{
+ checkpath --directory /run/lvm || return 1
+}
diff --git a/sys-fs/lvm2/files/lvmlockd.initd-2.02.166-r1 b/sys-fs/lvm2/files/lvmlockd.initd-2.02.166-r1
new file mode 100644
index 000000000000..16e2cc3f12bf
--- /dev/null
+++ b/sys-fs/lvm2/files/lvmlockd.initd-2.02.166-r1
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/run/lvmlockd.pid"
+command="/sbin/lvmlockd"
+command_args="${LVMLOCKD_OPTS:--p ${pidfile}} ${LVMLOCKD_TYPE:--g sanlock}"
+start_stop_daemon_args="--pidfile ${pidfile}"
+
+depend() {
+ before sanlock
+}
+
+start_pre()
+{
+ checkpath --directory /run/lvm || return 1
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.116-r1.ebuild b/sys-fs/lvm2/lvm2-2.02.116-r1.ebuild
new file mode 100644
index 000000000000..7bf32bb4ee63
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.116-r1.ebuild
@@ -0,0 +1,271 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman lvm1 lvm2create_initrd selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !lvm1 !lvm2create_initrd !thin )
+ systemd? ( udev )"
+
+DEPEND_COMMON="clvm? ( cman? ( =sys-cluster/cman-3* ) =sys-cluster/libdlm-3* )
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.108-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.108-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.106-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_systemd_units install_systemd_generators install_tmpfiles_configuration"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.116-r2.ebuild b/sys-fs/lvm2/lvm2-2.02.116-r2.ebuild
new file mode 100644
index 000000000000..b75896fd51a0
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.116-r2.ebuild
@@ -0,0 +1,274 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman lvm1 lvm2create_initrd selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !lvm1 !lvm2create_initrd !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="clvm? ( cman? ( =sys-cluster/cman-3* ) =sys-cluster/libdlm-3* )
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.108-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.108-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.106-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.116-r4.ebuild b/sys-fs/lvm2/lvm2-2.02.116-r4.ebuild
new file mode 100644
index 000000000000..a57c5a4e6c59
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.116-r4.ebuild
@@ -0,0 +1,281 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman lvm1 lvm2create_initrd selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !lvm1 !lvm2create_initrd !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="clvm? ( cman? ( =sys-cluster/cman-3* ) =sys-cluster/libdlm-3* )
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? (
+ app-arch/cpio
+ sys-apps/makedev
+ )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.108-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.108-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.106-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r4 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+ ewarn
+ ewarn "After enabling or disabling lvmetad in /etc/lvm/lvm.conf you must"
+ ewarn "run the following to update the init script dependencies: "
+ ewarn "# rc-update -u"
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.116-r5.ebuild b/sys-fs/lvm2/lvm2-2.02.116-r5.ebuild
new file mode 100644
index 000000000000..edc9aaf28c12
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.116-r5.ebuild
@@ -0,0 +1,290 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? (
+ app-arch/cpio
+ sys-apps/makedev
+ )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.108-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.108-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.106-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r4 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+ ewarn
+ ewarn "After enabling or disabling lvmetad in /etc/lvm/lvm.conf you must"
+ ewarn "run the following to update the init script dependencies: "
+ ewarn "# rc-update -u"
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.116-r6.ebuild b/sys-fs/lvm2/lvm2-2.02.116-r6.ebuild
new file mode 100644
index 000000000000..7bfc87028dc8
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.116-r6.ebuild
@@ -0,0 +1,290 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? (
+ app-arch/cpio
+ sys-apps/makedev
+ )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.108-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.108-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.106-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r6 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+ ewarn
+ ewarn "After enabling or disabling lvmetad in /etc/lvm/lvm.conf you must"
+ ewarn "run the following to update the init script dependencies: "
+ ewarn "# rc-update -u"
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.116.ebuild b/sys-fs/lvm2/lvm2-2.02.116.ebuild
new file mode 100644
index 000000000000..474f90a6f309
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.116.ebuild
@@ -0,0 +1,271 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman lvm1 lvm2create_initrd selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !lvm1 !lvm2create_initrd !thin )
+ systemd? ( udev )
+ static? ( !udev )" #520450
+
+DEPEND_COMMON="clvm? ( cman? ( =sys-cluster/cman-3* ) =sys-cluster/libdlm-3* )
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=virtual/libudev-208:=[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.108-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.92-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.108-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.106-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_systemd_units install_systemd_generators install_tmpfiles_configuration"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.136-r1.ebuild b/sys-fs/lvm2/lvm2-2.02.136-r1.ebuild
new file mode 100644
index 000000000000..850400f1e6d5
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.136-r1.ebuild
@@ -0,0 +1,283 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.129-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.136-r2.ebuild b/sys-fs/lvm2/lvm2-2.02.136-r2.ebuild
new file mode 100644
index 000000000000..033673bad6d7
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.136-r2.ebuild
@@ -0,0 +1,284 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.129-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r6 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.136.ebuild b/sys-fs/lvm2/lvm2-2.02.136.ebuild
new file mode 100644
index 000000000000..27ff76be110b
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.136.ebuild
@@ -0,0 +1,274 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman lvm1 lvm2create_initrd selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !lvm1 !lvm2create_initrd !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="clvm? ( cman? ( =sys-cluster/cman-3* ) =sys-cluster/libdlm-3* )
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.129-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.139-r1.ebuild b/sys-fs/lvm2/lvm2-2.02.139-r1.ebuild
new file mode 100644
index 000000000000..f53818cede0b
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.139-r1.ebuild
@@ -0,0 +1,284 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r6 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.139.ebuild b/sys-fs/lvm2/lvm2-2.02.139.ebuild
new file mode 100644
index 000000000000..6c0d688e3f0b
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.139.ebuild
@@ -0,0 +1,283 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.145-r1.ebuild b/sys-fs/lvm2/lvm2-2.02.145-r1.ebuild
new file mode 100644
index 000000000000..cb4b2497860d
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.145-r1.ebuild
@@ -0,0 +1,288 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+PATCHES=(
+ # Gentoo specific modification(s):
+ "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ # For upstream -- review and forward:
+ "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf=()
+ local buildmode
+
+ myconf+=( $(use_enable !device-mapper-only dmeventd) )
+ myconf+=( $(use_enable !device-mapper-only cmdlib) )
+ myconf+=( $(use_enable !device-mapper-only applib) )
+ myconf+=( $(use_enable !device-mapper-only fsadm) )
+ myconf+=( $(use_enable !device-mapper-only lvmetad) )
+ use device-mapper-only && myconf+=( --disable-udev-systemd-background-jobs )
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf+=( --enable-static_link )
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf+=( --with-mirrors=${dmbuildmode} )
+ myconf+=( --with-snapshots=${dmbuildmode} )
+ if use thin; then
+ myconf+=( --with-thin=internal --with-cache=internal )
+ local texec
+ for texec in check dump repair restore; do
+ myconf+=( --with-thin-${texec}="${EPREFIX}"/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}="${EPREFIX}"/sbin/cache_${texec} )
+ done
+ else
+ myconf+=( --with-thin=none --with-cache=none )
+ fi
+
+ if use lvm1; then
+ myconf+=( --with-lvm1=${buildmode} )
+ else
+ myconf+=( --with-lvm1=none )
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf+=( --disable-o_direct )
+
+ if use clvm; then
+ myconf+=( --with-cluster=${buildmode} )
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf+=( --with-clvmd=${clvmd} )
+ myconf+=( --with-pool=${buildmode} )
+ else
+ myconf+=( --with-clvmd=none --with-cluster=none )
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ ${myconf[@]} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.145-r2.ebuild b/sys-fs/lvm2/lvm2-2.02.145-r2.ebuild
new file mode 100644
index 000000000000..e1def45bbe1a
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.145-r2.ebuild
@@ -0,0 +1,290 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+PATCHES=(
+ # Gentoo specific modification(s):
+ "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ # For upstream -- review and forward:
+ "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+ "${FILESDIR}"/${PN}-2.02.145-mkdev.patch #580062
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf=()
+ local buildmode
+
+ myconf+=( $(use_enable !device-mapper-only dmeventd) )
+ myconf+=( $(use_enable !device-mapper-only cmdlib) )
+ myconf+=( $(use_enable !device-mapper-only applib) )
+ myconf+=( $(use_enable !device-mapper-only fsadm) )
+ myconf+=( $(use_enable !device-mapper-only lvmetad) )
+ use device-mapper-only && myconf+=( --disable-udev-systemd-background-jobs )
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf+=( --enable-static_link )
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf+=( --with-mirrors=${dmbuildmode} )
+ myconf+=( --with-snapshots=${dmbuildmode} )
+ if use thin; then
+ myconf+=( --with-thin=internal --with-cache=internal )
+ local texec
+ for texec in check dump repair restore; do
+ myconf+=( --with-thin-${texec}="${EPREFIX}"/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}="${EPREFIX}"/sbin/cache_${texec} )
+ done
+ else
+ myconf+=( --with-thin=none --with-cache=none )
+ fi
+
+ if use lvm1; then
+ myconf+=( --with-lvm1=${buildmode} )
+ else
+ myconf+=( --with-lvm1=none )
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf+=( --disable-o_direct )
+
+ if use clvm; then
+ myconf+=( --with-cluster=${buildmode} )
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf+=( --with-clvmd=${clvmd} )
+ myconf+=( --with-pool=${buildmode} )
+ else
+ myconf+=( --with-clvmd=none --with-cluster=none )
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ ${myconf[@]} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r6 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.145.ebuild b/sys-fs/lvm2/lvm2-2.02.145.ebuild
new file mode 100644
index 000000000000..342b7c910666
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.145.ebuild
@@ -0,0 +1,284 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ # Gentoo specific modification(s):
+ epatch "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # For upstream -- review and forward:
+ epatch "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ epatch "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ epatch "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ epatch "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ epatch "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ epatch "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ epatch "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ epatch "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf
+ local buildmode
+
+ myconf="${myconf} $(use_enable !device-mapper-only dmeventd)"
+ myconf="${myconf} $(use_enable !device-mapper-only cmdlib)"
+ myconf="${myconf} $(use_enable !device-mapper-only applib)"
+ myconf="${myconf} $(use_enable !device-mapper-only fsadm)"
+ myconf="${myconf} $(use_enable !device-mapper-only lvmetad)"
+ use device-mapper-only && myconf="${myconf} --disable-udev-systemd-background-jobs"
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf="${myconf} --enable-static_link"
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf="${myconf} --with-mirrors=${dmbuildmode}"
+ myconf="${myconf} --with-snapshots=${dmbuildmode}"
+ if use thin; then
+ myconf="${myconf} --with-thin=internal --with-cache=internal"
+ local texec
+ for texec in check dump repair restore; do
+ myconf="${myconf} --with-thin-${texec}=${EPREFIX}/sbin/thin_${texec}"
+ myconf="${myconf} --with-cache-${texec}=${EPREFIX}/sbin/cache_${texec}"
+ done
+ else
+ myconf="${myconf} --with-thin=none --with-cache=none"
+ fi
+
+ if use lvm1; then
+ myconf="${myconf} --with-lvm1=${buildmode}"
+ else
+ myconf="${myconf} --with-lvm1=none"
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf="${myconf} --disable-o_direct"
+
+ if use clvm; then
+ myconf="${myconf} --with-cluster=${buildmode}"
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf="${myconf} --with-clvmd=${clvmd}"
+ myconf="${myconf} --with-pool=${buildmode}"
+ else
+ myconf="${myconf} --with-clvmd=none --with-cluster=none"
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ "$(systemd_with_unitdir)" \
+ ${myconf} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.105-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.105-r2 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.166-r2.ebuild b/sys-fs/lvm2/lvm2-2.02.166-r2.ebuild
new file mode 100644
index 000000000000..5b35b8e0fc0a
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.166-r2.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais sanlock selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !sanlock !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ sanlock? ( sys-cluster/sanlock )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+PATCHES=(
+ # Gentoo specific modification(s):
+ "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ # For upstream -- review and forward:
+ "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+ #"${FILESDIR}"/${PN}-2.02.145-mkdev.patch #580062 # Merged upstream
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf=()
+ local buildmode
+
+ myconf+=( $(use_enable !device-mapper-only dmeventd) )
+ myconf+=( $(use_enable !device-mapper-only cmdlib) )
+ myconf+=( $(use_enable !device-mapper-only applib) )
+ myconf+=( $(use_enable !device-mapper-only fsadm) )
+ myconf+=( $(use_enable !device-mapper-only lvmetad) )
+ use device-mapper-only && myconf+=( --disable-udev-systemd-background-jobs )
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf+=( --enable-static_link )
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf+=( --with-mirrors=${dmbuildmode} )
+ myconf+=( --with-snapshots=${dmbuildmode} )
+ if use thin; then
+ myconf+=( --with-thin=internal --with-cache=internal )
+ local texec
+ for texec in check dump repair restore; do
+ myconf+=( --with-thin-${texec}="${EPREFIX}"/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}="${EPREFIX}"/sbin/cache_${texec} )
+ done
+ else
+ myconf+=( --with-thin=none --with-cache=none )
+ fi
+
+ if use lvm1; then
+ myconf+=( --with-lvm1=${buildmode} )
+ else
+ myconf+=( --with-lvm1=none )
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf+=( --disable-o_direct )
+
+ if use clvm; then
+ myconf+=( --with-cluster=${buildmode} )
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf+=( --with-clvmd=${clvmd} )
+ myconf+=( --with-pool=${buildmode} )
+
+ else
+ myconf+=( --with-clvmd=none --with-cluster=none )
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable sanlock lockd-sanlock) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ ${myconf[@]} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.166-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use sanlock; then
+ newinitd "${FILESDIR}"/lvmlockd.initd-2.02.166-r1 lvmlockd
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.166.ebuild b/sys-fs/lvm2/lvm2-2.02.166.ebuild
new file mode 100644
index 000000000000..64406fb5ae33
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.166.ebuild
@@ -0,0 +1,290 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+PATCHES=(
+ # Gentoo specific modification(s):
+ "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ # For upstream -- review and forward:
+ "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+ #"${FILESDIR}"/${PN}-2.02.145-mkdev.patch #580062 # Merged upstream
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf=()
+ local buildmode
+
+ myconf+=( $(use_enable !device-mapper-only dmeventd) )
+ myconf+=( $(use_enable !device-mapper-only cmdlib) )
+ myconf+=( $(use_enable !device-mapper-only applib) )
+ myconf+=( $(use_enable !device-mapper-only fsadm) )
+ myconf+=( $(use_enable !device-mapper-only lvmetad) )
+ use device-mapper-only && myconf+=( --disable-udev-systemd-background-jobs )
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf+=( --enable-static_link )
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf+=( --with-mirrors=${dmbuildmode} )
+ myconf+=( --with-snapshots=${dmbuildmode} )
+ if use thin; then
+ myconf+=( --with-thin=internal --with-cache=internal )
+ local texec
+ for texec in check dump repair restore; do
+ myconf+=( --with-thin-${texec}="${EPREFIX}"/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}="${EPREFIX}"/sbin/cache_${texec} )
+ done
+ else
+ myconf+=( --with-thin=none --with-cache=none )
+ fi
+
+ if use lvm1; then
+ myconf+=( --with-lvm1=${buildmode} )
+ else
+ myconf+=( --with-lvm1=none )
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf+=( --disable-o_direct )
+
+ if use clvm; then
+ myconf+=( --with-cluster=${buildmode} )
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf+=( --with-clvmd=${clvmd} )
+ myconf+=( --with-pool=${buildmode} )
+ else
+ myconf+=( --with-clvmd=none --with-cluster=none )
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ ${myconf[@]} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.116-r6 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.171.ebuild b/sys-fs/lvm2/lvm2-2.02.171.ebuild
new file mode 100644
index 000000000000..886812b2d915
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.171.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais sanlock selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !sanlock !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ sanlock? ( sys-cluster/sanlock )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+PATCHES=(
+ # Gentoo specific modification(s):
+ "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ # For upstream -- review and forward:
+ "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ "${FILESDIR}"/${PN}-2.02.129-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+ #"${FILESDIR}"/${PN}-2.02.145-mkdev.patch #580062 # Merged upstream
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf=()
+ local buildmode
+
+ myconf+=( $(use_enable !device-mapper-only dmeventd) )
+ myconf+=( $(use_enable !device-mapper-only cmdlib) )
+ myconf+=( $(use_enable !device-mapper-only applib) )
+ myconf+=( $(use_enable !device-mapper-only fsadm) )
+ myconf+=( $(use_enable !device-mapper-only lvmetad) )
+ use device-mapper-only && myconf+=( --disable-udev-systemd-background-jobs )
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf+=( --enable-static_link )
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf+=( --with-mirrors=${dmbuildmode} )
+ myconf+=( --with-snapshots=${dmbuildmode} )
+ if use thin; then
+ myconf+=( --with-thin=internal --with-cache=internal )
+ local texec
+ for texec in check dump repair restore; do
+ myconf+=( --with-thin-${texec}="${EPREFIX}"/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}="${EPREFIX}"/sbin/cache_${texec} )
+ done
+ else
+ myconf+=( --with-thin=none --with-cache=none )
+ fi
+
+ if use lvm1; then
+ myconf+=( --with-lvm1=${buildmode} )
+ else
+ myconf+=( --with-lvm1=none )
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf+=( --disable-o_direct )
+
+ if use clvm; then
+ myconf+=( --with-cluster=${buildmode} )
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf+=( --with-clvmd=${clvmd} )
+ myconf+=( --with-pool=${buildmode} )
+ myconf+=( --enable-lvmlockd-dlm )
+ else
+ myconf+=( --with-clvmd=none --with-cluster=none )
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable sanlock lvmlockd-sanlock) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ ${myconf[@]} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.166-r2 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use sanlock; then
+ newinitd "${FILESDIR}"/lvmlockd.initd-2.02.166-r1 lvmlockd
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.172.ebuild b/sys-fs/lvm2/lvm2-2.02.172.ebuild
new file mode 100644
index 000000000000..4de31e3cbcc7
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.172.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais sanlock selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !sanlock !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ sanlock? ( sys-cluster/sanlock )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+PATCHES=(
+ # Gentoo specific modification(s):
+ "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ # For upstream -- review and forward:
+ "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ "${FILESDIR}"/${PN}-2.02.172-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+ #"${FILESDIR}"/${PN}-2.02.145-mkdev.patch #580062 # Merged upstream
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf=()
+ local buildmode
+
+ myconf+=( $(use_enable !device-mapper-only dmeventd) )
+ myconf+=( $(use_enable !device-mapper-only cmdlib) )
+ myconf+=( $(use_enable !device-mapper-only applib) )
+ myconf+=( $(use_enable !device-mapper-only fsadm) )
+ myconf+=( $(use_enable !device-mapper-only lvmetad) )
+ use device-mapper-only && myconf+=( --disable-udev-systemd-background-jobs )
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf+=( --enable-static_link )
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf+=( --with-mirrors=${dmbuildmode} )
+ myconf+=( --with-snapshots=${dmbuildmode} )
+ if use thin; then
+ myconf+=( --with-thin=internal --with-cache=internal )
+ local texec
+ for texec in check dump repair restore; do
+ myconf+=( --with-thin-${texec}="${EPREFIX}"/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}="${EPREFIX}"/sbin/cache_${texec} )
+ done
+ else
+ myconf+=( --with-thin=none --with-cache=none )
+ fi
+
+ if use lvm1; then
+ myconf+=( --with-lvm1=${buildmode} )
+ else
+ myconf+=( --with-lvm1=none )
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf+=( --disable-o_direct )
+
+ if use clvm; then
+ myconf+=( --with-cluster=${buildmode} )
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf+=( --with-clvmd=${clvmd} )
+ myconf+=( --with-pool=${buildmode} )
+ myconf+=( --enable-lvmlockd-dlm )
+ else
+ myconf+=( --with-clvmd=none --with-cluster=none )
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable sanlock lvmlockd-sanlock) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ ${myconf[@]} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.172 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use sanlock; then
+ newinitd "${FILESDIR}"/lvmlockd.initd-2.02.166-r1 lvmlockd
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/lvm2-2.02.173.ebuild b/sys-fs/lvm2/lvm2-2.02.173.ebuild
new file mode 100644
index 000000000000..4de31e3cbcc7
--- /dev/null
+++ b/sys-fs/lvm2/lvm2-2.02.173.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools eutils linux-info multilib systemd toolchain-funcs udev flag-o-matic
+
+DESCRIPTION="User-land utilities for LVM2 (device-mapper) software"
+HOMEPAGE="https://sourceware.org/lvm2/"
+SRC_URI="ftp://sourceware.org/pub/lvm2/${PN/lvm/LVM}.${PV}.tgz
+ ftp://sourceware.org/pub/lvm2/old/${PN/lvm/LVM}.${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="readline static static-libs systemd clvm cman corosync lvm1 lvm2create_initrd openais sanlock selinux +udev +thin device-mapper-only"
+REQUIRED_USE="device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !sanlock !thin )
+ systemd? ( udev )
+ clvm? ( !systemd )"
+
+DEPEND_COMMON="
+ clvm? (
+ cman? ( =sys-cluster/cman-3* )
+ corosync? ( sys-cluster/corosync )
+ openais? ( sys-cluster/openais )
+ =sys-cluster/libdlm-3*
+ )
+
+ readline? ( sys-libs/readline:0= )
+ sanlock? ( sys-cluster/sanlock )
+ systemd? ( >=sys-apps/systemd-205:0= )
+ udev? ( >=virtual/libudev-208:=[static-libs?] )"
+# /run is now required for locking during early boot. /var cannot be assumed to
+# be available -- thus, pull in recent enough baselayout for /run.
+# This version of LVM is incompatible with cryptsetup <1.1.2.
+RDEPEND="${DEPEND_COMMON}
+ >=sys-apps/baselayout-2.2
+ !<sys-apps/openrc-0.11
+ !<sys-fs/cryptsetup-1.1.2
+ !!sys-fs/clvm
+ !!sys-fs/lvm-user
+ >=sys-apps/util-linux-2.16
+ lvm2create_initrd? ( sys-apps/makedev )
+ thin? ( >=sys-block/thin-provisioning-tools-0.3.0 )"
+# note: thin- 0.3.0 is required to avoid --disable-thin_check_needs_check
+# USE 'static' currently only works with eudev, bug 520450
+DEPEND="${DEPEND_COMMON}
+ virtual/pkgconfig
+ >=sys-devel/binutils-2.20.1-r1
+ sys-devel/autoconf-archive
+ static? (
+ selinux? ( sys-libs/libselinux[static-libs] )
+ udev? ( >=sys-fs/eudev-3.1.2[static-libs] )
+ >=sys-apps/util-linux-2.16[static-libs]
+ )"
+
+S=${WORKDIR}/${PN/lvm/LVM}.${PV}
+
+PATCHES=(
+ # Gentoo specific modification(s):
+ "${FILESDIR}"/${PN}-2.02.129-example.conf.in.patch
+
+ # For upstream -- review and forward:
+ "${FILESDIR}"/${PN}-2.02.63-always-make-static-libdm.patch
+ "${FILESDIR}"/${PN}-2.02.56-lvm2create_initrd.patch
+ "${FILESDIR}"/${PN}-2.02.67-createinitrd.patch #301331
+ "${FILESDIR}"/${PN}-2.02.99-locale-muck.patch #330373
+ "${FILESDIR}"/${PN}-2.02.70-asneeded.patch # -Wl,--as-needed
+ "${FILESDIR}"/${PN}-2.02.139-dynamic-static-ldflags.patch #332905
+ "${FILESDIR}"/${PN}-2.02.172-static-pkgconfig-libs.patch #370217, #439414 + blkid
+ "${FILESDIR}"/${PN}-2.02.130-pthread-pkgconfig.patch #492450
+ #"${FILESDIR}"/${PN}-2.02.145-mkdev.patch #580062 # Merged upstream
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~SYSVIPC"
+
+ if use udev; then
+ local WARNING_SYSVIPC="CONFIG_SYSVIPC:\tis not set (required for udev sync)\n"
+ if linux_config_exists; then
+ local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH)
+ if [ -n "${uevent_helper_path}" ] && [ "${uevent_helper_path}" != '""' ]; then
+ ewarn "It's recommended to set an empty value to the following kernel config option:"
+ ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}"
+ fi
+ fi
+ fi
+
+ check_extra_config
+
+ # 1. Genkernel no longer copies /sbin/lvm blindly.
+ if use static; then
+ elog "Warning, we no longer overwrite /sbin/lvm and /sbin/dmsetup with"
+ elog "their static versions. If you need the static binaries,"
+ elog "you must append .static to the filename!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "1iAR = $(tc-getAR)" \
+ -e "s:CC ?= @CC@:CC = $(tc-getCC):" \
+ make.tmpl.in || die #444082
+
+ sed -i -e '/FLAG/s:-O2::' configure{.in,} || die #480212
+
+ if use udev && ! use device-mapper-only; then
+ sed -i -e '/use_lvmetad =/s:0:1:' conf/example.conf.in || die #514196
+ elog "Notice that \"use_lvmetad\" setting is enabled with USE=\"udev\" in"
+ elog "/etc/lvm/lvm.conf, which will require restart of udev, lvm, and lvmetad"
+ elog "if it was previously disabled."
+ fi
+
+ sed -i -e "s:/usr/bin/true:$(type -P true):" scripts/blk_availability_systemd_red_hat.service.in || die #517514
+
+ # Without thin-privision-tools, there is nothing to install for target install_man7:
+ use thin || { sed -i -e '/^install_lvm2/s:install_man7::' man/Makefile.in || die; }
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -flto
+ local myconf=()
+ local buildmode
+
+ myconf+=( $(use_enable !device-mapper-only dmeventd) )
+ myconf+=( $(use_enable !device-mapper-only cmdlib) )
+ myconf+=( $(use_enable !device-mapper-only applib) )
+ myconf+=( $(use_enable !device-mapper-only fsadm) )
+ myconf+=( $(use_enable !device-mapper-only lvmetad) )
+ use device-mapper-only && myconf+=( --disable-udev-systemd-background-jobs )
+
+ # Most of this package does weird stuff.
+ # The build options are tristate, and --without is NOT supported
+ # options: 'none', 'internal', 'shared'
+ if use static; then
+ buildmode="internal"
+ # This only causes the .static versions to become available
+ myconf+=( --enable-static_link )
+ else
+ buildmode="shared"
+ fi
+ dmbuildmode=$(use !device-mapper-only && echo internal || echo none)
+
+ # dmeventd requires mirrors to be internal, and snapshot available
+ # so we cannot disable them
+ myconf+=( --with-mirrors=${dmbuildmode} )
+ myconf+=( --with-snapshots=${dmbuildmode} )
+ if use thin; then
+ myconf+=( --with-thin=internal --with-cache=internal )
+ local texec
+ for texec in check dump repair restore; do
+ myconf+=( --with-thin-${texec}="${EPREFIX}"/sbin/thin_${texec} )
+ myconf+=( --with-cache-${texec}="${EPREFIX}"/sbin/cache_${texec} )
+ done
+ else
+ myconf+=( --with-thin=none --with-cache=none )
+ fi
+
+ if use lvm1; then
+ myconf+=( --with-lvm1=${buildmode} )
+ else
+ myconf+=( --with-lvm1=none )
+ fi
+
+ # disable O_DIRECT support on hppa, breaks pv detection (#99532)
+ use hppa && myconf+=( --disable-o_direct )
+
+ if use clvm; then
+ myconf+=( --with-cluster=${buildmode} )
+ # 4-state! Make sure we get it right, per bug 210879
+ # Valid options are: none, cman, gulm, all
+ #
+ # 2009/02:
+ # gulm is removed now, now dual-state:
+ # cman, none
+ # all still exists, but is not needed
+ #
+ # 2009/07:
+ # TODO: add corosync and re-enable ALL
+ local clvmd=""
+ use cman && clvmd="cman"
+ #clvmd="${clvmd/cmangulm/all}"
+ use corosync && clvmd="${clvmd:+$clvmd,}corosync"
+ use openais && clvmd="${clvmd:+$clvmd,}openais"
+ [ -z "${clvmd}" ] && clvmd="none"
+ myconf+=( --with-clvmd=${clvmd} )
+ myconf+=( --with-pool=${buildmode} )
+ myconf+=( --enable-lvmlockd-dlm )
+ else
+ myconf+=( --with-clvmd=none --with-cluster=none )
+ fi
+
+ econf \
+ $(use_enable readline) \
+ $(use_enable selinux) \
+ --enable-pkgconfig \
+ --with-confdir="${EPREFIX}"/etc \
+ --exec-prefix="${EPREFIX}" \
+ --sbindir="${EPREFIX}/sbin" \
+ --with-staticdir="${EPREFIX}"/sbin \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --with-usrlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --with-default-dm-run-dir=/run \
+ --with-default-run-dir=/run/lvm \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-pid-dir=/run \
+ $(use_enable udev udev_rules) \
+ $(use_enable udev udev_sync) \
+ $(use_with udev udevdir "$(get_udevdir)"/rules.d) \
+ $(use_enable sanlock lvmlockd-sanlock) \
+ $(use_enable systemd udev-systemd-background-jobs) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ ${myconf[@]} \
+ CLDFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ pushd include >/dev/null
+ emake
+ popd >/dev/null
+
+ if use device-mapper-only ; then
+ emake device-mapper
+ else
+ emake
+ emake CC="$(tc-getCC)" -C scripts lvm2_activation_generator_systemd_red_hat
+ fi
+}
+
+src_install() {
+ local inst
+ INSTALL_TARGETS="install install_tmpfiles_configuration"
+ # install systemd related files only when requested, bug #522430
+ use systemd && INSTALL_TARGETS="${INSTALL_TARGETS} install_systemd_units install_systemd_generators"
+ use device-mapper-only && INSTALL_TARGETS="install_device-mapper"
+ for inst in ${INSTALL_TARGETS}; do
+ emake DESTDIR="${D}" ${inst}
+ done
+
+ newinitd "${FILESDIR}"/device-mapper.rc-2.02.105-r2 device-mapper
+ newconfd "${FILESDIR}"/device-mapper.conf-1.02.22-r3 device-mapper
+
+ if use !device-mapper-only ; then
+ newinitd "${FILESDIR}"/dmeventd.initd-2.02.67-r1 dmeventd
+ newinitd "${FILESDIR}"/lvm.rc-2.02.172 lvm
+ newconfd "${FILESDIR}"/lvm.confd-2.02.28-r2 lvm
+
+ newinitd "${FILESDIR}"/lvm-monitoring.initd-2.02.105-r2 lvm-monitoring
+ newinitd "${FILESDIR}"/lvmetad.initd-2.02.116-r3 lvmetad
+ fi
+
+ if use sanlock; then
+ newinitd "${FILESDIR}"/lvmlockd.initd-2.02.166-r1 lvmlockd
+ fi
+
+ if use clvm; then
+ newinitd "${FILESDIR}"/clvmd.rc-2.02.39 clvmd
+ newconfd "${FILESDIR}"/clvmd.confd-2.02.39 clvmd
+ fi
+
+ if use static-libs; then
+ dolib.a libdm/ioctl/libdevmapper.a
+ dolib.a libdaemon/client/libdaemonclient.a #462908
+ #gen_usr_ldscript libdevmapper.so
+ dolib.a daemons/dmeventd/libdevmapper-event.a
+ #gen_usr_ldscript libdevmapper-event.so
+ else
+ rm -f "${ED}"usr/$(get_libdir)/{libdevmapper-event,liblvm2cmd,liblvm2app,libdevmapper}.a
+ fi
+
+ if use lvm2create_initrd; then
+ dosbin scripts/lvm2create_initrd/lvm2create_initrd
+ doman scripts/lvm2create_initrd/lvm2create_initrd.8
+ newdoc scripts/lvm2create_initrd/README README.lvm2create_initrd
+ fi
+
+ insinto /etc
+ doins "${FILESDIR}"/dmtab
+
+ dodoc README VERSION* WHATS_NEW WHATS_NEW_DM doc/*.{c,txt} conf/*.conf
+}
+
+pkg_postinst() {
+ ewarn "Make sure the \"lvm\" init script is in the runlevels:"
+ ewarn "# rc-update add lvm boot"
+ ewarn
+ ewarn "Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want"
+ ewarn "to enable lvm autoactivation and metadata caching."
+}
+
+src_test() {
+ einfo "Tests are disabled because of device-node mucking, if you want to"
+ einfo "run tests, compile the package and see ${S}/tests"
+}
diff --git a/sys-fs/lvm2/metadata.xml b/sys-fs/lvm2/metadata.xml
new file mode 100644
index 000000000000..cca547ca5c2c
--- /dev/null
+++ b/sys-fs/lvm2/metadata.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>agk@redhat.com</email>
+ <name>Alasdair Kergon</name>
+ <description>Upstream Maintainer (please CC on bugs)</description>
+ </maintainer>
+ <maintainer type="person">
+ <email>cardoe@gentoo.org</email>
+ <name>Doug Goldstein</name>
+ <description>Backup to Robin. Please CC on bugs.</description>
+ </maintainer>
+ <use>
+ <flag name="clvm">Allow users to build clustered lvm2</flag>
+ <flag name="cman">Cman support for clustered lvm</flag>
+ <flag name="corosync">Corosync support for clustered lvm</flag>
+ <flag name="lvm1">Allow users to build lvm2 with lvm1 support</flag>
+ <flag name="lvm2create_initrd">Install lvm2create_initrd script and pull in <pkg>sys-apps/makedev</pkg> for the /sbin/MAKEDEV command</flag>
+ <flag name="openais">Openais support for clustered lvm</flag>
+ <flag name="thin">Support for thin volumes</flag>
+ <flag name="device-mapper-only">Build only device-mapper and not the rest of LVM2 (UNSUPPORTED)</flag>
+ <flag name="sanlock">Enable lvmlockd with support for sanlock</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:heinz_mauelshagen:lvm2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/lxcfs/Manifest b/sys-fs/lxcfs/Manifest
new file mode 100644
index 000000000000..dfcaa0688673
--- /dev/null
+++ b/sys-fs/lxcfs/Manifest
@@ -0,0 +1,10 @@
+AUX lxcfs-2.0.4-fusermount-path.patch 380 SHA256 74df135742f4d63b410e2ca14784c1970851fb93015eb427e7f13a85ecf71c28 SHA512 ce2f250cc6e8430dd928615d23a37edd136d559e42d2a695222372a2c4300d85753ddb6cc9d0b7a55d34f6f8a01bcf1951fdc815788cb5832bc59385cda43426 WHIRLPOOL 29cf1f3590a563b35aae8097392198d9b62cc84b12157968e1d6153c5cc43124f29c05b9aec25706e825c407512253771b9cf036d2fe4f50234a9faf4be23c3a
+AUX lxcfs-2.0.4.initd 533 SHA256 68b8c235697be65b191ea3984f5bfddb41c312325b2f72e087080a61a61f3a13 SHA512 9c53354c9c11189e488baa396817cf5182be2c082e40ba458dc7b55b79e30a7ee0415ed319539e7f1ebc4df36530119935c88956d61b22071a65bc4ab412f71a WHIRLPOOL ca817bb4bd9bf2c6077653ae5b5af30c9df1cd11ebd7638ed256feed0de1f50e649e8abb86a299ca8a666e93ebc912af87bf76de17dd09ed38f305f875f7eb98
+AUX lxcfs-2.0.6-fusermount-path.patch 380 SHA256 74df135742f4d63b410e2ca14784c1970851fb93015eb427e7f13a85ecf71c28 SHA512 ce2f250cc6e8430dd928615d23a37edd136d559e42d2a695222372a2c4300d85753ddb6cc9d0b7a55d34f6f8a01bcf1951fdc815788cb5832bc59385cda43426 WHIRLPOOL 29cf1f3590a563b35aae8097392198d9b62cc84b12157968e1d6153c5cc43124f29c05b9aec25706e825c407512253771b9cf036d2fe4f50234a9faf4be23c3a
+AUX lxcfs-2.0.6.initd 533 SHA256 d5ebcdb6e03f54f1c49128a0a54d0e410acf03c4a6549e3767f4244eb0129b48 SHA512 6e52dedcc36d6db4529b796a4a881fd3966b165d2cefc6a64c638bd06b1b2ee29323e91ee2dd92d6b855e8ec6dd7c1e3d2c25af7dd047dae23ca817781cad5fc WHIRLPOOL cf9f2e9957663e9f783b1aaa07a0dd05419d94757fb2975bcc929b78e24b691151916d199ebc3966de6ca849d7f337d20d23b80eb5e300a9698a9a8e3fb836e3
+DIST lxcfs-2.0.4.tar.gz 52639 SHA256 9af8199dba2837542ede6e50489100220472241e4b355b685e66c9a72bbcf81a SHA512 1c701fbd60799a1f7ad7e809c2e52ef0d26ed44e96c2c0376d3c4eb203aafb99ddcaff015f3fa8cc9c1219449210f6bf93844cc568de3a9f55cb8801328cec90 WHIRLPOOL 1ac966bab786b00a236225e1856c46fa9d419e42853edcd1181fc3f43d54becb60435fa0679a6a0f838a5edeb920205e3baa734118a4b5d9587e547fd63e3704
+DIST lxcfs-2.0.6.tar.gz 62632 SHA256 be4ea891887aee2c04b2d9ff5dbb6866178cc1276119f5b116bf3f99c7750213 SHA512 52baf15eb9dc2b694085635f7d8e5c6f1207099173cda607d758b8837a720e4808cacbf83f900a6734d3260d34abafbebdcbb0618cb3cf67c5d304f50d66244d WHIRLPOOL 0d7fc69400678f03dd8ccb06fee643feaa62469e6287a6bc3935232f775bc93fa5c1d649e7747b3b09867f2678593eaf923c947499c549cfd6c40fcd28620a95
+EBUILD lxcfs-2.0.4.ebuild 1671 SHA256 a1d2023101dfb76e39a90cd2c56bf4b5446b2d0c170761c40e2df21905879bb8 SHA512 ffa8a2fd888dcf313f66facfd5c6035bb969876d30121ec56c6fcdd2ca384673b464fa4c8f6356d7a08f6896ad394a1ba8573ee9f142bc484c5f6dd5ed3da92d WHIRLPOOL 26132c041b5e84b418a379496c10bc53457ab79f8588b5ed0e1d2240ef7cb40d4b348b8dd71860cbb954e6325ddf2a0270666e41a4d241f5e919858a96b36938
+EBUILD lxcfs-2.0.6.ebuild 1671 SHA256 4ccf39406769910d627b27f5ae4a5532b37433ab18da240d326debd681d649ed SHA512 6de43babc7b874a71e1691713a51ea5e5721a9d94371bee396130d262186fa7935e0a48d9f12d098963e4111720decd58003bf042d80ef0abdfca4d86f5f1512 WHIRLPOOL 9330227b1d906bd01139f94d6fc40af1ef541f264bc659d774248bfff89712944be0ff6d2b2d242e67365b0eabef7717660ee614ddaf23c149263313e1ecb26f
+MISC ChangeLog 4036 SHA256 2c4724fa18d73a0cfcdbbf373c58cb181554c0a9bdfc832b6408570be66bfb0f SHA512 ffaaf8e74881ec5dc4eadc1b33ea05dcd29fa1ebd00b9f61d45b9c64ac29a0c8c06c5ef8129044148a0ef1c38f67fd1a36ad6a1625d5faae141df24e49548643 WHIRLPOOL 21ce0d797b7639995327bf506dae5342c92842134ce3c595ad8c82df28b886fb4b50dcdc5fda374a98ab424287039b2cee6f8163d88f38e26743ce2f97e37f6f
+MISC metadata.xml 676 SHA256 aa6cccfb428a2263d6e9162ebd0dfec0a20633ae16926f74c37923cccbc52bdf SHA512 e6976fff93a2bce13c0d3d4af30d29a9135eefecbb186bf5c0e219bd527fb34a8ab8746cd2d8c31d478c77a508400359aae1462ffa40cf832f8a86d212217bad WHIRLPOOL e91c8150c202f06dd9f45132bcb48b87cea8cc67f833a427adb2bc419ac170b6eb0d1f09c350070874d77a567266a85839edcfc125f9e9c73a7ca1fc947d8cf4
diff --git a/sys-fs/lxcfs/files/lxcfs-2.0.4-fusermount-path.patch b/sys-fs/lxcfs/files/lxcfs-2.0.4-fusermount-path.patch
new file mode 100644
index 000000000000..61d3494fb7f3
--- /dev/null
+++ b/sys-fs/lxcfs/files/lxcfs-2.0.4-fusermount-path.patch
@@ -0,0 +1,11 @@
+--- /config/init/systemd/lxcfs.service.orig 2016-07-11 01:18:57.688074437 +0000
++++ /config/init/systemd/lxcfs.service 2016-07-11 01:19:48.516477185 +0000
+@@ -7,7 +7,7 @@
+ ExecStart=/usr/bin/lxcfs /var/lib/lxcfs/
+ KillMode=process
+ Restart=on-failure
+-ExecStopPost=-/bin/fusermount -u /var/lib/lxcfs
++ExecStopPost=-/usr/bin/fusermount -u /var/lib/lxcfs
+ Delegate=yes
+
+ [Install]
diff --git a/sys-fs/lxcfs/files/lxcfs-2.0.4.initd b/sys-fs/lxcfs/files/lxcfs-2.0.4.initd
new file mode 100644
index 000000000000..dd556894b7fc
--- /dev/null
+++ b/sys-fs/lxcfs/files/lxcfs-2.0.4.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DAEMON=/usr/bin/lxcfs
+PIDFILE=/run/lxcfs.pid
+
+start() {
+ ebegin "Starting lxcfs"
+
+ start-stop-daemon --start \
+ --pidfile ${PIDFILE} \
+ --exec ${DAEMON} \
+ --background \
+ --make-pidfile \
+ -- \
+ -f -o allow_other /var/lib/lxcfs
+
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping lxcfs"
+ start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE}
+ eend $?
+}
diff --git a/sys-fs/lxcfs/files/lxcfs-2.0.6-fusermount-path.patch b/sys-fs/lxcfs/files/lxcfs-2.0.6-fusermount-path.patch
new file mode 100644
index 000000000000..61d3494fb7f3
--- /dev/null
+++ b/sys-fs/lxcfs/files/lxcfs-2.0.6-fusermount-path.patch
@@ -0,0 +1,11 @@
+--- /config/init/systemd/lxcfs.service.orig 2016-07-11 01:18:57.688074437 +0000
++++ /config/init/systemd/lxcfs.service 2016-07-11 01:19:48.516477185 +0000
+@@ -7,7 +7,7 @@
+ ExecStart=/usr/bin/lxcfs /var/lib/lxcfs/
+ KillMode=process
+ Restart=on-failure
+-ExecStopPost=-/bin/fusermount -u /var/lib/lxcfs
++ExecStopPost=-/usr/bin/fusermount -u /var/lib/lxcfs
+ Delegate=yes
+
+ [Install]
diff --git a/sys-fs/lxcfs/files/lxcfs-2.0.6.initd b/sys-fs/lxcfs/files/lxcfs-2.0.6.initd
new file mode 100644
index 000000000000..dfc5725f693f
--- /dev/null
+++ b/sys-fs/lxcfs/files/lxcfs-2.0.6.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DAEMON=/usr/bin/lxcfs
+PIDFILE=/run/lxcfs.pid
+
+start() {
+ ebegin "Starting lxcfs"
+
+ start-stop-daemon --start \
+ --pidfile ${PIDFILE} \
+ --exec ${DAEMON} \
+ --background \
+ --make-pidfile \
+ -- \
+ -f -o allow_other /var/lib/lxcfs
+
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping lxcfs"
+ start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE}
+ eend $?
+}
diff --git a/sys-fs/lxcfs/lxcfs-2.0.4.ebuild b/sys-fs/lxcfs/lxcfs-2.0.4.ebuild
new file mode 100644
index 000000000000..82ea9915b320
--- /dev/null
+++ b/sys-fs/lxcfs/lxcfs-2.0.4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit systemd vcs-snapshot versionator
+DESCRIPTION="FUSE filesystem for LXC"
+HOMEPAGE="https://linuxcontainers.org/lxcfs/introduction/"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/lxc/lxcfs.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+ SRC_URI=""
+ KEYWORDS=""
+else
+ # e.g. upstream is 2.0.0.beta2, we want 2.0.0_beta2
+ UPSTREAM_PV=$(replace_version_separator 3 '.' )
+ SRC_URI="https://github.com/lxc/lxcfs/archive/${PN}-${UPSTREAM_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+IUSE="pam"
+
+# Omit all dbus. Upstream appears to require it because systemd, but
+# lxcfs makes no direct use of dbus.
+RDEPEND="
+ dev-libs/glib:2
+ sys-fs/fuse
+ virtual/pam
+"
+DEPEND="
+ sys-apps/help2man
+ ${RDEPEND}
+"
+PATCHES="${FILESDIR}/${P}-fusermount-path.patch"
+
+src_prepare() {
+ default
+ ./bootstrap.sh || die "Failed to bootstrap configure files"
+}
+
+src_configure() {
+ use pam || pamflag="--with-pamdir=none"
+
+ # Without the localstatedir the filesystem isn't mounted correctly
+ econf --localstatedir=/var ${pamflag}
+}
+
+# Test suite fails for me
+# src_test() {
+# emake tests
+# tests/main.sh || die "Tests failed"
+# }
+
+src_install() {
+ default
+ dodir /var/lib/lxcfs
+ newinitd "${FILESDIR}"/${P}.initd lxcfs
+ systemd_dounit config/init/systemd/lxcfs.service
+}
+
+pkg_preinst() {
+ # In an upgrade situation merging /var/lib/lxcfs (an empty dir)
+ # fails because that is a live mountpoint when the service is
+ # running. It's unnecessary anyway so skip the action.
+ [[ -d ${ROOT}/var/lib/lxcfs ]] && rm -rf ${D}/var
+}
diff --git a/sys-fs/lxcfs/lxcfs-2.0.6.ebuild b/sys-fs/lxcfs/lxcfs-2.0.6.ebuild
new file mode 100644
index 000000000000..bc296b6a704e
--- /dev/null
+++ b/sys-fs/lxcfs/lxcfs-2.0.6.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit systemd vcs-snapshot versionator
+DESCRIPTION="FUSE filesystem for LXC"
+HOMEPAGE="https://linuxcontainers.org/lxcfs/introduction/"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/lxc/lxcfs.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+ SRC_URI=""
+ KEYWORDS=""
+else
+ # e.g. upstream is 2.0.0.beta2, we want 2.0.0_beta2
+ UPSTREAM_PV=$(replace_version_separator 3 '.' )
+ SRC_URI="https://github.com/lxc/lxcfs/archive/${PN}-${UPSTREAM_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+IUSE="pam"
+
+# Omit all dbus. Upstream appears to require it because systemd, but
+# lxcfs makes no direct use of dbus.
+RDEPEND="
+ dev-libs/glib:2
+ sys-fs/fuse
+ virtual/pam
+"
+DEPEND="
+ sys-apps/help2man
+ ${RDEPEND}
+"
+PATCHES="${FILESDIR}/${P}-fusermount-path.patch"
+
+src_prepare() {
+ default
+ ./bootstrap.sh || die "Failed to bootstrap configure files"
+}
+
+src_configure() {
+ use pam || pamflag="--with-pamdir=none"
+
+ # Without the localstatedir the filesystem isn't mounted correctly
+ econf --localstatedir=/var ${pamflag}
+}
+
+# Test suite fails for me
+# src_test() {
+# emake tests
+# tests/main.sh || die "Tests failed"
+# }
+
+src_install() {
+ default
+ dodir /var/lib/lxcfs
+ newinitd "${FILESDIR}"/${P}.initd lxcfs
+ systemd_dounit config/init/systemd/lxcfs.service
+}
+
+pkg_preinst() {
+ # In an upgrade situation merging /var/lib/lxcfs (an empty dir)
+ # fails because that is a live mountpoint when the service is
+ # running. It's unnecessary anyway so skip the action.
+ [[ -d ${ROOT}/var/lib/lxcfs ]] && rm -rf ${D}/var
+}
diff --git a/sys-fs/lxcfs/metadata.xml b/sys-fs/lxcfs/metadata.xml
new file mode 100644
index 000000000000..82ba2497b614
--- /dev/null
+++ b/sys-fs/lxcfs/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>stasibear@gentoo.org</email>
+ <name>Erik Mackdanz</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>john@irc.tm</email>
+ <name>John Cooke</name>
+ </maintainer>
+ <longdescription>
+ LXCFS is a simple userspace filesystem designed to
+ provide a cgroupfs-like tree which is container aware
+ and a set of files which can be bind-mounted over
+ their /proc originals to provide cgroup-aware values.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">lxc/lxfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/mac-fdisk/Manifest b/sys-fs/mac-fdisk/Manifest
new file mode 100644
index 000000000000..aace7abaa9d0
--- /dev/null
+++ b/sys-fs/mac-fdisk/Manifest
@@ -0,0 +1,14 @@
+AUX big_pt.patch 1404 SHA256 217659768cea64ac99133f3b67307c2687f6d8682f1dfe0669706a48a9fcb2ef SHA512 c9abc952f1ce618b085a134145fa99efa9c10b55f3fa773fb6b74a66468537bc3567ec632fe6e464c5158383135c858c171d8d94d7142d38beff39a17e31187a WHIRLPOOL aafbfcab1dc615f79e15f5f19fd59227a4796f89ae305f3f7983c271e2cb1f5dbf396b3c404bfca48e076c886b7bd4141d79b4961f48da624d730b262efe9a39
+AUX largerthan2gb.patch 272 SHA256 0132bb4185d5ec13a4f2220579763c83e6472eeba1c30f6972ba8e3039ffa0b3 SHA512 b5988eb6aa64324421398461396b0fdd0b55d7643094c042bea7264ec0f9913e8a793f3f550c15928419e697a14f2932f483c4b98a54618af99b35aa7ceae757 WHIRLPOOL 764b5d517ceb3d5be1051b8d336f8fe263d54890226d7e30bd91e752ebb394da592f4b89c191c3b6c4b6573e9f1b4efa08897222e7b3eede2cdb4723ff70e8ce
+AUX mac-fdisk-0.1-headers.patch 2050 SHA256 02fa96e89dabe0eeaeb219ecbf88ec553639f7b84d58e7e058d589daf2cdff0f SHA512 7d16300c02b293de87101e3ef83a8b7778d15123c261d562f0129704b74d0c3d7ca18730c52d37b599ff57c0b70dacd41aeefe99cf235aea4abd4b569e3d601e WHIRLPOOL 8352856e33188473d6d5ab952c5f72e077dc0dd7d32b4e5b48a1a6182616cbdfe333fd620bde24077c5791101ad90cb93b7b95031a12f8f042bc74b0b16c9295
+AUX mac-fdisk-0.1-r6-ppc64.patch 13664 SHA256 12832aad918475b3e3c0e8fc2f8bc4cead0baa2f2de1f365aeb7206839988988 SHA512 8ad99f6f205d7f4ced33c1da93a76b4329c24c85e85ea5f0fda579002d1e7282c5764cdec37c7a7c99e4f198d34259a382ed37cead60b8307a7779806142d49b WHIRLPOOL 2edb5bd17c5dbbb5fc4516973fe1e77125f2431b15590bc348ae5cb03c474d6cdff5ac1cf81d7fc3d12625a786111c5bae3cf3212095a44f28018fc6862cf2fe
+AUX mac-fdisk-0.1_p16-ppc64.patch 12912 SHA256 18ad277e06b9f67397a2d91b288fb67a303d4edc995300c8c6e5d614619b7858 SHA512 e521009d628934fe3925085c941d2bb3fba9c3322ccaaa6dd650ecbc6b990056f9bf186adb3a645dc8593efdb44611b69a7b6bf4e87d262870bbb515581e0ef3 WHIRLPOOL 851fa2b80397526b9ab7d6cac7076671cc2a154802d10af175c6c620100114bd18d8db0838563d2585512f82a32bf0c29eb5d8ecd9f81008416e33924ae47675
+AUX mac-fdisk-amd64.patch 5154 SHA256 8c0a160d1f93b5cd79265a088eff3546a3963512a619d9570aae60b63517a7ec SHA512 241576f64dd334f98e8c9cb9e0b17b6366e208f2d0af47ddb4659cf2d8e25ca8f44a84d1f7fa2e5f6215f4be42668f43f034074ac981a0d87ca8483505a3623c WHIRLPOOL 2b603a9c1c68431013f014ddd13456ee33526ab1faea4973147d9c345f3ca958fbaf017ed15c7edd37d564a7ccdd92300520d32fab471896205ac62f647c164b
+DIST mac-fdisk_0.1-13.diff.gz 19615 SHA256 a6dd96c8ddce896dac2e2b2c2eff346d339ae697cd19e2ac9676556d8bc63644 SHA512 adc34f20e73ae91c39acb073f70f0041a4a0726985fc5e5de34ae433996b3f719ca4193cce51efc6599ba1773ad63fee045a8d72b6bd8a036c188d762626fe57 WHIRLPOOL 9badaa6a514eb95623bf6dfc1815935a2510a0a8ef9b2546aa0c0e3816c9b9ab584ac3136f28988d3f6768dfaec7ed9d49cac6fbfa1384e029128a565743e983
+DIST mac-fdisk_0.1-16.diff.gz 19896 SHA256 0ab4247a80734cffcebd439b2c6021a5560daf4d5bb246af3ee0a75d52bfd486 SHA512 deb44217afae097594e14dea6cd128f6cb1e8ed6e62e646d2aa311508ea27d164c94187e8eb1f1d018ee6044346f6785770981a655b6ad536dbbce550df13359 WHIRLPOOL 5f34bdc9ef8e0b823e5113cf79ddc2e9007f5e18c90c7c162e025e65c349407baf7f0da9aae4a5d1615af87ab3b2cade65265aef88d7413625a44c8a531b426c
+DIST mac-fdisk_0.1.orig.tar.gz 55817 SHA256 7059fc4ba41ca2ef857e1092e9c56e910f27693d407b5c3d78f7102ad0c56a66 SHA512 1263e60a18111162f5ef439b5f9615cef9de94e7836cb998782a6e6d3bcf92a69e49566b33c7330bdea05de5e6ca83f7920c6707f342ce515440160695f07120 WHIRLPOOL 3a25aba4950933c677d56a1f8c8aa000520818cf413c3cf3f418be5ec2ad520f9d9542771b61b2e53ad58e4dfa3298acab551eef8fb1a0cbac93a390f9968bb4
+EBUILD mac-fdisk-0.1-r7.ebuild 1340 SHA256 734dc74b5101bd2c8930332d16243b7d435d1a7786ccd2d4fb5c5f1f79b2d450 SHA512 139a221e8d45b7a96239c7370ae6af216c2c9806aba381ccdb2c666565620614f28af22f016e89fc3762e0f68a27bb1e5173d6d7997b85e54a3334c96fbcfffe WHIRLPOOL 2e0d412345bab9dfcf960a0f1de4813a324a61b25803163115b40c4ece88d8d56f738291df1b85a94bfcce50452601a8277d259db699d177a635d1756f8fd29b
+EBUILD mac-fdisk-0.1_p16.ebuild 1239 SHA256 ebfe8914ffc2c106a72af90966e2b952b18dd4a7ebf2cb217daa681cc7c9d478 SHA512 f26c8731ea781eee50c6d08425a812f91128aaf1e5ec1527f793b6ce11acee91420e0ddcd47e2c1785fe06d0e3cfe2c7b7469e00fd9436b99baa66fffe22def1 WHIRLPOOL fe7b20f07a5858b3f101b1f91867d1ceaf5a4b702a35dfa31b58815e86b7a26db874e862adc6bfec5cb7971b0cef5cfc1bf935cd0404a5f9e3dd1984413ebb52
+MISC ChangeLog 2689 SHA256 6d69624aa366880d82da673f5f2e7345c9412130fd77c027d8d9fb7b33b346f4 SHA512 34b60d0e1eb88529cee6f50c596f6ad5b9e848afe73b2d752f5c1ae9bbe73c9f945d4fe23424fe9e24e78c536a49d684877ea90569f2bc73000bba9bcaecf494 WHIRLPOOL 829b5cfe7d369a85a9a7fe5b859fd99fefc536bb67d9d5e7ebd2a6b9be04f53b191f00b52d42d0a789a4aa4aa8f4154cef7c44d5a8041b731739c46f2ba02eb1
+MISC ChangeLog-2015 5147 SHA256 59c340008e0ebd7c5961b61de962f0b73794e50b42a3e07648306a1b252f087c SHA512 dae95511ba4fc248507a3aa3c2d8f474c4f09ac78e7ab9308059d7bbff151153fe727affe0c9e5ed54d5fe93f166e54155f56425b47ac69971f48d2bb3e23797 WHIRLPOOL 0e47ae59621a8aaa8596697e40bded1c5c2d367fd9cb61c44f8f1216a5ad802e63b75b1d86178c596996faa008677a5ad60207503246115fc14975a6e680d993
+MISC metadata.xml 259 SHA256 e7ac6b67c4c89040a00b23bda7a3b2fd4ac8affc1055daf3015ccc8580640f6f SHA512 ca71b1781806d20022c238e5b5d10f9154c78e0fa51f2603de34c48ecbe4cbc2c3190cf046526840546743644c691ee7fe51e31a4617b01bb7602dde803c1538 WHIRLPOOL 2a2aa19a448eca4dea84d129fd194a7ee4d77bdc1b5120abd3b667ce156cdeeb4616a7c7cd23fbccb7ba08e6e166aaba0fac63a6afa208d826acee37b0e560fe
diff --git a/sys-fs/mac-fdisk/files/big_pt.patch b/sys-fs/mac-fdisk/files/big_pt.patch
new file mode 100644
index 000000000000..fe9e78ec73de
--- /dev/null
+++ b/sys-fs/mac-fdisk/files/big_pt.patch
@@ -0,0 +1,80 @@
+--- a/partition_map.c
++++ b/partition_map.c
+@@ -25,6 +25,11 @@
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
++//
++// Defines
++//
++// #define TEST_COMPUTE
++
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
+@@ -36,6 +41,10 @@
+ #include <sys/ioctl.h>
+ #include "kernel-defs.h"
+ #include <sys/stat.h>
++#ifdef TEST_COMPUTE
++#include <linux/fs.h>
++#endif
++
+ #endif
+
+ #include "partition_map.h"
+@@ -45,10 +54,6 @@
+ #include "errors.h"
+
+
+-//
+-// Defines
+-//
+-// #define TEST_COMPUTE
+
+
+ //
+@@ -666,7 +671,7 @@
+ loff_t pos;
+ #endif
+ char* data;
+- unsigned long l, r, x;
++ unsigned long long l, r, x;
+ int valid;
+
+ #ifdef TEST_COMPUTE
+@@ -720,9 +725,11 @@
+ } else {
+ r = r * 2;
+ }
+- if (r >= (1024*1024*1024)) {
+- break;
+- }
++// There's no explanation for this, but I suspect the author was trying to
++// prevent going over the 32 bit size
++// if (r >= (1024*1024*1024*2)) {
++// break;
++// }
+ }
+ // binary search for end
+ while (l <= r) {
+@@ -740,11 +747,17 @@
+ if (valid != 0) {
+ x = x + 1;
+ }
+- // printf("size in blocks = %d\n", x);
++#ifdef TEST_COMPUTE
++ printf("size in blocks = %d\n", x);
++#endif
+ free(data);
+ }
++
++ // Add a warning just in case...
++ if(x > 0x80000000)
++ printf("Warning: Large disks may not work with this tool!\n");
+
+- return x;
++ return (unsigned long) x;
+ }
+
+
diff --git a/sys-fs/mac-fdisk/files/largerthan2gb.patch b/sys-fs/mac-fdisk/files/largerthan2gb.patch
new file mode 100644
index 000000000000..b33487ca9e97
--- /dev/null
+++ b/sys-fs/mac-fdisk/files/largerthan2gb.patch
@@ -0,0 +1,14 @@
+--- a/fdisk.h
++++ b/fdisk.h
+@@ -2,6 +2,11 @@
+ fdisk.h
+ */
+
++#ifdef __linux__
++#define _FILE_OFFSET_BITS 64
++#define _LARGE_FILES
++#endif
++
+ #define SECTOR_SIZE 512
+ #define NETBSD_PARTITION 0xa5
+ #define cround(n) (((n) + display_factor * unit_flag) / display_factor)
diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch
new file mode 100644
index 000000000000..2ac7eaf41538
--- /dev/null
+++ b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch
@@ -0,0 +1,112 @@
+Include a lot more headers and remove a bunch of braindead __linux__ checks
+
+--- a/dump.c
++++ b/dump.c
+@@ -30,10 +30,8 @@
+ */
+
+ #include <stdio.h>
+-#ifndef __linux__
+ #include <stdlib.h>
+ #include <unistd.h>
+-#endif
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+--- a/errors.c
++++ b/errors.c
+@@ -26,9 +26,7 @@
+ */
+
+ #include <stdio.h>
+-#ifndef __linux__
+ #include <stdlib.h>
+-#endif
+ #include <string.h>
+ #include <stdarg.h>
+
+@@ -115,8 +113,8 @@
+ va_end(ap);
+
+ #ifdef __linux__
+- if (value > 0 && value < sys_nerr) {
+- fprintf(stderr, " (%s)\n", sys_errlist[value]);
++ if (value > 0) {
++ fprintf(stderr, " (%s)\n", strerror(value));
+ } else {
+ fprintf(stderr, "\n");
+ }
+@@ -144,8 +142,8 @@
+ va_end(ap);
+
+ #ifdef __linux__
+- if (value > 0 && value < sys_nerr) {
+- fprintf(stderr, " (%s)\n", sys_errlist[value]);
++ if (value > 0) {
++ fprintf(stderr, " (%s)\n", strerror(value));
+ } else {
+ fprintf(stderr, "\n");
+ }
+--- a/fdisk.c
++++ b/fdisk.c
+@@ -62,6 +62,7 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <fcntl.h>
+ #include <ctype.h>
+ #include <setjmp.h>
+--- a/fdisklabel.c
++++ b/fdisklabel.c
+@@ -38,6 +38,7 @@
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <fcntl.h>
+ #include <ctype.h>
+ #include <setjmp.h>
+--- a/io.c
++++ b/io.c
+@@ -26,9 +26,9 @@
+ */
+
+ #include <stdio.h>
+-#ifndef __linux__
+ #include <stdlib.h>
+ #include <fcntl.h>
++#ifndef __linux__
+ #include <SCSI.h>
+ #else
+ #ifdef __GLIBC__
+--- a/partition_map.c
++++ b/partition_map.c
+@@ -26,10 +26,9 @@
+ */
+
+ #include <stdio.h>
+-#ifndef __linux__
++#include <string.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+-#endif
+ #include <errno.h>
+
+ #include <fcntl.h>
+--- a/pdisk.c
++++ b/pdisk.c
+@@ -32,10 +32,11 @@
+ #include <getopt.h>
+ #include <stddef.h>
+ #else
+-#include <stdlib.h>
+-#include <unistd.h>
+ #include <SIOUX.h>
+ #endif
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
+ #include <errno.h>
+
+ #ifdef __linux__
diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch
new file mode 100644
index 000000000000..4fb1617eec8e
--- /dev/null
+++ b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch
@@ -0,0 +1,481 @@
+--- a/bitfield.c
++++ b/bitfield.c
+@@ -67,13 +67,12 @@
+ //
+ // Routines
+ //
+-unsigned long
+-bitfield_set(unsigned long *bf, int base, int length, unsigned long value)
++unsigned int
++bitfield_set(unsigned int *bf, int base, int length, unsigned int value)
+ {
+- unsigned long t;
+- unsigned long m;
++ unsigned int t;
++ unsigned int m;
+ int s;
+- int i;
+
+ // compute shift & mask, coerce value to correct number of bits,
+ // zap the old bits and stuff the new value
+@@ -86,12 +85,11 @@
+ }
+
+
+-unsigned long
+-bitfield_get(unsigned long bf, int base, int length)
++unsigned int
++bitfield_get(unsigned int bf, int base, int length)
+ {
+- unsigned long m;
++ unsigned int m;
+ int s;
+- int i;
+
+ // compute shift & mask
+ // return the correct number of bits (shifted to low end)
+--- a/bitfield.h
++++ b/bitfield.h
+@@ -63,5 +63,5 @@
+ //
+ // Forward declarations
+ //
+-unsigned long bitfield_set(unsigned long *bf, int base, int length, unsigned long value);
+-unsigned long bitfield_get(unsigned long bf, int base, int length);
++unsigned int bitfield_set(unsigned int *bf, int base, int length, unsigned int value);
++unsigned int bitfield_get(unsigned int bf, int base, int length);
+--- a/dpme.h
++++ b/dpme.h
+@@ -61,7 +61,7 @@
+ //
+ typedef unsigned char u8;
+ typedef unsigned short u16;
+-typedef unsigned long u32;
++typedef unsigned int u32;
+
+
+ // Physical block zero of the disk has this format
+@@ -113,10 +113,10 @@
+ #endif
+ u32 dpme_boot_block ;
+ u32 dpme_boot_bytes ;
+- u8 *dpme_load_addr ;
+- u8 *dpme_load_addr_2 ;
+- u8 *dpme_goto_addr ;
+- u8 *dpme_goto_addr_2 ;
++ u32 dpme_load_addr ;
++ u32 dpme_load_addr_2 ;
++ u32 dpme_goto_addr ;
++ u32 dpme_goto_addr_2 ;
+ u32 dpme_checksum ;
+ char dpme_process_id[16] ;
+ u32 dpme_boot_args[32] ;
+--- a/dump.c
++++ b/dump.c
+@@ -61,16 +61,16 @@
+ // Global Constants
+ //
+ NAMES plist[] = {
+- "Drvr", "Apple_Driver",
+- "Dr43", "Apple_Driver43",
+- "Free", "Apple_Free",
+- " HFS", "Apple_HFS",
+- " MFS", "Apple_MFS",
+- "PDOS", "Apple_PRODOS",
+- "junk", "Apple_Scratch",
+- "unix", "Apple_UNIX_SVR2",
+- " map", "Apple_partition_map",
+- 0, 0
++ {"Drvr"}, {"Apple_Driver"},
++ {"Dr43"}, {"Apple_Driver43"},
++ {"Free"}, {"Apple_Free"},
++ {" HFS"}, {"Apple_HFS"},
++ {" MFS"}, {"Apple_MFS"},
++ {"PDOS"}, {"Apple_PRODOS"},
++ {"junk"}, {"Apple_Scratch"},
++ {"unix"}, {"Apple_UNIX_SVR2"},
++ {" map"}, {"Apple_partition_map"},
++ {0}, {0}
+ };
+
+ const char * kStringEmpty = "";
+@@ -162,10 +162,10 @@
+ }
+ #ifdef __mc68000__
+ printf("%*s type name "
+- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base");
++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base");
+ #else
+ printf("%*s type name "
+- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base");
++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base");
+ #endif
+
+ /* Grok devfs names. (courtesy Colin Walters)*/
+@@ -199,7 +199,6 @@
+ partition_map_header *map;
+ int j;
+ DPME *p;
+- BZB *bp;
+ char *s;
+ #ifdef __mc68000__
+ int aflag = 1;
+@@ -222,13 +221,13 @@
+ }
+ }
+ #ifdef __mc68000__
+- printf("%s%-2d %.4s %-12.12s ", dev, entry->disk_address, s, p->dpme_name);
++ printf("%s%-2d %.4s %-12.12s ", dev, (int)entry->disk_address, s, p->dpme_name);
+ #else
+- printf("%s%-4d %.4s %-18.32s ", dev, entry->disk_address, s, p->dpme_name);
++ printf("%s%-4d %.4s %-18.32s ", dev, (int)entry->disk_address, s, p->dpme_name);
+ #endif
+ } else {
+ printf("%s%-4d %20.32s %-18.32s ", dev,
+- entry->disk_address, p->dpme_type, p->dpme_name);
++ (int)entry->disk_address, p->dpme_type, p->dpme_name);
+ }
+
+ if (pflag) {
+@@ -312,7 +311,6 @@
+ int i;
+ int fd;
+ DPME * data;
+- long t;
+
+ data = (DPME *) malloc(PBLOCK_SIZE);
+ if (data == NULL) {
+@@ -380,7 +378,7 @@
+ printf("Header:\n");
+ printf("fd=%d (%s)\n", map->fd, (map->regular_file)?"file":"device");
+ printf("map %d blocks out of %d, media %u blocks\n",
+- map->blocks_in_map, map->maximum_in_map, map->media_size);
++ map->blocks_in_map, map->maximum_in_map, (unsigned int)map->media_size);
+ printf("Map is%s writeable", (map->writeable)?kStringEmpty:kStringNot);
+ printf(", but%s changed\n", (map->changed)?kStringEmpty:kStringNot);
+ printf("\n");
+@@ -424,7 +422,7 @@
+ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) {
+ p = entry->data;
+ printf("%2d: %20.32s ",
+- entry->disk_address, p->dpme_type);
++ (int)entry->disk_address, p->dpme_type);
+ printf("%7u @ %-7u ", p->dpme_pblocks, p->dpme_pblock_start);
+ printf("%c%c%c%c%c%c%c%c%c%c ",
+ (dpme_valid_get(p))?'V':'v',
+@@ -447,7 +445,7 @@
+ "goto_address checksum processor\n");
+ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) {
+ p = entry->data;
+- printf("%2d: ", entry->disk_address);
++ printf("%2d: ", (int)entry->disk_address);
+ printf("%7u ", p->dpme_boot_block);
+ printf("%7u ", p->dpme_boot_bytes);
+ printf("%8x ", p->dpme_load_addr);
+@@ -464,7 +462,7 @@
+ */
+ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) {
+ p = entry->data;
+- printf("%2d: ", entry->disk_address);
++ printf("%2d: ", (int)entry->disk_address);
+
+ bp = (BZB *) (p->dpme_bzb);
+ j = -1;
+--- a/errors.c
++++ b/errors.c
+@@ -30,6 +30,7 @@
+ #include <string.h>
+ #include <stdarg.h>
+
++#include <errno.h>
+ #include "errors.h"
+ #include "pdisk.h"
+
+@@ -113,7 +114,7 @@
+ va_end(ap);
+
+ #ifdef __linux__
+- if (value > 0) {
++ if (value > 0 && value < errno) {
+ fprintf(stderr, " (%s)\n", strerror(value));
+ } else {
+ fprintf(stderr, "\n");
+@@ -142,7 +143,7 @@
+ va_end(ap);
+
+ #ifdef __linux__
+- if (value > 0) {
++ if (value > 0 && value < errno) {
+ fprintf(stderr, " (%s)\n", strerror(value));
+ } else {
+ fprintf(stderr, "\n");
+--- a/fdisk.c
++++ b/fdisk.c
+@@ -71,12 +71,65 @@
+
+ #include <sys/ioctl.h>
+
+-typedef unsigned short kdev_t; /* BAD hack; kdev_t is not exported */
+-
+ #include "kernel-defs.h"
+
+ #include "fdisk.h"
+
++/* ----------- */
++#define _PPC64_TYPES_H
++#define BITS_PER_LONG 64
++
++typedef __signed__ char __s8;
++typedef signed char s8;
++typedef unsigned char u8;
++typedef unsigned char __u8;
++
++typedef __signed__ short __s16;
++typedef signed short s16;
++/*typedef unsigned short __u16;*/
++typedef unsigned short u16;
++
++typedef __signed__ int __s32;
++typedef signed int s32;
++/*typedef unsigned int __u32;*/
++typedef unsigned int u32;
++
++typedef __signed__ long __s64;
++typedef signed long s64;
++typedef unsigned long __u64;
++typedef unsigned long u64;
++
++typedef struct {
++ __u32 u[4];
++} __attribute((aligned(16))) __vector128;
++
++typedef __vector128 vector128;
++
++typedef u32 dma_addr_t;
++typedef u64 dma64_addr_t;
++
++typedef struct {
++ unsigned long entry;
++ unsigned long toc;
++ unsigned long env;
++} func_descr_t;
++
++typedef unsigned int umode_t;
++
++#define BITS_TO_LONGS(bits) \
++ (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG)
++#define DECLARE_BITMAP(name,bits) \
++ unsigned long name[BITS_TO_LONGS(bits)]
++#define CLEAR_BITMAP(name,bits) \
++ memset(name, 0, BITS_TO_LONGS(bits)*sizeof(unsigned long))
++
++/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */
++#define HDIO_GETGEO 0x0301 /* get device geometry */
++
++#define BLKRRPART _IO(0x12,95) /* re-read partition table */
++
++/* ---------- */
++
+ #define hex_val(c) ({ \
+ char _c = (c); \
+ isdigit(_c) ? _c - '0' : \
+@@ -1416,7 +1469,7 @@
+ }
+ }
+
+-void main(int argc, char **argv)
++int main(int argc, char **argv)
+ {
+ if (argc > 3)
+ fatal(usage);
+--- a/fdisklabel.c
++++ b/fdisklabel.c
+@@ -35,6 +35,7 @@
+ SUCH DAMAGE.
+ */
+
++#include <sys/types.h>
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -47,6 +48,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/param.h>
+
++#include <asm/types.h>
++
+ #include "kernel-defs.h"
+
+ #include "fdisk.h"
+@@ -263,8 +266,8 @@
+ fprintf(f, "type: %s\n", bsd_dktypenames[lp->d_type]);
+ else
+ fprintf(f, "type: %d\n", lp->d_type);
+- fprintf(f, "disk: %.*s\n", sizeof(lp->d_typename), lp->d_typename);
+- fprintf(f, "label: %.*s\n", sizeof(lp->d_packname), lp->d_packname);
++ fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename), lp->d_typename);
++ fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname), lp->d_packname);
+ fprintf(f, "flags:");
+ if (lp->d_flags & BSD_D_REMOVABLE)
+ fprintf(f, " removable");
+@@ -273,17 +276,17 @@
+ if (lp->d_flags & BSD_D_BADSECT)
+ fprintf(f, " badsect");
+ fprintf(f, "\n");
+- fprintf(f, "bytes/sector: %d\n", lp->d_secsize);
+- fprintf(f, "sectors/track: %d\n", lp->d_nsectors);
+- fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks);
+- fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl);
+- fprintf(f, "cylinders: %d\n", lp->d_ncylinders);
++ fprintf(f, "bytes/sector: %d\n", (int)lp->d_secsize);
++ fprintf(f, "sectors/track: %d\n", (int)lp->d_nsectors);
++ fprintf(f, "tracks/cylinder: %d\n", (int)lp->d_ntracks);
++ fprintf(f, "sectors/cylinder: %d\n", (int)lp->d_secpercyl);
++ fprintf(f, "cylinders: %d\n", (int)lp->d_ncylinders);
+ fprintf(f, "rpm: %d\n", lp->d_rpm);
+ fprintf(f, "interleave: %d\n", lp->d_interleave);
+ fprintf(f, "trackskew: %d\n", lp->d_trackskew);
+ fprintf(f, "cylinderskew: %d\n", lp->d_cylskew);
+- fprintf(f, "headswitch: %d\t\t# milliseconds\n", lp->d_headswitch);
+- fprintf(f, "track-to-track seek: %d\t# milliseconds\n", lp->d_trkseek);
++ fprintf(f, "headswitch: %d\t\t# milliseconds\n", (int)lp->d_headswitch);
++ fprintf(f, "track-to-track seek: %d\t# milliseconds\n", (int)lp->d_trkseek);
+ fprintf(f, "drivedata: ");
+ for (i = NDDATA - 1; i >= 0; i--)
+ if (lp->d_drivedata[i])
+@@ -291,7 +294,7 @@
+ if (i < 0)
+ i = 0;
+ for (j = 0; j <= i; j++)
+- fprintf(f, "%d ", lp->d_drivedata[j]);
++ fprintf(f, "%d ", (int)lp->d_drivedata[j]);
+ }
+ fprintf (f, "\n%d partitions:\n", lp->d_npartitions);
+ fprintf (f, "# size offset fstype [fsize bsize cpg]\n");
+@@ -299,7 +302,7 @@
+ for (i = 0; i < lp->d_npartitions; i++, pp++) {
+ if (pp->p_size) {
+ fprintf(f, " %c: %8d %8d ", 'a' + i,
+- pp->p_size, pp->p_offset);
++ (int)pp->p_size, (int)pp->p_offset);
+ if ((unsigned) pp->p_fstype < BSD_FSMAXTYPES)
+ fprintf(f, "%8.8s", bsd_fstypes[pp->p_fstype].name);
+ else
+@@ -308,12 +311,12 @@
+ {
+ case BSD_FS_UNUSED:
+ fprintf(f, " %5d %5d %5.5s ",
+- pp->p_fsize, pp->p_fsize * pp->p_frag, "");
++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, "");
+ break;
+
+ case BSD_FS_BSDFFS:
+ fprintf(f, " %5d %5d %5d ",
+- pp->p_fsize, pp->p_fsize * pp->p_frag,
++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag,
+ pp->p_cpg);
+ break;
+
+@@ -323,21 +326,21 @@
+ }
+ fprintf(f, "\t# (Cyl. %4d",
+ #if 0
+- pp->p_offset / lp->d_secpercyl); /* differs from Linux fdisk */
++ (int)(pp->p_offset / lp->d_secpercyl)); /* differs from Linux fdisk */
+ #else
+- pp->p_offset / lp->d_secpercyl + 1);
++ (int)(pp->p_offset / lp->d_secpercyl + 1));
+ #endif
+ if (pp->p_offset % lp->d_secpercyl)
+ putc('*', f);
+ else
+ putc(' ', f);
+ fprintf(f, "- %d",
+- (pp->p_offset +
++ (int)((pp->p_offset +
+ pp->p_size + lp->d_secpercyl - 1) /
+ #if 0
+- lp->d_secpercyl - 1); /* differs from Linux fdisk */
++ lp->d_secpercyl - 1)); /* differs from Linux fdisk */
+ #else
+- lp->d_secpercyl);
++ lp->d_secpercyl));
+ #endif
+ if (pp->p_size % lp->d_secpercyl)
+ putc('*', f);
+--- a/io.c
++++ b/io.c
+@@ -33,8 +33,10 @@
+ #else
+ #ifdef __GLIBC__
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #endif
+ #endif
++#include <linux/unistd.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <stdarg.h>
+@@ -466,7 +468,7 @@
+ long t;
+
+ if (rflag) {
+- printf("Can't write block %u to file", num);
++ printf("Can't write block %u to file", (unsigned int)num);
+ return 0;
+ }
+ #ifndef __linux__
+--- a/partition_map.c
++++ b/partition_map.c
+@@ -105,7 +105,6 @@
+ int fd;
+ partition_map_header * map;
+ int writeable;
+- unsigned long length;
+ #ifdef __linux__
+ struct stat info;
+ #endif
+@@ -402,9 +401,7 @@
+ {
+ int fd;
+ partition_map_header * map;
+- unsigned long length;
+ DPME *data;
+- int ok;
+ unsigned long number;
+ #ifdef __linux__
+ struct stat info;
+@@ -433,13 +430,13 @@
+ map->maximum_in_map = -1;
+
+ number = compute_device_size(fd);
+- printf("size of 'device' is %u blocks: ", number);
++ printf("size of 'device' is %u blocks: ", (unsigned int)number);
+ flush_to_newline(0);
+ get_number_argument("what should be the size? ", (long *)&number, number);
+ if (number < 4) {
+ number = 4;
+ }
+- printf("new size of 'device' is %u blocks\n", number);
++ printf("new size of 'device' is %u blocks\n", (unsigned int)number);
+ map->media_size = number;
+
+ #ifdef __linux__
+--- a/pdisk.c
++++ b/pdisk.c
+@@ -437,7 +437,6 @@
+ {
+ long base;
+ long length;
+- long mult;
+ char *name;
+ char *type_name;
+
+@@ -599,7 +598,6 @@
+ void
+ do_reorder(partition_map_header *map)
+ {
+- partition_map * cur;
+ long old_index;
+ long index;
+
diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch b/sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch
new file mode 100644
index 000000000000..616adc5b811f
--- /dev/null
+++ b/sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch
@@ -0,0 +1,455 @@
+--- a/bitfield.c
++++ b/bitfield.c
+@@ -67,13 +67,12 @@
+ //
+ // Routines
+ //
+-unsigned long
+-bitfield_set(unsigned long *bf, int base, int length, unsigned long value)
++unsigned int
++bitfield_set(unsigned int *bf, int base, int length, unsigned int value)
+ {
+- unsigned long t;
+- unsigned long m;
++ unsigned int t;
++ unsigned int m;
+ int s;
+- int i;
+
+ // compute shift & mask, coerce value to correct number of bits,
+ // zap the old bits and stuff the new value
+@@ -86,12 +85,11 @@
+ }
+
+
+-unsigned long
+-bitfield_get(unsigned long bf, int base, int length)
++unsigned int
++bitfield_get(unsigned int bf, int base, int length)
+ {
+- unsigned long m;
++ unsigned int m;
+ int s;
+- int i;
+
+ // compute shift & mask
+ // return the correct number of bits (shifted to low end)
+--- a/bitfield.h
++++ b/bitfield.h
+@@ -63,5 +63,5 @@
+ //
+ // Forward declarations
+ //
+-unsigned long bitfield_set(unsigned long *bf, int base, int length, unsigned long value);
+-unsigned long bitfield_get(unsigned long bf, int base, int length);
++unsigned int bitfield_set(unsigned int *bf, int base, int length, unsigned int value);
++unsigned int bitfield_get(unsigned int bf, int base, int length);
+--- a/dump.c
++++ b/dump.c
+@@ -61,16 +61,16 @@
+ // Global Constants
+ //
+ NAMES plist[] = {
+- "Drvr", "Apple_Driver",
+- "Dr43", "Apple_Driver43",
+- "Free", "Apple_Free",
+- " HFS", "Apple_HFS",
+- " MFS", "Apple_MFS",
+- "PDOS", "Apple_PRODOS",
+- "junk", "Apple_Scratch",
+- "unix", "Apple_UNIX_SVR2",
+- " map", "Apple_partition_map",
+- 0, 0
++ {"Drvr"}, {"Apple_Driver"},
++ {"Dr43"}, {"Apple_Driver43"},
++ {"Free"}, {"Apple_Free"},
++ {" HFS"}, {"Apple_HFS"},
++ {" MFS"}, {"Apple_MFS"},
++ {"PDOS"}, {"Apple_PRODOS"},
++ {"junk"}, {"Apple_Scratch"},
++ {"unix"}, {"Apple_UNIX_SVR2"},
++ {" map"}, {"Apple_partition_map"},
++ {0}, {0}
+ };
+
+ const char * kStringEmpty = "";
+@@ -162,10 +162,10 @@
+ }
+ #ifdef __mc68000__
+ printf("%*s type name "
+- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base");
++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base");
+ #else
+ printf("%*s type name "
+- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base");
++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base");
+ #endif
+
+ /* Grok devfs names. (courtesy Colin Walters)*/
+@@ -199,7 +199,6 @@
+ partition_map_header *map;
+ int j;
+ DPME *p;
+- BZB *bp;
+ char *s;
+ #ifdef __mc68000__
+ int aflag = 1;
+@@ -222,13 +221,13 @@
+ }
+ }
+ #ifdef __mc68000__
+- printf("%s%-2d %.4s %-12.12s ", dev, entry->disk_address, s, p->dpme_name);
++ printf("%s%-2d %.4s %-12.12s ", dev, (int)entry->disk_address, s, p->dpme_name);
+ #else
+- printf("%s%-4d %.4s %-18.32s ", dev, entry->disk_address, s, p->dpme_name);
++ printf("%s%-4d %.4s %-18.32s ", dev, (int)entry->disk_address, s, p->dpme_name);
+ #endif
+ } else {
+ printf("%s%-4d %20.32s %-18.32s ", dev,
+- entry->disk_address, p->dpme_type, p->dpme_name);
++ (int)entry->disk_address, p->dpme_type, p->dpme_name);
+ }
+
+ if (pflag) {
+@@ -312,7 +311,6 @@
+ int i;
+ int fd;
+ DPME * data;
+- long t;
+
+ data = (DPME *) malloc(PBLOCK_SIZE);
+ if (data == NULL) {
+@@ -380,7 +378,7 @@
+ printf("Header:\n");
+ printf("fd=%d (%s)\n", map->fd, (map->regular_file)?"file":"device");
+ printf("map %d blocks out of %d, media %u blocks\n",
+- map->blocks_in_map, map->maximum_in_map, map->media_size);
++ map->blocks_in_map, map->maximum_in_map, (unsigned int)map->media_size);
+ printf("Map is%s writeable", (map->writeable)?kStringEmpty:kStringNot);
+ printf(", but%s changed\n", (map->changed)?kStringEmpty:kStringNot);
+ printf("\n");
+@@ -424,7 +422,7 @@
+ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) {
+ p = entry->data;
+ printf("%2d: %20.32s ",
+- entry->disk_address, p->dpme_type);
++ (int)entry->disk_address, p->dpme_type);
+ printf("%7u @ %-7u ", p->dpme_pblocks, p->dpme_pblock_start);
+ printf("%c%c%c%c%c%c%c%c%c%c ",
+ (dpme_valid_get(p))?'V':'v',
+@@ -447,7 +445,7 @@
+ "goto_address checksum processor\n");
+ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) {
+ p = entry->data;
+- printf("%2d: ", entry->disk_address);
++ printf("%2d: ", (int)entry->disk_address);
+ printf("%7u ", p->dpme_boot_block);
+ printf("%7u ", p->dpme_boot_bytes);
+ printf("%8x ", p->dpme_load_addr);
+@@ -464,7 +462,7 @@
+ */
+ for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) {
+ p = entry->data;
+- printf("%2d: ", entry->disk_address);
++ printf("%2d: ", (int)entry->disk_address);
+
+ bp = (BZB *) (p->dpme_bzb);
+ j = -1;
+--- a/errors.c
++++ b/errors.c
+@@ -30,6 +30,7 @@
+ #include <string.h>
+ #include <stdarg.h>
+
++#include <errno.h>
+ #include "errors.h"
+ #include "pdisk.h"
+
+@@ -113,7 +114,7 @@
+ va_end(ap);
+
+ #ifdef __linux__
+- if (value > 0) {
++ if (value > 0 && value < errno) {
+ fprintf(stderr, " (%s)\n", strerror(value));
+ } else {
+ fprintf(stderr, "\n");
+@@ -142,7 +143,7 @@
+ va_end(ap);
+
+ #ifdef __linux__
+- if (value > 0) {
++ if (value > 0 && value < errno) {
+ fprintf(stderr, " (%s)\n", strerror(value));
+ } else {
+ fprintf(stderr, "\n");
+--- a/fdisk.c
++++ b/fdisk.c
+@@ -71,12 +71,65 @@
+
+ #include <sys/ioctl.h>
+
+-typedef unsigned short kdev_t; /* BAD hack; kdev_t is not exported */
+-
+ #include "kernel-defs.h"
+
+ #include "fdisk.h"
+
++/* ----------- */
++#define _PPC64_TYPES_H
++#define BITS_PER_LONG 64
++
++typedef __signed__ char __s8;
++typedef signed char s8;
++typedef unsigned char u8;
++typedef unsigned char __u8;
++
++typedef __signed__ short __s16;
++typedef signed short s16;
++/*typedef unsigned short __u16;*/
++typedef unsigned short u16;
++
++typedef __signed__ int __s32;
++typedef signed int s32;
++/*typedef unsigned int __u32;*/
++typedef unsigned int u32;
++
++typedef __signed__ long __s64;
++typedef signed long s64;
++typedef unsigned long __u64;
++typedef unsigned long u64;
++
++typedef struct {
++ __u32 u[4];
++} __attribute((aligned(16))) __vector128;
++
++typedef __vector128 vector128;
++
++typedef u32 dma_addr_t;
++typedef u64 dma64_addr_t;
++
++typedef struct {
++ unsigned long entry;
++ unsigned long toc;
++ unsigned long env;
++} func_descr_t;
++
++typedef unsigned int umode_t;
++
++#define BITS_TO_LONGS(bits) \
++ (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG)
++#define DECLARE_BITMAP(name,bits) \
++ unsigned long name[BITS_TO_LONGS(bits)]
++#define CLEAR_BITMAP(name,bits) \
++ memset(name, 0, BITS_TO_LONGS(bits)*sizeof(unsigned long))
++
++/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */
++#define HDIO_GETGEO 0x0301 /* get device geometry */
++
++#define BLKRRPART _IO(0x12,95) /* re-read partition table */
++
++/* ---------- */
++
+ #define hex_val(c) ({ \
+ char _c = (c); \
+ isdigit(_c) ? _c - '0' : \
+@@ -1416,7 +1469,7 @@
+ }
+ }
+
+-void main(int argc, char **argv)
++int main(int argc, char **argv)
+ {
+ if (argc > 3)
+ fatal(usage);
+--- a/fdisklabel.c
++++ b/fdisklabel.c
+@@ -35,6 +35,7 @@
+ SUCH DAMAGE.
+ */
+
++#include <sys/types.h>
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -47,6 +48,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/param.h>
+
++#include <asm/types.h>
++
+ #include "kernel-defs.h"
+
+ #include "fdisk.h"
+@@ -263,8 +266,8 @@
+ fprintf(f, "type: %s\n", bsd_dktypenames[lp->d_type]);
+ else
+ fprintf(f, "type: %d\n", lp->d_type);
+- fprintf(f, "disk: %.*s\n", sizeof(lp->d_typename), lp->d_typename);
+- fprintf(f, "label: %.*s\n", sizeof(lp->d_packname), lp->d_packname);
++ fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename), lp->d_typename);
++ fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname), lp->d_packname);
+ fprintf(f, "flags:");
+ if (lp->d_flags & BSD_D_REMOVABLE)
+ fprintf(f, " removable");
+@@ -273,17 +276,17 @@
+ if (lp->d_flags & BSD_D_BADSECT)
+ fprintf(f, " badsect");
+ fprintf(f, "\n");
+- fprintf(f, "bytes/sector: %d\n", lp->d_secsize);
+- fprintf(f, "sectors/track: %d\n", lp->d_nsectors);
+- fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks);
+- fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl);
+- fprintf(f, "cylinders: %d\n", lp->d_ncylinders);
++ fprintf(f, "bytes/sector: %d\n", (int)lp->d_secsize);
++ fprintf(f, "sectors/track: %d\n", (int)lp->d_nsectors);
++ fprintf(f, "tracks/cylinder: %d\n", (int)lp->d_ntracks);
++ fprintf(f, "sectors/cylinder: %d\n", (int)lp->d_secpercyl);
++ fprintf(f, "cylinders: %d\n", (int)lp->d_ncylinders);
+ fprintf(f, "rpm: %d\n", lp->d_rpm);
+ fprintf(f, "interleave: %d\n", lp->d_interleave);
+ fprintf(f, "trackskew: %d\n", lp->d_trackskew);
+ fprintf(f, "cylinderskew: %d\n", lp->d_cylskew);
+- fprintf(f, "headswitch: %d\t\t# milliseconds\n", lp->d_headswitch);
+- fprintf(f, "track-to-track seek: %d\t# milliseconds\n", lp->d_trkseek);
++ fprintf(f, "headswitch: %d\t\t# milliseconds\n", (int)lp->d_headswitch);
++ fprintf(f, "track-to-track seek: %d\t# milliseconds\n", (int)lp->d_trkseek);
+ fprintf(f, "drivedata: ");
+ for (i = NDDATA - 1; i >= 0; i--)
+ if (lp->d_drivedata[i])
+@@ -291,7 +294,7 @@
+ if (i < 0)
+ i = 0;
+ for (j = 0; j <= i; j++)
+- fprintf(f, "%d ", lp->d_drivedata[j]);
++ fprintf(f, "%d ", (int)lp->d_drivedata[j]);
+ }
+ fprintf (f, "\n%d partitions:\n", lp->d_npartitions);
+ fprintf (f, "# size offset fstype [fsize bsize cpg]\n");
+@@ -299,7 +302,7 @@
+ for (i = 0; i < lp->d_npartitions; i++, pp++) {
+ if (pp->p_size) {
+ fprintf(f, " %c: %8d %8d ", 'a' + i,
+- pp->p_size, pp->p_offset);
++ (int)pp->p_size, (int)pp->p_offset);
+ if ((unsigned) pp->p_fstype < BSD_FSMAXTYPES)
+ fprintf(f, "%8.8s", bsd_fstypes[pp->p_fstype].name);
+ else
+@@ -308,12 +311,12 @@
+ {
+ case BSD_FS_UNUSED:
+ fprintf(f, " %5d %5d %5.5s ",
+- pp->p_fsize, pp->p_fsize * pp->p_frag, "");
++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, "");
+ break;
+
+ case BSD_FS_BSDFFS:
+ fprintf(f, " %5d %5d %5d ",
+- pp->p_fsize, pp->p_fsize * pp->p_frag,
++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag,
+ pp->p_cpg);
+ break;
+
+@@ -323,21 +326,21 @@
+ }
+ fprintf(f, "\t# (Cyl. %4d",
+ #if 0
+- pp->p_offset / lp->d_secpercyl); /* differs from Linux fdisk */
++ (int)(pp->p_offset / lp->d_secpercyl)); /* differs from Linux fdisk */
+ #else
+- pp->p_offset / lp->d_secpercyl + 1);
++ (int)(pp->p_offset / lp->d_secpercyl + 1));
+ #endif
+ if (pp->p_offset % lp->d_secpercyl)
+ putc('*', f);
+ else
+ putc(' ', f);
+ fprintf(f, "- %d",
+- (pp->p_offset +
++ (int)((pp->p_offset +
+ pp->p_size + lp->d_secpercyl - 1) /
+ #if 0
+- lp->d_secpercyl - 1); /* differs from Linux fdisk */
++ lp->d_secpercyl - 1)); /* differs from Linux fdisk */
+ #else
+- lp->d_secpercyl);
++ lp->d_secpercyl));
+ #endif
+ if (pp->p_size % lp->d_secpercyl)
+ putc('*', f);
+--- a/io.c
++++ b/io.c
+@@ -33,8 +33,10 @@
+ #else
+ #ifdef __GLIBC__
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #endif
+ #endif
++#include <linux/unistd.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <stdarg.h>
+@@ -466,7 +468,7 @@
+ long t;
+
+ if (rflag) {
+- printf("Can't write block %u to file", num);
++ printf("Can't write block %u to file", (unsigned int)num);
+ return 0;
+ }
+ #ifndef __linux__
+--- a/partition_map.c
++++ b/partition_map.c
+@@ -105,7 +105,6 @@
+ int fd;
+ partition_map_header * map;
+ int writeable;
+- unsigned long length;
+ #ifdef __linux__
+ struct stat info;
+ #endif
+@@ -402,9 +401,7 @@
+ {
+ int fd;
+ partition_map_header * map;
+- unsigned long length;
+ DPME *data;
+- int ok;
+ unsigned long number;
+ #ifdef __linux__
+ struct stat info;
+@@ -433,13 +430,13 @@
+ map->maximum_in_map = -1;
+
+ number = compute_device_size(fd);
+- printf("size of 'device' is %u blocks: ", number);
++ printf("size of 'device' is %u blocks: ", (unsigned int)number);
+ flush_to_newline(0);
+ get_number_argument("what should be the size? ", (long *)&number, number);
+ if (number < 4) {
+ number = 4;
+ }
+- printf("new size of 'device' is %u blocks\n", number);
++ printf("new size of 'device' is %u blocks\n", (unsigned int)number);
+ map->media_size = number;
+
+ #ifdef __linux__
+--- a/pdisk.c
++++ b/pdisk.c
+@@ -437,7 +437,6 @@
+ {
+ long base;
+ long length;
+- long mult;
+ char *name;
+ char *type_name;
+
+@@ -599,7 +598,6 @@
+ void
+ do_reorder(partition_map_header *map)
+ {
+- partition_map * cur;
+ long old_index;
+ long index;
+
diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch b/sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch
new file mode 100644
index 000000000000..8658ba9a60d5
--- /dev/null
+++ b/sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch
@@ -0,0 +1,190 @@
+--- a/fdisklabel.c
++++ b/fdisklabel.c
+@@ -72,7 +72,7 @@
+ static int bsd_readlabel (struct partition *p, struct disklabel *d);
+ static int bsd_writelabel (struct partition *p, struct disklabel *d);
+ static void sync_disks (void);
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ static int bsd_translate_fstype (int linux_type);
+ static void bsd_link_part (void);
+ #endif
+@@ -82,7 +82,7 @@
+
+ static struct disklabel bsd_dlabel;
+ static char buffer[BSD_BBSIZE];
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ static struct partition *bsd_part;
+ static int bsd_part_index;
+ #endif
+@@ -99,13 +99,13 @@
+ " n add a new BSD partition\n"
+ " p print BSD partition table\n"
+ " q quit without saving changes\n"
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ " r return to main menu\n"
+ #endif
+ " s show complete disklabel\n"
+ " t change a partition's filesystem id\n"
+ " w write disklabel to disk\n"
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ " x link BSD partition to non-BSD partition"
+ #endif
+ );
+@@ -114,7 +114,7 @@
+ void
+ bselect (void)
+ {
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ int t;
+
+ for (t=0; t<4; t++)
+@@ -185,7 +185,7 @@
+ case 'w':
+ bsd_write_disklabel ();
+ break;
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ case 'r':
+ return;
+ case 'x':
+@@ -223,7 +223,7 @@
+ if (!bsd_check_new_partition (&i))
+ return;
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ begin = bsd_part -> start_sect;
+ end = begin + bsd_part -> nr_sects - 1;
+ #elif defined (__alpha__) || defined (__powerpc__)
+@@ -257,7 +257,7 @@
+
+ if (show_all)
+ {
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ fprintf(f, "# %s%d:\n", disk_device, bsd_part_index+1);
+ #elif defined (__alpha__) || defined (__powerpc__)
+ fprintf(f, "# %s:\n", disk_device);
+@@ -352,7 +352,7 @@
+ static void
+ bsd_write_disklabel (void)
+ {
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ printf ("Writing disklabel to %s%d.\n", disk_device, bsd_part_index+1);
+ bsd_writelabel (bsd_part, &bsd_dlabel);
+ #elif defined (__alpha__) || defined (__powerpc__)
+@@ -366,7 +366,7 @@
+ {
+ char c;
+
+-#if defined (i386)
++#if defined (i386) || defined(__amd64)
+ fprintf (stderr, "%s%d contains no disklabel.\n",
+ disk_device, bsd_part_index+1);
+ #elif defined (__alpha__) || defined (__powerpc__)
+@@ -376,7 +376,7 @@
+ while (1)
+ if ((c = tolower (read_char ("Do you want to create a disklabel? (y/n) "))) == 'y')
+ {
+-#if defined (i386)
++#if defined (i386) || defined(__amd64)
+ if (bsd_initlabel (bsd_part, &bsd_dlabel, bsd_part_index) == 1)
+ #elif defined (__alpha__) || defined (__powerpc__) || defined (__mc68000__)
+ if (bsd_initlabel (NULL, &bsd_dlabel, 0) == 1)
+@@ -507,7 +507,7 @@
+
+ bcopy (&dl, d, sizeof (struct disklabel));
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ sector = bsd_part -> start_sect;
+ #elif defined (__powerpc__)
+ sector = 0;
+@@ -521,7 +521,7 @@
+ if (BSD_BBSIZE != write (fd, buffer, BSD_BBSIZE))
+ fatal (unable_to_write);
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ printf ("Bootstrap installed on %s%d.\n", disk_device, bsd_part_index+1);
+ #elif defined (__alpha__) || defined (__powerpc__)
+ printf ("Bootstrap installed on %s.\n", disk_device);
+@@ -625,7 +625,7 @@
+ d -> d_subtype = BSD_DSTYPE_INDOSPART & pindex;
+ #endif
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ d -> d_flags = BSD_D_DOSPART;
+ #else
+ d -> d_flags = 0;
+@@ -648,7 +648,7 @@
+ d -> d_bbsize = BSD_BBSIZE;
+ d -> d_sbsize = BSD_SBSIZE;
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ d -> d_npartitions = 4;
+ pp = &d -> d_partitions[2]; /* Partition C should be the NetBSD partition */
+ pp -> p_offset = p -> start_sect;
+@@ -674,7 +674,7 @@
+ {
+ int t, sector;
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ sector = p -> start_sect;
+ #elif defined (__alpha__) || defined (__powerpc__)
+ sector = 0;
+@@ -708,7 +708,7 @@
+ {
+ int sector;
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ sector = p -> start_sect + BSD_LABELSECTOR;
+ #elif defined (__alpha__) || defined (__powerpc__)
+ sector = BSD_LABELSECTOR;
+@@ -749,7 +749,7 @@
+ sleep (4);
+ }
+
+-#if defined (i386)
++#if defined (i386) || defined (__amd64)
+ static int
+ bsd_translate_fstype (int linux_type)
+ {
+--- a/fdisklabel.h
++++ b/fdisklabel.h
+@@ -35,7 +35,7 @@
+ #define BSD_MAXPARTITIONS 8
+ #define BSD_LINUX_BOOTDIR "/usr/ucb/mdec"
+
+-#if defined (i386)
++#if defined (i386) || defined(__amd64)
+ #define BSD_LABELSECTOR 1
+ #define BSD_LABELOFFSET 0
+ #define BSD_BBSIZE 8192 /* size of boot area, with label */
+--- a/kernel-defs.h
++++ b/kernel-defs.h
+@@ -15,8 +15,14 @@
+ /* from asm/ioctl.h */
+ #define _IOC_NRBITS 8
+ #define _IOC_TYPEBITS 8
++
++#ifndef _IOC_SIZEBITS
+ #define _IOC_SIZEBITS 13
++#endif
++
++#ifndef _IOC_DIRBITS
+ #define _IOC_DIRBITS 3
++#endif
+
+ #define _IOC_NRMASK ((1 << _IOC_NRBITS)-1)
+ #define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1)
diff --git a/sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild b/sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild
new file mode 100644
index 000000000000..c8b135ad6cc6
--- /dev/null
+++ b/sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils toolchain-funcs
+
+DEBRV=13
+DESCRIPTION="Mac/PowerMac disk partitioning utility"
+HOMEPAGE="ftp://ftp.mklinux.apple.com/pub/Other_Tools/"
+SRC_URI="mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV}.orig.tar.gz
+ mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV}-${DEBRV}.diff.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+src_unpack() {
+ unpack mac-fdisk_${PV}.orig.tar.gz
+ mv mac-fdisk-${PV}.orig ${P}
+ cd "${S}"
+ epatch "${DISTDIR}"/${PN}_${PV}-${DEBRV}.diff.gz
+
+ epatch "${FILESDIR}"/largerthan2gb.patch
+ epatch "${FILESDIR}"/${P}-headers.patch
+
+ ### Patch for bug #142737
+ epatch "${FILESDIR}"/${PN}-0.1-r6-ppc64.patch
+
+ ### Patch for building on amd64
+ epatch "${FILESDIR}"/${PN}-amd64.patch
+
+ ### Patch for large (>550GB disks)
+ ### Note that >=2TB disks may not work due to limitations of the Mac
+ ### Partition Table structure, this needs to be investigated
+ epatch "${FILESDIR}"/big_pt.patch
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" || die "emake failed!"
+}
+
+src_install() {
+ into /
+ newsbin pdisk mac-fdisk || die
+ newsbin fdisk pmac-fdisk || die
+
+ into /usr
+ newman mac-fdisk.8.in mac-fdisk.8
+ newman pmac-fdisk.8.in pmac-fdisk.8
+ dodoc README HISTORY
+}
diff --git a/sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild b/sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild
new file mode 100644
index 000000000000..19b9fff8a39e
--- /dev/null
+++ b/sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Mac/PowerMac disk partitioning utility"
+HOMEPAGE="ftp://ftp.mklinux.apple.com/pub/Other_Tools/"
+SRC_URI="
+ mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV/_p*}.orig.tar.gz
+ mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV/_p*}-${PV/*_p}.diff.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+S=${WORKDIR}/${P/_p*}.orig
+
+src_prepare() {
+ epatch "${WORKDIR}"/${PN}_${PV/_p*}-${PV/*_p}.diff
+
+ epatch "${FILESDIR}"/largerthan2gb.patch
+
+ epatch "${FILESDIR}"/${PN}-0.1-headers.patch
+
+ ### Patch for bug #142737
+ epatch "${FILESDIR}"/${PN}-0.1_p16-ppc64.patch
+
+ ### Patch for building on amd64
+ epatch "${FILESDIR}"/${PN}-amd64.patch
+
+ ### Patch for large (>550GB disks)
+ ### Note that >=2TB disks may not work due to limitations of the Mac
+ ### Partition Table structure, this needs to be investigated
+ epatch "${FILESDIR}"/big_pt.patch
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ into /
+ newsbin pdisk mac-fdisk
+ newsbin fdisk pmac-fdisk
+
+ into /usr
+ newman mac-fdisk.8.in mac-fdisk.8
+ newman pmac-fdisk.8.in pmac-fdisk.8
+ dodoc README HISTORY
+}
diff --git a/sys-fs/mac-fdisk/metadata.xml b/sys-fs/mac-fdisk/metadata.xml
new file mode 100644
index 000000000000..5eb05198076b
--- /dev/null
+++ b/sys-fs/mac-fdisk/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>ppc@gentoo.org</email>
+ <name>Gentoo Linux PowerPC Development</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/mdadm/Manifest b/sys-fs/mdadm/Manifest
new file mode 100644
index 000000000000..847aea04d4ea
--- /dev/null
+++ b/sys-fs/mdadm/Manifest
@@ -0,0 +1,27 @@
+AUX etc-default-mdadm 320 SHA256 40a18a499909bb790eebcedf6a1da9db83abc20a555c4ac4c258de2f31458acf SHA512 2258f6321e447c05e3da88a41c7a2c4a031973744125d00ee0cdb249170b02ff99b58f3883ef6892c882c313fe929404551234c12917a9d7222e497af1cfa48c WHIRLPOOL 1288254e7dadd76829ff1d06221597742f346776d4c5d2dc5ced4d939e1f8148038a3bea919dcb4bed5df26ed0afd51f44dce56a991b59421762f39e9ba32d01
+AUX mdadm-3.3.1-DDF-validate-metadata_update-size-before-using-it.patch 1409 SHA256 a4168c58f7a75890e74b68ff1634ead1bead5f5ba28e02defb5972e6b62cc080 SHA512 ce8962daeebbdb92a16263d82019ff0ffa2e3127e0477b821ef157e1a71d958434fd2054e776ba0a816f334504a16ad276b655aa5951dd3331868e74db8488c3 WHIRLPOOL 3122994c9f5f31cac0dd4f8e4290148523069cc2f26905cad1fff4afa2408752178c912c52a9528d98eb5f0904e7c92fed1e6c1e60db8e519ff95f7a6c89f97e
+AUX mdadm-3.3.1-Grow-Do-not-try-to-restart-if-reshape-is-running.patch 1656 SHA256 94447d1661040616a32343b6fc122ecde4efd8db88f634dcf7966a2e6a482eed SHA512 ebae416c12d85a381cff25634ee1f574ac1ae376ddf35c1c8ea3abb4f6978b8689a86aebeb7b6ad0496fa683de9882994d78314b49bae707439a5fabccf7fb2a WHIRLPOOL e98d3a171b09ca1584d0d4a119247f2227fcf72d7c32bc7c1522e4212c51356b07b25ebbd7a7429f2b851e30d42806c8957ac9d5e33c6d1a422a7c16b1118160
+AUX mdadm-3.3.1-Grow-fix-removal-of-line-in-wrong-case.patch 1080 SHA256 44ffffc5afaa5e2626cc42a19608b62385207eb10eeccac4632026a23df19958 SHA512 d666877ba2e2d32266beec1d67bff0edb1d3b39cb44e198ef3ff5c4fe1feb348aa1210becd306e3cbda8d46e8360e320080525698504f80a77c02b6781bd5df5 WHIRLPOOL c2145b004fec7007e086e4f41184e16c1b8cba9053a4c8473a599995c716f47c60c2e71e6a7c51c475e9bc848f80ff00109751e5c66e50c23a4d3aa16fd25234
+AUX mdadm-3.3.1-IMSM-use-strcpy-rather-than-pointless-strncpy.patch 1045 SHA256 e8c0e234f0567e8c4438b00b6760c6d5cf03724d642be4f855e77ab7624d0dfc SHA512 c49b50af731c858253d9b570045725748856c8666e071f34a8d72788ec594a4bd4b3a0b528c6a197903b49459b223d8c76bfbf20b8da358e5515c16b8d99b36a WHIRLPOOL 08fe6b31c21f6e5d6be089efc14442fda085b7645b80ba300500ea4e7d37eef3d0db4a267ee114a631942a34368da43feb68ade7b452ab11a23cc4679567d39a
+AUX mdadm-3.3.1-IMSM-validate-metadata_update-size-before-using-it.patch 3882 SHA256 e9ffad102c4ba1d60927b2b9ad88962eb4f306672bf1cd1a2aadab74500ed9f0 SHA512 8ac28b8e6ede9cf51412656b030a84765519243cbd306f33a34920770dafa5b4abcebd5590e2279e524a1a4b1ebbb69a665e1da8939cdaf7051918e10eb0ca2c WHIRLPOOL 7c342506ed5ea6a3b9481b9a62173656c06cf5b6de9812d896911d5ca2a200c87c443cff8c26fb7eb8b0cf1c5a08ab8489ff17e5735172693b9274c7e37a8b37
+AUX mdadm-3.3.1-Makefile-install-mdadm-grow-continue-.service.patch 1001 SHA256 29be282474734ab4210a23bc810d001fb4587c632df2292f9681644a7546661f SHA512 3f2395d00e66d2d45e50cad9de6456bdbe0b1e4ab2ec925e19060b1f6d399f5fada1411539baa5cb9fbcd528d9ec184692a5d78890c3a23ac62de71ed00f5562 WHIRLPOOL b86a38d25e0b35dc34b4ca38580f4fea23f1400452bf96d1d695bec51854a6aba574e66a6b30cb32d6f7e1795855425b7ed3462949f2cbe5587e99cf2c453a00
+AUX mdadm-3.3.1-mdmon-allow-prepare_update-to-report-failure.patch 3654 SHA256 cf75b7def5736ced0e1b80b5a2845a74a1debeb8b116e284576135d9e192eac9 SHA512 05b8f395ba1dbf31998eba0303396dbed92f825d37a99e48ab67dd66b6275d31fced087fcd3d70bb08a5e18a38098efab8a5df855519b457b532bb7f1aeb9f51 WHIRLPOOL 06030ed4374284f82ee30352968c7533a496648c2756468c1c1fda3ad717aebcfa3d1192911709377d16a2fe51c1e3818ce5515d9252eadad8d90f0b3e50a7ee
+AUX mdadm-3.3.1-mdmon-ensure-Unix-domain-socket-is-created-with-safe.patch 1015 SHA256 99b2d3a6cc36102933f393d07c8c45ec1591f001d39b0dc1619022ceb9cddadd SHA512 3f8f8a6cf3f75004916180d67257af504b722cce6fd85a1e0136fd46dc467ea5919e8d65ba7483f3960f0676e1bb0d3cc0b09d24acf235f2045247aa199d377f WHIRLPOOL 40e38f174daae78b45729f464851a39f9d502eccf56ecab5628ce6f87fc2cfa059ef587e8207869751fa8f0417dba9586c70a85c9a20480831d0e0432b43e3aa
+AUX mdadm-3.4-sysmacros.patch 859 SHA256 c604c29c93f77a14c0ce61222af2c4a5b5b438e16f547b995f81564d864c3cc4 SHA512 47564bba9d45dfb39d63df9e6cd96ad03b37b314e794af180911481feb4e038035aa1ea6d3de2061982f46b51d1a205168f98e6f0a092f55f6f8e760dbabdae6 WHIRLPOOL f19255694360acefd19de1f72b1fbdb835fc6c29e8c3699344f86513a0f09bf8bbabbacca64567a29c82f44665ecf166ec33925738bdc547754c8d2785168709
+AUX mdadm.confd 205 SHA256 ec55674955af7a31da51b8b72b599e8519809287dad796a9b16155bcba471b79 SHA512 7bf66898000b3d02bbf0704a8032b0f4fc045380501dc8d2bbbb31d33b122d9c35879b25714663079eeadd207c9da87c9d9af8464e76146bf5b68594e73fd92c WHIRLPOOL b6a86bae6d298bcff17a497739109fa07f2bfb2682454a089dfef7ad51d2d770eec2661a5dd77140fe6ec33e94bc87d2378790eb06d11eace8dbe4ff0b83b677
+AUX mdadm.rc 465 SHA256 5b859ba14b7a4a350c0a8afe6edb352e0db9920bdf1e05315ffbbfb92f201584 SHA512 01fe98e88466afefd84a52cedc5fcbe18eadf8f80fed12b8a2a6a8f5581e7cabe8ce3f2e99cdc3c1bacc626f5eb4f6bffe3cc888153089ee2a461c465ae05570 WHIRLPOOL be038a9ea2ece751b569053136527fdc095c2dce77ff0982c91f69855314199404636ee135f6d1c0c77aa516ecdbac189672fd5fc8967215530d383f7a67b646
+AUX mdadm.weekly 187 SHA256 1234feb39795ebd03c53ca6f2d6496cf69c658890278d803ea40c86b841f898e SHA512 3bc7bf8c9593f06e42ae657e2bce416758090d1f999a447986df17b97e1494b261f02155b83932295f2f3bbab7d8933cf647c834bfb1d7def879cbedfaa6d7c2 WHIRLPOOL ff1b95deee1ee422f05aa438b498708bdb65754cd1158f371d1657f864ea0a52c62e5c93cbb4bfe98cedea23670a3a8b3fa4a04818975d80cf577d12318df7c7
+AUX mdraid.confd 383 SHA256 b489ced10391d4295bb8ca29e128b0d4217c290f1b4e37b05f5a9275048d289d SHA512 37fe70f5df0fb2b68be01ee774e3a943cfb280322f2db0c5d6892e701fb58be26a225b78448814294bf68f154cca697278fcf9572a47b6201920d95ad05189d6 WHIRLPOOL 60de14055064337413b137479ed7f1d45b2293fe8be4ec820dcfc716c8898f9066871a48d094bd4f3e78215e6f6e97a36d4a87f2ea3fd8e048461bfe224848ae
+AUX mdraid.rc 759 SHA256 31e7ba4174f38c05e939aa56fab8a43a3e371ba9e503e029887c99fed7a28331 SHA512 d76190646b393d1480607b0d89d08ce4196738295fbb7790fa1035c53a041b5cb88fe857bb2070920a9c3ae21b9fb8f7838dde240fa0e275e5915add9c113021 WHIRLPOOL 6ee7406ca4b463d1fa4697d1ed0c01873fb33959f1e4da64220468e8338c5de10534287bea2f945fc564ec9e545622962162712d4ba038ab3bc3f0a0b2055c3c
+DIST mdadm-3.3.1.tar.xz 407964 SHA256 d8c74112cfd77bdc1dbc1291fe8d9243c76d91bfa276fcb95f2a75ca7717ab02 SHA512 46fc1889e97d2d14b72ac26ee07eb4301467dc4a0e838ba89920253484fcd443749f3afccb3d792f7e468b20021d50dbc29dda7033d9b5a8fbaee664200f1981 WHIRLPOOL ca690bd35ab8ff475694d8f0420cd762704cc1777116edfdc9394973efa0d6decce1721dc1f7c8c84728d7434073cb6ab5161e5518c46aa8b4a7a5547ebb011d
+DIST mdadm-3.4.tar.xz 422704 SHA256 27d0be4627d38a12ddcd1c1c3721d649d4e89e1093914497e22b57245cda8808 SHA512 5de06f3a2b83333e5346a1e858b15e76f75a13a1d5c5f2032fecc6eb167454b282e12ee111ac2abec778e058ec9554708ac317a476778328546603618e6f70f7 WHIRLPOOL 18a5f2ed027b919e2e365cf9ddc1b616bf1fe315d27196a248ce9600622eb86d5ce825f1b38ecf0a1f5dcf21fa59fd7d88856700aea25a721c8efa37e2b34d39
+DIST mdadm-4.0.tar.xz 430780 SHA256 1d6ae7f24ced3a0fa7b5613b32f4a589bb4881e3946a5a2c3724056254ada3a9 SHA512 12fb26e6b9c1912698defa406e5e47a7ca8d68d4a9aa7acdc9b463ee2d4a37fc6ecef6beb5395ff619018c3f6bdb6d8c573060d027707540f645ad2265170e8b WHIRLPOOL 6587c7817556fbf47f7624a05d000c3a8396c84fbabe43aa574b649a119f987181b909f4347b93b07a45bf4d6519e1c8a39b1c0245538d64fb0eddd27e3e4054
+DIST mdadm_3.3-2.debian.tar.gz 127889 SHA256 c38b155e7395b35380d506458d979b82c5b853de996f21ccab50b1202d726301 SHA512 92e4c403542caba4b9afb870ba803e6bc7ade143b27efdc27e03b3407f322722a635457cce9e8c195a3ecd7cbce66fdebdd6046fc4f36836e56e27d5d838c037 WHIRLPOOL 8f8ef1142a79044093a5f55b181dc35a142b83041a59a9b71945aa6fe84cd089a7e1b183ec6b5db210a0d07e94efad0ab3a0d0341fc6cbbbf4da9d0254b5c737
+DIST mdadm_3.3.4-1.1.debian.tar.xz 86312 SHA256 16dd6b77c14a15afa23e077f0c157c17ef5cc6054b17ccb38cf5af86f7bf55bd SHA512 ea9b34a9952e1ff836cb931c7eef0ae0c44e3f4d46162c7a7eca24936d6f7168e99d67749b3100bc68ebadc8f256e4833d42da48c531cf71e6e8f3100911828f WHIRLPOOL 44df72008fc89f21a461bc45be230383d906fd0c0ea062327a537024ceff245b47ced301d72d5bfe5a0fcde095e99e14cdf30c614550bce023851e7a6ac0c525
+DIST mdadm_3.4-4.debian.tar.xz 81200 SHA256 4b09a90aefc2833040ae570cf4ddc34f98a67525636d3c9f2fabf8c13b51e27e SHA512 86a9edb8f29931fdfa40037d535ca80f0bf59539fe1ef16f2639e666a5ac1bd90ec617ec1635080ae62a02f7986a6e10c97dce5389555ab7d417885f216c0f93 WHIRLPOOL 07ab64531da08999b3d351d3747a870cd996b67cc4e2df2c9f8d974d170bc9537bed4aefcf690a2e0a66715549ff046520bd1c559b11736467b3f881681068ed
+EBUILD mdadm-3.3.1-r2.ebuild 2880 SHA256 0bbfab7da06d63fabec2a76f9023840e429650ebcbbd6993224a44e88dc7bc8e SHA512 3431b69f5a392efc822193101c09f852476b5bb46687601301727cd535d4b3bfa06109d48179536fc51e13b2d92a09d559a4519868df9c551d1a9f6fd9b3baa1 WHIRLPOOL 697b9510c1f13cfd31cd678466c9734a3292df991fba3b243b36f30945d2c6571a866b62bc30bc1fd8d8b25db207b4a7a7dbde4c5b1dc8ad08819d5faa15eeee
+EBUILD mdadm-3.4.ebuild 2324 SHA256 0796656510a3ae1699be505d2fcd61d6f299ea8e30bbb060777fac1a75ead128 SHA512 4aa81c3db6810a1fb0f425c37b33b61a6f4b99f3e11eca3c61e9fe0379bd430f4bd5454005c9e4e4ee15758f21aefe0e091f3b971b1a63b5c7a42ad3c8a0654e WHIRLPOOL e636f58d0a2915ca303daef064dd88b3f37a06ca625682aad62d8ff04c2e291594f31501e0d52c7ac5669b2df8a7d875b6c9ad3dfa0b4eab5ea302d966ccdda6
+EBUILD mdadm-4.0.ebuild 2329 SHA256 4c27e53b7e03e08a69d5b9c8ca0eccb2d158f52fa70afb149d7f23bbbf9e38b9 SHA512 a1bf72afdcd3b9972366f11fb884c77697f15b5cc3b29936cb0e14bfc74e6f628a6267262ca79160048441f63357f40d21d0def05c491390d9d573264bf76983 WHIRLPOOL 9848f6374e5bc6da7ea1178b974f95f52adafb01fa50bb961fc9dc2e1fd49d8214efa938bea56e45147090d613878470462bb4fb5c71a27c0a3e85b695f39e37
+MISC ChangeLog 5097 SHA256 5df3e03b3edde6085d1e5af80910e1df7ac313924e899d1ced1e2264e5d871a5 SHA512 04bb606a2454e6fd34cfad17313fbb36e8da32e51e3ce5cad2276dea5448e726aeeba486a3dcdbc54f3ef4655b820388788b92398e174834d92a0af0796ff26e WHIRLPOOL b3ec8b6b3cf9b416a792b1bd5accc364834610619d06916658fbe68c2134ba1f08d4a40460ece703b2e7a62104b2173d9130a9eb67b85d0e829747ae4e31b20a
+MISC ChangeLog-2015 31212 SHA256 20dc8e59ca2ba5b9d519d495d92bd4925645a3fa8e011956be4b34a7a43b2d15 SHA512 31f7be82e92367c9f613046053fdc4a7cbabf0101567a6adbfa5b151355b0622857df6645fc6a08cc0d9a993308a26a3561d115c5d1a4eb5f25d93990591763a WHIRLPOOL bb81d0547fc8e0dd3c14be8c3ff8605b74e46c893f714638531ce9f8fe36010a7c9245caca18b829532117789e5c21bcf81d1212da03527c1ec7224b110edc24
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/mdadm/files/etc-default-mdadm b/sys-fs/mdadm/files/etc-default-mdadm
new file mode 100644
index 000000000000..921c70b19482
--- /dev/null
+++ b/sys-fs/mdadm/files/etc-default-mdadm
@@ -0,0 +1,9 @@
+# Based on Debian /etc/default/mdadm
+
+# Gentoo comment: The cronjob checks for this value to decide to actually
+# validate arrays. If missing, it does NOT actually do anything.
+# AUTOCHECK:
+# should mdadm run periodic redundancy checks over your arrays? See
+# /etc/cron.weekly/mdadm
+
+#AUTOCHECK=true
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-DDF-validate-metadata_update-size-before-using-it.patch b/sys-fs/mdadm/files/mdadm-3.3.1-DDF-validate-metadata_update-size-before-using-it.patch
new file mode 100644
index 000000000000..befb7da91735
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-DDF-validate-metadata_update-size-before-using-it.patch
@@ -0,0 +1,44 @@
+From 1f17f96b538793a0e665e471f602c6fa490ec167 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Thu, 10 Jul 2014 15:59:06 +1000
+Subject: [PATCH 12/14] DDF: validate metadata_update size before using it.
+
+process_update already checks update->len, for all but
+the 'magic', prepare_update doesn't at all.
+
+So add tests to prepare_update that we don't exceed the buffer.
+This will consequently protect process_update from looking
+for a 'magic' which isn't there.
+
+Reported-by: Vincent Berg <vberg@ioactive.com>
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ super-ddf.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/super-ddf.c b/super-ddf.c
+index 1e43ca2..8957c2e 100644
+--- a/super-ddf.c
++++ b/super-ddf.c
+@@ -4914,10 +4914,16 @@ static int ddf_prepare_update(struct supertype *st,
+ * If a malloc is needed, do it here.
+ */
+ struct ddf_super *ddf = st->sb;
+- be32 *magic = (be32 *)update->buf;
++ be32 *magic;
++ if (update->len < 4)
++ return 0;
++ magic = (be32 *)update->buf;
+ if (be32_eq(*magic, DDF_VD_CONF_MAGIC)) {
+ struct vcl *vcl;
+- struct vd_config *conf = (struct vd_config *) update->buf;
++ struct vd_config *conf;
++ if (update->len < (int)sizeof(*conf))
++ return 0;
++ conf = (struct vd_config *) update->buf;
+ if (posix_memalign(&update->space, 512,
+ offsetof(struct vcl, conf)
+ + ddf->conf_rec_len * 512) != 0) {
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-Grow-Do-not-try-to-restart-if-reshape-is-running.patch b/sys-fs/mdadm/files/mdadm-3.3.1-Grow-Do-not-try-to-restart-if-reshape-is-running.patch
new file mode 100644
index 000000000000..717317b8a2d0
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-Grow-Do-not-try-to-restart-if-reshape-is-running.patch
@@ -0,0 +1,45 @@
+From 13ffbe89b6103c146c08eb1c9a70833306c8322b Mon Sep 17 00:00:00 2001
+From: Pawel Baldysiak <pawel.baldysiak@intel.com>
+Date: Wed, 16 Jul 2014 12:20:34 +0200
+Subject: [PATCH 14/14] Grow: Do not try to restart if reshape is running
+
+Grow process did not check if reshape is already started
+when deciding about restarting.
+Sync_action should be checked in this case, and if
+reshape is running - restart flag should not be set.
+Otherwise, Grow process will fail to write data to
+sysfs, and reshape will not be continued.
+
+Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
+Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ Grow.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Grow.c b/Grow.c
+index a2f4f14..ea9cc60 100644
+--- a/Grow.c
++++ b/Grow.c
+@@ -2822,6 +2822,7 @@ static int reshape_array(char *container, int fd, char *devname,
+ unsigned long long array_size;
+ int done;
+ struct mdinfo *sra = NULL;
++ char buf[20];
+
+ /* when reshaping a RAID0, the component_size might be zero.
+ * So try to fix that up.
+@@ -2869,7 +2870,9 @@ static int reshape_array(char *container, int fd, char *devname,
+ goto release;
+ }
+
+- if (st->ss->external && restart && (info->reshape_progress == 0)) {
++ if (st->ss->external && restart && (info->reshape_progress == 0) &&
++ !((sysfs_get_str(info, NULL, "sync_action", buf, sizeof(buf)) > 0) &&
++ (strncmp(buf, "reshape", 7) == 0))) {
+ /* When reshape is restarted from '0', very begin of array
+ * it is possible that for external metadata reshape and array
+ * configuration doesn't happen.
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-Grow-fix-removal-of-line-in-wrong-case.patch b/sys-fs/mdadm/files/mdadm-3.3.1-Grow-fix-removal-of-line-in-wrong-case.patch
new file mode 100644
index 000000000000..acc38267d160
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-Grow-fix-removal-of-line-in-wrong-case.patch
@@ -0,0 +1,39 @@
+From e339dba2a1744dc6860a58e286ded39fc993c2db Mon Sep 17 00:00:00 2001
+From: Pawel Baldysiak <pawel.baldysiak@intel.com>
+Date: Wed, 11 Jun 2014 15:18:44 +0000
+Subject: [PATCH 02/14] Grow: fix removal of line in wrong case
+
+Commit 18d9bcfa33939cee345d4d7735bc6081bcc409c8
+removed wrong line (in case RAID0->RAID4).
+This patch corrects this mistake
+(line should be removed in case RAID4->RAID4).
+
+Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ Grow.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Grow.c b/Grow.c
+index 12730e2..a2f4f14 100644
+--- a/Grow.c
++++ b/Grow.c
+@@ -1324,6 +1324,7 @@ char *analyse_change(char *devname, struct mdinfo *info, struct reshape *re)
+
+ switch (re->level) {
+ case 4:
++ re->before.layout = 0;
+ re->after.layout = 0;
+ break;
+ case 5:
+@@ -1339,7 +1340,6 @@ char *analyse_change(char *devname, struct mdinfo *info, struct reshape *re)
+
+ switch (re->level) {
+ case 4:
+- re->before.layout = 0;
+ re->after.layout = 0;
+ break;
+ case 5:
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-IMSM-use-strcpy-rather-than-pointless-strncpy.patch b/sys-fs/mdadm/files/mdadm-3.3.1-IMSM-use-strcpy-rather-than-pointless-strncpy.patch
new file mode 100644
index 000000000000..b63b1e732d36
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-IMSM-use-strcpy-rather-than-pointless-strncpy.patch
@@ -0,0 +1,32 @@
+From 6d8d290a2f09a3bfd9e44f382ae5daea128772f7 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Thu, 3 Jul 2014 15:04:01 +1000
+Subject: [PATCH 03/14] IMSM: use strcpy rather than pointless strncpy.
+
+As strncpy doesn't guarantee to nul-terminate, some static
+analysers get upset that it is followed by a 'strncat'.
+So just use a 'strcpy' - strlen(disk_by_path) is constant
+and definitely less than PATH_MAX.
+
+Link: https://github.com/neilbrown/mdadm/issues/4
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ super-intel.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/super-intel.c b/super-intel.c
+index 9dd807a..0106b4f 100644
+--- a/super-intel.c
++++ b/super-intel.c
+@@ -9357,7 +9357,7 @@ static const char *imsm_get_disk_controller_domain(const char *path)
+ char *drv=NULL;
+ struct stat st;
+
+- strncpy(disk_path, disk_by_path, PATH_MAX - 1);
++ strcpy(disk_path, disk_by_path);
+ strncat(disk_path, path, PATH_MAX - strlen(disk_path) - 1);
+ if (stat(disk_path, &st) == 0) {
+ struct sys_dev* hba;
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-IMSM-validate-metadata_update-size-before-using-it.patch b/sys-fs/mdadm/files/mdadm-3.3.1-IMSM-validate-metadata_update-size-before-using-it.patch
new file mode 100644
index 000000000000..b1610835753a
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-IMSM-validate-metadata_update-size-before-using-it.patch
@@ -0,0 +1,128 @@
+From 095b8088fa99ad1195d1aba03af2aa561b4a6379 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Thu, 10 Jul 2014 16:09:28 +1000
+Subject: [PATCH 13/14] IMSM: validate metadata_update size before using it.
+
+Every case in prepare_update check that the size message
+size is sufficient, so process_update doesn't need to check anything.
+
+Reported-by: Vincent Berg <vberg@ioactive.com>
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ super-intel.c | 44 +++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 41 insertions(+), 3 deletions(-)
+
+diff --git a/super-intel.c b/super-intel.c
+index 2547b4a..b4efa72 100644
+--- a/super-intel.c
++++ b/super-intel.c
+@@ -8587,7 +8587,7 @@ static void imsm_process_update(struct supertype *st,
+ }
+ case update_add_remove_disk: {
+ /* we may be able to repair some arrays if disks are
+- * being added, check teh status of add_remove_disk
++ * being added, check the status of add_remove_disk
+ * if discs has been added.
+ */
+ if (add_remove_disk_update(super)) {
+@@ -8617,19 +8617,28 @@ static int imsm_prepare_update(struct supertype *st,
+ * integrated by the monitor thread without worrying about live pointers
+ * in the manager thread.
+ */
+- enum imsm_update_type type = *(enum imsm_update_type *) update->buf;
++ enum imsm_update_type type;
+ struct intel_super *super = st->sb;
+ struct imsm_super *mpb = super->anchor;
+ size_t buf_len;
+ size_t len = 0;
+
++ if (update->len < (int)sizeof(type))
++ return 0;
++
++ type = *(enum imsm_update_type *) update->buf;
++
+ switch (type) {
+ case update_general_migration_checkpoint:
++ if (update->len < (int)sizeof(struct imsm_update_general_migration_checkpoint))
++ return 0;
+ dprintf("imsm: prepare_update() "
+ "for update_general_migration_checkpoint called\n");
+ break;
+ case update_takeover: {
+ struct imsm_update_takeover *u = (void *)update->buf;
++ if (update->len < (int)sizeof(*u))
++ return 0;
+ if (u->direction == R0_TO_R10) {
+ void **tail = (void **)&update->space_list;
+ struct imsm_dev *dev = get_imsm_dev(super, u->subarray);
+@@ -8670,6 +8679,9 @@ static int imsm_prepare_update(struct supertype *st,
+ struct intel_dev *dl;
+ void **space_tail = (void**)&update->space_list;
+
++ if (update->len < (int)sizeof(*u))
++ return 0;
++
+ dprintf("imsm: imsm_prepare_update() for update_reshape\n");
+
+ for (dl = super->devlist; dl; dl = dl->next) {
+@@ -8702,6 +8714,9 @@ static int imsm_prepare_update(struct supertype *st,
+ void *s;
+ int current_level = -1;
+
++ if (update->len < (int)sizeof(*u))
++ return 0;
++
+ dprintf("imsm: imsm_prepare_update() for update_reshape\n");
+
+ /* add space for bigger array in update
+@@ -8769,6 +8784,13 @@ static int imsm_prepare_update(struct supertype *st,
+ break;
+ }
+ case update_size_change: {
++ if (update->len < (int)sizeof(struct imsm_update_size_change))
++ return 0;
++ break;
++ }
++ case update_activate_spare: {
++ if (update->len < (int)sizeof(struct imsm_update_activate_spare))
++ return 0;
+ break;
+ }
+ case update_create_array: {
+@@ -8781,6 +8803,9 @@ static int imsm_prepare_update(struct supertype *st,
+ int i;
+ int activate = 0;
+
++ if (update->len < (int)sizeof(*u))
++ return 0;
++
+ inf = get_disk_info(u);
+ len = sizeof_imsm_dev(dev, 1);
+ /* allocate a new super->devlist entry */
+@@ -8802,9 +8827,22 @@ static int imsm_prepare_update(struct supertype *st,
+ }
+ len += activate * sizeof(struct imsm_disk);
+ break;
+- default:
++ }
++ case update_kill_array: {
++ if (update->len < (int)sizeof(struct imsm_update_kill_array))
++ return 0;
+ break;
+ }
++ case update_rename_array: {
++ if (update->len < (int)sizeof(struct imsm_update_rename_array))
++ return 0;
++ break;
++ }
++ case update_add_remove_disk:
++ /* no update->len needed */
++ break;
++ default:
++ return 0;
+ }
+
+ /* check if we need a larger metadata buffer */
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-Makefile-install-mdadm-grow-continue-.service.patch b/sys-fs/mdadm/files/mdadm-3.3.1-Makefile-install-mdadm-grow-continue-.service.patch
new file mode 100644
index 000000000000..431bfd1abe3b
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-Makefile-install-mdadm-grow-continue-.service.patch
@@ -0,0 +1,28 @@
+From 616f197f9d6d044afb9e27ddc9cd087d21d610f0 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Tue, 10 Jun 2014 20:34:40 +1000
+Subject: [PATCH 01/14] Makefile: install mdadm-grow-continue@.service
+
+Forgot to add this to install-systemd target
+
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index c7e7a42..1a4a5dc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -290,7 +290,7 @@ install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules
+
+ install-systemd: systemd/mdmon@.service
+ @for file in mdmon@.service mdmonitor.service mdadm-last-resort@.timer \
+- mdadm-last-resort@.service ; \
++ mdadm-last-resort@.service mdadm-grow-continue@.service; \
+ do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp && \
+ echo $(INSTALL) -D -m 644 systemd/$$file $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \
+ $(INSTALL) -D -m 644 .install.tmp $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-mdmon-allow-prepare_update-to-report-failure.patch b/sys-fs/mdadm/files/mdadm-3.3.1-mdmon-allow-prepare_update-to-report-failure.patch
new file mode 100644
index 000000000000..772248b19c3d
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-mdmon-allow-prepare_update-to-report-failure.patch
@@ -0,0 +1,119 @@
+From 5fe6f031d9a21a935f0ef1b1fbdb314b53f2199f Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Thu, 10 Jul 2014 15:54:02 +1000
+Subject: [PATCH 11/14] mdmon: allow prepare_update to report failure.
+
+If 'prepare_update' fails for some reason there is little
+point continuing on to 'process_update'.
+For now only malloc failures are caught, but other failures
+will be considered in future.
+
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ managemon.c | 3 ++-
+ mdadm.h | 5 ++++-
+ super-ddf.c | 8 +++++---
+ super-intel.c | 9 +++++----
+ 4 files changed, 16 insertions(+), 9 deletions(-)
+
+diff --git a/managemon.c b/managemon.c
+index 5f7e2ce..1c9eccc 100644
+--- a/managemon.c
++++ b/managemon.c
+@@ -819,7 +819,8 @@ static void handle_message(struct supertype *container, struct metadata_update *
+ mu->space_list = NULL;
+ mu->next = NULL;
+ if (container->ss->prepare_update)
+- container->ss->prepare_update(container, mu);
++ if (!container->ss->prepare_update(container, mu))
++ free_updates(&mu);
+ queue_metadata_update(mu);
+ }
+ }
+diff --git a/mdadm.h b/mdadm.h
+index 914d67c..02a9288 100644
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -929,7 +929,10 @@ extern struct superswitch {
+ void (*sync_metadata)(struct supertype *st);
+ void (*process_update)(struct supertype *st,
+ struct metadata_update *update);
+- void (*prepare_update)(struct supertype *st,
++ /* Prepare updates allocates extra memory that might be
++ * needed. If the update cannot be understood, return 0.
++ */
++ int (*prepare_update)(struct supertype *st,
+ struct metadata_update *update);
+
+ /* activate_spare will check if the array is degraded and, if it
+diff --git a/super-ddf.c b/super-ddf.c
+index ab9fc46..1e43ca2 100644
+--- a/super-ddf.c
++++ b/super-ddf.c
+@@ -4906,8 +4906,8 @@ static void ddf_process_update(struct supertype *st,
+ /* case DDF_SPARE_ASSIGN_MAGIC */
+ }
+
+-static void ddf_prepare_update(struct supertype *st,
+- struct metadata_update *update)
++static int ddf_prepare_update(struct supertype *st,
++ struct metadata_update *update)
+ {
+ /* This update arrived at managemon.
+ * We are about to pass it to monitor.
+@@ -4922,15 +4922,17 @@ static void ddf_prepare_update(struct supertype *st,
+ offsetof(struct vcl, conf)
+ + ddf->conf_rec_len * 512) != 0) {
+ update->space = NULL;
+- return;
++ return 0;
+ }
+ vcl = update->space;
+ vcl->conf.sec_elmnt_count = conf->sec_elmnt_count;
+ if (alloc_other_bvds(ddf, vcl) != 0) {
+ free(update->space);
+ update->space = NULL;
++ return 0;
+ }
+ }
++ return 1;
+ }
+
+ /*
+diff --git a/super-intel.c b/super-intel.c
+index 7734bde..2547b4a 100644
+--- a/super-intel.c
++++ b/super-intel.c
+@@ -8607,8 +8607,8 @@ static void imsm_process_update(struct supertype *st,
+
+ static struct mdinfo *get_spares_for_grow(struct supertype *st);
+
+-static void imsm_prepare_update(struct supertype *st,
+- struct metadata_update *update)
++static int imsm_prepare_update(struct supertype *st,
++ struct metadata_update *update)
+ {
+ /**
+ * Allocate space to hold new disk entries, raid-device entries or a new
+@@ -8828,6 +8828,7 @@ static void imsm_prepare_update(struct supertype *st,
+ else
+ super->next_buf = NULL;
+ }
++ return 1;
+ }
+
+ /* must be called while manager is quiesced */
+@@ -9716,8 +9717,8 @@ static void imsm_update_metadata_locally(struct supertype *st,
+ mu.space = NULL;
+ mu.space_list = NULL;
+ mu.next = NULL;
+- imsm_prepare_update(st, &mu);
+- imsm_process_update(st, &mu);
++ if (imsm_prepare_update(st, &mu))
++ imsm_process_update(st, &mu);
+
+ while (mu.space_list) {
+ void **space = mu.space_list;
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.3.1-mdmon-ensure-Unix-domain-socket-is-created-with-safe.patch b/sys-fs/mdadm/files/mdadm-3.3.1-mdmon-ensure-Unix-domain-socket-is-created-with-safe.patch
new file mode 100644
index 000000000000..9780196e28cd
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.3.1-mdmon-ensure-Unix-domain-socket-is-created-with-safe.patch
@@ -0,0 +1,34 @@
+From 120ec6f7b96455e42bdfa9131c0c9026c57eaf19 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Thu, 3 Jul 2014 17:06:45 +1000
+Subject: [PATCH 09/14] mdmon: ensure Unix domain socket is created with safe
+ permissions.
+
+In the unlikely case that mdmon is started with an overly
+permissive umask, we don't want to risk giving away world acccess.
+
+All other "mkdir" and "O_CREAT" calls in mdmon and mdadm set
+a suitably restrictive permission mask. 'bind' don't take an
+explicit mask so it needs an implicit one.
+
+Reported-by: Vincent Berg <vberg@ioactive.com>
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ mdmon.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mdmon.c b/mdmon.c
+index b84d4d9..21221cd 100644
+--- a/mdmon.c
++++ b/mdmon.c
+@@ -232,6 +232,7 @@ static int make_control_sock(char *devname)
+
+ addr.sun_family = PF_LOCAL;
+ strcpy(addr.sun_path, path);
++ umask(077); /* ensure no world write access */
+ if (bind(sfd, &addr, sizeof(addr)) < 0) {
+ close(sfd);
+ return -1;
+--
+2.0.0
+
diff --git a/sys-fs/mdadm/files/mdadm-3.4-sysmacros.patch b/sys-fs/mdadm/files/mdadm-3.4-sysmacros.patch
new file mode 100644
index 000000000000..22a393447632
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm-3.4-sysmacros.patch
@@ -0,0 +1,31 @@
+https://bugs.gentoo.org/580188
+
+From 5c97e465b33bf8fefb17da7f553a1c3812e508d5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 19 Apr 2016 18:10:54 -0400
+Subject: [PATCH] include sys/sysmacros.h for major/minor/makedev prototypes
+
+These funcs are defined in sys/sysmacros.h, so include it for them.
+It works today due to an implicit include by sys/types.h, but the
+various Linux C libraries are moving away from that.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ mdadm.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mdadm.h b/mdadm.h
+index d209488..b8767a7 100755
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -33,6 +33,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
+ # endif
+ #endif
+
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <stdint.h>
+--
+2.7.4
+
diff --git a/sys-fs/mdadm/files/mdadm.confd b/sys-fs/mdadm/files/mdadm.confd
new file mode 100644
index 000000000000..a4ead14dc34e
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm.confd
@@ -0,0 +1,7 @@
+# /etc/conf.d/mdadm: config file for /etc/init.d/mdadm
+
+# Misc options to pass to mdadm in monitor mode.
+# For more info, run `mdadm --monitor --help` or see
+# the mdadm(8) manpage.
+
+MDADM_OPTS="--syslog"
diff --git a/sys-fs/mdadm/files/mdadm.rc b/sys-fs/mdadm/files/mdadm.rc
new file mode 100644
index 000000000000..c5bd38b13a14
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm.rc
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use logger dns net
+}
+
+start() {
+ ebegin "Starting mdadm monitor"
+ mdadm --monitor --scan \
+ --daemonise \
+ --pid-file /var/run/mdadm.pid \
+ ${MDADM_OPTS}
+ eend $?
+}
+
+stop() {
+ local ret
+ ebegin "Stopping mdadm monitor"
+ start-stop-daemon --stop --pidfile /var/run/mdadm.pid
+ ret=$?
+ rm -f /var/run/mdadm.pid
+ eend ${ret}
+}
diff --git a/sys-fs/mdadm/files/mdadm.weekly b/sys-fs/mdadm/files/mdadm.weekly
new file mode 100644
index 000000000000..e2b35b550fce
--- /dev/null
+++ b/sys-fs/mdadm/files/mdadm.weekly
@@ -0,0 +1,5 @@
+#!/bin/sh
+# This requires that AUTOCHECK is true in /etc/default/mdadm
+if [ -x /usr/sbin/checkarray ] && [ $(date +\%d) -le 7 ]; then
+ /usr/sbin/checkarray --cron --all --idle --quiet
+fi
diff --git a/sys-fs/mdadm/files/mdraid.confd b/sys-fs/mdadm/files/mdraid.confd
new file mode 100644
index 000000000000..5694d732d006
--- /dev/null
+++ b/sys-fs/mdadm/files/mdraid.confd
@@ -0,0 +1,11 @@
+# /etc/conf.d/mdraid: config file for /etc/init.d/mdraid
+
+# For people who run raid on top of some other layer (like
+# dmcrypt), use rc_need to specify that requirement. See
+# the runscript(8) man page for more information.
+
+# Most configuration happens in /etc/mdadm.conf.
+
+# Pass additional options when assembling raids.
+# Note: This applies to all raids.
+MDADM_ASSEMBLE_OPTS=""
diff --git a/sys-fs/mdadm/files/mdraid.rc b/sys-fs/mdadm/files/mdraid.rc
new file mode 100644
index 000000000000..a30035dbbba2
--- /dev/null
+++ b/sys-fs/mdadm/files/mdraid.rc
@@ -0,0 +1,39 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ before checkfs fsck
+ after modules
+}
+
+start() {
+ local output
+
+ ebegin "Starting up RAID devices"
+ output=$(mdadm -As ${MDADM_ASSEMBLE_OPTS} 2>&1)
+ eend $? "${output}"
+
+ local pat="/dev/md_d*"
+ set -- ${pat}
+ if [ "$*" != "${pat}" ] ; then
+ ebegin "Creating RAID device partitions"
+ blockdev "$@"
+ eend $?
+ # wait because vgscan runs next, and we want udev to fire
+ sleep 1
+ fi
+
+ return 0
+}
+
+stop() {
+ local output
+
+ # XXX: Maybe drop this check ?
+ [ ! -e /etc/mdadm/mdadm.conf ] && [ ! -e /etc/mdadm.conf ] && return 0
+
+ ebegin "Shutting down RAID devices (mdadm)"
+ output=$(mdadm -Ss 2>&1)
+ eend $? "${output}"
+}
diff --git a/sys-fs/mdadm/mdadm-3.3.1-r2.ebuild b/sys-fs/mdadm/mdadm-3.3.1-r2.ebuild
new file mode 100644
index 000000000000..32cbe91c6a73
--- /dev/null
+++ b/sys-fs/mdadm/mdadm-3.3.1-r2.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+inherit eutils flag-o-matic multilib systemd toolchain-funcs udev
+
+DESCRIPTION="A useful tool for running RAID systems - it can be used as a replacement for the raidtools"
+HOMEPAGE="http://neil.brown.name/blog/mdadm"
+DEB_PR=2
+SRC_URI="mirror://kernel/linux/utils/raid/mdadm/${P}.tar.xz
+ mirror://debian/pool/main/m/mdadm/${PN}_3.3-${DEB_PR}.debian.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86"
+IUSE="static"
+
+DEPEND="virtual/pkgconfig
+ app-arch/xz-utils"
+RDEPEND=">=sys-apps/util-linux-2.16"
+
+# The tests edit values in /proc and run tests on software raid devices.
+# Thus, they shouldn't be run on systems with active software RAID devices.
+RESTRICT="test"
+
+mdadm_emake() {
+ emake \
+ PKG_CONFIG="$(tc-getPKG_CONFIG)" \
+ CC="$(tc-getCC)" \
+ CWFLAGS="-Wall" \
+ CXFLAGS="${CFLAGS}" \
+ UDEVDIR="$(get_udevdir)" \
+ SYSTEMD_DIR="$(systemd_get_unitdir)" \
+ "$@"
+}
+
+src_prepare() {
+ # These are important bugfixes from upstream git after 3.3.1 release,
+ # and before and including 17 Jul 2014:
+ epatch \
+ "${FILESDIR}"/${P}-Makefile-install-mdadm-grow-continue-.service.patch \
+ "${FILESDIR}"/${P}-Grow-fix-removal-of-line-in-wrong-case.patch \
+ "${FILESDIR}"/${P}-IMSM-use-strcpy-rather-than-pointless-strncpy.patch \
+ "${FILESDIR}"/${P}-mdmon-ensure-Unix-domain-socket-is-created-with-safe.patch \
+ "${FILESDIR}"/${P}-mdmon-allow-prepare_update-to-report-failure.patch \
+ "${FILESDIR}"/${P}-DDF-validate-metadata_update-size-before-using-it.patch \
+ "${FILESDIR}"/${P}-IMSM-validate-metadata_update-size-before-using-it.patch \
+ "${FILESDIR}"/${P}-Grow-Do-not-try-to-restart-if-reshape-is-running.patch
+}
+
+src_compile() {
+ use static && append-ldflags -static
+ mdadm_emake all mdassemble
+}
+
+src_test() {
+ mdadm_emake test
+
+ sh ./test || die
+}
+
+src_install() {
+ # Use split lines because of bug #517218
+ mdadm_emake DESTDIR="${D}" install
+ mdadm_emake DESTDIR="${D}" install-systemd
+ into /
+ dosbin mdassemble
+ dodoc ChangeLog INSTALL TODO README* ANNOUNCE-${PV}
+
+ insinto /etc
+ newins mdadm.conf-example mdadm.conf
+ newinitd "${FILESDIR}"/mdadm.rc mdadm
+ newconfd "${FILESDIR}"/mdadm.confd mdadm
+ newinitd "${FILESDIR}"/mdraid.rc mdraid
+ newconfd "${FILESDIR}"/mdraid.confd mdraid
+
+ # From the Debian patchset
+ into /usr
+ dodoc "${WORKDIR}"/debian/README.checkarray
+ dosbin "${WORKDIR}"/debian/checkarray
+
+ insinto /etc/cron.weekly
+ newins "${FILESDIR}"/mdadm.weekly mdadm
+}
+
+pkg_postinst() {
+ if ! systemd_is_booted; then
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ # Only inform people the first time they install.
+ elog "If you're not relying on kernel auto-detect of your RAID"
+ elog "devices, you need to add 'mdraid' to your 'boot' runlevel:"
+ elog " rc-update add mdraid boot"
+ fi
+ fi
+}
diff --git a/sys-fs/mdadm/mdadm-3.4.ebuild b/sys-fs/mdadm/mdadm-3.4.ebuild
new file mode 100644
index 000000000000..433f455c17b8
--- /dev/null
+++ b/sys-fs/mdadm/mdadm-3.4.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils flag-o-matic multilib systemd toolchain-funcs udev
+
+DESCRIPTION="A useful tool for running RAID systems - it can be used as a replacement for the raidtools"
+HOMEPAGE="http://neil.brown.name/blog/mdadm"
+DEB_PR=1.1
+SRC_URI="mirror://kernel/linux/utils/raid/mdadm/${P}.tar.xz
+ mirror://debian/pool/main/m/mdadm/${PN}_3.3.4-${DEB_PR}.debian.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86"
+IUSE="static"
+
+DEPEND="virtual/pkgconfig
+ app-arch/xz-utils"
+RDEPEND=">=sys-apps/util-linux-2.16"
+
+# The tests edit values in /proc and run tests on software raid devices.
+# Thus, they shouldn't be run on systems with active software RAID devices.
+RESTRICT="test"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.4-sysmacros.patch #580188
+}
+
+mdadm_emake() {
+ # We should probably make corosync & libdlm into USE flags. #573782
+ emake \
+ PKG_CONFIG="$(tc-getPKG_CONFIG)" \
+ CC="$(tc-getCC)" \
+ CWFLAGS="-Wall" \
+ CXFLAGS="${CFLAGS}" \
+ UDEVDIR="$(get_udevdir)" \
+ SYSTEMD_DIR="$(systemd_get_unitdir)" \
+ COROSYNC="-DNO_COROSYNC" \
+ DLM="-DNO_DLM" \
+ "$@"
+}
+
+src_compile() {
+ use static && append-ldflags -static
+ mdadm_emake all mdassemble
+}
+
+src_test() {
+ mdadm_emake test
+
+ sh ./test || die
+}
+
+src_install() {
+ mdadm_emake DESTDIR="${D}" install install-systemd
+ into /
+ dosbin mdassemble
+ dodoc ChangeLog INSTALL TODO README* ANNOUNCE-${PV}
+
+ insinto /etc
+ newins mdadm.conf-example mdadm.conf
+ newinitd "${FILESDIR}"/mdadm.rc mdadm
+ newconfd "${FILESDIR}"/mdadm.confd mdadm
+ newinitd "${FILESDIR}"/mdraid.rc mdraid
+ newconfd "${FILESDIR}"/mdraid.confd mdraid
+
+ # From the Debian patchset
+ into /usr
+ dodoc "${WORKDIR}"/debian/README.checkarray
+ dosbin "${WORKDIR}"/debian/checkarray
+ insinto /etc/default
+ newins "${FILESDIR}"/etc-default-mdadm mdadm
+
+ exeinto /etc/cron.weekly
+ newexe "${FILESDIR}"/mdadm.weekly mdadm
+}
+
+pkg_postinst() {
+ if ! systemd_is_booted; then
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ # Only inform people the first time they install.
+ elog "If you're not relying on kernel auto-detect of your RAID"
+ elog "devices, you need to add 'mdraid' to your 'boot' runlevel:"
+ elog " rc-update add mdraid boot"
+ fi
+ fi
+}
diff --git a/sys-fs/mdadm/mdadm-4.0.ebuild b/sys-fs/mdadm/mdadm-4.0.ebuild
new file mode 100644
index 000000000000..048ba5dc9d00
--- /dev/null
+++ b/sys-fs/mdadm/mdadm-4.0.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils flag-o-matic multilib systemd toolchain-funcs udev
+
+DESCRIPTION="A useful tool for running RAID systems - it can be used as a replacement for the raidtools"
+HOMEPAGE="http://neil.brown.name/blog/mdadm"
+DEB_PR=4
+SRC_URI="mirror://kernel/linux/utils/raid/mdadm/${P}.tar.xz
+ mirror://debian/pool/main/m/mdadm/${PN}_3.4-${DEB_PR}.debian.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="static"
+
+DEPEND="virtual/pkgconfig
+ app-arch/xz-utils"
+RDEPEND=">=sys-apps/util-linux-2.16"
+
+# The tests edit values in /proc and run tests on software raid devices.
+# Thus, they shouldn't be run on systems with active software RAID devices.
+RESTRICT="test"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.4-sysmacros.patch #580188
+}
+
+mdadm_emake() {
+ # We should probably make corosync & libdlm into USE flags. #573782
+ emake \
+ PKG_CONFIG="$(tc-getPKG_CONFIG)" \
+ CC="$(tc-getCC)" \
+ CWFLAGS="-Wall" \
+ CXFLAGS="${CFLAGS}" \
+ UDEVDIR="$(get_udevdir)" \
+ SYSTEMD_DIR="$(systemd_get_unitdir)" \
+ COROSYNC="-DNO_COROSYNC" \
+ DLM="-DNO_DLM" \
+ "$@"
+}
+
+src_compile() {
+ use static && append-ldflags -static
+ mdadm_emake all mdassemble
+}
+
+src_test() {
+ mdadm_emake test
+
+ sh ./test || die
+}
+
+src_install() {
+ mdadm_emake DESTDIR="${D}" install install-systemd
+ into /
+ dosbin mdassemble
+ dodoc ChangeLog INSTALL TODO README* ANNOUNCE-${PV}
+
+ insinto /etc
+ newins mdadm.conf-example mdadm.conf
+ newinitd "${FILESDIR}"/mdadm.rc mdadm
+ newconfd "${FILESDIR}"/mdadm.confd mdadm
+ newinitd "${FILESDIR}"/mdraid.rc mdraid
+ newconfd "${FILESDIR}"/mdraid.confd mdraid
+
+ # From the Debian patchset
+ into /usr
+ dodoc "${WORKDIR}"/debian/README.checkarray
+ dosbin "${WORKDIR}"/debian/checkarray
+ insinto /etc/default
+ newins "${FILESDIR}"/etc-default-mdadm mdadm
+
+ exeinto /etc/cron.weekly
+ newexe "${FILESDIR}"/mdadm.weekly mdadm
+}
+
+pkg_postinst() {
+ if ! systemd_is_booted; then
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ # Only inform people the first time they install.
+ elog "If you're not relying on kernel auto-detect of your RAID"
+ elog "devices, you need to add 'mdraid' to your 'boot' runlevel:"
+ elog " rc-update add mdraid boot"
+ fi
+ fi
+}
diff --git a/sys-fs/mdadm/metadata.xml b/sys-fs/mdadm/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/mdadm/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/metadata.xml b/sys-fs/metadata.xml
new file mode 100644
index 000000000000..0760ba105602
--- /dev/null
+++ b/sys-fs/metadata.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The sys-fs category contains filesystem tools and utilities.
+ </longdescription>
+ <longdescription lang="es">
+ La categoría sys-fs contiene herramientas y utilidades de sistemas de
+ ficheros.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie sys-fs enthält Programme für die Arbeit mit Dateisystemen.
+ </longdescription>
+ <longdescription lang="nl">
+ De sys-fs categorie bevat hulpmiddelen om met bestandssystemen te werken.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm sys-fs chứa các công cụ và tiện ích về hệ tập tin.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria sys-fs contiene gli strumenti e le utilità di supporto per i vari file systems.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria sys-fs contém certos utilitários e ferramentas para
+ sistemas de arquivos.
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria sys-fs zawiera programy i narzędzia związane z różnymi
+ systemami plików.
+ </longdescription>
+</catmetadata>
+
diff --git a/sys-fs/mhddfs/Manifest b/sys-fs/mhddfs/Manifest
new file mode 100644
index 000000000000..981d77c97a33
--- /dev/null
+++ b/sys-fs/mhddfs/Manifest
@@ -0,0 +1,6 @@
+AUX mhddfs-respect-compiler-vars.patch 1557 SHA256 25f6711b312f931de1f72b81ffa579a0d0e6426eebd30296d9e8d7808471e39e SHA512 8a52b4e4cfd2e619285a99f548374b83b85408584a4be7e7691fbc423b1ea29d482e299d4ed72027b4f571d53457d0d2b1d409f1a515157c9923a7e06bbd90b6 WHIRLPOOL 9522fe3985cb988a472b07d3f6ed29317ec004306e8010591bd1289d309f6bc1be6b3abd2764f6deec873242b153f4a6ebd585bbd9f8587b8bacc4c8f5a5ccd4
+DIST mhddfs_0.1.39.tar.gz 40665 SHA256 702fc5486460c1828898426b1935179ce60bc1ed16fc8bc575c9ec1d12acef91 SHA512 cf1952e665e82a92ccfef9215d4faf78cd235566b67e6ebc3a60ab53089d9391bc41a08e6b203ad052e4a08bdd14428f2d9abe48f341aeb0c80ae1da80f83f89 WHIRLPOOL 8bad918dbfe9862620b1a26f106740b66af0ddd86b078d776e4f671f21399e225876f6b98edafe4165e97c85d9eda4b6f5abe27eb71740341b4606ac864ff5e4
+EBUILD mhddfs-0.1.39.ebuild 1034 SHA256 e82691170a806aedf11f3e12a7c7ae8cbdcfe0b4dca5dfbe44e248a3f99833d7 SHA512 a0aeadb72340b6929083539a603319cd90f40172a8cae3f79f0ade5c4d22c8fbe88837a135a2dbb7d76c5bc648fa9dcd9032af595294e5cf40343f4bf0b9e85d WHIRLPOOL c3a3e1485d9d298d5a3fe345923930b97e71455ef703e1062abe54aba8adb05860701f75a72ef1a1cb4139c38832dc5716bef463ae3b5322bb1c77bb90aef77e
+MISC ChangeLog 2354 SHA256 4d08f2e08ef91e0a418a6329369751e3497590b3e48b9b494492941aae196fce SHA512 9b89b625454659309d5fb15af6558eb640c61ececdf8e3d6c39a534016c0bd03c0aad25aaed2bf94f251dfcc77cc62133fcb5f42b65a3fe9f3e1fb1c5da1ac58 WHIRLPOOL b3ad205a4f79ceccb17e91d35a46ee505bf296ba04eb6c0943bf91e64fffa5c0133aebffac58a1b05ac18ab341409bb3db0617766c7bb19587ee20ffef6d239a
+MISC ChangeLog-2015 1545 SHA256 eca12e7cd572f91b7f1341b5cbb20528a2c546fc75a7f76dfcd06352ffa5c720 SHA512 7731c6f6cf1a015a8735678690354d2dbe6c8c5f63097b577a395affe509824a5421a0cb4a880a906cb8b4732a5d5faba439fa5b216591ea9540b15e48fc8047 WHIRLPOOL 1856b49f8ec94d54a12a2634f555b6825e3ef67698f23a0a5e26a8a74d19f8395eff2428d884d0aadc5e28178664ac1b1d99ad16190613b717c456bb6a0895ad
+MISC metadata.xml 247 SHA256 fb925313d1ae70feaa6db91150f34a2157b48e884e8f47d773640af149e3744b SHA512 96c55c2979dd6a4c4761fce9b5a0be387b11fcf197ef903d8680ae82f01a2caea93b1238bed1ac96d3eb250744e2149a507e0424ac017b4324f0806a54e72c4a WHIRLPOOL 142b4295733faec48b0ca9eb6d3561799ff743481aabf2b74ecf6d717d972b4961979c7b6bf32b9840cb34e47d22fe2befb9b0ef8ec0d3f28f6416069128d3c7
diff --git a/sys-fs/mhddfs/files/mhddfs-respect-compiler-vars.patch b/sys-fs/mhddfs/files/mhddfs-respect-compiler-vars.patch
new file mode 100644
index 000000000000..331bb7c23f60
--- /dev/null
+++ b/sys-fs/mhddfs/files/mhddfs-respect-compiler-vars.patch
@@ -0,0 +1,66 @@
+--- Makefile.orig 2012-11-19 15:25:21.665692111 +0400
++++ Makefile 2012-11-19 15:27:08.406691288 +0400
+@@ -22,13 +22,13 @@
+
+ TARGET = mhddfs
+
+-CFLAGS = -Wall $(shell pkg-config fuse --cflags) \
++CFLAGS += -Wall $(shell pkg-config fuse --cflags) \
+ -DFUSE_USE_VERSION=26 -MMD
+ ifdef WITHOUT_XATTR
+ CFLAGS += -DWITHOUT_XATTR
+ endif
+
+-LDFLAGS = $(shell pkg-config fuse --libs)
++LIBS = $(shell pkg-config fuse --libs)
+
+ FORTAR = src COPYING LICENSE README Makefile \
+ README.ru.UTF-8 ChangeLog mhddfs.1 \
+@@ -64,14 +64,14 @@
+ $(shell rpm --eval '%_rpmdir')/*/mhddfs-*$(VERSION)-$(RELEASE)* .
+
+ $(TARGET): obj/obj-stamp $(OBJ)
+- gcc $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS)
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJ) $(LIBS) -o $@
+
+ obj/obj-stamp:
+ mkdir -p obj
+ touch $@
+
+ obj/%.o: src/%.c
+- gcc $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) -c $< -o $@
+
+ clean:
+ rm -fr obj $(TARGET) pwrite_test statvfs rename
+@@ -79,7 +79,7 @@
+ rm -fr rename-test/mnt
+
+ rename: tests/rename.c
+- gcc -o $@ $<
++ $(CC) -o $@ $<
+
+ release_svn_thread:
+ @echo current version $(VERSION)
+@@ -94,10 +94,10 @@
+ screen -t vim vim Makefile src/*.[ch] README* ChangeLog mhddfs.1
+
+ pwrite_test: src/test/pwrite.c
+- gcc -o $@ $<
++ $(CC) -o $@ $<
+
+ statvfs: src/test/statvfs.c
+- gcc -o $@ $<
++ $(CC) -o $@ $<
+
+ images-mount: test1.img test2.img
+ mount|grep -q `pwd`/test1 || sudo mount -o loop test1.img test1
+@@ -141,7 +141,7 @@
+ while make test; do echo ok; echo; done
+
+ ptest:
+- gcc -o $@ tests/plocks.c -l pthread
++ $(CC) -o $@ tests/plocks.c -l pthread
+ -./$@
+ rm -f $@
+
diff --git a/sys-fs/mhddfs/metadata.xml b/sys-fs/mhddfs/metadata.xml
new file mode 100644
index 000000000000..5b159fbcadd1
--- /dev/null
+++ b/sys-fs/mhddfs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/mhddfs/mhddfs-0.1.39.ebuild b/sys-fs/mhddfs/mhddfs-0.1.39.ebuild
new file mode 100644
index 000000000000..79fe6fb79f89
--- /dev/null
+++ b/sys-fs/mhddfs/mhddfs-0.1.39.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit base eutils toolchain-funcs
+
+MY_P="${PN}_${PV}"
+
+DESCRIPTION="Fuse multi harddrive filesystem"
+HOMEPAGE="http://mhddfs.uvw.ru/ http://svn.uvw.ru/mhddfs/trunk/README"
+SRC_URI="http://mhddfs.uvw.ru/downloads/${MY_P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="l10n_ru suid"
+
+RDEPEND=">=sys-fs/fuse-2.7.0"
+DEPEND="${RDEPEND}
+ dev-libs/uthash"
+
+DOCS="ChangeLog README"
+PATCHES=( "${FILESDIR}/${PN}-respect-compiler-vars.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dobin mhddfs
+ doman mhddfs.1
+ dodoc ${DOCS}
+ use l10n_ru && dodoc README.ru.UTF-8
+ use suid && fperms u+s /usr/bin/${PN}
+}
+
+pkg_postinst() {
+ if use suid; then
+ ewarn
+ ewarn "You have chosen to install ${PN} with the binary setuid root. This"
+ ewarn "means that if there any undetected vulnerabilities in the binary,"
+ ewarn "then local users may be able to gain root access on your machine."
+ ewarn
+ fi
+}
diff --git a/sys-fs/mp3fs/Manifest b/sys-fs/mp3fs/Manifest
new file mode 100644
index 000000000000..030957cc343d
--- /dev/null
+++ b/sys-fs/mp3fs/Manifest
@@ -0,0 +1,7 @@
+DIST mp3fs-0.32.tar.gz 120579 SHA256 0b3d7064bf27b86a7f691684760f02126b5edab0108d65826c2a0f7f1a3eefd1 SHA512 826ad719198195d66fff5bbb4b9b6734b5f180f37ead11bf77ecf9dd7cc86e4e2243cdea78c029b3bb8757efb9f52143f84c979f07034b016147b6257d0c9980 WHIRLPOOL 318a9ad3187e443ae396df6bc52da1178371777f7d8720e97ab7ac0a0d9a5c919b52bd0f87ff7c4aa2ef324b0fcb74cd5582067674447997d612de3053c8c0db
+DIST mp3fs-0.91.tar.gz 357098 SHA256 a47b5e351b7660e6f535a3c5b489c5a8191209957f8c0b8d066a5c221e8ecf92 SHA512 9499566afbaf181acd9efb8a4d6253e288ab9be0c8b036b2993553d0d4f4692d7dbcf34ac03787d8dbbfc35b2cc29e1d78612933c428a908c9c48290fedb8681 WHIRLPOOL 7acf9bf3a89df397439c814dd8110558d9508942b76e337a0d776bfb906da6ae69e3ee1ce480210f993eae3f3a4e457880373241a21ade127e7b2f993020ffdc
+EBUILD mp3fs-0.32.ebuild 570 SHA256 f33a3134f03d2a78e4ccc3a42e04c7cfb445c827300a90bb1b34ad6352f0fb8a SHA512 e6a2c73b67edecc6441a47a4557af066811c336c5fb1786b21785e3f5ff1f8a48ef52277ce79b1583818fcb6219c00e933771e9515db38a023f4202db0994301 WHIRLPOOL bb5d50375bf0ec49e5a7b6f2b03db197d3f3b34fa9b12d297941b198d942e550cd9602348eab4f9e654a9c7495fe1fe47ee384466d0af583ddbf626409b006d7
+EBUILD mp3fs-0.91.ebuild 509 SHA256 df442df5c260bae69fe7a4ddc52f31bcb59bb49cf5083505ca711e4d8e000b2a SHA512 1ef7af20667d796f28b76d37fbccfe550987b1d15590a379dd991efaf7c9571a0190b44bf301069eb158034783a4371268992b4ceeee56a4b68828fe11638459 WHIRLPOOL 8a270df3e7f5364fe57bfb4d63be27c15927f60252ceff9f40b2976a766ae497c533756c9decd9490cb863b72bfe21916fff71c141bc82f1d54398ab8ce6a34e
+MISC ChangeLog 2457 SHA256 ad87aacfe2ba1aa18d82bcebe16daa90d8657dcba66026e7d0d2fd0d33b1e238 SHA512 d0139b1431389c780f9cd209614cb34fe8d6bde3231b2c8f643165824e0787051623bb2650750af43d19baa649f5bf94ea045312ce436a9d20325cf4e9fe982b WHIRLPOOL 4d2488df9b1008e9b7fe79c9a2baab9b1009b7fb8b1216a03655e02a4b62c8b9b07cfcd0f057656d2edb43a1e3d4b7dbe61b5eb9c0a4f9eef5dbc98f66beee81
+MISC ChangeLog-2015 2717 SHA256 cd8ff6d2db69dbfaaa27dfb28031e9382587e34cb3954282e8a125f38a2e6ed9 SHA512 8406f7f8b07e18397c1eb2c401fbd5c0a28289a802c6da6f0765ff3a340a5414e4bbaac5f4f195cd31cb8b4c2a28caff4424f1d16c8d068c274db15c7e19ab1b WHIRLPOOL 858b051d26f0c8f08ca0fecf0d0613055eff718be4762cd7bbeb1d6dc5b01a8c979f90235123ad5f3a332c3667a716edbea6ac94d41cc1063704f06d9b2a7d42
+MISC metadata.xml 326 SHA256 5d866cd6dbedd3e5c1b0db8ce44f40c60e9b97ce0091987e251d91c278238c41 SHA512 66983dba89d7cf95e671fd0e382778b3a406348e979a20baa24db0e049468550497154b2809f231dc4409f803f94b057f4de89facf6f63a1a5ec14919be2ddac WHIRLPOOL 83c0ab840076f1e6d64beae0a281ce287326f19a3b88363fbd25e50db3637abe5dec15d6287b82458ff49ef1c03e2094d5da7f8868e42554f1053047201c2284
diff --git a/sys-fs/mp3fs/metadata.xml b/sys-fs/mp3fs/metadata.xml
new file mode 100644
index 000000000000..4b14ee188a9a
--- /dev/null
+++ b/sys-fs/mp3fs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">khenriks/mp3fs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/mp3fs/mp3fs-0.32.ebuild b/sys-fs/mp3fs/mp3fs-0.32.ebuild
new file mode 100644
index 000000000000..1be92bd497ba
--- /dev/null
+++ b/sys-fs/mp3fs/mp3fs-0.32.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DESCRIPTION="a read-only FUSE filesystem which transcodes FLAC audio files to MP3 when read"
+HOMEPAGE="https://khenriks.github.com/mp3fs/"
+SRC_URI="mirror://github/khenriks/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="sys-fs/fuse
+ media-libs/libid3tag
+ media-libs/flac
+ media-sound/lame
+ media-libs/libogg"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc AUTHORS ChangeLog NEWS README.rst
+}
diff --git a/sys-fs/mp3fs/mp3fs-0.91.ebuild b/sys-fs/mp3fs/mp3fs-0.91.ebuild
new file mode 100644
index 000000000000..781cd6151251
--- /dev/null
+++ b/sys-fs/mp3fs/mp3fs-0.91.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+DESCRIPTION="a read-only FUSE filesystem which transcodes FLAC audio files to MP3 when read"
+HOMEPAGE="https://khenriks.github.com/mp3fs/"
+SRC_URI="https://github.com/khenriks/mp3fs/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="sys-fs/fuse
+ media-libs/libid3tag
+ media-libs/flac
+ media-sound/lame
+ media-libs/libogg"
+RDEPEND="${DEPEND}"
diff --git a/sys-fs/mtd-utils/Manifest b/sys-fs/mtd-utils/Manifest
new file mode 100644
index 000000000000..d9cc22d14ed6
--- /dev/null
+++ b/sys-fs/mtd-utils/Manifest
@@ -0,0 +1,7 @@
+AUX mtd-utils-1.5.2-sysmacros.patch 927 SHA256 74cf958e23322297d3044d3a48844282830131c2251daeed3face0b48d196acd SHA512 e7334556ecfe57edc703a9b6c37535460774eb1990be497544101a77e7c1ff75ec9872b1d4dc3d9ffb94f4488371e0c800c3b2e15e75d2881588611018417ff8 WHIRLPOOL b7dc88b9c640c0bd88dc1ac2b9498895b1a2faa67cb4fb79a9d2857968cbd303451813f14e2f921ba43d1bc6783929bbbd36507e13db811e0b3c0aa7e0492b83
+DIST mtd-utils-1.5.2.tar.gz 343843 SHA256 8169e2860f63f3c216ba830c943139d00995fd030313079cc143bbad24ecf6c3 SHA512 81eb5cf27814234af65409fe93798ec50d9f733978dc606bd33e63d98eb99afb3f988df47dc66a9368a11baee0a35fa1d0d6677af8c23428919e34bd11a25697 WHIRLPOOL e5aa4a15f334222980469a9d002e5f1030510d9ebb46fa6221acf1a70632a68625cb6eb0927a949ebd6a0d2e92c1a51671da21c37386bed389d5f9859c978fc5
+EBUILD mtd-utils-1.5.2.ebuild 1575 SHA256 22f99be79521254a41329bb39cb22c1f779c7dfbfcf735a47352da692cd9c9e8 SHA512 f8975142ea2b6982400411925bec267634af85366e2a4931363441bd14ef927770ff145d5573d161683fce2bc40c52754dde9876a70e2ecb13a418ff82e043e0 WHIRLPOOL f081d2be74e2f6893470a75f46fce6c3fc84dc3d435d031f5a84b7c903982af9ad7f40a13389560ea119fdd348d7bcc604f35ad98c90e96ba7f061ea5a992c73
+EBUILD mtd-utils-99999999.ebuild 1521 SHA256 4cc792552dbb787e2f11bcbac1ca1d224082ba3095fe7977a303922aacc3e32c SHA512 67d013995ba1f2a7d537486c42a88cf42b5da3f533c3fbb7ead1bc7353c12163cf58677e04132f6dd720813602bf998c41d2e2a5dfe2cb0a346b48345cb6592e WHIRLPOOL aed0d3cade1ed9585dbe2c73519645d5e13ec4465d7dd7068ae97e77182adcfe6f1af743c91fb0892681984a2992f4580b1720dd365e4f26722efa6968eda494
+MISC ChangeLog 4242 SHA256 bf91fb78cab63d0007bb11f2c6b98b7180b625d412a61ff329ae24683f9697ea SHA512 2a4f96a47d6df8268ea06de8c583d4caa1f4baa9f798e697bdaf624a67122b362cdd9241ed45c79f0a950de2ab6f1426b97293e18d488c49311daff70f0fd7c7 WHIRLPOOL 4f850def61d1af06c7f3e75a94928cf43c35da6152a974e0ad3fc0aef4e3aa2e0b2232ae2ded9815a52ce12189447cc1e5063e44999693b4b08a73a5d5aa82fd
+MISC ChangeLog-2015 8625 SHA256 0770081d8ead4a00ceb3f3add066202d28fe828f83ebcf96d4250e3514c3cbbe SHA512 fb6461706fffae393b3a4adf7cb98b8d2ece6a9b92e5f9cea3d51f298f0c481af232734335e98bb92c71f3b876ef01567ebbdf40d95585a1ca6e72bb997de94b WHIRLPOOL 56d2b841d8bd84e6f2631165051db06c65eebdb251320047b8f25eabf25c3c37078e999740aa0a63d2098ba8f27c31541ada5ed66e76cd63b5c68f60d23720e3
+MISC metadata.xml 323 SHA256 352f59c39daaf369385539a33259c730e619af51afd0302831d06ff33393052c SHA512 191d5a9dbe4c6a0a72815092a0668070ff39bc121b30a3e55abd894ca62fd3641a205662a23a6a87aeeedd8ab000e4d2d40bbba278acbc0f7d74c97d0571d0c1 WHIRLPOOL a1a90dba360d91e5050ea122e58adcdf041c40da54166ae394f16b28da8f37aefc6c919099f897635ae8db3730c8d0aabbb64c3a21b142592f1e9a8d82cc6d95
diff --git a/sys-fs/mtd-utils/files/mtd-utils-1.5.2-sysmacros.patch b/sys-fs/mtd-utils/files/mtd-utils-1.5.2-sysmacros.patch
new file mode 100644
index 000000000000..5fc055d07da9
--- /dev/null
+++ b/sys-fs/mtd-utils/files/mtd-utils-1.5.2-sysmacros.patch
@@ -0,0 +1,32 @@
+https://bugs.gentoo.org/580206
+
+From 9a06f45ec71116d76ee4b268ebe1b33d45b06fc0 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 16 Apr 2016 22:10:43 -0400
+Subject: [PATCH mtd-utils] include sys/sysmacros.h for major/minor/makedev
+
+These functions have always been defined in sys/sysmacros.h under
+Linux C libraries. For some, including sys/types.h implicitly
+includes that as well, but glibc wants to deprecate that, and some
+others already have. Include the header explicitly for the funcs.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/common.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/common.h b/include/common.h
+index fb0ca83..8cb3142 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -28,6 +28,7 @@
+ #include <errno.h>
+ #include <features.h>
+ #include <inttypes.h>
++#include <sys/sysmacros.h>
+ #include "version.h"
+
+ #ifndef PROGRAM_NAME
+--
+2.7.4
+
diff --git a/sys-fs/mtd-utils/metadata.xml b/sys-fs/mtd-utils/metadata.xml
new file mode 100644
index 000000000000..7d84a262b640
--- /dev/null
+++ b/sys-fs/mtd-utils/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+</maintainer>
+<maintainer type="project">
+ <email>embedded@gentoo.org</email>
+ <name>Embedded Gentoo</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/mtd-utils/mtd-utils-1.5.2.ebuild b/sys-fs/mtd-utils/mtd-utils-1.5.2.ebuild
new file mode 100644
index 000000000000..3aff08116584
--- /dev/null
+++ b/sys-fs/mtd-utils/mtd-utils-1.5.2.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils vcs-snapshot
+
+if [[ ${PV} == "99999999" ]] ; then
+ EGIT_REPO_URI="git://git.infradead.org/mtd-utils.git"
+
+ inherit git-2
+ SRC_URI=""
+ #KEYWORDS=""
+else
+ if [[ ${PV} == *.*.* ]] ; then
+ MY_PV="${PV}-*"
+ SRC_URI="http://git.infradead.org/mtd-utils.git/snapshot/v${PV}.tar.gz -> ${P}.tar.gz"
+ else
+ MY_PV="${PV}-02ae0aac87576d07202a62d11294ea55b56f450b"
+ SRC_URI="mirror://gentoo/${PN}-snapshot-${MY_PV}.tar.xz"
+ fi
+ KEYWORDS="amd64 arm ~mips ppc x86 ~amd64-linux ~arm-linux ~x86-linux"
+fi
+
+DESCRIPTION="MTD userspace tools (NFTL, JFFS2, NAND, FTL, UBI)"
+HOMEPAGE="http://git.infradead.org/?p=mtd-utils.git;a=summary"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="xattr"
+
+# We need libuuid
+RDEPEND="!sys-fs/mtd
+ dev-libs/lzo
+ sys-libs/zlib
+ >=sys-apps/util-linux-2.16"
+# ACL is only required for the <sys/acl.h> header file to build mkfs.jffs2
+# And ACL brings in Attr as well.
+DEPEND="${RDEPEND}
+ xattr? ( sys-apps/acl )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-sysmacros.patch #580206
+}
+
+makeopts() {
+ # These affect build output, so keep it common between compile & install.
+ echo CROSS=${CHOST}- V=1
+ use xattr || echo WITHOUT_XATTR=1
+}
+
+src_compile() {
+ tc-export AR CC RANLIB
+ local compileopts=(
+ AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
+ )
+ emake $(makeopts) "${compileopts[@]}"
+}
+
+src_install() {
+ emake $(makeopts) install DESTDIR="${ED}"
+ dodoc *.txt
+ newdoc mkfs.ubifs/README README.mkfs.ubifs
+ # TODO: check ubi-utils for docs+scripts
+}
diff --git a/sys-fs/mtd-utils/mtd-utils-99999999.ebuild b/sys-fs/mtd-utils/mtd-utils-99999999.ebuild
new file mode 100644
index 000000000000..2496e699834d
--- /dev/null
+++ b/sys-fs/mtd-utils/mtd-utils-99999999.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit eutils vcs-snapshot
+
+if [[ ${PV} == "99999999" ]] ; then
+ EGIT_REPO_URI="git://git.infradead.org/mtd-utils.git"
+
+ inherit git-2
+ SRC_URI=""
+ #KEYWORDS=""
+else
+ if [[ ${PV} == *.*.* ]] ; then
+ MY_PV="${PV}-*"
+ SRC_URI="http://git.infradead.org/mtd-utils.git/snapshot/v${PV}.tar.gz -> ${P}.tar.gz"
+ else
+ MY_PV="${PV}-02ae0aac87576d07202a62d11294ea55b56f450b"
+ SRC_URI="mirror://gentoo/${PN}-snapshot-${MY_PV}.tar.xz"
+ fi
+ KEYWORDS="~amd64 ~arm ~mips ~ppc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+fi
+
+DESCRIPTION="MTD userspace tools (NFTL, JFFS2, NAND, FTL, UBI)"
+HOMEPAGE="http://git.infradead.org/?p=mtd-utils.git;a=summary"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="xattr"
+
+# We need libuuid
+RDEPEND="!sys-fs/mtd
+ dev-libs/lzo
+ sys-libs/zlib
+ >=sys-apps/util-linux-2.16"
+# ACL is only required for the <sys/acl.h> header file to build mkfs.jffs2
+# And ACL brings in Attr as well.
+DEPEND="${RDEPEND}
+ xattr? ( sys-apps/acl )"
+
+makeopts() {
+ # These affect build output, so keep it common between compile & install.
+ echo CROSS=${CHOST}- V=1
+ use xattr || echo WITHOUT_XATTR=1
+}
+
+src_compile() {
+ tc-export AR CC RANLIB
+ local compileopts=(
+ AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
+ )
+ emake $(makeopts) "${compileopts[@]}"
+}
+
+src_install() {
+ emake $(makeopts) install DESTDIR="${ED}"
+ dodoc *.txt
+ newdoc ubifs-utils/mkfs.ubifs/README README.mkfs.ubifs
+ # TODO: check ubi-utils for docs+scripts
+}
diff --git a/sys-fs/mtools/Manifest b/sys-fs/mtools/Manifest
new file mode 100644
index 000000000000..3d06e59c9885
--- /dev/null
+++ b/sys-fs/mtools/Manifest
@@ -0,0 +1,13 @@
+AUX mtools-4.0.18-attr.patch 1804 SHA256 61c9a15bfe60e0f934250324adf16280e138a68524a169b8202aa3623c43e046 SHA512 45bc3d5baa37c634b8f97d55251a7dec2f7062515529c0dec65572826ff2d7673f189c544fa73d164156823cd3ae78bcb664b3fb22e5eac34198fdfe45c9e244 WHIRLPOOL ccfd956d4379aa2d0c618dba8f8add113cfd24b6c16556c23f45d42915c1b4dcb057cc070a9e682837d88fbad8b49bc131706f3b82be1528159c2a3fc17db7ea
+AUX mtools-4.0.18-locking.patch 5744 SHA256 e7ba375d863662652fc830f37cc96da5ef12595e85189662f8e6903e523b020c SHA512 0698b5c5f5d4c22f3439a835c3bb6f73a90c3030073f3497fa04a8e29241af867f664f253b37299d69ca043858b55e7290aaab1fa6f751084a52e7812cae4170 WHIRLPOOL a67d766585a55ded8631242944c6d410aae796ad0037b125902c01c7bcfac3b63b8f71cb56cd331031ded1efbf75775664e83ca8e4b56a9a3f14fce33a91f031
+AUX mtools-4.0.18-memset.patch 877 SHA256 7c0fdb68507bc3242fe38f603f49ea253cb82cad7e6a85dd1cc8e0cc41c26413 SHA512 1e8d697c1cd98a7fedaed96e6019b6af96bf5ed6633f50f7c45649555a27727d93ba828e2852f23fb633832902bdb93c23afacd7022c72adf5c4a146f5b8a1a8 WHIRLPOOL e9b6d3dc3af8079857a252b0c4b1a061fbec9e15c4592436b003a54bcb576c0a2698aa864a3fc49790db88942303fade40d3ae062d1f4359995918660566105c
+DIST mtools-4.0.15.tar.bz2 386339 SHA256 290defca107cc183a17c98d3f7d00db02228b724084a2a818f1dd6ea86973899 SHA512 0ee4d060ffb95c0e5b0e859634bee50e056aaa7d3917fdbcc4fd8ca86710b1d93ef252bec588d5c010f2fb6081853e76338b966e4584e510728be4ec3113e0da WHIRLPOOL c4ab4cb1f0b1fd4c3540ef81379d3976590f1433135ab75b1ec2de4e0e219ba33fdbb5778289f76d3eea90d27259ae9145a4152942abda8f7057f38ba0e9e65d
+DIST mtools-4.0.17.tar.bz2 412310 SHA256 0ecc358e30a72d215b1d4c625b27e67121cd6f6075370dfb791ef2a8b980ecb6 SHA512 0ad44bc9d7088d8a0edc648ac81fb4c9ea522c8d7561717f02475514186081050c283c0393bf32358b95ea60554713c26ea7e06074041d3fbdcaf642aec2e1ce WHIRLPOOL ce220067850ac91cbe8a2687b82be4afe2cf3f3f1a3444bb3e02c6ac2ffa470dc7825c2e0c5fc72c9010839d956f8a1351b4944194336a38c38ce0ef37387327
+DIST mtools-4.0.18.tar.bz2 420190 SHA256 59e9cf80885399c4f229e5d87e49c0c2bfeec044e1386d59fcd0b0aead6b2f85 SHA512 3981a4727aa4e2ec5c931201b236f52fcd1c9d55f888cb2fbdc5c4172402e2b229ede9a5005b972ffdad59bcb861e2fcc01404845e521116419079ae78239090 WHIRLPOOL 478ae2187e3a44ebad8f9b5fca869d80a7bcb0b55183af59bc361c2efd241e6e69be0194e18c690ff156ba808d9fc52ad2303aeff606d09b4e478f90b51186f9
+EBUILD mtools-4.0.15.ebuild 832 SHA256 106993c4d46e483b7cefda3feb1309b40a00561a270df7678a347de13e65e0ae SHA512 9a108e56611864710598fb7d624305aa2f3efd4cf85dad7ee9a7a71f57645caf9604fc42295ae4c1f66fbe30bfb2494ba199b84b0336ac2e976e2b9be33c1ecf WHIRLPOOL 6aabc3fef49d9569eac7f19052319790480cf66b723cd17bef777d3d658efe5cb650072bd0726247430f9165eeefbb522e049264e160f4b7e7134a5521f2f205
+EBUILD mtools-4.0.17.ebuild 901 SHA256 9f38cee1d1f6fdc39419ed76768f0bb34f3b5d62a14929eb57121b5da8462fdd SHA512 047da0fb150a4e9196bafc7731f4d6ea5456284923b64f9735c56f554c5692b677e4a16c7af91d2feec76fd2dd04b3d97617a03289bb5c38533782991c354246 WHIRLPOOL 0b752df1623fd9cc26e918f0167b8989bcede8d3f12854b57688f19fb86911d35da790126f7f54f80db5d08d9dcc6c36213ce975158a25c4b99035f1e1ce6eb3
+EBUILD mtools-4.0.18-r2.ebuild 1315 SHA256 197ee7df9ce5d6bbd2066e9bae0cf18e72fa14d5c0a1bcd597d172b18c559548 SHA512 d194c1458418d5f4acc5e3d421c1896f0346ffee846b157e8971b0f7109e83ec737e84f9b7c2927ce28e3341c1721d3e83acd273ba16b6da156c3d93055dae9c WHIRLPOOL 60221a6a46b15941fa44a02bfe798ad19b30b0fc0765839658a7c08bd48ee412f4f7398a57ce30d888b66066ce41dfa1cc62b63fc452dc7802937736e1b4a65d
+EBUILD mtools-4.0.18.ebuild 1080 SHA256 2def1e66b13a10bbec05c56e092331e015720b29223b66c7232b5542affbf86e SHA512 f777db7ae901411b303fe9259ad151b16145f1576fbf71429cf6242b1e10b9347943fdd38de3c995f95c34d1150d33e6377f276fde6b3a6c364a82eacf1e96d4 WHIRLPOOL a231600180859c2c4d50ae0894177ab9fbb2c519dad10bb2ac7e5c66936cd4bff57f35d890a5f1252ff8386dcaece7b90af2a70fdf020699ccec5dccef02b68a
+MISC ChangeLog 3625 SHA256 3bca4f88d84904ddfadc9c44580a38a4516f81c6e139d15bf371df7e91a02ecb SHA512 b3f6cc620016f2c624a812932f6721bdabfbf2ffebfe021e5bd2bb7e43cf88ca72e03fac06aad9e660f7d85da56a2c6958f3d0adbbd670b867e4bf71bc311a9d WHIRLPOOL 56ee7c04a8d2ca2d5eed374c45cc9687fbe2513ce50696ac955b4538f41fef4d07951101fbeac8d942520414e898c49b18e9509fa09f504473ff865230d639ef
+MISC ChangeLog-2015 7242 SHA256 66998bd20162d56feacd37164b855394b865804476b1d20770c1d2ac53757070 SHA512 208317962e12cd4d58c7c4bfdf6616e0a4032038c93befb83980898c0b73305c8cd84d5a6c708905d782124991fe0ce7d7668ff5eecd62edbfb22b94b53d74af WHIRLPOOL 30735130f290305f405ae8ebef1a97a768633285e50888a854e90acd2bb9df608ced8dbf498df9d35f72214ce6d3f8ef3daaec2d905f526feaa53d83b9c873ae
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/mtools/files/mtools-4.0.18-attr.patch b/sys-fs/mtools/files/mtools-4.0.18-attr.patch
new file mode 100644
index 000000000000..3cd770be8bde
--- /dev/null
+++ b/sys-fs/mtools/files/mtools-4.0.18-attr.patch
@@ -0,0 +1,51 @@
+From e8437f906ca86fd5b1cac20d240a0e114c5df7a9 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 9 Mar 2017 16:06:54 -0800
+Subject: [PATCH] fix unused attribute in func definition
+
+UNUSED is for wrapping variable decls, not for variables in a function
+definition. It will insert a semi-colon into the mix which makes clang
+upset:
+x86_64-cros-linux-gnu-clang -DHAVE_CONFIG_H -DSYSCONFDIR=\"/etc/mtools\" \
+ -DCPU_x86_64 -DVENDOR_cros -DOS_linux_gnu -O2 -pipe -O2 -pipe \
+ -march=x86-64 -msse3 -g -fno-exceptions -fno-unwind-tables \
+ -fno-asynchronous-unwind-tables -clang-syntax -Wall \
+ -fno-strict-aliasing -I. -I. -c mainloop.c
+mainloop.c:89:15: error: expected ')'
+int unix_loop(UNUSED(Stream_t *Stream), MainParam_t *mp, char *arg,
+ ^
+./sysincludes.h:106:47: note: expanded from macro 'UNUSED'
+ ^
+
+Arguably this should fail on gcc too, but it doesn't today.
+
+URL: https://crbug.com/644387
+---
+ mainloop.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mainloop.c b/mainloop.c
+index f5f8349f1472..69af9a80c3e4 100644
+--- a/mainloop.c
++++ b/mainloop.c
+@@ -86,7 +86,7 @@ static const char *fix_mcwd(char *ans)
+ }
+
+ int unix_dir_loop(Stream_t *Stream, MainParam_t *mp);
+-int unix_loop(UNUSED(Stream_t *Stream), MainParam_t *mp, char *arg,
++int unix_loop(Stream_t *Stream UNUSEDP, MainParam_t *mp, char *arg,
+ int follow_dir_link);
+
+ static int _unix_loop(Stream_t *Dir, MainParam_t *mp,
+@@ -95,7 +95,7 @@ static int _unix_loop(Stream_t *Dir, MainParam_t *mp,
+ return unix_dir_loop(Dir, mp);
+ }
+
+-int unix_loop(UNUSED(Stream_t *Stream), MainParam_t *mp,
++int unix_loop(Stream_t *Stream UNUSEDP, MainParam_t *mp,
+ char *arg, int follow_dir_link)
+ {
+ int ret;
+--
+2.12.0
+
diff --git a/sys-fs/mtools/files/mtools-4.0.18-locking.patch b/sys-fs/mtools/files/mtools-4.0.18-locking.patch
new file mode 100644
index 000000000000..3b53c73c645c
--- /dev/null
+++ b/sys-fs/mtools/files/mtools-4.0.18-locking.patch
@@ -0,0 +1,163 @@
+https://crbug.com/508713
+https://lists.gnu.org/archive/html/info-mtools/2016-11/msg00000.html
+
+From 04df65ed797e47da5b423c7f9aec99d82dfde400 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Wed, 7 Sep 2016 12:33:42 -0400
+Subject: [PATCH] add support for retrying device locking
+
+When running syslinux's install phase, it will run a bunch of mtools
+commands in quick succession. If you're on a fast enough machine, it
+can often fail with errors like:
+plain floppy: device "/proc/2908/fd/3" busy (Resource temporarily unavailable):
+Cannot initialize 'S:'
+Bad target s:/ldlinux.sys
+syslinux: failed to create ldlinux.sys
+
+The issue is that after some of the mtools calls, the kernel notices
+that the fs image has changed, so it notifies userspace. This wakes
+up udev which grabs a lock on the device to rescan it for changes
+(e.g. updated fs metadata like UUID). The udev phase does not finish
+before syslinux fires off another mtools call which means mtools now
+fails with a locking error.
+
+You can recreate this with a simple test:
+- loop mount a fat fs image
+- open the loop device for writing
+- generate a mtools.conf pointing the file to /proc/$pid/fd/$fd
+- run mattrib && mcopy
+- see udev open/lock the loop device after mattrib runs to probe it
+- see mcopy fail because udev is still holding the lock
+
+To fix things, we teach mtools to retry its locking calls temporarily.
+If it still fails after a timeout, we abort like normal. We also make
+this behavior configurable by adding a new global timeout option.
+---
+ config.c | 2 ++
+ mtools.h | 1 +
+ mtools.texi | 7 +++++++
+ mtools.tmpl.5 | 4 ++++
+ plain_io.c | 10 ++++++++++
+ xdf_io.c | 11 +++++++++++
+ 6 files changed, 35 insertions(+)
+
+diff --git a/config.c b/config.c
+index f08688399d1d..ea4178452f6a 100644
+--- a/config.c
++++ b/config.c
+@@ -63,6 +63,7 @@ unsigned int mtools_no_vfat=0;
+ unsigned int mtools_numeric_tail=1;
+ unsigned int mtools_dotted_dir=0;
+ unsigned int mtools_twenty_four_hour_clock=1;
++unsigned int mtools_lock_timeout=30;
+ unsigned int mtools_default_codepage=850;
+ const char *mtools_date_string="yyyy-mm-dd";
+ char *country_string=0;
+@@ -90,6 +91,7 @@ static switches_t global_switches[] = {
+ (caddr_t) &mtools_twenty_four_hour_clock, T_UINT },
+ { "MTOOLS_DATE_STRING",
+ (caddr_t) &mtools_date_string, T_STRING },
++ { "MTOOLS_LOCK_TIMEOUT", (caddr_t) &mtools_lock_timeout, T_UINT },
+ { "DEFAULT_CODEPAGE", (caddr_t) &mtools_default_codepage, T_UINT }
+ };
+
+diff --git a/mtools.h b/mtools.h
+index ef98e942ee2c..fa8c1bdc8a1b 100644
+--- a/mtools.h
++++ b/mtools.h
+@@ -188,6 +188,7 @@ extern unsigned int mtools_ignore_short_case;
+ extern unsigned int mtools_no_vfat;
+ extern unsigned int mtools_numeric_tail;
+ extern unsigned int mtools_dotted_dir;
++extern unsigned int mtools_lock_timeout;
+ extern unsigned int mtools_twenty_four_hour_clock;
+ extern const char *mtools_date_string;
+ extern unsigned int mtools_rate_0, mtools_rate_any;
+diff --git a/mtools.texi b/mtools.texi
+index 1085789c1cb6..1c7ad94d40f9 100644
+--- a/mtools.texi
++++ b/mtools.texi
+@@ -658,6 +658,10 @@ DOSEMU image files.
+ @vindex MTOOLS_FAT_COMPATIBILITY
+ @vindex MTOOLS_LOWER_CASE
+ @vindex MTOOLS_NO_VFAT
++@vindex MTOOLS_DOTTED_DIR
++@vindex MTOOLS_NAME_NUMERIC_TAIL
++@vindex MTOOLS_TWENTY_FOUR_HOUR_CLOCK
++@vindex MTOOLS_LOCK_TIMEOUT
+ @cindex FreeDOS
+
+ Global flags may be set to 1 or to 0.
+@@ -692,6 +696,9 @@ clash would have happened.
+ @item MTOOLS_TWENTY_FOUR_HOUR_CLOCK
+ If 1, uses the European notation for times (twenty four hour clock),
+ else uses the UK/US notation (am/pm)
++@item MTOOLS_LOCK_TIMEOUT
++How long, in seconds, to wait for a locked device to become free.
++Defaults to 30.
+ @end table
+
+ Example:
+diff --git a/mtools.tmpl.5 b/mtools.tmpl.5
+index 565fdd7513aa..8cdaaf2ba929 100644
+--- a/mtools.tmpl.5
++++ b/mtools.tmpl.5
+@@ -106,6 +106,10 @@ clash would have happened.
+ \&\fR\&\f(CWMTOOLS_TWENTY_FOUR_HOUR_CLOCK\fR\
+ If 1, uses the European notation for times (twenty four hour clock),
+ else uses the UK/US notation (am/pm)
++.TP
++\&\fR\&\f(CWMTOOLS_LOCK_TIMEOUT\fR\
++How long, in seconds, to wait for a locked device to become free.
++Defaults to 30.
+ .PP
+ Example:
+ Inserting the following line into your configuration file instructs
+diff --git a/plain_io.c b/plain_io.c
+index c9d8418b8b4d..3dc035c9ce92 100644
+--- a/plain_io.c
++++ b/plain_io.c
+@@ -632,7 +632,17 @@ APIRET rc;
+ #ifndef __CYGWIN__
+ #ifndef OS_mingw32msvc
+ /* lock the device on writes */
++ retry:
+ if (locked && lock_dev(This->fd, mode == O_RDWR, dev)) {
++ /* retry the lock in case another system process (e.g. udev)
++ * has temporarily locked the device. this happens when you
++ * run multiple mtools commands at once which triggers the
++ * system to lock/rescan/unlock. */
++ static int retries = 0;
++ if (errno == EAGAIN && retries++ < mtools_lock_timeout * 10) {
++ usleep(100);
++ goto retry;
++ }
+ if(errmsg)
+ #ifdef HAVE_SNPRINTF
+ snprintf(errmsg,199,
+diff --git a/xdf_io.c b/xdf_io.c
+index f0db3b3d9f38..8f64f6348f0c 100644
+--- a/xdf_io.c
++++ b/xdf_io.c
+@@ -638,7 +638,18 @@ Stream_t *XdfOpen(struct device *dev, char *name,
+ goto exit_2;
+
+ /* lock the device on writes */
++ retry:
+ if (lock_dev(This->fd, mode == O_RDWR, dev)) {
++ /* retry the lock in case another system process (e.g. udev)
++ * has temporarily locked the device. this happens when you
++ * run multiple mtools commands at once which triggers the
++ * system to lock/rescan/unlock. */
++ static int retries = 0;
++ if (errno == EAGAIN && retries++ < mtools_lock_timeout * 10) {
++ usleep(100);
++ goto retry;
++ }
++
+ #ifdef HAVE_SNPRINTF
+ snprintf(errmsg,199,"xdf floppy: device \"%s\" busy:",
+ dev->name);
+--
+2.9.0
+
diff --git a/sys-fs/mtools/files/mtools-4.0.18-memset.patch b/sys-fs/mtools/files/mtools-4.0.18-memset.patch
new file mode 100644
index 000000000000..cf8d724406df
--- /dev/null
+++ b/sys-fs/mtools/files/mtools-4.0.18-memset.patch
@@ -0,0 +1,27 @@
+From bafeabbc474a98314e8cecf42c8339e1da21fea2 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 9 Mar 2017 16:23:19 -0800
+Subject: [PATCH] fix typo in scsi_cmd setup
+
+The memset call ends up referring to the function scsi_cmd and
+clearing its memory instead of the local my_scsi_cmd variable.
+---
+ scsi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scsi.c b/scsi.c
+index 7510edcefe95..85ff3bc3dc55 100644
+--- a/scsi.c
++++ b/scsi.c
+@@ -170,7 +170,7 @@ int scsi_cmd(int fd, unsigned char *cdb, int cmdlen, scsi_io_mode_t mode,
+ /*
+ ** Init the command
+ */
+- memset(&scsi_cmd,0,sizeof(scsi_cmd));
++ memset(&my_scsi_cmd,0,sizeof(my_scsi_cmd));
+ my_scsi_cmd.interface_id = 'S';
+ my_scsi_cmd.dxfer_direction = (mode == SCSI_IO_READ)?(SG_DXFER_FROM_DEV):(SG_DXFER_TO_DEV);
+ my_scsi_cmd.cmd_len = cmdlen;
+--
+2.12.0
+
diff --git a/sys-fs/mtools/metadata.xml b/sys-fs/mtools/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/mtools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/mtools/mtools-4.0.15.ebuild b/sys-fs/mtools/mtools-4.0.15.ebuild
new file mode 100644
index 000000000000..ac63b4f3c75a
--- /dev/null
+++ b/sys-fs/mtools/mtools-4.0.15.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit autotools
+
+DESCRIPTION="utilities to access MS-DOS disks from Unix without mounting them"
+HOMEPAGE="http://mtools.linux.lu/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ppc ppc64 sparc x86"
+IUSE="X"
+
+DEPEND="
+ X? (
+ x11-libs/libICE
+ x11-libs/libXau
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXt
+ )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ eautoconf #341443
+}
+
+src_configure() {
+ econf \
+ --sysconfdir=/etc/mtools \
+ $(use_with X x)
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" install || die
+ insinto /etc/mtools
+ doins mtools.conf || die
+ dosed '/^SAMPLE FILE$/s:^:#:' /etc/mtools/mtools.conf # default is fine
+ dodoc README* Release.notes
+}
diff --git a/sys-fs/mtools/mtools-4.0.17.ebuild b/sys-fs/mtools/mtools-4.0.17.ebuild
new file mode 100644
index 000000000000..126e15a993df
--- /dev/null
+++ b/sys-fs/mtools/mtools-4.0.17.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+DESCRIPTION="utilities to access MS-DOS disks from Unix without mounting them"
+HOMEPAGE="http://mtools.linux.lu/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE="X"
+
+DEPEND="
+ X? (
+ x11-libs/libICE
+ x11-libs/libXau
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXt
+ )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # Don't throw errors on existing directories
+ sed -i -e "s:mkdir:mkdir -p:" mkinstalldirs || die
+}
+
+src_configure() {
+ econf \
+ --sysconfdir=/etc/mtools \
+ $(use_with X x)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc README* Release.notes
+
+ insinto /etc/mtools
+ doins mtools.conf
+ # default is fine
+ sed -i -e '/^SAMPLE FILE$/s:^:#:' "${D}"/etc/mtools/mtools.conf || die
+}
diff --git a/sys-fs/mtools/mtools-4.0.18-r2.ebuild b/sys-fs/mtools/mtools-4.0.18-r2.ebuild
new file mode 100644
index 000000000000..b24e3026f32b
--- /dev/null
+++ b/sys-fs/mtools/mtools-4.0.18-r2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="utilities to access MS-DOS disks from Unix without mounting them"
+HOMEPAGE="https://www.gnu.org/software/mtools/ https://savannah.gnu.org/projects/mtools"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x64-solaris"
+IUSE="X elibc_glibc"
+
+DEPEND="
+ !elibc_glibc? ( virtual/libiconv )
+ X? (
+ x11-libs/libICE
+ x11-libs/libXau
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXt
+ )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # Don't throw errors on existing directories
+ sed -i -e "s:mkdir:mkdir -p:" mkinstalldirs || die
+
+ epatch "${FILESDIR}"/${P}-locking.patch # https://crbug.com/508713
+ epatch "${FILESDIR}"/${P}-attr.patch # https://crbug.com/644387
+ epatch "${FILESDIR}"/${P}-memset.patch
+}
+
+src_configure() {
+ # 447688
+ use !elibc_glibc && use !elibc_musl && append-libs "-liconv"
+ econf \
+ --sysconfdir="${EPREFIX}"/etc/mtools \
+ $(use_with X x)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc README* Release.notes
+
+ insinto /etc/mtools
+ doins mtools.conf
+ # default is fine
+ sed -i -e '/^SAMPLE FILE$/s:^:#:' "${ED}"/etc/mtools/mtools.conf || die
+}
diff --git a/sys-fs/mtools/mtools-4.0.18.ebuild b/sys-fs/mtools/mtools-4.0.18.ebuild
new file mode 100644
index 000000000000..20531ff7b2d8
--- /dev/null
+++ b/sys-fs/mtools/mtools-4.0.18.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit flag-o-matic
+
+DESCRIPTION="utilities to access MS-DOS disks from Unix without mounting them"
+HOMEPAGE="http://mtools.linux.lu/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x64-solaris"
+IUSE="X elibc_glibc"
+
+DEPEND="
+ !elibc_glibc? ( virtual/libiconv )
+ X? (
+ x11-libs/libICE
+ x11-libs/libXau
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXt
+ )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # Don't throw errors on existing directories
+ sed -i -e "s:mkdir:mkdir -p:" mkinstalldirs || die
+}
+
+src_configure() {
+ # 447688
+ use !elibc_glibc && use !elibc_musl && append-libs "-liconv"
+ econf \
+ --sysconfdir="${EPREFIX}"/etc/mtools \
+ $(use_with X x)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc README* Release.notes
+
+ insinto /etc/mtools
+ doins mtools.conf
+ # default is fine
+ sed -i -e '/^SAMPLE FILE$/s:^:#:' "${ED}"/etc/mtools/mtools.conf || die
+}
diff --git a/sys-fs/mtpfs/Manifest b/sys-fs/mtpfs/Manifest
new file mode 100644
index 000000000000..b7907cbc00be
--- /dev/null
+++ b/sys-fs/mtpfs/Manifest
@@ -0,0 +1,17 @@
+AUX mtpfs-1.1-fix-mutex-crash.patch 2115 SHA256 59f00dfd07219501044e72d0de22705d6e418576381775b1e511d4a38d525668 SHA512 800e1dd3d2b76503ee7ba03bbdce8cd43c6a64b4444d3f2f9b49e155b86b005c98ff2019043cbc440762ed8c4dc675a4666fe0fa4bfbc3c89971a2aeb16538e1 WHIRLPOOL d5cd84e9c920329d05bf952bd26af8e826adfffe05a53ecc4c2d505d9dc558268cd6555f81764d5d957459c7636e1538250244e6cbb6d8be3513154a55798d1a
+AUX mtpfs-1.1-g_printf.patch 166 SHA256 640bf1028c13420b7ab86644291a169275117b187ba29dd1544a94ce65a82e53 SHA512 97ba9291dbcad22c149f5edb89fd67a92b678843caa7b1fa397c9d2c6205bfc591c31696f108732eef9b20bfe767df8e33d5a356d8e975c02eb0a28f773f2006 WHIRLPOOL 5889c1edd9f3dc1e06891e9d6348c077bf5b3dfef048bc79141b574cd31f3107288d6b83735cb0ee305f43b28e72fb09ce3aa98c262b8be3cbf308fb91f9df42
+AUX mtpfs-1.1-unitialized-variable.patch 346 SHA256 869c659af32c0b999694e6f6973728c98458dd1e31630514dbaa03f35e3aaf68 SHA512 17bec46c584435ff4e636a0b66c612605cdf2ecb029c92058be4e97981758edef31fef7ec31f2e79816fa0c6c3590fe8730abadbe0cbcef825abecdd05aeae8c WHIRLPOOL 2d5e6bffc2157fea6d5aca7d80002c5dd7a6b8bef9d64ddbfd8f71e78099a19945f5da477cb6e082ac5128865a73afa0d89d0089f117526c85715b6ec1e9a33f
+AUX mtpfs-1.1-wking-patches/0001-Use-GMutex-instead-of-GStaticMutex.patch 1793 SHA256 ed917b52aee3bde917bcdca66ba7bb74446ce62b21f3bda1eaaeca2287d1a5d3 SHA512 a6277bc8a80f65dc685560510ee510367269243826d80f8ef69af5baff1ca6cefc5fec203bd96f997ab1aa111f85404a7fa4c3bffc8f3d0338f090e576773587 WHIRLPOOL 9d9964e0089337cb7c745bdecd62241a55912d0da69f88afb48a69f77d32ebf9169d8b01f4961efefdadfd5d5bcb96fa566644740eea66d2a160b14805122e86
+AUX mtpfs-1.1-wking-patches/0002-Free-rawdevices-after-opening-the-connected-device.patch 872 SHA256 855e7bc9ac9832aca1e2d0cf705394598705b84dac5efef400182a26d33b452c SHA512 281093f81abba85ab2c2cde33ffb19db330332b57366bb3a9574a2f1c0c3378ac55915b421f9ed853212849f629b0bace0ddec5890d5fe521821acdfe6a50277 WHIRLPOOL 9ac78fb8eca27c2947b3f23af2ed4a4f6abc0dd0cac956d87bc634a799719df91b35daace3dc2bd476813c6c832d08d13894dcd0c8f502f60ddcbaf560ffbec8
+AUX mtpfs-1.1-wking-patches/0003-Allocate-additional-byte-for-trailing-null.patch 2016 SHA256 c95459399a0aae4e9036594c45b0d3f37f9b710f7a8e08ca6a02dcc9522d52f7 SHA512 23d1cf5b70795c5b09d935bd3ca0f362a24f79047072068f48a61a390f3db3010602a79047034a6cb9496ba36012e238ec306bd7849086df6f8166b8f3ed0fbd WHIRLPOOL 8ae0aca19e6abd8882781186baa36105a53dd9bc2d66ef14581d13959bfdf2cee937865519c7a9f84c42aec6c49ad285a0348686fa3eaaf652489d776887553a
+AUX mtpfs-1.1-wking-patches/0004-Use-storageid-to-access-storageArea.patch 1889 SHA256 1a88c83644f2718d010e153ec020fca69be6d9abb05c3a0492d68f7eb31dec93 SHA512 4c6163f7ef4d57998060c5bb6c81e6625c92ba0d45cd4b53d0549148245d6eeab0fb95a7996e6bd2f0bcc3c1938171dbaa18c67bc5e1086be7e9b8c7328c308d WHIRLPOOL b46f8ea2b1ca48211f307339ed24585cdf32f87f74a1d04d2e6fa027b72067e93b7206360dfcd9b1aca894b8596fb0a01958d80677a70c68cb3f874d09ba9edd
+AUX mtpfs-1.1-wking-patches/0005-Use-O_ACCMODE-to-pull-out-the-access-portion-of-the-.patch 1264 SHA256 6ca8a1abc3879bfa3f705c9144afeefb4c565b959ca3c64c25563ac2c746ad71 SHA512 547c4d1d48832cf9f4735ec194350cf45786dd259788f498edd02d6801718376ca47b96a83ed72b5f660b70638a37edae1778aa99d763d6d969659c519f9c2b3 WHIRLPOOL 1608b324e3da0ef3c976eb14dfd37830fc6837c0bac4ebade9f367ed8700c052ded99426f8f23eb23f4a7eee26ba8dbcacf3e8828c3d5cdb7879fb0d5bc457c7
+AUX mtpfs-1.1-wking-patches/0006-Check-for-find_storage-failures.patch 3484 SHA256 c1c6a88aa1bd9cc06bec9dc365cff39b190a2b0ef94464add82b48b0387f323e SHA512 c43ab62c8d63d6e9c2b42de74a4a25fbb6edf87d0f46128796c7e4e61704a5ee7753fafffbcfbbbc116e180cc1a8d8a3aa8a9b4cb9d3a031ffd8d3d67e201da3 WHIRLPOOL d528a802499fb336a48f5fda8ebed556134f68932a3b31e6fd02999cfc0815dfc3db87719fd48aa37be045882dcb4f3ba9e95d86287dfd852398cebf40cbcfa8
+AUX mtpfs-1.1-wking-patches/0007-Use-path-instead-of-fields-0-for-find_storage.patch 987 SHA256 aeda7d6c23fe4f76014eeb044419e644f199eb618344147dc91d1945016a2e7f SHA512 b358816389cbde3679bd1e50505f9e68de9ffe68041dfdc48af9ae64d1453d1ce7c3ab4ee4b6260a6d42d520225ad91c6cf6cd8d05cd561e3b72d102fd6dcbdb WHIRLPOOL 6290a2b562b32d51ee01d9cf1dff4f1c24213f0171177ff60d27405106b96f2a598e6344b4a8224c23cd83f01e9b07bdcd5f4b914a12f916dfb12691323d1f06
+DIST mtpfs-1.0.tar.gz 104242 SHA256 879ccf929a7ce395af30ae81314850a5cb55a0056107477016121b9392c49c13 SHA512 af3bd067410f51bf76619a5d98a23c2a5755d2f5e2764221af145a463ab1b819332b00e358887488f2e26e29c91dcabceedf5f8637d97a9b2ba06b91281a6a4d WHIRLPOOL 074effa8933a26cf6a98af92c7629833cd0a831baae3fb3c296eda62b22477df9d43404b2452644e83ae0902e427717854ec9c4cd5fa1c9705d83b82471f3476
+DIST mtpfs-1.1.tar.gz 108329 SHA256 1baf357de16995a5f0b5bc1b6833517a77456481d861cdba70f1ce1316ce4c1d SHA512 627f1a5efa024276f58857e0cb2a2b3057ab9ba6c26d8dcba9de066f4c0efc56a5c991e000e67763b874ee9feb1d9a1e176872b56dd13b146823e8724f2052c8 WHIRLPOOL 891b84f52cbb1ab19f25a45ac73253b0fd1c0f3340d5989eca7cc33ac04c964e3a21062969e9995f90bd0b3b82ebe819854c5de2a729a3efe95d06da1d094d7b
+EBUILD mtpfs-1.0.ebuild 986 SHA256 d978f0e21d3872c39b00f4d889dee204a100c3c8e14cfe3ccd3da2d6bbcd62c1 SHA512 9069b27f5d76131502438c1bbc9d329efa5c295a4a36403e14119c887eeb5d0e5523cbfa15ed3d63b4f2af8651d15aa7cd5e435c42d765f3c80b62f2109f6c4d WHIRLPOOL 2990d51d429d94e1f9a6504da25b017a247e6201f2a0badee48ab2ec366ac549f91963df43dc1aa8a54970de8e43bc205b0481c19af1ee4b10a77036b8cca839
+EBUILD mtpfs-1.1-r3.ebuild 1269 SHA256 0688ecb3817e7998c2a99de411c667d13b9b12679dab4c5a487cee7357d995b3 SHA512 c12f11172555e927eb4335bebfe05105c6346db378a8e838fc4186947f9bf8dec66e07126401219cfdefc68d9683a108f0ca450cd4d0bb31c35d20099c159f79 WHIRLPOOL 5a2d228f34c8cd550a4c33ff0255d54628112a1c1ffb4c1ba5c4e5ac61e86421ad1d400ba8e5c63ce25a2d1a4339793ab0782caebe11be49cbb7f0e9f2546113
+MISC ChangeLog 3830 SHA256 2ece11e75a85cdcc8dd9adfc75d388aaa10d15fab19fe7a11d17c1a94a26ea03 SHA512 529ea283a16c4e114ca1b460b2b3a393570e99f83352b675768ddeef10d45034c716443fc082faba437aa16b321a092750cf23a046c42a01e87cad938e4b3ee2 WHIRLPOOL c3776d01cfe610f498288f0a1cc45512b256456105fbfda888bbb63a19950bf1c3c4a560819c6777069033b9d97951f10b5d8be71f0d1f1386a4427e3dcedc44
+MISC ChangeLog-2015 2139 SHA256 800d9a7933bbb894ddf295122f08e4d6b385764074a5a97f8d1d39029f4f9e45 SHA512 523a815ce76e756abb93fd6f1f007abc6030bd7cf3fe0acfc768e46ec9254d941e96a876fa0720f128095d6367dc2c7b62e2cb4639efdc75c75c92b13c918467 WHIRLPOOL af6d4f75d19318f56c0484982f6fdaa9cbba5d569055cc2bf5d0e96e9a1943add5a632932cff90f1f69a2cd6d514e75ea5a120fa8791739701ef2e3351cfd1e4
+MISC metadata.xml 684 SHA256 386028895870823e388ab73218c8356349f10730d3e44a589b9ba570edd223a7 SHA512 725d050ed87be3de8beff0e97178452e806261e704aaaaf523982deb2fc803c771949bee9ac0651747323b3294d584470e49e4877a3cf5e8f2301f477a543955 WHIRLPOOL 69ac7b0afdfcfb200999f35fa00840d754bdaa98367079c6ab9d854c735244d5c201565acc8fa13247af1608ea9faeb7a2bad9680e5d50006ac468e9462c23c2
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-fix-mutex-crash.patch b/sys-fs/mtpfs/files/mtpfs-1.1-fix-mutex-crash.patch
new file mode 100644
index 000000000000..b344fc44bc1e
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-fix-mutex-crash.patch
@@ -0,0 +1,70 @@
+commit c30d53648a713a3f7f7711f081732aa814c6e74d
+Author: Sergei Trofimovich <siarheit@google.com>
+Date: Sat May 30 23:20:42 2015 +0100
+
+ mtpfs.c: remove all unlocking calls from mtpfs_getattr_real
+
+ Lock is already acquired/freed in the caller function 'mtpfs_getattr'.
+ Noticed when trying to use mtpfs today :)
+
+ Should also fix the same issue https://github.com/cjd/mtpfs/issues/1
+ as I get the same backtrace.
+
+ Signed-off-by: Sergei Trofimovich <siarheit@google.com>
+
+diff --git a/mtpfs.c b/mtpfs.c
+index e5e1b03..553d282 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -776,5 +776,5 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+ {
+ int ret = 0;
+- if (path==NULL) return_unlock(-ENOENT);
++ if (path==NULL) return -ENOENT;
+ memset (stbuf, 0, sizeof (struct stat));
+
+@@ -787,5 +787,5 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+ stbuf->st_mode = S_IFDIR | 0777;
+ stbuf->st_nlink = 2;
+- return_unlock(0);
++ return 0;
+ }
+
+@@ -799,5 +799,5 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+ stbuf->st_blocks = 2;
+ stbuf->st_mtime = time(NULL);
+- return_unlock(0);
++ return 0;
+ }
+ }
+@@ -808,5 +808,5 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+ stbuf->st_mode = S_IFDIR | 0777;
+ stbuf->st_nlink = 2;
+- return_unlock(0);
++ return 0;
+ }
+
+@@ -843,9 +843,9 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+ stbuf->st_blocks = 2;
+ stbuf->st_mtime = time(NULL);
+- return_unlock(0);
++ return 0;
+ }
+ playlist = playlist->next;
+ }
+- return_unlock(-ENOENT);
++ return -ENOENT;
+ }
+
+@@ -864,9 +864,9 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+ stbuf->st_mode = S_IFREG | 0777;
+ stbuf->st_mtime = file->modificationdate;
+- return_unlock(0);
++ return 0;
+ }
+ }
+
+- return_unlock(-ENOENT);
++ return -ENOENT;
+ }
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-g_printf.patch b/sys-fs/mtpfs/files/mtpfs-1.1-g_printf.patch
new file mode 100644
index 000000000000..21e08c848acb
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-g_printf.patch
@@ -0,0 +1,10 @@
+diff --git a/mtpfs.h b/mtpfs.h
+index f9532fa..1042a3d 100644
+--- a/mtpfs.h
++++ b/mtpfs.h
+@@ -32,2 +32,5 @@
+ #endif
++#ifdef DEBUG
++#include <glib/gprintf.h>
++#endif
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-unitialized-variable.patch b/sys-fs/mtpfs/files/mtpfs-1.1-unitialized-variable.patch
new file mode 100644
index 000000000000..fb49624515b8
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-unitialized-variable.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/556690
+--- mtpfs.c.old 2015-08-04 21:56:13.080712801 +0200
++++ mtpfs.c 2015-08-04 21:20:54.822965092 +0200
+@@ -1324,7 +1324,7 @@ main (int argc, char *argv[])
+ LIBMTP_raw_device_t * rawdevices;
+ int numrawdevices;
+ LIBMTP_error_number_t err;
+- int i;
++ int i = 0;
+
+ int opt;
+ extern int optind;
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0001-Use-GMutex-instead-of-GStaticMutex.patch b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0001-Use-GMutex-instead-of-GStaticMutex.patch
new file mode 100644
index 000000000000..9c1970bb59fd
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0001-Use-GMutex-instead-of-GStaticMutex.patch
@@ -0,0 +1,49 @@
+From 39872d8ff354c40d881f416e3b8b6df911379d37 Mon Sep 17 00:00:00 2001
+From: "W. Trevor King" <wking@tremily.us>
+Date: Sun, 23 Aug 2015 12:05:35 -0700
+Subject: [PATCH 1/7] Use GMutex instead of GStaticMutex
+
+The static version was deprecated in GLib 2.32 [1], which was released
+on 2012-03-24 [2]. The difference between the two was that before
+2.32, GMutex could not be statically allocated. Since 2.32, GMutex
+can be statically allocated, so there's no reason to use GStaticMutex
+anymore.
+
+[1]: https://developer.gnome.org/glib/unstable/glib-Deprecated-Thread-APIs.html#GStaticMutex
+[2]: https://git.gnome.org/browse/glib/tag/?h=glib-2-32&id=2.32.0
+---
+ mtpfs.c | 4 ++--
+ mtpfs.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mtpfs.c b/mtpfs.c
+index 553d282..286cd24 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -28,8 +28,8 @@ static void dump_mtp_error()
+ #define dump_mtp_error()
+ #endif
+
+-#define enter_lock(a...) do { DBG("lock"); DBG(a); g_static_mutex_lock(&device_lock); } while(0)
+-#define return_unlock(a) do { DBG("return unlock"); g_static_mutex_unlock(&device_lock); return a; } while(0)
++#define enter_lock(a...) do { DBG("lock"); DBG(a); g_mutex_lock(&device_lock); } while(0)
++#define return_unlock(a) do { DBG("return unlock"); g_mutex_unlock(&device_lock); return a; } while(0)
+
+ void
+ free_files(LIBMTP_file_t *filelist)
+diff --git a/mtpfs.h b/mtpfs.h
+index 789eccb..f812ea6 100644
+--- a/mtpfs.h
++++ b/mtpfs.h
+@@ -73,7 +73,7 @@ static GSList *lostfiles = NULL;
+ static GSList *myfiles = NULL;
+ static LIBMTP_playlist_t *playlists = NULL;
+ static gboolean playlists_changed = FALSE;
+-static GStaticMutex device_lock = G_STATIC_MUTEX_INIT;
++static GMutex device_lock = G_STATIC_MUTEX_INIT;
+
+
+ #endif /* _MTPFS_H_ */
+--
+2.5.3
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0002-Free-rawdevices-after-opening-the-connected-device.patch b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0002-Free-rawdevices-after-opening-the-connected-device.patch
new file mode 100644
index 000000000000..616ae1230ae6
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0002-Free-rawdevices-after-opening-the-connected-device.patch
@@ -0,0 +1,28 @@
+From 2fb900e9e915f9ec6ac2f233255a0a527da164c2 Mon Sep 17 00:00:00 2001
+From: "W. Trevor King" <wking@tremily.us>
+Date: Sun, 23 Aug 2015 21:59:45 -0700
+Subject: [PATCH 2/7] Free rawdevices after opening the connected device
+
+Avoid leaking the raw-device memory. For a similar example in the
+libmtp source, see LIBMTP_Get_First_Device [1].
+
+[1]: https://sourceforge.net/p/libmtp/code/ci/libmtp-1-1-9/tree/src/libmtp.c#l1690
+---
+ mtpfs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mtpfs.c b/mtpfs.c
+index 286cd24..bdd5f46 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -1390,6 +1390,7 @@ main (int argc, char *argv[])
+
+ fprintf(stdout, "Attempting to connect device\n");
+ device = LIBMTP_Open_Raw_Device(&rawdevices[i]);
++ free (rawdevices);
+ if (device == NULL) {
+ fprintf(stderr, "Unable to open raw device %d\n", i);
+ return 1;
+--
+2.5.3
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0003-Allocate-additional-byte-for-trailing-null.patch b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0003-Allocate-additional-byte-for-trailing-null.patch
new file mode 100644
index 000000000000..20cff00e32ee
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0003-Allocate-additional-byte-for-trailing-null.patch
@@ -0,0 +1,55 @@
+From 3929648c83910a45a37e84b4d3e5316631ce7c6b Mon Sep 17 00:00:00 2001
+From: "W. Trevor King" <wking@tremily.us>
+Date: Mon, 24 Aug 2015 00:08:24 -0700
+Subject: [PATCH 3/7] Allocate additional byte for trailing null
+
+These variables needs a byte for every character in the path and an
+additional trailing null, but the length returned by strlen excludes
+the trailing null.
+---
+ mtpfs.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/mtpfs.c b/mtpfs.c
+index bdd5f46..e31acd9 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -416,7 +416,7 @@ parse_path (const gchar * path)
+ LIBMTP_folder_t *folder;
+ gchar **fields;
+ gchar *directory;
+- directory = (gchar *) g_malloc (strlen (path));
++ directory = (gchar *) g_malloc (strlen (path) + 1);
+ directory = strcpy (directory, "");
+ fields = g_strsplit (path, "/", -1);
+ res = -ENOENT;
+@@ -488,7 +488,7 @@ mtpfs_release (const char *path, struct fuse_file_info *fi)
+ gchar *filename = g_strdup("");
+ gchar **fields;
+ gchar *directory;
+- directory = (gchar *) g_malloc (strlen (path));
++ directory = (gchar *) g_malloc (strlen (path) + 1);
+ directory = strcpy (directory, "/");
+ fields = g_strsplit (path, "/", -1);
+ int i;
+@@ -1089,7 +1089,7 @@ mtpfs_mkdir_real (const char *path, mode_t mode)
+ gchar **fields;
+ gchar *directory;
+
+- directory = (gchar *) g_malloc (strlen (path));
++ directory = (gchar *) g_malloc (strlen (path) + 1);
+ directory = strcpy (directory, "/");
+ fields = g_strsplit (path, "/", -1);
+ int i;
+@@ -1168,7 +1168,7 @@ mtpfs_rename (const char *oldname, const char *newname)
+ gchar *filename;
+ gchar **fields;
+ gchar *directory;
+- directory = (gchar *) g_malloc (strlen (newname));
++ directory = (gchar *) g_malloc (strlen (newname) + 1);
+ directory = strcpy (directory, "/");
+ fields = g_strsplit (newname, "/", -1);
+ int i;
+--
+2.5.3
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0004-Use-storageid-to-access-storageArea.patch b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0004-Use-storageid-to-access-storageArea.patch
new file mode 100644
index 000000000000..755e2902c0f1
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0004-Use-storageid-to-access-storageArea.patch
@@ -0,0 +1,42 @@
+From 89ec461a73a2479fb5766b6b65a44e6e5b699b94 Mon Sep 17 00:00:00 2001
+From: "W. Trevor King" <wking@tremily.us>
+Date: Mon, 24 Aug 2015 00:34:41 -0700
+Subject: [PATCH 4/7] Use storageid to access storageArea
+
+'i' is indexing playlist->tracks here, and we don't want to look in a
+sequential storage areas for each track.
+
+I've also added a null-folder check. I'm not sure if -ENOENT is the
+right code for "we can't find the parent directory in the storage area
+that contains the child", but it's the only non-success code that
+mtpfs_getattr_real returned before this commit. And returning
+anything is probably better than segfaulting when we try and
+dereference folder with 'folder->parent_id'. I've added a logging
+message to help debug things when we do get a null folder.
+---
+ mtpfs.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/mtpfs.c b/mtpfs.c
+index e31acd9..9f924a9 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -832,7 +832,14 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+ filesize = filesize + strlen(file->filename) + 2;
+ while (parent_id != 0) {
+ check_folders();
+- folder = LIBMTP_Find_Folder(storageArea[i].folders,parent_id);
++ folder =
++ LIBMTP_Find_Folder
++ (storageArea[storageid].folders, parent_id);
++ if (folder == NULL) {
++ DBG ("could not find %d in storage-area %d",
++ parent_id, storageid);
++ return -ENOENT;
++ }
+ parent_id = folder->parent_id;
+ filesize = filesize + strlen(folder->name) + 1;
+ }
+--
+2.5.3
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0005-Use-O_ACCMODE-to-pull-out-the-access-portion-of-the-.patch b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0005-Use-O_ACCMODE-to-pull-out-the-access-portion-of-the-.patch
new file mode 100644
index 000000000000..03bfb4c4709b
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0005-Use-O_ACCMODE-to-pull-out-the-access-portion-of-the-.patch
@@ -0,0 +1,46 @@
+From 00bd3be1310fb36a3b2eddc931eb48c89744b2b4 Mon Sep 17 00:00:00 2001
+From: "W. Trevor King" <wking@tremily.us>
+Date: Mon, 24 Aug 2015 01:31:17 -0700
+Subject: [PATCH 5/7] Use O_ACCMODE to pull out the access portion of the open
+ flags
+
+Following [1]. I'm using cp from GNU Coreutils 8.23, and it's setting
+my flags to 32769 (O_WRONLY + 0x8000).
+
+[1]: http://www.gnu.org/software/libc/manual/html_node/Access-Modes.html#index-0_005fACCMODE
+---
+ mtpfs.c | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/mtpfs.c b/mtpfs.c
+index 9f924a9..a82d479 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -949,12 +949,18 @@ mtpfs_open (const gchar * path, struct fuse_file_info *fi)
+ if (item_id < 0)
+ return_unlock(-ENOENT);
+
+- if (fi->flags == O_RDONLY) {
+- DBG("read");
+- } else if (fi->flags == O_WRONLY) {
+- DBG("write");
+- } else if (fi->flags == O_RDWR) {
+- DBG("rdwrite");
++ switch (fi->flags & O_ACCMODE) {
++ case O_RDONLY:
++ DBG ("read");
++ break;
++ case O_WRONLY:
++ DBG ("write");
++ break;
++ case O_RDWR:
++ DBG("rdwrite");
++ break;
++ default:
++ DBG ("unexpected access mode: %d", fi->flags & O_ACCMODE);
+ }
+
+ int storageid;
+--
+2.5.3
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0006-Check-for-find_storage-failures.patch b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0006-Check-for-find_storage-failures.patch
new file mode 100644
index 000000000000..84fb3464227c
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0006-Check-for-find_storage-failures.patch
@@ -0,0 +1,109 @@
+From 8860e176c8fb38006dc58516a5e5d9a1aab7be49 Mon Sep 17 00:00:00 2001
+From: "W. Trevor King" <wking@tremily.us>
+Date: Mon, 24 Aug 2015 01:07:49 -0700
+Subject: [PATCH 6/7] Check for find_storage failures
+
+Instead of just blindly using storageArea[-1].
+---
+ mtpfs.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/mtpfs.c b/mtpfs.c
+index a82d479..3fe17b8 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -317,6 +317,7 @@ find_storage(const gchar * path)
+ }
+ }
+ }
++ DBG ("could not find storage for %s", path);
+ return -1;
+ }
+
+@@ -422,6 +423,9 @@ parse_path (const gchar * path)
+ res = -ENOENT;
+ int storageid;
+ storageid = find_storage(path);
++ if (storageid < 0) {
++ return res;
++ }
+ for (i = 0; fields[i] != NULL; i++) {
+ if (strlen (fields[i]) > 0) {
+ if (fields[i + 1] != NULL) {
+@@ -495,6 +499,9 @@ mtpfs_release (const char *path, struct fuse_file_info *fi)
+ int parent_id = 0;
+ int storageid;
+ storageid = find_storage(fields[0]);
++ if (storageid < 0) {
++ return_unlock (-ENOENT);
++ }
+ for (i = 0; fields[i] != NULL; i++) {
+ if (strlen (fields[i]) > 0) {
+ if (fields[i + 1] == NULL) {
+@@ -715,6 +722,9 @@ mtpfs_readdir (const gchar * path, void *buf, fuse_fill_dir_t filler,
+ int i;
+ int storageid = -1;
+ storageid=find_storage(path);
++ if (storageid < 0) {
++ return_unlock (-ENOENT);
++ }
+ // Get folder listing.
+ int folder_id = 0;
+ if (strcmp (path, "/") != 0) {
+@@ -812,6 +822,9 @@ mtpfs_getattr_real (const gchar * path, struct stat *stbuf)
+
+ int storageid;
+ storageid=find_storage(path);
++ if (storageid < 0) {
++ return -ENOENT;
++ }
+
+ if (g_ascii_strncasecmp (path, "/Playlists",10) == 0) {
+ LIBMTP_playlist_t *playlist;
+@@ -965,6 +978,9 @@ mtpfs_open (const gchar * path, struct fuse_file_info *fi)
+
+ int storageid;
+ storageid=find_storage(path);
++ if (storageid < 0) {
++ return_unlock (-ENOENT);
++ }
+ FILE *filetmp = tmpfile ();
+ int tmpfile = fileno (filetmp);
+ if (tmpfile != -1) {
+@@ -1096,6 +1112,9 @@ mtpfs_mkdir_real (const char *path, mode_t mode)
+ item = g_slist_find_custom (myfiles, path, (GCompareFunc) strcmp);
+ int item_id = parse_path (path);
+ int storageid = find_storage(path);
++ if (storageid < 0) {
++ return_unlock (-ENOENT);
++ }
+ if ((item == NULL) && (item_id < 0)) {
+ // Split path and find parent_id
+ gchar *filename = g_strdup("");
+@@ -1161,6 +1180,9 @@ mtpfs_rmdir (const char *path)
+ return_unlock(0);
+ }
+ int storageid=find_storage(path);
++ if (storageid < 0) {
++ return_unlock (-ENOENT);
++ }
+ folder_id = lookup_folder_id (storageArea[storageid].folders, (gchar *) path, NULL);
+ if (folder_id < 0)
+ return_unlock(-ENOENT);
+@@ -1223,7 +1245,13 @@ mtpfs_rename (const char *oldname, const char *newname)
+ LIBMTP_file_t *file;
+
+ int storageid_old=find_storage(oldname);
++ if (storageid_old < 0) {
++ return_unlock (-ENOENT);
++ }
+ int storageid_new=find_storage(newname);
++ if (storageid_new < 0) {
++ return_unlock (-ENOENT);
++ }
+ if (strcmp (oldname, "/") != 0) {
+ folder_id = lookup_folder_id (storageArea[storageid_old].folders, (gchar *) oldname, NULL);
+ }
+--
+2.5.3
+
diff --git a/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0007-Use-path-instead-of-fields-0-for-find_storage.patch b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0007-Use-path-instead-of-fields-0-for-find_storage.patch
new file mode 100644
index 000000000000..b52439162cfd
--- /dev/null
+++ b/sys-fs/mtpfs/files/mtpfs-1.1-wking-patches/0007-Use-path-instead-of-fields-0-for-find_storage.patch
@@ -0,0 +1,29 @@
+From 76ff042e1334fdbef9803ea71b5d8b1d380efd7e Mon Sep 17 00:00:00 2001
+From: "W. Trevor King" <wking@tremily.us>
+Date: Mon, 24 Aug 2015 20:58:26 -0700
+Subject: [PATCH 7/7] Use 'path' instead of 'fields[0]' for find_storage
+
+When my path is '/Internal storage/Music/...', fields[0] will be an
+empty string, and find_storage will fail to find a storage area that
+matches that empty string. All of our other find_storage calls use
+the full path, so follow that example here.
+---
+ mtpfs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mtpfs.c b/mtpfs.c
+index 3fe17b8..291f49d 100644
+--- a/mtpfs.c
++++ b/mtpfs.c
+@@ -498,7 +498,7 @@ mtpfs_release (const char *path, struct fuse_file_info *fi)
+ int i;
+ int parent_id = 0;
+ int storageid;
+- storageid = find_storage(fields[0]);
++ storageid = find_storage(path);
+ if (storageid < 0) {
+ return_unlock (-ENOENT);
+ }
+--
+2.5.3
+
diff --git a/sys-fs/mtpfs/metadata.xml b/sys-fs/mtpfs/metadata.xml
new file mode 100644
index 000000000000..cc200ab69553
--- /dev/null
+++ b/sys-fs/mtpfs/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>voyageur@gentoo.org</email>
+ <name>Bernard Cafarelli</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+
+ <longdescription>
+ MTPfs is a FUSE filesystem that supports reading and writing from any
+ MTP device, as supported by libmtp. MTPfs includes extra features such
+ as playlist and meta information support for MP3 players.
+ </longdescription>
+ <use>
+ <flag name="mad">Enable handling of MP3's metadata</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-fs/mtpfs/mtpfs-1.0.ebuild b/sys-fs/mtpfs/mtpfs-1.0.ebuild
new file mode 100644
index 000000000000..0968c88c8653
--- /dev/null
+++ b/sys-fs/mtpfs/mtpfs-1.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+DESCRIPTION="A FUSE filesystem providing access to MTP devices"
+HOMEPAGE="https://www.adebenham.com/mtpfs/"
+SRC_URI="https://www.adebenham.com/debian/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug"
+
+DEPEND="dev-libs/glib:2
+ media-libs/libid3tag
+ media-libs/libmad
+ media-libs/libmtp
+ sys-fs/fuse"
+RDEPEND="${DEPEND}"
+
+DOCS=(AUTHORS NEWS README)
+
+src_prepare() {
+ sed -e "/#include <string.h>/ a\
+ #include <stdlib.h>" -i mtpfs.h id3read.c || die #implicit
+}
+
+src_configure() {
+ econf $(use_enable debug)
+}
+
+pkg_postinst() {
+ einfo "To mount your MTP device, issue:"
+ einfo " /usr/bin/mtpfs <mountpoint>"
+ echo
+ einfo "To unmount your MTP device, issue:"
+ einfo " /usr/bin/fusermount -u <mountpoint>"
+
+ if use debug; then
+ echo
+ einfo "You have enabled debugging output."
+ einfo "Please make sure you run mtpfs with the -d flag."
+ fi
+}
diff --git a/sys-fs/mtpfs/mtpfs-1.1-r3.ebuild b/sys-fs/mtpfs/mtpfs-1.1-r3.ebuild
new file mode 100644
index 000000000000..5fb9a655bf96
--- /dev/null
+++ b/sys-fs/mtpfs/mtpfs-1.1-r3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="A FUSE filesystem providing access to MTP devices"
+HOMEPAGE="https://www.adebenham.com/mtpfs/"
+SRC_URI="https://www.adebenham.com/files/mtp/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug mad"
+
+RDEPEND="dev-libs/glib:2
+ >=media-libs/libmtp-1.1.2
+ sys-fs/fuse
+ mad? (
+ media-libs/libid3tag
+ media-libs/libmad
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=(AUTHORS NEWS README)
+
+src_prepare() {
+ sed -e "/#include <string.h>/ a\
+ #include <stdlib.h>" -i mtpfs.h id3read.c || die #implicit
+
+ epatch "${FILESDIR}"/${P}-fix-mutex-crash.patch
+ epatch "${FILESDIR}"/${P}-unitialized-variable.patch
+ epatch "${FILESDIR}"/${P}-wking-patches/*.patch
+ epatch "${FILESDIR}"/${P}-g_printf.patch
+}
+
+src_configure() {
+ econf $(use_enable debug) \
+ $(use_enable mad)
+}
+
+pkg_postinst() {
+ einfo "To mount your MTP device, issue:"
+ einfo " /usr/bin/mtpfs <mountpoint>"
+ echo
+ einfo "To unmount your MTP device, issue:"
+ einfo " /usr/bin/fusermount -u <mountpoint>"
+
+ if use debug; then
+ echo
+ einfo "You have enabled debugging output."
+ einfo "Please make sure you run mtpfs with the -d flag."
+ fi
+}
diff --git a/sys-fs/multipath-tools/Manifest b/sys-fs/multipath-tools/Manifest
new file mode 100644
index 000000000000..c634dc676c8a
--- /dev/null
+++ b/sys-fs/multipath-tools/Manifest
@@ -0,0 +1,17 @@
+AUX multipath-tools-0.5.0-makefile.patch 6790 SHA256 e6810a05b059f542fdfeea72f0befbafaadd71563f4d78df4bc37380a1376cf0 SHA512 bed96f4cdb40df1e4c126a218c67c2a48a9c9a5df8248848ff69d928f07f1cf6ffd97e02dc0aa086171d4d65f56144c918267874b6b551e689243364908b5cf1 WHIRLPOOL 2621de1450390933029f60155562da28b524b92c553c080e2a42fac8629e12e26c63a7a3ebd3e820f21351d1d84c24a0fe5f262432ac1c14b8cf57310c918b34
+AUX multipath-tools-0.5.0-systemd-pkgconfig.patch 1192 SHA256 84dfec6872fe613680bdc9207663260aa47779eb0640ed3ff264efff9e83aa7b SHA512 60b5717b0e3fd9a3d422b756359ce6bb5018346c104bd45543135257b1c4efb3c586d188e35176bbcfa2c81ed9d4824e3c96cc395e52605934e9cc4935f17fec WHIRLPOOL 710787df816072669d9e50717846da75bc5358328d25003979b98a589a9478114e2681d3da4c8866ad21af0ce09b628301314c02f2879d34f564c695fe92dc88
+AUX multipath-tools-0.6.2-ignore-modprobe-failures.patch 831 SHA256 7149b88d157d72f851ddfd6ded87f15790177717922a6f6fcd921c6d78a325a5 SHA512 62e40c6577bc7cd24f3283de94692cc7550d39a9caa255ca5d77c2d3c324a85c0364fca73b154f17197cf38b82b171eae759f9eb1ecf8ab5801afafd42b1b156 WHIRLPOOL d9ee6cdc948fcfd66445870520c1a70ebf053dfeedf6e7f48fdef9d0de90f84e5cd87122aa95e2c56b7d4cd33743f71ed8af9b0f36ec0ac372cc946d81a58f06
+AUX multipath-tools-0.6.4-sysmacros.patch 1554 SHA256 b057d356f953f9141c583f014b4a06e4567e26007a01b8d1e44b3d01484fe4b2 SHA512 1f6c862e0fc73859b670d2917b2e0d63731714edb07098929dbd46e7cc61f9d354f30558034993c8e719de103d4b37c16a34483236a040db28a983416772634e WHIRLPOOL 575ee7cc97a6c0340c0bca617d7eaee45eb5cfd1982afa4177b87da3f6e322f8221f101892763964ef48ec86bcc90194be88a97253058062af408c5a13790ba2
+AUX multipath.rc 565 SHA256 0339b4724281c53f5a49b57c8654d5845e537eee748cade467bf8b0f99cfb3a2 SHA512 f08833fc3c928900f8c29438208b9715581bae426b1f45c246e8c418b210f7f9d35517ef9ad44db3d88944183b34e3411ece909b56892a9f3b7250fed49e43fe WHIRLPOOL 11855ed1afd8fb55a59fd3398357528e0ed3eb97a48907e4b14b22ec423c95796503f753c3d1b5e18673c631d3819edfadf3681b74b7fa3761f9b555210a2385
+AUX rc-multipathd 402 SHA256 0e9639186f4a44b65e1efb1428645f3042e563340fc3c3f70c3f244790a8bb8a SHA512 466296ff69c0f56c312a8b88445ca0719c8c6b794511f7e228812d63b859bd120b965301c8923e3411a3e1b196e7fb9c48dd7dbe004efe4c65ee7f9798cc3e11 WHIRLPOOL f1f90ba7cf72b3c1dccc77addf78a340c70b7d1391bbabe69e40d8653851130dde8f6e86eebe6f0d8d62728b940aabd10747ec27fe970ae70b5c262149980ef8
+DIST multipath-tools-0.5.0.tar.bz2 184024 SHA256 f13cf1eb84e94e83b2019e68f7965526903c13e94246db43965d181668a0a6f9 SHA512 dfad21c45d0f69e39041d30d203a582c8ee8329bf390c51cde10155b3de379e7ad8fead2ac4beb268a924fd7e7dc8e1cf538ea3c70d41479fd8786fa30ba22a9 WHIRLPOOL bc8a365d66d1c5f584de04304125949926d4a1576cba4a00acca0f1333eb13d83318da36d9d88c5dc92691a331d427ad6b99eb1f2983fbc387303dbfdbae11ff
+DIST multipath-tools-0.6.4.tar.gz 285448 SHA256 1e2747883320f7db854201e5bfb97216e7518468f03503985382ce2c69e5558b SHA512 ec35c6c26c3b233ebece7136ea99dd4c0dff2927e7b543e7091219dc7065fe87e609a1eda9ab6d08399d44fe882d70c8dbe6be9ab175d154c5dd2d12ee1d86ea WHIRLPOOL 6138ba1cbb814bbf53e7a5113f50325d7a7d7088ff2b0f83f1e574f0644241e368cc6b5223eca039b414a0a459a52413d396ea214ff3eaa57f0681e8322b2d9d
+DIST multipath-tools-0.7.1.tar.gz 329008 SHA256 d788aaf3ea862b44b5aa07eaa0e5696061f972a1a46d0f469c4a4f4c477c1970 SHA512 81ceb3887250a691b94cb49b7141ace4fc1f69d7f8381e517560dfc7c51ee4c5a1f4f4e40a0b368cf5f7381697fa746b856cbade8990c1608cbcd77248946a82 WHIRLPOOL 2bcc7cc2f425ca3f3f634807cafb7817b54b83d82987a09c9dd530dca1375175a7d52f1854bdd6d5f37c3b1fcf7bc34d67fc2dcae5809dfae968b313c8c86cba
+DIST multipath-tools-0.7.2.tar.gz 335187 SHA256 e4273527b8a8e31d596221dd74fdeb9f2b7558d59e514bc7eb040d077bddf24b SHA512 9637e6c69ecfe8dbfb55794569017051961dbe39fa1019000e4be9c2c888a5b6d13ae360af8738bb1fb89a8d27ec833ff0075b1d066b8b3ca21cd9832f477046 WHIRLPOOL 051956ab5c899ce98833925f84245f7450c7c01012edafdb6fff39762cf87908f53413c42f2ccb6059fd2717d29bf55ded260ade027b37ef0227a46b8266d8c7
+EBUILD multipath-tools-0.5.0-r1.ebuild 1728 SHA256 d25b74bb8a7ea90ffd9d1b9d54354218ea4675e092cef2defda8a45bd6b0dad6 SHA512 e1de58801f4e2b71b44a4d60d385bd2067aa172841a90c078a5f6dc608999bfcd23059cbc730e18c910a7606bc44bfd9524a2e466b49ff38b90cfaac143def86 WHIRLPOOL d92239d3dce0810260250437d573d0f26ec2ba914c17403082e5cd61e4fca75f0f5c14aefa6bcff0a6cf892b5b47e6002e854406abd9fda5cae0a824f7d494a6
+EBUILD multipath-tools-0.6.4-r1.ebuild 2537 SHA256 d3189bd2734a565ae0389820fef64f733e1286bbb1d3761a87cc141ef0bf5f97 SHA512 f8e9876a166eb809c161fc94c1579a9a059b81e23b5424721b068d9cc2bc88c049707174c42113840bbee7bf6b1d4209d5b688e952d8aa34d3fc95674fa9fe0d WHIRLPOOL 3cdc02d67db7497bfc58bc31dadfb8d8d509e055f6707297e59af8f2a1f3b91a635791a2e772d40462a4d1b14cf02dd965d3deed947833364529dfb1a1613d80
+EBUILD multipath-tools-0.7.1.ebuild 2189 SHA256 aca0361797e81a206b6d047cfe733225d30fd2d011ec555e4561a3aea6e9eb9a SHA512 cc1fc9548eec536691d4357d920a2920afee52729d74b662549dc9c70569f68ff02ee8b55facab6cbec5400880d0514b0696e0eea22e6be3682baa06d09a417c WHIRLPOOL 7f2d209590f37bb099c837e609441938104e6fd9afb491d2831c24f83b9f4a3cc180a9437d0f2d4d72e8f6732a376bce616bb1ef1659a601dadf97200ab48b7a
+EBUILD multipath-tools-0.7.2.ebuild 2189 SHA256 aca0361797e81a206b6d047cfe733225d30fd2d011ec555e4561a3aea6e9eb9a SHA512 cc1fc9548eec536691d4357d920a2920afee52729d74b662549dc9c70569f68ff02ee8b55facab6cbec5400880d0514b0696e0eea22e6be3682baa06d09a417c WHIRLPOOL 7f2d209590f37bb099c837e609441938104e6fd9afb491d2831c24f83b9f4a3cc180a9437d0f2d4d72e8f6732a376bce616bb1ef1659a601dadf97200ab48b7a
+MISC ChangeLog 5078 SHA256 539cfd87f64d5de2d687d73163ae333d6631a950c0bec78b39607bd2b18d08ed SHA512 47593517a8baee9753cdea2188d7a27905819c5d7c645fa7aa3396c9279bda8f02e8a56f073284aad1d2b1d78d3aa83093a92e3d833bbe2cab21fb392fb14b61 WHIRLPOOL 70e94e1df6d576f69b454f1be325c0ff6d4e4a4eb1757b2b714e40d18536f9793872be80d741a5d45641e89ba8fbb8da011f98c191fe64185c60e7d950211d32
+MISC ChangeLog-2015 12680 SHA256 cf384f2021fd11a53ad19d5df068a382d8f35f40f35cadba6d4aeff826a3945b SHA512 d8c52c8d4671ecd9ea0b4dca68328adda305711d221fa7ef52df1152a659b212229a6a52d552172e89db61002c261b3e099e173a11b9a508865540e75e4435ef WHIRLPOOL 0f9aa4d94dfe0bbc2a81575617b87a028c65b5087add91111f85640ef168fea90bd04417e6174d077fa6ae36b1e5755885105368f76adbb5833ad85b55dabb2c
+MISC metadata.xml 364 SHA256 2a207f67b14689c2642ea2737a4e5be02b87515a4de62be7b460f3610e7c8136 SHA512 91654145796f3e879d14dc7aab2261099dc0e2cb44e7563bf3c006893b81aa0f84fdd52870aaf317197b87e6c4d9e1341e456daeb2f3b40c926bdaf31c797134 WHIRLPOOL fe33ea8c44ba8c850dffdbdbe64aed1e7ef6f327157576e8929a294c47b39af58539027d9f1a82cd3063cce37eff965dd1402b8380089a67af7de7284e569d3e
diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.5.0-makefile.patch b/sys-fs/multipath-tools/files/multipath-tools-0.5.0-makefile.patch
new file mode 100644
index 000000000000..691b138731f6
--- /dev/null
+++ b/sys-fs/multipath-tools/files/multipath-tools-0.5.0-makefile.patch
@@ -0,0 +1,200 @@
+--- multipath-tools-0.5.0/kpartx/Makefile
++++ multipath-tools-0.5.0/kpartx/Makefile
+@@ -12,7 +12,7 @@
+ CFLAGS += -DLIBDM_API_COOKIE
+ endif
+
+-LDFLAGS = -ldevmapper
++LIBS = -ldevmapper
+ OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
+ gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
+ EXEC = kpartx
+@@ -20,8 +20,7 @@
+ all: $(EXEC)
+
+ $(EXEC): $(OBJS)
+- $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
+
+ install: $(EXEC) $(EXEC).8
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+@@ -29,14 +28,15 @@
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
+ $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
+- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
++ $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/66-kpartx.rules
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
+
+ uninstall:
+ rm -f $(DESTDIR)$(bindir)/$(EXEC)
+- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
++ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
+ rm -f $(DESTDIR)$(libudevdir)/kpartx_id
++ rm -f $(DESTDIR)/etc/udev/rules.d/66-kpartx.rules
+
+ clean:
+- rm -f core *.o $(EXEC) *.gz
++ rm -f core *.o $(EXEC)
+--- multipath-tools-0.5.0/libmpathpersist/Makefile
++++ multipath-tools-0.5.0/libmpathpersist/Makefile
+@@ -22,8 +22,6 @@
+ $(CC) -Wall -fPIC -c $(CFLAGS) *.c
+ $(CC) -shared $(LIBDEPS) -Wl,-soname=$@ $(CFLAGS) -o $@ $(OBJS)
+ ln -s $(LIBS) $(DEVLIB)
+- $(GZIP) mpath_persistent_reserve_in.3 > mpath_persistent_reserve_in.3.gz
+- $(GZIP) mpath_persistent_reserve_out.3 > mpath_persistent_reserve_out.3.gz
+
+ install: $(LIBS)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(syslibdir)
+@@ -31,19 +29,17 @@
+ $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(syslibdir)
+ $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(man3dir)
+ $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)/usr/include/
+- $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)/usr/share/doc/mpathpersist/
+- ln -sf $(DESTDIR)$(syslibdir)/$(LIBS) $(DESTDIR)$(syslibdir)/$(DEVLIB)
+- install -m 644 mpath_persistent_reserve_in.3.gz $(DESTDIR)$(man3dir)
+- install -m 644 mpath_persistent_reserve_out.3.gz $(DESTDIR)$(man3dir)
+- install -m 644 mpath_persist.h $(DESTDIR)/usr/include/
++ $(INSTALL_PROGRAM) -m 644 mpath_persistent_reserve_in.3 $(DESTDIR)$(man3dir)
++ $(INSTALL_PROGRAM) -m 644 mpath_persistent_reserve_out.3 $(DESTDIR)$(man3dir)
++ $(INSTALL_PROGRAM) -m 644 mpath_persist.h $(DESTDIR)/usr/include/
+
+ uninstall:
+ rm -f $(DESTDIR)$(syslibdir)/$(LIBS)
+- rm $(DESTDIR)$(mandir)/mpath_persistent_reserve_in.3.gz
+- rm $(DESTDIR)$(mandir)/mpath_persistent_reserve_out.3.gz
++ rm $(DESTDIR)$(mandir)/mpath_persistent_reserve_in.3
++ rm $(DESTDIR)$(mandir)/mpath_persistent_reserve_out.3
+
+ clean:
+ rm -f core *.a *.o
+ rm -f libmpathpersist.so.0
+ rm -f libmpathpersist.so
+- rm -f mpath_persistent_reserve_in.3.gz mpath_persistent_reserve_out.3.gz
++ rm -f mpath_persistent_reserve_in.3 mpath_persistent_reserve_out.3
+--- multipath-tools-0.5.0/Makefile.inc
++++ multipath-tools-0.5.0/Makefile.inc
+@@ -48,8 +48,8 @@
+ RPM_OPT_FLAGS = -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
+ endif
+
+-OPTFLAGS = $(RPM_OPT_FLAGS) -Wunused -Wstrict-prototypes
+-CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
++OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
++CFLAGS += $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
+ SHARED_FLAGS = -shared
+
+ %.o: %.c
+--- multipath-tools-0.5.0/mpathpersist/Makefile
++++ multipath-tools-0.5.0/mpathpersist/Makefile
+@@ -13,18 +13,17 @@
+
+ $(EXEC): $(OBJS)
+ $(CC) -g $(OBJS) -o $(EXEC) $(LDFLAGS) $(CFLAGS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+
+ install:
+ install -d $(DESTDIR)$(bindir)
+ install -m 755 $(EXEC) $(DESTDIR)$(bindir)/
+ install -d $(DESTDIR)$(mandir)
+- install -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ install -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
+
+ clean:
+ rm -f *.o $(EXEC)
+- rm -f mpathpersist.8.gz
++ rm -f mpathpersist.8
+
+ uninstall:
+ rm $(DESTDIR)$(bindir)/$(EXEC)
+- rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
++ rm $(DESTDIR)$(mandir)/$(EXEC).8
+--- multipath-tools-0.5.0/multipath/Makefile
++++ multipath-tools-0.5.0/multipath/Makefile
+@@ -7,29 +7,27 @@
+ OBJS = main.o
+
+ CFLAGS += -I$(multipathdir)
+-LDFLAGS += -lpthread -ldevmapper -ldl -L$(multipathdir) -lmultipath -ludev
++LIBS += -lpthread -ldevmapper -ldl -L$(multipathdir) -lmultipath -ludev
+
+ EXEC = multipath
+
+ all: $(EXEC)
+
+ $(EXEC): $(OBJS)
+- $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+- $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
+
+ install:
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(man5dir)
+
+ uninstall:
+ rm $(DESTDIR)$(bindir)/$(EXEC)
+- rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
+- rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
++ rm $(DESTDIR)$(mandir)/$(EXEC).8
++ rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5
+
+ clean:
+- rm -f core *.o $(EXEC) *.gz
++ rm -f core *.o $(EXEC)
+--- multipath-tools-0.5.0/multipathd/Makefile
++++ multipath-tools-0.5.0/multipathd/Makefile
+@@ -9,11 +9,11 @@
+ ifdef SYSTEMD
+ CFLAGS += -DUSE_SYSTEMD=$(SYSTEMD)
+ endif
+-LDFLAGS += -lpthread -ldevmapper -lreadline
++LIBS += -lpthread -ldevmapper -lreadline
+ ifdef SYSTEMD
+- LDFLAGS += -lsystemd-daemon
++ LIBS += -lsystemd-daemon
+ endif
+-LDFLAGS += -ludev -ldl \
++LIBS += -ludev -ldl \
+ -L$(multipathdir) -lmultipath -L$(mpathpersistdir) -lmpathpersist
+
+ #
+@@ -35,8 +35,7 @@
+ all : $(EXEC)
+
+ $(EXEC): $(OBJS)
+- $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $(EXEC)
+- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
+
+ install:
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+@@ -48,15 +47,15 @@
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).socket $(DESTDIR)$(unitdir)
+ endif
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
+
+ uninstall:
+ rm -f $(DESTDIR)$(bindir)/$(EXEC)
+ rm -f $(DESTDIR)$(rcdir)/$(EXEC)
+- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
++ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
+ rm -f $(DESTDIR)$(unitdir)/$(EXEC).service
+ rm -f $(DESTDIR)$(unitdir)/$(EXEC).socket
+
+ clean:
+- rm -f core *.o $(EXEC) *.gz
++ rm -f core *.o $(EXEC)
+
diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.5.0-systemd-pkgconfig.patch b/sys-fs/multipath-tools/files/multipath-tools-0.5.0-systemd-pkgconfig.patch
new file mode 100644
index 000000000000..d75f841361a6
--- /dev/null
+++ b/sys-fs/multipath-tools/files/multipath-tools-0.5.0-systemd-pkgconfig.patch
@@ -0,0 +1,24 @@
+diff -ru multipath-tools-0.5.0/libmultipath/Makefile multipath-tools-0.5.0-modified/libmultipath/Makefile
+--- multipath-tools-0.5.0/libmultipath/Makefile 2013-12-17 22:40:41.000000000 +0100
++++ multipath-tools-0.5.0-modified/libmultipath/Makefile 2014-03-07 04:03:45.963309627 +0100
+@@ -9,7 +9,7 @@
+ LIBS = $(DEVLIB).$(SONAME)
+ LIBDEPS = -lpthread -ldl -ldevmapper -ludev
+ ifdef SYSTEMD
+- LIBDEPS += -lsystemd-daemon
++ LIBDEPS += $(shell pkg-config --libs libsystemd 2>/dev/null || pkg-config --libs libsystemd-daemon 2>/dev/null)
+ endif
+
+ OBJS = memory.o parser.o vector.o devmapper.o callout.o \
+diff -ru multipath-tools-0.5.0/multipathd/Makefile multipath-tools-0.5.0-modified/multipathd/Makefile
+--- multipath-tools-0.5.0/multipathd/Makefile 2014-03-07 04:05:09.340307633 +0100
++++ multipath-tools-0.5.0-modified/multipathd/Makefile 2014-03-07 04:04:03.555309206 +0100
+@@ -11,7 +11,7 @@
+ endif
+ LIBS += -lpthread -ldevmapper -lreadline
+ ifdef SYSTEMD
+- LIBS += -lsystemd-daemon
++ LIBS += $(shell pkg-config --libs libsystemd 2>/dev/null || pkg-config --libs libsystemd-daemon 2>/dev/null)
+ endif
+ LIBS += -ludev -ldl \
+ -L$(multipathdir) -lmultipath -L$(mpathpersistdir) -lmpathpersist
diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.6.2-ignore-modprobe-failures.patch b/sys-fs/multipath-tools/files/multipath-tools-0.6.2-ignore-modprobe-failures.patch
new file mode 100644
index 000000000000..cb785899c2ed
--- /dev/null
+++ b/sys-fs/multipath-tools/files/multipath-tools-0.6.2-ignore-modprobe-failures.patch
@@ -0,0 +1,25 @@
+From 100588046ad59176b9779c73212aea63be5aace4 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Mon, 12 Sep 2016 17:26:38 -0400
+Subject: [PATCH] multipathd.service: ignore modprobe failures
+
+---
+ multipathd/multipathd.service | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index e3d6f91..d26577f 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -11,7 +11,7 @@ Conflicts=shutdown.target
+ Type=notify
+ NotifyAccess=main
+ LimitCORE=infinity
+-ExecStartPre=/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
++ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
+ ExecStart=/sbin/multipathd -d -s
+ ExecReload=/sbin/multipathd reconfigure
+
+--
+2.10.0
+
diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.6.4-sysmacros.patch b/sys-fs/multipath-tools/files/multipath-tools-0.6.4-sysmacros.patch
new file mode 100644
index 000000000000..99a12fc7b784
--- /dev/null
+++ b/sys-fs/multipath-tools/files/multipath-tools-0.6.4-sysmacros.patch
@@ -0,0 +1,60 @@
+diff --git a/kpartx/dasd.c b/kpartx/dasd.c
+index 1206e45..f50c1bd 100644
+--- a/kpartx/dasd.c
++++ b/kpartx/dasd.c
+@@ -28,6 +28,7 @@
+ #include <inttypes.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/ioctl.h>
+ #include <linux/hdreg.h>
+ #include <errno.h>
+diff --git a/kpartx/kpartx.c b/kpartx/kpartx.c
+index d31fea8..3452787 100644
+--- a/kpartx/kpartx.c
++++ b/kpartx/kpartx.c
+@@ -28,6 +28,7 @@
+ #include <stdint.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <ctype.h>
+ #include <libdevmapper.h>
+diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c
+index 4d6c3c2..d9a9e67 100644
+--- a/libmultipath/checkers/tur.c
++++ b/libmultipath/checkers/tur.c
+@@ -11,6 +11,7 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
++#include <sys/sysmacros.h>
+ #include <errno.h>
+ #include <sys/time.h>
+ #include <pthread.h>
+diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
+index 4f8ef13..9c0b240 100644
+--- a/libmultipath/devmapper.c
++++ b/libmultipath/devmapper.c
+@@ -12,6 +12,7 @@
+ #include <ctype.h>
+ #include <unistd.h>
+ #include <errno.h>
++#include <sys/sysmacros.h>
+
+ #include "checkers.h"
+ #include "vector.h"
+diff --git a/libmultipath/util.c b/libmultipath/util.c
+index 03a5738..1841f35 100644
+--- a/libmultipath/util.c
++++ b/libmultipath/util.c
+@@ -4,6 +4,7 @@
+ #include <pthread.h>
+ #include <string.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+
diff --git a/sys-fs/multipath-tools/files/multipath.rc b/sys-fs/multipath-tools/files/multipath.rc
new file mode 100644
index 000000000000..576026ace683
--- /dev/null
+++ b/sys-fs/multipath-tools/files/multipath.rc
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ before checkfs fsck multipathd iscsid lvm
+ after modules device-mapper
+}
+
+start() {
+ if ! grep -qs device-mapper /proc/devices /proc/misc ; then
+ [ -e /proc/modules ] && modprobe -q dm-mod
+ [ -e /proc/modules ] && modprobe -q dm-multipath
+ fi
+
+ ebegin "Activating Multipath devices"
+ multipath -v0 >/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Shutting down Multipath devices"
+ multipath -v0 -F >/dev/null
+ eend $?
+}
+
+# vim:ts=4
diff --git a/sys-fs/multipath-tools/files/rc-multipathd b/sys-fs/multipath-tools/files/rc-multipathd
new file mode 100644
index 000000000000..d4d440f2c910
--- /dev/null
+++ b/sys-fs/multipath-tools/files/rc-multipathd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need localmount
+ after modules
+}
+
+start() {
+ ebegin "Starting multipathd"
+ start-stop-daemon --start --quiet --exec /sbin/multipathd
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping multipathd"
+ start-stop-daemon --stop --quiet --pidfile /var/run/multipathd.pid
+ eend $?
+}
diff --git a/sys-fs/multipath-tools/metadata.xml b/sys-fs/multipath-tools/metadata.xml
new file mode 100644
index 000000000000..9a20c9e5bc2b
--- /dev/null
+++ b/sys-fs/multipath-tools/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <use>
+ <flag name="rbd">Enable Rados block device support via <pkg>sys-cluster/ceph</pkg></flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-fs/multipath-tools/multipath-tools-0.5.0-r1.ebuild b/sys-fs/multipath-tools/multipath-tools-0.5.0-r1.ebuild
new file mode 100644
index 000000000000..0edaad0c2843
--- /dev/null
+++ b/sys-fs/multipath-tools/multipath-tools-0.5.0-r1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+inherit eutils systemd toolchain-funcs udev
+
+DESCRIPTION="Device mapper target autoconfig"
+HOMEPAGE="http://christophe.varoqui.free.fr/"
+SRC_URI="http://christophe.varoqui.free.fr/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ppc ppc64 ~sparc x86"
+IUSE="systemd"
+
+RDEPEND=">=sys-fs/lvm2-2.02.45
+ >=virtual/udev-171
+ dev-libs/libaio
+ sys-libs/readline
+ systemd? ( sys-apps/systemd )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-makefile.patch
+ epatch "${FILESDIR}"/${P}-systemd-pkgconfig.patch
+ epatch_user
+}
+
+src_compile() {
+ # LIBDM_API_FLUSH involves grepping files in /usr/include,
+ # so force the test to go the way we want #411337.
+ emake LIBDM_API_FLUSH=1 CC="$(tc-getCC)" SYSTEMD=$(usex systemd 1 "")
+}
+
+src_install() {
+ local udevdir="$(get_udevdir)"
+
+ dodir /sbin /usr/share/man/man8
+ emake \
+ DESTDIR="${D}" \
+ SYSTEMD=$(usex systemd 1 "") \
+ unitdir="$(systemd_get_unitdir)" \
+ libudevdir='${prefix}'/"${udevdir}" \
+ install
+
+ insinto /etc
+ newins "${S}"/multipath.conf.annotated multipath.conf
+ # /etc/udev is reserved for user modified rules!
+ mv "${D}"/etc/udev/rules.d "${D}/${udevdir}"/ || die
+ fperms 644 "${udevdir}"/rules.d/66-kpartx.rules
+ newinitd "${FILESDIR}"/rc-multipathd multipathd
+ newinitd "${FILESDIR}"/multipath.rc multipath
+
+ dodoc multipath.conf.* AUTHOR ChangeLog FAQ
+ docinto kpartx
+ dodoc kpartx/ChangeLog kpartx/README
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "If you need multipath on your system, you must"
+ elog "add 'multipath' into your boot runlevel!"
+ fi
+}
diff --git a/sys-fs/multipath-tools/multipath-tools-0.6.4-r1.ebuild b/sys-fs/multipath-tools/multipath-tools-0.6.4-r1.ebuild
new file mode 100644
index 000000000000..652a8f6a1a6a
--- /dev/null
+++ b/sys-fs/multipath-tools/multipath-tools-0.6.4-r1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit linux-info systemd toolchain-funcs udev vcs-snapshot toolchain-funcs
+
+DESCRIPTION="Device mapper target autoconfig"
+HOMEPAGE="http://christophe.varoqui.free.fr/"
+SRC_URI="http://git.opensvc.com/?p=multipath-tools/.git;a=snapshot;h=${PV};sf=tgz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="systemd rbd"
+
+RDEPEND=">=sys-fs/lvm2-2.02.45
+ >=virtual/udev-171
+ dev-libs/libaio
+ dev-libs/userspace-rcu
+ sys-libs/readline:0=
+ rbd? ( sys-cluster/ceph )
+ systemd? ( sys-apps/systemd )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+CONFIG_CHECK="~DM_MULTIPATH"
+
+PATCHES=(
+ # modprobe fails when modules are compiled statically into the kernel
+ # https://www.redhat.com/archives/dm-devel/2017-January/msg00043.html
+ "${FILESDIR}"/${PN}-0.6.2-ignore-modprobe-failures.patch
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=604228
+ # https://www.redhat.com/archives/dm-devel/2017-January/msg00022.html
+ "${FILESDIR}"/${P}-sysmacros.patch
+)
+
+get_systemd_pv() {
+ use systemd && \
+ $(tc-getPKG_CONFIG) --modversion systemd
+}
+
+pkg_pretend() {
+ linux-info_pkg_setup
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Fix for bug #624884
+ if grep -qF DM_TABLE_STATE kpartx/kpartx.rules ; then
+ sed '/DM_TABLE_STATE/d' -i kpartx/kpartx.rules || die
+ else
+ elog "DM_TABLE_STATE sed hack is no longer necessary."
+ fi
+
+ # The upstream lacks any way to configure the build at present
+ # and ceph is a huge dependency, so we're using sed to make it
+ # optional until the upstream has a proer configure system
+ if ! use rbd ; then
+ sed -i -e "s/libcheckrbd.so/# libcheckrbd.so/" libmultipath/checkers/Makefile
+ sed -i -e "s/-lrados//" libmultipath/checkers/Makefile
+ fi
+}
+
+src_compile() {
+ # LIBDM_API_FLUSH involves grepping files in /usr/include,
+ # so force the test to go the way we want #411337.
+ emake \
+ CC="$(tc-getCC)" \
+ LIBDM_API_FLUSH=1 SYSTEMD="$(get_systemd_pv)"
+}
+
+src_install() {
+ dodir /sbin /usr/share/man/man{5,8}
+ emake \
+ DESTDIR="${D}" \
+ SYSTEMD=$(get_systemd_pv) \
+ unitdir="$(systemd_get_systemunitdir)" \
+ libudevdir='${prefix}'/"$(get_udevdir)" \
+ install
+
+ newinitd "${FILESDIR}"/rc-multipathd multipathd
+ newinitd "${FILESDIR}"/multipath.rc multipath
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "If you need multipath on your system, you must"
+ elog "add 'multipath' into your boot runlevel!"
+ fi
+}
diff --git a/sys-fs/multipath-tools/multipath-tools-0.7.1.ebuild b/sys-fs/multipath-tools/multipath-tools-0.7.1.ebuild
new file mode 100644
index 000000000000..fdc2ed3abb66
--- /dev/null
+++ b/sys-fs/multipath-tools/multipath-tools-0.7.1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit linux-info systemd toolchain-funcs udev vcs-snapshot toolchain-funcs
+
+DESCRIPTION="Device mapper target autoconfig"
+HOMEPAGE="http://christophe.varoqui.free.fr/"
+SRC_URI="http://git.opensvc.com/?p=multipath-tools/.git;a=snapshot;h=${PV};sf=tgz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="systemd rbd"
+
+RDEPEND="
+ dev-libs/json-c
+ dev-libs/libaio
+ dev-libs/userspace-rcu
+ >=sys-fs/lvm2-2.02.45
+ >=virtual/udev-171
+ sys-libs/readline:0=
+ rbd? ( sys-cluster/ceph )
+ systemd? ( sys-apps/systemd )
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+"
+
+CONFIG_CHECK="~DM_MULTIPATH"
+
+get_systemd_pv() {
+ use systemd && \
+ $(tc-getPKG_CONFIG) --modversion systemd
+}
+
+pkg_pretend() {
+ linux-info_pkg_setup
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Fix for bug #624884
+ if grep -qF DM_TABLE_STATE kpartx/kpartx.rules ; then
+ sed '/DM_TABLE_STATE/d' -i kpartx/kpartx.rules || die
+ else
+ elog "DM_TABLE_STATE sed hack is no longer necessary."
+ fi
+
+ # The upstream lacks any way to configure the build at present
+ # and ceph is a huge dependency, so we're using sed to make it
+ # optional until the upstream has a proer configure system
+ if ! use rbd ; then
+ sed -i -e "s/libcheckrbd.so/# libcheckrbd.so/" libmultipath/checkers/Makefile
+ sed -i -e "s/-lrados//" libmultipath/checkers/Makefile
+ fi
+}
+
+src_compile() {
+ # LIBDM_API_FLUSH involves grepping files in /usr/include,
+ # so force the test to go the way we want #411337.
+ emake \
+ CC="$(tc-getCC)" \
+ LIBDM_API_FLUSH=1 SYSTEMD="$(get_systemd_pv)"
+}
+
+src_install() {
+ dodir /sbin /usr/share/man/man{5,8}
+ emake \
+ DESTDIR="${D}" \
+ SYSTEMD=$(get_systemd_pv) \
+ unitdir="$(systemd_get_systemunitdir)" \
+ libudevdir='${prefix}'/"$(get_udevdir)" \
+ install
+
+ newinitd "${FILESDIR}"/rc-multipathd multipathd
+ newinitd "${FILESDIR}"/multipath.rc multipath
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "If you need multipath on your system, you must"
+ elog "add 'multipath' into your boot runlevel!"
+ fi
+}
diff --git a/sys-fs/multipath-tools/multipath-tools-0.7.2.ebuild b/sys-fs/multipath-tools/multipath-tools-0.7.2.ebuild
new file mode 100644
index 000000000000..fdc2ed3abb66
--- /dev/null
+++ b/sys-fs/multipath-tools/multipath-tools-0.7.2.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit linux-info systemd toolchain-funcs udev vcs-snapshot toolchain-funcs
+
+DESCRIPTION="Device mapper target autoconfig"
+HOMEPAGE="http://christophe.varoqui.free.fr/"
+SRC_URI="http://git.opensvc.com/?p=multipath-tools/.git;a=snapshot;h=${PV};sf=tgz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="systemd rbd"
+
+RDEPEND="
+ dev-libs/json-c
+ dev-libs/libaio
+ dev-libs/userspace-rcu
+ >=sys-fs/lvm2-2.02.45
+ >=virtual/udev-171
+ sys-libs/readline:0=
+ rbd? ( sys-cluster/ceph )
+ systemd? ( sys-apps/systemd )
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+"
+
+CONFIG_CHECK="~DM_MULTIPATH"
+
+get_systemd_pv() {
+ use systemd && \
+ $(tc-getPKG_CONFIG) --modversion systemd
+}
+
+pkg_pretend() {
+ linux-info_pkg_setup
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Fix for bug #624884
+ if grep -qF DM_TABLE_STATE kpartx/kpartx.rules ; then
+ sed '/DM_TABLE_STATE/d' -i kpartx/kpartx.rules || die
+ else
+ elog "DM_TABLE_STATE sed hack is no longer necessary."
+ fi
+
+ # The upstream lacks any way to configure the build at present
+ # and ceph is a huge dependency, so we're using sed to make it
+ # optional until the upstream has a proer configure system
+ if ! use rbd ; then
+ sed -i -e "s/libcheckrbd.so/# libcheckrbd.so/" libmultipath/checkers/Makefile
+ sed -i -e "s/-lrados//" libmultipath/checkers/Makefile
+ fi
+}
+
+src_compile() {
+ # LIBDM_API_FLUSH involves grepping files in /usr/include,
+ # so force the test to go the way we want #411337.
+ emake \
+ CC="$(tc-getCC)" \
+ LIBDM_API_FLUSH=1 SYSTEMD="$(get_systemd_pv)"
+}
+
+src_install() {
+ dodir /sbin /usr/share/man/man{5,8}
+ emake \
+ DESTDIR="${D}" \
+ SYSTEMD=$(get_systemd_pv) \
+ unitdir="$(systemd_get_systemunitdir)" \
+ libudevdir='${prefix}'/"$(get_udevdir)" \
+ install
+
+ newinitd "${FILESDIR}"/rc-multipathd multipathd
+ newinitd "${FILESDIR}"/multipath.rc multipath
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "If you need multipath on your system, you must"
+ elog "add 'multipath' into your boot runlevel!"
+ fi
+}
diff --git a/sys-fs/ncdu/Manifest b/sys-fs/ncdu/Manifest
new file mode 100644
index 000000000000..03b4221c5a34
--- /dev/null
+++ b/sys-fs/ncdu/Manifest
@@ -0,0 +1,5 @@
+DIST ncdu-1.12.tar.gz 140596 SHA256 820e4e4747a2a2ec7a2e9f06d2f5a353516362c22496a10a9834f871b877499a SHA512 20620dd79d2af878442769e097f13806f64f23875dcb85ebccd573a3de43aba5663d496049b64015d13f9a79d624298032c008ef61dfb6f61d8b12902b8dca12 WHIRLPOOL 1ec3e97a9b0172cc312e5ee1b641c298d0cb1c20af031767ec8f87e387c9b2992c4fe60a02e49e9741133eb1c92daffb23024ccd4bd8124a5f0f472df59ad684
+EBUILD ncdu-1.12.ebuild 430 SHA256 9765f5671eed17581ea796f49b33f6ee4435a99932c88ea8361bb11a8d220399 SHA512 d5191be8c3966c275fd1754914203d74f8a3fbfab13d0d1b266ac80f0d6aacf548e5e23e2a3ff60ad72ecfa82905b0392413f7ca964228f8b6b3d121cf91c026 WHIRLPOOL 6b41554eb91900952106e64392572de43d119604a0a3dfc1550e31b1b1c7cd0d6f010730813ba05484eb7a83e7d544a7b12bf41f1c79a76890fafac9ab58e305
+MISC ChangeLog 3234 SHA256 bfa81d56502f00edb4b0e1df1cc6b0cc015c9f3ef540c093ba61d4efb9262ed7 SHA512 10797083cc3c268d79c5a13cb2bd6e172600258cec7983022bcd1178ba106228d1e70298502f975a4d0d0597d028db6b995ba152fd5c8e7513d7c3fba7ac4a0c WHIRLPOOL b9f6ec6b3f390dbee93a9756457ff0e6c8f928b59f400b514ba62e39981adbb3bd21ed9ce0666c8092ad0d6a5de3f02df483816730dd031318ad2bca5f61cd6a
+MISC ChangeLog-2015 6202 SHA256 aa24a14a85b1a4f915bae5ebb92d23e0312e535343ce60ca9377bfccde29afe4 SHA512 489a20c6c69711de6c5ec6101ccc4a91d60efaebfe9bb97bb3034a80d9a158b44d047c03e7e2a30219745592c360325967cdb05e5da3b6ef7e4f7e8f0d7806d1 WHIRLPOOL 33752982946cb80fa1c056e68d92fc7e74a5927aba2a9f9cd70f291b7590264c281bbc2f2268215e0b26ec7d88c74aa10627681aef38502742619da4ad55e468
+MISC metadata.xml 746 SHA256 6116fc84a695846b446bff1b87a65ba5fce69063f91cf8055dbb9b6488b1ad07 SHA512 38cecbddb8b0ebb5c206c11e83ab0cafbeb5179a7b86c663c00aaa7cfd83580b8b663e46f87b1977df2233d7dbd4a5020de7e61f197efa2441ea466d6f334d81 WHIRLPOOL bbb156f49e7143fe1dac5f67b4ada4dff92eac7696f04f941716a5816692757aec579fbf2602be767c29c5fddba218a2b5d8b07ca046a7c82cf9292d4c90902d
diff --git a/sys-fs/ncdu/metadata.xml b/sys-fs/ncdu/metadata.xml
new file mode 100644
index 000000000000..cca812bc0ce6
--- /dev/null
+++ b/sys-fs/ncdu/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>wschlich@gentoo.org</email>
+ <name>Wolfram Schlich</name>
+ <description>Primary maintainer</description>
+ </maintainer>
+ <maintainer type="person">
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <longdescription>
+As the name already suggests, ncdu is an NCurses version of the famous old 'du'
+unix command. It provides a fast and easy interface to your harddrive. Where is
+your disk space going? Why is your home directory that large? ncdu can answer
+those questions for you in just a matter of seconds!
+</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/ncdu/ncdu-1.12.ebuild b/sys-fs/ncdu/ncdu-1.12.ebuild
new file mode 100644
index 000000000000..b4022e6a19de
--- /dev/null
+++ b/sys-fs/ncdu/ncdu-1.12.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="NCurses Disk Usage"
+HOMEPAGE="http://dev.yorhel.nl/ncdu/"
+SRC_URI="http://dev.yorhel.nl/download/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 ppc ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+RDEPEND="
+ sys-libs/ncurses:0=[unicode]
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+"
diff --git a/sys-fs/nilfs-utils/Manifest b/sys-fs/nilfs-utils/Manifest
new file mode 100644
index 000000000000..1a3f8620fadc
--- /dev/null
+++ b/sys-fs/nilfs-utils/Manifest
@@ -0,0 +1,9 @@
+DIST nilfs-utils-2.1.5.tar.bz2 389552 SHA256 ba9b2983f160a4af821a9552db8449a169fc6522c993fa895ab949db477d1331 SHA512 a9c0cf6d9df524b9cdb3379bcb8e0c1427aa6e1a792cc649f366a68416374cfc7c9f0db3dd78f3c3165be05a9e8eefb0db30c394ad04c8e3e89ee6ebcbfa42c0 WHIRLPOOL 58c1226bcb2542291fe6fb96fedc644e758d471f5f62c786f99fa5cd7eb113c0e6a6646e70db56efdf765e5acef1f871b9fc14e9662f8a79133cec9845a7cd22
+DIST nilfs-utils-2.1.6.tar.bz2 391303 SHA256 de0631531dfda9c1167c0d07c56c94de9b1f1cade8ecb2ad898cd15cf92dafe9 SHA512 ce0cbaccd6cbf4f7f45cbf0d94cb253c77dafbedac4b71229002ed6c772ad6bb8af598c1e933614f9837901f85b217462ed0dbd5a577b4fbb50528a732a60f83 WHIRLPOOL e7f085d4e72b816fcb78a1dd878792f3b61e0be3ca9a3785405199dec76c4836a88a26dcea6186efd9c277873068bcb1865d863249d50b713efe30214b4ee498
+DIST nilfs-utils-2.2.2.tar.bz2 424097 SHA256 14376ff6ca4e286030aa65cf09e224e02ae8aacd1352711e1cc083243c2f51f0 SHA512 2ac0f1f25472d8900732db9f31e6b824e7e591bf306aa18d8b55c5d93807f4f7ceb65ba7e49540a39c7f285ad63c5f4ab795d34b2a04398d91cd2beb5fc6edce WHIRLPOOL 313b23f2372d7dc95cad3a170bf448a76436a0171337bb9eec551c266c758c2e3f73bb375193dcb8cd7c1ce1578f9811338826c1a1e3462a782f7c92a69adc0c
+EBUILD nilfs-utils-2.1.5-r1.ebuild 781 SHA256 7e4adf20206329dbdeae6521c04c1f5026d3b3216a306a8351f3fd3e32875f44 SHA512 472fccee42db2882aae333b9a38c4c3fe5c1c6ca318f1efce01a2c271b764044ee626301874d606f7602627b737673960be87788fb58445b92cfe25aace9de1d WHIRLPOOL 07738c2890df627165552a7d7836902f102b411609dd863f57de779d853dd7b5de6cce16afeb78879bd6b49473920ca59af28b30be8f1ea9704c0fdd9c965c6a
+EBUILD nilfs-utils-2.1.6.ebuild 787 SHA256 f8533c1a9467a7820169e90ca516cb237ae14b875bccbe6a1a8bf34fa6300e91 SHA512 9c660d462fdb3cb1659ec764182382b57f05627daf59c0bc0693689634effd5431a1a9913252c2e7d7db718829077efda9fda21bc423ff17eb0dc35c196203d3 WHIRLPOOL 2925dc4b4dadd1db510f1af4d345694a6ccaa9f525e906787f641e196db35e19429ebd7aae0e3021252ff3388777d57796feb60cb0ffe76c20e71092df04ef65
+EBUILD nilfs-utils-2.2.2.ebuild 787 SHA256 f8533c1a9467a7820169e90ca516cb237ae14b875bccbe6a1a8bf34fa6300e91 SHA512 9c660d462fdb3cb1659ec764182382b57f05627daf59c0bc0693689634effd5431a1a9913252c2e7d7db718829077efda9fda21bc423ff17eb0dc35c196203d3 WHIRLPOOL 2925dc4b4dadd1db510f1af4d345694a6ccaa9f525e906787f641e196db35e19429ebd7aae0e3021252ff3388777d57796feb60cb0ffe76c20e71092df04ef65
+MISC ChangeLog 2902 SHA256 fe054e0d6e0a8a027ff688b47d59f133c28b094cf014b51874ab55024d9c698b SHA512 1b872f46dbad1c89933b0e372e1682c1345d5a54062d3de9679ba91f2e827fbdfafbf29779fb2ec346477d39a23429403ed4d04461f54d4c47aa32bc06a75c96 WHIRLPOOL 9d6d59ecf88d297828d7059cf8b34b7cebd99d6aad899d6e7987e121389701bcfaee77c38dce202f885db02ce679f1e6625003f8bd1795eb90acad4ba1ff59c7
+MISC ChangeLog-2015 4891 SHA256 819783e20b1fe12469815bc143eddf180c223bdc59ae1a7d728d31044fca772b SHA512 ea490855e341d3493e78d86cab2b6d10b424494b6a58a97c2b5490d89bf44e90e038202fd52f6975fdfdd1a49ba51d5abef88975a81b68d8eb05683fa414dee0 WHIRLPOOL 19d3c576e46cd2435daa805a603384489ad10ff535ed18b23a88abe6f7795daf1327563054801f8ab3c544f5982f878861bb17537ef19ab2b73b5b3c8e2d66bd
+MISC metadata.xml 1179 SHA256 bd15f5bc4335e573599e668b78e7a05480e3399e7f3555582189d7d47bbfa750 SHA512 7999a459170e86c6ff83043686d80127223175ed43bef2dca57fc296673cf8f1d4644ad47f44dfe0f5bc5d3f7c959c0e801e98b46319cd9c79269a2ac158b475 WHIRLPOOL 1e80ece5c97c6c4eb282a6508af33d7f6d728ddfaba97a2eae0f5ed7d0b24048deb88575cbee9ab45c30af2cb71307e06fc0f45d2d303d0bfd0409913a96fc91
diff --git a/sys-fs/nilfs-utils/metadata.xml b/sys-fs/nilfs-utils/metadata.xml
new file mode 100644
index 000000000000..d4bf2596a29c
--- /dev/null
+++ b/sys-fs/nilfs-utils/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>naota@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+NILFS is a new implementation of a log-structured file system for the
+Linux 2.6 operating system. Conventional features of a log-structured
+file systems (LFS) are high write performance and fast recovery time.
+In addition, LFS prevents data write operations from overwriting the
+disk blocks, thereby minimizing the damage to file data and system
+consistency on hardware failure. Furthermore, LFS writes data and
+meta-data in the correct order which helps ensuring consistency in the
+entire file system. LFS can instantaneously create file system
+snapshots and check the file system speedy. We implemented ``NILFS''
+using modern technology: For example, the file and inode blocks are
+managed by a B-tree structure, internal data are processed in 64 bit
+wide word size. The B-tree structure enables ``NILFS'' to create and
+store huge files.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">nilfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/nilfs-utils/nilfs-utils-2.1.5-r1.ebuild b/sys-fs/nilfs-utils/nilfs-utils-2.1.5-r1.ebuild
new file mode 100644
index 000000000000..6e75be1a0fbf
--- /dev/null
+++ b/sys-fs/nilfs-utils/nilfs-utils-2.1.5-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit multilib linux-info
+
+DESCRIPTION="A New Implementation of a Log-structured File System for Linux"
+HOMEPAGE="http://nilfs.sourceforge.net/"
+SRC_URI="http://nilfs.sourceforge.net/download/${P}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm hppa ppc ppc64 x86"
+IUSE="static-libs"
+
+RDEPEND="sys-libs/e2fsprogs-libs
+ sys-apps/util-linux"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+CONFIG_CHECK="~POSIX_MQUEUE"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static) \
+ --libdir=/$(get_libdir) \
+ --enable-libmount
+}
+
+src_install() {
+ default
+ rm -f "${ED}"/$(get_libdir)/*.la || die
+}
diff --git a/sys-fs/nilfs-utils/nilfs-utils-2.1.6.ebuild b/sys-fs/nilfs-utils/nilfs-utils-2.1.6.ebuild
new file mode 100644
index 000000000000..67c33efec1d8
--- /dev/null
+++ b/sys-fs/nilfs-utils/nilfs-utils-2.1.6.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit multilib linux-info
+
+DESCRIPTION="A New Implementation of a Log-structured File System for Linux"
+HOMEPAGE="http://nilfs.sourceforge.net/"
+SRC_URI="http://nilfs.sourceforge.net/download/${P}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="static-libs"
+
+RDEPEND="sys-libs/e2fsprogs-libs
+ sys-apps/util-linux"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+CONFIG_CHECK="~POSIX_MQUEUE"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static) \
+ --libdir=/$(get_libdir) \
+ --enable-libmount
+}
+
+src_install() {
+ default
+ rm -f "${ED}"/$(get_libdir)/*.la || die
+}
diff --git a/sys-fs/nilfs-utils/nilfs-utils-2.2.2.ebuild b/sys-fs/nilfs-utils/nilfs-utils-2.2.2.ebuild
new file mode 100644
index 000000000000..67c33efec1d8
--- /dev/null
+++ b/sys-fs/nilfs-utils/nilfs-utils-2.2.2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit multilib linux-info
+
+DESCRIPTION="A New Implementation of a Log-structured File System for Linux"
+HOMEPAGE="http://nilfs.sourceforge.net/"
+SRC_URI="http://nilfs.sourceforge.net/download/${P}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
+IUSE="static-libs"
+
+RDEPEND="sys-libs/e2fsprogs-libs
+ sys-apps/util-linux"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+CONFIG_CHECK="~POSIX_MQUEUE"
+
+DOCS=( AUTHORS ChangeLog NEWS README )
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static) \
+ --libdir=/$(get_libdir) \
+ --enable-libmount
+}
+
+src_install() {
+ default
+ rm -f "${ED}"/$(get_libdir)/*.la || die
+}
diff --git a/sys-fs/ntfs3g/Manifest b/sys-fs/ntfs3g/Manifest
new file mode 100644
index 000000000000..9462c18db204
--- /dev/null
+++ b/sys-fs/ntfs3g/Manifest
@@ -0,0 +1,11 @@
+AUX 99-ntfs3g.rules 51 SHA256 912165f71bbcae4753cd10a74c78bfd98e49bd9adbf80b96c39fc6738b12d463 SHA512 9310dd1dceec9a6252d3e8b95a9a1002c84a6f077457892eefe1255c85557041defbd8dcf6acef86285b45abd8bbe85822dd59a9e4c307bba80dd2c17f971851 WHIRLPOOL 9a0439ceb3bb1f142ee1929c03dab22066fdb3dba85c216265f6f10f3e9e2416beb4f3a73c8965b621b8d7b34c467a81628b6656f59e4c51e9fd529007f7ca27
+AUX ntfs3g-2014.2.15-no-split-usr.patch 1322 SHA256 3fdd9b2947e1ded82258a86d55d481d641613d8ff916f6eeacc6c0e68042beb8 SHA512 232a1a7b84339c86758365564fce2058c3e652f833c6908245aa5f6f0e91d5c09cedcb978a1ebe62897c7288df4fe8671ba7085af403056742d897181e479e05 WHIRLPOOL 733bcf75833bcd57f90fc69e55e6b4698470d92c4494cc4a567ba8b4ea562437587d13a1278b766f77ff16097057e3a9a0abfbb131466957a5d14bac0f3f37c9
+AUX ntfs3g-2016.2.22-CVE-2017-0358.patch 1169 SHA256 8772d827d9551cb3e9b5c6b22b54e6992ad8084327bbce452c1a48a8b3199e44 SHA512 223f7b4fcd962d3c2499787f9a32c09f35705de98d3d1c96677cea18c67f77f5a086b7839892cb25b62c9145b2543c02d5abca89a82cda2345d5f993d6a60131 WHIRLPOOL 42c337534e8f83c32a78afabec807ab097f90d9cb58ce3520509298912153513763fb55e5f6e77c1fbafb21c1534b9bc9c58a2084f3157e00d8394df5b751d9f
+AUX ntfs3g-2016.2.22-sysmacros.patch 911 SHA256 9d9ed593acd23f01b2a862a86691d953253976c962e8b8cd52884bef86a2d342 SHA512 34768ef1ebf42b125cdc4d86937042f21b7146c4c76c1ed37e66e59a4bfaa863b54f7dbcca14a9d842782113e6ac70b2a96e62022dc2c8f717ec43c9985bf79f WHIRLPOOL 3cd24fbf9a307901b131bb56556aefdd04e0324e0bd268ecafa8b60612079d5a2a63edfbb3b0cedaee7f7a43580c5b07a665465f701d7280bbcd579e94d538cb
+DIST ntfs-3g_ntfsprogs-2016.2.22.tgz 1264364 SHA256 d7b72c05e4b3493e6095be789a760c9f5f2b141812d5b885f3190c98802f1ea0 SHA512 dbd36fadd2881db1d17fdbf5d2b4e50bbe11dc9dd0ad4917e7f8bc4032c2287346143756ce8754df0d46ce9209f2c0c41b626cad929d76a9bc881712c7101c15 WHIRLPOOL 64630580b70e85f67b31ea7380ff3b6862be0c8cdf6c6af17e9a5eb2fe3f0d5efa7404ad726638ed958fb218631f7006eb492e713c7957d3ce60c6fbb1dd2bb9
+DIST ntfs-3g_ntfsprogs-2017.3.23.tgz 1259054 SHA256 3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5 SHA512 3a607f0d7be35204c992d8931de0404fbc52032c13b4240d2c5e6f285c318a28eb2a385d7cf5ac4cd445876aee5baa5753bb636ada0d870d84a9d3fdbce794ef WHIRLPOOL b1bf327c993aff08b1761a36cff680bccab51d7fb46fc7bb57b0e03a848345307a6d73c3c48118363dbb8eca26abbafded42cb87f853a1ab9b3b38b7af0da715
+EBUILD ntfs3g-2016.2.22-r2.ebuild 2461 SHA256 0006f8a362f7a863b558fcf06c6bedc9ebed00311bb92b4f97a3bf0c76e9d884 SHA512 0e97a1235323d44ed6bb994e6160377f16641b15772a3ee84de12d671661a795db09b99d2c3f8dd82545d406a83b2f3465c898b4e7a84c7c5dadfbf56977ecb5 WHIRLPOOL 137fe641b9bbe7e3188bc8cefe30f56c1291d5cd59cc9a1541e4a09dbb5e72653ab02d6db6eb7f503583a2b26c4e3927efc8e9ae6ae85f64eaadbc57b631150c
+EBUILD ntfs3g-2017.3.23.ebuild 2394 SHA256 84c40ffc9e353511d4f8fc216d342da9c745b8fd9a2f75dc640e5955e86402fb SHA512 2c7596436ec75b7e31d5fa20e17fc9725a2706040483f522d902fc324f92157a0ee91394cda8cda9200f64b8f611b30d0fcc6d3c6a91ff093ac1b786c21e3e9d WHIRLPOOL 8beabd8aacac2854c1f0dff442fd55f591f9f7992075de8c62b58e9fea7d7dac4e08e648457d085bf4062015525abf91ff920e2ff1fe61b17aea6bc0012e0b2e
+MISC ChangeLog 6990 SHA256 73a76f52d064e7d57c6a983fea11b9bd376faeebfc27b331b5fde0e0e81d0cff SHA512 a409c45c209637d74e761b3661143dcdfebdb2584f417c84c64318e2290764e30082aecdbe65825f994ed8d6e8f84eef3ab43e401f995b87eae924e22a6e34fd WHIRLPOOL 31c5a6d88c89320f2ac827c994424ee6702e7e78404cf2c816cb9a97bb54f56c5e76e751a3d66e384fb4458ecfd083db020a588918b6abb8ae4dd2ce3f604280
+MISC ChangeLog-2015 27701 SHA256 a481cc5e084b27ab69d246441444c1042e51d50632d1dd0b879d25c0030fa794 SHA512 ab13797c750cfc453bda34f3173f2c759e89372ded9e6a5a7ee50b2afe6bd8fc73e8f05a251360eecddbb9678bf568d66da72553dda7a8b831e88c98333be329 WHIRLPOOL 9291a2ed0207cebc9420096d893135d3eec062b186c89912c2e2bd465e1bf64ca60a4f241ebf0cbdc923a73190db3d39e180b6b49a355b6a7225eba65beec4e3
+MISC metadata.xml 1188 SHA256 137f9b625baf6c162d272e71546dab97404dc6806486d386f464b57a6409ee27 SHA512 6d9aa23202090132c37fe6915aa300597f2c88474065749de36143b8a47090c5bdb2e6449dffbb3843c9b7d30254fdde849b1aa230641910189d00134bd88c85 WHIRLPOOL fcaba5a19b69912ead9212550b8979f7d9490383b1bc124b9c5cb15dae0bae5a2035c8e0e1973c2d69df033998b2be672cb29779e09e48c4787d059697221278
diff --git a/sys-fs/ntfs3g/files/99-ntfs3g.rules b/sys-fs/ntfs3g/files/99-ntfs3g.rules
new file mode 100644
index 000000000000..52dca4064766
--- /dev/null
+++ b/sys-fs/ntfs3g/files/99-ntfs3g.rules
@@ -0,0 +1 @@
+ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g"
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch b/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch
new file mode 100644
index 000000000000..0228bfec330b
--- /dev/null
+++ b/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch
@@ -0,0 +1,25 @@
+we handle split /usr logic ourselves. this ends up breaking when building
+for an abi that doesn't exist in / (like cross-compiling) as the tests fail.
+
+--- a/libntfs-3g/Makefile.in
++++ b/libntfs-3g/Makefile.in
+@@ -912,19 +912,6 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local \
+ uninstall-rootlibLTLIBRARIES
+
+
+-# We may need to move .so files to root
+-# And create ldscript or symbolic link from /usr
+-install-exec-hook: install-rootlibLTLIBRARIES
+-@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
+-@INSTALL_LIBRARY_TRUE@ $(MV) -f "$(DESTDIR)/$(libdir)"/libntfs-3g.so* "$(DESTDIR)/$(rootlibdir)"; \
+-@INSTALL_LIBRARY_TRUE@ fi
+-@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
+-@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ $(install_sh_PROGRAM) "libntfs-3g.script.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
+-@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ fi
+-@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
+-@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ $(LN_S) "$(rootlibdir)/libntfs-3g.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
+-@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ fi
+-
+ uninstall-local:
+ @INSTALL_LIBRARY_TRUE@ $(RM) -f "$(DESTDIR)/$(rootlibdir)"/libntfs-3g.so*
+
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch
new file mode 100644
index 000000000000..1ce7e9cdae32
--- /dev/null
+++ b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch
@@ -0,0 +1,40 @@
+diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c
+index 0bb38f97..c6d1dad3 100644
+--- a/src/lowntfs-3g.c
++++ b/src/lowntfs-3g.c
+@@ -3827,13 +3827,14 @@ static fuse_fstype load_fuse_module(void)
+ struct stat st;
+ pid_t pid;
+ const char *cmd = "/sbin/modprobe";
++ char *env = (char*)NULL;
+ struct timespec req = { 0, 100000000 }; /* 100 msec */
+ fuse_fstype fstype;
+
+ if (!stat(cmd, &st) && !geteuid()) {
+ pid = fork();
+ if (!pid) {
+- execl(cmd, cmd, "fuse", NULL);
++ execle(cmd, cmd, "fuse", NULL, &env);
+ _exit(1);
+ } else if (pid != -1)
+ waitpid(pid, NULL, 0);
+diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c
+index 268b0569..945fc0be 100644
+--- a/src/ntfs-3g.c
++++ b/src/ntfs-3g.c
+@@ -3612,13 +3612,14 @@ static fuse_fstype load_fuse_module(void)
+ struct stat st;
+ pid_t pid;
+ const char *cmd = "/sbin/modprobe";
++ char *env = (char*)NULL;
+ struct timespec req = { 0, 100000000 }; /* 100 msec */
+ fuse_fstype fstype;
+
+ if (!stat(cmd, &st) && !geteuid()) {
+ pid = fork();
+ if (!pid) {
+- execl(cmd, cmd, "fuse", NULL);
++ execle(cmd, cmd, "fuse", NULL, &env);
+ _exit(1);
+ } else if (pid != -1)
+ waitpid(pid, NULL, 0);
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch
new file mode 100644
index 000000000000..2fa1f2b34c88
--- /dev/null
+++ b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch
@@ -0,0 +1,43 @@
+include the headers that define major/minor/makedev in more places
+
+https://bugs.gentoo.org/580136
+
+--- a/libntfs-3g/ioctl.c
++++ b/libntfs-3g/ioctl.c
+@@ -57,6 +57,12 @@
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
++#ifdef HAVE_SYS_MKDEV_H
++#include <sys/mkdev.h>
++#endif
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+
+ #ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+--- a/src/lowntfs-3g.c
++++ b/src/lowntfs-3g.c
+@@ -76,6 +76,9 @@
+ #ifdef HAVE_SYS_MKDEV_H
+ #include <sys/mkdev.h>
+ #endif
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+
+ #if defined(__APPLE__) || defined(__DARWIN__)
+ #include <sys/dirent.h>
+--- a/src/ntfs-3g.c
++++ b/src/ntfs-3g.c
+@@ -75,6 +75,9 @@
+ #ifdef HAVE_SYS_MKDEV_H
+ #include <sys/mkdev.h>
+ #endif
++#ifdef HAVE_SYS_SYSMACROS_H
++#include <sys/sysmacros.h>
++#endif
+
+ #if defined(__APPLE__) || defined(__DARWIN__)
+ #include <sys/dirent.h>
diff --git a/sys-fs/ntfs3g/metadata.xml b/sys-fs/ntfs3g/metadata.xml
new file mode 100644
index 000000000000..20cef377f9b7
--- /dev/null
+++ b/sys-fs/ntfs3g/metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+</maintainer>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<longdescription lang="en">
+The ntfs-3g driver is an open source, GPL licensed, third generation Linux
+NTFS driver for 32-bit, little-endian architectures which was implemented
+by the Linux-NTFS project. It provides full read-write access to NTFS,
+excluding access to encrypted files, writing compressed files, changing
+file ownership, access right.
+</longdescription>
+<use>
+ <flag name="external-fuse">
+ Use external FUSE library instead of internal one. Must be disabled
+ for unprivileged mounting to work.
+ </flag>
+ <flag name="ntfsdecrypt">Build and install the ntfsdecrypt application.</flag>
+ <flag name="ntfsprogs">Include internal version of ntfsprogs.</flag>
+</use>
+<upstream>
+ <bugs-to>http://tuxera.com/forum/</bugs-to>
+ <remote-id type="cpe">cpe:/a:ntfs-3g:ntfs-3g</remote-id>
+ <remote-id type="sourceforge">ntfs-3g</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild b/sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild
new file mode 100644
index 000000000000..09ebc7f920b6
--- /dev/null
+++ b/sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils linux-info udev toolchain-funcs libtool
+
+MY_PN=${PN/3g/-3g}
+MY_P=${MY_PN}_ntfsprogs-${PV}
+
+DESCRIPTION="Open source read-write NTFS driver that runs under FUSE"
+HOMEPAGE="http://www.tuxera.com/community/ntfs-3g-download/"
+SRC_URI="http://tuxera.com/opensource/${MY_P}.tgz"
+
+LICENSE="GPL-2"
+# The subslot matches the SONAME major #.
+SLOT="0/87"
+KEYWORDS="alpha amd64 arm ~hppa ppc ppc64 sparc x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="acl debug +external-fuse ntfsdecrypt +ntfsprogs static-libs suid xattr"
+
+RDEPEND="!<sys-apps/util-linux-2.20.1-r2
+ !sys-fs/ntfsprogs
+ ntfsdecrypt? (
+ >=dev-libs/libgcrypt-1.2.2:0
+ >=net-libs/gnutls-1.4.4
+ )
+ external-fuse? (
+ >=sys-fs/fuse-2.8.0
+ <sys-fs/fuse-3.0.0_pre
+ )"
+DEPEND="${RDEPEND}
+ sys-apps/attr
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="AUTHORS ChangeLog CREDITS README"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2014.2.15-no-split-usr.patch
+ "${FILESDIR}"/${PN}-2016.2.22-sysmacros.patch #580136
+ "${FILESDIR}"/${PN}-2016.2.22-CVE-2017-0358.patch #607912
+)
+
+pkg_setup() {
+ if use external-fuse && use kernel_linux; then
+ if kernel_is lt 2 6 9; then
+ die "Your kernel is too old."
+ fi
+ CONFIG_CHECK="~FUSE_FS"
+ FUSE_FS_WARNING="You need to have FUSE module built to use ntfs-3g"
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ # Keep the symlinks in the same place we put the main binaries.
+ # Having them in / when all the progs are in /usr is pointless.
+ sed -i \
+ -e 's:/sbin:$(sbindir):g' \
+ {ntfsprogs,src}/Makefile.in || die #578336
+ # Note: patches apply to Makefile.in, so don't run autotools here.
+ elibtoolize
+}
+
+src_configure() {
+ tc-ld-disable-gold
+ econf \
+ --prefix="${EPREFIX}"/usr \
+ --exec-prefix="${EPREFIX}"/usr \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ $(use_enable debug) \
+ --enable-ldscript \
+ --disable-ldconfig \
+ $(use_enable acl posix-acls) \
+ $(use_enable xattr xattr-mappings) \
+ $(use_enable ntfsdecrypt crypto) \
+ $(use_enable ntfsprogs) \
+ $(use_enable ntfsprogs quarantined) \
+ --without-uuid \
+ --enable-extras \
+ $(use_enable static-libs static) \
+ --with-fuse=$(usex external-fuse external internal)
+}
+
+src_install() {
+ default
+
+ use suid && fperms u+s /usr/bin/${MY_PN}
+ udev_dorules "${FILESDIR}"/99-ntfs3g.rules
+ prune_libtool_files
+
+ dosym mount.ntfs-3g /usr/sbin/mount.ntfs #374197
+}
diff --git a/sys-fs/ntfs3g/ntfs3g-2017.3.23.ebuild b/sys-fs/ntfs3g/ntfs3g-2017.3.23.ebuild
new file mode 100644
index 000000000000..4a9b17c025c2
--- /dev/null
+++ b/sys-fs/ntfs3g/ntfs3g-2017.3.23.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils linux-info udev toolchain-funcs libtool
+
+MY_PN=${PN/3g/-3g}
+MY_P=${MY_PN}_ntfsprogs-${PV}
+
+DESCRIPTION="Open source read-write NTFS driver that runs under FUSE"
+HOMEPAGE="http://www.tuxera.com/community/ntfs-3g-download/"
+SRC_URI="http://tuxera.com/opensource/${MY_P}.tgz"
+
+LICENSE="GPL-2"
+# The subslot matches the SONAME major #.
+SLOT="0/87"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="acl debug +external-fuse ntfsdecrypt +ntfsprogs static-libs suid xattr"
+
+RDEPEND="!<sys-apps/util-linux-2.20.1-r2
+ !sys-fs/ntfsprogs
+ ntfsdecrypt? (
+ >=dev-libs/libgcrypt-1.2.2:0
+ >=net-libs/gnutls-1.4.4
+ )
+ external-fuse? (
+ >=sys-fs/fuse-2.8.0
+ <sys-fs/fuse-3.0.0_pre
+ )"
+DEPEND="${RDEPEND}
+ sys-apps/attr
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="AUTHORS ChangeLog CREDITS README"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2014.2.15-no-split-usr.patch
+ "${FILESDIR}"/${PN}-2016.2.22-sysmacros.patch #580136
+)
+
+pkg_setup() {
+ if use external-fuse && use kernel_linux; then
+ if kernel_is lt 2 6 9; then
+ die "Your kernel is too old."
+ fi
+ CONFIG_CHECK="~FUSE_FS"
+ FUSE_FS_WARNING="You need to have FUSE module built to use ntfs-3g"
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ default
+ # Keep the symlinks in the same place we put the main binaries.
+ # Having them in / when all the progs are in /usr is pointless.
+ sed -i \
+ -e 's:/sbin:$(sbindir):g' \
+ {ntfsprogs,src}/Makefile.in || die #578336
+ # Note: patches apply to Makefile.in, so don't run autotools here.
+ elibtoolize
+}
+
+src_configure() {
+ tc-ld-disable-gold
+ econf \
+ --prefix="${EPREFIX}"/usr \
+ --exec-prefix="${EPREFIX}"/usr \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ $(use_enable debug) \
+ --enable-ldscript \
+ --disable-ldconfig \
+ $(use_enable acl posix-acls) \
+ $(use_enable xattr xattr-mappings) \
+ $(use_enable ntfsdecrypt crypto) \
+ $(use_enable ntfsprogs) \
+ $(use_enable ntfsprogs quarantined) \
+ --without-uuid \
+ --enable-extras \
+ $(use_enable static-libs static) \
+ --with-fuse=$(usex external-fuse external internal)
+}
+
+src_install() {
+ default
+
+ use suid && fperms u+s /usr/bin/${MY_PN}
+ udev_dorules "${FILESDIR}"/99-ntfs3g.rules
+ prune_libtool_files
+
+ dosym mount.ntfs-3g /usr/sbin/mount.ntfs #374197
+}
diff --git a/sys-fs/ocfs2-tools/Manifest b/sys-fs/ocfs2-tools/Manifest
new file mode 100644
index 000000000000..ef7ff15baa9e
--- /dev/null
+++ b/sys-fs/ocfs2-tools/Manifest
@@ -0,0 +1,9 @@
+AUX ocfs2-tools-1.6.4-asneeded.patch 2606 SHA256 c5b46b7ab225181aa0cd1e4b04450811bc7c3dede5cb7d9afc610ee128dbca37 SHA512 d39c0e73672cd2e7810155690c89da6fae55aa4798dd6e02d3aa0bdb7642bc88d43733ea992262c9fd5c10d40d5ffed7ca7abae6d3114ebdc6915251d43a9a7d WHIRLPOOL 93ea8b89929053e41b63ea2c74347f47c70a8faaf8c3567e1c923223c271503291978782b586b331e8ecade5f0424b9b2b63c9db5f52db5d14bc388c22c6c448
+AUX ocfs2-tools-recent-kernels.patch 650 SHA256 23da66f6f13392b552ff345daa1748e9b1385cd0a2052250d952dee104c550ef SHA512 4e5f5f5fa3a8cbde6f937e574b97c1d6a76d4cec5b9df16a094527c5ca59ed37857f54c4687dfd4557ef4c0fd701825d5ee2091d76eabbecd2b029b5fdf27b1e WHIRLPOOL 086d4387be582f1b496bc4ee25698c363af7926077454f84bf998e57942b13a81fd169814d713b49942906de2745e3f10d6622c47f65b020df0902ed832656eb
+AUX ocfs2.confd 1494 SHA256 5210d1652ab09feac81bedccdedd0d729d209eafd02219c15894d55895132d12 SHA512 7cb63e889fad081d41283534032f41413bbb37202391d7a0f08f590170dc7a11c45bd90946910ba7680e401e4cb80eeb70fe85eb55ecbe9c16507e4d3d0b08c9 WHIRLPOOL eb128d4ba720d56f65ae723b309dc75e0763d5055368431e6b074b019b783cec1dc381a78496ea1be9c09cbf054991163aae1d3afb770904a17f461d00c249dc
+AUX ocfs2.initd 4004 SHA256 d9b52e1aa6c5a545221f395a32e402c2bb6edcbce38a02c5d4a65a0458260e1b SHA512 ab35d6916871eed469c3e05470dec6913b96bf806fd67d090f5a6af9eb28e4cd648707d768c0a47f6d2926f969421837adf9ef714b336c929b73df785dbfae1b WHIRLPOOL b5e9e760ccb0f4efc461a9826b83c35552709d8bca787ad876a16ee23e78396c0f68962da72fe6aadf903fb6f9d9b824d14fb3cefe7c7d00b4a48f183eae88e3
+DIST ocfs2-tools-1.8.2.tar.xz 963132 SHA256 3af5e43695bf780531208b5b058741320c1f03fe54568390bf74cba5066f315b SHA512 b1354730a1e51117497b56e0a1fd79667d608cdf2ccdfa9eb7355f9f40684e64c0787722fa8e6046b35dd00c2ff7a822719b47d059f23253f0bab64e181875ee WHIRLPOOL 88621b43622635dbc4e02b3f5a0c9ff2a411e0481459abc13850f33456fad5ebdc23d5bd3f3fe541ab83cb404fe49bd7814f9f6199dc7f258a8432a12302174a
+EBUILD ocfs2-tools-1.8.2-r2.ebuild 1838 SHA256 6fbe971e3163ceef84854a01f3d71247e62d4c84c4b956acbed1ff26cbfb7491 SHA512 091df2c69adff025e1399f19ef601649f0279efa4a5e4311e5a2e7cb1e4b49ae5c49d34464cc20c325c5f615f243c9f56d2880524235e106e36c3d642a953b05 WHIRLPOOL bfd9280a9788a63d81d1be72ea9297207153335f54e37d1495a4159ef34bef8415f590d9a1327e0525bada0ab0f35b83db5a1e264fcc9fe036acc1ca1507b7c6
+MISC ChangeLog 3121 SHA256 627cd020be16c9420c61c7fd14e44ef108a7b399bcf65f10c5fa52d4a0dbe93d SHA512 03deb7ed27aca4a6e1215142c2800fa0559e4f222328d7846a1dc4f6e0ddfe41eb7d4cbdc2fe39001e782a1eaadceed5be654c546c20be3826888e21ee4ed6c7 WHIRLPOOL 8eee9822f17707b0c2f2dcb9503c58516e8d0fca8842ddb11042cee49b476d51037f782667b11a285ecf63a78b36e07ca2c4cf4c5d218694a3cca7ebe77c4e9c
+MISC ChangeLog-2015 2221 SHA256 012e27d3fcecf2a058a94f8bd3758649a458c8e3972d57f7f26e529bd3893908 SHA512 824f0c496c87a68f0eaaf2a15c0aac61431ec7cc69e1636bf2830158fc94814993ab2b3774df21ea3918e4ff2911d5e74b2bd4a819be9ab2e22c427fb8c829fc WHIRLPOOL d482bd1bec42f2e46cc9b86886499c8081c58d78fb8c91d6cefbd692846568c78c8c1abae11becbe6c40f8cb1a5f57531a22a1757bb00db0ace93532e599c65f
+MISC metadata.xml 320 SHA256 b2fc85066d63ee32fdb4ea3f8310bbb9cb6efeb5e5d8fb77f270e531b2015788 SHA512 281f53acb3439cc8881e8fa0d8b314107fc17bb56e63f8fd51548fccc3e9cd95098cf0199decaa8813a55ab234cf8a1147f94689cb993d3c7ea79df9e3372a1f WHIRLPOOL 0075f0a5c330992944176dd6e6a44a03f61346ef79348130ae42629cddccd76a691d7275c54344f55bb8ff4d95229684a4641854577b2cf657a3af6ea4081be0
diff --git a/sys-fs/ocfs2-tools/files/ocfs2-tools-1.6.4-asneeded.patch b/sys-fs/ocfs2-tools/files/ocfs2-tools-1.6.4-asneeded.patch
new file mode 100644
index 000000000000..8920e773004b
--- /dev/null
+++ b/sys-fs/ocfs2-tools/files/ocfs2-tools-1.6.4-asneeded.patch
@@ -0,0 +1,78 @@
+--- a/configure.in 2011-01-19 20:43:35.000000000 +0100
++++ b/configure.in 2012-02-21 11:14:51.047974999 +0100
+@@ -265,7 +265,6 @@
+ cpg_package=openais
+ fi
+ TRY_PATH="$AIS_TRY_PATH"
+- AC_MSG_CHECKING([for cpg_initialize in -lcpg])
+ while test "x$TRY_PATH" != "x"; do
+ TRY="`echo $TRY_PATH | cut -f1 -d:`"
+ NEW_TRY_PATH="`echo $TRY_PATH | cut -f2- -d:`"
+@@ -281,9 +280,8 @@
+ # TRY="$TRY"
+
+ saved_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS $TRY -lcpg"
+- AC_LINK_IFELSE([AC_LANG_CALL([], [cpg_initialize])],
+- cpg_found=yes)
++ LDFLAGS="$LDFLAGS $TRY"
++ AC_SEARCH_LIBS([cpg_initialize], [cpg], [cpg_found=yes], [], [])
+ LDFLAGS="$saved_LDFLAGS"
+
+ if test "x$cpg_found" = "xyes"; then
+@@ -292,10 +290,7 @@
+ fi
+ done
+ fi
+-if test "x$cpg_found" = "xyes"; then
+- AC_MSG_RESULT(yes)
+-else
+- AC_MSG_RESULT(no)
++if test "x$cpg_found" = "xno"; then
+ AC_MSG_WARN([libcpg not found, ocfs2_controld will not be built])
+ fi
+ AC_SUBST(CPG_LDFLAGS)
+@@ -309,7 +304,6 @@
+ if test "x$ckpt_found" = "xyes"; then
+ ckpt_found=
+ TRY_PATH="$AIS_TRY_PATH"
+- AC_MSG_CHECKING([for saCkptInitialize in -lSaCkpt])
+ while test "x$TRY_PATH" != "x"; do
+ TRY="`echo $TRY_PATH | cut -f1 -d:`"
+ NEW_TRY_PATH="`echo $TRY_PATH | cut -f2- -d:`"
+@@ -325,9 +319,8 @@
+ # TRY="$TRY"
+
+ saved_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS $TRY -lSaCkpt"
+- AC_LINK_IFELSE([AC_LANG_CALL([], [saCkptInitialize])],
+- ckpt_found=yes)
++ LDFLAGS="$LDFLAGS $TRY"
++ AC_SEARCH_LIBS([saCkptInitialize], [SaCkpt], [ckpt_found=yes], [], [])
+ LDFLAGS="$saved_LDFLAGS"
+
+ if test "x$ckpt_found" = "xyes"; then
+@@ -336,10 +329,7 @@
+ fi
+ done
+ fi
+-if test "x$ckpt_found" = "xyes"; then
+- AC_MSG_RESULT(yes)
+-else
+- AC_MSG_RESULT(no)
++if test "x$ckpt_found" = "xno"; then
+ AC_MSG_WARN([libSaCkpt not found, ocfs2_controld will not be built])
+ fi
+ AC_SUBST(AIS_LDFLAGS)
+
+--- a/ocfs2_controld/Makefile 2012-02-21 11:49:36.248974932 +0100
++++ b/ocfs2_controld/Makefile 2012-02-21 11:49:47.943974980 +0100
+@@ -14,7 +14,7 @@
+ ifneq ($(BUILD_PCMK_SUPPORT),)
+ SBIN_PROGRAMS += ocfs2_controld.pcmk
+ # Some pacemaker headers which pacemaker.c includes want this.
+-PCMK_INCLUDES = -I/usr/include/pacemaker -I/usr/include/heartbeat/ $(GLIB_CFLAGS)
++PCMK_INCLUDES = -I/usr/include/pacemaker -I/usr/include/heartbeat/ `pkg-config --cflags libxml-2.0` $(GLIB_CFLAGS)
+ endif
+
+ INCLUDES = -I$(TOPDIR)/include -I. $(PCMK_INCLUDES)
diff --git a/sys-fs/ocfs2-tools/files/ocfs2-tools-recent-kernels.patch b/sys-fs/ocfs2-tools/files/ocfs2-tools-recent-kernels.patch
new file mode 100644
index 000000000000..24bc40dcd09f
--- /dev/null
+++ b/sys-fs/ocfs2-tools/files/ocfs2-tools-recent-kernels.patch
@@ -0,0 +1,19 @@
+# git diff include/ocfs2-kernel/ocfs2_fs.h
+diff --git a/include/ocfs2-kernel/ocfs2_fs.h b/include/ocfs2-kernel/ocfs2_fs.h
+index 3eafb07..7bb954a 100644
+--- a/include/ocfs2-kernel/ocfs2_fs.h
++++ b/include/ocfs2-kernel/ocfs2_fs.h
+@@ -1681,11 +1681,11 @@ static inline int ocfs2_sprintf_system_inode_name(char *buf, int len,
+ return chars;
+ }
+
+-static inline void ocfs2_set_de_type(struct ocfs2_dir_entry *de,
++/*static inline void ocfs2_set_de_type(struct ocfs2_dir_entry *de,
+ umode_t mode)
+ {
+ de->file_type = ocfs2_type_by_mode[(mode & S_IFMT)>>S_SHIFT];
+-}
++}*/
+
+ static inline int ocfs2_gd_is_discontig(struct ocfs2_group_desc *gd)
+ { \ No newline at end of file
diff --git a/sys-fs/ocfs2-tools/files/ocfs2.confd b/sys-fs/ocfs2-tools/files/ocfs2.confd
new file mode 100644
index 000000000000..89f7a983ea38
--- /dev/null
+++ b/sys-fs/ocfs2-tools/files/ocfs2.confd
@@ -0,0 +1,37 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Put your cluster names here, separated by space, ie.
+# OCFS2_CLUSTER="cluster1 admincluster cluster2"
+OCFS2_CLUSTER="home"
+
+# Some heartbeat tweaks to prevent self-fencing quite so much during heavy load.
+# http://oss.oracle.com/projects/ocfs2/dist/documentation/ocfs2_faq.html
+
+# How long to wait before a node is considered dead from lack of network activity.
+OCFS2_IDLE_TIMEOUT_MS="30000"
+# How often we should attempt to send heartbeats.
+OCFS2_KEEPALIVE_DELAY_MS="2000"
+OCFS2_RECONNECT_DELAY_MS="2000"
+# How often we should attempt to send heartbeats.
+# How many interations before a node is considered dead from lack of IO activity.
+# (dead_threshold - 1) * 2s
+OCFS2_DEAD_THRESHOLD="61"
+
+# Default: "-fy" (force check on double-unmounted boot). I beleave this is best.
+# Native way is "-y", but once I have twice reboot/powerOFF with bad result...
+# Affected only fstab.
+OCFS2_FSCK="-fy"
+
+# http://oss.oracle.com/projects/ocfs2-tools/news/article_8.html
+# starting from 1.4.3, fsck.ocfs2 "aggressively cache the metadata blocks"
+# this is useful on lots of free memory, but I have heavy slowdown on x86_64
+# with 1G of RAM.
+# "yes" will "swapoff -a" & "swapon -a" around fsck to avoid caching over swap
+OCFS2_FSCK_SWAPOFF="yes"
+
+# Signal to kill processes on stop/umount on busy device (empty to not kill)
+#OCFS2_UMOUNT_KILL="KILL"
+
+# "yes" to force stop
+#OCFS2_FORCE_STOP="no"
diff --git a/sys-fs/ocfs2-tools/files/ocfs2.initd b/sys-fs/ocfs2-tools/files/ocfs2.initd
new file mode 100644
index 000000000000..32ff2e0bd67f
--- /dev/null
+++ b/sys-fs/ocfs2-tools/files/ocfs2.initd
@@ -0,0 +1,124 @@
+#!/sbin/openrc-run
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net localmount
+ before netmount
+}
+
+check_modules_config() {
+ local MODULES=$1
+ local CONFIGS=$2
+ local MODULE
+ local retval=0
+
+ for MODULE in ${MODULES}; do
+ if ! ls -1 /sys/module | egrep -q "^${MODULE}$"; then
+ retval=1
+ fi
+ done
+ if [ ${retval} -eq 1 ] && [ -e /proc/config.gz ]; then
+ retval=0
+ for MODULE in ${CONFIGS}; do
+ if ! gzip -dc /proc/config.gz | egrep -q "^CONFIG_${MODULE}=y$"; then
+ retval=1
+ fi
+ done
+ fi
+ return ${retval}
+}
+
+check_modules() {
+ check_modules_config "ocfs2_dlmfs ocfs2 ocfs2_dlm ocfs2_nodemanager" "OCFS2_FS OCFS2_FS_O2CB" && check_modules_config configfs CONFIGFS_FS && return 0
+ if ! egrep -q '\s*ocfs2\s*$' /proc/filesystems || ! egrep -q '\s*ocfs2_dlmfs\s*$' /proc/filesystems; then
+ ewarn "One or more required modules are not loaded."
+ ewarn "Make sure you have "
+ ewarn " - placed ocfs, dlmfs and configfs into /etc/modules.autoload.d/kernel-2.6 or built directly into the kernel."
+ ewarn "For a (in)complete documentation, read /usr/share/doc/ocfs-<version>/INSTALL.GENTOO.bz2"
+ fi
+ return 1
+}
+
+check_pseudofs() {
+ local retval=0
+ local HASMOUNT="mount -l -t"
+ if [ -z "`${HASMOUNT} configfs`" ] ; then
+ retval=1
+ fi
+ if [ -z "`${HASMOUNT} ocfs2_dlmfs`" ] ; then
+ retval=1
+ fi
+
+ if [ ${retval} -eq 1 ]; then
+ ewarn "One or more pseudo-filesystes are not mounted."
+ ewarn "Make sure you have following lines in your /etc/fstab:"
+ ewarn "none /sys/kernel/config configfs defaults 0 0"
+ ewarn "none /sys/kernel/dlm ocfs2_dlmfs defaults 0 0"
+ fi
+ return ${retval}
+}
+
+
+
+start() {
+ check_modules || return $?
+ check_pseudofs || return $?
+
+ einfo "Starting OCFS2 cluster"
+ for cluster in ${OCFS2_CLUSTER}; do
+ ebegin " - ${cluster}"
+ /sbin/o2cb_ctl -H -n ${cluster} -t cluster -a online=yes >/dev/null 2>&1
+ eend $?
+
+ # Some heartbeat tweaks to prevent self-fencing quite so much during heavy load.
+ # http://oss.oracle.com/projects/ocfs2/dist/documentation/ocfs2_faq.html
+
+ # How long to wait before a node is considered dead from lack of network activity.
+ echo $OCFS2_IDLE_TIMEOUT_MS > /sys/kernel/config/cluster/${cluster}/idle_timeout_ms
+ # How often we should attempt to send heartbeats.
+ echo $OCFS2_KEEPALIVE_DELAY_MS > /sys/kernel/config/cluster/${cluster}/keepalive_delay_ms
+ echo $OCFS2_RECONNECT_DELAY_MS > /sys/kernel/config/cluster/${cluster}/reconnect_delay_ms
+ # How many interations before a node is considered dead from lack of IO activity.
+ # (dead_threshold - 1) * 2s
+ echo $OCFS2_DEAD_THRESHOLD > /sys/kernel/config/cluster/${cluster}/heartbeat/dead_threshold
+ done
+ sleep 2
+}
+
+stop() {
+ # Shamelesly stolen from netmount
+ local ret
+ ebegin "Unmounting OCFS2 filesystems"
+ [ -z "$(umount -art ocfs2 2>&1)" ]
+ ret=$?
+ eend ${ret} "Failed to simply unmount filesystems"
+ [ ${ret} -eq 0 ] && return 0
+
+ declare -a siglist=( "TERM" "KILL" "KILL" )
+ local retry=0
+ local remaining="go"
+
+ while [ -n "${remaining}" -a ${retry} -lt 3 ]
+ do
+ remaining="$(awk '$3 ~ /'ocfs2'/ { if ($2 != "/") print $2 }' /proc/mounts | sort -r)"
+ IFS=$'\n'
+ set -- ${remaining//\\040/ }
+ unset IFS
+ [ -z "${remaining}" ] && break
+
+ ebegin $'\t'"Unmounting ocfs2 filesystems (retry #$((retry+1)))"
+ /bin/fuser -k -${siglist[$((retry++))]} -m "$@" &>/dev/null
+ sleep 5
+ umount "$@" &>/dev/null
+ eend $? $'\t'"Failed to unmount filesystems"
+ done
+
+
+ einfo "Stopping OCFS2 cluster"
+ for cluster in ${OCFS_CLUSTERS}; do
+ ebegin " - ${cluster}"
+ /sbin/o2cb_ctl -H -n ${cluster} -t cluster -a online=no >/dev/null 2>&1
+ eend $?
+ done
+}
diff --git a/sys-fs/ocfs2-tools/metadata.xml b/sys-fs/ocfs2-tools/metadata.xml
new file mode 100644
index 000000000000..7bc09f148256
--- /dev/null
+++ b/sys-fs/ocfs2-tools/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>cluster@gentoo.org</email>
+ <name>Gentoo Cluster Project</name>
+</maintainer>
+<use>
+ <flag name="external">Enable external locking</flag>
+</use>
+</pkgmetadata>
diff --git a/sys-fs/ocfs2-tools/ocfs2-tools-1.8.2-r2.ebuild b/sys-fs/ocfs2-tools/ocfs2-tools-1.8.2-r2.ebuild
new file mode 100644
index 000000000000..1db9772faead
--- /dev/null
+++ b/sys-fs/ocfs2-tools/ocfs2-tools-1.8.2-r2.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+inherit autotools python-single-r1
+
+DESCRIPTION="Support programs for the Oracle Cluster Filesystem 2"
+HOMEPAGE="http://oss.oracle.com/projects/ocfs2-tools/"
+SRC_URI="https://dev.gentoo.org/~alexxy/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug external gtk"
+
+RDEPEND="
+ dev-libs/libaio:=
+ sys-apps/util-linux:=
+ sys-cluster/libcman
+ external? (
+ sys-cluster/libdlm
+ sys-cluster/pacemaker[-heartbeat]
+ )
+ sys-fs/e2fsprogs
+ sys-libs/e2fsprogs-libs:=
+ sys-libs/ncurses:0=
+ sys-libs/readline:0=
+ sys-process/psmisc
+ gtk? (
+ ${PYTHON_DEPS}
+ dev-python/pygtk[${PYTHON_USEDEP}]
+ )
+"
+# 99% of deps this thing has is automagic
+# specialy cluster things corosync/pacemaker
+DEPEND="${RDEPEND}"
+
+REQUIRED_USE="gtk? ( ${PYTHON_REQUIRED_USE} )"
+
+DOCS=(
+ "${S}/documentation/samples/cluster.conf"
+ "${S}/documentation/users_guide.txt"
+)
+
+MAKEOPTS+=" -j1"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.6.4-asneeded.patch"
+ "${FILESDIR}/${PN}-recent-kernels.patch"
+)
+
+pkg_setup() {
+ use gtk && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ sed -e 's/ncurses, tgetstr/ncurses, printw/g' -i configure.in || die
+ # gentoo uses /sys/kernel/dlm as dlmfs mountpoint
+ sed -e 's:"/dlm/":"/sys/kernel/dlm":g' \
+ -i libo2dlm/o2dlm_test.c \
+ -i libocfs2/dlm.c || die "sed failed"
+ default
+ rm -f aclocal.m4 || die
+ AT_M4DIR=. eautoreconf
+ use gtk && python_fix_shebang .
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug debug) \
+ $(use_enable debug debugexe) \
+ $(use_enable gtk ocfs2console) \
+ --enable-dynamic-fsck \
+ --enable-dynamic-ctl
+}
+
+src_install() {
+ default
+ use gtk && python_optimize
+ newinitd "${FILESDIR}/ocfs2.initd" ocfs2
+ newconfd "${FILESDIR}/ocfs2.confd" ocfs2
+}
diff --git a/sys-fs/owfs/Manifest b/sys-fs/owfs/Manifest
new file mode 100644
index 000000000000..504a94310565
--- /dev/null
+++ b/sys-fs/owfs/Manifest
@@ -0,0 +1,15 @@
+AUX owfs-3.1-vendordir.patch 891 SHA256 72b1cc41342565e418a13f726ad3d3dcd8c6e9aab5ddf791b516ed35df18092e SHA512 d7131a4500419976ff2e153c44fbafc6164441e9fd5abff0bc4923cbcf672893c1c93d76ae6d1fda8cd7b808feaf4cfa9da201020622c8b45131f68d6ead478b WHIRLPOOL 08f4c276db1e062777d89a1981b8ba5f0532d9a284dc80c89b7c037a57ac135f465770b0df90ad04671eec442f171c362219a2127f67da8b6731ad685596a844
+AUX owfs-3.1p4-sysmacros.patch 2913 SHA256 a24436ace06e9d8b80560804984431c125700dabdb57cab04f683b4b72bfffcb SHA512 9a634156f9de9c65bf13ab2a4395be086318feb77d15210484e757ca578ca0010f976b217bf696c4d65ae5b42b65cbd26236942a506355b49bc105685ac804c8 WHIRLPOOL 621b589cebffed9c68a9661b38c8f24156a67a06e48ac60f6f853bc139480b4007a58ded35557b3380427bc20bd221295994f4a569a230416d9de554f4824d79
+AUX owfs.confd 86 SHA256 a9dcdfcea30619f692275a7ee9842746e10ed72884dd0c8184668cbe7f065783 SHA512 7c23bd956d2e22cc3952eefa52bd6b5b08c1b24561d5ac9cfc5222595d083ea64ba26dd0b4826e0fad3e2eb5774cc06a7bb6c7afd9c4c0726ce2b4b6df4dbdcd WHIRLPOOL bc8d7e66c34f8411387b3931f387b937e9a8fff81bcb0b48eaa086310962477e42927350f1ecbfad7dee2a854c86899910de63a434f0c77face3cedc54ec85d8
+AUX owfs.initd-r1 825 SHA256 f320583d58cc1ec431db9e1c52d587f86e23421a1065cd8815a640fca16eec94 SHA512 26623ab81bc3a1788ac2c4a51114f643bb18595a61f88856f25193b4c3c3723e785414448503ec89bc6cf9e16ea782890d56a6df4604711fe7eee06cd6613dad WHIRLPOOL f89fa52ca87831954c827113d311e41c8c4dcc592c427a8e63e3bff6baa0917988005bedb65ad6b04e45d9f9cd11a3eb77da84af8b7686ca4babed2015c5e2c4
+AUX owftpd.confd 121 SHA256 8106ed053b5931651c956348c68c82b8e2e31f8faa687f281566d72ac4e02d1b SHA512 7b8baba17d576139e3a9a9640e3c2006d9f847061aeff8a1e79b32ff116936421eccf8b545d64fe294acde4d483c170c728e80479f55e015ef030cf3ee06154a WHIRLPOOL 32f0b7cf14e7f937d14c1b568410d7ec124f685a0b334c5b9d44b8334dfb47f70f3e24e8580f7de746037006f21c611029496631b6b1d08ac0047259c9a766bc
+AUX owftpd.initd-r1 853 SHA256 19d8316252869979f4b510f3e8cb9538ec0c67e8ab348c29e2338016130b4d51 SHA512 0736b5100684247828bb793873cf1112b3b2a87c5a74a8f65b6b115699892325fb12f3016482ce4f42deceab8fb0f5251851738736f68fb417f0c277dea6369d WHIRLPOOL f657af0c59783bfa8ee842c9c242dda7bc15b8729dbb0a565b2bac8bc4e3474b6f2d565672700e11699e33cb99c96f430339a13a659b80a24206790e353759e6
+AUX owhttpd.confd 89 SHA256 a836e53af60e677f6c9a10f70777afc729b7edfbe2b9d2a33a509fa62619d07f SHA512 07a128115a830145c609a35813ba325b9b1ff3c2ecbbcece1e728a78971e1e7c4cf654054611c303ca47fd39ccfcff4707133a04fa8d689d3606ca7ceabd5a4f WHIRLPOOL 6aa38b9ff58566f53f5eacf9a9652c3d8290a9b341ec42c863163cc43102b744c0f5f289e7f9142b21b3c95b2ecd3fc8836b8ea67497e433c5695946dc2dd0b5
+AUX owhttpd.initd-r1 820 SHA256 2eb91c43aed975186793a9c23beb8733badb98f4c20ecf47cb477d7b373975c1 SHA512 79c0307bcb4913f563ca69e4a699b91a4e7a2133882d150694f6738eb8000175a7f840b5de9f07496c166c95fe71bb94c31ea167f6389dc9c37e0d08e2943bc9 WHIRLPOOL f29de8502a260f12cd71e89c88991d3bbd11c47ad830b091069800a65154c5980bc9cec7308068d013b0583db486af42d8c33894b33d00ab9f3665fb947c3d85
+AUX owserver.confd 108 SHA256 e14d16d11a9a4c597a957f2db48840e1fa6280db241dcab28922ae2c449940e7 SHA512 c10fb23a60d89348c82f6f5ee6b0ba1c5d59e506dcdf484fa0c9c8c6ae07064cafc39517670b5edb474bcc1921efddfce2e5dd879f59f3bb3a1f80d6df3c0411 WHIRLPOOL 1dbdd8ed06ea24b9abebdfe6190b9cf4aff20df66127732c283e6179ed685fc0a47e00b2690c4949042083ae52f39f9895d594c278b7596ff3e3ed6298f7311b
+AUX owserver.initd-r1 802 SHA256 d7e927246e307eb78aa769e1cb35dd64c64f7c2fdce8ded72e1855d848e19699 SHA512 3c2d186df7c3d4549333f90a87c80a44dd8ed67b10bacdc08edce2b45db35bd0bc7f0956bdee8f03a388ae8a5bab039f7bb19e3bad007632608f945c7e54c649 WHIRLPOOL eeadb7ca993b3897170f56fe3d7228759fd29f5bdc0e5eb5c969535b7171cfc16ec30dcf660a0f391d651002edc3b5bcf59afac404bd7c244ec5da280c60230a
+DIST owfs-3.1p4.tar.gz 1455420 SHA256 83ea34ede9f44665c5bef4e46fd9bbc087ad8a76c533bcbf03b436b7601e1e54 SHA512 9d04b466fc64761f53dc5fb11b4eb71d10154be5eb335174e8a9002a944bb3f2fbfe1cea3cf5962aa794486830e78d7ba5a7a87c68e3a4d32ab1a95e7ca59cdb WHIRLPOOL 0a1790e111e01bd66237899311ae348bd347f6446094fe7a33d36f2f86db5c18211abd13f76c7e080398f3daf3f20184542f083c818f028ec6f2ca695accebd4
+EBUILD owfs-3.1_p4.ebuild 4647 SHA256 a530fed772f8b3ffb322e1a30641f11c997b73ffe1c2e63f990bb3e6562f54b0 SHA512 1f47dccc49ffab0f6bbeb130fb55ea0c1a8af835f812cc0eeadbae5d812179882e183ca524a288693b8f62539f1b12e48e9ab7fe8d9d862cfebf6abe62c25bd0 WHIRLPOOL 42162e78169f7a0309382f6d8cdf42ab5e4b85aa8e959a10f0f58aa201e0603b36f1871e1e96f3cb238707c8f74437fec9992f22b6a670261a1a0f15c5af46f0
+MISC ChangeLog 4353 SHA256 36b80045f7cf6502e523deb028e9ee7f137844bdf04761e7207e70b22a639e08 SHA512 58106dd02386ab6a22e3c5450a1e55814a727f4adc4ccc96f50e840468d136b9128e393f99ea73489021828c509c154b8e5e1a569c9510269c4afb92e010c11c WHIRLPOOL e74537649e5512cb65f8303c74a2cfd533f767b2bf14575080d126d53ff798c694969c49dd3c3e9aa525bc5f8fc4a40bffabd1a90fbd995fa8e6f0317902ede6
+MISC ChangeLog-2015 4938 SHA256 dd91c024e2887b3e20efbac1552c5d69d01d01d8cc62706020c4e4a00671d1f7 SHA512 88bade78076fe391c9d65f79161de0e054db96d9538df1aa4aa8bf94e7c06d919905044762450b13803e5ef422f70ccb2fcbc3fe03989a012d762edc24ed6ed0 WHIRLPOOL e9522c1766a85d4d71de49b6178cdc12031447ab9163fab5fb2b2a01801ebe3c70ea5a3251a4a325969ad943699e73d9e6949b15c9fec3e2af509101b525a1d4
+MISC metadata.xml 1159 SHA256 58146c40cb0119952b0052ff16f60fcf97404d18e163f4ce41972d40ac29c1e0 SHA512 4cff718d367711e5a99891caa7c19db9f50d885200841096f17ec3ee64cd01d3938fa34d1f2c5e6de575dd3cb36c5ea4f3625fa604b11cfdebe13362ea37cefe WHIRLPOOL f45894a204bcbc65b62fe4caf37614ff57206c31b5ea0398cb1f8027ef3314bfdd1cbf967ea5c7e8b1e0a04b012bcc6fe5ca578484c8677ed3eace894c8b3e9d
diff --git a/sys-fs/owfs/files/owfs-3.1-vendordir.patch b/sys-fs/owfs/files/owfs-3.1-vendordir.patch
new file mode 100644
index 000000000000..2592e8ad0fd7
--- /dev/null
+++ b/sys-fs/owfs/files/owfs-3.1-vendordir.patch
@@ -0,0 +1,26 @@
+diff --git a/module/ownet/perl5/Makefile.am b/module/ownet/perl5/Makefile.am
+index 5823f4b..cebe1e6 100644
+--- a/module/ownet/perl5/Makefile.am
++++ b/module/ownet/perl5/Makefile.am
+@@ -8,7 +8,7 @@ OWNet/Makefile: OWNet/Makefile.PL
+ if HAVE_DEBIAN
+ cd OWNet; $(PERL) Makefile.PL INSTALLDIRS=vendor
+ else
+- cd OWNet; $(PERL) Makefile.PL
++ cd OWNet; $(PERL) Makefile.PL INSTALLDIRS=vendor
+ endif
+
+ install-data-local: OWNet/Makefile
+diff --git a/module/swig/perl5/Makefile.am b/module/swig/perl5/Makefile.am
+index 8e5f583..49cd252 100644
+--- a/module/swig/perl5/Makefile.am
++++ b/module/swig/perl5/Makefile.am
+@@ -19,7 +19,7 @@ else
+ if HAVE_DEBIAN
+ ( cd OW; $(PERL) Makefile.PL INSTALLDIRS=vendor )
+ else
+- ( cd OW; $(PERL) Makefile.PL )
++ ( cd OW; $(PERL) Makefile.PL INSTALLDIRS=vendor )
+ if HAVE_FREEBSD
+ $(PERL) -pi -e 's/ doc_(perl|site|\$$\(INSTALLDIRS\))_install$$//' OW/Makefile
+
diff --git a/sys-fs/owfs/files/owfs-3.1p4-sysmacros.patch b/sys-fs/owfs/files/owfs-3.1p4-sysmacros.patch
new file mode 100644
index 000000000000..dcb67a6d19c7
--- /dev/null
+++ b/sys-fs/owfs/files/owfs-3.1p4-sysmacros.patch
@@ -0,0 +1,78 @@
+From 6565314e775232cf1682b35720b8b1b207a16f3e Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Wed, 21 Sep 2016 15:38:52 +0200
+Subject: [PATCH] configure: Add AC_HEADER_MAJOR to find where major() is
+ defined
+
+glibc currently pulls sys/sysmacros.h into sys/types.h, but this may
+change in a future release.
+
+https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
+
+Gentoo-Bug: https://bugs.gentoo.org/580922
+---
+ configure.ac | 4 +++-
+ module/owlib/src/include/ow.h | 7 +++++--
+ module/ownet/c/src/include/ow.h | 8 ++++++--
+ 3 files changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c1e3d77..3b32fbe 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -180,10 +180,12 @@ m4_include([src/scripts/m4/acx_pthread.m4])
+ # Checks for header files.
+ AC_HEADER_DIRENT
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/mkdev.h sys/socket.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
++AC_CHECK_HEADERS([asm/types.h arpa/inet.h sys/ioctl.h sys/socket.h sys/time.h sys/times.h sys/types.h sys/param.h sys/uio.h feature_tests.h fcntl.h netinet/in.h stdlib.h string.h strings.h sys/file.h syslog.h termios.h unistd.h limits.h stdint.h features.h getopt.h resolv.h semaphore.h])
+ AC_CHECK_HEADERS([linux/limits.h linux/types.h netdb.h dlfcn.h])
+ AC_CHECK_HEADERS(sys/event.h sys/inotify.h)
+
++AC_HEADER_MAJOR
++
+ # Test if debugging out enabled
+ ENABLE_DEBUG="true"
+ AC_MSG_CHECKING([if debug-output is enabled])
+diff --git a/module/owlib/src/include/ow.h b/module/owlib/src/include/ow.h
+index 9dbec5f..2a6050d 100644
+--- a/module/owlib/src/include/ow.h
++++ b/module/owlib/src/include/ow.h
+@@ -188,9 +188,12 @@
+ #include <netdb.h> /* for getaddrinfo */
+ #endif /* HAVE_NETDB_H */
+
+-#ifdef HAVE_SYS_MKDEV_H
++#ifdef MAJOR_IN_MKDEV
+ #include <sys/mkdev.h> /* for major() */
+-#endif /* HAVE_SYS_MKDEV_H */
++#endif /* MAJOR_IN_MKDEV */
++#ifdef MAJOR_IN_SYSMACROS
++#include <sys/sysmacros.h> /* for major() */
++#endif /* MAJOR_IN_MKDEV */
+
+ #include <stddef.h> // for offsetof()
+
+diff --git a/module/ownet/c/src/include/ow.h b/module/ownet/c/src/include/ow.h
+index c157a7c..aeeba8e 100644
+--- a/module/ownet/c/src/include/ow.h
++++ b/module/ownet/c/src/include/ow.h
+@@ -118,9 +118,13 @@
+
+ #include <netdb.h> /* addrinfo */
+
+-#ifdef HAVE_SYS_MKDEV_H
++#ifdef MAJOR_IN_MKDEV
+ #include <sys/mkdev.h> /* for major() */
+-#endif /* HAVE_SYS_MKDEV_H */
++#endif /* MAJOR_IN_MKDEV */
++#ifdef MAJOR_IN_SYSMACROS
++#include <sys/sysmacros.h> /* for major() */
++#endif /* MAJOR_IN_MKDEV */
++
+
+ /* Can't include search.h when compiling owperl on Fedora Core 1. */
+ #ifndef SKIP_SEARCH_H
+--
+2.10.0
+
diff --git a/sys-fs/owfs/files/owfs.confd b/sys-fs/owfs/files/owfs.confd
new file mode 100644
index 000000000000..f85d25e74f22
--- /dev/null
+++ b/sys-fs/owfs/files/owfs.confd
@@ -0,0 +1,2 @@
+# owfs configuration
+OWFS_OPTS="-m /var/lib/owfs/mnt --allow_other -s 127.0.0.1:4304"
diff --git a/sys-fs/owfs/files/owfs.initd-r1 b/sys-fs/owfs/files/owfs.initd-r1
new file mode 100644
index 000000000000..fce0f5e52d4a
--- /dev/null
+++ b/sys-fs/owfs/files/owfs.initd-r1
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+INSTANCE=${SVCNAME#*.}
+PROGRAM=${SVCNAME%%.*}
+PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
+OWUID=${OWUID:-owfs}
+OWGID=${OWGID:-owfs}
+
+depend() {
+ need owserver
+ use logger
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
+ --pid-file ${PIDFILE} \
+ --background --error_print 1 \
+ ${OWFS_OPTS:--m /var/lib/owfs/mnt --allow_other -s 127.0.0.1:4304}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} -u ${OWUID}
+ eend $?
+}
diff --git a/sys-fs/owfs/files/owftpd.confd b/sys-fs/owfs/files/owftpd.confd
new file mode 100644
index 000000000000..fc93d2fd7195
--- /dev/null
+++ b/sys-fs/owfs/files/owftpd.confd
@@ -0,0 +1,2 @@
+# owfs owftpd configuration
+OWFTPD_OPTS="--nozero -p 127.0.0.1:4381 -s 127.0.0.1:4304 --max_clients 5 --timeout_ftp 600"
diff --git a/sys-fs/owfs/files/owftpd.initd-r1 b/sys-fs/owfs/files/owftpd.initd-r1
new file mode 100644
index 000000000000..8bbf93b49dc8
--- /dev/null
+++ b/sys-fs/owfs/files/owftpd.initd-r1
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+INSTANCE=${SVCNAME#*.}
+PROGRAM=${SVCNAME%%.*}
+PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
+OWUID=${OWUID:-owfs}
+OWGID=${OWGID:-owfs}
+
+depend() {
+ need owserver
+ use logger
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
+ --pid-file ${PIDFILE} \
+ --background --error_print 1 \
+ ${OWFTPD_OPTS:---nozero -p 127.0.0.1:4381 -s 127.0.0.1:4304 --max_clients 5 --timeout_ftp 600}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} -u ${OWUID}
+ eend $?
+}
diff --git a/sys-fs/owfs/files/owhttpd.confd b/sys-fs/owfs/files/owhttpd.confd
new file mode 100644
index 000000000000..2a5200c31118
--- /dev/null
+++ b/sys-fs/owfs/files/owhttpd.confd
@@ -0,0 +1,2 @@
+# owfs owhttpd configuration
+OWHTTPD_OPTS="--nozero -p 127.0.0.1:4380 -s 127.0.0.1:4304"
diff --git a/sys-fs/owfs/files/owhttpd.initd-r1 b/sys-fs/owfs/files/owhttpd.initd-r1
new file mode 100644
index 000000000000..cf3af54f50e9
--- /dev/null
+++ b/sys-fs/owfs/files/owhttpd.initd-r1
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+INSTANCE=${SVCNAME#*.}
+PROGRAM=${SVCNAME%%.*}
+PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
+OWUID=${OWUID:-owfs}
+OWGID=${OWGID:-owfs}
+
+depend() {
+ need owserver
+ use logger
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
+ --pid-file ${PIDFILE} \
+ --background --error_print 1 \
+ ${OWHTTPD_OPTS:---nozero -p 127.0.0.1:4380 -s 127.0.0.1:4304}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} -u ${OWUID}
+ eend $?
+}
diff --git a/sys-fs/owfs/files/owserver.confd b/sys-fs/owfs/files/owserver.confd
new file mode 100644
index 000000000000..e764e2df10ec
--- /dev/null
+++ b/sys-fs/owfs/files/owserver.confd
@@ -0,0 +1,2 @@
+# owfs owserver configuration
+OWSERVER_OPTS="--nozero -p 127.0.0.1:4304 -d /dev/ttyS0 --timeout_volatile 5"
diff --git a/sys-fs/owfs/files/owserver.initd-r1 b/sys-fs/owfs/files/owserver.initd-r1
new file mode 100644
index 000000000000..88b9790882f5
--- /dev/null
+++ b/sys-fs/owfs/files/owserver.initd-r1
@@ -0,0 +1,34 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+INSTANCE=${SVCNAME#*.}
+PROGRAM=${SVCNAME%%.*}
+PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
+OWUID=${OWUID:-owfs}
+OWGID=${OWGID:-owfs}
+
+depend() {
+ use logger
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
+ --pid-file ${PIDFILE} \
+ --background --error_print 1 \
+ ${OWSERVER_OPTS:---nozero -p 127.0.0.1:4304 -d /dev/ttyS0}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
+ --pidfile ${PIDFILE} -u ${OWUID}
+ eend $?
+}
diff --git a/sys-fs/owfs/metadata.xml b/sys-fs/owfs/metadata.xml
new file mode 100644
index 000000000000..3643be9f41d1
--- /dev/null
+++ b/sys-fs/owfs/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <longdescription lang="en">
+ OWFS (One Wire File System) is an easy way to use the powerful 1-wire system
+ of Dallas/Maxim. A simple and flexible program to monitor and control the
+ physical environment. You can write scripts to read temperature, flash
+ lights, write to an LCD, log and graph, ...
+ </longdescription>
+ <slots>
+ <subslots>Reflect ABI of libow.so.</subslots>
+ </slots>
+ <upstream>
+ <remote-id type="sourceforge">owfs</remote-id>
+ </upstream>
+ <use>
+ <flag name="ftdi">Enable support for USB FTDI chips via <pkg>dev-embedded/libftdi</pkg></flag>
+ <flag name="ftpd">Enable building the OWFS FTP server (owftpd)</flag>
+ <flag name="fuse">Enable building the FUSE-based OWFS client (owfs)</flag>
+ <flag name="httpd">Enable building the OWFS web server (owhttpd)</flag>
+ <flag name="parport">Enable support for the DS1410E parallel port adapter</flag>
+ <flag name="zeroconf">Enables support for zero-configuration networking via <pkg>net-dns/avahi</pkg></flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-fs/owfs/owfs-3.1_p4.ebuild b/sys-fs/owfs/owfs-3.1_p4.ebuild
new file mode 100644
index 000000000000..50af8d0e122f
--- /dev/null
+++ b/sys-fs/owfs/owfs-3.1_p4.ebuild
@@ -0,0 +1,190 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+inherit autotools distutils-r1 eutils linux-info perl-functions systemd user
+
+MY_P=${P/_/}
+
+DESCRIPTION="Access 1-Wire devices like a filesystem"
+SRC_URI="mirror://sourceforge/owfs/${MY_P}.tar.gz"
+HOMEPAGE="http://owfs.org/ https://sourceforge.net/projects/owfs/"
+
+KEYWORDS="amd64 arm x86"
+SLOT="0/4.0.0"
+LICENSE="GPL-2"
+
+RDEPEND="
+ ftdi? ( dev-embedded/libftdi:0 )
+ fuse? ( sys-fs/fuse )
+ perl? ( dev-lang/perl:= )
+ parport? ( sys-kernel/linux-headers )
+ php? ( dev-lang/php:=[cli] )
+ python? ( ${PYTHON_DEPS} )
+ tcl? ( dev-lang/tcl:0= )
+ usb? ( virtual/libusb:0 )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )"
+
+DEPEND="${RDEPEND}
+ perl? ( dev-lang/swig )
+ php? ( dev-lang/swig )
+ python? ( dev-lang/swig )"
+
+IUSE="debug ftdi ftpd fuse httpd parport perl php python tcl usb zeroconf"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1-vendordir.patch
+ "${FILESDIR}"/${PN}-3.1p4-sysmacros.patch
+)
+
+S=${WORKDIR}/${MY_P}
+
+OWUID=${OWUID:-owfs}
+OWGID=${OWGID:-owfs}
+
+pkg_setup() {
+ if use kernel_linux; then
+ linux-info_pkg_setup
+
+ if linux_config_exists; then
+ if ! linux_chkconfig_present W1; then
+ ewarn "CONFIG_W1 isn't set. You will not be able to use 1-wire bus on this system!"
+ fi
+ else
+ elog "Cannot find a linux kernel configuration. Continuing anyway."
+ fi
+ fi
+
+ use perl && perl_set_version
+
+ enewgroup ${OWGID} 150
+ enewuser ${OWUID} 150 -1 -1 ${OWGID}
+}
+
+src_prepare() {
+ default
+
+ # Support user's CFLAGS and LDFLAGS.
+ sed -i "s/@CPPFLAGS@/@CPPFLAGS@ ${CFLAGS}/" \
+ module/swig/perl5/OW/Makefile.linux.in || die
+ sed -i "s/@LIBS@/@LIBS@ ${LDFLAGS}/" \
+ module/swig/perl5/OW/Makefile.linux.in || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # disable owpython since we can build python anyway
+ # and without it, we don't have to fix the build ;)
+ local myeconf=(
+ $(use_enable debug)
+ $(use_enable fuse owfs)
+ $(use_enable ftdi)
+ $(use_enable ftpd owftpd)
+ $(use_enable httpd owhttpd)
+ $(use_enable parport)
+ $(use_enable perl owperl)
+ $(use_enable php owphp)
+ --disable-owpython
+ $(use_enable tcl owtcl)
+ $(use_enable zeroconf avahi)
+ $(use_enable zeroconf zero)
+ $(use_enable usb)
+ --with-systemdsystemunitdir=$(systemd_get_systemunitdir)
+ )
+
+ if use httpd || use ftpd || use fuse; then
+ myeconf+=( --enable-owserver )
+ else
+ myeconf+=( --disable-owserver )
+ fi
+
+ econf ${myeconf[@]}
+}
+
+src_compile() {
+ default
+
+ if use python; then
+ local CFLAGS="${CFLAGS} -fno-strict-aliasing"
+
+ pushd module/ownet/python > /dev/null || die
+ distutils-r1_src_compile
+ popd > /dev/null || die
+
+ pushd module/swig/python > /dev/null || die
+ emake ow_wrap.c
+ distutils-r1_src_compile
+ popd > /dev/null || die
+ fi
+}
+
+src_test() { :; }
+
+src_install() {
+ default
+
+ if use httpd || use ftpd || use fuse; then
+ newinitd "${FILESDIR}"/owserver.initd-r1 owserver
+ newconfd "${FILESDIR}"/owserver.confd owserver
+
+ for i in httpd ftpd; do
+ if use ${i}; then
+ newinitd "${FILESDIR}"/ow${i}.initd-r1 ow${i}
+ newconfd "${FILESDIR}"/ow${i}.confd ow${i}
+ fi
+ done
+
+ if use fuse; then
+ dodir /var/lib/owfs
+ dodir /var/lib/owfs/mnt
+ newinitd "${FILESDIR}"/owfs.initd-r1 owfs
+ newconfd "${FILESDIR}"/owfs.confd owfs
+ fi
+ fi
+
+ use perl && perl_delete_localpod
+
+ if use python; then
+ pushd module/ownet/python > /dev/null || die
+ distutils-r1_src_install
+ popd > /dev/null || die
+
+ pushd module/swig/python > /dev/null || die
+ distutils-r1_src_install
+ popd > /dev/null || die
+ fi
+
+ prune_libtool_files
+}
+
+pkg_postinst() {
+ if use httpd || use ftpd || use fuse; then
+ echo
+ if [[ ${OWUID} != root ]]; then
+ ewarn
+ ewarn "In order to allow the OWFS daemon user '${OWUID}' to read"
+ ewarn "from and/or write to a 1 wire bus controller device, make"
+ ewarn "sure the user has appropriate permission to access the"
+ ewarn "corresponding device node/path (e.g. /dev/ttyS0), for example"
+ ewarn "by adding the user to the group 'uucp' (for serial devices)"
+ ewarn "or 'usb' (for USB devices accessed via usbfs on /proc/bus/usb),"
+ ewarn "or install an appropriate UDEV rules (see http://owfs.org/index.php?page=udev-and-usb"
+ ewarn "for more information)."
+ ewarn
+ if use fuse; then
+ ewarn "In order to allow regular users to read from and/or write to"
+ ewarn "1 wire bus devices accessible via the owfs FUSE filesystem"
+ ewarn "client and its filesystem mountpoint, make sure the user is"
+ ewarn "a member of the group '${OWGID}'."
+ ewarn
+ fi
+ echo
+ fi
+ fi
+}
diff --git a/sys-fs/progsreiserfs/Manifest b/sys-fs/progsreiserfs/Manifest
new file mode 100644
index 000000000000..bef29989dddf
--- /dev/null
+++ b/sys-fs/progsreiserfs/Manifest
@@ -0,0 +1,6 @@
+AUX progsreiserfs-0.3.1_rc8-autotools.patch 271 SHA256 565f88d2bbb468200764c25be64dee03b94db438d4f33cab779dda793f1a0eeb SHA512 5db538c3bdcd4463879fc267288f76e50603d8693fa8009ef33247be7d1b89f9cd526a73e47e717f92e1217795a215690263400755ae13de2f636111f67d075f WHIRLPOOL ad552c3561a35f8a7ef8be354f98e068387ab70d2eead00b9fa40355e4718c29fd6514a5de88f298adcac84c0e0a8c3eeb6d95b6870ae658b219fbca11b5a073
+DIST progsreiserfs-0.3.1-rc8.tar.gz 399279 SHA256 1473899a21df0679a32ebde5a35c158468a7e51a0cb6fd89d77c42bfde9b6399 SHA512 65266ab5a598b2073e6893da6554bdfe43796be3bd608eb7c4f687c3ef6ed395ce67def49b62d2b3705dfdeb38bd5f5d1c91fec6ad7323788d490058b015c26d WHIRLPOOL 2afe87ef74d7bbbd012b5dd141663291222e8bf22ae318ac217e38f0af90f7524beb15362ebbc001f3998f14a555b10586e09a5cb412c105dce6b791cd2ee2fa
+EBUILD progsreiserfs-0.3.1_rc8.ebuild 1287 SHA256 f154f2d6c5df329ee4139349cdf1ddb8d17f9248e3c10b62a32b4085e4bff785 SHA512 90844b9d025ed7200d0afe82b0ba4fa4df0e4b22c919541805a4d92a5e109640c835a40eb2e507222e5a776eedf81b479362f2d8348e5371cb4e6ff3430e6d64 WHIRLPOOL aa3f5fe10f39c1f2a181520352ef0a434f1e280bbaa7631992223feab7b57b6c0ce23561a21670d75a865cc2c0d8ddcfd9831dd5214a096b0d8a0dfe6d5f8643
+MISC ChangeLog 3339 SHA256 d4cb82c4b6b11e3df7a553f214f50b2dfa4a42233a9dd7e72f59d56e869797cd SHA512 87de0e74c8b36e16dba9ff411384d24586ab823b6e8b69bf1d39f94e8328a1f7f398c6a5ceb4698b834da091177657bf698853bd107377ee4b2be62f1e7220ca WHIRLPOOL 29e6578e29fab487bcb5f246b85b2f82d07e284cd6e448361a18a11d3c272bfd7c742359aeb34cc10c4525d604e60ae2398377bab2f0c94016d5b9e34ef956ef
+MISC ChangeLog-2015 3587 SHA256 707ba148c634b7aaa1b2576ba5c728d5def520b269e1e72d8f5903f0fbf100b6 SHA512 eac806b8db2dd89662717021f7346c81f21723d8ee50eb13191cf9f7ea4d62da5158c4d197e0975841321875f9f44c9822359329eedaa334bf59e8fea7c04427 WHIRLPOOL 7746ec737e11063c6bc3082ffa01a3abfda92f8ba9f50cf57de6e2dc45b79fd75c63718033465b98fa256a6dd4e8501abe48c9d3bc6629963651e84c83659cf4
+MISC metadata.xml 425 SHA256 9843dea8ee253cfa28c5b00af39112d10470342f33aaee02d3af131872f5254d SHA512 55c54a7c00dc1440503494b4f5332d2c82e9775ad652f3d3f5a950368fcfb55dc2e00cc6a5a999e8bcdf5ddd2c1c30567934f74be0b82533caed15ccb87ca017 WHIRLPOOL 88a791b52a23f11fe733482bba309ba687e9908c25a28d457799dd58d2e2ee5fbbbc2d57129a1fd932683cfaa22551d895616c17908ae3bfbeac6d4b9de1ffcc
diff --git a/sys-fs/progsreiserfs/files/progsreiserfs-0.3.1_rc8-autotools.patch b/sys-fs/progsreiserfs/files/progsreiserfs-0.3.1_rc8-autotools.patch
new file mode 100644
index 000000000000..4a0753f4f09b
--- /dev/null
+++ b/sys-fs/progsreiserfs/files/progsreiserfs-0.3.1_rc8-autotools.patch
@@ -0,0 +1,13 @@
+http://bugs.gentoo.org/442226
+
+--- progsreiserfs.m4
++++ progsreiserfs.m4
+@@ -10,7 +10,7 @@
+ dnl Adds the required libraries to $REISERFS_LIBS and does an
+ dnl AC_SUBST(REISERFS_LIBS)
+
+-AC_DEFUN(AC_CHECK_LIBREISERFS,
++AC_DEFUN([AC_CHECK_LIBREISERFS],
+ [
+
+ dnl save LIBS
diff --git a/sys-fs/progsreiserfs/metadata.xml b/sys-fs/progsreiserfs/metadata.xml
new file mode 100644
index 000000000000..4dea6b2cb795
--- /dev/null
+++ b/sys-fs/progsreiserfs/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <description>Maintainer as part of base-system work. Assign bugs to base-system.</description>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/progsreiserfs/progsreiserfs-0.3.1_rc8.ebuild b/sys-fs/progsreiserfs/progsreiserfs-0.3.1_rc8.ebuild
new file mode 100644
index 000000000000..dc0cf2cca90c
--- /dev/null
+++ b/sys-fs/progsreiserfs/progsreiserfs-0.3.1_rc8.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils flag-o-matic libtool
+
+MY_P=${PN}-${PV/_/-}
+
+DESCRIPTION="Library for accessing and manipulating reiserfs partitions"
+HOMEPAGE="http://reiserfs.linux.kiev.ua/"
+SRC_URI="http://reiserfs.linux.kiev.ua/snapshots/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ppc ~ppc64 ~sparc x86"
+IUSE="debug examples nls static-libs"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ sys-apps/util-linux
+ nls? ( sys-devel/gettext )"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-autotools.patch
+
+ elibtoolize
+}
+
+src_configure() {
+ filter-lfs-flags
+
+ econf \
+ $(use_enable static-libs static) \
+ --disable-Werror \
+ $(use_enable nls) \
+ $(use_enable debug)
+}
+
+src_install() {
+ default
+
+ if use examples; then
+ docinto examples
+ dodoc demos/*.c
+ fi
+
+ rm -r "${ED}"/usr/{sbin,share/man} || die
+ prune_libtool_files
+}
+
+pkg_postinst() {
+ ewarn "progsreiserfs has been proven dangerous in the past, generating bad"
+ ewarn "partitions and destroying data on resize/cpfs operations."
+ ewarn "Because of this, we do NOT provide their binaries, but only their"
+ ewarn "libraries instead, as these are needed for other applications."
+}
diff --git a/sys-fs/pysize/Manifest b/sys-fs/pysize/Manifest
new file mode 100644
index 000000000000..de79d23dd0f8
--- /dev/null
+++ b/sys-fs/pysize/Manifest
@@ -0,0 +1,7 @@
+AUX 0.2-setuptools-automagic.patch 265 SHA256 50f238c1dd594cd1dac1a6c954f599dd834577133ad9e789fc182c7127fab8be SHA512 8caa271dcfb016c81392e0f590e06f6057d297e9bb5196e9362372c725d218fbef911561e6528c624c2acf133b0ab8947e2b5ccc58704dc2ea5e0cbab0011dad WHIRLPOOL 7c4cdf0cd9f1023d9bfc2788af383670b53ff1c517dce567eaa6bc9f9f03464a9b6c24479903547c43ad6a1de72b6b50442a53b763777805cedeb257640c1596
+AUX psyco-0.2-automagic.patch 587 SHA256 3889b43df410ba8ec678243f30b9e16fdf36a7966d10cc84359cb5674dfe47be SHA512 a0f254b2f7b659bd63fbee10fe0beba79871f7da15f63f951c9794147d700a0f9073ce3039713bb649074cb6380ea18b321c0140cf85f2c192bee59686a04fa2 WHIRLPOOL 658f0e9a2ab025c39997b7c270522075ee6b213f83d34a33a3fc0fb454cae81348cd1220031e4502adc60e3bf169b65038462b9f690c052e4e7a3b356afca4e1
+DIST pysize-0.2.tar.bz2 498930 SHA256 1b0aea834bb5a9a15b7fe9680d5618adeb58242bdf14fac218498ee49d4b3bf5 SHA512 621e6e8de75d3486c196cf59e29f1c01eca151139a1d8518ace334d92533dd2df19fce52a3362c3b8abbb1e3b244148609a081832ae53f91bccc65f5f7fa57a5 WHIRLPOOL 7dbfdc12a7a0835439d6626334eb0c1af954dc0aa4f21c2ab0d472e2a8aedaccf1ba8a91a9640da40e0a070cac6d6c5f721a5b5a2bbd89c441324450c313df0c
+EBUILD pysize-0.2-r1.ebuild 1579 SHA256 182e29f5476696e7bbf887bbbdd94786c202b141c898d633a10093e5853830a0 SHA512 0c0d6f3c86d75b1789072ef7817a6c280ac4baebeea10878e96f8e2eb284f83e6d27640e99ae0eb4226953d22a953635499f7cd5953b6eb51d0507dd8e5ed62a WHIRLPOOL fdfeb849011bce08aad509cabdc84eeb6816a8402ae9310351723d12af3eb6bb2db425a89abddf0381107ce2183f1d3bb4682e4c6fccd2273eba9648d6aeff7a
+MISC ChangeLog 2638 SHA256 6431537e435a0fdbac86df7d44a865dfc768e06a96e81da65dce85542216b225 SHA512 6e30116a52ebba9da07dae95fbafad00bd6e917448cf5d844378d1193e81ac01939dcb3f214419ef5cf02d98bda9185889f29dd82c4f0e16bb6a797bceb6f1a9 WHIRLPOOL 25040cfc9a1bb34aec64c80cf85a0a4a79a43d2157a157fdbcfb5bc36cec3ecad51b30e4320f41e5a52d24cbdbcd963e86b6f0104af0e0638c27f595ecec9970
+MISC ChangeLog-2015 1620 SHA256 39a7173c7450a57f67d9cfc32067d46e62f5ac71cbce4145e5389b95034b14d5 SHA512 ab7bad3970e4fe0eef564a5be6d4965c3acdda90d2aac9239bfbba9f3c60a6aba02d6745e37373a9437575da77b9872aaed7c2d742b0efdb95e140e9041305a0 WHIRLPOOL 2b243d2d56666af5711667228bff54f22cdd29164286473d62b904f15171064d5cba9c610041e3f62d0785c4c6402bd12db6e7f5283c268de69ca3f51ca71467
+MISC metadata.xml 219 SHA256 99c3fc317394d1e14a24fc9fa87d91c746e968ea4a4e65004fd3aa8ba7373c1c SHA512 e075cd1d2568691a299ae945f75e194b462a394f88f7b3e5a60c4529cee7ac7e7a275204602085f15d024c3496f21554a18a24002770e9c5ef0ce64a74597602 WHIRLPOOL 5cc80e241155a0aa6241f1b5c1909f37377bea6d47952f4e07702a8053c9bdf395865763e8781b008f40645a7f86e42248f852c0ad3a63bb6def9299d3b86409
diff --git a/sys-fs/pysize/files/0.2-setuptools-automagic.patch b/sys-fs/pysize/files/0.2-setuptools-automagic.patch
new file mode 100644
index 000000000000..3e27c889f1a5
--- /dev/null
+++ b/sys-fs/pysize/files/0.2-setuptools-automagic.patch
@@ -0,0 +1,12 @@
+diff --git a/setup.py b/setup.py
+index 5550188..123d22c 100755
+--- a/setup.py
++++ b/setup.py
+@@ -2,7 +2,6 @@
+
+ import sys
+
+-sys.path.append('setuptools-0.7a1dev_r53614-py2.4.egg')
+ from setuptools import setup, find_packages
+ from pysize.version import VERSION
+
diff --git a/sys-fs/pysize/files/psyco-0.2-automagic.patch b/sys-fs/pysize/files/psyco-0.2-automagic.patch
new file mode 100644
index 000000000000..696f81fa4feb
--- /dev/null
+++ b/sys-fs/pysize/files/psyco-0.2-automagic.patch
@@ -0,0 +1,20 @@
+--- pysize/main.py 2007-03-11 16:09:53.000000000 +0100
++++ pysize/main.py.new 2009-01-02 00:08:43.384827054 +0100
+@@ -69,17 +69,8 @@
+ stats.print_stats(40)
+ os.remove(prof_file)
+
+-def _try_psyco():
+- try:
+- # Try to use psyco if available
+- import psyco
+- psyco.full()
+- except ImportError:
+- pass
+-
+ def main():
+ install_sigquit_traceback()
+- _try_psyco()
+ locale.setlocale(locale.LC_ALL, '')
+ usage = '%s [OPTIONS] [DIRECTORIES...]' % (sys.argv[0])
+ parser = optparse.OptionParser(usage=usage, version='pysize ' + VERSION)
diff --git a/sys-fs/pysize/metadata.xml b/sys-fs/pysize/metadata.xml
new file mode 100644
index 000000000000..969a14ab6ca2
--- /dev/null
+++ b/sys-fs/pysize/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/pysize/pysize-0.2-r1.ebuild b/sys-fs/pysize/pysize-0.2-r1.ebuild
new file mode 100644
index 000000000000..00d9596d3c9c
--- /dev/null
+++ b/sys-fs/pysize/pysize-0.2-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+
+inherit distutils-r1
+
+DESCRIPTION="A graphical and console tool for exploring the size of directories"
+HOMEPAGE="http://guichaz.free.fr/pysize/"
+SRC_URI="http://guichaz.free.fr/${PN}/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+IUSE="gtk ncurses"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ gtk? ( dev-python/pygtk:2 )
+ ncurses? ( sys-libs/ncurses:0= )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}"/psyco-${PV}-automagic.patch
+ "${FILESDIR}"/${PV}-setuptools-automagic.patch
+ )
+
+python_prepare_all() {
+ if ! use gtk; then
+ sed \
+ -e '/^from pysize.ui.gtk/d' \
+ -e "s~'gtk': ui_gtk.run,~~g" \
+ -e 's:ui_gtk.run,::g' \
+ -i pysize/main.py || die "Failed to remove gtk support"
+ rm -rf pysize/ui/gtk || die "Failed to remove gtk support"
+ fi
+
+ if ! use ncurses; then
+ sed \
+ -e '/^from pysize.ui.curses/d' \
+ -e "s~'curses': ui_curses.run,~~g" \
+ -e 's:ui_curses.run,::g' \
+ -i pysize/main.py || die "Failed to remove ncurses support"
+ rm -rf pysize/ui/curses || die "Failed to remove ncurses support"
+ fi
+
+ sed \
+ -e '/for ui_run in/s:ui_ascii.run:ui_ascii.run, ui_ascii.run:g' \
+ -i pysize/main.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ pushd "${S}"/tests > /dev/null
+ PYTHONPATH=.:../ "${PYTHON}" pysize_tests.py || die "tests failed under ${EPYTHON}"
+ popd > /dev/null
+}
diff --git a/sys-fs/pytagsfs/Manifest b/sys-fs/pytagsfs/Manifest
new file mode 100644
index 000000000000..b09d8d7a4691
--- /dev/null
+++ b/sys-fs/pytagsfs/Manifest
@@ -0,0 +1,5 @@
+DIST pytagsfs-0.9.2.tar.gz 221155 SHA256 8b4e8e50432e8fe5b0c7bca62540f946ecfb606d07eb5ad0a9aeb28d9017635c SHA512 1c9b8e1e6b40ac2114435b8c973168442ff125560f37cfae36e2bf70da229dc57eec74de77b8a3e35d28a5bd92cec6e559ff6d59b49fd09ba94599409805cac8 WHIRLPOOL d95c1e2da43d6636ff284907a829ca6f5d9ff6012dad5c76dd0230896198da8e1dcb472d653fd9219e38ea67178a281fc6a25144cb3b6d744c89bf8fd3beb6b5
+EBUILD pytagsfs-0.9.2.ebuild 976 SHA256 a6f8926ffef40f2964b6ada48f6a2b37c6f6def9da02fa28729cc5f85956a05b SHA512 0bbd2aff1745e56a32b167a3a17eace9e93e8b42c6b385f1109498e8009056dd42aae4abb977033d7aea831d25280615eb0feab1d924caf4898438892536cc4b WHIRLPOOL f4690c62754e7e33f037cc53285def939102f1a69283cacfa55332a1cefbc2d29cf3e97c9442df8555af934763426633ce842ce200e99c5d1c1c64ba6cb61625
+MISC ChangeLog 2665 SHA256 6410326ec9e2848de60268476b601ee0a2b613c5060fd44e2361aaf85588e733 SHA512 f891fd7fda49d3f1984257af1bfbd053aabf675b1d9f93212813ca6ed376cf980a21bf6e0724a6b994523820f8cec5a449644b7da362970b77f8e591a0138957 WHIRLPOOL c165e319d6f59d42fc45782f18ab4a1ae8d6e850526dc8a3e0c7626d27f17ed315fc9c8e644577c8034fa592acb034cce746fb6bdc2f0e0014deb10c96177e9d
+MISC ChangeLog-2015 1200 SHA256 dcfd2f469a8291215b521fbf0ce67efaadd55dc43b08cbc5a5b69e7df72080d3 SHA512 d9213649d003b9bd954dc5f2fb23b7420748b07d808ba455c65b2be08744baa951a81e1089b2533b043d9999d249cd8d6795610a8bbfbb8839994b6481d13251 WHIRLPOOL 3e0fb17e6e275e7358eaac967dbb6312d42676e36a39dc75f159e58af6766dcdcf17addf405906635f2e3d6b93b6551f44acf557c4e2c365bf21e0ec7a3bb0e7
+MISC metadata.xml 325 SHA256 8ccc53c2a4588c2769e819ebab342fd388c54ab80e2855899e5a4a12564e32b3 SHA512 e399ddcc17a2686321126a4ad4cbf90c79aa721ecc15ba9e1dfab55cee23ae4f8b10ddd71f4c6de7af39dc0a5a7546a1f7a3fdb028287e4791c7133dcd7aefd5 WHIRLPOOL ffc92ac9d018b1f6c5d500e042533dd3d0b037bd323165335cbce93b365d902ed53be188148b0c37cfc1d0a668f4213dff8b7753cf6026a1c252de9feb04f832
diff --git a/sys-fs/pytagsfs/metadata.xml b/sys-fs/pytagsfs/metadata.xml
new file mode 100644
index 000000000000..031cc7f8beb0
--- /dev/null
+++ b/sys-fs/pytagsfs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="launchpad">pytagsfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/pytagsfs/pytagsfs-0.9.2.ebuild b/sys-fs/pytagsfs/pytagsfs-0.9.2.ebuild
new file mode 100644
index 000000000000..9128fcc77f67
--- /dev/null
+++ b/sys-fs/pytagsfs/pytagsfs-0.9.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_IN_SOURCE_BUILD=yes
+
+inherit distutils-r1
+
+MY_PV="${PV/_/}"
+MY_P="${PN}-${MY_PV}"
+DESCRIPTION="File system that arranges media files based their tags"
+HOMEPAGE="https://launchpad.net/pytagsfs"
+SRC_URI="http://www.alittletooquiet.net/media/release/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+S="${WORKDIR}/${MY_P}"
+
+RDEPEND=">=dev-python/fuse-python-0.2-r1
+ >=dev-python/sclapp-0.5.2
+ || ( dev-python/inotifyx
+ ( dev-libs/libgamin[python]
+ app-admin/gam-server ) )
+ media-libs/mutagen"
+DEPEND="${RDEPEND}
+ dev-libs/libxml2[python]
+ dev-libs/libxslt
+ app-text/docbook-xsl-stylesheets
+ test? ( dev-python/inotifyx
+ dev-libs/libgamin[python]
+ app-admin/gam-server
+ media-sound/madplay
+ media-sound/vorbis-tools
+ media-libs/flac )"
+
+python_test() {
+ ${PYTHON} setup.py test || die
+}
diff --git a/sys-fs/quota/Manifest b/sys-fs/quota/Manifest
new file mode 100644
index 000000000000..84813bc1c937
--- /dev/null
+++ b/sys-fs/quota/Manifest
@@ -0,0 +1,26 @@
+AUX ldap-scripts/applySystemQuotas.pl 3229 SHA256 dc297aea060370c633dd24a0bb507e0573b30af2c311b6123040f2322398ac59 SHA512 d7565f05cf8fe4b8aea37c4eecbccdf1acc4a0d3e8b11f88a6daf8cbc9c466a8ec2cbaeac67e6aca6bdae49056b4eb639aef2759b7507d9896bc57526109e6c1 WHIRLPOOL 2e5b6c84cd3c843d23524ad7d1d1f919cd4c8176e7e46d6f2a7df4a127e4f8ca088050784cdf34fd6bafbe09a5e750710b0dc2b60be45f906fd3320b55a33b13
+AUX ldap-scripts/edquota_editor 1243 SHA256 b41f25fcdce2286751652cd4f8c68092fd16e0c2b48703a18f00eb4e84d6b7e3 SHA512 ea3750614ddf6ab1ab1f488ba946e052ddaa760b3ec86ddb954a86fd959ae7264b75941b3fd130c64923dfe535ac288c5ec5ddc50149c8197e2a1bbeba70caf6 WHIRLPOOL 0d2ede128f7ca8eecf166359890735a43bed8b988e2047cdb13232f10109f08b6f555531e926733d8d4e9a94cb4b902702d37ca97cedd328a976d20980a04eb3
+AUX ldap-scripts/quota.schema 552 SHA256 3dbfb0edead44b8c86d756f96c7a191deb9a4a2d7c82e2014cc0779834670d38 SHA512 9e08e51834458885a046395002bb19a463533bc0e1fc23f1fda98c41ee48c0f122e284f4a520d6f6ef44d66142395c10f91e18076e0a54e57dd198f7da268748 WHIRLPOOL abf94dea7ee99c8867e6e5d179974c35fc42313a79fd9e3b5a2b31cce0436c3231281619207128a52515cdafd4d94aa84437feb01ca8245a95c4ac7d645bf2c0
+AUX ldap-scripts/setSystemQuotas.pl 3930 SHA256 b068f5b3df52b43065d202bbdb75ebba17e9154d42005a524b0488a54b36251e SHA512 8ecdd09500a849c4572411e904dc78ff967ed71f819969e0a27e697ca6607ca17906318784ccf1aca4fe066666dd2a21d800ce6f224478d0751db1a5c276a6ad WHIRLPOOL 3a75910a638ecd4be5e2501bf7ef44c2e94dc13e6e5660cbf44a8f1c4460d0732117360fc84c38f9b3d031f0363403a2571fbac788a3252ac30edc5318acdba5
+AUX ldap-scripts/setquota-ldap.pl 6039 SHA256 8f212d619badd83b3566378ba3b64099b28eb2c160f1b3539a59cdcca18114dd SHA512 f046c45b09b8afa88d11b4d55e35877c1c7e6c8e87f41f4c2dfcb063a2bd972cf584f88fdea2b42442cb44e460a48f3c9b12c3f5f3a99f759bbdb4ca95ab8e5b WHIRLPOOL 1a1a8578cc2e8396ecf4157d756c9160a782c41ca8b0789c7c2571244c4cee76cb6d054409500b3dfcc23d87e71ccdb6050a463b72adb83a4e730f6eaa241813
+AUX quota-4.03-default_fpic_fpie.patch 1065 SHA256 af14f06681c443024f702f824614b945093a5eb92479aeb7ff64a66ceb9dbc7e SHA512 0d62dcf9261a768b471a2f3f9f1e191911a4579f920521739d8bcc70fc8e51e8dbafcd9e8798f0e894b19acaa0bfd7c5a378ee392c64ba8c91f4dc7940774862 WHIRLPOOL d3234004fbfffb1777b8688c2cfbf79d65066368799f161465854e7d65c83bf79b2e837de15fe0cb7915f7b5f78602e883e3ec3a7c743b2c9b6fad2c6b814325
+AUX quota-4.03-distribute_ldap-scripts.patch 547 SHA256 d2c720b92b8aeb58332688e30d0603efd837f8e64562361fd78fce9cecd05fe7 SHA512 0ac9aecf4749a74af0ae17b045463c7afe8cd46ca3b395ccd1bc46112eb793c593ba875fdd9882e4afb8e3962c0e8dc7a9a9872edd99f52d31bcc159b22ddb2a WHIRLPOOL f32173df16bfbf341d60de5dd679ce1351d01028e8e1d4d605726b46037475f990d54c2285e7e318496987a6e564577ae89e87da5249fad98d332a07647e15ab
+AUX quota-4.03-dont_override_cflags.patch 838 SHA256 bed50d591f574450eaa36317e86f6dece1a981978e12641f934b13ed78759e91 SHA512 64e7dbd966e8e5cf2938367542a292e5538526e01950241fd9d98f378a364acb0fd16928e35151cfdfabe4ac7e3c971def44f7ab085c441c77c3124bbf93603e WHIRLPOOL ef9f546a17ba6b13c7a7aae6cc33cb3fbc6e711ee5527fdbf7a58fa265afd43ac76232b848cad23dcd1fa53421c9409210fcc9269a40fde5fea602a6007a7970
+AUX quota-4.03-explicitely_print_disabled_options.patch 2210 SHA256 32cf85671c5c044efbee871cca2305a10c3b07ff7d272c6e2a7c574bac3da9dc SHA512 9e3080c47ef46a3d4d16c266ec739091d0278c4c9cbda61337c55db1461b97129045c65f51d9d72a5855040cb67942cdf10f728865ded04fb3d865dd36695018 WHIRLPOOL 39075a4ee1f6b0eaa3384a2b91aceb509f975cec7c129f9a8c22cac151fe4ac4570de08f12c0cdbf51e4d362b24104fe75dcaf5e9e0432b2306d2c5c904cd0e2
+AUX quota-4.03-fix_build_without_ldap.patch 2731 SHA256 dcec0a7e7c02f7cfc3ef50354c7a961e1a7e4f07743b9b50585da46df9b00afb SHA512 f43b0701e3545a70f248a749dd99f1da1ecfd317e9ba4333b1496f5a3086bd89b12f31207946c36a872ab98034ae7260b3e403ddffb38a6e2f2128ee86fbc0d0 WHIRLPOOL 20aa9f6f77211bdbf0ea56439290e2f53192f5ed62bfcef5c884cbfa0f03b57f571e185d6fbac001e45024342b69defbea40621ee7e2d0d65188f0dc59d55f17
+AUX quota-4.03-no_rpc.patch 2338 SHA256 9bb9cf75a7cba8cf2366d5dd4bba263085acfe18409814357baa86902bb731fb SHA512 3569d31e2bee3e817a48f579153367bf4306b2df2c074df7928e95cb80533d493b48651fe3498f66982c5918e97db8a89ceb669e25e0010eb77e87a648552353 WHIRLPOOL 57fb034a59cf76d8e5638d0dc3d9b02669202d345f21d5171aaac2d1300b54cc764ea4dee8c8eb41d8258c8eabc702e7cb387fdb001d56fa149dcfd5b217d0a5
+AUX quota-4.03-noldap_linking.patch 2714 SHA256 80140cf194f390b453dd7c12c0d8cd3eea48d55dc27672bc71130c302f120fff SHA512 93617ac00731e9a1e29807c386fb86d5a7c3c646698f7d4faa7837fe363d08a31c96ccb37564b210f8d15e9f331dc6495feac189b2f834c3aff85c0e6e811735 WHIRLPOOL 7463bd9c2e1f4288c75e0973cb389e915a2b8f08455dd121a108a82bee4f4f91f64aef71a26f3091674239c81386bce5f541cfec2a54c4d9c06af687473f84ef
+AUX quota-4.03-repqouta_F_option_arg.patch 947 SHA256 99496ec9aab5e7d098b398c5a0f230594b0ffe79a49d0a6f6b89aac604d9a8c5 SHA512 14bf1dd782861640c4beef0621166006c083266ca0dccfa51d0ee889553b809c6652de82e75710ac961eef3e6fb47d2c528b7111bdefabcbac7967951ec62ac9 WHIRLPOOL 614d2863d08d0612f4264f29c95d4ca82bc400616e57ad2234a6a4a76164a4c99229367c630d8911d5e7a093765bb2772019a2732702ce55ceec772aad4e8bdf
+AUX quota-4.03-respect_docdir.patch 586 SHA256 fb1998bc171e9ad42ad4472cb6c8288f2f3dc01918a6b5778a97a6f081ae510a SHA512 16feff00e236ac6b652b095fe84fa2fa357c849a85124c92ec32c9a22ae487b2a6f49ea4118f0a665cad27756aeec7e775a42014d2e2408ecefcacb1d60231de WHIRLPOOL afe429b90cdf2a0a52b7f3a62917c918b3ac9088ce4522b2b4cebbd6e4efd8755b8f5897dda1c19ea8c37e57e6c854d8d25ab4d6a19d8ca59030d69b6c90de8d
+AUX quota-4.04-glibc226.patch 983 SHA256 95e65628b600939e1ac4f59986e05fd05e56b0b64b03910364be8ddc5df8d154 SHA512 90bcfb9fbb881602cb01000cea691016e6c7c99a5d2fc22b114615fec9ef4752c07253eaeaf80023e6f0768ab95429aac10772f6d12547c43eba4300877f89b9 WHIRLPOOL 250b2802e8891fe46be73517dc789f67457396059f526acd11caad94648e54430c7dfc581fc2ffd36495b016643e48c83729d905ed9d46303e3a440640149704
+AUX quota.confd 359 SHA256 00d1dfb3b893db5d6a213a4edda622c7d64dcafa40b3019f15e070c164286632 SHA512 3253b69932332eff2944753f687d780d651dc2b21b524b7055164b91292c13c346cd46443bd58267b239f72fd8918a7e113eec62871573ee94e33df5eb3c82f8 WHIRLPOOL d7346be0e63e2cb2901d519846969cab4567efd5f47725abc083b6995e65e2a38c56c8a74a50ce1ec72d627997da9dcf1cda343bf6874112d31f6b4428781db9
+AUX quota.rc7 688 SHA256 2a4dc1f695a881d0715e6220dad54b3690d98bf26b618b0fe6cb4ab26823e047 SHA512 6a0536285bb340779cf4989060ed5a10c9c4a24a48d334174cd84cd54938d042f7a4047f837f96fc7a3c88a1d20317f662c984bd88c00b32cbf48302ba82a529 WHIRLPOOL 1e1736857a08090eaf865b2a389b2653fc2651a9e83e2fad3ffa02b79bfe26f7fccf9dac4fa433a5d055808beba82d063aa94acc8f32ea7f1e008aa4fe9429f4
+AUX rpc.rquotad.initd 448 SHA256 ef7eec0fd1921f786580169628c9cc7af82c73d0b2cf420fba0e87f8fd428651 SHA512 c6ab8d6e0e15032bbbee523c2550e7f23d48fb45035d37181e988f2f96cd1ece316681f1b529b51fd1aeb390c5f27a6911f5de52132e90b4cbcfb4c2dfc95954 WHIRLPOOL 09938090009109af7d427982c960866da3e83fa187154d8471a53d253f4faa600152598f90ec8bcaad5ae1af8c2cbf80176363e2c5361c6aec16435f7d9f7843
+DIST quota-4.03.tar.gz 564352 SHA256 9c6c4d9ae7bf30506dd2aa3d8056c4ff2f8d087930d7c721616f5c093bdc674b SHA512 9603940048dcc0c4db6d6e14173769c815641ebc78a0cc457a0622dbfc597319bae1eaad4ef3281c52757995d47424b96dc66426ce540a8b538b996eea2dc5f8 WHIRLPOOL 4a6354f7732e6c60782dbfb60fbfae47c96c438315572dccaf7d2563b8dab5eb46072f999481abe237df8dafaf252b095c9bcd5d58beecdf75db6aca8d46f4ab
+DIST quota-4.04.tar.gz 577303 SHA256 735be1887e7f51f54165e778ae43fc859c04e44d88834ecb2f470e91d4ef8edf SHA512 adc33863d2a966b4c46983fa3926e6b6ba75e260ed21bdff646584237840e6beb0dcfbfd2f655969aa5675c3c398ac2e483afb933f03f983756ebb3352d0eaad WHIRLPOOL ac6466fffaa0954b13a812827bba4f8753640b80fefb6cbbd582a3c916cc7b302e865ddfb3919335a2fe23168bf5894032a7393b4f1ef4615b75f30adc501f3e
+EBUILD quota-4.03.ebuild 1960 SHA256 ea6afebc7b0b73ac4c67372c50f7eee7484ff72e8d8f8958e3e455aaabf9ae08 SHA512 fd2a5affaecc2046a5517b4e96ac46f190c6505f0166cfd52046308cb69846ee154b5c3f7a18f6d70b2507d0253c69b569a255afc91b630f59fa694dd9a81f6f WHIRLPOOL 14498b3b6f403db792891e45593da024e0d275bea49acdf00ec66d20e5d785f88afa576b7eaeaff50544d623e0dd232d9a0bd8c605604f8983f43678079722b9
+EBUILD quota-4.04-r1.ebuild 1581 SHA256 838c258267511181f46df7da50939e52dd97b45496658b95794cc80d5a658ed0 SHA512 6e3249ea0b5fe951708f57dde5c3f8bd1345d62965bcb310b94a5aade3b3509a403008ed83182c18a57214462a81dfd7a9b10006f502ad25c2accd9c45271064 WHIRLPOOL 0063aee28bab3d58bf7ac3fa9b523281cc38754f92c3da13b154aea7fd821360fa6bc25e68bf8f5620d50f7d34b4f35eb98859332daa2a8005459a0c0331f866
+EBUILD quota-4.04.ebuild 1533 SHA256 42ac526669924f2100eb66334bb93d659d36aa29d06c167e1fa5b8aab0d0f702 SHA512 8c19891cac8d58458688541553bb60824324044106fcef0d842ff1c60b739bf36d9affc770617e33ff0e573d98cd2ee0ca09a9ec52a1640398a7a103ae411f67 WHIRLPOOL 19073fbfbe4e8fd87b3bb1f1ba5235aa7dc35a82d0277e58eb168a1629aadf1120abb204f3abe08ce5b828d2aad776def30803c84b2945d63cbdd6ff1dee8de0
+MISC ChangeLog 5012 SHA256 f9b564d481f5ca338cb368e1c6438ded908af53babe2ac0bbae34c5b1c47830a SHA512 e351b146d0415098bb55745b3849355f011594f16b196f2848116051c1f26b1b84896643f7f617cb40b79da5f16b97cdc35330e5eb828b728d9118eb6c9e0d0b WHIRLPOOL 41fa66d3798eb09b228ffa38f52d3468e3a1c56a03b47e4799bccc1b0e4dd3b3208b9d8196a12197e8b43d9f55176f777a57e0073429f9d56b02d531412f687c
+MISC ChangeLog-2015 13798 SHA256 23bceb235276c26d40d568923540b29bebd6cc295861477cc7e31fd9e1fc1583 SHA512 a19963fc3710db18ed6ea7928f069d87cd2893120e7e89851d1333f28e05c3a7326277dd6697a4aa598414c59d308aa4732efb488f746276da6b481a30678be9 WHIRLPOOL d2501d19633f314b9deb14ca03d2cdf66f70dfbd50196430abd53de58ccb228f7b929d7aa589fbf08b861a2b9d8b012a8e8c3930cf8ac743baa7d99bfcd22289
+MISC metadata.xml 482 SHA256 020bd47324be182e87b05a97219e69a9bde9d191433fe4d16c1796068e099374 SHA512 50b2143425f8ab315784fab4d9e569d2f80893c91ba64b4c209947eb79688ed9e8e23955b9f04406d699de6f28e9c10dad78889853d05f84191af65911d7a38e WHIRLPOOL dd6fbd1c604f87b4d8d13644eab114946fd740ceff45d9eb101157dcb55b6788b5053d7c8b9ca89c655fbc12bd5fcbfd5c3bde954810d71e8987258cf284273e
diff --git a/sys-fs/quota/files/ldap-scripts/applySystemQuotas.pl b/sys-fs/quota/files/ldap-scripts/applySystemQuotas.pl
new file mode 100755
index 000000000000..41c74d919d37
--- /dev/null
+++ b/sys-fs/quota/files/ldap-scripts/applySystemQuotas.pl
@@ -0,0 +1,104 @@
+#!/usr/bin/perl -w
+
+# $0 -b "ou=People,dc=borgia,dc=com" -F '(attr=value)'
+
+# Synopsis
+# applyQuotas.pl is a script solely for making the quota set within LDAP take
+# affect by running the linuxquota tool edquota with the figures set in LDAP.
+# This tool is capable of applying standard LDAP filters to the user-supplied
+# base DN for applying multiple users' quotas at once.
+
+# Examples:
+# Apply the quotas using the linuxquota tool edquota for user stefan
+# ./applySystemQuotas.pl -b "uid=stefan,ou=People,dc=borgia,dc=com"
+#
+# Apply the quotas using the linuxquota tool edquota for all People with description of Student
+# ./applySystemQuotas.pl -b "ou=People,dc=borgia,dc=com" -F "(description=Student)"
+
+use strict;
+use Net::LDAP;
+use Getopt::Long;
+
+chomp(my $Password = `cat /etc/ldap.secret`);
+my $Host = 'localhost';
+my $Port = '389';
+my $BindDN = 'cn=Manager,dc=borgia,dc=com';
+my $SSL = 0;
+my $edquota_editor = '/usr/sbin/edquota_editor';
+my $edquota = '/usr/sbin/edquota';
+
+my $b = '';
+my $F = '';
+GetOptions(
+ 'b=s' => \$b,
+ 'F=s' => \$F,
+);
+
+die "Usage: $0 -b basedn [-F '(extrafilter)']\n" unless $b;
+
+my $ldap = connectLDAP();
+
+my $search;
+$search = $ldap->search(
+ base => $b,
+ filter => "(&(objectClass=systemQuotas)$F)",
+ attrs => ['uid', 'quota'],
+);
+$search->code && die $search->error;
+my $i = 0;
+my $max = $search->count;
+for ( $i=0; $i<$max; $i++ ) {
+ my $entry = $search->entry($i);
+ my $editor = $ENV{'VISUAL'} if $ENV{'VISUAL'};
+ $ENV{'VISUAL'} = $edquota_editor;
+ $ENV{'QUOTA_USER'} = $entry->get_value('uid');
+ # Delete all existing quotas for QUOTA_USER
+ $ENV{'QUOTA_FILESYS'} = '*';
+ $ENV{'QUOTA_SBLOCKS'} = 0;
+ $ENV{'QUOTA_HBLOCKS'} = 0;
+ $ENV{'QUOTA_SFILES'} = 0;
+ $ENV{'QUOTA_HFILES'} = 0;
+ print "$ENV{'QUOTA_USER'}: $ENV{'QUOTA_FILESYS'}:$ENV{'QUOTA_SBLOCKS'},$ENV{'QUOTA_HBLOCKS'},$ENV{'QUOTA_SFILES'},$ENV{'QUOTA_HFILES'}\n";
+ qx(/usr/sbin/edquota -u $ENV{'QUOTA_USER'});
+ my @quotas = $entry->get_value('quota');
+ if ( $#quotas >= 0 ) {
+ foreach ( @quotas ) {
+ my @quota = split /:/;
+ $ENV{'QUOTA_FILESYS'} = $quota[0];
+ $ENV{'QUOTA_SBLOCKS'} = $quota[1];
+ $ENV{'QUOTA_HBLOCKS'} = $quota[2];
+ $ENV{'QUOTA_SFILES'} = $quota[3];
+ $ENV{'QUOTA_HFILES'} = $quota[4];
+ print "$ENV{'QUOTA_USER'}: $ENV{'QUOTA_FILESYS'}:$ENV{'QUOTA_SBLOCKS'},$ENV{'QUOTA_HBLOCKS'},$ENV{'QUOTA_SFILES'},$ENV{'QUOTA_HFILES'}\n";
+ qx($edquota -u $ENV{'QUOTA_USER'});
+ }
+ }
+ if ($editor) {
+ $ENV{'VISUAL'} = $editor;
+ }
+ else {
+ delete $ENV{'VISUAL'};
+ }
+}
+$search = $ldap->unbind;
+
+sub connectLDAP {
+ # bind to a directory with dn and password
+ my $ldap = Net::LDAP->new(
+ $Host,
+ port => $Port,
+ version => 3,
+# debug => 0xffff,
+ ) or die "Can't contact LDAP server ($@)\n";
+ if ( $SSL ) {
+ $ldap->start_tls(
+ # verify => 'require',
+ # clientcert => 'mycert.pem',
+ # clientkey => 'mykey.pem',
+ # decryptkey => sub { 'secret'; },
+ # capath => '/usr/local/cacerts/'
+ );
+ }
+ $ldap->bind($BindDN, password=>$Password);
+ return $ldap;
+}
diff --git a/sys-fs/quota/files/ldap-scripts/edquota_editor b/sys-fs/quota/files/ldap-scripts/edquota_editor
new file mode 100755
index 000000000000..fdebd09e35a4
--- /dev/null
+++ b/sys-fs/quota/files/ldap-scripts/edquota_editor
@@ -0,0 +1,32 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+die "QUOTA_USER environment variable not set\n" unless defined $ENV{'QUOTA_USER'};
+die "QUOTA_FILESYS environment variable not set\n" unless defined $ENV{'QUOTA_FILESYS'};
+die "QUOTA_SBLOCKS environment variable not set\n" unless defined $ENV{'QUOTA_SBLOCKS'};
+die "QUOTA_HBLOCKS environment variable not set\n" unless defined $ENV{'QUOTA_HBLOCKS'};
+die "QUOTA_SFILES environment variable not set\n" unless defined $ENV{'QUOTA_SFILES'};
+die "QUOTA_HFILES environment variable not set\n" unless defined $ENV{'QUOTA_HFILES'};
+
+open FILE, $ARGV[0];
+my $qdata = join '', (@_=<FILE>);
+close FILE;
+open FILE, ">$ARGV[0]";
+print FILE &edit_quota_file($qdata, $ENV{'QUOTA_FILESYS'}, $ENV{'QUOTA_SBLOCKS'}, $ENV{'QUOTA_HBLOCKS'}, $ENV{'QUOTA_SFILES'}, $ENV{'QUOTA_HFILES'});
+close FILE;
+
+# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
+sub edit_quota_file {
+ my($rv, $line, @line, $i);
+ @line = split /\n/, $_[0];
+ for ( $i=0; $i<@line; $i++ ) {
+ if ($line[$i] =~ /^\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/ && ($1 eq $_[1] || $_[1] eq '*')) {
+ # new-style line to change
+ $rv .= " $1 $2 $_[2] $_[3] $5 $_[4] $_[5]\n";
+ } else {
+ $rv .= "$line[$i]\n";
+ }
+ }
+ return $rv;
+}
diff --git a/sys-fs/quota/files/ldap-scripts/quota.schema b/sys-fs/quota/files/ldap-scripts/quota.schema
new file mode 100644
index 000000000000..b5e216f8db96
--- /dev/null
+++ b/sys-fs/quota/files/ldap-scripts/quota.schema
@@ -0,0 +1,18 @@
+##
+## schema file for Unix Quotas
+## Schema for storing Unix Quotas in LDAP
+## OIDs are owned by Cogent Innovators, LLC
+##
+## 1.3.6.1.4.1.19937.1.1.x - attributetypes
+## 1.3.6.1.4.1.19937.1.2.x - objectclasses
+##
+
+attributetype ( 1.3.6.1.4.1.19937.1.1.1 NAME 'quota'
+ DESC 'Quotas (FileSystem:BlocksSoft,BlocksHard,InodesSoft,InodesHard)'
+ EQUALITY caseIgnoreIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} )
+
+objectclass ( 1.3.6.1.4.1.19937.1.2.1 NAME 'systemQuotas' SUP posixAccount AUXILIARY
+ DESC 'System Quotas'
+ MUST ( uid )
+ MAY ( quota ))
diff --git a/sys-fs/quota/files/ldap-scripts/setSystemQuotas.pl b/sys-fs/quota/files/ldap-scripts/setSystemQuotas.pl
new file mode 100755
index 000000000000..90ab1e8076c9
--- /dev/null
+++ b/sys-fs/quota/files/ldap-scripts/setSystemQuotas.pl
@@ -0,0 +1,140 @@
+#!/usr/bin/perl -w
+
+# $0 -b "ou=People,dc=borgia,dc=com" -Q /dev/with/quota=0:0:0:0 -F '(attr=value)'
+
+# Synopsis
+# setSystemQuotas.pl is a script solely for modifying the quota attribute in
+# LDAP. It expects that the users you intend to have quotas already have the
+# systemQuotas objectClass set.
+# This tool is capable of applying standard LDAP filters to the user-supplied
+# base DN for modifying multiple users' quotas at once.
+
+# Examples:
+# Set quota on /dev/sda7 and /dev/sda8 for user stefan
+# ./setSystemQuotas.pl -b "uid=stefan,ou=People,dc=borgia,dc=com" -Q /dev/sda7=4000000:4400000:10000:11000 -Q /dev/sda8=4000000:4400000:10000:11000
+#
+# Set quota on /dev/sda8 for user all People with description of Student
+# ./setSystemQuotas.pl -b "ou=People,dc=borgia,dc=com" -Q /dev/sda8=40000:44000:1000:1100 -F "(description=Student)"
+#
+# Delete quotas for user stefan
+# ./setSystemQuotas.pl -b "uid=stefan,ou=People,dc=borgia,dc=com"
+
+use strict;
+use Net::LDAP;
+use Getopt::Long;
+
+chomp(my $Password = `cat /etc/ldap.secret`);
+my $Host = 'localhost';
+my $Port = '389';
+my $BindDN = 'cn=Manager,dc=borgia,dc=com';
+my $SSL = 0;
+
+my $b = '';
+my %Q = ();
+my $F = '';
+GetOptions(
+ 'b=s' => \$b,
+ 'Q=s' => \%Q,
+ 'F=s' => \$F,
+);
+die "Usage: $0 -b userdn [-F '(extrafilter)'] [-Q /fs=sb:hb:sf:hf ...]\n" unless $b;
+foreach ( keys %Q ) {
+ local @_ = split /:/, $Q{$_};
+ unless ( $#_ == 3 ) {
+ print "Ignoring $_: invalid format\n";
+ delete $Q{$_};
+ }
+}
+
+my $ldap = connectLDAP();
+
+my $quota = {};
+my $search;
+$search = $ldap->search(
+ base => $b,
+ filter => "(&(objectClass=systemQuotas)$F)",
+ attrs => ['*', 'quota'],
+);
+$search->code && die $search->error;
+my $i = 0;
+my $max = $search->count;
+for ( $i=0; $i<$max; $i++ ) {
+ my $entry = $search->entry($i);
+ my $dn = $entry->dn;
+ if ( keys %Q ) {
+ $quota->{$dn} = 1;
+ foreach ( $entry->get_value('quota') ) {
+ my @quota = split /:/;
+ my $fs = shift @quota;
+ delete $quota->{$dn} if $quota->{$dn} == 1;
+ $quota->{$dn}->{$fs} = join ':', @quota;
+ }
+ } else {
+ $quota->{$dn} = 0;
+ delete $quota->{$dn} unless $entry->get_value('quota');
+ }
+}
+
+foreach my $dn ( keys %{$quota} ) {
+ if ( ref $quota->{$dn} eq 'HASH' ) {
+print STDERR "Modify $dn:\n";
+ foreach ( keys %Q ) {
+print STDERR "\t$_:$Q{$_}\n";
+ $quota->{$dn}->{$_} = $Q{$_};
+ }
+ my @quota = map { "$_:$quota->{$dn}->{$_}" } keys %{$quota->{$dn}};
+ my $modify = $ldap->modify(
+ $dn,
+ replace => {
+ quota => [@quota],
+ },
+ );
+ $modify->code && warn "Failed to modify quota: ", $modify->error, "\n";
+ } else {
+ if ( $quota->{$dn} == 1 ) {
+ delete $quota->{$dn};
+print STDERR "Add $dn:\n";
+ foreach ( keys %Q ) {
+print STDERR "\t$_:$Q{$_}\n";
+ $quota->{$dn}->{$_} = $Q{$_}
+ }
+ my @quota = map { "$_:$quota->{$dn}->{$_}" } keys %{$quota->{$dn}};
+ my $modify = $ldap->modify(
+ $dn,
+ add => {
+ quota => [@quota],
+ },
+ );
+ $modify->code && warn "Failed to modify quota: ", $modify->error, "\n";
+ } elsif ( $quota->{$dn} == 0 ) {
+print STDERR "Delete $dn:\n";
+ my $modify = $ldap->modify(
+ $dn,
+ delete => ['quota'],
+ );
+ $modify->code && warn "Failed to modify quota: ", $modify->error, "\n";
+ }
+ }
+}
+$ldap->unbind;
+
+sub connectLDAP {
+ # bind to a directory with dn and password
+ my $ldap = Net::LDAP->new(
+ $Host,
+ port => $Port,
+ version => 3,
+# debug => 0xffff,
+ ) or die "Can't contact LDAP server ($@)\n";
+ if ( $SSL ) {
+ $ldap->start_tls(
+ # verify => 'require',
+ # clientcert => 'mycert.pem',
+ # clientkey => 'mykey.pem',
+ # decryptkey => sub { 'secret'; },
+ # capath => '/usr/local/cacerts/'
+ );
+ }
+ $ldap->bind($BindDN, password=>$Password);
+ return $ldap;
+}
diff --git a/sys-fs/quota/files/ldap-scripts/setquota-ldap.pl b/sys-fs/quota/files/ldap-scripts/setquota-ldap.pl
new file mode 100644
index 000000000000..7cafc449d824
--- /dev/null
+++ b/sys-fs/quota/files/ldap-scripts/setquota-ldap.pl
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+
+# A Perl wrapper for setquota utility which updates LDAP accordingly.
+
+# /etc/fstab: usrquota,grpquota
+# mount -o remount /f/s
+# touch /f/s/aquota.{user,group}
+# chmod 600 /f/s/aquota.{user,group}
+# quotacheck -cguvamf
+
+use strict;
+use warnings;
+use Net::LDAP;
+use Net::LDAP::Entry;
+use Getopt::Long;
+Getopt::Long::Configure ("bundling");
+
+my $help = $#ARGV >= 0 ? 0 : 1;
+my $ldaphost = 'localhost';
+my $passwordfile = '';
+my $password = '';
+my $binddn = $ENV{BINDDN};
+my $basedn = $ENV{BASEDN};
+my $oc = 'systemQuotas';
+my $attr = 'quota';
+my %Q = ();
+my $F = 'cn=*';
+GetOptions(
+ 'help|?' => \$help,
+ 'oc|o=s' => \$oc,
+ 'attr|a=s' => \$attr,
+ 'quota|Q=s' => \%Q,
+ 'filter|F=s' => \$F,
+ 'ldaphost|h=s' => \$ldaphost,
+ 'basedn|b=s' => \$basedn,
+ 'binddn|D=s' => \$binddn,
+ 'password|w=s' => \$password,
+ 'passwordfile|W=s' => \$passwordfile,
+);
+die "Usage: $0 -b basedn [-o objectClass] [-a attr] [-F '(extrafilter)'] [-Q
+/f/s=sb:hb:gb:sf:hf:gf ...]\n" if $help;
+%Q = checkQ(%Q);
+
+my ($ldap, $bind);
+if ( $ldap = Net::LDAP->new($ldaphost, version => 3, timeout => 3) ) {
+ if ( $binddn && $password ) {
+ $bind = $ldap->bind($binddn, password=>$password);
+ } elsif ( $binddn && $passwordfile ){
+ $bind = $ldap->bind($binddn, password=>bindpw($passwordfile));
+ } else {
+ $bind = $ldap->bind();
+ }
+ die "Unable to connect to LDAP\n" if $bind->code;
+ undef $passwordfile;
+} else {
+ die "Unable to connect to LDAP\n";
+}
+
+my $search = $ARGV[0] ? $ldap->search(base=>$basedn, filter=>"uid=$ARGV[0]") : $ldap->search(base=>$basedn, filter=>$F);
+if ( $search->code ) {
+ die "LDAP Error: ", error($search), "\n";
+} elsif ( $search->count <= 0 ) {
+ die "0 results found in LDAP\n";
+} else {
+ my $i = 0;
+ for ( $i=0; $i<$search->count; $i++ ) {
+ my $entry = $search->entry($i);
+ my @oc = $entry->get_value('objectClass');
+ # objectClass: $oc
+ unless ( grep { /^$oc$/ } @oc ) {
+ my $modify = $ldap->modify($entry->dn, add => {objectClass => $oc});
+ if ( $modify->code ) {
+ print STDERR "Failed to add objectClass $oc:", error($modify), "\n";
+ }
+ }
+ # $attr: /f/s=sb:hb:sf:hf
+ if ( $entry->exists($attr) ) {
+ my @attr = $entry->get_value($attr);
+ if ( keys %Q ) {
+ foreach my $fs ( keys %Q ) {
+ foreach ( @attr ) {
+ next unless /^$fs=/;
+ my $modify = $ldap->modify($entry->dn, delete => {$attr => "$_"});
+ if ( $modify->code ) {
+ print STDERR "Failed to delete $attr: $_: ", error($modify), "\n";
+ }
+ }
+ my $modify = $ldap->modify($entry->dn, add => {$attr => "$fs=$Q{$fs}"});
+ if ( $modify->code ) {
+ print STDERR "Failed to add $attr: $fs=$Q{$fs}: ", error($modify), "\n";
+ } else {
+ print STDERR "Failed to setquota: $fs=$Q{$fs}\n" if setquota($entry->get_value('uid'), $fs, $Q{$fs});
+ }
+ }
+ } else {
+ my $modify = $ldap->modify($entry->dn, delete => [($attr)]);
+ if ( $modify->code ) {
+ print STDERR "Failed to delete $attr: ", error($modify), "\n";
+ } else {
+ foreach ( @attr ) {
+ my ($fs) = m!^(/[^=]*)!;
+ $Q{$fs} = '0:0:0:0:0:0';
+ print STDERR "Failed to setquota: $fs=$Q{$fs}\n" if setquota($entry->get_value('uid'), $fs, $Q{$fs});
+ }
+ }
+ }
+ } else {
+ if ( keys %Q ) {
+ foreach my $fs ( keys %Q ) {
+ my $modify = $ldap->modify($entry->dn, add => {$attr => "$fs=$Q{$fs}"});
+ if ( $modify->code ) {
+ print STDERR "Failed to add $attr: $fs=$Q{$fs}: ", error($modify), "\n";
+ } else {
+ print STDERR "Failed to setquota: $fs=$Q{$fs}\n" if setquota($entry->get_value('uid'), $fs, $Q{$fs});
+ }
+ }
+ }
+ }
+ }
+}
+
+sub setquota {
+ $_[2] = '0:0:0:0:0:0' unless $_[2];
+ $_[2] =~ /^(\d+):(\d+):(\d+):(\d+):(\d+):(\d+)$/;
+ qx{/usr/sbin/setquota -u $_[0] $1 $2 $4 $5 $_[1]};
+ qx{/usr/sbin/setquota -T -u $_[0] $3 $6 $_[1]};
+ return 0;
+}
+
+sub checkQ {
+ my (%Q) = @_;
+ foreach ( keys %Q ) {
+ die "$_: invalid format\n" unless m!^(/[^=]*)! && $Q{$_} =~ /^(\d+):(\d+):(\d+):(\d+):(\d+):(\d+)$/;
+ }
+ return %Q;
+}
+
+sub bindpw {
+ my ($passwordfile) = @_;
+ open P, $passwordfile or die "Can't open passwordfile: $!";
+ chomp(my $password = <P>);
+ close P;
+ return $password;
+}
+
+sub error {
+ return $_[0]->error, "(", $_[0]->code, ")";
+}
diff --git a/sys-fs/quota/files/quota-4.03-default_fpic_fpie.patch b/sys-fs/quota/files/quota-4.03-default_fpic_fpie.patch
new file mode 100644
index 000000000000..2ff519f2b846
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-default_fpic_fpie.patch
@@ -0,0 +1,32 @@
+commit cd9dff0b5b53279442458360003831b6c14adc22
+Author: Tomáš Chvátal <tchvatal@suse.com>
+Date: Tue Jan 5 11:20:52 2016 +0100
+
+ Set -fPIC and -pie as default params when building
+
+ Signed-off-by: Tomáš Chvátal <tchvatal@suse.cz>
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/Makefile.am b/Makefile.am
+index 7c7a866..77f8400 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,4 +1,5 @@
+ ACLOCAL_AMFLAGS = -I m4
++AM_LDFLAGS = -pie
+
+ BUILT_SOURCES = rquota.h rquota.c rquota_clnt.c
+
+diff --git a/configure.ac b/configure.ac
+index 1552c15..68d5924 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -53,7 +53,7 @@ AS_IF([test "x${prefix}" = "xNONE"], [
+ # ================
+ # Check for cflags
+ # ================
+-CFLAGS="$CFLAGS -D_GNU_SOURCE -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
++CFLAGS="$CFLAGS -D_GNU_SOURCE -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC"
+ AC_ARG_ENABLE([werror],
+ [AS_HELP_STRING([--enable-werror], [Treat all warnings as errors, useful for development])],
+ [enable_werror="$enableval"],
diff --git a/sys-fs/quota/files/quota-4.03-distribute_ldap-scripts.patch b/sys-fs/quota/files/quota-4.03-distribute_ldap-scripts.patch
new file mode 100644
index 000000000000..83339159e0fb
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-distribute_ldap-scripts.patch
@@ -0,0 +1,23 @@
+commit 861154efb90ed049e0473cc36935b8d03c78a869
+Author: Tomáš Chvátal <tchvatal@suse.com>
+Date: Mon Jan 4 13:01:36 2016 +0100
+
+ Distribute ldap-scripts directory too
+
+ Signed-off-by: Tomáš Chvátal <tchvatal@suse.com>
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/Makefile.am b/Makefile.am
+index eb62617..a880ebe 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -52,7 +52,8 @@ EXTRA_DIST = \
+ $(man_MANS) \
+ $(rpcsvc_DATA) \
+ autogen.sh \
+- Changelog
++ Changelog \
++ ldap-scripts
+
+ noinst_LIBRARIES = \
+ libquota.a \
diff --git a/sys-fs/quota/files/quota-4.03-dont_override_cflags.patch b/sys-fs/quota/files/quota-4.03-dont_override_cflags.patch
new file mode 100644
index 000000000000..e59341a702ac
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-dont_override_cflags.patch
@@ -0,0 +1,22 @@
+commit 776757a23e9930588950c7fcbc7827ec7a3e51c4
+Author: Tomáš Chvátal <tchvatal@suse.com>
+Date: Mon Jan 4 15:48:19 2016 +0100
+
+ Do not accidentaly override commandline passed CFLAGS.
+
+ Signed-off-by: Tomáš Chvátal <tchvatal@suse.com>
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/configure.ac b/configure.ac
+index 3ba1386..1552c15 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -53,7 +53,7 @@ AS_IF([test "x${prefix}" = "xNONE"], [
+ # ================
+ # Check for cflags
+ # ================
+-CFLAGS="-D_GNU_SOURCE -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
++CFLAGS="$CFLAGS -D_GNU_SOURCE -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+ AC_ARG_ENABLE([werror],
+ [AS_HELP_STRING([--enable-werror], [Treat all warnings as errors, useful for development])],
+ [enable_werror="$enableval"],
diff --git a/sys-fs/quota/files/quota-4.03-explicitely_print_disabled_options.patch b/sys-fs/quota/files/quota-4.03-explicitely_print_disabled_options.patch
new file mode 100644
index 000000000000..29627c03ab32
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-explicitely_print_disabled_options.patch
@@ -0,0 +1,69 @@
+commit 6ccb66159a9eee6ca114b11b70eb06f4ac6900d7
+Author: Jan Kara <jack@suse.cz>
+Date: Mon Jan 4 15:36:27 2016 +0100
+
+ Print explicitely disabled options properly
+
+ Currently we printed only an empty string when some build option was
+ disabled explicitely via --disable-foo. Print 'no' in that case as well.
+
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/configure.ac b/configure.ac
+index 39631c4..3ba1386 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -74,7 +74,7 @@ AC_ARG_ENABLE([ldapmail],
+ AS_IF([test "x$enable_ldapmail" != "xno"], [
+ build_ldap="yes"
+ AC_CHECK_LIB([ldap], [ldap_initialize], [], [
+- build_ldap=no
++ build_ldap="no"
+ AS_IF([test "x$enable_ldapmail" = "xyes"], [
+ AC_MSG_ERROR([LDAP support required but library not found.]);
+ ])
+@@ -84,6 +84,8 @@ AS_IF([test "x$enable_ldapmail" != "xno"], [
+ AC_DEFINE([USE_LDAP_MAIL_LOOKUP], 1, [Lookup email address using LDAP])
+ COMPILE_OPTS="$COMPILE_OPTS USE_LDAP_MAIL_LOOKUP"
+ ])
++], [
++ build_ldap="no"
+ ])
+ AC_SUBST(LDAP_LIBS)
+
+@@ -113,6 +115,8 @@ AS_IF([test "x$enable_ext2direct" != "xno"], [
+ AC_DEFINE([EXT2_DIRECT], 1, [Scanning of ext? filesystems using e2fslib])
+ COMPILE_OPTS="$COMPILE_OPTS EXT2_DIRECT"
+ ])
++], [
++ build_ext2direct="no"
+ ])
+ AC_SUBST(EXT2FS_CFLAGS)
+ AC_SUBST(EXT2FS_LIBS)
+@@ -141,6 +145,8 @@ AS_IF([test "x$enable_netlink" != "xno"], [
+ AC_MSG_ERROR([Required libnl3 libraries for quota netlink daemon not found.])
+ ])
+ ])
++], [
++ build_netlink="no"
+ ])
+ AM_CONDITIONAL([WITH_NETLINK], [test "x$build_netlink" != "xno"])
+ AC_SUBST(DBUS_CFLAGS)
+@@ -171,6 +177,8 @@ AS_IF([test "x$enable_libwrap" != "xno"], [
+ AC_DEFINE([HOSTS_ACCESS], 1, [Use hosts.allow and hosts.deny for access checking of rpc.rquotad])
+ COMPILE_OPTS="$COMPILE_OPTS HOSTS_ACCESS"
+ ])
++], [
++ build_libwrap="no"
+ ])
+ AC_SUBST(WRAP_LIBS)
+
+@@ -199,6 +207,8 @@ AS_IF([test x"$enable_rpc" != "xno"], [
+ AC_DEFINE([RPC], 1, [Support for RPC])
+ COMPILE_OPTS="$COMPILE_OPTS RPC"
+ ])
++], [
++ build_rpc="no"
+ ])
+ AM_CONDITIONAL([WITH_RPC], [test x"$build_rpc" != "xno"])
+
diff --git a/sys-fs/quota/files/quota-4.03-fix_build_without_ldap.patch b/sys-fs/quota/files/quota-4.03-fix_build_without_ldap.patch
new file mode 100644
index 000000000000..ba838bfe2838
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-fix_build_without_ldap.patch
@@ -0,0 +1,85 @@
+commit 39fd30ce57e3c34c3649866bf9345a71f0b78667
+Author: Jan Kara <jack@suse.cz>
+Date: Mon Jan 4 15:10:53 2016 +0100
+
+ Fix build with disabled ldap
+
+ Reported-by: Tomas Chvatal <tchvatal@suse.com>
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/warnquota.c b/warnquota.c
+index 3734f0e..e9868c1 100644
+--- a/warnquota.c
++++ b/warnquota.c
+@@ -109,13 +109,13 @@ struct configparams {
+ char *user_signature;
+ char *group_message;
+ char *group_signature;
++ time_t cc_before;
++#ifdef USE_LDAP_MAIL_LOOKUP
+ int use_ldap_mail; /* 0 */
++ int ldap_is_setup; /* 0 */
+ int ldap_starttls; /* 0 */
+ int ldap_tls; /* LDAP_OPT_X_TLS_NEVER */
+ int ldap_vers; /* LDAP_VERSION3 */
+- time_t cc_before;
+-#ifdef USE_LDAP_MAIL_LOOKUP
+- int ldap_is_setup; /* 0 */
+ char ldap_host[CNF_BUFFER];
+ int ldap_port;
+ char ldap_uri[CNF_BUFFER];
+@@ -729,13 +729,13 @@ static int readconfigfile(const char *filename, struct configparams *config)
+ }
+ maildev[0] = 0;
+ config->user_signature = config->user_message = config->group_signature = config->group_message = NULL;
++ config->cc_before = -1;
++
++#ifdef USE_LDAP_MAIL_LOOKUP
+ config->use_ldap_mail = 0;
+ config->ldap_starttls = 0;
+ config->ldap_tls = LDAP_OPT_X_TLS_NEVER;
+ config->ldap_vers = LDAP_VERSION3;
+- config->cc_before = -1;
+-
+-#ifdef USE_LDAP_MAIL_LOOKUP
+ config->ldap_port = config->ldap_is_setup = 0;
+ config->ldap_host[0] = 0;
+ config->ldap_uri[0] = 0;
+@@ -820,6 +820,18 @@ static int readconfigfile(const char *filename, struct configparams *config)
+ create_eoln(config->group_signature);
+ verify_format(config->group_signature, "GROUP_SIGNATURE");
+ }
++ else if (!strcmp(var, "CC_BEFORE")) {
++ int num;
++ char unit[10];
++
++ if (sscanf(value, "%d%s", &num, unit) != 2)
++ goto cc_parse_err;
++ if (str2timeunits(num, unit, &config->cc_before) < 0) {
++cc_parse_err:
++ die(1, _("Cannot parse time at CC_BEFORE variable (line %d).\n"), line);
++ }
++ }
++#ifdef USE_LDAP_MAIL_LOOKUP
+ else if (!strcmp(var, "LDAP_MAIL")) {
+ if(strcasecmp(value, "true") == 0)
+ config->use_ldap_mail = 1;
+@@ -846,18 +858,6 @@ static int readconfigfile(const char *filename, struct configparams *config)
+ else
+ config->ldap_starttls = 0;
+ }
+- else if (!strcmp(var, "CC_BEFORE")) {
+- int num;
+- char unit[10];
+-
+- if (sscanf(value, "%d%s", &num, unit) != 2)
+- goto cc_parse_err;
+- if (str2timeunits(num, unit, &config->cc_before) < 0) {
+-cc_parse_err:
+- die(1, _("Cannot parse time at CC_BEFORE variable (line %d).\n"), line);
+- }
+- }
+-#ifdef USE_LDAP_MAIL_LOOKUP
+ else if (!strcmp(var, "LDAP_HOST"))
+ sstrncpy(config->ldap_host, value, CNF_BUFFER);
+ else if (!strcmp(var, "LDAP_PORT"))
diff --git a/sys-fs/quota/files/quota-4.03-no_rpc.patch b/sys-fs/quota/files/quota-4.03-no_rpc.patch
new file mode 100644
index 000000000000..c4f5007fca5d
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-no_rpc.patch
@@ -0,0 +1,57 @@
+From 07ec5c783ac16ed20735d6cb8ab167833f5877ee Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Mon, 15 Feb 2016 14:36:28 +0100
+Subject: [PATCH] Don't build rpc.rquotad when --disable-rpc was requested.
+
+This fixes a buch of undefined references:
+
+x86_64-pc-linux-gnu-gcc -march=native -mtune=native -O2 -pipe -D_GNU_SOURCE -Wa
+ll -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -pie -Wl,-O1 -Wl,--hash-st
+yle=gnu -Wl,--sort-common -Wl,--as-needed -o rpc.rquotad rquota_server.o rquota_
+svc.o svc_socket.o libquota.a
+rquota_svc.o: In function `rquotaprog_2':
+rquota_svc.c:(.text+0x1d3): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x1da): undefined reference to `xdr_ext_setquota_args'
+rquota_svc.c:(.text+0x2b2): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x2b9): undefined reference to `xdr_ext_setquota_args'
+rquota_svc.c:(.text+0x2ff): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x306): undefined reference to `xdr_ext_getquota_args'
+rquota_svc.c:(.text+0x31a): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x321): undefined reference to `xdr_ext_getquota_args'
+rquota_svc.o: In function `rquotaprog_1':
+rquota_svc.c:(.text+0x3f3): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x3fa): undefined reference to `xdr_setquota_args'
+rquota_svc.c:(.text+0x4d2): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x4d9): undefined reference to `xdr_setquota_args'
+rquota_svc.c:(.text+0x51f): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x526): undefined reference to `xdr_getquota_args'
+rquota_svc.c:(.text+0x53a): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x541): undefined reference to `xdr_getquota_args'
+collect2: error: ld returned 1 exit status
+Makefile:901: recipe for target 'rpc.rquotad' failed
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ Makefile.am | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 77f8400..6d7ea0e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -116,8 +116,11 @@ sbin_PROGRAMS = \
+ xqmstats \
+ edquota \
+ setquota \
+- convertquota \
++ convertquota
++if WITH_RPC
++sbin_PROGRAMS += \
+ rpc.rquotad
++endif
+ if WITH_NETLINK
+ sbin_PROGRAMS += \
+ quota_nld
+--
+2.7.1
+
diff --git a/sys-fs/quota/files/quota-4.03-noldap_linking.patch b/sys-fs/quota/files/quota-4.03-noldap_linking.patch
new file mode 100644
index 000000000000..dbaca69bb7d3
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-noldap_linking.patch
@@ -0,0 +1,75 @@
+commit 1d9542df5d2ae5c21a1e96d100f899b3d7b2f27c
+Author: Jan Kara <jack@suse.cz>
+Date: Tue Jan 19 11:40:15 2016 +0100
+
+ Don't link all binaries with ldap library
+
+ The default action-if-found of AC_CHECK_LIB() is to append checked
+ library to LIBS. Thus check for ldap library resulted in unwanted
+ addition of -lldap to LIBS as [] is an empty string in M4 and the
+ default action is used.
+
+ Fix the problem by providing proper action-if-found which was currently
+ just hidden behind the check. Also do similar cleanup for
+ AC_CHECK_HEADER check although there it didn't have any undesired
+ side-effect.
+
+ Reported-by: Petr Písař <petrp@users.sf.net>
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/configure.ac b/configure.ac
+index 68d5924..d17b18c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -72,18 +72,17 @@ AC_ARG_ENABLE([ldapmail],
+ [enable_ldapmail=auto]
+ )
+ AS_IF([test "x$enable_ldapmail" != "xno"], [
+- build_ldap="yes"
+- AC_CHECK_LIB([ldap], [ldap_initialize], [], [
++ AC_CHECK_LIB([ldap], [ldap_initialize], [
++ build_ldap="yes"
++ LDAP_LIBS="-lldap -llber"
++ AC_DEFINE([USE_LDAP_MAIL_LOOKUP], 1, [Lookup email address using LDAP])
++ COMPILE_OPTS="$COMPILE_OPTS USE_LDAP_MAIL_LOOKUP"
++ ], [
+ build_ldap="no"
+ AS_IF([test "x$enable_ldapmail" = "xyes"], [
+ AC_MSG_ERROR([LDAP support required but library not found.]);
+ ])
+ ])
+- AS_IF([test "x$build_ldap" = "xyes"], [
+- LDAP_LIBS="-lldap -llber"
+- AC_DEFINE([USE_LDAP_MAIL_LOOKUP], 1, [Lookup email address using LDAP])
+- COMPILE_OPTS="$COMPILE_OPTS USE_LDAP_MAIL_LOOKUP"
+- ])
+ ], [
+ build_ldap="no"
+ ])
+@@ -163,8 +162,12 @@ AC_ARG_ENABLE([libwrap],
+ [enable_libwrap=auto]
+ )
+ AS_IF([test "x$enable_libwrap" != "xno"], [
+- build_libwrap="yes"
+- AC_CHECK_HEADER([tcpd.h],[], [
++ AC_CHECK_HEADER([tcpd.h], [
++ build_libwrap="yes"
++ WRAP_LIBS="-lwrap"
++ AC_DEFINE([HOSTS_ACCESS], 1, [Use hosts.allow and hosts.deny for access checking of rpc.rquotad])
++ COMPILE_OPTS="$COMPILE_OPTS HOSTS_ACCESS"
++ ], [
+ build_libwrap="no"
+ AS_IF([test "x$enable_libwrap" = "xyes"] , [
+ AC_MSG_ERROR([tcpd.h not found and requested])
+@@ -172,11 +175,6 @@ AS_IF([test "x$enable_libwrap" != "xno"], [
+ AC_MSG_WARN([tcpd.h not found])
+ ])
+ ])
+- AS_IF([test "x$build_libwrap" != "xno"], [
+- WRAP_LIBS="-lwrap"
+- AC_DEFINE([HOSTS_ACCESS], 1, [Use hosts.allow and hosts.deny for access checking of rpc.rquotad])
+- COMPILE_OPTS="$COMPILE_OPTS HOSTS_ACCESS"
+- ])
+ ], [
+ build_libwrap="no"
+ ])
diff --git a/sys-fs/quota/files/quota-4.03-repqouta_F_option_arg.patch b/sys-fs/quota/files/quota-4.03-repqouta_F_option_arg.patch
new file mode 100644
index 000000000000..d4fffd4f03fa
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-repqouta_F_option_arg.patch
@@ -0,0 +1,27 @@
+commit ab2bf5b51a1ca14cef63e8a7a88b039f173a210a
+Author: Eric Sandeen <sandeen@redhat.com>
+Date: Mon Jan 18 20:11:01 2016 -0600
+
+ repquota: -F option takes an arg
+
+ Commit a5876145 added a new -O option which takes an
+ argument, but in the process lost the argument specifier
+ for "F". As a result, the use of "-F" segfaults when NULL
+ is sent to name2fmt() instead of the provided argument.
+
+ Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/repquota.c b/repquota.c
+index 744af70..6fe9f0c 100644
+--- a/repquota.c
++++ b/repquota.c
+@@ -90,7 +90,7 @@ static void parse_options(int argcnt, char **argstr)
+ { NULL, 0, NULL, 0 }
+ };
+
+- while ((ret = getopt_long(argcnt, argstr, "VavughtspncCiFO:", long_opts, NULL)) != -1) {
++ while ((ret = getopt_long(argcnt, argstr, "VavughtspncCiF:O:", long_opts, NULL)) != -1) {
+ switch (ret) {
+ case '?':
+ case 'h':
diff --git a/sys-fs/quota/files/quota-4.03-respect_docdir.patch b/sys-fs/quota/files/quota-4.03-respect_docdir.patch
new file mode 100644
index 000000000000..214b3ad1f17a
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.03-respect_docdir.patch
@@ -0,0 +1,21 @@
+commit cac9a60c29106763cc6abd6f372f25f97d4122a3
+Author: Tomáš Chvátal <tchvatal@suse.com>
+Date: Mon Jan 4 15:26:36 2016 +0100
+
+ Respect the docdir declaration and do not override.
+
+ Signed-off-by: Tomáš Chvátal <tchvatal@suse.com>
+ Signed-off-by: Jan Kara <jack@suse.cz>
+
+diff --git a/Makefile.am b/Makefile.am
+index a880ebe..7c7a866 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,7 +2,6 @@ ACLOCAL_AMFLAGS = -I m4
+
+ BUILT_SOURCES = rquota.h rquota.c rquota_clnt.c
+
+-docdir = $(datadir)/doc/@PACKAGE@
+ doc_DATA = \
+ README.mailserver \
+ README.ldap-support \
diff --git a/sys-fs/quota/files/quota-4.04-glibc226.patch b/sys-fs/quota/files/quota-4.04-glibc226.patch
new file mode 100644
index 000000000000..5f63cde7d426
--- /dev/null
+++ b/sys-fs/quota/files/quota-4.04-glibc226.patch
@@ -0,0 +1,43 @@
+From bbb8819fc0f6ed379a05d635a61bcf9c8986079f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
+Date: Sat, 16 Sep 2017 13:09:43 +0200
+Subject: [PATCH] Add $(TIRPC_CFLAGS) globally to CFLAGS for RPC support,
+ needed for libc 2.26
+
+---
+ Makefile.am | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 8d80bee..278290a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -51,6 +51,8 @@ EXTRA_DIST = \
+ noinst_LIBRARIES = libquota.a
+
+ if WITH_RPC
++CFLAGS += $(TIRPC_CFLAGS)
++
+ rpcsvcdir = $(includedir)/rpcsvc
+ rpcsvc_DATA = \
+ rquota.h \
+@@ -100,8 +102,6 @@ libquota_a_SOURCES = \
+ mntopt.h \
+ pot.c \
+ pot.h
+-libquota_a_CFLAGS = \
+- $(TIRPC_CFLAGS)
+ libquota_a_LIBADD = \
+ $(RPCLIBS)
+
+@@ -235,7 +235,6 @@ rpc_rquotad_SOURCES = \
+ rquota_server.c \
+ rquota_svc.c \
+ svc_socket.c
+-rpc_rquotad_CFLAGS = $(TIRPC_CFLAGS)
+ rpc_rquotad_LDADD = \
+ libquota.a \
+ $(WRAP_LIBS) \
+--
+2.14.1
+
diff --git a/sys-fs/quota/files/quota.confd b/sys-fs/quota/files/quota.confd
new file mode 100644
index 000000000000..6e66c88dda14
--- /dev/null
+++ b/sys-fs/quota/files/quota.confd
@@ -0,0 +1,20 @@
+# /etc/conf.d/quota: config file for /etc/init.d/quota
+
+# Note: if your console is hooked up to a serial terminal,
+# you prob want to drop the '-v' from the OPTS vars below.
+
+
+# Run quotacheck ?
+RUN_QUOTACHECK="yes"
+
+
+# Options for quotacheck
+QUOTACHECK_OPTS="-avug"
+
+
+# Options for quotaon
+QUOTAON_OPTS="-avug"
+
+
+# Options for quotaoff
+QUOTAOFF_OPTS="-avug"
diff --git a/sys-fs/quota/files/quota.rc7 b/sys-fs/quota/files/quota.rc7
new file mode 100644
index 000000000000..bfc06232e992
--- /dev/null
+++ b/sys-fs/quota/files/quota.rc7
@@ -0,0 +1,37 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2
+
+extra_started_commands="check"
+description_check="Running quotacheck with quota being offline"
+
+depend() {
+ need localmount
+ use portmap
+}
+
+start() {
+ if [ "${RUN_QUOTACHECK}" = "yes" ] ; then
+ ebegin "Checking quotas (may take a while)"
+ quotacheck ${QUOTACHECK_OPTS}
+ eend $?
+ fi
+
+ ebegin "Starting quota"
+ quotaon ${QUOTAON_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping quota"
+ quotaoff ${QUOTAOFF_OPTS}
+ eend $?
+}
+
+check() {
+ ebegin "Checking quota"
+ quotaoff ${QUOTAOFF_OPTS} && \
+ quotacheck ${QUOTACHECK_OPTS} && \
+ quotaon ${QUOTAON_OPTS}
+ eend $?
+}
diff --git a/sys-fs/quota/files/rpc.rquotad.initd b/sys-fs/quota/files/rpc.rquotad.initd
new file mode 100644
index 000000000000..528e46bf6bfa
--- /dev/null
+++ b/sys-fs/quota/files/rpc.rquotad.initd
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+[ -e /etc/conf.d/nfs ] && . /etc/conf.d/nfs
+
+rpc_bin=/usr/sbin/rpc.rquotad
+
+depend() {
+ use ypbind net
+ need portmap
+ after quota
+}
+
+start() {
+ ebegin "Starting rpc.rquotad"
+ ${rpc_bin} ${OPTS_RPC_RQUOTAD}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping rpc.rquotad"
+ start-stop-daemon --stop --quiet --exec ${rpc_bin}
+ eend $?
+}
diff --git a/sys-fs/quota/metadata.xml b/sys-fs/quota/metadata.xml
new file mode 100644
index 000000000000..3787c4c41e98
--- /dev/null
+++ b/sys-fs/quota/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<use>
+ <flag name="netlink">Compile daemon receiving quota messages via netlink</flag>
+ <flag name="rpc">Enable quota interaction via RPC</flag>
+</use>
+<upstream>
+ <remote-id type="sourceforge">linuxquota</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/quota/quota-4.03.ebuild b/sys-fs/quota/quota-4.03.ebuild
new file mode 100644
index 000000000000..28fb821fc5d6
--- /dev/null
+++ b/sys-fs/quota/quota-4.03.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools eutils
+
+DESCRIPTION="Linux quota tools"
+HOMEPAGE="https://sourceforge.net/projects/linuxquota/"
+SRC_URI="mirror://sourceforge/linuxquota/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86"
+IUSE="ldap netlink nls rpc tcpd"
+
+RDEPEND="ldap? ( >=net-nds/openldap-2.3.35 )
+ netlink? (
+ sys-apps/dbus
+ dev-libs/libnl:3
+ )
+ rpc? ( net-nds/rpcbind )
+ tcpd? ( sys-apps/tcp-wrappers )"
+DEPEND="${RDEPEND}
+ nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ # Patches from upstream
+ "${FILESDIR}/${P}-fix_build_without_ldap.patch"
+ "${FILESDIR}/${P}-distribute_ldap-scripts.patch"
+ "${FILESDIR}/${P}-explicitely_print_disabled_options.patch"
+ "${FILESDIR}/${P}-respect_docdir.patch"
+ "${FILESDIR}/${P}-dont_override_cflags.patch"
+ "${FILESDIR}/${P}-default_fpic_fpie.patch"
+ "${FILESDIR}/${P}-repqouta_F_option_arg.patch"
+ "${FILESDIR}/${P}-noldap_linking.patch"
+
+ # Patches not (yet) upstreamed
+ "${FILESDIR}/${P}-no_rpc.patch"
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ $(use_enable nls) \
+ $(use_enable ldap ldapmail) \
+ $(use_enable netlink) \
+ $(use_enable rpc) \
+ $(use_enable rpc rpcsetquota)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc doc/* README.* Changelog
+ rm -r "${ED}"/usr/include || die #70938
+
+ insinto /etc
+ insopts -m0644
+ doins warnquota.conf quotatab
+
+ newinitd "${FILESDIR}"/quota.rc7 quota
+ newconfd "${FILESDIR}"/quota.confd quota
+
+ if use rpc ; then
+ newinitd "${FILESDIR}"/rpc.rquotad.initd rpc.rquotad
+ fi
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ insopts -m0644
+ doins "${FILESDIR}"/ldap-scripts/quota.schema
+
+ exeinto /usr/share/quota/ldap-scripts
+ doexe "${FILESDIR}"/ldap-scripts/*.pl
+ doexe "${FILESDIR}"/ldap-scripts/edquota_editor
+ fi
+}
diff --git a/sys-fs/quota/quota-4.04-r1.ebuild b/sys-fs/quota/quota-4.04-r1.ebuild
new file mode 100644
index 000000000000..0fccc223e077
--- /dev/null
+++ b/sys-fs/quota/quota-4.04-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="Linux quota tools"
+HOMEPAGE="https://sourceforge.net/projects/linuxquota/"
+SRC_URI="mirror://sourceforge/linuxquota/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="ldap netlink nls rpc tcpd"
+
+RDEPEND="
+ ldap? ( >=net-nds/openldap-2.3.35 )
+ netlink? (
+ sys-apps/dbus
+ dev-libs/libnl:3
+ )
+ rpc? (
+ net-nds/rpcbind
+ || ( sys-libs/glibc[rpc(-)]
+ (
+ net-libs/rpcsvc-proto
+ )
+ )
+ )
+ tcpd? ( sys-apps/tcp-wrappers )
+"
+DEPEND="
+ ${RDEPEND}
+ nls? ( sys-devel/gettext )
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-glibc226.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --docdir="${EPREFIX%/}/usr/share/doc/${PF}"
+ $(use_enable nls)
+ $(use_enable ldap ldapmail)
+ $(use_enable netlink)
+ $(use_enable rpc)
+ $(use_enable rpc rpcsetquota)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc doc/* README.* Changelog
+
+ insinto /etc
+ insopts -m0644
+ doins warnquota.conf quotatab
+
+ newinitd "${FILESDIR}"/quota.rc7 quota
+ newconfd "${FILESDIR}"/quota.confd quota
+
+ if use rpc ; then
+ newinitd "${FILESDIR}"/rpc.rquotad.initd rpc.rquotad
+ fi
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ insopts -m0644
+ doins "${FILESDIR}"/ldap-scripts/quota.schema
+
+ exeinto /usr/share/quota/ldap-scripts
+ doexe "${FILESDIR}"/ldap-scripts/*.pl
+ doexe "${FILESDIR}"/ldap-scripts/edquota_editor
+ fi
+}
diff --git a/sys-fs/quota/quota-4.04.ebuild b/sys-fs/quota/quota-4.04.ebuild
new file mode 100644
index 000000000000..d077fb35d664
--- /dev/null
+++ b/sys-fs/quota/quota-4.04.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="Linux quota tools"
+HOMEPAGE="https://sourceforge.net/projects/linuxquota/"
+SRC_URI="mirror://sourceforge/linuxquota/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="ldap netlink nls rpc tcpd"
+
+RDEPEND="
+ ldap? ( >=net-nds/openldap-2.3.35 )
+ netlink? (
+ sys-apps/dbus
+ dev-libs/libnl:3
+ )
+ rpc? (
+ net-nds/rpcbind
+ || ( sys-libs/glibc[rpc(-)]
+ (
+ net-libs/rpcsvc-proto
+ )
+ )
+ )
+ tcpd? ( sys-apps/tcp-wrappers )
+"
+DEPEND="
+ ${RDEPEND}
+ nls? ( sys-devel/gettext )
+"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --docdir="${EPREFIX%/}/usr/share/doc/${PF}"
+ $(use_enable nls)
+ $(use_enable ldap ldapmail)
+ $(use_enable netlink)
+ $(use_enable rpc)
+ $(use_enable rpc rpcsetquota)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ dodoc doc/* README.* Changelog
+
+ insinto /etc
+ insopts -m0644
+ doins warnquota.conf quotatab
+
+ newinitd "${FILESDIR}"/quota.rc7 quota
+ newconfd "${FILESDIR}"/quota.confd quota
+
+ if use rpc ; then
+ newinitd "${FILESDIR}"/rpc.rquotad.initd rpc.rquotad
+ fi
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ insopts -m0644
+ doins "${FILESDIR}"/ldap-scripts/quota.schema
+
+ exeinto /usr/share/quota/ldap-scripts
+ doexe "${FILESDIR}"/ldap-scripts/*.pl
+ doexe "${FILESDIR}"/ldap-scripts/edquota_editor
+ fi
+}
diff --git a/sys-fs/quotatool/Manifest b/sys-fs/quotatool/Manifest
new file mode 100644
index 000000000000..3389b7f1a5bd
--- /dev/null
+++ b/sys-fs/quotatool/Manifest
@@ -0,0 +1,10 @@
+AUX quotatool-1.4.13-ldflags.patch 553 SHA256 fdd6a94752498c2e991a662b329496205546379747b37b286e0d0aa8fc6cc03f SHA512 87d1c2cb1e42ed6078e86094b8f3af08e510e24306730dfa8f83de635d46998b3b9ed744fc9efe3f11e238b7bbecabeb010946792940d65e45495f0fa7ebadc8 WHIRLPOOL b2e44fe9ee42993370bb96009a98b5f1edb371cd6ffd926a7783f051180e3346aba4bf724e6c07c1beb4e277e22c891ad7d9c4b1c0e659e526cd9b1ca7817798
+DIST quotatool-1.4.13.tar.gz 130830 SHA256 a80d368a98efc978a9fa958c122bcee76c27ab8232c2b664c878441db6da83f5 SHA512 9407bee9c71f59f018b93739cc2e319123de036a62240d20e4c9e2e14e07353fc6e7caefc3fbcd02bb110f4dfaa9c58816d2abd4863c13e691f2d8c3341b7c5b WHIRLPOOL efbec7ae54de4fa3a36ef6485bb4feb0a2fb5a1924f4b5e900fb9094ec6f60fb454891e3e823d94f404cc56ffeb9cb2ad71572152fdf6c787686387d494ddc86
+DIST quotatool-1.4.6.tar.gz 114836 SHA256 7aed92f5691cd61b1291417a0eddc39a668426977d297bc4a6f912ede3662758 SHA512 ba764d4348ec0f4f032758d16dbab9170122556a5bcafd5ef226dd1d924fb029b5ecdffb5a8c1018c26350e239a403e353f56833639e44e1fa51eefa43b263e5 WHIRLPOOL 1ce802fbe91e1fa1d535d3dcd5eca6774b205f390d88b8b15e617aa4a2e58a44112fed28020be779fed051e0f18af0f71348f4984ae53d60bbb49fd601132820
+DIST quotatool-1.6.2.tar.gz 147691 SHA256 e53adc480d54ae873d160dc0e88d78095f95d9131e528749fd982245513ea090 SHA512 882bdc43e49ef69b1b2899da01faf7853524f67585b716bba195ea89a250a90a7796a225b7d141b68bf45c7524d9fe506000998e6e7dc113b559f95e6ed21e2c WHIRLPOOL e2b0e5569f269fa969f1844dc54f05da32d6462b5caeac0538aaf1c2667cbd93a8b45152c61181445b80b5aa9775dbfa61515df8c0fe3d13e0dab5631594bc22
+EBUILD quotatool-1.4.13.ebuild 503 SHA256 1989811932ef703d84164c541c0b025bcd50aba3c64fd1663a6dc5d00f29f951 SHA512 9cf22fb99b0559c90cbc4a0ff1f57625f78a8388eb439a880a3571b5d42c49b3f58e2b1e8b5c08f631fe69d66b7d7e3131658d204bdfd777c6515012a2f8a0d9 WHIRLPOOL 3900f753439ee6fbff7a9aec918f87e36f47c86a40d07f7756e266eda88cdc4e130d121e0f42c9649c9805e5d5227e116d0ab8bf13cc3f53659d0caf9a9aec36
+EBUILD quotatool-1.4.6.ebuild 438 SHA256 1a13e35274c2ebc0c83dbe45bb6b85a252274549a31be5117095cb73e40e9674 SHA512 e2186db37731e41664f54c383bc01ebd3f21ae961c5ac7f9efc46072bc29d7e0fff8fa64402b2478727b8a6adc1b07c84de37bdfdcf64a129343e02522d41d2e WHIRLPOOL 933604c00901419d4238123a45f8be97a81e9bac50c796fcea5cacb68e07fe83d3effdea7827d8102ba71cc7130d1fb73b5583f9ed87e633ad9bc721a5cd92c2
+EBUILD quotatool-1.6.2.ebuild 503 SHA256 4b2ea627ae5dbad7f7d8f07a0c90dfd02dad1f6c015d5da2c7c7278500e5938a SHA512 aa0b6922e86935e427c7c8f17e152338625eed63dbc3d182e993ceaeb27e9bc33ba45ac3fac60f6e8e0de462b9460651a1571c87f4f99cadf62f0e8d6d1d4314 WHIRLPOOL 36a0af2b5d8870b9be90b42ba708534d702c21a249129cff632432433bd0746ee04afbc8d47e7405a3c3b7e751307556fe9932dc443fc29620b002bfb7c64a3b
+MISC ChangeLog 3565 SHA256 4edd73fe9345efd3197d7ce5f6538740b7097c8359f269b8fa9e528b30f89e82 SHA512 295395674116202bdeac1f75edbe638a9aba033aff40153dfc61dace15bb7e253a4fb29631797c2120c8244249558168d21467fbf868323497510ec9105f2534 WHIRLPOOL 12794d1f211e4220c3e6e68cf8636b09c3544c3d56de8baa70066e7667936c3b81cc3c41e74f8e8b1edd2d02a58636b484d1393c93493ca70c1ebbfe12cf7971
+MISC ChangeLog-2015 2250 SHA256 3852b5e29947aa97f4aa0bd7b0e881692bcdf49c9505d3b54ef892cea31b9c28 SHA512 95a19ed5c8018c53a2ba478f136638022d690885ee17f1485d587714d3e2e5c8244d6885f2f43e6acc21f23d189c36c8540834a938fb716cff47bd975ec07ded WHIRLPOOL 6cb6384bc83379aa807ca36145cd509705bcf396b9be2d395de7b850db16c7aef680d8db420aeafabd3769185aff24acc2fb856573da77551960db911896667e
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/quotatool/files/quotatool-1.4.13-ldflags.patch b/sys-fs/quotatool/files/quotatool-1.4.13-ldflags.patch
new file mode 100644
index 000000000000..d73f02f8ce81
--- /dev/null
+++ b/sys-fs/quotatool/files/quotatool-1.4.13-ldflags.patch
@@ -0,0 +1,23 @@
+--- quotatool-1.4.13/local.mk.in
++++ quotatool-1.4.13/local.mk.in
+@@ -17,7 +17,8 @@
+
+ CC := @CC@
+ CFLAGS := @CFLAGS@
+-CPPFLAGS = $(inc) @DEFS@
++LDFLAGS := @LDFLAGS@
++CPPFLAGS = @CPPFLAGS@ $(inc) @DEFS@
+
+
+ INSTALL := @INSTALL@
+--- quotatool-1.4.13/Makefile
++++ quotatool-1.4.13/Makefile
+@@ -58,7 +58,7 @@
+ # compile the program (and the objects)
+ all: $(prog)
+ $(prog): $(objs)
+- $(CC) -o $(prog) $(objs) $(libs) $(CFLAGS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(prog) $(objs) $(libs)
+
+
+
diff --git a/sys-fs/quotatool/metadata.xml b/sys-fs/quotatool/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/quotatool/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/quotatool/quotatool-1.4.13.ebuild b/sys-fs/quotatool/quotatool-1.4.13.ebuild
new file mode 100644
index 000000000000..99bb15ced465
--- /dev/null
+++ b/sys-fs/quotatool/quotatool-1.4.13.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit eutils
+
+DESCRIPTION="command-line utility for filesystem quotas"
+HOMEPAGE="http://quotatool.ekenberg.se/"
+SRC_URI="http://quotatool.ekenberg.se/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND="sys-fs/quota"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.4.13-ldflags.patch
+}
+
+src_install () {
+ dodir /usr/sbin /usr/share/man/man8
+ default
+}
diff --git a/sys-fs/quotatool/quotatool-1.4.6.ebuild b/sys-fs/quotatool/quotatool-1.4.6.ebuild
new file mode 100644
index 000000000000..60f8d619aa70
--- /dev/null
+++ b/sys-fs/quotatool/quotatool-1.4.6.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DESCRIPTION="command-line utility for filesystem quotas"
+HOMEPAGE="http://quotatool.ekenberg.se/"
+SRC_URI="http://quotatool.ekenberg.se/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="ppc x86"
+IUSE=""
+
+RDEPEND="sys-fs/quota"
+
+src_install () {
+ dobin quotatool || die
+ doman man/quotatool.8
+ dodoc AUTHORS ChangeLog README TODO
+}
diff --git a/sys-fs/quotatool/quotatool-1.6.2.ebuild b/sys-fs/quotatool/quotatool-1.6.2.ebuild
new file mode 100644
index 000000000000..d45e13ef7f44
--- /dev/null
+++ b/sys-fs/quotatool/quotatool-1.6.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit eutils
+
+DESCRIPTION="command-line utility for filesystem quotas"
+HOMEPAGE="http://quotatool.ekenberg.se/"
+SRC_URI="http://quotatool.ekenberg.se/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND="sys-fs/quota"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-1.4.13-ldflags.patch
+}
+
+src_install () {
+ dodir /usr/sbin /usr/share/man/man8
+ default
+}
diff --git a/sys-fs/rar2fs/Manifest b/sys-fs/rar2fs/Manifest
new file mode 100644
index 000000000000..cc4f350b9520
--- /dev/null
+++ b/sys-fs/rar2fs/Manifest
@@ -0,0 +1,5 @@
+DIST rar2fs-1.25.2.tar.gz 257550 SHA256 57bb77e3de9fb9376c6b95d139ec9b1c9e20cf7326a6d627f1480d07076e1ff4 SHA512 10fcf2db037bde467781ae4c9b0b1ee95422a9b80f4d3f4643c2660b0a17dcd041eb111330c345f8759adbad7ef864f8ba108a106117adabc836d782becf7bfe WHIRLPOOL a55e4eb95a0decc0e772bfd6d6ce89b39afbfc50b7a3e823d54b6d5f3fd02a0cc21223b0aef0654e78c9200297777676838abdbabd3674d9427f8e46e906a54c
+EBUILD rar2fs-1.25.2.ebuild 637 SHA256 7d94bb056c880a2d71f224f5f0f57d423e96362ea2aca340f636eadc13161249 SHA512 b6c8dfa29dbd076e10258a064d7bb09a18f0de60403380aaf63f0ad957bb73ce925fcb3c789a262b62a1ab2c58c8b0b1d6847881087b91cc8a4ea7d0acb1b161 WHIRLPOOL 06448e05b2e12bac9f93c6cbec2b20e670e331685bd6b8056641deed99adbade9c93288a73dd878ba4a13333c28f66a2e8e9cd76db689ca360d34a35a45e2a88
+MISC ChangeLog 3131 SHA256 7ab1b3b5c3468494ee44e4d4b95ecf5878b2f3da028f6427b2596e78559ba752 SHA512 0cbd75c3003eb120f0921ddbaae750731b8f1933f8148eeb6acefe329c9816aed615093168e90b465e47f148d9a338083407857a4fc00d3ec4fa040c8a728d5d WHIRLPOOL 2d45e1c2a039936cffaadd466ff03370495434745b61e038317577a5e4eef24f737d00f9a49339755e4b061af03e5edcb4de70175302f05adb357cf9d97bfbc1
+MISC ChangeLog-2015 2257 SHA256 ab46fdea69fff7de59222fcb791c023f0e0c521b361a3ae70418e51490e974d4 SHA512 58248013b7e65e8500ca010e3c031c51851076cbc5ca1f39d065dcc76a07c5700a27a65d1033c01912ebe64d068d9cbd1e65170c16c1427e5ccbce7591204c5b WHIRLPOOL 71a57984b214a77a5c498f6b5f37240ed19b91c849b6f0caeabbd32b4f3e1a10b5effd7c6b0f608146a40315062d959e27ca10f5c906179ea0c7b159b67f107d
+MISC metadata.xml 325 SHA256 464227dc0760547315facd9d9204cbc2aa7eab45d32eeebb8a0af380c34128fc SHA512 506c5eada02c3ecb80b891fe5c256eebd85e57d83a515eca336a82e362b0a1c9c6f96c15dc05eb88141ca3a445953ed1c2486fc924868071c50087ec3876cf26 WHIRLPOOL 743327b346bbcc306028ade439f8ef07238fe7b3dfdf17b976b98810015a7e52f2adffe265ded609ea87c78b655dde34e0ad1c3b05915e9b5ff4532885d6b5cb
diff --git a/sys-fs/rar2fs/metadata.xml b/sys-fs/rar2fs/metadata.xml
new file mode 100644
index 000000000000..b299187a5d9d
--- /dev/null
+++ b/sys-fs/rar2fs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>radhermit@gentoo.org</email>
+ <name>Tim Harder</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">hasse69/rar2fs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/rar2fs/rar2fs-1.25.2.ebuild b/sys-fs/rar2fs/rar2fs-1.25.2.ebuild
new file mode 100644
index 000000000000..05cc6b39d684
--- /dev/null
+++ b/sys-fs/rar2fs/rar2fs-1.25.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="A FUSE based filesystem that can mount one or multiple RAR archive(s)"
+HOMEPAGE="https://hasse69.github.io/rar2fs/ https://github.com/hasse69/rar2fs"
+SRC_URI="https://github.com/hasse69/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug"
+
+RDEPEND=">=app-arch/unrar-5:=
+ sys-fs/fuse"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ export USER_CFLAGS="${CFLAGS}"
+
+ econf \
+ --with-unrar=/usr/include/libunrar \
+ --disable-static-unrar \
+ $(use_enable debug)
+}
diff --git a/sys-fs/rarfs/Manifest b/sys-fs/rarfs/Manifest
new file mode 100644
index 000000000000..c3b91de72850
--- /dev/null
+++ b/sys-fs/rarfs/Manifest
@@ -0,0 +1,5 @@
+DIST rarfs-0.1.1.tar.gz 349283 SHA256 e4855ab457e0be327641fc5aed958da3a06996425de4183055f2aad428ff0c1c SHA512 a374dc2dcd83808296dc0b0b3109fd84771d47956cc30fa16ac53cc768ae5ff717cff2fa22ebcbacdd72b645b75986c5d44e47aa1a52a92f230f1944ceaa8b28 WHIRLPOOL 8f1c613ad0b70aac85c3533b79b5e8599a3765d4e60633b294c307481dedcb5b91b6a30bce40429b153896f2f5e80105554d19fec813f5231fd505ad6611d70f
+EBUILD rarfs-0.1.1-r1.ebuild 638 SHA256 e83cf7ab700dac7c96be91442e1e8ed25c594503440dfba86490b3158c779a4f SHA512 227a240a0c1687be59be9414f45247655513531e835f29eb88c0fbbe5cfc8a23f9798bd0e7a83d534260cbed89218b8e4ab7d199411964e5433c65855df0de78 WHIRLPOOL eb27040b060cae07fe959e37e009defa069f45b7c91fbf60cdb21539ca1a1e9070cdaa0d27604705ef4f4e407d5ea25c8f7341c0fe075786acf6d0a0ad44976b
+MISC ChangeLog 2534 SHA256 c35ceb72ea7a84f51de1b34893cdaba05967c89ef9ba650f0b353804d402654b SHA512 c19d049205d960799aece894071b3fe65d97ca06c0303415db238d44d20d95915f205f5e192f28b74ea025e14fa528fb9bfa8920fe0dc7357216fcf7d37e96bc WHIRLPOOL c14d536b21d32afe49c34f98fe1773d982fb48df9a296842e32f31fa0a7e3776389cb01958c43111062c07ade32a3975b420fe2dc29b34f6d3112cffa98ec9c7
+MISC ChangeLog-2015 783 SHA256 97005d0282bf8522bf5687bbcd4876b949e900fa4dc52cdf95b5f02dea13e2a9 SHA512 432126adce0cc76324d56b1dddd7866e3a302daf5181543db4ec419dbcec837848c36b6795b7171b6c5f1b7b90fd0c740ab3abfb68023e320e45f512d0852ed4 WHIRLPOOL 1098513dd1b7192cb3502458f2a5e1e97eb546c269530cade47c54bc04d048a76cfe81ff155943bbcc78834100095b88363ec88bf1b2f6156369919184dd5167
+MISC metadata.xml 322 SHA256 cdef9759439effcfa66cd44c1a2f89948fb75a629318435f8ded678f3d8ca638 SHA512 b1e7a5d9c1e61a8b6ded9173e9cad6b7ab697740c77c26b53f60b24878eab5fb77c2d4738648a4fec83ddddc766da84c5224ee0f9e37f2a9b39892a68d15ffae WHIRLPOOL b9774bbc0ec1d53f16c78f1ba71b071db50e5e67460f213b6cadc4cbe00bf0d68fe6561309107e3d3b9f06901fc148c646b4b26493c52eadc387b46eef820c89
diff --git a/sys-fs/rarfs/metadata.xml b/sys-fs/rarfs/metadata.xml
new file mode 100644
index 000000000000..43f1d6314fd8
--- /dev/null
+++ b/sys-fs/rarfs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">rarfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/rarfs/rarfs-0.1.1-r1.ebuild b/sys-fs/rarfs/rarfs-0.1.1-r1.ebuild
new file mode 100644
index 000000000000..2b9cc82b1b3e
--- /dev/null
+++ b/sys-fs/rarfs/rarfs-0.1.1-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-r1
+
+DESCRIPTION="Fuse module to mount uncompressed RAR archives"
+HOMEPAGE="https://sourceforge.net/projects/rarfs/"
+SRC_URI="mirror://sourceforge/rarfs/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ sys-fs/fuse"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( README )
+
+src_install() {
+ dobin scripts/prarfs
+ python_replicate_script "${ED}/usr/bin/prarfs"
+
+ dobin src/rarfs
+ einstalldocs
+}
diff --git a/sys-fs/reiser4progs/Manifest b/sys-fs/reiser4progs/Manifest
new file mode 100644
index 000000000000..4265a58c8cf4
--- /dev/null
+++ b/sys-fs/reiser4progs/Manifest
@@ -0,0 +1,6 @@
+AUX reiser4progs-1.0.7-readline-6.3.patch 472 SHA256 764f820b7f933270ab00138610243ad11926a326c5d9668d8566e758dc220b49 SHA512 0162505148699f8e5270314be586d8db7d42f9ea5fc8517b5475aa59f54b47eb626349c36820cc34c0490e0c3df1597a230c27abf316226cc7d261e986963788 WHIRLPOOL fe6fda5bea8535ceac3a066896a2836419d04595d1f538d97bb29d5d2e01b60943a0acac0f34990cd333ebef3c7a5a8b3281c90584b5d7c86e9263d779030aa0
+DIST reiser4progs-1.1.0.tar.gz 929047 SHA256 0f2f2aff22bd5fb06627eadcfc038781c60a1e99ba952e88190597d338d86fa1 SHA512 649645d702298ee7f3e5b8d2c39b2781fc1aae55cd03a4b774a2e66feef51e67f0a4367350db4defd62eaa2fc6710cb48a58d65991a63942d34e43783d29f94d WHIRLPOOL c67d6e4783dae52f79395f3902265705445897e7d57bfa63dd38d981a578329ab65ec7417ce4d5ef630f0a0ae2305eb41c80276727137a6fc7f0f610e9f6d539
+EBUILD reiser4progs-1.1.0.ebuild 1239 SHA256 bbc8c36b1542e465f01e2e483f498a83751dbe36f668bbce714704c6ddac48a9 SHA512 169576343c45a5e33a60a8913ce8324128f62e46d207021fc4e87d908714fbce7513dc92cc1df7af53401ec7df7b07312ce4723f15e44f36d25792cc0afc619f WHIRLPOOL 2b51e492dbd7a9f4093fafe8b76a574bd6b28684f0c7aec469e9c5b09f8715293c238067fa017ecae0871e3e4f7be08b8086e6865ba0ec0b7269153e66999a25
+MISC ChangeLog 3716 SHA256 3bc9af6915abea9dafb4b3a720dd744acfbf228020eddf5fbf9e0a1693957031 SHA512 d5b0a62a9f9896665179fbd60c3ef225e03fdb0273f7b87a31ff853e6e39637abe135711cba0c55f76082e9b3fa7c84d7d446c8f63736ec9100dcc8e352d2775 WHIRLPOOL 896b47e00cae8eefa1c509001e6953ba20913b7f1c917cddf5c880c6bd5003ca20de768b3c35a8cfc030df18f1ded1b19778afbbff39b85594f613340e89742b
+MISC ChangeLog-2015 6987 SHA256 96cdee5b4fc21ea2e34af79eee71e8bd9e52fd9b42e59e0e85f1d0021f23593b SHA512 2c2a02f6c7c948fe7505908913cdc89400e3b0d09c9fe90db8c893cfc291645a4a957b008cda84b96c4b1e1f7246b5229ce8b503a935052fe2d753375aaff066 WHIRLPOOL 9a93086379ad9d539c7215864d14506e416381c7deb908b72761c58032af2e013fc9f798a42ea393c1fbd9eed5b3c2dbc40072ad51d7cd080ce0872d9ae3cb4f
+MISC metadata.xml 440 SHA256 fa82f3ade251c67b1eba25a416f62aaef3c60cf6a3169b59c7934b9732cc799e SHA512 f12899412ca119abba07a6012e55f243ea069e1132c7dd9786aeb399f7d543ff82cba92f0957443ec08f230e68bc257729b789519ef52337ebc5679ee63b3ddc WHIRLPOOL 26b6676d63440d03cb361c62aa349047f82f3522b769e6ae17b6d460205619216b0fb506d0cfbe84e6aef15ce2a88243cc6a43fcaade26c8010c7aad19891615
diff --git a/sys-fs/reiser4progs/files/reiser4progs-1.0.7-readline-6.3.patch b/sys-fs/reiser4progs/files/reiser4progs-1.0.7-readline-6.3.patch
new file mode 100644
index 000000000000..9de53bd41203
--- /dev/null
+++ b/sys-fs/reiser4progs/files/reiser4progs-1.0.7-readline-6.3.patch
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/504472
+
+fix building w/readline-6.3 -- the old CPPFunction define has been deleted
+
+--- a/libmisc/ui.c
++++ b/libmisc/ui.c
+@@ -256,8 +256,7 @@ static void _init(void) {
+
+ #if defined(HAVE_LIBREADLINE) && defined(HAVE_READLINE_READLINE_H)
+ rl_initialize();
+- rl_attempted_completion_function =
+- (CPPFunction *)misc_complete;
++ rl_attempted_completion_function = misc_complete;
+ #endif
+
+ aal_exception_set_handler(misc_exception_handler);
diff --git a/sys-fs/reiser4progs/metadata.xml b/sys-fs/reiser4progs/metadata.xml
new file mode 100644
index 000000000000..0b1c10d7263b
--- /dev/null
+++ b/sys-fs/reiser4progs/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<longdescription lang="en">
+This is a library for reiser4 filesystem access and manipulation.
+</longdescription>
+<upstream>
+ <remote-id type="sourceforge">reiser4</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild b/sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild
new file mode 100644
index 000000000000..b4bf73709751
--- /dev/null
+++ b/sys-fs/reiser4progs/reiser4progs-1.1.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit multilib eutils toolchain-funcs
+
+DESCRIPTION="reiser4progs: mkfs, fsck, etc..."
+HOMEPAGE="https://sourceforge.net/projects/reiser4/"
+SRC_URI="mirror://sourceforge/reiser4/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc ppc64 -sparc x86"
+IUSE="debug readline static static-libs"
+
+LIB_DEPEND="~sys-libs/libaal-1.0.6[static-libs(+)]
+ readline? ( sys-libs/readline[static-libs(+)] )"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+ static-libs? ( ~sys-libs/libaal-1.0.6[static-libs(+)] )"
+DEPEND="${RDEPEND}
+ static? ( ${LIB_DEPEND} )"
+
+src_prepare() {
+ printf '#!/bin/sh\ntrue\n' > run-ldconfig
+ # Delete hardcoded link/compile flags.
+ sed -i -r \
+ -e '/CFLAGS=/s: -static":":' \
+ -e '/CFLAGS/s: (-O[123s]|-g)\>::g' \
+ configure || die
+ epatch "${FILESDIR}"/${PN}-1.0.7-readline-6.3.patch #504472
+}
+
+src_configure() {
+ econf \
+ $(use_enable static full-static) \
+ $(use_enable static-libs static) \
+ $(use_enable debug) \
+ $(use_with readline) \
+ --disable-Werror \
+ --enable-libminimal \
+ --sbindir=/sbin
+}
+
+src_install() {
+ default
+ gen_usr_ldscript -a reiser4{,-minimal} repair
+}
diff --git a/sys-fs/reiserfs-defrag/Manifest b/sys-fs/reiserfs-defrag/Manifest
new file mode 100644
index 000000000000..90681ee03633
--- /dev/null
+++ b/sys-fs/reiserfs-defrag/Manifest
@@ -0,0 +1,5 @@
+DIST reiserfs-defrag-0.2.2.tar.gz 52988 SHA256 28fc7fe7373fab0e90f74acaf2fbfcf2578f7b04eeadcecb50f88bee2b67e718 SHA512 1e8dfb085a7635eda92bb820d3089b8ca2101fb00ede971b8de24018250a2238067e8db4e5f52b3d3aca2c45c8a395ae6687ce762d355e814697faef8ff59025 WHIRLPOOL 20699c5cff706ed8177aabf2d70b61acd46c6316d11dd4b110b3ced854db7950d7443008ad445e168222773f5bd9666a103cddf0cc3bcc65548d3b5a58f1009e
+EBUILD reiserfs-defrag-0.2.2.ebuild 580 SHA256 478e9b1d905317a9eb9820d4248cf3d77ee2a934af427970f0a322a60d902790 SHA512 c81384cd4eb6b0aa58f3f8a7469fea705c1e4f24fc6825cfc53066e5d4fd42fa4e6a836e112ee3b58b620268d644d0aafb32651093ee652e2cf676882f946e2e WHIRLPOOL 03f9495cef715abb56d6d8fefd9edfea4c1173b611bbc4c1b1416da9970538dc2782b5ebd714157d6fabdd1b4be88261ac69d57ca9a690b4828186ab78530e3f
+MISC ChangeLog 2266 SHA256 0ee5930920c8737bac41a8000ff9ea90b4db345ccbab0d716da45d957caf24e5 SHA512 02ccb588e7f49d21b5df7bd446ffd8f076d50dd066e5b2f6bfb7ac76a5a0ac48f4a1ff206f2e9d190c73c0213e69974127dd9c78d18b2e84d2e536ce9c22af4c WHIRLPOOL b435c2a9b037e2afdd7b10d4d26a7e4c75cfb0e9cb2f659475d212a77d9f653a4948189316a952caf518077afef07f3ceacdca3fee599e8a0f4b94ffbb97febc
+MISC ChangeLog-2015 667 SHA256 ad48a3b7225c0f7e5f9414e3a2e71dbbc1d54176186b2afed0d187ce6b26f4da SHA512 44ba02b34d9c3d9fabef2efddb2ed145148edd85b002d239ebb725087b7988fa88b7821c8f5afb6cd8a63c625dad7ad3b82d719d83ed2143aad4e0489dd7afe2 WHIRLPOOL 22931a69d36031542142c4561f9241f5c60e70be8dc4770a5327d13960a52c30883e090c33ba799f28d4cf56a2916866914dedde41b4f497398fad6ee0c840fa
+MISC metadata.xml 510 SHA256 3d4e8c7c0320649f3a9e0a1397091e470d608407dc2690fd04026053ef9b14b1 SHA512 97f508e7e986e8140b0a1760898f1ceb417e7e2ae7da1c0924435fd15b85900eb4a1103f2a240e8c05ee16d4327121650a66163b0573df42d94532c8face9263 WHIRLPOOL 1f916a53d5bef8a054014587e92419f8053bdbf73b18f033152410a657f6d597c13d68a7be80cd8464ddfd9bc74cd130bcb7538f0399a131f7be309cfefc78fb
diff --git a/sys-fs/reiserfs-defrag/metadata.xml b/sys-fs/reiserfs-defrag/metadata.xml
new file mode 100644
index 000000000000..2d4ce2895ae8
--- /dev/null
+++ b/sys-fs/reiserfs-defrag/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <email>ibragimovrinat@mail.ru</email>
+ <name>Rinat Ibragimov</name>
+ </maintainer>
+ <bugs-to>https://github.com/i-rinat/reiserfs-defrag/issues</bugs-to>
+ <remote-id type="github">i-rinat/reiserfs-defrag</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/reiserfs-defrag/reiserfs-defrag-0.2.2.ebuild b/sys-fs/reiserfs-defrag/reiserfs-defrag-0.2.2.ebuild
new file mode 100644
index 000000000000..fa199ec1c407
--- /dev/null
+++ b/sys-fs/reiserfs-defrag/reiserfs-defrag-0.2.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="Small defragmentation tool for reiserfs"
+HOMEPAGE="https://github.com/i-rinat/reiserfs-defrag"
+SRC_URI="https://github.com/i-rinat/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="debug"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+DOCS=( ChangeLog README.md )
+
+pkg_postinst() {
+ ewarn "Defragmentation should be done OFFLINE only! You MUST unmount your reiserfs partition before starting ${PN}"
+}
diff --git a/sys-fs/reiserfsprogs/Manifest b/sys-fs/reiserfsprogs/Manifest
new file mode 100644
index 000000000000..fe18e0b54588
--- /dev/null
+++ b/sys-fs/reiserfsprogs/Manifest
@@ -0,0 +1,12 @@
+AUX reiserfsprogs-3.6.25-no_acl.patch 274 SHA256 a591615d56d0f3ef4c5f681f4aefc2cc366ca8a8f178177afeb6c6a9cb9c3576 SHA512 29419b64f7749612ab2883da91ac97831a2ba8aee819b6e0e8b781b34594541e59b6b7a3841e9967e4623fb9772e4be81b13970c86d61497222789ffa8b4e20e WHIRLPOOL 6896c64cbd79e004cc3358520994d2b72d211b8593c5932ab5a122d63fde7e76700e1cf20ee1100df4fbc6b4e22d863338b0d5305ca6be6bf56e5279928caf30
+DIST reiserfsprogs-3.6.24.tar.xz 316444 SHA256 7e44fefe557d68a642191428210f3d64d80283b9ad0e45c24130f6ce936b0760 SHA512 183cda8c1bef375a9e90b6bfcbbbe7cc901f12890be29551e74950c723b0ae565786be86f69cba2a5d8b2f9014d22f6f3bdf277d666d4b6bea15406cb2803a42 WHIRLPOOL 1046b9ca94e733a1b90c220a122d41cb933522e39244b6c6de987de1eefe9a2712a3a7dbaf5de64f2c76de1eb9b43c3fe0650fc3ac11929951956a91ea92e571
+DIST reiserfsprogs-3.6.25.tar.xz 448984 SHA256 fb1199405af8b8af609e9e97054de8f0d05b6cc2b6727713db92ed5e2919d20d SHA512 247ca392d227680fb24e94cd490319e77e82d00d7d357516690d2cab6f0bbe8b35879f8a25ed5046bd3a7a3e1f2b140a8a82404043aa0e7f6f60f57d069857ae WHIRLPOOL d467ae27729a2777fd04578ae62327d71cf34404f9e70c717b07ef385c6d7f830546e3a07b34e9a8ca70cfd0cbdecedec2dd3720129e0c4d9131ad2d9ead3f32
+DIST reiserfsprogs-3.6.26.tar.xz 357276 SHA256 7d4b2ed2d6fc40d944f288099233f350b653e0f6567e9f12e958731eebd94685 SHA512 366f326d25fc5940ebc37b2b340607d2234296dfa42795e584cda670597e8dd859633499e6ab87ae8d53cd31b293ddbb15113944a17bfd601baa494abb02a9fa WHIRLPOOL 635013a7dfc832e4d34810e4f0533978dc26d3fc8794a7c2f04c2f0afceb0233244876ef6c39e132f1e42a23c473fb2bb42c3b82c26e15212af27ecc15ab6138
+DIST reiserfsprogs-3.6.27.tar.xz 449176 SHA256 0e95b67fa7746a3c2d59145e9b9c2feb4a6be52853e83b497b182eae508e62e3 SHA512 bc524aa1ad7f8502238761fd185bfb8473048947bd579e2803c73371928c6b245e0d90bd9d458f4bebcbf163892dbc9f4bae65aec68ebbaa436be7451c13f50c WHIRLPOOL 56987d2dfbc31068c2670f792ef0dc0bea6d5539773bd079ae7a67c4641d62ad2decd6e9ddbd4d69a23eb8401e1babcf62fe503313d27cd0b6dc3c37354e9653
+EBUILD reiserfsprogs-3.6.24.ebuild 572 SHA256 8c7bc812002e589fe6369fce6f221f7e69cf5f168c59d82a2737dda5ac73e9e4 SHA512 09180e0d537f038a9a6baddc082ca156a868902e96d0b2034ef758c9dbfe60086dbf0d8c93757e39b25e55f482f23e6f40b97900bc41c8719781538bf1d154b2 WHIRLPOOL ea5b7ace03e5ece08cc824528dcfac667383af488babc86de24be098eff5885ffa59063e168b280b8609881ef4ab6f6a7a94253c4c2e93fc537f2b57e3f569ce
+EBUILD reiserfsprogs-3.6.25.ebuild 1162 SHA256 1b4f1a71d3d7b2379e979850301c6f1af7f9db54a4e492cec7b2a28f22363dcf SHA512 8059de05fe3dbeff12d417b44258882ab71d4db26d4c7504339737c1caa0a2f2ff0caf1f75a2ff3486bc4d38bba26155b81d626236c5a176dbfe0f9e09df3d45 WHIRLPOOL b06919592f1d1d2e10d9e88e9beb620690f5f61be33813a7876b954044d76db92eba49085bebe94a248836889174b59822af8ffa88e531d3a4cbf96cdada9640
+EBUILD reiserfsprogs-3.6.26.ebuild 1190 SHA256 7db8e460d84eaacbd0702499143657ef057c45549f27456819422e4831da7b05 SHA512 c3f2f7642d89b8b95a4ac6baaad9a6a5d6a5c40f5f1f662c21c08ab90f9d3976cb4f39f2e5675565603b76d41c958d3d60250dc28648df499abd4f8d0696c936 WHIRLPOOL 9adee38c344938dadb57476f8e36c41433b22a211e193c84638f729b7777ce01881997b0c31286e8deddc74c532068e15838f6fbbf762ba4f343594ecc98d582
+EBUILD reiserfsprogs-3.6.27.ebuild 1168 SHA256 e521726716f508628db0f7e2be1758dc4cd3f894287338cb30f35172d88eecae SHA512 9e8cc70a7a1dd069cef8326ec76b14218ede56042bed6294cc5168d88b8482fe51a3ee97188c71b29e27dc93a817d6dc62387d6e06b43dbcf0ea4364362a43dd WHIRLPOOL 5def6588cd3b3c72d70eee62e3393c8b42fe3d3183a242cfbfd02cc262a7e7706b0ce63ddcc0eb1596b4d101c2cb5b31c98a81cb5a3b9fe0ee228723f49d22bd
+MISC ChangeLog 4240 SHA256 d5a3ba1c7907ff5aaefed03824deeef21a967e039cd6774adcb5a6ed386be582 SHA512 4a14fc1ec82d118e2b1d73231ec21381c5f639b7c974e1147f955e02806d9a5289131e75f4327f861417e5d681fefc1c57a333a715ed6e161bdcb34af696f0ab WHIRLPOOL 5d59bd347b5d8ce73572202eadd1f56eb4bba1ea625e903cff1ba2e740238653e65e25c562061a54f3e00abc690360f2b1c8cd4f450bcaf3208f84d22272dd39
+MISC ChangeLog-2015 15604 SHA256 392f390a491992be577403168d28e32ce1c36b9731165dac0033ed5542c1d09b SHA512 4d057d00d673ea142991357166e1c3875be25acd58f871dbd756f12017882e06d110a1f1698de71cf4612e62839760e992cee1c555b495c361ebcd7619399d02 WHIRLPOOL f31129492f7838779920e8701f388e7d262b7de8bc04b621dec448b3e8ef1b91456ee2b8b459770f0ee1216d4763290d5067ccc974088a8b0e0cf4c02350915e
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.25-no_acl.patch b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.25-no_acl.patch
new file mode 100644
index 000000000000..6a3768154cbc
--- /dev/null
+++ b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.25-no_acl.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/585978
+
+--- a/reiserfscore/xattr.c
++++ b/reiserfscore/xattr.c
+@@ -1,7 +1,6 @@
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <errno.h>
+-#include <sys/acl.h>
+ #include "reiserfs_lib.h"
+
+ static inline unsigned short from32to16(unsigned int x)
diff --git a/sys-fs/reiserfsprogs/metadata.xml b/sys-fs/reiserfsprogs/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/reiserfsprogs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild
new file mode 100644
index 000000000000..cbce81c635b0
--- /dev/null
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit flag-o-matic
+
+DESCRIPTION="Reiserfs Utilities"
+HOMEPAGE="https://www.kernel.org/pub/linux/utils/fs/reiserfs/"
+SRC_URI="mirror://kernel/linux/utils/fs/reiserfs/${P}.tar.xz
+ mirror://kernel/linux/kernel/people/jeffm/${PN}/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 -sparc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+src_configure() {
+ append-flags -std=gnu89 #427300
+ econf --prefix="${EPREFIX}/"
+}
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild
new file mode 100644
index 000000000000..cd95b4756b1f
--- /dev/null
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.25.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="Reiserfs Utilities"
+HOMEPAGE="https://www.kernel.org/pub/linux/utils/fs/reiserfs/"
+SRC_URI="mirror://kernel/linux/utils/fs/reiserfs/${P}.tar.xz
+ mirror://kernel/linux/kernel/people/jeffm/${PN}/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ppc ppc64 -sparc x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.6.25-no_acl.patch"
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+}
+
+src_configure() {
+ append-flags -std=gnu89 #427300
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --libdir="${EPREFIX}/$(get_libdir)"
+ --sbindir="${EPREFIX}/sbin"
+ $(use_enable static-libs static)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ dodir /usr/$(get_libdir)
+ mv "${D}"/$(get_libdir)/pkgconfig "${D}"/usr/$(get_libdir) || die
+
+ if use static-libs ; then
+ mv "${D}"/$(get_libdir)/*a "${D}"/usr/$(get_libdir) || die
+ gen_usr_ldscript libreiserfscore.so
+ else
+ find "${D}" -type f \( -name "*.a" -o -name "*.la" \) -delete
+ fi
+}
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.26.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.26.ebuild
new file mode 100644
index 000000000000..d6725dee34ee
--- /dev/null
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.26.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools eutils flag-o-matic
+
+DESCRIPTION="Reiserfs Utilities"
+HOMEPAGE="https://www.kernel.org/pub/linux/utils/fs/reiserfs/"
+SRC_URI="mirror://kernel/linux/utils/fs/reiserfs/${P}.tar.xz
+ mirror://kernel/linux/kernel/people/jeffm/${PN}/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.6.25-no_acl.patch"
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -std=gnu89 #427300
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --libdir="${EPREFIX}/$(get_libdir)"
+ --sbindir="${EPREFIX}/sbin"
+ $(use_enable static-libs static)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ dodir /usr/$(get_libdir)
+ mv "${D}"/$(get_libdir)/pkgconfig "${D}"/usr/$(get_libdir) || die
+
+ if use static-libs ; then
+ mv "${D}"/$(get_libdir)/*a "${D}"/usr/$(get_libdir) || die
+ gen_usr_ldscript libreiserfscore.so
+ else
+ find "${D}" -type f \( -name "*.a" -o -name "*.la" \) -delete
+ fi
+}
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild
new file mode 100644
index 000000000000..218e8b2202ea
--- /dev/null
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.27.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Reiserfs Utilities"
+HOMEPAGE="https://www.kernel.org/pub/linux/utils/fs/reiserfs/"
+SRC_URI="mirror://kernel/linux/utils/fs/reiserfs/${P}.tar.xz
+ mirror://kernel/linux/kernel/people/jeffm/${PN}/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.6.25-no_acl.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -std=gnu89 #427300
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --libdir="${EPREFIX}/$(get_libdir)"
+ --sbindir="${EPREFIX}/sbin"
+ $(use_enable static-libs static)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ dodir /usr/$(get_libdir)
+ mv "${D}"/$(get_libdir)/pkgconfig "${D}"/usr/$(get_libdir) || die
+
+ if use static-libs ; then
+ mv "${D}"/$(get_libdir)/*a "${D}"/usr/$(get_libdir) || die
+ gen_usr_ldscript libreiserfscore.so
+ else
+ find "${D}" -type f \( -name "*.a" -o -name "*.la" \) -delete
+ fi
+}
diff --git a/sys-fs/safecopy/Manifest b/sys-fs/safecopy/Manifest
new file mode 100644
index 000000000000..8e19ed32bcd0
--- /dev/null
+++ b/sys-fs/safecopy/Manifest
@@ -0,0 +1,5 @@
+DIST safecopy-1.7.tar.gz 398465 SHA256 42fbed5d4764020eb0f34d95e97a0e14e62d801c3ef80f89bd497d94d39cc4fd SHA512 ecba54ecc0e0dc13dd6339f8c8dc311fc3ad41ef23318c1aa2a7f6bb7f1529389bedf7b58ea72486c083d39032a6e4a775e5a555a1ff96c669fa7fbd6c1fb868 WHIRLPOOL e71dd8c5db77a53a1cb088d964f1496581ef3ca7d534413f5bd20a3939b32fcab869aaaf05395bbcfd7289982be1c2e4065a55470f5a852b8c552dd8578cd09f
+EBUILD safecopy-1.7.ebuild 742 SHA256 2f10fcad6376e176655f80bd3dab81eacabe7a6ddbd8119b96ad252b06920b20 SHA512 eab5e7979985134f79cd89b2961efcad4f1a9e3c0517c1cd42610c9e8bff1f64ddef79ce6af70d7c405b06d22a10b5fb2cd66ab1b3ec109d5fae0eea98250063 WHIRLPOOL a49226e33d2e5c7d3173e7f1048d7087dcf8b5f082f65af8fb492006a07a87532ef14629dba339c6299bb103b6af67c9118d6b28f18e731530c0a832cc9541f2
+MISC ChangeLog 2173 SHA256 f82e114851269e601d7f788370798580bf072dd8b4f2405733d3f6a84b525406 SHA512 ac5725f092aec9d87907400812aa1edc24ab693ed764752ed8803e855880255ed283a7a26c0990311ea7f41d35570059046996895b6aa9911bdd17ee098cf78a WHIRLPOOL 4f6b82125fb03c2c3140b4a5cc6e927672f10c685d41b959b5c54e41b096d09aaffe2a4dd12e0f31016e839f1b157a0eb00e80a54562581a963ca482129a5cff
+MISC ChangeLog-2015 2515 SHA256 cec0f601a6c9f086117e284b5ae5936593f6aaff110e5ca4a4c13c0ec21dee1a SHA512 97dcd27993fe14e2bc91b221a39eea98b5cc57d7e4e2c8bfbadcdf853ceea95ff477542cbfa3e02ee819da50a81bb4924cf3a637cc34b5aafcae6b930259154b WHIRLPOOL 0367bf30ab4577e9674ff4ab351f16102e86323cd37d026cfae1bb2feca7673b7de55434d51d6eacc7e2e374b05444e7339a035fccced71fbfc5b129d929b6ea
+MISC metadata.xml 615 SHA256 26eb0bedd38dc8d410441a8fdfa22692b4a0ad47bff1b00174486f6348c47524 SHA512 19be4af38e35c1ddc44b6d4429011cf0888713bf6ee3a3cd05b52ae24578f9eb486fb176733b1916a39521e2055e5d6072288bdf3a417f5c4c4514675ecb6112 WHIRLPOOL b964bb91195533c8f89b72ee7613db767a9f1a88c07b49f0612f4170c2552f9e9e11f9c4d36317b88705254f55ac9f6b59fd13b611b7d18789f8789f206d66da
diff --git a/sys-fs/safecopy/metadata.xml b/sys-fs/safecopy/metadata.xml
new file mode 100644
index 000000000000..dd9abd576583
--- /dev/null
+++ b/sys-fs/safecopy/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chewi@gentoo.org</email>
+ <name>James Le Cuirot</name>
+ </maintainer>
+ <longdescription>safecopy is a data recovery tool which tries to extract as much data as possible from a problematic (i.e. damaged sectors) source - like floppy drives, hard disk partitions, CDs, tape devices, ..., where other tools like dd would fail due to I/O errors.</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">safecopy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/safecopy/safecopy-1.7.ebuild b/sys-fs/safecopy/safecopy-1.7.ebuild
new file mode 100644
index 000000000000..d3fba62a64fb
--- /dev/null
+++ b/sys-fs/safecopy/safecopy-1.7.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit base
+
+DESCRIPTION="Data recovery tool to fault-tolerantly extract data from damaged (io-errors) devices or files"
+HOMEPAGE="http://safecopy.sourceforge.net"
+SRC_URI="mirror://sourceforge/safecopy/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+
+RDEPEND=""
+DEPEND=""
+
+DOCS=( README )
+
+src_prepare() {
+ base_src_prepare
+ sed -e 's:bin/sh:bin/bash:' \
+ -i "${S}"/test/test.sh || die
+}
+
+src_configure() {
+ econf
+ if use test; then
+ cd "${S}"/simulator
+ econf
+ fi
+}
+
+src_compile() {
+ emake
+ if use test; then
+ cd "${S}"/simulator
+ emake
+ fi
+}
+
+src_test() {
+ cd "${S}"/test
+ ./test.sh || die
+}
diff --git a/sys-fs/scan-ffs/Manifest b/sys-fs/scan-ffs/Manifest
new file mode 100644
index 000000000000..76f9f66eeacb
--- /dev/null
+++ b/sys-fs/scan-ffs/Manifest
@@ -0,0 +1,5 @@
+DIST scan_ffs-1.2.tar.bz2 5119 SHA256 a6d52583a275c02ca8c504a302e065b20512da5795cd2929cda13184c5305d4a SHA512 5b4260148a6997bd246a69c4c66069d5b0ac811ea0477e58ea2eb8594fceb3013f8f056eeebc703b1bcba8839e16eaeb177af254c7bba264ab791686986eecbf WHIRLPOOL 90d5b2ecd72ebc14cf4f8b9e1fe04be623a2853e7c492ad6121a54e11e2d066122b7cfc2b608d0566c54ec19fc9932539a50c6356a3c5f8f6380395be2ba4006
+EBUILD scan-ffs-1.2.ebuild 455 SHA256 a7ecd0c0bb1fb64db83667e42e89e739e4a682218576f4b29de9ac329b12cd62 SHA512 f4d53f757045077363479bc23faa8552c7a21a0de4878bb7f9a220209ac037527923edf356927c1e438ec5ac2dd2f1e74f2bb5bcdd07f2a14fb39159eb445046 WHIRLPOOL 58fe0fd4867bda1e64ea025f342a2f7ca238fc283b8543f3e6cc9493dcbbe0fdcf425a3497456fd910abf6284f1450ecdcc27ce7584355459fffcbfca6fa7204
+MISC ChangeLog 2424 SHA256 2e3944f12d88f5f31ca0e2a69c896e26d94a3c5e34c775258f12e6758e730bc9 SHA512 bdf31fc6165176ec079b930115869deb1697805f2ad8638fc99d8acb7a49fdba3e90b25353a0b2940afe864805b10e6070a66638d3c19f25929cdff798787f0e WHIRLPOOL f9cf9a6b0afce67bdae431322414cdbd40a0d2ef9d1a56b2a60ba1ad81db6ee034702ea3d883d23b6f5b19b5812703120f8b3192de5f2f1cca89d18b06e027cb
+MISC ChangeLog-2015 623 SHA256 6bee120f20d69a91ac67da8fd3e234900804d14789f033c47e10d6ec8b3e2f0d SHA512 995cb5bdc0b776a6905a99fc8a7bad0885e5a722eecd809f20aecea60aaa1b5036936fd8b9ad83b3b438e02b8cfda4228b515593e8bbff53112d4f87467b5f5d WHIRLPOOL 8fc4a9a40fe5a003b2905e3acc19586c4698f26ab6b3fd7d90c447280e8ce3f983dc90830ac4cdbbed21cd26347c729aa93e76a32550b9b119cb95d09773edf2
+MISC metadata.xml 898 SHA256 5f3527a699cb6ebbdf3c93840e8b00f677ce022d1d031c1f6694e6d7c9677479 SHA512 109021dcb944068b630b6df24dba12ea87468ef0f8b6f478751b0c0153e4a0a503fa86bf8abd1fc8d006a9acd8374b555f655939482eef76edebce58cb7cb3a2 WHIRLPOOL cd65f6d10ef08d0f105104229e290d53cdb413a6c2b79a6a5c58c573781e0052f195d1a1b32be2dd3daa20be64d2b31cd15da1d51be782d5c089091749dd2875
diff --git a/sys-fs/scan-ffs/metadata.xml b/sys-fs/scan-ffs/metadata.xml
new file mode 100644
index 000000000000..e67b15e460bc
--- /dev/null
+++ b/sys-fs/scan-ffs/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>bsd@gentoo.org</email>
+ <name>BSD Project</name>
+</maintainer>
+<longdescription>
+scan_ffs(8) recovers accidential lost or deleted disklabels.
+
+This is the life-saver of typos. If you have ever been working too long,
+and just happened to type 'disklabel -rw da0 floppy', instead of 'diskla-
+bel -rw fd0 floppy', you know what I am talking about.
+
+This little program will take a raw disk device (which you might have to
+create) that covers the whole disk, and finds all probable UFS/FFS parti-
+tions on the disk. It has various options to make it go faster, and to
+print out information to help in the reconstruction of the disklabel.
+
+Ported from OpenBSD to FreeBSD 4/5 with support for UFS1 and UFS2.
+</longdescription>
+</pkgmetadata>
diff --git a/sys-fs/scan-ffs/scan-ffs-1.2.ebuild b/sys-fs/scan-ffs/scan-ffs-1.2.ebuild
new file mode 100644
index 000000000000..fe8ed4e73013
--- /dev/null
+++ b/sys-fs/scan-ffs/scan-ffs-1.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit bsdmk
+
+MY_PN=${PN/-/_}
+MY_P=${MY_PN}-${PV}
+DESCRIPTION="Recovers lost disklabel"
+HOMEPAGE="http://www.ranner.eu/projects/"
+SRC_URI="http://www.ranner.eu/stuff/${MY_P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~x86-fbsd"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_install() {
+ bsdmk_src_install
+ dodoc README ChangeLog
+}
diff --git a/sys-fs/shake/Manifest b/sys-fs/shake/Manifest
new file mode 100644
index 000000000000..bfe13e47b406
--- /dev/null
+++ b/sys-fs/shake/Manifest
@@ -0,0 +1,9 @@
+AUX shake-0.999-fix_stat_include.patch 827 SHA256 5dbe88b8980f8663cf7cabf6bc4c99c4c8e8d7e0c918e61de14def93240bdde4 SHA512 92918957fe5af4024e0d4600fc601a8c8aae26edc5b353caea8879582c06908b42184f4d5bb7f388c071816ca1f70bdb4b9768b18e8ec3669481ca486b705fc8 WHIRLPOOL 825bb1430bb472ca3e7f9a3575bc7442e4b724598e0c989812fd3795f6507b93a376f5375e7412a4ce0d500f9037d548ad22fcf1195f61e0eaa283052b5fc21b
+AUX shake-0.999-uclibc.patch 1180 SHA256 fe8339ed47ae63db4d4c6092eb2037740ed1ecf661f3823ad972a569d4318827 SHA512 f37a4fbcc1ae932c0c8c9af090cb93481f3c6eb3de1994cc1585903e3ddaccf4c1c8a4e121b720119378fdd0f1d74235f197ba1a5c984aa416107bec6eb39a1e WHIRLPOOL ccfe5e93456a231b86ab89cdf44678959952d07ecb1e25f85cdf429e71d4b483de179e94dc102923d7f9482ce13164344a8b6ca7c23684dfb17dc1eba56a52d7
+DIST shake-0.999.tar.bz2 37225 SHA256 f030d5ba5d4d2d449249c49b253a71de8c342b9b2f5e1e7d3e7ba5277e3f5e91 SHA512 7dbd61cb35f771ffae6ec90bcdbf0cc467166661a78379191c7cf888d5f32ad27ea56da739f8f39344a209003747de2be1b57f2335ddc5641f55605c15c84b78 WHIRLPOOL 1d7354dac8aa3582048e8f8532ee308a792c041f15dc7b1e9e68b86b7cbfa66a72bbf9bbca481a3ac9738cb505d529eecd9aae135f2a64cfe5570ace59b862d8
+DIST shake-1.0.tar.gz 42885 SHA256 ac5a57bd8d55e197734852bf66318ecf39b4c5c298e43a259ba1d8a4b7a2ced3 SHA512 f73601ebf37ac934b2cfb5bcedd530e38bd6873615e80eae01c690bf935ed3924abb1d06fb31c46397b5804d47a36584ac5e11b4c7142b46e570ddbf3abe1775 WHIRLPOOL d3af2b55f7aa4103e4c9ba7f6fb4ac59b9a60992318d226238ed22048b09ce4fe4255494f189be280b76f100936d8cfde6a86ff8390039f6b9c03c2c9db9d2fa
+EBUILD shake-0.999.ebuild 539 SHA256 7d999bc513d57c4acc175f3764604da062dc04ffb6de579f53709ba8409ad7c1 SHA512 911a1ad7694b2579e8012799db50e4f33dba8471b615f7a3f5669b01faeb58a774b52e5ec40f74bc237e3ee4c00fac1aac284939cc09ff732b6f8854b1bfcee2 WHIRLPOOL 048f2bd6c7d1750772328c703bcd2051674534e1a3ef7c0843de2de694668580fd59b01276636714983c8a92066492733ce7a46f8b96c2c211fbfdfd07e9806b
+EBUILD shake-1.0.ebuild 505 SHA256 46e5686c2b34a1b7c22a2d90912f703513aa0a1db0640c5d3a7f2549514ba70a SHA512 b31358ce94fa4b3a04bb933c4d4d1aa4eb0045bf084ceb3f426da7dd6d0f800335b58ce14b2c8ee40d0497f06692b475fae66723c789670aa0e9974b10bec6d4 WHIRLPOOL 174094cbaab7bd22c24cc492508bf1d5a62f35e3e8be2d30bc22be2c3fd172fbad1938362ac200f2eb637a2c9466be8d0f1ac8cc8f0fba642ff1e4621bd31c99
+MISC ChangeLog 2397 SHA256 b8ba22de7999ed9e88f3221554a901164e4260c1d357b2b2f731180b310ebb19 SHA512 0a452104424b5bd26c5e4d57f08e4a93f07f60286aac8ea3425a8347704084d657ba17db9459092bf2082f213e8a9bed0205f504f7b15460f42c81c70d8920b4 WHIRLPOOL d9ec84ecacc1abd0d6c6a63ed73398d74b56535762059927941ae225dc0de50010dfe135144eede1fcbe7e7a4e8fd9d0092a6bd62cd50d49c1816e277411357f
+MISC ChangeLog-2015 2023 SHA256 7d7f1f340401975d68505aa1e34625bea3559e5f5866f9e9d9b67edc38a1adea SHA512 a6b537200a33247ff61ad5a7fc0c44f92131d5547ec660230b3e7701be904153cf5a3d285a6cf410fdd85c6938d06f58ecfc2ef8789126e26d38401fdf8ce0be WHIRLPOOL 95b5e5b2e1be23a7b441dc914e41f682df686525326c2c7b7e432a91c583049ad4ae0764bf1dba170da1d94a3547cd3c45189f127954c87d1735f75f198d827d
+MISC metadata.xml 452 SHA256 78824a07732e054d3bae8a30b0a73a4bf22315360e747c81066c9c45671d2af8 SHA512 95fab203ab540b445036639bcc24ae4f7d18cd51a4f1a693c14a69ba5c1b561c77ab1e0585f2baf389a3f660c19a8a06f6b0cd5d748a52fc72fd842df99b2a3e WHIRLPOOL 76c2389fb9cf1dc7719e47fbd9ccfb27099a665d03a9137ba55a4280bfe769d5851f84b36d6914c776631bc6dc1254e94a663d605e28fd483956b016d96d3c70
diff --git a/sys-fs/shake/files/shake-0.999-fix_stat_include.patch b/sys-fs/shake/files/shake-0.999-fix_stat_include.patch
new file mode 100644
index 000000000000..b55776397288
--- /dev/null
+++ b/sys-fs/shake/files/shake-0.999-fix_stat_include.patch
@@ -0,0 +1,22 @@
+diff -Naur shake-fs-0.999.orig/judge.c shake-fs-0.999/judge.c
+--- shake-fs-0.999.orig/judge.c 2013-01-21 13:21:17.171974754 +0100
++++ shake-fs-0.999/judge.c 2013-01-21 13:21:31.346958593 +0100
+@@ -26,7 +26,6 @@
+ #include <fcntl.h> // open()
+ #include <sys/types.h> // open(), umask()
+ #include <dirent.h> // scandir()
+-#include <sys/stat.h> // stat(), umask()
+ #include <unistd.h> // stat()
+ #include <stdio.h> // printf(), tmpfile()
+ #include <error.h> // error()
+diff -Naur shake-fs-0.999.orig/judge.h shake-fs-0.999/judge.h
+--- shake-fs-0.999.orig/judge.h 2013-01-21 13:21:17.171974754 +0100
++++ shake-fs-0.999/judge.h 2013-01-21 13:21:47.630940034 +0100
+@@ -22,6 +22,7 @@
+ #include <stdbool.h>
+ #include <fcntl.h>
+ #include <time.h>
++#include <sys/stat.h>
+ typedef unsigned int uint;
+ typedef long long int llint;
+
diff --git a/sys-fs/shake/files/shake-0.999-uclibc.patch b/sys-fs/shake/files/shake-0.999-uclibc.patch
new file mode 100644
index 000000000000..2c54df0b552c
--- /dev/null
+++ b/sys-fs/shake/files/shake-0.999-uclibc.patch
@@ -0,0 +1,49 @@
+--- shake-fs-0.999-orig/executive.c
++++ shake-fs-0.999/executive.c
+@@ -214,12 +214,21 @@ release (struct accused *a, struct law *
+ assert (a->fd >= 0);
+ /* Restores mtime */
+ {
++#ifdef __UCLIBC__
++ struct timespec tv[2];
++ tv[0].tv_sec = a->atime;
++ tv[0].tv_nsec = 0;
++ tv[1].tv_sec = a->mtime;
++ tv[1].tv_nsec = 0;
++ futimens (a->fd, tv);
++#else
+ struct timeval tv[2];
+ tv[0].tv_sec = a->atime;
+ tv[0].tv_usec = 0;
+ tv[1].tv_sec = a->mtime;
+ tv[1].tv_usec = 0;
+ futimes (a->fd, tv);
++#endif
+ }
+ if (has_been_unlocked (a, l))
+ error (0, 0, "%s: concurent accesses", a->name);
+--- shake-fs-0.999-orig/linux.h
++++ shake-fs-0.999/linux.h
+@@ -32,7 +32,6 @@
+ /* Called once, perform OS-specific tasks.
+ */
+ int os_specific_setup (const char *tempfile);
+-
+
+
+ /* Get a write lock on the file.
+@@ -54,12 +53,13 @@ int readlock_to_writelock (int fd);
+ /* Return true if fd is locked, else false
+ */
+ bool is_locked (int fd);
+-
+
+
++#ifndef __UCLIBC__
+ /* Declares the glibc function
+ */
+ int futimes (int fd, const struct timeval tv[2]);
++#endif
+
+ /* Set the shake_ptime field and ctime of the file to the actual date.
+ */
diff --git a/sys-fs/shake/metadata.xml b/sys-fs/shake/metadata.xml
new file mode 100644
index 000000000000..7e9e9a1984aa
--- /dev/null
+++ b/sys-fs/shake/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>voyageur@gentoo.org</email>
+ </maintainer>
+ <longdescription>Shake is a defragmenter that runs in userspace, without
+then need of patching the kernel and while the system is used </longdescription>
+ <upstream>
+ <remote-id type="github">unbrice/shake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/shake/shake-0.999.ebuild b/sys-fs/shake/shake-0.999.ebuild
new file mode 100644
index 000000000000..775e275db2b0
--- /dev/null
+++ b/sys-fs/shake/shake-0.999.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit cmake-utils eutils
+
+DESCRIPTION="defragmenter that runs in userspace while the system is used"
+HOMEPAGE="http://vleu.net/shake/"
+SRC_URI="mirror://nongnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+RDEPEND="sys-apps/attr"
+DEPEND="${RDEPEND}
+ sys-apps/help2man"
+
+S=${WORKDIR}/${PN}-fs-${PV}
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fix_stat_include.patch
+ "${FILESDIR}"/${P}-uclibc.patch
+ )
diff --git a/sys-fs/shake/shake-1.0.ebuild b/sys-fs/shake/shake-1.0.ebuild
new file mode 100644
index 000000000000..512d8917b8e2
--- /dev/null
+++ b/sys-fs/shake/shake-1.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit cmake-utils
+
+DESCRIPTION="defragmenter that runs in userspace while the system is used"
+HOMEPAGE="http://vleu.net/shake/"
+SRC_URI="https://github.com/unbrice/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND="sys-apps/attr"
+DEPEND="${RDEPEND}
+ sys-apps/help2man"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.999-uclibc.patch
+ )
diff --git a/sys-fs/simple-mtpfs/Manifest b/sys-fs/simple-mtpfs/Manifest
new file mode 100644
index 000000000000..fc249faf4eec
--- /dev/null
+++ b/sys-fs/simple-mtpfs/Manifest
@@ -0,0 +1,7 @@
+DIST simple-mtpfs-0.1.tar.gz 116145 SHA256 052618c742e7b3faa95e1c84e8b9e1df1517dccb9460f538bb032223243588a1 SHA512 5c4b390c43ede521061c677b496d47376304a4625414853a2183a41cb4a2c67361ecd7e26d0b6197cc78e84d0a9c99ec92e85bd1c179784b5a7c06ae05ede308 WHIRLPOOL 4df83ffc56339df76124e22f93df8fcf188cad30da83f8a9349e5a8ad8ff64010a0d118bcd4a9719ee0e9a5e3cf2fd997af6f3220951792a5e8f00da3d4a0291
+DIST simple-mtpfs-0.3.0.tar.gz 36655 SHA256 5556cae4414254b071d79ce656cce866b42fd7ba40ce480abfc3ba4e357cd491 SHA512 7d2da152708c01ddd2a39c1b56cba6470bfd320b92507530cdd8fc4f25f9500ff817eac6a5d19c775f31029ae6a0baef693987c59453c60c688b84934378f772 WHIRLPOOL ef6c619e8942568f41ff03fed4e926af1b62ba22fd3b0f4db7ae675bec03b37da5b05d44a95d6e3db1e3912320492253ca1fd42034ff77293125ce2255530a0c
+EBUILD simple-mtpfs-0.1.ebuild 491 SHA256 35f7dcb46fad414b3506034199630badd88fdac12f106dcfe4e1e21ea86b5216 SHA512 2884514b1f118abbe2dcf6aa53f849452a378504d734e3b326e5d1d6460d5f333082a31abd97a6f9d16023947478189b8915faaacaf6c35c8e67bda3d60ba032 WHIRLPOOL 115256e543c4fd1bccd3902932c3521d284f261667be5686191208d0778ba6673e6df158a83fc33aca84492885ec4e2c9a56ea69088953ad016af25fff516e7f
+EBUILD simple-mtpfs-0.3.0.ebuild 567 SHA256 4aef00704423253bbc765901ba6d4385535afd92a379e082e4afba3566b1580c SHA512 774971217b5fce6ed29415ae750e11eb5ce10b1bc12ad9b55642a707e215198f75c8319e649f0d8e84ecbe41c7b6755b8552589425475fa245cd8fdbfa082d40 WHIRLPOOL b85ccf5c912c812351294f09a626043bb578b190a52873b02454feccedda15b0e4dc67fdfd211032cb6cf2757d327fb503aa6ecf29b8bb9a266ae6dbf67b773f
+MISC ChangeLog 2426 SHA256 c47254abebf969ddbb93c8855fd52f0fe788659f54870f63c65c5dde9d600c5e SHA512 1b9f11055cf32ef03b5c306feacef57dedd7771f6d33922544251618a22d3fe6e3c7859ebdf172ed5ead7465af0b476e0cbd5c6e5722d34d99c29c5c2aa72572 WHIRLPOOL ab14cd83ae1673b59ea60500154fa4c9ae602de98c7d562ebec73f22f60055f25de3c61d7401eaea5c93c74f9182f182800ed3f00ee2aea2aa22e7e2c36f65d6
+MISC ChangeLog-2015 1360 SHA256 4ef154385bb7d8c22372a1cf4c5ce12d0f119e1b2fcc57897d451d7f6585f3ee SHA512 f502665f3d750c7a3582a28e5b0ccb02342db9747af6385dc539b44c302c2fe5b6395f0dec3af3c62b928862182481efc3e68bf15da0acc8aa4a6adbc5e59e77 WHIRLPOOL 317717545c66c8791d725c9baadb49b9de38cfa94af3fc23dfa6cb4f3d4984ecba8900710c7c2e3233d079331373e2e9ff812a2183809def9e68fdfdf0f139ac
+MISC metadata.xml 773 SHA256 c53a79ef6977b740d57fd11093af6192db498716067fec90b4f60f4616b48621 SHA512 7173333c51707c87eb22a79ea5cf0d0b06313555472f12a3b591148e14e12ddb45c97bcb8bfee6ceac708ff0fabf7787a1892419ba4f1cc27a5cee75f990b67c WHIRLPOOL d0ec5d93c0e6a5707688714acf7d0fcc785be0e51303cf36e1057401c0b31503fc7993f4b361cb567c1e0eea5f876ca4024a0c7d35bc6fa9be83f9c33b76d59c
diff --git a/sys-fs/simple-mtpfs/metadata.xml b/sys-fs/simple-mtpfs/metadata.xml
new file mode 100644
index 000000000000..efb475ad81bf
--- /dev/null
+++ b/sys-fs/simple-mtpfs/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription lang="en">
+ SIMPLE-MTPFS (Simple Media Transfer Protocol FileSystem) is a file system for
+ Linux (and other operating systems with a FUSE implementation, such as Mac OS X
+ or FreeBSD) capable of operating on files on MTP devices attached via
+ USB to local machine. On the local computer where the SIMPLE-MTPFS is
+ mounted, the implementation makes use of the FUSE (Filesystem in Userspace)
+ kernel module. The practical effect of this is that the end user can seamlessly
+ interact with MTP device files.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">phatina/simple-mtpfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/simple-mtpfs/simple-mtpfs-0.1.ebuild b/sys-fs/simple-mtpfs/simple-mtpfs-0.1.ebuild
new file mode 100644
index 000000000000..2e98a9c8c77b
--- /dev/null
+++ b/sys-fs/simple-mtpfs/simple-mtpfs-0.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools-utils eutils
+
+DESCRIPTION="Simple MTP fuse filesystem driver"
+HOMEPAGE="https://github.com/phatina/simple-mtpfs"
+SRC_URI="mirror://github/phatina/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+CDEPEND="media-libs/libmtp
+ >=sys-fs/fuse-2.8"
+
+DEPEND="virtual/pkgconfig
+ ${CDEPEND}"
+
+RDEPEND="${CDEPEND}"
+
+AUTOTOOLS_AUTORECONF=1
diff --git a/sys-fs/simple-mtpfs/simple-mtpfs-0.3.0.ebuild b/sys-fs/simple-mtpfs/simple-mtpfs-0.3.0.ebuild
new file mode 100644
index 000000000000..91269a3c30f3
--- /dev/null
+++ b/sys-fs/simple-mtpfs/simple-mtpfs-0.3.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="Simple MTP fuse filesystem driver"
+HOMEPAGE="https://github.com/phatina/simple-mtpfs"
+SRC_URI="${HOMEPAGE}/archive/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="media-libs/libmtp
+ sys-fs/fuse:0"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}-${P}"
+
+src_prepare() {
+ default
+
+ # The tarball doesn't contain ./configure, only configure.ac and
+ # autogen.sh.
+ eautoreconf
+}
diff --git a/sys-fs/snapraid/Manifest b/sys-fs/snapraid/Manifest
new file mode 100644
index 000000000000..e84cbba88bac
--- /dev/null
+++ b/sys-fs/snapraid/Manifest
@@ -0,0 +1,18 @@
+AUX snapraid-11.0-minor.patch 1056 SHA256 6bef9ce9f805797fcb2146e27a5bbcc1e6d7ef6825069478f8232afd7b0be991 SHA512 12e0ab17f57d0ac51c1cbd87bb1f5526de3425291a04873b9bb3253d73e3d4b3f18f40f4fffb24f92810c936d1ff3c3bb7029bc1b878d618f79c95c6b57321e2 WHIRLPOOL 9fd05cf925697b87dfe951e135c1804beeab4c09cc0c4bb26f6cc63ef81030c4409d60d584de91c0cf85dbbaca82bcf64e43e34951de595b6190a406206da873
+DIST snapraid-10.0.tar.gz 710368 SHA256 f7dcf19480256fc2c1db9ab976aa12f786e76da6044cc397f0451524e8031ad6 SHA512 cd4af07c3dc3b2399287bf0aa273c01a32fd2e8fd4ad8b98f37e36a069b8092d7a4f69199fea4d110dda0d3059af5e8111e9fa7662829620a525efd01462872c WHIRLPOOL bf5c8d87505a60ddaebc86dba0fcf5ca3c08e7c0bdb3044261df5498e9f7f3ff58d60ff6d2666b91c98e9d994d4fcd3b1734aa8baf5d1aff49014a51711c322c
+DIST snapraid-11.0.tar.gz 729854 SHA256 30a72b8853ea750128c96784b73bb55f7faa4b16367b2e03f40c1f78515c5771 SHA512 d2c27b4b0eaecbede685c8a7607e47a9abe43d6d3577398765507c413c2dea524602d1d854308633b58271912f9f7fd04a8772adbc98278e4703a451cda065f5 WHIRLPOOL 0f6f44f47e6a052bbb1440380bb9180e11d4d6ba377abbf0670e682e660aeb9a66101e94d59f1815ea3f38208e3dd1a53c17752e26dccdd4bab60bba1d78f31a
+DIST snapraid-6.2.tar.gz 609619 SHA256 b182328227ed9b87b01037f7d005d38a6e3cfb0f675e919978c696dcc6246787 SHA512 c14d6e48d027589ea67de633b979c1a9770cfca7a35bd2a4053ec467ce7edad1c1b21884bcc6e3092a7016533ab1dc6c3a4c8e11f39172d6be8fc4f1b1c9bb9a WHIRLPOOL a0127f33cbbd97b1b39c0de0b0837336a0060c35ffa41c0b118d0cedcf9d69ddf929e824e68d8ba43271ec8a13d45ec1c19228962e155e97be5260fd266cc459
+DIST snapraid-6.3.tar.gz 615262 SHA256 1f1961385b865bff5282bd16aff76f372f3ed19b685ef7a3b27d907a499385d2 SHA512 52d9ce738c14f584e08b32dbb58ca43859e41a05cfd3baa3d15d0677d2b8335e05264429f1aa7e1e5c1c71b26f1ece304717bd0f82c3078464580a97cc0d6c6a WHIRLPOOL 73d79e621e795aea3572c8f9def149c2cddc31b380cc57581b8b96302f175957fb93dd48fccff7f5b52bc7b3e6fbd86415e8ba9498f630276dc8c8fc0cd036b0
+DIST snapraid-7.0.tar.gz 633959 SHA256 554684520204d45f8b7cee9abb0269dd2bdba272cb0130c3b26062bea551a791 SHA512 36acea57e277047f26380c3d97f6f2bb7907f046ff4001a59705c51c9e4184c4ea7d4f2d0c4eb767d9e395ab97453acbac73183ae6dd99e0ac0f12897cbad32c WHIRLPOOL 3b4950333043f8acbf7ff0c3e1172a190fad26963658b1103c8feeb6c05141b0b948f8c05b50afb90c1740947be1baa940db82096b61c87d25e9959b9d248049
+DIST snapraid-7.1.tar.gz 634036 SHA256 dd9005b6d7ea701e4aa0f854a0e34dabe68d7765b75f12fc6b3e1fda4d5c2cef SHA512 3f8f822c8937a66c17677a4d52c0b45ee73eeb032654b98c3012905ae436945276f127c43a48d07f5a4eb128d6bedbc3bdc4166e8a867ec12c7992726c6e6045 WHIRLPOOL ec0d0887a71d85c091c33c7859393b890b7a1ab37716e1ba4e592b62cf537f31b3920ad9069abf8860a7ea710cbb1f1f9a9a59feae7a2540eca9ed5b851b8d21
+DIST snapraid-8.1.tar.gz 669318 SHA256 6bf89a1319ac3403958cd2c98a9c6102728c0070cfa1aedd90c4561d93c54e5d SHA512 a505b85f80e2d06dbb0ad6f8680e1ce8178eafacc9be2fd232dbff853dcbd59389ae29e8a0144ba958d2180b4ddee5a50aa54d4ac5655f4fb2ed729a32bcae89 WHIRLPOOL ea7309509cb35ca4b46735dac931de48784dbf0ed21305de9f62c17c47c2a4395d3110b8a0a2f9313e8615a97814886365dcf6258ab9433d34aa37a62d573937
+EBUILD snapraid-10.0.ebuild 442 SHA256 5be9f729f2ff48d6ffb059f557c863c0fa8e9a47dc91846f2af9b95366499d80 SHA512 0544c6e592c814f8fe7d0765271b8244c34d5ddb4b0384b295403937ab8ad8278b76e60de169cbe91fdb85d65c9ac164658fbe4a740e0e50c7248e782078564a WHIRLPOOL 70fa8bf52174fabadb5f1a07758cf1ad56ec540e62d08635267e0dafdf2b506de9b2c9e85500e918aa6577ae701aee91a595da4065028aa4e5fc52c0752aed77
+EBUILD snapraid-11.0-r1.ebuild 546 SHA256 fc6f518d8a41575522923585a3d9cc79fa0361de44290b62cdd84af26cab9967 SHA512 bcd768cd63c9763790ae464065b7a2826052708dc6bf40104d9f4b10d8e27357c4693fdcbb07b2c91ed83812046bf56b5c3439d793d967e5a877e5f27224c1f4 WHIRLPOOL 0ceb42944ee89b51a7a0b9d5c1fa557578888607d01e195a192773e604fcefd433a50e5ad56433d90386369f63d9c18f23ce0ef870faafc1f2b780714936957c
+EBUILD snapraid-6.2.ebuild 465 SHA256 dcdb93edd9beb1ed70020b8f7406c50ffb84183fc4aa01ba1f6150a16e681c3a SHA512 07616bf1f4cc2ab18d9853ff16a6db1e9dfbec3309daf329e559918297a1c64a5a22fbda269323cf867b4af7f4539ad27f455f173c2b7c953ad1435431c8ce6e WHIRLPOOL 701961fb5f4efd4cecdb585a9d21781bd7bf34760a5d8f9eac0ff57baa373319c00724392864ad0b5c196575e7feb871a56351771c5ac3f2b5f95930b0889c0b
+EBUILD snapraid-6.3.ebuild 465 SHA256 dcdb93edd9beb1ed70020b8f7406c50ffb84183fc4aa01ba1f6150a16e681c3a SHA512 07616bf1f4cc2ab18d9853ff16a6db1e9dfbec3309daf329e559918297a1c64a5a22fbda269323cf867b4af7f4539ad27f455f173c2b7c953ad1435431c8ce6e WHIRLPOOL 701961fb5f4efd4cecdb585a9d21781bd7bf34760a5d8f9eac0ff57baa373319c00724392864ad0b5c196575e7feb871a56351771c5ac3f2b5f95930b0889c0b
+EBUILD snapraid-7.0.ebuild 494 SHA256 a057ae0dd1df2fa3f5c815144a511b70e1b9cc3038759a00059352ccf96ac948 SHA512 1fb3f3ecd7e895389516a05e703d4b4206313609b981188b24fcfaa4c1ca6b0cc6b8718ad6d4e4819a1b24ce6985fc608aaa9c741028063e5696accd4025c2f1 WHIRLPOOL 4d3618cc2ec151fd8599641d189089c5a06eda220af056d79c7a4250440c72380909b55648cf66da0ed6e4d6df942abc2dbe1b6a1c79973068a3fc29471c7b07
+EBUILD snapraid-7.1.ebuild 434 SHA256 d1aeea0233908ff3cc461839e2e867202f7948478d969f0d28230512bca90ad9 SHA512 e6831cbc31e23b09b4ba589394c33d5f058db9b617ccad92561ba50b795ccd6b9b65650316840539ae9897e452acc9904994de2bc344d50555535cb592c3cc36 WHIRLPOOL 3848eaff0ff21e738ae3ba020d0916195f5d153583fe0dae57ac72ba742923ce9dc40666a60197cef1601cb25594920236d1ec181593a64363d1c496b107b1e1
+EBUILD snapraid-8.1.ebuild 434 SHA256 d1aeea0233908ff3cc461839e2e867202f7948478d969f0d28230512bca90ad9 SHA512 e6831cbc31e23b09b4ba589394c33d5f058db9b617ccad92561ba50b795ccd6b9b65650316840539ae9897e452acc9904994de2bc344d50555535cb592c3cc36 WHIRLPOOL 3848eaff0ff21e738ae3ba020d0916195f5d153583fe0dae57ac72ba742923ce9dc40666a60197cef1601cb25594920236d1ec181593a64363d1c496b107b1e1
+MISC ChangeLog 2656 SHA256 52c75378ba6a5acd27f705f0c57541ba6136dccfcccc469b6d15bc4b88e49c34 SHA512 0c44708af0ba26abcd218b2259899f83d838be7b5247857082e2ae421e644cae593995e761523ac17db2925df8af571c793abd2f1c34dbc050ecaec1afc69136 WHIRLPOOL e657f0e13fa9dabcdba8fed03d7d6c406857212ed1aeef3341f945d89dd4192e8ac3de51d00a77f4ee911c5c2ebafb9485396a6b6c310e1c5214faec1977b679
+MISC ChangeLog-2015 3177 SHA256 83200bf26471c83411ee862c871633e3e5b0a705c6aecb4fa2870c2b5224549d SHA512 14f2ec61ba8b1098f43bcbf9c684e452edd2b5d137302016b1e5caeb4f1a2510c7aa95a4de815d4209d5f333d8fb1ee925adf9c971cffed8637402788dddaa61 WHIRLPOOL 9030e52e59af2de42360000d82339a6c817bbc288a6d456ece18c058f2925bc8cc92c7aeefe140738435327e300917bd75827c3bb028132a139e120d9dec1d58
+MISC metadata.xml 389 SHA256 57e48002b1b8cabcc88891a929566e512aafcbdd0f7dcdc7edbf5361addf6f56 SHA512 896180bead566fa0ba5f107a0d2e55b0cbf437405cb4a2ac9119880011cc8befa0bc6a58c39ce09998e6288575e4d0e50476e14373d3cc39e534693a32e6d3fa WHIRLPOOL 255684dc590b4111f7c16f631b2da8e27a291a9b888b57b6544d1d8ee14d0098d02ff139829cb639d608beecb3e7849eb644896127df0219752936c56c087eef
diff --git a/sys-fs/snapraid/files/snapraid-11.0-minor.patch b/sys-fs/snapraid/files/snapraid-11.0-minor.patch
new file mode 100644
index 000000000000..f212e9a0d575
--- /dev/null
+++ b/sys-fs/snapraid/files/snapraid-11.0-minor.patch
@@ -0,0 +1,39 @@
+From 04dfeea107f81afa50e4888dd7da2f4a9c82d6ee Mon Sep 17 00:00:00 2001
+From: Andrea Mazzoleni <amadvance@gmail.com>
+Date: Wed, 4 Jan 2017 00:25:56 +0100
+Subject: [PATCH] Tentative fix for major/minor missing
+
+---
+ cmdline/portable.h | 6 ++++++
+ configure.ac | 1 +
+ 2 files changed, 7 insertions(+)
+
+diff --git a/cmdline/portable.h b/cmdline/portable.h
+index 58826c6..059cd38 100644
+--- a/cmdline/portable.h
++++ b/cmdline/portable.h
+@@ -198,6 +198,12 @@
+ #include <sys/types.h>
+ #endif
+
++#if MAJOR_IN_MKDEV
++#include <sys/mkdev.h>
++#elif MAJOR_IN_SYSMACROS
++#include <sys/sysmacros.h>
++#endif
++
+ #if HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+ #endif
+diff --git a/configure.ac b/configure.ac
+index 125dae9..8f34f43 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,6 +31,7 @@ AC_HEADER_ASSERT
+ AC_HEADER_DIRENT
+ AC_HEADER_TIME
+ AC_HEADER_SYS_WAIT
++AC_HEADER_MAJOR
+ AC_CHECK_HEADERS([fcntl.h stddef.h stdint.h stdlib.h string.h limits.h])
+ AC_CHECK_HEADERS([unistd.h getopt.h fnmatch.h io.h inttypes.h byteswap.h])
+ AC_CHECK_HEADERS([pthread.h math.h])
diff --git a/sys-fs/snapraid/metadata.xml b/sys-fs/snapraid/metadata.xml
new file mode 100644
index 000000000000..6dd5f1201285
--- /dev/null
+++ b/sys-fs/snapraid/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>junghans@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">snapraid</remote-id>
+ <remote-id type="github">amadvance/snapraid</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/snapraid/snapraid-10.0.ebuild b/sys-fs/snapraid/snapraid-10.0.ebuild
new file mode 100644
index 000000000000..365a2b3e3b77
--- /dev/null
+++ b/sys-fs/snapraid/snapraid-10.0.ebuild
@@ -0,0 +1,15 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="a backup program for disk array for home media centers"
+HOMEPAGE="http://snapraid.sourceforge.net/"
+SRC_URI="https://github.com/amadvance/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DOCS=( "AUTHORS" "HISTORY" "README" "TODO" "snapraid.conf.example" )
diff --git a/sys-fs/snapraid/snapraid-11.0-r1.ebuild b/sys-fs/snapraid/snapraid-11.0-r1.ebuild
new file mode 100644
index 000000000000..616bd2007353
--- /dev/null
+++ b/sys-fs/snapraid/snapraid-11.0-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="a backup program for disk array for home media centers"
+HOMEPAGE="http://snapraid.sourceforge.net/"
+SRC_URI="https://github.com/amadvance/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DOCS=( "AUTHORS" "HISTORY" "README" "TODO" "snapraid.conf.example" )
+
+PATCHES=( "${FILESDIR}/${P}-minor.patch" )
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/sys-fs/snapraid/snapraid-6.2.ebuild b/sys-fs/snapraid/snapraid-6.2.ebuild
new file mode 100644
index 000000000000..7ebac664aa91
--- /dev/null
+++ b/sys-fs/snapraid/snapraid-6.2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools-utils
+
+DESCRIPTION="a backup program for disk array for home media centers"
+HOMEPAGE="http://snapraid.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+DOCS=( "AUTHORS" "HISTORY" "README" "TODO" "snapraid.conf.example" )
diff --git a/sys-fs/snapraid/snapraid-6.3.ebuild b/sys-fs/snapraid/snapraid-6.3.ebuild
new file mode 100644
index 000000000000..7ebac664aa91
--- /dev/null
+++ b/sys-fs/snapraid/snapraid-6.3.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools-utils
+
+DESCRIPTION="a backup program for disk array for home media centers"
+HOMEPAGE="http://snapraid.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+DOCS=( "AUTHORS" "HISTORY" "README" "TODO" "snapraid.conf.example" )
diff --git a/sys-fs/snapraid/snapraid-7.0.ebuild b/sys-fs/snapraid/snapraid-7.0.ebuild
new file mode 100644
index 000000000000..4268c953a344
--- /dev/null
+++ b/sys-fs/snapraid/snapraid-7.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools-utils
+
+DESCRIPTION="a backup program for disk array for home media centers"
+HOMEPAGE="http://snapraid.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+DOCS=( "AUTHORS" "HISTORY" "README" "TODO" "snapraid.conf.example" )
+
+AUTOTOOLS_IN_SOURCE_BUILD=1
diff --git a/sys-fs/snapraid/snapraid-7.1.ebuild b/sys-fs/snapraid/snapraid-7.1.ebuild
new file mode 100644
index 000000000000..c4608373e996
--- /dev/null
+++ b/sys-fs/snapraid/snapraid-7.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools-utils
+
+DESCRIPTION="a backup program for disk array for home media centers"
+HOMEPAGE="http://snapraid.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DOCS=( "AUTHORS" "HISTORY" "README" "TODO" "snapraid.conf.example" )
diff --git a/sys-fs/snapraid/snapraid-8.1.ebuild b/sys-fs/snapraid/snapraid-8.1.ebuild
new file mode 100644
index 000000000000..c4608373e996
--- /dev/null
+++ b/sys-fs/snapraid/snapraid-8.1.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools-utils
+
+DESCRIPTION="a backup program for disk array for home media centers"
+HOMEPAGE="http://snapraid.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+DOCS=( "AUTHORS" "HISTORY" "README" "TODO" "snapraid.conf.example" )
diff --git a/sys-fs/squashfs-tools/Manifest b/sys-fs/squashfs-tools/Manifest
new file mode 100644
index 000000000000..206875ada134
--- /dev/null
+++ b/sys-fs/squashfs-tools/Manifest
@@ -0,0 +1,19 @@
+AUX squashfs-tools-4.3-2gb.patch 961 SHA256 cdb9c85c2f733c0db879275d0ee2480f528aa3191f236bbf1ff681c75b14a024 SHA512 c45cad7822964ad4c74ea36fdd833fbfaf9e8e047726fa7a9517392bfa0b04a4de348bf3a511b071ac36d045c40cab0d8efeff054ebcd90b94f8508516b7dd71 WHIRLPOOL d3581d6014ecac4d4fa7a21e62829cb78c6ffa9fe148680d1fa43434bb1adb26c1dfb2f25fe58cfa22d16dbc2a922f7201a1d6bff94fd786456d28f445744e8f
+AUX squashfs-tools-4.3-aligned-data.patch 375 SHA256 3030ddfa5ba9d0baea7f5e4761b33dea67fbc4d49c86e475830fc1bfbfddb145 SHA512 566e2ada5e86afc799cb0c52396179bedfbcc49349bc6eb43c048b96215b1638c3765f7c75c6fa35593d5a95a1111df7c29a143ee4a55eaf33a6663e9bfe1b25 WHIRLPOOL 798dda9e91f3c68148e3f974caf62536745c1e22267d8e551903d49c3808a8e5a27ea1ac3787ef556823035d82d68a97974620f1f0871e7c14841c781899d077
+AUX squashfs-tools-4.3-extmatch.patch 3487 SHA256 2ec937250adfd97a72373e91225cead3070d987b4249ee487fd2d6caac74b235 SHA512 e034320ace6b992968d3f6776aeb0b94237619585e7fac195e917622b941bbfbddc62b625409f79fe7a1853ab58f76d6679c28320646b6883eb58183a3adfdea WHIRLPOOL 1f1057e8866666a06d06db99928a283e875720b09bb11e4cd3ce883716f64fcf4742889508cf4a720e37ae31cc5c4b942ef6e99c5bca97ddfd29e1d11a342472
+AUX squashfs-tools-4.3-local-cve-fix.patch 620 SHA256 7edceedead4f5a57dc009afecd0f414d60a3878dc43f8de5224bff391ed32c76 SHA512 8e308217136f8b50bc89b49017ae706978d5c8a42a74deeef268e9aaaf6ae5785926da99711462374dfc98f2f193840b0e016b1845be1f9bad168047e4574367 WHIRLPOOL 6eda9f29a2f5786cc7538bfe26b6ff632b0be6f361f963c7ad39c83608bc62c7e972074be264587d8e65d254812b1b715a57c0dd2ef5eedc9d424c9f53fc54e7
+AUX squashfs-tools-4.3-mem-overflow.patch 981 SHA256 a94f9df3439bef373da31a734e6dad42f5fc5a6d91f2b9d15d30b02f1aac73b3 SHA512 00db6700ab7fbf7f71aa97b45ac9c629dc5e7b1731c3e3eb5c93a0891c1b0f79884df7b6a8672facd9104e9442448ba9657dd10b64d47d89abd1b9ae1969dc2e WHIRLPOOL af0c8a6c4f3218abbc800516cfb58626563ab1967da8b86702ca523f1db22e006b71f93e23bb04b4bef48ae9c463ea1fdaecb4af371353f09b65375050c9fd59
+AUX squashfs-tools-4.3-musl.patch 688 SHA256 f18ebfe8de97702068825be2f92a7363939ccd0b4b0506662021f15b9b5d1c15 SHA512 61fb8eaedc4e649eb8fb362150cf5faef2289cb42514300f63448d164a12c9b21539ae49f6dc0d78fa1e4a3be01b26cb9084cec7f0159fe026fc1caa19df18dd WHIRLPOOL 44c451e0d2dabc9e90379b761f4623cd218740c69c20a9e5460d680243fea80b19d72d1f7645bb7b48b3a8a70bf8bb2277732f39129ca9f7a7b3cd74ba7c67ac
+AUX squashfs-tools-4.3-sysmacros.patch 611 SHA256 b44afb79ba6108a657fe6c51cecdf0e9623cbc91234b297478a6c3308cf0eddf SHA512 c21466b2f0aa6d6ae65b3693148274250bc42d8e7ea5142d6d4048d663ff4343dc539822320cf732d88c5bac048766a9771e1d2b739b1176cb9fafa96c4d306a WHIRLPOOL b0e0db62a80dc4c706dfd70ada83042ed5e66ecf881cf2b2055d09b838814571ac174a1f4c7a2a8bfc2ad242d10c717caa2ef03716b484f165d94d0e30f6e1d9
+AUX squashfs-tools-4.3-xattrs.patch 1076 SHA256 f98fb6bee2f46ba57b9ab68dbc1ad15ed5ac8c7592cbdfead36d6642096acada SHA512 3899bb72cabeb296eb12fdd1c2e77e82a4354e58c91c69be918950c7fc88f56fbc0265c915b7363704579b710a69a35312fa9ab3d43236900774ae97efd473a8 WHIRLPOOL b39d57dc7caa7468ea54396416485986c8867af1b2905f3b08266afb66b23484dda41b399fff1d0f80031c5b729c24af4a91908ed1239885fa3ce3368fdbf288
+DIST squashfs-tools_4.3-3.debian.tar.xz 15252 SHA256 1c296cc147e322e7124bf23a3c242ac83f6a986e6d6f64829ad2424b33914fc4 SHA512 ab1a707e04e92697549f7e7c667c5da835d39d5e2cb791e47bf549b232e7173e6981c33a87cd373c4a7a4815e4af1b7294fe13e54422a5ccdcff90904bfc51ae WHIRLPOOL 4f5a12a3371f2adced8f3a50b1d25db4420c2ff63856bbe74489e945c4698eb0e327ce677e442678849118f45351d01b14aef075ed78e6c09acb83ce56c99c3d
+DIST squashfs3.2-r2.tar.gz 314764 SHA256 8482465d58d78099c608b32fc034921f7c8c3cf7934b5edc68c463cd450b40a7 SHA512 983f1fa966c15fb4929eaaf2d88401aac72f6d04e8c5523bd46397bc28928ff13b638e0e96bc09650627449c37f6a654ffa727445f1e9ca13cdc9de4fc43012f WHIRLPOOL 14b22cfc16e5c9bc91a5e02b9d4b64589339162d59613b12c2344acbed34690616a7a0254d9a63f839e96ff4b850f30fd7e1e855aecb76423356f4b1d8582129
+DIST squashfs3.4.tar.gz 352660 SHA256 9ea1a9b3bd4f387ca11b5e96f00f8ae996fb81c4c7ad41f7c7f359917628a339 SHA512 5e126ea468271f54c62d473a04a355169514f2668b4dc0de4138a8ef2a6e633d373454e7b85c1c684b875d9dfc8afb17c05548dd5062d05f847ffef8e624d9fe WHIRLPOOL 7c113f3a66d0d28310302017e5f317d14bb5576e680a8f94e687193a376db92c54920be7d1121637f860cafa802d665ba419115e976b07029ca1f0c51953972d
+DIST squashfs4.3.tar.gz 182550 SHA256 0d605512437b1eb800b4736791559295ee5f60177e102e4d4ccd0ee241a5f3f6 SHA512 854ed7acc99920f24ecf11e0da807e5a2a162eeda55db971aba63a03f0da2c13b20ec0564a906c4b0e415bd8258b273a10208c7abc0704f2ceea773aa6148a79 WHIRLPOOL c819f416b34cc46a232b8bc385017774603f81b4a865e6b97208004c183ebad5de7d0f726be444f8cb4e1d450abed9340dab730aec0762407f034e99b39bdc06
+EBUILD squashfs-tools-3.2_p2.ebuild 953 SHA256 378ed13f72b193ae57f6e7dfa73e0497dd2dd576e2f02d6bb1d4065a32d75487 SHA512 989198cdeb688add1cd826743ab55b7ff33f0de87bf8338e4d6d14882dc79452ebf54fc393a41365e10efa22da1e0e0643f2ea50f4c4fabc8ab969517845f129 WHIRLPOOL e08b0d35c663be1e1bce2e583422549e53c13a731b25c2b41e0293d60a4e69434abd96f6189331da27947853aedb58006d959f76323ae47a5dccd1aa2fb05576
+EBUILD squashfs-tools-3.4.ebuild 937 SHA256 cc5393a6ac2d6563388f851b5d8960f4406df92193f3c22a1ed869a19e417937 SHA512 ea53dbc7607757087c89d6ce7e1396b0ffaa462534bfaadc13e4400172d242c5089c85d722f4b52e26c35cfeb328c9d2495f9d826e2fdcd24135934de55f924b WHIRLPOOL d18c907a2bf4bb378635dc1b8f8d028fc4e90bb9068c3a9ecc018ae9bf71cddb19fae343092c668594d3b8e5fc1383983d15c926e2717976f4849723762f11fd
+EBUILD squashfs-tools-4.3-r2.ebuild 2129 SHA256 79a5da851793eba5b94a5b9bc5dc87f2b430e25659ff3cbabf3115079c23be7d SHA512 f6623c42b03d85ec1d60b5c591d9467ce22ba202c3b8d73c303550825f5b9c0cd9bd62feafae4c615bea9301a1d8cb20aee9194bc8d26d20372ca974a5715fec WHIRLPOOL 40caa4996831fd8c3711e16b8adc7a548dd5b7ab4c1c4d71042034949bed640aad1976be9f5ee0943d9768a65385c04183c68318237463861885814dd0956e96
+EBUILD squashfs-tools-9999.ebuild 1649 SHA256 39a6b5ef9618b67ffccf0ec3ce56b0c497ada8269fd70b891da03abf6d1fefaf SHA512 0535d76acba1893795b029dd8f0315fa5d1a96ff5048bffa9cac18a221b3204abcc2173e5ab26e8fad427824bee1aebfedef2d40f1cd8cf3a26c0b9a30972628 WHIRLPOOL 246c8c30868c05566649c9eb818891f6a067161e87ecbc462f4833f5498e81f1cc50800f03f7cc82d67ec89c206d32b7cf0cc29cb7cc3a51a52a4066214ddd55
+MISC ChangeLog 4948 SHA256 048b1ddb2aef544d992020d83546b567bd89ccdbc92b902e6b993a80e60d115f SHA512 6baf9d18b382033117f4a7ca46dfd9196af0c3b6b60d7b3b4073d6aecadacddd2816631fbab7f3ee308abf768fc2e6d5e82ffa4f9517e8c69344c106aff36bee WHIRLPOOL b8ec6c9c0a646c4c5ce8b30080d38168f50c0a7da1fb0c7567efb2eb8e869be6547574d3f24da2d87d5f805bcaaad2ebb75940fe3099f4c19b4f5040692f9be6
+MISC ChangeLog-2015 18760 SHA256 a731f71798d4dcbb59b9001f81a73064961bc450ba3f4e6de3fb790112eaf571 SHA512 58d3ee1c7ed0327c87d8bec39fcb309095adc8c500aa919c74cb461d13e9e745e632fc07207109dbab677ab4ac1862cbe1ec08af74f98cafc92d2a26e9d931be WHIRLPOOL 8188d57e0e1c6b6dcfd5be583571e38ea9db21ded8bb60355e60a2ed8eb34debc72cfaa79fa122e787085ded69a64567269e9ded619d63fdc36852f6b61ff110
+MISC metadata.xml 559 SHA256 5813dae0eff3bfed9a7a40ac785726804d493f175479c1cc10ee3ea566b6eb2d SHA512 2318c516e5e76a6c802563d1e1bf60273dbfd6a6cf0944a41e5287f0c85f1b73761ba050599dfb3b2c86a53da01fc752bb4c74397c404c4ff68eb73dfedf2572 WHIRLPOOL 763a763428e1ca87f7fc653cc7984a88bac9ffb256464e7fe2258f901ab4283819998c560197aa1e558e17a3b3c4bdb480a2b9df696efadd81c4cd00a47cfade
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-2gb.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-2gb.patch
new file mode 100644
index 000000000000..467448f62639
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-2gb.patch
@@ -0,0 +1,30 @@
+From 9c1db6d13a51a2e009f0027ef336ce03624eac0d Mon Sep 17 00:00:00 2001
+From: "Guan, Xin" <guanx.bac@gmail.com>
+Date: Sat, 13 Sep 2014 13:15:26 +0200
+Subject: [PATCH] Fix 2GB-limit of the is_fragment(...) function.
+
+Applies to squashfs-tools 4.3.
+
+Reported-by: Bruno Wolff III <bruno@wolff.to>
+Signed-off-by: Guan, Xin <guanx.bac@gmail.com>
+Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
+---
+ squashfs-tools/mksquashfs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
+index f1fcff1cc284..d221c35865a0 100644
+--- a/squashfs-tools/mksquashfs.c
++++ b/squashfs-tools/mksquashfs.c
+@@ -2029,7 +2029,7 @@ struct file_info *duplicate(long long file_size, long long bytes,
+
+ inline int is_fragment(struct inode_info *inode)
+ {
+- int file_size = inode->buf.st_size;
++ off_t file_size = inode->buf.st_size;
+
+ /*
+ * If this block is to be compressed differently to the
+--
+2.8.2
+
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-aligned-data.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-aligned-data.patch
new file mode 100644
index 000000000000..024129ffa958
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-aligned-data.patch
@@ -0,0 +1,15 @@
+the mksquashfs code has an all_zeros func that does:
+ long *p = (long *) file_buffer->data;
+
+make sure we force the data field to be aligned so that still works.
+
+--- a/squashfs-tools/caches-queues-lists.h
++++ b/squashfs-tools/caches-queues-lists.h
+@@ -123,6 +123,7 @@ struct file_buffer {
+ char locked;
+ char wait_on_unlock;
+ char noD;
++ long _pad;
+ char data[0];
+ };
+
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-extmatch.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-extmatch.patch
new file mode 100644
index 000000000000..7ffc062006c0
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-extmatch.patch
@@ -0,0 +1,121 @@
+From https://github.com/plougher/squashfs-tools/pull/9
+
+From 4280e74de14070869787a9166242f9ce2dafd82e Mon Sep 17 00:00:00 2001
+From: Alexandru Ardelean <aa@ocedo.com>
+Date: Wed, 6 Jan 2016 15:33:43 +0200
+Subject: [PATCH] squashfs-tools: with fnmatch.h compatibility with musl
+
+musl does not define FNM_EXTMATCH
+
+Signed-off-by: Alexandru Ardelean <aa@ocedo.com>
+---
+ squashfs-tools/action.c | 2 +-
+ squashfs-tools/fnmatch_compat.h | 32 ++++++++++++++++++++++++++++++++
+ squashfs-tools/mksquashfs.c | 2 +-
+ squashfs-tools/unsquashfs.c | 1 +
+ squashfs-tools/unsquashfs.h | 1 -
+ 5 files changed, 35 insertions(+), 3 deletions(-)
+ create mode 100644 squashfs-tools/fnmatch_compat.h
+
+diff --git a/squashfs-tools/action.c b/squashfs-tools/action.c
+index 35889a4..4b06ccb 100644
+--- a/squashfs-tools/action.c
++++ b/squashfs-tools/action.c
+@@ -31,7 +31,6 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+-#include <fnmatch.h>
+ #include <pwd.h>
+ #include <grp.h>
+ #include <sys/wait.h>
+@@ -43,6 +42,7 @@
+ #include "mksquashfs.h"
+ #include "action.h"
+ #include "error.h"
++#include "fnmatch_compat.h"
+
+ /*
+ * code to parse actions
+diff --git a/squashfs-tools/fnmatch_compat.h b/squashfs-tools/fnmatch_compat.h
+new file mode 100644
+index 0000000..7b4afd8
+--- /dev/null
++++ b/squashfs-tools/fnmatch_compat.h
+@@ -0,0 +1,32 @@
++#ifndef FNMATCH_COMPAT
++#define FNMATCH_COMPAT
++/*
++ * Squashfs
++ *
++ * Copyright (c) 2015
++ * Phillip Lougher <phillip@squashfs.org.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * fnmatch_compat.h
++ */
++
++#include <fnmatch.h>
++
++#ifndef FNM_EXTMATCH
++#define FNM_EXTMATCH 0
++#endif
++
++#endif
+diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
+index d221c35..4e7cbdd 100644
+--- a/squashfs-tools/mksquashfs.c
++++ b/squashfs-tools/mksquashfs.c
+@@ -46,7 +46,6 @@
+ #include <sys/mman.h>
+ #include <pthread.h>
+ #include <regex.h>
+-#include <fnmatch.h>
+ #include <sys/wait.h>
+ #include <limits.h>
+ #include <ctype.h>
+@@ -76,6 +75,7 @@
+ #include "read_fs.h"
+ #include "restore.h"
+ #include "process_fragments.h"
++#include "fnmatch_compat.h"
+
+ int delete = FALSE;
+ int fd;
+diff --git a/squashfs-tools/unsquashfs.c b/squashfs-tools/unsquashfs.c
+index 1323dd6..2428baa 100644
+--- a/squashfs-tools/unsquashfs.c
++++ b/squashfs-tools/unsquashfs.c
+@@ -30,6 +30,7 @@
+ #include "xattr.h"
+ #include "unsquashfs_info.h"
+ #include "stdarg.h"
++#include "fnmatch_compat.h"
+
+ #include <sys/sysinfo.h>
+ #include <sys/types.h>
+diff --git a/squashfs-tools/unsquashfs.h b/squashfs-tools/unsquashfs.h
+index ecd0bb4..0edbd25 100644
+--- a/squashfs-tools/unsquashfs.h
++++ b/squashfs-tools/unsquashfs.h
+@@ -40,7 +40,6 @@
+ #include <grp.h>
+ #include <time.h>
+ #include <regex.h>
+-#include <fnmatch.h>
+ #include <signal.h>
+ #include <pthread.h>
+ #include <math.h>
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-local-cve-fix.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-local-cve-fix.patch
new file mode 100644
index 000000000000..7637f67cd591
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-local-cve-fix.patch
@@ -0,0 +1,19 @@
+taken from Fedora
+
+commit af393379e34c5677f95bbec11645b6c3028195b4
+Author: Bruno Wolff III <bruno@wolff.to>
+Date: Wed Jun 24 14:27:31 2015 -0500
+
+Update printf formats to match datatypes after CVE patch
+
+--- squashfs-tools/unsquash-4.c
++++ squashfs-tools/unsquash-4.c
+@@ -35,7 +35,7 @@
+ size_t indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments);
+ long long *fragment_table_index;
+
+- TRACE("read_fragment_table: %d fragments, reading %d fragment indexes "
++ TRACE("read_fragment_table: %u fragments, reading %zu fragment indexes "
+ "from 0x%llx\n", sBlk.s.fragments, indexes,
+ sBlk.s.fragment_table_start);
+
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-mem-overflow.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-mem-overflow.patch
new file mode 100644
index 000000000000..a9b000149e4e
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-mem-overflow.patch
@@ -0,0 +1,35 @@
+taken from Fedora
+
+From 604b607d8ac91eb8afc0b6e3d917d5c073096103 Mon Sep 17 00:00:00 2001
+From: Phillip Lougher <phillip@squashfs.org.uk>
+Date: Wed, 11 Jun 2014 04:51:37 +0100
+Subject: mksquashfs: ensure value does not overflow a signed int in -mem
+ option
+
+Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
+
+diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
+index 5370ecf..9676dc8 100644
+--- a/squashfs-tools/mksquashfs.c
++++ b/squashfs-tools/mksquashfs.c
+@@ -5193,7 +5193,16 @@ print_compressor_options:
+ argv[0]);
+ exit(1);
+ }
+- /* convert from bytes to Mbytes */
++
++ /*
++ * convert from bytes to Mbytes, ensuring the value
++ * does not overflow a signed int
++ */
++ if(number >= (1LL << 51)) {
++ ERROR("%s: -mem invalid mem size\n", argv[0]);
++ exit(1);
++ }
++
+ total_mem = number / 1048576;
+ if(total_mem < (SQUASHFS_LOWMEM / SQUASHFS_TAKE)) {
+ ERROR("%s: -mem should be %d Mbytes or "
+--
+cgit v0.10.1
+
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-musl.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-musl.patch
new file mode 100644
index 000000000000..52b7f48c8eab
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-musl.patch
@@ -0,0 +1,24 @@
+From https://github.com/plougher/squashfs-tools/pull/9
+
+From b0ca8a5c98ff73e70b2ab1bc24aa824aa2458287 Mon Sep 17 00:00:00 2001
+From: Alexandru Ardelean <aa@ocedo.com>
+Date: Wed, 6 Jan 2016 15:36:48 +0200
+Subject: [PATCH] pseudo.c: add explicit <sys/stat.h> include
+
+Signed-off-by: Alexandru Ardelean <aa@ocedo.com>
+---
+ squashfs-tools/pseudo.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/squashfs-tools/pseudo.c b/squashfs-tools/pseudo.c
+index f85fe60..83bfc97 100644
+--- a/squashfs-tools/pseudo.c
++++ b/squashfs-tools/pseudo.c
+@@ -32,6 +32,7 @@
+ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
++#include <sys/stat.h>
+ #include <ctype.h>
+
+ #include "pseudo.h"
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-sysmacros.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-sysmacros.patch
new file mode 100644
index 000000000000..1430b1a2ee0d
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-sysmacros.patch
@@ -0,0 +1,25 @@
+sys/types.h might not always include sys/sysmacros.h for major/minor/makedev
+
+--- a/squashfs-tools/mksquashfs.c
++++ b/squashfs-tools/mksquashfs.c
+@@ -59,6 +59,7 @@
+ #else
+ #include <endian.h>
+ #include <sys/sysinfo.h>
++#include <sys/sysmacros.h>
+ #endif
+
+ #include "squashfs_fs.h"
+--- a/squashfs-tools/unsquashfs.c
++++ b/squashfs-tools/unsquashfs.c
+@@ -38,6 +38,10 @@
+ #include <limits.h>
+ #include <ctype.h>
+
++#ifdef linux
++#include <sys/sysmacros.h>
++#endif
++
+ struct cache *fragment_cache, *data_cache;
+ struct queue *to_reader, *to_inflate, *to_writer, *from_writer;
+ pthread_t *thread, *inflator_thread;
diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-xattrs.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-xattrs.patch
new file mode 100644
index 000000000000..47b0ea5c9859
--- /dev/null
+++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-xattrs.patch
@@ -0,0 +1,34 @@
+From ffe9e55c4993422ce36213fa86d4fc29c22646ea Mon Sep 17 00:00:00 2001
+From: Wessel Dankers <wsl-debian-804194@fruit.je>
+Date: Fri, 17 Jun 2016 09:46:42 +0800
+Subject: [PATCH] unsquashfs: Correctly set file capabilities
+
+As posted on https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804194.
+---
+ squashfs-tools/unsquashfs.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/squashfs-tools/unsquashfs.c b/squashfs-tools/unsquashfs.c
+index 1323dd6..a5f0117 100644
+--- a/squashfs-tools/unsquashfs.c
++++ b/squashfs-tools/unsquashfs.c
+@@ -821,8 +821,6 @@ int set_attributes(char *pathname, int mode, uid_t uid, gid_t guid, time_t time,
+ {
+ struct utimbuf times = { time, time };
+
+- write_xattr(pathname, xattr);
+-
+ if(utime(pathname, &times) == -1) {
+ ERROR("set_attributes: failed to set time on %s, because %s\n",
+ pathname, strerror(errno));
+@@ -845,6 +843,8 @@ int set_attributes(char *pathname, int mode, uid_t uid, gid_t guid, time_t time,
+ return FALSE;
+ }
+
++ write_xattr(pathname, xattr);
++
+ return TRUE;
+ }
+
+--
+2.8.0.rc3.226.g39d4020
diff --git a/sys-fs/squashfs-tools/metadata.xml b/sys-fs/squashfs-tools/metadata.xml
new file mode 100644
index 000000000000..9edcb3d56b8b
--- /dev/null
+++ b/sys-fs/squashfs-tools/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>livecd@gentoo.org</email>
+ <name>Gentoo LiveCD Project</name>
+ </maintainer>
+ <use>
+ <flag name="xz">Enable support for XZ ("LZMA2") compression using <pkg>app-arch/xz-utils</pkg></flag>
+ <flag name="lz4">Enable support for LZ4 compression using <pkg>app-arch/lz4</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">squashfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/squashfs-tools/squashfs-tools-3.2_p2.ebuild b/sys-fs/squashfs-tools/squashfs-tools-3.2_p2.ebuild
new file mode 100644
index 000000000000..33c9be8386ec
--- /dev/null
+++ b/sys-fs/squashfs-tools/squashfs-tools-3.2_p2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit toolchain-funcs
+
+MY_PV=${PV/_p/-r}
+DESCRIPTION="Tool for creating compressed filesystem type squashfs"
+HOMEPAGE="http://squashfs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/squashfs/squashfs${MY_PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="3.0" # squashfs filesystem version
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+
+RDEPEND="sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/squashfs${MY_PV}/squashfs-tools
+
+src_prepare() {
+ sed -i \
+ -e 's:-O2:$(CFLAGS):' \
+ -e '/-lz/s:$: $(LDFLAGS):' \
+ Makefile || die
+
+ echo "struct dir_info; `grep '^int dir_scan2' mksquashfs.c`;" >> global.h
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ newbin mksquashfs mksquashfs-${SLOT}
+ newbin unsquashfs unsquashfs-${SLOT}
+ cd ..
+ dodoc README ACKNOWLEDGEMENTS CHANGES PERFORMANCE.README README-3.2
+}
diff --git a/sys-fs/squashfs-tools/squashfs-tools-3.4.ebuild b/sys-fs/squashfs-tools/squashfs-tools-3.4.ebuild
new file mode 100644
index 000000000000..ef2cd80bfd22
--- /dev/null
+++ b/sys-fs/squashfs-tools/squashfs-tools-3.4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit toolchain-funcs
+
+MY_PV=${PV/_p/-r}
+DESCRIPTION="Tool for creating compressed filesystem type squashfs"
+HOMEPAGE="http://squashfs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/squashfs/squashfs${MY_PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="3.1" # squashfs filesystem version
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+
+RDEPEND="sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/squashfs${MY_PV}/squashfs-tools
+
+src_prepare() {
+ sed -i \
+ -e 's:-O2:$(CFLAGS):' \
+ -e '/-lz/s:$: $(LDFLAGS):' \
+ Makefile || die
+
+ sed -i -e 's:get_nprocs():sysconf(_SC_NPROCESSORS_ONLN):' *.c
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ newbin mksquashfs mksquashfs-${SLOT}
+ newbin unsquashfs unsquashfs-${SLOT}
+ cd ..
+ dodoc README ACKNOWLEDGEMENTS CHANGES PERFORMANCE.README README
+}
diff --git a/sys-fs/squashfs-tools/squashfs-tools-4.3-r2.ebuild b/sys-fs/squashfs-tools/squashfs-tools-4.3-r2.ebuild
new file mode 100644
index 000000000000..8273f5535b06
--- /dev/null
+++ b/sys-fs/squashfs-tools/squashfs-tools-4.3-r2.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic toolchain-funcs
+
+DEB_VER="3"
+
+DESCRIPTION="Tool for creating compressed filesystem type squashfs"
+HOMEPAGE="http://squashfs.sourceforge.net"
+SRC_URI="mirror://sourceforge/squashfs/squashfs${PV}.tar.gz
+ mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV}-${DEB_VER}.debian.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+IUSE="debug lz4 lzma lzo static xattr +xz"
+
+LIB_DEPEND="sys-libs/zlib[static-libs(+)]
+ !xz? ( !lzo? ( sys-libs/zlib[static-libs(+)] ) )
+ lz4? ( app-arch/lz4[static-libs(+)] )
+ lzma? ( app-arch/xz-utils[static-libs(+)] )
+ lzo? ( dev-libs/lzo[static-libs(+)] )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+ xz? ( app-arch/xz-utils[static-libs(+)] )"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
+DEPEND="${RDEPEND}
+ static? ( ${LIB_DEPEND} )"
+
+S="${WORKDIR}/squashfs${PV}/${PN}"
+
+src_prepare() {
+ epatch "${WORKDIR}"/debian/patches/*.patch
+ epatch "${FILESDIR}"/${P}-sysmacros.patch
+ epatch "${FILESDIR}"/${P}-aligned-data.patch
+ epatch "${FILESDIR}"/${P}-2gb.patch
+ epatch "${FILESDIR}"/${P}-local-cve-fix.patch
+ epatch "${FILESDIR}"/${P}-mem-overflow.patch
+ epatch "${FILESDIR}"/${P}-xattrs.patch
+ epatch "${FILESDIR}"/${P}-extmatch.patch
+ epatch "${FILESDIR}"/${P}-musl.patch
+}
+
+use10() { usex $1 1 0 ; }
+
+src_configure() {
+ # restore GNU89 inline semantics to
+ # emit function symbols, bug 595290
+ append-cflags -std=gnu89
+
+ # set up make command line variables in EMAKE_SQUASHFS_CONF
+ EMAKE_SQUASHFS_CONF=(
+ LZMA_XZ_SUPPORT=$(use10 lzma)
+ LZO_SUPPORT=$(use10 lzo)
+ LZ4_SUPPORT=$(use10 lz4)
+ XATTR_SUPPORT=$(use10 xattr)
+ XZ_SUPPORT=$(use10 xz)
+ )
+
+ tc-export CC
+ use debug && append-cppflags -DSQUASHFS_TRACE
+ use static && append-ldflags -static
+}
+
+src_compile() {
+ emake "${EMAKE_SQUASHFS_CONF[@]}"
+}
+
+src_install() {
+ dobin mksquashfs unsquashfs
+ cd ..
+ dodoc CHANGES PERFORMANCE.README pseudo-file.example README* OLD-READMEs/*
+ doman "${WORKDIR}"/debian/manpages/*.[0-9]
+}
diff --git a/sys-fs/squashfs-tools/squashfs-tools-9999.ebuild b/sys-fs/squashfs-tools/squashfs-tools-9999.ebuild
new file mode 100644
index 000000000000..b2c2c5a39252
--- /dev/null
+++ b/sys-fs/squashfs-tools/squashfs-tools-9999.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils git-r3 toolchain-funcs flag-o-matic
+
+DEB_VER="3"
+
+DESCRIPTION="Tool for creating compressed filesystem type squashfs"
+HOMEPAGE="http://squashfs.sourceforge.net"
+EGIT_REPO_URI="
+ https://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="debug lz4 lzma lzo static xattr +xz"
+
+LIB_DEPEND="sys-libs/zlib[static-libs(+)]
+ !xz? ( !lzo? ( sys-libs/zlib[static-libs(+)] ) )
+ lz4? ( app-arch/lz4[static-libs(+)] )
+ lzma? ( app-arch/xz-utils[static-libs(+)] )
+ lzo? ( dev-libs/lzo[static-libs(+)] )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+ xz? ( app-arch/xz-utils[static-libs(+)] )"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
+DEPEND="${RDEPEND}
+ static? ( ${LIB_DEPEND} )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.3-sysmacros.patch
+ "${FILESDIR}"/${PN}-4.3-aligned-data.patch
+ "${FILESDIR}"/${PN}-4.3-xattrs.patch
+)
+
+use10() { usex $1 1 0 ; }
+
+src_configure() {
+ cd "${WORKDIR}"/${P}/${PN} || die
+
+ # set up make command line variables in EMAKE_SQUASHFS_CONF
+ EMAKE_SQUASHFS_CONF=(
+ LZMA_XZ_SUPPORT=$(use10 lzma)
+ LZO_SUPPORT=$(use10 lzo)
+ LZ4_SUPPORT=$(use10 lz4)
+ XATTR_SUPPORT=$(use10 xattr)
+ XZ_SUPPORT=$(use10 xz)
+ )
+
+ tc-export CC
+ use debug && append-cppflags -DSQUASHFS_TRACE
+ use static && append-ldflags -static
+}
+
+src_compile() {
+ cd "${WORKDIR}"/${P}/${PN} || die
+ emake "${EMAKE_SQUASHFS_CONF[@]}"
+}
+
+src_install() {
+ cd "${WORKDIR}"/${P}/${PN} || die
+ dobin mksquashfs unsquashfs
+ cd .. || die
+ dodoc CHANGES README RELEASE-README RELEASE-READMEs/*
+}
diff --git a/sys-fs/squashfuse/Manifest b/sys-fs/squashfuse/Manifest
new file mode 100644
index 000000000000..f818b0841f13
--- /dev/null
+++ b/sys-fs/squashfuse/Manifest
@@ -0,0 +1,7 @@
+DIST squashfuse-0.1.100.tar.gz 393548 SHA256 2da9f53482f7e3c0ab407dd47062a0feee7cda770b2342def1d36271e89f2d7f SHA512 e6a56354e71991ccbcbd2f9e6967f1f5a1056edbee286e6a6d6c35f777ed6e6494243633d070da700cf43a8bf7b56269087a0db1d4b2d45ed49f4830caad7927 WHIRLPOOL 88138f062d129f4503e3556b017958af681d54200fa6990d4a23869fd60281223d9d797731b96cb90c9b11d9244d9700ac86d0e4f27ff9be3a82865b54cfc6bd
+DIST squashfuse-0.1_p20130530.zip 70224 SHA256 821c2e3ea484315f27b424326a7488c8880a64ab5d212774864dcb0b5d95675d SHA512 1e2ba5a61cdc5eac3fcf13d5d2a55d0656ac247b057f7cff9ef5365eb59f52fa6159cd2ea73475627e62f53fab72c5d12819161e794c683d53059f7667a774f0 WHIRLPOOL 0d07722d4d7f22e4d2dc68b0eedbaf9f3d4d09a6eeaac31bd3956996e73842750f056eb88a1ba68bd4fb8584714913c09a0550180c31bd2ec182bb1901beac73
+EBUILD squashfuse-0.1.100.ebuild 932 SHA256 fe42fbe0ce1e4c42a8d6322b300471461d75b69275b67739371a04258a5e6f80 SHA512 1fe0e00e2e3be609c25c03921c27ccd7a6b3ab2e2a066e1b4daed55f49d0e83aaaba0ef15a1a6fa4b9316efd14e049b39950369c1ef120cf2e9eeaa95d218204 WHIRLPOOL a1706f83f389b0cfc4754464f829f168c00dead9b47fe9ffa8df6c4a37f77ba19437b505745dca0318d85e7ae064cfd293a3ec39165f83650b05e3a61e2ad32d
+EBUILD squashfuse-0.1_p20130530.ebuild 1063 SHA256 a5a9b36a99cf13a59bd70aebe1e164154366293d9e31bba5a013eb27c01838d5 SHA512 254a4c26c913f8930d6c31172c3900a31b1d67eb550ab18f70c2036d14568dc3d8a3dd811769955a59295b632e5208e9762772b273f90082b268f1ef232a0026 WHIRLPOOL d74c761dd9f5384eeeb2365fede75ad8a56a8fb3da7c92a505d355bda7f6fabcde350e07450562f9a8833fa04ce2382eef7c3f03e05a440d42e5b70a8b6f56db
+MISC ChangeLog 2587 SHA256 1409f8723b7b39425203d2ef5716e005c1f5af9111ed99ab6d234bb671a296d1 SHA512 7add199d66e3ebe0ad3e933ea8e77335a1bb0afdbaa3360edb6675387366f64a1a6025b0a610333c43ace43b67b0e92d2b044b64313f84bcb1f9976e251f792c WHIRLPOOL aabb94ac6a16860df174bcb5963b382cbabbbfa2d199f91c5c774bfbf804b0051ed57694f23ee72c67e8cfc888da4c41054c31100e687524afba76313e158875
+MISC ChangeLog-2015 478 SHA256 c0a7f4ffddacc02609874a5afd5412ea79c31ab26773cf03797f22f7adcb624f SHA512 cff6800ab0c7598e8497aac4b075991924dffb03e287751e1175b7ecb6eab498bd9f1fbcbf293ca2449a26ea69c76faee776ebc3777f0b5ea9dda52a6fda0b13 WHIRLPOOL cadf67f8958b730373f632791ac70017c576d00818abebe562e2eafc302782c4b8d5dc6547b2d66fef955facfb87cd5e8577cfd00f09b1e6b3b0b4b38783d5b0
+MISC metadata.xml 588 SHA256 37f1c07b451779da3cca57ee778a426d3898ed8c16cae9c8774d35404e5716d5 SHA512 359590ef302a574ac485f43cf78d3e618ce2562983fc21941961dc7624919ae8c88ae53be3ec19ed6e36f777d3665b133b2972c94d9b9b7829fdaeecc0b3710a WHIRLPOOL 4f94364b2fa79be4f3664064af26e89a8bcc2fec76f93364714fc75d1014d573b2935911f6addeb54cad0bef18fbffd0739df46f8f44c4f0c4e0bd09d470b4f9
diff --git a/sys-fs/squashfuse/metadata.xml b/sys-fs/squashfuse/metadata.xml
new file mode 100644
index 000000000000..4b36f192fd0d
--- /dev/null
+++ b/sys-fs/squashfuse/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <bugs-to>mailto:dave@vasilevsky.ca</bugs-to>
+ <changelog>https://github.com/vasi/squashfuse/commits/master</changelog>
+ <doc>https://raw.github.com/vasi/squashfuse/master/README</doc>
+ <remote-id type="github">vasi/squashfuse</remote-id>
+ </upstream>
+ <maintainer type="person">
+ <email>zmedico@gentoo.org</email>
+ <name>Zac Medico</name>
+ </maintainer>
+ <use>
+ <flag name="lz4">Enable support for lz4 compression</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-fs/squashfuse/squashfuse-0.1.100.ebuild b/sys-fs/squashfuse/squashfuse-0.1.100.ebuild
new file mode 100644
index 000000000000..3dec8258a43f
--- /dev/null
+++ b/sys-fs/squashfuse/squashfuse-0.1.100.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit flag-o-matic
+
+DESCRIPTION="FUSE filesystem to mount squashfs archives"
+HOMEPAGE="https://github.com/vasi/squashfuse"
+SRC_URI="https://github.com/vasi/squashfuse/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="lz4 lzma lzo +zlib"
+REQUIRED_USE="|| ( lz4 lzma lzo zlib )"
+
+COMMON_DEPEND="
+ >=sys-fs/fuse-2.8.6:=
+ lzma? ( >=app-arch/xz-utils-5.0.4:= )
+ zlib? ( >=sys-libs/zlib-1.2.5-r2:= )
+ lzo? ( >=dev-libs/lzo-2.06:= )
+ lz4? ( >=app-arch/lz4-0_p106:= )
+"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+src_configure() {
+ filter-flags -flto* -fwhole-program -fno-common
+ econf \
+ $(use lz4 || echo --without-lz4) \
+ $(use lzma || echo --without-xz) \
+ $(use lzo || echo --without-lzo) \
+ $(use zlib || echo --without-zlib)
+}
diff --git a/sys-fs/squashfuse/squashfuse-0.1_p20130530.ebuild b/sys-fs/squashfuse/squashfuse-0.1_p20130530.ebuild
new file mode 100644
index 000000000000..b99fe7b2a4f9
--- /dev/null
+++ b/sys-fs/squashfuse/squashfuse-0.1_p20130530.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools
+
+DESCRIPTION="FUSE filesystem to mount squashfs archives"
+HOMEPAGE="https://github.com/vasi/squashfuse"
+EGIT_COMMIT="f03158f49cb4adbb6459cb2a1898e586b488cb10"
+SRC_URI="https://github.com/vasi/squashfuse/archive/${EGIT_COMMIT}.zip -> ${P}.zip"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="lzma lzo +zlib"
+REQUIRED_USE="|| ( lzma zlib lzo )"
+
+COMMON_DEPEND="
+ >=sys-fs/fuse-2.8.6:=
+ lzma? ( >=app-arch/xz-utils-5.0.4:= )
+ zlib? ( >=sys-libs/zlib-1.2.5-r2:= )
+ lzo? ( >=dev-libs/lzo-2.06:= )
+"
+DEPEND="app-arch/unzip
+ ${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+S=${WORKDIR}
+
+src_unpack() {
+ default
+ mv ${PN}-${EGIT_COMMIT}/* ./ || die
+}
+
+src_prepare() {
+ sed -i -e "1s:\\[0\\.1\\]:[${PV}]:" configure.ac || die
+ AT_M4DIR=${S}/m4 eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use lzma || echo --without-xz) \
+ $(use lzo || echo --without-lzo) \
+ $(use zlib || echo --without-zlib)
+}
diff --git a/sys-fs/static-dev/Manifest b/sys-fs/static-dev/Manifest
new file mode 100644
index 000000000000..3593e023271e
--- /dev/null
+++ b/sys-fs/static-dev/Manifest
@@ -0,0 +1,4 @@
+EBUILD static-dev-0.1.ebuild 1145 SHA256 10f2d53129ba1bfede21bbc30b7125d7fb073f1c4e1fcfa8bc72456302616847 SHA512 74269f4ba717b47878dd695bc9f98325f2ece132f6239f4c3732a35fb00e3e89f8e271e02c4aabeda134a4aae9090ac3f7775c4e609b95108214015cf8f19913 WHIRLPOOL f83fbcbb040ee2fadec958ff29155daf9f109760fa2a0eda634895113f1b389e1d28f36b1e9654e347dcccb222a26418e52785fec58d24ebb1ae7cb5f2fbb1ce
+MISC ChangeLog 3377 SHA256 f5cf7e3bf1c804031d2ebe14f40ae365fe5a5980e2c42d74173094f42652ad80 SHA512 50ccd901c5fb454cc38f6cb0cb4c1b65f2e34c893ba9898c1ff794c78699805b4c67fb9af005db79b4bd7ca8deb9fa322cd5937ca71d266b98e847b8c8f31170 WHIRLPOOL 53510e99474dfa07a2d6fd56581892cb7fd94fa50b8b8e9019eedf2874677c27f30110a46c15c88aba992a3225735cc1d76caa6ef0abc6c4fd5c3812ba27a46e
+MISC ChangeLog-2015 2107 SHA256 b5b150a21d42d5ebe38dccca0755c862fe6affbc98d4e8520bf635ee391e9ca0 SHA512 8a88f9d214ce85ce9179bef3a20f7d55387319a192c775ed8a0165bdc518d224e2812811cab5c556b7a6a6a2ab73ba1fc2fdbffc78788fdd6756ed4aa4320eca WHIRLPOOL 503961c4b6018288c4dd849b49e5e06805a8229f876ab46560670bc964e3e20b504c02929285016e72f3b15f76d4a20902206c106b3f97c4f99742a1430054f2
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/static-dev/metadata.xml b/sys-fs/static-dev/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/static-dev/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/static-dev/static-dev-0.1.ebuild b/sys-fs/static-dev/static-dev-0.1.ebuild
new file mode 100644
index 000000000000..e7c9cfcf6cbf
--- /dev/null
+++ b/sys-fs/static-dev/static-dev-0.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+DESCRIPTION="A skeleton, statically managed /dev"
+HOMEPAGE="https://bugs.gentoo.org/107875"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+IUSE=""
+
+RDEPEND="sys-apps/makedev"
+DEPEND="${RDEPEND}"
+
+abort() {
+ echo
+ eerror "We have detected that you currently use udev or devfs or devtmpfs"
+ eerror "and this ebuild cannot install to the same mount-point."
+ die "Cannot install on udev/devfs tmpfs."
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} == "buildonly" ]] ; then
+ # User is just compiling which is fine -- all our checks are merge-time.
+ return
+ fi
+
+ # We want to not clobber udev (tmpfs) or older devfs setups.
+ if [[ -d ${ROOT}/dev/.udev || -c ${ROOT}/dev/.devfs ]] ; then
+ abort
+ fi
+ # We also want to not clobber newer devtmpfs setups.
+ if [[ ${ROOT} == "/" ]] && \
+ ! awk '$2 == "/dev" && $3 == "devtmpfs" { exit 1 }' /proc/mounts ; then
+ abort
+ fi
+}
+
+pkg_postinst() {
+ MAKEDEV -d "${ROOT}"/dev generic sg scd rtc hde hdf hdg hdh input audio video
+}
diff --git a/sys-fs/sysfsutils/Manifest b/sys-fs/sysfsutils/Manifest
new file mode 100644
index 000000000000..a17a739d3c8c
--- /dev/null
+++ b/sys-fs/sysfsutils/Manifest
@@ -0,0 +1,5 @@
+DIST sysfsutils-2.1.0.tar.gz 788885 SHA256 e865de2c1f559fff0d3fc936e660c0efaf7afe662064f2fb97ccad1ec28d208a SHA512 485902d98b41a69343cb037883d0c0a1de8a1a4aed657cd4528fe10bc845ac51629657dff01deef042e57c9bd9243095e23fc931d06d74db31b03c5f0a18cf07 WHIRLPOOL c9170e1fd1815b9ff3070d97d7bacca89bbd51abd4f62d838d7eaf1e22ccd4164442e105d5b2e8a41042c411f8c4cd9a167c7a729c1e724627801471a138f51b
+EBUILD sysfsutils-2.1.0.ebuild 947 SHA256 5a5026082e35dcfad8325c5550745e595dcce09f28da9d9ee20b03f9fbf4efc9 SHA512 d873ccee57d535be5e47b26a12ef9db216dd84db277b3fd908e3a3428f92cf65b46d91d2ae7b5967a4a71b8339bf61f75a5d1f5bb43c25161f96c4cc33097bef WHIRLPOOL 3a17b3fd0b838b94bf18995dce50ed27b33a2cd2a42e3efe3cb6f88b874022558d118bd16ee9558f206295224ac0bf63ccfa861bbc07ebc7ebfce162e86587b4
+MISC ChangeLog 3213 SHA256 be9e0e400d6384ffd99251a048e91d29da4d75a505b4403e3aae72b2708d86ba SHA512 399f81a5b8a79446f4848c4717bade7c084e35ef0d269f16fd3e02b25caf63832654a3b5cd6fdc855d7d46afda5a72694848b50bffcd326bc0a4d775d9f54fc6 WHIRLPOOL 8ba8aba87798e12f66ecb78049bf70c970eca16b16bf7a167cecac9533e7f288eca1fec98e64b672fca69b3a68ab59ff587dedca9c84d3e2012e95f2922554ef
+MISC ChangeLog-2015 7075 SHA256 1b037fdec53153490126e83de18e236180fb0f340849b17d2de6bf5bcb02689b SHA512 82498990cddabaa1b590e7277b7d47956e2a093c630a6a9d9febb9f486caf651db5af54785d89051c9bb351f59592877cc64b85a8f7a0ee2f484c254d561b4f4 WHIRLPOOL 0470e293a8ec6e37e797ec1d041bd8d13a15b068b5269df4ebfa01244f3a3a58f91421e8d25e635166f7a14c4c02dafa5be0beb71aa085a61e4cbdeede15b320
+MISC metadata.xml 330 SHA256 9ea3abf2180bf4090af7537c32267620c3a02cbf826a2678415452401130af74 SHA512 16dbfcfa75389172827d78272e473ea69b20ac564ae8c17de031599ccbb5166ffdb7e42208b52e6ba53cc5bda75075c980c7954516646cc0fce4fb56e431070c WHIRLPOOL 9f108400ef4dbb30f407491ca9208d8c5733891de0d59930f1106a38106ed7e9423834d163f08ef0b95e94e46007835a0fbaa04a4aa41dec58d52f60461d6916
diff --git a/sys-fs/sysfsutils/metadata.xml b/sys-fs/sysfsutils/metadata.xml
new file mode 100644
index 000000000000..4c9d4670a07a
--- /dev/null
+++ b/sys-fs/sysfsutils/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+<upstream>
+ <remote-id type="sourceforge">linux-diag</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild b/sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild
new file mode 100644
index 000000000000..91ee388ee99f
--- /dev/null
+++ b/sys-fs/sysfsutils/sysfsutils-2.1.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit autotools toolchain-funcs
+
+DESCRIPTION="System Utilities Based on Sysfs"
+HOMEPAGE="http://linux-diag.sourceforge.net/Sysfsutils.html"
+SRC_URI="mirror://sourceforge/linux-diag/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux"
+IUSE="static-libs"
+
+src_prepare() {
+ sed -i 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.ac || die #467642
+
+ # workaround maintainer mode
+ AT_M4DIR=m4 eautoreconf
+
+ # with eautoreconf you get "Useless epunt_cxx usage"
+ # without you don't
+# epunt_cxx
+}
+
+src_configure() {
+ econf $(use_enable static-libs static)
+}
+
+src_install() {
+ default
+ dodoc docs/libsysfs.txt
+ gen_usr_ldscript -a sysfs
+
+ # We do not distribute this
+ rm -f "${ED}"/usr/bin/dlist_test "${ED}"/usr/lib*/libsysfs.la || die
+}
diff --git a/sys-fs/tmsu/Manifest b/sys-fs/tmsu/Manifest
new file mode 100644
index 000000000000..69c6a6706eff
--- /dev/null
+++ b/sys-fs/tmsu/Manifest
@@ -0,0 +1,3 @@
+DIST tmsu-0.6.1.tar.gz 92874 SHA256 00483d9ca12cb868e9587207556a8293bd43ee5a2993a6fe9f0c93edef918a7f SHA512 53bc9d880f9138e9d88b25a151f72a5a3110418002c2a1a6101d2794c0b6fd854ebd52e589f3b1ffa18f1b5c2f2298550246fc6cb1bfebbfd0131692c2fa5512 WHIRLPOOL 3f5de7d6935464b2bef84408146e2458048e51fbfd63a88055ba560c738c4d24fade4484be44729187d06a5a2af407d4fd7c7fbb1b24731f8a78b743825f05a7
+EBUILD tmsu-0.6.1.ebuild 802 SHA256 eb679b97acde66a1989fd78920f205da175ad3c282c47af4eeec7c7982f170e7 SHA512 04ce11db2184fb4bba4f4e37358e77f5a352010bb05c81270edd22a6e880a5bbb8a022a28b8c167e846146f88706fdc98fca836c9c663ff5170bb0b5de748cd8 WHIRLPOOL 9509c3df9b9d69d015d949cbb1510cb2274b709ec5f4f9d77b68013e5e2f5e69aaf0e23a19f1fcf4e1f1070925ab688787628327f88120e003cc2e82ba258e97
+MISC metadata.xml 694 SHA256 c2cc2025353c0646d6552bc65ba4dfbc0acacf28822262b8c9d5f22748a0d13a SHA512 78e596dce79201090c19568ea1a36badb92b26420114a319f062c02465f4410e26e8811203fb723bb740ad5c20e0563a83ec5b646c407b5201ca622902bcf856 WHIRLPOOL c5296c12b20d2efce7faaa509322b9569935fbd2800b017ef9064ae1320fbe90ccf9319b6f3622ea58bbd7c44f2ba4f0c21a20df7a4983eeb706ec42cead33c0
diff --git a/sys-fs/tmsu/metadata.xml b/sys-fs/tmsu/metadata.xml
new file mode 100644
index 000000000000..06bdd804eaf7
--- /dev/null
+++ b/sys-fs/tmsu/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>horea.christ@gmail.com</email>
+ <name>Horea Christian</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ TMSU is a tool for tagging your files. It provides a simple
+ command-line utility for applying tags and a virtual
+ filesystem to give you a tag-based view of your files from
+ any other program.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">oniony/TMSU</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/tmsu/tmsu-0.6.1.ebuild b/sys-fs/tmsu/tmsu-0.6.1.ebuild
new file mode 100644
index 000000000000..d37b33711282
--- /dev/null
+++ b/sys-fs/tmsu/tmsu-0.6.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit golang-build
+
+EGO_PN="github.com/oniony/TMSU/"
+DESCRIPTION="Files tagger and virtual tag-based filesystem"
+HOMEPAGE="https://github.com/oniony/TMSU/wiki"
+SRC_URI="https://github.com/oniony/TMSU/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test zsh-completion"
+
+RDEPEND="
+ zsh-completion? ( app-shells/zsh )
+"
+DEPEND="
+ dev-go/go-sqlite3
+ dev-lang/go
+ dev-libs/go-fuse
+"
+
+src_unpack() {
+ default
+ mv TMSU-${PV} ${P} || die "Failed to move sorce directory."
+}
+
+src_install() {
+ dobin misc/bin/*
+ doman misc/man/tmsu.*
+ newbin TMSU tmsu
+
+ if use zsh-completion ; then
+ insinto /usr/share/zsh/site-functions
+ doins misc/zsh/_tmsu
+ fi
+}
diff --git a/sys-fs/traydevice/Manifest b/sys-fs/traydevice/Manifest
new file mode 100644
index 000000000000..cb04feed236b
--- /dev/null
+++ b/sys-fs/traydevice/Manifest
@@ -0,0 +1,5 @@
+DIST traydevice-1.6.2.tar.gz 29238 SHA256 abeb4573d52a2111b0512e5cb2b728431151ed6b91b94dafbe42b872688deccb SHA512 19523c502a58aed9e1ea3c52970438a7119d9f4895527777b6c5c4167d44e917b23ca4cb7c1916f7eb7ff8c539d3c72cc1b70712affaa32a9eaa344ec8e92634 WHIRLPOOL 891a3b397d1b10dd143042da4fc048e8cbbcfba492b396a0ddc03d91e1d992fcdad963e0997e4530ba8276d4fd812dc4b699282c8f9d9e9c9d36751af3d8d11e
+EBUILD traydevice-1.6.2-r1.ebuild 887 SHA256 76ece831c5c6dba684e6731080d8f157f55feffd2358c57d7f16726d6370c2a5 SHA512 bd8174c9438d9ccdf5c70a5f761ac5c3b28216cbfdd935f5f01f165348da05bc2dc1adedcd45c35999810e889ccede84dba3d14260bbc6cecc8f19798e16cd66 WHIRLPOOL a8ea2a65cc54875d315c8b08a2045f0cf05a523b43ad5fb4f9cae44922fcd47ff36316fae2cfedf14a4100fb326ad6d29b2bfe259a056e01a7e84f6e28bc8f88
+MISC ChangeLog 2899 SHA256 618515fd99f8bb32545b7313ad4d4dae184e075946fa9564a7a58a9645b4586c SHA512 2fe56871fa7aba7695a345b0ba12b284411bb56677ee0ff09cb95e5df148948d79ddf33eb60719fd80aa2a1fa910cd3b861b84c34ebf25f81f8db790acd96ac5 WHIRLPOOL 60c0f8922a1588fa392c50e0b7f8e296277266acd5eff4cea677426f12d7a5e01c528735bf4ba00e91d0a324c349257579dbeae11b4138fecfcd82dc4da8ac6d
+MISC ChangeLog-2015 1904 SHA256 a7be9105e1334231403f2b249c6f2fdfc3bfe80e792572318031b72ecc9bfcc8 SHA512 f812cd9f462ec2cb04eb3adb49051969623d181449f67d8e607d97a1579361a97fb25ba3ff7ea815e975ab07a89186239111c1d4255281448e6efa6f9eb00362 WHIRLPOOL a9e178302c3a1c2ae8122d2f05c0b9ade423996ec5ecd5a718a128959e9288df3cd1c8f2ca887121f4b5312c0402e8985e542ba2183e654099542fb04df7f1d0
+MISC metadata.xml 282 SHA256 ac9236162462e1562a26e596e7dd457a448f9367ff1a5a27ec3513ecade3026b SHA512 06c94ffb49c985c4344b170b902427ca9ce0c23b6d68330af227ab1771794f8e8b6d0ef75b5f69293c8ef0d3264c8799e1389ccdf8dfbe7c665c6477c07479e4 WHIRLPOOL 615c807081b4bef1734f1dbf9a182cb27b7de0e9bcdebd880c6b9c1ab01b95721076ddc4b4e75e93b8f777020bfd52459e9e4b1a9deb41baacc44f6cde05fd36
diff --git a/sys-fs/traydevice/metadata.xml b/sys-fs/traydevice/metadata.xml
new file mode 100644
index 000000000000..bc1b97e1eb76
--- /dev/null
+++ b/sys-fs/traydevice/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>desktop-misc@gentoo.org</email>
+ <name>Gentoo Desktop Miscellaneous Project</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/traydevice/traydevice-1.6.2-r1.ebuild b/sys-fs/traydevice/traydevice-1.6.2-r1.ebuild
new file mode 100644
index 000000000000..da259161112d
--- /dev/null
+++ b/sys-fs/traydevice/traydevice-1.6.2-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1
+
+DESCRIPTION="A little desktop application displaying systray icon for UDisks"
+HOMEPAGE="https://savannah.nongnu.org/projects/traydevice/"
+SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pyxdg[${PYTHON_USEDEP}]
+ sys-fs/udisks:2"
+DEPEND="app-text/docbook2X"
+
+src_compile() { :; }
+
+python_install() {
+ distutils-r1_python_install \
+ --prefix=/usr \
+ --install-data=/usr/share/${PN} \
+ --install-man=/usr/share/man \
+ --docbook2man=docbook2man.pl
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ rm -f "${ED}"/usr/share/${PN}/doc/*.txt
+}
diff --git a/sys-fs/treesize/Manifest b/sys-fs/treesize/Manifest
new file mode 100644
index 000000000000..9bb68c254cdf
--- /dev/null
+++ b/sys-fs/treesize/Manifest
@@ -0,0 +1,6 @@
+AUX 0.54.1-amd64.patch 286 SHA256 0827b70883b4c63e6c78dbb512c9559069c2b45ff4ad5154fa2ea6d96c1c4a22 SHA512 baff1d78c6cb49bca3e0e15cd77e6c7f33fc0f1c0afbb4f2707a90ec641340785acfdac37b499e6ce88c423950c60a711786565ddbb207a015188190b5f0627f WHIRLPOOL 1d64c0c2cc7500bb4bd93e9e2a318c274aea4b247af18e36646dd6eebc504f43c207216cb8601ad7168ee31be368af26ea1402ee31d07ede6292cce7b7fbfccb
+DIST treesize-0.54.1-src.tbz2 296047 SHA256 eb88841b4bb4e557be543107f396c50ecfdb0430324d753306d54bcaba20ef12 SHA512 461e3f6aa01127afd11b98395d65911f441012fcdaa3741ef35789d51fdb491731cfc62b5616150d74bbcbb8c2742561a387aef8ec4f9a493e9ce6683fb5fcae WHIRLPOOL a3687d923c01698405a6119396d15f26c3808da0badc2b75882088cbb10c45b22091239f83607863d5c45c277f0cb13c9c961322f320a1d5c9daeddba3980729
+EBUILD treesize-0.54.1.ebuild 619 SHA256 468bbfb6fd3cee1b386fa2dac9749d5e29b0b34fe4c432ad2f8fafcc60e56491 SHA512 7ea14f520ffd8c410e2c48f5d48e81598e69b0267c8f8b53f1fde03bd572ea50924918aa7920187c8d52f8ffe8f43b73a8911ea256c9d9d88f263e020004350b WHIRLPOOL 6fc6a943d63a8a9a604d360571b04253aae5137dd8d91160286458720fe3d1d19c02c0bbc49bfee542ce0fd70dc2d8f8f08d1574df09cd728436c85192d92174
+MISC ChangeLog 2206 SHA256 91a2a9a476419263183bad71bbf26bc695030bb8117aac30bbfcdf5ef1c29321 SHA512 134a7f5ed5bda37a4bd4da1431248c54ac141633718023c2b5b6e5c61d09037d6d849a5a752e716eb077ea67eaebb0ef0c372658295b2068ab5343e0debec754 WHIRLPOOL 2177960ace07afec0605eefd281864da65dea623a78ba6a158fc486e076684a337a0b6bf26476f261618fd8496f65b5599da1d0cbce85da0e32ac83232fccd83
+MISC ChangeLog-2015 791 SHA256 45c85906b148d81e4ef372297508e178dc8a36b890f4f4b868d3612fbe3a3212 SHA512 31148acfbc2aa45219b5ebd476d2dcdbe9e7309547680716be3e58ed155744093f590778218011fcfd74c534742c287faf97aaf1a1c3f5d66c10306ab499b38a WHIRLPOOL 4fb47f61d5e2266ba024f0d7427f0d49c142961b73bc90b82b7f2aa50087e46379d21aadc85c4ae45e5f6aac462ce6fe48493a6cec202401fffd6de50cbd00a5
+MISC metadata.xml 328 SHA256 a605b38e72364d6f4559c7d7cda2fc40ddf0d7eca3230e1dffb939f5c0de8e53 SHA512 72c0fce83a8b490532584b8e393fb0a0d42416ffe4cd6221348c31cb652d2f4d3fa7d6df328ec3ed38a5f877a0e678e40fceb862b01ac22044ae62e89d80e3b1 WHIRLPOOL 2a57533a22e2ac6a32853fd25f98dc8188539629a095f33d6180a37aad6f0589a9d802ef7b0b74118f15f0bac1bfeea9d3e6f2ac6851996329debee900439fc0
diff --git a/sys-fs/treesize/files/0.54.1-amd64.patch b/sys-fs/treesize/files/0.54.1-amd64.patch
new file mode 100644
index 000000000000..d7d9d787ad39
--- /dev/null
+++ b/sys-fs/treesize/files/0.54.1-amd64.patch
@@ -0,0 +1,10 @@
+--- src/ui-util.c 2007-11-16 22:08:01.000000000 +0100
++++ src/ui-util.c.new 2009-05-09 11:34:59.000000000 +0200
+@@ -18,6 +18,7 @@
+
+ #include "ui-util.h"
+ #include "FAfolderAnalyzer.h"
++#include "support.h"
+ extern GtkWidget *mainWindow;
+
+ gpointer getTVSelectedValue( int element ){
diff --git a/sys-fs/treesize/metadata.xml b/sys-fs/treesize/metadata.xml
new file mode 100644
index 000000000000..cb54d014c97b
--- /dev/null
+++ b/sys-fs/treesize/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>hwoarang@gentoo.org</email>
+ <name>Markos Chandras</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">treesize</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/treesize/treesize-0.54.1.ebuild b/sys-fs/treesize/treesize-0.54.1.ebuild
new file mode 100644
index 000000000000..22a73312bac5
--- /dev/null
+++ b/sys-fs/treesize/treesize-0.54.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit autotools base
+
+DESCRIPTION="A disk consumption analyzing tool"
+HOMEPAGE="http://treesize.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}-src.tbz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="x11-libs/gtk+:2"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${PV}-amd64.patch" )
+
+src_prepare() {
+ eautoreconf
+ base_src_prepare
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "installation failed"
+ dodoc NEWS README TODO ChangeLog || die "nothing to read"
+}
diff --git a/sys-fs/udev-init-scripts/Manifest b/sys-fs/udev-init-scripts/Manifest
new file mode 100644
index 000000000000..d4f93429af7a
--- /dev/null
+++ b/sys-fs/udev-init-scripts/Manifest
@@ -0,0 +1,12 @@
+DIST udev-init-scripts-27.tar.bz2 3456 SHA256 1a091c361e9845861c138b505881edcb7b68fcf91708db526dff0b320243c936 SHA512 8a526d5252d54c724ad99250141d3ffddfbe6044ff9c9b9c02a4984f03ab6492a8b6a36022b93c7c06b0869b61a3c4dfa82fc47f560e927684fad636f56e4ba8 WHIRLPOOL 270a4ae1053a0303a851d6dcc5b51d2b89c5438b93f85dfb80726d11d61e950ae13e88b6063938f4ea8b49ae7167fb58211b6ce670f8d6c52212aed5da80b339
+DIST udev-init-scripts-30.tar.gz 3668 SHA256 4de998d68e28f8ce4c1d4c9955aec0fa4cfe84673cbf3bfe1be71a1e9918693f SHA512 bf9ec69d9fb9edbe37f3dec8e1d5c828ea63591382de33818297ec5e37490c2dd709a8e32251fba36a816952c98af49172c7c09f3252712ddc51820205c4efdd WHIRLPOOL e666263adbd42ec99ed31c7537361e10deea19293aadd0580410abc901d87d1befdec2231d448cc364564803d2177649037111640218eb96f79ed931e41e26a7
+DIST udev-init-scripts-31.tar.gz 3661 SHA256 f8113922f0e062527268da6cc0d8168e64c61e353f6e84292fc64d7c6e4bffae SHA512 9b0322940ca6d78c2753cba801958fbe354431a46c8db3193cce714bf68cb05233ff01bd9fe7b62de29b5d9481828a30990f7e5e079360c823fa102e83b600f5 WHIRLPOOL dbf7765210a40ef6d7c06352de7695f4a674db3ac701233cf3992c0c404e1f07f4461238c318c5a5000a21f0ebe4cccc8f4c46364773e35b9920e49e9b45264c
+DIST udev-init-scripts-32.tar.gz 3661 SHA256 d5ae437291ae140194f67fec2c9a6ceeda39708433840e7b4b0361cc5ae53eaa SHA512 da6291ae5c2aa1e8e41656fbe2ed6700e46360809119c0f8a26bf6c3f23f05c861b2c2943b55e47140462049474725e96105e68b204f3d931050409f34d19699 WHIRLPOOL 46660be2a230e5d2a1dfbf924b5a15497b041155c8c50c7d81de1e2f3566669e34bf66d978c1b2a49476a01fefeffa35a754541acba6f6a02be0f9eea6223738
+EBUILD udev-init-scripts-27.ebuild 1793 SHA256 e9b4f77516b4606c4ab26b2d3589f56f099d50fab41da10ea2a70bc8d4c24539 SHA512 02d4382dda3f2358c981e810a0c45eb79ef834791a1fb72aa77af8e21797127f3fb9f7db3b56c474212d64f3e71774efb610325616501d06cfaa3c12375323b9 WHIRLPOOL d4ef286c57f8e6b7e91c20c873cdc51fb33cb6e5e9cb44b93b0b110a8e4d704ae195822950599e91b6be27f90cd5c5d859b76362e5c0ca72e214b368500fa747
+EBUILD udev-init-scripts-30.ebuild 1374 SHA256 187e4c5ca32f6078242b572a1ac5a519ad154b37d413393e4ba6234cb1b3ae4e SHA512 93094db7aad88a02bbabe1ef553cd2b05b2c7736b1ac34fa3eeaddd142cfcc33d96cb50e34a7fd7ab21b5ddecc2c5760d12857f2c041237ec74e984c7bb866e2 WHIRLPOOL ac222ba435a8b82fa97d1a9621f8474c97c53a1645070638f6b94453ef11a4f45cde0cf53ecb32683a88e1d09e49952a49edd23fb94dc0bfc333cedf41f57361
+EBUILD udev-init-scripts-31.ebuild 1374 SHA256 187e4c5ca32f6078242b572a1ac5a519ad154b37d413393e4ba6234cb1b3ae4e SHA512 93094db7aad88a02bbabe1ef553cd2b05b2c7736b1ac34fa3eeaddd142cfcc33d96cb50e34a7fd7ab21b5ddecc2c5760d12857f2c041237ec74e984c7bb866e2 WHIRLPOOL ac222ba435a8b82fa97d1a9621f8474c97c53a1645070638f6b94453ef11a4f45cde0cf53ecb32683a88e1d09e49952a49edd23fb94dc0bfc333cedf41f57361
+EBUILD udev-init-scripts-32.ebuild 1317 SHA256 66fc6015c7a4adc58fe723e1687b149491183778df400ddfcc6ecaa125daecb3 SHA512 f80100629857b7d9ac50d4c83478a99c1624d67743bec8875ec53e3d344968817a38f8b791086c466d523cc05221b076921a57ac671f421d2b206246415889e0 WHIRLPOOL c13a81d27f4e05f22a938bd0c9e2e0d618adb10b01f4edb153683401c67faa3b6f73a05ccf6ccb58a08c9cac66e5d7186bd93d3d1b4b62a856703b43e27ce954
+EBUILD udev-init-scripts-9999.ebuild 1374 SHA256 187e4c5ca32f6078242b572a1ac5a519ad154b37d413393e4ba6234cb1b3ae4e SHA512 93094db7aad88a02bbabe1ef553cd2b05b2c7736b1ac34fa3eeaddd142cfcc33d96cb50e34a7fd7ab21b5ddecc2c5760d12857f2c041237ec74e984c7bb866e2 WHIRLPOOL ac222ba435a8b82fa97d1a9621f8474c97c53a1645070638f6b94453ef11a4f45cde0cf53ecb32683a88e1d09e49952a49edd23fb94dc0bfc333cedf41f57361
+MISC ChangeLog 3018 SHA256 b9775666e387c3f4dee2c7ae6f49487f0dac4aa1609086407c534dafffcc13ef SHA512 d5b871291ce0ad1ddb48f11362c83dc9337e286b9b02c46c00fc632f4ce7566ff39dff6007c1cbb54885e14b14c81aba16053fdfeb8df53bdaab2c2181accb93 WHIRLPOOL 4b2418c5e01aad70164dfa1d5b295bead6df951e459e36d6fa7789cae13c383f21c3b3480d778050095b0fef16109d0322bb71018f58a483b2c2da51a47d912d
+MISC ChangeLog-2015 18988 SHA256 fbeeb00a9a72c8cb11844e79517bc7f74babd262a156f74212d7451568e21904 SHA512 02f07fe75b5857aeffbb97ccdd4de1ac12eb0b08f6f8b06da91e5e7f43e050afebb3a76c364d34849a2a0b21aa2426dba5b2e08341ecb5cd5a6b5c5d75d1bb40 WHIRLPOOL 3518c33131184101ed2f02ce097f9495b93e6356c92a422b15ae78a085957f005b43dfa754d05cbf7218f190a39c44fa67c2e21af4c1f9a9f2be157886a6b928
+MISC metadata.xml 221 SHA256 e0a83a8fe6847cd9d564bc6b26ca75598fe3694650e11b49933a22b4588650c9 SHA512 accbe81ec1cf4c8d7c6eb99b7ceb7a8119eb1f2f55dcaf6d368610c255e7a21ff222e7c613ca4be37083ce9527ca325f3ee91515dadad7c5929f60f4fda334df WHIRLPOOL 5601f6484b7ac22cc57e6be93ac002f735cfa3594ce929d6fe38965db715d332d0dbfffa2276641ebd8c984c1833bee289fac6c79e1e5b08e75c46d786c112ce
diff --git a/sys-fs/udev-init-scripts/metadata.xml b/sys-fs/udev-init-scripts/metadata.xml
new file mode 100644
index 000000000000..47a9d608646f
--- /dev/null
+++ b/sys-fs/udev-init-scripts/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>udev-bugs@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/udev-init-scripts/udev-init-scripts-27.ebuild b/sys-fs/udev-init-scripts/udev-init-scripts-27.ebuild
new file mode 100644
index 000000000000..41d24a9a1b05
--- /dev/null
+++ b/sys-fs/udev-init-scripts/udev-init-scripts-27.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+if [ "${PV}" = "9999" ]; then
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/udev-gentoo-scripts.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~williamh/dist/${P}.tar.bz2"
+ KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+fi
+
+inherit eutils
+
+DESCRIPTION="udev startup scripts for openrc"
+HOMEPAGE="https://www.gentoo.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RESTRICT="test"
+
+RDEPEND=">=virtual/udev-180
+ !<sys-fs/udev-186
+ !<sys-apps/openrc-0.13"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch_user
+}
+
+pkg_postinst() {
+ # Add udev to the sysinit runlevel automatically if this is
+ # the first install of this package.
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if [[ ! -d ${ROOT%/}/etc/runlevels/sysinit ]]; then
+ mkdir -p "${ROOT%/}"/etc/runlevels/sysinit
+ fi
+ if [[ -x ${ROOT%/}/etc/init.d/udev ]]; then
+ ln -s /etc/init.d/udev "${ROOT%/}"/etc/runlevels/sysinit/udev
+ fi
+ fi
+
+ # Warn the user about adding udev to their sysinit runlevel
+ if [[ -e ${ROOT%/}/etc/runlevels/sysinit ]]; then
+ if [[ ! -e ${ROOT%/}/etc/runlevels/sysinit/udev ]]; then
+ ewarn
+ ewarn "You need to add udev to the sysinit runlevel."
+ ewarn "If you do not do this,"
+ ewarn "your system will not be able to boot!"
+ ewarn "Run this command:"
+ ewarn "\trc-update add udev sysinit"
+ fi
+ fi
+
+ if ! has_version "sys-fs/eudev[rule-generator]" && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qs 'boot\|default\|sysinit'; then
+ ewarn "The udev-postmount service has been removed because the reasons for"
+ ewarn "its existance have been removed upstream."
+ ewarn "Please remove it from your runlevels."
+ fi
+}
diff --git a/sys-fs/udev-init-scripts/udev-init-scripts-30.ebuild b/sys-fs/udev-init-scripts/udev-init-scripts-30.ebuild
new file mode 100644
index 000000000000..68e64e0899da
--- /dev/null
+++ b/sys-fs/udev-init-scripts/udev-init-scripts-30.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+if [ "${PV}" = "9999" ]; then
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/udev-gentoo-scripts.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~williamh/dist/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+inherit eutils
+
+DESCRIPTION="udev startup scripts for openrc"
+HOMEPAGE="https://www.gentoo.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RESTRICT="test"
+
+DEPEND=""
+RDEPEND=">=virtual/udev-217
+ !<sys-apps/openrc-0.14"
+
+src_prepare() {
+ epatch_user
+}
+
+pkg_postinst() {
+ # Add udev and udev-trigger to the sysinit runlevel automatically.
+ for f in udev udev-trigger; do
+ if [[ -x ${ROOT%/}/etc/init.d/${f} &&
+ -d ${ROOT%/}/etc/runlevels/sysinit &&
+ ! -L "${ROOT%/}/etc/runlevels/sysinit/${f}" ]]; then
+ ln -snf /etc/init.d/${f} "${ROOT%/}"/etc/runlevels/sysinit/${f}
+ ewarn "Adding ${f} to the sysinit runlevel"
+ fi
+ done
+
+ if ! has_version "sys-fs/eudev[rule-generator]" && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qs 'boot\|default\|sysinit'; then
+ ewarn "The udev-postmount service has been removed because the reasons for"
+ ewarn "its existance have been removed upstream."
+ ewarn "Please remove it from your runlevels."
+ fi
+}
diff --git a/sys-fs/udev-init-scripts/udev-init-scripts-31.ebuild b/sys-fs/udev-init-scripts/udev-init-scripts-31.ebuild
new file mode 100644
index 000000000000..68e64e0899da
--- /dev/null
+++ b/sys-fs/udev-init-scripts/udev-init-scripts-31.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+if [ "${PV}" = "9999" ]; then
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/udev-gentoo-scripts.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~williamh/dist/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+inherit eutils
+
+DESCRIPTION="udev startup scripts for openrc"
+HOMEPAGE="https://www.gentoo.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RESTRICT="test"
+
+DEPEND=""
+RDEPEND=">=virtual/udev-217
+ !<sys-apps/openrc-0.14"
+
+src_prepare() {
+ epatch_user
+}
+
+pkg_postinst() {
+ # Add udev and udev-trigger to the sysinit runlevel automatically.
+ for f in udev udev-trigger; do
+ if [[ -x ${ROOT%/}/etc/init.d/${f} &&
+ -d ${ROOT%/}/etc/runlevels/sysinit &&
+ ! -L "${ROOT%/}/etc/runlevels/sysinit/${f}" ]]; then
+ ln -snf /etc/init.d/${f} "${ROOT%/}"/etc/runlevels/sysinit/${f}
+ ewarn "Adding ${f} to the sysinit runlevel"
+ fi
+ done
+
+ if ! has_version "sys-fs/eudev[rule-generator]" && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qs 'boot\|default\|sysinit'; then
+ ewarn "The udev-postmount service has been removed because the reasons for"
+ ewarn "its existance have been removed upstream."
+ ewarn "Please remove it from your runlevels."
+ fi
+}
diff --git a/sys-fs/udev-init-scripts/udev-init-scripts-32.ebuild b/sys-fs/udev-init-scripts/udev-init-scripts-32.ebuild
new file mode 100644
index 000000000000..0999669c5129
--- /dev/null
+++ b/sys-fs/udev-init-scripts/udev-init-scripts-32.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+if [ "${PV}" = "9999" ]; then
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/udev-gentoo-scripts.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~williamh/dist/${P}.tar.gz"
+ KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86"
+fi
+
+DESCRIPTION="udev startup scripts for openrc"
+HOMEPAGE="https://www.gentoo.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RESTRICT="test"
+
+DEPEND=""
+RDEPEND=">=virtual/udev-217
+ !<sys-apps/openrc-0.14"
+
+pkg_postinst() {
+ # Add udev and udev-trigger to the sysinit runlevel automatically.
+ for f in udev udev-trigger; do
+ if [[ -x ${ROOT%/}/etc/init.d/${f} &&
+ -d ${ROOT%/}/etc/runlevels/sysinit &&
+ ! -L "${ROOT%/}/etc/runlevels/sysinit/${f}" ]]; then
+ ln -snf /etc/init.d/${f} "${ROOT%/}"/etc/runlevels/sysinit/${f}
+ ewarn "Adding ${f} to the sysinit runlevel"
+ fi
+ done
+
+ if ! has_version "sys-fs/eudev[rule-generator]" && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qs 'boot\|default\|sysinit'; then
+ ewarn "The udev-postmount service has been removed because the reasons for"
+ ewarn "its existance have been removed upstream."
+ ewarn "Please remove it from your runlevels."
+ fi
+}
diff --git a/sys-fs/udev-init-scripts/udev-init-scripts-9999.ebuild b/sys-fs/udev-init-scripts/udev-init-scripts-9999.ebuild
new file mode 100644
index 000000000000..68e64e0899da
--- /dev/null
+++ b/sys-fs/udev-init-scripts/udev-init-scripts-9999.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+if [ "${PV}" = "9999" ]; then
+ EGIT_REPO_URI="git://anongit.gentoo.org/proj/udev-gentoo-scripts.git"
+ inherit git-r3
+else
+ SRC_URI="https://dev.gentoo.org/~williamh/dist/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+inherit eutils
+
+DESCRIPTION="udev startup scripts for openrc"
+HOMEPAGE="https://www.gentoo.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RESTRICT="test"
+
+DEPEND=""
+RDEPEND=">=virtual/udev-217
+ !<sys-apps/openrc-0.14"
+
+src_prepare() {
+ epatch_user
+}
+
+pkg_postinst() {
+ # Add udev and udev-trigger to the sysinit runlevel automatically.
+ for f in udev udev-trigger; do
+ if [[ -x ${ROOT%/}/etc/init.d/${f} &&
+ -d ${ROOT%/}/etc/runlevels/sysinit &&
+ ! -L "${ROOT%/}/etc/runlevels/sysinit/${f}" ]]; then
+ ln -snf /etc/init.d/${f} "${ROOT%/}"/etc/runlevels/sysinit/${f}
+ ewarn "Adding ${f} to the sysinit runlevel"
+ fi
+ done
+
+ if ! has_version "sys-fs/eudev[rule-generator]" && \
+ [[ -x $(type -P rc-update) ]] && rc-update show | grep udev-postmount | grep -qs 'boot\|default\|sysinit'; then
+ ewarn "The udev-postmount service has been removed because the reasons for"
+ ewarn "its existance have been removed upstream."
+ ewarn "Please remove it from your runlevels."
+ fi
+}
diff --git a/sys-fs/udev/Manifest b/sys-fs/udev/Manifest
new file mode 100644
index 000000000000..435773d01a01
--- /dev/null
+++ b/sys-fs/udev/Manifest
@@ -0,0 +1,24 @@
+AUX 232-0002-build-sys-add-check-for-gperf-lookup-function-signat.patch 13821 SHA256 089ecb3adf70be9ac80feaa43987b4ba65dba0e449e37f6afda443d2b46623b4 SHA512 1056b7d661b65a26ec77e01d61dd06a1e244ddb0a70ed9cbefbfa3ade2368da18247d96a7d0fd0ccdd087eb9157e79be9a5751c3fe30535a12532479eedbbe44 WHIRLPOOL 598445d0449ccc951879f46fd606c34cc439d973509efcd3bc5709ec150b062d38afb508a3c6c93843bbefb5f2ee66866cd3fa032859eeab2c8fed3009798846
+AUX 233-format-warnings.patch 3837 SHA256 20c4caf0bb173dbf60a7c98e581adefe8428f8be322412ab89edeab704542cbf SHA512 491cdbdb75e1ef338cd660fd89c776e3dd2881922eb04f505dda985104f14813e9da9e758393d906ff224e9e03888cafd05f7e665f71c43580a2989af54981bc WHIRLPOOL 669c61cb4a6f5c435722d8602b4c2634d3231c9ea43ba280132ee7e4999af45cfd7eb49bfa4a8a20d87ffb56074783c8c0c6c9568f13b754f805a165ac6ccdfe
+AUX 234-uucp-group.patch 536 SHA256 b3ef6c7d40d86dfc801ff7839876dcffb299d0b6d5b11fbf081adfe51ee0d8e6 SHA512 6ffaa3b50f36598682019c1c6b171ad121d57ba9cfd379be5f46f64621dc026a82069922b78a62a5c477bb117e700a31e0315872d78378755cd4150abd22a912 WHIRLPOOL dc9bbd2879af33a8ff27e7a13052c51b4ddc1b336bbd58ed0b5e28bb63229acbb355b6316cc58555b12eee8ed2d73ba25ee21286e8e0f429d6760e70dc6de5a4
+AUX systemd-232-pkgconfig.patch 1472 SHA256 e43b9faf789c7cb370be2961d4064714bf6bec6210e05b0079cf5d2dc4ac16db SHA512 eba2c6f84fcc7215e0ca1ac11e672e3f03b2494e1d4b2aa623b4eeb15986a0bc828d6d867baa9123789467ae81a44f636630a090ac3336998434bae286475ae7 WHIRLPOOL 1a4c84beb2d27a4cd56aedb0443bd1478a0b8fb0b8d49ed639c435b49cfdcd3815e2fe6b9a739dd5f9a08df60e338bca358dbfa6082c908d84dc35b904348ab7
+AUX udev-229-sysmacros.patch 2172 SHA256 ed4497a6478f198ec663b919d5e0fad829a1488f35842672719dcb797786106b SHA512 003f32b3cc0c070bd524ea708b26ea50b570cf10ebdb6588012d060395db41b409da71b438c6d1718aae6b50ce92e1a21aaab32b23284c72ab8c147480bc369a WHIRLPOOL 923b44df613373a70b72022f5fa6b2faa7396ed3d57b7fffe66345616aedc3d8e510cc78430e4c1d22ee5c39504c719fea287f6095500cde65525819231e659e
+DIST systemd-216.tar.xz 3612960 SHA256 945d3db7d840d6ffe98aa68394428e13317161ae79905397faab6671619728f3 SHA512 f4eee6664368168eafd61939f1355ac21c7eeecce6247de98ef36f40bb6a942d12c006ced4ee15f3d8f11699c194990222d5a5115b45f2aa81f2a1abafebbdd2 WHIRLPOOL 505e09b55209a4f9d8cec077970571b2e1298e8db02946a6c79df139dece9d1a08e46c86ef6c8053274abfd46c9a5ea09157f5bc9dc1f7461322c596e84ef494
+DIST systemd-225.tar.gz 3878442 SHA256 b2f576bb3688e9315f2f49b98e141ac6f964567370e98ebd8fd7332a0a6f9701 SHA512 35b3946509c7b01660da4370d3c51ff0e6a537dadd9dbb0a039c4f7ed552fd4e02ebac6eb8a788f61f1e3ba99444238d959051dd004c174b027729a80368ac19 WHIRLPOOL 47cd3b5690dafdf3c0ef6a9767e947666b1853541f8aefd17eb5c07eee1477daf32f3b249b04327b1c56d8ec430745725383750b97755bb6cf594d354a7ffdf8
+DIST systemd-233.tar.gz 4660737 SHA256 8b3e99da3d4164b66581830a7f2436c0c8fe697b5fbdc3927bdb960646be0083 SHA512 5ad5329ea116d973cf67096f7e7ad28e9ea0905696e9451291f1d25e5064f4a9bfcfae87e912996c6a38397e9f4a148d4ccecfa9b70f7ecdf04deadb61784c8e WHIRLPOOL ce19f6a546b8f899cfa952e49d47f063fd29186be4a53391bc30ea2c487eb2c140a74ad843a1dc499bb61bba3e9ca055613852291e38b85af5d79c59409dc176
+DIST systemd-234.tar.gz 4800186 SHA256 da3e69d10aa1c983d33833372ad4929037b411ac421fb085c8cee79ae1d80b6a SHA512 762336a7d96c6583cf71cad62efce95a0ed93cd0a0d7251f128d10dba8200c0c8df0e5a7d168179ababa5b221295a231e73b7e7ea2697cb3fb5c1b33538efa68 WHIRLPOOL 9ff9f25ce82514db969a427eee51c0483b2bcaaa611f93c1fc17c356ea25eee712217708c54101ecaafd835cd8ac988b16e8ad411b48541a32442b9a0d148f07
+DIST systemd-235.tar.gz 6586406 SHA256 25811f96f5a027bf2a4c9383495cf5b623e385d84da31e473cf375932b3e9c52 SHA512 243f2eb5340fa37dd1286eaa63e83387bda9e03953af266cd6196a37535a13491482caf14c6ab10608bba4ed23b6c41923608e52017e0c26988ed72ddd2b9993 WHIRLPOOL 05e50b31f7b3b1cd756abd1580dddae0e114953857564133784fc43b9ecd0e203ee534aaf76531ca7af5c43b03b9b73c6cbbbb1caf5afb17502555cc52fe06cd
+DIST udev-216-patches-2.tar.xz 1264 SHA256 18b7b8f852f11c2ac2a58458462ce686ebec48859562df99c5b9c29c95ddfa3c SHA512 1f5912f3bbc3e40a4efad9de8b1fab2b3a750f3f23c9f2e33a581658959d22cf23f9ff1b8f51597874e7bca1d0f757f37fd5550b4112160261559524eda261f4 WHIRLPOOL 8f93f982de2d1fa10f7e3c6541c559f2c881730276498b14d4d27b8577bdb340d49b2dc7a50a40e8a13fcabbbabb3dfa5f1605aa842e325d12c17e82d2dc787b
+EBUILD udev-216.ebuild 15211 SHA256 1956446711ae573820ba9c7eb62d02d7d639e92c2639aa862997a22c02f2ff23 SHA512 bf4e3c887eaca0ab747b5ffbcceeba94ed6662a27838cc9f5c09bb248483ececbe37cc9db17a3fd246f789874cc62b2ed831e7f452f9c5163e735da33c924b68 WHIRLPOOL ac87169c63ff6c8abc319ea5e95235f3887a78be99a4e53dffd162c79353832b5905fa7ac43b0d8327655062f9fa44012f890cc2b9b37f2418d289772f8ad739
+EBUILD udev-225-r1.ebuild 13566 SHA256 0a6db545084e5f3fdb9ff3fa023ac4150247a5fc2344b74497171219ce1b9d1a SHA512 ea3955b5cee2d1a1adfe21cc00eda4e6378a344f5862e1825fdb4bf313077b6e2b5fbb8ee80e786ab4809644d1b3c39dcdcbe14bd01e17e94ca2726d1f3de33d WHIRLPOOL 0999164d1b298817fd93d70a0db00463082a6c42a39778252387f90097d17dac0b80beeb1ffdb145e30ddad06381b0dcd3f78b542efb952c40fa04d41f4d3caf
+EBUILD udev-233.ebuild 12992 SHA256 7221682da2b730dfbeee68fd1f0f879d7dfd1d9d96b8aba2247f77765fa21f4a SHA512 43a241d81d922547ae4477c57aaf4f9007fb1d47dbe542185673f14d6cc4e5efec467b7f4e2d79ed4bcde498bb8fef57d0fa43e8be9791aebb0bae321b18495d WHIRLPOOL 3f9ecc1d8b605c9b3a36f402b3b25a143c20b26815df47f44bf14550b284dd305db48a48140a6e00703eb0fe5b5f58d0991691f409933dafb801d1fd6d3dfd83
+EBUILD udev-234-r1.ebuild 9955 SHA256 d896ac8a8233703a6b3eb004f187e02c68765261984a6335d424c74405fbcf06 SHA512 f8717265cb3ab78525381eec12c40d9194610df22f6eecdbd08e7f275bd760a1fd7e17ba0d4c2860df5ecc3f5363ae065d88b7cd4b0f381b29e7a9749da800cc WHIRLPOOL 23d4a029a70b6b47c0b15178ef3a34572008d2b228c25d2a15606cf897704fc9e833f58b37803c20e6560e4bb5f4b92a16bdd48db28d92206a3ee5a3f566d247
+EBUILD udev-235.ebuild 9953 SHA256 9ffba1659586008768a47d629ac5ac6b3058f77e3c3df063db11db72b98a2511 SHA512 dc6614e41e872907f151ce6a5b4d11e68f4d247982f24845a330042c2130d5c14381bf5ff70c03b71f77e0a54eb1a6b6eff3a38c8628d0397b960bda832f6073 WHIRLPOOL 4beefb5af73c18f58c5e2a3fbaa4bbaa2ae465d0e09f4ed168c587a115e058df79e95f9d231c4528a40661168549f8e7f48dfa8b589251a757ac0e68d547f11b
+EBUILD udev-9999.ebuild 9953 SHA256 9ffba1659586008768a47d629ac5ac6b3058f77e3c3df063db11db72b98a2511 SHA512 dc6614e41e872907f151ce6a5b4d11e68f4d247982f24845a330042c2130d5c14381bf5ff70c03b71f77e0a54eb1a6b6eff3a38c8628d0397b960bda832f6073 WHIRLPOOL 4beefb5af73c18f58c5e2a3fbaa4bbaa2ae465d0e09f4ed168c587a115e058df79e95f9d231c4528a40661168549f8e7f48dfa8b589251a757ac0e68d547f11b
+MISC ChangeLog 11624 SHA256 cf398f01e452cb0c3e73fa8f13539ac77cd3169d57829de8dd2a15f4084ea7ae SHA512 920e25d3eee9b85b43d59307108a552a935ee6d2df667fa0727c8eaab7c092bddffa3e6d03099a6bbbfb39bf41db2e337a60970f9ea7f9f7348810e56db0fd3d WHIRLPOOL 28685743fb3bdbdda52173630ebf6e3b8c622f50d591a793d9713f966109f28c20593705507a07ff29c774815bc0157d12a2acc16ded1c11273d3b7ba32b5784
+MISC ChangeLog-2009 105929 SHA256 94137298457e8d6361cf25e664279d2f9b424f6758814e7ba90e9e2cbf1ea7e5 SHA512 f110e1aa70b11c28263ec5e88973c99426717bce62400c8e9ad860b9e7b67d4aadc053596a9e54faa9435a774c1e8aa0954ae8541760cf061beef26867871548 WHIRLPOOL 215252c0a5c249241813d1bb208da62e68c858e07d1df327cf9175ac739f214813a33c09a64afb4821445e93394dd6d6d500b33e35ed912c1eeccff3365cb7fb
+MISC ChangeLog-2010 10729 SHA256 44fe328d57b1ba342b328c7a256632e7960976a12e8e9c9791a5fc8ce52c67ca SHA512 a8c371aafe757923e24c023cbf55f3ad084f15f0f038eceaee0dffe58919a17b17bc16cb4b7b1d3f65a19c82b20330a854ec2c801f6d7c7799723ab92d255b49 WHIRLPOOL 3d34e758def921d3d2ed7369392ba5f833fc3a899181c2895fd3da6c9846cf41c9eddbf56de60a52fadd76ffd4c66d92b660b0bc6ca4dddbb2fa49fe0f93cb0b
+MISC ChangeLog-2011 11721 SHA256 363429a267f251b1ac1c34479e7afa5d7ea13811aa1ba46d7c5489860e542276 SHA512 be7bbaa68602c30ba9cb3e5037ee91ff94c35a0c2ff0b96c5eee14c0e81f8e52232bae44f1d01ff23acedabdb03fdc78f3d11a40cfed2cfef1c45fe2492f7bf4 WHIRLPOOL 3e85eb967f26a8224fd0ed5824009c62271fa5269a6a207da8c8abd7b09cc4308ff847021afcae5a86cedd723a5aeca1ce2f6712a187dfbd36118e097d74510f
+MISC ChangeLog-2012 23242 SHA256 5466af35dd494cc2a4d0bc9cc0f4ff03e0d3d7ac7ec595a70b2b15896f33658f SHA512 8488fe00da8ba8b3db5d72c35ee3ed5b372a673a09eb0422102583a76d6671ffded8d0086362fddb2bb056a9b9a1f7c3139dfbb48d0bcd12a53ac07ad9473e68 WHIRLPOOL 0352206d82c41cbf3ac0fcbf3392e8e7ae94e8bcf35d8cb8a99c48bf790aa94b9f90a627deb155ab41d8c2f028658720f55347a6e1048e5c798060cc579d2c49
+MISC ChangeLog-2015 62813 SHA256 37450fd0c56453744f0db76a9d517168aafb39c5fdda58f097c58184ecc3885d SHA512 27316fc6d1eb4bb701ab03f36e426d960d8ff78c96a0d0f99a80d6e30f728f85f5faaa02e9166f566245d82b616a3d699fecef66a5c7f9affdbdf4e20384cc21 WHIRLPOOL 92c2d292e48ef211e148a09b4cddef6c583913e3d1b9077e35f2848472b3f1685b3d8b9e5fa213003dc56f1dcd91d4622e4982ac151ad15c3d42ebfd47a4ba09
+MISC metadata.xml 680 SHA256 b96171ebeb342056836865bcb506e97f3eca86bd2c30144ac84bc7ad48990593 SHA512 2e90cdfb013904211fba8404c6b96ad940dfaea05eebe7592e3fa185dec9b16b738cc7661fd466990788accf8c261a596bcb08477e879e0e18fcc91cdce65c5e WHIRLPOOL d14b62241983ba8929771a68d070da5d8b13bc745b09535694caeb3d3c2d8782cc4a1ced02cb983b884600c783cc1aa0a4879cc2ced8a3475f179c972c2b8266
diff --git a/sys-fs/udev/files/232-0002-build-sys-add-check-for-gperf-lookup-function-signat.patch b/sys-fs/udev/files/232-0002-build-sys-add-check-for-gperf-lookup-function-signat.patch
new file mode 100644
index 000000000000..440ec75bd3bb
--- /dev/null
+++ b/sys-fs/udev/files/232-0002-build-sys-add-check-for-gperf-lookup-function-signat.patch
@@ -0,0 +1,302 @@
+From 016fb3b83b861cfe58694996076a9764dcb46475 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppymaster@gmail.com>
+Date: Tue, 10 Jan 2017 02:39:05 -0500
+Subject: [PATCH 2/2] build-sys: add check for gperf lookup function signature
+ (#5055)
+
+gperf-3.1 generates lookup functions that take a size_t length
+parameter instead of unsigned int. Test for this at configure time.
+
+Fixes: https://github.com/systemd/systemd/issues/5039
+---
+ configure.ac | 22 ++++++++++++++++++++++
+ src/basic/af-list.c | 2 +-
+ src/basic/arphrd-list.c | 2 +-
+ src/basic/cap-list.c | 2 +-
+ src/basic/errno-list.c | 2 +-
+ src/core/load-fragment.h | 2 +-
+ src/journal/journald-server.h | 2 +-
+ src/login/logind.h | 2 +-
+ src/network/networkd-conf.h | 2 +-
+ src/network/networkd-netdev.h | 2 +-
+ src/network/networkd-network.h | 2 +-
+ src/nspawn/nspawn-settings.h | 2 +-
+ src/resolve/dns-type.c | 2 +-
+ src/resolve/resolved-conf.h | 2 +-
+ src/test/test-af-list.c | 2 +-
+ src/test/test-arphrd-list.c | 2 +-
+ src/timesync/timesyncd-conf.h | 2 +-
+ src/udev/net/link-config.h | 2 +-
+ src/udev/udev-builtin-keyboard.c | 2 +-
+ 19 files changed, 40 insertions(+), 18 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1928e65bd..5c639e32d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -258,6 +258,28 @@ AC_CHECK_SIZEOF(rlim_t,,[
+ #include <sys/resource.h>
+ ])
+
++GPERF_TEST="$(echo foo,bar | ${GPERF} -L ANSI-C)"
++
++AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM([
++ #include <string.h>
++ const char * in_word_set(const char *, size_t);
++ $GPERF_TEST]
++ )],
++ [GPERF_LEN_TYPE=size_t],
++ [AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM([
++ #include <string.h>
++ const char * in_word_set(const char *, unsigned);
++ $GPERF_TEST]
++ )],
++ [GPERF_LEN_TYPE=unsigned],
++ [AC_MSG_ERROR([** unable to determine gperf len type])]
++ )]
++)
++
++AC_DEFINE_UNQUOTED([GPERF_LEN_TYPE], [$GPERF_LEN_TYPE], [gperf len type])
++
+ # ------------------------------------------------------------------------------
+ # we use python to build the man page index
+ have_python=no
+diff --git a/src/basic/af-list.c b/src/basic/af-list.c
+index 3fac9c508..4b291d177 100644
+--- a/src/basic/af-list.c
++++ b/src/basic/af-list.c
+@@ -23,7 +23,7 @@
+ #include "af-list.h"
+ #include "macro.h"
+
+-static const struct af_name* lookup_af(register const char *str, register unsigned int len);
++static const struct af_name* lookup_af(register const char *str, register GPERF_LEN_TYPE len);
+
+ #include "af-from-name.h"
+ #include "af-to-name.h"
+diff --git a/src/basic/arphrd-list.c b/src/basic/arphrd-list.c
+index 6792d1ee3..2d598dc66 100644
+--- a/src/basic/arphrd-list.c
++++ b/src/basic/arphrd-list.c
+@@ -23,7 +23,7 @@
+ #include "arphrd-list.h"
+ #include "macro.h"
+
+-static const struct arphrd_name* lookup_arphrd(register const char *str, register unsigned int len);
++static const struct arphrd_name* lookup_arphrd(register const char *str, register GPERF_LEN_TYPE len);
+
+ #include "arphrd-from-name.h"
+ #include "arphrd-to-name.h"
+diff --git a/src/basic/cap-list.c b/src/basic/cap-list.c
+index 3e773a06f..d68cc78d0 100644
+--- a/src/basic/cap-list.c
++++ b/src/basic/cap-list.c
+@@ -26,7 +26,7 @@
+ #include "parse-util.h"
+ #include "util.h"
+
+-static const struct capability_name* lookup_capability(register const char *str, register unsigned int len);
++static const struct capability_name* lookup_capability(register const char *str, register GPERF_LEN_TYPE len);
+
+ #include "cap-from-name.h"
+ #include "cap-to-name.h"
+diff --git a/src/basic/errno-list.c b/src/basic/errno-list.c
+index 31b66bad5..c6a01eec8 100644
+--- a/src/basic/errno-list.c
++++ b/src/basic/errno-list.c
+@@ -23,7 +23,7 @@
+ #include "macro.h"
+
+ static const struct errno_name* lookup_errno(register const char *str,
+- register unsigned int len);
++ register GPERF_LEN_TYPE len);
+
+ #include "errno-from-name.h"
+ #include "errno-to-name.h"
+diff --git a/src/core/load-fragment.h b/src/core/load-fragment.h
+index c05f205c3..ede6b1f73 100644
+--- a/src/core/load-fragment.h
++++ b/src/core/load-fragment.h
+@@ -118,7 +118,7 @@ int config_parse_user_group(const char *unit, const char *filename, unsigned lin
+ int config_parse_user_group_strv(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+
+ /* gperf prototypes */
+-const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+ extern const char load_fragment_gperf_nulstr[];
+
+ typedef enum Disabled {
+diff --git a/src/journal/journald-server.h b/src/journal/journald-server.h
+index 99d91496b..d1520c45d 100644
+--- a/src/journal/journald-server.h
++++ b/src/journal/journald-server.h
+@@ -179,7 +179,7 @@ void server_dispatch_message(Server *s, struct iovec *iovec, unsigned n, unsigne
+ void server_driver_message(Server *s, sd_id128_t message_id, const char *format, ...) _printf_(3,0) _sentinel_;
+
+ /* gperf lookup function */
+-const struct ConfigPerfItem* journald_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* journald_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ int config_parse_storage(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+
+diff --git a/src/login/logind.h b/src/login/logind.h
+index 086fa1eeb..7556ee2e4 100644
+--- a/src/login/logind.h
++++ b/src/login/logind.h
+@@ -182,7 +182,7 @@ int manager_unit_is_active(Manager *manager, const char *unit);
+ int manager_job_is_active(Manager *manager, const char *path);
+
+ /* gperf lookup function */
+-const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* logind_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ int manager_set_lid_switch_ignore(Manager *m, usec_t until);
+
+diff --git a/src/network/networkd-conf.h b/src/network/networkd-conf.h
+index c7bfb42a7..00ddb7672 100644
+--- a/src/network/networkd-conf.h
++++ b/src/network/networkd-conf.h
+@@ -23,7 +23,7 @@
+
+ int manager_parse_config_file(Manager *m);
+
+-const struct ConfigPerfItem* networkd_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* networkd_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ int config_parse_duid_type(
+ const char *unit,
+diff --git a/src/network/networkd-netdev.h b/src/network/networkd-netdev.h
+index 70ff947b9..37c743121 100644
+--- a/src/network/networkd-netdev.h
++++ b/src/network/networkd-netdev.h
+@@ -175,7 +175,7 @@ NetDevKind netdev_kind_from_string(const char *d) _pure_;
+ int config_parse_netdev_kind(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+
+ /* gperf */
+-const struct ConfigPerfItem* network_netdev_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* network_netdev_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ /* Macros which append INTERFACE= to the message */
+
+diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h
+index 42fc82d39..09c3b3a3a 100644
+--- a/src/network/networkd-network.h
++++ b/src/network/networkd-network.h
+@@ -236,7 +236,7 @@ int config_parse_dhcp_route_table(const char *unit, const char *filename, unsign
+ /* Legacy IPv4LL support */
+ int config_parse_ipv4ll(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+
+-const struct ConfigPerfItem* network_network_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* network_network_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ extern const sd_bus_vtable network_vtable[];
+
+diff --git a/src/nspawn/nspawn-settings.h b/src/nspawn/nspawn-settings.h
+index 231e6d726..4ae34f8e2 100644
+--- a/src/nspawn/nspawn-settings.h
++++ b/src/nspawn/nspawn-settings.h
+@@ -103,7 +103,7 @@ bool settings_private_network(Settings *s);
+
+ DEFINE_TRIVIAL_CLEANUP_FUNC(Settings*, settings_free);
+
+-const struct ConfigPerfItem* nspawn_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* nspawn_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ int config_parse_capability(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+ int config_parse_id128(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+diff --git a/src/resolve/dns-type.c b/src/resolve/dns-type.c
+index aaf5ed62c..d89ae28dc 100644
+--- a/src/resolve/dns-type.c
++++ b/src/resolve/dns-type.c
+@@ -29,7 +29,7 @@ typedef const struct {
+ } dns_type;
+
+ static const struct dns_type_name *
+-lookup_dns_type (register const char *str, register unsigned int len);
++lookup_dns_type (register const char *str, register GPERF_LEN_TYPE len);
+
+ #include "dns_type-from-name.h"
+ #include "dns_type-to-name.h"
+diff --git a/src/resolve/resolved-conf.h b/src/resolve/resolved-conf.h
+index fc425a36b..8184d6cad 100644
+--- a/src/resolve/resolved-conf.h
++++ b/src/resolve/resolved-conf.h
+@@ -41,7 +41,7 @@ int manager_parse_search_domains_and_warn(Manager *m, const char *string);
+ int manager_add_dns_server_by_string(Manager *m, DnsServerType type, const char *word);
+ int manager_parse_dns_server_string_and_warn(Manager *m, DnsServerType type, const char *string);
+
+-const struct ConfigPerfItem* resolved_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* resolved_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ int config_parse_dns_servers(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+ int config_parse_search_domains(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+diff --git a/src/test/test-af-list.c b/src/test/test-af-list.c
+index aeaa0929b..e2479133d 100644
+--- a/src/test/test-af-list.c
++++ b/src/test/test-af-list.c
+@@ -24,7 +24,7 @@
+ #include "string-util.h"
+ #include "util.h"
+
+-static const struct af_name* lookup_af(register const char *str, register unsigned int len);
++static const struct af_name* lookup_af(register const char *str, register GPERF_LEN_TYPE len);
+
+ #include "af-from-name.h"
+ #include "af-list.h"
+diff --git a/src/test/test-arphrd-list.c b/src/test/test-arphrd-list.c
+index f3989ad20..8f4f342fa 100644
+--- a/src/test/test-arphrd-list.c
++++ b/src/test/test-arphrd-list.c
+@@ -24,7 +24,7 @@
+ #include "string-util.h"
+ #include "util.h"
+
+-static const struct arphrd_name* lookup_arphrd(register const char *str, register unsigned int len);
++static const struct arphrd_name* lookup_arphrd(register const char *str, register GPERF_LEN_TYPE len);
+
+ #include "arphrd-from-name.h"
+ #include "arphrd-list.h"
+diff --git a/src/timesync/timesyncd-conf.h b/src/timesync/timesyncd-conf.h
+index cba0724b1..0280697e9 100644
+--- a/src/timesync/timesyncd-conf.h
++++ b/src/timesync/timesyncd-conf.h
+@@ -22,7 +22,7 @@
+ #include "conf-parser.h"
+ #include "timesyncd-manager.h"
+
+-const struct ConfigPerfItem* timesyncd_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* timesyncd_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ int manager_parse_server_string(Manager *m, ServerType type, const char *string);
+
+diff --git a/src/udev/net/link-config.h b/src/udev/net/link-config.h
+index 91cc0357c..b0d8ceb76 100644
+--- a/src/udev/net/link-config.h
++++ b/src/udev/net/link-config.h
+@@ -93,7 +93,7 @@ const char *mac_policy_to_string(MACPolicy p) _const_;
+ MACPolicy mac_policy_from_string(const char *p) _pure_;
+
+ /* gperf lookup function */
+-const struct ConfigPerfItem* link_config_gperf_lookup(const char *key, unsigned length);
++const struct ConfigPerfItem* link_config_gperf_lookup(const char *key, GPERF_LEN_TYPE length);
+
+ int config_parse_mac_policy(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+ int config_parse_name_policy(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+diff --git a/src/udev/udev-builtin-keyboard.c b/src/udev/udev-builtin-keyboard.c
+index aa10beafb..09024116f 100644
+--- a/src/udev/udev-builtin-keyboard.c
++++ b/src/udev/udev-builtin-keyboard.c
+@@ -29,7 +29,7 @@
+ #include "string-util.h"
+ #include "udev.h"
+
+-static const struct key *keyboard_lookup_key(const char *str, unsigned len);
++static const struct key *keyboard_lookup_key(const char *str, GPERF_LEN_TYPE len);
+ #include "keyboard-keys-from-name.h"
+
+ static int install_force_release(struct udev_device *dev, const unsigned *release, unsigned release_count) {
+--
+2.11.0
+
diff --git a/sys-fs/udev/files/233-format-warnings.patch b/sys-fs/udev/files/233-format-warnings.patch
new file mode 100644
index 000000000000..7bb08f0a3201
--- /dev/null
+++ b/sys-fs/udev/files/233-format-warnings.patch
@@ -0,0 +1,84 @@
+From 3e7d14d78c4d15ec7789299216cbf5c58e61547b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
+Date: Sat, 3 Jun 2017 05:41:17 -0400
+Subject: [PATCH] sd-bus: silence format warnings in kdbus code (#6072)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The code is mostly correct, but gcc is trying to outsmart us, and emits a
+warning for a "llu vs lu" mismatch, even though they are the same size (on alpha):
+
+src/libsystemd/sd-bus/bus-control.c: In function ‘kernel_get_list’:
+src/libsystemd/sd-bus/bus-control.c:267:42: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘__u64 {aka long unsigned int}’ [-Werror=format=]
+ if (asprintf(&n, ":1.%llu", name->id) < 0) {
+ ^
+src/libsystemd/sd-bus/bus-control.c: In function ‘bus_get_name_creds_kdbus’:
+src/libsystemd/sd-bus/bus-control.c:714:47: error: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘__u64 {aka long unsigned int}’ [-Werror=format=]
+ if (asprintf(&c->unique_name, ":1.%llu", conn_info->id) < 0) {
+ ^
+This is hard to work around properly, because kdbus.h uses __u64 which is
+defined-differently-despite-being-the-same-size then uint64_t. Thus the simple
+solution of using %PRIu64 fails on amd64:
+
+src/libsystemd/sd-bus/bus-control.c:714:47: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long unsigned int}’ [-Werror=format=]
+ if (asprintf(&c->unique_name, ":1.%"PRIu64, conn_info->id) < 0) {
+ ^~~~~~
+
+Let's just avoid the whole issue for now by silencing the warning.
+After the next release, we should just get rid of the kdbus code.
+
+Fixes #5561.
+---
+ src/libsystemd/sd-bus/bus-control.c | 6 ++++++
+ src/libsystemd/sd-bus/bus-kernel.c | 2 ++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c
+index 9e58ffbd8..303ae0f23 100644
+--- a/src/libsystemd/sd-bus/bus-control.c
++++ b/src/libsystemd/sd-bus/bus-control.c
+@@ -264,10 +264,13 @@ static int kernel_get_list(sd_bus *bus, uint64_t flags, char ***x) {
+ if ((flags & KDBUS_LIST_UNIQUE) && name->id != previous_id && !(name->flags & KDBUS_HELLO_ACTIVATOR)) {
+ char *n;
+
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat"
+ if (asprintf(&n, ":1.%llu", name->id) < 0) {
+ r = -ENOMEM;
+ goto fail;
+ }
++#pragma GCC diagnostic pop
+
+ r = strv_consume(x, n);
+ if (r < 0)
+@@ -711,10 +714,13 @@ int bus_get_name_creds_kdbus(
+ }
+
+ if (mask & SD_BUS_CREDS_UNIQUE_NAME) {
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat"
+ if (asprintf(&c->unique_name, ":1.%llu", conn_info->id) < 0) {
+ r = -ENOMEM;
+ goto fail;
+ }
++#pragma GCC diagnostic pop
+
+ c->mask |= SD_BUS_CREDS_UNIQUE_NAME;
+ }
+diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c
+index c82caeb3f..ca6aee7c0 100644
+--- a/src/libsystemd/sd-bus/bus-kernel.c
++++ b/src/libsystemd/sd-bus/bus-kernel.c
+@@ -51,6 +51,8 @@
+ #include "user-util.h"
+ #include "util.h"
+
++#pragma GCC diagnostic ignored "-Wformat"
++
+ #define UNIQUE_NAME_MAX (3+DECIMAL_STR_MAX(uint64_t))
+
+ int bus_kernel_parse_unique_name(const char *s, uint64_t *id) {
+--
+2.13.2
+
diff --git a/sys-fs/udev/files/234-uucp-group.patch b/sys-fs/udev/files/234-uucp-group.patch
new file mode 100644
index 000000000000..89cf552c8295
--- /dev/null
+++ b/sys-fs/udev/files/234-uucp-group.patch
@@ -0,0 +1,11 @@
+--- a/rules/50-udev-default.rules.in
++++ b/rules/50-udev-default.rules.in
+@@ -22,7 +22,7 @@
+ SUBSYSTEM=="tty", KERNEL=="ttysclp[0-9]*", GROUP="tty", MODE="0620"
+ SUBSYSTEM=="tty", KERNEL=="3270/tty[0-9]*", GROUP="tty", MODE="0620"
+ SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty"
+-KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
++KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="uucp"
+
+ SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
+
diff --git a/sys-fs/udev/files/systemd-232-pkgconfig.patch b/sys-fs/udev/files/systemd-232-pkgconfig.patch
new file mode 100644
index 000000000000..50f7921b565d
--- /dev/null
+++ b/sys-fs/udev/files/systemd-232-pkgconfig.patch
@@ -0,0 +1,50 @@
+From a36dad95c447a5cf65f9e3b66c86e906e7f05890 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 5 Nov 2016 09:17:34 -0400
+Subject: [PATCH] Adjust pkgconfig files to point at rootlibdir
+
+The .so symlinks got moved to rootlibdir in 082210c7.
+---
+ Makefile.am | 1 +
+ src/libsystemd/libsystemd.pc.in | 2 +-
+ src/libudev/libudev.pc.in | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index f2d8bf5..73144b1 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -6054,6 +6054,7 @@ EXTRA_DIST += \
+
+ # ------------------------------------------------------------------------------
+ substitutions = \
++ '|rootlibdir=$(rootlibdir)|' \
+ '|rootlibexecdir=$(rootlibexecdir)|' \
+ '|rootbindir=$(rootbindir)|' \
+ '|bindir=$(bindir)|' \
+diff --git a/src/libsystemd/libsystemd.pc.in b/src/libsystemd/libsystemd.pc.in
+index e8f7950..7e6d499 100644
+--- a/src/libsystemd/libsystemd.pc.in
++++ b/src/libsystemd/libsystemd.pc.in
+@@ -7,7 +7,7 @@
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
++libdir=@rootlibdir@
+ includedir=@includedir@
+
+ Name: systemd
+diff --git a/src/libudev/libudev.pc.in b/src/libudev/libudev.pc.in
+index a0f3f52..770c922 100644
+--- a/src/libudev/libudev.pc.in
++++ b/src/libudev/libudev.pc.in
+@@ -7,7 +7,7 @@
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
++libdir=@rootlibdir@
+ includedir=@includedir@
+
+ Name: libudev
diff --git a/sys-fs/udev/files/udev-229-sysmacros.patch b/sys-fs/udev/files/udev-229-sysmacros.patch
new file mode 100644
index 000000000000..d72eb5907da7
--- /dev/null
+++ b/sys-fs/udev/files/udev-229-sysmacros.patch
@@ -0,0 +1,82 @@
+https://bugs.gentoo.org/580200
+https://github.com/systemd/systemd/commit/27d13af71c3af6b2f9b60556d2c046dbb6e36e23
+
+From 27d13af71c3af6b2f9b60556d2c046dbb6e36e23 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 14 Mar 2016 17:44:49 -0400
+Subject: [PATCH] include sys/sysmacros.h in more places
+
+Since glibc is moving away from implicitly including sys/sysmacros.h
+all the time via sys/types.h, include the header directly in more
+places. This seems to cover most makedev/major/minor usage.
+---
+ src/basic/macro.h | 1 +
+ src/basic/util.h | 1 +
+ src/libudev/libudev.h | 1 +
+ src/systemd/sd-device.h | 1 +
+ src/udev/udev.h | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/src/basic/macro.h b/src/basic/macro.h
+index c34441d..b36a956 100644
+--- a/src/basic/macro.h
++++ b/src/basic/macro.h
+@@ -23,6 +23,7 @@
+ #include <inttypes.h>
+ #include <stdbool.h>
+ #include <sys/param.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+
+ #define _printf_(a,b) __attribute__ ((format (printf, a, b)))
+diff --git a/src/basic/util.h b/src/basic/util.h
+index e095254..286db05 100644
+--- a/src/basic/util.h
++++ b/src/basic/util.h
+@@ -36,6 +36,7 @@
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <sys/statfs.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <time.h>
+ #include <unistd.h>
+diff --git a/src/libudev/libudev.h b/src/libudev/libudev.h
+index eb58740..3f6d0ed 100644
+--- a/src/libudev/libudev.h
++++ b/src/libudev/libudev.h
+@@ -21,6 +21,7 @@
+ #define _LIBUDEV_H_
+
+ #include <stdarg.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+
+ #ifdef __cplusplus
+diff --git a/src/systemd/sd-device.h b/src/systemd/sd-device.h
+index 5bfca6e..c1d0756 100644
+--- a/src/systemd/sd-device.h
++++ b/src/systemd/sd-device.h
+@@ -22,6 +22,7 @@
+ ***/
+
+ #include <inttypes.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+
+ #include "_sd-common.h"
+diff --git a/src/udev/udev.h b/src/udev/udev.h
+index 5659051..8433e8d 100644
+--- a/src/udev/udev.h
++++ b/src/udev/udev.h
+@@ -19,6 +19,7 @@
+ */
+
+ #include <sys/param.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+
+ #include "libudev.h"
+--
+2.7.4
+
diff --git a/sys-fs/udev/metadata.xml b/sys-fs/udev/metadata.xml
new file mode 100644
index 000000000000..e6e0979044dd
--- /dev/null
+++ b/sys-fs/udev/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>udev-bugs@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="firmware-loader">Enable the userspace firmware loader (DEPRECATED, replaced by the in-kernel loader starting from 3.8)</flag>
+ <flag name="gudev">Build the gobject interface library</flag>
+ <flag name="kmod">Enable kernel module loading/unloading support using <pkg>sys-apps/kmod</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:kernel:udev</remote-id>
+ <remote-id type="github">systemd/systemd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/udev/udev-216.ebuild b/sys-fs/udev/udev-216.ebuild
new file mode 100644
index 000000000000..39ea2e597567
--- /dev/null
+++ b/sys-fs/udev/udev-216.ebuild
@@ -0,0 +1,489 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools bash-completion-r1 eutils linux-info multilib multilib-minimal toolchain-funcs udev user versionator
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd"
+ inherit git-2
+ patchset=
+else
+ patchset=2
+ SRC_URI="https://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz"
+ if [[ -n "${patchset}" ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~ssuominen/${P}-patches-${patchset}.tar.xz
+ https://dev.gentoo.org/~williamh/dist/${P}-patches-${patchset}.tar.xz"
+ fi
+ KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl doc +firmware-loader gudev introspection +kmod selinux static-libs"
+
+RESTRICT="test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.20
+ acl? ( sys-apps/acl )
+ gudev? ( >=dev-libs/glib-2.34.3[${MULTILIB_USEDEP}] )
+ introspection? ( >=dev-libs/gobject-introspection-1.38 )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+# Force new make >= -r4 to skip some parallel build issues
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ >=sys-apps/coreutils-8.16
+ sys-libs/libcap
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-3.7
+ doc? ( >=dev-util/gtk-doc-1.18 )"
+# Try with `emerge -C docbook-xml-dtd` to see the build failure without DTDs
+if [[ ${PV} = 9999* ]]; then
+ DEPEND="${DEPEND}
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt"
+fi
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10
+ gudev? ( !dev-libs/libgudev )"
+PDEPEND=">=sys-apps/hwids-20140304[udev]
+ >=sys-fs/udev-init-scripts-26"
+
+S=${WORKDIR}/systemd-${PV}
+
+# The multilib-build.eclass doesn't handle situation where the installed headers
+# are different in ABIs. In this case, we install libgudev headers in native
+# ABI but not for non-native ABI.
+multilib_check_headers() { :; }
+
+check_default_rules() {
+ # Make sure there are no sudden changes to upstream rules file
+ # (more for my own needs than anything else ...)
+ local udev_rules_md5=c18b74c4f8bf4a397ee667ee419f3a8e
+ MD5=$(md5sum < "${S}"/rules/50-udev-default.rules)
+ MD5=${MD5/ -/}
+ if [[ ${MD5} != ${udev_rules_md5} ]]; then
+ eerror "50-udev-default.rules has been updated, please validate!"
+ eerror "md5sum: ${MD5}"
+ die "50-udev-default.rules has been updated, please validate!"
+ fi
+}
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ }; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+}
+
+src_prepare() {
+ if ! [[ ${PV} = 9999* ]]; then
+ # secure_getenv() disable for non-glibc systems wrt bug #443030
+ if ! [[ $(grep -r secure_getenv * | wc -l) -eq 28 ]]; then
+ eerror "The line count for secure_getenv() failed, see bug #443030"
+ die
+ fi
+ fi
+
+ # backport some patches
+ if [[ -n "${patchset}" ]]; then
+ EPATCH_SUFFIX=patch EPATCH_FORCE=yes epatch
+ fi
+
+ cat <<-EOF > "${T}"/40-gentoo.rules
+ # Gentoo specific floppy and usb groups
+ SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
+ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
+ EOF
+
+ # change rules back to group uucp instead of dialout for now wrt #454556
+ sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die
+
+ # apply user patches
+ epatch_user
+
+ if [[ ! -e configure ]]; then
+ if use doc; then
+ gtkdocize --docdir docs || die "gtkdocize failed"
+ else
+ echo 'EXTRA_DIST =' > docs/gtk-doc.make
+ fi
+ eautoreconf
+ else
+ check_default_rules
+ elibtoolize
+ fi
+
+ # Restore possibility of running --enable-static wrt #472608
+ sed -i \
+ -e '/--enable-static is not supported by systemd/s:as_fn_error:echo:' \
+ configure || die
+
+ if ! use elibc_glibc; then #443030
+ echo '#define secure_getenv(x) NULL' >> config.h.in
+ sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
+ fi
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ ac_cv_search_cap_init=
+ --libdir=/usr/$(get_libdir)
+ --docdir=/usr/share/doc/${PF}
+ $(multilib_native_use_enable static-libs static)
+ --disable-nls
+ $(multilib_native_use_enable doc gtk-doc)
+ $(multilib_native_use_enable introspection)
+ --disable-python-devel
+ --disable-dbus
+ $(multilib_native_use_enable kmod)
+ --disable-seccomp
+ $(multilib_native_use_enable selinux)
+ --disable-xz
+ --disable-lz4
+ --disable-pam
+ $(multilib_native_use_enable acl)
+ --disable-gcrypt
+ --disable-audit
+ --disable-libcryptsetup
+ --disable-qrencode
+ --disable-microhttpd
+ --disable-gnutls
+ --disable-libcurl
+ --disable-libidn
+ --disable-readahead
+ --disable-quotacheck
+ --disable-logind
+ --disable-polkit
+ --disable-myhostname
+ $(use_enable gudev)
+ $(multilib_is_native_abi || echo "--disable-manpages")
+ --enable-split-usr
+ --with-html-dir=/usr/share/doc/${PF}/html
+ --without-python
+ --with-bashcompletiondir="$(get_bashcompdir)"
+ $(use firmware-loader && echo "--with-firmware-path=/lib/firmware/updates:/lib/firmware")
+ --with-rootprefix=
+ $(multilib_is_native_abi && echo "--with-rootlibdir=/$(get_libdir)")
+ )
+
+ # Use pregenerated copies when possible wrt #480924
+ [[ ${PV} = 9999* ]] || econf_args+=( --disable-manpages )
+
+ ECONF_SOURCE=${S} econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra
+ emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES
+
+ # Most of the parallel build problems were solved by >=sys-devel/make-3.82-r4,
+ # but not everything -- separate building of the binaries as a workaround,
+ # which will force internal libraries required for the helpers to be built
+ # early enough, like eg. libsystemd-shared.la
+ if multilib_is_native_abi; then
+ local lib_targets=( libudev.la )
+ use gudev && lib_targets+=( libgudev-1.0.la )
+ emake "${lib_targets[@]}"
+
+ local exec_targets=(
+ systemd-udevd
+ udevadm
+ )
+ emake "${exec_targets[@]}"
+
+ local helper_targets=(
+ ata_id
+ cdrom_id
+ collect
+ scsi_id
+ v4l_id
+ accelerometer
+ mtd_probe
+ )
+ emake "${helper_targets[@]}"
+
+ if [[ ${PV} = 9999* ]]; then
+ local man_targets=(
+ man/udev.conf.5
+ man/systemd.link.5
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ )
+ emake "${man_targets[@]}"
+ fi
+
+ if use doc; then
+ emake -C docs/libudev
+ use gudev && emake -C docs/gudev
+ fi
+ else
+ local lib_targets=( libudev.la )
+ use gudev && lib_targets+=( libgudev-1.0.la )
+ emake "${lib_targets[@]}"
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ local lib_LTLIBRARIES="libudev.la" \
+ pkgconfiglib_DATA="src/libudev/libudev.pc"
+
+ local targets=(
+ install-libLTLIBRARIES
+ install-includeHEADERS
+ install-libgudev_includeHEADERS
+ install-rootbinPROGRAMS
+ install-rootlibexecPROGRAMS
+ install-udevlibexecPROGRAMS
+ install-dist_udevconfDATA
+ install-dist_udevrulesDATA
+ install-girDATA
+ install-pkgconfiglibDATA
+ install-sharepkgconfigDATA
+ install-typelibsDATA
+ install-dist_docDATA
+ libudev-install-hook
+ install-directories-hook
+ install-dist_bashcompletionDATA
+ install-dist_networkDATA
+ )
+
+ if use gudev; then
+ lib_LTLIBRARIES+=" libgudev-1.0.la"
+ pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc"
+ fi
+
+ # add final values of variables:
+ targets+=(
+ rootlibexec_PROGRAMS=systemd-udevd
+ rootbin_PROGRAMS=udevadm
+ lib_LTLIBRARIES="${lib_LTLIBRARIES}"
+ pkgconfiglib_DATA="${pkgconfiglib_DATA}"
+ INSTALL_DIRS='$(sysconfdir)/udev/rules.d \
+ $(sysconfdir)/udev/hwdb.d \
+ $(sysconfdir)/systemd/network'
+ dist_bashcompletion_DATA="shell-completion/bash/udevadm"
+ dist_network_DATA="network/99-default.link"
+ )
+ emake -j1 DESTDIR="${D}" "${targets[@]}"
+
+ if use doc; then
+ emake -C docs/libudev DESTDIR="${D}" install
+ use gudev && emake -C docs/gudev DESTDIR="${D}" install
+ fi
+
+ if [[ ${PV} = 9999* ]]; then
+ doman man/{udev.conf.5,systemd.link.5,udev.7,systemd-udevd.service.8,udevadm.8}
+ else
+ doman "${S}"/man/{udev.conf.5,systemd.link.5,udev.7,systemd-udevd.service.8,udevadm.8}
+ fi
+ else
+ local lib_LTLIBRARIES="libudev.la" \
+ pkgconfiglib_DATA="src/libudev/libudev.pc" \
+ include_HEADERS="src/libudev/libudev.h"
+
+ local targets=(
+ install-libLTLIBRARIES
+ install-includeHEADERS
+ install-pkgconfiglibDATA
+ )
+
+ if use gudev; then
+ lib_LTLIBRARIES+=" libgudev-1.0.la"
+ pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc"
+ fi
+
+ targets+=(
+ lib_LTLIBRARIES="${lib_LTLIBRARIES}"
+ pkgconfiglib_DATA="${pkgconfiglib_DATA}"
+ include_HEADERS="${include_HEADERS}"
+ )
+ emake -j1 DESTDIR="${D}" "${targets[@]}"
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc TODO
+
+ prune_libtool_files --all
+ rm -f \
+ "${D}"/lib/udev/rules.d/99-systemd.rules \
+ "${D}"/usr/share/doc/${PF}/{LICENSE.*,GVARIANT-SERIALIZATION,DIFFERENCES,PORTING-DBUS1,sd-shutdown.h}
+
+ # see src_prepare() for content of 40-gentoo.rules
+ insinto /lib/udev/rules.d
+ doins "${T}"/40-gentoo.rules
+
+ # maintainer note: by not letting the upstream build-sys create the .so
+ # link, you also avoid a parallel make problem
+ mv "${D}"/usr/share/man/man8/systemd-udevd{.service,}.8
+
+ if ! [[ ${PV} = 9999* ]]; then
+ insinto /usr/share/doc/${PF}/html/gudev
+ doins "${S}"/docs/gudev/html/*
+
+ insinto /usr/share/doc/${PF}/html/libudev
+ doins "${S}"/docs/libudev/html/*
+ fi
+}
+
+pkg_preinst() {
+ local htmldir
+ for htmldir in gudev libudev; do
+ if [[ -d ${ROOT%/}/usr/share/gtk-doc/html/${htmldir} ]]; then
+ rm -rf "${ROOT%/}"/usr/share/gtk-doc/html/${htmldir}
+ fi
+ if [[ -d ${D}/usr/share/doc/${PF}/html/${htmldir} ]]; then
+ dosym ../../doc/${PF}/html/${htmldir} \
+ /usr/share/gtk-doc/html/${htmldir}
+ fi
+ done
+}
+
+pkg_postinst() {
+ mkdir -p "${ROOT%/}"/run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${ROOT%/}"/dev/loop 2>/dev/null
+ if [[ -d ${ROOT%/}/dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ local fstab="${ROOT%/}"/etc/fstab dev path fstype rest
+ while read -r dev path fstype rest; do
+ if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
+ ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
+ ewarn "filesystem. Otherwise udev won't be able to boot."
+ ewarn "See, https://bugs.gentoo.org/453186"
+ fi
+ done < "${fstab}"
+
+ if [[ -d ${ROOT%/}/usr/lib/udev ]]; then
+ ewarn
+ ewarn "Please re-emerge all packages on your system which install"
+ ewarn "rules and helpers in /usr/lib/udev. They should now be in"
+ ewarn "/lib/udev."
+ ewarn
+ ewarn "One way to do this is to run the following command:"
+ ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
+ ewarn "Note that qfile can be found in app-portage/portage-utils"
+ fi
+
+ local old_cd_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-cd.rules
+ local old_net_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-net.rules
+ for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
+ if [[ -f ${old_rules} ]]; then
+ ewarn
+ ewarn "File ${old_rules} is from old udev installation but if you still use it,"
+ ewarn "rename it to something else starting with 70- to silence this deprecation"
+ ewarn "warning."
+ fi
+ done
+
+ elog
+ elog "Starting from version >= 197 the new predictable network interface names are"
+ elog "used by default, see:"
+ elog "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ elog "https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c"
+ elog
+ elog "Example command to get the information for the new interface name before booting"
+ elog "(replace <ifname> with, for example, eth0):"
+ elog "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
+ elog
+ elog "You can use either kernel parameter \"net.ifnames=0\", create empty"
+ elog "file /etc/systemd/network/99-default.link, or symlink it to /dev/null"
+ elog "to disable the feature."
+
+ if has_version 'sys-apps/biosdevname'; then
+ ewarn
+ ewarn "You can replace the functionality of sys-apps/biosdevname which has been"
+ ewarn "detected to be installed with the new predictable network interface names."
+ fi
+
+ ewarn
+ ewarn "You need to restart udev as soon as possible to make the upgrade go"
+ ewarn "into effect."
+ ewarn "The method you use to do this depends on your init system."
+ if has_version 'sys-apps/openrc'; then
+ ewarn "For sys-apps/openrc users it is:"
+ ewarn "# /etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on udev on Gentoo, upgrading, writing udev rules, and"
+ elog "fixing known issues visit:"
+ elog "https://wiki.gentoo.org/wiki/Udev"
+ elog "https://wiki.gentoo.org/wiki/Udev/upgrade"
+
+ # If user has disabled 80-net-name-slot.rules using a empty file or a symlink to /dev/null,
+ # do the same for 80-net-setup-link.rules to keep the old behavior
+ local net_move=no
+ local net_name_slot_sym=no
+ local net_rules_path="${ROOT%/}"/etc/udev/rules.d
+ local net_name_slot="${net_rules_path}"/80-net-name-slot.rules
+ local net_setup_link="${net_rules_path}"/80-net-setup-link.rules
+ if [[ ! -e ${net_setup_link} ]]; then
+ [[ -f ${net_name_slot} && $(sed -e "/^#/d" -e "/^\W*$/d" ${net_name_slot} | wc -l) == 0 ]] && net_move=yes
+ if [[ -L ${net_name_slot} && $(readlink ${net_name_slot}) == /dev/null ]]; then
+ net_move=yes
+ net_name_slot_sym=yes
+ fi
+ fi
+ if [[ ${net_move} == yes ]]; then
+ ebegin "Copying ${net_name_slot} to ${net_setup_link}"
+
+ if [[ ${net_name_slot_sym} == yes ]]; then
+ ln -nfs /dev/null "${net_setup_link}"
+ else
+ cp "${net_name_slot}" "${net_setup_link}"
+ fi
+ eend $?
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # Update hwdb database in case the format is changed by udev version.
+ if has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+ # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+}
diff --git a/sys-fs/udev/udev-225-r1.ebuild b/sys-fs/udev/udev-225-r1.ebuild
new file mode 100644
index 000000000000..8108a9b3c74b
--- /dev/null
+++ b/sys-fs/udev/udev-225-r1.ebuild
@@ -0,0 +1,430 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools bash-completion-r1 eutils linux-info multilib multilib-minimal toolchain-funcs udev user versionator
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd"
+ inherit git-r3
+else
+ patchset=
+ SRC_URI="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> systemd-${PV}.tar.gz"
+ if [[ -n "${patchset}" ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~ssuominen/${P}-patches-${patchset}.tar.xz
+ https://dev.gentoo.org/~williamh/dist/${P}-patches-${patchset}.tar.xz"
+ fi
+ KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl +kmod selinux static-libs"
+
+RESTRICT="test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.24
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ acl? ( sys-apps/acl )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+# Force new make >= -r4 to skip some parallel build issues
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ >=dev-util/intltool-0.50
+ >=sys-apps/coreutils-8.16
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-3.9
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt"
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10"
+PDEPEND=">=sys-apps/hwids-20140304[udev]
+ >=sys-fs/udev-init-scripts-26"
+
+S=${WORKDIR}/systemd-${PV}
+
+check_default_rules() {
+ # Make sure there are no sudden changes to upstream rules file
+ # (more for my own needs than anything else ...)
+ local udev_rules_md5=b8ad860dccae0ca51656b33c405ea2ca
+ MD5=$(md5sum < "${S}"/rules/50-udev-default.rules)
+ MD5=${MD5/ -/}
+ if [[ ${MD5} != ${udev_rules_md5} ]]; then
+ eerror "50-udev-default.rules has been updated, please validate!"
+ eerror "md5sum: ${MD5}"
+ die "50-udev-default.rules has been updated, please validate!"
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~!FW_LOADER_USER_HELPER ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ }; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+
+ if kernel_is -lt 3 7; then
+ ewarn "Your running kernel is too old to have firmware loader and"
+ ewarn "this version of ${P} doesn't have userspace firmware loader"
+ ewarn "If you need firmware support, you need to upgrade kernel at least to 3.7"
+ fi
+ fi
+}
+
+src_prepare() {
+ if ! [[ ${PV} = 9999* ]]; then
+ # secure_getenv() disable for non-glibc systems wrt bug #443030
+ if ! [[ $(grep -r secure_getenv * | wc -l) -eq 25 ]]; then
+ eerror "The line count for secure_getenv() failed, see bug #443030"
+ die
+ fi
+ fi
+
+ # backport some patches
+ if [[ -n "${patchset}" ]]; then
+ EPATCH_SUFFIX=patch EPATCH_FORCE=yes epatch
+ fi
+
+ cat <<-EOF > "${T}"/40-gentoo.rules
+ # Gentoo specific floppy and usb groups
+ SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
+ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
+ EOF
+
+ # change rules back to group uucp instead of dialout for now wrt #454556
+ sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die
+
+ # stub out the am_path_libcrypt function
+ echo 'AC_DEFUN([AM_PATH_LIBGCRYPT],[:])' > m4/gcrypt.m4
+
+ # apply user patches
+ epatch_user
+
+ eautoreconf
+
+ if ! [[ ${PV} = 9999* ]]; then
+ check_default_rules
+ fi
+
+ # Restore possibility of running --enable-static wrt #472608
+ sed -i \
+ -e '/--enable-static is not supported by systemd/s:as_fn_error:echo:' \
+ configure || die
+
+ if ! use elibc_glibc; then #443030
+ echo '#define secure_getenv(x) NULL' >> config.h.in
+ sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
+ fi
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+ export cc_cv_CFLAGS__Werror_shadow=no #554454
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ --libdir=/usr/$(get_libdir)
+ --docdir=/usr/share/doc/${PF}
+ $(multilib_native_use_enable static-libs static)
+ --disable-nls
+ --disable-dbus
+ $(multilib_native_use_enable kmod)
+ --disable-xkbcommon
+ --disable-seccomp
+ $(multilib_native_use_enable selinux)
+ --disable-xz
+ --disable-lz4
+ --disable-pam
+ $(multilib_native_use_enable acl)
+ --disable-gcrypt
+ --disable-audit
+ --disable-libcryptsetup
+ --disable-qrencode
+ --disable-microhttpd
+ --disable-gnuefi
+ --disable-gnutls
+ --disable-libcurl
+ --disable-libidn
+ --disable-quotacheck
+ --disable-logind
+ --disable-polkit
+ --disable-myhostname
+ $(multilib_is_native_abi || echo "--disable-manpages")
+ --enable-split-usr
+ --without-python
+ --with-bashcompletiondir="$(get_bashcompdir)"
+ --with-rootprefix=
+ $(multilib_is_native_abi && echo "--with-rootlibdir=/$(get_libdir)")
+ --disable-elfutils
+ )
+
+ if ! multilib_is_native_abi; then
+ econf_args+=(
+ MOUNT_{CFLAGS,LIBS}=' '
+ )
+ fi
+
+ ECONF_SOURCE=${S} econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra
+ emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES
+
+ # Most of the parallel build problems were solved by >=sys-devel/make-3.82-r4,
+ # but not everything -- separate building of the binaries as a workaround,
+ # which will force internal libraries required for the helpers to be built
+ # early enough, like eg. libsystemd-shared.la
+ if multilib_is_native_abi; then
+ local lib_targets=( libudev.la )
+ emake "${lib_targets[@]}"
+
+ local exec_targets=(
+ systemd-udevd
+ udevadm
+ )
+ emake "${exec_targets[@]}"
+
+ local helper_targets=(
+ ata_id
+ cdrom_id
+ collect
+ scsi_id
+ v4l_id
+ mtd_probe
+ )
+ emake "${helper_targets[@]}"
+
+ local man_targets=(
+ man/udev.conf.5
+ man/systemd.link.5
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ )
+ emake "${man_targets[@]}"
+ else
+ local lib_targets=( libudev.la )
+ emake "${lib_targets[@]}"
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ local lib_LTLIBRARIES="libudev.la"
+ local pkgconfiglib_DATA="src/libudev/libudev.pc"
+
+ local targets=(
+ install-libLTLIBRARIES
+ install-includeHEADERS
+ install-rootbinPROGRAMS
+ install-rootlibexecPROGRAMS
+ install-udevlibexecPROGRAMS
+ install-dist_udevconfDATA
+ install-dist_udevrulesDATA
+ install-pkgconfiglibDATA
+ install-pkgconfigdataDATA
+ install-dist_docDATA
+ libudev-install-hook
+ install-directories-hook
+ install-dist_bashcompletionDATA
+ install-dist_networkDATA
+ )
+
+ # add final values of variables:
+ targets+=(
+ rootlibexec_PROGRAMS=systemd-udevd
+ rootbin_PROGRAMS=udevadm
+ lib_LTLIBRARIES="${lib_LTLIBRARIES}"
+ pkgconfiglib_DATA="${pkgconfiglib_DATA}"
+ pkgconfigdata_DATA="src/udev/udev.pc"
+ INSTALL_DIRS='$(sysconfdir)/udev/rules.d $(sysconfdir)/udev/hwdb.d $(sysconfdir)/systemd/network'
+ dist_bashcompletion_DATA="shell-completion/bash/udevadm"
+ dist_network_DATA="network/99-default.link"
+ )
+ emake -j1 DESTDIR="${D}" "${targets[@]}"
+ doman man/{udev.conf.5,systemd.link.5,udev.7,systemd-udevd.service.8,udevadm.8}
+ else
+ local lib_LTLIBRARIES="libudev.la"
+ local pkgconfiglib_DATA="src/libudev/libudev.pc"
+ local include_HEADERS="src/libudev/libudev.h"
+
+ local targets=(
+ install-libLTLIBRARIES
+ install-includeHEADERS
+ install-pkgconfiglibDATA
+ )
+
+ targets+=(
+ lib_LTLIBRARIES="${lib_LTLIBRARIES}"
+ pkgconfiglib_DATA="${pkgconfiglib_DATA}"
+ include_HEADERS="${include_HEADERS}"
+ )
+ emake -j1 DESTDIR="${D}" "${targets[@]}"
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc TODO
+
+ prune_libtool_files --all
+ rm -f "${D}"/lib/udev/rules.d/99-systemd.rules
+ rm -f "${D}"/usr/share/doc/${PF}/{LICENSE.*,GVARIANT-SERIALIZATION,DIFFERENCES,PORTING-DBUS1,sd-shutdown.h}
+
+ # see src_prepare() for content of 40-gentoo.rules
+ insinto /lib/udev/rules.d
+ doins "${T}"/40-gentoo.rules
+
+ # maintainer note: by not letting the upstream build-sys create the .so
+ # link, you also avoid a parallel make problem
+ mv "${D}"/usr/share/man/man8/systemd-udevd{.service,}.8
+}
+
+pkg_postinst() {
+ mkdir -p "${ROOT%/}"/run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${ROOT%/}"/dev/loop 2>/dev/null
+ if [[ -d ${ROOT%/}/dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ local fstab="${ROOT%/}"/etc/fstab dev path fstype rest
+ while read -r dev path fstype rest; do
+ if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
+ ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
+ ewarn "filesystem. Otherwise udev won't be able to boot."
+ ewarn "See, https://bugs.gentoo.org/453186"
+ fi
+ done < "${fstab}"
+
+ if [[ -d ${ROOT%/}/usr/lib/udev ]]; then
+ ewarn
+ ewarn "Please re-emerge all packages on your system which install"
+ ewarn "rules and helpers in /usr/lib/udev. They should now be in"
+ ewarn "/lib/udev."
+ ewarn
+ ewarn "One way to do this is to run the following command:"
+ ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
+ ewarn "Note that qfile can be found in app-portage/portage-utils"
+ fi
+
+ local old_cd_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-cd.rules
+ local old_net_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-net.rules
+ for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
+ if [[ -f ${old_rules} ]]; then
+ ewarn
+ ewarn "File ${old_rules} is from old udev installation but if you still use it,"
+ ewarn "rename it to something else starting with 70- to silence this deprecation"
+ ewarn "warning."
+ fi
+ done
+
+ elog
+ elog "Starting from version >= 197 the new predictable network interface names are"
+ elog "used by default, see:"
+ elog "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ elog "https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c"
+ elog
+ elog "Example command to get the information for the new interface name before booting"
+ elog "(replace <ifname> with, for example, eth0):"
+ elog "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
+ elog
+ elog "You can use either kernel parameter \"net.ifnames=0\", create empty"
+ elog "file /etc/systemd/network/99-default.link, or symlink it to /dev/null"
+ elog "to disable the feature."
+
+ if has_version 'sys-apps/biosdevname'; then
+ ewarn
+ ewarn "You can replace the functionality of sys-apps/biosdevname which has been"
+ ewarn "detected to be installed with the new predictable network interface names."
+ fi
+
+ ewarn
+ ewarn "You need to restart udev as soon as possible to make the upgrade go"
+ ewarn "into effect."
+ ewarn "The method you use to do this depends on your init system."
+ if has_version 'sys-apps/openrc'; then
+ ewarn "For sys-apps/openrc users it is:"
+ ewarn "# /etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on udev on Gentoo, upgrading, writing udev rules, and"
+ elog "fixing known issues visit:"
+ elog "https://wiki.gentoo.org/wiki/Udev"
+ elog "https://wiki.gentoo.org/wiki/Udev/upgrade"
+
+ # If user has disabled 80-net-name-slot.rules using a empty file or a symlink to /dev/null,
+ # do the same for 80-net-setup-link.rules to keep the old behavior
+ local net_move=no
+ local net_name_slot_sym=no
+ local net_rules_path="${ROOT%/}"/etc/udev/rules.d
+ local net_name_slot="${net_rules_path}"/80-net-name-slot.rules
+ local net_setup_link="${net_rules_path}"/80-net-setup-link.rules
+ if [[ ! -e ${net_setup_link} ]]; then
+ [[ -f ${net_name_slot} && $(sed -e "/^#/d" -e "/^\W*$/d" ${net_name_slot} | wc -l) == 0 ]] && net_move=yes
+ if [[ -L ${net_name_slot} && $(readlink ${net_name_slot}) == /dev/null ]]; then
+ net_move=yes
+ net_name_slot_sym=yes
+ fi
+ fi
+ if [[ ${net_move} == yes ]]; then
+ ebegin "Copying ${net_name_slot} to ${net_setup_link}"
+
+ if [[ ${net_name_slot_sym} == yes ]]; then
+ ln -nfs /dev/null "${net_setup_link}"
+ else
+ cp "${net_name_slot}" "${net_setup_link}"
+ fi
+ eend $?
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # Update hwdb database in case the format is changed by udev version.
+ if has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+ # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+}
diff --git a/sys-fs/udev/udev-233.ebuild b/sys-fs/udev/udev-233.ebuild
new file mode 100644
index 000000000000..c42ecc2c0be4
--- /dev/null
+++ b/sys-fs/udev/udev-233.ebuild
@@ -0,0 +1,408 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools bash-completion-r1 linux-info multilib-minimal toolchain-funcs udev user versionator
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> systemd-${PV}.tar.gz"
+ KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl +kmod selinux"
+
+RESTRICT="test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.27.1[${MULTILIB_USEDEP}]
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ acl? ( sys-apps/acl )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+# Force new make >= -r4 to skip some parallel build issues
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ >=dev-util/intltool-0.50
+ >=sys-apps/coreutils-8.16
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-devel/make-3.82-r4
+ >=sys-kernel/linux-headers-3.9
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt"
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10"
+PDEPEND=">=sys-apps/hwids-20140304[udev]
+ >=sys-fs/udev-init-scripts-26"
+
+S=${WORKDIR}/systemd-${PV}
+
+PATCHES=(
+ "${FILESDIR}"/233-format-warnings.patch
+)
+
+check_default_rules() {
+ # Make sure there are no sudden changes to upstream rules file
+ # (more for my own needs than anything else ...)
+ local udev_rules_md5=c6ee9def75c5c082bf083a7248991935
+ MD5=$(md5sum < "${S}"/rules/50-udev-default.rules)
+ MD5=${MD5/ -/}
+ if [[ ${MD5} != ${udev_rules_md5} ]]; then
+ eerror "50-udev-default.rules has been updated, please validate!"
+ eerror "md5sum: ${MD5}"
+ die "50-udev-default.rules has been updated, please validate!"
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~!FW_LOADER_USER_HELPER ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ }; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+
+ if kernel_is -lt 3 7; then
+ ewarn "Your running kernel is too old to have firmware loader and"
+ ewarn "this version of ${P} doesn't have userspace firmware loader"
+ ewarn "If you need firmware support, you need to upgrade kernel at least to 3.7"
+ fi
+ fi
+}
+
+src_prepare() {
+ if ! [[ ${PV} = 9999* ]]; then
+ # secure_getenv() disable for non-glibc systems wrt bug #443030
+ if ! [[ $(grep -r secure_getenv * | wc -l) -eq 30 ]]; then
+ eerror "The line count for secure_getenv() failed, see bug #443030"
+ die
+ fi
+ fi
+
+ cat <<-EOF > "${T}"/40-gentoo.rules
+ # Gentoo specific floppy and usb groups
+ ACTION=="add", SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
+ ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
+ EOF
+
+ # change rules back to group uucp instead of dialout for now wrt #454556
+ sed -i -e 's/GROUP="dialout"/GROUP="uucp"/' rules/*.rules || die
+
+ # stub out the am_path_libcrypt function
+ echo 'AC_DEFUN([AM_PATH_LIBGCRYPT],[:])' > m4/gcrypt.m4
+
+ default
+
+ eautoreconf
+
+ if ! [[ ${PV} = 9999* ]]; then
+ check_default_rules
+ fi
+
+ if ! use elibc_glibc; then #443030
+ echo '#define secure_getenv(x) NULL' >> config.h.in
+ sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
+ fi
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ tc-export CC #463846
+ export cc_cv_CFLAGS__flto=no #502950
+ export cc_cv_CFLAGS__Werror_shadow=no #554454
+ export cc_cv_LDFLAGS__Wl__fuse_ld_gold=no #573874
+
+ # Keep sorted by ./configure --help and only pass --disable flags
+ # when *required* to avoid external deps or unnecessary compile
+ local econf_args
+ econf_args=(
+ --libdir=/usr/$(get_libdir)
+ --docdir=/usr/share/doc/${PF}
+ --disable-nls
+ --disable-dbus
+ $(multilib_native_use_enable kmod)
+ --disable-xkbcommon
+ --disable-seccomp
+ $(multilib_native_use_enable selinux)
+ --disable-xz
+ --disable-lz4
+ --disable-pam
+ $(multilib_native_use_enable acl)
+ --disable-gcrypt
+ --disable-audit
+ --disable-libcryptsetup
+ --disable-qrencode
+ --disable-microhttpd
+ --disable-gnuefi
+ --disable-gnutls
+ --disable-libcurl
+ --disable-libidn
+ --disable-quotacheck
+ --disable-logind
+ --disable-polkit
+ --disable-myhostname
+ $(multilib_is_native_abi || echo "--disable-manpages")
+ --enable-split-usr
+ --without-python
+ --with-bashcompletiondir="$(get_bashcompdir)"
+ --with-rootprefix=
+ $(multilib_is_native_abi && echo "--with-rootlibdir=/$(get_libdir)")
+ --disable-elfutils
+ )
+
+ if ! multilib_is_native_abi; then
+ econf_args+=(
+ MOUNT_{CFLAGS,LIBS}=' '
+ )
+ fi
+
+ ECONF_SOURCE=${S} econf "${econf_args[@]}"
+}
+
+multilib_src_compile() {
+ echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra
+ emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES
+
+ # Most of the parallel build problems were solved by >=sys-devel/make-3.82-r4,
+ # but not everything -- separate building of the binaries as a workaround,
+ # which will force internal libraries required for the helpers to be built
+ # early enough, like eg. libsystemd-shared.la
+ if multilib_is_native_abi; then
+ local lib_targets=( libudev.la )
+ emake "${lib_targets[@]}"
+
+ local exec_targets=(
+ systemd-udevd
+ udevadm
+ )
+ emake "${exec_targets[@]}"
+
+ local helper_targets=(
+ ata_id
+ cdrom_id
+ collect
+ scsi_id
+ v4l_id
+ mtd_probe
+ )
+ emake "${helper_targets[@]}"
+
+ local man_targets=(
+ man/udev.conf.5
+ man/systemd.link.5
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ )
+ emake "${man_targets[@]}"
+ else
+ local lib_targets=( libudev.la )
+ emake "${lib_targets[@]}"
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ local targets=(
+ install-includeHEADERS
+ install-rootbinPROGRAMS
+ install-rootlibLTLIBRARIES
+ install-rootlibexecPROGRAMS
+ install-udevlibexecPROGRAMS
+ install-dist_udevconfDATA
+ install-dist_udevrulesDATA
+ install-pkgconfiglibDATA
+ install-pkgconfigdataDATA
+ install-dist_docDATA
+ install-directories-hook
+ install-dist_bashcompletionDATA
+ install-dist_networkDATA
+ rootlibexec_PROGRAMS=systemd-udevd
+ rootbin_PROGRAMS=udevadm
+ rootlib_LTLIBRARIES="libudev.la"
+ pkgconfiglib_DATA="src/libudev/libudev.pc"
+ pkgconfigdata_DATA="src/udev/udev.pc"
+ INSTALL_DIRS='$(sysconfdir)/udev/rules.d $(sysconfdir)/udev/hwdb.d $(sysconfdir)/systemd/network'
+ dist_bashcompletion_DATA="shell-completion/bash/udevadm"
+ dist_network_DATA="network/99-default.link"
+ )
+ emake -j1 DESTDIR="${D}" "${targets[@]}"
+ doman man/{udev.conf.5,systemd.link.5,udev.7,systemd-udevd.service.8,udevadm.8}
+
+ # Compatibility symlink for software that looks for libudev.so
+ # without using pkg-config
+ dosym ../../$(get_libdir)/libudev.so.1 \
+ /usr/$(get_libdir)/libudev.so
+ else
+ local targets=(
+ install-libLTLIBRARIES
+ install-includeHEADERS
+ install-pkgconfiglibDATA
+ lib_LTLIBRARIES="libudev.la"
+ pkgconfiglib_DATA="src/libudev/libudev.pc"
+ include_HEADERS="src/libudev/libudev.h"
+ )
+
+ emake -j1 DESTDIR="${D}" "${targets[@]}"
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc TODO
+
+ prune_libtool_files --all
+ rm -f "${D}"/lib/udev/rules.d/99-systemd.rules
+ rm -f "${D}"/usr/share/doc/${PF}/{LICENSE.*,GVARIANT-SERIALIZATION,DIFFERENCES,PORTING-DBUS1,sd-shutdown.h}
+
+ # see src_prepare() for content of 40-gentoo.rules
+ insinto /lib/udev/rules.d
+ doins "${T}"/40-gentoo.rules
+
+ # maintainer note: by not letting the upstream build-sys create the .so
+ # link, you also avoid a parallel make problem
+ mv "${D}"/usr/share/man/man8/systemd-udevd{.service,}.8
+}
+
+pkg_postinst() {
+ mkdir -p "${ROOT%/}"/run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${ROOT%/}"/dev/loop 2>/dev/null
+ if [[ -d ${ROOT%/}/dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ local fstab="${ROOT%/}"/etc/fstab dev path fstype rest
+ while read -r dev path fstype rest; do
+ if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
+ ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
+ ewarn "filesystem. Otherwise udev won't be able to boot."
+ ewarn "See, https://bugs.gentoo.org/453186"
+ fi
+ done < "${fstab}"
+
+ if [[ -d ${ROOT%/}/usr/lib/udev ]]; then
+ ewarn
+ ewarn "Please re-emerge all packages on your system which install"
+ ewarn "rules and helpers in /usr/lib/udev. They should now be in"
+ ewarn "/lib/udev."
+ ewarn
+ ewarn "One way to do this is to run the following command:"
+ ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
+ ewarn "Note that qfile can be found in app-portage/portage-utils"
+ fi
+
+ local old_cd_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-cd.rules
+ local old_net_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-net.rules
+ for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
+ if [[ -f ${old_rules} ]]; then
+ ewarn
+ ewarn "File ${old_rules} is from old udev installation but if you still use it,"
+ ewarn "rename it to something else starting with 70- to silence this deprecation"
+ ewarn "warning."
+ fi
+ done
+
+ elog
+ elog "Starting from version >= 197 the new predictable network interface names are"
+ elog "used by default, see:"
+ elog "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ elog "https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c"
+ elog
+ elog "Example command to get the information for the new interface name before booting"
+ elog "(replace <ifname> with, for example, eth0):"
+ elog "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
+ elog
+ elog "You can use either kernel parameter \"net.ifnames=0\", create empty"
+ elog "file /etc/systemd/network/99-default.link, or symlink it to /dev/null"
+ elog "to disable the feature."
+
+ if has_version 'sys-apps/biosdevname'; then
+ ewarn
+ ewarn "You can replace the functionality of sys-apps/biosdevname which has been"
+ ewarn "detected to be installed with the new predictable network interface names."
+ fi
+
+ ewarn
+ ewarn "You need to restart udev as soon as possible to make the upgrade go"
+ ewarn "into effect."
+ ewarn "The method you use to do this depends on your init system."
+ if has_version 'sys-apps/openrc'; then
+ ewarn "For sys-apps/openrc users it is:"
+ ewarn "# /etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on udev on Gentoo, upgrading, writing udev rules, and"
+ elog "fixing known issues visit:"
+ elog "https://wiki.gentoo.org/wiki/Udev"
+ elog "https://wiki.gentoo.org/wiki/Udev/upgrade"
+
+ # If user has disabled 80-net-name-slot.rules using a empty file or a symlink to /dev/null,
+ # do the same for 80-net-setup-link.rules to keep the old behavior
+ local net_move=no
+ local net_name_slot_sym=no
+ local net_rules_path="${ROOT%/}"/etc/udev/rules.d
+ local net_name_slot="${net_rules_path}"/80-net-name-slot.rules
+ local net_setup_link="${net_rules_path}"/80-net-setup-link.rules
+ if [[ ! -e ${net_setup_link} ]]; then
+ [[ -f ${net_name_slot} && $(sed -e "/^#/d" -e "/^\W*$/d" ${net_name_slot} | wc -l) == 0 ]] && net_move=yes
+ if [[ -L ${net_name_slot} && $(readlink ${net_name_slot}) == /dev/null ]]; then
+ net_move=yes
+ net_name_slot_sym=yes
+ fi
+ fi
+ if [[ ${net_move} == yes ]]; then
+ ebegin "Copying ${net_name_slot} to ${net_setup_link}"
+
+ if [[ ${net_name_slot_sym} == yes ]]; then
+ ln -nfs /dev/null "${net_setup_link}"
+ else
+ cp "${net_name_slot}" "${net_setup_link}"
+ fi
+ eend $?
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # Update hwdb database in case the format is changed by udev version.
+ if has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+ # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+}
diff --git a/sys-fs/udev/udev-234-r1.ebuild b/sys-fs/udev/udev-234-r1.ebuild
new file mode 100644
index 000000000000..1d98a8ca3990
--- /dev/null
+++ b/sys-fs/udev/udev-234-r1.ebuild
@@ -0,0 +1,329 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 linux-info meson ninja-utils multilib-minimal toolchain-funcs udev user versionator
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/systemd/systemd.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> systemd-${PV}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl +kmod selinux"
+
+RESTRICT="test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.27.1[${MULTILIB_USEDEP}]
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ acl? ( sys-apps/acl )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ >=dev-util/intltool-0.50
+ >=dev-util/meson-0.40.0
+ dev-util/ninja
+ >=sys-apps/coreutils-8.16
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-kernel/linux-headers-3.9
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt"
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10"
+PDEPEND=">=sys-apps/hwids-20140304[udev]
+ >=sys-fs/udev-init-scripts-26"
+
+S=${WORKDIR}/systemd-${PV}
+EGIT_CHECKOUT_DIR=${S}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~!FW_LOADER_USER_HELPER ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ }; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+
+ if kernel_is -lt 3 7; then
+ ewarn "Your running kernel is too old to have firmware loader and"
+ ewarn "this version of ${P} doesn't have userspace firmware loader"
+ ewarn "If you need firmware support, you need to upgrade kernel at least to 3.7"
+ fi
+ fi
+}
+
+src_prepare() {
+ if ! [[ ${PV} = 9999* ]]; then
+ # secure_getenv() disable for non-glibc systems wrt bug #443030
+ if ! [[ $(grep -r secure_getenv * | wc -l) -eq 27 ]]; then
+ eerror "The line count for secure_getenv() failed, see bug #443030"
+ die
+ fi
+ fi
+
+ cat <<-EOF > "${T}"/40-gentoo.rules
+ # Gentoo specific floppy and usb groups
+ ACTION=="add", SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
+ ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
+ EOF
+
+ local PATCHES=(
+ "${FILESDIR}/234-uucp-group.patch"
+ )
+
+ default
+
+ if ! use elibc_glibc; then #443030
+ echo '#define secure_getenv(x) NULL' >> config.h.in
+ sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
+ fi
+}
+
+meson_multilib_native_use() {
+ if multilib_is_native_abi && use "$1"; then
+ echo true
+ else
+ echo false
+ fi
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Dacl=$(meson_multilib_native_use acl)
+ -Defi=false
+ -Dkmod=$(meson_multilib_native_use kmod)
+ -Dselinux=$(meson_multilib_native_use selinux)
+ -Dlink-udev-shared=false
+ -Dsplit-usr=true
+ )
+ meson_src_configure
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ # meson creates this link
+ local libudev=$(readlink src/libudev/libudev.so.1)
+
+ local targets=(
+ src/libudev/${libudev}
+ )
+ if multilib_is_native_abi; then
+ targets+=(
+ systemd-udevd
+ udevadm
+ src/udev/ata_id
+ src/udev/cdrom_id
+ src/udev/collect
+ src/udev/mtd_probe
+ src/udev/scsi_id
+ src/udev/v4l_id
+ man/udev.conf.5
+ man/systemd.link.5
+ man/hwdb.7
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ )
+ fi
+ eninja "${targets[@]}"
+}
+
+multilib_src_install() {
+ local libudev=$(readlink src/libudev/libudev.so.1)
+
+ into /
+ dolib.so src/libudev/{${libudev},libudev.so.1,libudev.so}
+
+ insinto "/usr/$(get_libdir)/pkgconfig"
+ doins src/libudev/libudev.pc
+
+ if multilib_is_native_abi; then
+ into /
+ dobin udevadm
+
+ exeinto /lib/systemd
+ doexe systemd-udevd
+
+ exeinto /lib/udev
+ doexe src/udev/{ata_id,cdrom_id,collect,mtd_probe,scsi_id,v4l_id}
+
+ rm rules/99-systemd.rules || die
+ insinto /lib/udev/rules.d
+ doins rules/*.rules
+
+ insinto /usr/share/pkgconfig
+ doins src/udev/udev.pc
+
+ mv man/systemd-udevd.service.8 man/systemd-udevd.8 || die
+ rm man/systemd-udevd-{control,kernel}.socket.8 || die
+ doman man/*.[0-9]
+ fi
+}
+
+multilib_src_install_all() {
+ doheader src/libudev/libudev.h
+
+ insinto /etc/udev
+ doins src/udev/udev.conf
+
+ insinto /lib/systemd/network
+ doins network/99-default.link
+
+ # see src_prepare() for content of 40-gentoo.rules
+ insinto /lib/udev/rules.d
+ doins "${T}"/40-gentoo.rules
+ doins "${S}"/rules/*.rules
+
+ dobashcomp shell-completion/bash/udevadm
+
+ insinto /usr/share/zsh/site-functions
+ doins shell-completion/zsh/_udevadm
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ mkdir -p "${ROOT%/}"/run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${ROOT%/}"/dev/loop 2>/dev/null
+ if [[ -d ${ROOT%/}/dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ local fstab="${ROOT%/}"/etc/fstab dev path fstype rest
+ while read -r dev path fstype rest; do
+ if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
+ ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
+ ewarn "filesystem. Otherwise udev won't be able to boot."
+ ewarn "See, https://bugs.gentoo.org/453186"
+ fi
+ done < "${fstab}"
+
+ if [[ -d ${ROOT%/}/usr/lib/udev ]]; then
+ ewarn
+ ewarn "Please re-emerge all packages on your system which install"
+ ewarn "rules and helpers in /usr/lib/udev. They should now be in"
+ ewarn "/lib/udev."
+ ewarn
+ ewarn "One way to do this is to run the following command:"
+ ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
+ ewarn "Note that qfile can be found in app-portage/portage-utils"
+ fi
+
+ local old_cd_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-cd.rules
+ local old_net_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-net.rules
+ for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
+ if [[ -f ${old_rules} ]]; then
+ ewarn
+ ewarn "File ${old_rules} is from old udev installation but if you still use it,"
+ ewarn "rename it to something else starting with 70- to silence this deprecation"
+ ewarn "warning."
+ fi
+ done
+
+ elog
+ elog "Starting from version >= 197 the new predictable network interface names are"
+ elog "used by default, see:"
+ elog "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ elog "https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c"
+ elog
+ elog "Example command to get the information for the new interface name before booting"
+ elog "(replace <ifname> with, for example, eth0):"
+ elog "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
+ elog
+ elog "You can use either kernel parameter \"net.ifnames=0\", create empty"
+ elog "file /etc/systemd/network/99-default.link, or symlink it to /dev/null"
+ elog "to disable the feature."
+
+ if has_version 'sys-apps/biosdevname'; then
+ ewarn
+ ewarn "You can replace the functionality of sys-apps/biosdevname which has been"
+ ewarn "detected to be installed with the new predictable network interface names."
+ fi
+
+ ewarn
+ ewarn "You need to restart udev as soon as possible to make the upgrade go"
+ ewarn "into effect."
+ ewarn "The method you use to do this depends on your init system."
+ if has_version 'sys-apps/openrc'; then
+ ewarn "For sys-apps/openrc users it is:"
+ ewarn "# /etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on udev on Gentoo, upgrading, writing udev rules, and"
+ elog "fixing known issues visit:"
+ elog "https://wiki.gentoo.org/wiki/Udev"
+ elog "https://wiki.gentoo.org/wiki/Udev/upgrade"
+
+ # If user has disabled 80-net-name-slot.rules using a empty file or a symlink to /dev/null,
+ # do the same for 80-net-setup-link.rules to keep the old behavior
+ local net_move=no
+ local net_name_slot_sym=no
+ local net_rules_path="${ROOT%/}"/etc/udev/rules.d
+ local net_name_slot="${net_rules_path}"/80-net-name-slot.rules
+ local net_setup_link="${net_rules_path}"/80-net-setup-link.rules
+ if [[ ! -e ${net_setup_link} ]]; then
+ [[ -f ${net_name_slot} && $(sed -e "/^#/d" -e "/^\W*$/d" ${net_name_slot} | wc -l) == 0 ]] && net_move=yes
+ if [[ -L ${net_name_slot} && $(readlink ${net_name_slot}) == /dev/null ]]; then
+ net_move=yes
+ net_name_slot_sym=yes
+ fi
+ fi
+ if [[ ${net_move} == yes ]]; then
+ ebegin "Copying ${net_name_slot} to ${net_setup_link}"
+
+ if [[ ${net_name_slot_sym} == yes ]]; then
+ ln -nfs /dev/null "${net_setup_link}"
+ else
+ cp "${net_name_slot}" "${net_setup_link}"
+ fi
+ eend $?
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # Update hwdb database in case the format is changed by udev version.
+ if has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+ # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+}
diff --git a/sys-fs/udev/udev-235.ebuild b/sys-fs/udev/udev-235.ebuild
new file mode 100644
index 000000000000..1853b357d182
--- /dev/null
+++ b/sys-fs/udev/udev-235.ebuild
@@ -0,0 +1,329 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 linux-info meson ninja-utils multilib-minimal toolchain-funcs udev user versionator
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/systemd/systemd.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> systemd-${PV}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl +kmod selinux"
+
+RESTRICT="test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.30[${MULTILIB_USEDEP}]
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ acl? ( sys-apps/acl )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ >=dev-util/intltool-0.50
+ >=dev-util/meson-0.40.0
+ dev-util/ninja
+ >=sys-apps/coreutils-8.16
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-kernel/linux-headers-3.9
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt"
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10"
+PDEPEND=">=sys-apps/hwids-20140304[udev]
+ >=sys-fs/udev-init-scripts-26"
+
+S=${WORKDIR}/systemd-${PV}
+EGIT_CHECKOUT_DIR=${S}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~!FW_LOADER_USER_HELPER ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ }; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+
+ if kernel_is -lt 3 7; then
+ ewarn "Your running kernel is too old to have firmware loader and"
+ ewarn "this version of ${P} doesn't have userspace firmware loader"
+ ewarn "If you need firmware support, you need to upgrade kernel at least to 3.7"
+ fi
+ fi
+}
+
+src_prepare() {
+ if ! [[ ${PV} = 9999* ]]; then
+ # secure_getenv() disable for non-glibc systems wrt bug #443030
+ if ! [[ $(grep -r secure_getenv * | wc -l) -eq 27 ]]; then
+ eerror "The line count for secure_getenv() failed, see bug #443030"
+ die
+ fi
+ fi
+
+ cat <<-EOF > "${T}"/40-gentoo.rules
+ # Gentoo specific floppy and usb groups
+ ACTION=="add", SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
+ ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
+ EOF
+
+ local PATCHES=(
+ "${FILESDIR}/234-uucp-group.patch"
+ )
+
+ default
+
+ if ! use elibc_glibc; then #443030
+ echo '#define secure_getenv(x) NULL' >> config.h.in
+ sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
+ fi
+}
+
+meson_multilib_native_use() {
+ if multilib_is_native_abi && use "$1"; then
+ echo true
+ else
+ echo false
+ fi
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Dacl=$(meson_multilib_native_use acl)
+ -Defi=false
+ -Dkmod=$(meson_multilib_native_use kmod)
+ -Dselinux=$(meson_multilib_native_use selinux)
+ -Dlink-udev-shared=false
+ -Dsplit-usr=true
+ )
+ meson_src_configure
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ # meson creates this link
+ local libudev=$(readlink src/libudev/libudev.so.1)
+
+ local targets=(
+ src/libudev/${libudev}
+ )
+ if multilib_is_native_abi; then
+ targets+=(
+ systemd-udevd
+ udevadm
+ src/udev/ata_id
+ src/udev/cdrom_id
+ src/udev/collect
+ src/udev/mtd_probe
+ src/udev/scsi_id
+ src/udev/v4l_id
+ man/udev.conf.5
+ man/systemd.link.5
+ man/hwdb.7
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ )
+ fi
+ eninja "${targets[@]}"
+}
+
+multilib_src_install() {
+ local libudev=$(readlink src/libudev/libudev.so.1)
+
+ into /
+ dolib.so src/libudev/{${libudev},libudev.so.1,libudev.so}
+
+ insinto "/usr/$(get_libdir)/pkgconfig"
+ doins src/libudev/libudev.pc
+
+ if multilib_is_native_abi; then
+ into /
+ dobin udevadm
+
+ exeinto /lib/systemd
+ doexe systemd-udevd
+
+ exeinto /lib/udev
+ doexe src/udev/{ata_id,cdrom_id,collect,mtd_probe,scsi_id,v4l_id}
+
+ rm rules/99-systemd.rules || die
+ insinto /lib/udev/rules.d
+ doins rules/*.rules
+
+ insinto /usr/share/pkgconfig
+ doins src/udev/udev.pc
+
+ mv man/systemd-udevd.service.8 man/systemd-udevd.8 || die
+ rm man/systemd-udevd-{control,kernel}.socket.8 || die
+ doman man/*.[0-9]
+ fi
+}
+
+multilib_src_install_all() {
+ doheader src/libudev/libudev.h
+
+ insinto /etc/udev
+ doins src/udev/udev.conf
+
+ insinto /lib/systemd/network
+ doins network/99-default.link
+
+ # see src_prepare() for content of 40-gentoo.rules
+ insinto /lib/udev/rules.d
+ doins "${T}"/40-gentoo.rules
+ doins "${S}"/rules/*.rules
+
+ dobashcomp shell-completion/bash/udevadm
+
+ insinto /usr/share/zsh/site-functions
+ doins shell-completion/zsh/_udevadm
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ mkdir -p "${ROOT%/}"/run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${ROOT%/}"/dev/loop 2>/dev/null
+ if [[ -d ${ROOT%/}/dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ local fstab="${ROOT%/}"/etc/fstab dev path fstype rest
+ while read -r dev path fstype rest; do
+ if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
+ ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
+ ewarn "filesystem. Otherwise udev won't be able to boot."
+ ewarn "See, https://bugs.gentoo.org/453186"
+ fi
+ done < "${fstab}"
+
+ if [[ -d ${ROOT%/}/usr/lib/udev ]]; then
+ ewarn
+ ewarn "Please re-emerge all packages on your system which install"
+ ewarn "rules and helpers in /usr/lib/udev. They should now be in"
+ ewarn "/lib/udev."
+ ewarn
+ ewarn "One way to do this is to run the following command:"
+ ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
+ ewarn "Note that qfile can be found in app-portage/portage-utils"
+ fi
+
+ local old_cd_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-cd.rules
+ local old_net_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-net.rules
+ for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
+ if [[ -f ${old_rules} ]]; then
+ ewarn
+ ewarn "File ${old_rules} is from old udev installation but if you still use it,"
+ ewarn "rename it to something else starting with 70- to silence this deprecation"
+ ewarn "warning."
+ fi
+ done
+
+ elog
+ elog "Starting from version >= 197 the new predictable network interface names are"
+ elog "used by default, see:"
+ elog "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ elog "https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c"
+ elog
+ elog "Example command to get the information for the new interface name before booting"
+ elog "(replace <ifname> with, for example, eth0):"
+ elog "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
+ elog
+ elog "You can use either kernel parameter \"net.ifnames=0\", create empty"
+ elog "file /etc/systemd/network/99-default.link, or symlink it to /dev/null"
+ elog "to disable the feature."
+
+ if has_version 'sys-apps/biosdevname'; then
+ ewarn
+ ewarn "You can replace the functionality of sys-apps/biosdevname which has been"
+ ewarn "detected to be installed with the new predictable network interface names."
+ fi
+
+ ewarn
+ ewarn "You need to restart udev as soon as possible to make the upgrade go"
+ ewarn "into effect."
+ ewarn "The method you use to do this depends on your init system."
+ if has_version 'sys-apps/openrc'; then
+ ewarn "For sys-apps/openrc users it is:"
+ ewarn "# /etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on udev on Gentoo, upgrading, writing udev rules, and"
+ elog "fixing known issues visit:"
+ elog "https://wiki.gentoo.org/wiki/Udev"
+ elog "https://wiki.gentoo.org/wiki/Udev/upgrade"
+
+ # If user has disabled 80-net-name-slot.rules using a empty file or a symlink to /dev/null,
+ # do the same for 80-net-setup-link.rules to keep the old behavior
+ local net_move=no
+ local net_name_slot_sym=no
+ local net_rules_path="${ROOT%/}"/etc/udev/rules.d
+ local net_name_slot="${net_rules_path}"/80-net-name-slot.rules
+ local net_setup_link="${net_rules_path}"/80-net-setup-link.rules
+ if [[ ! -e ${net_setup_link} ]]; then
+ [[ -f ${net_name_slot} && $(sed -e "/^#/d" -e "/^\W*$/d" ${net_name_slot} | wc -l) == 0 ]] && net_move=yes
+ if [[ -L ${net_name_slot} && $(readlink ${net_name_slot}) == /dev/null ]]; then
+ net_move=yes
+ net_name_slot_sym=yes
+ fi
+ fi
+ if [[ ${net_move} == yes ]]; then
+ ebegin "Copying ${net_name_slot} to ${net_setup_link}"
+
+ if [[ ${net_name_slot_sym} == yes ]]; then
+ ln -nfs /dev/null "${net_setup_link}"
+ else
+ cp "${net_name_slot}" "${net_setup_link}"
+ fi
+ eend $?
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # Update hwdb database in case the format is changed by udev version.
+ if has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+ # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+}
diff --git a/sys-fs/udev/udev-9999.ebuild b/sys-fs/udev/udev-9999.ebuild
new file mode 100644
index 000000000000..1853b357d182
--- /dev/null
+++ b/sys-fs/udev/udev-9999.ebuild
@@ -0,0 +1,329 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 linux-info meson ninja-utils multilib-minimal toolchain-funcs udev user versionator
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://github.com/systemd/systemd.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/systemd/systemd/archive/v${PV}.tar.gz -> systemd-${PV}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/systemd"
+
+LICENSE="LGPL-2.1 MIT GPL-2"
+SLOT="0"
+IUSE="acl +kmod selinux"
+
+RESTRICT="test"
+
+COMMON_DEPEND=">=sys-apps/util-linux-2.30[${MULTILIB_USEDEP}]
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ acl? ( sys-apps/acl )
+ kmod? ( >=sys-apps/kmod-16 )
+ selinux? ( >=sys-libs/libselinux-2.1.9 )
+ !<sys-libs/glibc-2.11
+ !sys-apps/gentoo-systemd-integration
+ !sys-apps/systemd
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20130224-r7
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/gperf
+ >=dev-util/intltool-0.50
+ >=dev-util/meson-0.40.0
+ dev-util/ninja
+ >=sys-apps/coreutils-8.16
+ virtual/os-headers
+ virtual/pkgconfig
+ >=sys-kernel/linux-headers-3.9
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt"
+RDEPEND="${COMMON_DEPEND}
+ !<sys-fs/lvm2-2.02.103
+ !<sec-policy/selinux-base-2.20120725-r10"
+PDEPEND=">=sys-apps/hwids-20140304[udev]
+ >=sys-fs/udev-init-scripts-26"
+
+S=${WORKDIR}/systemd-${PV}
+EGIT_CHECKOUT_DIR=${S}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL ~FHANDLE ~NET ~!FW_LOADER_USER_HELPER ~UNIX"
+ linux-info_pkg_setup
+
+ # CONFIG_FHANDLE was introduced by 2.6.39
+ local MINKV=2.6.39
+
+ if kernel_is -lt ${MINKV//./ }; then
+ eerror "Your running kernel is too old to run this version of ${P}"
+ eerror "You need to upgrade kernel at least to ${MINKV}"
+ fi
+
+ if kernel_is -lt 3 7; then
+ ewarn "Your running kernel is too old to have firmware loader and"
+ ewarn "this version of ${P} doesn't have userspace firmware loader"
+ ewarn "If you need firmware support, you need to upgrade kernel at least to 3.7"
+ fi
+ fi
+}
+
+src_prepare() {
+ if ! [[ ${PV} = 9999* ]]; then
+ # secure_getenv() disable for non-glibc systems wrt bug #443030
+ if ! [[ $(grep -r secure_getenv * | wc -l) -eq 27 ]]; then
+ eerror "The line count for secure_getenv() failed, see bug #443030"
+ die
+ fi
+ fi
+
+ cat <<-EOF > "${T}"/40-gentoo.rules
+ # Gentoo specific floppy and usb groups
+ ACTION=="add", SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
+ ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
+ EOF
+
+ local PATCHES=(
+ "${FILESDIR}/234-uucp-group.patch"
+ )
+
+ default
+
+ if ! use elibc_glibc; then #443030
+ echo '#define secure_getenv(x) NULL' >> config.h.in
+ sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
+ fi
+}
+
+meson_multilib_native_use() {
+ if multilib_is_native_abi && use "$1"; then
+ echo true
+ else
+ echo false
+ fi
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Dacl=$(meson_multilib_native_use acl)
+ -Defi=false
+ -Dkmod=$(meson_multilib_native_use kmod)
+ -Dselinux=$(meson_multilib_native_use selinux)
+ -Dlink-udev-shared=false
+ -Dsplit-usr=true
+ )
+ meson_src_configure
+}
+
+src_configure() {
+ # Prevent conflicts with i686 cross toolchain, bug 559726
+ tc-export AR CC NM OBJCOPY RANLIB
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ # meson creates this link
+ local libudev=$(readlink src/libudev/libudev.so.1)
+
+ local targets=(
+ src/libudev/${libudev}
+ )
+ if multilib_is_native_abi; then
+ targets+=(
+ systemd-udevd
+ udevadm
+ src/udev/ata_id
+ src/udev/cdrom_id
+ src/udev/collect
+ src/udev/mtd_probe
+ src/udev/scsi_id
+ src/udev/v4l_id
+ man/udev.conf.5
+ man/systemd.link.5
+ man/hwdb.7
+ man/udev.7
+ man/systemd-udevd.service.8
+ man/udevadm.8
+ )
+ fi
+ eninja "${targets[@]}"
+}
+
+multilib_src_install() {
+ local libudev=$(readlink src/libudev/libudev.so.1)
+
+ into /
+ dolib.so src/libudev/{${libudev},libudev.so.1,libudev.so}
+
+ insinto "/usr/$(get_libdir)/pkgconfig"
+ doins src/libudev/libudev.pc
+
+ if multilib_is_native_abi; then
+ into /
+ dobin udevadm
+
+ exeinto /lib/systemd
+ doexe systemd-udevd
+
+ exeinto /lib/udev
+ doexe src/udev/{ata_id,cdrom_id,collect,mtd_probe,scsi_id,v4l_id}
+
+ rm rules/99-systemd.rules || die
+ insinto /lib/udev/rules.d
+ doins rules/*.rules
+
+ insinto /usr/share/pkgconfig
+ doins src/udev/udev.pc
+
+ mv man/systemd-udevd.service.8 man/systemd-udevd.8 || die
+ rm man/systemd-udevd-{control,kernel}.socket.8 || die
+ doman man/*.[0-9]
+ fi
+}
+
+multilib_src_install_all() {
+ doheader src/libudev/libudev.h
+
+ insinto /etc/udev
+ doins src/udev/udev.conf
+
+ insinto /lib/systemd/network
+ doins network/99-default.link
+
+ # see src_prepare() for content of 40-gentoo.rules
+ insinto /lib/udev/rules.d
+ doins "${T}"/40-gentoo.rules
+ doins "${S}"/rules/*.rules
+
+ dobashcomp shell-completion/bash/udevadm
+
+ insinto /usr/share/zsh/site-functions
+ doins shell-completion/zsh/_udevadm
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ mkdir -p "${ROOT%/}"/run
+
+ # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
+ # So try to remove it here (will only work if empty).
+ rmdir "${ROOT%/}"/dev/loop 2>/dev/null
+ if [[ -d ${ROOT%/}/dev/loop ]]; then
+ ewarn "Please make sure your remove /dev/loop,"
+ ewarn "else losetup may be confused when looking for unused devices."
+ fi
+
+ local fstab="${ROOT%/}"/etc/fstab dev path fstype rest
+ while read -r dev path fstype rest; do
+ if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
+ ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
+ ewarn "filesystem. Otherwise udev won't be able to boot."
+ ewarn "See, https://bugs.gentoo.org/453186"
+ fi
+ done < "${fstab}"
+
+ if [[ -d ${ROOT%/}/usr/lib/udev ]]; then
+ ewarn
+ ewarn "Please re-emerge all packages on your system which install"
+ ewarn "rules and helpers in /usr/lib/udev. They should now be in"
+ ewarn "/lib/udev."
+ ewarn
+ ewarn "One way to do this is to run the following command:"
+ ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
+ ewarn "Note that qfile can be found in app-portage/portage-utils"
+ fi
+
+ local old_cd_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-cd.rules
+ local old_net_rules="${ROOT%/}"/etc/udev/rules.d/70-persistent-net.rules
+ for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
+ if [[ -f ${old_rules} ]]; then
+ ewarn
+ ewarn "File ${old_rules} is from old udev installation but if you still use it,"
+ ewarn "rename it to something else starting with 70- to silence this deprecation"
+ ewarn "warning."
+ fi
+ done
+
+ elog
+ elog "Starting from version >= 197 the new predictable network interface names are"
+ elog "used by default, see:"
+ elog "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
+ elog "https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c"
+ elog
+ elog "Example command to get the information for the new interface name before booting"
+ elog "(replace <ifname> with, for example, eth0):"
+ elog "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
+ elog
+ elog "You can use either kernel parameter \"net.ifnames=0\", create empty"
+ elog "file /etc/systemd/network/99-default.link, or symlink it to /dev/null"
+ elog "to disable the feature."
+
+ if has_version 'sys-apps/biosdevname'; then
+ ewarn
+ ewarn "You can replace the functionality of sys-apps/biosdevname which has been"
+ ewarn "detected to be installed with the new predictable network interface names."
+ fi
+
+ ewarn
+ ewarn "You need to restart udev as soon as possible to make the upgrade go"
+ ewarn "into effect."
+ ewarn "The method you use to do this depends on your init system."
+ if has_version 'sys-apps/openrc'; then
+ ewarn "For sys-apps/openrc users it is:"
+ ewarn "# /etc/init.d/udev --nodeps restart"
+ fi
+
+ elog
+ elog "For more information on udev on Gentoo, upgrading, writing udev rules, and"
+ elog "fixing known issues visit:"
+ elog "https://wiki.gentoo.org/wiki/Udev"
+ elog "https://wiki.gentoo.org/wiki/Udev/upgrade"
+
+ # If user has disabled 80-net-name-slot.rules using a empty file or a symlink to /dev/null,
+ # do the same for 80-net-setup-link.rules to keep the old behavior
+ local net_move=no
+ local net_name_slot_sym=no
+ local net_rules_path="${ROOT%/}"/etc/udev/rules.d
+ local net_name_slot="${net_rules_path}"/80-net-name-slot.rules
+ local net_setup_link="${net_rules_path}"/80-net-setup-link.rules
+ if [[ ! -e ${net_setup_link} ]]; then
+ [[ -f ${net_name_slot} && $(sed -e "/^#/d" -e "/^\W*$/d" ${net_name_slot} | wc -l) == 0 ]] && net_move=yes
+ if [[ -L ${net_name_slot} && $(readlink ${net_name_slot}) == /dev/null ]]; then
+ net_move=yes
+ net_name_slot_sym=yes
+ fi
+ fi
+ if [[ ${net_move} == yes ]]; then
+ ebegin "Copying ${net_name_slot} to ${net_setup_link}"
+
+ if [[ ${net_name_slot_sym} == yes ]]; then
+ ln -nfs /dev/null "${net_setup_link}"
+ else
+ cp "${net_name_slot}" "${net_setup_link}"
+ fi
+ eend $?
+ fi
+
+ # https://cgit.freedesktop.org/systemd/systemd/commit/rules/50-udev-default.rules?id=3dff3e00e044e2d53c76fa842b9a4759d4a50e69
+ # https://bugs.gentoo.org/246847
+ # https://bugs.gentoo.org/514174
+ enewgroup input
+
+ # Update hwdb database in case the format is changed by udev version.
+ if has_version 'sys-apps/hwids[udev]'; then
+ udevadm hwdb --update --root="${ROOT%/}"
+ # Only reload when we are not upgrading to avoid potential race w/ incompatible hwdb.bin and the running udevd
+ # https://cgit.freedesktop.org/systemd/systemd/commit/?id=1fab57c209035f7e66198343074e9cee06718bda
+ [[ -z ${REPLACING_VERSIONS} ]] && udev_reload
+ fi
+}
diff --git a/sys-fs/udftools/Manifest b/sys-fs/udftools/Manifest
new file mode 100644
index 000000000000..822336abb8dd
--- /dev/null
+++ b/sys-fs/udftools/Manifest
@@ -0,0 +1,26 @@
+AUX cdrwtool-linux2.6-fix-v2.patch 876 SHA256 887200ca417f60ee87e57cafe583ed3555be59fbec7f6eb4fbee60ed41ee9467 SHA512 97a9c9bf655bb5b8996cca6b3011b8cb862aa07eb8adac027207d07e2f92dcf04ef637093d8239b04b083a2bf5fd6dede6fa34f85ffc46834253a75049baf74c WHIRLPOOL 1a15a7026e4b69681b3d8a8755f2559413fe24aa097737c7493b7878c1f20ac061ac90de2b24a51ccff40225b97d89ad44b5181dd908f411e0c46bc0cc414393
+AUX pktcdvd.init 1307 SHA256 58b00fcf967963c01d8e5c658aa0bc7327eff3146f6797c5131d7d927d310243 SHA512 6c5c7a8b39067924c5be31a951043a1c44ff53d951fa9307fde2393aaf9c2b5f8960a042aae238d71a09696a3077d72ed41acdf261739c2829ab25130f3b795b WHIRLPOOL fb3b4eae9092e7644e525e7bf07329e9f318476cc80273e7c40610dbff6cbece1454087d4729682a4398197b0627a6f4531bb5e89d76190e883ecc336ced099e
+AUX udftools-1.0.0b-bigendian.patch 985 SHA256 b0a6c15b2cce7f19b91cacf08e9c5c24b70c16bee2b2e36b635739a6fd76b4c3 SHA512 f16ce73f58b51291ad54fcf7e065df1f971a14033110627bab77f35ee95d4cbe772accca52d1db9e1897830bcc55f9358e99cebc0633c3be1ce37bfda1affa72 WHIRLPOOL 60b4b1f0ae56b6671990269f1e7bc890d28adf24be837fdd5955add571ad67af2edeeb2916bc87735463bd73d3f698abd4cabb2f3b99f6e407772a2a7989f31c
+AUX udftools-1.0.0b-gcc4.patch 354 SHA256 4359a9089eae2ea20cdf78696aefc8a7a8097512ff56b12c7b59ecad7e75f2bd SHA512 4c92997faf8e4e090bc2fd2297cf87328e26cb06d113a067a7ea90167e2c39af4183046cbc1f86c73bf0bc6bf6357e6627423739409d614d153d628123166233 WHIRLPOOL ddc924588962d16f919dd14ae11e7bf548dd67e8cfed03cb3675f2720d4f57949b450f15f7135051e9edcf4c9499eddcfe2cf50b398323647512fcb65c85ca61
+AUX udftools-1.0.0b-limits_h.patch 451 SHA256 0fceef5db815eb20cc70161dc2bdf9969f6124b52083209a571c835ac5e9a989 SHA512 b3bc5304a095428e69b39863823daf459c43b26172d3cc58a219c513f1c37265ed4fcf53d0fe2833196d043807cda1a73651bcaaa246cc2fcac52230ebdb9d41 WHIRLPOOL 0b52c72d53b37bd79de54988114a0c0744e55ece791adac5913e70b9e1123091862a6130ed43f4e5c91f3c4485db9eaf8f9bb12af00d569c682a6905106a5c58
+AUX udftools-1.0.0b-openflags.patch 432 SHA256 7c578dc4e448b9f1019afd12cd258931c187a540e0117d2293f47cbaff7b164d SHA512 c192ad5f83dc71fbda7564b877b861d86bb568cb9e82562c64ec7be7cd3e1bbe2ec371b1b36626a5bb196446ce68a18e07c7bfdc1e79528706cbe9577a6c9943 WHIRLPOOL f561014563b53eab5c5833117eca7bc673591d74d52097bf489137c1d74ec356eb5f0ee6e00d30d8e6eaa4503d4d7c1b7fb7dac05fc0d2c7488779d8f29dcaac
+AUX udftools-1.0.0b3-extsize.patch 1573 SHA256 74b31f683722f690f7003642f3dfa64e039364fc6363e9233cfc0778e73c9c08 SHA512 81093ef7c3fe8d1d357a5d315439ecf9314c7771749c2fa294fcee2526021137c4364ad21e6c16ec602709a2251d28374b84cff19929617e51d8a9151a35559a WHIRLPOOL fa96f5bd0a94b5b7126fb7af3a43515331faf65a0614ca351a90f34b4ba79bbb8706fd9591bc19fe09c3f4dc1d59f67faf45fd735a591c65a665336c13361088
+AUX udftools-1.0.0b3-man-missing-options.patch 1512 SHA256 add1307df17934d43bc11a06eabfeb21945055efcf77412b01af0253de49fa83 SHA512 caceabf810bb2cdf8c306b126edf19501326a4dbbe5b04028ec80029dc7becd44a27682970562327aa8e88b872e9e9cb7e3d4c3db217e1650629df1a19becac3 WHIRLPOOL 927da0a85b819965013f4e1e9429836dd173193e5944cdd22c208f5ddc8cb513aeb4b8390b043f47401ea17db2d0e7ee2b814f61026dd42585a37e871b928417
+AUX udftools-1.0.0b3-mkudffs-bigendian.patch 4480 SHA256 fadd407456ea43828d0969c61222c98bb3baca6a7d4c3d76b4d62c1c5e75c33a SHA512 8350c44749dfb10260d599f17b1a5a64c3d911410cd85802b3efeca2a3730e0da417ab41c6c4b5a74b58515969c8ec10bee48e2b0f5205e211203282ac21a180 WHIRLPOOL 40944ca5080e9756971c2c41df8ad14acc4f09c567fcfd2c7e667350aec4c4d15cca64cb9bffd79e1500ac8f4e1b8e43a75d3bd0ff5aab68072a9ba9e16f0afb
+AUX udftools-1.0.0b3-staticanal.patch 8035 SHA256 0bbe955153c191548cfe0431c52507e873d277ad6c208a4a6867fc73098233b0 SHA512 47d049f16ba607fdc2373ef7647e8409db5224172a3ddf5fa587649bae1804bc08b2480692a962576a4a748768aac99e27f35730d6ffba23dfd8cbe1c9a9aad6 WHIRLPOOL 28a9965658701035bd8d1afe10efbd37bf24ed7d6a64c74a1b5be647a5635110810596e6fe320f07230e7072db4e92bbc8d107cadec2ac92fcf43f2acede5aea
+AUX udftools-1.0.0b3-warningfixes.patch 4287 SHA256 2bc377072ecbd14e522b763c868576c9cd7292d73e43db23dee18089986286e1 SHA512 daefbeca08bfdb2435d36b5335aec8e4da4e547843bb6fe7d607949071844304b89e1051dc155733baa5854b52452868b0b4eb2a76111c24d58746ecab7e0802 WHIRLPOOL 6d703072f8f64ec331d7e8a4d532b9c4fbac41b1e93398fd264926890901fcc61947d0bc39028ac6386936bd1ecbccceb4c019deb60e04e8434e6b1ae56eb97a
+AUX udftools-1.0.0b3-warningfixes2.patch 5520 SHA256 221d5ee78df95e8ecaee52ad6248f3fb5b857a6a7c8bc3a602abab8e17c89901 SHA512 d050cfd745a36050f26f2aa8a86a6d60a3007c9d84c2e6f224816887c41c06d81d8404cc3c817e54815705ec3cbe5aa02786b3d2e9e8aa782aaafa7b7c14af18 WHIRLPOOL 562313d6bf467c92a6f67effc65c9d78ccfcd59b088c316cc2febebf3ef16fd48a2bfba29d86f7e64b85e799f64b89ed457a67f8f21c57368b627c625995597d
+AUX udftools-1.0.0b3-wrudf_help.patch 1241 SHA256 a863bca4e86221287b4405ae03e14c7dfcf9a44906d38af99a1f156f2ffe8c22 SHA512 9077691cb5aae00e777f4f3bd5d2d09c71e52b2584d60f2c975a64b1e5ecc9ff3675d2394d52d3f688f24894bfa84f3b7350a4d82eb421ec95a15929ea14fa61 WHIRLPOOL ac1fd4ef4313c7dc7b536ebfac8c9c52e4cbb96e99c0a7b414adae6a6e4a12feaed29b184ebeb484acefdf801887362fcd83cb3c3e0c32f453127afbfd7933de
+DIST udftools-1.0.0b3.patch.bz2 3372 SHA256 4c35eb06da92677203137ee407ba29bdf0bec574550567cc6cecb63158099dbb SHA512 2b30741ffb7bab0139f6a3fb55911517c7f0489b76bc3453c3e0c519356689a8a9ad9c2b7e954267e8e14a6840498cd3c93641c5eb69f373f7bb19d35ffe9f19 WHIRLPOOL 43d096e0959da24f2b272ee60ba753c45346c12139627c5a6721b6db71f4dd85ca62d97799c79fca5b6d3e2222ff86262bb3ac62c9a3f3fe1f1fbd387bcc34c9
+DIST udftools-1.0.0b3.tar.gz 293257 SHA256 c5079e878d4d8e03de0fd75bfecf485a299689b8289a5288f18b2e793e0904a0 SHA512 4b45ff2e389ce93c3ac372f74daa3e2a43e02434c1e3d9df8cf050e137799491ac88d7aedd2b61c6d79a7ab8878042689c948c0b2aeb4be0a172c64844f07068 WHIRLPOOL 157ff4b18ef7497067b8398e0d57a25e6549c3c8637633fe3648c42d446562cd9c2f2533a25895cf628343223eb1ccbb59511df40606525486c6e4e58c0dc0d3
+DIST udftools-1.1.tar.gz 656865 SHA256 e16103fd0d4ec7c233df3375c8bec5e32802fd81e9f135dc73b80550373205ed SHA512 9c415d1cae1d79d49b4f9e3e6881f0b44b31d59f6d722571badd78ee68c422899ee8b95caed0ac50e76c13d8ed118f58f79efe5cbf775438a163d68160a30742 WHIRLPOOL c6d297fab980725590e45807da8d05d4eafd0336fba646a56239001af850b7efb3e1e89f6d413f3f4b7116434362e00b2555a760e7918df2c7c64da746ca63e2
+DIST udftools-1.2.tar.gz 657310 SHA256 444c646cc4e3db93a4abffbfc9d5e3da8da3e891012cb8bc2ce53c3d33596851 SHA512 b36e08b7adc0246f2a8024f6ee95117f5cba03566103a501acd1fb1ab31152da6345584ad36156a94ce5a29818e38333d81e3307ba73cef08355c300b79af199 WHIRLPOOL 259c1b2ad8cfd8254fd88fa0ad019d698c78eb6a15eb05209d0229add206243cacbf00e1ddc3b2a3ecb424d8808c98f046d2bdbf4193e06910714ffbbb3ebb79
+DIST udftools-1.3.tar.gz 447063 SHA256 00562a440de7b855df8127f8f798df657d53f20d9a205a7041fed37c8a07d4cb SHA512 d67f74640cc600fbdf3d7a67caee1342c15507357e155c5e1066aa6f6b3e2667483107edd663eaed5ebb690c13337598a75c1955e69cbc782bd481af783837e7 WHIRLPOOL 6f8fd7f5d21b590a0cd314e014d4c1f7bb11dae0b54f92495348621ab529b555c59cf216365a518df8566bd3cf5ac3092e7fefd17ec5cb0475efce30cf683f82
+EBUILD udftools-1.0.0b-r10.ebuild 1481 SHA256 482a093e9603e0b5e9bf45d73721a8e727099f3ed4809ea6c879a6eb25f56747 SHA512 6d503c710f96cbf4dc087604361137025cf7e3029d0a43777151528bc448c0b46d9edf5265cded42c4c747b084eb0bbfb8defb3685467abc933d815aacf943a1 WHIRLPOOL a262562c3a4dd5775d1d02b75c6fb2909f8c5a6dabdedf19da6535a25f5ec5781e7dff01e36a460e81c29539a47b8f991c76d1758c023815acbeaa824018cf63
+EBUILD udftools-1.0.0b-r9.ebuild 1190 SHA256 2e958003a2b8a6883c5eea57f7c2b73d0e293fb0988bc19d2f12765ca09165b9 SHA512 c3122ea4c0554713bd94bacb7eafe24bfc1edbcd92181a79926e05d4d956214e3e4bd28ada2f2696552b8cd0b8c9572cb4545c4271f5c82529e5068bc8ed331e WHIRLPOOL 4b56c430f92f50df95e8fd62ca41254a7734e42b0a585d0d38f131337f8d169e42bbcbadb8a0c671e628c789576aac526f05c1189cde44f73b9e2bf59ad69e47
+EBUILD udftools-1.1.ebuild 664 SHA256 692ffa1341081a653429c7fc5290d94eadfe544a4cb074f499a96e5880c4d802 SHA512 829b847f094d1c8146c76312febedf72abca1a29def30410c00d509bae9b4da16ff6b9afbafe62ba54f6c97f174b51ff76b455a35f4ce19498f76e1f8fd974c4 WHIRLPOOL fc3bd0cab842c7b265058e97a8c97e1f8b5b9c515f9b59f293932636c4711e04d9e4d32be4e587f21b0a54fdc764458d9e7b2b4373792796117df8ff3581c52d
+EBUILD udftools-1.2.ebuild 668 SHA256 f2c008801219c27c9aac26ecaaa05a9239cbac6137c55a36a2135e74661c4acf SHA512 f3a6c5f4567f166e4d65639f3393f414c3879c3b9a968c73e93a4d2a4aab16f985d341bcef3319701126a5e656f95e4cafac89b58bec76f0aa27ab8c4f2fc07a WHIRLPOOL 353b4cdd720cf2777835df87235cca1875cc32beab84c0022adc417c7a8fe06dee27bdfa7b9444d14e4818ee2d16c98257b04eafb32aec243f86222cfaeec511
+EBUILD udftools-1.3.ebuild 668 SHA256 60a762ce1fd6493f3ab16529088ec602ff647c0ab0da66a8ab25a03e8fb44759 SHA512 c7358d1dfb3e6fd253543d07798ceb43ada57f5917f674f471d38c6bc7d9251f4547a98b260e6d73766eca109b5e2ed8fa0d83dba6b05cae217969cce84eae4b WHIRLPOOL 7abfc7913707093d7de034f087be219be37e3a34d76e6347503988cb27f5978cb90a5fedd67e0e25b99cc16a066dbc86cdae86baba4a078a4a3757c425d0c627
+MISC ChangeLog 4853 SHA256 aded0c4aad0887fa2c27c99531569eb8e8075c4ced73e138f0cd149028255520 SHA512 63cab6de03c4c71c4b3c071b0c0c326a6cc39641cd9eea14bab120a784fe511c9cf43f90dc465f0ae80e463f5ddb10087e94793cb32138f078043e09357725b0 WHIRLPOOL bdecff35ac6befa910fdb9cb7d802043dd6967fcfa252d31059d9bbf468c5073de88f7954b9d7d55cf2b013292bb1e37c1fbd13ebfd7082cd8eac18609837270
+MISC ChangeLog-2015 5913 SHA256 0194f7df70b133dabbd45c35b434735caf674eb102af99043dd2ce3dfb4bee4b SHA512 d93f92b3b81b7083ccc7c6bf1320ccd08b189954f6fbf0b7a18ccdfbda8828eb9a9a274bf92f5d9d94767c1f2e76ef4061fef2af1badec1280f2e358ad74df05 WHIRLPOOL 8c3561e26594294eb9be6da75b63e89de0345aa4f4cb6164fa1457ab8d6f95d594915c5e8ce8dd0c117db3abd59ba564922b3833fb6a617058030059ad1176b6
+MISC metadata.xml 389 SHA256 9e06a77740b2f30dd6c076bf1a8b5db31c10829cda13c872e3e13a448f1ef3bb SHA512 049fe016aafa25e50396b166ac9931ea7c293aa581467fb587e0d79c0bc4e79621bc3d5bf295c2e9e589a517a4c1fcfbb863fb71175fe5061f99e45a26c7c61f WHIRLPOOL 0f59d57be3677450df326e495d41901b8e0cdf9f3aebcca32de35b0633a45747821f84b9715064c9a0d1d93287c89d85aee2be59ac2f71fe4378bdb94d1584f2
diff --git a/sys-fs/udftools/files/cdrwtool-linux2.6-fix-v2.patch b/sys-fs/udftools/files/cdrwtool-linux2.6-fix-v2.patch
new file mode 100644
index 000000000000..602c808a1b0b
--- /dev/null
+++ b/sys-fs/udftools/files/cdrwtool-linux2.6-fix-v2.patch
@@ -0,0 +1,22 @@
+Fix CD blanking for kernels 2.6.8 and newer
+(write access is required to perform blanking commands)
+
+The original version broke support on Linux 2.4, thanks to Ben Peddell for pointing
+this out to me, and for the updated patch.
+
+ - Daniel Drake <dsd@gentoo.org>
+ - Ben Peddell <klightspeed@klightspeed.is-a-geek.net>
+
+--- udftools-1.0.0b3/cdrwtool/main.c.orig 2004-12-30 22:53:52.000000000 +0000
++++ udftools-1.0.0b3/cdrwtool/main.c 2004-12-30 22:54:36.000000000 +0000
+@@ -242,7 +242,9 @@ int main(int argc, char *argv[])
+ udf_init_disc(&disc.udf_disc);
+ strcpy(filename, CDROM_DEVICE);
+ parse_args(argc, argv, &disc, filename);
+- if ((fd = open(filename, O_RDONLY | O_NONBLOCK)) < 0)
++ if (((fd = open(filename, O_RDWR | O_NONBLOCK)) < 0) &&
++ ((errno != EROFS) ||
++ ((fd = open(filename, O_RDONLY | O_NONBLOCK)) < 0)))
+ {
+ perror("open cdrom device");
+ return fd;
diff --git a/sys-fs/udftools/files/pktcdvd.init b/sys-fs/udftools/files/pktcdvd.init
new file mode 100644
index 000000000000..97375411e0e2
--- /dev/null
+++ b/sys-fs/udftools/files/pktcdvd.init
@@ -0,0 +1,61 @@
+#!/sbin/openrc-run
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2
+
+depend() {
+ need localmount modules
+}
+
+checkconfig() {
+ if ! [ -e /dev/pktcdvd/control ]; then
+ eerror "Could not find packet-writing control device at /dev/pktcdvd/control"
+ eerror "Please ensure that your kernel includes packet writing support,"
+ eerror "and if modular, ensure that the module is loaded."
+ return 1
+ fi
+}
+
+get_rw_devices() {
+ devices_raw=$(sed -re '/^drive name:/I!d; s/.*:\s+//' /proc/sys/dev/cdrom/info)
+ count=0
+ for i in $devices_raw; do
+ eval "devices_$count=\"\$i\""
+ count=$(( $count + 1 ))
+ done
+ devs=""
+
+ cdrw_caps=$(sed -re '/^Can write CD-RW:/I!d; s/.*:\s+//' /proc/sys/dev/cdrom/info)
+
+ count=0
+ for i in $cdrw_caps; do
+ [ "$i" -eq 1 ] && eval "devs=\"\$devs \$devices_$count\""
+ count=$(( $count + 1 ))
+ done
+
+ echo ${devs}
+}
+
+start() {
+ checkconfig || return 1
+
+ for i in $(get_rw_devices)
+ do
+ devnode="/dev/${i}"
+ [ -e "${devnode}" ] || continue
+
+ /usr/bin/pktsetup "${i}" "${devnode}" > /dev/null
+ [ -e "/dev/pktcdvd/${i}" ] || continue
+ chmod 660 "/dev/pktcdvd/${i}"
+ chgrp cdrw "/dev/pktcdvd/${i}"
+ done
+}
+
+stop() {
+ checkconfig || return 1
+
+ for i in $(get_rw_devices)
+ do
+ /usr/bin/pktsetup -d "${i}" > /dev/null
+ done
+}
+
diff --git a/sys-fs/udftools/files/udftools-1.0.0b-bigendian.patch b/sys-fs/udftools/files/udftools-1.0.0b-bigendian.patch
new file mode 100644
index 000000000000..d49b2561e4e9
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b-bigendian.patch
@@ -0,0 +1,28 @@
+http://bugs.gentoo.org/120245
+
+BE fix
+
+===================================================================
+RCS file: /cvsroot/linux-udf/udftools/mkudffs/mkudffs.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- linux-udf/udftools/mkudffs/mkudffs.c 2004/02/23 03:35:33 1.3
++++ linux-udf/udftools/mkudffs/mkudffs.c 2004/03/02 02:09:39 1.4
+@@ -250,14 +250,14 @@
+ if (size % offsets[PSPACE_SIZE])
+ size -= (size % offsets[PSPACE_SIZE]);
+ set_extent(disc, PSPACE, start, size);
+- for (i=0; i<disc->udf_lvd[0]->numPartitionMaps; i++)
++ for (i=0; i<le32_to_cpu(disc->udf_lvd[0]->numPartitionMaps); i++)
+ {
+ if (i == 1)
+ disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(0xFFFFFFFF);
+ else
+ disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(size);
+ }
+- for (j=0; j<disc->udf_lvd[0]->numPartitionMaps; j++)
++ for (j=0; j<le32_to_cpu(disc->udf_lvd[0]->numPartitionMaps); j++)
+ {
+ if (j == 1)
+ disc->udf_lvid->sizeTable[i+j] = cpu_to_le32(0xFFFFFFFF);
diff --git a/sys-fs/udftools/files/udftools-1.0.0b-gcc4.patch b/sys-fs/udftools/files/udftools-1.0.0b-gcc4.patch
new file mode 100644
index 000000000000..3b58f20f0173
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b-gcc4.patch
@@ -0,0 +1,15 @@
+http://bugs.gentoo.org/112122
+
+gcc4 compat
+
+--- a/wrudf/wrudf.c
++++ b/wrudf/wrudf.c
+@@ -245,7 +245,7 @@
+ } else if( strncmp( spm->partIdent.ident, UDF_ID_VIRTUAL, strlen(UDF_ID_VIRTUAL)) == 0 )
+ virtualPartitionNum = i;
+ }
+- (char*)spm += spm->partitionMapLength;
++ spm = (char*)spm + spm->partitionMapLength;
+ }
+
+ if( medium == CDR ) {
diff --git a/sys-fs/udftools/files/udftools-1.0.0b-limits_h.patch b/sys-fs/udftools/files/udftools-1.0.0b-limits_h.patch
new file mode 100644
index 000000000000..74dddf9e012c
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b-limits_h.patch
@@ -0,0 +1,23 @@
+http://bugs.gentoo.org/335511
+
+--- cdrwtool/cdrwtool.c
++++ cdrwtool/cdrwtool.c
+@@ -31,6 +31,7 @@
+ #include <sys/ioctl.h>
+ #include <asm/param.h>
+
++#include <limits.h> /* INT_MAX */
+ #include <linux/cdrom.h>
+
+ #include "cdrwtool.h"
+--- pktsetup/pktsetup.c
++++ pktsetup/pktsetup.c
+@@ -26,6 +26,8 @@
+ #include <bits/types.h>
+ #include <sys/types.h>
+
++#include <limits.h> /* INT_MAX */
++#include <stdlib.h> /* system */
+ #include <linux/cdrom.h>
+
+ /*
diff --git a/sys-fs/udftools/files/udftools-1.0.0b-openflags.patch b/sys-fs/udftools/files/udftools-1.0.0b-openflags.patch
new file mode 100644
index 000000000000..88803e43d6fb
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b-openflags.patch
@@ -0,0 +1,15 @@
+From: Magnus Granberg <zorry@ume.nu>
+https://bugs.gentoo.org/232100
+Remove nonsense O_CREAT flag
+
+--- pktsetup/pktsetup.c 2008-06-19 00:27:08.000000000 +0200
++++ pktsetup/pktsetup.c 2008-06-19 00:20:31.000000000 +0200
+@@ -85,7 +85,7 @@
+ {
+ int pkt_fd, dev_fd, cmd;
+
+- if ((pkt_fd = open(pkt_device, O_RDONLY | O_CREAT)) == -1) {
++ if ((pkt_fd = open(pkt_device, O_RDONLY)) == -1) {
+ perror("open packet device");
+ return;
+ }
diff --git a/sys-fs/udftools/files/udftools-1.0.0b3-extsize.patch b/sys-fs/udftools/files/udftools-1.0.0b3-extsize.patch
new file mode 100644
index 000000000000..8e7e0d13a7f2
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b3-extsize.patch
@@ -0,0 +1,44 @@
+taken from Fedora, but with minor return type fixes: changed NULL to 0
+
+http://pkgs.fedoraproject.org/cgit/udftools.git/tree/udftools-1.0.0b3-extsize.patch?h=f22
+
+diff -up udftools-1.0.0b3/libudffs/extent.c.extsize udftools-1.0.0b3/libudffs/extent.c
+--- udftools-1.0.0b3/libudffs/extent.c.extsize 2012-01-26 09:45:22.217856499 +0100
++++ udftools-1.0.0b3/libudffs/extent.c 2012-01-26 09:45:43.142855067 +0100
+@@ -50,7 +50,7 @@ cont:
+ while (start_ext != NULL && start_ext->blocks < blocks)
+ start_ext = next_extent(start_ext->next, type);
+
+- if (start_ext->start % offset)
++ if (start_ext != NULL && start_ext->start % offset)
+ {
+ inc = offset - (start_ext->start % offset);
+ if (start_ext->blocks - inc < blocks)
+@@ -62,7 +62,7 @@ cont:
+ else
+ inc = 0;
+
+- return start_ext->start + inc;
++ return start_ext ? start_ext->start + inc : 0;
+ }
+
+ struct udf_extent *prev_extent(struct udf_extent *start_ext, enum udf_space_type type)
+@@ -81,7 +81,7 @@ cont:
+ while (start_ext != NULL && start_ext->blocks < blocks)
+ start_ext = prev_extent(start_ext->prev, type);
+
+- if ((start_ext->start + start_ext->blocks) % offset)
++ if (start_ext != NULL && (start_ext->start + start_ext->blocks) % offset)
+ {
+ dec = (start_ext->start + start_ext->blocks) % offset;
+ if (start_ext->blocks - dec < blocks)
+@@ -93,7 +93,7 @@ cont:
+ else
+ dec = 0;
+
+- return start_ext->start + start_ext->blocks - dec - blocks;
++ return start_ext ? start_ext->start + start_ext->blocks - dec - blocks : 0;
+ }
+
+ struct udf_extent *find_extent(struct udf_disc *disc, uint32_t start)
+
diff --git a/sys-fs/udftools/files/udftools-1.0.0b3-man-missing-options.patch b/sys-fs/udftools/files/udftools-1.0.0b3-man-missing-options.patch
new file mode 100644
index 000000000000..afda3bd00d3a
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b3-man-missing-options.patch
@@ -0,0 +1,57 @@
+taken from Fedora
+
+http://pkgs.fedoraproject.org/cgit/udftools.git/tree/udftools-1.0.0b3-man-missing-options.patch?h=f22
+
+diff -up wrk/doc/cdrwtool.1.wrk wrk/doc/cdrwtool.1
+--- wrk/doc/cdrwtool.1.wrk 2014-01-29 15:23:18.623940293 +0100
++++ wrk/doc/cdrwtool.1 2014-01-29 15:24:27.027471222 +0100
+@@ -97,6 +97,10 @@ Close track.
+ .IP "\fB\-r \fItrack\fP"
+ Reserve track.
+
++.IP "\fB\-z \fIlength\fP"
++Fixed packet length.
++
++
+ .IP \fB\-s\fP
+ Set write parameters determined by
+ .BR "\-l" , " \-w" ", and" " \-p"
+diff -up wrk/doc/mkudffs.8.wrk wrk/doc/mkudffs.8
+--- wrk/doc/mkudffs.8.wrk 2014-01-29 15:47:54.095408327 +0100
++++ wrk/doc/mkudffs.8 2014-01-29 15:51:18.115200882 +0100
+@@ -151,6 +151,13 @@ Use 16-bit unicode for file names
+ .TP
+ .B \-\-utf8
+ Use UTF-8 for file names
++.TP
++.B \-\-closed
++.TP
++.B \-\-bridge
++.TP
++.BI \-\-packetlen= " length "
++
+
+ .SH "EXIT STATUS"
+ .B mkudffs
+diff -up wrk/doc/pktsetup.8.wrk wrk/doc/pktsetup.8
+--- wrk/doc/pktsetup.8.wrk 2002-11-26 08:18:51.000000000 +0100
++++ wrk/doc/pktsetup.8 2014-01-29 15:36:29.509665177 +0100
+@@ -37,6 +37,9 @@ pktsetup \- set up and tear down packet
+ .B pktsetup
+ .B \-d
+ .I packet_device
++.br
++.B pktsetup
++.B \-s
+ .ad b
+ .SH DESCRIPTION
+ .B Pktsetup
+@@ -58,6 +61,8 @@ returns 0 on success, nonzero on failure
+ .IP "\fB\-d \fIpacket-device\fP"
+ Delete the association between the specified \fIpacket-device\fP
+ and its block device.
++.IP "\fB\-s"
++Show device mappings.
+
+ .SH EXAMPLE
+ The following commands provide an example of using the
diff --git a/sys-fs/udftools/files/udftools-1.0.0b3-mkudffs-bigendian.patch b/sys-fs/udftools/files/udftools-1.0.0b3-mkudffs-bigendian.patch
new file mode 100644
index 000000000000..68c637cd89f4
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b3-mkudffs-bigendian.patch
@@ -0,0 +1,115 @@
+taken from Fedora, but parts removed due to conflicts w/udftools-1.0.0b-bigendian.patch
+
+http://pkgs.fedoraproject.org/cgit/udftools.git/tree/udftools-1.0.0b3-mkudffs-bigendian.patch?h=f22
+
+diff -up udftools-1.0.0b3/mkudffs/defaults.c.mkudffs-bigendian udftools-1.0.0b3/mkudffs/defaults.c
+--- udftools-1.0.0b3/mkudffs/defaults.c.mkudffs-bigendian 2007-08-23 13:41:29.000000000 +0200
++++ udftools-1.0.0b3/mkudffs/defaults.c 2007-08-23 13:42:16.000000000 +0200
+@@ -69,7 +69,7 @@ struct primaryVolDesc default_pvd =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_PVD),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct primaryVolDesc) - sizeof(tag)),
+ },
+ volDescSeqNum : constant_cpu_to_le32(1),
+@@ -119,7 +119,7 @@ struct logicalVolDesc default_lvd =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_LVD),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct logicalVolDesc) - sizeof(tag)),
+ },
+ volDescSeqNum : constant_cpu_to_le32(2),
+@@ -157,7 +157,7 @@ struct volDescPtr default_vdp =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_VDP),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct volDescPtr) - sizeof(tag)),
+ },
+ volDescSeqNum : constant_cpu_to_le32(3),
+@@ -192,7 +192,7 @@ struct impUseVolDesc default_iuvd =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_IUVD),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct impUseVolDesc) - sizeof(tag)),
+ },
+ volDescSeqNum : constant_cpu_to_le32(4),
+@@ -215,7 +215,7 @@ struct partitionDesc default_pd =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_PD),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct partitionDesc) - sizeof(tag)),
+ },
+ volDescSeqNum : constant_cpu_to_le32(5),
+@@ -242,7 +242,7 @@ struct unallocSpaceDesc default_usd =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_USD),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct unallocSpaceDesc) - sizeof(tag)),
+ },
+ volDescSeqNum : constant_cpu_to_le32(6),
+@@ -254,7 +254,7 @@ struct terminatingDesc default_td =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_TD),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct terminatingDesc) - sizeof(tag)),
+ },
+ };
+@@ -265,7 +265,7 @@ struct logicalVolIntegrityDesc default_l
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_LVID),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct logicalVolIntegrityDesc) - sizeof(tag)),
+ },
+ integrityType : constant_cpu_to_le32(LVID_INTEGRITY_TYPE_CLOSE),
+@@ -295,7 +295,7 @@ struct sparingTable default_stable =
+ {
+ tagIdent : constant_cpu_to_le16(0),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct sparingTable) - sizeof(tag)),
+ },
+ sparingIdent :
+@@ -387,7 +387,7 @@ struct fileSetDesc default_fsd =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_FSD),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct fileSetDesc) - sizeof(tag)),
+ },
+ interchangeLvl : constant_cpu_to_le16(2),
+@@ -426,7 +426,7 @@ struct fileEntry default_fe =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_LVID),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct primaryVolDesc) - sizeof(tag)),
+ },
+ icbTag :
+@@ -458,7 +458,7 @@ struct extendedFileEntry default_efe =
+ {
+ tagIdent : constant_cpu_to_le16(TAG_IDENT_LVID),
+ descVersion : constant_cpu_to_le16(3),
+- tagSerialNum : 1,
++ tagSerialNum : constant_cpu_to_le16(1),
+ descCRC : constant_cpu_to_le16(sizeof(struct primaryVolDesc) - sizeof(tag)),
+ },
+ icbTag :
diff --git a/sys-fs/udftools/files/udftools-1.0.0b3-staticanal.patch b/sys-fs/udftools/files/udftools-1.0.0b3-staticanal.patch
new file mode 100644
index 000000000000..9ff411b24528
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b3-staticanal.patch
@@ -0,0 +1,164 @@
+taken from Fedora
+
+http://pkgs.fedoraproject.org/cgit/udftools.git/tree/udftools-1.0.0b3-staticanal.patch?h=f22
+
+Error: CONSTANT_EXPRESSION_RESULT:
+/builddir/build/BUILD/udftools-1.0.0b3/cdrwtool/cdrwtool.c:626: result_independent_of_operands: (ret == ioctl(fd, 21289, 1)) < 0 is always false regardless of the values of its operands. This occurs as the logical operand of if.
+
+Possible buffer overflow of static allocated variable "device".
+
+diff -up udftools-1.0.0b3/cdrwtool/cdrwtool.c.staticanal udftools-1.0.0b3/cdrwtool/cdrwtool.c
+--- udftools-1.0.0b3/cdrwtool/cdrwtool.c.staticanal 2012-01-26 16:20:44.518234366 +0100
++++ udftools-1.0.0b3/cdrwtool/cdrwtool.c 2012-01-26 16:20:44.537234366 +0100
+@@ -623,7 +623,7 @@ int cdrom_open_check(int fd)
+ if ((ret = ioctl(fd, CDROM_CLEAR_OPTIONS, CDO_LOCK)) < 0)
+ return ret;
+
+- if ((ret == ioctl(fd, CDROM_LOCKDOOR, 1)) < 0) {
++ if ((ret = ioctl(fd, CDROM_LOCKDOOR, 1)) < 0) {
+ fprintf(stderr, "CD-ROM appears to already be opened\n");
+ return 1;
+ }
+diff -up udftools-1.0.0b3/cdrwtool/options.c.staticanal udftools-1.0.0b3/cdrwtool/options.c
+--- udftools-1.0.0b3/cdrwtool/options.c.staticanal 2012-01-26 16:26:11.288212023 +0100
++++ udftools-1.0.0b3/cdrwtool/options.c 2012-01-26 16:27:24.125207040 +0100
+@@ -135,7 +135,8 @@ void parse_args(int argc, char *argv[],
+ }
+ case 'd':
+ {
+- strcpy(device, optarg);
++ strncpy(device, optarg, NAME_MAX-1);
++ device[NAME_MAX-1] = '\0';
+ printf("using device %s\n", device);
+ break;
+ }
+
+
+==========================================================================
+Error: NEGATIVE_RETURNS:
+/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:161: negative_return_fn: Function "open64(filename, 66, 432)" returns a negative number.
+/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:161: var_assign: Assigning: signed variable "fd" = "open64".
+/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:165: negative_returns: "fd" is passed to a parameter that cannot be negative.
+/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:85: neg_sink_parm_call: Passing "fd" to "valid_offset", which cannot accept a negative.
+/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:55: neg_sink_parm_call: Passing "fd" to "udf_lseek64", which cannot accept a negative.
+/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/main.c:43: neg_sink_parm_call: Passing "fd" to "lseek64", which cannot accept a negative.
+
+diff -up udftools-1.0.0b3/mkudffs/main.c.staticanal udftools-1.0.0b3/mkudffs/main.c
+--- udftools-1.0.0b3/mkudffs/main.c.staticanal 2004-02-23 04:33:11.000000000 +0100
++++ udftools-1.0.0b3/mkudffs/main.c 2012-01-26 16:29:17.605199282 +0100
+@@ -162,6 +162,10 @@ int main(int argc, char *argv[])
+ #else
+ fd = open(filename, O_RDWR | O_CREAT | O_LARGEFILE, 0660);
+ #endif
++ if (fd == NULL) {
++ fprintf(stderr, "mkudffs: cannot open '%s' for writing\n", filename);
++ exit(1);
++ }
+ disc.head->blocks = get_blocks(fd, disc.blocksize, disc.head->blocks);
+ disc.write = write_func;
+ disc.write_data = &fd;
+
+
+==========================================================================
+Error: BAD_SIZEOF:
+/builddir/build/BUILD/udftools-1.0.0b3/mkudffs/mkudffs.c:45: bad_sizeof: Taking the size of pointer parameter "disc" is suspicious.
+
+Possible buffer overflow of static allocated variable "device".
+
+diff -up udftools-1.0.0b3/mkudffs/mkudffs.c.staticanal udftools-1.0.0b3/mkudffs/mkudffs.c
+--- udftools-1.0.0b3/mkudffs/mkudffs.c.staticanal 2012-01-26 16:20:44.526234367 +0100
++++ udftools-1.0.0b3/mkudffs/mkudffs.c 2012-01-26 16:20:44.539234366 +0100
+@@ -42,7 +42,7 @@ void udf_init_disc(struct udf_disc *disc
+ struct tm *tm;
+ int altzone;
+
+- memset(disc, 0x00, sizeof(disc));
++ memset(disc, 0x00, sizeof(*disc));
+
+ disc->blocksize = 2048;
+ disc->blocksize_bits = 11;
+diff -up udftools-1.0.0b3/mkudffs/options.c.staticanal udftools-1.0.0b3/mkudffs/options.c
+--- udftools-1.0.0b3/mkudffs/options.c.staticanal 2012-01-26 16:24:14.082220036 +0100
++++ udftools-1.0.0b3/mkudffs/options.c 2012-01-26 16:27:29.086206703 +0100
+@@ -320,7 +320,8 @@ void parse_args(int argc, char *argv[],
+ }
+ if (optind == argc)
+ usage();
+- strcpy(device, argv[optind]);
++ strncpy(device, argv[optind], NAME_MAX-1);
++ device[NAME_MAX-1] = '\0';
+ optind ++;
+ if (optind < argc)
+ disc->head->blocks = strtoul(argv[optind++], NULL, 0);
+
+
+==========================================================================
+Error: OVERRUN_STATIC:
+/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:378: overrun-local: Overrunning static array "spm->locSparingTable", with 4 elements, at position 4 with index variable "i".
+
+Error: NEGATIVE_RETURNS:
+/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:769: negative_return_fn: Function "open(filename, 2)" returns a negative number.
+/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:769: var_assign: Assigning: signed variable "device" = "open".
+/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cdrw.c:773: negative_returns: "device" is passed to a parameter that cannot be negative.
+
+diff -up udftools-1.0.0b3/wrudf/wrudf-cdrw.c.staticanal udftools-1.0.0b3/wrudf/wrudf-cdrw.c
+--- udftools-1.0.0b3/wrudf/wrudf-cdrw.c.staticanal 2012-01-26 16:20:44.529234367 +0100
++++ udftools-1.0.0b3/wrudf/wrudf-cdrw.c 2012-01-26 16:35:29.729173836 +0100
+@@ -374,7 +374,7 @@ void updateSparingTable() {
+ struct packetbuf *pb;
+ struct sparablePartitionMap *spm = (struct sparablePartitionMap*)lvd->partitionMaps;
+
+- for( i = 0; i <= 4; i++ ) {
++ for( i = 0; i < sizeof(spm->locSparingTable); i++ ) {
+ pbn = spm->locSparingTable[i];
+ if( pbn == 0 )
+ return;
+@@ -682,6 +682,8 @@ readExtents(char* dest, int usesShort, v
+ dest += 2048;
+ if( len < 2048 )
+ break;
++ /* dead code, len couldn't be 0 at this point
++ (break was called in this case) */
+ if( len == 0 ) {
+ if( usesShort ) {
+ sh++;
+@@ -766,8 +768,10 @@ initIO(char *filename)
+
+ if( S_ISREG(filestat.st_mode) ) { /* disk image of a UDF volume */
+ devicetype = DISK_IMAGE;
+- if( !(device = open(filename, O_RDWR)) )
++ if( !(device = open(filename, O_RDWR)) ) {
+ fail("initIO: open %s failed\n", filename);
++ return 0;
++ }
+
+ /* heuristically determine medium imitated on disk image based on VAT FileEntry in block 512 */
+ rv = lseek(device, 2048 * 512, SEEK_SET);
+
+==========================================================================
+Error: CONSTANT_EXPRESSION_RESULT:
+/builddir/build/BUILD/udftools-1.0.0b3/wrudf/wrudf-cmnd.c:699: missing_parentheses: !(*fid)->fileCharacteristics & 2 is always 0 regardless of the values of its operands. This occurs as the logical operand of if. Did you intend to apply '&' to (*fid)->fileCharacteristics and 2? If so, parentheses would be required to force this interpretation.
+
+diff -up udftools-1.0.0b3/wrudf/wrudf-cmnd.c.staticanal udftools-1.0.0b3/wrudf/wrudf-cmnd.c
+--- udftools-1.0.0b3/wrudf/wrudf-cmnd.c.staticanal 2012-01-26 16:20:44.530234366 +0100
++++ udftools-1.0.0b3/wrudf/wrudf-cmnd.c 2012-01-26 16:20:44.543234366 +0100
+@@ -696,7 +696,7 @@ analyzeDest(char* arg, struct fileIdentD
+ *fid = findFileIdentDesc(curDir, comp);
+ if( *fid == NULL )
+ return DIR_INVALID;
+- if( ! (*fid)->fileCharacteristics & FID_FILE_CHAR_DIRECTORY )
++ if( ! ((*fid)->fileCharacteristics & FID_FILE_CHAR_DIRECTORY ))
+ return DIR_INVALID;
+ if( (*fid)->fileCharacteristics & FID_FILE_CHAR_DELETED )
+ return DIR_INVALID;
+diff -up udftools-1.0.0b3/wrudf/wrudf.c.staticanal udftools-1.0.0b3/wrudf/wrudf.c
+--- udftools-1.0.0b3/wrudf/wrudf.c.staticanal 2012-01-26 16:20:44.528234367 +0100
++++ udftools-1.0.0b3/wrudf/wrudf.c 2012-01-26 16:20:44.545234365 +0100
+@@ -158,6 +158,7 @@ initialise(char *devicename)
+
+ if( (p = readTaggedBlock(blkno, ABSOLUTE)) == NULL ) {
+ if( !inMainSeq )
++ /* dead code - the condition "inMainSeq" cannot be false */
+ fail("Volume Descriptor Sequences read failure\n");
+ blkno = extentRsrvVolDescSeq.extLocation;
+ len = extentRsrvVolDescSeq.extLength;
diff --git a/sys-fs/udftools/files/udftools-1.0.0b3-warningfixes.patch b/sys-fs/udftools/files/udftools-1.0.0b3-warningfixes.patch
new file mode 100644
index 000000000000..5b530c6041e1
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b3-warningfixes.patch
@@ -0,0 +1,94 @@
+taken from Fedora
+
+http://pkgs.fedoraproject.org/cgit/udftools.git/tree/udftools-1.0.0b3-warningfixes.patch?h=f22
+
+diff -Naupr udftools-1.0.0b3.orig/cdrwtool/cdrwtool.h udftools-1.0.0b3/cdrwtool/cdrwtool.h
+--- udftools-1.0.0b3.orig/cdrwtool/cdrwtool.h 2002-11-26 08:18:50.000000000 +0100
++++ udftools-1.0.0b3/cdrwtool/cdrwtool.h 2006-07-27 14:16:06.000000000 +0200
+@@ -226,6 +226,7 @@ int read_disc_info(int, disc_info_t *);
+ int read_track_info(int, track_info_t *, int);
+ int reserve_track(int, struct cdrw_disc *);
+ int close_track(int, unsigned int);
++int close_session(int, unsigned int);
+ int read_buffer_cap(int, struct cdrw_disc *);
+ int set_cd_speed(int, int);
+ void cdrom_close(int);
+@@ -236,5 +237,6 @@ int print_disc_track_info(int);
+ void make_write_page(write_params_t *, struct cdrw_disc *);
+ void print_params(write_params_t *);
+ void cdrw_init_disc(struct cdrw_disc *);
++int udf_set_version(struct udf_disc *, int);
+
+ #endif /* _CDRWTOOL_H */
+diff -Naupr udftools-1.0.0b3.orig/include/udf_endian.h udftools-1.0.0b3/include/udf_endian.h
+--- udftools-1.0.0b3.orig/include/udf_endian.h 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3/include/udf_endian.h 2006-07-27 14:09:30.000000000 +0200
+@@ -23,6 +23,8 @@
+ #ifndef __UDF_ENDIAN_H
+ #define __UDF_ENDIAN_H
+
++#include <string.h>
++
+ #include "bswap.h"
+
+ static inline lb_addr lelb_to_cpu(lb_addr in)
+diff -Naupr udftools-1.0.0b3.orig/libudffs/unicode.c udftools-1.0.0b3/libudffs/unicode.c
+--- udftools-1.0.0b3.orig/libudffs/unicode.c 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3/libudffs/unicode.c 2006-07-27 14:11:17.000000000 +0200
+@@ -169,8 +169,6 @@ error_out:
+
+ int decode_string(struct udf_disc *disc, char *in, char *out, int inlen)
+ {
+- int i;
+-
+ if (disc->flags & FLAG_UTF8)
+ return decode_utf8(in, out, inlen);
+ else if (disc->flags & (FLAG_UNICODE8 | FLAG_UNICODE16))
+diff -Naupr udftools-1.0.0b3.orig/pktsetup/pktsetup.c udftools-1.0.0b3/pktsetup/pktsetup.c
+--- udftools-1.0.0b3.orig/pktsetup/pktsetup.c 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3/pktsetup/pktsetup.c 2006-07-27 14:18:24.000000000 +0200
+@@ -23,6 +23,7 @@
+ #include <getopt.h>
+ #include <bits/types.h>
+ #include <sys/types.h>
++#include <string.h>
+
+ #include <linux/cdrom.h>
+
+diff -Naupr udftools-1.0.0b3.orig/wrudf/Makefile.am udftools-1.0.0b3/wrudf/Makefile.am
+--- udftools-1.0.0b3.orig/wrudf/Makefile.am 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3/wrudf/Makefile.am 2006-07-27 14:21:24.000000000 +0200
+@@ -1,5 +1,5 @@
+ bin_PROGRAMS = wrudf
+ wrudf_LDADD = $(top_builddir)/libudffs/libudffs.la -lreadline -lncurses
+-wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h
++wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ../include/libudffs.h
+
+ AM_CPPFLAGS = -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DDEBUG
+diff -Naupr udftools-1.0.0b3.orig/wrudf/Makefile.in udftools-1.0.0b3/wrudf/Makefile.in
+--- udftools-1.0.0b3.orig/wrudf/Makefile.in 2004-02-23 10:33:48.000000000 +0100
++++ udftools-1.0.0b3/wrudf/Makefile.in 2006-07-27 14:21:44.000000000 +0200
+@@ -85,7 +85,7 @@ am__quote = @am__quote@
+ install_sh = @install_sh@
+ bin_PROGRAMS = wrudf
+ wrudf_LDADD = $(top_builddir)/libudffs/libudffs.la -lreadline -lncurses
+-wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h
++wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ../include/libudffs.h
+
+ AM_CPPFLAGS = -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DDEBUG
+ subdir = wrudf
+diff -Naupr udftools-1.0.0b3.orig/wrudf/wrudf.h udftools-1.0.0b3/wrudf/wrudf.h
+--- udftools-1.0.0b3.orig/wrudf/wrudf.h 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3/wrudf/wrudf.h 2006-07-27 14:22:33.000000000 +0200
+@@ -23,9 +23,11 @@
+ #include <sys/time.h>
+ #include <time.h>
+ #include <stdint.h>
++#include <string.h>
+
+ #include "ecma_167.h"
+ #include "osta_udf.h"
++#include "libudffs.h"
+
+ struct generic_desc
+ {
diff --git a/sys-fs/udftools/files/udftools-1.0.0b3-warningfixes2.patch b/sys-fs/udftools/files/udftools-1.0.0b3-warningfixes2.patch
new file mode 100644
index 000000000000..1593eb600fae
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b3-warningfixes2.patch
@@ -0,0 +1,160 @@
+taken from Fedora
+
+http://pkgs.fedoraproject.org/cgit/udftools.git/tree/udftools-1.0.0b3-warningfixes2.patch?h=f22
+
+diff -ur udftools-1.0.0b3/libudffs/file.c udftools-1.0.0b3-new/libudffs/file.c
+--- udftools-1.0.0b3/libudffs/file.c 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3-new/libudffs/file.c 2007-08-23 14:02:07.000000000 +0200
+@@ -576,7 +576,7 @@
+ tmp = leBPL_to_cpup(p);
+ found_first:
+ tmp |= (~0UL << size);
+- if (tmp == ~0UL) /* Are any bits zero? */
++ if (tmp == (uintBPL)~0UL) /* Are any bits zero? */
+ return result + size; /* Nope. */
+ found_middle:
+ return result + ffz(tmp);
+diff -ur udftools-1.0.0b3/mkudffs/mkudffs.c udftools-1.0.0b3-new/mkudffs/mkudffs.c
+--- udftools-1.0.0b3/mkudffs/mkudffs.c 2007-08-23 14:32:38.000000000 +0200
++++ udftools-1.0.0b3-new/mkudffs/mkudffs.c 2007-08-23 14:14:42.000000000 +0200
+@@ -72,7 +72,7 @@
+ disc->udf_pvd[0] = malloc(sizeof(struct primaryVolDesc));
+ memcpy(disc->udf_pvd[0], &default_pvd, sizeof(struct primaryVolDesc));
+ memcpy(&disc->udf_pvd[0]->recordingDateAndTime, &ts, sizeof(timestamp));
+- sprintf(&disc->udf_pvd[0]->volSetIdent[1], "%08lx%s",
++ sprintf((char *)&disc->udf_pvd[0]->volSetIdent[1], "%08lx%s",
+ mktime(tm), &disc->udf_pvd[0]->volSetIdent[9]);
+ disc->udf_pvd[0]->volIdent[31] = strlen(disc->udf_pvd[0]->volIdent);
+ disc->udf_pvd[0]->volSetIdent[127] = strlen(disc->udf_pvd[0]->volSetIdent);
+@@ -289,7 +289,7 @@
+ int write_disc(struct udf_disc *disc)
+ {
+ struct udf_extent *start_ext;
+- int ret;
++ int ret=0;
+
+ start_ext = disc->head;
+
+@@ -299,6 +299,7 @@
+ return ret;
+ start_ext = start_ext->next;
+ }
++ return ret;
+ }
+
+ void setup_vrs(struct udf_disc *disc)
+@@ -450,7 +451,7 @@
+ struct unallocSpaceEntry *use;
+ short_ad *sad;
+ int max = (0x3FFFFFFF / disc->blocksize) * disc->blocksize;
+- int pos;
++ int pos=0;
+ long long rem;
+
+ if (disc->flags & FLAG_STRATEGY4096)
+diff -ur udftools-1.0.0b3/wrudf/ide-pc.c udftools-1.0.0b3-new/wrudf/ide-pc.c
+--- udftools-1.0.0b3/wrudf/ide-pc.c 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3-new/wrudf/ide-pc.c 2007-08-23 14:32:09.000000000 +0200
+@@ -31,6 +31,7 @@
+ #include <sys/types.h> /* for u_char etc. */
+ #include <linux/cdrom.h>
+ #include <unistd.h> /* sleep() */
++#include <stdlib.h>
+
+ #include "bswap.h"
+ #include "ide-pc.h"
+diff -ur udftools-1.0.0b3/wrudf/wrudf.c udftools-1.0.0b3-new/wrudf/wrudf.c
+--- udftools-1.0.0b3/wrudf/wrudf.c 2007-08-23 14:32:38.000000000 +0200
++++ udftools-1.0.0b3-new/wrudf/wrudf.c 2007-08-23 14:26:41.000000000 +0200
+@@ -245,7 +245,7 @@
+ } else if( strncmp( spm->partIdent.ident, UDF_ID_VIRTUAL, strlen(UDF_ID_VIRTUAL)) == 0 )
+ virtualPartitionNum = i;
+ }
+- spm = (char*)spm + spm->partitionMapLength;
++ spm = (struct sparablePartitionMap*)((char*)spm + spm->partitionMapLength);
+ }
+
+ if( medium == CDR ) {
+@@ -300,7 +300,7 @@
+ fail("SpaceBitmap not found\n");
+ }
+
+- if (fsdLen = decode_utf8(fsd->fileSetIdent, fsdOut, fsd->fileSetIdent[31]))
++ if ((fsdLen = decode_utf8(fsd->fileSetIdent, fsdOut, fsd->fileSetIdent[31]))>=0)
+ fsdOut[fsdLen] = '\0';
+
+ printf("You are going to update fileset '%s'\nProceed (y/N) : ", &fsdOut[1]);
+@@ -605,7 +605,7 @@
+ int
+ main(int argc, char** argv)
+ {
+- int rv;
++ int rv=0;
+ int cmnd;
+ char prompt[256];
+ Directory *d;
+diff -ur udftools-1.0.0b3/wrudf/wrudf-cdrw.c udftools-1.0.0b3-new/wrudf/wrudf-cdrw.c
+--- udftools-1.0.0b3/wrudf/wrudf-cdrw.c 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3-new/wrudf/wrudf-cdrw.c 2007-08-23 14:30:14.000000000 +0200
+@@ -614,7 +614,6 @@
+ readTaggedBlock(uint32_t lbn, uint16_t partition)
+ {
+ int i;
+- uint32_t blkno;
+ uint8_t sum, *p;
+ struct generic_desc *block;
+
+@@ -634,7 +633,7 @@
+ if( strncmp(((struct sparingTable*)block)->sparingIdent.ident, UDF_ID_SPARING, strlen(UDF_ID_SPARING)) != 0 ) {
+ for( i = 0; i < 2048; i++ ) {
+ if( ((uint8_t*)block)[i] != 0 ) {
+- printf("readTaggedBlock: Empty block %d not all zeroes\n", blkno);
++ printf("readTaggedBlock: Empty block %d not all zeroes\n", lbn);
+ break;
+ }
+ }
+@@ -647,10 +646,10 @@
+ sum += *(p + i);
+
+ if( block->descTag.tagChecksum != sum )
+- fail("readTagged: Checksum error in block %d\n", blkno);
++ fail("readTagged: Checksum error in block %d\n", lbn);
+
+ if( block->descTag.descCRC != udf_crc((uint8_t*)block + sizeof(tag), ((tag*)block)->descCRCLength, 0) )
+- fail("readTagged: CRC error in block %d\n", blkno);
++ fail("readTagged: CRC error in block %d\n", lbn);
+
+ return block;
+ }
+@@ -709,8 +708,8 @@
+ writeExtents(char* src, int usesShort, void* extents)
+ {
+ uint len, blkno, partitionNumber;
+- long_ad *lo;
+- short_ad *sh;
++ long_ad *lo=NULL;
++ short_ad *sh=NULL;
+
+ if( usesShort ) {
+ sh = (short_ad*) extents;
+diff -ur udftools-1.0.0b3/wrudf/wrudf-cmnd.c udftools-1.0.0b3-new/wrudf/wrudf-cmnd.c
+--- udftools-1.0.0b3/wrudf/wrudf-cmnd.c 2002-11-26 08:18:51.000000000 +0100
++++ udftools-1.0.0b3-new/wrudf/wrudf-cmnd.c 2007-08-23 14:22:41.000000000 +0200
+@@ -45,7 +45,7 @@
+ int
+ copyFile(Directory *dir, char* inName, char*newName, struct stat *fileStat)
+ {
+- int fd, i, blkno;
++ int fd, i=0, blkno;
+ uint32_t nBytes, blkInPkt;
+ uint32_t maxVarPktSize; // in bytes
+ struct fileIdentDesc *fid;
+@@ -54,7 +54,7 @@
+
+ fd = open(inName, O_RDONLY);
+ if( fd == 0 ) {
+- printf("'%s' does not exist\n", cmndv[i]);
++ printf("'%s' does not exist\n", inName);
+ return CMND_FAILED;
+ }
+
diff --git a/sys-fs/udftools/files/udftools-1.0.0b3-wrudf_help.patch b/sys-fs/udftools/files/udftools-1.0.0b3-wrudf_help.patch
new file mode 100644
index 000000000000..06d9c3f616f4
--- /dev/null
+++ b/sys-fs/udftools/files/udftools-1.0.0b3-wrudf_help.patch
@@ -0,0 +1,52 @@
+taken from Fedora
+
+http://pkgs.fedoraproject.org/cgit/udftools.git/tree/udftools-1.0.0b3-wrudf_help.patch?h=f22
+
+diff -up wrk/wrudf/wrudf.c.wrk wrk/wrudf/wrudf.c
+--- wrk/wrudf/wrudf.c.wrk 2013-04-15 15:32:03.395528452 +0200
++++ wrk/wrudf/wrudf.c 2013-04-15 16:06:37.535546730 +0200
+@@ -603,6 +603,28 @@ parseCmnd(char* line)
+ return cmnd;
+ }
+
++int show_help()
++{
++ char *msg =
++ "Interactive tool to maintain an UDF filesystem.\n"
++ "Usage:\n"
++ "\twrudf [device]\n"
++ "Available commands:\n"
++ "\tcp\n"
++ "\trm\n"
++ "\tmkdir\n"
++ "\trmdir\n"
++ "\tlsc\n"
++ "\tlsh\n"
++ "\tcdc\n"
++ "\tcdh\n"
++ "Specify cdh/lsh or cdc/lsc to do cd or ls for Harddisk or CompactDisc.\n"
++ "\tquit\n"
++ "\texit\n";
++ printf("%s", msg);
++ return 0;
++}
++
+ int
+ main(int argc, char** argv)
+ {
+@@ -614,8 +636,14 @@ main(int argc, char** argv)
+ printf("wrudf " WRUDF_VERSION "\n");
+ devicename= "/dev/cdrom";
+
+- if(argc > 1 )
++ if(argc > 1 ) {
++ if (strcmp(argv[1], "-h")==0 || strcmp(argv[1], "-help")==0 || strcmp(argv[1], "--help")==0) {
++ return show_help();
++ }
++ }
++ else {
+ devicename = argv[1]; /* can specify disk image filename */
++ }
+
+ if( setpriority(PRIO_PROCESS, 0, -10) ) {
+ printf("setpriority(): %m\n");
diff --git a/sys-fs/udftools/metadata.xml b/sys-fs/udftools/metadata.xml
new file mode 100644
index 000000000000..67407dddd9c6
--- /dev/null
+++ b/sys-fs/udftools/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">linux-udf</remote-id>
+ <remote-id type="github">pali/udftools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/udftools/udftools-1.0.0b-r10.ebuild b/sys-fs/udftools/udftools-1.0.0b-r10.ebuild
new file mode 100644
index 000000000000..871fc46344f9
--- /dev/null
+++ b/sys-fs/udftools/udftools-1.0.0b-r10.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic
+
+MY_P=${P}3
+
+DESCRIPTION="Ben Fennema's tools for packet writing and the UDF filesystem"
+HOMEPAGE="https://sourceforge.net/projects/linux-udf/"
+SRC_URI="mirror://sourceforge/linux-udf/${MY_P}.tar.gz
+ http://w1.894.telia.com/~u89404340/patches/packet/${MY_P}.patch.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-libs/readline"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ # For new kernel packet writing driver
+ epatch "${WORKDIR}"/${MY_P}.patch
+ epatch "${FILESDIR}"/cdrwtool-linux2.6-fix-v2.patch
+ epatch "${FILESDIR}"/${P}-gcc4.patch #112122
+ epatch "${FILESDIR}"/${P}-bigendian.patch #120245
+ epatch "${FILESDIR}"/${P}-openflags.patch #232100
+ epatch "${FILESDIR}"/${P}-limits_h.patch
+ epatch "${FILESDIR}"/${P}3-extsize.patch
+ epatch "${FILESDIR}"/${P}3-man-missing-options.patch
+ epatch "${FILESDIR}"/${P}3-mkudffs-bigendian.patch
+ epatch "${FILESDIR}"/${P}3-staticanal.patch
+ epatch "${FILESDIR}"/${P}3-warningfixes.patch
+ epatch "${FILESDIR}"/${P}3-warningfixes2.patch
+ epatch "${FILESDIR}"/${P}3-wrudf_help.patch
+ # Force older C standard as the code relies on static inline behavior. #548324
+ append-flags -std=gnu89
+}
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/pktcdvd.init pktcdvd
+ dosym /usr/bin/udffsck /usr/sbin/fsck.udf
+}
diff --git a/sys-fs/udftools/udftools-1.0.0b-r9.ebuild b/sys-fs/udftools/udftools-1.0.0b-r9.ebuild
new file mode 100644
index 000000000000..af812aa19e16
--- /dev/null
+++ b/sys-fs/udftools/udftools-1.0.0b-r9.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit eutils flag-o-matic
+
+MY_P=${P}3
+
+DESCRIPTION="Ben Fennema's tools for packet writing and the UDF filesystem"
+HOMEPAGE="https://sourceforge.net/projects/linux-udf/"
+SRC_URI="mirror://sourceforge/linux-udf/${MY_P}.tar.gz
+ http://w1.894.telia.com/~u89404340/patches/packet/${MY_P}.patch.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc sparc x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-libs/readline"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ # For new kernel packet writing driver
+ epatch "${WORKDIR}"/${MY_P}.patch
+ epatch "${FILESDIR}"/cdrwtool-linux2.6-fix-v2.patch
+ epatch "${FILESDIR}"/${P}-gcc4.patch #112122
+ epatch "${FILESDIR}"/${P}-bigendian.patch #120245
+ epatch "${FILESDIR}"/${P}-openflags.patch #232100
+ epatch "${FILESDIR}"/${P}-limits_h.patch
+ # Force older C standard as the code relies on static inline behavior. #548324
+ append-flags -std=gnu89
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc ChangeLog
+ newinitd "${FILESDIR}"/pktcdvd.init pktcdvd
+ dosym /usr/bin/udffsck /usr/sbin/fsck.udf
+}
diff --git a/sys-fs/udftools/udftools-1.1.ebuild b/sys-fs/udftools/udftools-1.1.ebuild
new file mode 100644
index 000000000000..efaa1d7e62cc
--- /dev/null
+++ b/sys-fs/udftools/udftools-1.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="Ben Fennema's tools for packet writing and the UDF filesystem"
+HOMEPAGE="https://github.com/pali/udftools/ https://sourceforge.net/projects/linux-udf/"
+SRC_URI="https://github.com/pali/udftools/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc sparc x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-libs/readline:0="
+DEPEND="${RDEPEND}"
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/pktcdvd.init pktcdvd
+ dosym mkudffs.8 /usr/share/man/man8/mkfs.udf.8
+}
diff --git a/sys-fs/udftools/udftools-1.2.ebuild b/sys-fs/udftools/udftools-1.2.ebuild
new file mode 100644
index 000000000000..85ccd12101c5
--- /dev/null
+++ b/sys-fs/udftools/udftools-1.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="Ben Fennema's tools for packet writing and the UDF filesystem"
+HOMEPAGE="https://github.com/pali/udftools/ https://sourceforge.net/projects/linux-udf/"
+SRC_URI="https://github.com/pali/udftools/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-libs/readline:0="
+DEPEND="${RDEPEND}"
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/pktcdvd.init pktcdvd
+ dosym mkudffs.8 /usr/share/man/man8/mkfs.udf.8
+}
diff --git a/sys-fs/udftools/udftools-1.3.ebuild b/sys-fs/udftools/udftools-1.3.ebuild
new file mode 100644
index 000000000000..d2a858cd9b0a
--- /dev/null
+++ b/sys-fs/udftools/udftools-1.3.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="Ben Fennema's tools for packet writing and the UDF filesystem"
+HOMEPAGE="https://github.com/pali/udftools/ https://sourceforge.net/projects/linux-udf/"
+SRC_URI="https://github.com/pali/udftools/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="sys-libs/readline:0="
+DEPEND="${RDEPEND}"
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/pktcdvd.init pktcdvd
+ dosym mkudffs.8 /usr/share/man/man8/mkfs.udf.8
+}
diff --git a/sys-fs/udiskie/Manifest b/sys-fs/udiskie/Manifest
new file mode 100644
index 000000000000..0d60311cacf5
--- /dev/null
+++ b/sys-fs/udiskie/Manifest
@@ -0,0 +1,9 @@
+DIST udiskie-0.6.2.tar.gz 48983 SHA256 94427cc626efc375dfc8f7b8dfc4eb7028e69829f3eb42e7f54d20a4780cbf37 SHA512 5e1aae4b31c9d7d1a438c2153bbdc5bb45a1f28264c80ed11d060e507949c996cc8fa0b85b506d7ee0f867b583529d6c039353ea19490c3c158c7d94c7ad9e26 WHIRLPOOL bd5e8d9871c87173198cb1747fcd707888e32357ef7c8d1bd0afd8a08b876cf6361690a27bc0cff21432b2bca770315d613dc0bb08d79002c67a689bc35b4e94
+DIST udiskie-0.6.4.tar.gz 51201 SHA256 fe0f387b50266016042cb6e551f7cb9c17246e5bb58f2a8833d7bfa83b2f9d44 SHA512 a3eca82e5595d961fe52bb9c3379ec18a5d187d0d7afd48f4801155570a50b742c27cb3a93a58535d57bbf8a0bc673366d1c57bf38a32d92e53fb31b98133bfa WHIRLPOOL 3297ecee02b2994471bf8e74650efe390e32c5b75384ed5fd0220eceb27d8863291f476643b1694810fef1d9e8136525235fe8f8a2c0f162c9a9d46e19f1e1da
+DIST udiskie-1.1.1.tar.gz 62207 SHA256 5d7750d4264cd1defc812bf0bc9ec63e52ed859b6d40e4d1941846ec8f8eddea SHA512 0524aeafb4777039a35be8854a0cf3bdbefd43eccb758da9aa2fa71fc4041816ff009dbbff20b4906c9bac281995c9923fcf542107a83c76ecb8c45d6b20b1ba WHIRLPOOL 7bddf8c6e90457e16f17dd4375cd66447d585f264837a03daee1ffe1935990108c37ad4c3de1a51ebe34e111953a30460d11f1807fc80d547129ebba100ade0a
+EBUILD udiskie-0.6.2.ebuild 1230 SHA256 fe95271877c59c8be533f71a8a515cb540d7501650d497d22695dc3e723256fd SHA512 5bfeb4d461f3672c52c0753f4a1e16655c41643671d0e6894b86435f8dbb1e0fc70a0ae5ded6b0f4b6aea0f4e6b8265f56b93f7502bf9b6f881120bfe7ddf560 WHIRLPOOL 78b1cb982339cc9aaab278af8df8472745aed5091e9f97cca086a65558c29ca12f127111b80c4e3354dca49ea0c524fabd55c59c48067d072427a5ea6d702af5
+EBUILD udiskie-0.6.4.ebuild 1232 SHA256 c45489d1624f92b191b7fa8bf642f81b88bd45d75a5854db3a708c227bcf6295 SHA512 f894bfd20993e7e27f24c1c00abe62a3eac0b5d0f5054c9d9e1b97651df75ad1e8e092bc139f46837c3d7f07fae40bfc8922609b5b9230470f5a5bb32c2c608c WHIRLPOOL b20662872d6b28d9114109e732a3e9b2b021e0b881d4c5027599cbfbba6d43f2722ebb4407eb9b11b6e589ed41d75a71deb0e2c83462ff8da15914eb195fbc2f
+EBUILD udiskie-1.1.1.ebuild 1083 SHA256 b273c1bd281369ab0f00832a12509b31480da425dcf04ea60ce7222ce02fae0e SHA512 8e46253bc32c8c47155a1505ec1a5eef3566b2fcc947280633fd33c8057ad6b2c954a7f7a50fd7ca148c665965cbaee1120d2add7cbae337578da53f89db6a63 WHIRLPOOL 56eadfaade7be2ec7590719fe17ccff8954e06e08b1e3602703fe190da11bbdb924d7deba113c3ea31411a41c2c61e5bb41610b234dc317c5279342b0114e105
+MISC ChangeLog 2718 SHA256 8041d46977b5244da44768daa2f8213660ba0ee5008bfcaef2544f1a90e86869 SHA512 144c24fa0328edce2a239c0f950f82ea7e6fe2902e259ad89f3b775bf901375523b5ba62e6d69c7edc90918c8f52c1761caab679aedb95395560e1385942c180 WHIRLPOOL eff659525257d6e1f6e331e2c7bc08bc756993d52c25e9e7d9bfeafb4013eb6c84f79ea3f4616cb4ed95b14376f33a153909ab5f156976058d1643e6e26fd804
+MISC ChangeLog-2015 5067 SHA256 b34b0441a6d3ee897abd716a9ed2802897184dff35a83c3250ed3b00f4d480e4 SHA512 e53a535d01d40aac85f611b6d38fe3abc34bd35884c4f5e35e6e0aa7157676bb59789485ba1cad4183db15b4b008fe2feaff8c006582ffb42fe048e32e8b0814 WHIRLPOOL cfbada0eadbd14eda9fd4fbb55622d571d0ce0c6ec34437fe45c5bd1f1b77cee86a6ea8a186b222452bd7d52c3f43eab454267eaa8746e0f6b3dc37c8852726e
+MISC metadata.xml 413 SHA256 ed2710d80c9ff1798701e2aabfe8aa76c0ab257f2a4923e0872626aa513cd5e1 SHA512 93ed2c34771e140294037907d5f8bf8086f2cbbcad1c47d37efaa67064bb6592446321093b9fbe4f18cb892828f6ee98ad82a5c255f6df8315c731aadaa81ee3 WHIRLPOOL daef89e10bd2cd29bc80e7cb93467302a71c564ba58fdb2be19f680a7045bc54348b09a034f572b44ff9ffefd5966efb51a5ef3f61d2938b80a61631a9307828
diff --git a/sys-fs/udiskie/metadata.xml b/sys-fs/udiskie/metadata.xml
new file mode 100644
index 000000000000..6d05e57ef3a9
--- /dev/null
+++ b/sys-fs/udiskie/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>desktop-misc@gentoo.org</email>
+ <name>Gentoo Desktop Miscellaneous Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">udiskie</remote-id>
+ <remote-id type="github">coldfix/udiskie</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/udiskie/udiskie-0.6.2.ebuild b/sys-fs/udiskie/udiskie-0.6.2.ebuild
new file mode 100644
index 000000000000..3482df594ece
--- /dev/null
+++ b/sys-fs/udiskie/udiskie-0.6.2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1 gnome2-utils readme.gentoo
+
+DESCRIPTION="An automatic disk mounting service using udisks"
+HOMEPAGE="https://pypi.python.org/pypi/udiskie https://github.com/coldfix/udiskie"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE=""
+
+RDEPEND="dev-python/dbus-python
+ dev-python/notify-python
+ dev-python/pygobject:2
+ dev-python/pyxdg
+ sys-fs/udisks"
+DEPEND="app-text/asciidoc
+ dev-python/setuptools"
+
+DOC_CONTENTS="You have to select which sys-fs/udisks SLOT you want to use:\n
+# emerge --noreplace 'sys-fs/udisks:0' (for UDisks 1.0.4+)\nor\n
+# emerge --noreplace 'sys-fs/udisks:2' (for UDisks 2.0.0+)"
+
+src_prepare() {
+ sed -i -e 's:gtk-update-icon-cache:true:' setup.py || die
+ distutils-r1_src_prepare
+}
+
+src_compile() {
+ distutils-r1_src_compile
+ emake -C doc
+}
+
+src_install() {
+ distutils-r1_src_install
+ doman doc/${PN}.8
+ readme.gentoo_src_install
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ readme.gentoo_pkg_postinst
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/sys-fs/udiskie/udiskie-0.6.4.ebuild b/sys-fs/udiskie/udiskie-0.6.4.ebuild
new file mode 100644
index 000000000000..f0a1b760edee
--- /dev/null
+++ b/sys-fs/udiskie/udiskie-0.6.4.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1 gnome2-utils readme.gentoo
+
+DESCRIPTION="An automatic disk mounting service using udisks"
+HOMEPAGE="https://pypi.python.org/pypi/udiskie https://github.com/coldfix/udiskie"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND="dev-python/dbus-python
+ dev-python/notify-python
+ dev-python/pygobject:2
+ dev-python/pyxdg
+ sys-fs/udisks"
+DEPEND="app-text/asciidoc
+ dev-python/setuptools"
+
+DOC_CONTENTS="You have to select which sys-fs/udisks SLOT you want to use:\n
+# emerge --noreplace 'sys-fs/udisks:0' (for UDisks 1.0.4+)\nor\n
+# emerge --noreplace 'sys-fs/udisks:2' (for UDisks 2.0.0+)"
+
+src_prepare() {
+ sed -i -e 's:gtk-update-icon-cache:true:' setup.py || die
+ distutils-r1_src_prepare
+}
+
+src_compile() {
+ distutils-r1_src_compile
+ emake -C doc
+}
+
+src_install() {
+ distutils-r1_src_install
+ doman doc/${PN}.8
+ readme.gentoo_src_install
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ readme.gentoo_pkg_postinst
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/sys-fs/udiskie/udiskie-1.1.1.ebuild b/sys-fs/udiskie/udiskie-1.1.1.ebuild
new file mode 100644
index 000000000000..2e069af73c33
--- /dev/null
+++ b/sys-fs/udiskie/udiskie-1.1.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit distutils-r1 gnome2-utils
+
+DESCRIPTION="An automatic disk mounting service using udisks"
+HOMEPAGE="https://pypi.python.org/pypi/udiskie https://github.com/coldfix/udiskie"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND="dev-python/docopt[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/pyxdg[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ sys-fs/udisks:2"
+DEPEND="app-text/asciidoc
+ dev-python/setuptools[${PYTHON_USEDEP}]"
+
+src_prepare() {
+ sed -i \
+ -e "s:udiskie.__version__:2:" \
+ -e 's:gtk-update-icon-cache:true:' \
+ setup.py || die
+
+ distutils-r1_src_prepare
+}
+
+src_compile() {
+ distutils-r1_src_compile
+ emake -C doc
+}
+
+src_install() {
+ distutils-r1_src_install
+ doman doc/${PN}.8
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/sys-fs/udisks/Manifest b/sys-fs/udisks/Manifest
new file mode 100644
index 000000000000..7d7f61c0a4f0
--- /dev/null
+++ b/sys-fs/udisks/Manifest
@@ -0,0 +1,20 @@
+AUX udisks-1.0.2-ntfs-3g.patch 198 SHA256 1db923f52619c2dcc6c30ffedcd47dedce048dbec2eb781088738e51f8dc0539 SHA512 3e9ba97d3d413e43df2c9e76dc88d9dc58d2f168509587228fc6c7b353111c9976b3cd1220bd4904d0e12ed2d804cd0807293a0982a8ee397692c676c567e716 WHIRLPOOL 365a00e248d6fe4ac7e5ce18a92b6f76611461ffe5c186e29eda521809381e3ec2c1bcc71b34f35513befdfcc99bec09fd741246a62e1b6feb48e95c31f841cc
+AUX udisks-1.0.4-revert-floppy.patch 688 SHA256 65c0a6ec9a60762f6771d8e35bc71381feca9d40e27d6aa6374b374d3232d80f SHA512 044f40313ef5c8eeaac512d428e97b420507cd24cf25074768376733cf308676fbb1a429f462e4b06313344de1b7012b43ad4e6607d096758f0dd0e3effafbba WHIRLPOOL f02b378bbfca9c49a9d235aae29818772ef7ae05b5560aa67a326fe930925902bcc091aa121704bd47619b0b2f3b0c8d4ea01d076b603991a486e6c5cb274876
+AUX udisks-1.0.5-stat-includes.patch 656 SHA256 4b65ff3aeeb42aec37763f0f6a05304be6c913abb30e294dc22829b363ae257d SHA512 f399d3e242839a339412f03c174975834c2c6e6515ed50b6b87b33974ae091421b5179b12b78cc06d339b41046d3a70ab78767e194081467c2cbd4c8fdc61c02 WHIRLPOOL 6ee5c9113d58170504c90e57edb2f76e549177b97fbb013979bfcbb698411db656a55eb131a63efd9d4e62111ef30770f032a2b26564bc00b3d2ab0620d39bad
+AUX udisks-1.0.5-sysmacros.patch 1773 SHA256 eb02de05abea7280aed1dfdc6b6c23bff993a41e8844327414b45bb473c267f4 SHA512 9402c931dda2f415577f3b6d60cab03891e83cc804a0cbd790bb3bc71d160d8b6fa14d13829281ffb55a9032ac289798ee5f2d6e14348c96a4e9b1e922111bb2 WHIRLPOOL 6aa7145b3af41a24a8c0c60768279e95d4a966c4c417c63ebd97c871b02702436f83a4a8b7630dad10bbcf55bcb028b059ea95d967f710b14778ac99a71be5d6
+AUX udisks-2.6.4-udisksdprivdir.patch 827 SHA256 f039db880fb62740042248eea65a1621a0e8d3e9df4516ec0608290ebcc1177f SHA512 43c4d01620c6d70a5ae46cbad03fc6d34012e0eed33abf29b8ee14ad2004c22b7c550c9ada11eb97f15195669baae1aefbe1ebf239a3bb97199e24add08a6f15 WHIRLPOOL 0f8bfec72e6a3f55cc73c1b2d741cb11d942dd9f9a85a806978db1ad4f4dc046894a1ceea329a38dd5551fa179f341f5512a0e1f5287af66f20e582c10f53df3
+DIST udisks-1.0.5.tar.gz 736221 SHA256 f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71 SHA512 bdf4970113975221ff0e17866db18fd969ff9c8e1e851c8ad7572630814ab0c46b59df59433edcb2e7cc41cc8152afd35807f45e07f6d0fa87b21b5a77d0965a WHIRLPOOL 4698911bf53532b5149a71ab1a031fa836193476114ba26f0cde588c3095661f21492feb855e1eb3aa8f1c87ad8125bdc32b7cf56ac43f2de84073f3085f39eb
+DIST udisks-2.1.8.tar.bz2 931110 SHA256 da416914812a77e5f4d82b81deb8c25799fd3228d27d52f7bf89a501b1857dda SHA512 4f8adc0ebd5e8f34801722cacef09fe176a0e301889b98ecddad1bfbc61b008b2035518cdaf270258a80e087b0a5cb685ddba1373ba332a8d7967656a08156cb WHIRLPOOL 396465f32c9798495e4cd1ce541b619e5ed9d2693561da9a2630eeb27933deac8fa3959ee0c4f16d63bad297f4cadf8df9a4e5dd07b7dc06951cb84d12c64e64
+DIST udisks-2.6.4.tar.gz 1242262 SHA256 7c7889dbd8f910b8a8094841168c04d48e0bdaf946b22aa5f0742a460473c191 SHA512 8cd4fa1c2873f2150448bb81268feb38802959bb860fa41f9cc4f088327faf207011a3ea15c121f531dc0a8cd65a3fff14615b79bdaa5f59f52f4ede4d44532c WHIRLPOOL cc54fe2ca683d9adc61448a48e1a9be43c1bbc5b4c1902f8ea2fbf7561e8f798edca6e7e6cfce55ad6b902ffb40045d2ae2ec49784dd88fa9f680b69e021aa1c
+DIST udisks-2.6.5.tar.gz 1251008 SHA256 817e2de4efab458a98b24b15066933692e6ee3777430211b4e7aeddd0b9045f2 SHA512 57ac878c981af1b91a2e93af154c81471853969a1c951ce11c83f39e4450354da58d447c7644f477e39b602e673d76ecafe34fc7ba1346abf1f71707bcc324a7 WHIRLPOOL 43f66f3410d68ef8b6db8050d30ada83307fe5236e011752f67d1f45c5c81c1f4714fe6fde8377544a3054192482731d58206bf8af94e50a9e713df7a78912b3
+DIST udisks-2.7.2.tar.gz 1269868 SHA256 34d834520efcfbb8cca33ccf703e45752b32772ae766673dab6360202c7838aa SHA512 5729ba5314db88a72d932865352c133afb5b515a4e15f7d729f9074a3fcbc4ce195c7e58e0c4a8eb2df9fe4d29ccffed4be50cc605f1c6d7cf26f9b941ef7edb WHIRLPOOL d23443ddc254050a92caee6e84f29d9e6af72b5f5b70590510930623f7ac959237b0e6fe640fd8d2f6822fde073d0fd6a966563779443891a2ca0862fc296ee8
+DIST udisks-2.7.3.tar.gz 1282215 SHA256 96e09e94083228a7af1025c4040b56c7eeca9687e60fecf7f88be88291dcb1f1 SHA512 27761e52527ecfd080711e39efb6669b2e85fe388e9f34b2f99294b2fefdd0da489b74ff3b3c2d53a239ff1bd818d73a1fd8d88eb7a7ef660d51f338ac2c82fe WHIRLPOOL be2d96b75e1dee8c905104fe0b88fb08f997524da7795f870412f392676baffc361303ca7a60f3734091c84c35fdad00c7c052c348539147f3b4b87d2e4de62c
+EBUILD udisks-1.0.5-r1.ebuild 2748 SHA256 c4356e3d712522e94a7ba111d824e66001501e03c04f684ba5626d6a06dcc865 SHA512 bf49bb19bbddc413b06af20f5a1863f1d870c4ff5286e6c736a27f9e9ce769f6d1fc81e00edd0ee3a84b16241105eb91588046e2e2dc3b8767248b32703b61ee WHIRLPOOL 529f0b901b4f71bcc37fcc40eeee3e594275af1203d23580cb166bf587fe2469c7e703d21b442b46eec099a7b398efbe63312b1a5e02609aacd9193eedee8f30
+EBUILD udisks-2.1.8.ebuild 2997 SHA256 55f36ad8ec606bf08f47b5bf88bf8601546df61e254e11f5d52cd5192516224b SHA512 b035b304e9585c5cfced81a4700eede5de731f850e06eb76bd391ba7ab333c3acba8775c493ca83bde42679877e9ad8ce436fc202486c04db2a34cfca7485c25 WHIRLPOOL 2cc0bafbdd0e6eae2afe6c7e54b9f9e23cdd20523075496e0c0d470ad0c9542ce2b71dc7a46b485801519976babf37ec9aade008466053e47725c973a759c1b9
+EBUILD udisks-2.6.4.ebuild 3324 SHA256 c9f2e3531ea2359c738ecf8402b9cce1139c6ba8971746acb74121e227e24d36 SHA512 10444e0682ee6c7d5a4f88d471bf4e4a7468a62e15d754e559079e6660e5076ecd1d98256c60f2885415c312c859470a2a929f97313f24f2763a50bde929b06d WHIRLPOOL a2290e25c96d3e16cf0154975faa4a2d828d6eb1b4782e2e23104344e097acedffddce02d7ef626c41d4147488d77e135e9fd2546fbc88c0962cef262f0ca882
+EBUILD udisks-2.6.5.ebuild 3348 SHA256 465e0c41d05a37074a2c38abc9330d6261ee7f1cdd0672b1759760fa12967634 SHA512 ed5146d860532c61b6cda0f4dcffd8ad3ce4907b671369f4032b58070a3252f65959f5fe33bc44914b3f872d0f40d5bc1f7b9fe2e1345fb7ef04019fb3554cbc WHIRLPOOL c9318560b6675e28d73a885ab2c3a311b226195e4f323bf10ed8c749921db4a593990331678b3cf7e4fa7ae64e1bcf8e1c7e98514c6cc7bf247816003782db8d
+EBUILD udisks-2.7.2.ebuild 3406 SHA256 b7dc34d52df782dbc386d89c6fbd243cf8dfea68340076d389c136a552231bef SHA512 4d24e779a21d5749131375ef493188594a938796fadf1f5dfba51a6d445d78ec052aecc8cded8ebc016b4643881bf2744662d6c6672cacfe4b27db393a2c3db3 WHIRLPOOL caa101eab7330f932f616b233303ed2987f3a416586c485013f7cf6509076e058c0d009928d5c11782ba664c56791efef7108ca8f2635ebf49cb1ab7dda8603f
+EBUILD udisks-2.7.3.ebuild 3406 SHA256 b7dc34d52df782dbc386d89c6fbd243cf8dfea68340076d389c136a552231bef SHA512 4d24e779a21d5749131375ef493188594a938796fadf1f5dfba51a6d445d78ec052aecc8cded8ebc016b4643881bf2744662d6c6672cacfe4b27db393a2c3db3 WHIRLPOOL caa101eab7330f932f616b233303ed2987f3a416586c485013f7cf6509076e058c0d009928d5c11782ba664c56791efef7108ca8f2635ebf49cb1ab7dda8603f
+MISC ChangeLog 7173 SHA256 0be9ec0ca31628c2c57021397fa5b720aa4df817b00958f1f0820e7b2a0626a2 SHA512 316a9483dc1d859f056ae01b40c880b2a3bec76c71e6d8a2684bc2d4eaac29ac33932900526cde7b4d682342574ae3e89271530fdb8f8bcf599b997e3f670944 WHIRLPOOL 2dde76763a3ccdea8957b05822b52611a15c18e2f136ec370db9d7f2d3db8d68b27b62fcb456ddb743fd3bb0381574f94e8a32fe1ff703cf23dbffa8b1b953cf
+MISC ChangeLog-2015 26587 SHA256 893173bc27a1be910af8c400ac6acf905f3b03017189066b678e27dba667fd60 SHA512 651db8e37b19c5ee353f6fc5f6fb0528e039c97ef1bc2167f0e3742dadd6e39480ff1976a59635b0e4501fabdfe7319a4ebdca1d10f0be19f5bed1610268e621 WHIRLPOOL f6354286056b35099ef3d5848a26da135680211d35f023d313c162e33d72c72996dd47fa78fc231c6ca6ad4ac728c321f7dc20e5f1197fcdabec7af54998f9e0
+MISC metadata.xml 803 SHA256 8191b039989d93bc8efca49c2d3ffdd57a6c4681ab4c14a56c95f2003325e6d6 SHA512 c371035f733d2537c445d2fdd25e8754a6e92dc66e30e8610ec1112569799bce3101f98c5965df69c0fed25cc376a69e3f93d84c0c540e09b839cca44ad9585e WHIRLPOOL 24223570208cef48f5924b44689a01660214dd892edc73056e9dd1839c5251df81047fc0f1ed6449a6fd615509bb59d67280cde112196fe6587d0063f3cbe8eb
diff --git a/sys-fs/udisks/files/udisks-1.0.2-ntfs-3g.patch b/sys-fs/udisks/files/udisks-1.0.2-ntfs-3g.patch
new file mode 100644
index 000000000000..b6ba4a4849a8
--- /dev/null
+++ b/sys-fs/udisks/files/udisks-1.0.2-ntfs-3g.patch
@@ -0,0 +1,12 @@
+Support ntfs-3g by default without entry in /etc/filesystems for write access.
+
+--- src/device.c
++++ src/device.c
+@@ -5909,6 +5909,7 @@
+ "vfat",
+ "exfat",
+ "ntfs",
++ "ntfs-3g",
+ NULL,
+ };
+ \ No newline at end of file
diff --git a/sys-fs/udisks/files/udisks-1.0.4-revert-floppy.patch b/sys-fs/udisks/files/udisks-1.0.4-revert-floppy.patch
new file mode 100644
index 000000000000..0f13a6aba833
--- /dev/null
+++ b/sys-fs/udisks/files/udisks-1.0.4-revert-floppy.patch
@@ -0,0 +1,18 @@
+This change was done upstream to prevent UDisks1 from polling for floppy drive so often but broke
+mounting floppies while at it.
+
+http://bugs.freedesktop.org/show_bug.cgi?id=30283
+http://bugs.gentoo.org/show_bug.cgi?id=338185
+
+--- src/device.c
++++ src/device.c
+@@ -4485,7 +4485,8 @@ update_info (Device *device)
+ }
+ else
+ {
+- if (g_udev_device_get_property_as_boolean (device->priv->d, "ID_CDROM_MEDIA"))
++ if (g_udev_device_get_property_as_boolean (device->priv->d, "ID_CDROM_MEDIA") ||
++ g_udev_device_get_property_as_boolean (device->priv->d, "ID_DRIVE_FLOPPY"))
+ {
+ media_available = TRUE;
+ }
diff --git a/sys-fs/udisks/files/udisks-1.0.5-stat-includes.patch b/sys-fs/udisks/files/udisks-1.0.5-stat-includes.patch
new file mode 100644
index 000000000000..85ef5208049d
--- /dev/null
+++ b/sys-fs/udisks/files/udisks-1.0.5-stat-includes.patch
@@ -0,0 +1,25 @@
+From 0aa652a7b257f98f9e8e7dc7b0ddc9bc62377d09 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Fri, 29 May 2015 21:09:39 -0400
+Subject: [PATCH] Bug 90778 - fix build with newer glibc versions
+
+https://bugs.freedesktop.org/show_bug.cgi?id=90778
+---
+ src/helpers/job-drive-detach.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/helpers/job-drive-detach.c b/src/helpers/job-drive-detach.c
+index eeafcab..d122a1f 100644
+--- a/src/helpers/job-drive-detach.c
++++ b/src/helpers/job-drive-detach.c
+@@ -18,6 +18,7 @@
+ *
+ */
+
++#include <sys/stat.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <errno.h>
+--
+2.4.2
+
diff --git a/sys-fs/udisks/files/udisks-1.0.5-sysmacros.patch b/sys-fs/udisks/files/udisks-1.0.5-sysmacros.patch
new file mode 100644
index 000000000000..96ce943d385c
--- /dev/null
+++ b/sys-fs/udisks/files/udisks-1.0.5-sysmacros.patch
@@ -0,0 +1,72 @@
+https://bugs.gentoo.org/580230
+https://bugs.freedesktop.org/95028
+
+From 245093a15abe985b1746603c00084cb972fb71ae Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 19 Apr 2016 23:04:32 -0400
+Subject: [PATCH] include sys/sysmacros.h for major/minor/makedev
+
+Linux C libraries are moving away from implicit includes of
+sys/sysmacros.h, so pull in this header directly in the files
+that use these funcs.
+
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -38,6 +38,7 @@
+ #include <signal.h>
+ #include <errno.h>
+ #include <string.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+--- a/src/device.c
++++ b/src/device.c
+@@ -28,6 +28,7 @@
+ #include <signal.h>
+ #include <errno.h>
+ #include <string.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <sys/stat.h>
+--- a/src/mount-monitor.c
++++ b/src/mount-monitor.c
+@@ -27,6 +27,7 @@
+ #include <signal.h>
+ #include <errno.h>
+ #include <string.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <mntent.h>
+--- a/src/probers/part-id.c
++++ b/src/probers/part-id.c
+@@ -23,6 +23,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <unistd.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <sys/stat.h>
+--- a/tools/udisks.c
++++ b/tools/udisks.c
+@@ -28,6 +28,7 @@
+ #include <signal.h>
+ #include <errno.h>
+ #include <string.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/wait.h>
+--- a/tools/umount-udisks.c
++++ b/tools/umount-udisks.c
+@@ -28,6 +28,7 @@
+ #include <signal.h>
+ #include <errno.h>
+ #include <string.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
diff --git a/sys-fs/udisks/files/udisks-2.6.4-udisksdprivdir.patch b/sys-fs/udisks/files/udisks-2.6.4-udisksdprivdir.patch
new file mode 100644
index 000000000000..8564e2b83342
--- /dev/null
+++ b/sys-fs/udisks/files/udisks-2.6.4-udisksdprivdir.patch
@@ -0,0 +1,22 @@
+From 283e9093d541b8de0ecca324fde8fd38b560dc8e Mon Sep 17 00:00:00 2001
+From: Vojtech Trefny <vtrefny@redhat.com>
+Date: Mon, 24 Apr 2017 09:14:05 +0200
+Subject: [PATCH] Fix typo in data/Makefile.am
+
+---
+ data/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index af0cce2..83af330 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -6,7 +6,7 @@ dbusservice_in_files = org.freedesktop.UDisks2.service.in
+ dbusservice_DATA = $(dbusservice_in_files:.service.in=.service)
+
+ $(dbusservice_DATA): $(dbusservice_in_files) Makefile
+- @sed -e "s|\@udisksprivdir\@|$(libexecdir)/udisks2|" $< > $@
++ @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" $< > $@
+
+ dbusconfdir = $(sysconfdir)/dbus-1/system.d
+ dbusconf_in_files = org.freedesktop.UDisks2.conf.in
diff --git a/sys-fs/udisks/metadata.xml b/sys-fs/udisks/metadata.xml
new file mode 100644
index 000000000000..c65ac5a94044
--- /dev/null
+++ b/sys-fs/udisks/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>freedesktop-bugs@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="cryptsetup">Enable <pkg>sys-fs/cryptsetup</pkg> support</flag>
+ <flag name="elogind">Use <pkg>sys-auth/elogind</pkg> for session tracking</flag>
+ <flag name="gptfdisk">Pull in <pkg>sys-apps/gptfdisk</pkg> for sgdisk command as used by partitioning functionality</flag>
+ <flag name="lvm">Add support for Logical Volume Management via <pkg>sys-fs/lvm2</pkg>.</flag>
+ <flag name="remote-access">Control whether connections from other clients over LAN are allowed</flag>
+ <flag name="systemd">Support <pkg>sys-apps/systemd</pkg>'s logind</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-fs/udisks/udisks-1.0.5-r1.ebuild b/sys-fs/udisks/udisks-1.0.5-r1.ebuild
new file mode 100644
index 000000000000..513b9e8dcb5a
--- /dev/null
+++ b/sys-fs/udisks/udisks-1.0.5-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils bash-completion-r1 linux-info udev systemd
+
+DESCRIPTION="Daemon providing interfaces to work with storage devices"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/udisks"
+SRC_URI="https://hal.freedesktop.org/releases/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ia64 ~mips ppc ppc64 ~sh sparc x86"
+IUSE="debug nls remote-access selinux"
+
+COMMON_DEPEND=">=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.30
+ >=dev-libs/libatasmart-0.19
+ >=sys-auth/polkit-0.110
+ >=sys-apps/dbus-1.6
+ >=sys-apps/sg3_utils-1.27.20090411
+ >=sys-block/parted-3
+ >=sys-fs/lvm2-2.02.66
+ virtual/libgudev:=
+ virtual/libudev:=
+ virtual/udev
+ selinux? ( sec-policy/selinux-devicekit )"
+# util-linux -> mount, umount, swapon, swapoff (see also #403073)
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/util-linux-2.20.1-r2
+ virtual/eject
+ remote-access? ( net-dns/avahi )"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ dev-util/intltool
+ virtual/pkgconfig"
+
+QA_MULTILIB_PATHS="usr/lib/${PN}/.*"
+
+pkg_setup() {
+ # Listing only major arch's here to avoid tracking kernel's defconfig
+ if use amd64 || use arm || use ppc || use ppc64 || use x86; then
+ CONFIG_CHECK="~!IDE" #319829
+ CONFIG_CHECK+=" ~NLS_UTF8" #425562
+ kernel_is lt 3 10 && CONFIG_CHECK+=" ~USB_SUSPEND" #331065, #477278
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-1.0.2-ntfs-3g.patch \
+ "${FILESDIR}"/${PN}-1.0.4-revert-floppy.patch \
+ "${FILESDIR}"/${PN}-1.0.5-stat-includes.patch \
+ "${FILESDIR}"/${PN}-1.0.5-sysmacros.patch
+
+ sed -i -e "s:/lib/udev:$(get_udevdir):" data/80-udisks.rules || die
+
+ epatch_user
+}
+
+src_configure() {
+ # device-mapper -> lvm2 -> mandatory depend -> force enabled
+ econf \
+ --libexecdir=/usr/lib/${PN} \
+ --localstatedir="${EPREFIX}"/var \
+ --disable-static \
+ $(use_enable debug verbose-mode) \
+ --enable-man-pages \
+ --disable-gtk-doc \
+ --enable-lvm2 \
+ --enable-dmmp \
+ $(use_enable remote-access) \
+ $(use_enable nls) \
+ --with-html-dir="${EPREFIX}"/deprecated \
+ "$(systemd_with_unitdir)"
+}
+
+src_test() {
+ ewarn "Skipping testsuite because sys-fs/udisks:0 is deprecated"
+ ewarn "in favour of sys-fs/udisks:2."
+}
+
+src_install() {
+ emake \
+ DESTDIR="${D}" \
+ slashsbindir=/usr/sbin \
+ slashlibdir=/usr/lib \
+ udevhelperdir="$(get_udevdir)" \
+ udevrulesdir="$(get_udevdir)"/rules.d \
+ install #398081
+
+ dodoc AUTHORS HACKING NEWS README
+
+ rm -f "${ED}"/etc/profile.d/udisks-bash-completion.sh
+ newbashcomp tools/udisks-bash-completion.sh ${PN}
+
+ prune_libtool_files --all
+
+ keepdir /media
+ keepdir /var/lib/udisks #383091
+
+ rm -rf "${ED}"/deprecated
+}
diff --git a/sys-fs/udisks/udisks-2.1.8.ebuild b/sys-fs/udisks/udisks-2.1.8.ebuild
new file mode 100644
index 000000000000..29996d107491
--- /dev/null
+++ b/sys-fs/udisks/udisks-2.1.8.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit bash-completion-r1 eutils linux-info systemd udev xdg-utils
+
+DESCRIPTION="Daemon providing interfaces to work with storage devices"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/udisks"
+SRC_URI="https://udisks.freedesktop.org/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ~arm64 ia64 ~mips ppc ppc64 ~sh sparc x86"
+IUSE="acl debug cryptsetup +gptfdisk +introspection selinux systemd"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.36:2
+ >=dev-libs/libatasmart-0.19
+ >=sys-auth/polkit-0.110
+ >=virtual/libgudev-165:=
+ virtual/udev
+ acl? ( virtual/acl )
+ introspection? ( >=dev-libs/gobject-introspection-1.30:= )
+ systemd? ( >=sys-apps/systemd-209 )
+"
+# gptfdisk -> src/udiskslinuxpartition.c -> sgdisk (see also #412801#c1)
+# util-linux -> mount, umount, swapon, swapoff (see also #403073)
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/util-linux-2.20.1-r2
+ >=sys-block/parted-3
+ virtual/eject
+ cryptsetup? (
+ sys-fs/cryptsetup[udev(+)]
+ sys-fs/lvm2[udev(+)]
+ )
+ gptfdisk? ( >=sys-apps/gptfdisk-0.8 )
+ selinux? ( sec-policy/selinux-devicekit )
+"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ >=dev-util/gdbus-codegen-2.32
+ >=dev-util/gtk-doc-am-1.3
+ dev-util/intltool
+ >=sys-kernel/linux-headers-3.1
+ virtual/pkgconfig
+"
+
+QA_MULTILIB_PATHS="usr/lib/udisks2/udisksd"
+
+DOCS="AUTHORS HACKING NEWS README"
+
+pkg_setup() {
+ # Listing only major arch's here to avoid tracking kernel's defconfig
+ if use amd64 || use arm || use ppc || use ppc64 || use x86; then
+ CONFIG_CHECK="~!IDE" #319829
+ CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" #412377
+ CONFIG_CHECK+=" ~SWAP" # https://forums.gentoo.org/viewtopic-t-923640.html
+ CONFIG_CHECK+=" ~NLS_UTF8" #425562
+ kernel_is lt 3 10 && CONFIG_CHECK+=" ~USB_SUSPEND" #331065, #477278
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ xdg_environment_reset
+
+ use systemd || { sed -i -e 's:libsystemd-login:&disable:' configure || die; }
+
+ default
+}
+
+src_configure() {
+ econf \
+ --localstatedir="${EPREFIX}"/var \
+ --disable-static \
+ $(use_enable acl) \
+ $(use_enable debug) \
+ --disable-gtk-doc \
+ $(use_enable introspection) \
+ --with-html-dir="${EPREFIX}"/usr/share/gtk-doc/html \
+ --with-udevdir="$(get_udevdir)" \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+ keepdir /var/lib/udisks2 #383091
+
+ rm -rf "${ED}"/usr/share/bash-completion
+ dobashcomp data/completions/udisksctl
+}
+
+pkg_preinst() {
+ # Remove gtk-doc symlink, #597628
+ if [[ -L "${EROOT}"/usr/share/gtk-doc/html/udisks2 ]]; then
+ rm "${EROOT}"/usr/share/gtk-doc/html/udisks2 || die
+ fi
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"/run #415987
+
+ # See pkg_postinst() of >=sys-apps/baselayout-2.1-r1. Keep in sync?
+ if ! grep -qs "^tmpfs.*/run " "${EROOT}"/proc/mounts ; then
+ echo
+ ewarn "You should reboot the system now to get /run mounted with tmpfs!"
+ fi
+}
diff --git a/sys-fs/udisks/udisks-2.6.4.ebuild b/sys-fs/udisks/udisks-2.6.4.ebuild
new file mode 100644
index 000000000000..75aea2ebc411
--- /dev/null
+++ b/sys-fs/udisks/udisks-2.6.4.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools bash-completion-r1 eutils linux-info systemd udev xdg-utils
+
+DESCRIPTION="Daemon providing interfaces to work with storage devices"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/udisks"
+SRC_URI="https://github.com/storaged-project/${PN}/archive/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86"
+IUSE="acl cryptsetup debug +gptfdisk +introspection lvm nls selinux systemd"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.36:2
+ >=dev-libs/libatasmart-0.19
+ >=sys-auth/polkit-0.110
+ >=virtual/libgudev-165:=
+ virtual/udev
+ acl? ( virtual/acl )
+ introspection? ( >=dev-libs/gobject-introspection-1.30:= )
+ lvm? ( sys-fs/lvm2 )
+ systemd? ( >=sys-apps/systemd-209 )
+"
+# gptfdisk -> src/udiskslinuxpartition.c -> sgdisk (see also #412801#c1)
+# util-linux -> mount, umount, swapon, swapoff (see also #403073)
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/util-linux-2.20.1-r2
+ >=sys-block/parted-3
+ virtual/eject
+ cryptsetup? (
+ sys-fs/cryptsetup[udev(+)]
+ sys-fs/lvm2[udev(+)]
+ )
+ gptfdisk? ( >=sys-apps/gptfdisk-0.8 )
+ selinux? ( sec-policy/selinux-devicekit )
+"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ >=dev-util/gdbus-codegen-2.32
+ >=dev-util/gtk-doc-1.3
+ gnome-base/gnome-common:3
+ sys-devel/autoconf-archive
+ >=sys-kernel/linux-headers-3.1
+ virtual/pkgconfig
+ nls? ( dev-util/intltool )
+"
+
+S="${WORKDIR}/${PN}-${P}"
+
+QA_MULTILIB_PATHS="usr/lib/udisks2/udisksd"
+
+DOCS=( AUTHORS HACKING NEWS README.md )
+
+PATCHES=(
+ "${FILESDIR}/${P}-udisksdprivdir.patch"
+)
+
+pkg_setup() {
+ # Listing only major arch's here to avoid tracking kernel's defconfig
+ if use amd64 || use arm || use ppc || use ppc64 || use x86; then
+ CONFIG_CHECK="~!IDE" #319829
+ CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" #412377
+ CONFIG_CHECK+=" ~SWAP" # https://forums.gentoo.org/viewtopic-t-923640.html
+ CONFIG_CHECK+=" ~NLS_UTF8" #425562
+ kernel_is lt 3 10 && CONFIG_CHECK+=" ~USB_SUSPEND" #331065, #477278
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ xdg_environment_reset
+
+ default
+
+ eautoreconf
+
+ if ! use systemd ; then
+ sed -i -e 's:libsystemd-login:&disable:' configure || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --disable-gtk-doc
+ --disable-static
+ --localstatedir="${EPREFIX}"/var
+ --with-html-dir="${EPREFIX}"/usr/share/gtk-doc/html
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ --with-udevdir="$(get_udevdir)"
+ $(use_enable acl)
+ $(use_enable debug)
+ $(use_enable introspection)
+ $(use_enable lvm lvm2)
+ $(use_enable lvm lvmcache)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+ keepdir /var/lib/udisks2 #383091
+
+ rm -rf "${ED}"/usr/share/bash-completion
+ dobashcomp data/completions/udisksctl
+}
+
+pkg_preinst() {
+ # Remove gtk-doc symlink, #597628
+ if [[ -L "${EROOT}"/usr/share/gtk-doc/html/udisks2 ]]; then
+ rm "${EROOT}"/usr/share/gtk-doc/html/udisks2 || die
+ fi
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"/run #415987
+
+ # See pkg_postinst() of >=sys-apps/baselayout-2.1-r1. Keep in sync?
+ if ! grep -qs "^tmpfs.*/run " "${EROOT}"/proc/mounts ; then
+ echo
+ ewarn "You should reboot the system now to get /run mounted with tmpfs!"
+ fi
+}
diff --git a/sys-fs/udisks/udisks-2.6.5.ebuild b/sys-fs/udisks/udisks-2.6.5.ebuild
new file mode 100644
index 000000000000..e8deb18f0f61
--- /dev/null
+++ b/sys-fs/udisks/udisks-2.6.5.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools bash-completion-r1 eutils linux-info systemd udev xdg-utils
+
+DESCRIPTION="Daemon providing interfaces to work with storage devices"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/udisks"
+SRC_URI="https://github.com/storaged-project/${PN}/archive/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86"
+IUSE="acl cryptsetup debug elogind +gptfdisk +introspection lvm nls selinux systemd"
+
+REQUIRED_USE="?? ( elogind systemd )"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.36:2
+ >=dev-libs/libatasmart-0.19
+ >=sys-auth/polkit-0.110
+ >=virtual/libgudev-165:=
+ virtual/udev
+ acl? ( virtual/acl )
+ elogind? ( sys-auth/elogind )
+ introspection? ( >=dev-libs/gobject-introspection-1.30:= )
+ lvm? ( sys-fs/lvm2 )
+ systemd? ( >=sys-apps/systemd-209 )
+"
+# gptfdisk -> src/udiskslinuxpartition.c -> sgdisk (see also #412801#c1)
+# util-linux -> mount, umount, swapon, swapoff (see also #403073)
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/util-linux-2.20.1-r2
+ >=sys-block/parted-3
+ virtual/eject
+ cryptsetup? (
+ sys-fs/cryptsetup[udev(+)]
+ sys-fs/lvm2[udev(+)]
+ )
+ gptfdisk? ( >=sys-apps/gptfdisk-0.8 )
+ selinux? ( sec-policy/selinux-devicekit )
+"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ >=dev-util/gdbus-codegen-2.32
+ >=dev-util/gtk-doc-1.3
+ gnome-base/gnome-common:3
+ sys-devel/autoconf-archive
+ >=sys-kernel/linux-headers-3.1
+ virtual/pkgconfig
+ nls? ( dev-util/intltool )
+"
+
+S="${WORKDIR}/${PN}-${P}"
+
+QA_MULTILIB_PATHS="usr/lib/udisks2/udisksd"
+
+DOCS=( AUTHORS HACKING NEWS README.md )
+
+pkg_setup() {
+ # Listing only major arch's here to avoid tracking kernel's defconfig
+ if use amd64 || use arm || use ppc || use ppc64 || use x86; then
+ CONFIG_CHECK="~!IDE" #319829
+ CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" #412377
+ CONFIG_CHECK+=" ~SWAP" # https://forums.gentoo.org/viewtopic-t-923640.html
+ CONFIG_CHECK+=" ~NLS_UTF8" #425562
+ kernel_is lt 3 10 && CONFIG_CHECK+=" ~USB_SUSPEND" #331065, #477278
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ xdg_environment_reset
+
+ default
+
+ eautoreconf
+
+ if ! use systemd ; then
+ sed -i -e 's:libsystemd-login:&disable:' configure || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --disable-gtk-doc
+ --disable-static
+ --localstatedir="${EPREFIX}"/var
+ --with-html-dir="${EPREFIX}"/usr/share/gtk-doc/html
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ --with-udevdir="$(get_udevdir)"
+ $(use_enable acl)
+ $(use_enable debug)
+ $(use_enable introspection)
+ $(use_enable lvm lvm2)
+ $(use_enable lvm lvmcache)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+ keepdir /var/lib/udisks2 #383091
+
+ rm -rf "${ED}"/usr/share/bash-completion
+ dobashcomp data/completions/udisksctl
+}
+
+pkg_preinst() {
+ # Remove gtk-doc symlink, #597628
+ if [[ -L "${EROOT}"/usr/share/gtk-doc/html/udisks2 ]]; then
+ rm "${EROOT}"/usr/share/gtk-doc/html/udisks2 || die
+ fi
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"/run #415987
+
+ # See pkg_postinst() of >=sys-apps/baselayout-2.1-r1. Keep in sync?
+ if ! grep -qs "^tmpfs.*/run " "${EROOT}"/proc/mounts ; then
+ echo
+ ewarn "You should reboot the system now to get /run mounted with tmpfs!"
+ fi
+}
diff --git a/sys-fs/udisks/udisks-2.7.2.ebuild b/sys-fs/udisks/udisks-2.7.2.ebuild
new file mode 100644
index 000000000000..0ddf5e552c13
--- /dev/null
+++ b/sys-fs/udisks/udisks-2.7.2.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools bash-completion-r1 eutils linux-info systemd udev xdg-utils
+
+DESCRIPTION="Daemon providing interfaces to work with storage devices"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/udisks"
+SRC_URI="https://github.com/storaged-project/${PN}/archive/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="~amd64 ~x86"
+IUSE="acl cryptsetup debug elogind +gptfdisk +introspection lvm nls selinux systemd"
+
+REQUIRED_USE="?? ( elogind systemd )"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.36:2
+ >=dev-libs/libatasmart-0.19
+ >=sys-auth/polkit-0.110
+ sys-libs/libblockdev[crypt,lvm?]
+ >=virtual/libgudev-165:=
+ virtual/udev
+ acl? ( virtual/acl )
+ elogind? ( >=sys-auth/elogind-219 )
+ introspection? ( >=dev-libs/gobject-introspection-1.30:= )
+ lvm? ( sys-fs/lvm2 )
+ systemd? ( >=sys-apps/systemd-209 )
+"
+# gptfdisk -> src/udiskslinuxpartition.c -> sgdisk (see also #412801#c1)
+# util-linux -> mount, umount, swapon, swapoff (see also #403073)
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/util-linux-2.20.1-r2
+ >=sys-block/parted-3
+ virtual/eject
+ cryptsetup? (
+ sys-fs/cryptsetup[udev(+)]
+ sys-fs/lvm2[udev(+)]
+ )
+ gptfdisk? ( >=sys-apps/gptfdisk-0.8 )
+ selinux? ( sec-policy/selinux-devicekit )
+"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ >=dev-util/gdbus-codegen-2.32
+ >=dev-util/gtk-doc-1.3
+ gnome-base/gnome-common:3
+ sys-devel/autoconf-archive
+ >=sys-kernel/linux-headers-3.1
+ virtual/pkgconfig
+ nls? ( dev-util/intltool )
+"
+
+S="${WORKDIR}/${PN}-${P}"
+
+QA_MULTILIB_PATHS="usr/lib/udisks2/udisksd"
+
+DOCS=( AUTHORS HACKING NEWS README.md )
+
+pkg_setup() {
+ # Listing only major arch's here to avoid tracking kernel's defconfig
+ if use amd64 || use arm || use ppc || use ppc64 || use x86; then
+ CONFIG_CHECK="~!IDE" #319829
+ CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" #412377
+ CONFIG_CHECK+=" ~SWAP" # https://forums.gentoo.org/viewtopic-t-923640.html
+ CONFIG_CHECK+=" ~NLS_UTF8" #425562
+ kernel_is lt 3 10 && CONFIG_CHECK+=" ~USB_SUSPEND" #331065, #477278
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ xdg_environment_reset
+
+ default
+
+ eautoreconf
+
+ if ! use systemd ; then
+ sed -i -e 's:libsystemd-login:&disable:' configure || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-btrfs
+ --disable-gtk-doc
+ --disable-static
+ --localstatedir="${EPREFIX%/}"/var
+ --with-html-dir="${EPREFIX%/}"/usr/share/gtk-doc/html
+ --with-modprobedir="${EPREFIX%/}"/lib/modprobe.d
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ --with-udevdir="$(get_udevdir)"
+ $(use_enable acl)
+ $(use_enable debug)
+ $(use_enable introspection)
+ $(use_enable lvm lvm2)
+ $(use_enable lvm lvmcache)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+ keepdir /var/lib/udisks2 #383091
+
+ rm -rf "${ED}"/usr/share/bash-completion
+ dobashcomp data/completions/udisksctl
+}
+
+pkg_preinst() {
+ # Remove gtk-doc symlink, #597628
+ if [[ -L "${EROOT}"/usr/share/gtk-doc/html/udisks2 ]]; then
+ rm "${EROOT}"/usr/share/gtk-doc/html/udisks2 || die
+ fi
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"/run #415987
+
+ # See pkg_postinst() of >=sys-apps/baselayout-2.1-r1. Keep in sync?
+ if ! grep -qs "^tmpfs.*/run " "${EROOT}"/proc/mounts ; then
+ echo
+ ewarn "You should reboot the system now to get /run mounted with tmpfs!"
+ fi
+}
diff --git a/sys-fs/udisks/udisks-2.7.3.ebuild b/sys-fs/udisks/udisks-2.7.3.ebuild
new file mode 100644
index 000000000000..0ddf5e552c13
--- /dev/null
+++ b/sys-fs/udisks/udisks-2.7.3.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools bash-completion-r1 eutils linux-info systemd udev xdg-utils
+
+DESCRIPTION="Daemon providing interfaces to work with storage devices"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/udisks"
+SRC_URI="https://github.com/storaged-project/${PN}/archive/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="~amd64 ~x86"
+IUSE="acl cryptsetup debug elogind +gptfdisk +introspection lvm nls selinux systemd"
+
+REQUIRED_USE="?? ( elogind systemd )"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.36:2
+ >=dev-libs/libatasmart-0.19
+ >=sys-auth/polkit-0.110
+ sys-libs/libblockdev[crypt,lvm?]
+ >=virtual/libgudev-165:=
+ virtual/udev
+ acl? ( virtual/acl )
+ elogind? ( >=sys-auth/elogind-219 )
+ introspection? ( >=dev-libs/gobject-introspection-1.30:= )
+ lvm? ( sys-fs/lvm2 )
+ systemd? ( >=sys-apps/systemd-209 )
+"
+# gptfdisk -> src/udiskslinuxpartition.c -> sgdisk (see also #412801#c1)
+# util-linux -> mount, umount, swapon, swapoff (see also #403073)
+RDEPEND="${COMMON_DEPEND}
+ >=sys-apps/util-linux-2.20.1-r2
+ >=sys-block/parted-3
+ virtual/eject
+ cryptsetup? (
+ sys-fs/cryptsetup[udev(+)]
+ sys-fs/lvm2[udev(+)]
+ )
+ gptfdisk? ( >=sys-apps/gptfdisk-0.8 )
+ selinux? ( sec-policy/selinux-devicekit )
+"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ >=dev-util/gdbus-codegen-2.32
+ >=dev-util/gtk-doc-1.3
+ gnome-base/gnome-common:3
+ sys-devel/autoconf-archive
+ >=sys-kernel/linux-headers-3.1
+ virtual/pkgconfig
+ nls? ( dev-util/intltool )
+"
+
+S="${WORKDIR}/${PN}-${P}"
+
+QA_MULTILIB_PATHS="usr/lib/udisks2/udisksd"
+
+DOCS=( AUTHORS HACKING NEWS README.md )
+
+pkg_setup() {
+ # Listing only major arch's here to avoid tracking kernel's defconfig
+ if use amd64 || use arm || use ppc || use ppc64 || use x86; then
+ CONFIG_CHECK="~!IDE" #319829
+ CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" #412377
+ CONFIG_CHECK+=" ~SWAP" # https://forums.gentoo.org/viewtopic-t-923640.html
+ CONFIG_CHECK+=" ~NLS_UTF8" #425562
+ kernel_is lt 3 10 && CONFIG_CHECK+=" ~USB_SUSPEND" #331065, #477278
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ xdg_environment_reset
+
+ default
+
+ eautoreconf
+
+ if ! use systemd ; then
+ sed -i -e 's:libsystemd-login:&disable:' configure || die
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-btrfs
+ --disable-gtk-doc
+ --disable-static
+ --localstatedir="${EPREFIX%/}"/var
+ --with-html-dir="${EPREFIX%/}"/usr/share/gtk-doc/html
+ --with-modprobedir="${EPREFIX%/}"/lib/modprobe.d
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ --with-udevdir="$(get_udevdir)"
+ $(use_enable acl)
+ $(use_enable debug)
+ $(use_enable introspection)
+ $(use_enable lvm lvm2)
+ $(use_enable lvm lvmcache)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ prune_libtool_files
+ keepdir /var/lib/udisks2 #383091
+
+ rm -rf "${ED}"/usr/share/bash-completion
+ dobashcomp data/completions/udisksctl
+}
+
+pkg_preinst() {
+ # Remove gtk-doc symlink, #597628
+ if [[ -L "${EROOT}"/usr/share/gtk-doc/html/udisks2 ]]; then
+ rm "${EROOT}"/usr/share/gtk-doc/html/udisks2 || die
+ fi
+}
+
+pkg_postinst() {
+ mkdir -p "${EROOT}"/run #415987
+
+ # See pkg_postinst() of >=sys-apps/baselayout-2.1-r1. Keep in sync?
+ if ! grep -qs "^tmpfs.*/run " "${EROOT}"/proc/mounts ; then
+ echo
+ ewarn "You should reboot the system now to get /run mounted with tmpfs!"
+ fi
+}
diff --git a/sys-fs/ufsutils/Manifest b/sys-fs/ufsutils/Manifest
new file mode 100644
index 000000000000..66e558cdaf98
--- /dev/null
+++ b/sys-fs/ufsutils/Manifest
@@ -0,0 +1,6 @@
+DIST ufsutils_8.2-3.debian.tar.gz 23469 SHA256 6040ad18ddbf9fa37b87b084fe6cf19c50f63456d15b6726067c558f8383b795 SHA512 7bc925e742eaf4e1837ca4b46afa7966490234492eeb40ad8fabf71550a79890f3294780c2dbdf3593a82fc8e0708cf4c72baba81f4fec9a884cfa545c8895c8 WHIRLPOOL eb161eebfa50316283813cf774f701d24bdc718db268e541f564e8a93e7486eb060138c53fa1ed78bcbe3485457a59b6b9e17ca7309743805df864b215606faf
+DIST ufsutils_8.2.orig.tar.gz 463499 SHA256 6298d2a94fb601f6951bf81ce074e6af597e8867ac210d8ff73348aeb3738bd9 SHA512 f378372c2493c16fe8cb3977f4ed2d104e747895e97d7642d21b5e87a2a03ac696bbac093e534e13c2f1dc4638741edcbbb0ddec5abcbfa6b4f7401efbf7cf14 WHIRLPOOL ae944c34162727d37a3ea9ff63876ed75f55830c655b6a15afbf8d29bc4bd362cf76b07e8c2521ea42b1440247c5be3d290c4f310593aa8fa0dc950c2dd65e54
+EBUILD ufsutils-8.2_p3.ebuild 1186 SHA256 33eb98fdb33829075954260f0a783a3e61a11027ad4935c1c0d3cd79bd101ccf SHA512 bb3eba0d9dab904efeaecce06bc75d25447daba89a85d1d90f7d62b93d3f837bce80d4cf27854b2c2c8205c7964f4d091a8409262badd46874c83fd65fbdeb41 WHIRLPOOL 138e22c89627765bc22837897311d3bdf586e0fb41ff3a6cf6728f881983b372fa7082abff96a405961fd6058b5c829e90c3c300abbacdeb69c5ccaf9d6d0314
+MISC ChangeLog 2735 SHA256 0fa54d80dcc5506c538978ef92dcb8f300309101c740298b285065e84f94bb6a SHA512 6b9610085067fb405c7a5bc6568f5f12b6964fe0acd8ebb417b097eec45de5618ee0a15c6d5c8fd33ddd2edae1762aa1dda75f33729b8c9a4ec8346d83daa569 WHIRLPOOL b5f4b4eafb135c0f4fb43dbc5ef783ef065363d6312d6e8f98b5ac81dea89abe7727afc09885ba256a547014ff04f174e06aa52d288f696eb3f515ceafc73d0b
+MISC ChangeLog-2015 399 SHA256 b44d2ab280aa0d786bf61bb5973019c08476cdf8b7ac9b3caf8a6c6cfc901668 SHA512 573f999f38b6b1e5f23610a9416eada4b1896c34f6256db90284f9bbb37e562a23584c801df6a16069b5e18bb1f217d3f5f5a22b19075f6c0598c3227ebcdaff WHIRLPOOL 1fd0864985f0848e72603f65782239c0e04ea31b6c45920859eb03729de01f06b742bcdc4bbdd5a3d5211887ee6c9200f2d14c1d16dc91f92e43a840ecbd8f88
+MISC metadata.xml 238 SHA256 501d93b0c41ed422505100f002758cd173cd9783ae7fbb53e2ec5f238c868340 SHA512 173efaa53a514acf1e2f0c6681c82a48ec16d505844f551d2cc823ee8685b27837c7461f7956c12182059ee7e83023e2f0bcd5d1afab74beeaf998487193656d WHIRLPOOL 4ca51d994f011a5e7e4939f02a54b5c2f9f3e526665893c9ac2876c9871b7dc80361393d41c5247b3a5520e82d31d0dd10da520e7715c94b806a94ce0fed2a5a
diff --git a/sys-fs/ufsutils/metadata.xml b/sys-fs/ufsutils/metadata.xml
new file mode 100644
index 000000000000..a00f3aeb1f81
--- /dev/null
+++ b/sys-fs/ufsutils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>bsd@gentoo.org</email>
+ <name>BSD Project</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/ufsutils/ufsutils-8.2_p3.ebuild b/sys-fs/ufsutils/ufsutils-8.2_p3.ebuild
new file mode 100644
index 000000000000..5b8ca4d7da9e
--- /dev/null
+++ b/sys-fs/ufsutils/ufsutils-8.2_p3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="FFS/UFS/UFS2 filesystem utilities from FreeBSD"
+HOMEPAGE="http://packages.debian.org/source/sid/ufsutils"
+
+SRC_URI="mirror://debian/pool/main/u/${PN}/${PN}_${PV%_*}.orig.tar.gz
+ mirror://debian/pool/main/u/${PN}/${PN}_${PV%_*}-${PV##*_p}.debian.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="dev-libs/libbsd
+ dev-libs/libedit
+ sys-libs/ncurses"
+
+S="${WORKDIR}/${P%_*}"
+
+src_prepare() {
+ EPATCH_SOURCE="${WORKDIR}/debian/patches" EPATCH_SUFFIX="patch" \
+ EPATCH_OPTS="-p1" EPATCH_FORCE="yes" epatch
+
+ sed -i '1i#include <sys/sysmacros.h>' sbin/fsdb/fsdbutil.c || die #580292
+
+ # growfs is not properly ported
+ sed -e "s:sbin/growfs::" -i Makefile
+
+ sed -e "s:^\(prefix = \)\(.*\):\1${EPREFIX}usr:" \
+ -e "s:^\(libdir = \$(exec_prefix)\/\)\(.*\):\1$(get_libdir):" \
+ -e "/ar rcs/s:ar:\$(AR):" \
+ -i Makefile.common
+}
+
+src_configure() {
+ tc-export AR CC
+}
+
+src_compile(){
+ emake -j1
+}
+
+src_install() {
+ dodir /usr/$(get_libdir)
+ dodir /usr/sbin
+ dodir /usr/share/man/man8
+ emake DESTDIR="${ED}" install
+}
diff --git a/sys-fs/unionfs-fuse/Manifest b/sys-fs/unionfs-fuse/Manifest
new file mode 100644
index 000000000000..2e4382ea6df0
--- /dev/null
+++ b/sys-fs/unionfs-fuse/Manifest
@@ -0,0 +1,8 @@
+DIST unionfs-fuse-1.0.tar.gz 48149 SHA256 2ee80bd0634a61adb2159212e155d607a0a82ad659214ae6edb3530396cccc09 SHA512 805151acaeae8526fba430701a1690f6eb0ad8331a9e730095ee538dc2b148d02fe996a63e8a7f6471d1ef622cc5c03d82bd2b2faad1ebe3b614ec343c2f55de WHIRLPOOL 447c8ef93c26f33ba3e8d4ee6bbc48ae545f4cda2e66a832e78ec750ceaa3428546f98cfda8a64eafd78aec2c567e21e1121ef49a2e967b67b23ecf725807449
+DIST unionfs-fuse-2.0.tar.gz 46537 SHA256 f24d7dd64c678cefacbebf2727b61e3127b8ecb6bb9176d7117dd31503455643 SHA512 5b60204632f498931fff7671cc9f40b1800d34cb8c0d0de0773626e2653eb0a36647566c92c1d0cf79543e01b934602ef5603a06508407f352e48ef27a7ee758 WHIRLPOOL c5a25a69bdb5285ede5be21f1723b84779d5b80893b07de1d264b1da7c663450ed1ff1472b06ff4b5b103d14fc1c8a9a70a75d0c04d98a97cf7596683a527c80
+EBUILD unionfs-fuse-1.0.ebuild 531 SHA256 9ead5fb7dbe8347c677a8021be5d8f3dd6abc22ed6bb7323a5f01be34e004a15 SHA512 e8d9381262272bbda52be4a5331646595fd99e200b85fd69ad400bfcb614bde307d090136b2305515a1a01480b6d8b235a47d7f333dd13df3d364ae46c04c36f WHIRLPOOL 04b5bc10bd4f4cf8a4166c9965db03073e9ac76ed4577f7fdc29f195c8296d11d46bacbcd4c5b26fa13fab94cf23d91b9ba2238f350a22f6946acc124c368105
+EBUILD unionfs-fuse-2.0.ebuild 531 SHA256 a83ff59f038ed336ff5b4981b2faa8c48cdbee75f5f5c865599f9b52a4a06b1d SHA512 4f0d8e4be9ad43ee7a841d99b30ad7b81ba522dcd0b6f8269035125f313f26cb5e82e7f3e6bac352b75ab02a70785c90ba6b2d01c8e3b4ca6fee981ddc347d99 WHIRLPOOL 72be1284e765b7c15e73dfb6f3ecc7dea2108c6eeb6b002d47ddc50113ff70d2b4b57e40e4eb842da17f0a56c324c12f056b84a6237e9521a4cb8f55070d2c64
+EBUILD unionfs-fuse-9999.ebuild 505 SHA256 7043dace472080fdfb7f5d2acfce86a54f600ffab801d49d6cf3bc66aa6e5393 SHA512 257c37a2c230b716bd2818e898d0c59ab831b7e21ff3753cfffb12821dc8a0e2979992a0f40fa232d89298f427338543a9ab3f0f7b6d499c4d2f907bbb272a7d WHIRLPOOL 90bd8c375bdcd8c085ba1a6a47fe1e4cf9896d482811cfb944a0b7628df879c587ce79e081e943629a81bb44909b28c18494452724c16840bba81336f52c6f68
+MISC ChangeLog 2748 SHA256 e44fc9c581986f5cd2d4ceebb7f478e2bc366099b1f402ae0c1826220679d9f6 SHA512 cd73eb4f07aa4a420ad0fc5ca3e173b58700dbfa6503a0d1529a35b308629d79948631f74891d90707f1fec349c6186759b785f13dc7b879d35bddad2283f5c9 WHIRLPOOL 87c8680eb04ba2416131b049042ad6fce8289d97d86da8059f77e8249e89b346f6618229d06040567fa0153da2a394d6e3d765c5b2d31aad87e083a6993544b3
+MISC ChangeLog-2015 1847 SHA256 6a7d0d9cebb8771d92f89bc54b3d3546ef5e2d8b745c9376353c12c746fa772f SHA512 e65c3709b7d1502cb6fd7a548f8e08b7218f25f6238be81b421794340e113d99fff5f77ad02169642f5fa49a0ea93d062fd6d68818b3ece321c71b15bf6c6aeb WHIRLPOOL 5f920a2bf340e3056e215cb0b030f5616f97bc1aacbed64509fde87fab8b73c69d846d2572e3ba2bf08eef6a3514d6eed19a7dfd1de8be170b0765863edf1ddf
+MISC metadata.xml 336 SHA256 d9270aae2c97aa3591585fceccd3d05bddadbe38b21eb1f40df0583522c163bf SHA512 54597ecd53cfe8d92d717481a533df32cb5fa7272cd64a42a0cd4b4803024b10e3451845569e3d7b199ed63f4070023468dd7528cb438f155539e5e752144197 WHIRLPOOL 21a3a08181c0ba29e66612bcf183782cab1be000a7d837b8bf77b4e6a9bc5cf5304b8aab367d45b953c54f81bd6c75580cafafbc645d0d915d127519c758dbec
diff --git a/sys-fs/unionfs-fuse/metadata.xml b/sys-fs/unionfs-fuse/metadata.xml
new file mode 100644
index 000000000000..791003b9d26f
--- /dev/null
+++ b/sys-fs/unionfs-fuse/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sping@gentoo.org</email>
+ <name>Sebastian Pipping</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">rpodgorny/unionfs-fuse</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/unionfs-fuse/unionfs-fuse-1.0.ebuild b/sys-fs/unionfs-fuse/unionfs-fuse-1.0.ebuild
new file mode 100644
index 000000000000..4403163fc006
--- /dev/null
+++ b/sys-fs/unionfs-fuse/unionfs-fuse-1.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+DESCRIPTION="Self-syncing tree-merging file system based on FUSE"
+
+HOMEPAGE="https://github.com/rpodgorny/unionfs-fuse"
+SRC_URI="https://github.com/rpodgorny/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+IUSE=""
+
+DEPEND="sys-fs/fuse"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install || die "emake install failed"
+}
diff --git a/sys-fs/unionfs-fuse/unionfs-fuse-2.0.ebuild b/sys-fs/unionfs-fuse/unionfs-fuse-2.0.ebuild
new file mode 100644
index 000000000000..16259309343f
--- /dev/null
+++ b/sys-fs/unionfs-fuse/unionfs-fuse-2.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+DESCRIPTION="Self-syncing tree-merging file system based on FUSE"
+
+HOMEPAGE="https://github.com/rpodgorny/unionfs-fuse"
+SRC_URI="https://github.com/rpodgorny/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+IUSE=""
+
+DEPEND="sys-fs/fuse"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install || die "emake install failed"
+}
diff --git a/sys-fs/unionfs-fuse/unionfs-fuse-9999.ebuild b/sys-fs/unionfs-fuse/unionfs-fuse-9999.ebuild
new file mode 100644
index 000000000000..24a0355898f4
--- /dev/null
+++ b/sys-fs/unionfs-fuse/unionfs-fuse-9999.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit git-r3
+
+DESCRIPTION="Self-syncing tree-merging file system based on FUSE"
+
+HOMEPAGE="https://github.com/rpodgorny/unionfs-fuse"
+EGIT_REPO_URI="https://github.com/rpodgorny/unionfs-fuse.git"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="sys-fs/fuse"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install || die "emake install failed"
+}
diff --git a/sys-fs/vhba/Manifest b/sys-fs/vhba/Manifest
new file mode 100644
index 000000000000..fc607b6ace32
--- /dev/null
+++ b/sys-fs/vhba/Manifest
@@ -0,0 +1,5 @@
+DIST vhba-module-20170610.tar.bz2 15622 SHA256 7970c93f989d9c4f2629371bf5ee7a76f95e4c12342c3320ddc528d0df02d9ec SHA512 bf27a6a7a6aabf6c1a4c1f16b1a08dce460ee675ea53b141c6db8edf0637dffa900e03b9141f9f1a672fcd8f84e6f2be86a07e1f78bc5667a7a7669d45f1f687 WHIRLPOOL b5e9c8ae140e7267d11c3bab71879f49c3be464504193e06c8a77d291f22c41d9c017a8dc06477566b89b89430305aee71c2542a2d3ce04783f7f08e7122e730
+EBUILD vhba-20170610.ebuild 2155 SHA256 105979ffb558ae15ec84a60ea4745ad61d8929484d65d0d695488751513bc940 SHA512 06dcdbd12d4db2483ca3af4212c867ddfbaaf6559deb713f0bf39fd50843071f544711c947fa12421169031fd3a4753fa6e8a96dc454c09f32331c75fbc282cf WHIRLPOOL 2d1fba09260138e497c25180f18e042310159fe7a4909bb34eaad6f4b2b94b2527cb091be4147c09a6635b9221c53e04374bfcff3b70e5dcdd453866714b553e
+MISC ChangeLog 2223 SHA256 95103825c91e41e52b0444c06bf8063dc8fe4eed1c9c6190f25553d68aabadac SHA512 8086b221a0d81b58d6b382d440857f4ca9e4267abc092f4cde9f1ec15e831d07c3b919b9f30789fb46066fc291d53122035cccfdaa0c8506a19b48f5bb33686e WHIRLPOOL 9ed3ca1e851d012d9167b6b6009e73a167f8f3855fecf0634392014f9fe1761e408a7176ee3a5041bb9854f15145ec52fae593311d32304a0fb07ad921c6f352
+MISC ChangeLog-2015 9270 SHA256 65e862c1b00416b8a70993142d9296f6016af79493b785937ffbc913531c746e SHA512 95dd3b7ed47c0c7d90ce7cfe07d7f40d29f923c0e153cb200d9e21b1abb72ea79e142bfd7d29fe5527975038b9fb9bcc271c274a4ccc8c309301c73072dc0ed9 WHIRLPOOL 3168b943cd3b17e62e8e5776df2e98ba5b9ae633e717ae3d1c4eb71e73299831d21246021a955cc56a9f4b7854120004e46e4994b8b16663ebd4ea03e89b55f2
+MISC metadata.xml 341 SHA256 d78aa5c3586fa7c6c026a836bfc00dce3212f1871d597b786113c30436722bc0 SHA512 a401a5cdb6f7cc87654f66a5617246f081840d8dbadf376f8590d55c1ab528e79cbe1708d58e41bf1ed104ababcfda79da69595a107e0236ccaa974144304e09 WHIRLPOOL 0e82c3cc150273143ade85d07180057c6533edc365f0d63a808f706fec43210d0905862d59ee729149471e8f9c514091a8e3db7f86a8a70b072b9c5f92a5663e
diff --git a/sys-fs/vhba/metadata.xml b/sys-fs/vhba/metadata.xml
new file mode 100644
index 000000000000..f998f663a174
--- /dev/null
+++ b/sys-fs/vhba/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tetromino@gentoo.org</email>
+ <name>Alexandre Rostovtsev</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">cdemu</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/vhba/vhba-20170610.ebuild b/sys-fs/vhba/vhba-20170610.ebuild
new file mode 100644
index 000000000000..ffb1252014db
--- /dev/null
+++ b/sys-fs/vhba/vhba-20170610.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils linux-mod udev
+
+MY_P=vhba-module-${PV}
+DESCRIPTION="Virtual (SCSI) Host Bus Adapter kernel module for the CDEmu suite"
+HOMEPAGE="http://cdemu.org"
+SRC_URI="mirror://sourceforge/cdemu/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~hppa x86"
+IUSE=""
+
+RDEPEND="virtual/udev"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${MY_P}
+MODULE_NAMES="vhba(block:${S})"
+BUILD_TARGETS=modules
+
+pkg_setup() {
+ CONFIG_CHECK="~BLK_DEV_SR ~CHR_DEV_SG"
+ check_extra_config
+ BUILD_PARAMS="KDIR=${KV_OUT_DIR}"
+ linux-mod_pkg_setup
+}
+
+src_prepare() {
+ # Avoid "make jobserver unavailable" warning and -Werror problems
+ sed -e '/ccflags/s/-Werror$/-Wall/' \
+ -i Makefile || die "sed failed"
+
+ eapply_user
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog README
+ linux-mod_src_install
+
+ einfo "Generating udev rules ..."
+ dodir "$(get_udevdir)"/rules.d
+ cat > "${D}/$(get_udevdir)"/rules.d/69-vhba.rules <<-EOF || die
+ # do not edit this file, it will be overwritten on update
+ #
+ KERNEL=="vhba_ctl", SUBSYSTEM=="misc", TAG+="uaccess"
+ EOF
+}
+
+pkg_postinst() {
+ # Older versions of vhba installed their rule file in /etc/udev/rules.d,
+ # which overrides rules in /lib/udev/rules.d. We remove the old file
+ # automatically if it is identical to the default one installed by
+ # vhba-1.2.1 or 20101015-r1. Note that the comment at the top of the rules
+ # file states that it can be automatically overwritten by the system.
+ old_rules="${ROOT}etc/udev/rules.d/70-vhba.rules"
+ if [[ -f "${old_rules}" ]]; then
+ case "$(md5sum ${old_rules})" in
+ 2959b3cf61cfe6e466cc3516a7bc19de* | 1e7a7e5d6d28c811eeec98ec26ed5d28* )
+ elog
+ elog "Removing old ${old_rules} ..."
+ rm -f "${old_rules}" ||
+ eerror "Failed, please remove ${old_rules} manually."
+ ;;
+ * )
+ ewarn
+ ewarn "The ${old_rules} file from a previous"
+ ewarn "installation of ${PN} is overriding ${P}'s"
+ ewarn "udev rules. Unless you had deliberately customized it,"
+ ewarn "you should remove it."
+ ewarn
+ ;;
+ esac
+ fi
+
+ linux-mod_pkg_postinst
+}
diff --git a/sys-fs/vzquota/Manifest b/sys-fs/vzquota/Manifest
new file mode 100644
index 000000000000..17d1c5253d06
--- /dev/null
+++ b/sys-fs/vzquota/Manifest
@@ -0,0 +1,5 @@
+DIST vzquota-3.1.tar.bz2 46848 SHA256 749a2d1b2659fdcd5d43b299ad9152bbf029e1889a3c5cf8fe941c0b156fc4a3 SHA512 e2289df9235149c8d511a6b2846f672574622fb39ca5cd8f5780af9a4cc204ce12f1a2ecd0382143c04eca93e64ce6851caab0782e8ad178352954ca599ffaac WHIRLPOOL c9a2e4a604a3520fbc66191b2e357170bb1a5bc7e4bf1eb4bf265381deb701493cb2aeb3c941a6d26036772bf2e4fcec1c01d7497ee01436f2fe07e2ef8eddd6
+EBUILD vzquota-3.1.ebuild 816 SHA256 e59808cb49dac9ca42298202f480dead9d2e53ff8b3bdcb63221fa56d1b51d6d SHA512 097c81909c969662ae637f7e91942ee91df3e4e7a291c085537137adeceaf32d54a66cbb009c1a5e96e55b7e5353cc890cdb958d697c5f3bd594b2789ca973e0 WHIRLPOOL 774b5f73882ebf3d7d689c294fac8242f7f75ff52fbf7a87a43bacae4fe7308d1f6cd88f6caf9c8abf9cff7358c04804265228818f5b69b6e6b25922b3d69e8c
+MISC ChangeLog 2290 SHA256 d23e6ba044fa19a42305c118d38fbda02803005cc6853b00146221c27c8085a0 SHA512 9263e9521d13e99f321f306240bb9d4a79a484f6ed40aa18576769c6e283dfe64579f52a49770ee05efff054f63e783a4d51e3038eaf9b2101c9418e1b827be2 WHIRLPOOL f1517ada86d398e7d7febe187de8f330a2e1b2d449bdb8e47515877a2bd86fdcdd91728001d34a118c0a98b9d313e72aa6fd42777f709b4ae4d0fd597a864326
+MISC ChangeLog-2015 4947 SHA256 a472902b3c22b88b5b94b61f3d21dc65280a538235acc3925b546b730e64eda9 SHA512 4b72c6d42c861b3347a5d967910b791cd80ef5502a0678f213d1d4906a530bfd89fef6459c8bdd2be3ed95a17fb2603f2c01b0c71f3f21e2322e8a688558098d WHIRLPOOL 2b919e8ffa16884e3d2652a2b844d326c1d56f8b970c2217820ee4de07c6f14bf9b8206c2011a4540f7748e19bffb038011fd06c044984ae328a1d15062f2de7
+MISC metadata.xml 139 SHA256 5cdc1888ebc8807b9a37b1d33429c61cabe7415a4f240e21a4c2ff8eca7a34ed SHA512 8be912ace7468a4396eb1da00a9785030a8ce35da4357a01591876a1056fd45e44da65de2af3e1eb0506ce6551714962c40c3ae5a3aefa2ad231de35af2519be WHIRLPOOL 620431014dd4fb752c3d46d11904ecb2c6d4525f5b4e30f4f778a3b74d3f7187ae4ccd856ebd7eabb48ce261b21849c732928fe647edce024a3fdc082d8f8630
diff --git a/sys-fs/vzquota/metadata.xml b/sys-fs/vzquota/metadata.xml
new file mode 100644
index 000000000000..097975e3adc2
--- /dev/null
+++ b/sys-fs/vzquota/metadata.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+</pkgmetadata>
diff --git a/sys-fs/vzquota/vzquota-3.1.ebuild b/sys-fs/vzquota/vzquota-3.1.ebuild
new file mode 100644
index 000000000000..342d9e6b24ef
--- /dev/null
+++ b/sys-fs/vzquota/vzquota-3.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="OpenVZ VPS disk quota utility"
+HOMEPAGE="http://openvz.org/download/utils/vzquota/"
+SRC_URI="http://download.openvz.org/utils/${PN}/${PV}/src/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ia64 ~ppc64 ~sparc x86"
+IUSE=""
+
+src_prepare() {
+ sed -e 's,$(INSTALL) -s -m,$(INSTALL) -m,' \
+ -e 's:$(CC) $(CFLAGS) -o:$(CC) $(CFLAGS) $(LDFLAGS) -o:' \
+ -e 's:-Werror ::' \
+ -i "${S}/src/Makefile" || die 'sed on src/Makefile failed'
+ tc-export CC
+}
+
+src_install() {
+ emake DESTDIR="${ED}" INSTALL="${EPREFIX}/usr/bin/install" install
+ keepdir /var/vzquota
+ # remove accidentally created man8 dir
+ rm -r "${ED}/man8" || die 'remove man8 directory failed'
+}
diff --git a/sys-fs/wpflash/Manifest b/sys-fs/wpflash/Manifest
new file mode 100644
index 000000000000..2152807fe6ac
--- /dev/null
+++ b/sys-fs/wpflash/Manifest
@@ -0,0 +1,6 @@
+AUX wpflash-gentoo.patch 5050 SHA256 cc029c69cd7b318faa66b42301c078c2c2b68bc43a080d284f43117e598b03b8 SHA512 1d6be3acd401a27917ed8da6a773505a3a54983db0e958422d3f75f2042f50d43ef1c5cf6f81a73a9a109f2cbaf5cc0179a5651ff47a224855cbd12583030cee WHIRLPOOL fd115288fbc358353f2839c8dc62ad5e7ed08e78251d90df4196e921ab11d15ee6cd3236c663e5e378945d3fa6f0124780eefa4502407eab597d3f23b8d5ea0a
+DIST wpflash.c 25813 SHA256 9c2158b14a77ba2baf9e0a136288367f402c60366084288615a459566a046ee3 SHA512 b0605b15d29a96d8dae052131f0a55b09eb230d05543c8a25a727ac3820397459d108c9b19fa95726ca7df12b4a733480f5c01587deee24a5fb8be9d1a0beeba WHIRLPOOL d1e36735255ffe341c0731a2c08379c24c24f01ea376e0191387a7fd7ca24662575ac027d69f29ee2347047402931590887adea2a53e2da453002070ccfca2fe
+EBUILD wpflash-0.ebuild 531 SHA256 a022c3aa905e8faad2c0f26ed9db43b569c753ea85542428ae9ca1d28f2adb2b SHA512 4c1cec44e50284b95cef30ce1abfb5d983d16d6768544db8d678a8206dfed2aeecc4f55e06f2316eed69ba799779ca40d6bb48c044d5e6ee1d6a3cec16ca6c75 WHIRLPOOL 4f534450e57813ec7120f3af7a10f056b9927d95916230469897f4ac2d51b9d6455d4bfd1452f0f310f4e9ee43d26d5f2634026663124aa27c6656863b8409bc
+MISC ChangeLog 2446 SHA256 8449b9ce5e9588dd4b5c5818780bf4e1c31b46b085052c09ad5682163114233c SHA512 95cae1cb90a25fcc0c555ef72ea75eb5aecc26bd82188bee220510273ba3a6c752a96fe07b793b5c65af9ab4cb7fcd409be98448908eb8a64364be0628cadee0 WHIRLPOOL 2ef191c92f606ef99ebc6f1eb563b30ac236d91be8b423011fc74c1ddd83ca3c0233b7e21ca11792615f94b98efad93b5b3680236844e340076b0185d5ae803f
+MISC ChangeLog-2015 431 SHA256 b062caab31b20b2febc007664ca3a0476fb6460e1f47007f46cd131d17567661 SHA512 2683ea61aa2abbefe6bca0bf8bd20b85bf516d57838115d1fd40c726b8fbba9d3cc9fd76769a5eb66d55df6afebbe967bb7d3d3a66a4a53fb56a1423892612bd WHIRLPOOL 0f6643ed40bea2e8389900e7a2d5b9d2aeb6cb7fa17f0de3343eb16193afcb126c1fa2f1af29d375f5bb1cf6e3b174634061fde8c7aa26303f0505fddbfc6b49
+MISC metadata.xml 255 SHA256 2329f28bac0cd2e531f9e28d5d16d6c2f0a20878723e101565aefc5233b33531 SHA512 4408b5018e974df4d7508f29e255f318bbd09b4056927cae6406ff1f427c06d5d655f677a28440cb84af04e411c88e4582f9ad1ea76829afeee0bbe4e3841c2f WHIRLPOOL fc074050885e70dd142f3d3de3b966b62dd7bb1d095e6ab94f78962d8a1adebc6297fa3889093c3752e82afe170baece19e8458e9e2387b5ed52dbb6efe66e09
diff --git a/sys-fs/wpflash/files/wpflash-gentoo.patch b/sys-fs/wpflash/files/wpflash-gentoo.patch
new file mode 100644
index 000000000000..8706b9ceec36
--- /dev/null
+++ b/sys-fs/wpflash/files/wpflash-gentoo.patch
@@ -0,0 +1,223 @@
+--- wpflash.c
++++ wpflash.c
+@@ -5,6 +5,9 @@
+ #include <termios.h>
+ #include <linux/ppdev.h>
+ #include <sys/ioctl.h>
++#include <unistd.h>
++#include <stdlib.h>
++#include <string.h>
+
+ int do_write(int, void *, int);
+ int do_read(int, void *, int);
+@@ -74,6 +77,13 @@ struct partition_table {
+ struct partition modified;
+ struct partition *find_partition(char *);
+
++void usage();
++void bad_partition(char *name);
++int erase_sector(int addr);
++int read_object(char *filename, char *memory, int rom_size);
++int read_raw(char *filename, char *memory, int rom_size);
++int write_flash(int addr, char *buffer, int length);
++int read_flash(int addr, char *buffer, int length);
+
+ /* This structure defines the sectors
+ on the FLASH */
+@@ -199,7 +209,8 @@ find_partition(char *name)
+ return fixup_partition(partition);
+ partition++;
+ }
+- bad_partition();
++ bad_partition(name);
++ return NULL;
+ }
+
+ /* Initialize a "cmd" structure */
+@@ -224,6 +235,7 @@ set_cmd(struct cmd *cmd, char type, int
+ waiting for "CONTROL-A" to signal it should jump
+ to the programming code */
+
++void
+ wait_boot_prompt()
+ {
+ char line[256], *s;
+@@ -236,7 +248,7 @@ wait_boot_prompt()
+ else if (*s == '\n') {
+ *s = 0;
+ if (strcmp(line, "Enter CTRL-A to enter programmer.") == 0)
+- return 1;
++ return;
+ s = line;
+ } else {
+ s++;
+@@ -246,6 +258,7 @@ wait_boot_prompt()
+
+ /* Erase a partition */
+
++int
+ erase_partition(char *name) {
+
+ struct partition *partition = find_partition(name);
+@@ -328,16 +341,18 @@ erase_partition(char *name) {
+ }
+ }
+ printf("done.\n");
++
++ return 0;
+ }
+
+ /* Program a partition */
+
+
++int
+ program_partition(char *name, char *filename, int hexdump)
+ {
+ struct partition *partition = find_partition(name);
+ int addr, maxaddr, maxpgm, addrincr, startaddr;
+- int i;
+
+ /* Load data to be programmed in either hex or binary
+ format */
+@@ -384,6 +399,7 @@ program_partition(char *name, char *file
+
+ /* Read a partition */
+
++int
+ read_partition(char *name, char *filename)
+ {
+ struct partition *partition = find_partition(name);
+@@ -421,13 +437,17 @@ read_partition(char *name, char *filenam
+ return(0);
+ }
+
++int pp_open();
++int hello();
++int initialize();
++int device_id(int *deviceID1, int *deviceID2);
++int device_id_v0(int *deviceID1, int *deviceID2);
++int double_wide();
++int parse_flash_params(char *filename);
++
++int
+ main(int argc, char **argv) {
+- struct termios termios;
+- char c;
+- int i;
+- int cpid;
+- int count;
+- int maxcount;
++ struct termios termios;
+ int version;
+ int deviceID1, deviceID2;
+ struct flash_chip *f;
+@@ -607,6 +627,8 @@ main(int argc, char **argv) {
+ /* If we got to here, an invalid operation was specified */
+
+ usage();
++
++ return 0;
+ }
+
+ /* Reads a block of data from the flash.
+@@ -632,7 +654,7 @@ read_flash(int addr, char *buffer, int l
+ for (count = 0; count < length + 1; count = count + readl) {
+ readl = do_read(sfd, buffer+count, length+1-count);
+ if (readl == 0)
+- exit;
++ exit(0);
+ }
+
+ /* Check checksum at end of data */
+@@ -662,7 +684,6 @@ write_flash(int addr, char *buffer, int
+ struct cmd cmd;
+ int count;
+ int checksum;
+- int readl;
+ char checksumbuf[1];
+
+ /* Build and send "W" command to programmer.
+@@ -705,6 +726,7 @@ write_flash(int addr, char *buffer, int
+
+ /* Send initialize command */
+
++int
+ initialize() {
+ struct cmd cmd;
+ char checksumbuf[1];
+@@ -770,6 +792,7 @@ int device_id_v0(int *deviceID1, int *de
+ Note supported on Version 0 programmers. */
+
+
++int
+ double_wide() {
+ struct cmd cmd;
+ char checksumbuf[1];
+@@ -835,6 +858,7 @@ hello() {
+
+ /* Send erase (whole flash) command */
+
++int
+ erase() {
+ struct cmd cmd;
+ char checksumbuf[1];
+@@ -857,6 +881,7 @@ erase() {
+
+ /* Send erase sector command */
+
++int
+ erase_sector(int addr) {
+ struct cmd cmd;
+ char checksumbuf[1];
+@@ -900,7 +925,7 @@ hex(char c) {
+
+ int parse_line(char *buffer, char *mem, int rom_size, int *max_mem) {
+ char *c = buffer;
+- unsigned int address, word_addr;
++ unsigned int address;
+ unsigned int length,type;
+ unsigned int checksum = 0;
+ int count = 0;
+@@ -1020,10 +1045,7 @@ int
+ read_raw(char *filename, char *memory, int rom_size)
+ {
+ FILE *f;
+- char line[80];
+- int lines_read = 0;
+ int count = 0;
+- int bytes ;
+ static int max_mem;
+
+ max_mem = 0;
+@@ -1042,7 +1064,7 @@ read_raw(char *filename, char *memory, i
+ exit(1);
+ }
+
+- while (count = fread(memory, 1, 1024, f)) {
++ while ((count = fread(memory, 1, 1024, f))) {
+ memory += count;
+ max_mem += count;
+ }
+@@ -1053,12 +1075,13 @@ read_raw(char *filename, char *memory, i
+ return max_mem; //return highest memory address used
+ }
+
+-bad_partition(char *name)
++void bad_partition(char *name)
+ {
+ fprintf(stderr, "Unknown partition: %s\n\n", name);
+ usage();
+ }
+
++void
+ usage() {
+ struct partition *partition = partition_table;
+
+@@ -1077,6 +1100,7 @@ usage() {
+ exit(1);
+ }
+
++void
+ pp_write(int fd, char value)
+ {
+ u_char d = value;
diff --git a/sys-fs/wpflash/metadata.xml b/sys-fs/wpflash/metadata.xml
new file mode 100644
index 000000000000..3101c4efc863
--- /dev/null
+++ b/sys-fs/wpflash/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>arm@gentoo.org</email>
+ <name>Gentoo Linux ARM Development</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/wpflash/wpflash-0.ebuild b/sys-fs/wpflash/wpflash-0.ebuild
new file mode 100644
index 000000000000..b3d5b9b7cd8a
--- /dev/null
+++ b/sys-fs/wpflash/wpflash-0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils
+
+DESCRIPTION="flash the firmware on a Webpal"
+HOMEPAGE="http://webpal.bigbrd.com/"
+SRC_URI="http://webpal.bigbrd.com/wpflash.c"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND=""
+
+S=${WORKDIR}
+
+src_unpack() {
+ cp "${DISTDIR}"/${A} "${WORKDIR}"/ || die
+ epatch "${FILESDIR}"/${PN}-gentoo.patch
+}
+
+src_compile() {
+ emake wpflash || die
+}
+
+src_install() {
+ dosbin wpflash || die
+}
diff --git a/sys-fs/xfsdump/Manifest b/sys-fs/xfsdump/Manifest
new file mode 100644
index 000000000000..f28d87b4dc16
--- /dev/null
+++ b/sys-fs/xfsdump/Manifest
@@ -0,0 +1,10 @@
+AUX xfsdump-3.0.4-no-symlink.patch 721 SHA256 b3ccccfce2b7f36263a8b3611724560ae768a3371dcc6e19045abae8df8052a3 SHA512 8b8feddfbdd76bebe61a8d06e174f5bef6edd05d0ce3b96731c234f58f36c73182e411a6f7b30f4e2bbc48b13b675edaf9ba30434e414b2bf2c7dbf431c1b819 WHIRLPOOL 576a5f0324ac20b80fe946f1b0390b9e70860b9f350811e41c7ccbbbb06ef8439ca1946b4d7db88b2d106ad4d67b9bf82cb46636e52d362b304c6d78bb35f142
+AUX xfsdump-3.0.5-prompt-overflow.patch 337 SHA256 1176987b6201aa40846c631fab57877a0e2a8a2560e0224e91f3f92b516fc2ac SHA512 e81b36f0e72284f739150901b30b28386ac072f7d03c5b9c5052fe69b29104c2e87bc498aa6df29e21383b22f1da2ef9035b3acd9aed721601a9a1d9938f0bcf WHIRLPOOL b696277b4bc00e3a31895b6195e2fd4481fe955af447d578a9303c7e14c387680d865abfef67932cbce67161f5d5fd646ceed53b920262dca97294f14ae39498
+AUX xfsdump-3.1.6-linguas.patch 975 SHA256 16152976e972f32921a4b34636736f041d49d656111b43aee31b9c83da582992 SHA512 2fe49c6985eca950890d952b6e33c7f9d7687dfaeb52077895e92994d930f0026bb8fdc31ad3f31d072b8a5023a9e0e3d99c301cb34802d7657a93b964aa6c8e WHIRLPOOL c2c8d255fe0d01407bf1f5282c9f854794a521d165945944cbf092517745a94907fab1de7c5a11dcb7090eaac6aed5fc020574aa81d03f222c2df87a74c90320
+DIST xfsdump-3.1.6.tar.gz 848698 SHA256 7f78c11ca527477d90e5e62b0778f3ad96f2b71c19173044e9aca9515fff42d0 SHA512 6d8eff10c65e0a0893525590953ccb7ec0095ba528725ffe3f18260e6cb8f66dd3945c60477500e84421a9ed57fae9e8f0f25c3c0900be3671f30ca6951ed5e7 WHIRLPOOL 87182e97a5676be6ad36cf74e37d9ca312d742d20eb5396917a156842fe62a23c582e16862fb384fe7706097d9f0c7a6a8faced06fec0a999ac06ceb426eb7e3
+DIST xfsdump-3.1.8.tar.xz 603304 SHA256 ed14e67ae5b273c2698e767b43a46f033d361e540fe13feaaf9b110ee0edc585 SHA512 84720c83627647c75b42c59d180bb31cbb6e064568bef18b73641cf821fa7d39e6f7e0df4a6c7ffd36fba63296ab88cb83f0effdb1f6aa98f4b593ca0e658e0b WHIRLPOOL f75004400387916cd461a49500fa72ff878a9112f7550dd7c14f8b39e8f52678ca6721c298d536631c1649f989f7c007625e72c1136dabe60d9235bb5f8900d4
+EBUILD xfsdump-3.1.6.ebuild 1440 SHA256 1f4ee21685b223fd06e50d4ffc9c5527ce974569d419bc3dc0f56201117b4fda SHA512 6f9f3123abad6cc0cf066515020d662bc05097aa511bb9e1666855170dea275422ce096925c7ecc4196ae86472888f4245ed9af8c69b6e4bffd5fa1d3171c669 WHIRLPOOL 0a9899e27f9444894433630c24516a43c235b9903753ead028d9fb47748d4a46d56580bd130b05ad6cb6a7aea63d2860f086160ec7b2f306bc2d757f36fbf4e7
+EBUILD xfsdump-3.1.8.ebuild 1504 SHA256 3319fce7e3fb748e075bafcc9005a389706850e7b6c2a94b3e3fb4b48d1d359b SHA512 95291407f086a6f4fd264864c19944eb0edadb908ed40b0e7207a9ca985e6ea600b5449c182c2688391a05de6dd1e410bb7146782e22199a37c6031d205b6c18 WHIRLPOOL 5dff029b6b29af9c4a249ca35b052d41be3febb0bf3fd2d57592304d7ac71ca28ae07502fe8524d8b133ed99bf25b7fff4a552d01faa869ea07134bbfad65700
+MISC ChangeLog 5785 SHA256 0ae78ca870bc678c12e081fa1ebf67067a135adfdc48d02417b4d54b1122fd6f SHA512 31b9e8c8139391bd6fee2570da3d0bcc6297e9b86ae9a7b6f283d45968b2ec705d337b7fb27ad7b32785c35042ba22b9226f02535359faee7c5840a309f49c1b WHIRLPOOL ad0031a1a8e309aad0c2989377ec9e08ff5596766e78e497ada322c288c91add2dd2260b9298286b947ace94cc253ebe9a5bdb108989c3db2030f93a1931dce8
+MISC ChangeLog-2015 15618 SHA256 16ae77c69991016a6218e037cca00a97f7e30f133ef4f81dc7fb42471f520ee4 SHA512 63b0e5df754fa3b56ee1ce014f16a91a231652098908af49ccc8bdf35220eb8f8319505a5ff9e6a012ab81367b06e8a98087c14e4f9fbbaacfa4892d7ff5c838 WHIRLPOOL 61a271793e84f66d5ae2cc7522511ec415961ed0bcc48ff8c766a266790eb71475fe0be459dc06ad628f02d1af24c7974efbbd925ac9674b4ec73290785861bf
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-fs/xfsdump/files/xfsdump-3.0.4-no-symlink.patch b/sys-fs/xfsdump/files/xfsdump-3.0.4-no-symlink.patch
new file mode 100644
index 000000000000..014ca33d2154
--- /dev/null
+++ b/sys-fs/xfsdump/files/xfsdump-3.0.4-no-symlink.patch
@@ -0,0 +1,22 @@
+http://bugs.gentoo.org/311881
+
+--- xfsdump-3.0.4/dump/Makefile
++++ xfsdump-3.0.4/dump/Makefile
+@@ -102,7 +102,6 @@
+ $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
+ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR)
+ $(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
+- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND)
+ install-dev:
+
+ $(COMMINCL) $(COMMON):
+--- xfsdump-3.0.4/restore/Makefile
++++ xfsdump-3.0.4/restore/Makefile
+@@ -114,7 +114,6 @@
+ $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
+ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR)
+ $(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
+- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND)
+ install-dev:
+
+ $(COMMINCL) $(COMMON):
diff --git a/sys-fs/xfsdump/files/xfsdump-3.0.5-prompt-overflow.patch b/sys-fs/xfsdump/files/xfsdump-3.0.5-prompt-overflow.patch
new file mode 100644
index 000000000000..bd7fb3f44520
--- /dev/null
+++ b/sys-fs/xfsdump/files/xfsdump-3.0.5-prompt-overflow.patch
@@ -0,0 +1,14 @@
+http://oss.sgi.com/bugzilla/show_bug.cgi?id=876
+https://bugs.gentoo.org/335115
+
+--- a/dump/content.c
++++ b/dump/content.c
+@@ -6460,7 +6460,7 @@
+ Media_prompt_erase( drive_t *drivep )
+ {
+ fold_t fold;
+- char question[ 100 ];
++ char question[ 200 ];
+ char *preamblestr[ PREAMBLEMAX ];
+ size_t preamblecnt;
+ char *querystr[ QUERYMAX ];
diff --git a/sys-fs/xfsdump/files/xfsdump-3.1.6-linguas.patch b/sys-fs/xfsdump/files/xfsdump-3.1.6-linguas.patch
new file mode 100644
index 000000000000..5d5e54e61c4f
--- /dev/null
+++ b/sys-fs/xfsdump/files/xfsdump-3.1.6-linguas.patch
@@ -0,0 +1,32 @@
+From e12813b9d0883e02cc121ea503f4bff5fb67e9ef Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 8 Apr 2016 16:41:31 -0400
+Subject: [PATCH xfsdump] po: respect LINGUAS build setting
+
+It is common gettext practice to limit the translations a particular
+package will include by setting the LINGUAS environment variable.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ po/Makefile | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/po/Makefile b/po/Makefile
+index 6d40324..48a19c1 100644
+--- a/po/Makefile
++++ b/po/Makefile
+@@ -6,7 +6,10 @@ TOPDIR = ..
+ include $(TOPDIR)/include/builddefs
+
+ POTHEAD = $(PKG_NAME).pot
+-LINGUAS = de pl
++# If the user has requested a specific set of translations, only build those.
++SUPPORTED_LINGUAS = $(patsubst %.po,%,$(wildcard *.po))
++LINGUAS ?= $(SUPPORTED_LINGUAS)
++LINGUAS := $(filter $(SUPPORTED_LINGUAS),$(LINGUAS))
+ LSRCFILES = $(LINGUAS:%=%.po)
+ LDIRT = $(POTHEAD)
+
+--
+2.7.4
+
diff --git a/sys-fs/xfsdump/metadata.xml b/sys-fs/xfsdump/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-fs/xfsdump/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/xfsdump/xfsdump-3.1.6.ebuild b/sys-fs/xfsdump/xfsdump-3.1.6.ebuild
new file mode 100644
index 000000000000..8ceb39c85da5
--- /dev/null
+++ b/sys-fs/xfsdump/xfsdump-3.1.6.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit multilib eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="xfs dump/restore utilities"
+HOMEPAGE="http://oss.sgi.com/projects/xfs"
+SRC_URI="ftp://oss.sgi.com/projects/xfs/cmd_tars/${P}.tar.gz
+ ftp://oss.sgi.com/projects/xfs/previous/cmd_tars/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ~mips ppc ppc64 -sparc x86"
+IUSE="ncurses nls"
+
+RDEPEND="ncurses? ( sys-libs/ncurses:0= )
+ sys-fs/e2fsprogs
+ >=sys-fs/xfsprogs-3.2.0
+ sys-apps/dmapi
+ >=sys-apps/attr-2.4.19"
+DEPEND="${RDEPEND}
+ nls? (
+ sys-devel/gettext
+ elibc_uclibc? ( dev-libs/libintl )
+ )"
+
+src_prepare() {
+ sed -i \
+ -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
+ include/builddefs.in \
+ || die
+ sed -i \
+ -e "s:enable_curses=[a-z]*:enable_curses=$(usex ncurses):" \
+ -e "s:libcurses=\"[^\"]*\":libcurses='$(use ncurses && $(tc-getPKG_CONFIG) --libs ncurses)':" \
+ configure || die #605852
+ epatch "${FILESDIR}"/${PN}-3.0.5-prompt-overflow.patch #335115
+ epatch "${FILESDIR}"/${PN}-3.0.4-no-symlink.patch #311881
+ epatch "${FILESDIR}"/${PN}-3.1.6-linguas.patch #561664
+}
+
+src_configure() {
+ unset PLATFORM #184564
+ export OPTIMIZER=${CFLAGS}
+ export DEBUG=-DNDEBUG
+
+ econf \
+ $(use_enable nls gettext) \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)" \
+ --sbindir="${EPREFIX}/sbin"
+}
diff --git a/sys-fs/xfsdump/xfsdump-3.1.8.ebuild b/sys-fs/xfsdump/xfsdump-3.1.8.ebuild
new file mode 100644
index 000000000000..ce2ed0fab36f
--- /dev/null
+++ b/sys-fs/xfsdump/xfsdump-3.1.8.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib flag-o-matic toolchain-funcs
+
+DESCRIPTION="xfs dump/restore utilities"
+HOMEPAGE="http://oss.sgi.com/projects/xfs"
+SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86"
+IUSE="ncurses nls"
+
+RDEPEND="
+ >=sys-apps/attr-2.4.19
+ sys-apps/dmapi
+ sys-apps/util-linux
+ sys-fs/e2fsprogs
+ >=sys-fs/xfsprogs-3.2.0
+ ncurses? ( sys-libs/ncurses:0= )
+"
+DEPEND="${RDEPEND}
+ nls? (
+ sys-devel/gettext
+ elibc_uclibc? ( dev-libs/libintl )
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.5-prompt-overflow.patch #335115
+ "${FILESDIR}"/${PN}-3.0.4-no-symlink.patch #311881
+ "${FILESDIR}"/${PN}-3.1.6-linguas.patch #561664
+)
+
+src_prepare() {
+ sed -i \
+ -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
+ include/builddefs.in \
+ || die
+ sed -i \
+ -e "s:enable_curses=[a-z]*:enable_curses=$(usex ncurses):" \
+ -e "s:libcurses=\"[^\"]*\":libcurses='$(use ncurses && $(tc-getPKG_CONFIG) --libs ncurses)':" \
+ configure || die #605852
+
+ default
+}
+
+src_configure() {
+ unset PLATFORM #184564
+ export OPTIMIZER=${CFLAGS}
+ export DEBUG=-DNDEBUG
+
+ local myeconfargs=(
+ $(use_enable nls gettext)
+ --libdir="${EPREFIX}/$(get_libdir)"
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)"
+ --sbindir="${EPREFIX}/sbin"
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ # enable verbose build
+ emake V=1
+}
diff --git a/sys-fs/xfsprogs/Manifest b/sys-fs/xfsprogs/Manifest
new file mode 100644
index 000000000000..624208f76765
--- /dev/null
+++ b/sys-fs/xfsprogs/Manifest
@@ -0,0 +1,20 @@
+AUX xfsprogs-4.12.0-fix_musl.patch 3133 SHA256 5dcd271717eebe2d301f2df4c439a359f26c3bad23a7d99c0d01bcec693b057b SHA512 882de116f5cfe71fb5d3ac81db50eca6a1b666ea40041ab1e922507bc17906055ac02335bce94c64dcb3ad8938a48064f5b364e8867a72ac19077cc92a93a249 WHIRLPOOL 9a40274f0971ee29bd5999eb4ffaea0d7a74c33a430e125152f0e7c569c002303187ad69630161a58b48c40bee2b4b6c382ea4379ae200bd23af0d09d71d43e3
+AUX xfsprogs-4.12.0-sharedlibs.patch 2361 SHA256 4f10b622e8b7c8654a5dc79356343515ef203742ba4781b97a6f02f23e99555a SHA512 bbf802c54d2c8a2a524a9d4ae0ca66a18bf6b099a00fcc248abee04f84371bd35fc07a2dcc0c1d99c297b474c1f98d92927aa5ca16df5e6caef3abe386f31eba WHIRLPOOL 72e00337e46700ee2a16597bb8188fff229c019c46a39f60598a6d802b8ba094c6e5da8377aad60fee6afd9f491c577d2c84ace3f78a00438268ccbc1832368a
+AUX xfsprogs-4.3.0-cross-compile.patch 5112 SHA256 5654447555115bce22e443623f6fc17b767681741f043a9dc5e6887967a27db9 SHA512 2d6303b7c89b3e1ca2ba1d95a4477d0d1c2360ed68bf9c9d3630f990081be98ace9b9c164729635fa582cc5c8bd418e1824e35f613512d43cc6116fcda379582 WHIRLPOOL 1fee9f56739d13c1b04b2d0d190b193c97a846902fce8ccba0210cbce6a61bcd2cab118a2c59fb66cd89a957e32e714c3f1dc534697819165a505a8eb8f225b6
+AUX xfsprogs-4.3.0-sharedlibs.patch 2310 SHA256 23bf3127cd1eab6e96055d2a5f3ae61f417a8d4ae52d5c421be2bbb05576bb46 SHA512 6d7ad2bc8b74390f81ecfa3774c837d083dc7e3332bd2e5450c4d67805d54f9727afeace39755e5d1185a230abcc9644bf2eb1544708d81b4f93a419aad8fdf4 WHIRLPOOL 5adb3dbffcd788e27e228d9d04a5991a20fd4ae9b8c7e32996b33fe71451ce2a468299f5abb40ff416b8abff399a7c0f7b4d3102b10f4e6bd830b3d0b57768c8
+AUX xfsprogs-4.5.0-linguas.patch 967 SHA256 79c3b0b1faacd8ec52d060f05dcf0e72b83d5892e96ab01c4e6821394e2344de SHA512 6d812dce622a3d38fe2b23e47c8f188012522dee3eaa6f002080f2b2ba8e50dc31ed8fc56d9e10b13d4f0dc54d6377b77d8a3823494176e843480e5226e79679 WHIRLPOOL 2a3de6cf5ed3463bc8299600c6c1a00dfe995d089034ae15a0a07c46e7f24507a3a98cb28641bb29a4e5193338deca1c18fa11c0bc9084b97786938ec2c19778
+AUX xfsprogs-4.7.0-libxcmd-link.patch 880 SHA256 06cced4aeeb9a2d8c90e6d6fd1ff6571020122dbfe62140513f52bd82bf9abe8 SHA512 4484570c4bb387b6dfde5f31d8527f2222d33e120c365e3cbc6f488403b9e9d969d3f2a883ffcb145a11d57ace70c76fb1ba4a8ed75533f2089a197d463c8dd9 WHIRLPOOL c975535bbf431b86ee82806ce6dbfc0196d7c175d13b00aeccd747820a817169aa1d4958b62f97fb4c36a24f964692ef3ea1d3e0ff11c5cfbd04ba60ce2317df
+AUX xfsprogs-4.7.0-sharedlibs.patch 2355 SHA256 983b08b2a4a4ee91be21f14063167a3752554b41fd78aead6dfd6ac38702a5a7 SHA512 f0006ec0a987e44a1e60d642f9938d35c14ccb765c6a040c80e483a0e073e54608571b53793b7d4c2b9eb1f5c4e2f077fb713dfab9abaa99022d24d8a17443fe WHIRLPOOL 939841084292f598c32aa3be784d6235b6803abd86062790191b7959be73d9f8afc31cbb0d330abaee253c141dcbe0d4a4e20ae76ba64146d41acfbf7f3e0fa4
+AUX xfsprogs-4.9.0-cross-compile.patch 3663 SHA256 0ed4d1d7cb43de579fe343c6b6e63d181f66c797e549ef1ceeabd6886a080b97 SHA512 150ebcc26b21eb3e52575dd6b4bf2f451abb4906071b66e79df3697a56345e178f6b9bb11a7bd19283adb47a6b5e9c1dd807775ac2c814f0e2db795788fd1159 WHIRLPOOL 191462575cfb9a0e7fc6d996d0e2819e92f0b63f552f503070485af8de6ccc410b468113c1f9cba0f18b476545a192aea326300423f14b0df9649973b482af5e
+AUX xfsprogs-4.9.0-underlinking.patch 731 SHA256 644713208fcce550cbe66de8aa3fc366449a838baaba2db030bfc6111f4de7b5 SHA512 2fcbaab48ca33cd2e8724cdc55d814a970beb5127c861f4b829ede9f501516733c6dabbfe0bfb1d23df01bb69538af5ca31eb403030e3d2ad9efd8643c509ac7 WHIRLPOOL 00a06a89374682e09379e98176990436cd716f4d2cab3f1801097dfd228a92562fc521ff0a6441dc080e26a2087034e8572cd72b836ed575c75ba972079c9c29
+DIST xfsprogs-4.12.0.tar.xz 1128400 SHA256 b330ad8d737f4152ae511580102e2fc49212bb51dfb4b614084344abae46d0df SHA512 1dc4a0a5f40baf1d6398c8f07b4cb3ab796cf052c34b811d60b08c60a4700c2ced8d4d1adb878f8b85ba58cf3e1276db1477109de538fd427d3e359a52f59d4a WHIRLPOOL c18d3c9dfab8ccb877eb6fa9fa05be3c614a587c6cb616a9f18b52debb8ecacbd22056cb397ff9e69407c66e105d034458b41f0ba4275352f31398e64d303c02
+DIST xfsprogs-4.13.1.tar.xz 1133556 SHA256 8c64d349d191e24c84eeb1611be767e4a11b81016bd5b73f3a20a0bf39dd3536 SHA512 6c234a6c22aa3cabe0ea698c11175dca6c19d803989127ccb13b526ff6d34dcef9dd6e19ff0c4fb3903078f24210a8cfcd0508dac29d52fbee4dfed37d5888f3 WHIRLPOOL 89a84ce7b59fa52cd245493a28c6ad7f6e114dfe8044b2dad57b2cc626308ad1187ef812ace618085a083745acd3c37538903a6e2f935d9cd351c923559d9732
+DIST xfsprogs-4.5.0.tar.gz 1524382 SHA256 e49beb314984efbd0d758abb5c6137db3bb60a88e59e1e94c00defb536cf89f8 SHA512 19c95551dc91ec46916f9a7e3d7976907664d32dd5fdc26af0ca62ca74c4b3c10f9e843aac8214ea9d1c0bf140c9f4e321d059808af01a623abedd5067011314 WHIRLPOOL 54d742635df024a63181da76c3220671610068363af85be2677521f20342595a5cebb2fd169945572351901ee2c9384f79f54a381ab3620dde22d863aa66d469
+DIST xfsprogs-4.9.0.tar.xz 1087940 SHA256 f1e60a9a54583dba82fa506dd9b59bdec110a968f80f507bf5f93b263af7a4df SHA512 990946f0a34381f57afb39bcda0ff539e18af4de2ecc19c833ffd4fb7c22c25b501091c1f0953db103a62204d952c9eecba21f22f3c5910286456da65fb09fa7 WHIRLPOOL a9b582a42967ce1e314cd0ac3518792c2e10f7bb1370151a68a09a8e21e40cc6818b9778dfdd248961c3a1a08a70424f0150219488a18bc5d60e5669702c472f
+EBUILD xfsprogs-4.12.0.ebuild 2733 SHA256 7c701daa83b8f2f9f7dd476969d5db08246d0cc160783ac52de79a88e78e80f5 SHA512 b163f664b954fd6ace1e3ce1ad352deab0a10050c8b0b96dba8446cd4d9cbddb31c6c043ce7bffe86975606682e6e268f0efedda544c107284c92e7b4014d63d WHIRLPOOL 9facf37ae886e70d1adcc9492fe693db353b3e4db0c308507c8746b840826bda6418803dca1aa5fedc5b860993b69a1746822d7c6369f26e21e007cbc2a3cb61
+EBUILD xfsprogs-4.13.1.ebuild 2670 SHA256 43ac0c677dd12f316b14d973232c1efe0d4f2d860c9cdd5879c9513d4521ac11 SHA512 ab45b35a6805c8b55437ae5606f99dcae5edae90c2957c15653095d5efe16a13350d99b9117e13e55df9ea95b94119adb6d24b35e6f12635f2a17189f402f35c WHIRLPOOL 9b8f29d42301f0e4e4d5603fa1ca7e9abfd3037db2efb975d671ff72a6b4801a8ea714d46a568371cbbcf6cbc544ea30122e9a321d8f730ce42fb948975d36da
+EBUILD xfsprogs-4.5.0.ebuild 2876 SHA256 bb4164dfffe41f3285d538cc4987904c1484070fec87e13225c551a0b20a30cb SHA512 2b40573bc0cb60c3b2d6e77c1b1b064856cee0e394b371622da66e12c11792b1b48e6ab8615679b18afef3f17a7264680c9787d1fbb243c012ea837c3463a946 WHIRLPOOL e2e719965f35ca69f7df416362097217d59c581d11ae1444ebd650592226f71b9a1ddc9f391b2d88c2f8add073d81ccf4434b1cfc3282db2c6c72afcd1ab8f9d
+EBUILD xfsprogs-4.9.0.ebuild 2718 SHA256 669932798f56cda66c32b6895ce4de352a1267658b356c118d42688e5dc917f1 SHA512 bfdc9019fbc598723a821989d786a9b16babd6fddb79f981513ecdd811ef1200528c4de98eb146eba3cbc394cdad2ab1bea5239d9de1089014bd2d8acc602381 WHIRLPOOL a4a062bd690fe233e207433150222d2940c7c9b7442b301c6adf3d9f3404fbe942b237cab520c8d4c7d82ad006eeab683c856ae7596df2f69003dc2a3f9868d5
+MISC ChangeLog 7808 SHA256 2394e793a2c85a4c800ab3548fed0aec55247485f31c61385994365b0be76a26 SHA512 043b5ff15b946707fbbe84471d5daada8630ac7338afacd5f0eab75618c8fb3a052f8c8696caefaad45f6597880c701ec961048cc1f6a1afa9e6f9a0c90f0809 WHIRLPOOL 6d80d2202148bdc8288acc75c7e0d60c94ce1a7e635083790c0f442c1e208c0386dfbdd81b5064c7b93b28e8afde47b6f985cf4694141f03e8d488a04d651969
+MISC ChangeLog-2015 28799 SHA256 dd1a390d3e1f144f1a84f7261aa84fd4bf9840e63c486e50e438777f8c4cc21f SHA512 8c0afd13653f5aad5a76d431a0940d7c84d6ec6a5783c8ed9905a67dec474264981a9b66aa500ad66886e2a09cdbfcc13b6ae86c92d49e349e06716ba5a401c6 WHIRLPOOL c765b8c79e1e006978c2ee663c024a31063f395cccceb063f01e5bec98e74bb1352dc2f213970e3fadcbb63db03b6c6c2856580c7b5fc422c0f4441655ef48c0
+MISC metadata.xml 257 SHA256 c1d4bdabe699c6d9fcdf3b7794a13b45f69e3826b814b422e4ca7e6893b99012 SHA512 9c7759d33e1bbc8be0da5b4f59fc720266e40f4116d7db0c17c5ad800a7bb638f33a1308e1554092af781f06df6f6cb55db41fc22207cd3edc2e159840e3a3b1 WHIRLPOOL 4afcbc79dd61237c778735b39060b3e294fdc07da5b0da6f7b40db92649ac71febddd7a0265502e102d8eec9664fd5af2071fff9428bfcb0a6bf06cf70c68a3d
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch b/sys-fs/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch
new file mode 100644
index 000000000000..efc57e4f693d
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch
@@ -0,0 +1,117 @@
+From 21253610f9ef87db8e2a75b863b7fcfbd0cdb421 Mon Sep 17 00:00:00 2001
+From: "Darrick J. Wong" <darrick.wong@oracle.com>
+Date: Tue, 25 Jul 2017 13:45:01 -0500
+Subject: [PATCH] In patch 4944defad4 ("xfs_db: redirect printfs when
+ metadumping to stdout"), we solved the problem of xfs_db printfs ending up in
+ the metadump stream by reassigning stdout for the duration of a stdout
+ metadump. Unfortunately, musl doesn't allow stdout to be reassigned (in
+ their view "extern FILE *stdout" means "extern FILE * const stdout"), so we
+ abandon the old approach in favor of playing games with dup() to switch the
+ raw file descriptors.
+
+While we're at it, fix a regression where an unconverted outf test
+allows progress info to end up in the metadump stream.
+
+Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
+---
+ db/metadump.c | 47 ++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 36 insertions(+), 11 deletions(-)
+
+diff --git a/db/metadump.c b/db/metadump.c
+index 96641e0..4e2f648 100644
+--- a/db/metadump.c
++++ b/db/metadump.c
+@@ -78,6 +78,7 @@ static int obfuscate = 1;
+ static int zero_stale_data = 1;
+ static int show_warnings = 0;
+ static int progress_since_warning = 0;
++static bool stdout_metadump;
+
+ void
+ metadump_init(void)
+@@ -137,7 +138,7 @@ print_progress(const char *fmt, ...)
+ va_end(ap);
+ buf[sizeof(buf)-1] = '\0';
+
+- f = (outf == stdout) ? stderr : stdout;
++ f = stdout_metadump ? stderr : stdout;
+ fprintf(f, "\r%-59s", buf);
+ fflush(f);
+ progress_since_warning = 1;
+@@ -2750,7 +2751,8 @@ metadump_f(
+ xfs_agnumber_t agno;
+ int c;
+ int start_iocur_sp;
+- bool stdout_metadump = false;
++ int outfd = -1;
++ int ret;
+ char *p;
+
+ exitcode = 1;
+@@ -2870,16 +2872,35 @@ metadump_f(
+ * metadump operation so that dbprintf and other messages
+ * are sent to the console instead of polluting the
+ * metadump stream.
++ *
++ * We get to do this the hard way because musl doesn't
++ * allow reassignment of stdout.
+ */
+- outf = stdout;
+- stdout = stderr;
++ fflush(stdout);
++ outfd = dup(STDOUT_FILENO);
++ if (outfd < 0) {
++ perror("opening dump stream");
++ goto out;
++ }
++ ret = dup2(STDERR_FILENO, STDOUT_FILENO);
++ if (ret < 0) {
++ perror("redirecting stdout");
++ close(outfd);
++ goto out;
++ }
++ outf = fdopen(outfd, "a");
++ if (outf == NULL) {
++ fprintf(stderr, "cannot create dump stream\n");
++ dup2(outfd, 1);
++ close(outfd);
++ goto out;
++ }
+ stdout_metadump = true;
+ } else {
+ outf = fopen(argv[optind], "wb");
+ if (outf == NULL) {
+ print_warning("cannot create dump file");
+- free(metablock);
+- return 0;
++ goto out;
+ }
+ }
+
+@@ -2907,15 +2928,19 @@ metadump_f(
+ if (progress_since_warning)
+ fputc('\n', stdout_metadump ? stderr : stdout);
+
+- if (stdout_metadump)
+- stdout = outf;
+- else
+- fclose(outf);
++ if (stdout_metadump) {
++ fflush(outf);
++ fflush(stdout);
++ ret = dup2(outfd, STDOUT_FILENO);
++ if (ret < 0)
++ perror("un-redirecting stdout");
++ }
++ fclose(outf);
+
+ /* cleanup iocur stack */
+ while (iocur_sp > start_iocur_sp)
+ pop_cur();
+-
++out:
+ free(metablock);
+
+ return 0;
+--
+2.13.3
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.12.0-sharedlibs.patch b/sys-fs/xfsprogs/files/xfsprogs-4.12.0-sharedlibs.patch
new file mode 100644
index 000000000000..cb59d44a46b7
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.12.0-sharedlibs.patch
@@ -0,0 +1,81 @@
+--- xfsprogs-4.12.0/include/buildmacros
++++ xfsprogs-4.12.0/include/buildmacros
+@@ -70,18 +70,9 @@
+ # /usr/lib.
+ ifeq ($(ENABLE_SHARED),yes)
+ INSTALL_LTLIB_DEV = \
+- cd $(TOPDIR)/$(LIBNAME)/.libs; \
+- ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
+- ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \
+- ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \
+- ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \
+- ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \
+- if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \
+- "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \
+- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
+- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
+- ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \
+- fi
++ set -e; cd $(TOPDIR)/$(LIBNAME); \
++ $(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
++ env -uDIST_ROOT $(LTINSTALL) $(TOPDIR)/$(LIBNAME)/$(LIBNAME).la $(DIST_ROOT)$(PKG_LIB_DIR)/$(LIBNAME).la
+ else
+ INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)
+ endif
+--- xfsprogs-4.12.0/libhandle/Makefile
++++ xfsprogs-4.12.0/libhandle/Makefile
+@@ -24,7 +24,6 @@
+ include $(BUILDRULES)
+
+ install: default
+- $(INSTALL_LTLIB)
+
+ install-dev: default
+ $(INSTALL_LTLIB_DEV)
+--- xfsprogs-4.12.0/libxcmd/Makefile
++++ xfsprogs-4.12.0/libxcmd/Makefile
+@@ -34,6 +34,9 @@
+
+ include $(BUILDRULES)
+
+-install install-dev: default
++install: default
++
++install-dev: default
++ $(INSTALL_LTLIB_DEV)
+
+ -include .ltdep
+--- xfsprogs-4.12.0/libxfs/Makefile
++++ xfsprogs-4.12.0/libxfs/Makefile
+@@ -151,6 +151,7 @@
+
+ install-dev: install
+ $(INSTALL) -m 644 $(PKGHFILES) $(PKG_INC_DIR)
++ $(INSTALL_LTLIB_DEV)
+
+ # We need to install the headers before building the dependencies. If we
+ # include the .ltdep file, the makefile decides that it needs to build the
+--- xfsprogs-4.12.0/libxlog/Makefile
++++ xfsprogs-4.12.0/libxlog/Makefile
+@@ -19,6 +19,9 @@
+
+ include $(BUILDRULES)
+
+-install install-dev: default
++install: default
++
++install-dev: default
++ $(INSTALL_LTLIB_DEV)
+
+ -include .ltdep
+--- xfsprogs-4.12.0/Makefile
++++ xfsprogs-4.12.0/Makefile
+@@ -89,6 +89,8 @@
+ copy: libxlog
+ mkfs: libxcmd
+ spaceman: libxcmd
++libxlog: libxfs
++libxlog-install-dev: libxfs-install-dev
+
+ ifeq ($(HAVE_BUILDDEFS), yes)
+ include $(BUILDRULES)
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.3.0-cross-compile.patch b/sys-fs/xfsprogs/files/xfsprogs-4.3.0-cross-compile.patch
new file mode 100644
index 000000000000..c54566451a9e
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.3.0-cross-compile.patch
@@ -0,0 +1,181 @@
+From 1a366eedc0eb4da46da48e9f6e2da27c7b5d2076 Mon Sep 17 00:00:00 2001
+From: Gwendal Grignou <gwendal@chromium.org>
+Date: Fri, 3 Jun 2016 09:17:28 -0700
+Subject: [PATCH] Allow compiling xfsprogs in a cross compile environment.
+
+Without this patch, we are using the same compiler and options for the host
+compiler (BUILD_CC) and the target compiler (CC), and we would get error
+messages at compilation:
+x86_64-pc-linux-gnu-gcc -O2 -O2 -pipe -march=armv7-a -mtune=cortex-a15 ...
+x86_64-pc-linux-gnu-gcc.real: error: unrecognized command line option
+'-mfpu=neon'
+'-mfloat-abi=hard'
+'-clang-syntax'
+'-mfpu=neon'
+'-mfloat-abi=hard'
+'-clang-syntax'
+
+Add BUILD_CC and BUILD_CFLAGS as precious variables to allow setting it up
+from the ebuild.
+
+Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
+---
+ configure | 26 +++++++++++++++++++++-----
+ configure.ac | 20 +++++++++++++++-----
+ include/builddefs.in | 6 ++++--
+ libxfs/Makefile | 4 ++--
+ 4 files changed, 42 insertions(+), 14 deletions(-)
+
+diff --git a/configure b/configure
+index 325081f..863a447 100755
+--- a/configure
++++ b/configure
+@@ -700,6 +700,7 @@ libreadline
+ enable_blkid
+ enable_gettext
+ enable_shared
++BUILD_CFLAGS
+ BUILD_CC
+ CPP
+ LT_SYS_LIBRARY_PATH
+@@ -806,7 +807,9 @@ LDFLAGS
+ LIBS
+ CPPFLAGS
+ LT_SYS_LIBRARY_PATH
+-CPP'
++CPP
++BUILD_CC
++BUILD_CFLAGS'
+
+
+ # Initialize some variables set by options.
+@@ -1456,6 +1459,9 @@ Some influential environment variables:
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ CPP C preprocessor
++ BUILD_CC C compiler for build tools
++ BUILD_CFLAGS
++ C compiler flags for build tools
+
+ Use these variables to override the choices made by `configure' or to help
+ it to find libraries and programs with nonstandard names/locations.
+@@ -11957,11 +11963,12 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+
+-else
+- for ac_prog in gcc cc
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ for ac_prog in gcc cc
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+@@ -12003,6 +12010,15 @@ fi
+ test -n "$BUILD_CC" && break
+ done
+
++ fi
++fi
++
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
+ fi
+
+ # Check whether --enable-shared was given.
+diff --git a/configure.ac b/configure.ac
+index d44438f..fc286b3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,11 +9,21 @@ AC_PREFIX_DEFAULT(/usr)
+ AC_PROG_LIBTOOL
+
+ AC_PROG_CC
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+- AC_SUBST(BUILD_CC)
+-else
+- AC_CHECK_PROGS(BUILD_CC, gcc cc)
++AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ AC_CHECK_PROGS(BUILD_CC, gcc cc)
++ fi
++fi
++AC_ARG_VAR(BUILD_CFLAGS, [C compiler flags for build tools])
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
+ fi
+
+ AC_ARG_ENABLE(shared,
+diff --git a/include/builddefs.in b/include/builddefs.in
+index c2ca4cb..9ca57a6 100644
+--- a/include/builddefs.in
++++ b/include/builddefs.in
+@@ -27,6 +27,7 @@ MALLOCLIB = @malloc_lib@
+ LOADERFLAGS = @LDFLAGS@
+ LTLDFLAGS = @LDFLAGS@
+ CFLAGS = @CFLAGS@
++BUILD_CFLAGS = @BUILD_CFLAGS@
+
+ LIBRT = @librt@
+ LIBUUID = @libuuid@
+@@ -150,7 +151,7 @@ PCFLAGS+= -DENABLE_BLKID
+ endif
+
+
+-GCFLAGS = $(OPTIMIZER) $(DEBUG) \
++GCFLAGS = $(DEBUG) \
+ -DVERSION=\"$(PKG_VERSION)\" -DLOCALEDIR=\"$(PKG_LOCALE_DIR)\" \
+ -DPACKAGE=\"$(PKG_NAME)\" -I$(TOPDIR)/include -I$(TOPDIR)/libxfs
+
+@@ -158,8 +159,9 @@ ifeq ($(ENABLE_GETTEXT),yes)
+ GCFLAGS += -DENABLE_GETTEXT
+ endif
+
++BUILD_CFLAGS += $(GCFLAGS) $(PCFLAGS)
+ # First, Global, Platform, Local CFLAGS
+-CFLAGS += $(FCFLAGS) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS)
++CFLAGS += $(FCFLAGS) $(OPTIMIZER) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS)
+
+ include $(TOPDIR)/include/buildmacros
+
+diff --git a/libxfs/Makefile b/libxfs/Makefile
+index 873d4ec..8d728c0 100644
+--- a/libxfs/Makefile
++++ b/libxfs/Makefile
+@@ -111,7 +111,7 @@ default: crc32selftest ltdepend $(LTLIBRARY)
+
+ crc32table.h: gen_crc32table.c
+ @echo " [CC] gen_crc32table"
+- $(Q) $(BUILD_CC) $(CFLAGS) -o gen_crc32table $<
++ $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -o gen_crc32table $<
+ @echo " [GENERATE] $@"
+ $(Q) ./gen_crc32table > crc32table.h
+
+@@ -122,7 +122,7 @@ crc32table.h: gen_crc32table.c
+ # disk.
+ crc32selftest: gen_crc32table.c crc32table.h crc32.c
+ @echo " [TEST] CRC32"
+- $(Q) $(BUILD_CC) $(CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@
++ $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@
+ $(Q) ./$@
+
+ # set up include/xfs header directory
+--
+2.8.0.rc3.226.g39d4020
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.3.0-sharedlibs.patch b/sys-fs/xfsprogs/files/xfsprogs-4.3.0-sharedlibs.patch
new file mode 100644
index 000000000000..a39af0d8cb43
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.3.0-sharedlibs.patch
@@ -0,0 +1,80 @@
+--- xfsprogs-4.3.0/include/buildmacros
++++ xfsprogs-4.3.0/include/buildmacros
+@@ -70,18 +70,9 @@
+ # /usr/lib.
+ ifeq ($(ENABLE_SHARED),yes)
+ INSTALL_LTLIB_DEV = \
+- cd $(TOPDIR)/$(LIBNAME)/.libs; \
+- ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
+- ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \
+- ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \
+- ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \
+- ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \
+- if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \
+- "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \
+- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
+- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
+- ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \
+- fi
++ set -e; cd $(TOPDIR)/$(LIBNAME); \
++ $(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
++ env -uDIST_ROOT $(LTINSTALL) $(TOPDIR)/$(LIBNAME)/$(LIBNAME).la $(DIST_ROOT)$(PKG_LIB_DIR)/$(LIBNAME).la
+ else
+ INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)
+ endif
+--- xfsprogs-4.3.0/libxcmd/Makefile
++++ xfsprogs-4.3.0/libxcmd/Makefile
+@@ -34,6 +34,9 @@
+
+ include $(BUILDRULES)
+
+-install install-dev: default
++install: default
++
++install-dev: default
++ $(INSTALL_LTLIB_DEV)
+
+ -include .ltdep
+--- xfsprogs-4.3.0/libxfs/Makefile
++++ xfsprogs-4.3.0/libxfs/Makefile
+@@ -138,6 +138,7 @@
+
+ install-dev: install
+ $(INSTALL) -m 644 $(PKGHFILES) $(PKG_INC_DIR)
++ $(INSTALL_LTLIB_DEV)
+
+ # We need to install the headers before building the dependencies. If we
+ # include the .ltdep file, the makefile decides that it needs to build the
+--- xfsprogs-4.3.0/libxlog/Makefile
++++ xfsprogs-4.3.0/libxlog/Makefile
+@@ -12,6 +12,8 @@
+
+ CFILES = xfs_log_recover.c util.c
+
++LTLIBS = $(LIBUUID) $(LIBXFS)
++
+ # don't want to link xfs_repair with a debug libxlog.
+ DEBUG = -DNDEBUG
+
+@@ -19,6 +21,9 @@
+
+ include $(BUILDRULES)
+
+-install install-dev: default
++install: default
++
++install-dev: default
++ $(INSTALL_LTLIB_DEV)
+
+ -include .ltdep
+--- xfsprogs-4.3.0/Makefile
++++ xfsprogs-4.3.0/Makefile
+@@ -82,6 +82,8 @@
+ quota: libxcmd
+ repair: libxlog
+ copy: libxlog
++libxlog: libxfs
++libxlog-install-dev: libxfs-install-dev
+
+ ifeq ($(HAVE_BUILDDEFS), yes)
+ include $(BUILDRULES)
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.5.0-linguas.patch b/sys-fs/xfsprogs/files/xfsprogs-4.5.0-linguas.patch
new file mode 100644
index 000000000000..9912e49ebf84
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.5.0-linguas.patch
@@ -0,0 +1,32 @@
+From 2212e8bb59e7c3930d49da2ec5f4f0a9ceb086c7 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 8 Apr 2016 16:41:31 -0400
+Subject: [PATCH] po: respect LINGUAS build setting
+
+It is common gettext practice to limit the translations a particular
+package will include by setting the LINGUAS environment variable.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ po/Makefile | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/po/Makefile b/po/Makefile
+index edf92ad..a5250b3 100644
+--- a/po/Makefile
++++ b/po/Makefile
+@@ -6,7 +6,10 @@ TOPDIR = ..
+ include $(TOPDIR)/include/builddefs
+
+ POTHEAD = $(PKG_NAME).pot
+-LINGUAS = de pl
++# If the user has requested a specific set of translations, only build those.
++SUPPORTED_LINGUAS = $(patsubst %.po,%,$(wildcard *.po))
++LINGUAS ?= $(SUPPORTED_LINGUAS)
++LINGUAS := $(filter $(SUPPORTED_LINGUAS),$(LINGUAS))
+ LSRCFILES = $(LINGUAS:%=%.po)
+ LDIRT = $(POTHEAD)
+
+--
+2.7.4
+
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.7.0-libxcmd-link.patch b/sys-fs/xfsprogs/files/xfsprogs-4.7.0-libxcmd-link.patch
new file mode 100644
index 000000000000..77ded5393d52
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.7.0-libxcmd-link.patch
@@ -0,0 +1,30 @@
+From d01d3689fd512811b9d860598ddf26089bb5955c Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 9 Aug 2016 22:37:45 +0800
+Subject: [PATCH xfsprogs] libxcmd: link against used libs
+
+Since this lib uses symbols from libxfs (platform_findsizes) and many
+symbols from libblkid, link against both. Otherwise, the resulting
+shared lib has missing symbols which makes linking against annoying.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ libxcmd/Makefile | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libxcmd/Makefile b/libxcmd/Makefile
+index aab8d6d63624..46ba138a37e2 100644
+--- a/libxcmd/Makefile
++++ b/libxcmd/Makefile
+@@ -12,6 +12,8 @@ LT_AGE = 0
+
+ CFILES = command.c input.c paths.c projects.c help.c quit.c topology.c
+
++LTLIBS = $(LIBXFS) $(LIBBLKID)
++
+ ifeq ($(HAVE_GETMNTENT),yes)
+ LCFLAGS += -DHAVE_GETMNTENT
+ endif
+--
+2.9.0
+
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.7.0-sharedlibs.patch b/sys-fs/xfsprogs/files/xfsprogs-4.7.0-sharedlibs.patch
new file mode 100644
index 000000000000..b5395ffaed6c
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.7.0-sharedlibs.patch
@@ -0,0 +1,81 @@
+--- xfsprogs-4.7.0/include/buildmacros
++++ xfsprogs-4.7.0/include/buildmacros
+@@ -70,18 +70,9 @@
+ # /usr/lib.
+ ifeq ($(ENABLE_SHARED),yes)
+ INSTALL_LTLIB_DEV = \
+- cd $(TOPDIR)/$(LIBNAME)/.libs; \
+- ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
+- ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \
+- ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \
+- ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \
+- ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \
+- if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \
+- "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \
+- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
+- ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
+- ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \
+- fi
++ set -e; cd $(TOPDIR)/$(LIBNAME); \
++ $(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
++ env -uDIST_ROOT $(LTINSTALL) $(TOPDIR)/$(LIBNAME)/$(LIBNAME).la $(DIST_ROOT)$(PKG_LIB_DIR)/$(LIBNAME).la
+ else
+ INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)
+ endif
+--- xfsprogs-4.7.0/libhandle/Makefile
++++ xfsprogs-4.7.0/libhandle/Makefile
+@@ -24,7 +24,6 @@
+ include $(BUILDRULES)
+
+ install: default
+- $(INSTALL_LTLIB)
+
+ install-dev: default
+ $(INSTALL_LTLIB_DEV)
+--- xfsprogs-4.7.0/libxcmd/Makefile
++++ xfsprogs-4.7.0/libxcmd/Makefile
+@@ -34,6 +34,9 @@
+
+ include $(BUILDRULES)
+
+-install install-dev: default
++install: default
++
++install-dev: default
++ $(INSTALL_LTLIB_DEV)
+
+ -include .ltdep
+--- xfsprogs-4.7.0/libxfs/Makefile
++++ xfsprogs-4.7.0/libxfs/Makefile
+@@ -138,6 +138,7 @@
+
+ install-dev: install
+ $(INSTALL) -m 644 $(PKGHFILES) $(PKG_INC_DIR)
++ $(INSTALL_LTLIB_DEV)
+
+ # We need to install the headers before building the dependencies. If we
+ # include the .ltdep file, the makefile decides that it needs to build the
+--- xfsprogs-4.7.0/libxlog/Makefile
++++ xfsprogs-4.7.0/libxlog/Makefile
+@@ -19,6 +21,9 @@
+
+ include $(BUILDRULES)
+
+-install install-dev: default
++install: default
++
++install-dev: default
++ $(INSTALL_LTLIB_DEV)
+
+ -include .ltdep
+--- xfsprogs-4.7.0/Makefile
++++ xfsprogs-4.7.0/Makefile
+@@ -83,6 +83,8 @@
+ repair: libxlog libxcmd
+ copy: libxlog
+ mkfs: libxcmd
++libxlog: libxfs
++libxlog-install-dev: libxfs-install-dev
+
+ ifeq ($(HAVE_BUILDDEFS), yes)
+ include $(BUILDRULES)
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.9.0-cross-compile.patch b/sys-fs/xfsprogs/files/xfsprogs-4.9.0-cross-compile.patch
new file mode 100644
index 000000000000..fade1028301d
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.9.0-cross-compile.patch
@@ -0,0 +1,143 @@
+--- xfsprogs-4.9.0/configure
++++ xfsprogs-4.9.0/configure
+@@ -861,6 +861,7 @@
+ enable_blkid
+ enable_gettext
+ enable_shared
++BUILD_CFLAGS
+ BUILD_CC
+ CPP
+ OTOOL64
+@@ -960,7 +961,9 @@
+ LDFLAGS
+ LIBS
+ CPPFLAGS
+-CPP'
++CPP
++BUILD_CC
++BUILD_CFLAGS'
+
+
+ # Initialize some variables set by options.
+@@ -1616,6 +1619,9 @@
+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
++ BUILD_CC C compiler for build tools
++ BUILD_CFLAGS
++ C compiler flags for build tools
+
+ Use these variables to override the choices made by `configure' or to help
+ it to find libraries and programs with nonstandard names/locations.
+@@ -11116,11 +11122,12 @@
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+
+-else
+- for ac_prog in gcc cc
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ for ac_prog in gcc cc
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+@@ -11162,6 +11169,15 @@
+ test -n "$BUILD_CC" && break
+ done
+
++ fi
++fi
++
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
+ fi
+
+ # Check whether --enable-shared was given.
+--- xfsprogs-4.9.0/configure.ac
++++ xfsprogs-4.9.0/configure.ac
+@@ -9,11 +9,21 @@
+ AC_PROG_LIBTOOL
+
+ AC_PROG_CC
+-if test $cross_compiling = no; then
+- BUILD_CC="$CC"
+- AC_SUBST(BUILD_CC)
+-else
+- AC_CHECK_PROGS(BUILD_CC, gcc cc)
++AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
++if test "${BUILD_CC+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CC="$CC"
++ else
++ AC_CHECK_PROGS(BUILD_CC, gcc cc)
++ fi
++fi
++AC_ARG_VAR(BUILD_CFLAGS, [C compiler flags for build tools])
++if test "${BUILD_CFLAGS+set}" != "set"; then
++ if test $cross_compiling = no; then
++ BUILD_CFLAGS="$CFLAGS"
++ else
++ BUILD_CFLAGS="-g -O2"
++ fi
+ fi
+
+ AC_ARG_ENABLE(shared,
+--- xfsprogs-4.9.0/include/builddefs.in
++++ xfsprogs-4.9.0/include/builddefs.in
+@@ -26,6 +26,7 @@
+ LOADERFLAGS = @LDFLAGS@
+ LTLDFLAGS = @LDFLAGS@
+ CFLAGS = @CFLAGS@ -D_FILE_OFFSET_BITS=64
++BUILD_CFLAGS = @BUILD_CFLAGS@ -D_FILE_OFFSET_BITS=64
+
+ LIBRT = @librt@
+ LIBUUID = @libuuid@
+@@ -154,7 +155,7 @@
+ endif
+
+
+-GCFLAGS = $(OPTIMIZER) $(DEBUG) \
++GCFLAGS = $(DEBUG) \
+ -DVERSION=\"$(PKG_VERSION)\" -DLOCALEDIR=\"$(PKG_LOCALE_DIR)\" \
+ -DPACKAGE=\"$(PKG_NAME)\" -I$(TOPDIR)/include -I$(TOPDIR)/libxfs
+
+@@ -162,8 +163,9 @@
+ GCFLAGS += -DENABLE_GETTEXT
+ endif
+
++BUILD_CFLAGS += $(GCFLAGS) $(PCFLAGS)
+ # First, Global, Platform, Local CFLAGS
+-CFLAGS += $(FCFLAGS) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS)
++CFLAGS += $(FCFLAGS) $(OPTIMIZER) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS)
+
+ include $(TOPDIR)/include/buildmacros
+
+--- xfsprogs-4.9.0/libxfs/Makefile
++++ xfsprogs-4.9.0/libxfs/Makefile
+@@ -124,7 +124,7 @@
+
+ crc32table.h: gen_crc32table.c
+ @echo " [CC] gen_crc32table"
+- $(Q) $(BUILD_CC) $(CFLAGS) -o gen_crc32table $<
++ $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -o gen_crc32table $<
+ @echo " [GENERATE] $@"
+ $(Q) ./gen_crc32table > crc32table.h
+
+@@ -135,7 +135,7 @@
+ # disk.
+ crc32selftest: gen_crc32table.c crc32table.h crc32.c
+ @echo " [TEST] CRC32"
+- $(Q) $(BUILD_CC) $(CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@
++ $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@
+ $(Q) ./$@
+
+ # set up include/xfs header directory
diff --git a/sys-fs/xfsprogs/files/xfsprogs-4.9.0-underlinking.patch b/sys-fs/xfsprogs/files/xfsprogs-4.9.0-underlinking.patch
new file mode 100644
index 000000000000..e6904a53bc2a
--- /dev/null
+++ b/sys-fs/xfsprogs/files/xfsprogs-4.9.0-underlinking.patch
@@ -0,0 +1,30 @@
+ libxfs/Makefile | 2 +-
+ libxlog/Makefile | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/libxfs/Makefile b/libxfs/Makefile
+index 6499731..00447c4 100644
+--- a/libxfs/Makefile
++++ b/libxfs/Makefile
+@@ -113,7 +113,7 @@ LSRCFILES += gen_crc32table.c
+
+ FCFLAGS = -I.
+
+-LTLIBS = $(LIBPTHREAD) $(LIBRT)
++LTLIBS = $(LIBPTHREAD) $(LIBRT) $(LIBUUID)
+
+ # don't try linking xfs_repair with a debug libxfs.
+ DEBUG = -DNDEBUG
+diff --git a/libxlog/Makefile b/libxlog/Makefile
+index 3417eed..fda1343 100644
+--- a/libxlog/Makefile
++++ b/libxlog/Makefile
+@@ -12,6 +12,8 @@ LT_AGE = 0
+
+ CFILES = xfs_log_recover.c util.c
+
++LTLIBS = $(LIBUUID)
++
+ # don't want to link xfs_repair with a debug libxlog.
+ DEBUG = -DNDEBUG
+
diff --git a/sys-fs/xfsprogs/metadata.xml b/sys-fs/xfsprogs/metadata.xml
new file mode 100644
index 000000000000..4eb20a048df2
--- /dev/null
+++ b/sys-fs/xfsprogs/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sys-fs/xfsprogs/xfsprogs-4.12.0.ebuild b/sys-fs/xfsprogs/xfsprogs-4.12.0.ebuild
new file mode 100644
index 000000000000..4736e0b82b64
--- /dev/null
+++ b/sys-fs/xfsprogs/xfsprogs-4.12.0.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs multilib
+
+DESCRIPTION="xfs filesystem utilities"
+HOMEPAGE="http://oss.sgi.com/projects/xfs/"
+SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="libedit nls readline static static-libs"
+REQUIRED_USE="static? ( static-libs )"
+
+LIB_DEPEND=">=sys-apps/util-linux-2.17.2[static-libs(+)]
+ readline? ( sys-libs/readline:0=[static-libs(+)] )
+ !readline? ( libedit? ( dev-libs/libedit[static-libs(+)] ) )"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+ !<sys-fs/xfsdump-3"
+DEPEND="${RDEPEND}
+ static? (
+ ${LIB_DEPEND}
+ readline? ( sys-libs/ncurses:0=[static-libs] )
+ )
+ nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.12.0-sharedlibs.patch
+ "${FILESDIR}"/${PN}-4.7.0-libxcmd-link.patch
+ "${FILESDIR}"/${PN}-4.9.0-underlinking.patch
+ "${FILESDIR}"/${PN}-4.12.0-fix_musl.patch
+)
+
+pkg_setup() {
+ if use readline && use libedit ; then
+ ewarn "You have USE='readline libedit' but these are exclusive."
+ ewarn "Defaulting to readline; please disable this USE flag if you want libedit."
+ fi
+}
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ # LLDFLAGS is used for programs, so apply -all-static when USE=static is enabled.
+ # Clear out -static from all flags since we want to link against dynamic xfs libs.
+ sed -i \
+ -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
+ -e "1iLLDFLAGS += $(usex static '-all-static' '')" \
+ include/builddefs.in || die
+ find -name Makefile -exec \
+ sed -i -r -e '/^LLDFLAGS [+]?= -static(-libtool-libs)?$/d' {} +
+
+ # TODO: Write a patch for configure.ac to use pkg-config for the uuid-part.
+ if use static && use readline ; then
+ sed -i \
+ -e 's|-lreadline|& -lncurses|' \
+ -e 's|-lblkid|& -luuid|' \
+ configure || die
+ fi
+}
+
+src_configure() {
+ export DEBUG=-DNDEBUG
+ export OPTIMIZER=${CFLAGS}
+ unset PLATFORM # if set in user env, this breaks configure
+
+ local myconf
+ if use static || use static-libs ; then
+ myconf+=" --enable-static"
+ else
+ myconf+=" --disable-static"
+ fi
+
+ econf \
+ $(use_enable nls gettext) \
+ $(use_enable readline) \
+ $(usex readline --disable-editline $(use_enable libedit editline)) \
+ ${myconf}
+
+ MAKEOPTS+=" V=1"
+}
+
+src_install() {
+ emake DIST_ROOT="${ED}" install
+ # parallel install fails on this target for >=xfsprogs-3.2.0
+ emake -j1 DIST_ROOT="${ED}" install-dev
+
+ # handle is for xfsdump, the rest for xfsprogs
+ gen_usr_ldscript -a handle xcmd xfs xlog
+ # removing unnecessary .la files if not needed
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/sys-fs/xfsprogs/xfsprogs-4.13.1.ebuild b/sys-fs/xfsprogs/xfsprogs-4.13.1.ebuild
new file mode 100644
index 000000000000..a77ca48cb15d
--- /dev/null
+++ b/sys-fs/xfsprogs/xfsprogs-4.13.1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs multilib
+
+DESCRIPTION="xfs filesystem utilities"
+HOMEPAGE="http://oss.sgi.com/projects/xfs/"
+SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="libedit nls readline static static-libs"
+REQUIRED_USE="static? ( static-libs )"
+
+LIB_DEPEND=">=sys-apps/util-linux-2.17.2[static-libs(+)]
+ readline? ( sys-libs/readline:0=[static-libs(+)] )
+ !readline? ( libedit? ( dev-libs/libedit[static-libs(+)] ) )"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+ !<sys-fs/xfsdump-3"
+DEPEND="${RDEPEND}
+ static? (
+ ${LIB_DEPEND}
+ readline? ( sys-libs/ncurses:0=[static-libs] )
+ )
+ nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.12.0-sharedlibs.patch
+ "${FILESDIR}"/${PN}-4.7.0-libxcmd-link.patch
+ "${FILESDIR}"/${PN}-4.9.0-underlinking.patch
+)
+
+pkg_setup() {
+ if use readline && use libedit ; then
+ ewarn "You have USE='readline libedit' but these are exclusive."
+ ewarn "Defaulting to readline; please disable this USE flag if you want libedit."
+ fi
+}
+
+src_prepare() {
+ default
+
+ # LLDFLAGS is used for programs, so apply -all-static when USE=static is enabled.
+ # Clear out -static from all flags since we want to link against dynamic xfs libs.
+ sed -i \
+ -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
+ -e "1iLLDFLAGS += $(usex static '-all-static' '')" \
+ include/builddefs.in || die
+ find -name Makefile -exec \
+ sed -i -r -e '/^LLDFLAGS [+]?= -static(-libtool-libs)?$/d' {} +
+
+ # TODO: Write a patch for configure.ac to use pkg-config for the uuid-part.
+ if use static && use readline ; then
+ sed -i \
+ -e 's|-lreadline|& -lncurses|' \
+ -e 's|-lblkid|& -luuid|' \
+ configure || die
+ fi
+}
+
+src_configure() {
+ export DEBUG=-DNDEBUG
+ export OPTIMIZER=${CFLAGS}
+ unset PLATFORM # if set in user env, this breaks configure
+
+ local myconf=(
+ $(use_enable nls gettext)
+ $(use_enable readline)
+ $(usex readline --disable-editline $(use_enable libedit editline))
+ )
+ if use static || use static-libs ; then
+ myconf+=( --enable-static )
+ else
+ myconf+=( --disable-static )
+ fi
+
+ econf "${myconf[@]}"
+
+ MAKEOPTS+=" V=1"
+}
+
+src_install() {
+ emake DIST_ROOT="${ED}" install
+ # parallel install fails on this target for >=xfsprogs-3.2.0
+ emake -j1 DIST_ROOT="${ED}" install-dev
+
+ # handle is for xfsdump, the rest for xfsprogs
+ gen_usr_ldscript -a handle xcmd xfs xlog
+ # removing unnecessary .la files if not needed
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/sys-fs/xfsprogs/xfsprogs-4.5.0.ebuild b/sys-fs/xfsprogs/xfsprogs-4.5.0.ebuild
new file mode 100644
index 000000000000..3f9a00c49a14
--- /dev/null
+++ b/sys-fs/xfsprogs/xfsprogs-4.5.0.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs multilib
+
+DESCRIPTION="xfs filesystem utilities"
+HOMEPAGE="http://oss.sgi.com/projects/xfs/"
+SRC_URI="ftp://oss.sgi.com/projects/xfs/cmd_tars/${P}.tar.gz
+ ftp://oss.sgi.com/projects/xfs/previous/cmd_tars/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86"
+IUSE="libedit nls readline static static-libs"
+REQUIRED_USE="static? ( static-libs )"
+
+LIB_DEPEND=">=sys-apps/util-linux-2.17.2[static-libs(+)]
+ readline? ( sys-libs/readline:0=[static-libs(+)] )
+ !readline? ( libedit? ( dev-libs/libedit[static-libs(+)] ) )"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+ !<sys-fs/xfsdump-3"
+DEPEND="${RDEPEND}
+ static? (
+ ${LIB_DEPEND}
+ readline? ( sys-libs/ncurses:0=[static-libs] )
+ )
+ nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.3.0-sharedlibs.patch
+ "${FILESDIR}"/${PN}-4.5.0-linguas.patch
+ "${FILESDIR}"/${PN}-4.3.0-cross-compile.patch
+)
+
+pkg_setup() {
+ if use readline && use libedit ; then
+ ewarn "You have USE='readline libedit' but these are exclusive."
+ ewarn "Defaulting to readline; please disable this USE flag if you want libedit."
+ fi
+}
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ # LLDFLAGS is used for programs, so apply -all-static when USE=static is enabled.
+ # Clear out -static from all flags since we want to link against dynamic xfs libs.
+ sed -i \
+ -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
+ -e "1iLLDFLAGS += $(usex static '-all-static' '')" \
+ include/builddefs.in || die
+ find -name Makefile -exec \
+ sed -i -r -e '/^LLDFLAGS [+]?= -static(-libtool-libs)?$/d' {} +
+
+ # libdisk has broken blkid conditional checking
+ sed -i \
+ -e '/LIB_SUBDIRS/s:libdisk::' \
+ Makefile || die
+
+ # TODO: write a patch for configure.in to use pkg-config for the uuid-part
+ if use static && use readline ; then
+ sed -i \
+ -e 's|-lreadline|\0 -lncurses|' \
+ -e 's|-lblkid|\0 -luuid|' \
+ configure || die
+ fi
+}
+
+src_configure() {
+ export DEBUG=-DNDEBUG
+ export OPTIMIZER=${CFLAGS}
+ unset PLATFORM # if set in user env, this breaks configure
+
+ local myconf
+ if use static || use static-libs ; then
+ myconf+=" --enable-static"
+ else
+ myconf+=" --disable-static"
+ fi
+
+ econf \
+ --bindir=/usr/bin \
+ --libexecdir=/usr/$(get_libdir) \
+ $(use_enable nls gettext) \
+ $(use_enable readline) \
+ $(usex readline --disable-editline $(use_enable libedit editline)) \
+ ${myconf}
+
+ MAKEOPTS+=" V=1"
+}
+
+src_install() {
+ emake DIST_ROOT="${ED}" install
+ # parallel install fails on this target for >=xfsprogs-3.2.0
+ emake -j1 DIST_ROOT="${ED}" install-dev
+
+ # handle is for xfsdump, the rest for xfsprogs
+ gen_usr_ldscript -a xfs xlog
+ # removing unnecessary .la files if not needed
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/sys-fs/xfsprogs/xfsprogs-4.9.0.ebuild b/sys-fs/xfsprogs/xfsprogs-4.9.0.ebuild
new file mode 100644
index 000000000000..601ce847e160
--- /dev/null
+++ b/sys-fs/xfsprogs/xfsprogs-4.9.0.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs multilib
+
+DESCRIPTION="xfs filesystem utilities"
+HOMEPAGE="http://oss.sgi.com/projects/xfs/"
+SRC_URI="ftp://ftp.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+IUSE="libedit nls readline static static-libs"
+REQUIRED_USE="static? ( static-libs )"
+
+LIB_DEPEND=">=sys-apps/util-linux-2.17.2[static-libs(+)]
+ readline? ( sys-libs/readline:0=[static-libs(+)] )
+ !readline? ( libedit? ( dev-libs/libedit[static-libs(+)] ) )"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+ !<sys-fs/xfsdump-3"
+DEPEND="${RDEPEND}
+ static? (
+ ${LIB_DEPEND}
+ readline? ( sys-libs/ncurses:0=[static-libs] )
+ )
+ nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.7.0-sharedlibs.patch
+ "${FILESDIR}"/${PN}-4.7.0-libxcmd-link.patch
+ "${FILESDIR}"/${PN}-4.9.0-cross-compile.patch
+ "${FILESDIR}"/${P}-underlinking.patch
+)
+
+pkg_setup() {
+ if use readline && use libedit ; then
+ ewarn "You have USE='readline libedit' but these are exclusive."
+ ewarn "Defaulting to readline; please disable this USE flag if you want libedit."
+ fi
+}
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ # LLDFLAGS is used for programs, so apply -all-static when USE=static is enabled.
+ # Clear out -static from all flags since we want to link against dynamic xfs libs.
+ sed -i \
+ -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
+ -e "1iLLDFLAGS += $(usex static '-all-static' '')" \
+ include/builddefs.in || die
+ find -name Makefile -exec \
+ sed -i -r -e '/^LLDFLAGS [+]?= -static(-libtool-libs)?$/d' {} +
+
+ # TODO: Write a patch for configure.ac to use pkg-config for the uuid-part.
+ if use static && use readline ; then
+ sed -i \
+ -e 's|-lreadline|& -lncurses|' \
+ -e 's|-lblkid|& -luuid|' \
+ configure || die
+ fi
+}
+
+src_configure() {
+ export DEBUG=-DNDEBUG
+ export OPTIMIZER=${CFLAGS}
+ unset PLATFORM # if set in user env, this breaks configure
+
+ local myconf
+ if use static || use static-libs ; then
+ myconf+=" --enable-static"
+ else
+ myconf+=" --disable-static"
+ fi
+
+ econf \
+ $(use_enable nls gettext) \
+ $(use_enable readline) \
+ $(usex readline --disable-editline $(use_enable libedit editline)) \
+ ${myconf}
+
+ MAKEOPTS+=" V=1"
+}
+
+src_install() {
+ emake DIST_ROOT="${ED}" install
+ # parallel install fails on this target for >=xfsprogs-3.2.0
+ emake -j1 DIST_ROOT="${ED}" install-dev
+
+ # handle is for xfsdump, the rest for xfsprogs
+ gen_usr_ldscript -a handle xcmd xfs xlog
+ # removing unnecessary .la files if not needed
+ use static-libs || find "${ED}" -name '*.la' -delete
+}
diff --git a/sys-fs/yaffs-utils/Manifest b/sys-fs/yaffs-utils/Manifest
new file mode 100644
index 000000000000..c2b9e6fe088d
--- /dev/null
+++ b/sys-fs/yaffs-utils/Manifest
@@ -0,0 +1,5 @@
+AUX yaffs-utils-9999-build.patch 1009 SHA256 e1ab897b1e82d43f80ed92ae315cc30dabee0ecf0ab45bc068ddd200fb54b2b9 SHA512 1651712ee6749ea5b33af179e9e128f00f53ed530d9bee1ea1b628a6217849297f342ee7aeec148ffd4cb0d79e9fa0c7d143c8bfb90c63b3f35f1e4e91c6c91a WHIRLPOOL 56cac4b8165a988ccedcb626d188eef5935152824c0feee2b3dd4604606f484a3bce86883f21b6b08a5909cd11d496fea1038e4a65ec5d2700159ee9d431345a
+EBUILD yaffs-utils-9999.ebuild 514 SHA256 4b7f253c7c70a1cfa345c16c24bd8aea7411dc32bcb48c8d53f7cd500a5f85a2 SHA512 64bdd6a7c9e006bcf5bf708b392a615a46b2bf9e1b9cc905e2377305257cb5f64c0064b55a4049619b05a91a1b42884720e652de0a1b6bdea6d158e1d93e7162 WHIRLPOOL fe11808f679c025a010caf760a0fe9d90611f7e4f192ecfc759eaaca1e6d06a5a53131628b992044385b472bf0677f526ae5a42b267bcb51eec607403d848197
+MISC ChangeLog 2474 SHA256 be37de83d86e70011d21bdce93e33df4ddfc6afe3a637d1161b5688a63076581 SHA512 3aaca50af19e846ea25c54ba63acff2ebd01811b61a5bc55142784e2268df4db39e261d633769bdf5c3fb8897afabb77eee5bac1668ebc32764419d149c5b25b WHIRLPOOL 5debad392bd703bf89a954af951dc0fadde297234a5c8af7276a9d5902ea38897c3ef852c8cea16f30095a3231e72be7622aab82cea8bf889f3a7cae092e3060
+MISC ChangeLog-2015 612 SHA256 b60ec9bb02070080be306d0cde1f6e9d838ebd6dfe50be0abd682307e0d5e994 SHA512 c1fd4f379f1e0f759d14eb5164daaa5c67ead658271083ceba4d15992d2b6247457dad7e9f523ef3c58e34b33402f660b8718f6036e695e59a8f08e71db3f716 WHIRLPOOL 67b2b75b65493619292d0766661fba187f0fefe172f4b6206798eb4002df108a163b6961f3abdf26a59dbf962d44c107527229c83bdce72cac9acb474635c86d
+MISC metadata.xml 247 SHA256 751aa1f012df292bed9716a5c6a7e64114b695d2ba0c0572fc7e87fc3bbcebc5 SHA512 15df289e0f962f564551f61ada3cfef0311f6af639887def780bf5ad3be105515c8d24c950ff340ed35d89b9cd994af3540322b684c5dec3b43ec6bb0041aa4e WHIRLPOOL b6c074cf39f6ec1e2d085151836db47f9a4d71bcc9cc3296889bfa10172c7f07837ca79c8613f9c483b1332683e78eebe88e0a433a7caf801fc7ccac2552cd53
diff --git a/sys-fs/yaffs-utils/files/yaffs-utils-9999-build.patch b/sys-fs/yaffs-utils/files/yaffs-utils-9999-build.patch
new file mode 100644
index 000000000000..901484db9995
--- /dev/null
+++ b/sys-fs/yaffs-utils/files/yaffs-utils-9999-build.patch
@@ -0,0 +1,36 @@
+diff --git a/utils/Makefile b/utils/Makefile
+index 4929e08..51c4e5f 100644
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -16,14 +16,13 @@
+
+ #KERNELDIR = /usr/src/kernel-headers-2.4.18
+
+-CFLAGS = -I/usr/include -I.. -O2 -Wall -DCONFIG_YAFFS_UTIL
++CFLAGS+= -I.. -Wall -DCONFIG_YAFFS_UTIL $(CPPFLAGS)
+ CFLAGS+= -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations
+ CFLAGS+= -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline
+
+ ## Change if you are using a cross-compiler
+ MAKETOOLS =
+
+-CC=$(MAKETOOLS)gcc
+
+ MKYAFFSOBJS = mkyaffs.o
+
+@@ -36,13 +35,13 @@ $(MKYAFFSIMAGEOBJS): %.o: %.c
+ $(CC) -c $(CFLAGS) $< -o $@
+
+ mkyaffsimage: $(MKYAFFSIMAGEOBJS)
+- $(CC) -o $@ $(MKYAFFSIMAGEOBJS)
++ $(CC) $(CFLAGS) -o $@ $(MKYAFFSIMAGEOBJS) $(LDFLAGS)
+
+ $(MKYAFFSOBJS): %.o: %.c
+ $(CC) -c $(CFLAGS) $< -o $@
+
+ mkyaffs: $(MKYAFFSOBJS)
+- $(CC) -o $@ $(MKYAFFSOBJS)
++ $(CC) $(CFLAGS) -o $@ $(MKYAFFSOBJS) $(LDFLAGS)
+
+ yaffs_ecc.c:
+ ln -s ../yaffs_ecc.c yaffs_ecc.c
diff --git a/sys-fs/yaffs-utils/metadata.xml b/sys-fs/yaffs-utils/metadata.xml
new file mode 100644
index 000000000000..71b1461e1146
--- /dev/null
+++ b/sys-fs/yaffs-utils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>embedded@gentoo.org</email>
+ <name>Embedded Gentoo</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/yaffs-utils/yaffs-utils-9999.ebuild b/sys-fs/yaffs-utils/yaffs-utils-9999.ebuild
new file mode 100644
index 000000000000..9606fd88801f
--- /dev/null
+++ b/sys-fs/yaffs-utils/yaffs-utils-9999.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+EGIT_REPO_URI="git://www.aleph1.co.uk/yaffs"
+EGIT_SOURCEDIR=${WORKDIR}
+
+inherit eutils git-2 toolchain-funcs
+
+DESCRIPTION="tools for generating YAFFS images"
+HOMEPAGE="http://www.aleph1.co.uk/yaffs/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+S=${WORKDIR}/utils
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+ tc-export CC
+}
+
+src_install() {
+ dobin mkyaffs || die
+ dodoc ../README
+}
diff --git a/sys-fs/yaffs2-utils/Manifest b/sys-fs/yaffs2-utils/Manifest
new file mode 100644
index 000000000000..c6bc924ee677
--- /dev/null
+++ b/sys-fs/yaffs2-utils/Manifest
@@ -0,0 +1,5 @@
+AUX yaffs2-utils-9999-build.patch 1373 SHA256 05c5ef75b8c2472f5946f3a062842194925cea7bc87b8a058ea1367e1862a2f9 SHA512 4c39117805985fa4cd8956bffb360e024211777d4e4f6ac1bfaf9143f88b5fa255a443ffab64594306cec03cd40173117970e8d7488e370512c86ac96ee21a04 WHIRLPOOL 967649c92fa25514a0c55602953550b1e7e27394e4c707e7d6f33cf7dc8908c1e597f1fc5787e520c991ebff9b10f5ee448f3e77da038ca08f253c51e10ee1cd
+EBUILD yaffs2-utils-9999.ebuild 533 SHA256 6cf0814b6eed70ca9bc8b46ce7de53137a0fc822c2800a889ded9ca721f1e0d6 SHA512 9777b98b673e32b523e82f29a164080037fa8ffdf7e6ed52680303ab8d816f10240ee457cc7538ba38135fa26c1b025e9734fa17389f853aad9cf28588aff5c3 WHIRLPOOL 342c62b2ee6e50a32f860337531551eac686bc5a782e7baa783821dc432d5654f2425b269c6a2911b0317437c57f31ae6483c00e1dc2ed1b2187d517afe77436
+MISC ChangeLog 2478 SHA256 7a3604550ce7c7322ff77aefab8be943128285c8b1fef69fcd11372d01da5cb6 SHA512 3e860df7f6d23097028fc3c2490085577f470305a30a62c646d96230695ae1a401989c1100690a3281323fdfca0927fceb8492ad43c93284927ffedb481892a3 WHIRLPOOL 4955683036af5625d72f524e7d1b186f2a9ddfd3ffee1142c237975625b2f18b11141e6a8d8f61c72da49b13fd10e84c1b750800e827c12f95b8f9adb2d8f1bd
+MISC ChangeLog-2015 820 SHA256 ac67eeda7d0d25440b0502155c7d7ca2aa7d90f628e900ae0df84c3dbfee0457 SHA512 56ece9b3f457793c52a43365cd5dd3ef74fd7996bf0e335594275d9e6688fe092acc3dcb75787d8c52d5f114b9c915f743a5a29a17299851b75c9fbde9fe7069 WHIRLPOOL 71d5a1df3ce3848af9ac73efc593bcf24c3004e69fb6dde3095eb1612883fc0441a8d639c62699fb643dd8307f52e95e209b51c11d0b1bdaca5ccbb053538e02
+MISC metadata.xml 247 SHA256 751aa1f012df292bed9716a5c6a7e64114b695d2ba0c0572fc7e87fc3bbcebc5 SHA512 15df289e0f962f564551f61ada3cfef0311f6af639887def780bf5ad3be105515c8d24c950ff340ed35d89b9cd994af3540322b684c5dec3b43ec6bb0041aa4e WHIRLPOOL b6c074cf39f6ec1e2d085151836db47f9a4d71bcc9cc3296889bfa10172c7f07837ca79c8613f9c483b1332683e78eebe88e0a433a7caf801fc7ccac2552cd53
diff --git a/sys-fs/yaffs2-utils/files/yaffs2-utils-9999-build.patch b/sys-fs/yaffs2-utils/files/yaffs2-utils-9999-build.patch
new file mode 100644
index 000000000000..ecbb958d434b
--- /dev/null
+++ b/sys-fs/yaffs2-utils/files/yaffs2-utils-9999-build.patch
@@ -0,0 +1,46 @@
+From 3f4b0661b63efaca78791612ce9be84271d784a5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 5 Nov 2012 02:08:27 -0500
+Subject: [PATCH] fix build build system
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ utils/Makefile | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/utils/Makefile b/utils/Makefile
+index 710ebbf..26aea6b 100644
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -16,14 +16,13 @@
+
+ #KERNELDIR = /usr/src/kernel-headers-2.4.18
+
+-CFLAGS = -O2 -Wall -DCONFIG_YAFFS_UTIL
++CFLAGS+= -Wall -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES
+ CFLAGS+= -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations
+ CFLAGS+= -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline
+
+ ## Change if you are using a cross-compiler
+ MAKETOOLS =
+
+-CC=$(MAKETOOLS)gcc
+
+ COMMON_BASE_C_LINKS = yaffs_ecc.c
+ COMMON_BASE_LINKS = $(COMMON_BASE_C_LINKS) yaffs_ecc.h yaffs_guts.h yaffs_packedtags2.h yaffs_trace.h
+@@ -57,10 +56,10 @@ $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) $(MKYAFFS2IMAGEOBJS) : %.o: %.c
+ $(CC) -c $(CFLAGS) $< -o $@
+
+ mkyaffsimage: $(MKYAFFSIMAGEOBJS) $(COMMONOBJS)
+- $(CC) -o $@ $^
++ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
+
+ mkyaffs2image: $(MKYAFFS2IMAGEOBJS) $(COMMONOBJS)
+- $(CC) -o $@ $^
++ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
+
+
+ clean:
+--
+1.7.12.4
+
diff --git a/sys-fs/yaffs2-utils/metadata.xml b/sys-fs/yaffs2-utils/metadata.xml
new file mode 100644
index 000000000000..71b1461e1146
--- /dev/null
+++ b/sys-fs/yaffs2-utils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>embedded@gentoo.org</email>
+ <name>Embedded Gentoo</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/yaffs2-utils/yaffs2-utils-9999.ebuild b/sys-fs/yaffs2-utils/yaffs2-utils-9999.ebuild
new file mode 100644
index 000000000000..dc90c933a622
--- /dev/null
+++ b/sys-fs/yaffs2-utils/yaffs2-utils-9999.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+EGIT_REPO_URI="git://www.aleph1.co.uk/yaffs2"
+EGIT_SOURCEDIR=${WORKDIR}
+
+inherit eutils git-2 toolchain-funcs
+
+DESCRIPTION="tools for generating YAFFS images"
+HOMEPAGE="http://www.aleph1.co.uk/yaffs/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+S=${WORKDIR}/utils
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+ tc-export CC
+}
+
+src_install() {
+ dobin mkyaffsimage mkyaffs2image
+ dodoc ../README-linux
+}
diff --git a/sys-fs/yaffs2utils/Manifest b/sys-fs/yaffs2utils/Manifest
new file mode 100644
index 000000000000..b45564613c63
--- /dev/null
+++ b/sys-fs/yaffs2utils/Manifest
@@ -0,0 +1,7 @@
+AUX yaffs2utils-0.2.9-build.patch 1243 SHA256 2bcbf2f305c7c262fe5221a43ed416208663413014558418961c6fc6ce528e0b SHA512 dba1262ecefa3c890e1eeb29eac637a35a3b4d7a081c0e41937955712d7b6d85a246e2f86b8faa474553e0676a30e1b8f0f6945658e5f410298d406b794fc14c WHIRLPOOL daee80b8226a8b7af5f066c6568b32959e9138fed2dcbafc6d5050245a5ce011ffe0e74181be4f6068493e3f7af62cffb2ceec245b361c12e3a76dbc14bded0f
+AUX yaffs2utils-0.2.9-unyaffs2-pointer.patch 381 SHA256 b7277f709c1a6a1a50f556dd5e54e389c66a5ca61307ef53ee6412636ab30b34 SHA512 85b2fb83c9765996d06a7c3f578f1a0ed1db9296bd39fc149a3cb22ead2b3f39f0e6b6720ea6a60a060c404cf43529234b6f584c788dae2b9d90b76c67ad1776 WHIRLPOOL e78e42f7a34e54658c1dae16def0520ed1c12af12d811ecedeb9d05661da860cccac8aedba87071fe21d6f50fcbc2e905f4e1853f37f5ff4f47941e4e305b7a8
+DIST yaffs2utils-0.2.9.tar.gz 39689 SHA256 9b0912bf683eb839b6e57c9255c83894c3b700d16489a49d319c54c1abf8f6d7 SHA512 001a2452515f750bdb2251feebfe20c4f1b716b3c850e13646ee054f8e607c18ecfc2781a2f3e1f288b8b32661b11fec8a87e88d8bd4a44c98cad4dbbffd489b WHIRLPOOL bb615f7994af6840950030c4e79cc78a109c3c03aac2efb3c177d3abe0d96af2e58655cb0a7a653817c6812033c3d877597a555bebcdd15b677c3debcac76879
+EBUILD yaffs2utils-0.2.9.ebuild 633 SHA256 9d72f83df7b801ea6cf07316cba04cc85a54a3ca37dea728c9c14661ed0a0690 SHA512 84fa96a10261a968ea8d184742c70a1e7a80c8204a7b6108ff31f12286363a9ef7f68118444a3742671f2dca41d9a7c5c86b1dbacec72b006e0e05defc5b8ab3 WHIRLPOOL 1756d99fa5132d49c28416e22386817b9eb28ee79f9a18f9166f439f8fab0029aeb20711bf841053a608a017028721cf12d38538bd69d9e8c94e3019c1745751
+MISC ChangeLog 2687 SHA256 441249931191a3de53c097c1e3d3c46cfa3f2a98e7807138ff6b948350e1e0b2 SHA512 7f167abc26f967d471054d575baa522f76d1faeaa7b25bdf5b28c2aa8c8d2abab829c7ed45f3c599553f6a30ca14eb6f40dc7ebf9d8b05ad06f1a7cff4fef2cc WHIRLPOOL 474f03d780bb75cc2377629e11cd7f3050e2b3a11b2ebd7213ec9ab1c76d1bdb6ec10aa6b15d8a68e57a22358de89df62781646c6c42bef1c92554172a129a15
+MISC ChangeLog-2015 473 SHA256 75d28eac9f1325ceb078a5c3d290865a93e1026bc4f0e282a4e73f3b001aace9 SHA512 dd488fddb1d066b9c78a4bc1fa535776d24221cd75db0a9bc802dbd0129388c874fd2d629784a542b744367c6e7d8dcc672fca7d01dd65743d83b18671190f71 WHIRLPOOL 2ec17051e122d7c3eae4f4f3ddb91517766a2f978e1e60d16995bfb2ff6507b63ca5c0ae372a7176e3f09f3d90790b0e71d5df2f46a103f0bcb31aae081c0012
+MISC metadata.xml 247 SHA256 751aa1f012df292bed9716a5c6a7e64114b695d2ba0c0572fc7e87fc3bbcebc5 SHA512 15df289e0f962f564551f61ada3cfef0311f6af639887def780bf5ad3be105515c8d24c950ff340ed35d89b9cd994af3540322b684c5dec3b43ec6bb0041aa4e WHIRLPOOL b6c074cf39f6ec1e2d085151836db47f9a4d71bcc9cc3296889bfa10172c7f07837ca79c8613f9c483b1332683e78eebe88e0a433a7caf801fc7ccac2552cd53
diff --git a/sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-build.patch b/sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-build.patch
new file mode 100644
index 000000000000..c16d4de141e6
--- /dev/null
+++ b/sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-build.patch
@@ -0,0 +1,47 @@
+--- a/Makefile
++++ b/Makefile
+@@ -18,21 +18,15 @@
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ #
+
+-CROSS =
+-CC = $(CROSS)gcc
+
+-CFLAGS = -I. -I./yaffs2
+-CFLAGS += -O2
+-CFLAGS += -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs \
+- -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations \
+- -Wmissing-prototypes -Wredundant-decls
++CPPFLAGS += -I. -I./yaffs2
+
+-CFLAGS += -D_HAVE_MMAP
++CPPFLAGS += -D_HAVE_MMAP
+
+ #CFLAGS += -D_MKYAFFS2_DEBUG
+ #CFLAGS += -D_UNYAFFS2_DEBUG
+
+-LDFLAGS += -lm
++LDLIBS += -lm
+
+ YAFFS2SRCS = yaffs2/yaffs_hweight.c yaffs2/yaffs_ecc.c \
+ yaffs2/yaffs_packedtags1.c yaffs2/yaffs_packedtags2.c
+@@ -60,14 +54,16 @@ all: $(TARGET)
+ install:
+ cp $(TARGET) $(INSTALLDIR)
+
++LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
++
+ mkyaffs2: $(YAFFS2OBJS) $(LIBOBJS) $(MKYAFFS2OBJS)
+- $(CC) -o $@ $(YAFFS2OBJS) $(LIBOBJS) $(MKYAFFS2OBJS) $(LDFLAGS)
++ $(LINK)
+
+ unyaffs2: $(YAFFS2OBJS) $(LIBOBJS) $(UNYAFFS2OBJS)
+- $(CC) -o $@ $(YAFFS2OBJS) $(LIBOBJS) $(UNYAFFS2OBJS) $(LDFLAGS)
++ $(LINK)
+
+ unspare2: $(YAFFS2OBJS) $(LIBOBJS) $(UNSPARE2OBJS)
+- $(CC) -o $@ $(YAFFS2OBJS) $(LIBOBJS) $(UNSPARE2OBJS) $(LDFLAGS)
++ $(LINK)
+
+ clean:
+ rm -rf $(YAFFS2OBJS) $(LIBOBJS) \
diff --git a/sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-unyaffs2-pointer.patch b/sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-unyaffs2-pointer.patch
new file mode 100644
index 000000000000..3730ab41248c
--- /dev/null
+++ b/sys-fs/yaffs2utils/files/yaffs2utils-0.2.9-unyaffs2-pointer.patch
@@ -0,0 +1,13 @@
+https://code.google.com/p/yaffs2utils/issues/detail?id=42
+
+--- a/unyaffs2.c
++++ b/unyaffs2.c
+@@ -1102,7 +1102,7 @@ unyaffs2_extract_hardlink (const char *fpath, struct unyaffs2_obj *obj)
+ char *lnkfile;
+
+ struct unyaffs2_obj *equiv;
+- union unyaffs2_file_variant *variant;
++ union unyaffs2_file_variant variant;
+
+ equiv = unyaffs2_follow_hardlink(obj);
+ if (equiv == NULL) {
diff --git a/sys-fs/yaffs2utils/metadata.xml b/sys-fs/yaffs2utils/metadata.xml
new file mode 100644
index 000000000000..71b1461e1146
--- /dev/null
+++ b/sys-fs/yaffs2utils/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>embedded@gentoo.org</email>
+ <name>Embedded Gentoo</name>
+</maintainer>
+</pkgmetadata>
diff --git a/sys-fs/yaffs2utils/yaffs2utils-0.2.9.ebuild b/sys-fs/yaffs2utils/yaffs2utils-0.2.9.ebuild
new file mode 100644
index 000000000000..77ee6a3a7458
--- /dev/null
+++ b/sys-fs/yaffs2utils/yaffs2utils-0.2.9.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="tools for generating YAFFS images"
+HOMEPAGE="https://code.google.com/p/yaffs2utils/"
+SRC_URI="https://yaffs2utils.googlecode.com/files/0.2.9.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~x86"
+IUSE=""
+
+S=${WORKDIR}/${PV}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-build.patch
+ epatch "${FILESDIR}"/${P}-unyaffs2-pointer.patch
+}
+
+src_configure() {
+ tc-export CC
+}
+
+src_install() {
+ dobin unspare2 mkyaffs2 unyaffs2
+ dodoc CHANGES README
+}
diff --git a/sys-fs/zerofree/Manifest b/sys-fs/zerofree/Manifest
new file mode 100644
index 000000000000..7618c3cc1c79
--- /dev/null
+++ b/sys-fs/zerofree/Manifest
@@ -0,0 +1,9 @@
+DIST zerofree-1.0.1.tgz 8333 SHA256 ddf33ac01e554997659841b723bd826dfcd2554f31176b7a05993236cefd3cd8 SHA512 c3d06990f8e61f9a60908e20d3d1534a3da76f1a28aec28c89d1df7978a78844c1420edc27e44340bb98d4d929dda42426d0efb8a42c66501f09f2b06bc27a26 WHIRLPOOL a8b729ec158a66cd9d9c7bd73c58b876a0a40193aabd58973084ad1880587109ebe652448cad15961dba2b9db6e1c1ac4683349f1ca1cd424a7af3783b9e9735
+DIST zerofree-1.0.3.tgz 8506 SHA256 3acfda860be0f0ddcb5c982ff3b4475b1ee8cc35a90ae2a910e93261dbe0ccf6 SHA512 e23d343471240382629b4c86b6caa74571a77fb19f1b31bbbd9fad03ba1b42898f8ae042d1238d9c91d9b7fbc9893fb708cb557d3bbd9ab9a024aca6a8ddbbe3 WHIRLPOOL b1954c9a60bcbd8ba7acaf8c50e2ba3f9748346825d2b97f0666a568597400ff9de2eae42aa2c47cbec1efd9dabe1975b8ce34c82ecb847bfdf08b4c50510499
+DIST zerofree-1.0.4.tgz 8509 SHA256 a7f9e293961eb653df55cf54774f2036924f31019814ead5554c393eecae6838 SHA512 8172c8c43794eab1f751a700f847098343659ceabaf6ab78c3c902b34cf9b0db0dda75308b6bc80d22afccd11be25f35070ca6d715c3282c5c7c7106f598b42b WHIRLPOOL 0560f52d907c38d27a2a9f66453deb0f0c0a06fceb8f67a5c18754785ec5ec743e8b7788b2d09a5fd07540941e418bac48fdae75b3abf0c7654b4c0fffe3d5dd
+EBUILD zerofree-1.0.1.ebuild 888 SHA256 b3b3020a31c7d27f036348f12b298aa63032e17c40e78357233257b901adba51 SHA512 a22d538bc87a827b943c81b7d32c1cdbf93ded9ea1448eb9010508ddbbe944d3ad91b88a06222f25e2b03bda5fae1c10394e92c0451ee59d6dbf780ec1c2b8b1 WHIRLPOOL 2bfac11df19573e5b5b99be0c85e87cd578b5db570d633a45eec94ea6d6d58e0554d4441dbbab015296823ab5f5d7dfe7b17d598e3a47f01ab0c55ee5ea93cbc
+EBUILD zerofree-1.0.3.ebuild 888 SHA256 b3b3020a31c7d27f036348f12b298aa63032e17c40e78357233257b901adba51 SHA512 a22d538bc87a827b943c81b7d32c1cdbf93ded9ea1448eb9010508ddbbe944d3ad91b88a06222f25e2b03bda5fae1c10394e92c0451ee59d6dbf780ec1c2b8b1 WHIRLPOOL 2bfac11df19573e5b5b99be0c85e87cd578b5db570d633a45eec94ea6d6d58e0554d4441dbbab015296823ab5f5d7dfe7b17d598e3a47f01ab0c55ee5ea93cbc
+EBUILD zerofree-1.0.4.ebuild 864 SHA256 1db0c2b6dedafaa0df41b29ecb2b401949e49e82b8282e896fef9f4bb19a3ef1 SHA512 3e28d7c18ea0b8da0e6b94b87ea9e74635a98c057bd66bcfc4e3cf81381897023b1a52dc8974247f86f2384b5125250b73162626779e8ed7560317f55a64147c WHIRLPOOL a849964b2c9cd4d7f31546b9a484f3cf10a9e80cf5bb92a668db6e1bb515a93a000d10115016058ff29b2017f5be41a7f3328e74b0a7cfeed50d2145fac283f9
+MISC ChangeLog 2776 SHA256 016d3ef2a152aa931905ceb761b3ec2c9cb97cdb73337d768f07f555ea89df31 SHA512 fdd667af04b25549f3f5cdcfdf0444ded86ed9c2e3986ff3edcc0fe649b6ee697a53b52b6d69980bd82d58e4c35c4d0b21635cdf095953085055aec6c825c211 WHIRLPOOL 4fcf1719162adb55266c3fd909f80ba0904dd1a02f0a02ebf74cd2b58322e48710e4fd9e06c7ea00dbb57db67e664862eacdb9bcf539575429e06b67a4f70d29
+MISC ChangeLog-2015 1029 SHA256 fb543fd5b5c27c524cd352a1192b3df8728ae3312093cd034198f5ccc8325a87 SHA512 05d3fbf66d63a5d8cce582724fab208b8b0b508c9f851c94e0203ddd39f143eb92401c97bba7216d48b5864afbbc2db80bd1dc14b8a1987ee51ba9c5885c5862 WHIRLPOOL 0caddeb3cf2e3ce36f0c8d915b6c186d00c2a1905e53e2b9da6b6c6563ff10978a92ef14eec191630e24b9fb6170860c36dbcb3799aa7ae2db03800ecc16eade
+MISC metadata.xml 433 SHA256 af40fb9b9093915fe6feb2f5a789c3617387636a2ed6a20989e704113259b516 SHA512 c454915a2972c289341df97d9d8cb9bf26ea2f4c00ba4555a2d14e69e8f48f7bc8fc33c404ad19c175ff7e96900f3cead4dbaf32b0c36981c8a4926212a017e8 WHIRLPOOL 57acb4b776d096aeadd143bbc46027684c89392b3c51114fba48516b238b116c93cef44e40f104d521a76396cd8613d7ce260f8a349b522851a823eb5cf0937d
diff --git a/sys-fs/zerofree/metadata.xml b/sys-fs/zerofree/metadata.xml
new file mode 100644
index 000000000000..94262526a069
--- /dev/null
+++ b/sys-fs/zerofree/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>kumba@gentoo.org</email>
+ </maintainer>
+
+ <longdescription>
+ zerofree is a small utility designed to zero-out the free space on a filesystem. It is especially useful for guests on a virtual machine before compacting their disk images.
+ </longdescription>
+</pkgmetadata>
diff --git a/sys-fs/zerofree/zerofree-1.0.1.ebuild b/sys-fs/zerofree/zerofree-1.0.1.ebuild
new file mode 100644
index 000000000000..daeafd39b4e9
--- /dev/null
+++ b/sys-fs/zerofree/zerofree-1.0.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Zero's out all free space on a filesystem"
+HOMEPAGE="http://intgat.tigress.co.uk/rmy/uml/index.html"
+SRC_URI="http://intgat.tigress.co.uk/rmy/uml/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~mips"
+IUSE=""
+
+DEPEND="sys-libs/e2fsprogs-libs"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # Honor system CFLAGS.
+ sed -i \
+ -e "s:CC=gcc:CC=$(tc-getCC)\nCFLAGS=${CFLAGS}\nLDFLAGS=${LDFLAGS}:g" \
+ -e "s:-o zerofree:\$(CFLAGS) \$(LDFLAGS) -o zerofree:g" \
+ -e "/-lext2fs/{ s:-lext2fs::g; s:$: -lext2fs:g; }" \
+ Makefile || die "Failed to sed the Makefile"
+}
+
+src_compile() {
+ # Just a Makefile, nothing fancy.
+ make || die "Failed to compile ${PN}."
+}
+
+src_install() {
+ # Install into /sbin
+ into /
+ dosbin zerofree
+}
diff --git a/sys-fs/zerofree/zerofree-1.0.3.ebuild b/sys-fs/zerofree/zerofree-1.0.3.ebuild
new file mode 100644
index 000000000000..daeafd39b4e9
--- /dev/null
+++ b/sys-fs/zerofree/zerofree-1.0.3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Zero's out all free space on a filesystem"
+HOMEPAGE="http://intgat.tigress.co.uk/rmy/uml/index.html"
+SRC_URI="http://intgat.tigress.co.uk/rmy/uml/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~mips"
+IUSE=""
+
+DEPEND="sys-libs/e2fsprogs-libs"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # Honor system CFLAGS.
+ sed -i \
+ -e "s:CC=gcc:CC=$(tc-getCC)\nCFLAGS=${CFLAGS}\nLDFLAGS=${LDFLAGS}:g" \
+ -e "s:-o zerofree:\$(CFLAGS) \$(LDFLAGS) -o zerofree:g" \
+ -e "/-lext2fs/{ s:-lext2fs::g; s:$: -lext2fs:g; }" \
+ Makefile || die "Failed to sed the Makefile"
+}
+
+src_compile() {
+ # Just a Makefile, nothing fancy.
+ make || die "Failed to compile ${PN}."
+}
+
+src_install() {
+ # Install into /sbin
+ into /
+ dosbin zerofree
+}
diff --git a/sys-fs/zerofree/zerofree-1.0.4.ebuild b/sys-fs/zerofree/zerofree-1.0.4.ebuild
new file mode 100644
index 000000000000..55a370d58cf7
--- /dev/null
+++ b/sys-fs/zerofree/zerofree-1.0.4.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Zero's out all free space on a filesystem"
+HOMEPAGE="http://frippery.org/uml/index.html"
+SRC_URI="http://frippery.org/uml/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~mips"
+IUSE=""
+
+DEPEND="sys-libs/e2fsprogs-libs"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # Honor system CFLAGS.
+ sed -i \
+ -e "s:CC=gcc:CC=$(tc-getCC)\nCFLAGS=${CFLAGS}\nLDFLAGS=${LDFLAGS}:g" \
+ -e "s:-o zerofree:\$(CFLAGS) \$(LDFLAGS) -o zerofree:g" \
+ -e "/-lext2fs/{ s:-lext2fs::g; s:$: -lext2fs:g; }" \
+ Makefile || die "Failed to sed the Makefile"
+}
+
+src_compile() {
+ # Just a Makefile, nothing fancy.
+ make || die "Failed to compile ${PN}."
+}
+
+src_install() {
+ # Install into /sbin
+ into /
+ dosbin zerofree
+}
diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest
new file mode 100644
index 000000000000..ecfdc1dc047b
--- /dev/null
+++ b/sys-fs/zfs-kmod/Manifest
@@ -0,0 +1,66 @@
+AUX zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch 1371 SHA256 f48710ba112304d994785b9fe29c973e4dbeaf4db5e73f0147e1e2ecf10cb9c4 SHA512 16828602d72f57a88dc1247e6107c61bb50db3a694f825eefa27d67aaa2cdc3ea0d6e0542d90e31ca399d4793261c2d9b8c304f3e6b55b6eeea7a95759e69539 WHIRLPOOL 87bc1890e099e97af4d57092ca5fabdccf2abe25bea73f0f8113b9ec587bf5f39e96ca1a1246dcad6827830e0535f19994576027863102325111f43c899ecd84
+AUX zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch 1161 SHA256 f74db8f9704f35d460a1a2250993057d301710c065e553c688381e778fb8e320 SHA512 9a16107d448c90914e9e1fc767c68eba7fb3793c1a7b1e26182759d0b398d09641f51911981a1092e76223cd8a56724c634bc939e9f1fdc412cf4e469e1e9384 WHIRLPOOL ccd43c7610420c165ac19684217fc8d2aa6b5e95d3fa40dec651ea1bf145f9ec0463ff806f918678636d2658dc6c80946077d5773f7486e4d68c13ad3cb1960c
+AUX zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch 1882 SHA256 bd691dfdb8379c276309715b597b2091595c0f177a2241249ec76f6e31f3f101 SHA512 7f24915fdacaca01620a961febcc524b4c40989e85754cc927df5d8d87b77ba6bcce919db54fd7e42646abf16b6b29349de5e8dc30b5c12a9744e7321a9280e4 WHIRLPOOL 432182663ba978f1ae530a27d7f813e7aba04380763354a5446933c53848abaca738145c316b4c6c5fee06e65812b4e210def8a6432f7f5a8c845f4334b09d5b
+AUX zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch 1068 SHA256 4fba06f71807086da90c9d8f4c2a04cd83af4b606ab2ab9a4bc22f08e9439861 SHA512 8f1d20ab9be3ae388424ad543d400244df9ad093a0e2c61243c6b481347cd2fc0ab194ace5062d4ef6d162622324a5ed14c43c8c6c4e63d56725624f86a3961e WHIRLPOOL 4edda0e2353e851fdfc8381d9ab91c3c68d7c7f60dd69778817a9aeea46ba8b15e51954ccc5c49c4e094063d3bf350f14e2ab49fed9837980772a2eb495cf2af
+AUX zfs-kmod-0.6.0_rc14-flush-properly.patch 1058 SHA256 becf3bd60019415281f38633ad10d9a4b57587aa8b9d0679dfd7aa83ae76092b SHA512 5ffe861de9d7ff54a1108a08a1c077e9f2eb1266fe72a60d4b790be463714a6736fc8b96168d656192bdcd7a0d836e5d09dd04aba3dbdb7370a682542be68a35 WHIRLPOOL 2cc7619a3e76abedd0b77427f408562c5f7206f904dc40a58f2aa519305820c121ceea53311f747ea1f103bcedd5cf88cb27cf8bdfda6b43f879f35855a8724d
+AUX zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch 3841 SHA256 0c456d53f0f5c861fc3b92122290f9ae8dc90af9469bd66f35f5ad802a037f4a SHA512 985d1d3359cec0c5752adebd398e241e2b7cfe174ac500e2c66e84c960bddfc8908f6de19468f628f2752434f4987ea926842cc40c4268a9a18376d1c1c04460 WHIRLPOOL d3ee7ac7cd3711db31229a45b33cf0eeceae6a9710a4b5befb9ac4734bc0a8dcedc37a38d497827430e99282feaea8200b4b54295228238e9b39750c179d39a3
+AUX zfs-kmod-0.6.0_rc14-improved-hardened-support.patch 17568 SHA256 1155f2587e249fe2b80e887c10549da11dc0ccb2f1a86d7bf4ad37bc73eeede1 SHA512 0d7a3354a336a749be0aeb1781f9c78ac3037ad515e31039184fc13075ec10b237581d25d6eddf5c0bf9b9b49b137d73c0ad9685d544fa8f8a7200463300acfb WHIRLPOOL 365e07900bc89fde7624f987ecdbc5ce55cebe1318f60062ae0c36ad044cb2911af81a57886d958237b01de12b865cef3377b7cce8e760a55abc2ec4fbde0379
+AUX zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch 1098 SHA256 3572e68fabdaea723a2f31e109fe17646c966e12e2c99364798fdcae1ec63b3f SHA512 c59a09d741549192bfb9433e4ab9ed2c42e8346c5c0eb7accd76a40edc8b50f3c49f9dab69c66e2c4fce4d9b62961121512c475ab7b9fd9f8d821ce1075dd309 WHIRLPOOL b4f29f80ba433196d12b2c4b0945841f6282d5def9eeaf4b59f032fd57042073d437b33a1ae849bc2323af3a0cc16f23808825f2fcccbc7bd1a2b8a98cfbb5d2
+AUX zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch 1074 SHA256 ca1efba212bdec982d519a05c81035271440a43f2aa6333c3e7f244690fbbdcc SHA512 0df3ca10c9919d554c197a45a0fc9217db19f6de39db6d00ff1f6501857430df79e9403c924c34928dc236adf73a5ce9bdc80b877a62709d4591a1fbab2c87fa WHIRLPOOL 3fe58a362d1c0fb0c8aa30bbec4a43d88d95b6c956445246ed8f28ae890c2fcc2b13de184eba91937e1ff8ac93b38a3f0b6824733da45cf46999e23b51f31d9a
+AUX zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch 1354 SHA256 0d3690d53b7e3065198da6b0356c1b903f04c5f69f7097e0735a3af221d122d0 SHA512 816f7e52f6c97a06bd0cd28a6bed8c8d1f29be6c45a4b41a7e2090c796cdd5d519fde333d1932e959fde70ef9ecfdc1c8c9231c56d935a2c34b3e3897e0c7a94 WHIRLPOOL 52c1224114767957ef9211ebe73a64ededfd6d6bd6aada2470b3e916cae4a18f87eb8710a716cea55a6eae987efc250d3496d04eefb250335c031827b13ec08b
+AUX zfs-kmod-0.6.1-fix-arc-read-panic.patch 1432 SHA256 2a2fb2a0b4960e7c616f4bb27a2a1ddf6dfcef30eb6b22ead20d70fe58055c1e SHA512 6063ad756aac5df4b850fb79630696f0616e3a906463bdce147b07383ed1cba47a60e02eac3cc2888fb92f9915e6ff8e28ca36c4e3d11cc9e65391c68a79d972 WHIRLPOOL 4d0432ca6468d44de7a870e03d20497eeb39b1e373d843862a695622b9d69e8eff6f3d52471b7756f80c9392ae12a797b6665c4d27f73710f67f0ee1aaafcbad
+AUX zfs-kmod-0.6.1-fix-getdents.patch 971 SHA256 c55cc963c0a5e9d42b7462c18b3be25af0020284652f3a2c7e1901eaca2567f7 SHA512 e5c41547ee1ee0e6aa67555501d8a6e18bbbe294c1b2deb6ce7af5efb07857d07acf2590867e64cd46f4abb0732b1048ad9edd8b30ad787d302ad3f6ec6284b2 WHIRLPOOL 7912eb4833acde65b6a12537dd0d34941ccdd8b23de4c80757d36059a3654a18c843ca4125a4acba175e13b93a7c0af4353dffa1e55429d2b6af8ceee2e96674
+AUX zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch 2368 SHA256 af06930be9d5b7a068edb7a6b2971ca64083f3d7f2e8a1030d4828aa4ea5095a SHA512 2c439a1373f30974154d990225e3207c01ac66261fda4457e05744cddff9dabf86deeff30e68834669487accf26ea502851dc11f370e84e0f14112adc7838bd6 WHIRLPOOL 7ad335596f02e07ad3a6c5ee721384c50336c544597b0272052ee7d58c597760bbd1f56f7edf1197ca939cfce53ffefb415704d9b8034a8f38797496c62fdc5b
+AUX zfs-kmod-0.6.1-fix-xattr-behavior-1.patch 1218 SHA256 785b3649ec53aef5598b75e36686ee392541492b40221d468abf442c5eb0959d SHA512 f98ae5bf59ff84af3fe91b8d1589d4eac2588542007a7185b91dc40abf0f54f0b001d3614bfad342510ff2228fb79bb0275991e7d9ecfabf42659c5839737cc2 WHIRLPOOL e9e8512fb9e96d71e586d110e4db69dd49f42dcc59b62851c66541a5faf339665d7f99beb40357ed912daff6f85b7a75e92414cc4a8a65e3b634f8b56543c225
+AUX zfs-kmod-0.6.1-fix-xattr-behavior-2.patch 1205 SHA256 91e6e0e90504b5f71bcd4daae567b7f8830d6df21eefe299b03b6e3263fd1764 SHA512 23ce8867de27d8402b33ae672d009fabad8faa8a994021c745582aecad28519eeff3902503abb8842b04a649f720532535191fe16a53014157dfd89f55d95615 WHIRLPOOL 2fbe1ee885d53102dbdb22203ec7372039972e3e94b047134367c60e81dad28a845930e2d6cbbe22e2171dbd6cf56f9d91bf219b3e0c5f87ebc623518affc175
+AUX zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch 1786 SHA256 93524ad27a8a675833a4d0f31d023aa1f19df971e3224597fe2b8ba0b1cd7917 SHA512 d0da1ae4eaa8a11d7af58cbbbb97e9e7fc2e314f5cb41725e1178fa5a8ae60c8791713468faf11d64d5e8bf4720d37c014e38f5f353f844f9cb2ac4718274322 WHIRLPOOL 97b82c29ad786171cb18323b3f643ec1fa62057041b13e63b9257243e715775616140b01b3d1d5260770778760ceb9afe2f77f48820de0c06eee6253ede2f953
+AUX zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch 2503 SHA256 f971fddca8a1b9da357fef42171230cf754649cffa45e59ce0c6610776737c29 SHA512 dbf9ef69262aba1a449c528145dcfc5bc4f9bc0ec46f1a04073d99d83c586ff8d76d788d6d2d798c98af8a22264db3969810711c5830cd3d64392de7c4f9bf91 WHIRLPOOL 73e5de6aafebf54b6fb1c5cc036252299d353c326fbd1e34c08e7ec7167ca064cb769c84a20ee12bf5b799d57cf191cead2cf996177f9dd542d1f7b0d57e872e
+AUX zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch 4803 SHA256 36f778dc0fa3c3c7aa4f2383e9463a75c51da19a1a719018f729e9d42ffb52ed SHA512 bfe5ee1185fe044cbf758414b0c8bc4311de6b0502a6f0c6a8fecec71402376f0ab4aa7e798f870c262f54d77f6b84590cc2ae371ff4880dcd97b834ac443483 WHIRLPOOL 3932ef6eea9ed0f23146f980504540843b04a684d5c55cdb5aec60d9fdb18354d61e485b55f5a0f2561ed3e379accd6b3d3f7c39bdbc91bc0d3194546e75ec5e
+AUX zfs-kmod-0.6.1-linux-3.10-compat.patch 3513 SHA256 e1e4773f78faf53b591437dc4222c343a6a970e8c4e3a25a441cf8c32dcf66ef SHA512 aa0ee37ec071e1732533d620d88d47219d33579b164bcc3ef9ed92a68060e4587d171fa59f759c77799fc2112ceef494c201eed2614c8eed49808dfc09b8fe68 WHIRLPOOL ede846f6b8ce91a1c558693e36b3d7676096e27fae4db0a4139b7a4b79589158c3d834e4dbcaf4c4de3f6ca5d1742f715fa2cca2fdea069f286654618a1c1bdf
+AUX zfs-kmod-0.6.5-discard-on-zvol-fix.patch 966 SHA256 3770a47646e35f9c5cd35bce49a8145905aaf5f005ee6ecec9054597095357cc SHA512 5de4a48727cdb21c3851a3310545eb9ab353c732df891d50f1c02da9d3db0a5104a1e6dd660fcdf73c0fe315e6694fa6f3932a76c90074126e723814e65fb6de WHIRLPOOL 81b2070f7c53eb6765c02ec833246b0c92832515a92b6a172c4687dfeedb08eac5fb98a984d61d90379ece52ab9da573acd877efcde045235b2f29c575548706
+DIST zfs-0.6.0-rc13.tar.gz 1490582 SHA256 3e689fc0704237c7d755c65e34ed214a262535afefafde4aef0f112f8c833a09 SHA512 c9bbf1fb7f293a0f5b1247e17c411073994bf419d5f6c1b781efeeb4022f62851e8ea3cf7ee0330b0609bfe13b8084c48f00e942ce52323d706733cccf49699e WHIRLPOOL 97083a6f5d66addc9bc7b3cc3f7dd3bc1696980affbd4033d71cd09ecad413ffb666a8a185dfa2e4f20dd4003746ad61d12142f7a6556db5b34008716c933798
+DIST zfs-0.6.0-rc14.tar.gz 1527612 SHA256 5eae8ef790b26e0dd7c801cc0a235a631ad91d67f148a444d912dbeb24b9a12d SHA512 ad38544ced150ce500c78507782e53a8534815b819e5b9aefda6d670fb7905e31a42cdb4d45164700df48673ea7c42bd1d29a60f1f00e25271b3906de9212d15 WHIRLPOOL cfd4de541eb6c18ee4df8950883525d1b1887e0d9c5f840d97353a5d716ed639f1ab3dc0fe4d8368a890564f10053026bcc738b6066c4488647f1b83be54288d
+DIST zfs-0.6.1.tar.gz 1535521 SHA256 42ed127f74af0ecafc14800a5d2b766655f5ea821098aba92446c1c447093fad SHA512 ef583639f15a5b2e4582760bb013ab5091abc15bae17884d811afec707aff337248102a22fb9fb6f62f99cb3477a8ae82edfdcfdfb962276f593173a5dfe5871 WHIRLPOOL a6791fc2d384e03073abc850f99ba761afd18073337264d8a7bc08b4ddc6fff52df5ce11addc9a3ac7cdfdd9ce9bd779208e515cda631ec19de05fbf9f92307b
+DIST zfs-0.6.2.tar.gz 1558656 SHA256 91b844bf7a42df22d7533e8004289270b7859b8fcbca3bff8087a79b131318b4 SHA512 008f9decdea3e92f6d74f5369ec9df5776b15efbb9f2bc01012999b71e1f2bc5b46b310a329b60545907dcc78773ec79eb6d21aca49d911f33299fd0a36e1a4b WHIRLPOOL 587279866b6ffa2bfebc91f00cb28de85f7f186426a0292f44c6cde7ca3a51c1911fc0ee431c25c3ee0866174522f90ce04b54de4aa3dc0829ba3a719e47af58
+DIST zfs-0.6.3-patches-r1.tar.xz 87852 SHA256 71b5286f77cb6a6c2b97cee406dfd4788f7b40b6675c4a56fc630a47e90d5280 SHA512 e2fa573c7b30a3811e9e1596d35b65f5d013ed5bac43e364b44ffab734398a3294979c152a80ec9a722611cc7c971aec217d8e1a37cc9240a3fa2dddb5b90e3b WHIRLPOOL f2da02d5c7d2385e7de1e858c31d299632ca864d422f0c94e5d3b8674d24beeb073ad2600698350306a9e70dbeef390f0e513d19c126502fceec18795c203d50
+DIST zfs-0.6.3.tar.gz 1665270 SHA256 00caeae63cc724d3dd741aeb36fd2dc03d2158794bd6a5e925cdc8d7e5d3da8c SHA512 8c7741f5f227eb031d79fe87bf7d60e790a098fa6caede462d556c97d798832f97f5a377cbb74fc99b8d198e5f3cc1a3491f69fcdaa0408933dbadd132013416 WHIRLPOOL db9791da12c441c89667b194154b209f5aa69ea46d5327cfcde0b3a910cf1f0e5ca448909824e45b31252a1907280b711fb6ba04eb313d09de0ffbf5e6e304fe
+DIST zfs-0.6.4.2.tar.gz 1738601 SHA256 26af2924cbb891b79203a31827cba4cdc310162d5f7b9e2d643eb6576aa19015 SHA512 87a28997b8f9d36e189410171db583402418a55782b7b7f333993e98c5e17ccc4b6cd5825f38b904294c87e3dfdfb7748bd71cc371589c1358f16c942e0c18db WHIRLPOOL 1700de7da56311a7b608c99a821e2fa97a6145ccc88f3d8eff12f778421ba7b7b9cc5f5fbe5f1acd2ea2fd1db778c200a2ea961e3859a8fc89d80474894293f1
+DIST zfs-0.6.5.10.tar.gz 2597676 SHA256 90a0ca76667076e9f58776216cb761f68761eb0192f8b0c45893f84cabc6f27e SHA512 822004d11a1a7c0e258cce049bfee0248dd1ac225a922c1e4a25c8593f23e9b1d7aa4a45a1122f6904025ea0a8c7f4884ec4ab353bfa9c734aedb0969b8d6eb4 WHIRLPOOL 87596a0e89afd3b7da1476c996c87491ee3962f0accd0c1a50d9cd9ab4dd49b3c1c71e14c6eeeddfc53db9bba665bc525ef9580da8082b1e4426bce54ee83401
+DIST zfs-0.6.5.11.tar.gz 2521959 SHA256 136b3061737f1a43f5310919cacbf1b8a0db72b792ef8b1606417aff16dab59d SHA512 877052da2a0cdc78b10cb5041da55e31242db2618c502997f4df9aa46a14482c7f33adce8d21aaf16164a9fe52edc358922ea89c8e109c3247e107bf607d6451 WHIRLPOOL 867f6b22726ca13e43a5ff7a832610bbfd44e6c367bd314a20a7f0a03364b1c3bda1d7b3d7c3502e08249b8d8d9e8034e93d0200abb70f793352f7689e19deac
+DIST zfs-0.6.5.2.tar.gz 1817267 SHA256 aecd2bc5189f2a71a45eb222230146bed231af4f35af5ec7af83a74987c3d595 SHA512 7f0b20feca91d5ab952c1d49ae94d241f8868825b163a3d5f2ad0fd7adcac3ab246a3e6a755019a833be553fbbfd6609828d8123f49a43b42bf76cfd64f234ec WHIRLPOOL 00fd628ef2267366b6f0705e6436ac55b260aabc3588c7f58a7042dfbfe95a0478740b4579326638d28f10ffc8f2d5b3ed21b9f8297e72344ec439fe30310634
+DIST zfs-0.6.5.3-patches-p3.tar.xz 88736 SHA256 031cd97765f890d9b78e1a5746cbd2a3ce06c7208693ec75c0b47324ac67b97a SHA512 8f17cc6e02a35828a57a7c2a437d9d18a41203b6e3f9e154b2ab863296b64596dc827afeeb0f993e37f47881d0f2ed4834f270d0ba843ab84b21c491cc352576 WHIRLPOOL 20f69c0a936bb612d5e3b551d4bf904aca3aff6d885d72f67f3b14cd720094ec13e383032ee4e322b0e81017d8ffcfafb47bf07f273badef34f7210d687ddacc
+DIST zfs-0.6.5.3.tar.gz 2524218 SHA256 49e6f9760ea172cb756f7357e4bcb90ee0293028540a68d62ed087724276131f SHA512 325cb91b7ddbcd6aa0bb9fc41eb0099dbb047a4e32d096fd414799729ef68cbc9c2e15714092eff8044a681af4ab552bd9ac1949cc673c6c5c3de1a23d9895ec WHIRLPOOL 957c3a75bb11befd4b74583883f2f11f717deb6bda368939b342049e809aa191a9ee8d1e709eaddc2a831418c7fdb5e763f918ff56d45f03baf4569ef8a4a070
+DIST zfs-0.6.5.4-patches-p1.tar.xz 64004 SHA256 83877d9b7c629730838325fd5b16bcb54259520e200f0539de9b8edfdcee9403 SHA512 9203356b43bdad2ed78c946af8c95c9fc4d2996b41a09a3b1f5a8657d2742ac69d10b4a87d443db497d591878cf7a70ebb19762b0df135ee25f4e8d2ed6ad71f WHIRLPOOL ff5788356d6a85608d22ea2c010a799464922614204c7eea06b57930a44ee876e596a053a773205de0543d36c04337d60c32594939e8e64d3022906c51c4d4e6
+DIST zfs-0.6.5.4.tar.gz 2506470 SHA256 780862ec2301ccace412a324787e9df762cff6046e73e2ac0ebdce9e2bd59b0f SHA512 90c87cd95fd06cf34755358e7cc4053d19f351316133f0b808e7585a3fc8f82e7c0f49072c2995d0520de5104fd04d91a166a0d5b6c923c82dfb2fb4f7f57a01 WHIRLPOOL eacd2ec09afdbc3f6d946583116296fadcd7d0dea5158c89f82f6d0b02e0cbf075712015bfa5f321ae5815cf86af13b39ce93e5026e6a00da58d9ddb04d12320
+DIST zfs-0.6.5.6.tar.gz 2561093 SHA256 c349d46d86b4f61cd53a0891acad916cfc3f0d6754127db7f60a0bd98185aeff SHA512 94c55a50f0f9a90ce07a45dc72bb2730b2a41373ab5a12845df00ef38bb22e4a80ab2fb6e31a9c3a45e51516cdea441bb9da1d0acf71f2f88b38c7c3e9e995b0 WHIRLPOOL 6fcbe473bfce90f800989bac506fa6d4cf5662ad9ca617a477f1251c1625de906495a45759d6190e5a24dcf05f2ed3dd7ea1c0b2f243165a60e5efd098082935
+DIST zfs-0.6.5.7.tar.gz 2537816 SHA256 4a9e271bb9a6af8d564e4d5800e4fff36224f1697b923a7253659bdda80dc590 SHA512 559b826ae1a176217b92d8407729e2c5feeffb117dc9affaa8c9c2134d996b6c3cbe095f7a0c4666c9b131742491f1304eeb292e13e0df0b6d001fa620568af2 WHIRLPOOL bf2e0865de35496cc995738ddde34df797b0c5047c0dd17e5b755803ef16e7c16f8ba89927106a1f6131c2f75a6749c31a72dff95fc0fee186b308c50ce0b4f4
+DIST zfs-0.6.5.8.tar.gz 2521921 SHA256 d77f43f7dc38381773e2c34531954c52f3de80361b7bb10c933a7482f89cfe84 SHA512 e5b53a9531b865e7c650892c0deb1ee81db086a33538cd667a087a8a8d33a0ad93a30ae5e800096abfc4dc8ed00843da924230082e204fb7543dd401ef41fcde WHIRLPOOL 623bf8ee51d59dcd1842bf41ccf19c2eb6813fb1e88dea1ea1c6f1388c11484b798546bdcb94500735a0e9e5f9099a4df43308760b353b5b62ff56af035f88bd
+DIST zfs-0.6.5.9.tar.gz 2610650 SHA256 b724b57dbddae59246fdc15f88f1224061c712945bb36412a2087e0c7760d77f SHA512 6e175f32421cf0f9e13429f12f0fac0564dc7059ab076831d0ebc4f6a17412160ca3526ebdf894bc7666e82580355b08701dd01c411d3177f82e7330b4529a37 WHIRLPOOL 149d730a26363b50691363b314669756d218c4a16e6d06e319c2b0866c5f8ed6e2da2396a516297c127d3343d51d78072d8b7371e3f4d327d30fa43c90be5cd3
+DIST zfs-0.6.5.tar.gz 1816180 SHA256 542121940122c922c9d21a2bb39bca4e4a9db2f6bbfd2e576630840e256d4c82 SHA512 58480ee9b0780f1f21d12504abc226be3e6df1939214f6a8f245315d1fa0b9da56b3a744df26426ee78f13684a4ca288df6dddc50f8f91d9d0b4c542980a9c53 WHIRLPOOL fdb5580ec8d4abe57069ce453c1d91225019758ecf5d31856a7897ac7e4b51c6a8ae3258e822f684fbd70a0a7d7410c65c37a569f37d132767522118c587cc24
+DIST zfs-0.7.0.tar.gz 6714094 SHA256 6907524f5ca4149b799fe65cd31b552b0ae90dba5dc20524e1a24fc708d807d2 SHA512 6e6cbf54399fc85b74b76a6ceb3f30e94903f755fe6386fccc56b5e6d307a907759e4b62acec5d32e8383ef1083423eaff8dee2b0ef01a99459171a42b47d217 WHIRLPOOL 74687be4220bab51f18fdd3c047400c4261acf16f38086c2485f5cb9d79af87f5adfafced92860b021814aece7446cb18e9ca310a363b90c6bac39343b72a4b6
+DIST zfs-0.7.1.tar.gz 6376234 SHA256 231b104979ddacfeb1889e1dec175337276e7b3b109d40656089744b5caf3ef6 SHA512 64b0a3b5eeaf09ce824e3e029880a8e5dcb3e4567d1fb2fa24c89d8e55fee1ebe2d2f3a9f77d5468cc5637074e27d5ba7696b566829c93fd69c610b288200a37 WHIRLPOOL 700c83aadca96578ae8d6a9795f91c0c25b69afcc6ec6c02141daafcbcd550ae413438e96c4821c5c90816e0e29366ecfc3e7289623f14c255722c37d9f9a7f6
+DIST zfs-kmod-0.6.2-p2.tar.xz 28636 SHA256 12882463a38a5a57cf2bb3c14c5783f9511f6dc7b163a47575f2f3dcc24f26f6 SHA512 5792660ae8f5013d12e70d608e9cffa92a8c4089a88a5e78728ee88204b3f970d452d5b0b3874e02be49ebbc139e07139be7b5a86ca40bc8b23cb11a7198a9a8 WHIRLPOOL 0e4c57b363cdd3d736efbd1355567b18e22439bd3b20ef40b27f6b97ad4570c7cc99a11b196ac25359d1966c1a70e178f4fd1687b60450f148ccda47b07282a9
+EBUILD zfs-kmod-0.6.0_rc13-r4.ebuild 2918 SHA256 6ea818295d86269658cdd0f738ad1985b7e341fc1299b767d7ff097fec64cac4 SHA512 0181b33ef6c7be9d04ea82a70f4fad9d1857c0399afb990ee896a84abd8a39f56ae2cfa2c685fa12f3b7566cf1e22c4dfa3b11d7e8c1430ef6966ca2b76e5879 WHIRLPOOL 106c05b0563e4812beec09b4295216fff0f508cbdbad506256997254151ce89be341a26c6d7a363dce414cee264ad54c2329a54809bbf49cbcac91b24eea7c0e
+EBUILD zfs-kmod-0.6.0_rc14-r5.ebuild 3545 SHA256 23e7f9dcdbc7def3170da5b2fba746f937084b5afd956f34698a33c9d0892dbe SHA512 b583ef7334962c967df9ea21cac71ff761373770dd861faf8416d78f33531573fdceb5f974526f02cb4a8a298657e4773ebca6c2079b2c08df34035bf2c3ccf6 WHIRLPOOL 86e214049e54eb6e20659907778f08fb8debc328f302a2dfd7eaf81d8bcc3a915c4ccea29ff3a42b9ece6b8386505ad898b36a21363d978f6433e295f6d016c7
+EBUILD zfs-kmod-0.6.1-r2.ebuild 4153 SHA256 e17f389040047f15ac0bbd142b4b6ac478793f29490aeeb855c3185e97332777 SHA512 7fdaad8fbd6d25ddba63695e78e8180ab708590f577902f007d807ab838a70dd59ceff539b9cb69d93f41e27e15784b3da265b592592835e1bbc60a9669c8b9d WHIRLPOOL e173995a1b2646c2adaa66f231637eed0d16ce00344fce8ba7fb24fa1f804198c77aa1799ff63347bb61c0777bc6504566a6c122c8ff997845d91e1fedde2612
+EBUILD zfs-kmod-0.6.2-r3.ebuild 3321 SHA256 c43d6939fb84cd00af17812d1ee1300d8e73719811c9863d5bbaad9fb7b0529c SHA512 bc568642dc62ec276a657730da4da79b8698849d1039e78dddc5b71769b5e333e96476e9925c013b751c9850db6fa81fb2be66bdeaac812336c9a55cd3437d4a WHIRLPOOL 69dd8e168d134031fdb2be3f35b146f74bcd8e440391c7e1e42b776245863f898de95c76fc985058cf01b556df925cabb924b6bcb8bf5e239c9b5d83351ce30f
+EBUILD zfs-kmod-0.6.3-r1.ebuild 3792 SHA256 ad06fd9ccc7f5dcd4324b4e889bbb93829fb53fa1d407af9387f0940a213ed31 SHA512 3a49e413a010c47053932f78fae4b9e46fe8f641998a682404088d02d1afc53426055fb38ed907a9e115eaa17031a4c193c8e6a5370b44456c39d12ea171561d WHIRLPOOL 069c431319f19d493c5ef1e683b2a97184c038a0a5ea956062b2298176372a05b70fa7f840592d820852dbecbba6a3ee46428ef370845ebbb0dcf0d746f5742a
+EBUILD zfs-kmod-0.6.4.2.ebuild 3989 SHA256 a0cfc07fdc639af190bab3ed7247f33fab70b654684a6b59bb0444713f83b3cb SHA512 4e1eec82ffa9243ef709ecef94ee47016b6c189951b057d25860f30bb33790d6d8f672956c1ed31d95470eb33b8222559181672f76e4ecf8670143e68d487185 WHIRLPOOL 6728e334b8b7e53da5d3c36280b604a3e74d6093d9e06311fa6e36493a7c5097795b1273b0de89c0f175ddc17a8dd9ccb1ff5f11fc0d123a3821a32e0700fe2e
+EBUILD zfs-kmod-0.6.5-r1.ebuild 4282 SHA256 6fa7a2b8eb3b7838d060c8bba8f11db41a5113ff16435b75aa0bebabd46cc909 SHA512 fc5f4375db87185d15245a5e3859940d736a1af9fb90e07110bb257c270c1f14a19148e3185a47abc61617c104bfe37a07b692909ff9dbe8b4bd14938294da95 WHIRLPOOL c5b3cfa47d7fefefc2b29beb60e9377b9b9aca6baf0b4f72c7390ca3d02e967a9a055069543418faf4cd28562864a93a573f4230b6e50467d02c11df8683fd30
+EBUILD zfs-kmod-0.6.5.10.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7
+EBUILD zfs-kmod-0.6.5.11.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7
+EBUILD zfs-kmod-0.6.5.2.ebuild 4096 SHA256 209a84d941532cb7cb66b1d2dce37c8e1481a37236d7573149940288e25a794a SHA512 7bf181388726e85cfbb8ab1d50645216c26ef3a2fd6390996ab28a14c982b7939293e50248c8b1c63108bf267e505b10ac764ea58b8a47deddb48a24e4b706c5 WHIRLPOOL 557992f25e44fc902d6ffbede7cf03f466c6e02d2cf39f547b96cf9a5dfdaf3448344c32a6474460c930ef50f4c541b0f4e7878d90d4773101ac98915f7d5e72
+EBUILD zfs-kmod-0.6.5.3-r4.ebuild 4377 SHA256 fb1cc449621181c8d3e7d5c3821f4313a07e7241b6da20ead7f0292b4c80ce60 SHA512 98e158c83c3068ad513830f801b56bad90712815e857aebd610fe1fbc2b33f869fa93b3d956ad08d57dcad352be5ee610e25fe0e1c61685d6f73551c002719c8 WHIRLPOOL 2d383aeb86b1ca585e8acecd7b427b13d247e01654ba9a0cd880a20c5a0726042a3b5b4ffaa94c1e89c26e2c0c1f65cdd4a3409436d2e5384b5ca1198418429e
+EBUILD zfs-kmod-0.6.5.3.ebuild 4066 SHA256 c467680283e2c119ff12adbf4ecb2523d5e41353b66d878f70a2795dc0bb64aa SHA512 e5a4f2be284d93a49ac9c96bcd186f72f793a92975648f40ec1bf90c31e25e61c8e7e22a95fb63014c888d513c4942a850dc359ef647ad17811a802188cbb2fd WHIRLPOOL ac57ee877275b8560ef3283818e7f47748737b3315a6419916554deb941f3aaa246f84f024f41eff51667036f596e3a8e51a2afd49c9c9966b795681bdafe602
+EBUILD zfs-kmod-0.6.5.4-r1.ebuild 4383 SHA256 fba8daf4f77627e2449bf9b14216abb8e3daaf0c95c025dc957a0b1e7d60c4c0 SHA512 5271ddb239c2f7bf1923a6cca7a9de5c4eba3bbb71ce5554f58edd448cbc97372f25d51ca4cfb188fe1c3285648e09c057e09e0ba485adc68ff5305499ae8a5f WHIRLPOOL d00a7164eddc74f6981fc0f8e53fc018e26020b38a632dfdcb054abfbcf01bb9758bdc738ccf7dabd34dd32f4e494222b365dd3e048a6dcd2c760b34544ba7b0
+EBUILD zfs-kmod-0.6.5.4.ebuild 4050 SHA256 d4edbbd98248d2ea31d4c64c57990d45ca5c0db7dec01c9b090baec01a1f3fb7 SHA512 0afd38d6ec053ceb83ad97551267a211d8b09aef69161af2f52d7a30ea990eb2d47e98b1efd0d8e672abbe5543b49972c2b1fd06ad9f9b3f47f80070d739afb3 WHIRLPOOL 36fbc3615335902e20f2f32cfcd11c89ace959b3d928d1e991ed391d59f98f0d693c41e80acdd252bc5cf1f306ba3605554579e94cfe4c0f4d1ecc9d297dd29e
+EBUILD zfs-kmod-0.6.5.6.ebuild 4050 SHA256 bfeac68656924c0a7afcf9e80a504e3a4f4431a2dcd5533ca1deca1cb07a7753 SHA512 3ef97c146c589a4390dfa5f9b7deb481bc393aac3321a7beecf85526425f5bba4a961fea1ed2d0b6692ea0120485581b19a1232730d30150646c0c0e4ca6925a WHIRLPOOL d7dc0dbde5baa6d5d91d59df8f4a6ed79c8605b3393c13a8fea27dcf4faeed4a046c313827ae7cc28ca0e2fd02c3fa55d6686e81a51e7bb5c764561feb255068
+EBUILD zfs-kmod-0.6.5.7.ebuild 4050 SHA256 bf73462ca8e0f3e42d0f84150d20c91dd0e1fed240d61858076192740c39ffb3 SHA512 fc5e5bdb35cc23127f17ed6ed360a7e7566ba47aeb13118ee0d1caf54c317462dc67f04f14f34e49ef7dc30a2811bcd01a27eea473f15a0b5d14359206e32997 WHIRLPOOL 19d7126cdcd0c69002bf2bdea9af9c0c650a3cb17e4bea26f74f7ce0254f4c6522ea66e3fab2611f62265dcf0155e069448f66c678a9421e50eaa8d2a1dc0f2f
+EBUILD zfs-kmod-0.6.5.8.ebuild 4050 SHA256 fb1bcba00c52f50fb4704af297e646f5ea84179af367a72510f2d7da8bac2459 SHA512 9380de435663ace10ef5d8791afee4896f9768f82b5f34c7aa77bc0f79661f7bb6b22bf4c2639e88bf75c66f003a48b56df1d1310b816b7293e87d6e422b0bfe WHIRLPOOL 417e53f00754752fbc4f32051ce6d20bdae0ef9506c4382f538dfad71b0a34c7ca06014a6ae5272344792a9c0ad9998cc5bdfaecab1981b802ca21bb2ee81640
+EBUILD zfs-kmod-0.6.5.9.ebuild 4052 SHA256 91c9c8f8119422495913038bcc2a26c686dbb639ed035d53d9a65ae9397c6a6e SHA512 67ac053fd1f304710b800ac3482c6a54bf49f2f0f35ce49ea11a36338f051a8acbf24502c4a237b40705076da4275ebd080c59befb54e37b1877300425c89c9a WHIRLPOOL 41f14429fb2287928f86f69f3cf8a8fa95b235a8f0aefa39bef701d3a8dd038334d5094bc0c1cb67a670239d6d36536ab46afbc3e8952ab11e781a772bb9492c
+EBUILD zfs-kmod-0.7.0.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7
+EBUILD zfs-kmod-0.7.1.ebuild 4052 SHA256 ab375e8bdda895acc3ec1e115e8447a68bf4ec592489fb62ded1038662e9624b SHA512 773bb52b42462b69d5911e7f02a503872080f8c9c98c9a35959caaba65aa5cdf940f874f0b5058dd47548c6e3bc296b949ff37d46a4d9cdae177f289e83c1abd WHIRLPOOL 3a9686f6928d5709b3bfe236c5609cbda94990184e8d2b9cefca4cfe07cf42a39cfaf841e88b5f57fc0119cc2e672f9523a2460b203fcf5af3449f39c585e9a7
+EBUILD zfs-kmod-9999.ebuild 4066 SHA256 e16f6edf739ac9ffcf91e1426e591cf585ef607182ea981f8f49248bbcc64dcf SHA512 30e78f5d73ab1bde1422f52ca1d773655c3ffa5e30385181daf650708639e34225c0367d5abcd80345d27868dcea8516024e9901c43590057783354847316517 WHIRLPOOL dc07d9f9f1df2ffc11628ebbbcc3e064c52e2b796b4f07bf4abb4e97afbd1899490908525ed4cbd686d69203168e95a264c714c64f5125e090dfcc0a0ef98e60
+MISC ChangeLog 12130 SHA256 3801bf091ee95d43a08aa11b014919287cb8071903b0dc75e482ad7418d6a0b1 SHA512 206dd30070d2f19e6c05fe4a122159916c597a60d28cf3c5f70e58394f613918986bbb0212884428ff7033a08b420556303ba1b53648d08e4218b02403a7b89a WHIRLPOOL 5eda564e5080101491e00362dec85baba0f09b5d948045151645de20e770d48940b13d019c42c5cd342d684c8174d66ac6c0de3d5365b713972548fc4411c003
+MISC ChangeLog-2015 17220 SHA256 44938d6e98d5c94b22a4934e9bea77ced5336708850e3525e674adb5477967d7 SHA512 93133a5bc445fc39c017ccd05a5b432fe4fff11cae819b4a4de84bf8da3d9ed7daeabef61924cc7886dff31f6e337fe98f81dfd7bcfb9de77f9486c9e23f0073 WHIRLPOOL c742602cc89dff432a8d091db5e126cbdadc5849afcb614769f83e12cfb9a64c2a61a65704a54aacfeeca8a50ed14c02edd06c9c051ce3076e4d62addddf1c60
+MISC metadata.xml 554 SHA256 f5c86d4654060d5481674ec419c3e4cc1a6e24c9b531f100c10ce14afca1b674 SHA512 c5dbcf5b795510abbe6c6dbea53ea6b9a438f0b2b8f7af28ae3ec9d8816d51c6ee22938bfe7d222d5b451065b57447064fba59e93a9621f1132e3d27ef8d385b WHIRLPOOL b9af8dc787c8aff8fe25336cd6a0b55955768f756a0a3f85c876627a7b181cb77f64f6dd43fdbd6f37883c0b6c31c6f44e2d7c7b1da22dc1d8a19c92649e88de
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch
new file mode 100644
index 000000000000..2daf211c7744
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-invisible-snapshots.patch
@@ -0,0 +1,39 @@
+From 1c50c992bafd96773dc3950d382a89806df8cc9c Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Wed, 9 Jan 2013 11:09:06 -0800
+Subject: [PATCH] Revert "Avoid ELOOP on auto-mounted snapshots"
+
+This reverts commit 7afcf5b1da83549bfba70a61fae7a00eaa63c2b0 which
+accidentally introduced a regression with the .zfs snapshot directory.
+While the updated code still does correctly mount the requested
+snapshot. It updates the vfsmount such that it references the
+original dataset vfsmount. The result is that the snapshot itself
+isn't visible.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Issue #816
+---
+ module/zfs/zpl_ctldir.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/module/zfs/zpl_ctldir.c b/module/zfs/zpl_ctldir.c
+index a2d8fa9..7dfaf6e 100644
+--- a/module/zfs/zpl_ctldir.c
++++ b/module/zfs/zpl_ctldir.c
+@@ -357,13 +357,6 @@
+ return ERR_PTR(error);
+
+ /*
+- * Ensure path->dentry points to the dentry for the root of the
+- * newly-mounted snapshot, otherwise this function may be called
+- * repeatedly which can lead to an incorrect ELOOP error return.
+- */
+- follow_up(path);
+-
+- /*
+ * Rather than returning the new vfsmount for the snapshot we must
+ * return NULL to indicate a mount collision. This is done because
+ * the user space mount calls do_add_mount() which adds the vfsmount
+--
+1.7.10
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch
new file mode 100644
index 000000000000..7d0263f31901
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-fix-recursive-reader.patch
@@ -0,0 +1,40 @@
+diff --git a/module/zfs/dsl_dataset.c b/module/zfs/dsl_dataset.c
+index 21fdd08..872d44a 100644
+--- a/module/zfs/dsl_dataset.c
++++ b/module/zfs/dsl_dataset.c
+@@ -20,7 +20,7 @@
+ */
+ /*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+- * Copyright (c) 2011 by Delphix. All rights reserved.
++ * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2012, Joyent, Inc. All rights reserved.
+ */
+
+@@ -4158,9 +4220,13 @@ struct dsl_ds_releasearg {
+ dsl_dataset_t *snap;
+ uint64_t used, comp, uncomp;
+
+- err = dsl_dataset_hold_obj(dp, snapobj, FTAG, &snap);
+- if (err != 0)
+- break;
++ if (snapobj == new->ds_object) {
++ snap = new;
++ } else {
++ err = dsl_dataset_hold_obj(dp, snapobj, FTAG, &snap);
++ if (err != 0)
++ break;
++ }
+
+ if (snap->ds_phys->ds_prev_snap_txg ==
+ oldsnap->ds_phys->ds_creation_txg) {
+@@ -4189,7 +4255,8 @@ struct dsl_ds_releasearg {
+ * was not a snapshot of/before new.
+ */
+ snapobj = snap->ds_phys->ds_prev_snap_obj;
+- dsl_dataset_rele(snap, FTAG);
++ if (snap != new)
++ dsl_dataset_rele(snap, FTAG);
+ if (snapobj == 0) {
+ err = EINVAL;
+ break;
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch
new file mode 100644
index 000000000000..9f31ecc82307
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc13-gcc-4.7-compat.patch
@@ -0,0 +1,51 @@
+From 37f000c5aa76613e644cf3e5b1ec7bd2df6f7451 Mon Sep 17 00:00:00 2001
+From: Ned Bass <bass6@llnl.gov>
+Date: Wed, 26 Dec 2012 14:56:41 -0800
+Subject: [PATCH] Fix gcc array subscript above bounds warning
+
+In a debug build, certain GCC versions flag an array bounds warning in
+the below code from dnode_sync.c
+
+ } else {
+ int i;
+ ASSERT(dn->dn_next_nblkptr[txgoff] < dnp->dn_nblkptr);
+ /* the blkptrs we are losing better be unallocated */
+ for (i = dn->dn_next_nblkptr[txgoff];
+ i < dnp->dn_nblkptr; i++)
+ ASSERT(BP_IS_HOLE(&dnp->dn_blkptr[i]));
+
+This usage is in fact safe, since the ASSERT ensures the index does
+not exceed to maximum possible number of block pointers. However gcc
+can't determine that the assignment 'i = dn->dn_next_nblkptr[txgoff];'
+falls within the array bounds so it issues a warning. To avoid this,
+initialize i to zero to make gcc happy but skip the elements before
+dn->dn_next_nblkptr[txgoff] in the loop body. Since a dnode contains
+at most 3 block pointers this overhead should be negligible.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #950
+---
+ module/zfs/dnode_sync.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/module/zfs/dnode_sync.c b/module/zfs/dnode_sync.c
+index af636dc..f2dda86 100644
+--- a/module/zfs/dnode_sync.c
++++ b/module/zfs/dnode_sync.c
+@@ -666,9 +666,10 @@
+ int i;
+ ASSERT(dn->dn_next_nblkptr[txgoff] < dnp->dn_nblkptr);
+ /* the blkptrs we are losing better be unallocated */
+- for (i = dn->dn_next_nblkptr[txgoff];
+- i < dnp->dn_nblkptr; i++)
+- ASSERT(BP_IS_HOLE(&dnp->dn_blkptr[i]));
++ for (i = 0; i < dnp->dn_nblkptr; i++) {
++ if (i >= dn->dn_next_nblkptr[txgoff])
++ ASSERT(BP_IS_HOLE(&dnp->dn_blkptr[i]));
++ }
+ #endif
+ }
+ mutex_enter(&dn->dn_mtx);
+--
+1.7.10
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch
new file mode 100644
index 000000000000..13189244c69a
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-cast-const-for-32bit-compatibility.patch
@@ -0,0 +1,36 @@
+From dd26aa535b395735ca61ea2a3e618aded45eb05e Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Mon, 4 Feb 2013 16:35:54 -0800
+Subject: [PATCH] Cast 'zfs bad bloc' to ULL for x86
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Explicitly case this value to an unsigned long long for 32-bit
+systems to inform the compiler that a long type should not be
+used. Otherwise we get the following compiler error:
+
+ dmu_send.c:376: error: integer constant is too large for
+ ‘long’ type
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+---
+ module/zfs/dmu_send.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/module/zfs/dmu_send.c b/module/zfs/dmu_send.c
+index 0cf3c4a..921c3d7 100644
+--- a/module/zfs/dmu_send.c
++++ b/module/zfs/dmu_send.c
+@@ -373,7 +373,7 @@
+ for (ptr = abuf->b_data;
+ (char *)ptr < (char *)abuf->b_data + blksz;
+ ptr++)
+- *ptr = 0x2f5baddb10c;
++ *ptr = 0x2f5baddb10cULL;
+ } else {
+ return (EIO);
+ }
+--
+1.7.10
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-flush-properly.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-flush-properly.patch
new file mode 100644
index 000000000000..fb4c7c35696c
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-flush-properly.patch
@@ -0,0 +1,42 @@
+diff --git a/config/kernel.m4 b/config/kernel.m4
+index 5623785..9d5aa46 100644
+--- a/config/kernel.m4
++++ b/config/kernel.m4
+@@ -16,7 +16,6 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
+ ZFS_AC_KERNEL_INVALIDATE_BDEV_ARGS
+ ZFS_AC_KERNEL_BDEV_LOGICAL_BLOCK_SIZE
+ ZFS_AC_KERNEL_BDEV_PHYSICAL_BLOCK_SIZE
+- ZFS_AC_KERNEL_BIO_EMPTY_BARRIER
+ ZFS_AC_KERNEL_BIO_FAILFAST
+ ZFS_AC_KERNEL_BIO_FAILFAST_DTD
+ ZFS_AC_KERNEL_REQ_FAILFAST_MASK
+diff --git a/module/zfs/vdev_disk.c b/module/zfs/vdev_disk.c
+index cbf0a4d..e902a70 100644
+--- a/module/zfs/vdev_disk.c
++++ b/module/zfs/vdev_disk.c
+@@ -604,8 +604,6 @@
+ return __vdev_disk_physio(bdev, NULL, kbuf, size, offset, flags);
+ }
+
+-/* 2.6.24 API change */
+-#ifdef HAVE_BIO_EMPTY_BARRIER
+ BIO_END_IO_PROTO(vdev_disk_io_flush_completion, bio, size, rc)
+ {
+ zio_t *zio = bio->bi_private;
+@@ -646,13 +644,6 @@
+
+ return 0;
+ }
+-#else
+-static int
+-vdev_disk_io_flush(struct block_device *bdev, zio_t *zio)
+-{
+- return ENOTSUP;
+-}
+-#endif /* HAVE_BIO_EMPTY_BARRIER */
+
+ static int
+ vdev_disk_io_start(zio_t *zio)
+--
+1.7.10
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch
new file mode 100644
index 000000000000..15d5af34d5c5
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-autotools-checks.patch
@@ -0,0 +1,105 @@
+From d75af3c0ebb4e31ece087aeecfeff282cb6f1361 Mon Sep 17 00:00:00 2001
+From: Etienne Dechamps <etienne@edechamps.fr>
+Date: Sun, 24 Feb 2013 12:42:28 +0000
+Subject: [PATCH] Use -Werror for all kernel configure tests.
+
+As a matter of fact, we're already using -Werror for most tests because
+of a bug in kernel-bio-empty-barrier.m4 which sets -Werror without
+reverting it afterwards. This meant that all tests which ran after this
+one was using -Werror.
+
+This patch simply makes it clear that we're using -Werror and makes
+the code more readable and more predictable.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1317
+---
+ config/kernel-bio-empty-barrier.m4 | 1 -
+ config/kernel-bio-end-io-t-args.m4 | 3 ---
+ config/kernel-security-inode-init.m4 | 6 ------
+ config/kernel.m4 | 2 +-
+ 4 files changed, 1 insertion(+), 11 deletions(-)
+
+diff --git a/config/kernel-bio-empty-barrier.m4 b/config/kernel-bio-empty-barrier.m4
+index 99549fe..fda16b3 100644
+--- a/config/kernel-bio-empty-barrier.m4
++++ b/config/kernel-bio-empty-barrier.m4
+@@ -4,7 +4,6 @@ dnl # Empty write barriers are now supported and we should use them.
+ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_BIO_EMPTY_BARRIER], [
+ AC_MSG_CHECKING([whether bio_empty_barrier() is defined])
+- EXTRA_KCFLAGS="-Werror"
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/bio.h>
+ ],[
+diff --git a/config/kernel-bio-end-io-t-args.m4 b/config/kernel-bio-end-io-t-args.m4
+index ced4861..44e4826 100644
+--- a/config/kernel-bio-end-io-t-args.m4
++++ b/config/kernel-bio-end-io-t-args.m4
+@@ -9,8 +9,6 @@ dnl # to void.
+ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [
+ AC_MSG_CHECKING([whether bio_end_io_t wants 2 args])
+- tmp_flags="$EXTRA_KCFLAGS"
+- EXTRA_KCFLAGS="-Werror"
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/bio.h>
+ ],[
+@@ -25,5 +23,4 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+- EXTRA_KCFLAGS="$tmp_flags"
+ ])
+diff --git a/config/kernel-security-inode-init.m4 b/config/kernel-security-inode-init.m4
+index c21588a..a62176d 100644
+--- a/config/kernel-security-inode-init.m4
++++ b/config/kernel-security-inode-init.m4
+@@ -7,8 +7,6 @@ dnl # security checks will just be skipped.
+ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY], [
+ AC_MSG_CHECKING([whether security_inode_init_security wants 6 args])
+- tmp_flags="$EXTRA_KCFLAGS"
+- EXTRA_KCFLAGS="-Werror"
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/security.h>
+ ],[
+@@ -27,7 +25,6 @@ AC_DEFUN([ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY], [
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+- EXTRA_KCFLAGS="$tmp_flags"
+ ])
+
+ dnl #
+@@ -39,8 +36,6 @@ dnl # and the EVM xattr.
+ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_CALLBACK_SECURITY_INODE_INIT_SECURITY], [
+ AC_MSG_CHECKING([whether security_inode_init_security wants callback])
+- tmp_flags="$EXTRA_KCFLAGS"
+- EXTRA_KCFLAGS="-Werror"
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/security.h>
+ ],[
+@@ -57,5 +52,4 @@ AC_DEFUN([ZFS_AC_KERNEL_CALLBACK_SECURITY_INODE_INIT_SECURITY], [
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+- EXTRA_KCFLAGS="$tmp_flags"
+ ])
+diff --git a/config/kernel.m4 b/config/kernel.m4
+index 6d28074..5623785 100644
+--- a/config/kernel.m4
++++ b/config/kernel.m4
+@@ -488,7 +488,7 @@ AC_DEFUN([ZFS_LINUX_COMPILE_IFELSE], [
+ modpost_flag=''
+ test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage
+ AS_IF(
+- [AC_TRY_COMMAND(cp conftest.c build && make [$2] -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag) >/dev/null && AC_TRY_COMMAND([$3])],
++ [AC_TRY_COMMAND(cp conftest.c build && make [$2] -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag) >/dev/null && AC_TRY_COMMAND([$3])],
+ [$4],
+ [_AC_MSG_LOG_CONFTEST m4_ifvaln([$5],[$5])]
+ )
+--
+1.7.10
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-hardened-support.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-hardened-support.patch
new file mode 100644
index 000000000000..03ee65ef9d4a
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-improved-hardened-support.patch
@@ -0,0 +1,473 @@
+From ead579050140bfa010d06f6e0fea3f680c781b38 Mon Sep 17 00:00:00 2001
+From: Richard Yao <ryao@cs.stonybrook.edu>
+Date: Thu, 14 Feb 2013 18:54:04 -0500
+Subject: [PATCH] Eliminate runtime function pointer modifications in
+ autotools checks
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+PaX/GrSecurity patched kernels implement a dialect of C that relies on a
+GCC plugin for enforcement. A basic idea in this dialect is that
+function pointers in structures should not change during runtime.
+This causes code that modifies function pointers at runtime to fail to
+compile in many instances. The autotools checks rely on whether or
+not small test cases compile against a given kernel. Some
+autotools checks assume some default case if other cases fail. When one
+of these autotools checks tests a PaX/GrSecurity patched kernel by
+modifying a function pointer at runtime, the default case will be used.
+
+Early detection of such situations is possible by relying on compiler
+warnings, which are compiler errors when --enable-debug is used.
+Unfortunately, very few people build ZFS with --enable-debug. The more
+common situation is that these issues manifest themselves as runtime
+failures in the form of NULL pointer exceptions.
+
+Previous patches that addressed such issues with PaX/GrSecurity
+compatibility largely relied on rewriting autotools checks to avoid
+runtime function pointer modification or the addition of PaX/GrSecurity
+specific checks. This patch takes the previous work to its logical
+conclusion by eliminating the use of runtime function pointer
+modification. This permits the removal of PaX-specific autotools checks
+in favor of ones that work across all supported kernels.
+
+This should resolve issues that were reported to occur with
+PaX/GrSecurity-patched Linux 3.7.5 kernels on Gentoo Linux.
+
+https://bugs.gentoo.org/show_bug.cgi?id=457176
+
+We should be able to prevent future regressions in PaX/GrSecurity
+compatibility by ensuring that all changes to ZFSOnLinux avoid runtime
+function pointer modification. At the same time, this does not solve the
+issue of silent failures triggering default cases in the autotools
+check, which is what permitted these regressions to become runtime
+failures in the first place. This will need to be addressed in a future
+patch.
+
+Reported-by: Marcin Mirosław <bug@mejor.pl>
+Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
+---
+ config/kernel-bdev-block-device-operations.m4 | 21 +++----
+ config/kernel-bio-end-io-t-args.m4 | 6 +-
+ config/kernel-create-nameidata.m4 | 12 ++--
+ config/kernel-dentry-operations.m4 | 6 +-
+ config/kernel-dirty-inode.m4 | 8 +--
+ config/kernel-fallocate.m4 | 37 +++--------
+ config/kernel-fsync.m4 | 84 ++++---------------------
+ config/kernel-lookup-nameidata.m4 | 9 +--
+ config/kernel-mkdir-umode-t.m4 | 7 ++-
+ config/kernel-shrink.m4 | 21 +++----
+ 10 files changed, 62 insertions(+), 149 deletions(-)
+
+diff --git a/config/kernel-bdev-block-device-operations.m4 b/config/kernel-bdev-block-device-operations.m4
+index 28c3032..1674af0 100644
+--- a/config/kernel-bdev-block-device-operations.m4
++++ b/config/kernel-bdev-block-device-operations.m4
+@@ -7,24 +7,21 @@ AC_DEFUN([ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS], [
+ EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}"
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/blkdev.h>
+- ],[
+- int (*blk_open) (struct block_device *, fmode_t) = NULL;
+- int (*blk_release) (struct gendisk *, fmode_t) = NULL;
+- int (*blk_ioctl) (struct block_device *, fmode_t,
+- unsigned, unsigned long) = NULL;
+- int (*blk_compat_ioctl) (struct block_device *, fmode_t,
+- unsigned, unsigned long) = NULL;
+- struct block_device_operations blk_ops = {
++
++ int blk_open (struct block_device *bdev, fmode_t mode) { return 0; }
++ int blk_release (struct gendisk *g, fmode_t mode) { return 0; }
++ int blk_ioctl (struct block_device *bdev, fmode_t mode,
++ unsigned x, unsigned long y) { return 0; }
++ int blk_compat_ioctl (struct block_device * bdev, fmode_t mode,
++ unsigned x, unsigned long y) { return 0; }
++ static struct block_device_operations blk_ops __attribute__ ((unused)) = {
+ .open = blk_open,
+ .release = blk_release,
+ .ioctl = blk_ioctl,
+ .compat_ioctl = blk_compat_ioctl,
+ };
++ ],[
+
+- blk_ops.open(NULL, 0);
+- blk_ops.release(NULL, 0);
+- blk_ops.ioctl(NULL, 0, 0, 0);
+- blk_ops.compat_ioctl(NULL, 0, 0, 0);
+ ],[
+ AC_MSG_RESULT(struct block_device)
+ AC_DEFINE(HAVE_BDEV_BLOCK_DEVICE_OPERATIONS, 1,
+diff --git a/config/kernel-bio-end-io-t-args.m4 b/config/kernel-bio-end-io-t-args.m4
+index ced4861..fe5707a 100644
+--- a/config/kernel-bio-end-io-t-args.m4
++++ b/config/kernel-bio-end-io-t-args.m4
+@@ -13,11 +13,9 @@ AC_DEFUN([ZFS_AC_KERNEL_BIO_END_IO_T_ARGS], [
+ EXTRA_KCFLAGS="-Werror"
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/bio.h>
++ void wanted_end_io(struct bio * bio, int x) { return; }
+ ],[
+- void (*wanted_end_io)(struct bio *, int) = NULL;
+- bio_end_io_t *local_end_io __attribute__ ((unused));
+-
+- local_end_io = wanted_end_io;
++ bio_end_io_t *local_end_io __attribute__ ((unused)) = wanted_end_io;
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_2ARGS_BIO_END_IO_T, 1,
+diff --git a/config/kernel-create-nameidata.m4 b/config/kernel-create-nameidata.m4
+index 100f077..c779715 100644
+--- a/config/kernel-create-nameidata.m4
++++ b/config/kernel-create-nameidata.m4
+@@ -5,18 +5,18 @@ AC_DEFUN([ZFS_AC_KERNEL_CREATE_NAMEIDATA], [
+ AC_MSG_CHECKING([whether iops->create() takes struct nameidata])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+ #ifdef HAVE_MKDIR_UMODE_T
+- int (*inode_create) (struct inode *,struct dentry *,
+- umode_t, struct nameidata *) = NULL;
++ int inode_create (struct inode *inode ,struct dentry *dentry,
++ umode_t umode, struct nameidata *nidata) { return 0; }
+ #else
+- int (*inode_create) (struct inode *,struct dentry *,
+- int, struct nameidata *) = NULL;
++ int inode_create (struct inode *inode,struct dentry *dentry,
++ int umode, struct nameidata * nidata) { return 0; }
+ #endif
+- struct inode_operations iops __attribute__ ((unused)) = {
++ static struct inode_operations iops __attribute__ ((unused)) = {
+ .create = inode_create,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_CREATE_NAMEIDATA, 1,
+ [iops->create() operation takes nameidata])
+diff --git a/config/kernel-dentry-operations.m4 b/config/kernel-dentry-operations.m4
+index dfbea7d..b89c51d 100644
+--- a/config/kernel-dentry-operations.m4
++++ b/config/kernel-dentry-operations.m4
+@@ -5,12 +5,12 @@ AC_DEFUN([ZFS_AC_KERNEL_D_REVALIDATE_NAMEIDATA], [
+ AC_MSG_CHECKING([whether dops->d_revalidate() takes struct nameidata])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/dcache.h>
+- ],[
+- int (*revalidate) (struct dentry *, struct nameidata *) = NULL;
+- struct dentry_operations dops __attribute__ ((unused)) = {
++ int revalidate (struct dentry *dentry, struct nameidata *nidata) { return 0; }
++ static struct dentry_operations dops __attribute__ ((unused)) = {
+ .d_revalidate = revalidate,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_D_REVALIDATE_NAMEIDATA, 1,
+ [dops->d_revalidate() operation takes nameidata])
+diff --git a/config/kernel-dirty-inode.m4 b/config/kernel-dirty-inode.m4
+index 2ededf1..86e3425 100644
+--- a/config/kernel-dirty-inode.m4
++++ b/config/kernel-dirty-inode.m4
+@@ -8,11 +8,11 @@ AC_DEFUN([ZFS_AC_KERNEL_DIRTY_INODE_WITH_FLAGS], [
+ AC_MSG_CHECKING([whether sops->dirty_inode() wants flags])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
++ void dirty_inode (struct inode * a, int b) { return; }
++ static struct super_operations sops __attribute__ ((unused)) = {
++ .dirty_inode = dirty_inode,
++ };
+ ],[
+- void (*dirty_inode) (struct inode *, int) = NULL;
+- struct super_operations sops __attribute__ ((unused));
+-
+- sops.dirty_inode = dirty_inode;
+ ],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_DIRTY_INODE_WITH_FLAGS, 1,
+diff --git a/config/kernel-fallocate.m4 b/config/kernel-fallocate.m4
+index 6ac5ae6..0041ef2 100644
+--- a/config/kernel-fallocate.m4
++++ b/config/kernel-fallocate.m4
+@@ -5,12 +5,12 @@ AC_DEFUN([ZFS_AC_KERNEL_FILE_FALLOCATE], [
+ AC_MSG_CHECKING([whether fops->fallocate() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+- long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
+- struct file_operations fops __attribute__ ((unused)) = {
+- .fallocate = fallocate,
++ long test_fallocate(struct file *file, int mode, loff_t offset, loff_t len) { return 0; }
++ static const struct file_operations fops __attribute__ ((unused)) = {
++ .fallocate = test_fallocate,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists])
+ ],[
+@@ -25,34 +25,14 @@ AC_DEFUN([ZFS_AC_KERNEL_INODE_FALLOCATE], [
+ AC_MSG_CHECKING([whether iops->fallocate() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+- long (*fallocate) (struct inode *, int, loff_t, loff_t) = NULL;
+- struct inode_operations fops __attribute__ ((unused)) = {
+- .fallocate = fallocate,
++ long test_fallocate (struct inode *inode, int mode, loff_t offset, loff_t len) { return 0; }
++ static const struct inode_operations fops __attribute__ ((unused)) = {
++ .fallocate = test_fallocate,
+ };
+ ],[
+- AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_INODE_FALLOCATE, 1, [fops->fallocate() exists])
+- ],[
+- AC_MSG_RESULT(no)
+- ])
+-])
+-
+-dnl #
+-dnl # PaX Linux 2.6.38 - 3.x API
+-dnl #
+-AC_DEFUN([ZFS_AC_PAX_KERNEL_FILE_FALLOCATE], [
+- AC_MSG_CHECKING([whether fops->fallocate() exists])
+- ZFS_LINUX_TRY_COMPILE([
+- #include <linux/fs.h>
+- ],[
+- long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
+- struct file_operations_no_const fops __attribute__ ((unused)) = {
+- .fallocate = fallocate,
+- };
+ ],[
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists])
++ AC_DEFINE(HAVE_INODE_FALLOCATE, 1, [fops->fallocate() exists])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+@@ -65,5 +45,4 @@ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_FALLOCATE], [
+ ZFS_AC_KERNEL_FILE_FALLOCATE
+ ZFS_AC_KERNEL_INODE_FALLOCATE
+- ZFS_AC_PAX_KERNEL_FILE_FALLOCATE
+ ])
+diff --git a/config/kernel-fsync.m4 b/config/kernel-fsync.m4
+index ca00d93..9ac0c79 100644
+--- a/config/kernel-fsync.m4
++++ b/config/kernel-fsync.m4
+@@ -4,11 +4,11 @@ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITH_DENTRY], [
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
++ int test_fsync (struct file *f, struct dentry *dentry, int x) { return 0; }
++ static const struct file_operations fops __attribute__ ((unused)) = {
++ .fsync = test_fsync,
++ };
+ ],[
+- int (*fsync) (struct file *, struct dentry *, int) = NULL;
+- struct file_operations fops __attribute__ ((unused));
+-
+- fops.fsync = fsync;
+ ],[
+ AC_MSG_RESULT([dentry])
+ AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1,
+@@ -23,11 +23,11 @@ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY], [
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
++ int test_fsync (struct file *f, int x) { return 0; }
++ static const struct file_operations fops __attribute__ ((unused)) = {
++ .fsync = test_fsync,
++ };
+ ],[
+- int (*fsync) (struct file *, int) = NULL;
+- struct file_operations fops __attribute__ ((unused));
+-
+- fops.fsync = fsync;
+ ],[
+ AC_MSG_RESULT([no dentry])
+ AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1,
+@@ -42,68 +42,11 @@ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_FSYNC_RANGE], [
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
++ int test_fsync (struct file *f, loff_t a, loff_t b, int c) { return 0; }
++ static const struct file_operations fops __attribute__ ((unused)) = {
++ .fsync = test_fsync,
++ };
+ ],[
+- int (*fsync) (struct file *, loff_t, loff_t, int) = NULL;
+- struct file_operations fops __attribute__ ((unused));
+-
+- fops.fsync = fsync;
+- ],[
+- AC_MSG_RESULT([range])
+- AC_DEFINE(HAVE_FSYNC_RANGE, 1,
+- [fops->fsync() with range])
+- ],[
+- ])
+-])
+-
+-dnl #
+-dnl # PaX Linux 2.6.x - 2.6.34 API
+-dnl #
+-AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY], [
+- ZFS_LINUX_TRY_COMPILE([
+- #include <linux/fs.h>
+- ],[
+- int (*fsync) (struct file *, struct dentry *, int) = NULL;
+- file_operations_no_const fops __attribute__ ((unused));
+-
+- fops.fsync = fsync;
+- ],[
+- AC_MSG_RESULT([dentry])
+- AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1,
+- [fops->fsync() with dentry])
+- ],[
+- ])
+-])
+-
+-dnl #
+-dnl # PaX Linux 2.6.35 - Linux 3.0 API
+-dnl #
+-AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY], [
+- ZFS_LINUX_TRY_COMPILE([
+- #include <linux/fs.h>
+- ],[
+- int (*fsync) (struct file *, int) = NULL;
+- file_operations_no_const fops __attribute__ ((unused));
+-
+- fops.fsync = fsync;
+- ],[
+- AC_MSG_RESULT([no dentry])
+- AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1,
+- [fops->fsync() without dentry])
+- ],[
+- ])
+-])
+-
+-dnl #
+-dnl # PaX Linux 3.1 - 3.x API
+-dnl #
+-AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_RANGE], [
+- ZFS_LINUX_TRY_COMPILE([
+- #include <linux/fs.h>
+- ],[
+- int (*fsync) (struct file *, loff_t, loff_t, int) = NULL;
+- file_operations_no_const fops __attribute__ ((unused));
+-
+- fops.fsync = fsync;
+ ],[
+ AC_MSG_RESULT([range])
+ AC_DEFINE(HAVE_FSYNC_RANGE, 1,
+@@ -117,7 +60,4 @@ AC_DEFUN([ZFS_AC_KERNEL_FSYNC], [
+ ZFS_AC_KERNEL_FSYNC_WITH_DENTRY
+ ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY
+ ZFS_AC_KERNEL_FSYNC_RANGE
+- ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY
+- ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY
+- ZFS_AC_PAX_KERNEL_FSYNC_RANGE
+ ])
+diff --git a/config/kernel-lookup-nameidata.m4 b/config/kernel-lookup-nameidata.m4
+index 5e30be4..20b8cca 100644
+--- a/config/kernel-lookup-nameidata.m4
++++ b/config/kernel-lookup-nameidata.m4
+@@ -5,13 +5,14 @@ AC_DEFUN([ZFS_AC_KERNEL_LOOKUP_NAMEIDATA], [
+ AC_MSG_CHECKING([whether iops->lookup() takes struct nameidata])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+- struct dentry * (*inode_lookup) (struct inode *,struct dentry *,
+- struct nameidata *) = NULL;
+- struct inode_operations iops __attribute__ ((unused)) = {
++ struct dentry * inode_lookup (struct inode * inode,
++ struct dentry * dentry, struct nameidata * nidata)
++ { return NULL; }
++ static struct inode_operations iops __attribute__ ((unused)) = {
+ .lookup = inode_lookup,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_LOOKUP_NAMEIDATA, 1,
+ [iops->lookup() operation takes nameidata])
+diff --git a/config/kernel-mkdir-umode-t.m4 b/config/kernel-mkdir-umode-t.m4
+index dd5d94b..ce8aa8f 100644
+--- a/config/kernel-mkdir-umode-t.m4
++++ b/config/kernel-mkdir-umode-t.m4
+@@ -10,12 +10,13 @@ AC_DEFUN([ZFS_AC_KERNEL_MKDIR_UMODE_T], [
+ AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+- int (*mkdir) (struct inode *,struct dentry *,umode_t) = NULL;
+- struct inode_operations iops __attribute__ ((unused)) = {
++ int mkdir (struct inode * inode, struct dentry * dentry, umode_t umode)
++ { return 0; }
++ static struct inode_operations iops __attribute__ ((unused)) = {
+ .mkdir = mkdir,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_MKDIR_UMODE_T, 1,
+ [iops->create()/mkdir()/mknod() take umode_t])
+diff --git a/config/kernel-shrink.m4 b/config/kernel-shrink.m4
+index ea748c9..ce4b965 100644
+--- a/config/kernel-shrink.m4
++++ b/config/kernel-shrink.m4
+@@ -8,15 +8,14 @@ AC_DEFUN([ZFS_AC_KERNEL_SHRINK], [
+ AC_MSG_CHECKING([whether super_block has s_shrink])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+- int (*shrink)(struct shrinker *, struct shrink_control *sc)
+- __attribute__ ((unused)) = NULL;
+- struct super_block sb __attribute__ ((unused)) = {
++ int shrink(struct shrinker * s, struct shrink_control *sc) { return 0; }
++ static struct super_block sb __attribute__ ((unused)) = {
+ .s_shrink.shrink = shrink,
+ .s_shrink.seeks = DEFAULT_SEEKS,
+ .s_shrink.batch = 0,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_SHRINK, 1, [struct super_block has s_shrink])
+
+@@ -29,13 +28,12 @@ AC_DEFUN([ZFS_AC_KERNEL_NR_CACHED_OBJECTS], [
+ AC_MSG_CHECKING([whether sops->nr_cached_objects() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+- int (*nr_cached_objects)(struct super_block *)
+- __attribute__ ((unused)) = NULL;
+- struct super_operations sops __attribute__ ((unused)) = {
++ int nr_cached_objects(struct super_block * sb) { return 0; }
++ static struct super_operations sops __attribute__ ((unused)) = {
+ .nr_cached_objects = nr_cached_objects,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_NR_CACHED_OBJECTS, 1,
+ [sops->nr_cached_objects() exists])
+@@ -48,13 +46,12 @@ AC_DEFUN([ZFS_AC_KERNEL_FREE_CACHED_OBJECTS], [
+ AC_MSG_CHECKING([whether sops->free_cached_objects() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+- ],[
+- void (*free_cached_objects)(struct super_block *, int)
+- __attribute__ ((unused)) = NULL;
+- struct super_operations sops __attribute__ ((unused)) = {
++ void free_cached_objects(struct super_block * sb, int x) { return; }
++ static struct super_operations sops __attribute__ ((unused)) = {
+ .free_cached_objects = free_cached_objects,
+ };
+ ],[
++ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_FREE_CACHED_OBJECTS, 1,
+ [sops->free_cached_objects() exists])
+--
+1.7.10
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch
new file mode 100644
index 000000000000..1dfef6117f1a
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-linux-3.9-compat.patch
@@ -0,0 +1,32 @@
+commit 3d8c9c9de0a5e1f1b496fcef2750a01a45860b04
+Author: Richard Yao <ryao@cs.stonybrook.edu>
+Date: Mon Mar 4 15:52:11 2013 -0500
+
+ Linux 3.9 compat: Undefine GCC_VERSION
+
+ The mainline kernel started defining GCC_VERSION with commit
+ torvalds/linux@3f3f8d2f48acfd8ed3b8e6b7377935da57b27b16. Unfortunately,
+ LZ4 also defines this macro, but the two defintions are incompatible. We
+ undefine GCC_VERSION in lz4.c to handle this.
+
+ Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
+
+diff --git a/module/zfs/lz4.c b/module/zfs/lz4.c
+index b9850c0..8afaad1 100644
+--- a/module/zfs/lz4.c
++++ b/module/zfs/lz4.c
+@@ -243,6 +243,14 @@ lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n)
+ /* Disable restrict */
+ #define restrict
+
++/*
++ * Linux : GCC_VERSION is defined as of 3.9-rc1, so undefine it.
++ * torvalds/linux@3f3f8d2f48acfd8ed3b8e6b7377935da57b27b16
++ */
++#ifdef GCC_VERSION
++#undef GCC_VERSION
++#endif
++
+ #define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
+
+ #if (GCC_VERSION >= 302) || (__INTEL_COMPILER >= 800) || defined(__clang__) \ No newline at end of file
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch
new file mode 100644
index 000000000000..5f9f6525e73c
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-vfs-name-length-compatibility.patch
@@ -0,0 +1,36 @@
+From 7f235381a0e501df55ebe2de10b69124e928d175 Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Mon, 11 Feb 2013 12:55:24 -0800
+Subject: [PATCH] Add explicit MAXNAMELEN check
+
+It turns out that the Linux VFS doesn't strictly handle all cases
+where a component path name exceeds MAXNAMELEN. It does however
+appear to correctly handle MAXPATHLEN for us.
+
+The right way to handle this appears to be to add an explicit
+check to the zpl_lookup() function. Several in-tree filesystems
+handle this case the same way.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Issue #1279
+---
+ module/zfs/zpl_inode.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c
+index e406288..8c8ec24 100644
+--- a/module/zfs/zpl_inode.c
++++ b/module/zfs/zpl_inode.c
+@@ -41,6 +41,9 @@
+ struct inode *ip;
+ int error;
+
++ if (dlen(dentry) > ZFS_MAXNAMELEN)
++ return ERR_PTR(-ENAMETOOLONG);
++
+ crhold(cr);
+ error = -zfs_lookup(dir, dname(dentry), &ip, 0, cr, NULL, NULL);
+ ASSERT3S(error, <=, 0);
+--
+1.7.10
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch
new file mode 100644
index 000000000000..81ec15f3e6c7
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.0_rc14-zfs_arc_memory_throttle_disable.patch
@@ -0,0 +1,41 @@
+From 546c978bbd3f132a88609cab15ec0e954eaa62b8 Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Thu, 21 Feb 2013 12:14:44 -0800
+Subject: [PATCH] Enable zfs_arc_memory_throttle_disable by default
+
+The zfs_arc_memory_throttle_disable module option was introduced
+by commit 0c5493d47059f25ce9dbf20c9fe87655f55102a1 to resolve a
+memory miscalculation which could result in the txg_sync thread
+spinning.
+
+When this was first introduced the default behavior was left
+unchanged until enough real world usage confirmed there were no
+unexpected issues. We've now reached that point. Linux's
+direct reclaim is working as expected so we're enabling this
+behavior by default.
+
+This helps pave the way to retire the spl_kmem_availrmem()
+functionality in the SPL layer. This was the only caller.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Issue #938
+---
+ module/zfs/arc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/module/zfs/arc.c b/module/zfs/arc.c
+index 09924db..b7499ee 100644
+--- a/module/zfs/arc.c
++++ b/module/zfs/arc.c
+@@ -189,7 +189,7 @@
+ int zfs_arc_grow_retry = 0;
+ int zfs_arc_shrink_shift = 0;
+ int zfs_arc_p_min_shift = 0;
+-int zfs_arc_memory_throttle_disable = 0;
++int zfs_arc_memory_throttle_disable = 1;
+ int zfs_disable_dup_eviction = 0;
+ int zfs_arc_meta_prune = 0;
+
+--
+1.8.1.5
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-arc-read-panic.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-arc-read-panic.patch
new file mode 100644
index 000000000000..00ec1057efa1
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-arc-read-panic.patch
@@ -0,0 +1,42 @@
+From 3db3ff4a787acf068b122562fb5be5aecec2611f Mon Sep 17 00:00:00 2001
+From: Richard Yao <ryao@gentoo.org>
+Date: Tue, 2 Jul 2013 00:07:15 -0400
+Subject: [PATCH] Use MAXPATHLEN instead of sizeof in snprintf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This silences a GCC 4.8.0 warning by fixing a programming error
+caught by static analysis:
+
+../../cmd/ztest/ztest.c: In function ‘ztest_vdev_aux_add_remove’:
+../../cmd/ztest/ztest.c:2584:33: error: argument to ‘sizeof’
+ in ‘snprintf’ call is the same expression as the destination;
+ did you mean to provide an explicit length?
+ [-Werror=sizeof-pointer-memaccess]
+ (void) snprintf(path, sizeof (path), ztest_aux_template,
+ ^
+
+Signed-off-by: Richard Yao <ryao@gentoo.org>
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1480
+---
+ cmd/ztest/ztest.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmd/ztest/ztest.c b/cmd/ztest/ztest.c
+index b38d7b1..93a5f1e 100644
+--- a/cmd/ztest/ztest.c
++++ b/cmd/ztest/ztest.c
+@@ -2581,7 +2581,7 @@ enum ztest_object {
+ zs->zs_vdev_aux = 0;
+ for (;;) {
+ int c;
+- (void) snprintf(path, sizeof (path), ztest_aux_template,
++ (void) snprintf(path, MAXPATHLEN, ztest_aux_template,
+ ztest_opts.zo_dir, ztest_opts.zo_pool, aux,
+ zs->zs_vdev_aux);
+ for (c = 0; c < sav->sav_count; c++)
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-getdents.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-getdents.patch
new file mode 100644
index 000000000000..ce7d5c0494d9
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-getdents.patch
@@ -0,0 +1,32 @@
+From 8f1e11b6105bf46a4258958eb3dcae2ab21ed8b2 Mon Sep 17 00:00:00 2001
+From: Caleb James DeLisle <calebdelisle@lavabit.com>
+Date: Tue, 16 Apr 2013 05:23:39 -0400
+Subject: [PATCH] Remove .readdir from zpl_file_operations table
+
+The zpl_readdir() function shouldn't be registered as part of
+the zpl_file_operations table, it must only be part of the
+zpl_dir_file_operations table. By removing this callback
+the VFS will now correctly return ENOTDIR when calling
+getdents() on a file.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1404
+---
+ module/zfs/zpl_file.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/module/zfs/zpl_file.c b/module/zfs/zpl_file.c
+index 9c27b7f..db6a72c 100644
+--- a/module/zfs/zpl_file.c
++++ b/module/zfs/zpl_file.c
+@@ -446,7 +446,6 @@
+ .llseek = generic_file_llseek,
+ .read = zpl_read,
+ .write = zpl_write,
+- .readdir = zpl_readdir,
+ .mmap = zpl_mmap,
+ .fsync = zpl_fsync,
+ #ifdef HAVE_FILE_FALLOCATE
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch
new file mode 100644
index 000000000000..8513e78882b1
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-txg_quiesce-deadlock.patch
@@ -0,0 +1,73 @@
+From 57f5a2008e2e6acf58934cf43c5fdca0faffa73e Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Thu, 25 Apr 2013 16:29:22 -0700
+Subject: [PATCH] Fix txg_quiesce thread deadlock
+
+A deadlock was accidentally introduced by commit e95853a which
+can occur when the system is under memory pressure. What happens
+is that while the txg_quiesce thread is holding the tx->tx_cpu
+locks it enters memory reclaim. In the context of this memory
+reclaim it then issues synchronous I/O to a ZVOL swap device.
+Because the txg_quiesce thread is holding the tx->tx_cpu locks
+a new txg cannot be opened to handle the I/O. Deadlock.
+
+The fix is straight forward. Move the memory allocation outside
+the critical region where the tx->tx_cpu locks are held. And for
+good measure change the offending allocation to KM_PUSHPAGE to
+ensure it never attempts to issue I/O during reclaim.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Issue #1274
+---
+ module/zfs/dsl_pool.c | 2 +-
+ module/zfs/txg.c | 14 +++++++-------
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/module/zfs/dsl_pool.c b/module/zfs/dsl_pool.c
+index 704f034..771b265 100644
+--- a/module/zfs/dsl_pool.c
++++ b/module/zfs/dsl_pool.c
+@@ -143,7 +143,7 @@
+ {
+ txg_history_t *th, *rm;
+
+- th = kmem_zalloc(sizeof(txg_history_t), KM_SLEEP);
++ th = kmem_zalloc(sizeof(txg_history_t), KM_PUSHPAGE);
+ mutex_init(&th->th_lock, NULL, MUTEX_DEFAULT, NULL);
+ th->th_kstat.txg = txg;
+ th->th_kstat.state = TXG_STATE_OPEN;
+diff --git a/module/zfs/txg.c b/module/zfs/txg.c
+index c7c3df3..7c820af 100644
+--- a/module/zfs/txg.c
++++ b/module/zfs/txg.c
+@@ -367,6 +367,13 @@
+ tx->tx_open_txg++;
+
+ /*
++ * Now that we've incremented tx_open_txg, we can let threads
++ * enter the next transaction group.
++ */
++ for (c = 0; c < max_ncpus; c++)
++ mutex_exit(&tx->tx_cpu[c].tc_lock);
++
++ /*
+ * Measure how long the txg was open and replace the kstat.
+ */
+ th = dsl_pool_txg_history_get(dp, txg);
+@@ -376,13 +383,6 @@
+ dsl_pool_txg_history_add(dp, tx->tx_open_txg);
+
+ /*
+- * Now that we've incremented tx_open_txg, we can let threads
+- * enter the next transaction group.
+- */
+- for (c = 0; c < max_ncpus; c++)
+- mutex_exit(&tx->tx_cpu[c].tc_lock);
+-
+- /*
+ * Quiesce the transaction group by waiting for everyone to txg_exit().
+ */
+ start = gethrtime();
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-1.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-1.patch
new file mode 100644
index 000000000000..b4801708ae35
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-1.patch
@@ -0,0 +1,50 @@
+From f706421173c571371afff5e2a2ee0784c5e3f95d Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Wed, 17 Apr 2013 13:07:36 -0700
+Subject: [PATCH] Correctly return ERANGE in getxattr(2)
+
+According to the getxattr(2) man page the ERANGE errno should be
+returned when the size of the value buffer is to small to hold the
+result. Prior to this patch the implementation would just truncate
+the value to size bytes.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1408
+---
+ module/zfs/zpl_xattr.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/module/zfs/zpl_xattr.c b/module/zfs/zpl_xattr.c
+index c03764f..a7e38e6 100644
+--- a/module/zfs/zpl_xattr.c
++++ b/module/zfs/zpl_xattr.c
+@@ -225,6 +225,11 @@
+ goto out;
+ }
+
++ if (size < i_size_read(xip)) {
++ error = -ERANGE;
++ goto out;
++ }
++
+ error = zpl_read_common(xip, value, size, 0, UIO_SYSSPACE, 0, cr);
+ out:
+ if (xip)
+@@ -263,9 +268,12 @@
+ if (!size)
+ return (nv_size);
+
+- memcpy(value, nv_value, MIN(size, nv_size));
++ if (size < nv_size)
++ return (-ERANGE);
++
++ memcpy(value, nv_value, nv_size);
+
+- return (MIN(size, nv_size));
++ return (nv_size);
+ }
+
+ static int
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-2.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-2.patch
new file mode 100644
index 000000000000..bb4b1c4a3a34
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-xattr-behavior-2.patch
@@ -0,0 +1,37 @@
+From 0377189b884fab7db02a95088e05712c7cf336f7 Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Wed, 8 May 2013 09:20:04 -0700
+Subject: [PATCH] Only check directory xattr on ENOENT
+
+When SA xattrs are enabled only fallback to checking the directory
+xattrs when the name is not found as a SA xattr. Otherwise, the SA
+error which should be returned to the caller is overwritten by the
+directory xattr errors. Positive return values indicating success
+will also be immediately returned.
+
+In the case of #1437 the ERANGE error was being correctly returned
+by zpl_xattr_get_sa() only to be overridden with ENOENT which was
+returned by the subsequent unnessisary call to zpl_xattr_get_dir().
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1437
+---
+ module/zfs/zpl_xattr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/module/zfs/zpl_xattr.c b/module/zfs/zpl_xattr.c
+index a7e38e6..eb2c00d 100644
+--- a/module/zfs/zpl_xattr.c
++++ b/module/zfs/zpl_xattr.c
+@@ -288,7 +288,7 @@
+
+ if (zsb->z_use_sa && zp->z_is_sa) {
+ error = zpl_xattr_get_sa(ip, name, value, size);
+- if (error >= 0)
++ if (error != -ENOENT)
+ goto out;
+ }
+
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch
new file mode 100644
index 000000000000..e59c869eed04
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch
@@ -0,0 +1,58 @@
+From ab68b6e5db29abcd20c0c7b12a8c2fa570031c8b Mon Sep 17 00:00:00 2001
+From: Tim Chase <tim@chase2k.com>
+Date: Mon, 24 Jun 2013 22:03:56 -0500
+Subject: [PATCH] Fix zfs_sb_teardown/zfs_resume_fs NULL dereference
+
+Fix a pair of conditions in which a concurrent umount can cause
+NULL pointer dereferences:
+
+* zfs_sb_teardown - prevent a NULL dereference by not calling
+ dmu_objset_pool with a null z_os.
+
+* zfs_resume_fs - don't try to unmount with a null z_os. This
+ change makes the ZoL code more consistent
+ with both Illumos and FreeBSD.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1543
+---
+ module/zfs/zfs_vfsops.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c
+index e618f2b..602c332 100644
+--- a/module/zfs/zfs_vfsops.c
++++ b/module/zfs/zfs_vfsops.c
+@@ -1056,10 +1056,12 @@
+ }
+
+ /*
+- * Drain the iput_taskq to ensure all active references to the
++ * If someone has not already unmounted this file system,
++ * drain the iput_taskq to ensure all active references to the
+ * zfs_sb_t have been handled only then can it be safely destroyed.
+ */
+- taskq_wait(dsl_pool_iput_taskq(dmu_objset_pool(zsb->z_os)));
++ if (zsb->z_os)
++ taskq_wait(dsl_pool_iput_taskq(dmu_objset_pool(zsb->z_os)));
+
+ /*
+ * Close the zil. NB: Can't close the zil while zfs_inactive
+@@ -1480,10 +1482,11 @@
+
+ if (err) {
+ /*
+- * Since we couldn't reopen zfs_sb_t, force
+- * unmount this file system.
++ * Since we couldn't reopen zfs_sb_t or, setup the
++ * sa framework, force unmount this file system.
+ */
+- (void) zfs_umount(zsb->z_sb);
++ if (zsb->z_os)
++ (void) zfs_umount(zsb->z_sb);
+ }
+ return (err);
+ }
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch
new file mode 100644
index 000000000000..7cca7d1137c8
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch
@@ -0,0 +1,73 @@
+From 76351672c222f28ea1b681097a9eff58a6791555 Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1@llnl.gov>
+Date: Thu, 11 Jul 2013 14:11:32 -0700
+Subject: [PATCH] Fix zfsctl_expire_snapshot() deadlock
+
+It is possible for an automounted snapshot which is expiring to
+deadlock with a manual unmount of the snapshot. This can occur
+because taskq_cancel_id() will block if the task is currently
+executing until it completes. But it will never complete because
+zfsctl_unmount_snapshot() is holding the zsb->z_ctldir_lock which
+zfsctl_expire_snapshot() must acquire.
+
+---------------------- z_unmount/0:2153 ---------------------
+ mutex_lock <blocking on zsb->z_ctldir_lock>
+ zfsctl_unmount_snapshot
+ zfsctl_expire_snapshot
+ taskq_thread
+
+------------------------- zfs:10690 -------------------------
+ taskq_wait_id <waiting for z_unmount to exit>
+ taskq_cancel_id
+ __zfsctl_unmount_snapshot
+ zfsctl_unmount_snapshot <takes zsb->z_ctldir_lock>
+ zfs_unmount_snap
+ zfs_ioc_destroy_snaps_nvl
+ zfsdev_ioctl
+ do_vfs_ioctl
+
+We resolve the deadlock by dropping the zsb->z_ctldir_lock before
+calling __zfsctl_unmount_snapshot(). The lock is only there to
+prevent concurrent modification to the zsb->z_ctldir_snaps AVL
+tree. Moreover, we're careful to remove the zfs_snapentry_t from
+the AVL tree before dropping the lock which ensures no other tasks
+can find it. On failure it's added back to the tree.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Signed-off-by: Chris Dunlap <cdunlap@llnl.gov>
+Closes #1527
+---
+ module/zfs/zfs_ctldir.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c
+index 4fa530b..168f853 100644
+--- a/module/zfs/zfs_ctldir.c
++++ b/module/zfs/zfs_ctldir.c
+@@ -732,7 +732,11 @@ struct inode *
+ sep = avl_find(&zsb->z_ctldir_snaps, &search, NULL);
+ if (sep) {
+ avl_remove(&zsb->z_ctldir_snaps, sep);
++ mutex_exit(&zsb->z_ctldir_lock);
++
+ error = __zfsctl_unmount_snapshot(sep, flags);
++
++ mutex_enter(&zsb->z_ctldir_lock);
+ if (error == EBUSY)
+ avl_add(&zsb->z_ctldir_snaps, sep);
+ else
+@@ -767,7 +771,11 @@ struct inode *
+ while (sep != NULL) {
+ next = AVL_NEXT(&zsb->z_ctldir_snaps, sep);
+ avl_remove(&zsb->z_ctldir_snaps, sep);
++ mutex_exit(&zsb->z_ctldir_lock);
++
+ error = __zfsctl_unmount_snapshot(sep, flags);
++
++ mutex_enter(&zsb->z_ctldir_lock);
+ if (error == EBUSY) {
+ avl_add(&zsb->z_ctldir_snaps, sep);
+ (*count)++;
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch
new file mode 100644
index 000000000000..b1e7d3736db0
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-fix-zvol-initialization-r1.patch
@@ -0,0 +1,167 @@
+diff --git a/module/zfs/spa.c b/module/zfs/spa.c
+index e986e92..65f78b7 100644
+--- a/module/zfs/spa.c
++++ b/module/zfs/spa.c
+@@ -64,6 +64,7 @@
+ #include <sys/zfs_ioctl.h>
+ #include <sys/dsl_scan.h>
+ #include <sys/zfeature.h>
++#include <sys/zvol.h>
+
+ #ifdef _KERNEL
+ #include <sys/bootprops.h>
+@@ -2856,6 +2857,7 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy,
+ spa_load_state_t state = SPA_LOAD_OPEN;
+ int error;
+ int locked = B_FALSE;
++ int firstopen = B_FALSE;
+
+ *spapp = NULL;
+
+@@ -2879,6 +2881,8 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy,
+ if (spa->spa_state == POOL_STATE_UNINITIALIZED) {
+ zpool_rewind_policy_t policy;
+
++ firstopen = B_TRUE;
++
+ zpool_get_rewind_policy(nvpolicy ? nvpolicy : spa->spa_config,
+ &policy);
+ if (policy.zrp_request & ZPOOL_DO_REWIND)
+@@ -2953,6 +2957,11 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy,
+ mutex_exit(&spa_namespace_lock);
+ }
+
++#ifdef _KERNEL
++ if (firstopen)
++ zvol_create_minors(spa->spa_name);
++#endif
++
+ *spapp = spa;
+
+ return (0);
+@@ -4010,6 +4019,10 @@ spa_import(const char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags)
+ mutex_exit(&spa_namespace_lock);
+ spa_history_log_version(spa, LOG_POOL_IMPORT);
+
++#ifdef _KERNEL
++ zvol_create_minors(pool);
++#endif
++
+ return (0);
+ }
+
+diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c
+index 1226b2c..a9184a1 100644
+--- a/module/zfs/zfs_ioctl.c
++++ b/module/zfs/zfs_ioctl.c
+@@ -1268,9 +1268,6 @@ zfs_ioc_pool_import(zfs_cmd_t *zc)
+ error = err;
+ }
+
+- if (error == 0)
+- zvol_create_minors(zc->zc_name);
+-
+ nvlist_free(config);
+
+ if (props)
+diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
+index 43a7bb6..e35c91b 100644
+--- a/module/zfs/zvol.c
++++ b/module/zfs/zvol.c
+@@ -1215,6 +1215,9 @@ zvol_alloc(dev_t dev, const char *name)
+
+ zv = kmem_zalloc(sizeof (zvol_state_t), KM_SLEEP);
+
++ spin_lock_init(&zv->zv_lock);
++ list_link_init(&zv->zv_next);
++
+ zv->zv_queue = blk_init_queue(zvol_request, &zv->zv_lock);
+ if (zv->zv_queue == NULL)
+ goto out_kmem;
+@@ -1248,9 +1251,6 @@ zvol_alloc(dev_t dev, const char *name)
+ sizeof (rl_t), offsetof(rl_t, r_node));
+ zv->zv_znode.z_is_zvol = TRUE;
+
+- spin_lock_init(&zv->zv_lock);
+- list_link_init(&zv->zv_next);
+-
+ zv->zv_disk->major = zvol_major;
+ zv->zv_disk->first_minor = (dev & MINORMASK);
+ zv->zv_disk->fops = &zvol_ops;
+@@ -1561,30 +1561,36 @@ zvol_init(void)
+ {
+ int error;
+
++ list_create(&zvol_state_list, sizeof (zvol_state_t),
++ offsetof(zvol_state_t, zv_next));
++ mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL);
++
+ zvol_taskq = taskq_create(ZVOL_DRIVER, zvol_threads, maxclsyspri,
+ zvol_threads, INT_MAX, TASKQ_PREPOPULATE);
+ if (zvol_taskq == NULL) {
+ printk(KERN_INFO "ZFS: taskq_create() failed\n");
+- return (-ENOMEM);
++ error = -ENOMEM;
++ goto out1;
+ }
+
+ error = register_blkdev(zvol_major, ZVOL_DRIVER);
+ if (error) {
+ printk(KERN_INFO "ZFS: register_blkdev() failed %d\n", error);
+- taskq_destroy(zvol_taskq);
+- return (error);
++ goto out2;
+ }
+
+ blk_register_region(MKDEV(zvol_major, 0), 1UL << MINORBITS,
+ THIS_MODULE, zvol_probe, NULL, NULL);
+
+- mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL);
+- list_create(&zvol_state_list, sizeof (zvol_state_t),
+- offsetof(zvol_state_t, zv_next));
++ return (0);
+
+- (void) zvol_create_minors(NULL);
++out2:
++ taskq_destroy(zvol_taskq);
++out1:
++ mutex_destroy(&zvol_state_lock);
++ list_destroy(&zvol_state_list);
+
+- return (0);
++ return (error);
+ }
+
+ void
+diff --git a/scripts/zconfig.sh b/scripts/zconfig.sh
+index 141348c..281166c 100755
+--- a/scripts/zconfig.sh
++++ b/scripts/zconfig.sh
+@@ -264,8 +264,9 @@ test_4() {
+ zconfig_zvol_device_stat 0 ${POOL_NAME} ${FULL_ZVOL_NAME} \
+ ${FULL_SNAP_NAME} ${FULL_CLONE_NAME} || fail 9
+
+- # Load the modules, wait 1 second for udev
++ # Load the modules, list the pools to ensure they are opened
+ ${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 10
++ ${ZPOOL} list &>/dev/null
+
+ # Verify the devices were created
+ zconfig_zvol_device_stat 10 ${POOL_NAME} ${FULL_ZVOL_NAME} \
+diff --git a/udev/rules.d/90-zfs.rules.in b/udev/rules.d/90-zfs.rules.in
+index 52e1d63..a2715d2 100644
+--- a/udev/rules.d/90-zfs.rules.in
++++ b/udev/rules.d/90-zfs.rules.in
+@@ -1,4 +1,4 @@
+-SUBSYSTEM!="block", GOTO="zfs_end"
++SUBSYSTEM!="block|misc", GOTO="zfs_end"
+ ACTION!="add|change", GOTO="zfs_end"
+
+ ENV{ID_FS_TYPE}=="zfs", RUN+="/sbin/modprobe zfs"
+@@ -7,4 +7,6 @@ ENV{ID_FS_TYPE}=="zfs_member", RUN+="/sbin/modprobe zfs"
+ KERNEL=="null", SYMLINK+="root"
+ SYMLINK=="null", SYMLINK+="root"
+
++SUBSYSTEM=="misc", KERNEL=="zfs", RUN+="@sbindir@/zpool list"
++
+ LABEL="zfs_end"
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-linux-3.10-compat.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-linux-3.10-compat.patch
new file mode 100644
index 000000000000..90755a1a527f
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.1-linux-3.10-compat.patch
@@ -0,0 +1,108 @@
+commit a1d9543a39942be56879ca9338078afc77c25cea
+Author: Chris Dunlop <chris@onthe.net.au>
+Date: Mon Jun 3 16:58:52 2013 +1000
+
+ 3.10 API change: block_device_operations->release() returns void
+
+ Linux kernel commit torvalds/linux@db2a144 changed the return type
+ of block_device_operations->release() to void. Detect the expected
+ prototype and defined our callout accordingly.
+
+ Signed-off-by: Chris Dunlop <chris@onthe.net.au>
+ Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+ Closes #1494
+
+diff --git a/config/kernel-bdev-block-device-operations.m4 b/config/kernel-bdev-block-device-operations.m4
+index 8b5e0a3..faacc19 100644
+--- a/config/kernel-bdev-block-device-operations.m4
++++ b/config/kernel-bdev-block-device-operations.m4
+@@ -10,7 +10,6 @@ AC_DEFUN([ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS], [
+
+ int blk_open(struct block_device *bdev, fmode_t mode)
+ { return 0; }
+- int blk_release(struct gendisk *g, fmode_t mode) { return 0; }
+ int blk_ioctl(struct block_device *bdev, fmode_t mode,
+ unsigned x, unsigned long y) { return 0; }
+ int blk_compat_ioctl(struct block_device * bdev, fmode_t mode,
+@@ -19,7 +18,7 @@ AC_DEFUN([ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS], [
+ static const struct block_device_operations
+ bops __attribute__ ((unused)) = {
+ .open = blk_open,
+- .release = blk_release,
++ .release = NULL,
+ .ioctl = blk_ioctl,
+ .compat_ioctl = blk_compat_ioctl,
+ };
+diff --git a/config/kernel-block-device-operations-release-void.m4 b/config/kernel-block-device-operations-release-void.m4
+new file mode 100644
+index 0000000..a73f858
+--- /dev/null
++++ b/config/kernel-block-device-operations-release-void.m4
+@@ -0,0 +1,29 @@
++dnl #
++dnl # 3.10.x API change
++dnl #
++AC_DEFUN([ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID], [
++ AC_MSG_CHECKING([whether block_device_operations.release is void])
++ tmp_flags="$EXTRA_KCFLAGS"
++ EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}"
++ ZFS_LINUX_TRY_COMPILE([
++ #include <linux/blkdev.h>
++
++ void blk_release(struct gendisk *g, fmode_t mode) { return; }
++
++ static const struct block_device_operations
++ bops __attribute__ ((unused)) = {
++ .open = NULL,
++ .release = blk_release,
++ .ioctl = NULL,
++ .compat_ioctl = NULL,
++ };
++ ],[
++ ],[
++ AC_MSG_RESULT(void)
++ AC_DEFINE(HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID, 1,
++ [struct block_device_operations.release returns void])
++ ],[
++ AC_MSG_RESULT(int)
++ ])
++ EXTRA_KCFLAGS="$tmp_flags"
++])
+diff --git a/config/kernel.m4 b/config/kernel.m4
+index 7b8e3b0..46c0255 100644
+--- a/config/kernel.m4
++++ b/config/kernel.m4
+@@ -7,6 +7,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
+ ZFS_AC_TEST_MODULE
+ ZFS_AC_KERNEL_CONFIG
+ ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS
++ ZFS_AC_KERNEL_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID
+ ZFS_AC_KERNEL_TYPE_FMODE_T
+ ZFS_AC_KERNEL_KOBJ_NAME_LEN
+ ZFS_AC_KERNEL_3ARG_BLKDEV_GET
+diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
+index e35c91b..b516156 100644
+--- a/module/zfs/zvol.c
++++ b/module/zfs/zvol.c
+@@ -1024,7 +1024,11 @@ out_mutex:
+ return (error);
+ }
+
++#ifdef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID
++static void
++#else
+ static int
++#endif
+ zvol_release(struct gendisk *disk, fmode_t mode)
+ {
+ zvol_state_t *zv = disk->private_data;
+@@ -1044,7 +1048,9 @@ zvol_release(struct gendisk *disk, fmode_t mode)
+ if (drop_mutex)
+ mutex_exit(&zvol_state_lock);
+
++#ifndef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID
+ return (0);
++#endif
+ }
+
+ static int
diff --git a/sys-fs/zfs-kmod/files/zfs-kmod-0.6.5-discard-on-zvol-fix.patch b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.5-discard-on-zvol-fix.patch
new file mode 100644
index 000000000000..632d08d28e1f
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/zfs-kmod-0.6.5-discard-on-zvol-fix.patch
@@ -0,0 +1,31 @@
+From 96165264ad0afe7a5d440ef49f9712a188486266 Mon Sep 17 00:00:00 2001
+From: Richard Yao <ryao@gentoo.org>
+Date: Fri, 18 Sep 2015 08:32:52 -0400
+Subject: [PATCH] Discard on zvols should not exceed the length of a block
+
+37f9dac592bf5889c3efb305c48ac39b4c7dd140 replaced the end-start
+calculation with a cached value, but neglected to update it on discard
+operations. This can cause us to discard data not requested, causing
+data loss on zvols.
+
+Reported-by: Richard Connon <richard.connon@zynstra.com>
+Signed-off-by: Richard Yao <ryao@gentoo.org>
+---
+ module/zfs/zvol.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
+index 492f8ff..c5a8071 100644
+--- a/module/zfs/zvol.c
++++ b/module/zfs/zvol.c
+@@ -661,6 +661,7 @@ zvol_discard(struct bio *bio)
+ if (!(bio->bi_rw & REQ_SECURE)) {
+ start = P2ROUNDUP(start, zv->zv_volblocksize);
+ end = P2ALIGN(end, zv->zv_volblocksize);
++ size = end - start;
+ }
+ #endif
+
+--
+2.4.6
+
diff --git a/sys-fs/zfs-kmod/metadata.xml b/sys-fs/zfs-kmod/metadata.xml
new file mode 100644
index 000000000000..51cfee84a293
--- /dev/null
+++ b/sys-fs/zfs-kmod/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ryao@gentoo.org</email>
+ <name>Richard Yao</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>fearedbliss@gentoo.org</email>
+ <name>Jonathan Vasquez</name>
+ </maintainer>
+ <use>
+ <flag name="rootfs">Install zfs-shutdown script to support exporting a pool containing rootfs</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">zfsonlinux/zfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc13-r4.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc13-r4.ebuild
new file mode 100644
index 000000000000..cf47024ea92d
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc13-r4.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz"
+ S="${WORKDIR}/zfs-zfs-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ virtual/awk
+ dev-lang/perl
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD
+ DEVTMPFS"
+
+ kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 3 8 || die "Linux 3.8 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Fix regression where snapshots are not visible
+ epatch "${FILESDIR}/${P}-fix-invisible-snapshots.patch"
+
+ # Fix deadlock involving concurrent `zfs destroy` and `zfs list` commands
+ epatch "${FILESDIR}/${P}-fix-recursive-reader.patch"
+
+ # Fix USE=debug build failure involving GCC 4.7
+ epatch "${FILESDIR}/${P}-gcc-4.7-compat.patch"
+
+ # Cast constant for 32-bit compatibility
+ epatch "${FILESDIR}/${PN}-0.6.0_rc14-cast-const-for-32bit-compatibility.patch"
+
+ # Handle missing name length check in Linux VFS
+ epatch "${FILESDIR}/${PN}-0.6.0_rc14-vfs-name-length-compatibility.patch"
+
+ # Fix barrier regression on Linux 2.6.37 and later
+ epatch "${FILESDIR}/${PN}-0.6.0_rc14-flush-properly.patch"
+ fi
+
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ $(use_enable debug)
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc14-r5.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc14-r5.ebuild
new file mode 100644
index 000000000000..83e7fafaae31
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.0_rc14-r5.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ MY_PV=9999
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz"
+ S="${WORKDIR}/zfs-zfs-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD
+ DEVTMPFS"
+
+ kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 3 9 || die "Linux 3.9 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Cast constant for 32-bit compatibility
+ epatch "${FILESDIR}/${P}-cast-const-for-32bit-compatibility.patch"
+
+ # Handle missing name length check in Linux VFS
+ epatch "${FILESDIR}/${P}-vfs-name-length-compatibility.patch"
+
+ # Fix NULL pointer exception on hardened kernels, bug #457176
+ epatch "${FILESDIR}/${P}-improved-hardened-support.patch"
+
+ # Fix barrier regression on Linux 2.6.37 and later
+ epatch "${FILESDIR}/${P}-flush-properly.patch"
+
+ # Improve accuracy of autotools checks
+ epatch "${FILESDIR}/${P}-improved-autotools-checks.patch"
+
+ # Linux 3.9 Support
+ epatch "${FILESDIR}/${P}-linux-3.9-compat.patch"
+
+ # Do not second guess Linux's memory management
+ epatch "${FILESDIR}/${P}-zfs_arc_memory_throttle_disable.patch"
+ fi
+
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+
+ # Provide /usr/src/zfs symlink for lustre
+ dosym "$(basename $(echo "${ED}/usr/src/zfs-"*))/${KV_FULL}" /usr/src/zfs
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux introduces support for features flags."
+ ewarn "If you upgrade your pools to make use of feature flags, you will lose"
+ ewarn "the ability to import them using older versions of ZFSOnLinux."
+ ewarn "Any new pools will be created with feature flag support and will"
+ ewarn "not be compatible with older versions of ZFSOnLinux. To create a new"
+ ewarn "pool that is backward compatible, use zpool create -o version=28 ..."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.1-r2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.1-r2.ebuild
new file mode 100644
index 000000000000..73671492db28
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.1-r2.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ MY_PV=9999
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz"
+ S="${WORKDIR}/zfs-zfs-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !UIDGID_STRICT_TYPE_CHECKS
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD
+ DEVTMPFS"
+
+ kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 3 10 || die "Linux 3.10 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Correctness fix for getdents
+ epatch "${FILESDIR}/${P}-fix-getdents.patch"
+
+ # Prevent possible deadlock regression
+ epatch "${FILESDIR}/${P}-fix-txg_quiesce-deadlock.patch"
+
+ # Correctness fixes for xattr
+ epatch "${FILESDIR}/${P}-fix-xattr-behavior-1.patch"
+ epatch "${FILESDIR}/${P}-fix-xattr-behavior-2.patch"
+
+ # Make certain that zvols always appear
+ epatch "${FILESDIR}/${P}-fix-zvol-initialization-r1.patch"
+
+ # Linux 3.10 Compatibility
+ epatch "${FILESDIR}/${PN}-0.6.1-linux-3.10-compat.patch"
+
+ # ARC Read Panic Fix
+ epatch "${FILESDIR}/${PN}-0.6.1-fix-arc-read-panic.patch"
+
+ # Fix zfsctl_expire_snapshot deadlock
+ epatch "${FILESDIR}/${PN}-0.6.1-fix-zfsctl_expire_snapshot-deadlock.patch"
+
+ # Fix NULL pointer dereference in zfsctl_expire_snapshot
+ epatch "${FILESDIR}/${PN}-0.6.1-fix-zfs_sb_teardown-NULL-pointer-deref.patch"
+ fi
+
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+
+ # Provide /usr/src/zfs symlink for lustre
+ dosym "$(basename $(echo "${ED}/usr/src/zfs-"*))/${KV_FULL}" /usr/src/zfs
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for features flags."
+ ewarn "If you upgrade your pools to make use of feature flags, you will lose"
+ ewarn "the ability to import them using older versions of ZFSOnLinux."
+ ewarn "Any new pools will be created with feature flag support and will"
+ ewarn "not be compatible with older versions of ZFSOnLinux. To create a new"
+ ewarn "pool that is backward compatible, use zpool create -o version=28 ..."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.2-r3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.2-r3.ebuild
new file mode 100644
index 000000000000..179739a94410
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.2-r3.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit bash-completion-r1 flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ MY_PV=9999
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${MY_PV}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${PN}-${MY_PV}-p2.tar.xz"
+ S="${WORKDIR}/zfs-zfs-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK} BLK_DEV_INITRD
+ DEVTMPFS"
+
+ kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 3 12 || die "Linux 3.12 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${PN}-${MY_PV}-patches"
+ fi
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for features flags."
+ ewarn "If you upgrade your pools to make use of feature flags, you will lose"
+ ewarn "the ability to import them using older versions of ZFSOnLinux."
+ ewarn "Any new pools will be created with feature flag support and will"
+ ewarn "not be compatible with older versions of ZFSOnLinux. To create a new"
+ ewarn "pool that is backward compatible, use zpool create -o version=28 ..."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild
new file mode 100644
index 000000000000..0b675bc3253c
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-${PR}.tar.xz"
+ S="${WORKDIR}/zfs-zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !PAX_RANDKSTACK
+ !PAX_USERCOPY_SLABS
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 3 17 || die "Linux 3.17 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/zfs-${PV}-patches"
+ fi
+
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for features flags."
+ ewarn "If you upgrade your pools to make use of feature flags, you will lose"
+ ewarn "the ability to import them using older versions of ZFSOnLinux."
+ ewarn "Any new pools will be created with feature flag support and will"
+ ewarn "not be compatible with older versions of ZFSOnLinux. To create a new"
+ ewarn "pool that is backward compatible, use zpool create -o version=28 ..."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.4.2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.4.2.ebuild
new file mode 100644
index 000000000000..b19cd598f867
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.4.2.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !PAX_USERCOPY_SLABS
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 1 || die "Linux 4.1 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with ZFSOnLinux 0.6.3 and GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible, use "
+ ewarn "zpool create -o version=28 ..."
+ ewarn "Then explicitly enable older features. Note that the LZ4 feature has"
+ ewarn "been upgraded to support metadata compression and has not been"
+ ewarn "tested against the older GRUB2 code base. GRUB2 support will be"
+ ewarn "updated as soon as the GRUB2 developers and Open ZFS community write"
+ ewarn "GRUB2 patchese that pass mutual review."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5-r1.ebuild
new file mode 100644
index 000000000000..89ab1f556502
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5-r1.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !PAX_USERCOPY_SLABS
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 2 || die "Linux 4.2 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Fix zvol data loss regression
+ # https://github.com/zfsonlinux/zfs/pull/3798
+ epatch "${FILESDIR}/${P}-discard-on-zvol-fix.patch"
+ fi
+
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.10.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.10.ebuild
new file mode 100644
index 000000000000..ddbb09881e76
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.10.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.11.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.11.ebuild
new file mode 100644
index 000000000000..ddbb09881e76
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.11.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.2.ebuild
new file mode 100644
index 000000000000..b6b9fe5951cc
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.2.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !PAX_USERCOPY_SLABS
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r4.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r4.ebuild
new file mode 100644
index 000000000000..820a3730461d
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r4.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-p3.tar.xz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !<sys-kernel/spl-0.6.5.3-r1
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 4 || die "Linux 4.4 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/zfs-${PV}-patches"
+ fi
+
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3.ebuild
new file mode 100644
index 000000000000..95f4d0eea20c
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4-r1.ebuild
new file mode 100644
index 000000000000..fdbff506ec4e
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4-r1.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-p${PR#r}.tar.xz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !<sys-kernel/spl-0.6.5.3-r1
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 4 || die "Linux 4.4 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/zfs-${PV}-patches"
+ fi
+
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4.ebuild
new file mode 100644
index 000000000000..bda3a991ca09
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.4.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.6.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.6.ebuild
new file mode 100644
index 000000000000..b22b3b796e2e
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.6.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 5 || die "Linux 4.5 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.7.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.7.ebuild
new file mode 100644
index 000000000000..4d295e7b233b
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.7.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 6 || die "Linux 4.6 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.8.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.8.ebuild
new file mode 100644
index 000000000000..dc3011a0f159
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.8.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 8 || die "Linux 4.8 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.9.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.9.ebuild
new file mode 100644
index 000000000000..eba247a785f6
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.9.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 10 || die "Linux 4.10 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.7.0.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.7.0.ebuild
new file mode 100644
index 000000000000..ddbb09881e76
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.7.0.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.7.1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.7.1.ebuild
new file mode 100644
index 000000000000..ddbb09881e76
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.7.1.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 12 || die "Linux 4.12 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild b/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild
new file mode 100644
index 000000000000..03c1e90f7cf4
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-${PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 3 || die "Linux 4.3 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for new feature flags"
+ ewarn "that are incompatible with previous versions. GRUB2 support for"
+ ewarn "/boot with the new feature flags is not yet available."
+ ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+ ewarn "Any new pools will be created with the new feature flags by default"
+ ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+ ewarn "create a newpool that is backward compatible wih GRUB2, use "
+ ewarn
+ ewarn "zpool create -d -o feature@async_destroy=enabled "
+ ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+ ewarn " -o feature@spacemap_histogram=enabled"
+ ewarn " -o feature@enabled_txg=enabled "
+ ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+ ewarn " ..."
+ ewarn
+ ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+ ewarn "developers do a tag or the Gentoo developers find time to backport"
+ ewarn "support from GRUB2 HEAD."
+}
diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest
new file mode 100644
index 000000000000..7f56c7386dbb
--- /dev/null
+++ b/sys-fs/zfs/Manifest
@@ -0,0 +1,64 @@
+AUX bash-completion 6203 SHA256 15e742477fad0104871fc055b6ce9bf803540070e47fa515ea7ca3c1a401f831 SHA512 e7ccb7179c4c455c496daab192099d7553674b9505801e25a2ea8c67a1b4de15d68ac99b2c3347c1f3454f88ede7694f08da61c5d061f0577bb1594ca4a90f12 WHIRLPOOL 79dfdc9c80a707f6bb39bea51ec451c16b821886ce3e84c73a249313d991cf8019f0647b0fe439754fc1ad08cb294bf4c245955fdc4af30286a8afd61dba21ba
+AUX bash-completion-r1 11310 SHA256 b60214f70ffffb62ffe489cbfabd2e069d14ed2a391fac0e36f914238394b540 SHA512 03be521e2c646196766d5fd049f241cb97f290abf0409881ea6ba709934984deda402c8513009e62a5787e0648023b55c040e5f99baef27709e81c3bc9c8f56e WHIRLPOOL b09558e80a96993c52915093c1c3f8488d0ef9294d2e401546c21998222f377e211ff368e18e8ba3b1dea7554a467cc3e32c882a1d872719d82f5e2c1ccd5848
+AUX zed 442 SHA256 feaa9731242d6cc9d497ab1cd729eac1bcb2cc5b6eead1120000d33bb62d417f SHA512 b128ec3b37aa9b55fa50a807af91a85190d2cb32395468605e139c352a0db56297e5086615342384bb6e1c092bf0950301ce4e51000db610b50628502cc8b0bb WHIRLPOOL 9bd1c42c05c16ce52883444c144ee8c740aac709888d3ba4d3609e3413fbcd6a6d82b9514f7ac200fdc993930da31993c8b0a16b46b3d13e44b52e70d7f186d4
+AUX zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch 1159 SHA256 bd40a60408772cfe789bd0f055906cd2aebf43761adb2cb19ca6219c92c5f996 SHA512 aba0ee09e0070ee7472ffeb0274fdac1870e6a11390c110e9febd7240eb8465351355ce6b735d3f0a6ce2ce5bd167a4239ececc3dae33899df3b4f72c162f037 WHIRLPOOL 72635866ef46b592d257071d4902d36b95855850e40de0b6a6afc6ad416460ebdc5b2ece67d011a052895ab6ae9135d77622f7fb15f4cc0f3a6b96df6c2581d2
+AUX zfs-0.6.1-avoid-zdb-abort.patch 844 SHA256 651ece4a40b842c00d393d3f969435f733a987cc420f9a300ed2bd1c78e94dba SHA512 d976e0a829ddad680449d0a4d89a7130fb113668bf6766e3004df47a14620e26910e3d0f7cc2f8d5a7cef4a7ba3794ed36624d63ee6c577585d80964e931becf WHIRLPOOL fa47408a8116d5b72f322bbe878f2275febfca613e8718406ed566be23a4a8715113be66c1694c4272f6fc5c26aae78dbd2de31c095aa0cf95dbc7d13d276d4c
+AUX zfs-0.6.1-fix-gcc-4.8-warning.patch 1432 SHA256 2a2fb2a0b4960e7c616f4bb27a2a1ddf6dfcef30eb6b22ead20d70fe58055c1e SHA512 6063ad756aac5df4b850fb79630696f0616e3a906463bdce147b07383ed1cba47a60e02eac3cc2888fb92f9915e6ff8e28ca36c4e3d11cc9e65391c68a79d972 WHIRLPOOL 4d0432ca6468d44de7a870e03d20497eeb39b1e373d843862a695622b9d69e8eff6f3d52471b7756f80c9392ae12a797b6665c4d27f73710f67f0ee1aaafcbad
+AUX zfs-0.6.1-fix-zvol-initialization-r1.patch 4803 SHA256 36f778dc0fa3c3c7aa4f2383e9463a75c51da19a1a719018f729e9d42ffb52ed SHA512 bfe5ee1185fe044cbf758414b0c8bc4311de6b0502a6f0c6a8fecec71402376f0ab4aa7e798f870c262f54d77f6b84590cc2ae371ff4880dcd97b834ac443483 WHIRLPOOL 3932ef6eea9ed0f23146f980504540843b04a684d5c55cdb5aec60d9fdb18354d61e485b55f5a0f2561ed3e379accd6b3d3f7c39bdbc91bc0d3194546e75ec5e
+AUX zfs-0.6.1-gentoo-openrc-dependencies.patch 2416 SHA256 01b4def8e15eb8854d87529d4540b7b85c927b64e81112cecf13a5aa30c1bc31 SHA512 d4012fb14f3c599d763b6412c092b95d76297afd4d65b71a602485357505aa1fbdc7f5ad437b5634365311349f1a29adcc1dd0e7d20cb85802ce58c0dd393d3c WHIRLPOOL 9c4e3ece9773efc5ec99f9a453eca4656d8e64ac47735878313cddbae8a64ba34503c4a3dd206e658c47f1b9360d545e497838e455af90b87ae4a935d28172f6
+AUX zfs-0.6.5-fix-openrc-scripts.patch 8250 SHA256 a71d6e0cc37684deb588e64ff4fa4bdeae6d45e04f2cb90c4b21d71be0a4f7e4 SHA512 f28b2884706ac38b71d08dd1a49bd9e41450069814a3f51ebfebf6b8dd808bbcc9516d62f4c39c72b1276114fc9f920c679022e35c8acc3a5891e06ae8c85ee1 WHIRLPOOL 96d31aa51219097928eaa5cd71576c44f94f6727d5b7ae9077cebf30cb7e4da0babced6a1baa47ef8d135e37406386ee579bbdacea6557af9836adbf7163c9c2
+AUX zfs-init.sh.in 582 SHA256 820cbbfe881315a640ea398c0c7eac60d2eeb191f694ef69f3e8ea725a8de085 SHA512 bed7eae5f902f13489241782d3d560b53a5a3258de492763b7b25783ca9417975afb9000f68f58be5c2057e1db50a569374ed0ff572140aa65e401e20e646461 WHIRLPOOL 3e9ec22a60a9ba4e71cfab74b25d5ad4aff1b64bfb210d31fc36d5a768527e8b692fe3a9712d9f6bfa8f08e03f7e92ed035a3d8bf4e360b22fa4a4e5b9e9d214
+AUX zfs.service.in 334 SHA256 a9db484e4087a814bdb24814895450c700246f1880fdfd4c29645bb7acd72f05 SHA512 f1066c8b06d2501be9c080a78bfd28ac7566a05bac5ddff7915836d083f8e791bbb2fd5e70a7633a0407762f12fd240d2ef049ed5244c4c4727e42f2332117e2 WHIRLPOOL 173449dcb7312c528d21eeb763936affc849f049e4b647d426296b3a35c5f0c86f056e4c0de7866c62a28344a8a734f42b34822fe5573f7873575be0434105b3
+DIST zfs-0.6.0-rc13.tar.gz 1490582 SHA256 3e689fc0704237c7d755c65e34ed214a262535afefafde4aef0f112f8c833a09 SHA512 c9bbf1fb7f293a0f5b1247e17c411073994bf419d5f6c1b781efeeb4022f62851e8ea3cf7ee0330b0609bfe13b8084c48f00e942ce52323d706733cccf49699e WHIRLPOOL 97083a6f5d66addc9bc7b3cc3f7dd3bc1696980affbd4033d71cd09ecad413ffb666a8a185dfa2e4f20dd4003746ad61d12142f7a6556db5b34008716c933798
+DIST zfs-0.6.0-rc14.tar.gz 1527612 SHA256 5eae8ef790b26e0dd7c801cc0a235a631ad91d67f148a444d912dbeb24b9a12d SHA512 ad38544ced150ce500c78507782e53a8534815b819e5b9aefda6d670fb7905e31a42cdb4d45164700df48673ea7c42bd1d29a60f1f00e25271b3906de9212d15 WHIRLPOOL cfd4de541eb6c18ee4df8950883525d1b1887e0d9c5f840d97353a5d716ed639f1ab3dc0fe4d8368a890564f10053026bcc738b6066c4488647f1b83be54288d
+DIST zfs-0.6.1.tar.gz 1535521 SHA256 42ed127f74af0ecafc14800a5d2b766655f5ea821098aba92446c1c447093fad SHA512 ef583639f15a5b2e4582760bb013ab5091abc15bae17884d811afec707aff337248102a22fb9fb6f62f99cb3477a8ae82edfdcfdfb962276f593173a5dfe5871 WHIRLPOOL a6791fc2d384e03073abc850f99ba761afd18073337264d8a7bc08b4ddc6fff52df5ce11addc9a3ac7cdfdd9ce9bd779208e515cda631ec19de05fbf9f92307b
+DIST zfs-0.6.2.tar.gz 1558656 SHA256 91b844bf7a42df22d7533e8004289270b7859b8fcbca3bff8087a79b131318b4 SHA512 008f9decdea3e92f6d74f5369ec9df5776b15efbb9f2bc01012999b71e1f2bc5b46b310a329b60545907dcc78773ec79eb6d21aca49d911f33299fd0a36e1a4b WHIRLPOOL 587279866b6ffa2bfebc91f00cb28de85f7f186426a0292f44c6cde7ca3a51c1911fc0ee431c25c3ee0866174522f90ce04b54de4aa3dc0829ba3a719e47af58
+DIST zfs-0.6.3-patches-r1.tar.xz 87852 SHA256 71b5286f77cb6a6c2b97cee406dfd4788f7b40b6675c4a56fc630a47e90d5280 SHA512 e2fa573c7b30a3811e9e1596d35b65f5d013ed5bac43e364b44ffab734398a3294979c152a80ec9a722611cc7c971aec217d8e1a37cc9240a3fa2dddb5b90e3b WHIRLPOOL f2da02d5c7d2385e7de1e858c31d299632ca864d422f0c94e5d3b8674d24beeb073ad2600698350306a9e70dbeef390f0e513d19c126502fceec18795c203d50
+DIST zfs-0.6.3.tar.gz 1665270 SHA256 00caeae63cc724d3dd741aeb36fd2dc03d2158794bd6a5e925cdc8d7e5d3da8c SHA512 8c7741f5f227eb031d79fe87bf7d60e790a098fa6caede462d556c97d798832f97f5a377cbb74fc99b8d198e5f3cc1a3491f69fcdaa0408933dbadd132013416 WHIRLPOOL db9791da12c441c89667b194154b209f5aa69ea46d5327cfcde0b3a910cf1f0e5ca448909824e45b31252a1907280b711fb6ba04eb313d09de0ffbf5e6e304fe
+DIST zfs-0.6.4.2.tar.gz 1738601 SHA256 26af2924cbb891b79203a31827cba4cdc310162d5f7b9e2d643eb6576aa19015 SHA512 87a28997b8f9d36e189410171db583402418a55782b7b7f333993e98c5e17ccc4b6cd5825f38b904294c87e3dfdfb7748bd71cc371589c1358f16c942e0c18db WHIRLPOOL 1700de7da56311a7b608c99a821e2fa97a6145ccc88f3d8eff12f778421ba7b7b9cc5f5fbe5f1acd2ea2fd1db778c200a2ea961e3859a8fc89d80474894293f1
+DIST zfs-0.6.5.10.tar.gz 2597676 SHA256 90a0ca76667076e9f58776216cb761f68761eb0192f8b0c45893f84cabc6f27e SHA512 822004d11a1a7c0e258cce049bfee0248dd1ac225a922c1e4a25c8593f23e9b1d7aa4a45a1122f6904025ea0a8c7f4884ec4ab353bfa9c734aedb0969b8d6eb4 WHIRLPOOL 87596a0e89afd3b7da1476c996c87491ee3962f0accd0c1a50d9cd9ab4dd49b3c1c71e14c6eeeddfc53db9bba665bc525ef9580da8082b1e4426bce54ee83401
+DIST zfs-0.6.5.11.tar.gz 2521959 SHA256 136b3061737f1a43f5310919cacbf1b8a0db72b792ef8b1606417aff16dab59d SHA512 877052da2a0cdc78b10cb5041da55e31242db2618c502997f4df9aa46a14482c7f33adce8d21aaf16164a9fe52edc358922ea89c8e109c3247e107bf607d6451 WHIRLPOOL 867f6b22726ca13e43a5ff7a832610bbfd44e6c367bd314a20a7f0a03364b1c3bda1d7b3d7c3502e08249b8d8d9e8034e93d0200abb70f793352f7689e19deac
+DIST zfs-0.6.5.2.tar.gz 1817267 SHA256 aecd2bc5189f2a71a45eb222230146bed231af4f35af5ec7af83a74987c3d595 SHA512 7f0b20feca91d5ab952c1d49ae94d241f8868825b163a3d5f2ad0fd7adcac3ab246a3e6a755019a833be553fbbfd6609828d8123f49a43b42bf76cfd64f234ec WHIRLPOOL 00fd628ef2267366b6f0705e6436ac55b260aabc3588c7f58a7042dfbfe95a0478740b4579326638d28f10ffc8f2d5b3ed21b9f8297e72344ec439fe30310634
+DIST zfs-0.6.5.3-patches-p0.tar.xz 63780 SHA256 cc6d2881304738619b9d00bc55fbd358119b35cbb345cae2ecf538051f1b7fe7 SHA512 4a531fd10d1d4d9c9cabaad9c13d8112eab3641249a7ce44599288bc4510b444d132833fae2fdf922eff43670ce77d32972c7b5b4a7d70f80c3365a0dcc89b70 WHIRLPOOL adc20e7917a518c790007499763210a4d27a164abe00a86f76d64f56f0fafc459f5d5c483019acacc136e41c57894e669fd58956b3f0ac0bcafeb1e02fec7988
+DIST zfs-0.6.5.3-patches-p2.tar.xz 85996 SHA256 0e38b1bd7e2eb96c74b3eaab49c14f1f65fa02dc42b62b6015200185bfc911c7 SHA512 0a8fb131cc9a5a239a7434593000259a581b20ee7c6fef87ec2ea78281b7887151e219ebe66603b9dafaa4fa22cbf8c55175e1f6b36af4502c147c478f0b3e38 WHIRLPOOL 726bf1c05605943a205e2e70099c6cf8c7ba8cc9bbf34d45a2d56cea87c1e23166700979e47c82dd91bd1778e297dd211a0e6f48e0eab2392471218bcb5853ce
+DIST zfs-0.6.5.3-patches-p3.tar.xz 88736 SHA256 031cd97765f890d9b78e1a5746cbd2a3ce06c7208693ec75c0b47324ac67b97a SHA512 8f17cc6e02a35828a57a7c2a437d9d18a41203b6e3f9e154b2ab863296b64596dc827afeeb0f993e37f47881d0f2ed4834f270d0ba843ab84b21c491cc352576 WHIRLPOOL 20f69c0a936bb612d5e3b551d4bf904aca3aff6d885d72f67f3b14cd720094ec13e383032ee4e322b0e81017d8ffcfafb47bf07f273badef34f7210d687ddacc
+DIST zfs-0.6.5.3-patches-p4.tar.xz 89140 SHA256 34114671614aec3b33b17e6fc66a31549b3dd3e1d21ccd68d6987a1e1641f86b SHA512 3f8a4490e654a2d13bf4d31ee688276243244d4e0ab7c7911d597730bbbf6c9d7dea8e075409de4c22e871928cd647ce3064a671a1259f3adaf2b27bcc5370b8 WHIRLPOOL a63c0a2eff6c29c9600e4aaafa7120a0c1bd9bdf9b2f1e52d5a85df2c02e5e924ed74a406919cff9353a77c697dcf4248749ad6a7137f17dc427c7f0d63ea99a
+DIST zfs-0.6.5.3.tar.gz 2524218 SHA256 49e6f9760ea172cb756f7357e4bcb90ee0293028540a68d62ed087724276131f SHA512 325cb91b7ddbcd6aa0bb9fc41eb0099dbb047a4e32d096fd414799729ef68cbc9c2e15714092eff8044a681af4ab552bd9ac1949cc673c6c5c3de1a23d9895ec WHIRLPOOL 957c3a75bb11befd4b74583883f2f11f717deb6bda368939b342049e809aa191a9ee8d1e709eaddc2a831418c7fdb5e763f918ff56d45f03baf4569ef8a4a070
+DIST zfs-0.6.5.4-patches-p1.tar.xz 64004 SHA256 83877d9b7c629730838325fd5b16bcb54259520e200f0539de9b8edfdcee9403 SHA512 9203356b43bdad2ed78c946af8c95c9fc4d2996b41a09a3b1f5a8657d2742ac69d10b4a87d443db497d591878cf7a70ebb19762b0df135ee25f4e8d2ed6ad71f WHIRLPOOL ff5788356d6a85608d22ea2c010a799464922614204c7eea06b57930a44ee876e596a053a773205de0543d36c04337d60c32594939e8e64d3022906c51c4d4e6
+DIST zfs-0.6.5.4-patches-p2.tar.xz 63912 SHA256 bbcfe43ee4a46deed86543d23abd31bbc662408f56ef8f7c9500dc25fecd49c4 SHA512 9f598c2a750b92dadddb677a6a9dda4573fa91421a82270d8104d718da4b945a4d5412bab92037a033cec1ec177f2a0eb52207babd023847918e3754054ec5e9 WHIRLPOOL bab1330c7489dd172c522300698f6a2d670a2f6ddcf8cd2566d1daffe8b41a3667755ad1ab377d07716af66449f7332974bcd7df4647bb028b5f5279c59c428c
+DIST zfs-0.6.5.4.tar.gz 2506470 SHA256 780862ec2301ccace412a324787e9df762cff6046e73e2ac0ebdce9e2bd59b0f SHA512 90c87cd95fd06cf34755358e7cc4053d19f351316133f0b808e7585a3fc8f82e7c0f49072c2995d0520de5104fd04d91a166a0d5b6c923c82dfb2fb4f7f57a01 WHIRLPOOL eacd2ec09afdbc3f6d946583116296fadcd7d0dea5158c89f82f6d0b02e0cbf075712015bfa5f321ae5815cf86af13b39ce93e5026e6a00da58d9ddb04d12320
+DIST zfs-0.6.5.6.tar.gz 2561093 SHA256 c349d46d86b4f61cd53a0891acad916cfc3f0d6754127db7f60a0bd98185aeff SHA512 94c55a50f0f9a90ce07a45dc72bb2730b2a41373ab5a12845df00ef38bb22e4a80ab2fb6e31a9c3a45e51516cdea441bb9da1d0acf71f2f88b38c7c3e9e995b0 WHIRLPOOL 6fcbe473bfce90f800989bac506fa6d4cf5662ad9ca617a477f1251c1625de906495a45759d6190e5a24dcf05f2ed3dd7ea1c0b2f243165a60e5efd098082935
+DIST zfs-0.6.5.7.tar.gz 2537816 SHA256 4a9e271bb9a6af8d564e4d5800e4fff36224f1697b923a7253659bdda80dc590 SHA512 559b826ae1a176217b92d8407729e2c5feeffb117dc9affaa8c9c2134d996b6c3cbe095f7a0c4666c9b131742491f1304eeb292e13e0df0b6d001fa620568af2 WHIRLPOOL bf2e0865de35496cc995738ddde34df797b0c5047c0dd17e5b755803ef16e7c16f8ba89927106a1f6131c2f75a6749c31a72dff95fc0fee186b308c50ce0b4f4
+DIST zfs-0.6.5.8.tar.gz 2521921 SHA256 d77f43f7dc38381773e2c34531954c52f3de80361b7bb10c933a7482f89cfe84 SHA512 e5b53a9531b865e7c650892c0deb1ee81db086a33538cd667a087a8a8d33a0ad93a30ae5e800096abfc4dc8ed00843da924230082e204fb7543dd401ef41fcde WHIRLPOOL 623bf8ee51d59dcd1842bf41ccf19c2eb6813fb1e88dea1ea1c6f1388c11484b798546bdcb94500735a0e9e5f9099a4df43308760b353b5b62ff56af035f88bd
+DIST zfs-0.6.5.9.tar.gz 2610650 SHA256 b724b57dbddae59246fdc15f88f1224061c712945bb36412a2087e0c7760d77f SHA512 6e175f32421cf0f9e13429f12f0fac0564dc7059ab076831d0ebc4f6a17412160ca3526ebdf894bc7666e82580355b08701dd01c411d3177f82e7330b4529a37 WHIRLPOOL 149d730a26363b50691363b314669756d218c4a16e6d06e319c2b0866c5f8ed6e2da2396a516297c127d3343d51d78072d8b7371e3f4d327d30fa43c90be5cd3
+DIST zfs-0.7.0.tar.gz 6714094 SHA256 6907524f5ca4149b799fe65cd31b552b0ae90dba5dc20524e1a24fc708d807d2 SHA512 6e6cbf54399fc85b74b76a6ceb3f30e94903f755fe6386fccc56b5e6d307a907759e4b62acec5d32e8383ef1083423eaff8dee2b0ef01a99459171a42b47d217 WHIRLPOOL 74687be4220bab51f18fdd3c047400c4261acf16f38086c2485f5cb9d79af87f5adfafced92860b021814aece7446cb18e9ca310a363b90c6bac39343b72a4b6
+DIST zfs-0.7.1.tar.gz 6376234 SHA256 231b104979ddacfeb1889e1dec175337276e7b3b109d40656089744b5caf3ef6 SHA512 64b0a3b5eeaf09ce824e3e029880a8e5dcb3e4567d1fb2fa24c89d8e55fee1ebe2d2f3a9f77d5468cc5637074e27d5ba7696b566829c93fd69c610b288200a37 WHIRLPOOL 700c83aadca96578ae8d6a9795f91c0c25b69afcc6ec6c02141daafcbcd550ae413438e96c4821c5c90816e0e29366ecfc3e7289623f14c255722c37d9f9a7f6
+DIST zfs-kmod-0.6.2-p4.tar.xz 63984 SHA256 9167edc4be86e3fcda6b3c198e51f92ab0c95ac5baca11666c28029a628cdac9 SHA512 13e4ec415c35d2f268d89565745f5898c0943423577a2ba6714b3a069c5a80f244cd06dff91464f38dd4ed60673d1145ead080bb03a56d4be33e328f948ffa64 WHIRLPOOL 8c399ec67119ed4fbebb5599d00f888918678bc4e4ea369b4bdc5c75bfc90fc76396087624c8011de370a54ff103bccaa8922d05ac7ccebb2b3481bbbcf44b19
+EBUILD zfs-0.6.0_rc13-r2.ebuild 2670 SHA256 75422b6fc4e7965f79d3f216111b4f5eee128978b2a1928b27c621a8e92c8973 SHA512 f2ad5697ae9c1f36a14952ed105153079323e911695089cf3c0ff8f0cc370598a69610d45d6edd3a95f3ff13cb855e96e9140d8e8f14561b7e34c6d64afaeee7 WHIRLPOOL 310fd967842bf67da3d8bbc05aa15b83bf180c8ef6eba39ea8a3ccb1f0679972874291dcd7d6bf7b51e2c02e544bd91bfd6c050965d962e7c6d698f87914aa20
+EBUILD zfs-0.6.0_rc14-r1.ebuild 2801 SHA256 6b344e1c08e713ee786002026c5f6cbee1bdf62f93d698e63787e7c55275db30 SHA512 c0cb816ead51e183bcd2ec7cb4469c6df5b5e68fa7e9ac707ea4863f10631cc096a14a755dc2824b4e4ea42a1ca9a7c506adde7044ed8bea1113118a077b46ba WHIRLPOOL 42c5c48c6f5a766284e4421ba221f60e229938dba0b2fc2223317561eee5ce7c20655a96c12b629294da44604b46a26f88d02e4dfe062994bdb238a7668fbdb6
+EBUILD zfs-0.6.1-r4.ebuild 3641 SHA256 910501827f7b83d612b23edcd3a18e6df4b9b8148c41cc0dbd7e94837b648df2 SHA512 70d9166defdcf8a08f8000df8cf08a4364fd4f331ce55cfe2bab51a5c8da9e3eee538019ec42abea9d8b72fa4a4602f5cd56a96b8b3b4838ebb79b6ee17644c5 WHIRLPOOL 81149281afaf43abdb577048df9b3c21af86179bb01f7865d3acea362d758396e0507131950ce0e97d753d40913d8c6a9940521fcb5eb1783bc76b6c4361cdbd
+EBUILD zfs-0.6.2-r5.ebuild 3581 SHA256 21705e7d5b7de5ae5c407bd4a3e5866d101977393f5ab65000b28a16e260a015 SHA512 2d1095a074e3659409b96902df7115e056a7650db5d82bced6cfc873bd88cbf5315395706a9f6eebc63ff2001df1ad4606340f1a49500199bc41b794b8a26841 WHIRLPOOL e0c445c8f4532792988695b09f0ea1602d2f09ee36abd1ddffa8cfd8ecf0177c08f0a3e0a326e346325a2a4ff7534bbeb23d0c572e7d4a357118e269e36e0684
+EBUILD zfs-0.6.3-r2.ebuild 3458 SHA256 7d2b9180a6180bc502b586dfc521a9b6bdcd100240c3e9b13d94b894c4aae5fa SHA512 3217775779d3c1c2bc08c91ade2553b904d617158f04a877b71af25821493e358a8543a80cd8d5a26b2c767c27ec92cbd6d3974ea588d775a8b3a748182f4aa3 WHIRLPOOL 1cfc668dea3e4789bab1ee1a88d675d2541c14fb5fee7ef608ca1982948fdeedfd6e0c6103db3418e2b65684dfa3385b0f33af9e3f029e26ccfec763d5a2a273
+EBUILD zfs-0.6.4.2.ebuild 3271 SHA256 6622f1357ddc7af7a6964dc409ac129d9edb48d84d022331bc383ef0778c6fea SHA512 a9f7663390a692fd7ae8d4ca2963dffa3481cf566a267c26b7107223c17f966546b388f85c5aefb7fba9ae432565f7358426c0c73f46b5161913d6219963a31f WHIRLPOOL a363bf1364b937c59d880a2440bc671acd73ed354336ae0c43f388cd2e5f277a4f7136919562862bc651712dcb83150b0b843e41600099578f6732ab399881fc
+EBUILD zfs-0.6.5.10.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155
+EBUILD zfs-0.6.5.11.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155
+EBUILD zfs-0.6.5.2-r1.ebuild 5749 SHA256 1d0933677bae0826dfec85b41a9ca3ad72398960b85a6931e6412c9095723476 SHA512 22aaa885d5a5987e7f998126fd1a1ef41ad507c0c928fe9f13bb217da746e2e02db93bbaf4484c287ae26c566e6125263bfd2ac99bb2b5026511a718fb3c4e85 WHIRLPOOL d713f0bbb72855ca516c6051b1ffc7ee19dd0353a758e704beb312c77b00f4289ea86fd09f2049e762f4fead14d268ccd3504b58121d1648f2c79d06d7573c3b
+EBUILD zfs-0.6.5.3-r1.ebuild 6516 SHA256 30d539bd7049180992abc74873cc505d0074819ceac1b91fa653397fd77dc5c7 SHA512 eb88429f61fb4abd7bf6a22afa6102fc9ea22a586e485d804e4cb644ed46d9ae8a9ed1e0c577b2ce92829156d1b35f35e7990d89f48e3eef41aaa28ab30d5965 WHIRLPOOL 43a9bed88640a252fc6e943d8b3c13d47a2fd20066299b3e24f537b0a83e09a7362f13616e0eb6a2813681345692a88a20c83a16d1db25d7e8ddc29801d26956
+EBUILD zfs-0.6.5.3-r3.ebuild 6590 SHA256 4bf1283af92f29820c5cbfd983780337bed3985c0611a113fe4a1d75fc1ad4e5 SHA512 d978859ded763c841ebf302091b8cfebecb991bd5ce14da1e38e10bbd2a920d4d2ed2c7840485296d2c2f6a4e9129cc8d2f2601200d49a50d12e4a813e45d703 WHIRLPOOL bf21d2e57194d88c2e62d5a6b825428c932df786f01dfabba2c8eab6be1c995800d57bbb18fa3f1a29e9c77ad104b5ea86b88bd19fdfa7a12a9ca5d65c0e44b2
+EBUILD zfs-0.6.5.3-r4.ebuild 6590 SHA256 fabbb511571c5ca1ca7e88d821d9b09dcd9517b9b12232d0b5c4b9b97ed61ee6 SHA512 6c7816e8818f6e946b11045b34036ac7e5e935dd1a510ac440c16c2ee06bfa65f0f269cc3edbaf4890c01c2714f285181242a020950c0e3e872085de7e1b1cc7 WHIRLPOOL a89abc68c9b6eaa34e773b103b04a5ed9f025cb08bf447e1c10267fe8e4489fdccee757a09402ea978f25cd0b2b372bfea7664332c04b0e3827ced54385f5449
+EBUILD zfs-0.6.5.3-r5.ebuild 6605 SHA256 79bb5d013b056103478f583172f568808a5815995f73278e13b23b916baf1edc SHA512 b47633119b68479d75cd10c02bbdb6cae8af69632dcf9b288dbba9c1296dce2ed875584e4a48706242eacb8f8d5e8f4a1fee0ecc78b560c103b0fb0a77434e71 WHIRLPOOL 2badfe3dac7b04d843fd99853059c949b05f327acc2d7cfb2ca9f82247d8412a50757b441de6ac314a8ee68d400c63bcc4fb37d469822bbe1dde237bce642bc5
+EBUILD zfs-0.6.5.3.ebuild 5556 SHA256 684d36984cf655d3e86c598e613e5a6e47306fba6da4dda2a986b66b43b0f7e0 SHA512 466efa8cdecc9140a7f1a37d6d33b132b5118c1ee98659120c888ca600b36aa0044518c52f9fb577a860b5356502b02df623bde7650ba485319e70bcd94b3685 WHIRLPOOL aa1a2a1cf1ae2b48b94379fdbad85a7cedc490a18134a6cb7d2e81810b7e69ed5fb2c09d870bcff141f826fbe51ff32b56f84887ce07a3e9f48cbb72a977ecaf
+EBUILD zfs-0.6.5.4-r1.ebuild 6596 SHA256 8fabdadcf40d372b94315098a24a9a0fc8139c9445e4dbeb87e4ac01bc22f89c SHA512 29bafb4efca64ccbc9288a9fcc2d1cfac732ce433c5abf6c206c521f47810a32a63ec752d30c52d12dae0db5c5c5e145117f654d051f765eec10e73ec4736828 WHIRLPOOL e970b2d43cb7bc69d41a8f9851d218c7cfabd736ef21502dcdd01a842608a3c91e9c06665bb924116151863d2090123b2de46b753c0a57c3c0143fb47b4f4d87
+EBUILD zfs-0.6.5.4-r2.ebuild 6596 SHA256 8fabdadcf40d372b94315098a24a9a0fc8139c9445e4dbeb87e4ac01bc22f89c SHA512 29bafb4efca64ccbc9288a9fcc2d1cfac732ce433c5abf6c206c521f47810a32a63ec752d30c52d12dae0db5c5c5e145117f654d051f765eec10e73ec4736828 WHIRLPOOL e970b2d43cb7bc69d41a8f9851d218c7cfabd736ef21502dcdd01a842608a3c91e9c06665bb924116151863d2090123b2de46b753c0a57c3c0143fb47b4f4d87
+EBUILD zfs-0.6.5.4.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669
+EBUILD zfs-0.6.5.6.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669
+EBUILD zfs-0.6.5.7.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669
+EBUILD zfs-0.6.5.8-r1.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155
+EBUILD zfs-0.6.5.8.ebuild 5540 SHA256 bf3ee2e989a8bde4f44454bc682acf93ecb3b70026c0278c13199d38017587d0 SHA512 bb3f1f116ed4dcbead3952e8a40d14dfed0c0d72a56fa3a6be64d9411f454950bca39471b0fd3d130af9433c34f9800a9605b3453ced61e9813cf51f73dcce19 WHIRLPOOL ace654c55b20c240a3c2f6064f00d96aca20a02fe81df3e5284938b8b8c63fbbfc069e31eeb63a00bb7ffc9cdde4f529fb2713fd8847828ac435cf8c91d3c669
+EBUILD zfs-0.6.5.9.ebuild 5534 SHA256 3d7b1890b009d8216c51623b7c0ad6ca46fa40bbfe9af537634c673d265b26e3 SHA512 641338ba22fa87e8725b89b508b3f5e1ae492a4e715eaaf506e07f0a6fc3cee14fdc1e8502ea8f619cddb57ee0dba1a0d6112161f8bfd216a44533c6e78678f7 WHIRLPOOL 20a7f40e9363c7c3e15bbc8599fc66e8e76bb6c5ca49f58b50e8b5c70de08934e8564313fd4ade69d1da79042459fab364d1cd89134a450f76346f0e96631155
+EBUILD zfs-0.7.0-r2.ebuild 5666 SHA256 227eaedd821399d1c04c45a2093e5f4befd7c5546f665381863d4478bd28f86e SHA512 57d4292cbe99bf889280e8d6096cae72d862c64d35146599ad1c8a746f7b70d58972d607128cf827a9219eb4594e8e555dd87204ee13ac4a0d8ecef8bfc7968e WHIRLPOOL d9059292f9dcdc897ae91172c3612438a8c0959096a9ac1a81a0c6dd1d4f6a7dde49392f1420b69b0ab610fd5d92f7ef8917355dc31cd942f452a46abd782ad8
+EBUILD zfs-0.7.1-r1.ebuild 5664 SHA256 b391f3b7e3854c80566c3829486b058708292c21587ede1e14421f83f68cd12d SHA512 bceacbfac5efce785f90d68b3ea35bc3e44e5b7561684d1157842047dd878ae50f43222b473989a4c71380e362b919baf7eba77c28cdfe4bb9c63e425a7e55b9 WHIRLPOOL e22b229a4455e73efc91daffea8184f9976942df17eb74027e65966f57c2df70df537cfe714b0ca83f375f0f43b102e5a34f59baca79009ad8d9f215e35fced0
+EBUILD zfs-9999.ebuild 5805 SHA256 eaf5b0d4c9c3b4b104a186c37040d0653759726ea3863801a5fb376cc154d67c SHA512 3fd1ac15bd72bc98dff861e7860f83d63727aeafa9a35c3d355df9deb4c40009206f18d09794fd26f1fe9702238098452a8ab6fb67d84a5ac84be5776ad10f7a WHIRLPOOL 2d3107fc13230a9e55cf2b74eedf799070d70e82eea687260849568ed091f5674e3fc4abbb9df347a04d68684733bb04d99a5e284aa77b702b6a6c1548917e3e
+MISC ChangeLog 13217 SHA256 9c37690b8a7b7c6a33139009109f582ca82bf3e6c8684c7ba5aad6c1217ee18c SHA512 9ec9c5ae1b4de72eb4b54d4ca9b5e15efcbbf47a87e9c2456656f25a0ed67258e135cd7bba6cbffc2ada994d6ff86d313449c79fcf1843a994808bac57b12546 WHIRLPOOL 270399247f437617eb0ac51bdb0c4d11e97bb894e6166066c8ba8aaa5e84e8aa3684fae19682d6a7e7d7e970199ed0d3025db6fcea2aa7df5e839dc89ccc6923
+MISC ChangeLog-2015 18930 SHA256 d01fb1add9dfd385b0156efea669dae84679277406d78994ae799f3a27537422 SHA512 7f2544d7bb7481e9212f3f2eb46cd0cafb7161b403505faa7134498edb648847818c688b8b9fc2bceb40f1d9692a6156f088ebd0713e29e98affc447ba0b6bc9 WHIRLPOOL ce3cca1ab6903fd92fb32f511ab321b9377018c51786563898247b7383fd32ae5eca047e0b7e12e47eb5f885530cddfd5ff72693349efb265802f99b5e0d70af
+MISC metadata.xml 754 SHA256 8cba2e73f48119d523985e5ea568c0a3dbe8a40de7f62c7ae406872a7ba5668d SHA512 647ffa3857be38b2aed7462d26bbb1d3ea50fc53068b6d973514fdbadf7164421dd2025165a592855b86a03754d968d36e503dcfafc99e3ed75ee7db3f62df3a WHIRLPOOL 5bd5cf937dada8b3e43e68acfdd889b679fe25d43d4059d789884a30ad3ff3031d3dd36e6e5752ef3dd94c2b6226098be8f989e9217396b562f352855f27de54
diff --git a/sys-fs/zfs/files/bash-completion b/sys-fs/zfs/files/bash-completion
new file mode 100644
index 000000000000..1b9428bf8602
--- /dev/null
+++ b/sys-fs/zfs/files/bash-completion
@@ -0,0 +1,232 @@
+# Copyright (c) 2010, Aneurin Price <aneurin.price@gmail.com>
+
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use,
+# copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following
+# conditions:
+
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+
+__zfs_get_commands()
+{
+ zfs 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq
+}
+
+__zfs_get_properties()
+{
+ zfs get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all
+}
+
+__zfs_get_editable_properties()
+{
+ zfs get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}'
+}
+
+__zfs_get_inheritable_properties()
+{
+ zfs get 2>&1 | awk '$3 == "YES" {print $1}'
+}
+
+__zfs_list_datasets()
+{
+ zfs list -H -o name
+}
+
+__zfs_list_filesystems()
+{
+ zfs list -H -o name -t filesystem
+}
+
+__zfs_list_snapshots()
+{
+ zfs list -H -o name -t snapshot
+}
+
+__zfs_list_volumes()
+{
+ zfs list -H -o name -t volume
+}
+
+__zfs_argument_chosen()
+{
+ for word in $(seq $((COMP_CWORD-1)) -1 2)
+ do
+ local prev="${COMP_WORDS[$word]}"
+ for property in $@
+ do
+ if [ "x$prev" = "x$property" ]
+ then
+ return 0
+ fi
+ done
+ done
+ return 1
+}
+
+__zfs_complete_ordered_arguments()
+{
+ local list1=$1
+ local list2=$2
+ local cur=$3
+ local extra=$4
+ if __zfs_argument_chosen $list1
+ then
+ COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur"))
+ fi
+}
+
+__zfs_complete()
+{
+ local cur prev cmd cmds
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ cmd="${COMP_WORDS[1]}"
+ cmds=$(__zfs_get_commands)
+
+ if [ "${prev##*/}" = "zfs" ]
+ then
+ COMPREPLY=($(compgen -W "$cmds -?" -- "$cur"))
+ return 0
+ fi
+
+ case "${cmd}" in
+ clone)
+ __zfs_complete_ordered_arguments "$(__zfs_list_snapshots)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur
+ return 0
+ ;;
+ get)
+ __zfs_complete_ordered_arguments "$(__zfs_get_properties)" "$(__zfs_list_datasets)" "$cur" "-H -r -p"
+ return 0
+ ;;
+ inherit)
+ __zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_list_datasets)" $cur
+ return 0
+ ;;
+ list)
+ if [ "x$prev" = "x-o" ]
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "${cur##*,}"))
+ local existing_opts=$(expr "$cur" : '\(.*,\)')
+ if [ ! "x$existing_opts" = "x" ]
+ then
+ COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" )
+ fi
+ else
+ COMPREPLY=($(compgen -W "$(__zfs_list_datasets) -H -r -o" -- "$cur"))
+ fi
+ return 0
+ ;;
+ promote)
+ COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur"))
+ return 0
+ ;;
+ rollback|send)
+ COMPREPLY=($(compgen -W "$(__zfs_list_snapshots)" -- "$cur"))
+ return 0
+ ;;
+ snapshot)
+ COMPREPLY=($(compgen -W "$(__zfs_list_filesystems) $(__zfs_list_volumes)" -- "$cur"))
+ return 0
+ ;;
+ set)
+ __zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_list_filesystems) $(__zfs_list_volumes)" $cur
+ return 0
+ ;;
+ *)
+ COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur"))
+ return 0
+ ;;
+ esac
+
+}
+
+__zpool_get_commands()
+{
+ zpool 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq
+}
+
+__zpool_get_properties()
+{
+ zpool get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all
+}
+
+__zpool_get_editable_properties()
+{
+ zpool get 2>&1 | awk '$2 == "YES" {printf("%s=\n", $1)}'
+}
+
+__zpool_list_pools()
+{
+ zpool list -H -o name
+}
+
+__zpool_complete()
+{
+ local cur prev cmd cmds
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ cmd="${COMP_WORDS[1]}"
+ cmds=$(__zpool_get_commands)
+
+ if [ "${prev##*/}" = "zpool" ]
+ then
+ COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
+ return 0
+ fi
+
+ case "${cmd}" in
+ get)
+ __zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur
+ return 0
+ ;;
+ import)
+ if [ "x$prev" = "x-d" ]
+ then
+ _filedir -d
+ else
+ COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur"))
+ fi
+ return 0
+ ;;
+ set)
+ __zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur
+ return 0
+ ;;
+ add|attach|clear|create|detach|offline|online|remove|replace)
+ local pools="$(__zpool_list_pools)"
+ if __zfs_argument_chosen $pools
+ then
+ _filedir
+ else
+ COMPREPLY=($(compgen -W "$pools" -- "$cur"))
+ fi
+ return 0
+ ;;
+ *)
+ COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur"))
+ return 0
+ ;;
+ esac
+
+}
+
+complete -F __zfs_complete zfs
+complete -o filenames -F __zpool_complete zpool
diff --git a/sys-fs/zfs/files/bash-completion-r1 b/sys-fs/zfs/files/bash-completion-r1
new file mode 100644
index 000000000000..b1aded368e85
--- /dev/null
+++ b/sys-fs/zfs/files/bash-completion-r1
@@ -0,0 +1,391 @@
+# Copyright (c) 2013, Aneurin Price <aneurin.price@gmail.com>
+
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use,
+# copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following
+# conditions:
+
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+
+#if [[ -w /dev/zfs ]]; then
+ __ZFS_CMD="zfs"
+ __ZPOOL_CMD="zpool"
+#else
+# __ZFS_CMD="sudo zfs"
+# __ZPOOL_CMD="sudo zpool"
+#fi
+
+__zfs_get_commands()
+{
+ $__ZFS_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | cut -f1 -d '|' | uniq
+}
+
+__zfs_get_properties()
+{
+ $__ZFS_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all name space
+}
+
+__zfs_get_editable_properties()
+{
+ $__ZFS_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}'
+}
+
+__zfs_get_inheritable_properties()
+{
+ $__ZFS_CMD get 2>&1 | awk '$3 == "YES" {print $1}'
+}
+
+__zfs_list_datasets()
+{
+ $__ZFS_CMD list -H -o name -t filesystem,volume
+}
+
+__zfs_list_filesystems()
+{
+ $__ZFS_CMD list -H -o name -t filesystem
+}
+
+__zfs_match_snapshot()
+{
+ local base_dataset=${cur%@*}
+ if [[ $base_dataset != $cur ]]
+ then
+ $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset
+ else
+ $__ZFS_CMD list -H -o name -t filesystem,volume | awk '{print $1"@"}'
+ fi
+}
+
+__zfs_match_explicit_snapshot()
+{
+ local base_dataset=${cur%@*}
+ if [[ $base_dataset != $cur ]]
+ then
+ $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset
+ fi
+}
+
+__zfs_match_multiple_snapshots()
+{
+ local existing_opts=$(expr "$cur" : '\(.*\)[%,]')
+ if [[ $existing_opts ]]
+ then
+ local base_dataset=${cur%@*}
+ if [[ $base_dataset != $cur ]]
+ then
+ local cur=${cur##*,}
+ if [[ $cur =~ ^%|%.*% ]]
+ then
+ # correct range syntax is start%end
+ return 1
+ fi
+ local range_start=$(expr "$cur" : '\(.*%\)')
+ $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset | sed 's$.*@$'$range_start'$g'
+ fi
+ else
+ __zfs_match_explicit_snapshot; __zfs_list_datasets
+ fi
+}
+
+__zfs_list_volumes()
+{
+ $__ZFS_CMD list -H -o name -t volume
+}
+
+__zfs_argument_chosen()
+{
+ local word property
+ for word in $(seq $((COMP_CWORD-1)) -1 2)
+ do
+ local prev="${COMP_WORDS[$word]}"
+ if [[ ${COMP_WORDS[$word-1]} != -[tos] ]]
+ then
+ if [[ "$prev" == [^,]*,* ]] || [[ "$prev" == *[@:]* ]]
+ then
+ return 0
+ fi
+ for property in $@
+ do
+ if [[ $prev == "$property" ]]
+ then
+ return 0
+ fi
+ done
+ fi
+ done
+ return 1
+}
+
+__zfs_complete_ordered_arguments()
+{
+ local list1=$1
+ local list2=$2
+ local cur=$3
+ local extra=$4
+ if __zfs_argument_chosen $list1
+ then
+ COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur"))
+ fi
+}
+
+__zfs_complete_multiple_options()
+{
+ local options=$1
+ local cur=$2
+
+ COMPREPLY=($(compgen -W "$options" -- "${cur##*,}"))
+ local existing_opts=$(expr "$cur" : '\(.*,\)')
+ if [[ $existing_opts ]]
+ then
+ COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" )
+ fi
+}
+
+__zfs_complete_switch()
+{
+ local options=$1
+ if [[ ${cur:0:1} == - ]]
+ then
+ COMPREPLY=($(compgen -W "-{$options}" -- "$cur"))
+ return 0
+ else
+ return 1
+ fi
+}
+
+__zfs_complete()
+{
+ local cur prev cmd cmds
+ COMPREPLY=()
+ # Don't split on colon
+ _get_comp_words_by_ref -n : -c cur -p prev -w COMP_WORDS -i COMP_CWORD
+ cmd="${COMP_WORDS[1]}"
+
+ if [[ ${prev##*/} == zfs ]]
+ then
+ cmds=$(__zfs_get_commands)
+ COMPREPLY=($(compgen -W "$cmds -?" -- "$cur"))
+ return 0
+ fi
+
+ case "${cmd}" in
+ clone)
+ case "${prev}" in
+ -o)
+ COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "o,p"
+ then
+ if __zfs_argument_chosen
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
+ fi
+ fi
+ ;;
+ esac
+ ;;
+ get)
+ case "${prev}" in
+ -d)
+ COMPREPLY=($(compgen -W "" -- "$cur"))
+ ;;
+ -t)
+ __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur"
+ ;;
+ -s)
+ __zfs_complete_multiple_options "local default inherited temporary none" "$cur"
+ ;;
+ -o)
+ __zfs_complete_multiple_options "name property value source received all" "$cur"
+ ;;
+ *)
+ if ! __zfs_complete_switch "H,r,p,d,o,t,s"
+ then
+ if __zfs_argument_chosen $(__zfs_get_properties)
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
+ else
+ __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur"
+ fi
+ fi
+ ;;
+ esac
+ ;;
+ inherit)
+ if ! __zfs_complete_switch "r"
+ then
+ __zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur
+ fi
+ ;;
+ list)
+ case "${prev}" in
+ -d)
+ COMPREPLY=($(compgen -W "" -- "$cur"))
+ ;;
+ -t)
+ __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur"
+ ;;
+ -o)
+ __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur"
+ ;;
+ -s|-S)
+ COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "H,r,d,o,t,s,S"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
+ fi
+ ;;
+ esac
+ ;;
+ promote)
+ COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur"))
+ ;;
+ rollback)
+ if ! __zfs_complete_switch "r,R,f"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
+ fi
+ ;;
+ send)
+ if ! __zfs_complete_switch "d,n,P,p,R,v,i,I"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
+ fi
+ ;;
+ snapshot)
+ case "${prev}" in
+ -o)
+ COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "o,r"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_list_datasets | awk '{print $1"@"}')" -- "$cur"))
+ fi
+ ;;
+ esac
+ ;;
+ set)
+ __zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur
+ ;;
+ upgrade)
+ case "${prev}" in
+ -a|-V|-v)
+ COMPREPLY=($(compgen -W "" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "a,V,v,r"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur"))
+ fi
+ ;;
+ esac
+ ;;
+ destroy)
+ if ! __zfs_complete_switch "d,f,n,p,R,r,v"
+ then
+ __zfs_complete_multiple_options "$(__zfs_match_multiple_snapshots)" $cur
+ fi
+ ;;
+ *)
+ COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
+ ;;
+ esac
+ __ltrim_colon_completions "$cur"
+ return 0
+}
+
+__zpool_get_commands()
+{
+ $__ZPOOL_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq
+}
+
+__zpool_get_properties()
+{
+ $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all
+}
+
+__zpool_get_editable_properties()
+{
+ $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}'
+}
+
+__zpool_list_pools()
+{
+ $__ZPOOL_CMD list -H -o name
+}
+
+__zpool_complete()
+{
+ local cur prev cmd cmds
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ cmd="${COMP_WORDS[1]}"
+
+ if [[ ${prev##*/} == zpool ]]
+ then
+ cmds=$(__zpool_get_commands)
+ COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
+ return 0
+ fi
+
+ case "${cmd}" in
+ get)
+ __zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur
+ return 0
+ ;;
+ import)
+ if [[ $prev == -d ]]
+ then
+ _filedir -d
+ else
+ COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur"))
+ fi
+ return 0
+ ;;
+ set)
+ __zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur
+ return 0
+ ;;
+ add|attach|clear|create|detach|offline|online|remove|replace)
+ local pools="$(__zpool_list_pools)"
+ if __zfs_argument_chosen $pools
+ then
+ _filedir
+ else
+ COMPREPLY=($(compgen -W "$pools" -- "$cur"))
+ fi
+ return 0
+ ;;
+ *)
+ COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur"))
+ return 0
+ ;;
+ esac
+
+}
+
+complete -F __zfs_complete zfs
+complete -F __zpool_complete zpool
diff --git a/sys-fs/zfs/files/zed b/sys-fs/zfs/files/zed
new file mode 100644
index 000000000000..d46acfacb4a3
--- /dev/null
+++ b/sys-fs/zfs/files/zed
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need zfs
+}
+
+start() {
+ ebegin "Starting ZFS Event daemon"
+
+ checkpath -q -d -m 0755 /var/run/zed
+
+ start-stop-daemon --start -q \
+ --exec /sbin/zed -- -M \
+ -p /var/run/zed/pid
+ eend $?
+
+}
+
+stop() {
+ebegin "Stopping ZFS Event daemon"
+ start-stop-daemon --stop -q --pidfile /var/run/zed/pid
+eend $?
+}
diff --git a/sys-fs/zfs/files/zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch b/sys-fs/zfs/files/zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch
new file mode 100644
index 000000000000..b493424a1e77
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch
@@ -0,0 +1,34 @@
+From 399f60c8b47f7513d078a7c181ff132e2cafdd15 Mon Sep 17 00:00:00 2001
+From: Richard Yao <ryao@cs.stonybrook.edu>
+Date: Tue, 5 Feb 2013 18:14:30 -0500
+Subject: [PATCH] Fix function relocations in libzpool
+
+binutils 2.23.1 fails in situations that generate function relocations
+on PowerPC and possibly other architectures. This causes linking of
+libzpool to fail because it depends on libnvpair. We add a dependency on
+libnvpair to lib/libzpool/Makefile.am to correct that.
+
+Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1267
+---
+ lib/libzpool/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am
+index 3e62de6..cbba388 100644
+--- a/lib/libzpool/Makefile.am
++++ b/lib/libzpool/Makefile.am
+@@ -94,7 +94,8 @@ libzpool_la_SOURCES = \
+
+ libzpool_la_LIBADD = \
+ $(top_builddir)/lib/libunicode/libunicode.la \
+- $(top_builddir)/lib/libuutil/libuutil.la
++ $(top_builddir)/lib/libuutil/libuutil.la \
++ $(top_builddir)/lib/libnvpair/libnvpair.la
+
+ libzpool_la_LDFLAGS = -pthread -version-info 1:1:0
+
+--
+1.7.10
+
diff --git a/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch b/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch
new file mode 100644
index 000000000000..f73840feeed6
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch
@@ -0,0 +1,30 @@
+From 5d3dc3fb72518a4c191e3a014622b74365eb3a74 Mon Sep 17 00:00:00 2001
+From: Mike Leddy <mike.leddy@gmail.com>
+Date: Thu, 4 Jul 2013 01:02:05 -0300
+Subject: [PATCH] Avoid abort() in vn_rdwr(): libzpool/kernel.c
+
+Make sure that buffer is aligned to 512 bytes on linux so that
+pread call combined with O_DIRECT does not return EINVAL.
+
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1570
+---
+ cmd/zdb/zdb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c
+index 936974b..a2b6bfe 100644
+--- a/cmd/zdb/zdb.c
++++ b/cmd/zdb/zdb.c
+@@ -2844,7 +2844,7 @@
+ psize = size;
+ lsize = size;
+
+- pbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL);
++ pbuf = umem_alloc_aligned(SPA_MAXBLOCKSIZE, 512, UMEM_NOFAIL);
+ lbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL);
+
+ BP_ZERO(bp);
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch b/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch
new file mode 100644
index 000000000000..00ec1057efa1
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch
@@ -0,0 +1,42 @@
+From 3db3ff4a787acf068b122562fb5be5aecec2611f Mon Sep 17 00:00:00 2001
+From: Richard Yao <ryao@gentoo.org>
+Date: Tue, 2 Jul 2013 00:07:15 -0400
+Subject: [PATCH] Use MAXPATHLEN instead of sizeof in snprintf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This silences a GCC 4.8.0 warning by fixing a programming error
+caught by static analysis:
+
+../../cmd/ztest/ztest.c: In function ‘ztest_vdev_aux_add_remove’:
+../../cmd/ztest/ztest.c:2584:33: error: argument to ‘sizeof’
+ in ‘snprintf’ call is the same expression as the destination;
+ did you mean to provide an explicit length?
+ [-Werror=sizeof-pointer-memaccess]
+ (void) snprintf(path, sizeof (path), ztest_aux_template,
+ ^
+
+Signed-off-by: Richard Yao <ryao@gentoo.org>
+Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Closes #1480
+---
+ cmd/ztest/ztest.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmd/ztest/ztest.c b/cmd/ztest/ztest.c
+index b38d7b1..93a5f1e 100644
+--- a/cmd/ztest/ztest.c
++++ b/cmd/ztest/ztest.c
+@@ -2581,7 +2581,7 @@ enum ztest_object {
+ zs->zs_vdev_aux = 0;
+ for (;;) {
+ int c;
+- (void) snprintf(path, sizeof (path), ztest_aux_template,
++ (void) snprintf(path, MAXPATHLEN, ztest_aux_template,
+ ztest_opts.zo_dir, ztest_opts.zo_pool, aux,
+ zs->zs_vdev_aux);
+ for (c = 0; c < sav->sav_count; c++)
+--
+1.8.1.6
+
diff --git a/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch b/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch
new file mode 100644
index 000000000000..b1e7d3736db0
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch
@@ -0,0 +1,167 @@
+diff --git a/module/zfs/spa.c b/module/zfs/spa.c
+index e986e92..65f78b7 100644
+--- a/module/zfs/spa.c
++++ b/module/zfs/spa.c
+@@ -64,6 +64,7 @@
+ #include <sys/zfs_ioctl.h>
+ #include <sys/dsl_scan.h>
+ #include <sys/zfeature.h>
++#include <sys/zvol.h>
+
+ #ifdef _KERNEL
+ #include <sys/bootprops.h>
+@@ -2856,6 +2857,7 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy,
+ spa_load_state_t state = SPA_LOAD_OPEN;
+ int error;
+ int locked = B_FALSE;
++ int firstopen = B_FALSE;
+
+ *spapp = NULL;
+
+@@ -2879,6 +2881,8 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy,
+ if (spa->spa_state == POOL_STATE_UNINITIALIZED) {
+ zpool_rewind_policy_t policy;
+
++ firstopen = B_TRUE;
++
+ zpool_get_rewind_policy(nvpolicy ? nvpolicy : spa->spa_config,
+ &policy);
+ if (policy.zrp_request & ZPOOL_DO_REWIND)
+@@ -2953,6 +2957,11 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy,
+ mutex_exit(&spa_namespace_lock);
+ }
+
++#ifdef _KERNEL
++ if (firstopen)
++ zvol_create_minors(spa->spa_name);
++#endif
++
+ *spapp = spa;
+
+ return (0);
+@@ -4010,6 +4019,10 @@ spa_import(const char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags)
+ mutex_exit(&spa_namespace_lock);
+ spa_history_log_version(spa, LOG_POOL_IMPORT);
+
++#ifdef _KERNEL
++ zvol_create_minors(pool);
++#endif
++
+ return (0);
+ }
+
+diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c
+index 1226b2c..a9184a1 100644
+--- a/module/zfs/zfs_ioctl.c
++++ b/module/zfs/zfs_ioctl.c
+@@ -1268,9 +1268,6 @@ zfs_ioc_pool_import(zfs_cmd_t *zc)
+ error = err;
+ }
+
+- if (error == 0)
+- zvol_create_minors(zc->zc_name);
+-
+ nvlist_free(config);
+
+ if (props)
+diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
+index 43a7bb6..e35c91b 100644
+--- a/module/zfs/zvol.c
++++ b/module/zfs/zvol.c
+@@ -1215,6 +1215,9 @@ zvol_alloc(dev_t dev, const char *name)
+
+ zv = kmem_zalloc(sizeof (zvol_state_t), KM_SLEEP);
+
++ spin_lock_init(&zv->zv_lock);
++ list_link_init(&zv->zv_next);
++
+ zv->zv_queue = blk_init_queue(zvol_request, &zv->zv_lock);
+ if (zv->zv_queue == NULL)
+ goto out_kmem;
+@@ -1248,9 +1251,6 @@ zvol_alloc(dev_t dev, const char *name)
+ sizeof (rl_t), offsetof(rl_t, r_node));
+ zv->zv_znode.z_is_zvol = TRUE;
+
+- spin_lock_init(&zv->zv_lock);
+- list_link_init(&zv->zv_next);
+-
+ zv->zv_disk->major = zvol_major;
+ zv->zv_disk->first_minor = (dev & MINORMASK);
+ zv->zv_disk->fops = &zvol_ops;
+@@ -1561,30 +1561,36 @@ zvol_init(void)
+ {
+ int error;
+
++ list_create(&zvol_state_list, sizeof (zvol_state_t),
++ offsetof(zvol_state_t, zv_next));
++ mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL);
++
+ zvol_taskq = taskq_create(ZVOL_DRIVER, zvol_threads, maxclsyspri,
+ zvol_threads, INT_MAX, TASKQ_PREPOPULATE);
+ if (zvol_taskq == NULL) {
+ printk(KERN_INFO "ZFS: taskq_create() failed\n");
+- return (-ENOMEM);
++ error = -ENOMEM;
++ goto out1;
+ }
+
+ error = register_blkdev(zvol_major, ZVOL_DRIVER);
+ if (error) {
+ printk(KERN_INFO "ZFS: register_blkdev() failed %d\n", error);
+- taskq_destroy(zvol_taskq);
+- return (error);
++ goto out2;
+ }
+
+ blk_register_region(MKDEV(zvol_major, 0), 1UL << MINORBITS,
+ THIS_MODULE, zvol_probe, NULL, NULL);
+
+- mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL);
+- list_create(&zvol_state_list, sizeof (zvol_state_t),
+- offsetof(zvol_state_t, zv_next));
++ return (0);
+
+- (void) zvol_create_minors(NULL);
++out2:
++ taskq_destroy(zvol_taskq);
++out1:
++ mutex_destroy(&zvol_state_lock);
++ list_destroy(&zvol_state_list);
+
+- return (0);
++ return (error);
+ }
+
+ void
+diff --git a/scripts/zconfig.sh b/scripts/zconfig.sh
+index 141348c..281166c 100755
+--- a/scripts/zconfig.sh
++++ b/scripts/zconfig.sh
+@@ -264,8 +264,9 @@ test_4() {
+ zconfig_zvol_device_stat 0 ${POOL_NAME} ${FULL_ZVOL_NAME} \
+ ${FULL_SNAP_NAME} ${FULL_CLONE_NAME} || fail 9
+
+- # Load the modules, wait 1 second for udev
++ # Load the modules, list the pools to ensure they are opened
+ ${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 10
++ ${ZPOOL} list &>/dev/null
+
+ # Verify the devices were created
+ zconfig_zvol_device_stat 10 ${POOL_NAME} ${FULL_ZVOL_NAME} \
+diff --git a/udev/rules.d/90-zfs.rules.in b/udev/rules.d/90-zfs.rules.in
+index 52e1d63..a2715d2 100644
+--- a/udev/rules.d/90-zfs.rules.in
++++ b/udev/rules.d/90-zfs.rules.in
+@@ -1,4 +1,4 @@
+-SUBSYSTEM!="block", GOTO="zfs_end"
++SUBSYSTEM!="block|misc", GOTO="zfs_end"
+ ACTION!="add|change", GOTO="zfs_end"
+
+ ENV{ID_FS_TYPE}=="zfs", RUN+="/sbin/modprobe zfs"
+@@ -7,4 +7,6 @@ ENV{ID_FS_TYPE}=="zfs_member", RUN+="/sbin/modprobe zfs"
+ KERNEL=="null", SYMLINK+="root"
+ SYMLINK=="null", SYMLINK+="root"
+
++SUBSYSTEM=="misc", KERNEL=="zfs", RUN+="@sbindir@/zpool list"
++
+ LABEL="zfs_end"
diff --git a/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch b/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch
new file mode 100644
index 000000000000..e794b183eb33
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch
@@ -0,0 +1,57 @@
+commit 75c2fb953c99bba008f1ef72ee71136002749f51
+Author: Richard Yao <ryao@cs.stonybrook.edu>
+Date: Tue May 28 20:08:15 2013 -0400
+
+ Improve OpenRC init script
+
+ The current zfs OpenRC script's dependencies cause OpenRC to attempt to
+ unmount ZFS filesystems at shutdown while things were still using them,
+ which would fail. This is a cosmetic issue, but it should still be
+ addressed. It probably does not affect systems where the rootfs is a
+ legacy filesystem, but any system with the rootfs on ZFS needs to run
+ the ZFS init script after the system is ready to shutdown filesystems.
+
+ OpenRC's shutdown process occurs in the reverse order of the startup
+ process. Therefore running the ZFS shutdown procedure after filesystems
+ are ready to be unmounted requires running the startup procedure before
+ fstab. This patch changes the dependencies of the script to expliclty
+ run before fstab at boot when the rootfs is ZFS and to run after fstab
+ at boot whenever the rootfs is not ZFS. This should cover most use
+ cases.
+
+ The only cases not covered well by this are systems with legacy
+ root filesystems where people want to configure fstab to mount a non-ZFS
+ filesystem off a zvol and possibly also systems whose pools are stored
+ on network block devices. The former requires that the ZFS script run
+ before fstab, which could cause ZFS datasets to mount too early and
+ appear under the fstab mount points. The latter requires that the ZFS
+ script run after networking starts, which precludes the ability to store
+ any system information on ZFS. An additional OpenRC script could be
+ written to handle non-root pools on network block devices, but that will
+ depend on user demand and developer time.
+
+ Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
+
+diff --git a/etc/init.d/zfs.gentoo.in b/etc/init.d/zfs.gentoo.in
+index 5b8671e..0034e02 100644
+--- a/etc/init.d/zfs.gentoo.in
++++ b/etc/init.d/zfs.gentoo.in
+@@ -10,9 +10,16 @@ fi
+
+ depend()
+ {
++ # Try to allow people to mix and match fstab with ZFS in a way that makes sense.
++ if [ "$(mountinfo -s /)" = 'zfs' ]
++ then
++ before localmount
++ else
++ after localmount
++ fi
++
+ # bootmisc will log to /var which may be a different zfs than root.
+- before net bootmisc
+- after udev localmount
++ before bootmisc logger
+ keyword -lxc -openvz -prefix -vserver
+ }
+
diff --git a/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch b/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch
new file mode 100644
index 000000000000..fec87d0123f3
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-0.6.5-fix-openrc-scripts.patch
@@ -0,0 +1,256 @@
+commit 3cb750b249717b43cbfcde78b44b0e38a2a61dc2
+Author: James Lee <jlee@thestaticvoid.com>
+Date: Sat Sep 19 22:00:36 2015 -0400
+
+ zfs-import: Perform verbatim import using cache file
+
+ This change modifies the import service to use the default cache file
+ to perform a verbatim import of pools at boot. This fixes code that
+ searches all devices and imported all visible pools.
+
+ Using the cache file is in keeping with the way ZFS has always worked,
+ how Solaris, Illumos, FreeBSD, and systemd performs imports, and is how
+ it is written in the man page (zpool(1M,8)):
+
+ All pools in this cache are automatically imported when the
+ system boots.
+
+ Importantly, the cache contains important information for importing
+ multipath devices, and helps control which pools get imported in more
+ dynamic environments like SANs, which may have thousands of visible
+ and constantly changing pools, which the ZFS_POOL_EXCEPTIONS variable
+ is not equipped to handle. Verbatim imports prevent rogue pools from
+ being automatically imported and mounted where they shouldn't be.
+
+ The change also stops the service from exporting pools at shutdown.
+ Exporting pools is only meant to be performed explicitly by the
+ administrator of the system.
+
+ The old behavior of searching and importing all visible pools is
+ preserved and can be switched on by heeding the warning and toggling
+ the ZPOOL_IMPORT_ALL_VISIBLE variable in /etc/default/zfs.
+
+ Closes #3777
+ Closes #3526
+
+diff --git a/etc/init.d/zfs-import.in b/etc/init.d/zfs-import.in
+index 5e21929..2258638 100755
+--- a/etc/init.d/zfs-import.in
++++ b/etc/init.d/zfs-import.in
+@@ -1,11 +1,10 @@
+ #!@SHELL@
+ #
+-# zfs-import This script will import/export zfs pools.
++# zfs-import This script will import ZFS pools
+ #
+ # chkconfig: 2345 01 99
+-# description: This script will import/export zfs pools during system
+-# boot/shutdown.
+-# It is also responsible for all userspace zfs services.
++# description: This script will perform a verbatim import of ZFS pools
++# during system boot.
+ # probe: true
+ #
+ ### BEGIN INIT INFO
+@@ -17,7 +16,7 @@
+ # X-Start-Before: checkfs
+ # X-Stop-After: zfs-mount
+ # Short-Description: Import ZFS pools
+-# Description: Run the `zpool import` or `zpool export` commands.
++# Description: Run the `zpool import` command.
+ ### END INIT INFO
+ #
+ # NOTE: Not having '$local_fs' on Required-Start but only on Required-Stop
+@@ -43,6 +42,16 @@ do_depend()
+ keyword -lxc -openvz -prefix -vserver
+ }
+
++# Use the zpool cache file to import pools
++do_verbatim_import()
++{
++ if [ -f "$ZPOOL_CACHE" ]
++ then
++ zfs_action "Importing ZFS pool(s)" \
++ "$ZPOOL" import -c "$ZPOOL_CACHE" -N -a
++ fi
++}
++
+ # Support function to get a list of all pools, separated with ';'
+ find_pools()
+ {
+@@ -60,8 +69,8 @@ find_pools()
+ echo "${pools%%;}" # Return without the last ';'.
+ }
+
+-# Import all pools
+-do_import()
++# Find and import all visible pools, even exported ones
++do_import_all_visible()
+ {
+ local already_imported available_pools pool npools
+ local exception dir ZPOOL_IMPORT_PATH RET=0 r=1
+@@ -109,7 +118,7 @@ do_import()
+ fi
+ fi
+
+- # Filter out any exceptions...
++ # Filter out any exceptions...
+ if [ -n "$ZFS_POOL_EXCEPTIONS" ]
+ then
+ local found=""
+@@ -249,41 +258,15 @@ do_import()
+ return "$RET"
+ }
+
+-# Export all pools
+-do_export()
++do_import()
+ {
+- local already_imported pool root_pool RET r
+- RET=0
+-
+- root_pool=$(get_root_pool)
+-
+- [ -n "$init" ] && zfs_log_begin_msg "Exporting ZFS pool(s)"
+-
+- # Find list of already imported pools.
+- already_imported=$(find_pools "$ZPOOL" list -H -oname)
+-
+- OLD_IFS="$IFS" ; IFS=";"
+- for pool in $already_imported; do
+- [ "$pool" = "$root_pool" ] && continue
+-
+- if [ -z "$init" ]
+- then
+- # Interactive - one 'Importing ...' line per pool
+- zfs_log_begin_msg "Exporting ZFS pool $pool"
+- else
+- # Not interactive - a dot for each pool.
+- zfs_log_progress_msg "."
+- fi
+-
+- "$ZPOOL" export "$pool"
+- r="$?" ; RET=$((RET + r))
+- [ -z "$init" ] && zfs_log_end_msg "$r"
+- done
+- IFS="$OLD_IFS"
+-
+- [ -n "$init" ] && zfs_log_end_msg "$RET"
+-
+- return "$RET"
++ if check_boolean "$ZPOOL_IMPORT_ALL_VISIBLE"
++ then
++ do_import_all_visible
++ else
++ # This is the default option
++ do_verbatim_import
++ fi
+ }
+
+ # Output the status and list of pools
+@@ -323,14 +306,6 @@ do_start()
+ fi
+ }
+
+-do_stop()
+-{
+- # Check to see if the module is even loaded.
+- check_module_loaded "zfs" || exit 0
+-
+- do_export
+-}
+-
+ # ----------------------------------------------------
+
+ if [ ! -e /etc/gentoo-release ]
+@@ -340,7 +315,7 @@ then
+ do_start
+ ;;
+ stop)
+- do_stop
++ # no-op
+ ;;
+ status)
+ do_status
+@@ -350,7 +325,7 @@ then
+ ;;
+ *)
+ [ -n "$1" ] && echo "Error: Unknown command $1."
+- echo "Usage: $0 {start|stop|status}"
++ echo "Usage: $0 {start|status}"
+ exit 3
+ ;;
+ esac
+@@ -360,6 +335,5 @@ else
+ # Create wrapper functions since Gentoo don't use the case part.
+ depend() { do_depend; }
+ start() { do_start; }
+- stop() { do_stop; }
+ status() { do_status; }
+ fi
+diff --git a/etc/init.d/zfs.in b/etc/init.d/zfs.in
+index eabb7e4..d81ef22 100644
+--- a/etc/init.d/zfs.in
++++ b/etc/init.d/zfs.in
+@@ -16,6 +16,24 @@ ZFS_SHARE='yes'
+ # Run `zfs unshare -a` during system stop?
+ ZFS_UNSHARE='yes'
+
++# By default, a verbatim import of all pools is performed at boot based on the
++# contents of the default zpool cache file. The contents of the cache are
++# managed automatically by the 'zpool import' and 'zpool export' commands.
++#
++# By setting this to 'yes', the system will instead search all devices for
++# pools and attempt to import them all at boot, even those that have been
++# exported. Under this mode, the search path can be controlled by the
++# ZPOOL_IMPORT_PATH variable and a list of pools that should not be imported
++# can be listed in the ZFS_POOL_EXCEPTIONS variable.
++#
++# Note that importing all visible pools may include pools that you don't
++# expect, such as those on removable devices and SANs, and those pools may
++# proceed to mount themselves in places you do not want them to. The results
++# can be unpredictable and possibly dangerous. Only enable this option if you
++# understand this risk and have complete physical control over your system and
++# SAN to prevent the insertion of malicious pools.
++ZPOOL_IMPORT_ALL_VISIBLE='no'
++
+ # Specify specific path(s) to look for device nodes and/or links for the
+ # pool import(s). See zpool(8) for more information about this variable.
+ # It supersedes the old USE_DISK_BY_ID which indicated that it would only
+@@ -23,6 +41,18 @@ ZFS_UNSHARE='yes'
+ # The old variable will still work in the code, but is deprecated.
+ #ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id"
+
++# List of pools that should NOT be imported at boot
++# when ZPOOL_IMPORT_ALL_VISIBLE is 'yes'.
++# This is a space separated list.
++#ZFS_POOL_EXCEPTIONS="test2"
++
++# List of pools that SHOULD be imported at boot by the initramfs
++# instead of trying to import all available pools. If this is set
++# then ZFS_POOL_EXCEPTIONS is ignored.
++# Only applicable for Debian GNU/Linux {dkms,initramfs}.
++# This is a semi-colon separated list.
++#ZFS_POOL_IMPORT="pool1;pool2"
++
+ # Should the datasets be mounted verbosely?
+ # A mount counter will be used when mounting if set to 'yes'.
+ VERBOSE_MOUNT='no'
+@@ -97,17 +127,6 @@ ZFS_INITRD_POST_MODPROBE_SLEEP='0'
+ # Example: If root FS is 'rpool/ROOT/rootfs', this would make sense.
+ #ZFS_INITRD_ADDITIONAL_DATASETS="rpool/ROOT/usr rpool/ROOT/var"
+
+-# List of pools that should NOT be imported at boot?
+-# This is a space separated list.
+-#ZFS_POOL_EXCEPTIONS="test2"
+-
+-# List of pools to import?
+-# If this variable is set, there will be NO auto-import of ANY other
+-# pool. In essence, there will be no auto detection of availible pools.
+-# This is a semi-colon separated list.
+-# Makes the variable ZFS_POOL_EXCEPTIONS above redundant (won't be checked).
+-#ZFS_POOL_IMPORT="pool1;pool2"
+-
+ # Optional arguments for the ZFS Event Daemon (ZED).
+ # See zed(8) for more information on available options.
+ #ZED_ARGS="-M"
diff --git a/sys-fs/zfs/files/zfs-init.sh.in b/sys-fs/zfs/files/zfs-init.sh.in
new file mode 100644
index 000000000000..ed84585cd5f6
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-init.sh.in
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+ZFS="@sbindir@/zfs"
+ZPOOL="@sbindir@/zpool"
+ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache"
+
+if [ -f "${ZPOOL_CACHE}" ]; then
+ "${ZPOOL}" import -c "${ZPOOL_CACHE}" -aN 2>/dev/null
+ if [ "${?}" != "0" ]; then
+ echo "Failed to import not-yet imported pools." >&2
+ fi
+fi
+
+echo "Mounting ZFS filesystems"
+"${ZFS}" mount -a
+if [ "${?}" != "0" ]; then
+ echo "Failed to mount ZFS filesystems." >&2
+ exit 1
+fi
+
+echo "Exporting ZFS filesystems"
+"${ZFS}" share -a
+if [ "${?}" != "0" ]; then
+ echo "Failed to export ZFS filesystems." >&2
+ exit 1
+fi
+
+exit 0
+
diff --git a/sys-fs/zfs/files/zfs.service.in b/sys-fs/zfs/files/zfs.service.in
new file mode 100644
index 000000000000..c390a480708e
--- /dev/null
+++ b/sys-fs/zfs/files/zfs.service.in
@@ -0,0 +1,16 @@
+[Unit]
+Description=ZFS filesystems setup
+Before=network.target
+After=systemd-udev-settle.target local-fs.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStartPre=/sbin/modprobe zfs
+ExecStartPre=/usr/bin/test -c /dev/zfs
+ExecStart=/usr/libexec/zfs-init.sh
+ExecStop=@sbindir@/zfs umount -a
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/sys-fs/zfs/metadata.xml b/sys-fs/zfs/metadata.xml
new file mode 100644
index 000000000000..75b863399dd4
--- /dev/null
+++ b/sys-fs/zfs/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ryao@gentoo.org</email>
+ <name>Richard Yao</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>fearedbliss@gentoo.org</email>
+ <name>Jonathan Vasquez</name>
+ </maintainer>
+ <use>
+ <flag name="kernel-builtin">Disable dependency on sys-fs/zfs-kmod under the assumption that ZFS is part of the kernel source tree</flag>
+ <flag name="rootfs">Enable dependencies required for booting off a pool containing a rootfs</flag>
+ <flag name="test-suite">Install regression test suite</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">zfsonlinux/zfs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-fs/zfs/zfs-0.6.0_rc13-r2.ebuild b/sys-fs/zfs/zfs-0.6.0_rc13-r2.ebuild
new file mode 100644
index 000000000000..e545cac769a8
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.0_rc13-r2.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-${PN}-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ )
+"
+
+pkg_setup() {
+ :
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs
+ rm -rf "${ED}usr/share/dracut"
+ use test-suite || rm -rf "${ED}usr/libexec"
+
+ newbashcomp "${FILESDIR}/bash-completion" zfs
+
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ [ -e "${EROOT}etc/runlevels/boot/zfs" ] \
+ || ewarn 'You should add zfs to the boot runlevel.'
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.0_rc14-r1.ebuild b/sys-fs/zfs/zfs-0.6.0_rc14-r1.ebuild
new file mode 100644
index 000000000000..3c1aed0df31b
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.0_rc14-r1.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-${PN}-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+"
+
+pkg_setup() {
+ :
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ if [ ${PV} != "9999" ]
+ then
+ epatch "${FILESDIR}/${P}-fix-libzpool-function-relocations.patch"
+ fi
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs
+ rm -rf "${ED}usr/share/dracut"
+ use test-suite || rm -rf "${ED}usr/libexec"
+
+ newbashcomp "${FILESDIR}/bash-completion" zfs
+
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ [ -e "${EROOT}etc/runlevels/boot/zfs" ] \
+ || ewarn 'You should add zfs to the boot runlevel.'
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.1-r4.ebuild b/sys-fs/zfs/zfs-0.6.1-r4.ebuild
new file mode 100644
index 000000000000..2ac499a40822
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.1-r4.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-${PN}-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="bash-completion custom-cflags kernel-builtin +rootfs selinux test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ selinux? ( sys-libs/libselinux )
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+"
+
+pkg_setup() {
+ :
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Fix OpenRC dependencies
+ epatch "${FILESDIR}/${P}-gentoo-openrc-dependencies.patch"
+
+ # Make zvol initialization asynchronous
+ epatch "${FILESDIR}/${P}-fix-zvol-initialization-r1.patch"
+
+ # Use MAXPATHLEN to silence GCC 4.8 warning
+ epatch "${FILESDIR}/${P}-fix-gcc-4.8-warning.patch"
+
+ # Avoid zdb abort
+ epatch "${FILESDIR}/${P}-avoid-zdb-abort.patch"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ $(use_with selinux)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs
+ rm -rf "${ED}usr/lib/dracut"
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ use bash-completion && newbashcomp "${FILESDIR}/bash-completion" zfs
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ [ -e "${EROOT}etc/runlevels/boot/zfs" ] \
+ || ewarn 'You should add zfs to the boot runlevel.'
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.2-r5.ebuild b/sys-fs/zfs/zfs-0.6.2-r5.ebuild
new file mode 100644
index 000000000000..fa129ce86dbb
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.2-r5.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4} )
+
+inherit python-r1
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ MY_PV=$(replace_version_separator 3 '-')
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${PN}-kmod-${MY_PV}-p4.tar.xz"
+ S="${WORKDIR}/${PN}-${PN}-${MY_PV}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL bash-completion? ( MIT )"
+SLOT="0"
+IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs selinux test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ selinux? ( sys-libs/libselinux )
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+"
+
+pkg_setup() {
+ :
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${PN}-kmod-${MY_PV}-patches"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ $(use_with selinux)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs
+ rm -rf "${ED}usr/lib/dracut"
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ [ -e "${EROOT}etc/runlevels/boot/zfs" ] \
+ || ewarn 'You should add zfs to the boot runlevel.'
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.3-r2.ebuild b/sys-fs/zfs/zfs-0.6.3-r2.ebuild
new file mode 100644
index 000000000000..08afee227fbe
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.3-r2.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4} )
+
+inherit python-r1
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-r1.tar.xz"
+ S="${WORKDIR}/${PN}-${P}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL bash-completion? ( MIT )"
+SLOT="0"
+IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+"
+
+pkg_setup() {
+ :
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
+# Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ [ -e "${EROOT}etc/runlevels/boot/zfs" ] \
+ || ewarn 'You should add zfs to the boot runlevel.'
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.4.2.ebuild b/sys-fs/zfs/zfs-0.6.4.2.ebuild
new file mode 100644
index 000000000000..ad8286b39e3d
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.4.2.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4} )
+
+inherit python-r1
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${P}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL bash-completion? ( MIT )"
+SLOT="0"
+IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+"
+
+pkg_setup() {
+ :
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ rm -rf "${ED}usr/lib/dracut"
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+ doinitd "${FILESDIR}/zed"
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ [ -e "${EROOT}etc/runlevels/boot/zfs" ] \
+ || ewarn 'You should add zfs to the boot runlevel.'
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.10.ebuild b/sys-fs/zfs/zfs-0.6.5.10.ebuild
new file mode 100644
index 000000000000..535d86509fdf
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.10.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ sys-fs/udev-init-scripts
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.11.ebuild b/sys-fs/zfs/zfs-0.6.5.11.ebuild
new file mode 100644
index 000000000000..535d86509fdf
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.11.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ sys-fs/udev-init-scripts
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.2-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.2-r1.ebuild
new file mode 100644
index 000000000000..b202c6dc5ffd
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.2-r1.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4} )
+
+inherit python-r1 linux-info
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${P}"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL bash-completion? ( MIT )"
+SLOT="0"
+IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+if [ ${PV} != "9999" ]
+ then
+ # Fix OpenRC scripts
+ epatch "${FILESDIR}/zfs-0.6.5-fix-openrc-scripts.patch"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild
new file mode 100644
index 000000000000..bff26ccbf7da
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild
@@ -0,0 +1,225 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-p0.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? (
+ =sys-fs/zfs-kmod-${PV}*
+ !<sys-fs/zfs-kmod-0.6.5.3-r1
+ )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+ einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and "
+ einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable "
+ einfo "/dev/zfs API developed by ClusterHQ. This means that situations "
+ einfo "arising from the kernel modules and userland tools being "
+ einfo "mismatched on future updates will not cause problems."
+ einfo
+ einfo "In specific, this should solve the failure to mount filesystems when "
+ einfo "old modules are cached in an old initramfs provided that those "
+ einfo "modules support this API"
+ if use rootfs
+ then
+ einfo
+ ewarn "The older modules will *NOT* work with the new userland code."
+ ewarn "It is very important that you update your initramfs after this "
+ ewarn "update."
+ fi
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.3-r3.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r3.ebuild
new file mode 100644
index 000000000000..5738ad4a5d9e
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.3-r3.ebuild
@@ -0,0 +1,229 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-p2.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? (
+ =sys-fs/zfs-kmod-${PV}*
+ !<sys-fs/zfs-kmod-0.6.5.3-r1
+ )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+ einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and "
+ einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable "
+ einfo "/dev/zfs API developed by ClusterHQ. This means that situations "
+ einfo "arising from the kernel modules and userland tools being "
+ einfo "mismatched on future updates will not cause problems."
+ einfo
+ einfo "In specific, this should solve the failure to mount filesystems when "
+ einfo "old modules are cached in an old initramfs provided that those "
+ einfo "modules support this API"
+ if use rootfs
+ then
+ einfo
+ ewarn "The older modules will *NOT* work with the new userland code."
+ ewarn "It is very important that you update your initramfs after this "
+ ewarn "update."
+ fi
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.3-r4.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r4.ebuild
new file mode 100644
index 000000000000..7e7b6f6cd9d4
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.3-r4.ebuild
@@ -0,0 +1,229 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-p3.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? (
+ =sys-fs/zfs-kmod-${PV}*
+ !<sys-fs/zfs-kmod-0.6.5.3-r1
+ )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+ einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and "
+ einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable "
+ einfo "/dev/zfs API developed by ClusterHQ. This means that situations "
+ einfo "arising from the kernel modules and userland tools being "
+ einfo "mismatched on future updates will not cause problems."
+ einfo
+ einfo "In specific, this should solve the failure to mount filesystems when "
+ einfo "old modules are cached in an old initramfs provided that those "
+ einfo "modules support this API"
+ if use rootfs
+ then
+ einfo
+ ewarn "The older modules will *NOT* work with the new userland code."
+ ewarn "It is very important that you update your initramfs after this "
+ ewarn "update."
+ fi
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.3-r5.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r5.ebuild
new file mode 100644
index 000000000000..a16b87cb3010
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.3-r5.ebuild
@@ -0,0 +1,229 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-p$((${PR#r} - 1)).tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? (
+ =sys-fs/zfs-kmod-${PV}*
+ !<sys-fs/zfs-kmod-0.6.5.3-r1
+ )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+ einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and "
+ einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable "
+ einfo "/dev/zfs API developed by ClusterHQ. This means that situations "
+ einfo "arising from the kernel modules and userland tools being "
+ einfo "mismatched on future updates will not cause problems."
+ einfo
+ einfo "In specific, this should solve the failure to mount filesystems when "
+ einfo "old modules are cached in an old initramfs provided that those "
+ einfo "modules support this API"
+ if use rootfs
+ then
+ einfo
+ ewarn "The older modules will *NOT* work with the new userland code."
+ ewarn "It is very important that you update your initramfs after this "
+ ewarn "update."
+ fi
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.3.ebuild b/sys-fs/zfs/zfs-0.6.5.3.ebuild
new file mode 100644
index 000000000000..9e43172c6aa8
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.3.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.4-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.4-r1.ebuild
new file mode 100644
index 000000000000..aea524fba7b0
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.4-r1.ebuild
@@ -0,0 +1,229 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-p${PR#r}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? (
+ =sys-fs/zfs-kmod-${PV}*
+ !<sys-fs/zfs-kmod-0.6.5.3-r1
+ )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+ einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and "
+ einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable "
+ einfo "/dev/zfs API developed by ClusterHQ. This means that situations "
+ einfo "arising from the kernel modules and userland tools being "
+ einfo "mismatched on future updates will not cause problems."
+ einfo
+ einfo "In specific, this should solve the failure to mount filesystems when "
+ einfo "old modules are cached in an old initramfs provided that those "
+ einfo "modules support this API"
+ if use rootfs
+ then
+ einfo
+ ewarn "The older modules will *NOT* work with the new userland code."
+ ewarn "It is very important that you update your initramfs after this "
+ ewarn "update."
+ fi
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.4-r2.ebuild b/sys-fs/zfs/zfs-0.6.5.4-r2.ebuild
new file mode 100644
index 000000000000..aea524fba7b0
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.4-r2.ebuild
@@ -0,0 +1,229 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-p${PR#r}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? (
+ =sys-fs/zfs-kmod-${PV}*
+ !<sys-fs/zfs-kmod-0.6.5.3-r1
+ )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+ einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and "
+ einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable "
+ einfo "/dev/zfs API developed by ClusterHQ. This means that situations "
+ einfo "arising from the kernel modules and userland tools being "
+ einfo "mismatched on future updates will not cause problems."
+ einfo
+ einfo "In specific, this should solve the failure to mount filesystems when "
+ einfo "old modules are cached in an old initramfs provided that those "
+ einfo "modules support this API"
+ if use rootfs
+ then
+ einfo
+ ewarn "The older modules will *NOT* work with the new userland code."
+ ewarn "It is very important that you update your initramfs after this "
+ ewarn "update."
+ fi
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.4.ebuild b/sys-fs/zfs/zfs-0.6.5.4.ebuild
new file mode 100644
index 000000000000..706e33be491b
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.4.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.6.ebuild b/sys-fs/zfs/zfs-0.6.5.6.ebuild
new file mode 100644
index 000000000000..706e33be491b
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.6.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.7.ebuild b/sys-fs/zfs/zfs-0.6.5.7.ebuild
new file mode 100644
index 000000000000..706e33be491b
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.7.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.8-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.8-r1.ebuild
new file mode 100644
index 000000000000..535d86509fdf
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.8-r1.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ sys-fs/udev-init-scripts
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.8.ebuild b/sys-fs/zfs/zfs-0.6.5.8.ebuild
new file mode 100644
index 000000000000..706e33be491b
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.8.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ !>=sys-fs/udev-init-scripts-28
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.6.5.9.ebuild b/sys-fs/zfs/zfs-0.6.5.9.ebuild
new file mode 100644
index 000000000000..535d86509fdf
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.5.9.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+ sys-fs/udev-init-scripts
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.7.0-r2.ebuild b/sys-fs/zfs/zfs-0.7.0-r2.ebuild
new file mode 100644
index 000000000000..b20cb49f36ad
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.7.0-r2.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ !<sys-kernel/genkernel-3.5.1.1
+ !<sys-kernel/genkernel-next-67
+ !<sys-kernel/bliss-initramfs-7.1.0
+ !<sys-kernel/dracut-044-r1
+ )
+ sys-fs/udev-init-scripts
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-0.7.1-r1.ebuild b/sys-fs/zfs/zfs-0.7.1-r1.ebuild
new file mode 100644
index 000000000000..c5bf93725371
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.7.1-r1.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS=" ~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ !<sys-kernel/genkernel-3.5.1.1
+ !<sys-kernel/genkernel-next-67
+ !<sys-kernel/bliss-initramfs-7.1.0
+ !<sys-kernel/dracut-044-r1
+ )
+ sys-fs/udev-init-scripts
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-fs/zfs/zfs-9999.ebuild b/sys-fs/zfs/zfs-9999.ebuild
new file mode 100644
index 000000000000..73df3b10b913
--- /dev/null
+++ b/sys-fs/zfs/zfs-9999.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ if use kernel_linux && use test-suite; then
+ linux-info_pkg_setup
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ # recheck that we don't have usblp to collide with libusb
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [ ] Loopback device support"
+ fi
+ fi
+ fi
+ fi
+
+}
+
+src_prepare() {
+ # Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ if use kernel-builtin
+ then
+ einfo "kernel-builtin enabled, removing module loading from"
+ einfo "systemd units."
+ sed -i -e '/modprobe\ zfs/d' etc/systemd/system/*.service.in || die
+ fi
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+ if use kernel-builtin
+ then
+ sed -i -e '/modprobe\ zfs/d' "${T}/zfs.service" || die
+ fi
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+ bashcomp_alias zfs zpool
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+ then
+ einfo 'The zfs boot script has been split into the zfs-import,'
+ einfo 'zfs-mount and zfs-share scripts.'
+ einfo
+ einfo 'You had the zfs script in your boot runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the three'
+ einfo 'scripts that replace it have been configured to start.'
+ einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+ einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+ rm "${EROOT}etc/runlevels/boot/zfs"
+ ln -snf "${EROOT}etc/init.d/zfs-import" \
+ "${EROOT}etc/runlevels/boot/zfs-import"
+ ln -snf "${EROOT}etc/init.d/zfs-mount" \
+ "${EROOT}etc/runlevels/boot/zfs-mount"
+ ln -snf "${EROOT}etc/init.d/zfs-share" \
+ "${EROOT}etc/runlevels/default/zfs-share"
+ else
+ [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+ einfo "You should add zfs-share to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/default/zed" ]
+ then
+ einfo 'The downstream OpenRC zed script has replaced by the upstream'
+ einfo 'OpenRC zfs-zed script.'
+ einfo
+ einfo 'You had the zed script in your default runlevel. For your'
+ einfo 'convenience, it has been automatically removed and the zfs-zed'
+ einfo 'script that replaced it has been configured to start.'
+
+ rm "${EROOT}etc/runlevels/boot/zed"
+ ln -snf "${EROOT}etc/init.d/zfs-sed" \
+ "${EROOT}etc/runlevels/default/zfs-zed"
+ else
+ [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+
+ if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}