diff options
Diffstat (limited to 'sys-fs')
22 files changed, 876 insertions, 0 deletions
diff --git a/sys-fs/aufs-util/aufs-util-99999999.ebuild b/sys-fs/aufs-util/aufs-util-99999999.ebuild new file mode 100644 index 00000000..b4264e15 --- /dev/null +++ b/sys-fs/aufs-util/aufs-util-99999999.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +EGIT_REPO_URI="git://aufs.git.sourceforge.net/gitroot/aufs/aufs-util.git" +EGIT_BRANCH="aufs3.9" +inherit eutils git-r3 linux-info multilib + +DESCRIPTION="Userspace tools for aufs" +HOMEPAGE="http://aufs.sourceforge.net/" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0/3.9" +# Since this is a live ebuild, we require ACCEPT_KEYWORDS='**' +#KEYWORDS="~amd64 ~x86" +KEYWORDS="" +IUSE="" +PROPERTIES="live" + +RDEPEND="" +DEPEND="dev-vcs/git[curl]" + +src_prepare() { + local i l + ln -s "${KERNEL_DIR}"/include local_kernel + set -- local_kernel/linux/aufs*.h + test -e "${1}" || { + eerror "It seems you do not have installed aufs into your kernel tree." + die "You might need to emerge >=sys-fs/aufs-99999999::mv" + } + l="s|/usr/lib|$(get_libdir)|" + sed -i -e "1iCFLAGS += -I./local_kernel -include linux/compiler.h" -e "${l}" Makefile || \ + die "Patching Makefile failed" + for i in lib*/Makefile + do test -e "${i}" || continue + sed -i -e "1iCFLAGS += -I../local_kernel" -e "${l}" "${i}" || \ + die "Patching ${i} failed" + done + epatch_user +} diff --git a/sys-fs/aufs-util/metadata.xml b/sys-fs/aufs-util/metadata.xml new file mode 100644 index 00000000..73a6d343 --- /dev/null +++ b/sys-fs/aufs-util/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> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> +</pkgmetadata> diff --git a/sys-fs/aufs/aufs-99999999.ebuild b/sys-fs/aufs/aufs-99999999.ebuild new file mode 100644 index 00000000..f986d375 --- /dev/null +++ b/sys-fs/aufs/aufs-99999999.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +EGIT_REPO_URI="git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git" +EGIT_BRANCH="aufs3.0" +inherit eutils git-r3 linux-info + +DESCRIPTION="An entirely re-designed and re-implemented Unionfs" +HOMEPAGE="http://aufs.sourceforge.net/" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0/3" +# Since this is a live ebuild with unstable versions in portage we require +# that the user unmasks this ebuild with ACCEPT_KEYWORDS='**' +#KEYWORDS="~amd64 ~x86" +KEYWORDS="" +IUSE="kernel-patch all-patches" +PROPERTIES="live" + +RDEPEND="!sys-fs/aufs2 + !sys-fs/aufs3" +DEPEND="dev-vcs/git[curl]" + +declare -a my_patchlist + +fill_my_patchlist() { + local i + my_patchlist=() + for i + do case ${i} in + *.patch|*.diff) + ! test -f "${i}" || my_patchlist+=("${i}");; + esac + done +} + +apply_my_patch() { + local r + r= + if [ ${#} -gt 1 ] + then shift + r='-R' + fi + patch ${r} -p1 --dry-run --force <"${1}" >/dev/null || return + einfo "Applying kernel patch ${1}${r:+ reversely}" + patch ${r} -p1 --force --no-backup-if-mismatch <"${1}" >/dev/null || { + eerror "applying kernel patch ${1}${r:+ reversely} failed." + eerror "Since dry run succeeded this is probably a problem with write permissions." + die "With USE=-kernel-patch you avoid automatic patching attempts." + } +} + +apply_my_patchlist() { + local r i + r= + if [ ${#} -gt 0 ] + then shift + r='-R' + fi + set -- + for i in "${my_patchlist[@]}" + do if use all-patches || case "${i}" in + aufs*) + :;; + *) + false;; + esac + then apply_my_patch ${r} "${i}" || set -- "${@}" "${i}" + else einfo "Kernel patch ${i} - skipping as all-patches is not set" + fi + done + for i + do apply_my_patch ${r} "${i}" || \ + ewarn "Kernel patch ${i} cannot be${r:+ reverse} applied - skipping." + done +} + +pkg_setup() { + linux-info_pkg_setup + + # kernel version check + if kernel_is lt 2 6 26 + then + eerror "${PN} is being developed and tested on linux-2.6.26 and later." + eerror "Make sure you have a proper kernel version!" + die "Wrong kernel version" + fi + + if [ -n "${AUFSBRANCH}" ] + then EGIT_BRANCH="${AUFSBRANCH}" + else if kernel_is lt 3 0 + then [ -n "${KV_PATCH}" ] && EGIT_BRANCH="aufs2.2-${KV_PATCH}" + else [ -n "${KV_MINOR}" ] && EGIT_BRANCH="aufs${KV_MAJOR}.${KV_MINOR}" + fi + case ${EGIT_BRANCH} in + aufs3.7) + EGIT_BRANCH="aufs3.x-rcN";; + esac + fi + elog + elog "Using aufs branch: ${EGIT_BRANCH}" + elog "If this guess for the branch is wrong, set AUFSBRANCH." + elog "For example, to use the aufs3.0 branch for kernel version 3.0, use:" + elog " AUFSBRANCH=aufs3.0 emerge -1 aufs" + elog + elog "To find out names of testing branches you might want to use" + elog "( cd ${EGIT_DIR} && git log --decorate --graph --all --full-history )" + if [ -n "${EVCS_OFFLINE}" ] + then elog + elog "Note that it might be necessary in addition to fetch the newest aufs:" + elog "Set EVCS_OFFLINE='' in the environment and be online during emerge." + fi + elog + + use kernel-patch || return 0 + ( + set -- + cd -- "${KV_DIR}" >/dev/null 2>&1 && \ + fill_my_patchlist *.patch *.diff && apply_my_patchlist -R + ) +} + +src_prepare() { + local i j w v newest all + epatch_user + all="2.2.0 2.2.1 2.2.2 2.2.2.r1 2.9.1" + newest=${all##* } + v= + for i in ${GRSECURITYPATCHVER-+} + do case ${i} in + '+') + j=${newest};; + '*') + j=${all};; + *) + w=: + for j in ${all} + do [ "${i}" = "${j}" ] && w=false && continue + done + if ${w} + then warn "GRSECURITYPATCHVER contains bad version ${i}" + else j="${i}" + fi;; + esac + v="${v} ${j}" + done + v=${v# } + elog + elog "Using GRSECURITYPATCHVER: ${v}" + elog "If you want other patches, set GRSECURITYPATCHVER to some or more of:" + elog "${all} +" + elog "The special value + means the newest version (${newest}) and is default." + elog "The special value * means all versions." + elog + for i in ${v} + do j="grsecurity-${i}.patch" + cp -p -- "${FILESDIR}/${j}" "aufs-${j}" || die "copying ${j} failed" + done +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + local i k dk + i="Documentation/filesystems/aufs/aufs.5" + test -e "${i}" && doman "${i}" + k="$(readlink -f -- "${KV_DIR}")" && [ -n "${k}" ] || k="${KV_DIR}" + dk="${D}/${k}" + dodir "${k}/fs/aufs" + cp -pPR -- fs/aufs/* "${dk}/fs/aufs" + cp -pPR -- include "${dk}" + find "${dk}"/include -name Kbuild -type f -exec rm -v -- '{}' ';' + fill_my_patchlist *.patch *.diff + cp -pPR -- "${my_patchlist[@]}" "${dk}" +} + +pkg_postinst() { + [ "${#my_patchlist[@]}" -eq 0 ] && { + cd -- "${KV_DIR}" >/dev/null 2>&1 && fill_my_patchlist *.patch *.diff + } + if use kernel-patch + then cd -- "${KV_DIR}" >/dev/null 2>&1 || die "cannot cd to ${KV_DIR}" + apply_my_patchlist + elog "Your kernel has been patched. Cleanup and recompile it, selecting" + else elog "You will have to apply the following patch to your kernel:" + elog " cd ${KV_DIR} && cat ${my_patchlist[*]} | patch -p1 --no-backup-if-mismatch" + elog "Then cleanup and recompile your kernel, selecting" + fi + elog " Filesystems/Miscellaneous Filesystems/aufs" + elog "in the configuration phase." +} diff --git a/sys-fs/aufs/files/grsecurity-2.2.0.patch b/sys-fs/aufs/files/grsecurity-2.2.0.patch new file mode 100644 index 00000000..5c805ba7 --- /dev/null +++ b/sys-fs/aufs/files/grsecurity-2.2.0.patch @@ -0,0 +1,61 @@ +--- linux/include/linux/fs.h ++++ linux/include/linux/fs.h +@@ -575,41 +575,41 @@ + unsigned long, unsigned long); + + struct address_space_operations { +- int (* const writepage)(struct page *page, struct writeback_control *wbc); +- int (* const readpage)(struct file *, struct page *); +- void (* const sync_page)(struct page *); ++ int (*writepage)(struct page *page, struct writeback_control *wbc); ++ int (*readpage)(struct file *, struct page *); ++ void (*sync_page)(struct page *); + + /* Write back some dirty pages from this mapping. */ +- int (* const writepages)(struct address_space *, struct writeback_control *); ++ int (*writepages)(struct address_space *, struct writeback_control *); + + /* Set a page dirty. Return true if this dirtied it */ +- int (* const set_page_dirty)(struct page *page); ++ int (*set_page_dirty)(struct page *page); + +- int (* const readpages)(struct file *filp, struct address_space *mapping, ++ int (*readpages)(struct file *filp, struct address_space *mapping, + struct list_head *pages, unsigned nr_pages); + +- int (* const write_begin)(struct file *, struct address_space *mapping, ++ int (*write_begin)(struct file *, struct address_space *mapping, + loff_t pos, unsigned len, unsigned flags, + struct page **pagep, void **fsdata); +- int (* const write_end)(struct file *, struct address_space *mapping, ++ int (*write_end)(struct file *, struct address_space *mapping, + loff_t pos, unsigned len, unsigned copied, + struct page *page, void *fsdata); + + /* Unfortunately this kludge is needed for FIBMAP. Don't use it */ +- sector_t (* const bmap)(struct address_space *, sector_t); +- void (* const invalidatepage) (struct page *, unsigned long); +- int (* const releasepage) (struct page *, gfp_t); +- ssize_t (* const direct_IO)(int, struct kiocb *, const struct iovec *iov, ++ sector_t (*bmap)(struct address_space *, sector_t); ++ void (*invalidatepage) (struct page *, unsigned long); ++ int (*releasepage) (struct page *, gfp_t); ++ ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, + loff_t offset, unsigned long nr_segs); +- int (* const get_xip_mem)(struct address_space *, pgoff_t, int, ++ int (*get_xip_mem)(struct address_space *, pgoff_t, int, + void **, unsigned long *); + /* migrate the contents of a page to the specified target */ +- int (* const migratepage) (struct address_space *, ++ int (*migratepage) (struct address_space *, + struct page *, struct page *); +- int (* const launder_page) (struct page *); +- int (* const is_partially_uptodate) (struct page *, read_descriptor_t *, ++ int (*launder_page) (struct page *); ++ int (*is_partially_uptodate) (struct page *, read_descriptor_t *, + unsigned long); +- int (* const error_remove_page)(struct address_space *, struct page *); ++ int (*error_remove_page)(struct address_space *, struct page *); + }; + + /* diff --git a/sys-fs/aufs/files/grsecurity-2.2.1.patch b/sys-fs/aufs/files/grsecurity-2.2.1.patch new file mode 100644 index 00000000..8396dfd1 --- /dev/null +++ b/sys-fs/aufs/files/grsecurity-2.2.1.patch @@ -0,0 +1,63 @@ +--- linux/include/linux/fs.h ++++ linux/include/linux/fs.h +@@ -583,42 +583,42 @@ + unsigned long, unsigned long); + + struct address_space_operations { +- int (* const writepage)(struct page *page, struct writeback_control *wbc); +- int (* const readpage)(struct file *, struct page *); +- void (* const sync_page)(struct page *); ++ int (*writepage)(struct page *page, struct writeback_control *wbc); ++ int (*readpage)(struct file *, struct page *); ++ void (*sync_page)(struct page *); + + /* Write back some dirty pages from this mapping. */ +- int (* const writepages)(struct address_space *, struct writeback_control *); ++ int (*writepages)(struct address_space *, struct writeback_control *); + + /* Set a page dirty. Return true if this dirtied it */ +- int (* const set_page_dirty)(struct page *page); ++ int (*set_page_dirty)(struct page *page); + +- int (* const readpages)(struct file *filp, struct address_space *mapping, ++ int (*readpages)(struct file *filp, struct address_space *mapping, + struct list_head *pages, unsigned nr_pages); + +- int (* const write_begin)(struct file *, struct address_space *mapping, ++ int (*write_begin)(struct file *, struct address_space *mapping, + loff_t pos, unsigned len, unsigned flags, + struct page **pagep, void **fsdata); +- int (* const write_end)(struct file *, struct address_space *mapping, ++ int (*write_end)(struct file *, struct address_space *mapping, + loff_t pos, unsigned len, unsigned copied, + struct page *page, void *fsdata); + + /* Unfortunately this kludge is needed for FIBMAP. Don't use it */ +- sector_t (* const bmap)(struct address_space *, sector_t); +- void (* const invalidatepage) (struct page *, unsigned long); +- int (* const releasepage) (struct page *, gfp_t); +- void (* const freepage)(struct page *); +- ssize_t (* const direct_IO)(int, struct kiocb *, const struct iovec *iov, ++ sector_t (*bmap)(struct address_space *, sector_t); ++ void (*invalidatepage) (struct page *, unsigned long); ++ int (*releasepage) (struct page *, gfp_t); ++ void (*freepage)(struct page *); ++ ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, + loff_t offset, unsigned long nr_segs); +- int (* const get_xip_mem)(struct address_space *, pgoff_t, int, ++ int (*get_xip_mem)(struct address_space *, pgoff_t, int, + void **, unsigned long *); + /* migrate the contents of a page to the specified target */ +- int (* const migratepage) (struct address_space *, ++ int (*migratepage) (struct address_space *, + struct page *, struct page *); +- int (* const launder_page) (struct page *); +- int (* const is_partially_uptodate) (struct page *, read_descriptor_t *, ++ int (*launder_page) (struct page *); ++ int (*is_partially_uptodate) (struct page *, read_descriptor_t *, + unsigned long); +- int (* const error_remove_page)(struct address_space *, struct page *); ++ int (*error_remove_page)(struct address_space *, struct page *); + }; + + /* diff --git a/sys-fs/aufs/files/grsecurity-2.2.2.patch b/sys-fs/aufs/files/grsecurity-2.2.2.patch new file mode 100644 index 00000000..9a38594d --- /dev/null +++ b/sys-fs/aufs/files/grsecurity-2.2.2.patch @@ -0,0 +1,61 @@ +--- linux/include/linux/fs.h ++++ linux/include/linux/fs.h +@@ -580,41 +580,41 @@ + unsigned long, unsigned long); + + struct address_space_operations { +- int (* const writepage)(struct page *page, struct writeback_control *wbc); +- int (* const readpage)(struct file *, struct page *); ++ int (*writepage)(struct page *page, struct writeback_control *wbc); ++ int (*readpage)(struct file *, struct page *); + + /* Write back some dirty pages from this mapping. */ +- int (* const writepages)(struct address_space *, struct writeback_control *); ++ int (*writepages)(struct address_space *, struct writeback_control *); + + /* Set a page dirty. Return true if this dirtied it */ +- int (* const set_page_dirty)(struct page *page); ++ int (*set_page_dirty)(struct page *page); + +- int (* const readpages)(struct file *filp, struct address_space *mapping, ++ int (*readpages)(struct file *filp, struct address_space *mapping, + struct list_head *pages, unsigned nr_pages); + +- int (* const write_begin)(struct file *, struct address_space *mapping, ++ int (*write_begin)(struct file *, struct address_space *mapping, + loff_t pos, unsigned len, unsigned flags, + struct page **pagep, void **fsdata); +- int (* const write_end)(struct file *, struct address_space *mapping, ++ int (*write_end)(struct file *, struct address_space *mapping, + loff_t pos, unsigned len, unsigned copied, + struct page *page, void *fsdata); + + /* Unfortunately this kludge is needed for FIBMAP. Don't use it */ +- sector_t (* const bmap)(struct address_space *, sector_t); +- void (* const invalidatepage) (struct page *, unsigned long); +- int (* const releasepage) (struct page *, gfp_t); +- void (* const freepage)(struct page *); +- ssize_t (* const direct_IO)(int, struct kiocb *, const struct iovec *iov, ++ sector_t (*bmap)(struct address_space *, sector_t); ++ void (*invalidatepage) (struct page *, unsigned long); ++ int (*releasepage) (struct page *, gfp_t); ++ void (*freepage)(struct page *); ++ ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, + loff_t offset, unsigned long nr_segs); +- int (* const get_xip_mem)(struct address_space *, pgoff_t, int, ++ int (*get_xip_mem)(struct address_space *, pgoff_t, int, + void **, unsigned long *); + /* migrate the contents of a page to the specified target */ +- int (* const migratepage) (struct address_space *, ++ int (*migratepage) (struct address_space *, + struct page *, struct page *); +- int (* const launder_page) (struct page *); +- int (* const is_partially_uptodate) (struct page *, read_descriptor_t *, ++ int (*launder_page) (struct page *); ++ int (*is_partially_uptodate) (struct page *, read_descriptor_t *, + unsigned long); +- int (* const error_remove_page)(struct address_space *, struct page *); ++ int (*error_remove_page)(struct address_space *, struct page *); + }; + + extern const struct address_space_operations empty_aops; diff --git a/sys-fs/aufs/files/grsecurity-2.2.2.r1.patch b/sys-fs/aufs/files/grsecurity-2.2.2.r1.patch new file mode 100644 index 00000000..743b7bb7 --- /dev/null +++ b/sys-fs/aufs/files/grsecurity-2.2.2.r1.patch @@ -0,0 +1,15 @@ +--- linux/include/linux/fs.h ++++ linux/include/linux/fs.h +@@ -619,7 +619,11 @@ + int (*is_partially_uptodate) (struct page *, read_descriptor_t *, + unsigned long); + int (*error_remove_page)(struct address_space *, struct page *); +-}; ++} ++#ifdef CONFIG_GRKERNSEC ++__no_const ++#endif ++; + + extern const struct address_space_operations empty_aops; + diff --git a/sys-fs/aufs/files/grsecurity-2.9.1.patch b/sys-fs/aufs/files/grsecurity-2.9.1.patch new file mode 100644 index 00000000..699419fd --- /dev/null +++ b/sys-fs/aufs/files/grsecurity-2.9.1.patch @@ -0,0 +1,15 @@ +--- linux/include/linux/fs.h ++++ linux/include/linux/fs.h +@@ -385,7 +385,11 @@ + int (*swap_activate)(struct swap_info_struct *sis, struct file *file, + sector_t *span); + void (*swap_deactivate)(struct file *file); +-}; ++} ++#ifdef CONFIG_GRKERNSEC ++__no_const ++#endif ++; + + extern const struct address_space_operations empty_aops; + diff --git a/sys-fs/aufs/metadata.xml b/sys-fs/aufs/metadata.xml new file mode 100644 index 00000000..9632c25e --- /dev/null +++ b/sys-fs/aufs/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> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <use> + <flag name="kernel-patch">Apply the aufs kernel patches instead of just copying them</flag> + <flag name="all-patches">Apply all patches - also those which do not start with aufs</flag> + </use> +</pkgmetadata> diff --git a/sys-fs/emount/Manifest b/sys-fs/emount/Manifest new file mode 100644 index 00000000..c5b78d7e --- /dev/null +++ b/sys-fs/emount/Manifest @@ -0,0 +1 @@ +DIST emount-2.8.3.tar.gz 3828 SHA256 8431fddd142c3b646d702a4db7c1ad92e1a831bddc2591221b556c13511b9d6b SHA512 f681e3bba219e180c1451d3a3f291ab3f788e973b5cbe3dff8e2cc360352c436a866640e3080c27d70bd70e756714ec4159da24ca4f21a57b411563dc2547cb3 WHIRLPOOL 54ca6c2ce289bd0e5fc24882994fad9516626bcd015f028bfca25e48378b208285d19c123b6a341e6ebcf1bc020a9f8828925d49d198e6c78b24a2d23dc72cec diff --git a/sys-fs/emount/emount-2.8.3.ebuild b/sys-fs/emount/emount-2.8.3.ebuild new file mode 100644 index 00000000..eb56318c --- /dev/null +++ b/sys-fs/emount/emount-2.8.3.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +RESTRICT="mirror" +inherit eutils + +DESCRIPTION="mount/unmount (and create/remove) dm-crypt filesystems according to your /etc/fstab" +HOMEPAGE="https://github.com/vaeth/emount/" +SRC_URI="https://github.com/vaeth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=dev-lang/perl-5.12 + sys-fs/cryptsetup" +# || ( >=dev-lang/perl-5.6.1 >=virtual/perl-Getopt-Long-2.24 ) +# || ( >=dev-lang/perl-5.4.5 virtual/perl-File-Spec ) + +src_prepare() { + use prefix || sed -i \ + -e '1s"^#!/usr/bin/env perl$"#!'"${EPREFIX}/usr/bin/perl"'"' \ + -- bin/* || die + epatch_user +} + +src_install() { + local i + insinto /usr/bin + for i in bin/* + do if test -h "${i}" || ! test -x "${i}" + then doins "${i}" + else dobin "${i}" + fi + done + insinto /usr/share/zsh/site-functions + doins zsh/* +} diff --git a/sys-fs/emount/metadata.xml b/sys-fs/emount/metadata.xml new file mode 100644 index 00000000..a98c40b2 --- /dev/null +++ b/sys-fs/emount/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> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <upstream> + <maintainer> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <bugs-to>mailto:martin@mvath.de</bugs-to> + <remote-id type="github">vaeth/emount</remote-id> + </upstream> +</pkgmetadata> diff --git a/sys-fs/squash_dir/Manifest b/sys-fs/squash_dir/Manifest new file mode 100644 index 00000000..d20b18bb --- /dev/null +++ b/sys-fs/squash_dir/Manifest @@ -0,0 +1 @@ +DIST squash_dir-13.8.tar.gz 31453 SHA256 f123d76ef3d6572ca9e1cb1c239e2fff925cdc8ae65b4047d8b50e351004b5d1 SHA512 0f86f387077a5878612e9847602d1c2e255b79bfcbae5573a6bf413d72ff8b3246b12583ea7050188feb116e55e7704ae9dd2d02df35ce072a2205c1eadfad32 WHIRLPOOL 46bde67d35b7540a28c0a768438a46bec035dbd9c92289e42448de744b054fed4e6bc79a75cea5ab126740a486877896f31b892a661a15bfe8541eb6ed6f9671 diff --git a/sys-fs/squash_dir/metadata.xml b/sys-fs/squash_dir/metadata.xml new file mode 100644 index 00000000..8bf06804 --- /dev/null +++ b/sys-fs/squash_dir/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> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <upstream> + <maintainer> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <bugs-to>mailto:martin@mvath.de</bugs-to> + <remote-id type="github">vaeth/squash_dir</remote-id> + </upstream> + <use> + <flag name="aufs">Prefer aufs</flag> + <flag name="overlayfs">Prefer overlayfs</flag> + <flag name="unionfs-fuse">Prefer unionfs-fuse</flag> + <flag name="bundled-openrc-wrapper">Install the bundled openrc-wrapper</flag> + </use> +</pkgmetadata> diff --git a/sys-fs/squash_dir/squash_dir-13.8.ebuild b/sys-fs/squash_dir/squash_dir-13.8.ebuild new file mode 100644 index 00000000..73072d21 --- /dev/null +++ b/sys-fs/squash_dir/squash_dir-13.8.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +RESTRICT="mirror" +WANT_LIBTOOL=none +AUTOTOOLS_IN_SOURCE_BUILD=true +inherit autotools autotools-utils eutils linux-info readme.gentoo systemd + +DESCRIPTION="Keep directories compressed with squashfs. Useful for portage tree, texmf-dist" +HOMEPAGE="http://forums.gentoo.org/viewtopic-t-465367.html" +SRC_URI="https://github.com/vaeth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +#KEYWORDS="~amd64 ~ppc ~x86" +KEYWORDS="" +IUSE="aufs overlayfs bundled-openrc-wrapper unionfs-fuse" + +BOTHDEPEND="bundled-openrc-wrapper? ( !!sys-apps/openrc-wrapper )" +RDEPEND="sys-fs/squashfs-tools + !bundled-openrc-wrapper? ( sys-apps/openrc-wrapper ) + ${BOTHDEPEND} + >=app-shells/runtitle-2.3 + !<sys-fs/unionfs-fuse-0.25 + unionfs-fuse? ( sys-fs/unionfs-fuse )" +DEPEND=">=sys-devel/autoconf-2.65 + ${BOTHDEPEND}" + +DISABLE_AUTOFORMATTING="true" +DOC_CONTENTS="Please adapt ${EPREFIX}/etc/conf.d/${PN} to your needs. +It is recommended to put into your zshrc the line: +alias squash_dir='noglob squash_dir'" + +src_prepare() { + if use prefix + then sed -i \ + -e "s\"'[^']*/etc/conf[.]d/${PN}'\"'${EPREFIX}/etc/conf.d/${PN}'\"g" \ + -- "init.d/${PN}" || die + sed -i \ + -e "s\"=/etc/\"=${EPREFIX}/etc/\"" \ + -e "s\"=/usr/\"=${EPREFIX}/usr/\"" \ + -- "systemd/${PN}@.service" || die + sed -i \ + -e "s\":/usr/sbin:/sbin'\":${EPREFIX}/usr/sbin:${EPREFIX}/sbin:/usr/sbin:/sbin'\"" \ + -- "sbin/${PN}" || die + sed -i \ + -e "s\"'/lib/rc/bin:\":'${EPREFIX}/lib/rc/bin:/lib/rc/bin:\"" \ + -- "sbin/openrc-wrapper" || die + else sed -i \ + -e '1s"^#!/usr/bin/env sh$"#!'"${EPREFIX}/bin/sh"'"' \ + -- bin/* sbin/* || die + fi + epatch_user + eautoreconf +} + +src_configure() { + local order= + use unionfs-fuse && order=unionfs-fuse + use aufs && order=aufs + use overlayfs && order=overlayfs + local myeconfargs=( + --with-zsh-completion + "$(use_enable bundled-openrc-wrapper openrc-wrapper)" + "$(systemd_with_unitdir)" + ${order:+"--with-first-order=${order}"} + ) + autotools-utils_src_configure +} + +linux_config_missing() { + ! linux_config_exists || ! linux_chkconfig_present "${1}" +} + +pkg_postinst() { + readme.gentoo_pkg_postinst + local fs=overlayfs + use unionfs-fuse && fs=unionfs-fuse + use aufs && fs=aufs + use overlayfs && fs=overlayfs + if linux_config_missing 'SQUASHFS' + then ewarn "To use ${PN} activate squashfs in your kernel" + fi + case ${fs} in + overlayfs) + if linux_config_missing 'OVERLAYFS_FS' + then ewarn "To use ${PN} activate overlayfs in your kernel." + ewarn "Unless you use a patched kernel, apply e.g. top patches from some head of" + ewarn "http://git.kernel.org/?p=linux/kernel/git/mszeredi/vfs.git;a=summary" + fi;; + aufs) + if ! has_version sys-fs/aufs3 && ! has_version sys-fs/aufs2 && linux_config_missing 'AUFS_FS' + then ewarn "To use ${PN} activate aufs in your kernel. Use e.g. sys-fs/aufs*" + fi;; + esac + optfeature "improved output" 'sys-fs/squashfs-tools[progress-redirect]' + optfeature "status bar support" 'app-shells/runtitle' +} diff --git a/sys-fs/squashfs-tools/Manifest b/sys-fs/squashfs-tools/Manifest new file mode 100644 index 00000000..3b184315 --- /dev/null +++ b/sys-fs/squashfs-tools/Manifest @@ -0,0 +1 @@ +DIST squashfs4.3.tar.gz 182550 SHA256 0d605512437b1eb800b4736791559295ee5f60177e102e4d4ccd0ee241a5f3f6 SHA512 854ed7acc99920f24ecf11e0da807e5a2a162eeda55db971aba63a03f0da2c13b20ec0564a906c4b0e415bd8258b273a10208c7abc0704f2ceea773aa6148a79 WHIRLPOOL c819f416b34cc46a232b8bc385017774603f81b4a865e6b97208004c183ebad5de7d0f726be444f8cb4e1d450abed9340dab730aec0762407f034e99b39bdc06 diff --git a/sys-fs/squashfs-tools/files/squashfs-tools-4.3-quiet.patch b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-quiet.patch new file mode 100644 index 00000000..c4fe57de --- /dev/null +++ b/sys-fs/squashfs-tools/files/squashfs-tools-4.3-quiet.patch @@ -0,0 +1,56 @@ +--- 1/squashfs-tools/mksquashfs.c ++++ 1/squashfs-tools/mksquashfs.c +@@ -78,6 +78,7 @@ + #include "process_fragments.h" + + int delete = FALSE; ++int quiet = FALSE; + int fd; + struct squashfs_super_block sBlk; + +@@ -4169,7 +4170,7 @@ + + main_thread = pthread_self(); + +- printf("Parallel mksquashfs: Using %d processor%s\n", processors, ++ quiet || printf("Parallel mksquashfs: Using %d processor%s\n", processors, + processors == 1 ? "" : "s"); + + /* Restore the signal mask for the main thread */ +@@ -4687,6 +4688,9 @@ + total_bytes += total_inode_bytes + total_directory_bytes + + sizeof(struct squashfs_super_block) + total_xattr_bytes; + ++ if(quiet) ++ return; ++ + printf("\n%sSquashfs %d.%d filesystem, %s compressed, data block size" + " %d\n", exportable ? "Exportable " : "", SQUASHFS_MAJOR, + SQUASHFS_MINOR, comp->name, block_size); +@@ -5259,6 +5263,9 @@ + else if(strcmp(argv[i], "-noappend") == 0) + delete = TRUE; + ++ else if(strcmp(argv[i], "-quiet") == 0) ++ quiet = TRUE; ++ + else if(strcmp(argv[i], "-keep-as-directory") == 0) + keep_as_directory = TRUE; + +@@ -5351,6 +5358,7 @@ + "using recovery file <name>\n"); + ERROR("-no-recovery\t\tdon't generate a recovery " + "file\n"); ++ ERROR("-quiet\t\t\tno verbose output\n"); + ERROR("-info\t\t\tprint files written to filesystem\n"); + ERROR("-no-progress\t\tdon't display the progress " + "bar\n"); +@@ -5541,7 +5549,7 @@ + void *comp_data = compressor_dump_options(comp, block_size, + &size); + +- printf("Creating %d.%d filesystem on %s, block size %d.\n", ++ quiet || printf("Creating %d.%d filesystem on %s, block size %d.\n", + SQUASHFS_MAJOR, SQUASHFS_MINOR, argv[source + 1], block_size); + + /* diff --git a/sys-fs/squashfs-tools/metadata.xml b/sys-fs/squashfs-tools/metadata.xml new file mode 100644 index 00000000..1e576aae --- /dev/null +++ b/sys-fs/squashfs-tools/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>livecd</herd> + <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> +</pkgmetadata> diff --git a/sys-fs/squashfs-tools/squashfs-tools-4.3.ebuild b/sys-fs/squashfs-tools/squashfs-tools-4.3.ebuild new file mode 100644 index 00000000..7703390b --- /dev/null +++ b/sys-fs/squashfs-tools/squashfs-tools-4.3.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils flag-o-matic toolchain-funcs + +DESCRIPTION="Tool for creating compressed filesystem type squashfs. Patched to support -quiet" +HOMEPAGE="http://squashfs.sourceforge.net" +SRC_URI="mirror://sourceforge/squashfs/squashfs${PV}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~x86" +IUSE="+xz lzma lz4 lzo xattr" + +RDEPEND=" + sys-libs/zlib + !xz? ( !lzo? ( sys-libs/zlib ) ) + lz4? ( app-arch/lz4 ) + lzma? ( app-arch/xz-utils ) + lzo? ( dev-libs/lzo ) + xattr? ( sys-apps/attr ) + xz? ( app-arch/xz-utils ) +" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/squashfs${PV}/${PN}" + +src_prepare() { + epatch "${FILESDIR}/${P}-quiet.patch" + epatch_user +} + +src_configure() { + # set up make command line variables in EMAKE_SQUASHFS_CONF + EMAKE_SQUASHFS_CONF=( + $(usex lzma LZMA_XZ_SUPPORT=1 LZMA_XS_SUPPORT=0) + $(usex lzo LZO_SUPPORT=1 LZO_SUPPORT=0) + $(usex lz4 LZ4_SUPPORT=1 LZ4_SUPPORT=0) + $(usex xattr XATTR_SUPPORT=1 XATTR_SUPPORT=0) + $(usex xz XZ_SUPPORT=1 XZ_SUPPORT=0) + ) + filter-flags -fno-common + + tc-export CC +} + +src_compile() { + emake ${EMAKE_SQUASHFS_CONF[@]} +} + +src_install() { + dobin mksquashfs unsquashfs + dodoc ../README +} + +pkg_postinst() { + ewarn "This version of mksquashfs requires a 2.6.29 kernel or better" + use xz && + ewarn "XZ support requires a 2.6.38 kernel or better" +} diff --git a/sys-fs/squashmount/Manifest b/sys-fs/squashmount/Manifest new file mode 100644 index 00000000..f946a86a --- /dev/null +++ b/sys-fs/squashmount/Manifest @@ -0,0 +1 @@ +DIST squashmount-12.2.0.tar.gz 60947 SHA256 1c0bd682cecd1dafb44e2191e9c5844e9a731f91a8d65eca014a563feecbff01 SHA512 50b6356f7de8992198b950df1d86333e80fed6493bd683eca51be3beff577406f9914182ff3b5adc8956ed1337a5e2518a171e80075f60e7c1b7d1c05f4c19fc WHIRLPOOL 9afa5f3d02b71c84e7e8d7b56911a2c052f7059289ed0b344087917dac21ba07a0b65860e99fc3f682b6cec2ef1c36e4df3e1395c3b72c803df9d54007d0e348 diff --git a/sys-fs/squashmount/metadata.xml b/sys-fs/squashmount/metadata.xml new file mode 100644 index 00000000..5c80606b --- /dev/null +++ b/sys-fs/squashmount/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> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <upstream> + <maintainer> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <bugs-to>mailto:martin@mvath.de</bugs-to> + <remote-id type="github">vaeth/squashmount</remote-id> + </upstream> +</pkgmetadata> diff --git a/sys-fs/squashmount/squashmount-12.2.0.ebuild b/sys-fs/squashmount/squashmount-12.2.0.ebuild new file mode 100644 index 00000000..21864cd5 --- /dev/null +++ b/sys-fs/squashmount/squashmount-12.2.0.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +RESTRICT="mirror" +inherit eutils readme.gentoo systemd + +DESCRIPTION="Keep directories compressed with squashfs. Useful for portage tree, texmf-dist" +HOMEPAGE="http://forums.gentoo.org/viewtopic-t-465367.html +https://github.com/vaeth/squashmount/" +SRC_URI="https://github.com/vaeth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="" + +RDEPEND="!<sys-apps/openrc-0.13 + >=app-shells/runtitle-2.3 + >=dev-lang/perl-5.12 + || ( dev-perl/File-Which sys-apps/which ) + sys-fs/squashfs-tools + !<sys-fs/unionfs-fuse-0.25" +# || ( >=dev-lang/perl-5.10.1 >=virtual/perl-File-Path-2.6.5 ) +# || ( >=dev-lang/perl-5.4.5 virtual/perl-File-Spec ) +# || ( >=dev-lang/perl-5.10.1 >=virtual/perl-File-Temp-0.19 ) +# || ( >=dev-lang/perl-5.6.1 >=virtual/perl-Getopt-Long-2.24 ) +# || ( >=dev-lang/perl-5.9.3 virtual/perl-IO-Compress ) +DEPEND="" + +DISABLE_AUTOFORMATTING="true" +DOC_CONTENTS="Please adapt /etc/squashmount.pl as well as +/etc/systemd/system/squashmount.service.d/timeout.conf to your needs. + +Configure the mount point 'gentoo' only if you use sync-type = squashdelta. + +For improved output use squasfs-tools from the mv overlay. + +It is recommended to put into your zshrc the line: +alias squashmount='noglob squashmount'" + +src_prepare() { + use prefix || sed -i \ + -e '1s"^#!/usr/bin/env perl$"#!'"${EPREFIX}/usr/bin/perl"'"' \ + -- bin/* || die + epatch_user +} + +src_install() { + dobin bin/* + dodoc README ChangeLog compress.txt etc/squashmount.pl + doinitd openrc/init.d/* + systemd_dounit systemd/system/* + insinto /etc + doins -r etc/* + insinto /usr/lib/tmpfiles.d + doins tmpfiles.d/* + insinto /usr/share/zsh/site-functions + doins zsh/* + readme.gentoo_create_doc +} + +pkg_postinst() { + optfeature "status bar support" 'app-shells/runtitle' + optfeature "improved compatibility and security" 'dev-perl/File-Which' + optfeature "colored output" '>=dev-lang/perl-5.14' 'virtual/perl-Term-ANSIColor' + case " ${REPLACING_VERSIONS}" in + ' '[0-7].*|' '8.[0-6]*|' '8.7.[0-4]*) + FORCE_PRINT_ELOG="true";; + esac + readme.gentoo_pkg_postinst +} |