From 932685b8b0c6cb97868129fe0086e307f98132e0 Mon Sep 17 00:00:00 2001 From: Valko Laszlo Date: Sun, 2 Apr 2017 21:12:30 +0200 Subject: [PATCH] Initial commit of existing files --- app-eselect/eselect-guile/Manifest | 4 + .../eselect-guile/eselect-guile-2.0.ebuild | 55 + app-eselect/eselect-guile/files/guile.eselect | 347 +++ .../eselect-guile/files/guile.eselect.5 | 121 + app-eselect/eselect-guile/metadata.xml | 8 + app-text/acroread/Manifest | 4 + app-text/acroread/acroread-9.5.5-r4.ebuild | 205 ++ app-text/acroread/files/gentoo_config | 10 + app-text/acroread/metadata.xml | 11 + dev-db/mongodb/Manifest | 14 + .../files/mongodb-2.4-fix-v8-pythonpath.patch | 11 + .../files/mongodb-2.6.10-fix-boost-1.57.patch | 13 + .../files/mongodb-2.6.2-fix-scons.patch | 35 + dev-db/mongodb/files/mongodb.conf-r2 | 33 + dev-db/mongodb/files/mongodb.confd-r2 | 12 + dev-db/mongodb/files/mongodb.initd-r2 | 27 + dev-db/mongodb/files/mongodb.logrotate | 13 + dev-db/mongodb/files/mongodb.service | 10 + dev-db/mongodb/files/mongos.conf-r2 | 30 + dev-db/mongodb/files/mongos.confd-r2 | 12 + dev-db/mongodb/files/mongos.initd-r2 | 27 + dev-db/mongodb/mongodb-2.6.12.ebuild | 191 ++ dev-java/oracle-jdk-bin/Manifest | 6 + .../files/fontconfig.Gentoo.properties | 161 + .../files/oracle-jdk-bin-1.7.env | 17 + .../oracle-jdk-bin-1.7.0.80.ebuild | 308 ++ dev-perl/Net-DNS/Manifest | 3 + dev-perl/Net-DNS/Net-DNS-0.740.0.ebuild | 46 + dev-perl/Net-DNS/files/Net-DNS-0.68-ar.patch | 16 + dev-python/iptools/Manifest | 2 + dev-python/iptools/iptools-0.6.1.ebuild | 33 + dev-scheme/guile/Manifest | 3 + dev-scheme/guile/guile-2.0.11-r1.ebuild | 107 + dev-scheme/guile/metadata.xml | 19 + eclass/flag-o-matic.eclass | 773 +++++ eclass/kernel-2a.eclass | 1258 ++++++++ eclass/toolchain.eclass | 2640 +++++++++++++++++ metadata/layout.conf | 1 + net-fs/samba/Manifest | 17 + net-fs/samba/files/3.6/lmhosts | 2 + net-fs/samba/files/3.6/samba.confd | 28 + net-fs/samba/files/3.6/samba.initd | 60 + net-fs/samba/files/3.6/samba.pam | 8 + net-fs/samba/files/3.6/smb.conf.default.patch | 68 + net-fs/samba/files/3.6/smbusers | 7 + net-fs/samba/files/3.6/swat.xinetd | 17 + .../samba/files/3.6/system-auth-winbind.pam | 18 + net-fs/samba/files/nmbd.service | 12 + .../files/samba-3.4.2-lib.tevent.python.mk | 6 + net-fs/samba/files/samba.conf | 2 + net-fs/samba/files/smbd.service | 12 + net-fs/samba/files/smbd.socket | 9 + net-fs/samba/files/smbd_at.service | 7 + net-fs/samba/files/winbindd.service | 12 + net-fs/samba/samba-3.6.25.ebuild | 483 +++ net-wireless/unifi/Manifest | 4 + net-wireless/unifi/files/unifi.conf | 10 + net-wireless/unifi/files/unifi.init | 26 + net-wireless/unifi/unifi-5.3.8-r1.ebuild | 56 + profiles/repo_name | 1 + sys-apps/openwsman/Manifest | 4 + sys-apps/openwsman/files/openwsmand.confd | 1 + sys-apps/openwsman/files/openwsmand.initd | 12 + sys-apps/openwsman/openwsman-2.3.6.ebuild | 87 + sys-apps/wsmancli/Manifest | 2 + sys-apps/wsmancli/wsmancli-2.3.0.ebuild | 34 + sys-fs/wimlib/Manifest | 5 + sys-fs/wimlib/wimlib-1.8.3.ebuild | 47 + sys-fs/wimlib/wimlib-1.9.2.ebuild | 46 + sys-kernel/myhardened-sources/ChangeLog | 0 sys-kernel/myhardened-sources/Manifest | 113 + .../files/kernel-cve-2016-0728.patch | 81 + ...ernel-revert-i915-fast-link-training.patch | 82 + sys-kernel/myhardened-sources/metadata.xml | 10 + .../myhardened-sources-2.6.32-r7.ebuild | 50 + .../myhardened-sources-2.6.39-r1.ebuild | 50 + .../myhardened-sources-3.11.2.ebuild | 46 + .../myhardened-sources-3.11.7.ebuild | 46 + .../myhardened-sources-3.15.10.ebuild | 45 + .../myhardened-sources-3.17.6.ebuild | 45 + .../myhardened-sources-3.17.7.ebuild | 45 + .../myhardened-sources-3.18.9.ebuild | 46 + .../myhardened-sources-3.4.2.ebuild | 52 + .../myhardened-sources-3.7.5-r1.ebuild | 47 + .../myhardened-sources-3.8.11.ebuild | 43 + .../myhardened-sources-3.8.3.ebuild | 43 + .../myhardened-sources-3.8.6.ebuild | 43 + .../myhardened-sources-3.9.9.ebuild | 48 + .../myhardened-sources-4.1.7-r1.ebuild | 49 + .../myhardened-sources-4.4.8-r1.ebuild | 49 + .../myhardened-sources-4.5.6.ebuild | 45 + .../myhardened-sources-4.7.1.ebuild | 45 + .../myhardened-sources-4.7.10.ebuild | 45 + .../myhardened-sources-4.8.13.ebuild | 45 + .../myhardened-sources-4.8.17.ebuild | 45 + updmanifests | 12 + virtual/linux-sources/ChangeLog | 11 + virtual/linux-sources/Manifest | 4 + virtual/linux-sources/linux-sources-0.ebuild | 35 + virtual/linux-sources/linux-sources-1.ebuild | 35 + virtual/linux-sources/metadata.xml | 8 + x11-base/xorg-server/Manifest | 33 + ...r-panning-and-transforms-when-constr.patch | 141 + x11-base/xorg-server/files/xdm-setup.initd-1 | 14 + x11-base/xorg-server/files/xdm.confd-4 | 10 + x11-base/xorg-server/files/xdm.initd-11 | 231 ++ .../xorg-server-1.12-ia64-fix_inx_outx.patch | 60 + .../xorg-server-1.12-unloadsubmodule.patch | 53 + .../xorg-server-1.17-cve-2015-0255-0.patch | 102 + .../xorg-server-1.17-cve-2015-0255-1.patch | 138 + .../xorg-server-1.17-cve-2015-3164-1.patch | 33 + .../xorg-server-1.17-cve-2015-3164-2.patch | 246 ++ .../xorg-server-1.17-cve-2015-3164-3.patch | 34 + .../xorg-server-1.17-ia64-fix_inx_outx.patch | 59 + ...r-panning-and-transforms-when-constr.patch | 141 + ...1.17-support-multiple-Files-sections.patch | 65 + ...server-1.17.2-uninit-clientsWritable.patch | 65 + ...1.18-support-multiple-Files-sections.patch | 53 + .../files/xorg-server-1.18-sysmacros.patch | 59 + ...r-panning-and-transforms-when-constr.patch | 101 + x11-base/xorg-server/files/xorg-sets.conf | 6 + .../xorg-server/xorg-server-1.15.2-r1.ebuild | 257 ++ .../xorg-server/xorg-server-1.15.2-r2.ebuild | 262 ++ .../xorg-server/xorg-server-1.16.4-r4.ebuild | 237 ++ .../xorg-server/xorg-server-1.16.4-r5.ebuild | 238 ++ .../xorg-server/xorg-server-1.16.4.ebuild | 259 ++ .../xorg-server/xorg-server-1.17.4.ebuild | 246 ++ .../xorg-server/xorg-server-1.18.4.ebuild | 243 ++ .../xorg-server/xorg-server-1.19.2.ebuild | 252 ++ 129 files changed, 12690 insertions(+) create mode 100644 app-eselect/eselect-guile/Manifest create mode 100644 app-eselect/eselect-guile/eselect-guile-2.0.ebuild create mode 100644 app-eselect/eselect-guile/files/guile.eselect create mode 100644 app-eselect/eselect-guile/files/guile.eselect.5 create mode 100644 app-eselect/eselect-guile/metadata.xml create mode 100644 app-text/acroread/Manifest create mode 100644 app-text/acroread/acroread-9.5.5-r4.ebuild create mode 100644 app-text/acroread/files/gentoo_config create mode 100644 app-text/acroread/metadata.xml create mode 100644 dev-db/mongodb/Manifest create mode 100644 dev-db/mongodb/files/mongodb-2.4-fix-v8-pythonpath.patch create mode 100644 dev-db/mongodb/files/mongodb-2.6.10-fix-boost-1.57.patch create mode 100644 dev-db/mongodb/files/mongodb-2.6.2-fix-scons.patch create mode 100644 dev-db/mongodb/files/mongodb.conf-r2 create mode 100644 dev-db/mongodb/files/mongodb.confd-r2 create mode 100644 dev-db/mongodb/files/mongodb.initd-r2 create mode 100644 dev-db/mongodb/files/mongodb.logrotate create mode 100644 dev-db/mongodb/files/mongodb.service create mode 100644 dev-db/mongodb/files/mongos.conf-r2 create mode 100644 dev-db/mongodb/files/mongos.confd-r2 create mode 100644 dev-db/mongodb/files/mongos.initd-r2 create mode 100644 dev-db/mongodb/mongodb-2.6.12.ebuild create mode 100644 dev-java/oracle-jdk-bin/Manifest create mode 100644 dev-java/oracle-jdk-bin/files/fontconfig.Gentoo.properties create mode 100644 dev-java/oracle-jdk-bin/files/oracle-jdk-bin-1.7.env create mode 100644 dev-java/oracle-jdk-bin/oracle-jdk-bin-1.7.0.80.ebuild create mode 100644 dev-perl/Net-DNS/Manifest create mode 100644 dev-perl/Net-DNS/Net-DNS-0.740.0.ebuild create mode 100644 dev-perl/Net-DNS/files/Net-DNS-0.68-ar.patch create mode 100644 dev-python/iptools/Manifest create mode 100644 dev-python/iptools/iptools-0.6.1.ebuild create mode 100644 dev-scheme/guile/Manifest create mode 100644 dev-scheme/guile/guile-2.0.11-r1.ebuild create mode 100644 dev-scheme/guile/metadata.xml create mode 100644 eclass/flag-o-matic.eclass create mode 100644 eclass/kernel-2a.eclass create mode 100644 eclass/toolchain.eclass create mode 100644 metadata/layout.conf create mode 100644 net-fs/samba/Manifest create mode 100644 net-fs/samba/files/3.6/lmhosts create mode 100644 net-fs/samba/files/3.6/samba.confd create mode 100644 net-fs/samba/files/3.6/samba.initd create mode 100644 net-fs/samba/files/3.6/samba.pam create mode 100644 net-fs/samba/files/3.6/smb.conf.default.patch create mode 100644 net-fs/samba/files/3.6/smbusers create mode 100644 net-fs/samba/files/3.6/swat.xinetd create mode 100644 net-fs/samba/files/3.6/system-auth-winbind.pam create mode 100644 net-fs/samba/files/nmbd.service create mode 100644 net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk create mode 100644 net-fs/samba/files/samba.conf create mode 100644 net-fs/samba/files/smbd.service create mode 100644 net-fs/samba/files/smbd.socket create mode 100644 net-fs/samba/files/smbd_at.service create mode 100644 net-fs/samba/files/winbindd.service create mode 100644 net-fs/samba/samba-3.6.25.ebuild create mode 100644 net-wireless/unifi/Manifest create mode 100644 net-wireless/unifi/files/unifi.conf create mode 100644 net-wireless/unifi/files/unifi.init create mode 100644 net-wireless/unifi/unifi-5.3.8-r1.ebuild create mode 100644 profiles/repo_name create mode 100644 sys-apps/openwsman/Manifest create mode 100644 sys-apps/openwsman/files/openwsmand.confd create mode 100644 sys-apps/openwsman/files/openwsmand.initd create mode 100644 sys-apps/openwsman/openwsman-2.3.6.ebuild create mode 100644 sys-apps/wsmancli/Manifest create mode 100644 sys-apps/wsmancli/wsmancli-2.3.0.ebuild create mode 100644 sys-fs/wimlib/Manifest create mode 100644 sys-fs/wimlib/wimlib-1.8.3.ebuild create mode 100644 sys-fs/wimlib/wimlib-1.9.2.ebuild create mode 100644 sys-kernel/myhardened-sources/ChangeLog create mode 100644 sys-kernel/myhardened-sources/Manifest create mode 100644 sys-kernel/myhardened-sources/files/kernel-cve-2016-0728.patch create mode 100644 sys-kernel/myhardened-sources/files/kernel-revert-i915-fast-link-training.patch create mode 100644 sys-kernel/myhardened-sources/metadata.xml create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-2.6.32-r7.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-2.6.39-r1.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.11.2.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.11.7.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.15.10.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.17.6.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.17.7.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.18.9.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.4.2.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.7.5-r1.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.8.11.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.8.3.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.8.6.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-3.9.9.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-4.1.7-r1.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-4.4.8-r1.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-4.5.6.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-4.7.1.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-4.7.10.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-4.8.13.ebuild create mode 100644 sys-kernel/myhardened-sources/myhardened-sources-4.8.17.ebuild create mode 100755 updmanifests create mode 100644 virtual/linux-sources/ChangeLog create mode 100644 virtual/linux-sources/Manifest create mode 100644 virtual/linux-sources/linux-sources-0.ebuild create mode 100644 virtual/linux-sources/linux-sources-1.ebuild create mode 100644 virtual/linux-sources/metadata.xml create mode 100644 x11-base/xorg-server/Manifest create mode 100644 x11-base/xorg-server/files/0100-randr-Account-for-panning-and-transforms-when-constr.patch create mode 100644 x11-base/xorg-server/files/xdm-setup.initd-1 create mode 100644 x11-base/xorg-server/files/xdm.confd-4 create mode 100644 x11-base/xorg-server/files/xdm.initd-11 create mode 100644 x11-base/xorg-server/files/xorg-server-1.12-ia64-fix_inx_outx.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.12-unloadsubmodule.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-0.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-1.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-1.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-2.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-3.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-randr-Account-for-panning-and-transforms-when-constr.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17-support-multiple-Files-sections.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.17.2-uninit-clientsWritable.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.18-support-multiple-Files-sections.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.18-sysmacros.patch create mode 100644 x11-base/xorg-server/files/xorg-server-1.19-randr-Account-for-panning-and-transforms-when-constr.patch create mode 100644 x11-base/xorg-server/files/xorg-sets.conf create mode 100644 x11-base/xorg-server/xorg-server-1.15.2-r1.ebuild create mode 100644 x11-base/xorg-server/xorg-server-1.15.2-r2.ebuild create mode 100644 x11-base/xorg-server/xorg-server-1.16.4-r4.ebuild create mode 100644 x11-base/xorg-server/xorg-server-1.16.4-r5.ebuild create mode 100644 x11-base/xorg-server/xorg-server-1.16.4.ebuild create mode 100644 x11-base/xorg-server/xorg-server-1.17.4.ebuild create mode 100644 x11-base/xorg-server/xorg-server-1.18.4.ebuild create mode 100644 x11-base/xorg-server/xorg-server-1.19.2.ebuild diff --git a/app-eselect/eselect-guile/Manifest b/app-eselect/eselect-guile/Manifest new file mode 100644 index 0000000..7e0ddce --- /dev/null +++ b/app-eselect/eselect-guile/Manifest @@ -0,0 +1,4 @@ +AUX guile.eselect 8707 SHA256 131abcd5109683ffa020ab778a7ebd85b7cb59b37777281b2957fe1389984fef SHA512 07154472cc77729ed521a5cb1a1b5b534e990174fb1add9d0640ba39a71113be5529a551ca389361b89cf636dfc046de5eb7ce011a011b1013ed08fc54d8e0bc WHIRLPOOL 9e1c4da13428778b967672f03354703032f7b23391446cad3292ab452abd2015c36778727354af9bad7d127625d646224615a7107b815771a1cd03fed8ac4b01 +AUX guile.eselect.5 2813 SHA256 11b24765726b00901bc8e6dca4c0632bc91a24dec1e22c3dd60692c00eafb9cd SHA512 0eb66f1bcc1b215ba5feea432a3ee9cb005cd14636b9d6ae83bf9b96c7cfbfcc5a22975ad74fdc181ed6796cf4f048eb4f15f692731eca17412555b361d6e246 WHIRLPOOL 01328978420137e965bbd4988b339e8dec857a0416dd84234577b3f63d979ab8acb43810f734e56257cf4c6de2d4ce5628be02746eb4c6d3cab923bae4008cc1 +EBUILD eselect-guile-2.0.ebuild 1405 SHA256 a7a0d67e19b29a2e370c92656afe40fd7224adb26ab1c0d2f337990fcab76448 SHA512 39343fa464a087b654763138a3dad59593c2ef5bacaadf1947de01dbadae66a51481b1f66a0f03baf0329bb8f6c2424bc027ae6454f033b368681c6648f7d2f7 WHIRLPOOL dc4eece73fa6f62367306a38ba8301551de22755ec807db2e37db88e032ed579b359602eb6a54b1825bf93cebc2515e897b3942fb046489ddc35cbe18858d0e6 +MISC metadata.xml 241 SHA256 3c890432806af4646241c99c88af75d163c0bd2cc495324eda7bcc372e7f8e9c SHA512 ca00763b4a711d4f0310d82f937aa96d6d85ef4c6b99a4fe14f5a0986736f9bbb821135870609c51a1eccf5a4e1c73651dcc7814b7785fd763ac477b47041acc WHIRLPOOL c38fcfbfa221de2cb17db10fe74d9444945eceaea952a3cc1feac24bf70df1b4eaf7d71bf552503ab1746f65e1b2c1472c2988c82ab5213d3c90d00eff5c3fc0 diff --git a/app-eselect/eselect-guile/eselect-guile-2.0.ebuild b/app-eselect/eselect-guile/eselect-guile-2.0.ebuild new file mode 100644 index 0000000..9ef5c39 --- /dev/null +++ b/app-eselect/eselect-guile/eselect-guile-2.0.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +DESCRIPTION="Manage multiple Guile versions on one system" +HOMEPAGE="https://bitbucket.org/sortsmill/sortsmill-gentoo-overlay" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris" +IUSE="" + +DEPEND="" +RDEPEND=" + >=app-admin/eselect-1.2.6 + sys-apps/coreutils + sys-apps/findutils + sys-apps/sed + ! "${T}/selections" < "${EROOT}/etc/env.d/50guile" + } +} + +set_version() { + test_for_access + test_for_symlinks + echo "Switching version of Guile to ${1} ..." + remove_version + make_symlinks "${1}" + make_envfile "${1}" + do_action env update noldconfig +} + +#--------------------------------------------------------------------- +# +# `show' action +# + +describe_show() { + echo "Show the current version of Guile" +} + +do_show() { + [[ $# -gt 0 ]] && die -q "Too many parameters" + + write_list_start "Current version of Guile:" + local current="$(current_selection)" + if [[ -n "${current}" ]]; then + write_kv_list_entry "${current}" "" + else + write_kv_list_entry "(unset)" "" + fi +} + +#--------------------------------------------------------------------- +# +# `list' action +# + +describe_list() { + echo "List available versions of Guile" +} + +do_list() { + [[ $# -gt 0 ]] && die -q "Too many parameters" + + local selections=( $(available_selections) ) + local current="$(current_selection)" + local i + for (( i = 0; i < ${#selections[@]}; i++ )); do + # Highlight the current implementation. + [[ x"${selections[i]}" = x"${current}" ]] && + selections[i]="$(highlight_marker "${selections[i]}")" + done + write_list_start "Available versions of Guile:" + write_numbered_list -m "(none found)" "${selections[@]}" +} + +#--------------------------------------------------------------------- +# +# `set' action +# + +describe_set() { + echo "Set a version of Guile as the new current one" +} + +describe_set_options() { + echo "version : Version name or number (from 'list' action)" +} + +describe_set_parameters() { + echo "" +} + +do_set() { + [[ -z $1 ]] && die -q "You didn't tell me what version to set" + [[ $# -gt 1 ]] && die -q "Too many parameters" + + local new_selection="${1}" + local selections=( $(available_selections) ) + + if is_number "${new_selection}"; then + [[ ${new_selection} -ge 1 && + ${new_selection} -le ${#selections[@]} ]] || + die -q "Number out of range: ${new_selection}" + new_selection=${selections[new_selection - 1]} + fi + + local i + local found=no + for (( i = 0; i < ${#selections[@]}; i++ )); do + [[ x"${selections[i]}" = x"${new_selection}" ]] && found=yes + done + [[ "${found}" = yes ]] || + die -q "${new_selection} is not an available version" + + set_version "${new_selection}" +} + +#--------------------------------------------------------------------- +# +# `unset' action +# +# The `clean' synonym is for compatibility with the `lisp' overlay. +# + +describe_unset() { + echo "Unset the current version of Guile, if one is set" +} + +do_unset() { + [[ $# -gt 0 ]] && die -q "Too many parameters" + + echo "Unsetting the current version of Guile ..." + remove_version + do_action env update noldconfig +} + +describe_clean() { + echo "A deprecated synonym for 'unset'" +} + +do_clean() { + do_unset "${@}" +} + +#--------------------------------------------------------------------- +# +# `update' action +# + +describe_update() { + echo "Automatically set the version of Guile" +} + +describe_update_options() { + echo "--if-unset : Do not override a currently set version" +} + +do_update() { + # Allow "ifunset" as a deprecated synonym for "--if-unset", for + # compatibility with `lisp' overlay ebuilds. + + [[ -z "${1}" || "${1}" = "--if-unset" || "${1}" = "ifunset" ]] || + die -q "Usage error" + [[ $# -gt 1 ]] && die -q "Too many parameters" + + local if_unset=no + [[ x"${1}" = x"--if-unset" || x"${1}" = x"ifunset" ]] && if_unset=yes + + local selections=( $(available_selections) ) + + if [[ ${#selections[@]} -eq 0 ]]; then + do_unset + else + local testfile="${EROOT}/usr/bin/guile" + [[ "${if_unset}" = no || ! -L "${testfile}" ]] && + set_version "${selections[${#selections[@]} - 1]}" + fi +} + +#--------------------------------------------------------------------- diff --git a/app-eselect/eselect-guile/files/guile.eselect.5 b/app-eselect/eselect-guile/files/guile.eselect.5 new file mode 100644 index 0000000..3707604 --- /dev/null +++ b/app-eselect/eselect-guile/files/guile.eselect.5 @@ -0,0 +1,121 @@ +.\" Copyright 2007-2013 Gentoo Foundation +.\" Distributed under the terms of the GNU General Public License v2 +.\" $Id: $ +.\" +.TH guile.eselect 5 "August 2015" "Gentoo Linux" eselect +.SH NAME +guile.eselect \- The Guile management module for Gentoo's eselect +.SH SYNOPSIS +.B eselect guile +.RB [ help | usage | version ] +.br +.B eselect guile list +.br +.B eselect guile set +.I version +.br +.B eselect guile show +.br +.B eselect guile unset +.br +.B eselect guile update +.RB [ --if-unset ] +.SH DESCRIPTION +.B eselect +is Gentoo's configuration and management tool. It features modules +that care for the individual administrative tasks. +.SH ACTION: LIST +.B eselect guile list +.br +List all installed Guile versions + +# eselect guile list +.br +Available versions of Guile: +.br + [1] guile-1.8 + [2] guile-2 * + [3] guile-2.2 +.SH ACTION: SET +.B eselect guile set +.I version +.br +Activate the selected Guile version. +.I version +can be either an identification number given by +.B eselect guile list +or the name of one installed version. +.\" To avoid runtime issues with +.\" incompatible byte-code from the previously selected Emacs version, run +.\" .B emacs-updater -a rebuild +.\" to remerge all needed packages. +.\" FIXME: +.\" FIXME: A real fix for this would be to separate the Emacs ebuild. +.\" FIXME: + +# eselect guile set 1 +.br +Switching version of Guile to guile-1.8 ... +.SH ACTION: SHOW +.B eselect guile show +.br +Print the currently activated version of Guile. + +# eselect guile show +.br +Current version of Guile: +.br + emacs-1.8 +.SH ACTION: UNSET +.B eselect guile unset +.br +Unset the current version of Guile. This action removes all symlinks +and files created by +.B eselect guile set +or +.B eselect guile update +actions. + +# eselect guile unset +.br +Unsetting the current version of Guile ... +.SH ACTION: UPDATE +.B eselect guile update +.RB [ --if-unset ] +.br +Update the version of Guile to the last available version. If option +.B --if-unset +is given, a previously set version is not overridden. + +The update process consists in creating symlinks for guile's binaries, +man page and aclocal.m4. It also generates an environment file. +The symlinks concerns: +.br +* /usr/bin/guil[de] and /usr/bin/guile-{config,snarf,tools} binaries; +.br +* /usr/share/aclocal/guile.m4; +.br +* guile(1) man page. +.br +The environment file (/etc/env.d/50guile) defines INFOPATH. +.\" and GUILE_LOAD_PATH. + +# eselect guile update +.br +Switching version of Guile to guile-2.0 ... +.SH AUTHORS +Barry Schwartz +.br +This man page is based on the eselect-emacs man-page, whose authors are +.br +Christian Faulhammer +.br +Ulrich Mueller +.br +and on the app-admin/eselect-guile::lisp man-page, whose author is +.br +Cyprien Nicolas +.SH SEE ALSO +.BR eselect (1) +.\" .SH REVISION +.\" $Id$ diff --git a/app-eselect/eselect-guile/metadata.xml b/app-eselect/eselect-guile/metadata.xml new file mode 100644 index 0000000..531652a --- /dev/null +++ b/app-eselect/eselect-guile/metadata.xml @@ -0,0 +1,8 @@ + + + + + sortsmill@crudfactory.com + Barry Schwartz + + diff --git a/app-text/acroread/Manifest b/app-text/acroread/Manifest new file mode 100644 index 0000000..bf911ff --- /dev/null +++ b/app-text/acroread/Manifest @@ -0,0 +1,4 @@ +AUX gentoo_config 356 SHA256 f7742c4df12cf080fbd763a78cb367b1015b57b58a00896b12931c0416bfc68f SHA512 b7779960461a2b8d674373c1430dc57bd9965e9847d850f7cec4f75c85491c1f3fb838d2abadc61fc3d35bff7d605714c3711b59693bc9f05fafbd7e4c08c0d4 WHIRLPOOL 65db71ef0ff319bbd7907f3c67dace468675b53a5e98d05c0bfe591c3b82164edfffc3b4a8a01f6a25342c4eae8abf6a54fb64135ecd397039ef2c7fa0be5356 +DIST AdbeRdr9.5.5-1_i486linux_enu.tar.bz2 57127348 SHA256 ee0ea9c65b38abd40ec7c92654e767dc138757f02aef5ae92f74e2dc75ac6540 SHA512 0d60f9c0248432445fb0e6ccbc6d7841ed3e63dad61765436c53098b15c2ede77f1dd6369b04004cec020c20df395f195c4aaf464a6e2761e57a9e9ea0cb5361 WHIRLPOOL 16ae019b3f1bc5b54a31af53e14788223ceed06483563dd4f5fdd7cd7356496188bbd95b04582dd768c4853998706c41cbb5c2b7a9dda99133e712e04b4dba59 +EBUILD acroread-9.5.5-r4.ebuild 6543 SHA256 e4be13fab4c4796f3166a22b7c4b5fe5e5c567c7193716d61323e6d7e2b6ec36 SHA512 cceb2882415498dba28d65c8cdb84c7366a429a0ffdeb3be57c4d3b55214587150008d6f12e13a79acb4c56ee7e7597812c9e7095ace1ce31753e9d5dfb7a424 WHIRLPOOL ab030e360595ff1e9a32951c3dfe19ceabcfe3cac564a056e084abbbff7205e5ff81d5d35a37ad63bb6ccd2cb71ee4bf1153b639668140604a02fdf76ece1da5 +MISC metadata.xml 351 SHA256 180cb83494d2c7b9c426993052c453a4f0a93336da2fd2b07c043cacaee8996e SHA512 6f27a82dceaaf8c4c547af39c3c483fa8e0e37d08c330cd1a287471e035d26cfbd0013cc316394bf3426d3b97ae5b2acdeec3a3659b94efe2468e63d7e945366 WHIRLPOOL 68adc63588a8c97f6f4b30f60c46e5e4c1dddb27d17854bbb8cd26a1fb9089f06e447a4fadc1a818f64442037c528a2f3ff7d0c382fe23da757f365aca537873 diff --git a/app-text/acroread/acroread-9.5.5-r4.ebuild b/app-text/acroread/acroread-9.5.5-r4.ebuild new file mode 100644 index 0000000..9034bab --- /dev/null +++ b/app-text/acroread/acroread-9.5.5-r4.ebuild @@ -0,0 +1,205 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: 62eeff9dbdf82fe994309eff43475101a88cbd60 $ + +EAPI=5 + +inherit eutils gnome2-utils nsplugins + +DESCRIPTION="Adobe's PDF reader" +SRC_URI="http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/${PV}/enu/AdbeRdr${PV}-1_i486linux_enu.tar.bz2" +HOMEPAGE="http://www.adobe.com/products/reader/" + +LICENSE="Adobe" +KEYWORDS="-* amd64 x86 ~amd64-linux ~x86-linux" +SLOT="0" +IUSE="html ldap nsplugin" +# asian fonts from separate package: +IUSE+=" l10n_ja l10n_ko l10n_zh-CN l10n_zh-TW" + +RESTRICT="strip mirror" + +DEPEND="" +RDEPEND=" + dev-libs/atk[abi_x86_32(-)] + dev-libs/glib:2[abi_x86_32(-)] + dev-libs/libxml2[abi_x86_32(-)] + dev-libs/openssl:0.9.8[abi_x86_32(-)] + media-libs/fontconfig[abi_x86_32(-)] + virtual/glu[abi_x86_32(-)] + >=net-dns/libidn-1.28[abi_x86_32(-)] + sys-libs/zlib[abi_x86_32(-)] + x11-libs/gdk-pixbuf:2[abi_x86_32(-)] + >=x11-libs/gtk+-2.24.23:2[abi_x86_32(-)] + x11-libs/libX11[abi_x86_32(-)] + x11-libs/libXext[abi_x86_32(-)] + x11-libs/pango[abi_x86_32(-)] + >=x11-libs/pangox-compat-0.0.2[abi_x86_32(-)] + nsplugin? ( x11-libs/libXt[abi_x86_32(-)] ) + ldap? ( >=net-nds/openldap-2.4.38-r1[abi_x86_32(-)] ) + x86? ( html? ( + || ( + www-client/firefox-bin + www-client/firefox + www-client/seamonkey-bin + www-client/seamonkey + ) + ) ) + l10n_ja? ( media-fonts/acroread-asianfonts[l10n_ja] ) + l10n_ko? ( media-fonts/acroread-asianfonts[l10n_ko] ) + l10n_zh-CN? ( media-fonts/acroread-asianfonts[l10n_zh-CN] ) + l10n_zh-TW? ( media-fonts/acroread-asianfonts[l10n_zh-TW] )" + +QA_EXECSTACK=" + opt/Adobe/Reader9/Reader/intellinux/bin/acroread + opt/Adobe/Reader9/Reader/intellinux/lib/libauthplay.so.0.0.0 + opt/Adobe/Reader9/Reader/intellinux/lib/libsccore.so + opt/Adobe/Reader9/Reader/intellinux/lib/libcrypto.so.0.9.8 + opt/Adobe/Reader9/Reader/intellinux/plug_ins/PPKLite.api +" +QA_FLAGS_IGNORED=" + opt/Adobe/Reader9/Reader/intellinux/plug_ins3d/.*.x3d + opt/Adobe/Reader9/Reader/intellinux/lib/lib.* + opt/Adobe/Reader9/Reader/intellinux/bin/SynchronizerApp-binary + opt/Adobe/Reader9/Reader/intellinux/bin/acroread + opt/Adobe/Reader9/Reader/intellinux/bin/xdg-user-dirs-update + opt/Adobe/Reader9/Reader/intellinux/SPPlugins/ADMPlugin.apl + opt/Adobe/Reader9/Reader/intellinux/plug_ins/AcroForm/PMP/.*.pmp + opt/Adobe/Reader9/Reader/intellinux/plug_ins/Multimedia/MPP/.*.mpp + opt/Adobe/Reader9/Reader/intellinux/plug_ins/.*.api + opt/Adobe/Reader9/Reader/intellinux/sidecars/.*.DEU + opt/Adobe/Reader9/Browser/intellinux/nppdf.so + opt/netscape/plugins/nppdf.so +" +QA_TEXTRELS=" + opt/Adobe/Reader9/Reader/intellinux/lib/libextendscript.so + opt/Adobe/Reader9/Reader/intellinux/lib/libsccore.so +" + +INSTALLDIR=/opt + +S="${WORKDIR}/AdobeReader" + +# remove bundled libs to force use of system version, bug 340527 +REMOVELIBS="libcrypto libssl" + +pkg_setup() { + # x86 binary package, ABI=x86 + has_multilib_profile && ABI="x86" +} + +src_unpack() { + unpack ${A} + cd "${S}" + # lowercase tar extension required for unpack, bug 476734 + mv ./ILINXR.TAR ./ILINXR.tar || die + mv ./COMMON.TAR ./COMMON.tar || die + unpack ./ILINXR.tar ./COMMON.tar +} + +src_prepare() { + # remove cruft + rm "${S}"/Adobe/Reader9/bin/UNINSTALL + rm "${S}"/Adobe/Reader9/Browser/install_browser_plugin + rm "${S}"/Adobe/Reader9/Resource/Support/vnd.*.desktop + + # replace some configuration sections + for binfile in "${S}"/Adobe/Reader9/bin/* ; do + sed -i -e '/Font-config/,+9d' \ + -e "/acrogre.conf/r ${FILESDIR}/gentoo_config" -e //N \ + "${binfile}" || die "sed configuration settings failed." + done + + # fix erroneous Exec entry in .desktop + sed -i \ + -e 's/^Exec=acroread[[:space:]]*$/Exec=acroread %F/' \ + -e 's/^Categories=Application;Office;Viewer;X-Red-Hat-Base;/Categories=Office;Viewer;/' \ + -e 's/^Caption=/X-Caption=/' \ + "${S}"/Adobe/Reader9/Resource/Support/AdobeReader.desktop \ + ||die "sed .desktop fix failed" + + # fix braindead error in nppdf.so (bug 412051) + sed -i 's#C:\\nppdf32Log\\debuglog\.txt#/dev/null\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00#g' \ + Adobe/Reader9/Browser/intellinux/nppdf.so || die +} + +src_install() { + local LAUNCHER="Adobe/Reader9/bin/acroread" + + # Install desktop files + domenu Adobe/Reader9/Resource/Support/AdobeReader.desktop + + # Install commonly used icon sizes + for res in 16x16 22x22 32x32 48x48 64x64 128x128 ; do + insinto /usr/share/icons/hicolor/${res}/apps + doins Adobe/Reader9/Resource/Icons/${res}/* + done + + dodir /opt + chown -R --dereference -L root:0 Adobe + cp -dpR Adobe "${ED}"opt/ || die + + # remove some bundled libs + for mylib in ${REMOVELIBS}; do + einfo Removing bundled ${mylib} + rm -v "${ED}"/opt/Adobe/Reader9/Reader/intellinux/lib/${mylib}* + done + + doman Adobe/Reader9/Resource/Shell/acroread.1.gz + + if use nsplugin; then + inst_plugin /opt/Adobe/Reader9/Browser/intellinux/nppdf.so + else + rm -v "${ED}"/opt/Adobe/Reader9/Browser/intellinux/nppdf.so + fi + + dodir /opt/bin + dosym /opt/${LAUNCHER} /opt/bin/${LAUNCHER/*bin\/} + + # NOTE -- this is likely old and broken and should be removed... + # We need to set a MOZILLA_COMP_PATH for seamonkey and firefox since + # they don't install a configuration file for libgtkembedmoz.so + # detection in /etc/gre.d/ like xulrunner did. + if use x86 && use html; then + for lib in /opt/{seamonkey,firefox} /usr/lib/{seamonkey,firefox,mozilla-firefox}; do + if [[ -f ${lib}/libgtkembedmoz.so ]] ; then + echo "MOZILLA_COMP_PATH=${lib}" >> "${ED}"${INSTALLDIR}/Adobe/Reader9/Reader/GlobalPrefs/mozilla_config + elog "Adobe Reader depends on libgtkembedmoz.so, which I've found on" + elog "your system in ${lib}, and configured in ${INSTALLDIR}/Adobe/Reader9/Reader/GlobalPrefs/mozilla_config." + break # don't search any more libraries + fi + done + fi +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst () { + if use x86 && ! use html; then + echo + ewarn "If you want html support and/or view the Adobe Reader help you have" + ewarn "to re-emerge acroread with USE=\"html\"." + echo + fi + + if use amd64; then + if use nsplugin && ! has_version www-plugins/nspluginwrapper; then + echo + elog "If you're running a 64bit browser you may also want to install" + elog "\"www-plugins/nspluginwrapper\" to be able to use the Adobe Reader" + elog "browser plugin." + fi + elog "" + elog "If you find that Adobe Reader doesn't match your desktop's theme, you" + elog "may want to re-emerge the relevant gtk theme package with" + elog "USE=\"abi_x86_32\" enabled." + fi + + gnome2_icon_cache_update +} + +pkg_postrm() { + gnome2_icon_cache_update +} diff --git a/app-text/acroread/files/gentoo_config b/app-text/acroread/files/gentoo_config new file mode 100644 index 0000000..1ca8729 --- /dev/null +++ b/app-text/acroread/files/gentoo_config @@ -0,0 +1,10 @@ +# Enable this if you want Adobe Reader to cache Font-config fonts +ACRO_ENABLE_FONT_CONFIG=1 +export ACRO_ENABLE_FONT_CONFIG + +# Enable this if you want to set the MOZILLA_COMP_PATH globally (for all the users) +if [ -f "$ACRO_INSTALL_DIR/GlobalPrefs/mozilla_config" ]; then + . "$ACRO_INSTALL_DIR/GlobalPrefs/mozilla_config" + export MOZILLA_COMP_PATH +fi + diff --git a/app-text/acroread/metadata.xml b/app-text/acroread/metadata.xml new file mode 100644 index 0000000..4a56c51 --- /dev/null +++ b/app-text/acroread/metadata.xml @@ -0,0 +1,11 @@ + + + + + printing@gentoo.org + Gentoo Printing Project + + + HTML support and help reading capability (only for x86). + + diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest new file mode 100644 index 0000000..1ef27f8 --- /dev/null +++ b/dev-db/mongodb/Manifest @@ -0,0 +1,14 @@ +AUX mongodb-2.4-fix-v8-pythonpath.patch 439 SHA256 27728aaefca317287147d10c1b9e4331d4d4ab5c813356c32067699f22f4db72 SHA512 8d8a73eaf605cac50fe429c7141500bbc0e4f308c35b36b4ec48b4123f3241b6f5dc2670725bc7caba5769949b254874e9c36871142635c552a4c2d05a339d2c WHIRLPOOL ae1e88085c8db0f6244f3e286c8af5e8fb5b3966a204c0c104a094d27b5832b339b6ffe60f9a06ebdd1c8ec4eee94b3d89cf3b732fed88eb84668475c1e544aa +AUX mongodb-2.6.10-fix-boost-1.57.patch 482 SHA256 e6a633a5bbafebe3e9b7e6f8775b189bda8840e2119c4df0ada97a2b1f492073 SHA512 23ce6b7c7b1d297ed45789e0b6486e699e2353bd4d3c7c0249b6df4efeb06695224e68f198f5a3c424e60fb20cb3f3d0b5d34f3ccc3ebcb9f964683acc5a4a5c WHIRLPOOL 167a68f3ff651fbc6347de4e780477ccb8b80ade178d573afc58b961a182ab5921d6bd3e30e1bf789b2276d76853f930bdf263cf97e36dab94794d9cb28a3f66 +AUX mongodb-2.6.2-fix-scons.patch 1448 SHA256 a2628d1ddb55d7a7adf9080d39ddd9a88980ecb27546fd04b74b01d478560165 SHA512 acda6ee27bf2b9a75bb2a1484fa8754e4dc700e5bd835e9f48b528a89e46a6236c38b68d42d58be6bd504d6287f673e6d71d07807e42c93fd0bd4d492387b8a6 WHIRLPOOL bf3ac06028abf8bacf9631cc763258c436842b45ce36283f5eb2083509c7e05fb854d1099c8f639c6c6282df14dc22bf1df2c416f784be9fa29afe58b775ec0e +AUX mongodb.conf-r2 698 SHA256 780fa095f5eacee59f3f683f225fe545c8ec93a27157894885d5f4656a6ae15a SHA512 15480651b5e7b1927b95d633193aee08def71e2f9ef6438f93972e359b2605e51ce6f071f5fd64b73b2bf4db58710a04634a36144db2c2e585588098d69b66fb WHIRLPOOL 2d2d2bf793ae5b1c7c27be227001c3eeb1a76cd620ce8e3882e7d43f10625df8c21d8452dabeef4b8cb750246436d57ad900f915aadd74dcc02c9341ab5d343b +AUX mongodb.confd-r2 549 SHA256 6275df7b1bbee218545331d68da3814d0e0fa89d3b30e21370bbeb776dd19e0a SHA512 75f11e8350e98b90eccafd577d794e4b05f36ede8d95e7839e9fa1eb77ea7bd9cdd2fdd07719abb78a714cd7d72109c177d265d6417ef198a4217453c0a4db68 WHIRLPOOL 974eeb5dd58d52670121b2e8e687250cae4d5c49ec020dc30746bf39356762d63f41371526744f2b9fdd657134e7570d7501a3ce5995e830e039cc9eeb8a427e +AUX mongodb.initd-r2 661 SHA256 f635c2ff1d74f74e254751ce91d8cc7980ce1ce762411cdc587948ea33f35b3e SHA512 9acfc0caefa126ed953bcda408d57b5e64c263b32406e18b549806a37c2180520f51ba66eeb30a8b913cd36e04e5f1bc62edb877c9d8c06c96a22d46f924a388 WHIRLPOOL cbb12e8c020c7d52529a39cda996e42a10996da487770a7c114ad7c84b20f19c166b051e438db4d36da1e5bc2d3a1daaa8c8b397d7a1696b603468529df70697 +AUX mongodb.logrotate 205 SHA256 76994c32d999def5c925bd7be3f96687b3406f1d67b89aa6a4df8053025b1e01 SHA512 8c089b1a11f494e4148fb4646265964c925bf937633a65e395ee1361d42facf837871dd493a9a2e0f480ae0e0829dbd3ed60794c5334e2716332e131fc5c2c51 WHIRLPOOL c1d94339a6e58363ba37bfd0f878ea6db403eaee02aa030891bfd54af1a61e34622286e560ba5217201435a745217b2da55d857fece83d5a94b12d915ad2940c +AUX mongodb.service 220 SHA256 19f55ab28652b3817e98fc3f15cc2f6f3255a5e1dfd7b0d5a27c9ba22fd2703e SHA512 177251404b2e818ae2b546fe8b13cb76e348c99e85c7bef22a04b0f07b600fd515a309ede50214f4198594388a6d2b31f46e945b9dae84aabb4dfa13b1123bb9 WHIRLPOOL 0f6e032acbc7f625b03dcec990126cef064925a341e38c27cddbed5a951c8cfeded00ee3b8b0d9044245c833e86748262434665342e6baa98500fb02c07f4281 +AUX mongos.conf-r2 648 SHA256 d1bf479cee999b4e59e5100c134cd3e7af4bb126342418100cf8f9a08a26f6a7 SHA512 5aa8ced8d83572358e008c0df45dbe72a2e9c0003c9f49514d6b91bf9b75d4fb48b189ffe00d14e5675679943a05215a9873c5c9bde9ab1be4ed4813e75714e3 WHIRLPOOL f1036ea1bd7efa54d28d131dd1bfd1e06c1c3ffbf247ee68a33eee0383d87bf3bfa6639040e6b68a0a14cce0bd77bd5b91a8e245f615007fccccb0cbe2becd84 +AUX mongos.confd-r2 546 SHA256 1378a880ffde0efae213ac6d6d4bbe2181c92fbb06535a58c2dab06ef88ee8e3 SHA512 30e208690b5f28bd0442b7ed302d9be991aedd27203f24e5849201d33291ad7f0f9153ae3a00b55697d79a45c40d7b3792ff45f0c24ef2cf4e88222f88ea1400 WHIRLPOOL 68b8eed779e19261c4d13ebd6be8c11b6df94e748bb8f03d632ecbfc5fcd151a693e51c5a4ad4f0af9439d07dedafc29bd9b86b5a532bad48d570fca73002987 +AUX mongos.initd-r2 661 SHA256 7fae734eb44382e81935424c2100c9a5c191cf563cfc3d3f619c7819fb481e02 SHA512 3745fcbd414485b5079e9648e6112fd5e1624f1d76ca140fbf22dc181e86cbf3948794662772225ffe7e65d7a2be4f1a04de8812359751532a9b9168a8351bd8 WHIRLPOOL db486e537353fe0fbdc67ad0452bcdc3e1bc4e9053d82dccb348286363d91fb0e1c02a0ed203d41f08a7246007fe461cf95595d9c25464d31f5a81625da59532 +DIST 20140409-mms-monitoring-agent.zip 40122 SHA256 9c4f89cfba10b4604512ab21eb082248104aeabe7e813b852db2b86f47d7ecb2 SHA512 5290a813c407251b5e4def813ce6fe7e09d6c3a1907fd409e326b15b07aed39f7db3a28710ecdaffe2771136c9433253c5d1857c823844a4b75dd38f1d15eefd WHIRLPOOL ce80870e2618f3d9ed80af41b1069ed5bd97af475089564eed1bc111e820c048bc5cbaa03f859349e772fe232f876127e0627c75c135a9b2e196ab13258ed9f1 +DIST mongodb-src-r2.6.12.tar.gz 16462842 SHA256 2dd51eabcfcd133573be74c0131c85b67764042833e7d94077e86adc0b9406dc SHA512 ceed10f2da50ca390f56cc79d39ea4db7a1ef6764e37dae61c3f3f664708be72de09443bbf94f8e58479e4f2923ff2ab9eee45652e82271b3bad591e03ef7657 WHIRLPOOL 1587ef45ee17f9e3357a92b480ea739192076ead280c44c801650d01d2ae29a627a96db611eac6c9b6b47e5e619e2362df94e1792348709b3ea5a4970a8751a0 +EBUILD mongodb-2.6.12.ebuild 4781 SHA256 24d663fc9cfa252830c8ffd2484560f758cc9d87ac2f0d099b3f4e7aec4ad9cf SHA512 c572d32feac37d6df642e67769d64cea1e54b6274386dbe1b4a52ddb1e50f67f1c530ae5b80ed53f11c26b06d2d1269437beb49740f9f1ab6e6d3440fb934368 WHIRLPOOL 2d07dd5b62eb79c56ac2edbf77ef47e67653867e46480290d5b8e65ee6e0c891fda9caefc6dfb8a476b6f7aa5ab4c745ac886d7d6e89c060db59e5abc42748b4 diff --git a/dev-db/mongodb/files/mongodb-2.4-fix-v8-pythonpath.patch b/dev-db/mongodb/files/mongodb-2.4-fix-v8-pythonpath.patch new file mode 100644 index 0000000..19efad6 --- /dev/null +++ b/dev-db/mongodb/files/mongodb-2.4-fix-v8-pythonpath.patch @@ -0,0 +1,11 @@ +--- a/src/third_party/v8/SConscript 2014-05-26 11:00:37.725508098 +0200 ++++ b/src/third_party/v8/SConscript 2014-05-26 11:01:13.265029083 +0200 +@@ -29,7 +29,7 @@ + import sys + from os.path import join, dirname, abspath + root_dir = dirname(File('SConscript').rfile().abspath) +-sys.path.append(join(root_dir, 'tools')) ++sys.path.insert(0, join(root_dir, 'tools')) + import js2c + + Import("env windows linux darwin solaris freebsd debugBuild") diff --git a/dev-db/mongodb/files/mongodb-2.6.10-fix-boost-1.57.patch b/dev-db/mongodb/files/mongodb-2.6.10-fix-boost-1.57.patch new file mode 100644 index 0000000..5f289c0 --- /dev/null +++ b/dev-db/mongodb/files/mongodb-2.6.10-fix-boost-1.57.patch @@ -0,0 +1,13 @@ +diff -up mongodb-src-r2.6.7/src/mongo/shell/linenoise_utf8.h\~ mongodb-src-r2.6.7/src/mongo/shell/linenoise_utf8.h +--- mongodb-src-r2.6.7/src/mongo/shell/linenoise_utf8.h~ 2015-01-13 18:12:06.000000000 +0100 ++++ mongodb-src-r2.6.7/src/mongo/shell/linenoise_utf8.h 2015-01-28 22:22:50.538934558 +0100 +@@ -17,6 +17,7 @@ + + #include + #include ++#include + + namespace linenoise_utf8 { + + +Diff finished. Wed Jan 28 22:24:47 2015 diff --git a/dev-db/mongodb/files/mongodb-2.6.2-fix-scons.patch b/dev-db/mongodb/files/mongodb-2.6.2-fix-scons.patch new file mode 100644 index 0000000..76feba7 --- /dev/null +++ b/dev-db/mongodb/files/mongodb-2.6.2-fix-scons.patch @@ -0,0 +1,35 @@ +--- a/SConstruct 2014-06-16 19:32:46.274507258 +0200 ++++ b/SConstruct 2014-06-16 19:34:04.763586829 +0200 +@@ -813,7 +813,6 @@ + # -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used. + env.Append( CCFLAGS=["-fPIC", + "-fno-strict-aliasing", +- "-ggdb", + "-pthread", + "-Wall", + "-Wsign-compare", +@@ -821,13 +820,13 @@ + "-Winvalid-pch"] ) + # env.Append( " -Wconversion" ) TODO: this doesn't really work yet + if linux or darwin: +- env.Append( CCFLAGS=["-pipe"] ) + if not has_option("disable-warnings-as-errors"): + env.Append( CCFLAGS=["-Werror"] ) + + env.Append( CPPDEFINES=["_FILE_OFFSET_BITS=64"] ) +- env.Append( CXXFLAGS=["-Wnon-virtual-dtor", "-Woverloaded-virtual"] ) + env.Append( LINKFLAGS=["-fPIC", "-pthread"] ) ++ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] ) ++ env.Append( LINKFLAGS=os.environ['LDFLAGS'] ) + + # SERVER-9761: Ensure early detection of missing symbols in dependent libraries at program + # startup. +@@ -844,7 +843,7 @@ + if not darwin: + env.Append( LINKFLAGS=["-rdynamic"] ) + +- env.Append( LIBS=[] ) ++ env.Append( LIBS=['pcre', 'pcrecpp', 'snappy', 'yaml-cpp'] ) + + #make scons colorgcc friendly + for key in ('HOME', 'TERM'): diff --git a/dev-db/mongodb/files/mongodb.conf-r2 b/dev-db/mongodb/files/mongodb.conf-r2 new file mode 100644 index 0000000..8e8a644 --- /dev/null +++ b/dev-db/mongodb/files/mongodb.conf-r2 @@ -0,0 +1,33 @@ +# !! IMPORTANT !! +# +# This file uses the YAML format as described in the documentation: +# http://docs.mongodb.org/manual/reference/configuration-options/ + +storage: + dbPath: "/var/lib/mongodb" + +systemLog: + destination: file + path: "/var/log/mongodb/mongodb.log" + quiet: true + logAppend: true + +net: + port: 27017 + bindIp: 127.0.0.1 +# ssl: +# mode: disabled + +#security: + #keyFile: + #clusterAuthMode: + +#replication: + #replSetName: + +# Specifies one of the MongoDB parameters described here: +# http://docs.mongodb.org/manual/reference/parameters/ +# +# You can specify multiple setParameter fields such as: +# setParameter: {enableTestCommands: 1} +#setParameter: diff --git a/dev-db/mongodb/files/mongodb.confd-r2 b/dev-db/mongodb/files/mongodb.confd-r2 new file mode 100644 index 0000000..dddb67e --- /dev/null +++ b/dev-db/mongodb/files/mongodb.confd-r2 @@ -0,0 +1,12 @@ +# !! IMPORTANT !! +# +# This file is ONLY used to override some of the init script configuration. +# +# You should NOT use this file to configure your mongodb instance, +# see the /etc/mongodb.conf file instead. +# +# Available init script modifiers : +# - config_file : the configuration file to use (default : /etc/mongodb.conf) +# - user : the user used to run your mongodb instance (default : mongodb) +# - group : the group used to run your mongodb instance (default : mongodb) +# - run_dir : the run directory for your PID files (default : /run/mongodb) diff --git a/dev-db/mongodb/files/mongodb.initd-r2 b/dev-db/mongodb/files/mongodb.initd-r2 new file mode 100644 index 0000000..3063f12 --- /dev/null +++ b/dev-db/mongodb/files/mongodb.initd-r2 @@ -0,0 +1,27 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +config_file=${config_file:-/etc/${SVCNAME}.conf} +run_dir=${run_dir:-/run/mongodb} + +command="/usr/bin/mongod" +command_args="--config ${config_file}" +command_background="true" +pidfile=${run_dir}/${SVCNAME}.pid +user=${user:-mongodb} +group=${group:-mongodb} +start_stop_daemon_args="--user ${user} --group ${group}" + +depend() { + use net +} + +start_pre() { + checkpath -d -m 0750 -o "${user}":"${group}" "${run_dir}" + if [ ! -f ${config_file} ]; then + eerror "Missing configuration file ${config_file}" + return 1 + fi +} diff --git a/dev-db/mongodb/files/mongodb.logrotate b/dev-db/mongodb/files/mongodb.logrotate new file mode 100644 index 0000000..f95a438 --- /dev/null +++ b/dev-db/mongodb/files/mongodb.logrotate @@ -0,0 +1,13 @@ +# Default log rotation / compression keeps 1 year of logs. +/var/log/mongodb/*.log { + daily + rotate 365 + dateext + copytruncate + delaycompress + compress + notifempty + extension gz + sharedscripts + missingok +} diff --git a/dev-db/mongodb/files/mongodb.service b/dev-db/mongodb/files/mongodb.service new file mode 100644 index 0000000..78d5511 --- /dev/null +++ b/dev-db/mongodb/files/mongodb.service @@ -0,0 +1,10 @@ +[Unit] +Description=High-performance, schema-free document-oriented database +After=network.target + +[Service] +User=mongodb +ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf + +[Install] +WantedBy=multi-user.target diff --git a/dev-db/mongodb/files/mongos.conf-r2 b/dev-db/mongodb/files/mongos.conf-r2 new file mode 100644 index 0000000..fc00689 --- /dev/null +++ b/dev-db/mongodb/files/mongos.conf-r2 @@ -0,0 +1,30 @@ +# !! IMPORTANT !! +# +# This file uses the YAML format as described in the documentation: +# http://docs.mongodb.org/manual/reference/configuration-options/ + +systemLog: + destination: file + path: "/var/log/mongodb/mongos.log" + quiet: true + logAppend: true + +net: + port: 27017 + bindIp: 127.0.0.1 + ssl: + mode: disabled + +#security: + #keyFile: + #clusterAuthMode: + +#sharding: + #configDB: + +# Specifies one of the MongoDB parameters described here: +# http://docs.mongodb.org/manual/reference/parameters/ +# +# You can specify multiple setParameter fields such as: +# setParameter: {enableTestCommands: 1} +#setParameter: diff --git a/dev-db/mongodb/files/mongos.confd-r2 b/dev-db/mongodb/files/mongos.confd-r2 new file mode 100644 index 0000000..0dc2a18 --- /dev/null +++ b/dev-db/mongodb/files/mongos.confd-r2 @@ -0,0 +1,12 @@ +# !! IMPORTANT !! +# +# This file is ONLY used to override some of the init script configuration. +# +# You should NOT use this file to configure your mongos instance, +# see the /etc/mongos.conf file instead. +# +# Available init script modifiers : +# - config_file : the configuration file to use (default : /etc/mongos.conf) +# - user : the user used to run your mongodb instance (default : mongodb) +# - group : the group used to run your mongodb instance (default : mongodb) +# - run_dir : the run directory for your PID files (default : /run/mongodb) diff --git a/dev-db/mongodb/files/mongos.initd-r2 b/dev-db/mongodb/files/mongos.initd-r2 new file mode 100644 index 0000000..e364fae --- /dev/null +++ b/dev-db/mongodb/files/mongos.initd-r2 @@ -0,0 +1,27 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +config_file=${config_file:-/etc/${SVCNAME}.conf} +run_dir=${run_dir:-/run/mongodb} + +command="/usr/bin/mongos" +command_args="--config ${config_file}" +command_background="true" +pidfile=${run_dir}/${SVCNAME}.pid +user=${user:-mongodb} +group=${group:-mongodb} +start_stop_daemon_args="--user ${user} --group ${group}" + +depend() { + use net +} + +start_pre() { + checkpath -d -m 0750 -o "${user}":"${group}" "${run_dir}" + if [ ! -f ${config_file} ]; then + eerror "Missing configuration file ${config_file}" + return 1 + fi +} diff --git a/dev-db/mongodb/mongodb-2.6.12.ebuild b/dev-db/mongodb/mongodb-2.6.12.ebuild new file mode 100644 index 0000000..f7a0895 --- /dev/null +++ b/dev-db/mongodb/mongodb-2.6.12.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +SCONS_MIN_VERSION="1.2.0" +CHECKREQS_DISK_BUILD="2400M" +CHECKREQS_DISK_USR="512M" +CHECKREQS_MEMORY="1024M" + +inherit eutils flag-o-matic multilib pax-utils scons-utils systemd user versionator check-reqs + +MY_P=${PN}-src-r${PV/_rc/-rc} + +DESCRIPTION="A high-performance, open source, schema-free document-oriented database" +HOMEPAGE="http://www.mongodb.org" +SRC_URI="http://downloads.mongodb.org/src/${MY_P}.tar.gz + mms-agent? ( https://dev.gentoo.org/~ultrabug/20140409-mms-monitoring-agent.zip )" + +LICENSE="AGPL-3 Apache-2.0" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="debug kerberos mms-agent ssl static-libs" + +PDEPEND="mms-agent? ( dev-python/pymongo app-arch/unzip )" +RDEPEND=" + app-arch/snappy + >=dev-cpp/yaml-cpp-0.5.1 + >=dev-libs/boost-1.50[threads(+)] + >=dev-libs/libpcre-8.37[cxx] + dev-libs/snowball-stemmer + dev-util/google-perftools[-minimal] + net-libs/libpcap + ssl? ( >=dev-libs/openssl-1.0.1g )" +DEPEND="${RDEPEND} + sys-libs/ncurses + sys-libs/readline + kerberos? ( dev-libs/cyrus-sasl[kerberos] )" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + enewgroup mongodb + enewuser mongodb -1 -1 /var/lib/${PN} mongodb + + scons_opts="--variant-dir=build --cc=$(tc-getCC) --cxx=$(tc-getCXX)" + scons_opts+=" --disable-warnings-as-errors" + scons_opts+=" --use-system-boost" + scons_opts+=" --use-system-pcre" + scons_opts+=" --use-system-snappy" + scons_opts+=" --use-system-stemmer" + scons_opts+=" --use-system-tcmalloc" + scons_opts+=" --use-system-yaml" + scons_opts+=" --usev8" + + if use debug; then + scons_opts+=" --dbg=on" + fi + + if use prefix; then + scons_opts+=" --cpppath=${EPREFIX}/usr/include" + scons_opts+=" --libpath=${EPREFIX}/usr/$(get_libdir)" + fi + + if use kerberos; then + scons_opts+=" --use-sasl-client" + fi + + if use ssl; then + scons_opts+=" --ssl" + fi + + if use amd64; then + scons_opts+=" --64" + fi + if use x86; then + scons_opts+=" --32" + fi +} + +src_prepare() { + epatch "${FILESDIR}/${PN}-2.6.2-fix-scons.patch" + epatch "${FILESDIR}/${PN}-2.4-fix-v8-pythonpath.patch" + epatch "${FILESDIR}/${PN}-2.6.10-fix-boost-1.57.patch" + + # fix yaml-cpp detection + sed -i -e "s/\[\"yaml\"\]/\[\"yaml-cpp\"\]/" SConstruct || die + + # bug #462606 + sed -i -e "s@\$INSTALL_DIR/lib@\$INSTALL_DIR/$(get_libdir)@g" src/SConscript.client || die + + # bug #482576 + sed -i -e "/-Werror/d" src/third_party/v8/SConscript || die +} + +src_configure() { + # filter some problematic flags + filter-flags "-march=*" + filter-flags -O? +} + +src_compile() { + escons ${scons_opts} all +} + +src_install() { + escons ${scons_opts} --full --nostrip install --prefix="${ED}"/usr + + use static-libs || find "${ED}"/usr/ -type f -name "*.a" -delete + + for x in /var/{lib,log}/${PN}; do + keepdir "${x}" + fowners mongodb:mongodb "${x}" + done + + doman debian/mongo*.1 + dodoc README docs/building.md + + newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r2" ${PN} + newinitd "${FILESDIR}/${PN/db/s}.initd-r2" ${PN/db/s} + newconfd "${FILESDIR}/${PN/db/s}.confd-r2" ${PN/db/s} + + insinto /etc + newins "${FILESDIR}/${PN}.conf-r2" ${PN}.conf + newins "${FILESDIR}/${PN/db/s}.conf-r2" ${PN/db/s}.conf + + systemd_dounit "${FILESDIR}/${PN}.service" + + insinto /etc/logrotate.d/ + newins "${FILESDIR}/${PN}.logrotate" ${PN} + + # see bug #526114 + pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos} + + if use mms-agent; then + local MY_PN="mms-agent" + local MY_D="/opt/${MY_PN}" + + insinto /etc + newins "${WORKDIR}/${MY_PN}/settings.py" mms-agent.conf + rm "${WORKDIR}/${MY_PN}/settings.py" + + insinto ${MY_D} + doins "${WORKDIR}/${MY_PN}/"* + dosym /etc/mms-agent.conf ${MY_D}/settings.py + + fowners -R mongodb:mongodb ${MY_D} + newinitd "${FILESDIR}/${MY_PN}.initd-r2" ${MY_PN} + fi +} + +pkg_preinst() { + # wrt bug #461466 + if [[ "$(get_libdir)" == "lib64" ]]; then + rmdir "${ED}"/usr/lib/ &>/dev/null + fi +} + +src_test() { + escons ${scons_opts} test + "${S}"/test --dbpath=unittest || die +} + +pkg_postinst() { + local v + for v in ${REPLACING_VERSIONS}; do + if ! version_is_at_least 2.6 ${v}; then + ewarn "!! IMPORTANT !!" + ewarn " " + ewarn "${PN} configuration files have changed !" + ewarn " " + ewarn "Make sure you migrate from /etc/conf.d/${PN} to the new YAML standard in /etc/${PN}.conf" + ewarn " http://docs.mongodb.org/manual/reference/configuration-options/" + ewarn " " + ewarn "Make sure you also follow the upgrading process :" + ewarn " http://docs.mongodb.org/master/release-notes/2.6-upgrade/" + ewarn " " + if use mms-agent; then + ewarn "MMS Agent configuration file has been moved to :" + ewarn " /etc/mms-agent.conf" + fi + break + else + if use mms-agent; then + elog "Edit your MMS Agent configuration file :" + elog " /etc/mms-agent.conf" + fi + fi + done +} diff --git a/dev-java/oracle-jdk-bin/Manifest b/dev-java/oracle-jdk-bin/Manifest new file mode 100644 index 0000000..d381f3d --- /dev/null +++ b/dev-java/oracle-jdk-bin/Manifest @@ -0,0 +1,6 @@ +AUX fontconfig.Gentoo.properties 11196 SHA256 9372ca516ff36609d846a9cb446dde3212e976c10166d8e231312d6238d1db0c SHA512 1802e52383a04efd0d7fb4d6a3903f99128dce90afcb10b9dd0d3515e5feafb807449024dbe5742c7dfa9d43736e474412e1a289e06b29cf3a58e59deedd56f9 WHIRLPOOL f4c5364255f8da18bf61501d6fac10972216182e891cadd90e2cccd27917caaeeb29cf3691e865ce02937904efb30716fd8de2fca875929ff89b06ada2cff0b6 +AUX oracle-jdk-bin-1.7.env 880 SHA256 c4ba6e116277c248553bdac4ca660529e5c17be426dc583960226cfcec6b570c SHA512 f230fd95f07638690b1ce64bf25b366b6fb11828735e7bb75fa30152435485e4f529f73e88a50f623db348c0ed68ea5617b7691f4c1c3be56b37216d0a7fa59a WHIRLPOOL 72d7a829ebf1fe8b83a603bd0baee4d9481fb32aa7bcb17c023cf7000d4799183de5930c1d120687b77c796f78aa4a2d04a2dbda979436af2484d82064b66c0c +DIST UnlimitedJCEPolicyJDK7.zip 7426 SHA256 7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d SHA512 02eca7da8f3fffea388431d5352290535a63d53a1f5c795d6511ccba62445787a0ee6ad4bc1852e5262860b6d607ba2a8c6a3dbb0c3e1d7c3a67ac7bbc783204 WHIRLPOOL 02460c7ca54f5f62c3f349addf8e2a101f7a56987e9f62365fac3f703b0c93ac5de4d55697a3d04f78b547b072e0acc95a0720d2ce3b429d2fd5936d50edd1ac +DIST jdk-7u80-linux-i586.tar.gz 154850445 SHA256 9ded1318a7223cf6e09ac4b6ee4db1f4c5d1aef1d3d291f6db8491a32eaa57ba SHA512 69e2ee7964b18e9e8b57db917b303eb9ea629c432300fe4749177118d2f5c365e72b976649e21354643fe4957120a2b23de025bab4dc45977837d4847a61ffb6 WHIRLPOOL 2d549c7971935f79e536de8bb0a5fc2547a8bdf039d1617a73fbc0ae222a80422fb336105c3362521efb376aa2ea6fa8c3a0521044785bfc9dc061ebe694628c +DIST jdk-7u80-linux-x64.tar.gz 153530841 SHA256 bad9a731639655118740bee119139c1ed019737ec802a630dd7ad7aab4309623 SHA512 a772878f740e87835bafc82841e8f4c1dfbe8bc79e072d3f6c5c74d3a206eb9001a53b474d91a22819c7c0d6407ed88993635c39738779c2b08c22c7a1c2e9e9 WHIRLPOOL fac71585db57851245891919daca1f043c1a8c002c193426ea7e30b482129e65adee336c2421e4aa1241b8fd7cc69b8a1918cd0c44315bf4aec715e86d116384 +EBUILD oracle-jdk-bin-1.7.0.80.ebuild 10272 SHA256 e402f72903eb93adb719d397d9ff6e6748403daa4f52a938c8fbf934eb5e1b7d SHA512 4462863229905d6d18f4260174195f33a86a0b47579e6699ec593c205c47f3863baa1553613a74c9c158aef3a492b4739cf4ffafee2fc31ace451dd9c6b9cdd4 WHIRLPOOL 65a423fbea22ca314cbb4dd8aed59c10bc2cf7bfc7f33a4ce35baa5edb85da0056132484a3757087ba6e5b3471b7f842263fba5e6f8ae3e0dc6cbf3b5ed21f60 diff --git a/dev-java/oracle-jdk-bin/files/fontconfig.Gentoo.properties b/dev-java/oracle-jdk-bin/files/fontconfig.Gentoo.properties new file mode 100644 index 0000000..43cb5ee --- /dev/null +++ b/dev-java/oracle-jdk-bin/files/fontconfig.Gentoo.properties @@ -0,0 +1,161 @@ +# Version + +version=1 + +# Component Font Mappings + +allfonts.chinese-gb18030=-misc-ming for iso10646 -medium-r-normal--*-%d-*-*-c-*-iso10646-1 +allfonts.chinese-gb18030.motif=-isas-song ti-medium-r-normal--*-%d-*-*-c-*-gb2312.1980-0 +allfonts.chinese-big5=-arphic technology co.-ar pl mingti2l big5-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +allfonts.chinese-big5.motif=-taipei-fixed-medium-r-normal--*-%d-*-*-c-*-big5-0 +allfonts.lucida=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 + +serif.plain.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +serif.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +serif.plain.latin-1=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1 +serif.plain.latin-1.motif=-b&h-luxi serif-medium-r-normal--*-%d-*-*-p-*-iso8859-1 + +serif.bold.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +serif.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +serif.bold.latin-1=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1 +serif.bold.latin-1.motif=-b&h-luxi serif-bold-r-normal--*-%d-*-*-p-*-iso8859-1 + +serif.italic.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +serif.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +serif.italic.latin-1=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1 +serif.italic.latin-1.motif=-b&h-luxi serif-medium-i-normal--*-%d-*-*-p-*-iso8859-1 + +serif.bolditalic.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +serif.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +serif.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +serif.bolditalic.latin-1=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1 +serif.bolditalic.latin-1.motif=-b&h-luxi serif-bold-i-normal--*-%d-*-*-p-*-iso8859-1 + +sansserif.plain.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +sansserif.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +sansserif.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.plain.latin-1.motif=-b&h-luxi sans-medium-r-normal--*-%d-*-*-p-*-iso8859-1 + +sansserif.bold.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +sansserif.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +sansserif.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.bold.latin-1.motif=-b&h-luxi sans-bold-r-normal--*-%d-*-*-p-*-iso8859-1 + +sansserif.italic.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +sansserif.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +sansserif.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.italic.latin-1.motif=-b&h-luxi sans-medium-i-normal--*-%d-*-*-p-*-iso8859-1 + +sansserif.bolditalic.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +sansserif.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +sansserif.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +sansserif.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +sansserif.bolditalic.latin-1.motif=-b&h-luxi sans-bold-i-normal--*-%d-*-*-p-*-iso8859-1 + +monospaced.plain.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +monospaced.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +monospaced.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.plain.latin-1.motif=-b&h-luxi mono-medium-r-normal--*-%d-*-*-m-*-iso8859-1 + +monospaced.bold.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +monospaced.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +monospaced.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.bold.latin-1.motif=-b&h-luxi mono-bold-r-normal--*-%d-*-*-m-*-iso8859-1 + +monospaced.italic.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +monospaced.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +monospaced.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.italic.latin-1.motif=-b&h-luxi mono-medium-i-normal--*-%d-*-*-m-*-iso8859-1 + +monospaced.bolditalic.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +monospaced.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +monospaced.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +monospaced.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1 +monospaced.bolditalic.latin-1.motif=-b&h-luxi mono-bold-i-normal--*-%d-*-*-m-*-iso8859-1 + +dialog.plain.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialog.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialog.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.plain.latin-1.motif=-b&h-luxi sans-medium-r-normal--*-%d-*-*-p-*-iso8859-1 + +dialog.bold.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialog.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialog.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.bold.latin-1.motif=-b&h-luxi sans-bold-r-normal--*-%d-*-*-p-*-iso8859-1 + +dialog.italic.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialog.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialog.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.italic.latin-1.motif=-b&h-luxi sans-medium-i-normal--*-%d-*-*-p-*-iso8859-1 + +dialog.bolditalic.japanese-x0208=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialog.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialog.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialog.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 +dialog.bolditalic.latin-1.motif=-b&h-luxi sans-bold-i-normal--*-%d-*-*-p-*-iso8859-1 + +dialoginput.plain.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialoginput.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialoginput.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.plain.latin-1.motif=-b&h-luxi mono-medium-r-normal--*-%d-*-*-m-*-iso8859-1 + +dialoginput.bold.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialoginput.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialoginput.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.bold.latin-1.motif=-b&h-luxi mono-bold-r-normal--*-%d-*-*-m-*-iso8859-1 + +dialoginput.italic.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialoginput.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialoginput.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.italic.latin-1.motif=-b&h-luxi mono-medium-i-normal--*-%d-*-*-m-*-iso8859-1 + +dialoginput.bolditalic.japanese-x0208=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 +dialoginput.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1 +dialoginput.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0 +dialoginput.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1 +dialoginput.bolditalic.latin-1.motif=-b&h-luxi mono-bold-i-normal--*-%d-*-*-m-*-iso8859-1 + +# Search Sequences + +sequence.allfonts=latin-1 +sequence.allfonts.Big5=latin-1,chinese-big5 +sequence.allfonts.GB2312=latin-1,chinese-gb18030 +sequence.allfonts.x-euc-jp-linux=latin-1,japanese-x0208 +sequence.allfonts.EUC-KR=latin-1,korean +sequence.allfonts.GB18030=latin-1,chinese-gb18030 +sequence.fallback=lucida,chinese-big5,chinese-gb18030,japanese-x0208,korean + +# Exclusion Ranges + +exclusion.japanese-x0208=0390-03d6,2200-22ef,2701-27be + +# Font File Names + +filename.-arphic_technology_co.-ar_pl_mingti2l_big5-medium-r-normal--*-%d-*-*-c-*-iso10646-1=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/arphicfonts/bsmi00lp.ttf +filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/baekmuk-fonts/batang.ttf +filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/baekmuk-fonts/gulim.ttf +filename.-misc-kochi_gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/kochi-substitute/kochi-gothic-subst.ttf +filename.-misc-kochi_mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/kochi-substitute/kochi-mincho-subst.ttf +filename.-misc-ming for iso10646 -medium-r-normal--*-%d-*-*-c-*-iso10646-1=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/hkscs-ming/min_uni.ttf + +# AWT X11 font paths +awtfontpath.latin-1=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/Type1 +awtfontpath.chinese-big5=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/arphicfonts +awtfontpath.chinese-gb18030=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/arphicfonts +awtfontpath.japanese-x0208=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/kochi-substitute +awtfontpath.korean=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/baekmuk-fonts diff --git a/dev-java/oracle-jdk-bin/files/oracle-jdk-bin-1.7.env b/dev-java/oracle-jdk-bin/files/oracle-jdk-bin-1.7.env new file mode 100644 index 0000000..cc6305d --- /dev/null +++ b/dev-java/oracle-jdk-bin/files/oracle-jdk-bin-1.7.env @@ -0,0 +1,17 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +VERSION="Oracle JDK @PV@" +JAVA_HOME="@GENTOO_PORTAGE_EPREFIX@/opt/@P@" +JDK_HOME="@GENTOO_PORTAGE_EPREFIX@/opt/@P@" +JAVAC=${JAVA_HOME}/bin/javac +PATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin" +ROOTPATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin" +LDPATH="${JAVA_HOME}/jre/lib/@PLATFORM@/:${JAVA_HOME}/jre/lib/@PLATFORM@/xawt/:${JAVA_HOME}/jre/lib/@PLATFORM@/server/" +MANPATH="@GENTOO_PORTAGE_EPREFIX@/opt/@P@/man" +PROVIDES_TYPE="JDK JRE" +PROVIDES_VERSION="1.7" +BOOTCLASSPATH="${JAVA_HOME}/jre/lib/resources.jar:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/jre/lib/sunrsasign.jar:${JAVA_HOME}/jre/lib/jsse.jar:${JAVA_HOME}/jre/lib/jce.jar:${JAVA_HOME}/jre/lib/charsets.jar:${JAVA_HOME}/jre/classes" +GENERATION="2" +ENV_VARS="JAVA_HOME JDK_HOME JAVAC PATH ROOTPATH LDPATH MANPATH" diff --git a/dev-java/oracle-jdk-bin/oracle-jdk-bin-1.7.0.80.ebuild b/dev-java/oracle-jdk-bin/oracle-jdk-bin-1.7.0.80.ebuild new file mode 100644 index 0000000..2de0ce1 --- /dev/null +++ b/dev-java/oracle-jdk-bin/oracle-jdk-bin-1.7.0.80.ebuild @@ -0,0 +1,308 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit eutils java-vm-2 prefix versionator + +MY_PV="$(get_version_component_range 2)u$(get_version_component_range 4)" +S_PV="$(replace_version_separator 3 '_')" + +# This URIs need to be updated when bumping! +JDK_URI="http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html#jdk-${MY_PV}-oth-JPR" +JCE_URI="http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html" +# This is a list of archs supported by this update. +# Currently arm comes and goes. +AT_AVAILABLE=( amd64 x86 ) +# Sometimes some or all of the demos are missing, this is to not have to rewrite half +# the ebuild when it happens. +DEMOS_AVAILABLE=( ) +#amd64 x86 x64-solaris x86-solaris sparc-solaris sparc64-solaris x86-macos x64-macos ) +FX_VERSION="2_2_$(get_version_component_range 4)" + +AT_x86="jdk-${MY_PV}-linux-i586.tar.gz" +AT_amd64="jdk-${MY_PV}-linux-x64.tar.gz" +AT_arm="jdk-${MY_PV}-linux-arm-vfp-sflt.tar.gz jdk-${MY_PV}-linux-arm-vfp-hflt.tar.gz" +AT_x86_solaris="jdk-${MY_PV}-solaris-i586.tar.gz" +AT_x64_solaris="${AT_x86_solaris} jdk-${MY_PV}-solaris-x64.tar.gz" +AT_sparc_solaris="jdk-${MY_PV}-solaris-sparc.tar.gz" +AT_sparc64_solaris="${AT_sparc_solaris} jdk-${MY_PV}-solaris-sparcv9.tar.gz" +AT_x86_macos="jdk-${MY_PV}-macosx-x64.dmg" +AT_x64_macos="jdk-${MY_PV}-macosx-x64.dmg" + +FXDEMOS_linux="javafx_samples-${FX_VERSION}-linux.zip" + +DEMOS_x86="${FXDEMOS_linux} jdk-${MY_PV}-linux-i586-demos.tar.gz" +DEMOS_amd64="${FXDEMOS_linux} jdk-${MY_PV}-linux-x64-demos.tar.gz" +DEMOS_arm="${FXDEMOS_linux} jdk-${MY_PV}-linux-arm-vfp-sflt-demos.tar.gz jdk-${MY_PV}-linux-arm-vfp-hflt-demos.tar.gz" +DEMOS_x86_solaris="jdk-${MY_PV}-solaris-i586-demos.tar.gz" +DEMOS_x64_solaris="${DEMOS_x86_solaris} jdk-${MY_PV}-solaris-x64-demos.tar.gz" +DEMOS_sparc_solaris="jdk-${MY_PV}-solaris-sparc-demos.tar.gz" +DEMOS_sparc64_solaris="${DEMOS_sparc_solaris} jdk-${MY_PV}-solaris-sparcv9-demos.tar.gz" +DEMOS_x86_macos="jdk-${MY_PV}-macosx-x86_64-demos.tar.gz" +DEMOS_x64_macos="jdk-${MY_PV}-macosx-x86_64-demos.tar.gz" + +JCE_DIR="UnlimitedJCEPolicy" +JCE_FILE="${JCE_DIR}JDK7.zip" + +DESCRIPTION="Oracle's Java SE Development Kit" +HOMEPAGE="http://www.oracle.com/technetwork/java/javase/" +for d in "${AT_AVAILABLE[@]}"; do + SRC_URI+=" ${d}? (" + SRC_URI+=" $(eval "echo \${$(echo AT_${d/-/_})}")" + if has ${d} "${DEMOS_AVAILABLE[@]}"; then + SRC_URI+=" examples? ( $(eval "echo \${$(echo DEMOS_${d/-/_})}") )" + fi + SRC_URI+=" )" +done +unset d +SRC_URI+=" jce? ( ${JCE_FILE} )" + +LICENSE="Oracle-BCLA-JavaSE examples? ( BSD )" +SLOT="1.7" +KEYWORDS="amd64 x86" +IUSE="+X alsa aqua derby doc examples +fontconfig jce nsplugin pax_kernel selinux source" + +RESTRICT="fetch strip" +QA_PREBUILT="*" + +COMMON_DEP="" +RDEPEND="${COMMON_DEP} + X? ( !aqua? ( + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXtst + ) ) + alsa? ( media-libs/alsa-lib ) + doc? ( dev-java/java-sdk-docs:1.7 ) + fontconfig? ( media-libs/fontconfig ) + !prefix? ( sys-libs/glibc ) + selinux? ( sec-policy/selinux-java )" +# scanelf won't create a PaX header, so depend on paxctl to avoid fallback +# marking. #427642 +DEPEND="${COMMON_DEP} + jce? ( app-arch/unzip ) + examples? ( kernel_linux? ( app-arch/unzip ) ) + pax_kernel? ( sys-apps/paxctl )" + +S="${WORKDIR}"/jdk${S_PV} + +check_tarballs_available() { + local uri=$1; shift + local dl= unavailable= + for dl in "${@}"; do + [[ ! -f "${DISTDIR}/${dl}" ]] && unavailable+=" ${dl}" + done + + if [[ -n "${unavailable}" ]]; then + if [[ -z ${_check_tarballs_available_once} ]]; then + einfo + einfo "Oracle requires you to download the needed files manually after" + einfo "accepting their license through a javascript capable web browser." + einfo + _check_tarballs_available_once=1 + fi + einfo "Download the following files:" + for dl in ${unavailable}; do + einfo " ${dl}" + done + einfo "at '${uri}'" + einfo "and move them to '${DISTDIR}'" + einfo + einfo "If the above mentioned urls do not point to the correct version anymore," + einfo "please download the files from Oracle's java download archive:" + einfo + einfo " http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-${MY_PV}-oth-JPR" + einfo + fi +} + +pkg_nofetch() { + local distfiles=( $(eval "echo \${$(echo AT_${ARCH/-/_})}") ) + if use examples && has ${ARCH} "${DEMOS_AVAILABLE[@]}"; then + distfiles+=( $(eval "echo \${$(echo DEMOS_${ARCH/-/_})}") ) + fi + check_tarballs_available "${JDK_URI}" "${distfiles[@]}" + + use jce && check_tarballs_available "${JCE_URI}" "${JCE_FILE}" +} + +src_unpack() { + # Special case for ARM soft VS hard float. + if use arm ; then + if [[ ${CHOST} == *-hardfloat-* ]] ; then + unpack jdk-${MY_PV}-linux-arm-vfp-hflt.tar.gz + use examples && unpack jdk-${MY_PV}-linux-arm-vfp-hflt-demos.tar.gz + else + unpack jdk-${MY_PV}-linux-arm-vfp-sflt.tar.gz + use examples && unpack jdk-${MY_PV}-linux-arm-vfp-sflt-demos.tar.gz + fi + use examples && unpack javafx_samples-${FX_VERSION}-linux.zip + use jce && unpack ${JCE_FILE} + elif use x86-macos || use x64-macos ; then + pushd "${T}" > /dev/null + mkdir dmgmount + hdiutil attach "${DISTDIR}"/jdk-${MY_PV}-macosx-x64.dmg \ + -mountpoint "${T}"/dmgmount + xar -xf dmgmount/JDK\ $(get_version_component_range 2)\ Update\ $(get_version_component_range 4).pkg + hdiutil detach "${T}"/dmgmount + zcat jdk1${MY_PV/u/0}.pkg/Payload | cpio -idv + mv Contents/Home "${S}" + popd > /dev/null + else + default + fi +} + +src_prepare() { + if use jce; then + mv "${WORKDIR}"/${JCE_DIR} "${S}"/jre/lib/security/ || die + fi +} + +src_install() { + local dest="/opt/${P}" + local ddest="${ED}${dest}" + + # Create files used as storage for system preferences. + mkdir jre/.systemPrefs || die + touch jre/.systemPrefs/.system.lock || die + touch jre/.systemPrefs/.systemRootModFile || die + + # We should not need the ancient plugin for Firefox 2 anymore, plus it has + # writable executable segments + if use x86; then + rm -vf {,jre/}lib/i386/libjavaplugin_oji.so \ + {,jre/}lib/i386/libjavaplugin_nscp*.so + rm -vrf jre/plugin/i386 + fi + # Without nsplugin flag, also remove the new plugin + local arch=${ARCH}; + use x86 && arch=i386; + if ! use nsplugin; then + rm -vf {,jre/}lib/${arch}/libnpjp2.so \ + {,jre/}lib/${arch}/libjavaplugin_jni.so + fi + + dodoc COPYRIGHT + dohtml README.html + + dodir "${dest}" + cp -pPR bin include jre lib man "${ddest}" || die + + if use derby; then + cp -pPR db "${ddest}" || die + fi + + if use examples && has ${ARCH} "${DEMOS_AVAILABLE[@]}"; then + cp -pPR demo sample "${ddest}" || die + if use kernel_linux; then + cp -pPR "${WORKDIR}"/javafx-samples-${FX_VERSION//_/.} \ + "${ddest}"/javafx-samples || die + fi + fi + + if use jce; then + dodir "${dest}"/jre/lib/security/strong-jce + mv "${ddest}"/jre/lib/security/US_export_policy.jar \ + "${ddest}"/jre/lib/security/strong-jce || die + mv "${ddest}"/jre/lib/security/local_policy.jar \ + "${ddest}"/jre/lib/security/strong-jce || die + dosym "${dest}"/jre/lib/security/${JCE_DIR}/US_export_policy.jar \ + "${dest}"/jre/lib/security/US_export_policy.jar + dosym "${dest}"/jre/lib/security/${JCE_DIR}/local_policy.jar \ + "${dest}"/jre/lib/security/local_policy.jar + fi + + if use nsplugin; then + install_mozilla_plugin "${dest}"/jre/lib/${arch}/libnpjp2.so + fi + + if use source; then + cp -p src.zip "${ddest}" || die + fi + + if use !arm && use !x86-macos && use !x64-macos ; then + # Install desktop file for the Java Control Panel. + # Using ${PN}-${SLOT} to prevent file collision with jre and or + # other slots. make_desktop_entry can't be used as ${P} would + # end up in filename. + newicon jre/lib/desktop/icons/hicolor/48x48/apps/sun-jcontrol.png \ + sun-jcontrol-${PN}-${SLOT}.png || die + sed -e "s#Name=.*#Name=Java Control Panel for Oracle JDK ${SLOT}#" \ + -e "s#Exec=.*#Exec=/opt/${P}/jre/bin/jcontrol#" \ + -e "s#Icon=.*#Icon=sun-jcontrol-${PN}-${SLOT}#" \ + -e "s#Application;##" \ + -e "/Encoding/d" \ + jre/lib/desktop/applications/sun_java.desktop \ + > "${T}"/jcontrol-${PN}-${SLOT}.desktop || die + domenu "${T}"/jcontrol-${PN}-${SLOT}.desktop + fi + + # Prune all fontconfig files so libfontconfig will be used and only install + # a Gentoo specific one if fontconfig is disabled. + # http://docs.oracle.com/javase/7/docs/technotes/guides/intl/fontconfig.html + rm "${ddest}"/jre/lib/fontconfig.* + if ! use fontconfig; then + cp "${FILESDIR}"/fontconfig.Gentoo.properties "${T}"/fontconfig.properties || die + eprefixify "${T}"/fontconfig.properties + insinto "${dest}"/jre/lib/ + doins "${T}"/fontconfig.properties + fi + + # This needs to be done before CDS - #215225 + java-vm_set-pax-markings "${ddest}" + + # see bug #207282 + einfo "Creating the Class Data Sharing archives" + case ${ARCH} in + arm|ia64) + ${ddest}/bin/java -client -Xshare:dump || die + ;; + x86) + ${ddest}/bin/java -client -Xshare:dump || die + # limit heap size for large memory on x86 #467518 + # this is a workaround and shouldn't be needed. + ${ddest}/bin/java -server -Xms64m -Xmx64m -Xshare:dump || die + ;; + *) + ${ddest}/bin/java -server -Xshare:dump || die + ;; + esac + + # Remove empty dirs we might have copied + find "${D}" -type d -empty -exec rmdir -v {} + || die + + if use x86-macos || use x64-macos ; then + # fix misc install_name issues + pushd "${ddest}"/jre/lib > /dev/null || die + local lib needed nlib npath + for lib in \ + libJObjC libdecora-sse libglass libjavafx-{font,iio} \ + libjfxmedia libjfxwebkit libprism-es2 ; + do + lib=${lib}.dylib + einfo "Fixing self-reference of ${lib}" + install_name_tool \ + -id "${EPREFIX}${dest}/jre/lib/${lib}" \ + "${lib}" + done + popd > /dev/null + for nlib in jdk1{5,6} ; do + install_name_tool -change \ + /usr/lib/libgcc_s_ppc64.1.dylib \ + /usr/lib/libSystem.B.dylib \ + "${ddest}"/lib/visualvm/profiler/lib/deployed/${nlib}/mac/libprofilerinterface.jnilib + install_name_tool -id \ + "${EPREFIX}${dest}"/lib/visualvm/profiler/lib/deployed/${nlib}/mac/libprofilerinterface.jnilib \ + "${ddest}"/lib/visualvm/profiler/lib/deployed/${nlib}/mac/libprofilerinterface.jnilib + done + fi + + set_java_env + java-vm_revdep-mask + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter +} diff --git a/dev-perl/Net-DNS/Manifest b/dev-perl/Net-DNS/Manifest new file mode 100644 index 0000000..e1b762e --- /dev/null +++ b/dev-perl/Net-DNS/Manifest @@ -0,0 +1,3 @@ +AUX Net-DNS-0.68-ar.patch 604 SHA256 068e06efa1e18b7b5e2c8ce8a9d7aff2b68d99652f6e8178fdac43ccb93e9d21 SHA512 4826a4572f31472ea6b4968836a425b4119e9a5163afcf389252b75bc7ac63ff3e411a3950fc548e6340500967152e0fed7d11a0ee30b1e287b4ea7e49f064c6 WHIRLPOOL ba3cb9a6c3856449409e864ef42b32e5b82fbd717b6a915da83934df58a95957cd1816ed4e1a35919b43b84df21f23e11c6e93238c905f486e73d28ee4d3a6fe +DIST Net-DNS-0.74.tar.gz 200829 SHA256 ef64af502e94f2d0e0a672ab951d846fd1406544eca596a86943bc8f2da19c32 SHA512 f0bb5482247c9b01dc6e704d1d6f93881b209001d5b43488c453f24b48ddbb07aefa4bb8e71d1d61f3f5d81ad918627f66e56a8a14d2d9adcccf0fe1af15389d WHIRLPOOL dd15330e82b2d06867cae1461d6115b9545aaf0042e9c7e674022330870f18fbf2af4349fb3350bd755e35cdaca6437258ce39293d2f0cd6665b4ad8372babd7 +EBUILD Net-DNS-0.740.0.ebuild 1176 SHA256 c814e8c44835b0d493828247735685975df9369e75a4eaab3be829391848250c SHA512 044e23fc1baca2a2bd4596a4013d42d1900b647ae49fa7fea3ce167d9757161a6ab493314eb9380aba860d00a73115c71b64a36c1d8f60295f5ac2fbbd7ebf99 WHIRLPOOL f1fd096c8488b582a22f1578cb36bf03f0b177425d9545d7349a1387536c0564c6668f0d75bf066133af0bc360c984bdf2d8da0df87ae720a1122d3262cdff25 diff --git a/dev-perl/Net-DNS/Net-DNS-0.740.0.ebuild b/dev-perl/Net-DNS/Net-DNS-0.740.0.ebuild new file mode 100644 index 0000000..cd01a7c --- /dev/null +++ b/dev-perl/Net-DNS/Net-DNS-0.740.0.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-perl/Net-DNS/Net-DNS-0.740.0.ebuild,v 1.8 2015/01/30 11:27:53 zlogene Exp $ + +EAPI=5 + +MODULE_AUTHOR=NLNETLABS +MODULE_VERSION=0.74 +inherit toolchain-funcs perl-module + +DESCRIPTION="Perl Net::DNS - Perl DNS Resolver Module" + +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris" +IUSE="ipv6 test" + +RDEPEND=" + virtual/perl-Digest-MD5 + dev-perl/Digest-HMAC + virtual/perl-Digest-SHA + dev-perl/Net-IP + virtual/perl-MIME-Base64 + ipv6? ( + dev-perl/IO-Socket-INET6 + ) +" +DEPEND="${RDEPEND} + test? ( + virtual/perl-Test-Simple + dev-perl/Test-Pod + )" + +PATCHES=( ${FILESDIR}/${PN}-0.68-ar.patch ) +SRC_TEST="do" + +src_prepare() { + perl-module_src_prepare + mydoc="TODO" + # --IPv6-tests requires that you have external IPv6 connectivity + # as it connects to 2001:7b8:206:1:0:1234:be21:e31e + myconf="${myconf} --no-online-tests --no-IPv6-tests" +} + +src_compile() { + emake FULL_AR="$(tc-getAR)" OTHERLDFLAGS="${LDFLAGS}" +} diff --git a/dev-perl/Net-DNS/files/Net-DNS-0.68-ar.patch b/dev-perl/Net-DNS/files/Net-DNS-0.68-ar.patch new file mode 100644 index 0000000..cad63fa --- /dev/null +++ b/dev-perl/Net-DNS/files/Net-DNS-0.68-ar.patch @@ -0,0 +1,16 @@ +The linker on Darwin/x86 needs archives with an index, so create one. + +Ported-from: files/Net-DNS-0.64-ar.patch + +diff -Nuar Net-DNS-0.68.orig/Makefile.PL Net-DNS-0.68/Makefile.PL +--- Net-DNS-0.68.orig/Makefile.PL 2012-01-27 23:02:34.000000000 +0000 ++++ Net-DNS-0.68/Makefile.PL 2012-02-29 09:03:14.939727214 +0000 +@@ -336,7 +336,7 @@ + use Config qw(%Config); + + sub postamble { +- my $cr = ( $^O eq 'MSWin32' && $Config{'cc'} eq 'cl' ? '/OUT:' : 'cr ' ); # ar action ++ my $cr = ( $^O eq 'MSWin32' && $Config{'cc'} eq 'cl' ? '/OUT:' : 'crs ' ); # ar action + + my $content = ' + test_cover : pure_all diff --git a/dev-python/iptools/Manifest b/dev-python/iptools/Manifest new file mode 100644 index 0000000..5725375 --- /dev/null +++ b/dev-python/iptools/Manifest @@ -0,0 +1,2 @@ +DIST iptools-0.6.1.tar.gz 13928 SHA256 0f03875a5bed740ba4bf44decb6a78679cca914a1ee8a6cc468114485c4d98e3 SHA512 5a2b7fab028cc81699b791bf1669c3eb8311af1d9b17b2f3aa4bdd92dae3a9dc4ec38cf1de385bb592559b0ce560764debc152f11d98e6082e6c9fcdf643db3b WHIRLPOOL f69a5bbb926a59c6dc21eac2dd86ffc86402144d3dcca7d5a86bc5c96c44acaf7d3c59a233ce42ea84486dc6a843952161e37e81cad99c6133dd5add794f262e +EBUILD iptools-0.6.1.ebuild 1135 SHA256 46dc6cd695bcc979479c621894addef7d69453337f26c3942846db38a279fcee SHA512 d68d3799f39bba62ed52da1016c91dc8034402ce7ee495d8ac780f0fb80285edf3bf2ececb5190d32aafb50141e90963418bf7c87fe9c8332203806fa850f93f WHIRLPOOL 4123d2514b9d61d7186dffa14a79745325a87b744e220677201e2c97b364f5a5c21907213b6a6a150239353e8603be57ff92880599d59d1b6be915e7f69edc64 diff --git a/dev-python/iptools/iptools-0.6.1.ebuild b/dev-python/iptools/iptools-0.6.1.ebuild new file mode 100644 index 0000000..48083d0 --- /dev/null +++ b/dev-python/iptools/iptools-0.6.1.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/boto/boto-2.9.8.ebuild,v 1.1 2013/07/21 09:05:17 radhermit Exp $ + +EAPI="5" +PYTHON_COMPAT=( python{2_5,2_6,2_7,3_2,3_3,3_4} ) + +inherit distutils-r1 + +DESCRIPTION="Python utilites for manipulating IPv4 and IPv6 addresses" +HOMEPAGE="https://github.com/bd808/python-iptools http://pypi.python.org/pypi/iptools" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" +DEPEND="test? ( dev-python/nose[${PYTHON_USEDEP}]" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" +IUSE="doc" + +DEPEND="dev-python/setuptools[${PYTHON_USEDEP}] + doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )" + +python_test() { + nosetests || die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + distutils-r1_python_install_all + # iptools doesnt package its sphinx Makefile, config, templates, etc. + # for now install the single doc until the following PR gets merged and + # released: https://github.com/bd808/python-iptools/pull/10 + use doc && dodoc docs/index.rst +} diff --git a/dev-scheme/guile/Manifest b/dev-scheme/guile/Manifest new file mode 100644 index 0000000..0d0e930 --- /dev/null +++ b/dev-scheme/guile/Manifest @@ -0,0 +1,3 @@ +DIST guile-2.0.11.tar.gz 7516053 SHA256 e6786c934346fa2e38e46d8d81a622bb1c16d130153523f6129fcd79ef1fb040 SHA512 dc1a30d44e6d432fab2407d72385e959af863f6feba6cca5813b4de24c92200c78b44f336d1f4fa8c7b4058dea880982787c69888c91a2236fd2fb1d313137fd WHIRLPOOL 16ee2aa8cc14c2836855a0faf5e6a7e827fcba1824757b6c2ec26705e12b2a24bc84ec22c03213c080f16931552165afe1beb7bc159ba09f4722d71c5c8d849c +EBUILD guile-2.0.11-r1.ebuild 2433 SHA256 9ec4a92a0f86afaad199c3a058fd2d937622d00622dc751dda8a8f6c691ad4c1 SHA512 4ecdf1282869c61760a5ce913d71b752b34eedb3447ff53db1f0d9effcf2fc6b428a66430e3efca2e2a43912e461bbbc21ba12c599f479b049889632ff94c83a WHIRLPOOL 7d77f535ea79488944ea3052ea17d655967588aba4d922612f2502158997690b0a191d219e2302ac71d295c31d592db8e0d61bbb39f54b1da7d9491fc7d7fb65 +MISC metadata.xml 1022 SHA256 d8e7d6374ad5eda95a503de2ea52bd663ee733036b21a8f9a4b6825a640c2424 SHA512 e6dd9a7f62c8883df3dc6ac026e467fc93a41bcb8bb766f6ddf66effec12eec590ee325cf29410649b7834bd9f6eee60e715eef7d6ef7b84763455055247bae8 WHIRLPOOL 2d9c70ba168860165eab55b3e181988cd01fd2955b5d2001671bf472091bb039af20f647666e66a20fdb1ab4440f2065f61696470bf2d68ca93872eaed7fe844 diff --git a/dev-scheme/guile/guile-2.0.11-r1.ebuild b/dev-scheme/guile/guile-2.0.11-r1.ebuild new file mode 100644 index 0000000..7ca9de2 --- /dev/null +++ b/dev-scheme/guile/guile-2.0.11-r1.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit eutils flag-o-matic +#inherit git-2 + +DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions" +HOMEPAGE="http://www.gnu.org/software/guile/" +SRC_URI="mirror://gnu/guile/${P}.tar.gz" +#EGIT_REPO_URI="git://git.sv.gnu.org/guile.git" +#EGIT_MASTER="stable-2.0" + +LICENSE="LGPL-3" +KEYWORDS="amd64 x86" +IUSE="doc networking +regex +deprecated nls debug-malloc debug +threads" + +RDEPEND=" + || ( app-eselect/eselect-guile app-admin/eselect-guile ) + >=dev-libs/boehm-gc-7.0[threads?] + dev-libs/gmp:0 + dev-libs/libffi + dev-libs/libunistring + sys-devel/gettext + >=sys-devel/libtool-1.5.6 +" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( sys-apps/texinfo ) +" + +SLOT="2" +MAJOR="2" + +#src_prepare() { +# # for live ebuilds +# if [ -x autogen.sh ]; then +# ./autogen.sh || die +# fi +#} + +src_configure() { + # see bug #178499 + filter-flags -ftree-vectorize + + #will fail for me if posix is disabled or without modules -- hkBst + econf \ + --program-suffix="-${MAJOR}" \ + --infodir="${EPREFIX}"/usr/share/info/guile-${MAJOR} \ + --disable-error-on-warning \ + --disable-static \ + --enable-posix \ + $(use_enable networking) \ + $(use_enable regex) \ + $(use_enable deprecated) \ + $(use_enable nls) \ + --disable-rpath \ + $(use_enable debug-malloc) \ + $(use_enable debug guile-debug) \ + $(use_with threads) \ + --with-modules +} + +src_compile() { + emake || die "make failed" +} + +src_install() { + einstall infodir="${ED}"/usr/share/info/guile-${MAJOR} || die "install failed" + + # Maybe there is a proper way to do this? Symlink handled by eselect + mv "${ED}"/usr/share/aclocal/guile.m4 "${ED}"/usr/share/aclocal/guile-${MAJOR}.m4 || die "rename of guile.m4 failed" + + dodoc AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS || die + + # necessary for registering slib, see bug 206896 + keepdir /usr/share/guile/site + + use doc && { + make -C doc html MAKEINFOHTML='makeinfo --html --no-split' || { + die "\`make -C doc html' failed" + } + dohtml doc/ref/guile.html doc/r5rs/r5rs.html + } +} + +pkg_postinst() { + [ "${EROOT}" == "/" ] && pkg_config + eselect guile update --if-unset +} + +pkg_postrm() { + eselect guile update --if-unset +} + +pkg_config() { + if has_version dev-scheme/slib; then + einfo "Registering slib with guile" + install_slib_for_guile + fi +} + +_pkg_prerm() { + rm -f "${EROOT}"/usr/share/guile/site/slibcat +} diff --git a/dev-scheme/guile/metadata.xml b/dev-scheme/guile/metadata.xml new file mode 100644 index 0000000..21f31ba --- /dev/null +++ b/dev-scheme/guile/metadata.xml @@ -0,0 +1,19 @@ + + + + scheme + + github@crudfactory.com + + + Guile is a library designed to help programmers create flexible applications. Using Guile in an application allows programmers to write plug-ins, or modules (there are many names, but the concept is essentially the same) and users to use them to have an application fit their needs. + + + Include garbage collector freelist debugging code + Include malloc debugging code + Enable deprecated features + (implied by deprecated) enable merely discouraged features + Include networking interfaces + Include regular expression interfaces + + diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass new file mode 100644 index 0000000..09b3c9c --- /dev/null +++ b/eclass/flag-o-matic.eclass @@ -0,0 +1,773 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /home/sysadmin/cvsroot/portoverlay/myhardened/eclass/flag-o-matic.eclass,v 1.1 2011/01/03 11:47:17 valko Exp $ + +# @ECLASS: flag-o-matic.eclass +# @MAINTAINER: +# toolchain@gentoo.org +# @BLURB: common functions to manipulate and query toolchain flags +# @DESCRIPTION: +# This eclass contains a suite of functions to help developers sanely +# and safely manage toolchain flags in their builds. + +inherit eutils toolchain-funcs multilib + +################ DEPRECATED functions ################ +# The following are still present to avoid breaking existing +# code more than necessary; however they are deprecated. Please +# use gcc-specs-* from toolchain-funcs.eclass instead, if you +# need to know which hardened techs are active in the compiler. +# See bug #100974 +# +# has_hardened +# has_pie +# has_pic +# has_ssp_all +# has_ssp + + +# {C,CXX,F,FC}FLAGS that we allow in strip-flags +# Note: shell globs and character lists are allowed +setup-allowed-flags() { + if [[ -z ${ALLOWED_FLAGS} ]] ; then + export ALLOWED_FLAGS="-pipe" + export ALLOWED_FLAGS="${ALLOWED_FLAGS} -O -O0 -O1 -O2 -mcpu -march -mtune" + export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fstack-protector -fstack-protector-all" + export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fbounds-checking -fno-strict-overflow" + export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-PIE -fno-pie -fno-unit-at-a-time" + export ALLOWED_FLAGS="${ALLOWED_FLAGS} -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+" + export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident" + export ALLOWED_FLAGS="${ALLOWED_FLAGS} -W* -w" + fi + # allow a bunch of flags that negate features / control ABI + ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all \ + -fno-strict-aliasing -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer" + ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs \ + -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 \ + -mno-sse4.2 -mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow \ + -mno-popcnt -mno-abm \ + -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt \ + -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu \ + -mieee -mieee-with-inexact -mschedule \ + -mtls-direct-seg-refs -mno-tls-direct-seg-refs \ + -mflat -mno-flat -mno-faster-structs -mfaster-structs \ + -m32 -m64 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC \ + -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias \ + -msecure-plt -m*-toc -D* -U*" + + # {C,CXX,F,FC}FLAGS that we are think is ok, but needs testing + # NOTE: currently -Os have issues with gcc3 and K6* arch's + export UNSTABLE_FLAGS="-Os -O3 -freorder-blocks" + return 0 +} + +# Raw appending of the reverse flag. +# Only supports {-f,-fno-} flag types currently. +_reverse-append() { + [[ -z $1 ]] && return 0 + local f rf + + f=$1 + if [[ ${f} =~ ^-fno-.* ]]; then + rf=${f/-fno-/-f} + elif [[ ${f} =~ ^-f.* ]]; then + rf=${f/-f/-fno-} + else + return 0 + fi + + _is_flagq CFLAGS ${rf} || append-cflags $(test-flags-CC ${rf}) + _is_flagq CPPFLAGS ${rf} || append-cppflags $(test-flags-CXX ${rf}) + _is_flagq CXXFLAGS ${rf} || append-cxxflags $(test-flags-CXX ${rf}) + { _is_flagq FCFLAGS ${rf} && _is_flagq FFLAGS ${rf} ;} || \ + append-fflags $(test-flags-FC ${rf}) +} + +# Inverted filters for hardened compiler. +# This is trying to unpick the hardened compiler defaults. +_filter-hardened() { + local f + for f in "$@" ; do + case "${f}" in + # Ideally we should only concern ourselves with PIE flags, + # not -fPIC or -fpic, but too many places filter -fPIC without + # thinking about -fPIE. + -fPIC|-fpic|-fPIE|-fpie|-Wl,pie|-pie) + gcc-specs-pie && { is-flagq -nopie || append-flags -nopie ;};; + -fstack-protector) + gcc-specs-ssp && _reverse-append ${f};; + -fstack-protector-all) + gcc-specs-ssp-to-all && _reverse-append ${f};; + -fno-strict-overflow) + gcc-specs-nostrictoverflow && _reverse-append ${f};; + esac + done +} + +# Remove occurrences of strings from variable given in $1 +# Strings removed are matched as globs, so for example +# '-O*' would remove -O1, -O2 etc. +_filter-var() { + local f x VAR VAL + declare -a new + + VAR=$1 + shift + eval VAL=\${${VAR}} + for f in ${VAL}; do + for x in "$@"; do + # Note this should work with globs like -O* + [[ ${f} == ${x} ]] && continue 2 + done + eval new\[\${\#new\[@]}]=\${f} + done + eval export ${VAR}=\${new\[*]} +} + +# @FUNCTION: filter-flags +# @USAGE: +# @DESCRIPTION: +# Remove particular from {C,CPP,CXX,F,FC}FLAGS. Accepts shell globs. +filter-flags() { + _filter-hardened "$@" + _filter-var CFLAGS "$@" + _filter-var CPPFLAGS "$@" + _filter-var CXXFLAGS "$@" + _filter-var FFLAGS "$@" + _filter-var FCFLAGS "$@" + return 0 +} + +# @FUNCTION: filter-lfs-flags +# @DESCRIPTION: +# Remove flags that enable Large File Support. +filter-lfs-flags() { + [[ -n $@ ]] && die "filter-lfs-flags takes no arguments" + filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE +} + +# @FUNCTION: append-cppflags +# @USAGE: +# @DESCRIPTION: +# Add extra to the current CPPFLAGS. +append-cppflags() { + [[ -z $* ]] && return 0 + export CPPFLAGS="${CPPFLAGS} $*" + return 0 +} + +# @FUNCTION: append-cflags +# @USAGE: +# @DESCRIPTION: +# Add extra to the current CFLAGS. +append-cflags() { + [[ -z $* ]] && return 0 + export CFLAGS="${CFLAGS} $*" + return 0 +} + +# @FUNCTION: append-cxxflags +# @USAGE: +# @DESCRIPTION: +# Add extra to the current CXXFLAGS. +append-cxxflags() { + [[ -z $* ]] && return 0 + export CXXFLAGS="${CXXFLAGS} $*" + return 0 +} + +# @FUNCTION: append-fflags +# @USAGE: +# @DESCRIPTION: +# Add extra to the current {F,FC}FLAGS. +append-fflags() { + [[ -z $* ]] && return 0 + export FFLAGS="${FFLAGS} $*" + export FCFLAGS="${FCFLAGS} $*" + return 0 +} + +# @FUNCTION: append-lfs-flags +# @DESCRIPTION: +# Add flags that enable Large File Support. +append-lfs-flags() { + [[ -n $@ ]] && die "append-lfs-flags takes no arguments" + append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE +} + +# @FUNCTION: append-flags +# @USAGE: +# @DESCRIPTION: +# Add extra to your current {C,CXX,F,FC}FLAGS. +append-flags() { + [[ -z $* ]] && return 0 + append-cflags "$@" + append-cxxflags "$@" + append-fflags "$@" + return 0 +} + +# @FUNCTION: replace-flags +# @USAGE: +# @DESCRIPTION: +# Replace the flag with . Accepts shell globs for . +replace-flags() { + [[ $# != 2 ]] \ + && echo && eerror "Usage: replace-flags " \ + && die "replace-flags takes 2 arguments, not $#" + + local f fset + declare -a new_CFLAGS new_CXXFLAGS new_FFLAGS new_FCFLAGS + + for fset in CFLAGS CXXFLAGS FFLAGS FCFLAGS; do + # Looping over the flags instead of using a global + # substitution ensures that we're working with flag atoms. + # Otherwise globs like -O* have the potential to wipe out the + # list of flags. + for f in ${!fset}; do + # Note this should work with globs like -O* + [[ ${f} == ${1} ]] && f=${2} + eval new_${fset}\[\${\#new_${fset}\[@]}]=\${f} + done + eval export ${fset}=\${new_${fset}\[*]} + done + + return 0 +} + +# @FUNCTION: replace-cpu-flags +# @USAGE: +# @DESCRIPTION: +# Replace cpu flags (like -march/-mcpu/-mtune) that select the cpu +# with flags that select the cpu. Accepts shell globs for . +replace-cpu-flags() { + local newcpu="$#" ; newcpu="${!newcpu}" + while [ $# -gt 1 ] ; do + # quote to make sure that no globbing is done (particularly on + # ${oldcpu}) prior to calling replace-flags + replace-flags "-march=${1}" "-march=${newcpu}" + replace-flags "-mcpu=${1}" "-mcpu=${newcpu}" + replace-flags "-mtune=${1}" "-mtune=${newcpu}" + shift + done + return 0 +} + +_is_flagq() { + local x + for x in ${!1} ; do + [[ ${x} == $2 ]] && return 0 + done + return 1 +} + +# @FUNCTION: is-flagq +# @USAGE: +# @DESCRIPTION: +# Returns shell true if is in {C,CXX,F,FC}FLAGS, else returns shell false. Accepts shell globs. +is-flagq() { + [[ -n $2 ]] && die "Usage: is-flag " + _is_flagq CFLAGS $1 || _is_flagq CXXFLAGS $1 || _is_flagq FFLAGS $1 || _is_flagq FCFLAGS $1 +} + +# @FUNCTION: is-flag +# @USAGE: +# @DESCRIPTION: +# Echo's "true" if flag is set in {C,CXX,F,FC}FLAGS. Accepts shell globs. +is-flag() { + is-flagq "$@" && echo true +} + +# @FUNCTION: is-ldflagq +# @USAGE: +# @DESCRIPTION: +# Returns shell true if is in LDFLAGS, else returns shell false. Accepts shell globs. +is-ldflagq() { + [[ -n $2 ]] && die "Usage: is-ldflag " + _is_flagq LDFLAGS $1 +} + +# @FUNCTION: is-ldflag +# @USAGE: +# @DESCRIPTION: +# Echo's "true" if flag is set in LDFLAGS. Accepts shell globs. +is-ldflag() { + is-ldflagq "$@" && echo true +} + +# @FUNCTION: filter-mfpmath +# @USAGE: +# @DESCRIPTION: +# Remove specified math types from the fpmath flag. For example, if the user +# has -mfpmath=sse,386, running `filter-mfpmath sse` will leave the user with +# -mfpmath=386. +filter-mfpmath() { + local orig_mfpmath new_math prune_math + + # save the original -mfpmath flag + orig_mfpmath=$(get-flag -mfpmath) + # get the value of the current -mfpmath flag + new_math=$(get-flag mfpmath) + new_math=" ${new_math//,/ } " + # figure out which math values are to be removed + prune_math="" + for prune_math in "$@" ; do + new_math=${new_math/ ${prune_math} / } + done + new_math=$(echo ${new_math}) + new_math=${new_math// /,} + + if [[ -z ${new_math} ]] ; then + # if we're removing all user specified math values are + # slated for removal, then we just filter the flag + filter-flags ${orig_mfpmath} + else + # if we only want to filter some of the user specified + # math values, then we replace the current flag + replace-flags ${orig_mfpmath} -mfpmath=${new_math} + fi + return 0 +} + +# @FUNCTION: strip-flags +# @DESCRIPTION: +# Strip C[XX]FLAGS of everything except known good/safe flags. +strip-flags() { + local x y flag NEW_CFLAGS NEW_CXXFLAGS NEW_FFLAGS NEW_FCFLAGS + + setup-allowed-flags + + local NEW_CFLAGS="" + local NEW_CXXFLAGS="" + local NEW_FFLAGS="" + local NEW_FCFLAGS="" + + # Allow unstable C[XX]FLAGS if we are using unstable profile ... + if has "~$(tc-arch)" ${ACCEPT_KEYWORDS} ; then + ALLOWED_FLAGS="${ALLOWED_FLAGS} ${UNSTABLE_FLAGS}" + fi + + set -f # disable pathname expansion + + for x in ${CFLAGS}; do + for y in ${ALLOWED_FLAGS}; do + flag=${x%%=*} + if [ "${flag%%${y}}" = "" ] ; then + NEW_CFLAGS="${NEW_CFLAGS} ${x}" + break + fi + done + done + + for x in ${CXXFLAGS}; do + for y in ${ALLOWED_FLAGS}; do + flag=${x%%=*} + if [ "${flag%%${y}}" = "" ] ; then + NEW_CXXFLAGS="${NEW_CXXFLAGS} ${x}" + break + fi + done + done + + for x in ${FFLAGS}; do + for y in ${ALLOWED_FLAGS}; do + flag=${x%%=*} + if [ "${flag%%${y}}" = "" ] ; then + NEW_FFLAGS="${NEW_FFLAGS} ${x}" + break + fi + done + done + + for x in ${FCFLAGS}; do + for y in ${ALLOWED_FLAGS}; do + flag=${x%%=*} + if [ "${flag%%${y}}" = "" ] ; then + NEW_FCFLAGS="${NEW_FCFLAGS} ${x}" + break + fi + done + done + + # In case we filtered out all optimization flags fallback to -O2 + if [ "${CFLAGS/-O}" != "${CFLAGS}" -a "${NEW_CFLAGS/-O}" = "${NEW_CFLAGS}" ]; then + NEW_CFLAGS="${NEW_CFLAGS} -O2" + fi + if [ "${CXXFLAGS/-O}" != "${CXXFLAGS}" -a "${NEW_CXXFLAGS/-O}" = "${NEW_CXXFLAGS}" ]; then + NEW_CXXFLAGS="${NEW_CXXFLAGS} -O2" + fi + if [ "${FFLAGS/-O}" != "${FFLAGS}" -a "${NEW_FFLAGS/-O}" = "${NEW_FFLAGS}" ]; then + NEW_FFLAGS="${NEW_FFLAGS} -O2" + fi + if [ "${FCFLAGS/-O}" != "${FCFLAGS}" -a "${NEW_FCFLAGS/-O}" = "${NEW_FCFLAGS}" ]; then + NEW_FCFLAGS="${NEW_FCFLAGS} -O2" + fi + + set +f # re-enable pathname expansion + + export CFLAGS="${NEW_CFLAGS}" + export CXXFLAGS="${NEW_CXXFLAGS}" + export FFLAGS="${NEW_FFLAGS}" + export FCFLAGS="${NEW_FCFLAGS}" + return 0 +} + +test-flag-PROG() { + local comp=$1 + local flags="$2" + + [[ -z ${comp} || -z ${flags} ]] && \ + return 1 + + local PROG=$(tc-get${comp}) + ${PROG} ${flags} -S -o /dev/null -xc /dev/null \ + > /dev/null 2>&1 +} + +# @FUNCTION: test-flag-CC +# @USAGE: +# @DESCRIPTION: +# Returns shell true if is supported by the C compiler, else returns shell false. +test-flag-CC() { test-flag-PROG "CC" "$1"; } + +# @FUNCTION: test-flag-CXX +# @USAGE: +# @DESCRIPTION: +# Returns shell true if is supported by the C++ compiler, else returns shell false. +test-flag-CXX() { test-flag-PROG "CXX" "$1"; } + +# @FUNCTION: test-flag-F77 +# @USAGE: +# @DESCRIPTION: +# Returns shell true if is supported by the Fortran 77 compiler, else returns shell false. +test-flag-F77() { test-flag-PROG "F77" "$1"; } + +# @FUNCTION: test-flag-FC +# @USAGE: +# @DESCRIPTION: +# Returns shell true if is supported by the Fortran 90 compiler, else returns shell false. +test-flag-FC() { test-flag-PROG "FC" "$1"; } + +test-flags-PROG() { + local comp=$1 + local flags + local x + + shift + + [[ -z ${comp} ]] && return 1 + + x="" + for x in "$@" ; do + test-flag-${comp} "${x}" && flags="${flags}${flags:+ }${x}" + done + + echo "${flags}" + + # Just bail if we dont have any flags + [[ -n ${flags} ]] +} + +# @FUNCTION: test-flags-CC +# @USAGE: +# @DESCRIPTION: +# Returns shell true if are supported by the C compiler, else returns shell false. +test-flags-CC() { test-flags-PROG "CC" "$@"; } + +# @FUNCTION: test-flags-CXX +# @USAGE: +# @DESCRIPTION: +# Returns shell true if are supported by the C++ compiler, else returns shell false. +test-flags-CXX() { test-flags-PROG "CXX" "$@"; } + +# @FUNCTION: test-flags-F77 +# @USAGE: +# @DESCRIPTION: +# Returns shell true if are supported by the Fortran 77 compiler, else returns shell false. +test-flags-F77() { test-flags-PROG "F77" "$@"; } + +# @FUNCTION: test-flags-FC +# @USAGE: +# @DESCRIPTION: +# Returns shell true if are supported by the Fortran 90 compiler, else returns shell false. +test-flags-FC() { test-flags-PROG "FC" "$@"; } + +# @FUNCTION: test-flags +# @USAGE: +# @DESCRIPTION: +# Short-hand that should hopefully work for both C and C++ compiler, but +# its really only present due to the append-flags() abomination. +test-flags() { test-flags-CC "$@"; } + +# @FUNCTION: test_flag +# @DESCRIPTION: +# DEPRICIATED, use test-flags() +test_flag() { + ewarn "test_flag: deprecated, please use test-flags()!" >&2 + + test-flags-CC "$@" +} + +# @FUNCTION: test_version_info +# @USAGE: +# @DESCRIPTION: +# Returns shell true if the current C compiler version matches , else returns shell false. +# Accepts shell globs. +test_version_info() { + if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then + return 0 + else + return 1 + fi +} + +# @FUNCTION: strip-unsupported-flags +# @DESCRIPTION: +# Strip {C,CXX,F,FC}FLAGS of any flags not supported by the active toolchain. +strip-unsupported-flags() { + export CFLAGS=$(test-flags-CC ${CFLAGS}) + export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS}) + export FFLAGS=$(test-flags-F77 ${FFLAGS}) + export FCFLAGS=$(test-flags-FC ${FCFLAGS}) +} + +# @FUNCTION: get-flag +# @USAGE: +# @DESCRIPTION: +# Find and echo the value for a particular flag. Accepts shell globs. +get-flag() { + local f findflag="$1" + + # this code looks a little flaky but seems to work for + # everything we want ... + # for example, if CFLAGS="-march=i686": + # `get-flag -march` == "-march=i686" + # `get-flag march` == "i686" + for f in ${CFLAGS} ${CXXFLAGS} ${FFLAGS} ${FCFLAGS} ; do + if [ "${f/${findflag}}" != "${f}" ] ; then + printf "%s\n" "${f/-${findflag}=}" + return 0 + fi + done + return 1 +} + +# @FUNCTION: has_hardened +# @DESCRIPTION: +# DEPRECATED - use gcc-specs-relro or gcc-specs-now from toolchain-funcs +has_hardened() { + ewarn "has_hardened: deprecated, please use gcc-specs-{relro,now}()!" >&2 + + test_version_info Hardened && return 0 + # The specs file wont exist unless gcc has GCC_SPECS support + [[ -f ${GCC_SPECS} && ${GCC_SPECS} != ${GCC_SPECS/hardened/} ]] +} + +# @FUNCTION: has_pic +# @DESCRIPTION: +# DEPRECATED - use gcc-specs-pie from toolchain-funcs +# indicate whether PIC is set +has_pic() { + ewarn "has_pic: deprecated, please use gcc-specs-pie()!" >&2 + + [[ ${CFLAGS/-fPIC} != ${CFLAGS} || \ + ${CFLAGS/-fpic} != ${CFLAGS} ]] || \ + gcc-specs-pie +} + +# @FUNCTION: has_pie +# @DESCRIPTION: +# DEPRECATED - use gcc-specs-pie from toolchain-funcs +# indicate whether PIE is set +has_pie() { + ewarn "has_pie: deprecated, please use gcc-specs-pie()!" >&2 + + [[ ${CFLAGS/-fPIE} != ${CFLAGS} || \ + ${CFLAGS/-fpie} != ${CFLAGS} ]] || \ + gcc-specs-pie +} + +# @FUNCTION: has_ssp_all +# @DESCRIPTION: +# DEPRECATED - use gcc-specs-ssp from toolchain-funcs +# indicate whether code for SSP is being generated for all functions +has_ssp_all() { + ewarn "has_ssp_all: deprecated, please use gcc-specs-ssp()!" >&2 + + # note; this matches only -fstack-protector-all + [[ ${CFLAGS/-fstack-protector-all} != ${CFLAGS} || \ + -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP_ALL__) ]] || \ + gcc-specs-ssp-to-all +} + +# @FUNCTION: has_ssp +# @DESCRIPTION: +# DEPRECATED - use gcc-specs-ssp from toolchain-funcs +# indicate whether code for SSP is being generated +has_ssp() { + ewarn "has_ssp: deprecated, please use gcc-specs-ssp()!" >&2 + + # note; this matches both -fstack-protector and -fstack-protector-all + [[ ${CFLAGS/-fstack-protector} != ${CFLAGS} || \ + -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP__) ]] || \ + gcc-specs-ssp +} + +# @FUNCTION: has_m64 +# @DESCRIPTION: +# This doesn't test if the flag is accepted, it tests if the flag actually +# WORKS. Non-multilib gcc will take both -m32 and -m64. If the flag works +# return code is 0, else the return code is 1. +has_m64() { + # this doesnt test if the flag is accepted, it tests if the flag + # actually -WORKS-. non-multilib gcc will take both -m32 and -m64! + # please dont replace this function with test_flag in some future + # clean-up! + + local temp="$(emktemp)" + echo "int main() { return(0); }" > "${temp}".c + MY_CC=$(tc-getCC) + ${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1 + local ret=$? + rm -f "${temp}".c + [[ ${ret} != 1 ]] && return 0 + return 1 +} + +# @FUNCTION: has_m32 +# @DESCRIPTION: +# This doesn't test if the flag is accepted, it tests if the flag actually +# WORKS. Non-mulilib gcc will take both -m32 and -64. If the flag works return +# code is 0, else return code is 1. +has_m32() { + # this doesnt test if the flag is accepted, it tests if the flag + # actually -WORKS-. non-multilib gcc will take both -m32 and -m64! + # please dont replace this function with test_flag in some future + # clean-up! + + [ "$(tc-arch)" = "amd64" ] && has_multilib_profile && return 0 + + local temp=$(emktemp) + echo "int main() { return(0); }" > "${temp}".c + MY_CC=$(tc-getCC) + ${MY_CC/ .*/} -m32 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1 + local ret=$? + rm -f "${temp}".c + [[ ${ret} != 1 ]] && return 0 + return 1 +} + +# @FUNCTION: replace-sparc64-flags +# @DESCRIPTION: +# Sets mcpu to v8 and uses the original value as mtune if none specified. +replace-sparc64-flags() { + local SPARC64_CPUS="ultrasparc3 ultrasparc v9" + + if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then + for x in ${SPARC64_CPUS}; do + CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}" + done + else + for x in ${SPARC64_CPUS}; do + CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}" + done + fi + + if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then + for x in ${SPARC64_CPUS}; do + CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}" + done + else + for x in ${SPARC64_CPUS}; do + CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}" + done + fi + + export CFLAGS CXXFLAGS +} + +# @FUNCTION: append-ldflags +# @USAGE: +# @DESCRIPTION: +# Add extra to the current LDFLAGS. +append-ldflags() { + [[ -z $* ]] && return 0 + local flag + for flag in "$@"; do + [[ ${flag} == -l* ]] && \ + ewarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS" + done + + export LDFLAGS="${LDFLAGS} $*" + return 0 +} + +# @FUNCTION: filter-ldflags +# @USAGE: +# @DESCRIPTION: +# Remove particular from LDFLAGS. Accepts shell globs. +filter-ldflags() { + _filter-var LDFLAGS "$@" + return 0 +} + +# @FUNCTION: raw-ldflags +# @USAGE: +# @DESCRIPTION: +# Turn C style ldflags (-Wl,-foo) into straight ldflags - the results +# are suitable for passing directly to 'ld'; note LDFLAGS is usually passed +# to gcc where it needs the '-Wl,'. +raw-ldflags() { + local x input="$@" + [[ -z ${input} ]] && input=${LDFLAGS} + set -- + for x in ${input} ; do + x=${x#-Wl,} + set -- "$@" ${x//,/ } + done + echo "$@" +} + +# @FUNCTION: bindnow-flags +# @RETURN: Returns the flags to enable "now" binding in the current selected linker. +# @DESCRIPTION: +# DEPRECATED - Gets the flags needed for "NOW" binding +bindnow-flags() { + eerror "QA: stop using the bindnow-flags function ... simply drop it from your ebuild" + die "Stop using bindnow-flags." +} + +# @FUNCTION: no-as-needed +# @RETURN: Flag to disable asneeded behavior for use with append-ldflags. +no-as-needed() { + case $($(tc-getLD) -v 2>&1 +# Maintainer: kernel-misc@gentoo.org +# +# Please direct your bugs to the current eclass maintainer :) + +# added functionality: +# unipatch - a flexible, singular method to extract, add and remove patches. + +# A Couple of env vars are available to effect usage of this eclass +# These are as follows: +# +# K_USEPV - When setting the EXTRAVERSION variable, it should +# add PV to the end. +# this is useful for thigns like wolk. IE: +# EXTRAVERSION would be something like : -wolk-4.19-r1 +# K_NOSETEXTRAVERSION - if this is set then EXTRAVERSION will not be +# automatically set within the kernel Makefile +# K_NOUSENAME - if this is set then EXTRAVERSION will not include the +# first part of ${PN} in EXTRAVERSION +# K_NOUSEPR - if this is set then EXTRAVERSION will not include the +# anything based on ${PR}. +# K_PREPATCHED - if the patchset is prepatched (ie: mm-sources, +# ck-sources, ac-sources) it will use PR (ie: -r5) as +# the patchset version for +# and not use it as a true package revision +# K_EXTRAEINFO - this is a new-line seperated list of einfo displays in +# postinst and can be used to carry additional postinst +# messages +# K_EXTRAELOG - same as K_EXTRAEINFO except using elog instead of einfo +# K_EXTRAEWARN - same as K_EXTRAEINFO except using ewarn instead of einfo +# K_SYMLINK - if this is set, then forcably create symlink anyway +# +# K_DEFCONFIG - Allow specifying a different defconfig target. +# If length zero, defaults to "defconfig". +# K_WANT_GENPATCHES - Apply genpatches to kernel source. Provide any +# combination of "base" and "extras" +# K_GENPATCHES_VER - The version of the genpatches tarball(s) to apply. +# A value of "5" would apply genpatches-2.6.12-5 to +# my-sources-2.6.12.ebuild +# K_SECURITY_UNSUPPORTED- If set, this kernel is unsupported by Gentoo Security +# K_DEBLOB_AVAILABLE - A value of "0" will disable all of the optional deblob +# code. If empty, will be set to "1" if deblobbing is +# possible. Test ONLY for "1". +# K_PREDEBLOBBED - This kernel was already deblobbed elsewhere. +# If false, either optional deblobbing will be available +# or the license will note the inclusion of freedist +# code. +# K_LONGTERM - If set, the eclass will search for the kernel source +# in the long term directories on the upstream servers +# as the location has been changed by upstream +# H_SUPPORTEDARCH - this should be a space separated list of ARCH's which +# can be supported by the headers ebuild + +# UNIPATCH_LIST - space delimetered list of patches to be applied to the +# kernel +# UNIPATCH_EXCLUDE - an addition var to support exlusion based completely +# on "*" and not "_*" +# - this should _NOT_ be used from the ebuild as this is +# reserved for end users passing excludes from the cli +# UNIPATCH_DOCS - space delimemeted list of docs to be installed to +# the doc dir +# UNIPATCH_STRICTORDER - if this is set places patches into directories of +# order, so they are applied in the order passed + +# Changing any other variable in this eclass is not supported; you can request +# for additional variables to be added by contacting the current maintainer. +# If you do change them, there is a chance that we will not fix resulting bugs; +# that of course does not mean we're not willing to help. + +inherit eutils toolchain-funcs versionator multilib +EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_preinst pkg_postinst pkg_postrm + +# Added by Daniel Ostrow +# This is an ugly hack to get around an issue with a 32-bit userland on ppc64. +# I will remove it when I come up with something more reasonable. +[[ ${PROFILE_ARCH} == "ppc64" ]] && CHOST="powerpc64-${CHOST#*-}" + +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} && ${CATEGORY/cross-} != ${CATEGORY} ]]; then + export CTARGET=${CATEGORY/cross-} +fi + +HOMEPAGE="http://www.kernel.org/ http://www.gentoo.org/ ${HOMEPAGE}" +: ${LICENSE:="GPL-2"} + +# This is the latest KV_PATCH of the deblob tool available from the +# libre-sources upstream. If you bump this, you MUST regenerate the Manifests +# for ALL kernel-2 consumer packages where deblob is available. +: ${DEBLOB_MAX_VERSION:=38} + +# No need to run scanelf/strip on kernel sources/headers (bug #134453). +RESTRICT="binchecks strip" + +# set LINUX_HOSTCFLAGS if not already set +: ${LINUX_HOSTCFLAGS:="-Wall -Wstrict-prototypes -Os -fomit-frame-pointer -I${S}/include"} + +# debugging functions +#============================================================== +# this function exists only to help debug kernel-2.eclass +# if you are adding new functionality in, put a call to it +# at the start of src_unpack, or during SRC_URI/dep generation. +debug-print-kernel2-variables() { + for v in PVR CKV OKV KV KV_FULL KV_MAJOR KV_MINOR KV_PATCH RELEASETYPE \ + RELEASE UNIPATCH_LIST_DEFAULT UNIPATCH_LIST_GENPATCHES \ + UNIPATCH_LIST S KERNEL_URI K_WANT_GENPATCHES ; do + debug-print "${v}: ${!v}" + done +} + +#Eclass functions only from here onwards ... +#============================================================== +handle_genpatches() { + local tarball + [[ -z ${K_WANT_GENPATCHES} || -z ${K_GENPATCHES_VER} ]] && return 1 + + debug-print "Inside handle_genpatches" + local OKV_ARRAY + IFS="." read -r -a OKV_ARRAY <<<"${OKV}" + + # for > 3.0 kernels, handle genpatches tarball name + # genpatches for 3.0 and 3.0.1 might be named + # genpatches-3.0-1.base.tar.xz and genpatches-3.0-2.base.tar.xz + # respectively. Handle this. + + for i in ${K_WANT_GENPATCHES} ; do + if [[ ${KV_MAJOR} -ge 3 ]]; then + if [[ ${KV_MINOR} -ge 5 ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then + tarball="genpatches-${KV_MAJOR}.${KV_MINOR}-${K_GENPATCHES_VER}.${i}.tar.xz" + else + tarball="genpatches-${KV_MAJOR}.${KV_PATCH}-${K_GENPATCHES_VER}.${i}.tar.xz" + fi + else + if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then + tarball="genpatches-${KV_MAJOR}.${KV_MINOR}-${K_GENPATCHES_VER}.${i}.tar.bz2" + else + tarball="genpatches-${KV_MAJOR}.${KV_PATCH}-${K_GENPATCHES_VER}.${i}.tar.bz2" + fi + fi + else + tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.bz2" + fi + debug-print "genpatches tarball: $tarball" + GENPATCHES_URI="${GENPATCHES_URI} https://apps.karinthy.hu/gentoo/patches/${tarball}" + UNIPATCH_LIST_GENPATCHES="${UNIPATCH_LIST_GENPATCHES} ${DISTDIR}/${tarball}" + done +} + +detect_version() { + # this function will detect and set + # - OKV: Original Kernel Version (2.6.0/2.6.0-test11) + # - KV: Kernel Version (2.6.0-gentoo/2.6.0-test11-gentoo-r1) + # - EXTRAVERSION: The additional version appended to OKV (-gentoo/-gentoo-r1) + + # We've already run, so nothing to do here. + [[ -n ${KV_FULL} ]] && return 0 + + # CKV is used as a comparison kernel version, which is used when + # PV doesnt reflect the genuine kernel version. + # this gets set to the portage style versioning. ie: + # CKV=2.6.11_rc4 + CKV=${CKV:-${PV}} + OKV=${OKV:-${CKV}} + OKV=${OKV/_beta/-test} + OKV=${OKV/_rc/-rc} + OKV=${OKV/-r*} + OKV=${OKV/_p*} + + KV_MAJOR=$(get_version_component_range 1 ${OKV}) + # handle if OKV is X.Y or X.Y.Z (e.g. 3.0 or 3.0.1) + local OKV_ARRAY + IFS="." read -r -a OKV_ARRAY <<<"${OKV}" + + # if KV_MAJOR >= 3, then we have no more KV_MINOR + #if [[ ${KV_MAJOR} -lt 3 ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then + KV_MINOR=$(get_version_component_range 2 ${OKV}) + KV_PATCH=$(get_version_component_range 3 ${OKV}) + if [[ ${KV_MAJOR}${KV_MINOR}${KV_PATCH} -ge 269 ]]; then + KV_EXTRA=$(get_version_component_range 4- ${OKV}) + KV_EXTRA=${KV_EXTRA/[-_]*} + else + KV_PATCH=$(get_version_component_range 3- ${OKV}) + fi + else + KV_PATCH=$(get_version_component_range 2 ${OKV}) + KV_EXTRA=$(get_version_component_range 3- ${OKV}) + KV_EXTRA=${KV_EXTRA/[-_]*} + fi + + debug-print "KV_EXTRA is ${KV_EXTRA}" + + KV_PATCH=${KV_PATCH/[-_]*} + + local v n=0 missing + #if [[ ${KV_MAJOR} -lt 3 ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then + for v in CKV OKV KV_{MAJOR,MINOR,PATCH} ; do + [[ -z ${!v} ]] && n=1 && missing="${missing}${v} "; + done + else + for v in CKV OKV KV_{MAJOR,PATCH} ; do + [[ -z ${!v} ]] && n=1 && missing="${missing}${v} "; + done + fi + + [[ $n -eq 1 ]] && \ + eerror "Missing variables: ${missing}" && \ + die "Failed to extract kernel version (try explicit CKV in ebuild)!" + unset v n missing + +# if [[ ${KV_MAJOR} -ge 3 ]]; then + if [[ ${#OKV_ARRAY[@]} -lt 3 ]]; then + KV_PATCH_ARR=(${KV_PATCH//\./ }) + + # at this point 031412, Linus is putting all 3.x kernels in a + # 3.x directory, may need to revisit when 4.x is released + KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.x" + + [[ -n "${K_LONGTERM}" ]] && + KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_PATCH_ARR}" + else + #KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.0" + #KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}" + if [[ ${KV_MAJOR} -ge 3 ]]; then + KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.x" + else + KERNEL_BASE_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}" + fi + + [[ -n "${K_LONGTERM}" ]] && + #KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm" + KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + fi + + debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}" + + if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then + # handle non genpatch using sources correctly + if [[ -z ${K_WANT_GENPATCHES} && -z ${K_GENPATCHES_VER} && ${KV_PATCH} -gt 0 ]]; then + KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz" + fi + KERNEL_URI="${KERNEL_URI} ${KERNEL_BASE_URI}/linux-${KV_MAJOR}.${KV_MINOR}.tar.xz" + else + KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + fi + + RELEASE=${CKV/${OKV}} + RELEASE=${RELEASE/_beta} + RELEASE=${RELEASE/_rc/-rc} + RELEASE=${RELEASE/_pre/-pre} + # We cannot trivally call kernel_is here, because it calls us to detect the + # version + #kernel_is ge 2 6 && RELEASE=${RELEASE/-pre/-git} + [ $(($KV_MAJOR * 1000 + ${KV_MINOR:-0})) -ge 2006 ] && RELEASE=${RELEASE/-pre/-git} + RELEASETYPE=${RELEASE//[0-9]} + + # Now we know that RELEASE is the -rc/-git + # and RELEASETYPE is the same but with its numerics stripped + # we can work on better sorting EXTRAVERSION. + # first of all, we add the release + EXTRAVERSION="${RELEASE}" + debug-print "0 EXTRAVERSION:${EXTRAVERSION}" + [[ -n ${KV_EXTRA} ]] && [[ ${KV_MAJOR} -lt 3 ]] && EXTRAVERSION=".${KV_EXTRA}${EXTRAVERSION}" + + debug-print "1 EXTRAVERSION:${EXTRAVERSION}" + if [[ -n "${K_NOUSEPR}" ]]; then + # Don't add anything based on PR to EXTRAVERSION + debug-print "1.0 EXTRAVERSION:${EXTRAVERSION}" + elif [[ -n ${K_PREPATCHED} ]]; then + debug-print "1.1 EXTRAVERSION:${EXTRAVERSION}" + EXTRAVERSION="${EXTRAVERSION}-${PN/-*}${PR/r}" + elif [[ "${ETYPE}" = "sources" ]]; then + debug-print "1.2 EXTRAVERSION:${EXTRAVERSION}" + # For some sources we want to use the PV in the extra version + # This is because upstream releases with a completely different + # versioning scheme. + case ${PN/-*} in + wolk) K_USEPV=1;; + vserver) K_USEPV=1;; + esac + + [[ -z "${K_NOUSENAME}" ]] && EXTRAVERSION="${EXTRAVERSION}-${PN/-*}" + [[ -n "${K_USEPV}" ]] && EXTRAVERSION="${EXTRAVERSION}-${PV//_/-}" + [[ -n "${PR//r0}" ]] && EXTRAVERSION="${EXTRAVERSION}-${PR}" + fi + debug-print "2 EXTRAVERSION:${EXTRAVERSION}" + + # The only messing around which should actually effect this is for KV_EXTRA + # since this has to limit OKV to MAJ.MIN.PAT and strip EXTRA off else + # KV_FULL evaluates to MAJ.MIN.PAT.EXT.EXT after EXTRAVERSION + + if [[ -n ${KV_EXTRA} ]]; then + if [[ -n ${KV_MINOR} ]]; then + OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + else + OKV="${KV_MAJOR}.${KV_PATCH}" + fi + KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz" + fi + + # We need to set this using OKV, but we need to set it before we do any + # messing around with OKV based on RELEASETYPE + KV_FULL=${OKV}${EXTRAVERSION} + + # we will set this for backwards compatibility. + S=${WORKDIR}/linux-${KV_FULL} + KV=${KV_FULL} + + # -rc-git pulls can be achieved by specifying CKV + # for example: + # CKV="2.6.11_rc3_pre2" + # will pull: + # linux-2.6.10.tar.xz & patch-2.6.11-rc3.xz & patch-2.6.11-rc3-git2.xz + + if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then + + if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then + OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" + KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz" + fi + + if [[ ${RELEASETYPE} == -git ]]; then + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz" + fi + + if [[ ${RELEASETYPE} == -rc-git ]]; then + OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.xz + ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.xz" + fi + else + if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then + if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then + OKV="2.6.39" + else + KV_PATCH_ARR=(${KV_PATCH//\./ }) + OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" + fi + KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz" + fi + + if [[ ${RELEASETYPE} == -git ]]; then + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz" + fi + + if [[ ${RELEASETYPE} == -rc-git ]]; then + if [[ ${KV_MAJOR}${KV_PATCH} -eq 30 ]]; then + OKV="2.6.39" + else + KV_PATCH_ARR=(${KV_PATCH//\./ }) + OKV="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" + fi + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz + ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz" + fi + + + fi + + + debug-print-kernel2-variables + + handle_genpatches +} + +# Note: duplicated in linux-info.eclass +kernel_is() { + # ALL of these should be set before we can safely continue this function. + # some of the sources have in the past had only one set. + local v n=0 + for v in OKV KV_{MAJOR,MINOR,PATCH} ; do [[ -z ${!v} ]] && n=1 ; done + [[ $n -eq 1 ]] && detect_version + unset v n + + # Now we can continue + local operator test value + + case ${1#-} in + lt) operator="-lt"; shift;; + gt) operator="-gt"; shift;; + le) operator="-le"; shift;; + ge) operator="-ge"; shift;; + eq) operator="-eq"; shift;; + *) operator="-eq";; + esac + [[ $# -gt 3 ]] && die "Error in kernel-2_kernel_is(): too many parameters" + + : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH )) + : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} )) + [ ${test} ${operator} ${value} ] +} + +kernel_is_2_4() { + kernel_is 2 4 +} + +kernel_is_2_6() { + kernel_is 2 6 || kernel_is 2 5 +} + +# Capture the sources type and set DEPENDs +if [[ ${ETYPE} == sources ]]; then + DEPEND="!build? ( sys-apps/sed + >=sys-devel/binutils-2.11.90.0.31 )" + RDEPEND="!build? ( >=sys-libs/ncurses-5.2 + sys-devel/make + dev-lang/perl + sys-devel/bc )" + PDEPEND="!build? ( virtual/dev-manager )" + + SLOT="${PVR}" + DESCRIPTION="Sources based on the Linux Kernel." + IUSE="symlink build" + + # Bug #266157, deblob for libre support + if [[ -z ${K_PREDEBLOBBED} ]] ; then + # Bug #359865, force a call to detect_version if needed + kernel_is ge 2 6 27 && \ + [[ -z "${K_DEBLOB_AVAILABLE}" ]] && \ + kernel_is le 2 6 ${DEBLOB_MAX_VERSION} && \ + K_DEBLOB_AVAILABLE=1 + if [[ ${K_DEBLOB_AVAILABLE} == "1" ]] ; then + IUSE="${IUSE} deblob" + # Reflect that kernels contain firmware blobs unless otherwise + # stripped + LICENSE="${LICENSE} !deblob? ( freedist )" + + if [[ -n KV_MINOR ]]; then + DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + else + DEBLOB_PV="${KV_MAJOR}.${KV_PATCH}" + fi + + if [[ ${KV_MAJOR} -ge 3 ]]; then + DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}" + fi + + DEBLOB_A="deblob-${DEBLOB_PV}" + DEBLOB_CHECK_A="deblob-check-${DEBLOB_PV}" + DEBLOB_HOMEPAGE="http://www.fsfla.org/svnwiki/selibre/linux-libre/" + DEBLOB_URI_PATH="download/releases/LATEST-${DEBLOB_PV}.N" + if ! has "${EAPI:-0}" 0 1 ; then + DEBLOB_CHECK_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/deblob-check -> ${DEBLOB_CHECK_A}" + else + DEBLOB_CHECK_URI="mirror://gentoo/${DEBLOB_CHECK_A}" + fi + DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}" + HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}" + + DEPEND+=" deblob? ( =dev-lang/python-2* )" + KERNEL_URI="${KERNEL_URI} + deblob? ( + ${DEBLOB_URI} + ${DEBLOB_CHECK_URI} + )" + else + # We have no way to deblob older kernels, so just mark them as + # tainted with non-libre materials. + LICENSE="${LICENSE} freedist" + fi + fi + +elif [[ ${ETYPE} == headers ]]; then + DESCRIPTION="Linux system headers" + + # Since we should NOT honour KBUILD_OUTPUT in headers + # lets unset it here. + unset KBUILD_OUTPUT + + SLOT="0" +else + eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" + die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" +fi + +# Cross-compile support functions +#============================================================== +kernel_header_destdir() { + [[ ${CTARGET} == ${CHOST} ]] \ + && echo /usr/include \ + || echo /usr/${CTARGET}/usr/include +} + +cross_pre_c_headers() { + use crosscompile_opts_headers-only && [[ ${CHOST} != ${CTARGET} ]] +} + +env_setup_xmakeopts() { + # Kernel ARCH != portage ARCH + export KARCH=$(tc-arch-kernel) + + # When cross-compiling, we need to set the ARCH/CROSS_COMPILE + # variables properly or bad things happen ! + xmakeopts="ARCH=${KARCH}" + if [[ ${CTARGET} != ${CHOST} ]] && ! cross_pre_c_headers ; then + xmakeopts="${xmakeopts} CROSS_COMPILE=${CTARGET}-" + elif type -p ${CHOST}-ar > /dev/null ; then + xmakeopts="${xmakeopts} CROSS_COMPILE=${CHOST}-" + fi + export xmakeopts +} + +# Unpack functions +#============================================================== +unpack_2_4() { + # this file is required for other things to build properly, + # so we autogenerate it + make -s mrproper ${xmakeopts} || die "make mrproper failed" + make -s symlinks ${xmakeopts} || die "make symlinks failed" + make -s include/linux/version.h ${xmakeopts} || die "make include/linux/version.h failed" + echo ">>> version.h compiled successfully." +} + +unpack_2_6() { + # this file is required for other things to build properly, so we + # autogenerate it ... generate a .config to keep version.h build from + # spitting out an annoying warning + make -s mrproper ${xmakeopts} 2>/dev/null \ + || die "make mrproper failed" + + # quick fix for bug #132152 which triggers when it cannot include linux + # headers (ie, we have not installed it yet) + if ! make -s defconfig ${xmakeopts} &>/dev/null 2>&1 ; then + touch .config + eerror "make defconfig failed." + eerror "assuming you dont have any headers installed yet and continuing" + epause 5 + fi + + make -s include/linux/version.h ${xmakeopts} 2>/dev/null \ + || die "make include/linux/version.h failed" + rm -f .config >/dev/null +} + +universal_unpack() { + debug-print "Inside universal_unpack" + + local OKV_ARRAY + IFS="." read -r -a OKV_ARRAY <<<"${OKV}" + + cd "${WORKDIR}" + if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then + unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.xz + else + unpack linux-${OKV}.tar.xz + fi + + if [[ -d "linux" ]]; then + debug-print "Moving linux to linux-${KV_FULL}" + mv linux linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + elif [[ "${OKV}" != "${KV_FULL}" ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]] && + [[ "${ETYPE}" = "sources" ]]; then + debug-print "moving linux-${KV_MAJOR}.${KV_MINOR} to linux-${KV_FULL} " + mv linux-${KV_MAJOR}.${KV_MINOR} linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + else + debug-print "moving linux-${OKV} to linux-${KV_FULL} " + mv linux-${OKV} linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + fi + elif [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then + mv linux-${KV_MAJOR}.${KV_MINOR} linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + fi + cd "${S}" + + # remove all backup files + find . -iname "*~" -exec rm {} \; 2> /dev/null + +} + +unpack_set_extraversion() { + cd "${S}" + sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile + cd "${OLDPWD}" +} + +# Should be done after patches have been applied +# Otherwise patches that modify the same area of Makefile will fail +unpack_fix_install_path() { + cd "${S}" + sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile +} + +# Compile Functions +#============================================================== +compile_headers() { + env_setup_xmakeopts + + # if we couldnt obtain HOSTCFLAGS from the Makefile, + # then set it to something sane + local HOSTCFLAGS=$(getfilevar HOSTCFLAGS "${S}"/Makefile) + HOSTCFLAGS=${HOSTCFLAGS:--Wall -Wstrict-prototypes -O2 -fomit-frame-pointer} + + if kernel_is 2 4; then + yes "" | make oldconfig ${xmakeopts} + echo ">>> make oldconfig complete" + make dep ${xmakeopts} + elif kernel_is 2 6; then + # 2.6.18 introduces headers_install which means we dont need any + # of this crap anymore :D + kernel_is ge 2 6 18 && return 0 + + # autoconf.h isnt generated unless it already exists. plus, we have + # no guarantee that any headers are installed on the system... + [[ -f ${ROOT}/usr/include/linux/autoconf.h ]] \ + || touch include/linux/autoconf.h + + # if K_DEFCONFIG isn't set, force to "defconfig" + # needed by mips + if [[ -z ${K_DEFCONFIG} ]]; then + if [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then + case ${CTARGET} in + powerpc64*) K_DEFCONFIG="ppc64_defconfig";; + powerpc*) K_DEFCONFIG="pmac32_defconfig";; + *) K_DEFCONFIG="defconfig";; + esac + else + K_DEFCONFIG="defconfig" + fi + fi + + # if there arent any installed headers, then there also isnt an asm + # symlink in /usr/include/, and make defconfig will fail, so we have + # to force an include path with $S. + HOSTCFLAGS="${HOSTCFLAGS} -I${S}/include/" + ln -sf asm-${KARCH} "${S}"/include/asm + cross_pre_c_headers && return 0 + + make ${K_DEFCONFIG} HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "defconfig failed (${K_DEFCONFIG})" + if compile_headers_tweak_config ; then + yes "" | make oldconfig HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "2nd oldconfig failed" + fi + make prepare HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "prepare failed" + make prepare-all HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "prepare failed" + fi +} + +compile_headers_tweak_config() { + # some targets can be very very picky, so let's finesse the + # .config based upon any info we may have + case ${CTARGET} in + sh*) + sed -i '/CONFIG_CPU_SH/d' .config + echo "CONFIG_CPU_SH${CTARGET:2:1}=y" >> .config + return 0;; + esac + + # no changes, so lets do nothing + return 1 +} + +# install functions +#============================================================== +install_universal() { + # Fix silly permissions in tarball + cd "${WORKDIR}" + chown -R 0:0 * >& /dev/null + chmod -R a+r-w+X,u+w * + cd ${OLDPWD} +} + +install_headers() { + local ddir=$(kernel_header_destdir) + + # 2.6.18 introduces headers_install which means we dont need any + # of this crap anymore :D + if kernel_is ge 2 6 18 ; then + env_setup_xmakeopts + emake headers_install INSTALL_HDR_PATH="${D}"/${ddir}/.. ${xmakeopts} || die + + # let other packages install some of these headers + rm -rf "${D}"/${ddir}/sound #alsa-headers + rm -rf "${D}"/${ddir}/scsi #glibc/uclibc/etc... + return 0 + fi + + # Do not use "linux/*" as that can cause problems with very long + # $S values where the cmdline to cp is too long + pushd "${S}" >/dev/null + dodir ${ddir}/linux + cp -pPR "${S}"/include/linux "${D}"/${ddir}/ || die + rm -rf "${D}"/${ddir}/linux/modules + + dodir ${ddir}/asm + cp -pPR "${S}"/include/asm/* "${D}"/${ddir}/asm + + if kernel_is 2 6 ; then + dodir ${ddir}/asm-generic + cp -pPR "${S}"/include/asm-generic/* "${D}"/${ddir}/asm-generic + fi + + # clean up + find "${D}" -name '*.orig' -exec rm -f {} \; + + popd >/dev/null +} + +install_sources() { + local file + + cd "${S}" + dodir /usr/src + echo ">>> Copying sources ..." + + file="$(find ${WORKDIR} -iname "docs" -type d)" + if [[ -n ${file} ]]; then + for file in $(find ${file} -type f); do + echo "${file//*docs\/}" >> "${S}"/patches.txt + echo "===================================================" >> "${S}"/patches.txt + cat ${file} >> "${S}"/patches.txt + echo "===================================================" >> "${S}"/patches.txt + echo "" >> "${S}"/patches.txt + done + fi + + if [[ ! -f ${S}/patches.txt ]]; then + # patches.txt is empty so lets use our ChangeLog + [[ -f ${FILESDIR}/../ChangeLog ]] && \ + echo "Please check the ebuild ChangeLog for more details." \ + > "${S}"/patches.txt + fi + + mv ${WORKDIR}/linux* "${D}"/usr/src + + if [[ -n "${UNIPATCH_DOCS}" ]] ; then + for i in ${UNIPATCH_DOCS}; do + dodoc "${T}"/${i} + done + fi +} + +# pkg_preinst functions +#============================================================== +preinst_headers() { + local ddir=$(kernel_header_destdir) + [[ -L ${ddir}/linux ]] && rm ${ddir}/linux + [[ -L ${ddir}/asm ]] && rm ${ddir}/asm +} + +# pkg_postinst functions +#============================================================== +postinst_sources() { + local MAKELINK=0 + + # if we have USE=symlink, then force K_SYMLINK=1 + use symlink && K_SYMLINK=1 + + # if we're using a deblobbed kernel, it's not supported + [[ $K_DEBLOB_AVAILABLE == 1 ]] && \ + use deblob && \ + K_SECURITY_UNSUPPORTED=deblob + + # if we are to forcably symlink, delete it if it already exists first. + if [[ ${K_SYMLINK} > 0 ]]; then + [[ -h ${ROOT}usr/src/linux ]] && rm ${ROOT}usr/src/linux + MAKELINK=1 + fi + + # if the link doesnt exist, lets create it + [[ ! -h ${ROOT}usr/src/linux ]] && MAKELINK=1 + + if [[ ${MAKELINK} == 1 ]]; then + cd "${ROOT}"usr/src + ln -sf linux-${KV_FULL} linux + cd ${OLDPWD} + fi + + # Don't forget to make directory for sysfs + [[ ! -d ${ROOT}sys ]] && kernel_is 2 6 && mkdir ${ROOT}sys + + echo + elog "If you are upgrading from a previous kernel, you may be interested" + elog "in the following document:" + elog " - General upgrade guide: http://www.gentoo.org/doc/en/kernel-upgrade.xml" + echo + + # if K_EXTRAEINFO is set then lets display it now + if [[ -n ${K_EXTRAEINFO} ]]; then + echo ${K_EXTRAEINFO} | fmt | + while read -s ELINE; do einfo "${ELINE}"; done + fi + + # if K_EXTRAELOG is set then lets display it now + if [[ -n ${K_EXTRAELOG} ]]; then + echo ${K_EXTRAELOG} | fmt | + while read -s ELINE; do elog "${ELINE}"; done + fi + + # if K_EXTRAEWARN is set then lets display it now + if [[ -n ${K_EXTRAEWARN} ]]; then + echo ${K_EXTRAEWARN} | fmt | + while read -s ELINE; do ewarn "${ELINE}"; done + fi + + # optionally display security unsupported message + # Start with why + if [[ ${K_SECURITY_UNSUPPORTED} = deblob ]]; then + ewarn "Deblobbed kernels are UNSUPPORTED by Gentoo Security." + elif [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then + ewarn "${PN} is UNSUPPORTED by Gentoo Security." + fi + # And now the general message. + if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then + ewarn "This means that it is likely to be vulnerable to recent security issues." + ewarn "For specific information on why this kernel is unsupported, please read:" + ewarn "http://www.gentoo.org/proj/en/security/kernel.xml" + fi + + # warn sparc users that they need to do cross-compiling with >= 2.6.25(bug #214765) + KV_MAJOR=$(get_version_component_range 1 ${OKV}) + KV_MINOR=$(get_version_component_range 2 ${OKV}) + KV_PATCH=$(get_version_component_range 3 ${OKV}) + if [[ "$(tc-arch)" = "sparc" ]]; then + if [[ ${KV_MAJOR} -ge 3 || ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.24 ]] + then + echo + elog "NOTE: Since 2.6.25 the kernel Makefile has changed in a way that" + elog "you now need to do" + elog " make CROSS_COMPILE=sparc64-unknown-linux-gnu-" + elog "instead of just" + elog " make" + elog "to compile the kernel. For more information please browse to" + elog "https://bugs.gentoo.org/show_bug.cgi?id=214765" + echo + fi + fi +} + +# pkg_setup functions +#============================================================== +setup_headers() { + [[ -z ${H_SUPPORTEDARCH} ]] && H_SUPPORTEDARCH=${PN/-*/} + for i in ${H_SUPPORTEDARCH}; do + [[ $(tc-arch) == "${i}" ]] && H_ACCEPT_ARCH="yes" + done + + if [[ ${H_ACCEPT_ARCH} != "yes" ]]; then + echo + eerror "This version of ${PN} does not support $(tc-arch)." + eerror "Please merge the appropriate sources, in most cases" + eerror "(but not all) this will be called $(tc-arch)-headers." + die "Package unsupported for $(tc-arch)" + fi +} + +# unipatch +#============================================================== +unipatch() { + local i x y z extention PIPE_CMD UNIPATCH_DROP KPATCH_DIR PATCH_DEPTH ELINE + local STRICT_COUNT PATCH_LEVEL myLC_ALL myLANG + + # set to a standard locale to ensure sorts are ordered properly. + myLC_ALL="${LC_ALL}" + myLANG="${LANG}" + LC_ALL="C" + LANG="" + + [ -z "${KPATCH_DIR}" ] && KPATCH_DIR="${WORKDIR}/patches/" + [ ! -d ${KPATCH_DIR} ] && mkdir -p ${KPATCH_DIR} + + # We're gonna need it when doing patches with a predefined patchlevel + eshopts_push -s extglob + + # This function will unpack all passed tarballs, add any passed patches, and remove any passed patchnumbers + # usage can be either via an env var or by params + # although due to the nature we pass this within this eclass + # it shall be by param only. + # -z "${UNIPATCH_LIST}" ] && UNIPATCH_LIST="${@}" + UNIPATCH_LIST="${@}" + + #unpack any passed tarballs + for i in ${UNIPATCH_LIST}; do + if echo ${i} | grep -qs -e "\.tar" -e "\.tbz" -e "\.tgz" ; then + if [ -n "${UNIPATCH_STRICTORDER}" ]; then + unset z + STRICT_COUNT=$((10#${STRICT_COUNT} + 1)) + for((y=0; y<$((6 - ${#STRICT_COUNT})); y++)); + do z="${z}0"; + done + PATCH_ORDER="${z}${STRICT_COUNT}" + + mkdir -p "${KPATCH_DIR}/${PATCH_ORDER}" + pushd "${KPATCH_DIR}/${PATCH_ORDER}" >/dev/null + unpack ${i##*/} + popd >/dev/null + else + pushd "${KPATCH_DIR}" >/dev/null + unpack ${i##*/} + popd >/dev/null + fi + + [[ ${i} == *:* ]] && echo ">>> Strict patch levels not currently supported for tarballed patchsets" + else + extention=${i/*./} + extention=${extention/:*/} + PIPE_CMD="" + case ${extention} in + xz) PIPE_CMD="xz -dc";; + lzma) PIPE_CMD="lzma -dc";; + bz2) PIPE_CMD="bzip2 -dc";; + patch) PIPE_CMD="cat";; + diff) PIPE_CMD="cat";; + gz|Z|z) PIPE_CMD="gzip -dc";; + ZIP|zip) PIPE_CMD="unzip -p";; + *) UNIPATCH_DROP="${UNIPATCH_DROP} ${i/:*/}";; + esac + + PATCH_LEVEL=${i/*([^:])?(:)} + i=${i/:*/} + x=${i/*\//} + x=${x/\.${extention}/} + + if [ -n "${PIPE_CMD}" ]; then + if [ ! -r "${i}" ]; then + echo + eerror "FATAL: unable to locate:" + eerror "${i}" + eerror "for read-only. The file either has incorrect permissions" + eerror "or does not exist." + die Unable to locate ${i} + fi + + if [ -n "${UNIPATCH_STRICTORDER}" ]; then + unset z + STRICT_COUNT=$((10#${STRICT_COUNT} + 1)) + for((y=0; y<$((6 - ${#STRICT_COUNT})); y++)); + do z="${z}0"; + done + PATCH_ORDER="${z}${STRICT_COUNT}" + + mkdir -p ${KPATCH_DIR}/${PATCH_ORDER}/ + $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${PATCH_ORDER}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed" + else + $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed" + fi + fi + fi + done + + #populate KPATCH_DIRS so we know where to look to remove the excludes + x=${KPATCH_DIR} + KPATCH_DIR="" + for i in $(find ${x} -type d | sort -n); do + KPATCH_DIR="${KPATCH_DIR} ${i}" + done + + # do not apply fbcondecor patch to sparc/sparc64 as it breaks boot + # bug #272676 + if [[ "$(tc-arch)" = "sparc" || "$(tc-arch)" = "sparc64" ]]; then + if [[ ${KV_MAJOR} -ge 3 || ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.28 ]]; then + UNIPATCH_DROP="${UNIPATCH_DROP} *_fbcondecor-0.9.6.patch" + echo + ewarn "fbcondecor currently prevents sparc/sparc64 from booting" + ewarn "for kernel versions >= 2.6.29. Removing fbcondecor patch." + ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=272676 for details" + echo + fi + fi + + #so now lets get rid of the patchno's we want to exclude + UNIPATCH_DROP="${UNIPATCH_EXCLUDE} ${UNIPATCH_DROP}" + for i in ${UNIPATCH_DROP}; do + ebegin "Excluding Patch #${i}" + for x in ${KPATCH_DIR}; do rm -f ${x}/${i}* 2>/dev/null; done + eend $? + done + + # and now, finally, we patch it :) + for x in ${KPATCH_DIR}; do + for i in $(find ${x} -maxdepth 1 -iname "*.patch*" -or -iname "*.diff*" | sort -n); do + STDERR_T="${T}/${i/*\//}" + STDERR_T="${STDERR_T/.patch*/.err}" + + [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/} + #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/} + + if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi + + while [ ${PATCH_DEPTH} -lt 5 ]; do + echo "Attempting Dry-run:" >> ${STDERR_T} + echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T} + echo "=======================================================" >> ${STDERR_T} + if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then + ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH})" + echo "Attempting patch:" > ${STDERR_T} + echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i}" >> ${STDERR_T} + echo "=======================================================" >> ${STDERR_T} + if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then + eend 0 + rm ${STDERR_T} + break + else + eend 1 + eerror "Failed to apply patch ${i/*\//}" + eerror "Please attach ${STDERR_T} to any bug you may post." + eshopts_pop + die "Failed to apply ${i/*\//} on patch depth ${PATCH_DEPTH}." + fi + else + PATCH_DEPTH=$((${PATCH_DEPTH} + 1)) + fi + done + if [ ${PATCH_DEPTH} -eq 5 ]; then + eerror "Failed to dry-run patch ${i/*\//}" + eerror "Please attach ${STDERR_T} to any bug you may post." + eshopts_pop + die "Unable to dry-run patch on any patch depth lower than 5." + fi + done + done + + # When genpatches is used, we want to install 0000_README which documents + # the patches that were used; such that the user can see them, bug #301478. + if [[ ! -z ${K_WANT_GENPATCHES} ]] ; then + UNIPATCH_DOCS="${UNIPATCH_DOCS} 0000_README" + fi + + # When files listed in UNIPATCH_DOCS are found in KPATCH_DIR's, we copy it + # to the temporary directory and remember them in UNIPATCH_DOCS to install + # them during the install phase. + local tmp + for x in ${KPATCH_DIR}; do + for i in ${UNIPATCH_DOCS}; do + if [[ -f "${x}/${i}" ]] ; then + tmp="${tmp} ${i}" + cp -f "${x}/${i}" "${T}"/ + fi + done + done + UNIPATCH_DOCS="${tmp}" + + # clean up KPATCH_DIR's - fixes bug #53610 + for x in ${KPATCH_DIR}; do rm -Rf ${x}; done + + LC_ALL="${myLC_ALL}" + LANG="${myLANG}" + eshopts_pop +} + +# getfilevar accepts 2 vars as follows: +# getfilevar +# pulled from linux-info + +getfilevar() { + local workingdir basefname basedname xarch=$(tc-arch-kernel) + + if [[ -z ${1} ]] && [[ ! -f ${2} ]]; then + echo -e "\n" + eerror "getfilevar requires 2 variables, with the second a valid file." + eerror " getfilevar " + else + workingdir=${PWD} + basefname=$(basename ${2}) + basedname=$(dirname ${2}) + unset ARCH + + cd ${basedname} + echo -e "include ${basefname}\ne:\n\t@echo \$(${1})" | \ + make ${BUILD_FIXES} -s -f - e 2>/dev/null + cd ${workingdir} + + ARCH=${xarch} + fi +} + +detect_arch() { + # This function sets ARCH_URI and ARCH_PATCH + # with the neccessary info for the arch sepecific compatibility + # patchsets. + + local ALL_ARCH LOOP_ARCH COMPAT_URI i + + # COMPAT_URI is the contents of ${ARCH}_URI + # ARCH_URI is the URI for all the ${ARCH}_URI patches + # ARCH_PATCH is ARCH_URI broken into files for UNIPATCH + + ARCH_URI="" + ARCH_PATCH="" + ALL_ARCH="ALPHA AMD64 ARM HPPA IA64 M68K MIPS PPC PPC64 S390 SH SPARC X86" + + for LOOP_ARCH in ${ALL_ARCH}; do + COMPAT_URI="${LOOP_ARCH}_URI" + COMPAT_URI="${!COMPAT_URI}" + + [[ -n ${COMPAT_URI} ]] && \ + ARCH_URI="${ARCH_URI} $(echo ${LOOP_ARCH} | tr '[:upper:]' '[:lower:]')? ( ${COMPAT_URI} )" + + if [[ ${LOOP_ARCH} == "$(echo $(tc-arch-kernel) | tr '[:lower:]' '[:upper:]')" ]]; then + for i in ${COMPAT_URI}; do + ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}" + done + fi + done +} + +headers___fix() { + # Voodoo to partially fix broken upstream headers. + # note: do not put inline/asm/volatile together (breaks "inline asm volatile") + sed -i \ + -e '/^\#define.*_TYPES_H/{:loop n; bloop}' \ + -e 's:\<\([us]\(8\|16\|32\|64\)\)\>:__\1:g' \ + -e "s/\([[:space:]]\)inline\([[:space:](]\)/\1__inline__\2/g" \ + -e "s/\([[:space:]]\)asm\([[:space:](]\)/\1__asm__\2/g" \ + -e "s/\([[:space:]]\)volatile\([[:space:](]\)/\1__volatile__\2/g" \ + "$@" +} + +# common functions +#============================================================== +kernel-2a_src_unpack() { + universal_unpack + debug-print "Doing unipatch" + + [[ -n ${UNIPATCH_LIST} || -n ${UNIPATCH_LIST_DEFAULT} || -n ${UNIPATCH_LIST_GENPATCHES} ]] && \ + unipatch "${UNIPATCH_LIST_DEFAULT} ${UNIPATCH_LIST_GENPATCHES} ${UNIPATCH_LIST}" + + debug-print "Doing premake" + + # allow ebuilds to massage the source tree after patching but before + # we run misc `make` functions below + [[ $(type -t kernel-2a_hook_premake) == "function" ]] && kernel-2a_hook_premake + + debug-print "Doing epatch_user" + epatch_user + + debug-print "Doing unpack_set_extraversion" + + [[ -z ${K_NOSETEXTRAVERSION} ]] && unpack_set_extraversion + unpack_fix_install_path + + # Setup xmakeopts and cd into sourcetree. + env_setup_xmakeopts + cd "${S}" + + # We dont need a version.h for anything other than headers + # at least, I should hope we dont. If this causes problems + # take out the if/fi block and inform me please. + # unpack_2_6 should now be 2.6.17 safe anyways + if [[ ${ETYPE} == headers ]]; then + kernel_is 2 4 && unpack_2_4 + kernel_is 2 6 && unpack_2_6 + fi + + if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then + cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed" + cp "${DISTDIR}/${DEBLOB_CHECK_A}" "${T}/deblob-check" || die "cp ${DEBLOB_CHECK_A} failed" + chmod +x "${T}/${DEBLOB_A}" "${T}/deblob-check" || die "chmod deblob scripts failed" + fi + + # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox + # only do this for kernel < 2.6.27 since this file does not exist in later + # kernels + if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]] + then + sed -i \ + -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \ + "${S}"/arch/ppc/Makefile + else + sed -i \ + -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \ + "${S}"/arch/powerpc/Makefile + fi +} + +kernel-2a_src_compile() { + cd "${S}" + [[ ${ETYPE} == headers ]] && compile_headers + + if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then + echo ">>> Running deblob script ..." + EPYTHON="python2" sh "${T}/${DEBLOB_A}" --force || die "Deblob script failed to run!!!" + fi +} + +# if you leave it to the default src_test, it will run make to +# find whether test/check targets are present; since "make test" +# actually produces a few support files, they are installed even +# though the package is binchecks-restricted. +# +# Avoid this altogether by making the function moot. +kernel-2a_src_test() { :; } + +kernel-2a_pkg_preinst() { + [[ ${ETYPE} == headers ]] && preinst_headers +} + +kernel-2a_src_install() { + install_universal + [[ ${ETYPE} == headers ]] && install_headers + [[ ${ETYPE} == sources ]] && install_sources +} + +kernel-2a_pkg_postinst() { + [[ ${ETYPE} == sources ]] && postinst_sources +} + +kernel-2a_pkg_setup() { + if kernel_is 2 4; then + if [[ $(gcc-major-version) -ge 4 ]] ; then + echo + ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with linux-2.4!" + ewarn "Either switch to another gcc-version (via gcc-config) or use a" + ewarn "newer kernel that supports gcc-4." + echo + ewarn "Also be aware that bugreports about gcc-4 not working" + ewarn "with linux-2.4 based ebuilds will be closed as INVALID!" + echo + epause 10 + fi + fi + + ABI="${KERNEL_ABI}" + [[ ${ETYPE} == headers ]] && setup_headers + [[ ${ETYPE} == sources ]] && echo ">>> Preparing to unpack ..." +} + +kernel-2a_pkg_postrm() { + # This warning only makes sense for kernel sources. + [[ ${ETYPE} == headers ]] && return 0 + + # If there isn't anything left behind, then don't complain. + [[ -e ${ROOT}usr/src/linux-${KV_FULL} ]] || return 0 + echo + ewarn "Note: Even though you have successfully unmerged " + ewarn "your kernel package, directories in kernel source location: " + ewarn "${ROOT}usr/src/linux-${KV_FULL}" + ewarn "with modified files will remain behind. By design, package managers" + ewarn "will not remove these modified files and the directories they reside in." + echo +} diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass new file mode 100644 index 0000000..7dc7cc9 --- /dev/null +++ b/eclass/toolchain.eclass @@ -0,0 +1,2640 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /home/sysadmin/cvsroot/portoverlay/myhardened/eclass/toolchain.eclass,v 1.1 2011/01/03 11:47:17 valko Exp $ +# +# Maintainer: Toolchain Ninjas + +HOMEPAGE="http://gcc.gnu.org/" +LICENSE="GPL-2 LGPL-2.1" +RESTRICT="strip" # cross-compilers need controlled stripping + +#---->> eclass stuff <<---- +inherit eutils versionator libtool toolchain-funcs flag-o-matic gnuconfig multilib fixheadtails + +EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test pkg_preinst src_install pkg_postinst pkg_prerm pkg_postrm +DESCRIPTION="Based on the ${ECLASS} eclass" + +FEATURES=${FEATURES/multilib-strict/} + +toolchain_pkg_setup() { + gcc_pkg_setup +} +toolchain_src_unpack() { + gcc_src_unpack +} +toolchain_src_compile() { + gcc_src_compile +} +toolchain_src_test() { + gcc_src_test +} +toolchain_pkg_preinst() { + ${ETYPE}_pkg_preinst +} +toolchain_src_install() { + ${ETYPE}_src_install +} +toolchain_pkg_postinst() { + ${ETYPE}_pkg_postinst +} +toolchain_pkg_prerm() { + ${ETYPE}_pkg_prerm +} +toolchain_pkg_postrm() { + ${ETYPE}_pkg_postrm +} +#----<< eclass stuff >>---- + + +#---->> globals <<---- +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} = ${CHOST} ]] ; then + if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then + export CTARGET=${CATEGORY/cross-} + fi +fi +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +tc_version_is_at_least() { version_is_at_least "$1" "${2:-${GCC_PV}}" ; } + + +GCC_PV=${TOOLCHAIN_GCC_PV:-${PV}} +GCC_PVR=${GCC_PV} +[[ ${PR} != "r0" ]] && GCC_PVR=${GCC_PVR}-${PR} +GCC_RELEASE_VER=$(get_version_component_range 1-3 ${GCC_PV}) +GCC_BRANCH_VER=$(get_version_component_range 1-2 ${GCC_PV}) +GCCMAJOR=$(get_version_component_range 1 ${GCC_PV}) +GCCMINOR=$(get_version_component_range 2 ${GCC_PV}) +GCCMICRO=$(get_version_component_range 3 ${GCC_PV}) +[[ ${BRANCH_UPDATE-notset} == "notset" ]] && BRANCH_UPDATE=$(get_version_component_range 4 ${GCC_PV}) + +# According to gcc/c-cppbuiltin.c, GCC_CONFIG_VER MUST match this regex. +# ([^0-9]*-)?[0-9]+[.][0-9]+([.][0-9]+)?([- ].*)? +GCC_CONFIG_VER=${GCC_CONFIG_VER:-$(replace_version_separator 3 '-' ${GCC_PV})} + +# Pre-release support +if [[ ${GCC_PV} != ${GCC_PV/_pre/-} ]] ; then + PRERELEASE=${GCC_PV/_pre/-} +fi +# make _alpha and _beta ebuilds automatically use a snapshot +if [[ ${GCC_PV} == *_alpha* ]] ; then + SNAPSHOT=${GCC_BRANCH_VER}-${GCC_PV##*_alpha} +elif [[ ${GCC_PV} == *_beta* ]] ; then + SNAPSHOT=${GCC_BRANCH_VER}-${GCC_PV##*_beta} +elif [[ ${GCC_PV} == *_rc* ]] ; then + SNAPSHOT=${GCC_PV%_rc*}-RC-${GCC_PV##*_rc} +fi +export GCC_FILESDIR=${GCC_FILESDIR:-${FILESDIR}} + +if [[ ${ETYPE} == "gcc-library" ]] ; then + GCC_VAR_TYPE=${GCC_VAR_TYPE:-non-versioned} + GCC_LIB_COMPAT_ONLY=${GCC_LIB_COMPAT_ONLY:-true} + GCC_TARGET_NO_MULTILIB=${GCC_TARGET_NO_MULTILIB:-true} +else + GCC_VAR_TYPE=${GCC_VAR_TYPE:-versioned} + GCC_LIB_COMPAT_ONLY="false" + GCC_TARGET_NO_MULTILIB=${GCC_TARGET_NO_MULTILIB:-false} +fi + +PREFIX=${TOOLCHAIN_PREFIX:-/usr} + +if [[ ${GCC_VAR_TYPE} == "versioned" ]] ; then + if tc_version_is_at_least 3.4.0 ; then + LIBPATH=${TOOLCHAIN_LIBPATH:-${PREFIX}/lib/gcc/${CTARGET}/${GCC_CONFIG_VER}} + else + LIBPATH=${TOOLCHAIN_LIBPATH:-${PREFIX}/lib/gcc-lib/${CTARGET}/${GCC_CONFIG_VER}} + fi + INCLUDEPATH=${TOOLCHAIN_INCLUDEPATH:-${LIBPATH}/include} + if is_crosscompile ; then + BINPATH=${TOOLCHAIN_BINPATH:-${PREFIX}/${CHOST}/${CTARGET}/gcc-bin/${GCC_CONFIG_VER}} + else + BINPATH=${TOOLCHAIN_BINPATH:-${PREFIX}/${CTARGET}/gcc-bin/${GCC_CONFIG_VER}} + fi + DATAPATH=${TOOLCHAIN_DATAPATH:-${PREFIX}/share/gcc-data/${CTARGET}/${GCC_CONFIG_VER}} + # Dont install in /usr/include/g++-v3/, but in gcc internal directory. + # We will handle /usr/include/g++-v3/ with gcc-config ... + STDCXX_INCDIR=${TOOLCHAIN_STDCXX_INCDIR:-${LIBPATH}/include/g++-v${GCC_BRANCH_VER/\.*/}} +elif [[ ${GCC_VAR_TYPE} == "non-versioned" ]] ; then + # using non-versioned directories to install gcc, like what is currently + # done for ppc64 and 3.3.3_pre, is a BAD IDEA. DO NOT do it!! However... + # setting up variables for non-versioned directories might be useful for + # specific gcc targets, like libffi. Note that we dont override the value + # returned by get_libdir here. + LIBPATH=${TOOLCHAIN_LIBPATH:-${PREFIX}/$(get_libdir)} + INCLUDEPATH=${TOOLCHAIN_INCLUDEPATH:-${PREFIX}/include} + BINPATH=${TOOLCHAIN_BINPATH:-${PREFIX}/bin} + DATAPATH=${TOOLCHAIN_DATAPATH:-${PREFIX}/share} + STDCXX_INCDIR=${TOOLCHAIN_STDCXX_INCDIR:-${PREFIX}/include/g++-v3} +fi + +#----<< globals >>---- + + +#---->> SLOT+IUSE logic <<---- +if [[ ${ETYPE} == "gcc-library" ]] ; then + IUSE="nls build test" + SLOT="${CTARGET}-${SO_VERSION_SLOT:-5}" +else + IUSE="multislot nptl test" + + if [[ ${PN} != "kgcc64" && ${PN} != gcc-* ]] ; then + IUSE="${IUSE} altivec build fortran nls nocxx" + [[ -n ${PIE_VER} ]] && IUSE="${IUSE} nopie" + [[ -n ${PP_VER} ]] && IUSE="${IUSE} nossp" + [[ -n ${HTB_VER} ]] && IUSE="${IUSE} boundschecking" + [[ -n ${D_VER} ]] && IUSE="${IUSE} d" + + if tc_version_is_at_least 3 ; then + IUSE="${IUSE} bootstrap doc gcj gtk hardened libffi multilib objc vanilla" + + # gcc-{nios2,bfin} don't accept these + if [[ ${PN} == "gcc" ]] ; then + IUSE="${IUSE} n32 n64" + fi + + tc_version_is_at_least "4.0" && IUSE="${IUSE} objc-gc mudflap" + tc_version_is_at_least "4.1" && IUSE="${IUSE} objc++" + tc_version_is_at_least "4.2" && IUSE="${IUSE} openmp" + tc_version_is_at_least "4.3" && IUSE="${IUSE} fixed-point" + tc_version_is_at_least "4.4" && IUSE="${IUSE} graphite" + fi + fi + + # Support upgrade paths here or people get pissed + if use multislot ; then + SLOT="${CTARGET}-${GCC_CONFIG_VER}" + elif is_crosscompile; then + SLOT="${CTARGET}-${GCC_BRANCH_VER}" + else + SLOT="${GCC_BRANCH_VER}" + fi +fi +#----<< SLOT+IUSE logic >>---- + + +#---->> S + SRC_URI essentials <<---- + +# This function sets the source directory depending on whether we're using +# a prerelease, snapshot, or release tarball. To use it, just set S with: +# +# S="$(gcc_get_s_dir)" +# +# Travis Tilley (03 Sep 2004) +# +gcc_get_s_dir() { + local GCC_S + if [[ -n ${PRERELEASE} ]] ; then + GCC_S=${WORKDIR}/gcc-${PRERELEASE} + elif [[ -n ${SNAPSHOT} ]] ; then + GCC_S=${WORKDIR}/gcc-${SNAPSHOT} + else + GCC_S=${WORKDIR}/gcc-${GCC_RELEASE_VER} + fi + echo "${GCC_S}" +} + +# This function handles the basics of setting the SRC_URI for a gcc ebuild. +# To use, set SRC_URI with: +# +# SRC_URI="$(get_gcc_src_uri)" +# +# Other than the variables normally set by portage, this function's behavior +# can be altered by setting the following: +# +# SNAPSHOT +# If set, this variable signals that we should be using a snapshot +# of gcc from ftp://sources.redhat.com/pub/gcc/snapshots/. It is +# expected to be in the format "YYYY-MM-DD". Note that if the ebuild +# has a _pre suffix, this variable is ignored and the prerelease +# tarball is used instead. +# +# BRANCH_UPDATE +# If set, this variable signals that we should be using the main +# release tarball (determined by ebuild version) and applying a +# CVS branch update patch against it. The location of this branch +# update patch is assumed to be in ${GENTOO_TOOLCHAIN_BASE_URI}. +# Just like with SNAPSHOT, this variable is ignored if the ebuild +# has a _pre suffix. +# +# PATCH_VER +# PATCH_GCC_VER +# This should be set to the version of the gentoo patch tarball. +# The resulting filename of this tarball will be: +# gcc-${PATCH_GCC_VER:-${GCC_RELEASE_VER}}-patches-${PATCH_VER}.tar.bz2 +# +# PIE_VER +# PIE_GCC_VER +# obsoleted: PIE_CORE +# These variables control patching in various updates for the logic +# controlling Position Independant Executables. PIE_VER is expected +# to be the version of this patch, PIE_GCC_VER the gcc version of +# the patch, and PIE_CORE (obsoleted) the actual filename of the patch. +# An example: +# PIE_VER="8.7.6.5" +# PIE_GCC_VER="3.4.0" +# The resulting filename of this tarball will be: +# gcc-${PIE_GCC_VER:-${GCC_RELEASE_VER}}-piepatches-v${PIE_VER}.tar.bz2 +# old syntax (do not define PIE_CORE anymore): +# PIE_CORE="gcc-3.4.0-piepatches-v${PIE_VER}.tar.bz2" +# +# SPECS_VER +# SPECS_GCC_VER +# This is for the minispecs files included in the hardened gcc-4.x +# +# PP_VER +# PP_GCC_VER +# obsoleted: PP_FVER +# These variables control patching in stack smashing protection +# support. They both control the version of ProPolice to download. +# +# PP_VER / PP_GCC_VER +# Used to roll our own custom tarballs of ssp. +# PP_FVER / PP_VER +# Used for mirroring ssp straight from IBM. +# PP_VER sets the version of the directory in which to find the +# patch, and PP_FVER sets the version of the patch itself. For +# example: +# PP_VER="3_4" +# PP_FVER="${PP_VER//_/.}-2" +# would download gcc3_4/protector-3.4-2.tar.gz +# +# HTB_VER +# HTB_GCC_VER +# These variables control whether or not an ebuild supports Herman +# ten Brugge's bounds-checking patches. If you want to use a patch +# for an older gcc version with a new gcc, make sure you set +# HTB_GCC_VER to that version of gcc. +# +# MAN_VER +# The version of gcc for which we will download manpages. This will +# default to ${GCC_RELEASE_VER}, but we may not want to pre-generate man pages +# for prerelease test ebuilds for example. This allows you to +# continue using pre-generated manpages from the last stable release. +# If set to "none", this will prevent the downloading of manpages, +# which is useful for individual library targets. +# +gentoo_urls() { + local devspace="HTTP~lv/GCC/URI HTTP~eradicator/gcc/URI HTTP~vapier/dist/URI + HTTP~halcy0n/patches/URI" + devspace=${devspace//HTTP/http:\/\/dev.gentoo.org\/} + echo mirror://gentoo/$1 ${devspace//URI/$1} +} +get_gcc_src_uri() { + export PATCH_GCC_VER=${PATCH_GCC_VER:-${GCC_RELEASE_VER}} + export UCLIBC_GCC_VER=${UCLIBC_GCC_VER:-${PATCH_GCC_VER}} + export PIE_GCC_VER=${PIE_GCC_VER:-${GCC_RELEASE_VER}} + export PP_GCC_VER=${PP_GCC_VER:-${GCC_RELEASE_VER}} + export HTB_GCC_VER=${HTB_GCC_VER:-${GCC_RELEASE_VER}} + export SPECS_GCC_VER=${SPECS_GCC_VER:-${GCC_RELEASE_VER}} + + [[ -n ${PIE_VER} ]] && \ + PIE_CORE=${PIE_CORE:-gcc-${PIE_GCC_VER}-piepatches-v${PIE_VER}.tar.bz2} + + # Set where to download gcc itself depending on whether we're using a + # prerelease, snapshot, or release tarball. + if [[ -n ${PRERELEASE} ]] ; then + GCC_SRC_URI="ftp://gcc.gnu.org/pub/gcc/prerelease-${PRERELEASE}/gcc-${PRERELEASE}.tar.bz2" + elif [[ -n ${SNAPSHOT} ]] ; then + GCC_SRC_URI="ftp://sources.redhat.com/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT}.tar.bz2" + else + GCC_SRC_URI="mirror://gnu/gcc/gcc-${GCC_PV}/gcc-${GCC_RELEASE_VER}.tar.bz2" + # we want all branch updates to be against the main release + [[ -n ${BRANCH_UPDATE} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} $(gentoo_urls gcc-${GCC_RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2)" + fi + + # propolice aka stack smashing protection + if [[ -n ${PP_VER} ]] ; then + if [[ -n ${PP_FVER} ]] ; then + GCC_SRC_URI="${GCC_SRC_URI} + !nossp? ( + http://www.research.ibm.com/trl/projects/security/ssp/gcc${PP_VER}/protector-${PP_FVER}.tar.gz + $(gentoo_urls protector-${PP_FVER}.tar.gz) + )" + else + GCC_SRC_URI="${GCC_SRC_URI} $(gentoo_urls gcc-${PP_GCC_VER}-ssp-${PP_VER}.tar.bz2)" + fi + fi + + # uclibc lovin + [[ -n ${UCLIBC_VER} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} $(gentoo_urls gcc-${UCLIBC_GCC_VER}-uclibc-patches-${UCLIBC_VER}.tar.bz2)" + + # PERL cannot be present at bootstrap, and is used to build the man pages. + # So... lets include some pre-generated ones, shall we? + [[ -n ${MAN_VER} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} $(gentoo_urls gcc-${MAN_VER}-manpages.tar.bz2)" + + # various gentoo patches + [[ -n ${PATCH_VER} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} $(gentoo_urls gcc-${PATCH_GCC_VER}-patches-${PATCH_VER}.tar.bz2)" + + # strawberry pie, Cappuccino and a Gauloises (it's a good thing) + [[ -n ${PIE_VER} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} !nopie? ( $(gentoo_urls ${PIE_CORE}) )" + + # espf patch for gcc >4.4.1 compiler. New hardened patchset + [[ -n ${ESPF_VER} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} ( $(gentoo_urls gcc-${GCC_RELEASE_VER}-espf-${ESPF_VER}.tar.bz2) + http://weaver.gentooenterprise.com/hardened/patches/gcc-${GCC_RELEASE_VER}-espf-${ESPF_VER}.tar.bz2 + )" + + # gcc minispec for the hardened gcc 4 compiler + [[ -n ${SPECS_VER} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} ( $(gentoo_urls gcc-${SPECS_GCC_VER}-specs-${SPECS_VER}.tar.bz2) + http://weaver.gentooenterprise.com/hardened/patches/gcc-${SPECS_GCC_VER}-specs-${SPECS_VER}.tar.bz2 + )" + + # gcc bounds checking patch + if [[ -n ${HTB_VER} ]] ; then + local HTBFILE="bounds-checking-gcc-${HTB_GCC_VER}-${HTB_VER}.patch.bz2" + GCC_SRC_URI="${GCC_SRC_URI} + boundschecking? ( + mirror://sourceforge/boundschecking/${HTBFILE} + $(gentoo_urls ${HTBFILE}) + )" + fi + + # support for the D language + [[ -n ${D_VER} ]] && \ + GCC_SRC_URI="${GCC_SRC_URI} d? ( mirror://sourceforge/dgcc/gdc-${D_VER}-src.tar.bz2 )" + + # >= gcc-4.3 uses ecj.jar and we only add gcj as a use flag under certain + # conditions + if [[ ${PN} != "kgcc64" && ${PN} != gcc-* ]] ; then + tc_version_is_at_least "4.3" && \ + GCC_SRC_URI="${GCC_SRC_URI} + gcj? ( ftp://sourceware.org/pub/java/ecj-4.3.jar )" + fi + + echo "${GCC_SRC_URI}" +} +S=$(gcc_get_s_dir) +SRC_URI=$(get_gcc_src_uri) +#---->> S + SRC_URI essentials >>---- + + +#---->> support checks <<---- + +# Grab a variable from the build system (taken from linux-info.eclass) +get_make_var() { + local var=$1 makefile=${2:-${WORKDIR}/build/Makefile} + echo -e "e:\\n\\t@echo \$(${var})\\ninclude ${makefile}" | \ + r=${makefile%/*} emake --no-print-directory -s -f - 2>/dev/null +} +XGCC() { get_make_var GCC_FOR_TARGET ; } + +# The gentoo piessp patches allow for 3 configurations: +# 1) PIE+SSP by default +# 2) PIE by default +# 3) SSP by default +hardened_gcc_works() { + if [[ $1 == "pie" ]] ; then + # $gcc_cv_ld_pie is unreliable as it simply take the output of + # `ld --help | grep -- -pie`, that reports the option in all cases, also if + # the loader doesn't actually load the resulting executables. + # To avoid breakage, blacklist FreeBSD here at least + [[ ${CTARGET} == *-freebsd* ]] && return 1 + + want_pie || return 1 + hardened_gcc_is_stable pie && return 0 + if has "~$(tc-arch)" ${ACCEPT_KEYWORDS} ; then + hardened_gcc_check_unsupported pie && return 1 + ewarn "Allowing pie-by-default for an unstable arch ($(tc-arch))" + return 0 + fi + return 1 + elif [[ $1 == "ssp" ]] ; then + [[ -z ${PP_VER} ]] && return 1 + hardened_gcc_is_stable ssp && return 0 + if has "~$(tc-arch)" ${ACCEPT_KEYWORDS} ; then + hardened_gcc_check_unsupported ssp && return 1 + ewarn "Allowing ssp-by-default for an unstable arch ($(tc-arch))" + return 0 + fi + return 1 + else + # laziness ;) + hardened_gcc_works pie || return 1 + hardened_gcc_works ssp || return 1 + return 0 + fi +} + +hardened_gcc_is_stable() { + if [[ $1 == "pie" ]] ; then + # HARDENED_* variables are deprecated and here for compatibility + local tocheck="${HARDENED_PIE_WORKS} ${HARDENED_GCC_WORKS}" + if [[ ${CTARGET} == *-uclibc* ]] ; then + tocheck="${tocheck} ${PIE_UCLIBC_STABLE}" + else + tocheck="${tocheck} ${PIE_GLIBC_STABLE}" + fi + elif [[ $1 == "ssp" ]] ; then + # ditto + local tocheck="${HARDENED_SSP_WORKS} ${HARDENED_GCC_WORKS}" + if [[ ${CTARGET} == *-uclibc* ]] ; then + tocheck="${tocheck} ${SSP_UCLIBC_STABLE}" + else + tocheck="${tocheck} ${SSP_STABLE}" + fi + else + die "hardened_gcc_stable needs to be called with pie or ssp" + fi + + hasq $(tc-arch) ${tocheck} && return 0 + return 1 +} + +hardened_gcc_check_unsupported() { + local tocheck="" + # if a variable is unset, we assume that all archs are unsupported. since + # this function is never called if hardened_gcc_is_stable returns true, + # this shouldn't cause problems... however, allowing this logic to work + # even with the variables unset will break older ebuilds that dont use them. + if [[ $1 == "pie" ]] ; then + if [[ ${CTARGET} == *-uclibc* ]] ; then + [[ -z ${PIE_UCLIBC_UNSUPPORTED} ]] && return 0 + tocheck="${tocheck} ${PIE_UCLIBC_UNSUPPORTED}" + else + [[ -z ${PIE_GLIBC_UNSUPPORTED} ]] && return 0 + tocheck="${tocheck} ${PIE_GLIBC_UNSUPPORTED}" + fi + elif [[ $1 == "ssp" ]] ; then + if [[ ${CTARGET} == *-uclibc* ]] ; then + [[ -z ${SSP_UCLIBC_UNSUPPORTED} ]] && return 0 + tocheck="${tocheck} ${SSP_UCLIBC_UNSUPPORTED}" + else + [[ -z ${SSP_UNSUPPORTED} ]] && return 0 + tocheck="${tocheck} ${SSP_UNSUPPORTED}" + fi + else + die "hardened_gcc_check_unsupported needs to be called with pie or ssp" + fi + + hasq $(tc-arch) ${tocheck} && return 0 + return 1 +} + +espf_arch_support() { + if [[ ${CTARGET} == *-uclibc* ]] && has $(tc-arch) ${ESPF_UCLIBC_SUPPORT} || has $(tc-arch) ${ESPF_GLIBC_SUPPORT} ; then + return 0 + else + return 1 + fi +} + +has_libssp() { + [[ -e /$(get_libdir)/libssp.so ]] && return 0 + return 1 +} + +want_libssp() { + [[ ${GCC_LIBSSP_SUPPORT} == "true" ]] || return 1 + has_libssp || return 1 + [[ -n ${PP_VER} ]] || return 1 + return 0 +} + +_want_stuff() { + local var=$1 flag=$2 + [[ -z ${!var} ]] && return 1 + use ${flag} && return 0 + return 1 +} +want_boundschecking() { _want_stuff HTB_VER boundschecking ; } +want_pie() { _want_stuff PIE_VER !nopie ; } +want_ssp() { _want_stuff PP_VER !nossp ; } + +want_split_specs() { + [[ ${SPLIT_SPECS} == "true" ]] && want_pie +} +want_minispecs() { + if tc_version_is_at_least 4.3.2 && use hardened ; then + [[ -n ${SPECS_VER} ]] && want_pie && return 0 + [[ -n ${ESPF_VER} ]] && [[ -n ${SPECS_VER} ]] && return 1 + die "For Hardened to work you need the minispecs files and have the PIE patch" + fi + return 1 +} +want_espf() { + if tc_version_is_at_least 4.3.4 && use hardened ; then + [[ -n ${ESPF_VER} ]] && [[ -n ${SPECS_VER} ]] && return 0 + die "For Hardened to work you need the minispecs files and have the espf patch" + fi + return 1 +} +# This function checks whether or not glibc has the support required to build +# Position Independant Executables with gcc. +glibc_have_pie() { + if [[ ! -f ${ROOT}/usr/$(get_libdir)/Scrt1.o ]] ; then + echo + ewarn "Your glibc does not have support for pie, the file Scrt1.o is missing" + ewarn "Please update your glibc to a proper version or disable hardened" + echo + return 1 + fi +} + +# This function determines whether or not libc has been patched with stack +# smashing protection support. +libc_has_ssp() { + [[ ${ROOT} != "/" ]] && return 0 + + # lib hacks taken from sandbox configure + echo 'int main(){}' > "${T}"/libctest.c + LC_ALL=C gcc "${T}"/libctest.c -lc -o libctest -Wl,-verbose &> "${T}"/libctest.log || return 1 + local libc_file=$(awk '/attempt to open/ { if (($4 ~ /\/libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}' "${T}"/libctest.log) + + [[ -z ${libc_file} ]] && die "Unable to find a libc !?" + + # Check for gcc-4.x style ssp support + if [[ -n $(readelf -s "${libc_file}" 2>/dev/null | \ + grep 'FUNC.*GLOBAL.*__stack_chk_fail') ]] + then + return 0 + else + # Check for gcc-3.x style ssp support + if [[ -n $(readelf -s "${libc_file}" 2>/dev/null | \ + grep 'OBJECT.*GLOBAL.*__guard') ]] && \ + [[ -n $(readelf -s "${libc_file}" 2>/dev/null | \ + grep 'FUNC.*GLOBAL.*__stack_smash_handler') ]] + then + return 0 + elif is_crosscompile ; then + die "'${libc_file}' was detected w/out ssp, that sucks (a lot)" + else + return 1 + fi + fi +} + +# This is to make sure we don't accidentally try to enable support for a +# language that doesnt exist. GCC 3.4 supports f77, while 4.0 supports f95, etc. +# +# Also add a hook so special ebuilds (kgcc64) can control which languages +# exactly get enabled +gcc-lang-supported() { + grep ^language=\"${1}\" "${S}"/gcc/*/config-lang.in > /dev/null || return 1 + [[ -z ${TOOLCHAIN_ALLOWED_LANGS} ]] && return 0 + has $1 ${TOOLCHAIN_ALLOWED_LANGS} +} + +#----<< support checks >>---- + +#---->> specs + env.d logic <<---- + +# defaults to enable for all hardened toolchains +gcc_common_hard="-DEFAULT_RELRO -DEFAULT_BIND_NOW" + +# configure to build with the hardened GCC specs as the default +make_gcc_hard() { + if hardened_gcc_works ; then + einfo "Updating gcc to use automatic PIE + SSP building ..." + sed -e "s|^HARD_CFLAGS = |HARD_CFLAGS = -DEFAULT_PIE_SSP ${gcc_common_hard} |" \ + -i "${S}"/gcc/Makefile.in || die "Failed to update gcc!" + elif hardened_gcc_works pie ; then + einfo "Updating gcc to use automatic PIE building ..." + ewarn "SSP has not been enabled by default" + sed -e "s|^HARD_CFLAGS = |HARD_CFLAGS = -DEFAULT_PIE ${gcc_common_hard} |" \ + -i "${S}"/gcc/Makefile.in || die "Failed to update gcc!" + elif hardened_gcc_works ssp ; then + einfo "Updating gcc to use automatic SSP building ..." + ewarn "PIE has not been enabled by default" + sed -e "s|^HARD_CFLAGS = |HARD_CFLAGS = -DEFAULT_SSP ${gcc_common_hard} |" \ + -i "${S}"/gcc/Makefile.in || die "Failed to update gcc!" + else + # do nothing if hardened isnt supported, but dont die either + ewarn "hardened is not supported for this arch in this gcc version" + ebeep + return 0 + fi + + # rebrand to make bug reports easier + BRANDING_GCC_PKGVERSION=${BRANDING_GCC_PKGVERSION/Gentoo/Gentoo Hardened} +} + +# now we generate different spec files so that the user can select a compiler +# that enforces certain features in gcc itself and so we don't have to worry +# about a certain package ignoring CFLAGS/LDFLAGS +_create_specs_file() { + # Usage: _create_specs_file + local uflag=$1 name=$2 flags=${*:3} + ebegin "Creating a ${name} gcc specs file" + pushd "${WORKDIR}"/build/gcc > /dev/null + if [[ -z ${uflag} ]] || use ${uflag} ; then + # backup the compiler first + cp Makefile Makefile.orig + sed -i -e '/^HARD_CFLAGS/s:=.*:='"${flags}"':' Makefile + mv xgcc xgcc.foo + mv gcc.o gcc.o.foo + emake -s xgcc + $(XGCC) -dumpspecs > "${WORKDIR}"/build/${name}.specs + # restore everything to normal + mv gcc.o.foo gcc.o + mv xgcc.foo xgcc + mv Makefile.orig Makefile + else + $(XGCC) -dumpspecs > "${WORKDIR}"/build/${name}.specs + fi + popd > /dev/null + eend $([[ -s ${WORKDIR}/build/${name}.specs ]] ; echo $?) +} +create_vanilla_specs_file() { _create_specs_file hardened vanilla ; } +create_hardened_specs_file() { _create_specs_file !hardened hardened ${gcc_common_hard} -DEFAULT_PIE_SSP ; } +create_hardenednossp_specs_file() { _create_specs_file "" hardenednossp ${gcc_common_hard} -DEFAULT_PIE ; } +create_hardenednopie_specs_file() { _create_specs_file "" hardenednopie ${gcc_common_hard} -DEFAULT_SSP ; } +create_hardenednopiessp_specs_file() { _create_specs_file "" hardenednopiessp ${gcc_common_hard} ; } + +split_out_specs_files() { + local s spec_list="hardenednopiessp vanilla" + if hardened_gcc_works ; then + spec_list="${spec_list} hardened hardenednossp hardenednopie" + elif hardened_gcc_works pie ; then + spec_list="${spec_list} hardenednossp" + elif hardened_gcc_works ssp ; then + spec_list="${spec_list} hardenednopie" + fi + for s in ${spec_list} ; do + create_${s}_specs_file || return 1 + done +} + +create_gcc_env_entry() { + dodir /etc/env.d/gcc + local gcc_envd_base="/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}" + + if [[ -z $1 ]] ; then + gcc_envd_file="${D}${gcc_envd_base}" + # I'm leaving the following commented out to remind me that it + # was an insanely -bad- idea. Stuff broke. GCC_SPECS isnt unset + # on chroot or in non-toolchain.eclass gcc ebuilds! + #gcc_specs_file="${LIBPATH}/specs" + gcc_specs_file="" + else + gcc_envd_file="${D}${gcc_envd_base}-$1" + gcc_specs_file="${LIBPATH}/$1.specs" + fi + + # phase PATH/ROOTPATH out ... + echo "PATH=\"${BINPATH}\"" > ${gcc_envd_file} + echo "ROOTPATH=\"${BINPATH}\"" >> ${gcc_envd_file} + echo "GCC_PATH=\"${BINPATH}\"" >> ${gcc_envd_file} + + if use multilib && ! has_multilib_profile; then + LDPATH="${LIBPATH}" + for path in 32 64 ; do + [[ -d ${LIBPATH}/${path} ]] && LDPATH="${LDPATH}:${LIBPATH}/${path}" + done + else + local MULTIDIR + LDPATH="${LIBPATH}" + + # We want to list the default ABI's LIBPATH first so libtool + # searches that directory first. This is a temporary + # workaround for libtool being stupid and using .la's from + # conflicting ABIs by using the first one in the search path + + local abi=${DEFAULT_ABI} + local MULTIDIR=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory) + if [[ ${MULTIDIR} == "." ]] ; then + LDPATH=${LIBPATH} + else + LDPATH=${LIBPATH}/${MULTIDIR} + fi + + for abi in $(get_all_abis) ; do + [[ ${abi} == ${DEFAULT_ABI} ]] && continue + + MULTIDIR=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory) + if [[ ${MULTIDIR} == "." ]] ; then + LDPATH=${LDPATH}:${LIBPATH} + else + LDPATH=${LDPATH}:${LIBPATH}/${MULTIDIR} + fi + done + fi + + echo "LDPATH=\"${LDPATH}\"" >> ${gcc_envd_file} + echo "MANPATH=\"${DATAPATH}/man\"" >> ${gcc_envd_file} + echo "INFOPATH=\"${DATAPATH}/info\"" >> ${gcc_envd_file} + echo "STDCXX_INCDIR=\"${STDCXX_INCDIR##*/}\"" >> ${gcc_envd_file} + + is_crosscompile && echo "CTARGET=${CTARGET}" >> ${gcc_envd_file} + + # Set which specs file to use + [[ -n ${gcc_specs_file} ]] && echo "GCC_SPECS=\"${gcc_specs_file}\"" >> ${gcc_envd_file} +} +setup_minispecs_gcc_build_specs() { + # Setup the "build.specs" file for gcc to use when building. + if want_minispecs ; then + if hardened_gcc_works pie ; then + cat "${WORKDIR}"/specs/pie.specs >> "${WORKDIR}"/build.specs + fi + for s in nostrict znow; do + cat "${WORKDIR}"/specs/${s}.specs >> "${WORKDIR}"/build.specs + done + export GCC_SPECS="${WORKDIR}"/build.specs + fi +} +copy_minispecs_gcc_specs() { + # Build system specs file which, if it exists, must be a complete set of + # specs as it completely and unconditionally overrides the builtin specs. + # For gcc 4 + if want_minispecs ; then + $(XGCC) -dumpspecs > "${WORKDIR}"/specs/specs + cat "${WORKDIR}"/build.specs >> "${WORKDIR}"/specs/specs + insinto ${LIBPATH} + doins "${WORKDIR}"/specs/* || die "failed to install specs" + fi + if want_espf ; then + insinto ${LIBPATH} + doins "${WORKDIR}"/specs/*.specs || die "failed to install specs" + fi +} +add_profile_eselect_conf() { + local compiler_config_file=$1 + local abi=$2 + local specs=$3 + local gcc_specs_file + local var + + if [[ -z ${specs} ]] ; then + # I'm leaving the following commented out to remind me that it + # was an insanely -bad- idea. Stuff broke. GCC_SPECS isnt unset + # on chroot or in non-toolchain.eclass gcc ebuilds! + #gcc_specs_file="${LIBPATH}/specs" + gcc_specs_file="" + + if use hardened ; then + specs="hardened" + else + specs="vanilla" + fi + else + gcc_specs_file="${LIBPATH}/${specs}.specs" + fi + + echo >> ${compiler_config_file} + if ! is_multilib ; then + echo "[${specs}]" >> ${compiler_config_file} + echo " ctarget=${CTARGET}" >> ${compiler_config_file} + else + echo "[${abi}-${specs}]" >> ${compiler_config_file} + var="CTARGET_${abi}" + if [[ -n ${!var} ]] ; then + echo " ctarget=${!var}" >> ${compiler_config_file} + else + var="CHOST_${abi}" + if [[ -n ${!var} ]] ; then + echo " ctarget=${!var}" >> ${compiler_config_file} + else + echo " ctarget=${CTARGET}" >> ${compiler_config_file} + fi + fi + fi + + local MULTIDIR=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory) + local LDPATH=${LIBPATH} + if [[ ${MULTIDIR} != "." ]] ; then + LDPATH="${LIBPATH}/${MULTIDIR}" + fi + + echo " ldpath=${LDPATH}" >> ${compiler_config_file} + + if [[ -n ${gcc_specs_file} ]] ; then + echo " specs=${gcc_specs_file}" >> ${compiler_config_file} + fi + + var="CFLAGS_${abi}" + if [[ -n ${!var} ]] ; then + echo " cflags=${!var}" >> ${compiler_config_file} + fi +} + +create_eselect_conf() { + local config_dir="/etc/eselect/compiler" + local compiler_config_file="${D}/${config_dir}/${CTARGET}-${GCC_CONFIG_VER}.conf" + local abi + + dodir ${config_dir} + + echo "[global]" > ${compiler_config_file} + echo " version=${CTARGET}-${GCC_CONFIG_VER}" >> ${compiler_config_file} + echo " binpath=${BINPATH}" >> ${compiler_config_file} + echo " manpath=${DATAPATH}/man" >> ${compiler_config_file} + echo " infopath=${DATAPATH}/info" >> ${compiler_config_file} + echo " alias_cc=gcc" >> ${compiler_config_file} + echo " stdcxx_incdir=${STDCXX_INCDIR##*/}" >> ${compiler_config_file} + echo " bin_prefix=${CTARGET}" >> ${compiler_config_file} + + # Per spyderous, it is best not to alias the fortran compilers + #if [[ -x "${D}/${BINPATH}/${CTARGET}-g77" ]] ; then + # echo " alias_gfortran=g77" >> ${compiler_config_file} + #elif [[ -x "${D}/${BINPATH}/${CTARGET}-gfortran" ]] ; then + # echo " alias_g77=gfortran" >> ${compiler_config_file} + #fi + + for abi in $(get_all_abis) ; do + add_profile_eselect_conf "${compiler_config_file}" "${abi}" + + if want_split_specs ; then + if use hardened ; then + add_profile_eselect_conf "${compiler_config_file}" "${abi}" vanilla + elif hardened_gcc_works ; then + add_profile_eselect_conf "${compiler_config_file}" "${abi}" hardened + fi + + if hardened_gcc_works || hardened_gcc_works pie ; then + add_profile_eselect_conf "${compiler_config_file}" "${abi}" hardenednossp + fi + + if hardened_gcc_works || hardened_gcc_works ssp ; then + add_profile_eselect_conf "${compiler_config_file}" "${abi}" hardenednopie + fi + + add_profile_eselect_conf "${compiler_config_file}" "${abi}" hardenednopiessp + fi + done +} + +#----<< specs + env.d logic >>---- + +#---->> pkg_* <<---- +gcc_pkg_setup() { + [[ -z ${ETYPE} ]] && die "Your ebuild needs to set the ETYPE variable" + + if [[ ( $(tc-arch) == "amd64" || $(tc-arch) == "ppc64" ) && ( ${LD_PRELOAD} == "/lib/libsandbox.so" || ${LD_PRELOAD} == "/usr/lib/libsandbox.so" ) ]] && is_multilib ; then + eerror "Sandbox in your installed portage does not support compilation." + eerror "of a multilib gcc. Please set FEATURES=-sandbox and try again." + eerror "After you have a multilib gcc, re-emerge portage to have a working sandbox." + die "No 32bit sandbox. Retry with FEATURES=-sandbox." + fi + + if [[ ${ETYPE} == "gcc-compiler" ]] ; then + case $(tc-arch) in + mips) + # Must compile for mips64-linux target if we want n32/n64 support + case "${CTARGET}" in + mips64*) ;; + *) + if use n32 || use n64; then + eerror "n32/n64 can only be used when target host is mips64*-*-linux-*"; + die "Invalid USE flags for CTARGET ($CTARGET)"; + fi + ;; + esac + + #cannot have both n32 & n64 without multilib + if use n32 && use n64 && ! is_multilib; then + eerror "Please enable multilib if you want to use both n32 & n64"; + die "Invalid USE flag combination"; + fi + ;; + esac + + # Setup variables which would normally be in the profile + if is_crosscompile ; then + multilib_env ${CTARGET} + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + fi + fi + + # we dont want to use the installed compiler's specs to build gcc! + unset GCC_SPECS + fi + + want_libssp && libc_has_ssp && \ + die "libssp cannot be used with a glibc that has been patched to provide ssp symbols" + + unset LANGUAGES #265283 +} + +gcc-compiler_pkg_preinst() { + : +} + +gcc-compiler_pkg_postinst() { + if has_version 'app-admin/eselect-compiler' ; then + do_eselect_compiler + else + do_gcc_config + fi + + if ! is_crosscompile ; then + echo + ewarn "If you have issues with packages unable to locate libstdc++.la," + ewarn "then try running 'fix_libtool_files.sh' on the old gcc versions." + echo + fi + + # If our gcc-config version doesn't like '-' in it's version string, + # tell our users that gcc-config will yell at them, but it's all good. + if ! has_version '>=sys-devel/gcc-config-1.3.10-r1' && [[ ${GCC_CONFIG_VER/-/} != ${GCC_CONFIG_VER} ]] ; then + ewarn "Your version of gcc-config will issue about having an invalid profile" + ewarn "when switching to this profile. It is safe to ignore this warning," + ewarn "and this problem has been corrected in >=sys-devel/gcc-config-1.3.10-r1." + fi + + if ! is_crosscompile && ! use multislot && [[ ${GCCMAJOR}.${GCCMINOR} == 3.4 ]] ; then + echo + ewarn "You should make sure to rebuild all your C++ packages when" + ewarn "upgrading between different versions of gcc. For example," + ewarn "when moving to gcc-3.4 from gcc-3.3, emerge gentoolkit and run:" + ewarn " # revdep-rebuild --library libstdc++.so.5" + echo + ewarn "For more information on the steps to take when upgrading " + ewarn "from gcc-3.3 please refer to: " + ewarn "http://www.gentoo.org/doc/en/gcc-upgrading.xml" + echo + fi + + if ! is_crosscompile ; then + # hack to prevent collisions between SLOT + [[ ! -d ${ROOT}/lib/rcscripts/awk ]] \ + && mkdir -p "${ROOT}"/lib/rcscripts/awk + [[ ! -d ${ROOT}/sbin ]] \ + && mkdir -p "${ROOT}"/sbin + cp "${ROOT}/${DATAPATH}"/fixlafiles.awk "${ROOT}"/lib/rcscripts/awk/ || die "installing fixlafiles.awk" + cp "${ROOT}/${DATAPATH}"/fix_libtool_files.sh "${ROOT}"/sbin/ || die "installing fix_libtool_files.sh" + + [[ ! -d ${ROOT}/usr/bin ]] \ + && mkdir -p "${ROOT}"/usr/bin + # Since these aren't critical files and portage sucks with + # handling of binpkgs, don't require these to be found + for x in "${ROOT}/${DATAPATH}"/c{89,99} ; do + if [[ -e ${x} ]]; then + cp ${x} "${ROOT}"/usr/bin/ || die "installing c89/c99" + fi + done + fi +} + +gcc-compiler_pkg_prerm() { + # Don't let these files be uninstalled #87647 + touch -c "${ROOT}"/sbin/fix_libtool_files.sh \ + "${ROOT}"/lib/rcscripts/awk/fixlafiles.awk +} + +gcc-compiler_pkg_postrm() { + # to make our lives easier (and saner), we do the fix_libtool stuff here. + # rather than checking SLOT's and trying in upgrade paths, we just see if + # the common libstdc++.la exists in the ${LIBPATH} of the gcc that we are + # unmerging. if it does, that means this was a simple re-emerge. + + # clean up the cruft left behind by cross-compilers + if is_crosscompile ; then + if [[ -z $(ls "${ROOT}"/etc/env.d/gcc/${CTARGET}* 2>/dev/null) ]] ; then + rm -f "${ROOT}"/etc/env.d/gcc/config-${CTARGET} + rm -f "${ROOT}"/etc/env.d/??gcc-${CTARGET} + rm -f "${ROOT}"/usr/bin/${CTARGET}-{gcc,{g,c}++}{,32,64} + fi + return 0 + fi + + # ROOT isnt handled by the script + [[ ${ROOT} != "/" ]] && return 0 + + if [[ ! -e ${LIBPATH}/libstdc++.so ]] ; then + # make sure the profile is sane during same-slot upgrade #289403 + do_gcc_config + + einfo "Running 'fix_libtool_files.sh ${GCC_RELEASE_VER}'" + /sbin/fix_libtool_files.sh ${GCC_RELEASE_VER} + if [[ -n ${BRANCH_UPDATE} ]] ; then + einfo "Running 'fix_libtool_files.sh ${GCC_RELEASE_VER}-${BRANCH_UPDATE}'" + /sbin/fix_libtool_files.sh ${GCC_RELEASE_VER}-${BRANCH_UPDATE} + fi + fi + + return 0 +} + +#---->> pkg_* <<---- + +#---->> src_* <<---- + +# generic GCC src_unpack, to be called from the ebuild's src_unpack. +# BIG NOTE regarding hardened support: ebuilds with support for hardened are +# expected to export the following variable: +# +# HARDENED_GCC_WORKS +# This variable should be set to the archs on which hardened should +# be allowed. For example: HARDENED_GCC_WORKS="x86 sparc amd64" +# This allows for additional archs to be supported by hardened when +# ready. +# +# Travis Tilley (03 Sep 2004) +# +gcc-compiler_src_unpack() { + # For the old gcc < 3.4 + if ! tc_version_is_at_least 4.3 ; then + # Fail if using pie patches, building hardened, and glibc doesn't have + # the necessary support + want_pie && use hardened && glibc_have_pie + einfo "updating configuration to build hardened GCC-3 style" + make_gcc_hard || die "failed to make gcc hard" + fi + + # For the newer gcc > 3.4 + if tc_version_is_at_least 4.3.2 && use hardened ; then + if [[ ${PIE_VER} ]] ; then + glibc_have_pie || die "failed to make gcc hardened" + fi + if [[ ${ESPF_VER} ]] ; then + espf_arch_support || die "ESPF is not supported on this $(tc-arch) arch." + fi + # Rebrand to make bug reports easier + use hardened && BRANDING_GCC_PKGVERSION=${BRANDING_GCC_PKGVERSION/Gentoo/Gentoo Hardened} + fi + + if is_libffi ; then + # move the libffi target out of gcj and into all + sed -i \ + -e '/^libgcj=/s:target-libffi::' \ + -e '/^target_lib/s:=":="target-libffi :' \ + "${S}"/configure || die + fi +} +gcc-library_src_unpack() { + : +} +guess_patch_type_in_dir() { + [[ -n $(ls "$1"/*.bz2 2>/dev/null) ]] \ + && EPATCH_SUFFIX="patch.bz2" \ + || EPATCH_SUFFIX="patch" +} +do_gcc_rename_java_bins() { + # bug #139918 - conflict between gcc and java-config-2 for ownership of + # /usr/bin/rmi{c,registry}. Done with mv & sed rather than a patch + # because patches would be large (thanks to the rename of man files), + # and it's clear from the sed invocations that all that changes is the + # rmi{c,registry} names to grmi{c,registry} names. + # Kevin F. Quinn 2006-07-12 + einfo "Renaming jdk executables rmic and rmiregistry to grmic and grmiregistry." + # 1) Move the man files if present (missing prior to gcc-3.4) + for manfile in rmic rmiregistry; do + [[ -f ${S}/gcc/doc/${manfile}.1 ]] || continue + mv "${S}"/gcc/doc/${manfile}.1 "${S}"/gcc/doc/g${manfile}.1 + done + # 2) Fixup references in the docs if present (mission prior to gcc-3.4) + for jfile in gcc/doc/gcj.info gcc/doc/grmic.1 gcc/doc/grmiregistry.1 gcc/java/gcj.texi; do + [[ -f ${S}/${jfile} ]] || continue + sed -i -e 's:rmiregistry:grmiregistry:g' "${S}"/${jfile} || + die "Failed to fixup file ${jfile} for rename to grmiregistry" + sed -i -e 's:rmic:grmic:g' "${S}"/${jfile} || + die "Failed to fixup file ${jfile} for rename to grmic" + done + # 3) Fixup Makefiles to build the changed executable names + # These are present in all 3.x versions, and are the important bit + # to get gcc to build with the new names. + for jfile in libjava/Makefile.am libjava/Makefile.in gcc/java/Make-lang.in; do + sed -i -e 's:rmiregistry:grmiregistry:g' "${S}"/${jfile} || + die "Failed to fixup file ${jfile} for rename to grmiregistry" + # Careful with rmic on these files; it's also the name of a directory + # which should be left unchanged. Replace occurrences of 'rmic$', + # 'rmic_' and 'rmic '. + sed -i -e 's:rmic\([$_ ]\):grmic\1:g' "${S}"/${jfile} || + die "Failed to fixup file ${jfile} for rename to grmic" + done +} +gcc_src_unpack() { + export BRANDING_GCC_PKGVERSION="Gentoo ${GCC_PVR}" + + [[ -z ${UCLIBC_VER} ]] && [[ ${CTARGET} == *-uclibc* ]] && die "Sorry, this version does not support uClibc" + + gcc_quick_unpack + exclude_gcc_patches + + cd "${S}" + + if ! use vanilla ; then + if [[ -n ${PATCH_VER} ]] ; then + guess_patch_type_in_dir "${WORKDIR}"/patch + EPATCH_MULTI_MSG="Applying Gentoo patches ..." \ + epatch "${WORKDIR}"/patch + BRANDING_GCC_PKGVERSION="${BRANDING_GCC_PKGVERSION} p${PATCH_VER}" + fi + if [[ -n ${UCLIBC_VER} ]] ; then + guess_patch_type_in_dir "${WORKDIR}"/uclibc + EPATCH_MULTI_MSG="Applying uClibc patches ..." \ + epatch "${WORKDIR}"/uclibc + fi + fi + do_gcc_HTB_patches + do_gcc_SSP_patches + do_gcc_PIE_patches + epatch_user + do_gcc_ESPF_patches + + ${ETYPE}_src_unpack || die "failed to ${ETYPE}_src_unpack" + + # protoize don't build on FreeBSD, skip it + ## removed in 4.5, bug #270558 --de. + if [[ ${GCCMAJOR}.${GCCMINOR} < 4.5 ]]; then + if ! is_crosscompile && ! use elibc_FreeBSD ; then + # enable protoize / unprotoize + sed -i -e '/^LANGUAGES =/s:$: proto:' "${S}"/gcc/Makefile.in + fi + fi + + fix_files="" + for x in contrib/test_summary libstdc++-v3/scripts/check_survey.in ; do + [[ -e ${x} ]] && fix_files="${fix_files} ${x}" + done + ht_fix_file ${fix_files} */configure *.sh */Makefile.in + + if ! is_crosscompile && is_multilib && \ + [[ ( $(tc-arch) == "amd64" || $(tc-arch) == "ppc64" ) && -z ${SKIP_MULTILIB_HACK} ]] ; then + disgusting_gcc_multilib_HACK || die "multilib hack failed" + fi + + gcc_version_patch + if [[ ${GCCMAJOR}.${GCCMINOR} > 4.0 ]] ; then + if [[ -n ${SNAPSHOT} || -n ${PRERELEASE} ]] ; then + echo ${PV/_/-} > "${S}"/gcc/BASE-VER + fi + fi + + # >= gcc-4.3 doesn't bundle ecj.jar, so copy it + if [[ ${GCCMAJOR}.${GCCMINOR} > 4.2 ]] && + use gcj ; then + cp -pPR "${DISTDIR}/ecj-4.3.jar" "${S}/ecj.jar" || die + fi + + # disable --as-needed from being compiled into gcc specs + # natively when using a gcc version < 3.4.4 + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14992 + if ! tc_version_is_at_least 3.4.4 ; then + sed -i -e s/HAVE_LD_AS_NEEDED/USE_LD_AS_NEEDED/g "${S}"/gcc/config.in + fi + + # In gcc 3.3.x and 3.4.x, rename the java bins to gcc-specific names + # in line with gcc-4. + if [[ ${GCCMAJOR} == 3 ]] && + [[ ${GCCMINOR} -ge 3 ]] + then + do_gcc_rename_java_bins + fi + + # Fixup libtool to correctly generate .la files with portage + cd "${S}" + elibtoolize --portage --shallow --no-uclibc + + gnuconfig_update + + # update configure files + local f + einfo "Fixing misc issues in configure files" + tc_version_is_at_least 4.1 && epatch "${GCC_FILESDIR}"/gcc-configure-texinfo.patch + for f in $(grep -l 'autoconf version 2.13' $(find "${S}" -name configure)) ; do + ebegin " Updating ${f/${S}\/} [LANG]" + patch "${f}" "${GCC_FILESDIR}"/gcc-configure-LANG.patch >& "${T}"/configure-patch.log \ + || eerror "Please file a bug about this" + eend $? + done + sed -i 's|A-Za-z0-9|[:alnum:]|g' "${S}"/gcc/*.awk #215828 + + if [[ -x contrib/gcc_update ]] ; then + einfo "Touching generated files" + ./contrib/gcc_update --touch | \ + while read f ; do + einfo " ${f%%...}" + done + fi + + disable_multilib_libjava || die "failed to disable multilib java" +} + +gcc-library-configure() { + # multilib support + [[ ${GCC_TARGET_NO_MULTILIB} == "true" ]] \ + && confgcc="${confgcc} --disable-multilib" \ + || confgcc="${confgcc} --enable-multilib" +} + +gcc-compiler-configure() { + # multilib support + if is_multilib ; then + confgcc="${confgcc} --enable-multilib" + elif [[ ${CTARGET} == *-linux* ]] ; then + confgcc="${confgcc} --disable-multilib" + fi + + if tc_version_is_at_least "4.0" ; then + if has mudflap ${IUSE} ; then + confgcc="${confgcc} $(use_enable mudflap libmudflap)" + else + confgcc="${confgcc} --disable-libmudflap" + fi + + if want_libssp ; then + confgcc="${confgcc} --enable-libssp" + else + export gcc_cv_libc_provides_ssp=yes + confgcc="${confgcc} --disable-libssp" + fi + + # If we want hardened support on newer espf-patchset + if want_espf ; then + confgcc="${confgcc} --enable-espf" + else + [[ ${ESPF_VER} ]] && confgcc="${confgcc} --disable-espf" + fi + + if tc_version_is_at_least "4.2" ; then + confgcc="${confgcc} $(use_enable openmp libgomp)" + fi + + # enable the cld workaround until we move things to stable. + # by that point, the rest of the software out there should + # have caught up. + if tc_version_is_at_least "4.3" ; then + if ! has ${ARCH} ${KEYWORDS} ; then + confgcc="${confgcc} --enable-cld" + fi + fi + + # Stick the python scripts in their own slotted directory + # bug #279252 + if tc_version_is_at_least "4.4" ; then + confgcc="${confgcc} --with-python-dir=${DATAPATH/$PREFIX/}/python" + fi + fi + + # GTK+ is preferred over xlib in 3.4.x (xlib is unmaintained + # right now). Much thanks to for the heads up. + # Travis Tilley (11 Jul 2004) + if ! is_gcj ; then + confgcc="${confgcc} --disable-libgcj" + elif use gtk ; then + confgcc="${confgcc} --enable-java-awt=gtk" + fi + + case $(tc-arch) in + # Add --with-abi flags to set default MIPS ABI + mips) + local mips_abi="" + use n64 && mips_abi="--with-abi=64" + use n32 && mips_abi="--with-abi=n32" + [[ -n ${mips_abi} ]] && confgcc="${confgcc} ${mips_abi}" + ;; + # Default arch for x86 is normally i386, lets give it a bump + # since glibc will do so based on CTARGET anyways + x86) + confgcc="${confgcc} --with-arch=${CTARGET%%-*}" + ;; + # Enable sjlj exceptions for backward compatibility on hppa + hppa) + [[ ${GCCMAJOR} == "3" ]] && confgcc="${confgcc} --enable-sjlj-exceptions" + ;; + esac + + GCC_LANG="c" + is_cxx && GCC_LANG="${GCC_LANG},c++" + is_d && GCC_LANG="${GCC_LANG},d" + is_gcj && GCC_LANG="${GCC_LANG},java" + if is_objc || is_objcxx ; then + GCC_LANG="${GCC_LANG},objc" + if tc_version_is_at_least "4.0" ; then + use objc-gc && confgcc="${confgcc} --enable-objc-gc" + fi + is_objcxx && GCC_LANG="${GCC_LANG},obj-c++" + fi + is_treelang && GCC_LANG="${GCC_LANG},treelang" + + # fortran support just got sillier! the lang value can be f77 for + # fortran77, f95 for fortran95, or just plain old fortran for the + # currently supported standard depending on gcc version. + is_fortran && GCC_LANG="${GCC_LANG},fortran" + is_f77 && GCC_LANG="${GCC_LANG},f77" + is_f95 && GCC_LANG="${GCC_LANG},f95" + + # We do NOT want 'ADA support' in here! + # is_ada && GCC_LANG="${GCC_LANG},ada" + + einfo "configuring for GCC_LANG: ${GCC_LANG}" +} + +# Other than the variables described for gcc_setup_variables, the following +# will alter tha behavior of gcc_do_configure: +# +# CTARGET +# CBUILD +# Enable building for a target that differs from CHOST +# +# GCC_TARGET_NO_MULTILIB +# Disable multilib. Useful when building single library targets. +# +# GCC_LANG +# Enable support for ${GCC_LANG} languages. defaults to just "c" +# +# Travis Tilley (04 Sep 2004) +# +gcc_do_configure() { + local confgcc + + # Set configuration based on path variables + confgcc="${confgcc} \ + --prefix=${PREFIX} \ + --bindir=${BINPATH} \ + --includedir=${INCLUDEPATH} \ + --datadir=${DATAPATH} \ + --mandir=${DATAPATH}/man \ + --infodir=${DATAPATH}/info \ + --with-gxx-include-dir=${STDCXX_INCDIR}" + # On Darwin we need libdir to be set in order to get correct install names + # for things like libobjc-gnu, libgcj and libfortran. If we enable it on + # non-Darwin we screw up the behaviour this eclass relies on. We in + # particular need this over --libdir for bug #255315. + [[ ${CHOST} == *-darwin* ]] && \ + confgcc="${confgcc} --enable-version-specific-runtime-libs" + + # All our cross-compile logic goes here ! woo ! + confgcc="${confgcc} --host=${CHOST}" + if is_crosscompile || tc-is-cross-compiler ; then + # Straight from the GCC install doc: + # "GCC has code to correctly determine the correct value for target + # for nearly all native systems. Therefore, we highly recommend you + # not provide a configure target when configuring a native compiler." + confgcc="${confgcc} --target=${CTARGET}" + fi + [[ -n ${CBUILD} ]] && confgcc="${confgcc} --build=${CBUILD}" + + # ppc altivec support + confgcc="${confgcc} $(use_enable altivec)" + + # gcc has fixed-point arithmetic support in 4.3 for mips targets that can + # significantly increase compile time by several hours. This will allow + # users to control this feature in the event they need the support. + tc_version_is_at_least "4.3" && confgcc="${confgcc} $(use_enable fixed-point)" + + # graphite support was added in 4.4, which depends upon external libraries + # for optimizations. This option allows users to determine if they want + # these optimizations and libraries pulled in + tc_version_is_at_least "4.4" && \ + confgcc="${confgcc} $(use_with graphite ppl) $(use_with graphite cloog)" + + + [[ $(tc-is-softfloat) == "yes" ]] && confgcc="${confgcc} --with-float=soft" + + # Native Language Support + if use nls ; then + confgcc="${confgcc} --enable-nls --without-included-gettext" + else + confgcc="${confgcc} --disable-nls" + fi + + # reasonably sane globals (hopefully) + confgcc="${confgcc} \ + --with-system-zlib \ + --disable-checking \ + --disable-werror \ + --enable-secureplt" + + # etype specific configuration + einfo "running ${ETYPE}-configure" + ${ETYPE}-configure || die + + # if not specified, assume we are building for a target that only + # requires C support + GCC_LANG=${GCC_LANG:-c} + confgcc="${confgcc} --enable-languages=${GCC_LANG}" + + if is_crosscompile ; then + # When building a stage1 cross-compiler (just C compiler), we have to + # disable a bunch of features or gcc goes boom + local needed_libc="" + case ${CTARGET} in + *-linux) needed_libc=no-fucking-clue;; + *-dietlibc) needed_libc=dietlibc;; + *-elf) needed_libc=newlib;; + *-freebsd*) needed_libc=freebsd-lib;; + *-gnu*) needed_libc=glibc;; + *-klibc) needed_libc=klibc;; + *-uclibc*) needed_libc=uclibc;; + *-cygwin) needed_libc=cygwin;; + mingw*|*-mingw*) needed_libc=mingw-runtime;; + avr) confgcc="${confgcc} --enable-shared --disable-threads";; + esac + if [[ -n ${needed_libc} ]] ; then + if ! has_version ${CATEGORY}/${needed_libc} ; then + confgcc="${confgcc} --disable-shared --disable-threads --without-headers" + elif built_with_use --hidden --missing false ${CATEGORY}/${needed_libc} crosscompile_opts_headers-only ; then + confgcc="${confgcc} --disable-shared --with-sysroot=${PREFIX}/${CTARGET}" + else + confgcc="${confgcc} --with-sysroot=${PREFIX}/${CTARGET}" + fi + fi + + if [[ ${GCCMAJOR}.${GCCMINOR} > 4.1 ]] ; then + confgcc="${confgcc} --disable-bootstrap --disable-libgomp" + fi + elif [[ ${CHOST} == mingw* ]] || [[ ${CHOST} == *-mingw* ]] || [[ ${CHOST} == *-cygwin ]] ; then + confgcc="${confgcc} --enable-shared --enable-threads=win32" + else + confgcc="${confgcc} --enable-shared --enable-threads=posix" + fi + [[ ${CTARGET} == *-elf ]] && confgcc="${confgcc} --with-newlib" + # __cxa_atexit is "essential for fully standards-compliant handling of + # destructors", but apparently requires glibc. + if [[ ${CTARGET} == *-uclibc* ]] ; then + confgcc="${confgcc} --disable-__cxa_atexit --enable-target-optspace $(use_enable nptl tls)" + [[ ${GCCMAJOR}.${GCCMINOR} == 3.3 ]] && confgcc="${confgcc} --enable-sjlj-exceptions" + if tc_version_is_at_least 3.4 && [[ ${GCCMAJOR}.${GCCMINOR} < 4.3 ]] ; then + confgcc="${confgcc} --enable-clocale=uclibc" + fi + elif [[ ${CTARGET} == *-gnu* ]] ; then + confgcc="${confgcc} --enable-__cxa_atexit" + confgcc="${confgcc} --enable-clocale=gnu" + elif [[ ${CTARGET} == *-freebsd* ]]; then + confgcc="${confgcc} --enable-__cxa_atexit" + elif [[ ${CTARGET} == *-solaris* ]]; then + confgcc="${confgcc} --enable-__cxa_atexit" + fi + [[ ${GCCMAJOR}.${GCCMINOR} < 3.4 ]] && confgcc="${confgcc} --disable-libunwind-exceptions" + + # create a sparc*linux*-{gcc,g++} that can handle -m32 and -m64 (biarch) + if [[ ${CTARGET} == sparc*linux* ]] \ + && is_multilib \ + && ! is_crosscompile \ + && [[ ${GCCMAJOR}.${GCCMINOR} > 4.2 ]] + then + confgcc="${confgcc} --enable-targets=all" + fi + + tc_version_is_at_least 4.3 && set -- "$@" \ + --with-bugurl=http://bugs.gentoo.org/ \ + --with-pkgversion="${BRANDING_GCC_PKGVERSION}" + set -- ${confgcc} "$@" ${EXTRA_ECONF} + + # Nothing wrong with a good dose of verbosity + echo + einfo "PREFIX: ${PREFIX}" + einfo "BINPATH: ${BINPATH}" + einfo "LIBPATH: ${LIBPATH}" + einfo "DATAPATH: ${DATAPATH}" + einfo "STDCXX_INCDIR: ${STDCXX_INCDIR}" + echo + einfo "Configuring GCC with: ${@//--/\n\t--}" + echo + + # Build in a separate build tree + mkdir -p "${WORKDIR}"/build + pushd "${WORKDIR}"/build > /dev/null + + # and now to do the actual configuration + addwrite /dev/zero + echo "${S}"/configure "$@" + "${S}"/configure "$@" || die "failed to run configure" + + # return to whatever directory we were in before + popd > /dev/null +} + +# This function accepts one optional argument, the make target to be used. +# If ommitted, gcc_do_make will try to guess whether it should use all, +# profiledbootstrap, or bootstrap-lean depending on CTARGET and arch. An +# example of how to use this function: +# +# gcc_do_make all-target-libstdc++-v3 +# +# In addition to the target to be used, the following variables alter the +# behavior of this function: +# +# LDFLAGS +# Flags to pass to ld +# +# STAGE1_CFLAGS +# CFLAGS to use during stage1 of a gcc bootstrap +# +# BOOT_CFLAGS +# CFLAGS to use during stages 2+3 of a gcc bootstrap. +# +# Travis Tilley (04 Sep 2004) +# +gcc_do_make() { + # Fix for libtool-portage.patch + local OLDS=${S} + S=${WORKDIR}/build + + # Set make target to $1 if passed + [[ -n $1 ]] && GCC_MAKE_TARGET=$1 + # default target + if is_crosscompile || tc-is-cross-compiler ; then + # 3 stage bootstrapping doesnt quite work when you cant run the + # resulting binaries natively ^^; + GCC_MAKE_TARGET=${GCC_MAKE_TARGET-all} + else + GCC_MAKE_TARGET=${GCC_MAKE_TARGET-bootstrap-lean} + fi + + # the gcc docs state that parallel make isnt supported for the + # profiledbootstrap target, as collisions in profile collecting may occur. + [[ ${GCC_MAKE_TARGET} == "profiledbootstrap" ]] && export MAKEOPTS="${MAKEOPTS} -j1" + + # boundschecking seems to introduce parallel build issues + want_boundschecking && export MAKEOPTS="${MAKEOPTS} -j1" + + if [[ ${GCC_MAKE_TARGET} == "all" ]] ; then + STAGE1_CFLAGS=${STAGE1_CFLAGS-"${CFLAGS}"} + elif [[ $(gcc-version) == "3.4" && ${GCC_BRANCH_VER} == "3.4" ]] && gcc-specs-ssp ; then + # See bug #79852 + STAGE1_CFLAGS=${STAGE1_CFLAGS-"-O2"} + else + STAGE1_CFLAGS=${STAGE1_CFLAGS-"-O"} + fi + + if is_crosscompile; then + # In 3.4, BOOT_CFLAGS is never used on a crosscompile... + # but I'll leave this in anyways as someone might have had + # some reason for putting it in here... --eradicator + BOOT_CFLAGS=${BOOT_CFLAGS-"-O2"} + else + # we only want to use the system's CFLAGS if not building a + # cross-compiler. + BOOT_CFLAGS=${BOOT_CFLAGS-"$(get_abi_CFLAGS) ${CFLAGS}"} + fi + + pushd "${WORKDIR}"/build + + emake \ + LDFLAGS="${LDFLAGS}" \ + STAGE1_CFLAGS="${STAGE1_CFLAGS}" \ + LIBPATH="${LIBPATH}" \ + BOOT_CFLAGS="${BOOT_CFLAGS}" \ + ${GCC_MAKE_TARGET} \ + || die "emake failed with ${GCC_MAKE_TARGET}" + + if ! is_crosscompile && ! use nocxx && use doc ; then + if type -p doxygen > /dev/null ; then + if tc_version_is_at_least 4.3 ; then + cd "${CTARGET}"/libstdc++-v3/doc + emake doc-man-doxygen || ewarn "failed to make docs" + elif tc_version_is_at_least 3.0 ; then + cd "${CTARGET}"/libstdc++-v3 + emake doxygen-man || ewarn "failed to make docs" + fi + else + ewarn "Skipping libstdc++ manpage generation since you don't have doxygen installed" + fi + fi + + popd +} + +# This function will add ${GCC_CONFIG_VER} to the names of all shared libraries in the +# directory specified to avoid filename collisions between multiple slotted +# non-versioned gcc targets. If no directory is specified, it is assumed that +# you want -all- shared objects to have ${GCC_CONFIG_VER} added. Example +# +# add_version_to_shared ${D}/usr/$(get_libdir) +# +# Travis Tilley (05 Sep 2004) +# +add_version_to_shared() { + local sharedlib sharedlibdir + [[ -z $1 ]] \ + && sharedlibdir=${D} \ + || sharedlibdir=$1 + + for sharedlib in $(find ${sharedlibdir} -name *.so.*) ; do + if [[ ! -L ${sharedlib} ]] ; then + einfo "Renaming `basename "${sharedlib}"` to `basename "${sharedlib/.so*/}-${GCC_CONFIG_VER}.so.${sharedlib/*.so./}"`" + mv "${sharedlib}" "${sharedlib/.so*/}-${GCC_CONFIG_VER}.so.${sharedlib/*.so./}" \ + || die + pushd `dirname "${sharedlib}"` > /dev/null || die + ln -sf "`basename "${sharedlib/.so*/}-${GCC_CONFIG_VER}.so.${sharedlib/*.so./}"`" \ + "`basename "${sharedlib}"`" || die + popd > /dev/null || die + fi + done +} + +# This is mostly a stub function to be overwritten in an ebuild +gcc_do_filter_flags() { + strip-flags + + # In general gcc does not like optimization, and add -O2 where + # it is safe. This is especially true for gcc 3.3 + 3.4 + replace-flags -O? -O2 + + # ... sure, why not? + strip-unsupported-flags + + # dont want to funk ourselves + filter-flags '-mabi*' -m31 -m32 -m64 + + case ${GCC_BRANCH_VER} in + 3.2|3.3) + replace-cpu-flags k8 athlon64 opteron i686 x86-64 + replace-cpu-flags pentium-m pentium3m pentium3 + case $(tc-arch) in + amd64|x86) filter-flags '-mtune=*' ;; + # in gcc 3.3 there is a bug on ppc64 where if -mcpu is used, + # the compiler wrongly assumes a 32bit target + ppc64) filter-flags "-mcpu=*";; + esac + case $(tc-arch) in + amd64) replace-cpu-flags core2 nocona;; + x86) replace-cpu-flags core2 prescott;; + esac + + replace-cpu-flags G3 750 + replace-cpu-flags G4 7400 + replace-cpu-flags G5 7400 + + # XXX: should add a sed or something to query all supported flags + # from the gcc source and trim everything else ... + filter-flags -f{no-,}unit-at-a-time -f{no-,}web -mno-tls-direct-seg-refs + filter-flags -f{no-,}stack-protector{,-all} + filter-flags -fvisibility-inlines-hidden -fvisibility=hidden + ;; + 3.4|4.*) + case $(tc-arch) in + x86|amd64) filter-flags '-mcpu=*';; + *-macos) + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25127 + [[ ${GCC_BRANCH_VER} == 4.0 || ${GCC_BRANCH_VER} == 4.1 ]] && \ + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + ;; + esac + ;; + esac + + # Compile problems with these (bug #6641 among others)... + #filter-flags "-fno-exceptions -fomit-frame-pointer -fforce-addr" + + # CFLAGS logic (verified with 3.4.3): + # CFLAGS: + # This conflicts when creating a crosscompiler, so set to a sane + # default in this case: + # used in ./configure and elsewhere for the native compiler + # used by gcc when creating libiberty.a + # used by xgcc when creating libstdc++ (and probably others)! + # this behavior should be removed... + # + # CXXFLAGS: + # used by xgcc when creating libstdc++ + # + # STAGE1_CFLAGS (not used in creating a crosscompile gcc): + # used by ${CHOST}-gcc for building stage1 compiler + # + # BOOT_CFLAGS (not used in creating a crosscompile gcc): + # used by xgcc for building stage2/3 compiler + + if is_crosscompile ; then + # Set this to something sane for both native and target + CFLAGS="-O2 -pipe" + + local VAR="CFLAGS_"${CTARGET//-/_} + CXXFLAGS=${!VAR} + fi + + export GCJFLAGS=${GCJFLAGS:-${CFLAGS}} +} + +gcc_src_compile() { + gcc_do_filter_flags + einfo "CFLAGS=\"${CFLAGS}\"" + einfo "CXXFLAGS=\"${CXXFLAGS}\"" + + # For hardened gcc 4 for build the hardened specs file to use when building gcc + setup_minispecs_gcc_build_specs + + # Build in a separate build tree + mkdir -p "${WORKDIR}"/build + pushd "${WORKDIR}"/build > /dev/null + + # Install our pre generated manpages if we do not have perl ... + [[ ! -x /usr/bin/perl ]] && [[ -n ${MAN_VER} ]] && \ + unpack gcc-${MAN_VER}-manpages.tar.bz2 + + einfo "Configuring ${PN} ..." + gcc_do_configure + + touch "${S}"/gcc/c-gperf.h + + # Do not make manpages if we do not have perl ... + [[ ! -x /usr/bin/perl ]] \ + && find "${WORKDIR}"/build -name '*.[17]' | xargs touch + + einfo "Compiling ${PN} ..." + gcc_do_make ${GCC_MAKE_TARGET} + + # Do not create multiple specs files for PIE+SSP if boundschecking is in + # USE, as we disable PIE+SSP when it is. + # minispecs and espf will not need to split out specs. + if [[ ${ETYPE} == "gcc-compiler" ]] && want_split_specs && ! want_minispecs && ! want_espf ; then + split_out_specs_files || die "failed to split out specs" + fi + + popd > /dev/null +} + +gcc_src_test() { + cd "${WORKDIR}"/build + emake -j1 -k check || ewarn "check failed and that sucks :(" +} + +gcc-library_src_install() { + # Do the 'make install' from the build directory + cd "${WORKDIR}"/build + S=${WORKDIR}/build \ + emake -j1 \ + DESTDIR="${D}" \ + prefix=${PREFIX} \ + bindir=${BINPATH} \ + includedir=${LIBPATH}/include \ + datadir=${DATAPATH} \ + mandir=${DATAPATH}/man \ + infodir=${DATAPATH}/info \ + LIBPATH="${LIBPATH}" \ + ${GCC_INSTALL_TARGET} || die + + if [[ ${GCC_LIB_COMPAT_ONLY} == "true" ]] ; then + rm -rf "${D}"${INCLUDEPATH} + rm -rf "${D}"${DATAPATH} + pushd "${D}"${LIBPATH}/ + rm *.a *.la *.so + popd + fi + + if [[ -n ${GCC_LIB_USE_SUBDIR} ]] ; then + mkdir -p "${WORKDIR}"/${GCC_LIB_USE_SUBDIR}/ + mv "${D}"${LIBPATH}/* "${WORKDIR}"/${GCC_LIB_USE_SUBDIR}/ + mv "${WORKDIR}"/${GCC_LIB_USE_SUBDIR}/ "${D}"${LIBPATH} + + dodir /etc/env.d + echo "LDPATH=\"${LIBPATH}/${GCC_LIB_USE_SUBDIR}/\"" >> "${D}"/etc/env.d/99${PN} + fi + + if [[ ${GCC_VAR_TYPE} == "non-versioned" ]] ; then + # if we're not using versioned directories, we need to use versioned + # filenames. + add_version_to_shared + fi +} + +gcc-compiler_src_install() { + local x= + + cd "${WORKDIR}"/build + # Do allow symlinks in private gcc include dir as this can break the build + find gcc/include*/ -type l -print0 | xargs rm -f + # Remove generated headers, as they can cause things to break + # (ncurses, openssl, etc). + for x in $(find gcc/include*/ -name '*.h') ; do + grep -q 'It has been auto-edited by fixincludes from' "${x}" \ + && rm -f "${x}" + done + # Do the 'make install' from the build directory + S=${WORKDIR}/build \ + emake -j1 DESTDIR="${D}" install || die + # Punt some tools which are really only useful while building gcc + find "${D}" -name install-tools -prune -type d -exec rm -rf "{}" \; + # This one comes with binutils + find "${D}" -name libiberty.a -exec rm -f "{}" \; + + # Move the libraries to the proper location + gcc_movelibs + + # Basic sanity check + if ! is_crosscompile ; then + local EXEEXT + eval $(grep ^EXEEXT= "${WORKDIR}"/build/gcc/config.log) + [[ -r ${D}${BINPATH}/gcc${EXEEXT} ]] || die "gcc not found in ${D}" + fi + + dodir /etc/env.d/gcc + create_gcc_env_entry + + if want_split_specs ; then + if use hardened ; then + create_gcc_env_entry vanilla + fi + ! use hardened && hardened_gcc_works && create_gcc_env_entry hardened + if hardened_gcc_works || hardened_gcc_works pie ; then + create_gcc_env_entry hardenednossp + fi + if hardened_gcc_works || hardened_gcc_works ssp ; then + create_gcc_env_entry hardenednopie + fi + create_gcc_env_entry hardenednopiessp + + insinto ${LIBPATH} + doins "${WORKDIR}"/build/*.specs || die "failed to install specs" + fi + # Setup the gcc_env_entry for hardened gcc 4 with minispecs or espf + if want_minispecs ; then + if hardened_gcc_works pie ; then + create_gcc_env_entry hardenednopie + fi + create_gcc_env_entry vanilla + fi + + if want_espf ; then + create_gcc_env_entry hardenednopie + create_gcc_env_entry hardenednossp + create_gcc_env_entry vanilla + fi + + # Make sure we dont have stuff lying around that + # can nuke multiple versions of gcc + + gcc_slot_java + + # Move to compiler-specific directories + [[ -f ${D}${STDCXX_INCDIR}/cxxabi.h ]] && \ + mv -f "${D}"${STDCXX_INCDIR}/cxxabi.h "${D}"${LIBPATH}/include/ + + # These should be symlinks + dodir /usr/bin + cd "${D}"${BINPATH} + for x in cpp gcc g++ c++ g77 gcj gcjh gfortran ; do + # For some reason, g77 gets made instead of ${CTARGET}-g77... + # this should take care of that + [[ -f ${x} ]] && mv ${x} ${CTARGET}-${x} + + if [[ -f ${CTARGET}-${x} ]] && ! is_crosscompile ; then + ln -sf ${CTARGET}-${x} ${x} + + # Create version-ed symlinks + dosym ${BINPATH}/${CTARGET}-${x} \ + /usr/bin/${CTARGET}-${x}-${GCC_CONFIG_VER} + dosym ${BINPATH}/${CTARGET}-${x} \ + /usr/bin/${x}-${GCC_CONFIG_VER} + fi + + if [[ -f ${CTARGET}-${x}-${GCC_CONFIG_VER} ]] ; then + rm -f ${CTARGET}-${x}-${GCC_CONFIG_VER} + ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_CONFIG_VER} + fi + done + + # I do not know if this will break gcj stuff, so I'll only do it for + # objc for now; basically "ffi.h" is the correct file to include, + # but it gets installed in .../GCCVER/include and yet it does + # "#include " which (correctly, as it's an "extra" file) + # is installed in .../GCCVER/include/libffi; the following fixes + # ffi.'s include of ffitarget.h - Armando Di Cianno + if [[ -d ${D}${LIBPATH}/include/libffi ]] ; then + mv -i "${D}"${LIBPATH}/include/libffi/* "${D}"${LIBPATH}/include || die + rm -r "${D}"${LIBPATH}/include/libffi || die + fi + + # Now do the fun stripping stuff + env RESTRICT="" CHOST=${CHOST} prepstrip "${D}${BINPATH}" + env RESTRICT="" CHOST=${CTARGET} prepstrip "${D}${LIBPATH}" + # gcc used to install helper binaries in lib/ but then moved to libexec/ + [[ -d ${D}${PREFIX}/libexec/gcc ]] && \ + env RESTRICT="" CHOST=${CHOST} prepstrip "${D}${PREFIX}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}" + + cd "${S}" + if is_crosscompile; then + rm -rf "${D}"/usr/share/{man,info} + rm -rf "${D}"${DATAPATH}/{man,info} + else + local cxx_mandir=${WORKDIR}/build/${CTARGET}/libstdc++-v3/docs/doxygen/man + if [[ -d ${cxx_mandir} ]] ; then + # clean bogus manpages #113902 + find "${cxx_mandir}" -name '*_build_*' -exec rm {} \; + cp -r "${cxx_mandir}"/man? "${D}/${DATAPATH}"/man/ + fi + has noinfo ${FEATURES} \ + && rm -r "${D}/${DATAPATH}"/info \ + || prepinfo "${DATAPATH}" + has noman ${FEATURES} \ + && rm -r "${D}/${DATAPATH}"/man \ + || prepman "${DATAPATH}" + fi + # prune empty dirs left behind + for x in 1 2 3 4 ; do + find "${D}" -type d -exec rmdir "{}" \; >& /dev/null + done + + # install testsuite results + if use test; then + docinto testsuite + find "${WORKDIR}"/build -type f -name "*.sum" -print0 | xargs -0 dodoc + find "${WORKDIR}"/build -type f -path "*/testsuite/*.log" -print0 \ + | xargs -0 dodoc + fi + + # Rather install the script, else portage with changing $FILESDIR + # between binary and source package borks things .... + if ! is_crosscompile ; then + insinto "${DATAPATH}" + if tc_version_is_at_least 4.0 ; then + newins "${GCC_FILESDIR}"/awk/fixlafiles.awk-no_gcc_la fixlafiles.awk || die + find "${D}/${LIBPATH}" -name libstdc++.la -type f -exec rm "{}" \; + else + doins "${GCC_FILESDIR}"/awk/fixlafiles.awk || die + fi + exeinto "${DATAPATH}" + doexe "${GCC_FILESDIR}"/fix_libtool_files.sh || die + doexe "${GCC_FILESDIR}"/c{89,99} || die + fi + + # use gid of 0 because some stupid ports don't have + # the group 'root' set to gid 0 + chown -R root:0 "${D}"${LIBPATH} + + # Create config files for eselect-compiler + create_eselect_conf + + # Copy the needed minispec for hardened gcc 4 + copy_minispecs_gcc_specs +} + +gcc_slot_java() { + local x + + # Move Java headers to compiler-specific dir + for x in "${D}"${PREFIX}/include/gc*.h "${D}"${PREFIX}/include/j*.h ; do + [[ -f ${x} ]] && mv -f "${x}" "${D}"${LIBPATH}/include/ + done + for x in gcj gnu java javax org ; do + if [[ -d ${D}${PREFIX}/include/${x} ]] ; then + dodir /${LIBPATH}/include/${x} + mv -f "${D}"${PREFIX}/include/${x}/* "${D}"${LIBPATH}/include/${x}/ + rm -rf "${D}"${PREFIX}/include/${x} + fi + done + + if [[ -d ${D}${PREFIX}/lib/security ]] || [[ -d ${D}${PREFIX}/$(get_libdir)/security ]] ; then + dodir /${LIBPATH}/security + mv -f "${D}"${PREFIX}/lib*/security/* "${D}"${LIBPATH}/security + rm -rf "${D}"${PREFIX}/lib*/security + fi + + # Move libgcj.spec to compiler-specific directories + [[ -f ${D}${PREFIX}/lib/libgcj.spec ]] && \ + mv -f "${D}"${PREFIX}/lib/libgcj.spec "${D}"${LIBPATH}/libgcj.spec + + # SLOT up libgcj.pc (and let gcc-config worry about links) + local libgcj=$(find "${D}"${PREFIX}/lib/pkgconfig/ -name 'libgcj*.pc') + if [[ -n ${libgcj} ]] ; then + sed -i "/^libdir=/s:=.*:=${LIBPATH}:" "${libgcj}" + mv "${libgcj}" "${D}"/usr/lib/pkgconfig/libgcj-${GCC_PV}.pc || die + fi + + # Rename jar because it could clash with Kaffe's jar if this gcc is + # primary compiler (aka don't have the - extension) + cd "${D}"${BINPATH} + [[ -f jar ]] && mv -f jar gcj-jar +} + +# Move around the libs to the right location. For some reason, +# when installing gcc, it dumps internal libraries into /usr/lib +# instead of the private gcc lib path +gcc_movelibs() { + # older versions of gcc did not support --print-multi-os-directory + tc_version_is_at_least 3.0 || return 0 + + local multiarg removedirs="" + for multiarg in $($(XGCC) -print-multi-lib) ; do + multiarg=${multiarg#*;} + multiarg=${multiarg//@/ -} + + local OS_MULTIDIR=$($(XGCC) ${multiarg} --print-multi-os-directory) + local MULTIDIR=$($(XGCC) ${multiarg} --print-multi-directory) + local TODIR=${D}${LIBPATH}/${MULTIDIR} + local FROMDIR= + + [[ -d ${TODIR} ]] || mkdir -p ${TODIR} + + for FROMDIR in \ + ${LIBPATH}/${OS_MULTIDIR} \ + ${LIBPATH}/../${MULTIDIR} \ + ${PREFIX}/lib/${OS_MULTIDIR} \ + ${PREFIX}/${CTARGET}/lib/${OS_MULTIDIR} \ + ${PREFIX}/lib/${MULTIDIR} + do + removedirs="${removedirs} ${FROMDIR}" + FROMDIR=${D}${FROMDIR} + if [[ ${FROMDIR} != "${TODIR}" && -d ${FROMDIR} ]] ; then + local files=$(find "${FROMDIR}" -maxdepth 1 ! -type d 2>/dev/null) + if [[ -n ${files} ]] ; then + mv ${files} "${TODIR}" + fi + fi + done + fix_libtool_libdir_paths "${LIBPATH}/${MULTIDIR}" + done + + # We remove directories separately to avoid this case: + # mv SRC/lib/../lib/*.o DEST + # rmdir SRC/lib/../lib/ + # mv SRC/lib/../lib32/*.o DEST # Bork + for FROMDIR in ${removedirs} ; do + rmdir "${D}"${FROMDIR} >& /dev/null + done + find "${D}" -type d | xargs rmdir >& /dev/null +} + +#----<< src_* >>---- + +#---->> unorganized crap in need of refactoring follows + +# gcc_quick_unpack will unpack the gcc tarball and patches in a way that is +# consistant with the behavior of get_gcc_src_uri. The only patch it applies +# itself is the branch update if present. +# +# Travis Tilley (03 Sep 2004) +# +gcc_quick_unpack() { + pushd "${WORKDIR}" > /dev/null + export PATCH_GCC_VER=${PATCH_GCC_VER:-${GCC_RELEASE_VER}} + export UCLIBC_GCC_VER=${UCLIBC_GCC_VER:-${PATCH_GCC_VER}} + export PIE_GCC_VER=${PIE_GCC_VER:-${GCC_RELEASE_VER}} + export PP_GCC_VER=${PP_GCC_VER:-${GCC_RELEASE_VER}} + export HTB_GCC_VER=${HTB_GCC_VER:-${GCC_RELEASE_VER}} + export SPECS_GCC_VER=${SPECS_GCC_VER:-${GCC_RELEASE_VER}} + + if [[ -n ${GCC_A_FAKEIT} ]] ; then + unpack ${GCC_A_FAKEIT} + elif [[ -n ${PRERELEASE} ]] ; then + unpack gcc-${PRERELEASE}.tar.bz2 + elif [[ -n ${SNAPSHOT} ]] ; then + unpack gcc-${SNAPSHOT}.tar.bz2 + else + unpack gcc-${GCC_RELEASE_VER}.tar.bz2 + # We want branch updates to be against a release tarball + if [[ -n ${BRANCH_UPDATE} ]] ; then + pushd "${S}" > /dev/null + epatch "${DISTDIR}"/gcc-${GCC_RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 + popd > /dev/null + fi + fi + + if [[ -n ${D_VER} ]] && use d ; then + pushd "${S}"/gcc > /dev/null + unpack gdc-${D_VER}-src.tar.bz2 + cd .. + ebegin "Adding support for the D language" + ./gcc/d/setup-gcc.sh >& "${T}"/dgcc.log + if ! eend $? ; then + eerror "The D gcc package failed to apply" + eerror "Please include this log file when posting a bug report:" + eerror " ${T}/dgcc.log" + die "failed to include the D language" + fi + popd > /dev/null + fi + + [[ -n ${PATCH_VER} ]] && \ + unpack gcc-${PATCH_GCC_VER}-patches-${PATCH_VER}.tar.bz2 + + [[ -n ${UCLIBC_VER} ]] && \ + unpack gcc-${UCLIBC_GCC_VER}-uclibc-patches-${UCLIBC_VER}.tar.bz2 + + if want_ssp ; then + if [[ -n ${PP_FVER} ]] ; then + # The gcc 3.4 propolice versions are meant to be unpacked to ${S} + pushd "${S}" > /dev/null + unpack protector-${PP_FVER}.tar.gz + popd > /dev/null + else + unpack gcc-${PP_GCC_VER}-ssp-${PP_VER}.tar.bz2 + fi + fi + + if want_pie ; then + if [[ -n ${PIE_CORE} ]] ; then + unpack ${PIE_CORE} + else + unpack gcc-${PIE_GCC_VER}-piepatches-v${PIE_VER}.tar.bz2 + fi + fi + + if [[ -n ${ESPF_VER} ]] ; then + unpack gcc-${GCC_RELEASE_VER}-espf-${ESPF_VER}.tar.bz2 + fi + + [[ -n ${SPECS_VER} ]] && \ + unpack gcc-${SPECS_GCC_VER}-specs-${SPECS_VER}.tar.bz2 + + want_boundschecking && \ + unpack "bounds-checking-gcc-${HTB_GCC_VER}-${HTB_VER}.patch.bz2" + + popd > /dev/null +} + +# Exclude any unwanted patches, as specified by the following variables: +# +# GENTOO_PATCH_EXCLUDE +# List of filenames, relative to ${WORKDIR}/patch/ +# +# PIEPATCH_EXCLUDE +# List of filenames, relative to ${WORKDIR}/piepatch/ +# +# Travis Tilley (03 Sep 2004) +# +exclude_gcc_patches() { + local i + for i in ${GENTOO_PATCH_EXCLUDE} ; do + if [[ -f ${WORKDIR}/patch/${i} ]] ; then + einfo "Excluding patch ${i}" + rm -f "${WORKDIR}"/patch/${i} || die "failed to delete ${i}" + fi + done + for i in ${PIEPATCH_EXCLUDE} ; do + if [[ -f ${WORKDIR}/piepatch/${i} ]] ; then + einfo "Excluding piepatch ${i}" + rm -f "${WORKDIR}"/piepatch/${i} || die "failed to delete ${i}" + fi + done +} + +# Try to apply some stub patches so that gcc won't error out when +# passed parameters like -fstack-protector but no ssp is found +do_gcc_stub() { + local v stub_patch="" + for v in ${GCC_RELEASE_VER} ${GCC_BRANCH_VER} ; do + stub_patch=${GCC_FILESDIR}/stubs/gcc-${v}-$1-stub.patch + if [[ -e ${stub_patch} ]] && ! use vanilla ; then + EPATCH_SINGLE_MSG="Applying stub patch for $1 ..." \ + epatch "${stub_patch}" + return 0 + fi + done +} + +do_gcc_HTB_patches() { + if ! want_boundschecking || \ + (want_ssp && [[ ${HTB_EXCLUSIVE} == "true" ]]) + then + do_gcc_stub htb + return 0 + fi + + # modify the bounds checking patch with a regression patch + epatch "${WORKDIR}/bounds-checking-gcc-${HTB_GCC_VER}-${HTB_VER}.patch" + BRANDING_GCC_PKGVERSION="${BRANDING_GCC_PKGVERSION}, HTB-${HTB_GCC_VER}-${HTB_VER}" +} + +# patch in ProPolice Stack Smashing protection +do_gcc_SSP_patches() { + # PARISC has no love ... it's our stack :( + if [[ $(tc-arch) == "hppa" ]] || \ + ! want_ssp || \ + (want_boundschecking && [[ ${HTB_EXCLUSIVE} == "true" ]]) + then + do_gcc_stub ssp + return 0 + fi + + local ssppatch + local sspdocs + + if [[ -n ${PP_FVER} ]] ; then + # Etoh keeps changing where files are and what the patch is named + if tc_version_is_at_least 3.4.1 ; then + # >3.4.1 uses version in patch name, and also includes docs + ssppatch="${S}/gcc_${PP_VER}.dif" + sspdocs="yes" + elif tc_version_is_at_least 3.4.0 ; then + # >3.4 put files where they belong and 3_4 uses old patch name + ssppatch="${S}/protector.dif" + sspdocs="no" + elif tc_version_is_at_least 3.2.3 ; then + # earlier versions have no directory structure or docs + mv "${S}"/protector.{c,h} "${S}"/gcc + ssppatch="${S}/protector.dif" + sspdocs="no" + fi + else + # Just start packaging the damn thing ourselves + mv "${WORKDIR}"/ssp/protector.{c,h} "${S}"/gcc/ + ssppatch=${WORKDIR}/ssp/gcc-${PP_GCC_VER}-ssp.patch + # allow boundschecking and ssp to get along + (want_boundschecking && [[ -e ${WORKDIR}/ssp/htb-ssp.patch ]]) \ + && patch -s "${ssppatch}" "${WORKDIR}"/ssp/htb-ssp.patch + fi + + [[ -z ${ssppatch} ]] && die "Sorry, SSP is not supported in this version" + epatch ${ssppatch} + + if [[ ${PN} == "gcc" && ${sspdocs} == "no" ]] ; then + epatch "${GCC_FILESDIR}"/pro-police-docs.patch + fi + + # Don't build crtbegin/end with ssp + sed -e 's|^CRTSTUFF_CFLAGS = |CRTSTUFF_CFLAGS = -fno-stack-protector |'\ + -i gcc/Makefile.in || die "Failed to update crtstuff!" + + # if gcc in a stage3 defaults to ssp, is version 3.4.0 and a stage1 is built + # the build fails building timevar.o w/: + # cc1: stack smashing attack in function ix86_split_to_parts() + if use build && tc_version_is_at_least 3.4.0 ; then + if gcc -dumpspecs | grep -q "fno-stack-protector:" ; then + epatch "${GCC_FILESDIR}"/3.4.0/gcc-3.4.0-cc1-no-stack-protector.patch + fi + fi + + BRANDING_GCC_PKGVERSION="${BRANDING_GCC_PKGVERSION}, ssp-${PP_FVER:-${PP_GCC_VER}-${PP_VER}}" + if want_libssp ; then + update_gcc_for_libssp + else + update_gcc_for_libc_ssp + fi + + # Don't build libgcc with ssp + sed -e 's|^\(LIBGCC2_CFLAGS.*\)$|\1 -fno-stack-protector|' \ + -i gcc/Makefile.in || die "Failed to update gcc!" +} + +# If glibc or uclibc has been patched to provide the necessary symbols itself, +# then lets use those for SSP instead of libgcc. +update_gcc_for_libc_ssp() { + if libc_has_ssp ; then + einfo "Updating gcc to use SSP from libc ..." + sed -e 's|^\(LIBGCC2_CFLAGS.*\)$|\1 -D_LIBC_PROVIDES_SSP_|' \ + -i "${S}"/gcc/Makefile.in || die "Failed to update gcc!" + fi +} + +# a split out non-libc non-libgcc ssp requires additional spec logic changes +update_gcc_for_libssp() { + einfo "Updating gcc to use SSP from libssp..." + sed -e 's|^\(INTERNAL_CFLAGS.*\)$|\1 -D_LIBSSP_PROVIDES_SSP_|' \ + -i "${S}"/gcc/Makefile.in || die "Failed to update gcc!" +} + +# do various updates to PIE logic +do_gcc_PIE_patches() { + if ! want_pie || \ + (want_boundschecking && [[ ${HTB_EXCLUSIVE} == "true" ]]) + then + return 0 + fi + + want_boundschecking \ + && rm -f "${WORKDIR}"/piepatch/*/*-boundschecking-no.patch* \ + || rm -f "${WORKDIR}"/piepatch/*/*-boundschecking-yes.patch* + + use vanilla && return 0 + + if tc_version_is_at_least 4.3.2; then + guess_patch_type_in_dir "${WORKDIR}"/piepatch/ + EPATCH_MULTI_MSG="Applying pie patches ..." \ + epatch "${WORKDIR}"/piepatch/ + else + guess_patch_type_in_dir "${WORKDIR}"/piepatch/upstream + + # corrects startfile/endfile selection and shared/static/pie flag usage + EPATCH_MULTI_MSG="Applying upstream pie patches ..." \ + epatch "${WORKDIR}"/piepatch/upstream + # adds non-default pie support (rs6000) + EPATCH_MULTI_MSG="Applying non-default pie patches ..." \ + epatch "${WORKDIR}"/piepatch/nondef + # adds default pie support (rs6000 too) if DEFAULT_PIE[_SSP] is defined + EPATCH_MULTI_MSG="Applying default pie patches ..." \ + epatch "${WORKDIR}"/piepatch/def + + # we want to be able to control the pie patch logic via something other + # than ALL_CFLAGS... + sed -e '/^ALL_CFLAGS/iHARD_CFLAGS = ' \ + -e 's|^ALL_CFLAGS = |ALL_CFLAGS = $(HARD_CFLAGS) |' \ + -i "${S}"/gcc/Makefile.in + fi + + BRANDING_GCC_PKGVERSION="${BRANDING_GCC_PKGVERSION}, pie-${PIE_VER}" +} + +# do various updates to ESPF +do_gcc_ESPF_patches() { + if [[ -n ${ESPF_VER} ]] && ! use vanilla; then + guess_patch_type_in_dir "${WORKDIR}"/espf-gcc-"${GCC_RELEASE_VER}" + EPATCH_MULTI_MSG="Applying espf patches ..." \ + epatch "${WORKDIR}"/espf-gcc-"${GCC_RELEASE_VER}" + BRANDING_GCC_PKGVERSION="${BRANDING_GCC_PKGVERSION}, espf-${ESPF_VER}" + fi +} + +should_we_gcc_config() { + # we always want to run gcc-config if we're bootstrapping, otherwise + # we might get stuck with the c-only stage1 compiler + use bootstrap && return 0 + use build && return 0 + + # if the current config is invalid, we definitely want a new one + # Note: due to bash quirkiness, the following must not be 1 line + local curr_config + curr_config=$(env -i ROOT="${ROOT}" gcc-config -c ${CTARGET} 2>&1) || return 0 + + # if the previously selected config has the same major.minor (branch) as + # the version we are installing, then it will probably be uninstalled + # for being in the same SLOT, make sure we run gcc-config. + local curr_config_ver=$(env -i ROOT="${ROOT}" gcc-config -S ${curr_config} | awk '{print $2}') + + local curr_branch_ver=$(get_version_component_range 1-2 ${curr_config_ver}) + + # If we're using multislot, just run gcc-config if we're installing + # to the same profile as the current one. + use multislot && return $([[ ${curr_config_ver} == ${GCC_CONFIG_VER} ]]) + + if [[ ${curr_branch_ver} == ${GCC_BRANCH_VER} ]] ; then + return 0 + else + # if we're installing a genuinely different compiler version, + # we should probably tell the user -how- to switch to the new + # gcc version, since we're not going to do it for him/her. + # We don't want to switch from say gcc-3.3 to gcc-3.4 right in + # the middle of an emerge operation (like an 'emerge -e world' + # which could install multiple gcc versions). + einfo "The current gcc config appears valid, so it will not be" + einfo "automatically switched for you. If you would like to" + einfo "switch to the newly installed gcc version, do the" + einfo "following:" + echo + einfo "gcc-config ${CTARGET}-${GCC_CONFIG_VER}" + einfo "source /etc/profile" + echo + ebeep + return 1 + fi +} + +do_gcc_config() { + if ! should_we_gcc_config ; then + env -i ROOT="${ROOT}" gcc-config --use-old --force + return 0 + fi + + local current_gcc_config="" current_specs="" use_specs="" + + current_gcc_config=$(env -i ROOT="${ROOT}" gcc-config -c ${CTARGET} 2>/dev/null) + if [[ -n ${current_gcc_config} ]] ; then + # figure out which specs-specific config is active + current_specs=$(gcc-config -S ${current_gcc_config} | awk '{print $3}') + [[ -n ${current_specs} ]] && use_specs=-${current_specs} + fi + if [[ -n ${use_specs} ]] && \ + [[ ! -e ${ROOT}/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}${use_specs} ]] + then + ewarn "The currently selected specs-specific gcc config," + ewarn "${current_specs}, doesn't exist anymore. This is usually" + ewarn "due to enabling/disabling hardened or switching to a version" + ewarn "of gcc that doesnt create multiple specs files. The default" + ewarn "config will be used, and the previous preference forgotten." + ebeep + epause + use_specs="" + fi + + gcc-config ${CTARGET}-${GCC_CONFIG_VER}${use_specs} +} + +should_we_eselect_compiler() { + # we always want to run gcc-config if we're bootstrapping, otherwise + # we might get stuck with the c-only stage1 compiler + use bootstrap && return 0 + use build && return 0 + + # if the current config is invalid, we definitely want a new one + # Note: due to bash quirkiness, the following must not be 1 line + local curr_config + curr_config=$(env -i eselect compiler show ${CTARGET} 2>&1) || return 0 + [[ -z ${curr_config} || ${curr_config} == "(none)" ]] && return 0 + + # if the previously selected config has the same major.minor (branch) as + # the version we are installing, then it will probably be uninstalled + # for being in the same SLOT, make sure we run gcc-config. + local curr_config_ver=$(echo ${curr_config} | cut -f1 -d/ | awk -F - '{ print $5 }') + local curr_branch_ver=$(get_version_component_range 1-2 ${curr_config_ver}) + + # If we're using multislot, just run gcc-config if we're installing + # to the same profile as the current one. + use multislot && return $([[ ${curr_config_ver} == ${GCC_CONFIG_VER} ]]) + + if [[ ${curr_branch_ver} == ${GCC_BRANCH_VER} ]] ; then + return 0 + else + # if we're installing a genuinely different compiler version, + # we should probably tell the user -how- to switch to the new + # gcc version, since we're not going to do it for him/her. + # We don't want to switch from say gcc-3.3 to gcc-3.4 right in + # the middle of an emerge operation (like an 'emerge -e world' + # which could install multiple gcc versions). + einfo "The current gcc config appears valid, so it will not be" + einfo "automatically switched for you. If you would like to" + einfo "switch to the newly installed gcc version, do the" + einfo "following:" + echo + einfo "eselect compiler set " + echo + ebeep + return 1 + fi +} + +do_eselect_compiler() { + if ! should_we_eselect_compiler; then + eselect compiler update + return 0 + fi + + for abi in $(get_all_abis) ; do + local ctarget=$(get_abi_CHOST ${abi}) + local current_specs=$(env -i eselect compiler show ${ctarget} | cut -f2 -d/) + + if [[ -n ${current_specs} && ${current_specs} != "(none)" ]] && eselect compiler set ${CTARGET}-${GCC_CONFIG_VER}/${current_specs} &> /dev/null; then + einfo "The following compiler profile has been activated based on your previous profile:" + einfo "${CTARGET}-${GCC_CONFIG_VER}/${current_specs}" + else + # We couldn't choose based on the old specs, so fall back on vanilla/hardened based on USE + + local spec + if use hardened ; then + spec="hardened" + else + spec="vanilla" + fi + + local profile + local isset=0 + for profile in "${current_specs%-*}-${spec}" "${abi}-${spec}" "${spec}" ; do + if eselect compiler set ${CTARGET}-${GCC_CONFIG_VER}/${profile} &> /dev/null ; then + ewarn "The newly installed version of gcc does not have a profile that matches the name of your" + ewarn "currently selected profile for ${ctarget}, so we have enabled the following instead:" + ewarn "${CTARGET}-${GCC_CONFIG_VER}/${profile}" + ewarn "If this is incorrect, please use 'eselect compiler set' to" + ewarn "select another profile." + + isset=1 + break + fi + done + + if [[ ${isset} == 0 ]] ; then + eerror "We were not able to automatically set the current compiler for ${ctarget}" + eerror "to your newly emerged gcc. Please use 'eselect compiler set'" + eerror "to select your compiler." + fi + fi + done +} + +# This function allows us to gentoo-ize gcc's version number and bugzilla +# URL without needing to use patches. +gcc_version_patch() { + # gcc-4.3+ has configure flags (whoo!) + tc_version_is_at_least 4.3 && return 0 + + local version_string=${GCC_CONFIG_VER} + [[ -n ${BRANCH_UPDATE} ]] && version_string="${version_string} ${BRANCH_UPDATE}" + + einfo "patching gcc version: ${version_string} (${BRANDING_GCC_PKGVERSION})" + + if grep -qs VERSUFFIX "${S}"/gcc/version.c ; then + sed -i -e "s~VERSUFFIX \"\"~VERSUFFIX \" (${BRANDING_GCC_PKGVERSION})\"~" \ + "${S}"/gcc/version.c || die "failed to update VERSUFFIX with Gentoo branding" + else + version_string="${version_string} (${BRANDING_GCC_PKGVERSION})" + sed -i -e "s~\(const char version_string\[\] = \"\).*\(\".*\)~\1$version_string\2~" \ + "${S}"/gcc/version.c || die "failed to update version.c with Gentoo branding." + fi + sed -i -e 's~gcc\.gnu\.org\/bugs\.html~bugs\.gentoo\.org\/~' \ + "${S}"/gcc/version.c || die "Failed to change the bug URL" +} + +# The purpose of this DISGUSTING gcc multilib hack is to allow 64bit libs +# to live in lib instead of lib64 where they belong, with 32bit libraries +# in lib32. This hack has been around since the beginning of the amd64 port, +# and we're only now starting to fix everything that's broken. Eventually +# this should go away. +# +# Travis Tilley (03 Sep 2004) +# +disgusting_gcc_multilib_HACK() { + local config + local libdirs + if has_multilib_profile ; then + case $(tc-arch) in + amd64) + config="i386/t-linux64" + libdirs="../$(get_abi_LIBDIR amd64) ../$(get_abi_LIBDIR x86)" \ + ;; + ppc64) + config="rs6000/t-linux64" + libdirs="../$(get_abi_LIBDIR ppc64) ../$(get_abi_LIBDIR ppc)" \ + ;; + esac + else + die "Your profile is no longer supported by portage." + fi + + einfo "updating multilib directories to be: ${libdirs}" + sed -i -e "s:^MULTILIB_OSDIRNAMES.*:MULTILIB_OSDIRNAMES = ${libdirs}:" "${S}"/gcc/config/${config} +} + +disable_multilib_libjava() { + if is_gcj ; then + # We dont want a multilib libjava, so lets use this hack taken from fedora + pushd "${S}" > /dev/null + sed -i -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in + sed -i -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in + sed -i -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in + sed -i -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in + sed -i -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in + sed -i -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in + popd > /dev/null + fi +} + +# make sure the libtool archives have libdir set to where they actually +# -are-, and not where they -used- to be. also, any dependencies we have +# on our own .la files need to be updated. +fix_libtool_libdir_paths() { + pushd "${D}" >/dev/null + + pushd "./${1}" >/dev/null + local dir="${PWD#${D%/}}" + local allarchives=$(echo *.la) + allarchives="\(${allarchives// /\\|}\)" + popd >/dev/null + + sed -i \ + -e "/^libdir=/s:=.*:='${dir}':" \ + ./${dir}/*.la + sed -i \ + -e "/^dependency_libs=/s:/[^ ]*/${allarchives}:${LIBPATH}/\1:g" \ + $(find ./${PREFIX}/lib* -maxdepth 3 -name '*.la') \ + ./${dir}/*.la + + popd >/dev/null +} + +is_multilib() { + [[ ${GCCMAJOR} < 3 ]] && return 1 + case ${CTARGET} in + mips64*|powerpc64*|s390x*|sparc*|x86_64*) + has_multilib_profile || use multilib ;; + *-*-solaris*) use multilib ;; + *-apple-darwin*) use multilib ;; + *) false ;; + esac +} + +is_cxx() { + gcc-lang-supported 'c++' || return 1 + ! use nocxx +} + +is_d() { + gcc-lang-supported d || return 1 + use d +} + +is_f77() { + gcc-lang-supported f77 || return 1 + use fortran +} + +is_f95() { + gcc-lang-supported f95 || return 1 + use fortran +} + +is_fortran() { + gcc-lang-supported fortran || return 1 + use fortran +} + +is_gcj() { + gcc-lang-supported java || return 1 + use gcj +} + +is_libffi() { + has libffi ${IUSE} || return 1 + use libffi +} + +is_objc() { + gcc-lang-supported objc || return 1 + use objc +} + +is_objcxx() { + gcc-lang-supported 'obj-c++' || return 1 + use objc++ +} + +is_ada() { + gcc-lang-supported ada || return 1 + use ada +} + +is_treelang() { + has boundschecking ${IUSE} && use boundschecking && return 1 #260532 + is_crosscompile && return 1 #199924 + gcc-lang-supported treelang || return 1 + #use treelang + return 0 +} diff --git a/metadata/layout.conf b/metadata/layout.conf new file mode 100644 index 0000000..d43e61c --- /dev/null +++ b/metadata/layout.conf @@ -0,0 +1 @@ +masters = gentoo diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest new file mode 100644 index 0000000..f694bd7 --- /dev/null +++ b/net-fs/samba/Manifest @@ -0,0 +1,17 @@ +AUX 3.6/lmhosts 27 SHA256 50871b79e16d26348465016b77a77156ad77619e82ccac8ff0b2929402bdad4c SHA512 940f28f7587701040ab25e445868a519c2217e5e6879ef6845c61b78ee66b09f922ff591a01c2f4162926539122bb3ee701918236ee0cf32aec120e1a0096631 WHIRLPOOL a6e0ec1bc1957ccfaa67b44236859a6d1374f0165443b6519c30e3f5b9a970a22514eff18b25abe4aedcef986256ead3825ab9c4090d054728f4567548e305b3 +AUX 3.6/samba.confd 1210 SHA256 02ab523d695b5ae044b871923ad817f8931a6c20c5bfefad98a4369d7b3742e3 SHA512 34326cde9fa6c072d9b948692b292531e60a05043767ec8be78329d6e99793a16dfe134797d90da2a48e240ea5ad6e4e8ea57046732d02f71f2f4dd5316bd313 WHIRLPOOL 8e1633095d0f1540c4ead736e68b36c196b9fd760ba7f80c945be71918ce5436d64679c0314c2f58c9ef88d7be0432d8c2b75c29f3201857beb729a9c8ff5726 +AUX 3.6/samba.initd 1159 SHA256 14613f24911b4e99c047164f720f0139dfae4c67f4d4936a2b906ee47b2418d9 SHA512 c24038af49a9b0f91d35d5c30e4d5b9a56a0245e83133fac668ac7704820f6c96c51382a5edcc34ee836a303290ffc7b989dfbeb889b059cfe2f03e070aae48b WHIRLPOOL 502e2dce9d149a22b50c8866cdd72dd09e50d3d1202b8d41b49431aed21519261cfc161ed21160af8671ff96256f4dd295c9d790e2f262f4879c748f5adc54ef +AUX 3.6/samba.pam 397 SHA256 86634f2d541370518d0958a73c04776ed5df2a3716ef128ff384459acce9cd38 SHA512 cdf91112dbd4a632da13abb16bc6450a5e43cc6d0f6ccab4bd62a880855824e80b779d7e9b017680669d23f2d9c88e7ce0848ccf7e3eb7eb73c3fd3e6a6eafa4 WHIRLPOOL 8c223dfbe4a122d8d641a52209ca7d5c09b964ad7dc3d203da468df32e58bcf94e11b3eb7c3aaa69ad343a8d5f6c0bde0bbd18dedc8cea998db24e532f08fd93 +AUX 3.6/smb.conf.default.patch 2385 SHA256 2140436e553e5dfc0b472e3a09a597de61f15847f23e8f92b9f561a6b9164034 SHA512 c321782ed148217fc43fe71664ace833e3127b4dc0517ebc898ceb2c04946d159efceb91251112f39a4aa84dadd99964e13192d020ce4f46ad0efb84378674a7 WHIRLPOOL 317fce352f6f2aae6e41927f526264f747f8d0dbff25d88878aed4ea21afff4bffa86de55112c363710c190de9eb600c355e46eb65de4d5550b9f71c29a9bdbd +AUX 3.6/smbusers 118 SHA256 44a75178337c1b3f25f6250dd68c9d1f03fb21a18d6391152cd8c399ab14c08a SHA512 bd435b554b3829682a5117057f1d6d07f214257fc758d8a8220f8cf7999185bfaa32994fd929be9d4b7f04eb29db1a3c26b9207460e181d8a51df300d24dc86a WHIRLPOOL 48227056b90c0333b536afa4468c9d443b45287d7f86fad67462c43dcdce7dc9484b3bc0dc1a3a944d64587d756129a2a46a58522c0c81118784e8fef93628fb +AUX 3.6/swat.xinetd 424 SHA256 0445e35ff4c652967d16fdd6e620b97a7717f6e1c34a62be37a2c67f8a7343ce SHA512 796046f27c53c06a8fba79d6be11ca7ee09adf699297d1a592025559840910fef3feae3d44657efe0391117c9fe652342dbc363d87d6f52b864584291bea0a3e WHIRLPOOL f2c78df47ad806a3e4dc0417758a0157212d267b47e10cb4101237a6296a211efee6e9e00e7435819e92422f79cd5cb93ca2d84463a4b9503de6bb6fdbf37810 +AUX 3.6/system-auth-winbind.pam 590 SHA256 b22942ab19f82695e4b457d067cf2f23774033ce5066b31c4b312c57432b04ab SHA512 0886cfd99b3c3dc117b2a83b04bf59d080ebf77d6ea91f24cfc4d8be7af9db377e0efc2216e7c1f8a180b09fb425476ef6874180d9f0fa47e4889faf1d429679 WHIRLPOOL ac5ff701d426e7c4df2f0b77735ae380671afc5d883131c9df452d0e131007da36774b00c0877b4ed3907adcdef99078749931855cf5e1717cbb6f99be3b14b4 +AUX nmbd.service 224 SHA256 a5e25c11714206c4fb129333dd45152c5753716c6445cbe78c28275df1a1cb77 SHA512 098dfb270c5a5c29f59b4fd8d51b17931771e25e481124832f1a086677825527e2afa7276e8614e5007fbf044d253ce2eaf3a7caf7461ad5d90d0b1c7f157f9d WHIRLPOOL 2f7c342a60c09d5e40e968a026aa17d8c2fe3fd032331c7bb26599bb0f8ec8a77c2a3e329498ed16b1602451fd85a8ef076c436e8a092740cfbd01a82ca52e30 +AUX samba-3.4.2-lib.tevent.python.mk 177 SHA256 3eab52d42a0cbc070d011a131f9a56f4b3da10b2791fec514948fd8d2d013153 SHA512 0bd691d7678737fa815da9e1934db056fa833aa6d6d2d48cf8da559987a899ae4c5ac18e4b3594d634363f515028a3d30711484dbda578aa7506fbe2df55197c WHIRLPOOL 061b3e33b327563f52648931428cce433505353e73bf9851abb33f4f13e7c723c17c3413442dd343477bb0c49fd3284c0155ff59829df448952a6e1d07475251 +AUX samba.conf 61 SHA256 e4fc68bc14a44e3c452e767d996ff693d131da317eb513de10d752dd96cb6f12 SHA512 4a75185762c90d110c399215fbfc939d30804b558ffdb11cc68dee6f87a94c86cadbcd63935884db1266cf40fe24fefb75f9067fe4751ad9838d7a43e8973b9e WHIRLPOOL ad21bc3738c2ec721ad3be746c66719385390835c7f4da881fc0cc1c982bb6821a56300157b1169d1a35264e44dab1a0c29cd9919455a02a8f4c53c665a4bed3 +AUX smbd.service 250 SHA256 e1f5da902cd97891852f6463b2c7eddbc61e7fbd3e3c281028a806319627fc68 SHA512 a54e3c337f7c27766a81f68ad6d8f4eb6ddb1d1aec3303f274e419a49114755bc5dd711701d5e64954ae7153a8be4a7063371af286696c0b81d543b9276703c3 WHIRLPOOL 18b6a57603a41303d207249fdb46cb4f6e887f8b9bd4921dca6b4f28a59951368d6abead2dc9d3be2c09cb2c9f295087ef5f20d121a309791b9031e3fad28b13 +AUX smbd.socket 121 SHA256 d62a239cba39ae03dbb7a291843b2c202973341c85d93ffc87b4e78813be44c2 SHA512 2db4a707fcc6ef1928ac010e5e92cdaf0f6ff3ffa8aef918e0db1ce910abfb481d6a19082337f9c8444cd780d1d442fa8df2bb65e6142fc109d29657532572ed WHIRLPOOL aef792f27a7cd91ee258b6137015269cf2e6310c24a060acb7c6a97162aaebe37f32f66e46f4399cd1160bcc65e5608da7bc87bf933bccd2ffdfe51a6a7cdd8d +AUX smbd_at.service 145 SHA256 909dddfd80982035739081d86d2c524f6a25440d9c10b8a80626d9b4eee424cd SHA512 e6486c35dfa6f77ad46547a78fcae55fb71e4dad7dc7b4580c2b8c1be232c0a870f56714b2b103a1fd8717298f41347d7178fbebb90f0f2d0324fe5233f0f9f3 WHIRLPOOL f5ac03a1e7b653458d49fa2c2afe674e9d8f1e5a81e72a5e49781de3e5111bbe23eedc38c78a6f5e7edc4c32300ddaf76caf889de256fc799cf117edcd6ce6fb +AUX winbindd.service 240 SHA256 755036bc419cce90200ac3c04986fbb7cf718c128c2a1288c634658bb779bf3a SHA512 f1ce6d035e8e0fcdc73f14e3b60c9647043777ff6b2a982a81ed07eb4df5ff245a9511e3e4a9d8163f9c8f3fb86d2a39a67621ace68392eb7c2f2e2a55d587f7 WHIRLPOOL eb4d7f30b4ce3341e3d24a6c05965bdce9ded78a7327b44d3d04d00837d6e8109857b1fb1b78c8325680588cf9abe94158755a962fb8f7e8dac04b336308c268 +DIST samba-3.6.25.tar.gz 34121828 SHA256 8f2c8a7f2bd89b0dfd228ed917815852f7c625b2bc0936304ac3ed63aaf83751 SHA512 25a5c56dae4517e82e196b59fa301b661ec75db57effbb0ede35fb23b018f78cdea6513e8760966caf58abc43335fcebda77fe5bf5bb9d4b27fd3ca6e5a3b626 WHIRLPOOL 68c4a335b3912bf3c6baecae337b1131127515191052366ca9a04ec6d919f2fb69c912aefb087e2578134f3a9bde7b496ea880f2197a8dbf8221058dd1e8444d +EBUILD samba-3.6.25.ebuild 13427 SHA256 ce4b144ba67b90ff58ac2be3eee470ecaaad64d6f3146632991d95c72b3a7ac3 SHA512 1ed7aae4278aa60c8072b4913efcaaa1099a5dbaecbd852cecad3de4d7c27b752cc85490a8522afc943562b69fe22a4e34467fc0bc93ea2b0f6829eca3fe15cb WHIRLPOOL 861f0cec1e6b1fec9212c92c7c2f03933f3d681db337a3d2545e15fa20a192a56a4efc31020909c0f2760504f129891cecee06475d570571f9f1cb2622966376 diff --git a/net-fs/samba/files/3.6/lmhosts b/net-fs/samba/files/3.6/lmhosts new file mode 100644 index 0000000..fe7b466 --- /dev/null +++ b/net-fs/samba/files/3.6/lmhosts @@ -0,0 +1,2 @@ +# $Id$ +127.0.0.1 localhost diff --git a/net-fs/samba/files/3.6/samba.confd b/net-fs/samba/files/3.6/samba.confd new file mode 100644 index 0000000..1b329da --- /dev/null +++ b/net-fs/samba/files/3.6/samba.confd @@ -0,0 +1,28 @@ +#add "winbind" to the daemon_list if you also want winbind to start +daemon_list="smbd nmbd" + +#---------------------------------------------------------------------------- +# Daemons calls: _ +#---------------------------------------------------------------------------- +my_service_name="samba" +my_service_PRE="unset TMP TMPDIR" +my_service_POST="" + +#---------------------------------------------------------------------------- +# Daemons calls: _ +#---------------------------------------------------------------------------- +smbd_start_options="-D" +smbd_start="start-stop-daemon --start --exec /usr/sbin/smbd -- ${smbd_start_options}" +smbd_stop="start-stop-daemon --stop --exec /usr/sbin/smbd" +smbd_reload="killall -HUP smbd" + +nmbd_start_options="-D" +nmbd_start="start-stop-daemon --start --exec /usr/sbin/nmbd -- ${nmbd_start_options}" +nmbd_stop="start-stop-daemon --stop --exec /usr/sbin/nmbd" +nmbd_reload="killall -HUP nmbd" + +winbind_start_options="" +winbind_start="start-stop-daemon --start --exec /usr/sbin/winbindd -- ${winbind_start_options}" +winbind_stop="start-stop-daemon --stop --exec /usr/sbin/winbindd" +winbind_reload="killall -HUP winbindd" + diff --git a/net-fs/samba/files/3.6/samba.initd b/net-fs/samba/files/3.6/samba.initd new file mode 100644 index 0000000..3d238fe --- /dev/null +++ b/net-fs/samba/files/3.6/samba.initd @@ -0,0 +1,60 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Id$ + +extra_started_commands="reload" +piddir="/var/run/samba" + +depend() { + after slapd + need net + use cupsd +} + +DAEMONNAME="${SVCNAME##samba.}" +[ "${DAEMONNAME}" != "samba" ] && daemon_list=${DAEMONNAME} + +signal_do() { + local signal="$1" + [ -z "${signal}" ] && return 0 + + local result=0 last_result=0 daemon= cmd_exec= + for daemon in ${daemon_list} ; do + eval cmd_exec=\$${daemon}_${signal} + if [ -n "${cmd_exec}" ]; then + ebegin "${my_service_name} -> ${signal}: ${daemon}" + #echo ${cmd} '->' ${!cmd} + ${cmd_exec} > /dev/null + last_result=$? + eend ${last_result} + fi + result=$(( ${result} + ${last_result} )) + done + return ${result} +} + +mkdir_sambadirs() { + [ -d "${piddir}" ] || mkdir -p ${piddir} +} + +start() { + ${my_service_PRE} + mkdir_sambadirs + signal_do start && return 0 + + eerror "Error: starting services (see system logs)" + signal_do stop + return 1 +} +stop() { + ${my_service_PRE} + if signal_do stop ; then + ${my_service_POST} + return 0 + fi +} +reload() { + ${my_service_PRE} + signal_do reload +} diff --git a/net-fs/samba/files/3.6/samba.pam b/net-fs/samba/files/3.6/samba.pam new file mode 100644 index 0000000..91beadd --- /dev/null +++ b/net-fs/samba/files/3.6/samba.pam @@ -0,0 +1,8 @@ +#%PAM-1.0 +# * pam_smbpass.so authenticates against the smbpasswd file +# * changed Redhat's 'pam_stack' with 'include' for *BSD compatibility +# (Diego "Flameeyes" Petteno'): enable with pam>=0.78 only +auth required pam_smbpass.so nodelay +account include system-auth +session include system-auth +password required pam_smbpass.so nodelay smbconf=/etc/samba/smb.conf diff --git a/net-fs/samba/files/3.6/smb.conf.default.patch b/net-fs/samba/files/3.6/smb.conf.default.patch new file mode 100644 index 0000000..c2a9a72 --- /dev/null +++ b/net-fs/samba/files/3.6/smb.conf.default.patch @@ -0,0 +1,68 @@ +--- samba-3.6.0rc2/examples/smb.conf.default~ 2011-06-07 19:13:47.000000000 +0100 ++++ samba-3.6.0rc2/examples/smb.conf.default 2011-06-30 16:12:42.388102480 +0100 +@@ -63,7 +63,7 @@ + + # this tells Samba to use a separate log file for each machine + # that connects +- log file = /usr/local/samba/var/log.%m ++ log file = /var/log/samba/log.%m + + # Put a capping on the size of the log files (in Kb). + max log size = 50 +@@ -81,7 +81,10 @@ + + # Backend to store user information in. New installations should + # use either tdbsam or ldapsam. smbpasswd is available for backwards +-# compatibility. tdbsam requires no further configuration. ++# compatibility. tdbsam requires no further configuration. If you're ++# migrating from < samba 3.4, you'll have to convert your old user ++# passwords to the new backend with the command: ++# pdbedit -i smbpasswd:/var/lib/samba/private/smbpasswd -e + ; passdb backend = tdbsam + + # Using the following line enables you to customise your configuration +@@ -89,7 +92,7 @@ + # of the machine that is connecting. + # Note: Consider carefully the location in the configuration file of + # this line. The included file is read at that point. +-; include = /usr/local/samba/lib/smb.conf.%m ++; include = /etc/samba/smb.conf.%m + + # Configure Samba to use multiple interfaces + # If you have multiple network interfaces then you must list them +@@ -166,7 +169,7 @@ + # Un-comment the following and create the netlogon directory for Domain Logons + ; [netlogon] + ; comment = Network Logon Service +-; path = /usr/local/samba/lib/netlogon ++; path = /var/lib/samba/netlogon + ; guest ok = yes + ; writable = no + ; share modes = no +@@ -175,7 +178,7 @@ + # Un-comment the following to provide a specific roving profile share + # the default is to use the user's home directory + ;[Profiles] +-; path = /usr/local/samba/profiles ++; path = /var/lib/samba/profiles + ; browseable = no + ; guest ok = yes + +@@ -184,7 +187,7 @@ + # specifically define each individual printer + [printers] + comment = All Printers +- path = /usr/spool/samba ++ path = /var/spool/samba + browseable = no + # Set public = yes to allow user 'guest account' to print + guest ok = no +@@ -204,7 +207,7 @@ + ; comment = Public Stuff + ; path = /home/samba + ; public = yes +-; writable = no ++; writable = yes + ; printable = no + ; write list = @staff + diff --git a/net-fs/samba/files/3.6/smbusers b/net-fs/samba/files/3.6/smbusers new file mode 100644 index 0000000..7acb6dc --- /dev/null +++ b/net-fs/samba/files/3.6/smbusers @@ -0,0 +1,7 @@ +# $Id$ + +# Syntax: +# Unix_name = SMB_name1 SMB_name2 ... + +root = Administrator admin +nobody = guest pcguest smbguest diff --git a/net-fs/samba/files/3.6/swat.xinetd b/net-fs/samba/files/3.6/swat.xinetd new file mode 100644 index 0000000..45e977d --- /dev/null +++ b/net-fs/samba/files/3.6/swat.xinetd @@ -0,0 +1,17 @@ +# default: off +# description: SWAT is the Samba Web Admin Tool. Use swat \ +# to configure your Samba server. To use SWAT, \ +# connect to port 901 with your favorite web browser. +# $Id$ + +service swat +{ + port = 901 + socket_type = stream + wait = no + only_from = localhost + user = root + server = /usr/sbin/swat + log_on_failure += USERID + disable = yes +} diff --git a/net-fs/samba/files/3.6/system-auth-winbind.pam b/net-fs/samba/files/3.6/system-auth-winbind.pam new file mode 100644 index 0000000..8d6746b --- /dev/null +++ b/net-fs/samba/files/3.6/system-auth-winbind.pam @@ -0,0 +1,18 @@ +#%PAM-1.0 +# $Id$ + +auth required pam_env.so +auth sufficient pam_winbind.so +auth sufficient pam_unix.so likeauth nullok use_first_pass +auth required pam_deny.so + +account sufficient pam_winbind.so +account required pam_unix.so + +password required pam_cracklib.so retry=3 +password sufficient pam_unix.so nullok use_authtok md5 shadow +password required pam_deny.so + +session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 +session required pam_limits.so +session required pam_unix.so diff --git a/net-fs/samba/files/nmbd.service b/net-fs/samba/files/nmbd.service new file mode 100644 index 0000000..44b4ffb --- /dev/null +++ b/net-fs/samba/files/nmbd.service @@ -0,0 +1,12 @@ +[Unit] +Description=Samba NetBIOS name server +After=network.target + +[Service] +Type=forking +PIDFile=/var/run/samba/nmbd.pid +ExecStart=/usr/sbin/nmbd -D +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk b/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk new file mode 100644 index 0000000..3a03755 --- /dev/null +++ b/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk @@ -0,0 +1,6 @@ +[PYTHON::pytevent] +LIBRARY_REALNAME = tevent.$(SHLIBEXT) +PRIVATE_DEPENDENCIES = LIBTEVENT PYTALLOC LIBSAMBA-UTIL LIBREPLACE + +pytevent_OBJ_FILES = $(libteventsrcdir)/pytevent.o + diff --git a/net-fs/samba/files/samba.conf b/net-fs/samba/files/samba.conf new file mode 100644 index 0000000..e0a6f32 --- /dev/null +++ b/net-fs/samba/files/samba.conf @@ -0,0 +1,2 @@ +D /run/samba 0755 root root +D /run/lock/samba 0755 root root diff --git a/net-fs/samba/files/smbd.service b/net-fs/samba/files/smbd.service new file mode 100644 index 0000000..5c006a4 --- /dev/null +++ b/net-fs/samba/files/smbd.service @@ -0,0 +1,12 @@ +[Unit] +Description=Samba SMB/CIFS server +After=network.target nmbd.service winbindd.service + +[Service] +Type=forking +PIDFile=/var/run/samba/smbd.pid +ExecStart=/usr/sbin/smbd -D +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/net-fs/samba/files/smbd.socket b/net-fs/samba/files/smbd.socket new file mode 100644 index 0000000..833bf43 --- /dev/null +++ b/net-fs/samba/files/smbd.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Samba SMB/CIFS server socket + +[Socket] +ListenStream=445 +Accept=yes + +[Install] +WantedBy=sockets.target diff --git a/net-fs/samba/files/smbd_at.service b/net-fs/samba/files/smbd_at.service new file mode 100644 index 0000000..e1f71be --- /dev/null +++ b/net-fs/samba/files/smbd_at.service @@ -0,0 +1,7 @@ +[Unit] +Description=Samba SMB/CIFS server instance + +[Service] +ExecStart=/usr/sbin/smbd -F +ExecReload=/bin/kill -HUP $MAINPID +StandardInput=socket diff --git a/net-fs/samba/files/winbindd.service b/net-fs/samba/files/winbindd.service new file mode 100644 index 0000000..67a778f --- /dev/null +++ b/net-fs/samba/files/winbindd.service @@ -0,0 +1,12 @@ +[Unit] +Description=Samba Winbind daemon +After=network.target nmbd.service + +[Service] +Type=forking +PIDFile=/var/run/samba/winbindd.pid +ExecStart=/usr/sbin/winbindd -D +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/net-fs/samba/samba-3.6.25.ebuild b/net-fs/samba/samba-3.6.25.ebuild new file mode 100644 index 0000000..79925e3 --- /dev/null +++ b/net-fs/samba/samba-3.6.25.ebuild @@ -0,0 +1,483 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit pam versionator multilib multilib-minimal eutils flag-o-matic systemd + +MY_PV=${PV/_/} +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Library bits of the samba network filesystem" +HOMEPAGE="http://www.samba.org/" +SRC_URI="mirror://samba/stable/${MY_P}.tar.gz" +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux" +IUSE="acl addns ads +aio avahi caps +client cluster cups debug dmapi doc examples fam + ldap ldb +netapi pam quota +readline selinux +server +smbclient smbsharemodes + swat syslog +winbind" + +DEPEND="dev-libs/popt + >=sys-libs/talloc-2.0.8-r1[${MULTILIB_USEDEP}] + >=sys-libs/tdb-1.2.13[${MULTILIB_USEDEP}] + >=sys-libs/tevent-0.9.19[${MULTILIB_USEDEP}] + >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] + ads? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] sys-fs/e2fsprogs + client? ( sys-apps/keyutils ) ) + avahi? ( net-dns/avahi[dbus] ) + caps? ( >=sys-libs/libcap-2.22-r2[${MULTILIB_USEDEP}] ) + client? ( !net-fs/mount-cifs + >=dev-libs/iniparser-3.1-r1:0[${MULTILIB_USEDEP}] ) + cluster? ( >=dev-db/ctdb-1.13 ) + cups? ( net-print/cups ) + debug? ( dev-libs/dmalloc ) + dmapi? ( sys-apps/dmapi ) + fam? ( >=virtual/fam-0-r1[${MULTILIB_USEDEP}] ) + ldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] ) + ldb? ( sys-libs/ldb ) + pam? ( >=virtual/pam-0-r1[${MULTILIB_USEDEP}] + winbind? ( >=dev-libs/iniparser-3.1-r1:0[${MULTILIB_USEDEP}] ) + ) + readline? ( >=sys-libs/readline-5.2:= ) + syslog? ( virtual/logger )" + +RDEPEND="${DEPEND} + kernel_linux? ( ads? ( net-fs/cifs-utils[ads] ) + client? ( net-fs/cifs-utils ) ) + selinux? ( sec-policy/selinux-samba ) +" + +# Disable tests since we don't want to build that much here +RESTRICT="test" + +SBINPROGS="" +BINPROGS="" +KRBPLUGIN="" +PLUGINEXT=".so" +SHAREDMODS="" + +S=${WORKDIR}/${MY_P} + +# TODO: +# - enable iPrint on Prefix/OSX and Darwin? +# - selftest-prefix? selftest? +# - AFS? + +CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)" + +REQUIRED_USE=" + ads? ( ldap ) + swat? ( server ) +" + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + if use winbind && + [[ $(tc-getCC)$ == *gcc* ]] && + [[ $(gcc-major-version)$(gcc-minor-version) -lt 43 ]] + then + eerror "It is a known issue that ${P} will not build with " + eerror "winbind use flag enabled when using gcc < 4.3 ." + eerror "Please use at least the latest stable gcc version." + die "Using sys-devel/gcc < 4.3 with winbind use flag." + fi + fi +} + +pkg_setup() { + if use server ; then + SBINPROGS="${SBINPROGS} bin/smbd bin/nmbd" + BINPROGS="${BINPROGS} bin/testparm bin/smbstatus bin/smbcontrol bin/pdbedit + bin/profiles bin/sharesec bin/eventlogadm bin/smbta-util + $(usex client "" "bin/smbclient")" + + use swat && SBINPROGS="${SBINPROGS} bin/swat" + use winbind && SBINPROGS="${SBINPROGS} bin/winbindd" + use ads && use winbind && KRBPLUGIN="${KRBPLUGIN} bin/winbind_krb5_locator" + fi + + if use client ; then + BINPROGS="${BINPROGS} bin/smbclient bin/net bin/smbget bin/smbtree + bin/nmblookup bin/smbpasswd bin/rpcclient bin/smbcacls bin/smbcquotas + bin/ntlm_auth" + + fi + + use cups && BINPROGS="${BINPROGS} bin/smbspool" +# use ldb && BINPROGS="${BINPROGS} bin/ldbedit bin/ldbsearch bin/ldbadd bin/ldbdel bin/ldbmodify bin/ldbrename"; + + if use winbind ; then + BINPROGS="${BINPROGS} bin/wbinfo" + SHAREDMODS="${SHAREDMODS}idmap_rid,idmap_hash" + use ads && SHAREDMODS="${SHAREDMODS},idmap_ad" + use cluster && SHAREDMODS="${SHAREDMODS},idmap_tdb2" + use ldap && SHAREDMODS="${SHAREDMODS},idmap_ldap,idmap_adex" + fi +} + +src_prepare() { + cp "${FILESDIR}/samba-3.4.2-lib.tevent.python.mk" "lib/tevent/python.mk" + + # ensure that winbind has correct ldflags (QA notice) + sed -i \ + -e 's|LDSHFLAGS="|LDSHFLAGS="\\${LDFLAGS} |g' \ + source3/configure || die "sed failed" + epatch "${CONFDIR}"/smb.conf.default.patch + + #bug #399141 wrap newer iniparser version + has_version ">=dev-libs/iniparser-3.0.0:0" && \ + append-cppflags "-Diniparser_getstr\(d,i\)=iniparser_getstring\(d,i,NULL\)" + + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=() + + # we can't alter S since build system writes to '../' and therefore + # we need to duplicate the whole structure + cd source3 || die + + # Filter out -fPIE + [[ ${CHOST} == *-*bsd* ]] && myconf+=( --disable-pie ) + + #Allowing alpha/s390/sh to build + if use alpha || [[ ${ABI} == s390 ]] || use sh ; then + local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS} + replace-flags -O? -O1 + fi + + # http://wiki.samba.org/index.php/CTDB_Setup + use cluster && myconf+=( --disable-pie ) + + # Upstream refuses to make this configurable + myconf+=( ac_cv_header_sys_capability_h=$(usex caps) ) + + # Notes: + # - automount is only needed in conjunction with NIS and we don't have that + # anymore => LDAP? + # - --without-dce-dfs and --without-nisplus-home can't be passed to configure but are disabled by default + econf "${myconf[@]}" \ + --with-piddir="${EPREFIX}"/var/run/samba \ + --sysconfdir="${EPREFIX}"/etc/samba \ + --localstatedir="${EPREFIX}"/var \ + $(multilib_native_use_enable debug developer) \ + --enable-largefile \ + --enable-socket-wrapper \ + --enable-nss-wrapper \ + $(multilib_native_use_enable swat) \ + $(multilib_native_use_enable debug dmalloc) \ + $(multilib_native_use_enable cups) \ + --disable-iprint \ + $(use_enable fam) \ + --enable-shared-libs \ + --disable-dnssd \ + $(multilib_native_use_enable avahi) \ + --with-fhs \ + --with-privatedir="${EPREFIX}"/var/lib/samba/private \ + --with-rootsbindir="${EPREFIX}"/var/cache/samba \ + --with-lockdir="${EPREFIX}"/var/cache/samba \ + --with-swatdir="${EPREFIX}"/usr/share/doc/${PF}/swat \ + --with-configdir="${EPREFIX}"/etc/samba \ + --with-logfilebase="${EPREFIX}"/var/log/samba \ + --with-pammodulesdir=$(getpam_mod_dir) \ + $(multilib_native_use_with dmapi) \ + --without-afs \ + --without-fake-kaserver \ + --without-vfs-afsacl \ + $(use_with ldap) \ + $(use_with ads) \ + $(use_with ads krb5 "${EPREFIX}"/usr) \ + $(use_with ads dnsupdate) \ + --without-automount \ + $(use_with pam) \ + $(use_with pam pam_smbpass) \ + $(use_with syslog) \ + $(use_with quota quotas) \ + $(use_with quota sys-quotas) \ + --without-utmp \ + --without-lib{talloc,tdb} \ + $(use_with netapi libnetapi) \ + $(use_with smbclient libsmbclient) \ + $(use_with smbsharemodes libsmbsharemodes) \ + $(use_with addns libaddns) \ + $(use_with cluster ctdb "${EPREFIX}"/usr) \ + $(use_with cluster cluster-support) \ + $(multilib_native_use_with acl acl-support) \ + $(use_with aio aio-support) \ + --with-sendfile-support \ + $(use_with winbind) \ + --with-shared-modules=${SHAREDMODS} \ + --without-included-popt \ + --without-included-iniparser +} + +multilib_src_compile() { + cd source3 || die + + # compile libs + if use addns ; then + einfo "make addns library" + emake libaddns + fi + if use netapi ; then + einfo "make netapi library" + emake libnetapi + fi + if use smbclient ; then + einfo "make smbclient library" + emake libsmbclient + fi + if use smbsharemodes ; then + einfo "make smbsharemodes library" + emake libsmbsharemodes + fi + + # compile modules + emake modules + + # compile pam moudles + if use pam ; then + einfo "make pam modules" + emake pam_modules + fi + + # compile winbind nss modules + if use winbind ; then + einfo "make nss modules" + emake nss_modules + fi + + # compile utilities + if multilib_is_native_abi; then + if [ -n "${BINPROGS}" ] ; then + einfo "make binprogs" + emake ${BINPROGS} + fi + if [ -n "${SBINPROGS}" ] ; then + einfo "make sbinprogs" + emake ${SBINPROGS} + fi + fi + + if [ -n "${KRBPLUGIN}" ] ; then + einfo "make krbplugin" + emake ${KRBPLUGIN}${PLUGINEXT} + fi +} + +multilib_src_install() { + cd source3 || die + + # pkgconfig files installation needed, bug #464818 + local pkgconfigdir=/usr/$(get_libdir)/pkgconfig + + # install libs + if use addns ; then + einfo "install addns library" + emake installlibaddns DESTDIR="${D}" + fi + if use netapi ; then + einfo "install netapi library" + emake installlibnetapi DESTDIR="${D}" + insinto $pkgconfigdir + doins pkgconfig/netapi.pc + fi + if use smbclient ; then + einfo "install smbclient library" + emake installlibsmbclient DESTDIR="${D}" + insinto $pkgconfigdir + doins pkgconfig/smbclient.pc + fi + if use smbsharemodes ; then + einfo "install smbsharemodes library" + emake installlibsmbsharemodes DESTDIR="${D}" + insinto $pkgconfigdir + doins pkgconfig/smbsharemodes.pc + fi + + # install modules + emake installmodules DESTDIR="${D}" + + if use pam ; then + einfo "install pam modules" + emake installpammodules DESTDIR="${D}" + + if use winbind ; then + newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind + doman ../docs/manpages/pam_winbind.8 + # bug #376853 + insinto /etc/security + doins ../examples/pam_winbind/pam_winbind.conf || die + fi + + newpamd "${CONFDIR}/samba.pam" samba + dodoc pam_smbpass/README + fi + + # Nsswitch extensions. Make link for wins and winbind resolvers + if use winbind ; then + einfo "install libwbclient" + emake installlibwbclient DESTDIR="${D}" + dolib.so ../nsswitch/libnss_wins.so + dosym libnss_wins.so /usr/$(get_libdir)/libnss_wins.so.2 + dolib.so ../nsswitch/libnss_winbind.so + dosym libnss_winbind.so /usr/$(get_libdir)/libnss_winbind.so.2 + insinto $pkgconfigdir + doins pkgconfig/wbclient.pc + einfo "install libwbclient related manpages" + doman ../docs/manpages/idmap_rid.8 + doman ../docs/manpages/idmap_hash.8 + if use ldap ; then + doman ../docs/manpages/idmap_adex.8 + doman ../docs/manpages/idmap_ldap.8 + fi + if use ads ; then + doman ../docs/manpages/idmap_ad.8 + fi + fi + + # install binaries + if multilib_is_native_abi; then + insinto /usr + for prog in ${SBINPROGS} ; do + dosbin ${prog} + doman ../docs/manpages/${prog/bin\/}* + done + + for prog in ${BINPROGS} ; do + dobin ${prog} + doman ../docs/manpages/${prog/bin\/}* + done + + # install scripts + if use client ; then + dobin script/findsmb + doman ../docs/manpages/findsmb.1 + fi + fi + + # install krbplugin + if [ -n "${KRBPLUGIN}" ] ; then + if has_version app-crypt/mit-krb5 ; then + insinto /usr/$(get_libdir)/krb5/plugins/libkrb5 + doins ${KRBPLUGIN}${PLUGINEXT} + elif has_version app-crypt/heimdal ; then + insinto /usr/$(get_libdir)/plugin/krb5 + doins ${KRBPLUGIN}${PLUGINEXT} + fi + insinto /usr + for prog in ${KRBPLUGIN} ; do + doman ../docs/manpages/${prog/bin\/}* + done + fi +} + +multilib_src_install_all() { + # install server components + if use server ; then + doman docs/manpages/vfs* docs/manpages/samba.7 + + diropts -m0700 + keepdir /var/lib/samba/private + + diropts -m1777 + keepdir /var/spool/samba + + diropts -m0755 + keepdir /var/{cache,log}/samba + keepdir /var/lib/samba/{netlogon,profiles} + keepdir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC,X64,IA64,COLOR} + keepdir /usr/$(get_libdir)/samba/{auth,pdb,rpc,idmap,nss_info,gpext} + + newconfd "${CONFDIR}/samba.confd" samba + newinitd "${CONFDIR}/samba.initd" samba + + insinto /etc/samba + doins "${CONFDIR}"/{smbusers,lmhosts} + + if use ldap ; then + insinto /etc/openldap/schema + doins examples/LDAP/samba.schema + fi + + if use swat ; then + insinto /etc/xinetd.d + newins "${CONFDIR}/swat.xinetd" swat + script/installswat.sh "${ED}" "${EROOT}/usr/share/doc/${PF}/swat" "${S}" + fi + + dodoc MAINTAINERS.txt README* Roadmap WHATSNEW.txt docs/THANKS + fi + + # install the spooler to cups + if use cups ; then + dosym /usr/bin/smbspool $(cups-config --serverbin)/backend/smb + fi + + # install misc files + insinto /etc/samba + doins examples/smb.conf.default + doman docs/manpages/smb.conf.5 + + insinto /usr/"$(get_libdir)"/samba + doins codepages/{valid.dat,upcase.dat,lowcase.dat} + + # install docs + if use doc ; then + dohtml -r docs/htmldocs/. + dodoc docs/*.pdf + fi + + # install examples + if use examples ; then + insinto /usr/share/doc/${PF}/examples + + if use smbclient ; then + doins -r examples/libsmbclient + fi + + if use winbind ; then + doins -r examples/pam_winbind examples/nss + fi + + if use server ; then + cd examples || die + doins -r auth autofs dce-dfs LDAP logon misc pdb \ + perfcounter printer-accounting printing scripts tridge \ + validchars VFS + fi + fi + + # Remove empty installation directories + rmdir --ignore-fail-on-non-empty \ + "${ED}/usr/$(get_libdir)/samba" \ + "${ED}/usr"/{sbin,bin} \ + "${ED}/usr/share"/{man,locale,} \ + "${ED}/var"/{run,lib/samba/private,lib/samba,lib,cache/samba,cache,} \ + # || die "tried to remove non-empty dirs, this seems like a bug in the ebuild" + + systemd_dotmpfilesd "${FILESDIR}"/samba.conf + systemd_dounit "${FILESDIR}"/nmbd.service + systemd_dounit "${FILESDIR}"/smbd.{service,socket} + systemd_newunit "${FILESDIR}"/smbd_at.service 'smbd@.service' + systemd_dounit "${FILESDIR}"/winbindd.service +} + +pkg_postinst() { + elog "Samba 3.6 has adopted a number of improved security defaults that" + elog "will impact on existing users of Samba." + elog " client ntlmv2 auth = yes" + elog " client use spnego principal = no" + elog " send spnego principal = no" + elog "" + elog "SMB2 protocol support in 3.6.0 is fully functional and can be " + elog "enabled by setting 'max protocol = smb2'. SMB2 is a new " + elog "implementation of the SMB protocol used by Windows Vista and higher" + elog "" + elog "For further information make sure to read the release notes at" + elog "http://samba.org/samba/history/${P}.html and " + elog "http://samba.org/samba/history/${PN}-3.6.0.html" +} diff --git a/net-wireless/unifi/Manifest b/net-wireless/unifi/Manifest new file mode 100644 index 0000000..9915eda --- /dev/null +++ b/net-wireless/unifi/Manifest @@ -0,0 +1,4 @@ +AUX unifi.conf 207 SHA256 c81e694dd51b77e725113448f34d5d5c72b065acc5db8532e5cfb56175af65ba SHA512 d7ee504b61cd1b7af64e26a7d932d0b90db01448345f41ca5b03a6e183ae8a8f405e5593f9193bd965baf245dbb80e778d0d65c0cddaa11fcebc49c6690ff053 WHIRLPOOL 1e62dc3e7e4c9ba7d1af6e3bdbec65712742de16c3457a39cddfe1518875783a6f2f0ec14ede9d83cfa25f631f7d3688fdf8c36b8154e7dc089ae3be5f838bb1 +AUX unifi.init 701 SHA256 d2d81b364b98b4a2551ea89da3e8582d5fb7f5bd0b56f1f708247d8b5e9c2553 SHA512 0a6129f3cbea36324453d11bb07e4afc5efdae11770f8cd27cbd5f4ad4501f7cdbf647db9e29dda8cb8c11ee4655c969ef19170787261dfbe6711fb231bb3136 WHIRLPOOL 4d0baf184b458f734332df490779ed89a8feadf32c3b6e8884e6e8c4cf3c4ef716198822324212943782daff6eb80f474b4166e3f4e4b3c4c365e15182015d72 +DIST unifi-5.3.8.zip 119049944 SHA256 6befcd978ba319dc2c2fddbd766407158dfdc1e3e632ea45006b6315791e422c SHA512 532ae9c5f33d52802e62e69c6889ae681eabd9ad374d64560e8a125644cf6b63b91e1c3b429a40ea42e59454d8834fa1fa76a6a25b9341dcf0c0b6f73e1bba13 WHIRLPOOL 0c6779acb2feac8a8fa2162b987ead42bb220ff1f0ba826553d383a8fdc6c4f8755cdc7360e8d8d76bebf0370dc28a0a89de211c980a3fae6dc541a651c25e10 +EBUILD unifi-5.3.8-r1.ebuild 1227 SHA256 3eac5a8a9f8889835c0e122676d79dbd52fbbb2b0624dac87bcff9ee43711345 SHA512 b07408cb4ab3117a0297c5253886f68118f7e16a87806f055cecfaddf01d3d99f2a216fcd92009c125fc91cd2de1d2bbf4aee9dc348c5a56ae6f4a48d2c82089 WHIRLPOOL eb2d06171bb2fd62a9f90d33fe1e7101ea8f18b2cde01947b9e8e75d47885c7cb24c2bd5c0f077f2caef5e3dd9e6b69c211ee4fefc8ce3717a1d4472fd820f1c diff --git a/net-wireless/unifi/files/unifi.conf b/net-wireless/unifi/files/unifi.conf new file mode 100644 index 0000000..0a958f0 --- /dev/null +++ b/net-wireless/unifi/files/unifi.conf @@ -0,0 +1,10 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# /etc/conf.d/unifi.conf + +#JAVA_HOME="/usr" + +#UNIFI_USER="unifi" +#UNIFI_GROUP="unifi" diff --git a/net-wireless/unifi/files/unifi.init b/net-wireless/unifi/files/unifi.init new file mode 100644 index 0000000..e6c6e5e --- /dev/null +++ b/net-wireless/unifi/files/unifi.init @@ -0,0 +1,26 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +PID_FILE="/var/run/unifi.pid" +DAEMON="${JAVA_HOME-/usr}"/bin/java +UNIFI_PATH="/usr/lib/unifi" +[ -z "${UNIFI_USER}" ] && UNIFI_USER="unifi" +[ -z "${UNIFI_GROUP}" ] && UNIFI_GROUP="unifi" + +depend() { + need net +} + +start() { + ebegin "Starting unifi" + start-stop-daemon --start --quiet -b --pidfile "${PID_FILE}" -m --user "${UNIFI_USER}:${UNIFI_GROUP}" --chdir ${UNIFI_PATH} --exec ${DAEMON} -- -jar lib/ace.jar start + eend $? +} + +stop() { + ebegin "Stopping unifi" + start-stop-daemon --quiet --stop -R 20 --pidfile "${PID_FILE}" --user "${UNIFI_USER}" + eend $? +} diff --git a/net-wireless/unifi/unifi-5.3.8-r1.ebuild b/net-wireless/unifi/unifi-5.3.8-r1.ebuild new file mode 100644 index 0000000..0c62074 --- /dev/null +++ b/net-wireless/unifi/unifi-5.3.8-r1.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit multilib systemd user + +DESCRIPTION="Management Controller for Ubiquiti Networks UniFi APs" +HOMEPAGE="http://wiki.ubnt.com/UniFi_FAQ" +MY_PN="UniFi" +SRC_URI="http://dl.ubnt.com/unifi/${PV}/${MY_PN}.unix.zip -> ${P}.zip" + +LICENSE="UniFi-EULA" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +DEPEND="" +RDEPEND=" + dev-db/mongodb + virtual/jre +" + +S="${WORKDIR}/${MY_PN}" + +RESTRICT="bindist mirror preserve-libs" +QA_PREBUILT="*" + +pkg_setup() { + enewgroup unifi + enewuser unifi -1 /bin/sh /var/lib/unifi "unifi" +} + +src_install() { + dodir /usr/$(get_libdir)/unifi + + cp -R "${S}"/* "${D}"/usr/$(get_libdir)/unifi + + keepdir /var/lib/unifi/data + dodir /var/lib/unifi/work + dodir /var/log/unifi + + fowners -R unifi:unifi /var/lib/unifi + fowners -R unifi:unifi /var/log/unifi + + dosym /var/lib/unifi/data /usr/$(get_libdir)/unifi/data + dosym /var/lib/unifi/work /usr/$(get_libdir)/unifi/work + dosym /var/log/unifi /usr/$(get_libdir)/unifi/logs + + echo 'CONFIG_PROTECT="/var/lib/unifi/data/system.properties"' >99unifi + doenvd 99unifi + + newconfd "${FILESDIR}/${PN}.conf" "${PN}" + newinitd "${FILESDIR}/${PN}.init" "${PN}" +} diff --git a/profiles/repo_name b/profiles/repo_name new file mode 100644 index 0000000..76c5b8e --- /dev/null +++ b/profiles/repo_name @@ -0,0 +1 @@ +myoverlay diff --git a/sys-apps/openwsman/Manifest b/sys-apps/openwsman/Manifest new file mode 100644 index 0000000..e659430 --- /dev/null +++ b/sys-apps/openwsman/Manifest @@ -0,0 +1,4 @@ +AUX openwsmand.confd 2 SHA256 32c4858e22cc2c967b42150fa550562a2c839c2cebcaab91cabdf6f4da020022 SHA512 a80f7cc2606ef6e5474e96b1e520c17ecf432f0da9a566bd157044130cfb548f10d929ffb5783008df78b6d07d07d109bffbad1998cb8309eccec7e4d3fc813a WHIRLPOOL 4e420447645cae95d2cf774c31f643bdc2f98ed3f5b26aaf8bdf385b9221cf5ad59ac5352fd534560cafe5b247313b275e2f26cd3759acc98e28803e0901a51d +AUX openwsmand.initd 263 SHA256 b02732a77d7be3723d3b256adb43ebf7d6d51bf3d456979a4fc51ddcced7753a SHA512 15e6ebed37c9dfcdd393d8bc258e1feeed7de7b90318a0524e17ca62ddb44b8a395b62130f0036e42ea5ba689b77a2ec9079e5aecba002f8834311be4617ef32 WHIRLPOOL 7736733f57205a9b7cc2c8de4e29d2fae2eae0276c28c313020f2f93541f6c2d2961ac44091a529c4d0dc340ce4d9cb62217121bb1b90cc4892db513638af2ab +DIST openwsman-2.3.6.tar.bz2 381951 SHA256 3b5efa04080881428e57b8eafdeaec48b96f58f7dd5b92e93e7806f2026decc9 SHA512 39986298b49ff236a3e17a39bb78dccbdfa1c42bc911026ae6bfd307df837dfaec6765b03662ec4ef049a07e33072592699ab1eb808692643f9fc46212c4ad08 WHIRLPOOL fcac9abdf2ec915dd3871d0de6d85eab5b7bbfd87d04770f9240045b92c240d838ec30aa61537381b055aa17570e75bcccd9322ff57f805c4aa6feaca87842e4 +EBUILD openwsman-2.3.6.ebuild 2154 SHA256 5c4af90ebed41f3d8614522398888eb21cffbf22509a691fa7604f325763b6f1 SHA512 808ea5e37a00ee60c6794f3a7186311bced435f80e684fc449c244282bca203489d2d441b1817aa2673694ff9330662d1350d9294bebb85ecd7c1dc9408ba3d2 WHIRLPOOL 7763b758b3987bccf6b2720a5bfe42fd204db0bf698770f8c6fc2d32573f27265bc7c7754390b69a1df4a3c701525cbfa2c09210b7b359455a58c8185ffb861b diff --git a/sys-apps/openwsman/files/openwsmand.confd b/sys-apps/openwsman/files/openwsmand.confd new file mode 100644 index 0000000..792d600 --- /dev/null +++ b/sys-apps/openwsman/files/openwsmand.confd @@ -0,0 +1 @@ +# diff --git a/sys-apps/openwsman/files/openwsmand.initd b/sys-apps/openwsman/files/openwsmand.initd new file mode 100644 index 0000000..cc8d1be --- /dev/null +++ b/sys-apps/openwsman/files/openwsmand.initd @@ -0,0 +1,12 @@ +#!/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +command=/usr/sbin/openwsmand +pidfile=/run/openwsmand.pid +command_args="${WSMAND_OPTS} -p ${pidfile}" + +depend() { + use net +} diff --git a/sys-apps/openwsman/openwsman-2.3.6.ebuild b/sys-apps/openwsman/openwsman-2.3.6.ebuild new file mode 100644 index 0000000..0491326 --- /dev/null +++ b/sys-apps/openwsman/openwsman-2.3.6.ebuild @@ -0,0 +1,87 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +PYTHON_DEPEND="python? 2:2.7" +RESTRICT_PYTHON_ABIS="3.* *-jython" + +inherit python cmake-utils ssl-cert java-pkg-2 java-utils-2 + +DESCRIPTION="Opensource Implementation of WS-Management Client" +HOMEPAGE="http://sourceforge.net/projects/openwsman" +SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${PV}/${P}.tar.bz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="+cim debug examples +eventing ipv6 java mono pam perl python plugins ruby ssl ++server test" + +RDEPEND=" + cim? ( dev-libs/sblim-sfcc ) + ssl? ( dev-libs/openssl ) + pam? ( virtual/pam ) + ruby? ( > src/sha1-ssse3.asm +} + +src_configure() { + local myconf=" + $(use_with fuse) + $(use_with ntfs3g ntfs-3g) + $(use_enable smp multithreaded-compression) + $(use_enable ssse3 ssse3-sha1) + $(use_with openssl libcrypto)" + econf ${myconf} +} + diff --git a/sys-fs/wimlib/wimlib-1.9.2.ebuild b/sys-fs/wimlib/wimlib-1.9.2.ebuild new file mode 100644 index 0000000..34914d4 --- /dev/null +++ b/sys-fs/wimlib/wimlib-1.9.2.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils +DESCRIPTION="The open source Windows Imaging (WIM) library" +HOMEPAGE="https://wimlib.net" +SRC_URI="https://wimlib.net/downloads/${P}.tar.gz" +LICENSE="CC0 GPLv3 LGPLv3" + +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="+fuse +xattr +ntfs ssl iso-fs +disk-img +cab" + +RDEPEND=" + dev-libs/libxml2 + fuse? ( + sys-fs/fuse + sys-apps/attr + ) + ntfs? ( sys-fs/ntfs3g ) + ssl? ( dev-libs/openssl ) + iso-fs? ( app-cdr/cdrkit ) + disk-img? ( + sys-fs/mtools + sys-boot/syslinux + ) + cab? ( app-arch/cabextract ) +" + +DEPEND="${RDEPEND}" + +src_configure() { + econf \ + $(use_with fuse) \ + $(use_with ntfs ntfs-3g) \ + $(use_with ssl libcrypto) +} + +src_compile() { + emake || die "emake failed" +} + +src_install() { + default +} diff --git a/sys-kernel/myhardened-sources/ChangeLog b/sys-kernel/myhardened-sources/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/sys-kernel/myhardened-sources/Manifest b/sys-kernel/myhardened-sources/Manifest new file mode 100644 index 0000000..60950a3 --- /dev/null +++ b/sys-kernel/myhardened-sources/Manifest @@ -0,0 +1,113 @@ +AUX kernel-cve-2016-0728.patch 2161 SHA256 c11bf7442041f2ddaf6aea62b897c0753200aa64ca0e7b9f2c9700ea16326997 SHA512 89ba4dd5bc12bc188a63d370f815573885e91f9e856c57eab4410d41033d443554a20e417b72a810024ff8b3195300edb35a2d1f4c5a9feec036b387ad1f8fe5 WHIRLPOOL 73401febc3ae90ec2c18eda405a254a1a4d6a86b5a2c35db22bfb0471f32138fdcbee638c82939610163e9e880d421ab40df8703cbfe5477ffaf836825882ecf +AUX kernel-revert-i915-fast-link-training.patch 2840 SHA256 91493be19e287d02618152c16b469f09243e9a3cd0c4571dcdab8997907ec393 SHA512 e0d51c1073fc9f0b59a31fd39c4278184f6f48b6b9269ef8a1f09a45ac82e4f79f1bc031ec10c6a41b77ef691b260b0d701c6a25ee8f1849a1b32d612b9aecd6 WHIRLPOOL 4e0314395a238669e9cec48e8a90418b6db2cfa1ff5fab1188a83cb128b5bc3fc51b2b67dba8a1a5ef0c7fcb2407630904582f0c1bfe414033e7fe8764192144 +DIST deblob-2.6.32 84094 SHA256 de625f0bd221c9c38d4453f1b709622f222d86a0ae9350d2b7b0e17795e6de6d +DIST deblob-3.11 119401 SHA256 78bf8169e466a2082c6bedca0431bdbe15a55f4ba96c16a631587f23e0cdef25 SHA512 d6f87cf2d9c0a7f59a52c5a890015e050ba684d34f9e81ff8386ab57247718d0b10b6cd8a68ce3dd25711936b660b7cf512cacf31a3467b9b70a3e3e8433e142 WHIRLPOOL 026a2ff10994be722b08b1638366be8311c685c69214db9449e605477f81b817a8c2ca1e4d8617d61f7f66a6f287c74f68a679bc81ff3364d0245eb3ea84fe36 +DIST deblob-3.15 120796 SHA256 d24f4b0548f42e7e83695919008cb75c70f5a7cb9c8a10824ca3c5c51fa62eaf SHA512 7815575001e48569268e60248da2768c6ee81982761420068ce16e6282a9552783595712ae4d937bb62d7e5f33e62b5daab0da35c8bb49c5d94ebde42f030495 WHIRLPOOL 403de2590101bc30408750a7a4eb1bdd6effbc5e2cc5c0615feff34abea649d015e02c4e54ddbb3dc33864c160f516a5e1e526162bdd0176944b382e9a52f425 +DIST deblob-3.17 127288 SHA256 93abf2894baf4d937ff2889fd1bdd04f1093bdb1321c79d8275e40f483e57ad1 SHA512 cb82b7cf59765991f74a1f5829cc6fb036a2e3466337b508884bcc5b27d7fef35db2e653cead705a37c7935c0bfb6bfeb1cdac7293de41994ee9c17ddca2ef39 WHIRLPOOL 0697a7bd39f270393814ffcbc746da6883e41fb32354223cdde8757b126d762bff55e69541c4d9ea0cc75093e19b73c4b6b09d98d9983e07b64fc4794615f2c8 +DIST deblob-3.18 127087 SHA256 c720eabb3911f8dfa4398c4250853df4633018abebc01a509ee4a283c3e00941 SHA512 6fe33762ba19aad7ff891b7b805cc26f6e2926f5e40c92fa45bc7f31bdeb5c8fc42b97e5d37d71b9422da239c7c54abd25f1fa2fa1e5733c6053abbf4c9e9011 WHIRLPOOL c351a3ae15c59081fca69c1b5d9b9de10f024eb01f1426722a0d6ccb7caa34330be42897cd85cf19b22ff876352b0cec1c19707edc81c4cb01ad9c1df2e3d831 +DIST deblob-3.4 109026 SHA256 2fca296bccfa7dc25447f36975971597f67730168a9bc4db0853e55347950680 +DIST deblob-3.7 112072 SHA256 8b341a3d8d07ce3a21889d6bde312d534fa97490eac549b04948fa52fabbe7ea SHA512 42ab77708b4f07037b7a161b83b1790fde26408e3459794d793ea91fec21227dc6dbc462d694a13f90630f567f4df6f08d60a6ff8294078426b877b4d8e7a3be WHIRLPOOL c9071fcef9f6143ee2a4d4648bdb92ab3c514f5731e096bde9db392abc8e3450711875d7018c99255869dc280ad1116f7e07f87e1fbde7656aaa39a0ad595b9c +DIST deblob-3.8 113867 SHA256 883e8f003cabd9168659b4a6c2549bf22f64b8dc7ca9ff106335cfdff23b890c SHA512 acdaecb5a371489f8d0c2cea4776584eb4a76db0ea5dafc363881f2c5bbccd212d98429c2a559e697f0485329d51f1c01ba2f6c82ec703ad6bca9b8d9097a452 WHIRLPOOL 40c723ad41434aef0d30ee5e0ebcd5476778c70bf82043241522ea389a3d5a66a5cd0480722f019daf3eba97a0f30eade1741af0979be956644cfb3e24ee90bc +DIST deblob-3.9 116031 SHA256 0fb17070d5aaf226fca39f70df68b7d482e4f803e0ef974626440a28c26b5dc3 SHA512 e014add3728dc3fa0b938f3849ccba60e82354a811eefe6761036aa5e5b7bda39960758bb918506ed3cd0758360729144304227ab2cc3f5489813204f0053d3d WHIRLPOOL 4e65c3a6ba5dd5d850567fcd347167245b527b098ffa390bf0e9fb9778ddb06cd48553f697e2fe7cb793714b520dbb5b90b9948a339663a315e299272aca09ef +DIST deblob-4.1 130695 SHA256 2888a5a3b5e8e9ec242e4d702582fa1d739a1274fcd94643a9fb3516a210a8a7 SHA512 b861b9b53f9295e5e993784031ce57cf8cddc418184ec00c28ed92c9e7660406e0ede581a93d0def36e7847b8e068c8ca6c4dfdd65c15cb174d6c5803c16214a WHIRLPOOL b90f55dd8702eb254968ed7689b50859833ed362e9aa1720ade96aa1f6f84e8f90f5d1eee034c8535e8bf767c0b5f8b0bc559219e8d81d4c6ed53bd5cfe5e65e +DIST deblob-4.4 137370 SHA256 7cf11c8594db0d2a10a1b02390c9ff8916f1d2a1fe9d59058ca45485500c5274 SHA512 ea5f2f2cdbc97bdc90c2131f846761dc1630a53986db10d8e9d07d1ddee12a9d878c57790edd3ecc75ed9792d479b7b726c39d688a3926e850608c81b1b78a3a WHIRLPOOL bedd494be2032ce4b8911f25df906055d019af31ea6548b885482f870cd5313e09e7fb544fc8db268b3498cc18c199ae5701023839c972b48dbd8128239eeb75 +DIST deblob-4.5 140464 SHA256 62e8b8f23e705d6643ba7c94a79a25f8dd44e73e6348785f4b4ffb940df4734c SHA512 0f72bbe835d285a51c8ca45f75a6e8bb74d2cbc82f98337d45ab63e7cda1848fa71af933d635eacf2c5af0a86a6854fc73a6512fd314c55db666b8c51dad028d WHIRLPOOL 6d8b7e416afdfe75b43414c8d33394b0341fa7f8ec169e5752d16b712b4d8fd3004c3b8e1aab012eafafb6a0cf1073585acd85aa377ccc0bfd0d78dc666f8f28 +DIST deblob-4.7 141443 SHA256 dba1b0fe35b938186837dba148ab96ca84843e500be23d219126f10412bbb294 SHA512 1aafcc543ccefc12b7e22c68b3428e2e5cc0bf98852100f52e9a7352d542ad62cb4355916f5f71782e7acf472de5ec767618dab020c68786b27ad0bd02264aa8 WHIRLPOOL 35e9416e1ddd3a5f7b10acfa26676c43c8b8f9b98ee8edb3d5ade668ce2ade538e60b9d4468f7f7411fb2eb29f8c2c0c259fc995be07778368e60def2bb02d3f +DIST deblob-4.8 143624 SHA256 c74fe2ae951a3f22788783b42d06ded033bbb7bc0e29455e1b31305051e428d0 SHA512 87ccee6a079e2416e1a05ac2d05453ad635e92846c265741937d72c09170660ecca23be1c964843943f724e40f9be8f5bb56c0187823449fe67d12bd22d7e1b5 WHIRLPOOL 0d48da5f34e94dc8cd99c05bb9d7b779141ad62501e9312b3f667087ef9454f11b1787291b84df89710e4c53d42d4f3da02111ef8b3c843192813bf1806da814 +DIST deblob-check-2.6.32 247608 SHA256 da1aecdf3ab7f1207b90642d303e52262ccc2ed9e49739b729512b88950d17f3 +DIST deblob-check-3.11 589384 SHA256 6931c59ed9f03e2f11038997e430e9c04d51fe2d00dc6f8a134d92e1eba72fdb SHA512 315c50141967adb7952bc83a374f94d9b70a1027d6cd4a4b76d4fa4108ea7159cedb599e65ba531af1c1ef869e203aa1a03225e210cddd996120977d4886a25a WHIRLPOOL c079786436dc55773de9f5fc1bccd265049e58b74618fba534cd5964d881c107ecb705de68e3a7f02d1e285ebad9b2d7e985a4b6603fa3460b503c6db1ff1ad2 +DIST deblob-check-3.15 614485 SHA256 a594a31b5c0a7bc544d2c5158a16d4565de4e45b14f3fc309cfcf91bf46491e2 SHA512 f85e0d9ebf25b37fd9ae765cb2d5767ac475abc72d8b6bb5ed775f03efb216d53cfe1d86bd2945642274cd2c3ddd6ee0ded05019bde7bac71733c96b366cabb7 WHIRLPOOL 8e8e6cdd41313f61a7f9aa4630185f06e785ad951582165d0890596a3e59f8c703a658bf75a36359750eddb9a8b3edb86656860a88dc47b722329aff4cdbb7ef +DIST deblob-check-3.17 638139 SHA256 6ddbf2201595f0ba80166f44163621a4b14f508934c7dcc6c4f39573531aff71 SHA512 f9c60b21af2ee50db85a85329c0a5e3ecc5195ca6d9cc7d6bf499fcdb2eddf1454d99e30b91ce6062f484069ac2096da445643bdea8358c5ff1a79292a5947d6 WHIRLPOOL a0a15be3a48fabc56a782b0f6a92cb88520479d9f837e1de8b4bd2990b751e25f5a130542208f1c18b8f89c5a29edde846adb425834a640b6e188eee38bd98e4 +DIST deblob-check-3.18 654232 SHA256 30f22602b6ddf2cbccc16ef25fdc4d92755f3972e1c671d7cab8b9d6865eb155 SHA512 2cff9abef479a55dd6a0699371be8227ba63b18da1fb153d5df382e0a5e4f1b745b7de256a367a36efa9d12e2aad5622cc288efef009feebf81c108dbef4fe16 WHIRLPOOL e92927ad1565e80ce87e8bda372f8f7eb42bc0f47ad9b19fe5cf737903b2021fd6e3756e8d22b70f3037a46c254fec8b7285b37beb10795ccb4ca99d38876f8c +DIST deblob-check-3.4 448778 SHA256 28ce952c082e765784f9e5b63f5a3a4fb93545e5e788dc94d094c0b3ae8ea3a0 +DIST deblob-check-3.7 526875 SHA256 07a4e835a4375851990180117bed0e0bb012ea1e0dde3431925b699634eb435a SHA512 203dbca51f2fbfb0e43d282a6ccc85f549c5dca4669eeb00851afe8d4564d8939f07b20f37d85b0f1076cb4a43ce2e1fe37f187118033e1ebf617eea368fd6fa WHIRLPOOL 032d42aa57b41e81cdbc6b254fb7423bf73324d1c8266e673018dd63d123150807acd2aaa55e7a1d342a876a326d82ec0053d86c0f799b65dddb525301a10ebd +DIST deblob-check-3.8 539625 SHA256 df1f7ebc09f93ec51c0d3755b5454adcdd271e428573014d13f58638760863a2 SHA512 1c27b2df8aedd93da153d8dade37384e59862dac2eab948802744fb1c5cdc7d141cb2d971bbc448e723f15c14f1646a1cc695f20e64150b26dc26746601d1d17 WHIRLPOOL a1354cfcad7d40e8e811882f2715a71f36bb18c99c6c5277b18aef7f738c41bbf5c7099735b6de4a37b22868dbf96a5405d0b21c16a5709d70a1d0b082a57594 +DIST deblob-check-3.9 557345 SHA256 60d05db20e7b50919ca44487d05e8faa9cca830318bd8d96625f0f75b252eeed SHA512 6b857380d495261c4d356639157f99f3ca3412388fd3b1c72b566c3bb6453c5a22ab7716e3b24e64a9b63dab912b07baccccfd0fca806ac0e0620efeef777b6a WHIRLPOOL 877c2c9b813466f9aa5cfecdc9ab93247bd2cdead457c9e0bd97da49d042d0a52262f9b4f8e9c83e397b57c5bb5a8fe2b61bb5f44d5a178a579cc9fff990941a +DIST deblob-check-4.1 674781 SHA256 54aa33e23a31ead6f982b830be86003c306b88f0d0a9f96c7dc66fe7cd274acb SHA512 51fe9d70d723992aaf70f8bfcfcc12ecfedd7a039402ddae07858fb087693b00cd80d1e0e1a5053e049f2a2b8c58ed23e4598e2dae902c4999999c08bc2eeb33 WHIRLPOOL d2c22280e12863793f8e866b126be53ee10d564373addfe9399b2afe22dd7584513c050f334ea08e6d63dd27a1574f2754456bad9d0a42e8c8d9995eec27aed0 +DIST deblob-check-4.4 694225 SHA256 e142bafdd5a05280d5280fbf109aadab3af9ce71152ab2d27ad41e96766e0c3e SHA512 6554ae567566da4d30e94a37622f88343b8e96ab39a9204fee34de4ddb5dac8c4906b25843b63c2388d03a4441821c25d395b3c39fc875c498a69e677a4f0cb5 WHIRLPOOL 414f60a64a2c14f01eedebc84f5adfabf0562bcf76545a57e757cb6ac914ffc49c90c329eedd1aafb1ee752bfc082fd4f6af173774f4f853ddd637525fbeeb9b +DIST deblob-check-4.5 698696 SHA256 a5e91ae27c122fb635d7619e5bb2fdf67038222e99b874733255d273627ed085 SHA512 2dcbb64a2bb6247f0bb2b768dded6daed019bc4643bbb8dcf17528f17cfeb09ba9a428bb63526eafd38908269b50c588f77a9ce6af95bd3b0c7f20263792f6d4 WHIRLPOOL 5e89ddb75c7d6d5bb7142dc9c878d63c80252541c1bb264b7ee30a2ed868fa69fa57883986b5cf2685b1ab53aa00e52c9cbee4161d361de7a5592de7dc126b40 +DIST deblob-check-4.7 708460 SHA256 7e8088f0d6ec6f841a6848b2bedef6536398e027b232de5388afedb607699613 SHA512 dc882b504f4463fc3e936881e29e25766e6f43eb0d6c286a837bcf42b854d44178ee801eb36be235d4f2abfd2241eac87234e1cdbba2cfaafdf90cf94544b519 WHIRLPOOL 6f6d3309041de8e42fb485d057857ff7b3881c91af0edd991a70577c4cc2f2500b21f5443dd467eaa656c5939da465993ba91279ca31ad84376df7d00745dcd0 +DIST deblob-check-4.8 712610 SHA256 21a28a2dc26991bafdc9143b77d614e3df7a126d9f16ea99e89e6afa1b24ab50 SHA512 caa39ffc45a0e2f0c8be345f0e1733584cc12c098d51fff65aa9d065b7701a500a581b91c2ee1797fc4b1e76c8a74253add1ccd11bd180abeaedf64a100a5bff WHIRLPOOL d0925f88b37c0d32b66010c4d0cc01f749a19f5fb3c582d38b91557981dbf0d144e4cbfd3dd383d0fc3f50a222a39e5c5f56971928a07faac63b8f0f9a785c52 +DIST genpatches-2.6.32-37.base.tar.bz2 921165 SHA256 04d1341acc1abf49300b23b10fc48962303509d8c5af8a5cb2c8397606444a06 +DIST genpatches-2.6.32-37.extras.tar.bz2 24934 SHA256 50b70c76461aa52f7f2ad88175e7f08eb555f7f1dfd274759ec0c2a9748bde5e +DIST genpatches-2.6.39-5.base.tar.bz2 109396 SHA256 35b474a21ea78d1d89ad27cf2bc119ba7a43616bdc1eb6df8672287432c37532 +DIST genpatches-2.6.39-5.extras.tar.bz2 17192 SHA256 337069a8c019ef301830088343928560634e463857c6463332ecf6a5585f13e7 +DIST genpatches-3.11-10.base.tar.xz 164896 SHA256 02cea38d624fb6c830af164fe709e22c92cdfbfac2c752af4ff145681f5ae0ac SHA512 c80625740d5670ee511b90b7a2b29881b7b5f14b5276e0be7d7e307404788355cde252c46440c2c60fe117c1bb43bc24ba3323beaaf3aa415d44aabd194b52ef WHIRLPOOL 67f3825dd6a7c1b35d3a198c595646acb4f150904599ee8aab9999a92bebcb18ddd02f14fd01eac423518a94bdfc1fb61c97d1cc616ab96d326f622fe99a2bb2 +DIST genpatches-3.11-4.base.tar.xz 11644 SHA256 5f731b81d81686837d65baadabb9c415c78a0d0356cc78d9931d4cec816fd5b6 SHA512 11f92ce478277c7e3beb9a6980d8eb2778847d81c7bc992c223a2fcf932b392b9716446c7947b3842565a813b5f3cfcf16125067f7808518f746f87a553f99e8 WHIRLPOOL 1d2742e512a54d45e22bb1f0761fb7aecd8de14799d6bb5115c2c3d748f70ab7286844f89304eb0b369d07543f0964ba262dc144ed57f3a108418718093eb2a7 +DIST genpatches-3.15-12.base.tar.xz 214792 SHA256 28f0f807f768d5e8819df4be70c74e8ec01ff8c1a4917a0908cf75b8e51825fd SHA512 0f3e9fab4531bc36820c4ee681e9da7ad1bf79859c822ee40f0285120515d4b18a3558f2ae9d8fd22e003492d9f8f6a38fcd8a5ea00984350340f5054b8e7ebe WHIRLPOOL dd5ec234e088d2a9e0fe6c74cc84275e2f532bb4783bd5100c79d15364c9d082029db73e3241aac5f82a106bd5fa88c637ff8eb2bedf33c44243c7bf590af1c0 +DIST genpatches-3.17-10.base.tar.xz 267104 SHA256 13aac5abe12473ee7da706c290683d9c1422d240aad5f12ac72eadc9d58ef3a7 SHA512 62218374c929f56085b1481f6726fd3b196e4f0fcf2a7ddcd48cffb2d919850cfe05514d786c31c30dbf9dce2ec590a55b09a4dc731f411dd8498d384b5b974b WHIRLPOOL 006fa4dd94aa155403c6f4e85b2cef5034fbd929bdf4c52ab64a712de93ab25a0ac0ad08bde51b5a21de834f37f016a0db0f1c598af455ed5db1364ff23d1498 +DIST genpatches-3.17-8.base.tar.xz 259152 SHA256 e6a1c045b3bdee84c658ece596452c0dd1ed773dcacc5410712c3cfdbe89318a SHA512 7e9fde95227496c198c83b0c981d6436944c513986ef0db2d7bc5995a8f136a2cc7cde28c1eee3bd632470b458b0708a78ce551927729cccc01182298de140b4 WHIRLPOOL 980217e00e6bae8218d5fe87542ff391e72b3103f320e4b62d116c6bf23b7f774572fcb16e64d3713a95597505b5025cc52f2fcfae76dc13caaf2a4ba4928c43 +DIST genpatches-3.18-10.base.tar.xz 213444 SHA256 26876e79789ba2605fc8d6bbd2950fb53f7da8db726febb5636be453a0cbd36a SHA512 cb24ba1798a43fe71747b8332034ebe69c2b416b301913c2a12b02c2d826217453779a4a77fce8e943152f70d6cea34645effb903fa1301e02d6923581f7e3b5 WHIRLPOOL 6ee5eed82fe63d9d3fcd246d7eae7eb58b2d1a2ed8826c2d1effdb5ac54ef4314685eab28e6ed0f74c4cf3d57c1046c59cb14f702102288a45e7c5184ed7a2cd +DIST genpatches-3.4-2.base.tar.bz2 53731 SHA256 165de5663fc5f600777744d9614cdfad9a4f96c07e56660f5f956375df2b1053 +DIST genpatches-3.4-2.extras.tar.bz2 17502 SHA256 2b537431a408445cd1091562755234e840016f26ad63ab3a73812ac7f7e1c8d9 +DIST genpatches-3.7-7.base.tar.xz 151672 SHA256 889abdf29c51aee23272f013180ca879ade929302d5f950cf48e3b0642d33ded SHA512 14667f32fd2a00ece31ff2bc3e30a24153634f9603717a8d1aef8a7342c411fca8c6b4e8c388bbf90d686f3d33aa2da874f0e581582ac6c9547833eb8eea6fdb WHIRLPOOL 28dd5ae7549f95a219fdfa341598b6535d8d0944aea1592f91b5e84a483f378f437873139973f6bd9a218ef9442e1f3112eb339f93a9ea82d21d3eb5bc4ff7b6 +DIST genpatches-3.8-13.base.tar.xz 245752 SHA256 f8c3caaf401397b4d61bdbd36c58600d9a0cc2d08287a550119dc133643d1add SHA512 4eb813a962a14c19b6e7b37a93a9ad9479519cd1e8b71c22d455c4431f84dee6525679ac74ec4362496f190dbdb9561fa80a52c870b62d96a363ae8db617b3d9 WHIRLPOOL d9a2c45446d24e330fddc585ecc2b472f3e9f463ad9a415efb0d3af67e8358002044339bc973dc8a07ed2b73f13a7b821eedd742114b753c4dcc26d58925d359 +DIST genpatches-3.8-3.base.tar.xz 61060 SHA256 71f70e6dd1fc07a274e4a558e62a683b9b8894093a93d5134d7a7338f72d4c1f SHA512 f29859c547c043956a21c4a954a3f8e396631d73afed9bd1816aba09dc830b432413a27c5030743ad54e909f7831f569d211b898e8442d17a8ffd3c1a11936c1 WHIRLPOOL 9bc224b7a05d0cabacd18d9104cde7900908e9282ef2afe95e429d65c6cc60b413af72b530784a8178433f6e931105b94bf83ab17c05492f1164e7ae71f65aff +DIST genpatches-3.8-7.base.tar.xz 141664 SHA256 5c6e0eaa2f01311c926780b59553deb36ce0eaf1832a8725045f1c9681bab077 SHA512 05e93edf8220f7159dbb807bc93c12c4c778cac660d6fb54ad41e5bcf7474d2daf7ac63f7d76bb81740a717188b8551018d7fb2227f8d91e66038a9d062c4798 WHIRLPOOL ce71cebd7b56abba67843feb389ee172b3d154d863c0b8590de30ed55b56d9d848310c7b2e2ff3eaef08d65e0903429476a91049a5873d7ceee44fbe89503474 +DIST genpatches-3.9-14.base.tar.xz 278412 SHA256 c5cc0e1e455e4ce751f11c33b59ce7a63540613ebe35371cda07bd8c4d7b2a4e SHA512 d09ecb9ec1418aa1c94ab70da477de19aa5f67c8d991856c8d29dd842182a86b93a274bca71bdeb95b9197674b22e6a6840b43ec103309124f855307dee255d5 WHIRLPOOL 25b86aaa6b58279d7e1e1b08d607fe3b4d993c1c7498815dda2fa2021f5e65a0264b4b612004a6c2d1bd534db6c843b7ca08871ee24fbe278e41d6c70fdb9273 +DIST genpatches-4.1-11.base.tar.xz 233284 SHA256 4189cfd2c7d1a1d7f28c8a596ad36741ce087c7c4cfbe0d5d20a0ee889328d18 SHA512 e5944edf832070d6072ab8efc242165afcfb689874687196c96389c6176ca9772e72e82836aba40ad05840536acae6efd6e72890efd692d903018d47489a90f8 WHIRLPOOL 13cb400b330443025f77dee6c710ca9886991a7032fa3ff925d53ed4fc03d07ece5647dca65de1a149073362db1d7a0b374a21d980eafcae09a4b01584c64cb6 +DIST genpatches-4.4-9.base.tar.xz 304360 SHA256 e9ba25000126256be414a273b154accc51ef523d236c35e2214ee75e243aa71f SHA512 ef239c362defeafc92eae84ede7a07820ddf0c01002f52a58d39d7b0dcdfd83af2d5fa4d2ee3d2c57e4c89a30d4fbf05dc5519886b8f55bf148ce4197b85d465 WHIRLPOOL 88963d0eac645d453ccf1cfe0e30777090240f18f20ccf735b7551a57365c2505849b13c8cd4092542f6baf6d251eb0e9c44fbba118d9677f9cd334e0ef10861 +DIST genpatches-4.5-8.base.tar.xz 259624 SHA256 fc9526daab928fc9c33d457f496d5c09078b02394855e2d561e8aec582f87526 SHA512 75088d15288cd601605a181370f3f9155b2b039bd97c5f755b8992dde48e4c7fb3572198f6223a417539be7e698dae90b9a24186dc1d16de45b2fcc45bbeb0c7 WHIRLPOOL 1f0ec6ed7c4b6dae9cde51e51b97ec2f14fdbada591d6c2fcc313736c9c7d46336aa4a457ed7b0951c6767df830162072c610d8e3c3bda5989a5dce98ab57d12 +DIST genpatches-4.7-1.base.tar.xz 3000 SHA256 55ec2087f5bcd466060a057c1bb2ce5b6f4559023fb09b31f2a7ca69b2080b35 SHA512 28bb8961aa32f7dbabc9a25088b66b351b288c39b8d0148bba0158884cddc603080db1049f807a20beb6cdab75442b09a11624cdf1f22a25dc9b025028d2a875 WHIRLPOOL 0bb9c1f0f7472a1c5c22c1610a2c6a64c9b0f997f1a5bab0f1a1ef7d51025ae5b7ba91543f6d679dd261ac3c8ba178f8e4e7fc514ca69d1696325bf284843177 +DIST genpatches-4.7-8.base.tar.xz 233032 SHA256 481e35ef24b98241adfd8277b2a9d682b4845721b02063b4b3eacc996c2e00c8 SHA512 0c95980432f2598d6cd94a96ad228a88650ac240e7dc20adea87994d683af02a55dd2e09363d7b2732e098738ddc9151be5c03418b3308cdeb07b00c5a8ec48c WHIRLPOOL b632e17439180e6a498602a1ec0018b7b720ca53dbcf93a3157f667fc4c28816c84325868b0854b927470926e3008cb20f867ff6d4c8c5a93f16c110bf0dee39 +DIST genpatches-4.8-13.base.tar.xz 248140 SHA256 4a2d23405042e57eedcd8884e1dc6f8af693a01822b3b4c25657be5768567fd3 SHA512 d0a79b11cb57c428166b94e734edd09de64803decdeb4b3e55b87d3c73e3c42fccf00753e98fd0a0a21b522dcda4ef69d428bca4073849e334159e6a1732bfd5 WHIRLPOOL d44e1a10b1c8e2b303d10a7d5fd2679fb2a6e2cefc0821ef1082111bdf54061789ff36765438079584c8bbf265fbb0f0da65cc4b48b83eb6e9c2af2ab8472d56 +DIST genpatches-4.8-18.base.tar.xz 304664 SHA256 89b161b2e98ac81afd9c865c4fa87cf203164b3c977c48cfc7fc5337b00b2061 SHA512 5cfc10e59a5adc7a14dce3ae6dc2ab8006d8d2bba7201a8c531c05c5f77e9fa3debbb796f7cdf2047028db43316e2e25f4817e9358524b925488b563514f127e WHIRLPOOL b0786badbade32dd777d929fc64791c672eb56a4ae5a81fb862c3308c294cb806d25f92f1e0228be6a5e29e5e049b25b6b1c470b3b1617de1d57567a9f5b14de +DIST hardened-patches-2.6.32-52.extras.tar.bz2 439152 SHA256 5f638986ab8118d8c331115fcd3eeba7b17e6e37e9c4895805e58747e8206a77 +DIST hardened-patches-2.6.39-9.extras.tar.bz2 520242 SHA256 352e0bb2d4f4a20e86d8e6d518dbae0f0d8ee072176a9b8181f8f09fcfaac77e +DIST hardened-patches-3.11.2-1.extras.tar.bz2 805489 SHA256 ad499bf570c9e078ee13a9dedfd95f0ba89acf8734833155974063e7f39f7df0 SHA512 53bf9b5218251914bd22856cfba4b40495b1622773b33e6b76d9c3e65bc6598bd57db21abc99f246161dd0ba92e15b5603657bdb3e4dac8fb590743acd8240ed WHIRLPOOL 988041bd4aa0f1608a97755fa5996c7f99323d0af26810a8d67c28e986d7b22a1634fd1aefad8f323b82ee66ea9cbcf2b48a72eafe80b728d1d39eda576f9c0d +DIST hardened-patches-3.11.7-2.extras.tar.bz2 767238 SHA256 908678fe53c768ef564b4c47e00f0e22a7c7c16cc1ea0d931662d19fe6ca7cd8 SHA512 703f8c57931eeced09d3cf77525252b69cb369d8da40c16b8d4521a1b9657ce1075cc4138c5d1678e051575928fab292f59cf2b9638dc538f7d957e4a64dd418 WHIRLPOOL 315b1520631b06ba6ce6683fdbf6a7a3689f278844e2df37879069f2c1d0680c111a6783a4122d96a2d7d4824cdba4e9cf68dce44a1ea5adb1765b55fc67dd7a +DIST hardened-patches-3.15.10-2.extras.tar.bz2 816776 SHA256 649b7533d1275a21d189b29ce8cd9dc17338b759dae66366efbf1bae7affdf31 SHA512 79278eacbec8b1454387a229f599fa460db048e838dd6c43a1ee890fc2e52208c6266be9d4c9a6ca2170d6010ffc14b79e59d1b5aa5a01ec2eefba6f5554539f WHIRLPOOL 9eeefaafbaea703573df45ed74146f084af6f897d6b11934163ab10d4e68489f5fa7e3fe8bc6cf6e7caf6d5fb252d8baaf0325cfd7157da6f6cb1fd528f35de2 +DIST hardened-patches-3.17.6-1.extras.tar.bz2 834602 SHA256 b3834f009481e89d54c94513700de3d18d49e077aaa8375fec874fce12195ad2 SHA512 f2001700563d30a4e36b604050bb6250b6d37432c8965aeebbadf4f3fde00a29addc25d955e7ae7109104f96852bffc6cd069523c2459bf8f320e98d8b3b4ef6 WHIRLPOOL 4d9b9e034719c4eb65a510476a85339a71986c3ff4436fc18237a306cd9d46c76038f2775a3d79d8f3698651b64fbe74338ab307344bd227d3b8190254bfea29 +DIST hardened-patches-3.17.7-2.extras.tar.bz2 839125 SHA256 b0f640ac5520ec821d53708dde0fa4da25f9dfc3f6ed1604ca0d0809b79eed34 SHA512 b85e8f3bf08ec44696e3cc9367d61de0013e01aa75b5ad10a81c0c04f8d0d4a8741c9b918401d013507b55dca378b3e2846faadadaf0e9971aac35f910e21afa WHIRLPOOL 28ffcfaa144fde827d1de417e018fc8607e72b1776e4279175170f37731c8b9322e107e433f0d6d156986dd87cca785538dff111d0613476faf804315a9d6250 +DIST hardened-patches-3.18.9-1.extras.tar.bz2 896609 SHA256 8b587954838d063a97491cb0bd56bb82db1898f5a10b5a142a0b9175cec67610 SHA512 d24f4080ba0437939c296614659477aa3d535cb3f3c950cc2a695c3925c8a04cab543b1277e48ba05a6e58cd31762473ad5d2b54e9c5aaf5b1a1b46965a7166e WHIRLPOOL 73abf5b3c1c6b868b931357d11707b41a6d4bee8fd5e2d8306ee3830a0edd24f371159b8f8efbd2b1afbc21efb045e96b2994219d43ee7ab484116e86e136196 +DIST hardened-patches-3.4.2-1.extras.tar.bz2 546639 SHA256 a513ad66af2e1feccc40c89b492336525db3c4c9e9227b6d957a05ee9fcabfd3 +DIST hardened-patches-3.7.5-2.extras.tar.bz2 603088 SHA256 b09178d0026db719d97b414ea08887299944deaac28c6312bb7155108d290273 SHA512 dad9678e350af66fcbb8b2ad71d05c433d2ee0ecbd11f2c5458bdde67005a14c3a9bf7a3428d1822403ed3eed2e4f55bb0ae24047d0e9c034353abb5e1af107d WHIRLPOOL 71b49546df4bf6217633fee5d578e607587a4983b43b3a47a99530d61ff38bac92224246ae8c4ef4b73f58118c0abc240716399b001a4b14a5903a91cc30352f +DIST hardened-patches-3.8.11-1.extras.tar.bz2 720244 SHA256 c2c15e2d71bfbb4d9ecff148cb6715075bb0848d63e19351dc8d5c7000a85581 SHA512 96ca8a636ab3250597293cf00f027324eaaa22535529926f30852bde1cfe1dd459dd81bf91bb1b189ef5fde45c2cbc0d82a61f2b14ec63182477fba2d12e506b WHIRLPOOL 9d2755943c12cf69ef0a76895dec2aaeaad9412d37558184bab775be7524d54062665a00fbd32f18b699a6a51df1a3fa06848e5250dbb01a8d6dba0efebd9a3c +DIST hardened-patches-3.8.3-1.extras.tar.bz2 715746 SHA256 f0325a52a64cb8eb20a36e9032ee730e12948078ef103c2755c48b1220f6f35e SHA512 1993271bac3194ba730b8acafa9cfda00814a80c22741e25a15d2ac130ff09b1a09369b2dcf70c4206fc8991ede203bf24effc67c5ffeedcdf2f3caf9737df1f WHIRLPOOL dececcd071fe5dbf65409ee40206f351e2bacde12a76040fb8fd5e775fe71c84c17573d4300ee546e761e1eb81924f93cddab0c6d7bc3ef2c378d7e81037f577 +DIST hardened-patches-3.8.6-1.extras.tar.bz2 791520 SHA256 e2e15efce6120297561fa3e4f96dc36a7df31b41c24776c5ea4a55457b2e0bb9 SHA512 4476513fa111f66f59c4aeddb9c3a9acd2e965a65fc73f233850cd326a539c901e7590851c43888bdf896595d6d1decc7bb4764f9a6b405413db27bbde7f2d4f WHIRLPOOL 2cd654193ec65e1f754927865a6105e97415d9cf3cd13069d6bebb261ecc8e522712268fbcbe8f495ebef2fe23f890bc7e29332ef427d11c120a5cdd5edc7293 +DIST hardened-patches-3.9.9-1.extras.tar.bz2 715576 SHA256 4bcecff04fbf8be900cb87b9493683c15a5f8b35ebb95b5483ae942e56a7d3db SHA512 7437b377ce27464c68819157284aa53d34e929de18d693913d59bf0a9081795b1a351be402946063a6ac384fa588c8e8eeab7e7956b98598e486ae7bda64ecb9 WHIRLPOOL b36c8723e08b7b68ce88e700c848a75d7fa3eb4707392a70939f6a19399c6f6757391c872739d923adf2e01a2278c7daa2508439540ccb4007639aefcbb04494 +DIST hardened-patches-4.1.7-2.extras.tar.bz2 1419438 SHA256 c8c0fc29c39eafbcea107b8237087fd0e185297e2df9ffeaafc6b3a4736b7a45 SHA512 dac324e265174777d8b9c2369f57e52833b4228b3291e41952a9791ce41b9abf378e1d9a0521566c3a0e42de15a16afa5fe379985b7fee78b1b2b3b815d7cdd4 WHIRLPOOL 7638001f1b95e4af1d051b13648f486aa0eca524157e1a46dd2023fbd86313e0a5e8043653d7388b7286d42cc6e7c0f07cde2de3d5aee6cc058d12538a0980c1 +DIST hardened-patches-4.4.8-2.extras.tar.bz2 1743408 SHA256 5cde9a96f6a47ebe3c8abeb5d5add60480490fd365d4c31da2d7ac1973a4c258 SHA512 cfb52ee6aee76b125a5a833cd9facc92ea1dff17129a488b66e976e94699cea8109e6f5df90835e818af1ea6e59e12cecc95159601d544f5b008560a1190b530 WHIRLPOOL 56facf79d5556aaac3bf08fa3b4be21b7fef561c8d3fd41943ce51c4d15b71e114be2e33914f5bf7e3d981abcebeffb95fb99aedde8d72231edcef72123ea9fa +DIST hardened-patches-4.5.6-1.extras.tar.bz2 1862944 SHA256 2f3cab5b41d843ba069d7fcd5f22edb8a38e68cf4d388823fae91ed7af7ff78b SHA512 3fc18551fbc4647a7e050659c4222cca68805605ed3fee863214e9a0c71c54cb9fc44ecf8aafedbca5238c72d3349a30028889117aca313d3ec27d00e2b82909 WHIRLPOOL 91e0292c5905ed018461b4150b054ed29519c72d9838facaf4d437fdca1fcb9642147fa9243021fab51fea63b1ab4ec1eeacd564fa439d33b7aa1019c7d5691b +DIST hardened-patches-4.7.1-1.extras.tar.bz2 1901034 SHA256 7e23924cea7f9fda72604cfe4e0c36e1fa3f81906775375be847e944dfc2450a SHA512 bf44b51b4b4a63d7db5117e54c3a1db14285d5006d1ce277df7cc0ee726b02f176646d31f39c7b93bbe8e4608a780cc13a164a86130cfff4301e02f60861f6ea WHIRLPOOL 3364acd44c1cf2d6733cb7c55d1a89ec83f631d8bb583a6933c5a6f4d4bd2ca0c42252de7f7290be898e6fbeafcc1dcba1eb29b28b0ffb7ca032e8dabcb7d0f4 +DIST hardened-patches-4.7.10-1.extras.tar.bz2 1941100 SHA256 8a7787da2d440308b28d16738ba843138c01d14e3f09cef33f8c32d46886411b SHA512 851d8875452fceaa696a7bb6847bda82c42ca40c61f2d1da16545190eeba65eb26c15f9fd428d1de83e9ea7c019133808ab3622e770147e06ab598629b8dfb6b WHIRLPOOL fa4a7bdb8bf8bf232d32d466b0ce8492a82cda7908edc96d6f7937686e3a766dabbc75c7fd33de82be080e3a277aaf4e63e9c754c97b9164301630aa13810755 +DIST hardened-patches-4.8.13-1.extras.tar.bz2 1917752 SHA256 98cec4effe8c5494ab88d24d36af23f3ab244a0872030903ef9e21b6bbf2cea1 SHA512 9d5fb8c2faf4f338662815d5bd129966d2e28e4b77502e26c7af097a27e168346c86e67755a3392b5b6a8ccdfa6bd112cccc89cf3d4239361815dd723c220fda WHIRLPOOL f12bd2928a8fe363842310ed110ac9db4041730bc56da1d224ba0ae457bd8ca2763909e4edb27823bf9d2b14c7d6045c53db65cf65eb970fdbe58665f07934e9 +DIST hardened-patches-4.8.17-3.extras.tar.bz2 1932803 SHA256 7ff535912635b5ae83d793dcadb30f2ebab85abffb05d73f73af3a0262f5b170 SHA512 f9521c5f0df2ab5989f5fd5929b3f69620d519d92583601f52bf4c2871330008c9e2f19cee3538a2c4945bc22d0ddb8478a9fb332de64dbd611904749d046e82 WHIRLPOOL 1f0ff531b479db743eb0d806d35b770c405868082a249c7d41579649dd924c25d41bd1781bc0fe827a6d06447e0fe88dc630992f2be977f50138f741e707b542 +DIST linux-2.6.32.tar.xz 52620720 SHA256 723106c298c5ba8733bb51ecc106b05e332a18490edc5f61cc6e57dbb36dcc46 SHA512 f8570daf2806eb191fce54cc7358577b0571bb295a75bd86db630d6136b328ae48e4732554b2d1886c64b0a0018bf0b9105dcface978a5005d1b77789aa40312 WHIRLPOOL bfcb4b186f7c4b60e69674a85d20a8e92b5efd05941b550401ef446cc6b20c9ed197f920d1cd9250c0e518c05308b9225f7ababe41cdfc83570412117b2ee555 +DIST linux-2.6.39.tar.xz 63250520 SHA256 d3a579104e0d3154727793f4fa79b6b882ddafeded73cc8c0eb8c2536ad77373 SHA512 2a61ac5a001f1939584fb65717fec557fa5fcc4bef6e295e07e64ae7f05e2a1540161c9baee8c0d42e533f59839cca56cf92c310929db43983a1843295515d90 WHIRLPOOL cd74d876108b767f2c8182381b3f7af5603a6512af5131421fcac22b4e59268b2c1a81aa9527e673430f3fed2ba61a17fcdef08cd6f516824529506936025469 +DIST linux-3.11.tar.xz 75082460 SHA256 803ec8f0ad4b2ddedcb0332a590cd2b5e10dfc57c3b1c95bc9c46af81d51d7f9 SHA512 b3680d3a45a7308383cf8634a7f1908e94f6e1c6d1cb587332a9418a95fb93bd3c73ab70c6976c7330508d7c8c6b0f43c2a9a2efde5fe1f76e9bfffb1de5686c WHIRLPOOL 96c9c27ffe155fe2c1760b53d87ef981943d58ab2dcf1ed6bd2c1e762e18bceec81d85d49c523947ec6fe52e41f25c4a86310347705c8d4b80a1748cec5b90d3 +DIST linux-3.15.tar.xz 79676484 SHA256 c3927e87be4040fa8aca1b58663dc0776aaf00485604ff88a623be2f3fb07794 SHA512 d5dc477cad4584e56e2e2ef9e0950c2b22e76e5cf5090a896ba099cb7c5e5db1853a4aeb96b199189653dc66d461557e95198e37516a619f7ddc01ba6b308e02 WHIRLPOOL 7f3dfde1a23aab75b7f40770ae2ca77c1b28f845e4abe6296b2aec9b56fe94f7afa76b00eb6cc7475305c31b726ebeb4643107dd48c12ac04c933cf1856b8e77 +DIST linux-3.17.tar.xz 80333152 SHA256 f5153ec93c5fcd41b247950e6a9bcbc63fa87beafd112c133a622439a0f76251 SHA512 29c99764e371f7005dbbe2bbe4458b4deeae5297da7e5b719b0f29f6f018629338b608369162ae6bd76bec4d8719cf491257ac57fdd5277cce8941b7f90246a0 WHIRLPOOL 4b0ba9d997f28a317991287160c91c4e4f2245d7e08c7cb9691f67c3838bddb3ab8048b01e841e6659eceb94a269b6bde32f4ca521d999593d0e9473c8559b46 +DIST linux-3.18.tar.xz 80934708 SHA256 becc413cc9e6d7f5cc52a3ce66d65c3725bc1d1cc1001f4ce6c32b69eb188cbd SHA512 2f0b72466e9bc538a675738aa416573d41bbbd7e3e2ffd5b5b127afde609ebc278cec5a3c37e73479607e957c13f1b4ed9782a3795e0dcc2cf8e550228594009 WHIRLPOOL 81634af631b7d30ccd1f4798f96f44d9aa0ba6609b73f2747eb6aebaf7a99487fb2dbd45767605186182533cb222bfd9236e8dd5e11a04fdb67c211e4e0a91d6 +DIST linux-3.4.tar.xz 66748028 SHA256 ff3dee6a855873d12487a6f4070ec2f7996d073019171361c955639664baa0c6 SHA512 1c49b336750c9c2b49d21e54126f22a800367296be0d57e6df28b1532cbeba7fc3bdf4cfe27d9810576e76c2db2e9c2493f0804451c915137cb78d7aa61f236c WHIRLPOOL a36e62fe197ba7c08d498a79034da58091a94348f69542241067c9ebef683f86371b2c0a3b3fb6c4611e2fb885d9b74eee5c1f46a493c72dfb76c5665f0b8a6a +DIST linux-3.7.tar.xz 69736096 SHA256 60a64d0bf76eeec3355f115c577935757b84629c8c129ce5b8bb02075f6b9458 SHA512 91d65d658e9b6d0c0f03533e631ef1cc46c79ec5c1425a0914e1fe97ac4069230ee2f7d947df5cf76dd8865eb78f149d46140a3ec6509de21094ef70f27f6f61 WHIRLPOOL db9d25f5a479fef45808e85fdac9e72e5508cb94358e012f522ad5dce4b4777811ce57fd33649704400f54592c4dc3306b0099eb85fca60dd9544b8fd918ca1d +DIST linux-3.8.tar.xz 70989468 SHA256 e070d1bdfbded5676a4f374721c63565f1c969466c5a3e214004a136b583184b SHA512 10a7983391af907d8aec72bdb096d1cabd4911985715e9ea13d35ff09095c035db15d4ab08b92eda7c10026cc27348cb9728c212335f7fcdcda7c610856ec30f WHIRLPOOL 0c633854ad9c06df1b1d832aea9bbef76144ba88c8fccf6a3f8729101dc36838bcda6ccd444451cab19177608e7f7866f4f79cff1a8ef2bd0c893933d7f1f44c +DIST linux-3.9.tar.xz 72104164 SHA256 60bc3e64ee5dc778de2cd7cd7640abf518a4c9d4f31b8ed624e16fad53f54541 SHA512 77fa521f42380409f8ab400c26f7b00e225cb075ef40834bb263325cfdcc3e65aef8511ec2fc2b50bbf4f50e226fb5ab07d7a479aaf09162adbbf318325d0790 WHIRLPOOL 668a8de30c7c3ccf6558cf0f29570f15e37ca7d599d1453afc3cab113d1b05fbd5b32646dd9ed798ceb61405a8754345da0740a53f467b825445028cda4bc698 +DIST linux-4.1.tar.xz 83017828 SHA256 caf51f085aac1e1cea4d00dbbf3093ead07b551fc07b31b2a989c05f8ea72d9f SHA512 168ef84a4e67619f9f53f3574e438542a5747f9b43443363cb83597fcdac9f40d201625c66e375a23226745eaada9176eb006ca023613cec089349e91751f3c0 WHIRLPOOL 85fcfdb67ea7f865272a85d3b4c3ec1f5a1267f4664bf073c562bb3875e9d96ad68486259d8866a9aced98c95de16840ec531d89745aec75b7315a64ebe650b8 +DIST linux-4.4.tar.xz 87295988 SHA256 401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2 SHA512 13c8459933a8b80608e226a1398e3d1848352ace84bcfb7e6a4a33cb230bbe1ab719d4b58e067283df91ce5311be6d2d595fc8c19e2ae6ecc652499415614b3e WHIRLPOOL 02abc203d867404b9934aaa4c1e5b5dcbb0b0021e91a03f3a7e7fd224eed106821d8b4949f32a590536db150e5a88c16fcde88538777a26d0c17900f0257b1bc +DIST linux-4.5.tar.xz 88375040 SHA256 a40defb401e01b37d6b8c8ad5c1bbab665be6ac6310cdeed59950c96b31a519c SHA512 cb0d5f30baff37dfea40fbc1119a1482182f95858c883e019ee3f81055c8efbdb9dba7dfc02ebcc4216db38f03ece58688e69efc0fce1dade359af30bd5426de WHIRLPOOL 8faa0b02c5733fc45dbe61f82a7022e9246b9b1665f27541d4afa5d14c310b9dce7a8532dfac8273898edf8c6923654ee2fbcf2cec1ec2a220f4c9f926f2b333 +DIST linux-4.7.tar.xz 90412100 SHA256 5190c3d1209aeda04168145bf50569dc0984f80467159b1dc50ad731e3285f10 SHA512 e8c02583e17e4fc4214fef694825fcb78c898266f1624deb1cdf56ab5c5fdfa669c5221122a7cf0d502ed6f921ff3797634acd9d294d29e98e3faa8a21920185 WHIRLPOOL e968c89ce714c8d918db6074dabac4b0200c57ff111260313cf5798eeefb8b5b10c1509b64e2ee611a78e81075c588a473b67f9802609b2fef9ebb87ae514d98 +DIST linux-4.8.tar.xz 91966856 SHA256 3e9150065f193d3d94bcf46a1fe9f033c7ef7122ab71d75a7fb5a2f0c9a7e11a SHA512 a48a065f21e1c7c4de4cf8ca47b8b8d9a70f86b64e7cfa6e01be490f78895745b9c8790734b1d22182cf1f930fb87eaaa84e62ec8cc1f64ac4be9b949e7c0358 WHIRLPOOL 3888c8c07db0c069f827245d4d7306087f78f7d03e8240eb1fcd13622cd5dbe1c17cd8ed7dc11513f77f3efd5dbd84e2b48e82bdb9b9bfd2242fd62ae32812d5 +EBUILD myhardened-sources-2.6.32-r7.ebuild 1783 SHA256 0e3705fff44e88d9bc11fb1d81965dc5f6000318c8dd19787a0b2d4998995da7 SHA512 e1bdc65308b33dc9bd30e4cf99c19c0a6b9c550ef0f020dbbd0117be49de4ceb3d52e96135fe2711f3f44ffdf127adfada6eea78e970c7f70c2364ca04f44029 WHIRLPOOL 2cc5084a64130bb81689c4a0d6bbbfe1c70f964fa05e6053021b1ab7344afff9eb78c7b72329581318a8798f98f625f2f1da8860091d3b2b9101ce42e62d660e +EBUILD myhardened-sources-2.6.39-r1.ebuild 1764 SHA256 a7b72af1f31f7fed0730a446f81787a7511580585a227e359a45a709472eef1d SHA512 4e8d96fbedc56251c2a75209983cccf9676d4201b4f0e72116b0289673e9ac63dc155e83d68053a8a4fee341a1dea460c59bd915826605abca594f8323b4540c WHIRLPOOL 9fb4c74e59ee29525d735520a109e96cdc5286285bedcbc732346864e9853ffca29b0ad6ba629b821cbd8b54c8e182a8386e5d44ed367acaf9d49ce5deb2b51a +EBUILD myhardened-sources-3.11.2.ebuild 1378 SHA256 d1ee247835d3ca7135c875e36a3adaec90a15804e77921ed019eb9078bdd3ecb SHA512 92834825c5cef6c7859f687399668af841bd0822a90f5537e289ce097c8dd1ac8abf12e64317134c36cc85c43b6f4fcf7377c391228c376729067b88c4e7e653 WHIRLPOOL 765fb1eeca9afc43989fb5a56727a5738c4917afe7e40139454e68f253c77dc08a12c6037ffdd5f0c540d6a75a9c0f2367302caed95dfaa93f3fa4f6a3813ffe +EBUILD myhardened-sources-3.11.7.ebuild 1379 SHA256 29f92335fafe30a825180aea2816a28cd586160b52d114dd76c5fddeb607206c SHA512 7fb417ca39d3ca17cffabb8af628850b4091fafbe5c1af621df0d7b4a252e3adfc9b5b08efd568db066e31a034e6371ccc0207e12aaacac01a11f6f19651cf38 WHIRLPOOL a08c882a82081f28f0ca9d3c8b73e979a0c5d20fad47076132fde2cb28402749bbb39861fdb59cbe7e5236e7e1e12da3d1bc1a880a712d38d3f9bc8d92f4dbbb +EBUILD myhardened-sources-3.15.10.ebuild 1380 SHA256 88bc9eac1a0924f1f4b19bd5ff4b6b7b25a2920e75146e9b98c40cd2fc5ed863 SHA512 9821a0a1f886e7abc8bea0edf7fa591334ed893b1d2efe26036b6eaae9e984ad534b3f887af46b3eee38b6f35ad5d1550d73ba1e26b695cf7a162399986edca5 WHIRLPOOL 527e38247efa70ef8516eb73e379c30b0bf8baf6dfbd5f791256da73c503ef6562b58aef611975d77cc5c3d1306eb099f8dbc8fcb8e2617759c62b8554d6ae91 +EBUILD myhardened-sources-3.17.6.ebuild 1380 SHA256 828f017b6f97fac6fb92fb0604fafb47b144545528d490f7230493a759aeb511 SHA512 11aff11a989f12907d0bc875f8d8cbb7ae064a28f3cbeaeb1ba2f2abd51c9b9d628ba4e63b11875e73981a2c98fba00e7876e061a158eb0b0e036bc6f232cd2b WHIRLPOOL cb6dcac0218f3d0c15e9dc289becb22b3b4fe6e5659697c3d719e4b7ee5ab4c3a9678792ccc6c56416a49559ca9b2a7423e8dc08bced73268221286fc128eb1d +EBUILD myhardened-sources-3.17.7.ebuild 1379 SHA256 d47bf574ff1855049e426b7878ed66cf124e0cb3bf33f31659756266e45edcec SHA512 e640be347d51cc6107136b4df590aff8bd8c10b150f905ec6e2fd05b333ae46a98a0a5b9a811b9937dbe79fbabbaebade4e7ff75fc4c25e095f7933b0e38a7a9 WHIRLPOOL 7bfd25a0c2f6d770c5a4c70050c49aa491a6f4ac0fd65049e5f315f7fdda52b323a63c3c8a10ca11c717e7286cf24c3e26dbd5b6e0a02a20171fd32b843648df +EBUILD myhardened-sources-3.18.9.ebuild 1432 SHA256 fa679815b5686519c11b2ba98791d2761210a24f411cc11289636ccd957434ca SHA512 db2bdbfda46d8d961ae249139f2ac2fafdfb9823297e5076921d7d8e002d23540e092434cd4b0ad19c1eb6c3b08fb7343633fbdb22eb3453abbf43533cefbcc8 WHIRLPOOL 1f50b3f96c94efd98613e78cce5f902bc145bcfa8d735ca9bdbec095f60252c54697ca6978976eee7b1c21fd37643dd30e53512acf0668dcb884ad1154c5b710 +EBUILD myhardened-sources-3.4.2.ebuild 1816 SHA256 b7464a11df435ebdda7a9848d8bf8a8e23e6e37e3387374789fc998d56959cf0 SHA512 ca60147be41e6cdf9aa6f87c07ea00911c07433160fdb01fe9de062b91aa201f49ee93140ec4d601d47fe7f58aecef28fdd1d3336aef47c30e45608df0155fb9 WHIRLPOOL ce66b13bebbf0155e415f1f620d0d9c2bc1c47866d42496f060085714ca4aa9765a7575537b9de169a9cefbeda3bb77f9375dde1cf7791a4fb7baab9d7845411 +EBUILD myhardened-sources-3.7.5-r1.ebuild 1555 SHA256 6c090b9c9045e11b2cb0fe786c7d673f12ec5b6edc309fb3b7b57223c1a36720 SHA512 3e4103d4c5bd6b5447a52680df4708b39689b8d4b372becd33c18ab017fcdf497f3b68c79976623353a3d29c1d8c376ef33126820d530acd51786510bcf55146 WHIRLPOOL c309c0a620a469f965a2c99b95a525c3eb039e1d92e95b28ac57e6cd04d2d1fbec859ce8228ac54489e568adee9eba62e918b25c76d0b901807aaa705e4254ec +EBUILD myhardened-sources-3.8.11.ebuild 1377 SHA256 2e6dbb7a63c70bc074494aa4b39b384596fe97a4043919b76dc5fe3fdf8d5d4c SHA512 526920178736a3b7dfeed68c5aeb94f0482e2ba7d69810d7fe8d466e1a31617170667f89a71d53a4f970d26a75f2a3214297a5f64db250a72af7fb3978bc12e9 WHIRLPOOL 8b8bdecc1d67ad4770ec15885c9dd5dd759215232f39982905cb510b617943fb24ccf15b8faa1b14f8183df246a3a6df87f1b713bc3ef1c91eabf4f17ac488cb +EBUILD myhardened-sources-3.8.3.ebuild 1374 SHA256 2ca35436a96002213d9804fc0998b2054971eb6fed523e3c247babf34ae983bb SHA512 1091290dab5a0b1f93b810af3df1273462e53e09a1b31d4d0bf25c8326d562fafd0e3511b492e7576770c69aacb04f49e0009b00ee7a193a19387be7f8599785 WHIRLPOOL 7df47b19d51221403efb924849ff665c53a59ac4353788b44df214f5e2f051b801e1cdcb001314f6dd31a84fe50f5d9b4a79f8b3ec7c98b9aefb8f976b73a0e8 +EBUILD myhardened-sources-3.8.6.ebuild 1374 SHA256 e5f59513bc2c174e408a2408ed3c4491da437cc31c4c296414b5775d2971f53c SHA512 280dfb25ac1703255ea6f72b4379ee5ba5c045595ae257417e2e5370c5b5fa02905bfac45ce42775345387db0c738e7bfb0323d5f89c3bed9598a406b250e07b WHIRLPOOL cd90dbcd0545e9aeb043c23a6469000280e1ce521847e916c910d670b49a7df4bcd0c277c72ddbc1896b11e4de80f9af265ab23080529adbb070e23589a970f3 +EBUILD myhardened-sources-3.9.9.ebuild 1490 SHA256 1aaeec4fbec270fa52bf1c3e626dcc5bb093e30eaac6904fa004d06ce8fe1c68 SHA512 a0be974f271a8794f9b99421c4f1b97db7e01322f2f9852f895449ef0001780f89ea31c59ef871206649837c43e3e7ca204f61cd6d7fd9a20947b06dcce2dfcd WHIRLPOOL 1507e432069e824a4a55a1184814751e89f7e53605848fa439f2c45ffc2dba112a89f4b75c7b25e3ce70b6230f8702777a198e18269129ae047f350d85b34665 +EBUILD myhardened-sources-4.1.7-r1.ebuild 1316 SHA256 da525be50c93475d0cbc2e391adba0e9b73ade78d3eee8b77c2f5e9bcd72e72b SHA512 ad67f746b8260c66d9f6a90c87ab44bea6a970a6f7c85faa19d00ae939f0dc7bcea39b11add28c7c17c4995aa277d361d1ecd400119e7e3e54c852c5dd9dd15f WHIRLPOOL 97b0dc7ac92088823910e3858f7bae356332c8e8ff6269766909bb2431cc40927eb6a920023fac409b0843f4121ee91964167541eb60afd4d7159ce3c2809998 +EBUILD myhardened-sources-4.4.8-r1.ebuild 1332 SHA256 65dca5f73305dfce7f782fe0fec2554769f4bbcc12b003b65570a1b71707c10b SHA512 fd462f6c4050bbc051a46b9f03c77a52f1df546fc70736fcd19dc297e7b0d63faef048d60feeacdc2753eb3c05ba34bb3c8507458dfeba887800b2d61a017982 WHIRLPOOL 5ac7288740b4de93cd3b824a5b84fb4f99e728057c046cc4f0b6c5f52585aa457b7771d606429cad77581e0de6cb84d07d441d4dc9a7129b84d3895e74927cc8 +EBUILD myhardened-sources-4.5.6.ebuild 1247 SHA256 10d2ca37c452363ce1e94bc868a23131e2da130667468ca651b94594a50182f0 SHA512 5bae373c79110b2a1152446c23dec82c5c8f439cf7deaf6af05a09b71cc81533cc919d9032bc20f886fec6ce63963a8b9617af4b38bec70b91fb0c724f8c3b54 WHIRLPOOL 1d404b7a24eb01fe6f6710f7673fbce0a1a85158bddabac1edeb7a083651954800f2e9f14b2e46a627dd9d10cf5df7e7ed0b1ca766cdad89083c2e060db12e3d +EBUILD myhardened-sources-4.7.1.ebuild 1249 SHA256 ee419808cf8179bcc9d3b14391106d7606b7dc5744413f726bf1fa2ba2434539 SHA512 251daea8318e5fb47ce8c5444b985376cea0096ed68d84ceff1c77131a80fa8ba27a9754f73eb21fc7080715c7ef7487e5c8c0ef274e8464e5b4e4f363373f5f WHIRLPOOL 6b407a64daf2924941701069ad71ca36c7d2f0381fe608fa734b6502675b6dc8007c2af59243b81ddca4b8c60720923bc4585d9ae0b391d669ad26aaa6270a31 +EBUILD myhardened-sources-4.7.10.ebuild 1247 SHA256 1c5556f013e7b7dbf63c5aed00829e51adf1fc2a57779bf06c4970af3ad73e34 SHA512 77f82a8ba5626c3f6dbcefd29498bb728a177527f4439f12657d1c44d9d7a7dd9ec5a76c8361d305021b9f31bf43dda3fcd05058034a32fdad2af818fc194099 WHIRLPOOL 99ad7ebb5cc679f9d21e4cab2f4d3be77773fd6936f99f684469adc43c18a358b1f9a9b9b7d2e47dc8cd3705697c4c6081925ef0a79c010b047daddf24df397a +EBUILD myhardened-sources-4.8.13.ebuild 1248 SHA256 65423596809d9e3a06e9be9ac2d1f7a444614d5c6e27921b22fc47edf713fb07 SHA512 6fc3b431ebb155723b40e0474aa05a806bf171638c4522423ace02a4e731edc557af35fd307d4db9afaf36dcb1bf4f7a8a67981777ea591fa8decd3593bcf67b WHIRLPOOL dd6066e8c4364e2424d23d1491557de0ec3b6e7162e7995a2a741eedba91fc899b948ee4f8c4e28b5a397b2ce38b7f0f76f0c55040d50ee757d7d42db2bf52c7 +EBUILD myhardened-sources-4.8.17.ebuild 1248 SHA256 6d7d1d26a0172f3e4ad634f547b3c93254072f48753fe8106ddb57cddee8ca51 SHA512 50c65953d8e985ec1769b1e9bde696533d2e09bfb4a843c281c849d374c88a7fb70baa7914133b4f9cb2417d1461bf43bbcd3ff93e0263e96ecb62cc5071a58d WHIRLPOOL 16d358e585c9389ea590851fb7dff15103bdc5df9798350e280537cd00997139a66c59a0bc5f311be99aa364a77a98d0c65b6440dac4429ca959d12199f0e44b +MISC ChangeLog 0 SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 SHA512 cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e WHIRLPOOL 19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3 +MISC metadata.xml 358 SHA256 42e64409bb7ab29d39924494c64ad2540e81b4c27d697b2a6c8462200eba7a8e SHA512 1d85c9dcc98d62413bcb30daee91356040490778ac498d8db383612c572a83c938233dd9a55b60d91168a6855e35dc7205f11e08192271dbdc78a6bff30cfc33 WHIRLPOOL 674696b69e2802706391bb84f736e2a89c826cdecd751590397575b178864bfbeb8c8971c301cab9bc459cfa27f7edb77e59b68e8b81df7829e9f7984980e127 diff --git a/sys-kernel/myhardened-sources/files/kernel-cve-2016-0728.patch b/sys-kernel/myhardened-sources/files/kernel-cve-2016-0728.patch new file mode 100644 index 0000000..49020d7 --- /dev/null +++ b/sys-kernel/myhardened-sources/files/kernel-cve-2016-0728.patch @@ -0,0 +1,81 @@ +From 23567fd052a9abb6d67fe8e7a9ccdd9800a540f2 Mon Sep 17 00:00:00 2001 +From: Yevgeny Pats +Date: Tue, 19 Jan 2016 22:09:04 +0000 +Subject: KEYS: Fix keyring ref leak in join_session_keyring() + +This fixes CVE-2016-0728. + +If a thread is asked to join as a session keyring the keyring that's already +set as its session, we leak a keyring reference. + +This can be tested with the following program: + + #include + #include + #include + #include + + int main(int argc, const char *argv[]) + { + int i = 0; + key_serial_t serial; + + serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, + "leaked-keyring"); + if (serial < 0) { + perror("keyctl"); + return -1; + } + + if (keyctl(KEYCTL_SETPERM, serial, + KEY_POS_ALL | KEY_USR_ALL) < 0) { + perror("keyctl"); + return -1; + } + + for (i = 0; i < 100; i++) { + serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, + "leaked-keyring"); + if (serial < 0) { + perror("keyctl"); + return -1; + } + } + + return 0; + } + +If, after the program has run, there something like the following line in +/proc/keys: + +3f3d898f I--Q--- 100 perm 3f3f0000 0 0 keyring leaked-keyring: empty + +with a usage count of 100 * the number of times the program has been run, +then the kernel is malfunctioning. If leaked-keyring has zero usages or +has been garbage collected, then the problem is fixed. + +Reported-by: Yevgeny Pats +Signed-off-by: David Howells +Acked-by: Don Zickus +Acked-by: Prarit Bhargava +Acked-by: Jarod Wilson +Signed-off-by: James Morris +--- + security/keys/process_keys.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c +index a3f85d2..e6d50172 100644 +--- a/security/keys/process_keys.c ++++ b/security/keys/process_keys.c +@@ -794,6 +794,7 @@ long join_session_keyring(const char *name) + ret = PTR_ERR(keyring); + goto error2; + } else if (keyring == new->session_keyring) { ++ key_put(keyring); + ret = 0; + goto error2; + } +-- +cgit v0.12 + diff --git a/sys-kernel/myhardened-sources/files/kernel-revert-i915-fast-link-training.patch b/sys-kernel/myhardened-sources/files/kernel-revert-i915-fast-link-training.patch new file mode 100644 index 0000000..ecdb18c --- /dev/null +++ b/sys-kernel/myhardened-sources/files/kernel-revert-i915-fast-link-training.patch @@ -0,0 +1,82 @@ +diff -Naur a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c +--- a/drivers/gpu/drm/i915/intel_dp.c 2016-01-11 00:01:32.000000000 +0100 ++++ b/drivers/gpu/drm/i915/intel_dp.c 2016-06-11 09:19:14.226982913 +0200 +@@ -3628,8 +3628,7 @@ + intel_dp_reset_link_train(struct intel_dp *intel_dp, uint32_t *DP, + uint8_t dp_train_pat) + { +- if (!intel_dp->train_set_valid) +- memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set)); ++ memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set)); + intel_dp_set_signal_levels(intel_dp, DP); + return intel_dp_set_link_train(intel_dp, DP, dp_train_pat); + } +@@ -3746,23 +3745,6 @@ + break; + } + +- /* +- * if we used previously trained voltage and pre-emphasis values +- * and we don't get clock recovery, reset link training values +- */ +- if (intel_dp->train_set_valid) { +- DRM_DEBUG_KMS("clock recovery not ok, reset"); +- /* clear the flag as we are not reusing train set */ +- intel_dp->train_set_valid = false; +- if (!intel_dp_reset_link_train(intel_dp, &DP, +- DP_TRAINING_PATTERN_1 | +- DP_LINK_SCRAMBLING_DISABLE)) { +- DRM_ERROR("failed to enable link training\n"); +- return; +- } +- continue; +- } +- + /* Check to see if we've tried the max voltage */ + for (i = 0; i < intel_dp->lane_count; i++) + if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0) +@@ -3854,7 +3836,6 @@ + /* Make sure clock is still ok */ + if (!drm_dp_clock_recovery_ok(link_status, + intel_dp->lane_count)) { +- intel_dp->train_set_valid = false; + intel_dp_link_training_clock_recovery(intel_dp); + intel_dp_set_link_train(intel_dp, &DP, + training_pattern | +@@ -3871,7 +3852,6 @@ + + /* Try 5 times, then try clock recovery if that fails */ + if (tries > 5) { +- intel_dp->train_set_valid = false; + intel_dp_link_training_clock_recovery(intel_dp); + intel_dp_set_link_train(intel_dp, &DP, + training_pattern | +@@ -3894,7 +3874,6 @@ + intel_dp->DP = DP; + + if (channel_eq) { +- intel_dp->train_set_valid = true; + DRM_DEBUG_KMS("Channel EQ done. DP Training successful\n"); + } + } +@@ -5157,9 +5136,6 @@ + intel_display_power_get(dev_priv, power_domain); + + if (long_hpd) { +- /* indicate that we need to restart link training */ +- intel_dp->train_set_valid = false; +- + if (!intel_digital_port_connected(dev_priv, intel_dig_port)) + goto mst_fail; + +diff -Naur a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h +--- a/drivers/gpu/drm/i915/intel_drv.h 2016-01-11 00:01:32.000000000 +0100 ++++ b/drivers/gpu/drm/i915/intel_drv.h 2016-06-11 09:17:55.457431949 +0200 +@@ -783,7 +783,6 @@ + bool has_aux_irq, + int send_bytes, + uint32_t aux_clock_divider); +- bool train_set_valid; + + /* Displayport compliance testing */ + unsigned long compliance_test_type; diff --git a/sys-kernel/myhardened-sources/metadata.xml b/sys-kernel/myhardened-sources/metadata.xml new file mode 100644 index 0000000..6451932 --- /dev/null +++ b/sys-kernel/myhardened-sources/metadata.xml @@ -0,0 +1,10 @@ + + + + kernel + hardened + + myhardened-sources is based upon genpatches, and adds the grsecurity + patch from http://www.grsecurity.net, which also includes PaX. + + diff --git a/sys-kernel/myhardened-sources/myhardened-sources-2.6.32-r7.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-2.6.32-r7.ebuild new file mode 100644 index 0000000..5ffdde0 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-2.6.32-r7.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /home/sysadmin/cvsroot/portoverlay/myhardened/sys-kernel/myhardened-sources/myhardened-sources-2.6.32-r6.ebuild,v 1.1 2011/03/24 12:08:49 valko Exp $ + +EAPI="2" + +ETYPE="sources" +K_WANT_GENPATCHES="base extras" +K_GENPATCHES_VER="37" + +inherit kernel-2a +detect_version + +#hardened-sources-2.6.32-r49.ebuild + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-52" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE="4200_fbcondecor-0.9.6.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="" + +KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.2.2*" + + ewarn + ewarn "Hardened Gentoo provides three different predefined grsecurity level:" + ewarn "[server], [workstation], and [virtualization]." + ewarn + ewarn "Those who intend to use one of these predefined grsecurity levels" + ewarn "should read the help associated with the level. Users importing a" + ewarn "kernel configuration from a kernel prior to ${PN}-2.6.32," + ewarn "should review their selected grsecurity/PaX options carefully." + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-2.6.39-r1.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-2.6.39-r1.ebuild new file mode 100644 index 0000000..ac59eb6 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-2.6.39-r1.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-2.6.39-r8.ebuild,v 1.2 2011/08/12 18:18:02 blueness Exp $ + +EAPI="4" + +ETYPE="sources" +K_WANT_GENPATCHES="base extras" +K_GENPATCHES_VER="5" + +inherit kernel-2a +detect_version + +#hardened-sources-2.6.39-r8.ebuild + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-9" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE="4200_fbcondecor-0.9.6.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.2.2*" + + ewarn + ewarn "Hardened Gentoo provides three different predefined grsecurity level:" + ewarn "[server], [workstation], and [virtualization]." + ewarn + ewarn "Those who intend to use one of these predefined grsecurity levels" + ewarn "should read the help associated with the level. Users importing a" + ewarn "kernel configuration from a kernel prior to ${PN}-2.6.32," + ewarn "should review their selected grsecurity/PaX options carefully." + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.11.2.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.11.2.ebuild new file mode 100644 index 0000000..1d6731c --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.11.2.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.11.2.ebuild,v 1.2 2013/10/21 00:07:41 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="4" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" + +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.11.7.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.11.7.ebuild new file mode 100644 index 0000000..81135a5 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.11.7.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.11.2.ebuild,v 1.2 2013/10/21 00:07:41 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="10" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-2" + +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.15.10.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.15.10.ebuild new file mode 100644 index 0000000..7988776 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.15.10.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.15.10-r1.ebuild,v 1.2 2014/09/22 16:53:20 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="12" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-2" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.0*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.17.6.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.17.6.ebuild new file mode 100644 index 0000000..adf3064 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.17.6.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.15.10-r1.ebuild,v 1.2 2014/09/22 16:53:20 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="8" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.0*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.17.7.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.17.7.ebuild new file mode 100644 index 0000000..40f1e5b --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.17.7.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.17.7-r1.ebuild,v 1.2 2014/12/30 17:06:04 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="10" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-2" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.0*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.18.9.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.18.9.ebuild new file mode 100644 index 0000000..044702b --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.18.9.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.18.9.ebuild,v 1.2 2015/03/26 20:55:21 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="10" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch + 2710_i915-drm-disallow-pin-ioctl-for-kms-drivers.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.4.2.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.4.2.ebuild new file mode 100644 index 0000000..7a92a89 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.4.2.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.4.2.ebuild,v 1.2 2012/06/29 00:11:38 blueness Exp $ + +EAPI="4" + +ETYPE="sources" +K_WANT_GENPATCHES="base extras" +K_GENPATCHES_VER="2" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2a +detect_version + +#hardened-sources-3.4.2.ebuild + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE="4200_fbcondecor-0.9.6.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1" + + ewarn + ewarn "Hardened Gentoo provides three different predefined grsecurity level:" + ewarn "[server], [workstation], and [virtualization]. Those who intend to" + ewarn "use one of these predefined grsecurity levels should read the help" + ewarn "associated with the level. Because some options require >=gcc-4.5," + ewarn "users with more, than one version of gcc installed should use gcc-config" + ewarn "to select a compatible version." + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}*" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.7.5-r1.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.7.5-r1.ebuild new file mode 100644 index 0000000..25cba42 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.7.5-r1.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.7.5-r1.ebuild,v 1.4 2013/03/10 02:57:48 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="7" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2a +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-2" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE="2900_dev-root-proc-mount-fix.patch 4200_fbcondecor-0.9.6.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1*" + + ewarn + ewarn "Because some options require >=gcc-4.5, users with more than" + ewarn "one version of gcc installed should use gcc-config to select" + ewarn "a compatible version." + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.8.11.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.8.11.ebuild new file mode 100644 index 0000000..53b134a --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.8.11.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.8.11.ebuild,v 1.1 2013/05/05 11:36:44 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="13" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2a +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE="2900_dev-root-proc-mount-fix.patch 4200_fbcondecor-0.9.6.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.8.3.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.8.3.ebuild new file mode 100644 index 0000000..2c467f2 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.8.3.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.8.3.ebuild,v 1.2 2013/04/13 22:55:16 blueness Exp $ + +EAPI="4" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="3" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2a +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE="2900_dev-root-proc-mount-fix.patch 4200_fbcondecor-0.9.6.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.8.6.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.8.6.ebuild new file mode 100644 index 0000000..4409559 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.8.6.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.8.6.ebuild,v 1.2 2013/04/29 03:40:39 blueness Exp $ + +EAPI="4" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="7" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2a +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE="2900_dev-root-proc-mount-fix.patch 4200_fbcondecor-0.9.6.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-3.9.9.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-3.9.9.ebuild new file mode 100644 index 0000000..38c4547 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-3.9.9.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/hardened-sources/hardened-sources-3.9.9.ebuild,v 1.2 2013/07/28 19:34:15 blueness Exp $ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="14" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI=" +https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 1510_af_key-fix-info-leaks-in-notify-messages.patch + 1511_ipv6-ip6_sk_dst_check-must-not-assume-ipv6-dst.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-2.9.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-4.1.7-r1.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-4.1.7-r1.ebuild new file mode 100644 index 0000000..7073ce7 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-4.1.7-r1.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="11" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-2" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +src_prepare() { + epatch "${FILESDIR}"/kernel-cve-2016-0728.patch +} + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-4.4.8-r1.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-4.4.8-r1.ebuild new file mode 100644 index 0000000..0193938 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-4.4.8-r1.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="9" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-2" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +src_prepare() { + epatch "${FILESDIR}"/kernel-revert-i915-fast-link-training.patch +} + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-4.5.6.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-4.5.6.ebuild new file mode 100644 index 0000000..bd84084 --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-4.5.6.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="8" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-4.7.1.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-4.7.1.ebuild new file mode 100644 index 0000000..7d150cb --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-4.7.1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="1" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-4.7.10.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-4.7.10.ebuild new file mode 100644 index 0000000..61de5ff --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-4.7.10.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="8" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-4.8.13.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-4.8.13.ebuild new file mode 100644 index 0000000..8f2774c --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-4.8.13.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="13" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-1" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/sys-kernel/myhardened-sources/myhardened-sources-4.8.17.ebuild b/sys-kernel/myhardened-sources/myhardened-sources-4.8.17.ebuild new file mode 100644 index 0000000..e7ed56c --- /dev/null +++ b/sys-kernel/myhardened-sources/myhardened-sources-4.8.17.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +ETYPE="sources" +K_WANT_GENPATCHES="base" +K_GENPATCHES_VER="18" +K_DEBLOB_AVAILABLE="1" + +inherit kernel-2 +detect_version + +HGPV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}-3" +HGPV_URI="https://apps.karinthy.hu/gentoo/patches/hardened-patches-${HGPV}.extras.tar.bz2" +SRC_URI="${KERNEL_URI} ${HGPV_URI} ${GENPATCHES_URI} ${ARCH_URI}" + +UNIPATCH_LIST="${DISTDIR}/hardened-patches-${HGPV}.extras.tar.bz2" +UNIPATCH_EXCLUDE=" + 1500_XATTR_USER_PREFIX.patch + 2900_dev-root-proc-mount-fix.patch" + +DESCRIPTION="Hardened kernel sources (kernel series ${KV_MAJOR}.${KV_MINOR})" +HOMEPAGE="http://www.gentoo.org/proj/en/hardened/" +IUSE="deblob" + +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" + +RDEPEND=">=sys-devel/gcc-4.5" + +pkg_postinst() { + kernel-2_pkg_postinst + + local GRADM_COMPAT="sys-apps/gradm-3.1*" + + ewarn + ewarn "Users of grsecurity's RBAC system must ensure they are using" + ewarn "${GRADM_COMPAT}, which is compatible with ${PF}." + ewarn "It is strongly recommended that the following command is issued" + ewarn "prior to booting a ${PF} kernel for the first time:" + ewarn + ewarn "emerge -na =${GRADM_COMPAT}" + ewarn +} diff --git a/updmanifests b/updmanifests new file mode 100755 index 0000000..b70ee18 --- /dev/null +++ b/updmanifests @@ -0,0 +1,12 @@ +#!/bin/bash + +TMPDIR=/tmp/$$ +mkdir -p $TMPDIR +chmod 777 $TMPDIR + +export PORTAGE_TMPDIR=$TMPDIR +export DISTDIR=/home/pkgs/distfiles + +for d in `find . -name '*.ebuild' | sed -e 's#/[^/]*$##' | sort | uniq`; do + (cd $d; ebuild `ls *.ebuild | head -1` manifest) +done diff --git a/virtual/linux-sources/ChangeLog b/virtual/linux-sources/ChangeLog new file mode 100644 index 0000000..13f6b6f --- /dev/null +++ b/virtual/linux-sources/ChangeLog @@ -0,0 +1,11 @@ +# ChangeLog for virtual/linux-sources +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /home/sysadmin/cvsroot/portoverlay/myhardened/virtual/linux-sources/ChangeLog,v 1.1 2011/05/18 11:05:18 valko Exp $ + +*linux-sources-2.6 (30 Apr 2011) +*linux-sources-2.4 (30 Apr 2011) + + 30 Apr 2011; Ulrich Mueller +linux-sources-2.4.ebuild, + +linux-sources-2.6.ebuild, +metadata.xml: + Initial import, bug 118442. + diff --git a/virtual/linux-sources/Manifest b/virtual/linux-sources/Manifest new file mode 100644 index 0000000..8ccc562 --- /dev/null +++ b/virtual/linux-sources/Manifest @@ -0,0 +1,4 @@ +EBUILD linux-sources-0.ebuild 896 SHA256 aa551e54b7477e2c3150eebd4528caff9b1223a77113f0666b3a0b11d400ce57 SHA512 23bdc7f3710ac8e7456311eda7174920e010100cc27db17769dfa4eebd0ec0858a1945b3bea4a902fd0a925470b35a8faf8eb4f95cd9b590bb1c06baacbdcbd4 WHIRLPOOL 38e71b80fbe38cf7d45fd2c79f62caeb7817a83855c0b7f17d5d623efaa7eadbe9d18db24ad62fe897c1a4c12913b1d3fcfc35468cfebc17b7fb9ec667ee0d99 +EBUILD linux-sources-1.ebuild 948 SHA256 35187a791bd48f5d54b518c6ce6a891de2fbface7417e64611a295cf7a6b9a74 SHA512 ac20902b0526ce5e6b29c9273d2b58787b541beb4614e9ae846e816bb67088d9d75b2cf25b727b9d1fedebce55a5b7a792da4b722512f2312f909c0db081d970 WHIRLPOOL b078732f63435ff8a6d4e67959c3a7bfd67d0f9070a46328a3ec68849ba8b53449fe0ce33a9a5021a80d764a73baad0e03f6d62049ba5deef8a00ce6b76e2c7e +MISC ChangeLog 452 SHA256 4e7aeee1eddc4072e586e0c746dad51caf0958be5d2c3e830dd7aeba051bdd24 SHA512 0196b8b6e7983893077fde86fc106d647010c67169b721544cbffc927b078dcddba64204ea412307ed4b74b8c894dfc844364b36c6e2143a8cbf241dbc3c83c9 WHIRLPOOL 69112e2e957b60025f4eea1c81c363f4fa0081b93f0a6eb10b1469b4abc89075e64706515565185d350b5d37a6413a185c7252766c3c069c5d7e47c2067c369d +MISC metadata.xml 223 SHA256 81397b5eb31af3dbcf2105207a21628be9a62fd03a105cc672ae99663b191a8c SHA512 5fefb6cbf52338b205b57f7ce80f03c7c1d3a6457b48a730996deb84b9c3e7c325cb032f8c8711d5382d6c898733e1fff38ac02e74927f5b2d6fe11dc0be6844 WHIRLPOOL 6f22b281394bf4ff8e98f3ecb0e87f7c7c06b9b106284f7c6aac2fa9f363c5fcbbe58a84b1c8181353d8bd0aeb36b4d760a4f439aaa5cd97e02627cb7bab3331 diff --git a/virtual/linux-sources/linux-sources-0.ebuild b/virtual/linux-sources/linux-sources-0.ebuild new file mode 100644 index 0000000..f7d6f96 --- /dev/null +++ b/virtual/linux-sources/linux-sources-0.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/virtual/linux-sources/linux-sources-0.ebuild,v 1.6 2012/06/16 14:37:45 pacho Exp $ + +EAPI=2 + +DESCRIPTION="Virtual for Linux kernel sources" +HOMEPAGE="" +SRC_URI="" + +LICENSE="" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86" +IUSE="" + +DEPEND="" +RDEPEND="|| ( + sys-kernel/myhardened-sources + sys-kernel/gentoo-sources + sys-kernel/vanilla-sources + sys-kernel/cell-sources + sys-kernel/ck-sources + sys-kernel/git-sources + sys-kernel/hardened-sources + sys-kernel/mips-sources + sys-kernel/openvz-sources + sys-kernel/pf-sources + sys-kernel/rsbac-sources + sys-kernel/rt-sources + sys-kernel/tuxonice-sources + sys-kernel/usermode-sources + sys-kernel/vserver-sources + sys-kernel/xbox-sources + sys-kernel/zen-sources + )" diff --git a/virtual/linux-sources/linux-sources-1.ebuild b/virtual/linux-sources/linux-sources-1.ebuild new file mode 100644 index 0000000..31fa5b9 --- /dev/null +++ b/virtual/linux-sources/linux-sources-1.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/virtual/linux-sources/linux-sources-1.ebuild,v 1.11 2014/08/02 15:48:03 armin76 Exp $ + +EAPI=5 + +DESCRIPTION="Virtual for Linux kernel sources" +HOMEPAGE="" +SRC_URI="" + +LICENSE="" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86" +IUSE="firmware" + +DEPEND="firmware? ( sys-kernel/linux-firmware )" +RDEPEND="|| ( + sys-kernel/myhardened-sources + sys-kernel/gentoo-sources + sys-kernel/vanilla-sources + sys-kernel/ck-sources + sys-kernel/git-sources + sys-kernel/hardened-sources + sys-kernel/mips-sources + sys-kernel/openvz-sources + sys-kernel/pf-sources + sys-kernel/rsbac-sources + sys-kernel/rt-sources + sys-kernel/tuxonice-sources + sys-kernel/usermode-sources + sys-kernel/vserver-sources + sys-kernel/xbox-sources + sys-kernel/zen-sources + sys-kernel/aufs-sources + )" diff --git a/virtual/linux-sources/metadata.xml b/virtual/linux-sources/metadata.xml new file mode 100644 index 0000000..8ca3486 --- /dev/null +++ b/virtual/linux-sources/metadata.xml @@ -0,0 +1,8 @@ + + + +kernel-misc + + ulm@gentoo.org + + diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest new file mode 100644 index 0000000..13f30b1 --- /dev/null +++ b/x11-base/xorg-server/Manifest @@ -0,0 +1,33 @@ +AUX 0100-randr-Account-for-panning-and-transforms-when-constr.patch 4680 SHA256 6c1cec847ff962ad8d29802a037aa2720ab102148fcf579060657244c80605f6 SHA512 ba5fbc1d691e30bc2cfd1007e2f70e0fad8355b7aa56e98ff5d796cb9389f065bcc8259a40240738499602db6aebff51643207b2b8d939a3408d6f3ef25cf92d WHIRLPOOL 6f31fdab97cd7012496537f8080f1ea8005e550787fc5768b8f0672504921d1bd07dbd8c549dabcf1fccd0b9d0ad7ab1d28a9106c29c27009a450912354741f0 +AUX xdm-setup.initd-1 346 SHA256 942ce5e8d1a0770543b683dcc388bae7619a24eb9741c1cd678ed3df97c01406 SHA512 b12ef1a757213c2df2d4fb50691695fdaf00ee9edb7d4ec551980c48b6eb05598d3eda0db543719a11a82b019939fb4af82a19813d238a725dcc0d818379103e WHIRLPOOL 28a033355ec3871eba2dfdf45969e9ac354d8ae542dcb1449901af856b9c26314318f6a91cec81f2548caaede19d88e14eac2de0fd7dab8957a7358e94a594b2 +AUX xdm.confd-4 562 SHA256 9d26b72bb28611a60a6b9f942b8d8cfe47b59f926be89af9709b5912668344d8 SHA512 facfb91c0b4e0b1cae86b707d263523215633720e1e8f4595639411f936907b321643e8a06111dd3f7b74fa601476e4b0d09768edfdec762c73fa07cb227588b WHIRLPOOL d701fb5f40ecde2b2f2bb56970576c8abde1499916168fee4a6d27afbc1c0493eb17ddd1a8ee70bfbc77d553a47e219e538febada4946d19cccbdabc90f40e6f +AUX xdm.initd-11 6136 SHA256 86a17c9ba172481318d5fd51c3aadfdcad9e5d52ed7478379723ce1784061930 SHA512 6ebd1d4aa538c4de0591348e2befe0d03da2014863208ce52dbe9966e069908adcd5efd5b8ed01cfa3bd3c84121e91494e6d82e1cf96acac2ab0b03a2961dfae WHIRLPOOL 16c6f69008c28f3fc2b84e7257e75df578308ed4a4a537600c43d7a6d372c64a3d8f9e8f1a59c2d8106e1bee9a87694d06f3d1f777d132a19544b747e745473d +AUX xorg-server-1.12-ia64-fix_inx_outx.patch 1737 SHA256 bf996a01faf3d1e6f00f12b17373a2530e7e433d3e6c4cac8935ebddc91cd089 SHA512 18bf9bbb973ae4e3f95ffafca8f82845f0c318c3b2dbf0cf9089a2614215ecf000b9037bfed7d80d9367be01247bf316ba2f6e16aa04fe79c54d81441c962bcd WHIRLPOOL cd133d58fc74de9d49773fe2a570d023cea38d09d7550fb9097a8c83a8393e8fc829ffaac566eee732475410e5d8063d0f99d437a68a67e8d3f65d012522240e +AUX xorg-server-1.12-unloadsubmodule.patch 1373 SHA256 c68c4c0749b9229c3ca11c72b5ca98b58c7dbaf5c7311ce45890204bdc637c3c SHA512 a6a8ebbb1005f2ea9cfdfc928209a23fe213caab31a889c3290f14bcae0a9afd40176330e2e56cb5ff986d522505e7fb98fa0c71187f403e2afd33c9c919780e WHIRLPOOL 7e9dce7dc4e064567e68697a2966f87cef756670db7e49da50c8d9a5379d7930c3f9642913b8482b8c7597067ef9098e1989284986b5ec605aca6a536329c05c +AUX xorg-server-1.17-cve-2015-0255-0.patch 3454 SHA256 eab604a006dca644132fcc98db36cb184422b16d1e0f6becd94b311565d0f79d SHA512 dcca4037cb0278fc508f8c4a9b33b8e1f21a4be7d22fb6345b2b2c30956dfd9c9e574fb1dba7e1dadd7f312c033e76286b5f94b1edb058a37e704e3b2b27f241 WHIRLPOOL 75aede9cb62103108b08ea2e5f281c2077acc692c5b503f9f4cca55348aa29c2f3dfcf04065105715c57ae3d994bb7c6942405806aba276d4e14a9d6c1dc8b06 +AUX xorg-server-1.17-cve-2015-0255-1.patch 4715 SHA256 dbd9f973ef3fab04f3889cd8a44aeacae87bf463a74209d36f014055495fdbab SHA512 493e55bfb8bf3792af91ceb5ca270f7bad9b885e1eda94e61e9c1837c837906b1134864f000610f0e79acba24a55cd1b948b866cfe634c704cc2e19d4258f5b5 WHIRLPOOL c9bcd9a84e00a466efdfe6b954592c166c6758da124b5d866f25e6ad8f77a3b3cc46c30aa7fc6a6eafa2e70af47e2cd800109ec6ed8f67d04c41db7d53b740a3 +AUX xorg-server-1.17-cve-2015-3164-1.patch 1110 SHA256 79e9d30476b349a60c6a4f7dab7fcea0e81117d04e619bacc64c6b2dcd014719 SHA512 24f85753de8ebf7c4dda21bb481da12d4d66c8a85f28d6e8c0ed780e74ac7b37a46bb1d84656ff666c9b21f7f1ffee296ae2d127f95d7dd96913541e5cf14b44 WHIRLPOOL 90645be70584ab6f747e7798d800ecebc8a38fcd753781d9300e2982c048227f3a619897dc750bd6344de66d1e8625ebc0c7f8c1f73651d8949f5590d788b213 +AUX xorg-server-1.17-cve-2015-3164-2.patch 5987 SHA256 4b043063d0d408df590d57f071f4ad9627c512406516a5702add617e198fab29 SHA512 a4b79ab50921e54defc5719a3554d452f886347ef73e8093d97b729ecf214bb1a6f3fc14c6961ced75d28549dc3b1e04d6c568d8c7981140d78d9b4304b5c1a7 WHIRLPOOL 2c6282a1349dd7e411dcad044d0b0e0a016e077b7c60179126fa7d2b00fafbbf467d77543638f6fbcb1cdadbe7e9fffe67f038c1f2d66a37eac9219c682cc590 +AUX xorg-server-1.17-cve-2015-3164-3.patch 1152 SHA256 318bea538d2238055ae5f1d76650e53014bf41061375f7b22ee310525c8de10c SHA512 edcf5c14ed7f9dafea91851dbceadfd221d835c59e3e4d4365bc33906b7b5f5642ce501a214d2373075f4d684f691e1801a8ec3cab574ee64fc223e0a8073bd9 WHIRLPOOL 3bed0afdafaa8068a13795adca92b84eb4906ed4cbc9eb1eaa6cd943d160ab48237aa4d5de8cb9f5ff82f5cc60b7af07bd1c9d5f6b8fcd6dd92924ab34cef945 +AUX xorg-server-1.17-ia64-fix_inx_outx.patch 1539 SHA256 4c844b2d41b6412304b8a918e3cd93d8f2ab8dad8e6a22310cd87d1f3d8f5e95 SHA512 1db65132bb04eff380d38ccc8441f9f9e5286d7a47956495c0a7de7978107d15e5638d05df0aabbcd11687dd03189a7ac50fca51d755d082869aed71e66dbda1 WHIRLPOOL 8f7f3d107e2f8ce5e07d5dac9bf68b7547425943c3e6b6db92eab8bebc0194da53384c953f5e823a5284025e1bbcf18000b497d31de7c5d46e43f9cc02999915 +AUX xorg-server-1.17-randr-Account-for-panning-and-transforms-when-constr.patch 4680 SHA256 6c1cec847ff962ad8d29802a037aa2720ab102148fcf579060657244c80605f6 SHA512 ba5fbc1d691e30bc2cfd1007e2f70e0fad8355b7aa56e98ff5d796cb9389f065bcc8259a40240738499602db6aebff51643207b2b8d939a3408d6f3ef25cf92d WHIRLPOOL 6f31fdab97cd7012496537f8080f1ea8005e550787fc5768b8f0672504921d1bd07dbd8c549dabcf1fccd0b9d0ad7ab1d28a9106c29c27009a450912354741f0 +AUX xorg-server-1.17-support-multiple-Files-sections.patch 2256 SHA256 1cc57d2e8449d50737c507005df348610bb68241fe36e997e4803b3b8b3e6d86 SHA512 e3141727c993e02b2e067095807e96ef0cc82e2e7c8b65664d0530ef05a0f7b9170272e4e1e3523ede3f1cc23b00c4776785b8299e0b58a6e7fd56062aecefb6 WHIRLPOOL 078a5e30777a8f6e908421a1c7cc4a7e63c23f57b600bb1117bc1e8de2db0e6440870f811e65283acaa48da06fcc5666434d2bdce257709344e8f584d1525623 +AUX xorg-server-1.17.2-uninit-clientsWritable.patch 2752 SHA256 e832ec502522c1153e3032386958ff462562227a74760a72d96b1a906b14aded SHA512 667c0330426a63ecfd790c922f5e892f24a4644d46bd621e39798db42f47835f80f3512f6910bab88a50a2138f76d9b5ca35b680143266ed3c9cba788d02fbdb WHIRLPOOL 042e4e6ae9de07dcbd8161e0023b236f54303918644cc713dd7d02bac39eb63b662177af0bd19274137880d698dcb6469f6b4485b006c652efd2761143c11a98 +AUX xorg-server-1.18-support-multiple-Files-sections.patch 1902 SHA256 07ef91cb5da75d5165d10d5bc29c58a8b003e743092c1e290453bd6f82a2cf63 SHA512 5cd0a4ce9c2efef7abc84df805a3c6da33bd64fdb16c3aa2fa61da4f805605a3d12cab0f452d3bc217b6e5d5d5bea29c9f3bf262e46347a074770ebd75ddf5b5 WHIRLPOOL 08fa76e82278cc103ba91555d679413409fd70c29609950e9c1fdd7cfc1e13d5d5b76dc2891465b8faa0fca37c89a32556d0c4cb644a131a7abd332a91fc6cad +AUX xorg-server-1.18-sysmacros.patch 1698 SHA256 bcd9aa80cd37d05aa4c09bb60e72eab47c14165cc479fd8cb743dca47f1b72b8 SHA512 e92300d9e965ebed7dc6f90d6d58b616e589f3df57efc954280a5eba65fa098bb6069f9b06c81cda169d46051f51a707e5ca659f820fc64948431bbc80e3e5a0 WHIRLPOOL dcb9469c22bc0b6478b0891bf88dcebc214990d12cb7387d1e6f86d8ebd12a5be71c4f0449a10d39034b7e34eef4b1a8846c7f406f1184e19f8e00f8f4c5e69b +AUX xorg-server-1.19-randr-Account-for-panning-and-transforms-when-constr.patch 2884 SHA256 1ee84b41a121ceb5b9b2afeb19cb9f19c46ab9d2f16881b08f878bfddccac298 SHA512 91f2ebe8ed58b377666ed6c71927fe44c8ec01132572c431e31e8d6457d859aa59d15443db95b031c0c1dca406144d1437cf4d3dc44e5a709bc991d5184c604c WHIRLPOOL 0daae6168068d63bd32c52eb21a5b939ab0313c23e72461472bdc30743d9cba009df211df4d6cc865a0b2dd1f6c513a6cfa71e438626b89082d59f9be982168b +AUX xorg-sets.conf 199 SHA256 1201d0337ac69d9715f4454a86dfb8a7bd1ae6f4c2578042fc08f283a997597c SHA512 910fe28f20909243044f079ff35136942b8790f4f28ac42ffc64a76b7f03cd22057087fa5e4e01192080b52c0d89000ea96d5a807c6f11f680d3f43312c5be41 WHIRLPOOL 4acac88e1688ea71df59a86a8a188b5369ad05f61e1369cd620eecd754511578e961a537ff6d0b22156f671d3485289cbc941dfe83bea24a27329b7bebb46c7d +DIST xorg-server-1.15.2.tar.bz2 5551426 SHA256 3c0585607c654ded836da43a45a75492fc13454ff4149704fb08dac39f051163 SHA512 5fcbf0012af309f80e1db206e05d7861796146d765cd17f3963fde6da7f43f0e57d63dbbdbf2c554612a557aa4dee623ef62f7ca7d007834aafd7a46ca7bb1d6 WHIRLPOOL 22cdbad68462f9bac32b13be958df496411ca72fe47435ec7e3ebb470b121ba4b4a0e023913f31a92113c5a56bc4be660dfec5086bc1fb72a617d2cdeaa8adf1 +DIST xorg-server-1.16-cve-2014-8091..8103.patches.tar.xz 27892 SHA256 47d8c9bb79c829389e7599aef1110d43afbc5bf744dbcf73d8f3cf01796d287a SHA512 f8b55c009166883b3e6ec2c8c7a2ff4ed61df6970afcc4f0efb9efa36741af194456a368d4b1c7ba9345ef973fb139a48eb50cb5a7ebc144b43749b9ffdb1f7b WHIRLPOOL 2f8b26c018f4ad4cf780ed7dcb0b844de64e7a612adc30c622d1956dfcee710086ffcc837ff0a64cdcc14d47720d82d8797374488bf0b52d77ca63adf6806885 +DIST xorg-server-1.16.4.tar.bz2 5817330 SHA256 abb6e1cc9213a9915a121f48576ff6739a0b8cdb3d32796f9a7743c9a6efc871 SHA512 f756fca65535aa921a85d8d8eb36ea2ba5b7af90a46d640b0ca76259a9abd9d323885087e11156528d95240937c70373045001ae20266a1b9e89909f007e9e74 WHIRLPOOL 63980a3e2b57d2860998344f21a6524598b3dc135c277e5a868e34b57ab5060681ae7137358b3ba8b9ca5fd622a91aeb06bd0ac9e3e5ce1f4dc55df2b2dc0e33 +DIST xorg-server-1.17.4.tar.bz2 5791384 SHA256 0c4b45c116a812a996eb432d8508cf26c2ec8c3916ff2a50781796882f8d6457 SHA512 4b8377b86ca88f27dcf59db2996b2ee620ce6f181a37dc47600365db588d48f2f3ca66a3149e7c856e686e5783b1cccb2ba0827aa7413299163dfca869f4d376 WHIRLPOOL c5baa1b01e57eac9e18bd1890c0a7e2246836524645057d5e05a1a19225d863645616aafaadbf9d083ffb672d47ea1934ad8323d813533e9519f0d92f9a1c6ab +DIST xorg-server-1.18.4.tar.bz2 6009508 SHA256 278459b2c31d61a15655d95a72fb79930c480a6bb8cf9226e48a07df8b1d31c8 SHA512 2055948caa1437547ea823a70d8b24584b65338bb9f1bbf75e3ad7fd60ec9684378facaffa05b7ce496d904213cd192085a43ba889a1476d5fbc813b7e41b56b WHIRLPOOL f9ba5ffb49e6ac7ca20d64d27712a0a8f10c6560256a20e9f944d6438dc5f5eebe53daf6af110084da67a622e92874969047518e72ff181de0d64d83030d629f +DIST xorg-server-1.19.2.tar.bz2 5969543 SHA256 4f8ab9f4a1a885fe7550080555381b34b82858582559e8e3c4da96e3a85884bb SHA512 258c5d615efda28170bf0fd4a19e24fd2cefe086d5ef1aada7a407b8dc2ddaa7d74ad0245e0b13155a3e6d30c65fedf054326e191b6dfe800aae881664d63f16 WHIRLPOOL 6ffca7dc695d9551efecbf9061e40862a187f16afba113467640a506c7becdb2e37d7fe042cbfe08af8ba9f2e8f538fd50460ef46a34452796436de15fa463fd +EBUILD xorg-server-1.15.2-r1.ebuild 7306 SHA256 900b01e559de92ed035d6d84eeedf517b1cbf71ea201c0278ddb00a5814a3f4f SHA512 113928dc790ce476ad8f23566682c6f400e9e7d223b66bf0bdf2b16019a854effead8224d2563f4a9decb182a66bdb3a0d8fd73d385ec1e597a6f19b2c98bf28 WHIRLPOOL 5d30f2f880b116fa3556204121169fffd3e308ca5a2fc91651f430ce3caf4b239ebf7930abfa6ee701192f59dff3d7b059b07bc2b007043b25bd1c3f4406b926 +EBUILD xorg-server-1.15.2-r2.ebuild 7344 SHA256 8070230d3896f85c3b3d1f72fcbb89b1a4cb90914699efcac6c33c3011101399 SHA512 5423b886fc6e325c17af1f6f63520be40e686eceaa9fd82ad989fbdac7df6c37877d81b486dd80a70556b5edfd42b459c8555e09cefabbbdcba5aa5684bfb809 WHIRLPOOL 1bd56d89cbc0b3f05c6d3b271d15dafc42756fbe5991d7f70d0fc4193846dc90f48e41c9c158c078e776cce2d198460f809bfca898cd6acaf6bea865eaa3fc6f +EBUILD xorg-server-1.16.4-r4.ebuild 6255 SHA256 7f9c44e14547729d6fa63823731b1c597ded0f75d5d852d5c1bde9e653a6fea8 SHA512 22bee04399c3daa7b91a684e488c1fa0d323b9befba80cf2bdfbf30e02d2c074ee8a4b7d2cf6995b523479ab181eeb1213c80241886d4e74eed81384bf22f3b7 WHIRLPOOL 516c62c1bccea0e834879c90b9b275b69497c73fe1709ec3e5e48443174399f52d35928338f8aec9a81c21359219029fbbc4cfb0479fd1aa5dc5a13791a4fa74 +EBUILD xorg-server-1.16.4-r5.ebuild 6312 SHA256 c4e056db5a545f30c02d90bbd3f550d0c70323316c370902366313498d23d2ff SHA512 8f5e20155ecfd7016b34ee7878c4998f1a8564f92b23a16f3a8826df3671ee471f588dc5f649c5da3b8b1730fb5d3b77bf4822938b40b23b9ee1ab52e74c67dc WHIRLPOOL 0da82cc087a72638ccdb10f2ec046ad149c3b40980b1191614906d5065a46acb9b7530d3e49593e706cbabe2fdafb6c8ebc856376dc41fd4cd544e9ec5f3053e +EBUILD xorg-server-1.16.4.ebuild 7011 SHA256 b0327998e5796db3a6b3dab3c1a75e594b848f6ffe527fb12dd0784e7c4f19d3 SHA512 5c3c7536a4e060483e148cba8edcce54ff19ecb5f259d865ef6040ae60572558ebdc0fe788e3b50552b1fa2fdd116912b2c9925f539cce40cb5ad898f252f219 WHIRLPOOL 9253618d516c05c13f7c90548e47ab7938d660c5ddfb71a91a05ee6d6df8e1d1fc6f9eb7a49935b8767e76847a6c363b604103cc82691c4ba0ad4355ada80880 +EBUILD xorg-server-1.17.4.ebuild 6436 SHA256 72de26e4e32e6507c74a14516333280e2144ce10e626c2499fbd77e00cc7f7c9 SHA512 b014c354b95d0bf374f182be0132aa8eaaf1b1f692ff2f07402ca609cbc96379676dec3efe227b88fe722d42e679226df248eea559e046a7fd1d9d2b181a6529 WHIRLPOOL e72990e074191a267e323ea338304a4fb5cb1c8ee925d0df70aa830f4f2099713ddac0db785f8ba466386f36a0c7ff161c3453aa26e3d97d9a51453b74ff23f6 +EBUILD xorg-server-1.18.4.ebuild 6284 SHA256 989ac95b42663776f3405439c6b230c4ecb3a89b494fb2aec8ac45982dea6c34 SHA512 a84b833ff3f2bf1f3861c9c8fc549e40a4ebea99d35ba721c61ba358fb4ae21ce55e2aea9689daf2392dfcff48dac38c4155f3213506bb567cacfefadd06b76f WHIRLPOOL 98e8660f21c36547697fcaffe4a5dd19d878c38fc964e395e076795f0db308fbcf850d0c2eaabfd4be67529078ea13e480bbcce6fef015705c29adeead89c7c8 +EBUILD xorg-server-1.19.2.ebuild 6575 SHA256 7a0a0f064b64d79ccc17bf67bcd231e5f67d299ebc3c163ef962578b73e21c93 SHA512 b96c07920f7318abbf6e2009e010151d73830e6090ab8a354c567dc4472d0e9fcfcf75e7d6532813827492b722576311adb3e1dbc4cfdf1bccf6059626f45f1a WHIRLPOOL 72f4924576f722492e395b5c6768c27492da711450e46c2b4b6f8faf0b3148fb10eeef8e3ecaab755b63468f8e5a55a83ee6a4805d9452efd42e5a1beeb40f7a diff --git a/x11-base/xorg-server/files/0100-randr-Account-for-panning-and-transforms-when-constr.patch b/x11-base/xorg-server/files/0100-randr-Account-for-panning-and-transforms-when-constr.patch new file mode 100644 index 0000000..0fdfb65 --- /dev/null +++ b/x11-base/xorg-server/files/0100-randr-Account-for-panning-and-transforms-when-constr.patch @@ -0,0 +1,141 @@ +From 9365c02aba72fd370c7080c875d196f14d8d93bd Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Sat, 1 Mar 2014 08:25:18 +0000 +Subject: [PATCH] randr: Account for panning and transforms when constraining + the cursor + +commit 56c90e29f04727c903bd0f084d23bf44eb1a0a11 [1.10.99.901] +Author: Adam Jackson +Date: Mon Nov 15 14:29:14 2010 -0500 + + randr: Add RRConstrainCursorHarder + +introduced a regression as it ignored the effect of panning and +transforms upon the crtc bounds. The result was that the cursor would be +constrained to the visible area even though the panning arena was much +bigger, or the cursor was constrained to a region that did not even +match the visible area when the output was transformed or reflected. + +This supercedes the hack introduced by +commit 1bf81af4a6be1113bcc3b940ab264d5c9e0f0c5d [1.12.99.904] +Author: Rui Matos +Date: Mon Jul 30 14:32:12 2012 -0400 + + xf86RandR12: Don't call ConstrainCursorHarder() if panning is enabled +which disabled the cursor constraints if a panning mode was active, but +did not fix the regression with arbitrary output transforms. + +Signed-off-by: Chris Wilson +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39949 +Cc: Adam Jackson +Cc: Rui Matos +--- + randr/rrcrtc.c | 60 +++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 34 insertions(+), 26 deletions(-) + +diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c +index 6e181ba..900c7db 100644 +--- a/randr/rrcrtc.c ++++ b/randr/rrcrtc.c +@@ -273,25 +273,34 @@ RRCrtcPendingProperties(RRCrtcPtr crtc) + return FALSE; + } + +-static void +-crtc_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) ++static Bool ++cursor_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) + { +- *left = crtc->x; +- *top = crtc->y; ++ rrScrPriv(crtc->pScreen); ++ BoxRec bounds; + +- switch (crtc->rotation) { +- case RR_Rotate_0: +- case RR_Rotate_180: +- default: +- *right = crtc->x + crtc->mode->mode.width; +- *bottom = crtc->y + crtc->mode->mode.height; +- return; +- case RR_Rotate_90: +- case RR_Rotate_270: +- *right = crtc->x + crtc->mode->mode.height; +- *bottom = crtc->y + crtc->mode->mode.width; +- return; ++ if (crtc->mode == NULL) ++ return FALSE; ++ ++ memset(&bounds, 0, sizeof(bounds)); ++ if (pScrPriv->rrGetPanning) ++ pScrPriv->rrGetPanning(crtc->pScreen, crtc, NULL, &bounds, NULL); ++ ++ if (bounds.y2 <= bounds.y1 || bounds.x2 <= bounds.x1) { ++ bounds.x1 = 0; ++ bounds.y1 = 0; ++ bounds.x2 = crtc->mode->mode.width; ++ bounds.y2 = crtc->mode->mode.height; + } ++ ++ pixman_f_transform_bounds(&crtc->f_transform, &bounds); ++ ++ *left = bounds.x1; ++ *right = bounds.x2; ++ *top = bounds.y1; ++ *bottom = bounds.y2; ++ ++ return TRUE; + } + + /* overlapping counts as adjacent */ +@@ -303,8 +312,10 @@ crtcs_adjacent(const RRCrtcPtr a, const RRCrtcPtr b) + int bl, br, bt, bb; + int cl, cr, ct, cb; /* the overlap, if any */ + +- crtc_bounds(a, &al, &ar, &at, &ab); +- crtc_bounds(b, &bl, &br, &bt, &bb); ++ if (!cursor_bounds(a, &al, &ar, &at, &ab)) ++ return FALSE; ++ if (!cursor_bounds(b, &bl, &br, &bt, &bb)) ++ return FALSE; + + cl = max(al, bl); + cr = min(ar, br); +@@ -322,7 +333,7 @@ mark_crtcs(rrScrPrivPtr pScrPriv, int *reachable, int cur) + + reachable[cur] = TRUE; + for (i = 0; i < pScrPriv->numCrtcs; ++i) { +- if (reachable[i] || !pScrPriv->crtcs[i]->mode) ++ if (reachable[i]) + continue; + if (crtcs_adjacent(pScrPriv->crtcs[cur], pScrPriv->crtcs[i])) + mark_crtcs(pScrPriv, reachable, i); +@@ -1573,10 +1584,8 @@ static Bool check_all_screen_crtcs(ScreenPtr pScreen, int *x, int *y) + + int left, right, top, bottom; + +- if (!crtc->mode) +- continue; +- +- crtc_bounds(crtc, &left, &right, &top, &bottom); ++ if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) ++ continue; + + if ((*x >= left) && (*x < right) && (*y >= top) && (*y < bottom)) + return TRUE; +@@ -1595,10 +1604,9 @@ static Bool constrain_all_screen_crtcs(DeviceIntPtr pDev, ScreenPtr pScreen, int + int nx, ny; + int left, right, top, bottom; + +- if (!crtc->mode) +- continue; ++ if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) ++ continue; + +- crtc_bounds(crtc, &left, &right, &top, &bottom); + miPointerGetPosition(pDev, &nx, &ny); + + if ((nx >= left) && (nx < right) && (ny >= top) && (ny < bottom)) { +-- +1.9.0 + diff --git a/x11-base/xorg-server/files/xdm-setup.initd-1 b/x11-base/xorg-server/files/xdm-setup.initd-1 new file mode 100644 index 0000000..365664e --- /dev/null +++ b/x11-base/xorg-server/files/xdm-setup.initd-1 @@ -0,0 +1,14 @@ +#!/sbin/runscript +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm-setup.initd-1,v 1.1 2010/04/13 10:07:39 scarabeus Exp $ + +depend() { + need localmount +} + +start() { + if get_bootparam "nox" ; then + touch /etc/.noxdm + fi +} diff --git a/x11-base/xorg-server/files/xdm.confd-4 b/x11-base/xorg-server/files/xdm.confd-4 new file mode 100644 index 0000000..c82fece --- /dev/null +++ b/x11-base/xorg-server/files/xdm.confd-4 @@ -0,0 +1,10 @@ +# We always try and start X on a static VT. The various DMs normally default +# to using VT7. If you wish to use the xdm init script, then you should ensure +# that the VT checked is the same VT your DM wants to use. We do this check to +# ensure that you haven't accidentally configured something to run on the VT +# in your /etc/inittab file so that you don't get a dead keyboard. +CHECKVT=7 + +# What display manager do you use ? [ xdm | gdm | kdm | gpe | entrance ] +# NOTE: If this is set in /etc/rc.conf, that setting will override this one. +DISPLAYMANAGER="xdm" diff --git a/x11-base/xorg-server/files/xdm.initd-11 b/x11-base/xorg-server/files/xdm.initd-11 new file mode 100644 index 0000000..2f7b47c --- /dev/null +++ b/x11-base/xorg-server/files/xdm.initd-11 @@ -0,0 +1,231 @@ +#!/sbin/runscript +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 +# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd-11,v 1.1 2014/04/14 16:19:25 chithanh Exp $ + +# This is here to serve as a note to myself, and future developers. +# +# Any Display manager (gdm,kdm,xdm) has the following problem: if +# it is started before any getty, and no vt is specified, it will +# usually run on vt2. When the getty on vt2 then starts, and the +# DM is already started, the getty will take control of the keyboard, +# leaving us with a "dead" keyboard. +# +# Resolution: add the following line to /etc/inittab +# +# x:a:once:/etc/X11/startDM.sh +# +# and have /etc/X11/startDM.sh start the DM in daemon mode if +# a lock is present (with the info of what DM should be started), +# else just fall through. +# +# How this basically works, is the "a" runlevel is a additional +# runlevel that you can use to fork processes with init, but the +# runlevel never gets changed to this runlevel. Along with the "a" +# runlevel, the "once" key word means that startDM.sh will only be +# run when we specify it to run, thus eliminating respawning +# startDM.sh when "xdm" is not added to the default runlevel, as was +# done previously. +# +# This script then just calls "telinit a", and init will run +# /etc/X11/startDM.sh after the current runlevel completes (this +# script should only be added to the actual runlevel the user is +# using). +# +# Martin Schlemmer +# aka Azarah +# 04 March 2002 + +depend() { + need localmount xdm-setup + + # this should start as early as possible + # we can't do 'before *' as that breaks it + # (#139824) Start after ypbind and autofs for network authentication + # (#145219 #180163) Could use lirc mouse as input device + # (#70689 comment #92) Start after consolefont to avoid display corruption + # (#291269) Start after quota, since some dm need readable home + # (#390609) gdm-3 will fail when dbus is not running + # (#366753) starting keymaps after X causes problems + after bootmisc consolefont modules netmount + after readahead-list ypbind autofs openvpn gpm lircmd + after quota keymaps + before alsasound + + # Start before X + use consolekit dbus xfs +} + +setup_dm() { + local MY_XDM + + MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]') + + # Load our root path from profile.env + # Needed for kdm + PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}") + + NAME= + case "${MY_XDM}" in + kdm|kde) + EXE=/usr/bin/kdm + PIDFILE=/run/kdm.pid + ;; + entrance*) + EXE=/usr/sbin/entrance + PIDFILE=/run/entrance.pid + ;; + gdm|gnome) + # gdm-3 and above has different paths + if [ -f /usr/sbin/gdm ]; then + EXE=/usr/sbin/gdm + PIDFILE=/run/gdm/gdm.pid + START_STOP_ARGS="--background" + AUTOCLEAN_CGROUP="yes" + else + EXE=/usr/bin/gdm + PIDFILE=/run/gdm.pid + fi + [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary + ;; + wdm) + EXE=/usr/bin/wdm + PIDFILE= + ;; + gpe) + EXE=/usr/bin/gpe-dm + PIDFILE=/run/gpe-dm.pid + ;; + lxdm) + EXE=/usr/sbin/lxdm-binary + PIDFILE=/run/lxdm.pid + START_STOP_ARGS="--background" + ;; + lightdm) + EXE=/usr/sbin/lightdm + PIDFILE=/run/lightdm.pid + START_STOP_ARGS="--background" + ;; + sddm) + EXE="/usr/bin/sddm" + START_STOP_ARGS="-m --background" + PIDFILE=/run/sddm.pid + ;; + *) + # first find out if there is such executable + EXE="$(command -v ${MY_XDM} 2>/dev/null)" + PIDFILE="/run/${MY_XDM}.pid" + + # warn user that he is doing sick things if the exe was not found + if [ -z "${EXE}" ]; then + echo "ERROR: Your XDM value is invalid." + echo " No ${MY_XDM} executable could be found on your system." + fi + ;; + esac + + if ! [ -x "${EXE}" ]; then + EXE=/usr/bin/xdm + PIDFILE=/run/xdm.pid + if ! [ -x "/usr/bin/xdm" ]; then + echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm," + echo " or install x11-apps/xdm package" + eend 255 + fi + fi +} + +# Check to see if something is defined on our VT +vtstatic() { + if [ -e /etc/inittab ] ; then + grep -Eq "^[^#]+.*\" /etc/inittab + elif [ -e /etc/ttys ] ; then + grep -q "^ttyv$(($1 - 1))" /etc/ttys + else + return 1 + fi +} + +start() { + local EXE NAME PIDFILE AUTOCLEAN_CGROUP + setup_dm + + if [ -f /etc/.noxdm ]; then + einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed." + rm /etc/.noxdm + return 0 + fi + + ebegin "Setting up ${EXE##*/}" + + # save the prefered DM + save_options "service" "${EXE}" + save_options "name" "${NAME}" + save_options "pidfile" "${PIDFILE}" + save_options "start_stop_args" "${START_STOP_ARGS}" + save_options "autoclean_cgroup" "${AUTOCLEAN_CGROUP:-no}" + + if [ -n "${CHECKVT-y}" ] ; then + if vtstatic "${CHECKVT:-7}" ; then + if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then + ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" + telinit a >/dev/null 2>&1 + return 0 + else + eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" + return 1 + fi + fi + fi + + /etc/X11/startDM.sh + eend 0 +} + +stop() { + local curvt retval + + retval=0 + if [ -t 0 ]; then + if type fgconsole >/dev/null 2>&1; then + curvt=$(fgconsole 2>/dev/null) + else + curvt=$(tty) + case "${curvt}" in + /dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;; + *) curvt= ;; + esac + fi + fi + local myexe myname mypidfile myservice + myexe=$(get_options "service") + myname=$(get_options "name") + mypidfile=$(get_options "pidfile") + myservice=${myexe##*/} + yesno "${rc_cgroup_cleanup:-no}" || rc_cgroup_cleanup=$(get_options "autoclean_cgroup") + + [ -z "${myexe}" ] && return 0 + + ebegin "Stopping ${myservice}" + + if start-stop-daemon --quiet --test --stop --exec "${myexe}"; then + start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \ + ${mypidfile:+--pidfile} ${mypidfile} \ + ${myname:+--name} ${myname} + retval=${?} + fi + + # switch back to original vt + if [ -n "${curvt}" ]; then + if type chvt >/dev/null 2>&1; then + chvt "${curvt}" + else + vidcontrol -s "$((curvt + 1))" + fi + fi + + eend ${retval} "Error stopping ${myservice}" + return ${retval} +} + +# vim: set ts=4 : diff --git a/x11-base/xorg-server/files/xorg-server-1.12-ia64-fix_inx_outx.patch b/x11-base/xorg-server/files/xorg-server-1.12-ia64-fix_inx_outx.patch new file mode 100644 index 0000000..24a5a02 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.12-ia64-fix_inx_outx.patch @@ -0,0 +1,60 @@ +diff -r --context xorg-server-1.12.3/hw/xfree86/common/compiler.h xorg-server-1.12.3-fix/hw/xfree86/common/compiler.h +*** xorg-server-1.12.3/hw/xfree86/common/compiler.h 2012-07-06 07:17:19.000000000 +0200 +--- xorg-server-1.12.3-fix/hw/xfree86/common/compiler.h 2012-08-29 00:14:39.000000000 +0200 +*************** +*** 421,426 **** +--- 421,474 ---- + #include + #endif /* __NetBSD__ */ + ++ #elif defined(linux) && defined(__ia64__) ++ /* for Linux on ia64, we use the LIBC _inx/_outx routines */ ++ /* note that the appropriate setup via "ioperm" needs to be done */ ++ /* *before* any inx/outx is done. */ ++ ++ extern _X_EXPORT void _outb(unsigned char val, unsigned long port); ++ extern _X_EXPORT void _outw(unsigned short val, unsigned long port); ++ extern _X_EXPORT void _outl(unsigned int val, unsigned long port); ++ extern _X_EXPORT unsigned int _inb(unsigned long port); ++ extern _X_EXPORT unsigned int _inw(unsigned long port); ++ extern _X_EXPORT unsigned int _inl(unsigned long port); ++ ++ static __inline__ void ++ outb(unsigned long port, unsigned char val) ++ { ++ _outb(val, port); ++ } ++ ++ static __inline__ void ++ outw(unsigned long port, unsigned short val) ++ { ++ _outw(val, port); ++ } ++ ++ static __inline__ void ++ outl(unsigned long port, unsigned int val) ++ { ++ _outl(val, port); ++ } ++ ++ static __inline__ unsigned int ++ inb(unsigned long port) ++ { ++ return _inb(port); ++ } ++ ++ static __inline__ unsigned int ++ inw(unsigned long port) ++ { ++ return _inw(port); ++ } ++ ++ static __inline__ unsigned int ++ inl(unsigned long port) ++ { ++ return _inl(port); ++ } ++ + #elif (defined(linux) || defined(__FreeBSD__)) && defined(__amd64__) + + #include diff --git a/x11-base/xorg-server/files/xorg-server-1.12-unloadsubmodule.patch b/x11-base/xorg-server/files/xorg-server-1.12-unloadsubmodule.patch new file mode 100644 index 0000000..57c7349 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.12-unloadsubmodule.patch @@ -0,0 +1,53 @@ +diff -u13 -r xorg-server-1.12.3-old/hw/xfree86/loader/loadmod.c xorg-server-1.12.3/hw/xfree86/loader/loadmod.c +--- xorg-server-1.12.3-old/hw/xfree86/loader/loadmod.c 2012-09-05 18:26:42.000000000 +0200 ++++ xorg-server-1.12.3/hw/xfree86/loader/loadmod.c 2012-09-05 18:28:54.000000000 +0200 +@@ -1109,39 +1109,38 @@ + static void + RemoveChild(ModuleDescPtr child) + { + ModuleDescPtr mdp; + ModuleDescPtr prevsib; + ModuleDescPtr parent; + + if (!child->parent) + return; + + parent = child->parent; + if (parent->child == child) { + parent->child = child->sib; +- return; +- } +- +- prevsib = parent->child; +- mdp = prevsib->sib; +- while (mdp && mdp != child) { +- prevsib = mdp; +- mdp = mdp->sib; ++ } ++ else { ++ prevsib = parent->child; ++ mdp = prevsib->sib; ++ while (mdp && mdp != child) { ++ prevsib = mdp; ++ mdp = mdp->sib; ++ } ++ if (mdp == child) ++ prevsib->sib = child->sib; + } +- if (mdp == child) +- prevsib->sib = child->sib; + child->sib = NULL; +- return; + } + + void + LoaderErrorMsg(const char *name, const char *modname, int errmaj, int errmin) + { + const char *msg; + MessageType type = X_ERROR; + + switch (errmaj) { + case LDR_NOERROR: + msg = "no error"; + break; + case LDR_NOMEM: diff --git a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-0.patch b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-0.patch new file mode 100644 index 0000000..9540e31 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-0.patch @@ -0,0 +1,102 @@ +From 81c90dc8f0aae3b65730409b1b615b5fa7280ebd Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Fri, 16 Jan 2015 20:08:59 +0100 +Subject: xkb: Don't swap XkbSetGeometry data in the input buffer + +The XkbSetGeometry request embeds data which needs to be swapped when the +server and the client have different endianess. + +_XkbSetGeometry() invokes functions that swap these data directly in the +input buffer. + +However, ProcXkbSetGeometry() may call _XkbSetGeometry() more than once +(if there is more than one keyboard), thus causing on swapped clients the +same data to be swapped twice in memory, further causing a server crash +because the strings lengths on the second time are way off bounds. + +To allow _XkbSetGeometry() to run reliably more than once with swapped +clients, do not swap the data in the buffer, use variables instead. + +Signed-off-by: Olivier Fourdan +Signed-off-by: Peter Hutterer + +diff --git a/xkb/xkb.c b/xkb/xkb.c +index 15c7f34..b9a3ac4 100644 +--- a/xkb/xkb.c ++++ b/xkb/xkb.c +@@ -4961,14 +4961,13 @@ static char * + _GetCountedString(char **wire_inout, Bool swap) + { + char *wire, *str; +- CARD16 len, *plen; ++ CARD16 len; + + wire = *wire_inout; +- plen = (CARD16 *) wire; ++ len = *(CARD16 *) wire; + if (swap) { +- swaps(plen); ++ swaps(&len); + } +- len = *plen; + str = malloc(len + 1); + if (str) { + memcpy(str, &wire[2], len); +@@ -4985,25 +4984,28 @@ _CheckSetDoodad(char **wire_inout, + { + char *wire; + xkbDoodadWireDesc *dWire; ++ xkbAnyDoodadWireDesc any; ++ xkbTextDoodadWireDesc text; + XkbDoodadPtr doodad; + + dWire = (xkbDoodadWireDesc *) (*wire_inout); ++ any = dWire->any; + wire = (char *) &dWire[1]; + if (client->swapped) { +- swapl(&dWire->any.name); +- swaps(&dWire->any.top); +- swaps(&dWire->any.left); +- swaps(&dWire->any.angle); ++ swapl(&any.name); ++ swaps(&any.top); ++ swaps(&any.left); ++ swaps(&any.angle); + } + CHK_ATOM_ONLY(dWire->any.name); +- doodad = XkbAddGeomDoodad(geom, section, dWire->any.name); ++ doodad = XkbAddGeomDoodad(geom, section, any.name); + if (!doodad) + return BadAlloc; + doodad->any.type = dWire->any.type; + doodad->any.priority = dWire->any.priority; +- doodad->any.top = dWire->any.top; +- doodad->any.left = dWire->any.left; +- doodad->any.angle = dWire->any.angle; ++ doodad->any.top = any.top; ++ doodad->any.left = any.left; ++ doodad->any.angle = any.angle; + switch (doodad->any.type) { + case XkbOutlineDoodad: + case XkbSolidDoodad: +@@ -5026,12 +5028,13 @@ _CheckSetDoodad(char **wire_inout, + dWire->text.colorNdx); + return BadMatch; + } ++ text = dWire->text; + if (client->swapped) { +- swaps(&dWire->text.width); +- swaps(&dWire->text.height); ++ swaps(&text.width); ++ swaps(&text.height); + } +- doodad->text.width = dWire->text.width; +- doodad->text.height = dWire->text.height; ++ doodad->text.width = text.width; ++ doodad->text.height = text.height; + doodad->text.color_ndx = dWire->text.colorNdx; + doodad->text.text = _GetCountedString(&wire, client->swapped); + doodad->text.font = _GetCountedString(&wire, client->swapped); +-- +cgit v0.10.2 + diff --git a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-1.patch b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-1.patch new file mode 100644 index 0000000..be131c2 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-1.patch @@ -0,0 +1,138 @@ +From 20079c36cf7d377938ca5478447d8b9045cb7d43 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Fri, 16 Jan 2015 08:44:45 +0100 +Subject: xkb: Check strings length against request size + +Ensure that the given strings length in an XkbSetGeometry request remain +within the limits of the size of the request. + +Signed-off-by: Olivier Fourdan +Reviewed-by: Peter Hutterer +Signed-off-by: Peter Hutterer + +diff --git a/xkb/xkb.c b/xkb/xkb.c +index b9a3ac4..f3988f9 100644 +--- a/xkb/xkb.c ++++ b/xkb/xkb.c +@@ -4957,25 +4957,29 @@ ProcXkbGetGeometry(ClientPtr client) + + /***====================================================================***/ + +-static char * +-_GetCountedString(char **wire_inout, Bool swap) ++static Status ++_GetCountedString(char **wire_inout, ClientPtr client, char **str) + { +- char *wire, *str; ++ char *wire, *next; + CARD16 len; + + wire = *wire_inout; + len = *(CARD16 *) wire; +- if (swap) { ++ if (client->swapped) { + swaps(&len); + } +- str = malloc(len + 1); +- if (str) { +- memcpy(str, &wire[2], len); +- str[len] = '\0'; +- } +- wire += XkbPaddedSize(len + 2); +- *wire_inout = wire; +- return str; ++ next = wire + XkbPaddedSize(len + 2); ++ /* Check we're still within the size of the request */ ++ if (client->req_len < ++ bytes_to_int32(next - (char *) client->requestBuffer)) ++ return BadValue; ++ *str = malloc(len + 1); ++ if (!*str) ++ return BadAlloc; ++ memcpy(*str, &wire[2], len); ++ *(*str + len) = '\0'; ++ *wire_inout = next; ++ return Success; + } + + static Status +@@ -4987,6 +4991,7 @@ _CheckSetDoodad(char **wire_inout, + xkbAnyDoodadWireDesc any; + xkbTextDoodadWireDesc text; + XkbDoodadPtr doodad; ++ Status status; + + dWire = (xkbDoodadWireDesc *) (*wire_inout); + any = dWire->any; +@@ -5036,8 +5041,14 @@ _CheckSetDoodad(char **wire_inout, + doodad->text.width = text.width; + doodad->text.height = text.height; + doodad->text.color_ndx = dWire->text.colorNdx; +- doodad->text.text = _GetCountedString(&wire, client->swapped); +- doodad->text.font = _GetCountedString(&wire, client->swapped); ++ status = _GetCountedString(&wire, client, &doodad->text.text); ++ if (status != Success) ++ return status; ++ status = _GetCountedString(&wire, client, &doodad->text.font); ++ if (status != Success) { ++ free (doodad->text.text); ++ return status; ++ } + break; + case XkbIndicatorDoodad: + if (dWire->indicator.onColorNdx >= geom->num_colors) { +@@ -5072,7 +5083,9 @@ _CheckSetDoodad(char **wire_inout, + } + doodad->logo.color_ndx = dWire->logo.colorNdx; + doodad->logo.shape_ndx = dWire->logo.shapeNdx; +- doodad->logo.logo_name = _GetCountedString(&wire, client->swapped); ++ status = _GetCountedString(&wire, client, &doodad->logo.logo_name); ++ if (status != Success) ++ return status; + break; + default: + client->errorValue = _XkbErrCode2(0x4F, dWire->any.type); +@@ -5304,18 +5317,20 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) + char *wire; + + wire = (char *) &req[1]; +- geom->label_font = _GetCountedString(&wire, client->swapped); ++ status = _GetCountedString(&wire, client, &geom->label_font); ++ if (status != Success) ++ return status; + + for (i = 0; i < req->nProperties; i++) { + char *name, *val; + +- name = _GetCountedString(&wire, client->swapped); +- if (!name) +- return BadAlloc; +- val = _GetCountedString(&wire, client->swapped); +- if (!val) { ++ status = _GetCountedString(&wire, client, &name); ++ if (status != Success) ++ return status; ++ status = _GetCountedString(&wire, client, &val); ++ if (status != Success) { + free(name); +- return BadAlloc; ++ return status; + } + if (XkbAddGeomProperty(geom, name, val) == NULL) { + free(name); +@@ -5349,9 +5364,9 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) + for (i = 0; i < req->nColors; i++) { + char *name; + +- name = _GetCountedString(&wire, client->swapped); +- if (!name) +- return BadAlloc; ++ status = _GetCountedString(&wire, client, &name); ++ if (status != Success) ++ return status; + if (!XkbAddGeomColor(geom, name, geom->num_colors)) { + free(name); + return BadAlloc; +-- +cgit v0.10.2 + diff --git a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-1.patch b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-1.patch new file mode 100644 index 0000000..a9f8030 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-1.patch @@ -0,0 +1,33 @@ +From c4534a38b68aa07fb82318040dc8154fb48a9588 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 5 May 2015 16:43:42 -0400 +Subject: xwayland: Enable access control on open sockets [CVE-2015-3164 1/3] + +Xwayland currently allows wide-open access to the X sockets +it listens on, ignoring Xauth access control. + +This commit makes sure to enable access control on the sockets, +so one user can't snoop on another user's X-over-wayland +applications. + +Signed-off-by: Ray Strode +Reviewed-by: Daniel Stone +Reviewed-by: Alan Coopersmith +Signed-off-by: Keith Packard + +diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c +index 7e8d667..c5bee77 100644 +--- a/hw/xwayland/xwayland.c ++++ b/hw/xwayland/xwayland.c +@@ -483,7 +483,7 @@ listen_on_fds(struct xwl_screen *xwl_screen) + int i; + + for (i = 0; i < xwl_screen->listen_fd_count; i++) +- ListenOnOpenFD(xwl_screen->listen_fds[i], TRUE); ++ ListenOnOpenFD(xwl_screen->listen_fds[i], FALSE); + } + + static void +-- +cgit v0.10.2 + diff --git a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-2.patch b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-2.patch new file mode 100644 index 0000000..47b323f --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-2.patch @@ -0,0 +1,246 @@ +From 4b4b9086d02b80549981d205fb1f495edc373538 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 5 May 2015 16:43:43 -0400 +Subject: os: support new implicit local user access mode [CVE-2015-3164 2/3] + +If the X server is started without a '-auth' argument, then +it gets started wide open to all local users on the system. + +This isn't a great default access model, but changing it in +Xorg at this point would break backward compatibility. + +Xwayland, on the other hand is new, and much more targeted +in scope. It could, in theory, be changed to allow the much +more secure default of a "user who started X server can connect +clients to that server." + +This commit paves the way for that change, by adding a mechanism +for DDXs to opt-in to that behavior. They merely need to call + +LocalAccessScopeUser() + +in their init functions. + +A subsequent commit will add that call for Xwayland. + +Signed-off-by: Ray Strode +Reviewed-by: Daniel Stone +Reviewed-by: Alan Coopersmith +Signed-off-by: Keith Packard + +diff --git a/include/os.h b/include/os.h +index 6638c84..b2b96c8 100644 +--- a/include/os.h ++++ b/include/os.h +@@ -431,11 +431,28 @@ extern _X_EXPORT void + ResetHosts(const char *display); + + extern _X_EXPORT void ++EnableLocalAccess(void); ++ ++extern _X_EXPORT void ++DisableLocalAccess(void); ++ ++extern _X_EXPORT void + EnableLocalHost(void); + + extern _X_EXPORT void + DisableLocalHost(void); + ++#ifndef NO_LOCAL_CLIENT_CRED ++extern _X_EXPORT void ++EnableLocalUser(void); ++ ++extern _X_EXPORT void ++DisableLocalUser(void); ++ ++extern _X_EXPORT void ++LocalAccessScopeUser(void); ++#endif ++ + extern _X_EXPORT void + AccessUsingXdmcp(void); + +diff --git a/os/access.c b/os/access.c +index 8fa028e..75e7a69 100644 +--- a/os/access.c ++++ b/os/access.c +@@ -102,6 +102,10 @@ SOFTWARE. + #include + #include + ++#ifndef NO_LOCAL_CLIENT_CRED ++#include ++#endif ++ + #if defined(TCPCONN) || defined(STREAMSCONN) + #include + #endif /* TCPCONN || STREAMSCONN */ +@@ -225,6 +229,13 @@ static int LocalHostEnabled = FALSE; + static int LocalHostRequested = FALSE; + static int UsingXdmcp = FALSE; + ++static enum { ++ LOCAL_ACCESS_SCOPE_HOST = 0, ++#ifndef NO_LOCAL_CLIENT_CRED ++ LOCAL_ACCESS_SCOPE_USER, ++#endif ++} LocalAccessScope; ++ + /* FamilyServerInterpreted implementation */ + static Bool siAddrMatch(int family, void *addr, int len, HOST * host, + ClientPtr client); +@@ -237,6 +248,21 @@ static void siTypesInitialize(void); + */ + + void ++EnableLocalAccess(void) ++{ ++ switch (LocalAccessScope) { ++ case LOCAL_ACCESS_SCOPE_HOST: ++ EnableLocalHost(); ++ break; ++#ifndef NO_LOCAL_CLIENT_CRED ++ case LOCAL_ACCESS_SCOPE_USER: ++ EnableLocalUser(); ++ break; ++#endif ++ } ++} ++ ++void + EnableLocalHost(void) + { + if (!UsingXdmcp) { +@@ -249,6 +275,21 @@ EnableLocalHost(void) + * called when authorization is enabled to keep us secure + */ + void ++DisableLocalAccess(void) ++{ ++ switch (LocalAccessScope) { ++ case LOCAL_ACCESS_SCOPE_HOST: ++ DisableLocalHost(); ++ break; ++#ifndef NO_LOCAL_CLIENT_CRED ++ case LOCAL_ACCESS_SCOPE_USER: ++ DisableLocalUser(); ++ break; ++#endif ++ } ++} ++ ++void + DisableLocalHost(void) + { + HOST *self; +@@ -262,6 +303,74 @@ DisableLocalHost(void) + } + } + ++#ifndef NO_LOCAL_CLIENT_CRED ++static int GetLocalUserAddr(char **addr) ++{ ++ static const char *type = "localuser"; ++ static const char delimiter = '\0'; ++ static const char *value; ++ struct passwd *pw; ++ int length = -1; ++ ++ pw = getpwuid(getuid()); ++ ++ if (pw == NULL || pw->pw_name == NULL) ++ goto out; ++ ++ value = pw->pw_name; ++ ++ length = asprintf(addr, "%s%c%s", type, delimiter, value); ++ ++ if (length == -1) { ++ goto out; ++ } ++ ++ /* Trailing NUL */ ++ length++; ++ ++out: ++ return length; ++} ++ ++void ++EnableLocalUser(void) ++{ ++ char *addr = NULL; ++ int length = -1; ++ ++ length = GetLocalUserAddr(&addr); ++ ++ if (length == -1) ++ return; ++ ++ NewHost(FamilyServerInterpreted, addr, length, TRUE); ++ ++ free(addr); ++} ++ ++void ++DisableLocalUser(void) ++{ ++ char *addr = NULL; ++ int length = -1; ++ ++ length = GetLocalUserAddr(&addr); ++ ++ if (length == -1) ++ return; ++ ++ RemoveHost(NULL, FamilyServerInterpreted, length, addr); ++ ++ free(addr); ++} ++ ++void ++LocalAccessScopeUser(void) ++{ ++ LocalAccessScope = LOCAL_ACCESS_SCOPE_USER; ++} ++#endif ++ + /* + * called at init time when XDMCP will be used; xdmcp always + * adds local hosts manually when needed +diff --git a/os/auth.c b/os/auth.c +index 5fcb538..7da6fc6 100644 +--- a/os/auth.c ++++ b/os/auth.c +@@ -181,11 +181,11 @@ CheckAuthorization(unsigned int name_length, + + /* + * If the authorization file has at least one entry for this server, +- * disable local host access. (loadauth > 0) ++ * disable local access. (loadauth > 0) + * + * If there are zero entries (either initially or when the + * authorization file is later reloaded), or if a valid +- * authorization file was never loaded, enable local host access. ++ * authorization file was never loaded, enable local access. + * (loadauth == 0 || !loaded) + * + * If the authorization file was loaded initially (with valid +@@ -194,11 +194,11 @@ CheckAuthorization(unsigned int name_length, + */ + + if (loadauth > 0) { +- DisableLocalHost(); /* got at least one */ ++ DisableLocalAccess(); /* got at least one */ + loaded = TRUE; + } + else if (loadauth == 0 || !loaded) +- EnableLocalHost(); ++ EnableLocalAccess(); + } + if (name_length) { + for (i = 0; i < NUM_AUTHORIZATION; i++) { +-- +cgit v0.10.2 + diff --git a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-3.patch b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-3.patch new file mode 100644 index 0000000..7e8f173 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-3164-3.patch @@ -0,0 +1,34 @@ +From 76636ac12f2d1dbdf7be08222f80e7505d53c451 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 5 May 2015 16:43:44 -0400 +Subject: xwayland: default to local user if no xauth file given. + [CVE-2015-3164 3/3] + +Right now if "-auth" isn't passed on the command line, we let +any user on the system connect to the Xwayland server. + +That's clearly suboptimal, given Xwayland is generally designed +to be used by one user at a time. + +This commit changes the behavior, so only the user who started the +X server can connect clients to it. + +Signed-off-by: Ray Strode +Reviewed-by: Daniel Stone +Reviewed-by: Alan Coopersmith +Signed-off-by: Keith Packard + +diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c +index c5bee77..bc92beb 100644 +--- a/hw/xwayland/xwayland.c ++++ b/hw/xwayland/xwayland.c +@@ -702,4 +702,6 @@ InitOutput(ScreenInfo * screen_info, int argc, char **argv) + if (AddScreen(xwl_screen_init, argc, argv) == -1) { + FatalError("Couldn't add screen\n"); + } ++ ++ LocalAccessScopeUser(); + } +-- +cgit v0.10.2 + diff --git a/x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch b/x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch new file mode 100644 index 0000000..84485c9 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch @@ -0,0 +1,59 @@ +diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h +index 1653574..fe881ee 100644 +--- a/hw/xfree86/common/compiler.h ++++ b/hw/xfree86/common/compiler.h +@@ -286,6 +286,54 @@ extern _X_EXPORT unsigned int inl(unsigned int port); + #include + #endif /* __NetBSD__ */ + ++#elif defined(linux) && defined(__ia64__) ++/* for Linux on ia64, we use the LIBC _inx/_outx routines */ ++/* note that the appropriate setup via "ioperm" needs to be done */ ++/* *before* any inx/outx is done. */ ++ ++extern _X_EXPORT void _outb(unsigned char val, unsigned long port); ++extern _X_EXPORT void _outw(unsigned short val, unsigned long port); ++extern _X_EXPORT void _outl(unsigned int val, unsigned long port); ++extern _X_EXPORT unsigned int _inb(unsigned long port); ++extern _X_EXPORT unsigned int _inw(unsigned long port); ++extern _X_EXPORT unsigned int _inl(unsigned long port); ++ ++static __inline__ void ++outb(unsigned long port, unsigned char val) ++{ ++ _outb(val, port); ++} ++ ++static __inline__ void ++outw(unsigned long port, unsigned short val) ++{ ++ _outw(val, port); ++} ++ ++static __inline__ void ++outl(unsigned long port, unsigned int val) ++{ ++ _outl(val, port); ++} ++ ++static __inline__ unsigned int ++inb(unsigned long port) ++{ ++ return _inb(port); ++} ++ ++static __inline__ unsigned int ++inw(unsigned long port) ++{ ++ return _inw(port); ++} ++ ++static __inline__ unsigned int ++inl(unsigned long port) ++{ ++ return _inl(port); ++} ++ + #elif defined(__amd64__) + + #include diff --git a/x11-base/xorg-server/files/xorg-server-1.17-randr-Account-for-panning-and-transforms-when-constr.patch b/x11-base/xorg-server/files/xorg-server-1.17-randr-Account-for-panning-and-transforms-when-constr.patch new file mode 100644 index 0000000..0fdfb65 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-randr-Account-for-panning-and-transforms-when-constr.patch @@ -0,0 +1,141 @@ +From 9365c02aba72fd370c7080c875d196f14d8d93bd Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Sat, 1 Mar 2014 08:25:18 +0000 +Subject: [PATCH] randr: Account for panning and transforms when constraining + the cursor + +commit 56c90e29f04727c903bd0f084d23bf44eb1a0a11 [1.10.99.901] +Author: Adam Jackson +Date: Mon Nov 15 14:29:14 2010 -0500 + + randr: Add RRConstrainCursorHarder + +introduced a regression as it ignored the effect of panning and +transforms upon the crtc bounds. The result was that the cursor would be +constrained to the visible area even though the panning arena was much +bigger, or the cursor was constrained to a region that did not even +match the visible area when the output was transformed or reflected. + +This supercedes the hack introduced by +commit 1bf81af4a6be1113bcc3b940ab264d5c9e0f0c5d [1.12.99.904] +Author: Rui Matos +Date: Mon Jul 30 14:32:12 2012 -0400 + + xf86RandR12: Don't call ConstrainCursorHarder() if panning is enabled +which disabled the cursor constraints if a panning mode was active, but +did not fix the regression with arbitrary output transforms. + +Signed-off-by: Chris Wilson +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39949 +Cc: Adam Jackson +Cc: Rui Matos +--- + randr/rrcrtc.c | 60 +++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 34 insertions(+), 26 deletions(-) + +diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c +index 6e181ba..900c7db 100644 +--- a/randr/rrcrtc.c ++++ b/randr/rrcrtc.c +@@ -273,25 +273,34 @@ RRCrtcPendingProperties(RRCrtcPtr crtc) + return FALSE; + } + +-static void +-crtc_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) ++static Bool ++cursor_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) + { +- *left = crtc->x; +- *top = crtc->y; ++ rrScrPriv(crtc->pScreen); ++ BoxRec bounds; + +- switch (crtc->rotation) { +- case RR_Rotate_0: +- case RR_Rotate_180: +- default: +- *right = crtc->x + crtc->mode->mode.width; +- *bottom = crtc->y + crtc->mode->mode.height; +- return; +- case RR_Rotate_90: +- case RR_Rotate_270: +- *right = crtc->x + crtc->mode->mode.height; +- *bottom = crtc->y + crtc->mode->mode.width; +- return; ++ if (crtc->mode == NULL) ++ return FALSE; ++ ++ memset(&bounds, 0, sizeof(bounds)); ++ if (pScrPriv->rrGetPanning) ++ pScrPriv->rrGetPanning(crtc->pScreen, crtc, NULL, &bounds, NULL); ++ ++ if (bounds.y2 <= bounds.y1 || bounds.x2 <= bounds.x1) { ++ bounds.x1 = 0; ++ bounds.y1 = 0; ++ bounds.x2 = crtc->mode->mode.width; ++ bounds.y2 = crtc->mode->mode.height; + } ++ ++ pixman_f_transform_bounds(&crtc->f_transform, &bounds); ++ ++ *left = bounds.x1; ++ *right = bounds.x2; ++ *top = bounds.y1; ++ *bottom = bounds.y2; ++ ++ return TRUE; + } + + /* overlapping counts as adjacent */ +@@ -303,8 +312,10 @@ crtcs_adjacent(const RRCrtcPtr a, const RRCrtcPtr b) + int bl, br, bt, bb; + int cl, cr, ct, cb; /* the overlap, if any */ + +- crtc_bounds(a, &al, &ar, &at, &ab); +- crtc_bounds(b, &bl, &br, &bt, &bb); ++ if (!cursor_bounds(a, &al, &ar, &at, &ab)) ++ return FALSE; ++ if (!cursor_bounds(b, &bl, &br, &bt, &bb)) ++ return FALSE; + + cl = max(al, bl); + cr = min(ar, br); +@@ -322,7 +333,7 @@ mark_crtcs(rrScrPrivPtr pScrPriv, int *reachable, int cur) + + reachable[cur] = TRUE; + for (i = 0; i < pScrPriv->numCrtcs; ++i) { +- if (reachable[i] || !pScrPriv->crtcs[i]->mode) ++ if (reachable[i]) + continue; + if (crtcs_adjacent(pScrPriv->crtcs[cur], pScrPriv->crtcs[i])) + mark_crtcs(pScrPriv, reachable, i); +@@ -1573,10 +1584,8 @@ static Bool check_all_screen_crtcs(ScreenPtr pScreen, int *x, int *y) + + int left, right, top, bottom; + +- if (!crtc->mode) +- continue; +- +- crtc_bounds(crtc, &left, &right, &top, &bottom); ++ if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) ++ continue; + + if ((*x >= left) && (*x < right) && (*y >= top) && (*y < bottom)) + return TRUE; +@@ -1595,10 +1604,9 @@ static Bool constrain_all_screen_crtcs(DeviceIntPtr pDev, ScreenPtr pScreen, int + int nx, ny; + int left, right, top, bottom; + +- if (!crtc->mode) +- continue; ++ if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) ++ continue; + +- crtc_bounds(crtc, &left, &right, &top, &bottom); + miPointerGetPosition(pDev, &nx, &ny); + + if ((nx >= left) && (nx < right) && (ny >= top) && (ny < bottom)) { +-- +1.9.0 + diff --git a/x11-base/xorg-server/files/xorg-server-1.17-support-multiple-Files-sections.patch b/x11-base/xorg-server/files/xorg-server-1.17-support-multiple-Files-sections.patch new file mode 100644 index 0000000..789a118 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17-support-multiple-Files-sections.patch @@ -0,0 +1,65 @@ +From a140d7ce3f37f30b4fed27c5a70ebcc4ed13c612 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Tue, 24 Feb 2015 12:57:24 +0100 +Subject: [PATCH] config: Support multiple 'Files' sections + +--- + hw/xfree86/parser/Files.c | 8 ++++++-- + hw/xfree86/parser/configProcs.h | 2 +- + hw/xfree86/parser/read.c | 2 +- + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/hw/xfree86/parser/Files.c b/hw/xfree86/parser/Files.c +index 849bf92..5cc3ec7 100644 +--- a/hw/xfree86/parser/Files.c ++++ b/hw/xfree86/parser/Files.c +@@ -76,14 +76,18 @@ static xf86ConfigSymTabRec FilesTab[] = { + #define CLEANUP xf86freeFiles + + XF86ConfFilesPtr +-xf86parseFilesSection(void) ++xf86parseFilesSection(XF86ConfFilesPtr ptr) + { + int i, j; + int k, l; + char *str; + int token; + +- parsePrologue(XF86ConfFilesPtr, XF86ConfFilesRec) ++ if (!ptr) { ++ if( (ptr=calloc(1,sizeof(XF86ConfFilesRec))) == NULL ) { ++ return NULL; ++ } ++ } + + while ((token = xf86getToken(FilesTab)) != ENDSECTION) { + switch (token) { +diff --git a/hw/xfree86/parser/configProcs.h b/hw/xfree86/parser/configProcs.h +index 774e2a2..b9fdebb 100644 +--- a/hw/xfree86/parser/configProcs.h ++++ b/hw/xfree86/parser/configProcs.h +@@ -37,7 +37,7 @@ void xf86freeDeviceList(XF86ConfDevicePtr ptr); + int xf86validateDevice(XF86ConfigPtr p); + + /* Files.c */ +-XF86ConfFilesPtr xf86parseFilesSection(void); ++XF86ConfFilesPtr xf86parseFilesSection(XF86ConfFilesPtr ptr); + void xf86printFileSection(FILE * cf, XF86ConfFilesPtr ptr); + void xf86freeFiles(XF86ConfFilesPtr p); + +diff --git a/hw/xfree86/parser/read.c b/hw/xfree86/parser/read.c +index 327c02a..e0d6139 100644 +--- a/hw/xfree86/parser/read.c ++++ b/hw/xfree86/parser/read.c +@@ -110,7 +110,7 @@ xf86readConfigFile(void) + if (xf86nameCompare(xf86_lex_val.str, "files") == 0) { + free(xf86_lex_val.str); + xf86_lex_val.str = NULL; +- HANDLE_RETURN(conf_files, xf86parseFilesSection()); ++ HANDLE_RETURN(conf_files, xf86parseFilesSection(ptr->conf_files)); + } + else if (xf86nameCompare(xf86_lex_val.str, "serverflags") == 0) { + free(xf86_lex_val.str); +-- +2.3.0 + diff --git a/x11-base/xorg-server/files/xorg-server-1.17.2-uninit-clientsWritable.patch b/x11-base/xorg-server/files/xorg-server-1.17.2-uninit-clientsWritable.patch new file mode 100644 index 0000000..6818196 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.17.2-uninit-clientsWritable.patch @@ -0,0 +1,65 @@ +https://bugs.gentoo.org/show_bug.cgi?id=555776 + +From 7cc7ffd25d5e50b54cb942d07d4cb160f20ff9c5 Mon Sep 17 00:00:00 2001 +From: Martin Peres +Date: Fri, 17 Jul 2015 17:21:26 +0300 +Subject: [PATCH] os: make sure the clientsWritable fd_set is initialized + before use + +In WaitForSomething(), the fd_set clientsWritable may be used unitialized when +the boolean AnyClientsWriteBlocked is set in the WakeupHandler(). This leads to +a crash in FlushAllOutput() after x11proto's commit +2c94cdb453bc641246cc8b9a876da9799bee1ce7. + +The problem did not manifest before because both the XFD_SIZE and the maximum +number of clients were set to 256. As the connectionTranslation table was +initalized for the 256 clients to 0, the test on the index not being 0 was +aborting before dereferencing the client #0. + +As of commit 2c94cdb453bc641246cc8b9a876da9799bee1ce7 in x11proto, the XFD_SIZE +got bumped to 512. This lead the OutputPending fd_set to have any fd above 256 +to be uninitialized which in turns lead to reading an index after the end of +the ConnectionTranslation table. This index would then be used to find the +client corresponding to the fd marked as pending writes and would also result +to an out-of-bound access which would usually be the fatal one. + +Fix this by zeroing the clientsWritable fd_set at the beginning of +WaitForSomething(). In this case, the bottom part of the loop, which would +indirectly call FlushAllOutput, will not do any work but the next call to +select will result in the execution of the right codepath. This is exactly what +we want because we need to know the writable clients before handling them. In +the end, it also makes sure that the fds above MaxClient are initialized, +preventing the crash in FlushAllOutput(). + +Thanks to everyone involved in tracking this one down! + +Reported-by: Karol Herbst +Reported-by: Tobias Klausmann +Signed-off-by: Martin Peres +Tested-by: Martin Peres +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91316 +Cc: Ilia Mirkin +Cc: Martin Peres +Cc: Olivier Fourdan +Cc: Alan Coopersmith +--- + os/WaitFor.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/os/WaitFor.c b/os/WaitFor.c +index 431f1a6..993c14e 100644 +--- a/os/WaitFor.c ++++ b/os/WaitFor.c +@@ -158,6 +158,7 @@ WaitForSomething(int *pClientsReady) + Bool someReady = FALSE; + + FD_ZERO(&clientsReadable); ++ FD_ZERO(&clientsWritable); + + if (nready) + SmartScheduleStopTimer(); +-- +2.4.5 + diff --git a/x11-base/xorg-server/files/xorg-server-1.18-support-multiple-Files-sections.patch b/x11-base/xorg-server/files/xorg-server-1.18-support-multiple-Files-sections.patch new file mode 100644 index 0000000..0a61145 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.18-support-multiple-Files-sections.patch @@ -0,0 +1,53 @@ +See http://lists.x.org/archives/xorg-devel/2015-February/045755.html + +diff --git a/hw/xfree86/parser/Files.c b/hw/xfree86/parser/Files.c +index 849bf92..5cc3ec7 100644 +--- a/hw/xfree86/parser/Files.c ++++ b/hw/xfree86/parser/Files.c +@@ -76,14 +76,18 @@ static xf86ConfigSymTabRec FilesTab[] = { + #define CLEANUP xf86freeFiles + + XF86ConfFilesPtr +-xf86parseFilesSection(void) ++xf86parseFilesSection(XF86ConfFilesPtr ptr) + { + int i, j; + int k, l; + char *str; + int token; + +- parsePrologue(XF86ConfFilesPtr, XF86ConfFilesRec) ++ if (!ptr) { ++ if( (ptr=calloc(1,sizeof(XF86ConfFilesRec))) == NULL ) { ++ return NULL; ++ } ++ } + + while ((token = xf86getToken(FilesTab)) != ENDSECTION) { + switch (token) { +diff --git a/hw/xfree86/parser/configProcs.h b/hw/xfree86/parser/configProcs.h +index 171f8e8..e8199fe 100644 +--- a/hw/xfree86/parser/configProcs.h ++++ b/hw/xfree86/parser/configProcs.h +@@ -36,7 +36,7 @@ void xf86freeDeviceList(XF86ConfDevicePtr ptr); + int xf86validateDevice(XF86ConfigPtr p); + + /* Files.c */ +-XF86ConfFilesPtr xf86parseFilesSection(void); ++XF86ConfFilesPtr xf86parseFilesSection(XF86ConfFilesPtr ptr); + void xf86printFileSection(FILE * cf, XF86ConfFilesPtr ptr); + void xf86freeFiles(XF86ConfFilesPtr p); + +diff --git a/hw/xfree86/parser/read.c b/hw/xfree86/parser/read.c +index 327c02a..e0d6139 100644 +--- a/hw/xfree86/parser/read.c ++++ b/hw/xfree86/parser/read.c +@@ -110,7 +110,7 @@ xf86readConfigFile(void) + if (xf86nameCompare(xf86_lex_val.str, "files") == 0) { + free(xf86_lex_val.str); + xf86_lex_val.str = NULL; +- HANDLE_RETURN(conf_files, xf86parseFilesSection()); ++ HANDLE_RETURN(conf_files, xf86parseFilesSection(ptr->conf_files)); + } + else if (xf86nameCompare(xf86_lex_val.str, "serverflags") == 0) { + free(xf86_lex_val.str); diff --git a/x11-base/xorg-server/files/xorg-server-1.18-sysmacros.patch b/x11-base/xorg-server/files/xorg-server-1.18-sysmacros.patch new file mode 100644 index 0000000..5a3dea3 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.18-sysmacros.patch @@ -0,0 +1,59 @@ +From 1df7e4f5c1090631ff6584176f7d1370d08bc15e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Sat, 16 Apr 2016 13:04:59 +0200 +Subject: [PATCH] Include sys/sysmacros.h for major(3) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +GNU major(3) manual page prescribes , but that does not work with +sys-libs/glibc-2.23-r1. + +https://bugs.gentoo.org/show_bug.cgi?id=580044 +Signed-off-by: Petr Písař +--- + config/udev.c | 1 + + hw/xfree86/common/xf86Xinput.c | 2 ++ + hw/xfree86/os-support/linux/lnx_init.c | 1 + + 3 files changed, 4 insertions(+) + +diff --git a/config/udev.c b/config/udev.c +index 28c2658..62908f4 100644 +--- a/config/udev.c ++++ b/config/udev.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #include "input.h" + #include "inputstr.h" +diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c +index c56a2b9..d33c165 100644 +--- a/hw/xfree86/common/xf86Xinput.c ++++ b/hw/xfree86/common/xf86Xinput.c +@@ -86,6 +86,8 @@ + #include + #ifdef HAVE_SYS_MKDEV_H + #include /* for major() & minor() on Solaris */ ++#else ++#include + #endif + + #include "mi.h" +diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c +index 1ed213c..6caf531 100644 +--- a/hw/xfree86/os-support/linux/lnx_init.c ++++ b/hw/xfree86/os-support/linux/lnx_init.c +@@ -38,6 +38,7 @@ + #include "xf86_OSlib.h" + + #include ++#include + + #ifndef K_OFF + #define K_OFF 0x4 +-- +2.8.1 + diff --git a/x11-base/xorg-server/files/xorg-server-1.19-randr-Account-for-panning-and-transforms-when-constr.patch b/x11-base/xorg-server/files/xorg-server-1.19-randr-Account-for-panning-and-transforms-when-constr.patch new file mode 100644 index 0000000..55e284f --- /dev/null +++ b/x11-base/xorg-server/files/xorg-server-1.19-randr-Account-for-panning-and-transforms-when-constr.patch @@ -0,0 +1,101 @@ +--- a/randr/rrcrtc.c 2017-03-03 00:03:58.000000000 +0100 ++++ b/randr/rrcrtc.c 2017-03-16 15:37:26.104942804 +0100 +@@ -275,25 +275,34 @@ + return FALSE; + } + +-static void +-crtc_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) ++static Bool ++cursor_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) + { +- *left = crtc->x; +- *top = crtc->y; ++ rrScrPriv(crtc->pScreen); ++ BoxRec bounds; + +- switch (crtc->rotation & 0xf) { +- case RR_Rotate_0: +- case RR_Rotate_180: +- default: +- *right = crtc->x + crtc->mode->mode.width; +- *bottom = crtc->y + crtc->mode->mode.height; +- return; +- case RR_Rotate_90: +- case RR_Rotate_270: +- *right = crtc->x + crtc->mode->mode.height; +- *bottom = crtc->y + crtc->mode->mode.width; +- return; ++ if (crtc->mode == NULL) ++ return FALSE; ++ ++ memset(&bounds, 0, sizeof(bounds)); ++ if (pScrPriv->rrGetPanning) ++ pScrPriv->rrGetPanning(crtc->pScreen, crtc, NULL, &bounds, NULL); ++ ++ if (bounds.y2 <= bounds.y1 || bounds.x2 <= bounds.x1) { ++ bounds.x1 = 0; ++ bounds.y1 = 0; ++ bounds.x2 = crtc->mode->mode.width; ++ bounds.y2 = crtc->mode->mode.height; + } ++ ++ pixman_f_transform_bounds(&crtc->f_transform, &bounds); ++ ++ *left = bounds.x1; ++ *right = bounds.x2; ++ *top = bounds.y1; ++ *bottom = bounds.y2; ++ ++ return TRUE; + } + + /* overlapping counts as adjacent */ +@@ -305,8 +314,10 @@ + int bl, br, bt, bb; + int cl, cr, ct, cb; /* the overlap, if any */ + +- crtc_bounds(a, &al, &ar, &at, &ab); +- crtc_bounds(b, &bl, &br, &bt, &bb); ++ if (!cursor_bounds(a, &al, &ar, &at, &ab)) ++ return FALSE; ++ if (!cursor_bounds(b, &bl, &br, &bt, &bb)) ++ return FALSE; + + cl = max(al, bl); + cr = min(ar, br); +@@ -324,7 +335,7 @@ + + reachable[cur] = TRUE; + for (i = 0; i < pScrPriv->numCrtcs; ++i) { +- if (reachable[i] || !pScrPriv->crtcs[i]->mode) ++ if (reachable[i]) + continue; + if (crtcs_adjacent(pScrPriv->crtcs[cur], pScrPriv->crtcs[i])) + mark_crtcs(pScrPriv, reachable, i); +@@ -1779,10 +1790,8 @@ + + int left, right, top, bottom; + +- if (!crtc->mode) +- continue; +- +- crtc_bounds(crtc, &left, &right, &top, &bottom); ++ if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) ++ continue; + + if ((*x >= left) && (*x < right) && (*y >= top) && (*y < bottom)) + return TRUE; +@@ -1802,10 +1811,9 @@ + int nx, ny; + int left, right, top, bottom; + +- if (!crtc->mode) +- continue; ++ if (!cursor_bounds(crtc, &left, &right, &top, &bottom)) ++ continue; + +- crtc_bounds(crtc, &left, &right, &top, &bottom); + miPointerGetPosition(pDev, &nx, &ny); + + if ((nx >= left) && (nx < right) && (ny >= top) && (ny < bottom)) { diff --git a/x11-base/xorg-server/files/xorg-sets.conf b/x11-base/xorg-server/files/xorg-sets.conf new file mode 100644 index 0000000..5cd8112 --- /dev/null +++ b/x11-base/xorg-server/files/xorg-sets.conf @@ -0,0 +1,6 @@ +# Rebuild all X11 modules (mostly useful after xorg-server ABI change). +[x11-module-rebuild] +class = portage.sets.dbapi.VariableSet +world-candidate = false +variable = CATEGORY +includes = x11-drivers diff --git a/x11-base/xorg-server/xorg-server-1.15.2-r1.ebuild b/x11-base/xorg-server/xorg-server-1.15.2-r1.ebuild new file mode 100644 index 0000000..8fe24db --- /dev/null +++ b/x11-base/xorg-server/xorg-server-1.15.2-r1.ebuild @@ -0,0 +1,257 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/xorg-server-1.15.2-r1.ebuild,v 1.9 2015/01/17 20:09:46 maekke Exp $ + +EAPI=5 + +XORG_EAUTORECONF=yes +XORG_DOC=doc +inherit xorg-2 multilib versionator flag-o-matic +EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/xserver" + +DESCRIPTION="X.Org X servers" +SLOT="0/${PV}" +KEYWORDS="~alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux" + +SRC_URI="${SRC_URI} mirror://gentoo/${PN}-1.16-cve-2014-8091..8103.patches.tar.xz" + +IUSE_SERVERS="dmx kdrive xnest xorg xvfb" +IUSE="${IUSE_SERVERS} ipv6 minimal nptl selinux +suid tslib +udev unwind" + +CDEPEND=">=app-admin/eselect-opengl-1.0.8 + dev-libs/openssl + media-libs/freetype + >=x11-apps/iceauth-1.0.2 + >=x11-apps/rgb-1.0.3 + >=x11-apps/xauth-1.0.3 + x11-apps/xkbcomp + >=x11-libs/libdrm-2.4.20 + >=x11-libs/libpciaccess-0.12.901 + >=x11-libs/libXau-1.0.4 + >=x11-libs/libXdmcp-1.0.2 + >=x11-libs/libXfont-1.4.2 + >=x11-libs/libxkbfile-1.0.4 + >=x11-libs/libxshmfence-1.1 + >=x11-libs/pixman-0.27.2 + >=x11-libs/xtrans-1.3.2 + >=x11-misc/xbitmaps-1.0.1 + >=x11-misc/xkeyboard-config-2.4.1-r3 + dmx? ( + x11-libs/libXt + >=x11-libs/libdmx-1.0.99.1 + >=x11-libs/libX11-1.1.5 + >=x11-libs/libXaw-1.0.4 + >=x11-libs/libXext-1.0.99.4 + >=x11-libs/libXfixes-5.0 + >=x11-libs/libXi-1.2.99.1 + >=x11-libs/libXmu-1.0.3 + x11-libs/libXrender + >=x11-libs/libXres-1.0.3 + >=x11-libs/libXtst-1.0.99.2 + ) + kdrive? ( + >=x11-libs/libXext-1.0.5 + x11-libs/libXv + ) + !minimal? ( + >=x11-libs/libX11-1.1.5 + >=x11-libs/libXext-1.0.5 + >=media-libs/mesa-9.2.0[nptl=] + ) + tslib? ( >=x11-libs/tslib-1.0 ) + udev? ( >=virtual/udev-150 ) + unwind? ( sys-libs/libunwind ) + >=x11-apps/xinit-1.3" + +DEPEND="${CDEPEND} + sys-devel/flex + >=x11-proto/bigreqsproto-1.1.0 + >=x11-proto/compositeproto-0.4 + >=x11-proto/damageproto-1.1 + >=x11-proto/fixesproto-5.0 + >=x11-proto/fontsproto-2.0.2 + >=x11-proto/glproto-1.4.17 + >=x11-proto/inputproto-2.2.99.1 + >=x11-proto/kbproto-1.0.3 + >=x11-proto/randrproto-1.4.0 + >=x11-proto/recordproto-1.13.99.1 + >=x11-proto/renderproto-0.11 + >=x11-proto/resourceproto-1.2.0 + >=x11-proto/scrnsaverproto-1.1 + >=x11-proto/trapproto-3.4.3 + >=x11-proto/videoproto-2.2.2 + >=x11-proto/xcmiscproto-1.2.0 + >=x11-proto/xextproto-7.2.99.901 + >=x11-proto/xf86dgaproto-2.0.99.1 + >=x11-proto/xf86rushproto-1.1.2 + >=x11-proto/xf86vidmodeproto-2.2.99.1 + >=x11-proto/xineramaproto-1.1.3 + >=x11-proto/xproto-7.0.22 + >=x11-proto/presentproto-1.0 + >=x11-proto/dri3proto-1.0 + dmx? ( + >=x11-proto/dmxproto-2.2.99.1 + doc? ( + || ( + www-client/links + www-client/lynx + www-client/w3m + ) + ) + ) + !minimal? ( + >=x11-proto/xf86driproto-2.1.0 + >=x11-proto/dri2proto-2.8 + )" + +RDEPEND="${CDEPEND} + selinux? ( sec-policy/selinux-xserver ) +" + +PDEPEND=" + xorg? ( >=x11-base/xorg-drivers-$(get_version_component_range 1-2) )" + +REQUIRED_USE="!minimal? ( + || ( ${IUSE_SERVERS} ) + )" + +pkg_pretend() { + # older gcc is not supported + [[ "${MERGE_TYPE}" != "binary" && $(gcc-major-version) -lt 4 ]] && \ + die "Sorry, but gcc earlier than 4.0 will not work for xorg-server." +} + +src_prepare() { + UPSTREAMED_PATCHES=( + "${WORKDIR}"/patches/*.patch + ) + PATCHES=( + "${UPSTREAMED_PATCHES[@]}" + "${FILESDIR}"/${PN}-1.12-ia64-fix_inx_outx.patch + "${FILESDIR}"/${PN}-1.12-unloadsubmodule.patch + "${FILESDIR}"/0100-randr-Account-for-panning-and-transforms-when-constr.patch + ) + xorg-2_src_prepare +} + +src_configure() { + # localstatedir is used for the log location; we need to override the default + # from ebuild.sh + # sysconfdir is used for the xorg.conf location; same applies + # NOTE: fop is used for doc generating ; and i have no idea if gentoo + # package it somewhere + XORG_CONFIGURE_OPTIONS=( + $(use_enable ipv6) + $(use_enable dmx) + $(use_enable kdrive) + $(use_enable kdrive kdrive-kbd) + $(use_enable kdrive kdrive-mouse) + $(use_enable kdrive kdrive-evdev) + $(use_enable suid install-setuid) + $(use_enable tslib) + $(use_enable unwind libunwind) + $(use_enable !minimal record) + $(use_enable !minimal xfree86-utils) + $(use_enable !minimal install-libxf86config) + $(use_enable !minimal dri) + $(use_enable !minimal dri2) + $(use_enable !minimal glx) + $(use_enable xnest) + $(use_enable xorg) + $(use_enable xvfb) + $(use_enable nptl glx-tls) + $(use_enable udev config-udev) + $(use_with doc doxygen) + $(use_with doc xmlto) + --enable-libdrm + --sysconfdir="${EPREFIX}"/etc/X11 + --localstatedir="${EPREFIX}"/var + --with-fontrootdir="${EPREFIX}"/usr/share/fonts + --with-xkb-output="${EPREFIX}"/var/lib/xkb + --disable-config-hal + --disable-linux-acpi + --without-dtrace + --without-fop + --with-os-vendor=Gentoo + --with-sha1=libcrypto + ) + + # Xorg-server requires includes from OS mesa which are not visible for + # users of binary drivers. + mkdir -p "${T}/mesa-symlinks/GL" + for i in gl glx glxmd glxproto glxtokens; do + ln -s "${EROOT}usr/$(get_libdir)/opengl/xorg-x11/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die + done + for i in glext glxext; do + ln -s "${EROOT}usr/$(get_libdir)/opengl/global/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die + done + append-cppflags "-I${T}/mesa-symlinks" + + xorg-2_src_configure +} + +src_install() { + xorg-2_src_install + + dynamic_libgl_install + + server_based_install + + if ! use minimal && use xorg; then + # Install xorg.conf.example into docs + dodoc "${AUTOTOOLS_BUILD_DIR}"/hw/xfree86/xorg.conf.example + fi + + newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup + newinitd "${FILESDIR}"/xdm.initd-11 xdm + newconfd "${FILESDIR}"/xdm.confd-4 xdm + + # install the @x11-module-rebuild set for Portage + insinto /usr/share/portage/config/sets + newins "${FILESDIR}"/xorg-sets.conf xorg.conf +} + +pkg_postinst() { + # sets up libGL and DRI2 symlinks if needed (ie, on a fresh install) + eselect opengl set xorg-x11 --use-old + + if [[ ${PV} != 9999 && $(get_version_component_range 2 ${REPLACING_VERSIONS}) != $(get_version_component_range 2 ${PV}) ]]; then + ewarn "You must rebuild all drivers if upgrading from