diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2015-03-22 09:09:58 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2015-03-22 09:09:58 +0300 |
commit | 7220bf84437c7124c7d55e55d14aa8b64abd5e1e (patch) | |
tree | 8aea6163181e69217b26b4a4bce5734b3f599ede /sys-fs | |
parent | 7ea63f88dd2bb980dc9c2d534aef0e90f7465198 (diff) |
a bit edited aufs kernel patch ebuild from mv repo
Diffstat (limited to 'sys-fs')
-rw-r--r-- | sys-fs/aufs/ChangeLog | 84 | ||||
-rw-r--r-- | sys-fs/aufs/aufs-scm.ebuild | 200 | ||||
-rw-r--r-- | sys-fs/aufs/files/grsecurity-2.2.0.patch | 61 | ||||
-rw-r--r-- | sys-fs/aufs/files/grsecurity-2.2.1.patch | 63 | ||||
-rw-r--r-- | sys-fs/aufs/files/grsecurity-2.2.2.patch | 61 | ||||
-rw-r--r-- | sys-fs/aufs/files/grsecurity-2.2.2.r1.patch | 15 | ||||
-rw-r--r-- | sys-fs/aufs/files/grsecurity-2.9.1.patch | 15 | ||||
-rw-r--r-- | sys-fs/aufs/metadata.xml | 12 |
8 files changed, 511 insertions, 0 deletions
diff --git a/sys-fs/aufs/ChangeLog b/sys-fs/aufs/ChangeLog new file mode 100644 index 0000000..f926f80 --- /dev/null +++ b/sys-fs/aufs/ChangeLog @@ -0,0 +1,84 @@ +# ChangeLog for sys-fs/aufs +# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + + 14 Sep 2013; Martin Väth <martin@mvath.de>: + Bump to git-r3.eclass. Remove support for aufs2 + + 17 Dec 2012; Martin Väth <martin@mvath.de>: + Add patch for hardened-sources-3.7.0. Improve documentation. + Special case of kernel-3.7 branch name. + + 21 Sep 2012; Martin Väth <martin@mvath.de>: + Bump to EAPI=5. Bump revision to force correct subslot + + 30 Jul 2012; Martin Väth <martin@mvath.de>: + Block sys-fs/aufs{2,3} from the gentoo main tree + + 12 May 2012; Martin Väth <martin@mvath.de>: + base->eutils + + 15 Apr 2012; Martin Väth <martin@mvath.de>: + Inherit base + + 06 Nov 2011; Martin Väth <martin@mvath.de>: + Use default EGIT_PROJECT name. Call EGIT_REPACK unless offline. + + 15 Oct 2011; Martin Väth <martin@mvath.de>: + Fix grsecurity-2.2.2.r1.patch to work without grsecurity, and + bump to aufs-99999999.3-r1 to push the change. + + 09 Sep 2011; Martin Väth <martin@mvath.de>: + Port to git-2. Remove support for ESCM_OFLINE/EGIT_OFFLINE: + This is named EVCS_OFFLINE in git-2. + + 26 Aug 2011; Martin Väth <martin@mvath.de>: + Rename aufs2-99999999->aufs-99999999.2, default to aufs2.2, + and treat GRSECURITYPATCHVER better. + Add aufs-99999999.3 for linux3.0 and aufs3.0 + + 09 Aug 2011; Martin Väth <martin@mvath.de>: + Update patches for grsecurity. + Skip patches not named aufs* (unless USE=all-patches is set). + Only install the most current grsecurity patch by default. + + 20 Jun 2011; Martin Väth <martin@mvath.de>: + Update patches for grsecurity. + + 21 Jan 2011; Martin Väth <martin@mvath.de>: + Make git checkout more stable. + Apply patches conditionally and more stable (retry after failure). + Provide patches for grsecurity (hardened-sources). + + 03 Jan 2011; Martin Väth <martin@mvath.de>: + Bump to EAPI=4. + + 21 Nov 2010; Martin Väth <martin@mvath.de>: + Default to aufs2.1. Do not install broken Kbuild files. + Call epatch only once with collected list of patches. + + 23 Aug 2010; Martin Väth <martin@mvath.de>: + Fix treatment of EGIT_PRUNE. Bump EAPI. + + 17 Mar 2010; Martin Väth <martin@mvath.de>: + Update git dependency according to package move. + + 04 Mar 2010; Martin Väth <martin@mvath.de>: + Support ESCM_OFFLINE/EGIT_OFFLINE in the same sense as git.eclass. + Output corresponding message only if *_OFFLINE is nonempty. + + 16 Jan 2010; Martin Väth <martin@mvath.de>: + Remove patch again since git.eclass is now fixed: + http://bugs.gentoo.org/show_bug.cgi?id=299204 + + 29 Dec 2009; Martin Väth <martin@mvath.de>: + Patch for broken git.eclass 1.33 2009/12/29 + + 17 Dec 2009; Martin Väth <martin@mvath.de>: + Adapt for new git.eclass 1.32 2009/12/16 + + 14 Oct 2009; Martin Väth <martin@mvath.de>: + Patch automatically instead of informing the user + + 04 Apr 2009; Martin Väth <martin@mvath.de>: + aufs2-99999999.ebuild: Initial ebuild. diff --git a/sys-fs/aufs/aufs-scm.ebuild b/sys-fs/aufs/aufs-scm.ebuild new file mode 100644 index 0000000..6fc568d --- /dev/null +++ b/sys-fs/aufs/aufs-scm.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 +EGIT_REPO_URI="git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git" +EGIT_BRANCH="aufs3.x-rcN" +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 0000000..5c805ba --- /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 0000000..8396dfd --- /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 0000000..9a38594 --- /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 0000000..743b7bb --- /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 0000000..699419f --- /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 0000000..9632c25 --- /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> |