parent
de9342801a
commit
022846e488
Binary file not shown.
Binary file not shown.
@ -0,0 +1,9 @@
|
||||
# Copyright 2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-group
|
||||
|
||||
DESCRIPTION="File Transfer Protocol server user"
|
||||
ACCT_GROUP_ID=21
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<!-- maintainer-needed -->
|
||||
</pkgmetadata>
|
@ -0,0 +1,9 @@
|
||||
# Copyright 2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-group
|
||||
|
||||
DESCRIPTION="Group for shared high-score and game state files"
|
||||
ACCT_GROUP_ID=36
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>ulm@gentoo.org</email>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>games@gentoo.org</email>
|
||||
<name>Gentoo Games Project</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,9 @@
|
||||
# Copyright 2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-group
|
||||
|
||||
DESCRIPTION="Mail program group"
|
||||
ACCT_GROUP_ID=12
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>eras@gentoo.org</email>
|
||||
<name>Eray Aslan</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<catmetadata>
|
||||
<longdescription lang="en">
|
||||
The acct-group category contains packages for system groups.
|
||||
</longdescription>
|
||||
</catmetadata>
|
Binary file not shown.
@ -0,0 +1,14 @@
|
||||
# Copyright 2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
DESCRIPTION="File Transfer Protocol server user"
|
||||
ACCT_USER_ID=21
|
||||
ACCT_USER_HOME=/home/ftp
|
||||
ACCT_USER_HOME_OWNER=root:ftp
|
||||
ACCT_USER_GROUPS=( ftp )
|
||||
|
||||
acct-user_add_deps
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<!-- maintainer-needed -->
|
||||
</pkgmetadata>
|
@ -0,0 +1,15 @@
|
||||
# Copyright 2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
DESCRIPTION="Mail program user"
|
||||
ACCT_USER_ID=8
|
||||
ACCT_USER_HOME=/var/spool/mail
|
||||
ACCT_USER_HOME_OWNER=root:mail
|
||||
ACCT_USER_HOME_PERMS=03775
|
||||
ACCT_USER_GROUPS=( mail )
|
||||
|
||||
acct-user_add_deps
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>eras@gentoo.org</email>
|
||||
<name>Eray Aslan</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<catmetadata>
|
||||
<longdescription lang="en">
|
||||
The acct-user category contains packages for system users.
|
||||
</longdescription>
|
||||
</catmetadata>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>eras@gentoo.org</email>
|
||||
<name>Eray Aslan</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,15 @@
|
||||
# Copyright 2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
DESCRIPTION="Postmaster user"
|
||||
ACCT_USER_ID=14
|
||||
ACCT_USER_HOME=/var/spool/mail
|
||||
ACCT_USER_HOME_OWNER=root:mail
|
||||
ACCT_USER_HOME_PERMS=03775
|
||||
ACCT_USER_GROUPS=( mail )
|
||||
|
||||
acct-user_add_deps
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,2 +1,3 @@
|
||||
DIST apel-10.8-030_Use-new-style-backquotes.patch.gz 7869 BLAKE2B 93b93a089693a2fec68033b44f1cf96117fcdcb9dad5dbbf4283a79cd19f358c2a3bdc80ce2f7517e8b396182141583a371c21a8df7db7d05156ffd16987a872 SHA512 4074dc612feb2d63637bea2e9303423d4e9e035fad7f440d2da5331a6adc08f5ec61abb5087c2c4c72ec8931d1ccc4db3ffd061bcf3150d20c222c8df2e0b274
|
||||
DIST apel-10.8.tar.gz 126326 BLAKE2B 6fc8f04006a971e9d48dbf5f7b43e201a4f5fa515210bb69829bc3b0f05aba2e9f205915e6117e20220ae5b48a6543520533dc95a90754a30ff3fb8094779901 SHA512 39f13f15ec0a078d8f8dfe797899474cf4dfeb0bf7b8432a0c05bb38cf134d805c171a66b3d3efd074fbf294d68006d1e1d49903e45f1991d79cdcb4cca4aa9d
|
||||
DIST apel-10.8_p20190407.tar.gz 94808 BLAKE2B 47540e8c3ce96cc91efefe521942a3df4ee8423c7796d7e66b14bed7e9d662469a0767dd4863ae130fb114a1f9335d95abd13d61b6811e039db75e28679ac0f6 SHA512 6c780b0643f248e2a1409f1cea794dc6be515ee2ae766ead0834996bd9c13852492af1b9c343c4efda06fd057fae0c1b8a1ffc6b55b1469afbc7cbf1b579ea68
|
||||
|
@ -0,0 +1,46 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="A Portable Emacs Library is a library for making portable Emacs Lisp programs"
|
||||
HOMEPAGE="https://github.com/wanderlust/apel"
|
||||
GITHUB_SHA1="d146ddbf8818e81d3577d5eee7825d377bec0c73"
|
||||
SRC_URI="${HOMEPAGE}/archive/${GITHUB_SHA1}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris"
|
||||
|
||||
S="${WORKDIR}/${PN}-${GITHUB_SHA1}"
|
||||
|
||||
src_prepare() {
|
||||
elisp_src_prepare
|
||||
cat <<-EOF >>APEL-CFG || die
|
||||
(setq APEL_PREFIX "apel")
|
||||
(setq EMU_PREFIX "apel")
|
||||
EOF
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake PREFIX="${ED}/usr" \
|
||||
LISPDIR="${ED}/${SITELISP}" \
|
||||
VERSION_SPECIFIC_LISPDIR="${ED}/${SITELISP}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake PREFIX="${ED}/usr" \
|
||||
LISPDIR="${ED}/${SITELISP}" \
|
||||
VERSION_SPECIFIC_LISPDIR="${ED}/${SITELISP}" \
|
||||
install
|
||||
elisp-site-file-install "${FILESDIR}/50apel-gentoo.el"
|
||||
dodoc ChangeLog README*
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elisp-site-regen
|
||||
elog "See the README.en file in /usr/share/doc/${PF} for tips"
|
||||
elog "on how to customize this package."
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit elisp-common desktop xdg-utils gnome2-utils readme.gentoo-r1
|
||||
|
||||
DESCRIPTION="Common files needed by all GNU Emacs versions"
|
||||
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Emacs"
|
||||
SRC_URI="https://dev.gentoo.org/~ulm/emacs/${P}.tar.xz"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
|
||||
IUSE="games X"
|
||||
|
||||
RDEPEND="games? ( acct-group/gamestat )"
|
||||
DEPEND="${RDEPEND}"
|
||||
PDEPEND="virtual/emacs"
|
||||
|
||||
src_install() {
|
||||
insinto "${SITELISP}"
|
||||
doins subdirs.el
|
||||
newins site-gentoo.el{,.orig}
|
||||
|
||||
keepdir /etc/emacs
|
||||
insinto /etc/emacs
|
||||
doins site-start.el
|
||||
|
||||
if use games; then
|
||||
keepdir /var/games/emacs
|
||||
fowners 0:gamestat /var/games/emacs
|
||||
fperms g+w /var/games/emacs
|
||||
fi
|
||||
|
||||
if use X; then
|
||||
local i
|
||||
domenu emacs.desktop emacsclient.desktop || die
|
||||
|
||||
pushd icons || die
|
||||
newicon sink.png emacs-sink.png
|
||||
newicon emacs25_48.png emacs.png
|
||||
for i in 16 24 32 48 128; do
|
||||
[[ ${i} -le 48 ]] && newicon -s ${i} emacs22_${i}.png emacs22.png
|
||||
newicon -s ${i} emacs23_${i}.png emacs23.png
|
||||
newicon -s ${i} emacs25_${i}.png emacs.png
|
||||
done
|
||||
doicon -s scalable emacs23.svg
|
||||
newicon -s scalable emacs25.svg emacs.svg
|
||||
popd
|
||||
|
||||
gnome2_icon_savelist
|
||||
fi
|
||||
|
||||
DOC_CONTENTS="All site initialisation for Gentoo-installed packages is
|
||||
added to ${SITELISP}/site-gentoo.el. In order for this site
|
||||
initialisation to be loaded for all users automatically, a default
|
||||
site startup file /etc/emacs/site-start.el is installed. You are
|
||||
responsible for maintenance of this file.
|
||||
\n\nAlternatively, individual users can add the following command:
|
||||
\n\n(require 'site-gentoo)
|
||||
\n\nto their ~/.emacs initialisation files, or, for greater
|
||||
flexibility, users may load single package-specific initialisation
|
||||
files from the ${SITELISP}/site-gentoo.d/ directory."
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# make sure that site-gentoo.el exists since site-start.el requires it
|
||||
if [[ ! -f ${ED}${SITELISP}/site-gentoo.el ]]; then #554518
|
||||
mv "${ED}${SITELISP}"/site-gentoo.el{.orig,} || die
|
||||
fi
|
||||
if [[ -d ${EROOT}${SITELISP} ]]; then
|
||||
elisp-site-regen
|
||||
cp "${EROOT}${SITELISP}/site-gentoo.el" "${ED}${SITELISP}/" || die
|
||||
fi
|
||||
|
||||
if use games; then
|
||||
local f
|
||||
for f in /var/games/emacs/{snake,tetris}-scores; do
|
||||
if [[ -e ${EROOT}${f} ]]; then
|
||||
cp "${EROOT}${f}" "${ED}${f}" || die
|
||||
fi
|
||||
touch "${ED}${f}" || die
|
||||
chgrp gamestat "${ED}${f}" || die
|
||||
chmod g+w "${ED}${f}" || die
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use X; then
|
||||
xdg_desktop_database_update
|
||||
gnome2_icon_cache_update
|
||||
fi
|
||||
readme.gentoo_print_elog
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
if use X; then
|
||||
xdg_desktop_database_update
|
||||
gnome2_icon_cache_update
|
||||
fi
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST flim-1.14.9.tar.gz 182065 BLAKE2B e15779e93a422bc2c2b82ab5969f2b3d30a31d47b96769abf89bfe7e9aebf74e5f0f0e87270bcc187bdaf3e1af4bdd663c7d6661f1adc9575af0e4ba1dd316f1 SHA512 a272a30f27cea24f537b9bf3a6dbb25113deff0ab8e1c03bd802e4d32d673d567d282297ed9e4d35217f069699a1fc25bfdde09778171a188dfa46f49e9bb7dd
|
||||
DIST flim-1.14.9_p20190526.tar.gz 173261 BLAKE2B f28b0d1474d894fd93d9899fe66bc88d6669cc6bdbb2511dcd0b2f13c05abbe42ad4cc06e2de34664204f3ddbb3cb4f09e232394419892b3fd8e71c1ab3aab75 SHA512 8991c460bf9eb411e89edb8fb05088cc09dc354e4c14d7accba26d922b2d1041742e96d8a64407ee8dd2574984c5b3a8fbd66e828c8f8fadc55f8da6428d634e
|
||||
|
@ -0,0 +1,38 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="A library to provide basic features about message representation or encoding"
|
||||
HOMEPAGE="https://github.com/wanderlust/flim"
|
||||
GITHUB_SHA1="e4bd54fd7d335215b54f7ef27ed974c8cd68d472"
|
||||
SRC_URI="${HOMEPAGE}/archive/${GITHUB_SHA1}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris"
|
||||
|
||||
DEPEND=">=app-emacs/apel-10.8"
|
||||
RDEPEND="${DEPEND}
|
||||
!app-emacs/limit"
|
||||
|
||||
S="${WORKDIR}/${PN}-${GITHUB_SHA1}"
|
||||
SITEFILE="60${PN}-gentoo.el"
|
||||
|
||||
src_compile() {
|
||||
emake PREFIX="${ED}/usr" \
|
||||
LISPDIR="${ED}/${SITELISP}" \
|
||||
VERSION_SPECIFIC_LISPDIR="${ED}/${SITELISP}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake PREFIX="${ED}/usr" \
|
||||
LISPDIR="${ED}/${SITELISP}" \
|
||||
VERSION_SPECIFIC_LISPDIR="${ED}/${SITELISP}" install
|
||||
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
|
||||
dodoc FLIM-API.en NEWS VERSION README* ChangeLog
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
DIST mu-cite-200709030413.tar.gz 19439 BLAKE2B 279627608af2759ee5fe566c315f8c2be168e0e4a01bc179ae7289f6c990f4a569d59288b02097a3230271ec4c1ba6aefa3db9e46271eb476eb50e912bacc9d0 SHA512 aee355abf8d77ca9ce6d5d2f00e5e8d9a1123b82bb15169bbbdf22c9447c37f1d200ffe1cd05abb61f1011c0d9731d3300d0e5bbf6f10ca6155c00a610a46703
|
||||
DIST mu-cite-201202272330.tar.gz 19212 BLAKE2B d52378258b3804e2867d6f8f6f471a73eebb3ff955df70a2ddc5dfd91d6ada2ea2349d44e86c81e1c314b88787b08b39f40238b22760a74b77f8393361aecdcc SHA512 78013bed020c46baeecf56bcd155eb6058d11b1d61a0af55b075454601e3cd1a992bdad887e125ffd569782a38e4509d60efdc431ded501c35da096133b475b8
|
||||
DIST mu-cite-201808232348.tar.gz 20443 BLAKE2B 814ebbd3ab45af4af65fee54884a1960a0cecccd07e1e0e084e860fcab4884ca0d97f4042f14f530b8ead4ee4347d13dbde9ecc96f5e82121bad44e0b93855ac SHA512 5a30124041ea5a807f5d8ea8a1ef18afcc7020d3f2d2bee4dd163fa1098d37d27b43db81c1b538bf1d1b06720840fb5c3f95d999fddd624437dd251fa061f699
|
||||
|
@ -1,27 +1,30 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
EAPI=7
|
||||
|
||||
inherit elisp
|
||||
|
||||
MY_P="${PN}-${PV#*_p}"
|
||||
DESCRIPTION="Message citation utilities for emacsen"
|
||||
HOMEPAGE="http://www.jpl.org/elips/mu/"
|
||||
SRC_URI="http://www.jpl.org/elips/mu/snapshots/${MY_P}.tar.gz"
|
||||
HOMEPAGE="https://www.jpl.org/elips/mu/"
|
||||
SRC_URI="https://www.jpl.org/elips/mu/snapshots/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="bbdb"
|
||||
|
||||
RDEPEND="app-emacs/apel
|
||||
virtual/emacs-flim"
|
||||
app-emacs/flim
|
||||
bbdb? ( app-emacs/bbdb )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
DOCS="ChangeLog NEWS README.en"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
src_compile() {
|
||||
emake EMACS=emacs
|
||||
src_prepare() {
|
||||
elisp_src_prepare
|
||||
use bbdb || rm mu-bbdb.el || die
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST semi-1.14.6.tar.gz 142549 BLAKE2B e417b305ad814b2a23fad4fd37057395efb47bdb61778aa167149eda4277cda47dc81148821d9e4ad3225a858c77f781a6565c3e49747d78882b9401fd5fbac1 SHA512 1011271c58414f4ca23da079f16f273b408643e0d9f4961db321b65c1ed9a7d4ca66a7d7cb5b0c9fa2b4904fa992c9188858de6131180ee30132d3cadaeef33f
|
||||
DIST semi-1.14.7_p20190517.tar.gz 152636 BLAKE2B a22b1f9a5de0a695de2d8e342ca313af05c12a1c0b597890d926496e9ce240e3329365700f91e6268cf399976ec067163ac8197c7a643e499d70851501f63798 SHA512 d25c940fdd0a048d21079d905ae91521a1f1247b8f78145baeba24c994c0d5b30985a76c909a793f82f6253b323fb4699bbf059ea48037bb49ae92505b0c6d18
|
||||
|
@ -0,0 +1,52 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="A library to provide MIME feature for GNU Emacs"
|
||||
HOMEPAGE="https://github.com/wanderlust/semi"
|
||||
GITHUB_SHA1="4cf114c95fb49ad75eb6916f678b45b04bad8122"
|
||||
SRC_URI="${HOMEPAGE}/archive/${GITHUB_SHA1}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
|
||||
IUSE="l10n_ja"
|
||||
|
||||
DEPEND=">=app-emacs/apel-10.8
|
||||
>=app-emacs/flim-1.14.9"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
S="${WORKDIR}/${PN}-${GITHUB_SHA1}"
|
||||
ELISP_PATCHES="${PN}-info.patch"
|
||||
SITEFILE="65${PN}-gentoo.el"
|
||||
|
||||
src_compile() {
|
||||
emake PREFIX="${ED}"/usr \
|
||||
LISPDIR="${ED}/${SITELISP}" \
|
||||
VERSION_SPECIFIC_LISPDIR="${ED}/${SITELISP}"
|
||||
|
||||
${EMACS} ${EMACSFLAGS} --visit mime-ui-en.texi -f texi2info || die
|
||||
if use l10n_ja; then
|
||||
${EMACS} ${EMACSFLAGS} \
|
||||
--eval "(set-default-coding-systems 'iso-2022-jp)" \
|
||||
--visit mime-ui-ja.texi -f texi2info || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake PREFIX="${ED}/usr" \
|
||||
LISPDIR="${ED}/${SITELISP}" \
|
||||
VERSION_SPECIFIC_LISPDIR="${ED}/${SITELISP}" install
|
||||
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
|
||||
doinfo mime-ui-en.info
|
||||
dodoc README.en ChangeLog VERSION NEWS
|
||||
if use l10n_ja; then
|
||||
doinfo mime-ui-ja.info
|
||||
dodoc README.ja
|
||||
fi
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
DIST wanderlust-2.14.0-20050405.patch.gz 3926 BLAKE2B 0986f743e512cc7216554585c1c62af659fe35873bfcdfdb520e4085ec2606360ae1a29566ac756ad0e7f03cc51d1e5c0bd7460c8448ceb6251004d887858885 SHA512 103e8eda374eab453363f3a735d877e313ff341e09abd66093bd090b404738d42d98edf5d1c9c8e8966963bf972d462aebc28ea6e470126af9266188247c4044
|
||||
DIST wanderlust-2.15.9_p20130619.tar.xz 818124 BLAKE2B b6bbd6f63d862f81a5a0c194f0fe1b276303f75f8ffde29c844f1f7d2d8ef55f1c211ac1d0b6c3357c2507b2abe73ba1c4c8f5fc65e067d93eb6bf23fd8490a6 SHA512 91bdcc1b29370b7be7a2072f4d8c638b3c0604ba31b5419952b848af268e73a3f199f07a88caabec56f66b38013e0f9cd7c1de26b46d1062ddff782e8080d4e0
|
||||
DIST wanderlust-2.15.9_p20180814-git.tar.gz 1207081 BLAKE2B f52259b15040287f0afcf0768b3ae3237415b44960e205e48d4b658f3e522db993b87bac59ee3d9ba94ad26c830beaf26d9cf5f03830fcb1f01e4f5567ee4804 SHA512 67616cc1d35b25af1b56fa800943ad0c7e7d9b35f99c48fac96b77a68a3eb8db02b36525021ff8bba4d181530505face2a58725b7dff33b1bfe4f48a4314949f
|
||||
DIST wl-2.14.0.tar.gz 1101505 BLAKE2B 5ceb3a8e294b230d48d50134e3dc07b9e19a9470907a488a2e41e53da54a8826a50cb53c06c5f3f1a5bdd1b5760bc6acd6cc75a25e63d092f1a9b80b3f073ed5 SHA512 edb49c0c9ddbd50cba4ce4cdd1b2d609cee9553d063aeb4775d0b43e0ed83cc6374aa47b11b3ff94a55827f7a9a29f7c1054e0fd9b3a5a25a2c410b241d268d2
|
||||
DIST wanderlust-2.15.9_p20190623.tar.gz 1210223 BLAKE2B 50416e27062a9837c18660ea9a1a7a3ff596639763965b09925ca16c89617d159b9aa5d08d93d8b5c6a504da2b048df8b4c489d4fc11ff6abc530f741a5d8fb9 SHA512 369f8d93af4d0d98f66c4c8500aa3535e3f772d8a1920c1bdc434f0d9078555f40d0d4278937d97bccf0f417cf1b1fdeb6c8a891d42b2675fb7737382425c91d
|
||||
|
@ -1,16 +0,0 @@
|
||||
http://bugs.gentoo.org/280248
|
||||
Don't bind smtp-end-of-line. Patch from upstream CVS, by Yoichi NAKAYAMA.
|
||||
|
||||
--- wl/wl-draft.el 28 Jan 2006 09:03:41 -0000 1.258
|
||||
+++ wl/wl-draft.el 9 Feb 2006 03:57:39 -0000 1.259
|
||||
@@ -147,10 +147,6 @@
|
||||
(if (eq wl-smtp-connection-type 'ssl)
|
||||
#'open-ssl-stream
|
||||
smtp-open-connection-function))
|
||||
- (smtp-end-of-line
|
||||
- (if (eq wl-smtp-connection-type 'ssl)
|
||||
- "\n"
|
||||
- smtp-end-of-line))
|
||||
smtp-sasl-user-name smtp-sasl-properties sasl-read-passphrase)
|
||||
(setq smtp-sasl-user-name wl-smtp-posting-user
|
||||
smtp-sasl-properties (when wl-smtp-authenticate-realm
|
@ -1,11 +0,0 @@
|
||||
--- wl-2.14.0-orig/doc/wl.texi 2005-02-25 16:05:48.000000000 +0100
|
||||
+++ wl-2.14.0/doc/wl.texi 2009-08-10 16:15:29.000000000 +0200
|
||||
@@ -4329,7 +4329,7 @@
|
||||
|
||||
@item wl-summary-resend-use-cache
|
||||
@vindex wl-summary-resend-use-cache
|
||||
-The initial setting is @code{nil}¡£If non-nil, messages are resend
|
||||
+The initial setting is @code{nil}. If non-nil, messages are resend
|
||||
using cache even in the offline status. Note that if you use cache,
|
||||
the message identity is not guaranteed.
|
||||
|
Binary file not shown.
@ -1,2 +1,3 @@
|
||||
DIST docker-compose-1.23.2.tar.gz 302950 BLAKE2B b96db2e718bd6b05f6a35829749570320209def17b7536e402b9991b56e05a2d8da97fbd8d79d8125d9df6ff361a181fbfd71346a33a68704db0327a92757f66 SHA512 baa233c84ac770798ba3d8d256687630b331d774a8d60f3c0d5046aa0a74c8c3b8b0b8bc4431f3bc7d5b7a54f0646f5e2fd14d5af31db37cb546e86c96c8c1db
|
||||
DIST docker-compose-1.24.0.tar.gz 307601 BLAKE2B cb2a6f96e14c04d0279b25c075182d8f09e5a622e4cee2ce74995224e3a8634cc5f22ccc548b7754bbeb11630c1e638386cb1a6df927b3619cb6e7e3595aac6c SHA512 318c6bf9877147de09526b4d49c3fd86012d85626e7a9a15863ca55a60e10fa85b27429605045d0aaa993dddd3bc2e5f23cbb76856276a874e84793b878a3e86
|
||||
DIST docker-compose-1.24.1.tar.gz 307749 BLAKE2B 7ded0a4b82a7a9beb9de38752f38998ca4ea9421e5ed5630627820ec7e250ad6f03f6788bcbebe8bc0dd4c064d275bb4ca5a6055a95b6a0f72d7ae9038ec7f22 SHA512 9b8632ef263b8dfa678e8b99b46e00441f779716a524280ce25f62fcd2605f400723b7790c466338374c34653946dc2c5d7f09593ddd892fee3409c2a2fd1a5f
|
||||
|
@ -0,0 +1,67 @@
|
||||
# Copyright 2018-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python{2_7,3_6} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1
|
||||
|
||||
DESCRIPTION="Multi-container orchestration for Docker"
|
||||
HOMEPAGE="https://github.com/docker/compose"
|
||||
SRC_URI="https://github.com/docker/compose/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/docker-py-3.7.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}]
|
||||
dev-python/paramiko[${PYTHON_USEDEP}]
|
||||
>=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-2.18.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/six-1.3.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/texttable-0.9.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep '>=dev-python/enum34-1.0.4[${PYTHON_USEDEP}]' 'python2_7' )
|
||||
$(python_gen_cond_dep '>=dev-python/ipaddress-1.0.16[${PYTHON_USEDEP}]' 'python2_7' )
|
||||
$(python_gen_cond_dep '>=dev-python/backports-ssl-match-hostname-3.5[${PYTHON_USEDEP}]' 'python2_7' )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( dev-python/pytest[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep '>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]' 'python2_7' ) )"
|
||||
|
||||
S="${WORKDIR}/compose-${PV}"
|
||||
|
||||
PATCHES=(
|
||||
# Bug #679968 -- https://bugs.gentoo.org/679968
|
||||
# Bug #681002 -- https://bugs.gentoo.org/681002
|
||||
"${FILESDIR}"/${PN}-1.24.0-setup-py.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
# Address QA issue "docker-compose.exe: missing alias (symlink) for completed command."
|
||||
sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
python_test() {
|
||||
distutils_install_for_testing
|
||||
${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
newbashcomp contrib/completion/bash/docker-compose ${PN}
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins contrib/completion/zsh/*
|
||||
|
||||
distutils-r1_python_install_all
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
DIST docker-18.09.5.tar.gz 15256899 BLAKE2B c55ef822b3e655b0bec9585de6ee346e73d48d388225141097768db9f5ddaeca2d1937274a7131e3e301686e2214a9ed2051dd72c07893bcfccb00424d02df73 SHA512 a6012d202761d6449e347b03759d92f5f45309e72562fd4a619b2a21c62b3f50b1256d2e4820317aa6b412f1eecda66dbd960d322293699433417a5f7ee73486
|
||||
DIST docker-18.09.6.tar.gz 15257416 BLAKE2B e0f93f09c403f043d3b2f390d50da83565b0520d18b695a8166aa240817cc713eb9eff314d4c7eeba242c25e35c0b6a9ea3a7f1d661d6aca4a40f7e77856a05d SHA512 f05fc78f5891fa0308878690576e245eebb1e72f306f5b629b0e82dc96a04812202a2393ee6fd352bc59a1c5d29d398f0d6cddf545d57b483a051d14d7a0ee28
|
||||
DIST docker-18.09.6_p20190604.tar.gz 15259344 BLAKE2B f958063ab9fc851fda13117210dade6b7fb211426c9565c62f2786a2b5878194ea052f866da1b2e489bd75d622cdf77bafccc538377cc5c261f86f50163cb151 SHA512 da518f07cfd9f90ad46796f5047156ef517fa75ff27daa16ab16b868b7f1c9822cb61ce2ee558b1632c4acfdd8d74a608f5b6cb5cb5ca932aca5bf42d497d6a9
|
||||
DIST docker-18.09.7_rc1.tar.gz 15264071 BLAKE2B d124cff1e32cedda35d8d0fac074a2227d078673639e99a1313e42b73b2c84b0c97af5470d3d4c8f2684e93898ab9d081fe536cd4e428ef8a8a5639761bd380b SHA512 377a07c7a1515a8f08c412d2117e10d9c9100a4a55dc5df69e8a8b822362b0b41812b3d4ee8fc8a1e7bc7258c15ee3da6aa42c7bc71fd86def1f6cda9f1566cd
|
||||
|
@ -0,0 +1,300 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
EGO_PN="github.com/docker/docker-ce"
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
# Docker cannot be fetched via "go get", thanks to autogenerated code
|
||||
EGIT_REPO_URI="https://${EGO_PN}.git"
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/${EGO_PN}"
|
||||
inherit git-r3
|
||||
else
|
||||
DOCKER_GITCOMMIT="e97b22c"
|
||||
MY_PV=${PV/_/-}
|
||||
SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~arm ~arm64"
|
||||
[ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
|
||||
inherit golang-vcs-snapshot
|
||||
fi
|
||||
inherit bash-completion-r1 golang-base linux-info systemd udev user
|
||||
|
||||
DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
|
||||
HOMEPAGE="https://dockerproject.org"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="apparmor aufs btrfs +container-init device-mapper hardened +overlay pkcs11 seccomp"
|
||||
|
||||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
|
||||
CDEPEND="
|
||||
>=dev-db/sqlite-3.7.9:3
|
||||
device-mapper? (
|
||||
>=sys-fs/lvm2-2.02.89[thin]
|
||||
)
|
||||
seccomp? ( >=sys-libs/libseccomp-2.2.1 )
|
||||
apparmor? ( sys-libs/libapparmor )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
${CDEPEND}
|
||||
|
||||
dev-go/go-md2man
|
||||
|
||||
btrfs? (
|
||||
>=sys-fs/btrfs-progs-3.16.1
|
||||
)
|
||||
"
|
||||
|
||||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
|
||||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#optional-dependencies
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
>=net-firewall/iptables-1.4
|
||||
sys-process/procps
|
||||
>=dev-vcs/git-1.7
|
||||
>=app-arch/xz-utils-4.9
|
||||
dev-libs/libltdl
|
||||
~app-emulation/containerd-1.2.6
|
||||
~app-emulation/runc-1.0.0_rc8[apparmor?,seccomp?]
|
||||
~app-emulation/docker-proxy-0.8.0_p20190513
|
||||
container-init? ( >=sys-process/tini-0.18.0[static] )
|
||||
"
|
||||
|
||||
RESTRICT="installsources strip"
|
||||
|
||||
S="${WORKDIR}/${P}/src/${EGO_PN}"
|
||||
|
||||
# see "contrib/check-config.sh" from upstream's sources
|
||||
CONFIG_CHECK="
|
||||
~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
|
||||
~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
|
||||
~KEYS
|
||||
~VETH ~BRIDGE ~BRIDGE_NETFILTER
|
||||
~NF_NAT_IPV4 ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE
|
||||
~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK ~NETFILTER_XT_MATCH_IPVS
|
||||
~IP_NF_NAT ~NF_NAT ~NF_NAT_NEEDED
|
||||
~POSIX_MQUEUE
|
||||
|
||||
~USER_NS
|
||||
~SECCOMP
|
||||
~CGROUP_PIDS
|
||||
~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
|
||||
|
||||
~BLK_CGROUP ~BLK_DEV_THROTTLING ~IOSCHED_CFQ ~CFQ_GROUP_IOSCHED
|
||||
~CGROUP_PERF
|
||||
~CGROUP_HUGETLB
|
||||
~NET_CLS_CGROUP
|
||||
~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
|
||||
~IP_VS ~IP_VS_PROTO_TCP ~IP_VS_PROTO_UDP ~IP_VS_NFCT ~IP_VS_RR
|
||||
|
||||
~VXLAN
|
||||
~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH ~XFRM_ALGO ~XFRM_USER
|
||||
~IPVLAN
|
||||
~MACVLAN ~DUMMY
|
||||
"
|
||||
|
||||
ERROR_KEYS="CONFIG_KEYS: is mandatory"
|
||||
ERROR_MEMCG_SWAP="CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers"
|
||||
ERROR_RESOURCE_COUNTERS="CONFIG_RESOURCE_COUNTERS: is optional for container statistics gathering"
|
||||
|
||||
ERROR_BLK_CGROUP="CONFIG_BLK_CGROUP: is optional for container statistics gathering"
|
||||
ERROR_IOSCHED_CFQ="CONFIG_IOSCHED_CFQ: is optional for container statistics gathering"
|
||||
ERROR_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
|
||||
ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
|
||||
ERROR_XFRM_ALGO="CONFIG_XFRM_ALGO: is optional for secure networks"
|
||||
ERROR_XFRM_USER="CONFIG_XFRM_USER: is optional for secure networks"
|
||||
|
||||
pkg_setup() {
|
||||
if kernel_is lt 3 10; then
|
||||
ewarn ""
|
||||
ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported."
|
||||
ewarn " - http://docs.docker.com/engine/installation/binaries/#check-kernel-dependencies"
|
||||
fi
|
||||
|
||||
if kernel_is le 3 18; then
|
||||
CONFIG_CHECK+="
|
||||
~RESOURCE_COUNTERS
|
||||
"
|
||||
fi
|
||||
|
||||
if kernel_is le 3 13; then
|
||||
CONFIG_CHECK+="
|
||||
~NETPRIO_CGROUP
|
||||
"
|
||||
else
|
||||
CONFIG_CHECK+="
|
||||
~CGROUP_NET_PRIO
|
||||
"
|
||||
fi
|
||||
|
||||
if kernel_is lt 4 5; then
|
||||
CONFIG_CHECK+="
|
||||
~MEMCG_KMEM
|
||||
"
|
||||
ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
|
||||
fi
|
||||
|
||||
if kernel_is lt 4 7; then
|
||||
CONFIG_CHECK+="
|
||||
~DEVPTS_MULTIPLE_INSTANCES
|
||||
"
|
||||
fi
|
||||
|
||||
if use aufs; then
|
||||
CONFIG_CHECK+="
|
||||
~AUFS_FS
|
||||
~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
|
||||
"
|
||||
ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used instead of aufs4/aufs3"
|
||||
fi
|
||||
|
||||
if use btrfs; then
|
||||
CONFIG_CHECK+="
|
||||
~BTRFS_FS
|
||||
~BTRFS_FS_POSIX_ACL
|
||||
"
|
||||
fi
|
||||
|
||||
if use device-mapper; then
|
||||
CONFIG_CHECK+="
|
||||
~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
|
||||
"
|
||||
fi
|
||||
|
||||
if use overlay; then
|
||||
CONFIG_CHECK+="
|
||||
~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL
|
||||
"
|
||||
fi
|
||||
|
||||
linux-info_pkg_setup
|
||||
|
||||
# create docker group for the code checking for it in /etc/group
|
||||
enewgroup docker
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export GOPATH="${WORKDIR}/${P}"
|
||||
|
||||
# setup CFLAGS and LDFLAGS for separate build target
|
||||
# see https://github.com/tianon/docker-overlay/pull/10
|
||||
export CGO_CFLAGS="-I${ROOT}/usr/include"
|
||||
export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
|
||||
|
||||
# if we're building from a tarball, we need the GITCOMMIT value
|
||||
[ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
|
||||
|
||||
# fake golang layout
|
||||
ln -s docker-ce/components/engine ../docker || die
|
||||
ln -s docker-ce/components/cli ../cli || die
|
||||
|
||||
# let's set up some optional features :)
|
||||
export DOCKER_BUILDTAGS=''
|
||||
for gd in aufs btrfs device-mapper overlay; do
|
||||
if ! use $gd; then
|
||||
DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}"
|
||||
fi
|
||||
done
|
||||
|
||||
for tag in apparmor pkcs11 seccomp; do
|
||||
if use $tag; then
|
||||
DOCKER_BUILDTAGS+=" $tag"
|
||||
fi
|
||||
done
|
||||
|
||||
pushd components/engine || die
|
||||
|
||||
if use hardened; then
|
||||
sed -i "s/EXTLDFLAGS_STATIC='/&-fno-PIC /" hack/make.sh || die
|
||||
grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
|
||||
sed "s/LDFLAGS_STATIC_DOCKER='/&-extldflags -fno-PIC /" \
|
||||
-i hack/make/dynbinary-daemon || die
|
||||
grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed'
|
||||
fi
|
||||
|
||||
# build daemon
|
||||
VERSION="$(cat ../../VERSION)" \
|
||||
./hack/make.sh dynbinary || die 'dynbinary failed'
|
||||
|
||||
popd || die # components/engine
|
||||
|
||||
pushd components/cli || die
|
||||
|
||||
# build cli
|
||||
emake \
|
||||
LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \
|
||||
VERSION="$(cat ../../VERSION)" \
|
||||
GITCOMMIT="${DOCKER_GITCOMMIT}" \
|
||||
DISABLE_WARN_OUTSIDE_CONTAINER=1 \
|
||||
dynbinary || die
|
||||
|
||||
# build man pages
|
||||
go build -o gen-manpages github.com/docker/cli/man || die
|
||||
./gen-manpages --root . --target ./man/man1 || die
|
||||
./man/md2man-all.sh -q || die
|
||||
rm gen-manpages || die
|
||||
# see "components/cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man)
|
||||
|
||||
popd || die # components/cli
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dosym containerd /usr/bin/docker-containerd
|
||||
dosym containerd-shim /usr/bin/docker-containerd-shim
|
||||
dosym runc /usr/bin/docker-runc
|
||||
use container-init && dosym tini /usr/bin/docker-init
|
||||
|
||||
pushd components/engine || die
|
||||
newbin "$(readlink -f bundles/latest/dynbinary-daemon/dockerd)" dockerd
|
||||
|
||||
newinitd contrib/init/openrc/docker.initd docker
|
||||
newconfd contrib/init/openrc/docker.confd docker
|
||||
|
||||
systemd_dounit contrib/init/systemd/docker.{service,socket}
|
||||
|
||||
udev_dorules contrib/udev/*.rules
|
||||
|
||||
dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md NOTICE README.md
|
||||
dodoc -r docs/*
|
||||
|
||||
insinto /usr/share/vim/vimfiles
|
||||
doins -r contrib/syntax/vim/ftdetect
|
||||
doins -r contrib/syntax/vim/syntax
|
||||
|
||||
# note: intentionally not using "doins" so that we preserve +x bits
|
||||
dodir /usr/share/${PN}/contrib
|
||||
cp -R contrib/* "${ED}/usr/share/${PN}/contrib"
|
||||
popd || die # components/engine
|
||||
|
||||
pushd components/cli || die
|
||||
|
||||
newbin build/docker-* docker
|
||||
|
||||
doman man/man*/*
|
||||
|
||||
dobashcomp contrib/completion/bash/*
|
||||
insinto /usr/share/fish/vendor_completions.d/
|
||||
doins contrib/completion/fish/docker.fish
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins contrib/completion/zsh/_*
|
||||
popd || die # components/cli
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
|
||||
elog
|
||||
elog "To use Docker, the Docker daemon must be running as root. To automatically"
|
||||
elog "start the Docker daemon at boot, add Docker to the default runlevel:"
|
||||
elog " rc-update add docker default"
|
||||
elog "Similarly for systemd:"
|
||||
elog " systemctl enable docker.service"
|
||||
elog
|
||||
elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
|
||||
elog " usermod -aG docker youruser"
|
||||
elog
|
||||
|
||||
elog " Devicemapper storage driver has been deprecated"
|
||||
elog " It will be removed in a future release"
|
||||
}
|
Binary file not shown.
@ -0,0 +1,28 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="BLAS/CBLAS module for eselect"
|
||||
HOMEPAGE="https://www.gentoo.org"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
|
||||
IUSE=""
|
||||
|
||||
# Need skel.bash lib
|
||||
RDEPEND=( ">=app-admin/eselect-1.0.5"
|
||||
"!app-eselect/eselect-cblas" )
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
src_install() {
|
||||
local MODULEDIR="/usr/share/eselect/modules"
|
||||
local MODULE="blas"
|
||||
insinto ${MODULEDIR}
|
||||
newins "${FILESDIR}"/${MODULE}.eselect-${PVR} ${MODULE}.eselect
|
||||
doman "${FILESDIR}"/blas.eselect.5
|
||||
}
|
@ -0,0 +1,168 @@
|
||||
# -*-eselect-*- vim: ft=eselect
|
||||
# Copyright 2019 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU GPL version 2 or later
|
||||
|
||||
inherit config tests multilib skel
|
||||
|
||||
MODULE="BLAS/CBLAS"
|
||||
IFACE="blas"
|
||||
DESCRIPTION="Manage installed alternatives of $MODULE shared objects"
|
||||
MAINTAINER="lumin@debian.org"
|
||||
VERSION="20190621"
|
||||
|
||||
### helper utility to find all available BLAS/CBLAS implementations
|
||||
find_targets_in() {
|
||||
[[ $# -eq 1 ]] || die -q "in which libdir?"
|
||||
|
||||
local cand
|
||||
for cand in ${EROOT}/etc/env.d/blas/$1/*; do
|
||||
[[ "config" = $(basename ${cand}) ]] && continue
|
||||
[[ -r ${cand} ]] && basename ${cand}
|
||||
done
|
||||
}
|
||||
|
||||
### helper utility to validate a BLAS/CBLAS library directory
|
||||
validate_blaslibdir() {
|
||||
[[ -d $1 ]] || return 2 # dir doesn't exist
|
||||
[[ -r "${1}/libblas.so.3" ]] && [[ -r "${1}/libblas.so" ]] \
|
||||
&& [[ -r "${1}/libcblas.so.3" ]] && [[ -r "${1}/libcblas.so" ]] \
|
||||
|| return 1
|
||||
}
|
||||
|
||||
### show action
|
||||
do_show() {
|
||||
# do_show -- show both lib64 and lib32 selection
|
||||
# do_show libxx -- show libxx selection
|
||||
local libdir cur libdirs=( $(list_libdirs) )
|
||||
|
||||
# if manually specified libdirs
|
||||
if [[ ! $# -eq 0 ]]; then
|
||||
for libdir in $@; do
|
||||
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||
done
|
||||
libdirs=( $@ )
|
||||
fi
|
||||
|
||||
for libdir in ${libdirs[@]}; do
|
||||
[[ ! -d ${EROOT}/usr/$libdir ]] && continue
|
||||
[[ ! -r ${EROOT}/etc/env.d/blas/${libdir}/config ]] && continue
|
||||
cur=$(load_config ${EROOT}/etc/env.d/blas/${libdir}/config CURRENT)
|
||||
echo ${libdir}: $cur
|
||||
done
|
||||
}
|
||||
|
||||
### list action
|
||||
do_list() {
|
||||
local i cur targets
|
||||
local libdir libdirs=( $(list_libdirs) )
|
||||
|
||||
# if manually specified libdirs
|
||||
if [[ ! $# -eq 0 ]]; then
|
||||
for libdir in $@; do
|
||||
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||
done
|
||||
libdirs=( $@ )
|
||||
fi
|
||||
|
||||
for libdir in ${libdirs[@]}; do
|
||||
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||
targets=( $(find_targets_in $libdir) )
|
||||
cur=$(load_config ${EROOT}/etc/env.d/blas/${libdir}/config CURRENT)
|
||||
|
||||
write_list_start "Available BLAS/CBLAS ($libdir) candidates:"
|
||||
for (( i = 0; i < ${#targets[@]}; i++ )); do
|
||||
[[ ${targets[i]} = $cur ]] \
|
||||
&& targets[i]=$(highlight_marker "${targets[i]}")
|
||||
done
|
||||
write_numbered_list -m "(none found)" "${targets[@]}"
|
||||
done
|
||||
}
|
||||
|
||||
### validate action
|
||||
describe_validate() {
|
||||
echo "validate candidates and remove invalid ones"
|
||||
}
|
||||
|
||||
do_validate() {
|
||||
local i ldpath targets target candidate
|
||||
local libdir libdirs=( $(list_libdirs) )
|
||||
for libdir in ${libdirs[@]}; do
|
||||
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||
targets=( $(find_targets_in $libdir) )
|
||||
for target in ${targets[@]}; do
|
||||
candidate=${EROOT}/etc/env.d/blas/${libdir}/${target}
|
||||
ldpath=$(load_config $candidate LDPATH)
|
||||
if ! validate_blaslibdir $ldpath; then
|
||||
echo "Removing invalid BLAS/CBLAS candidate ($candidate) ..."
|
||||
rm -v $candidate
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
### set action
|
||||
|
||||
describe_set() {
|
||||
echo "Activate one of the installed $MODULE implementations"
|
||||
}
|
||||
|
||||
describe_set_parameters() {
|
||||
echo "[<libdir>] <implementation>"
|
||||
}
|
||||
|
||||
describe_set_options() {
|
||||
echo "libdir: lib64 or lib32. Will use the native one when omitted."
|
||||
echo "implementation : implementation name or number (from 'list' action)"
|
||||
}
|
||||
|
||||
do_set() {
|
||||
local libdirs=( $(list_libdirs) )
|
||||
local targets libdir ldconf libpath impl
|
||||
|
||||
# check argument existence
|
||||
[[ $# -eq 1 ]] || [[ $# -eq 2 ]] || \
|
||||
die -q "Please specify [<libdir>] <impl> to activate!"
|
||||
# read argumenets
|
||||
if [[ $# -eq 2 ]]; then libdir="$1"; else libdir="$(get_libdir)"; fi
|
||||
if [[ $# -eq 2 ]]; then impl="$2"; else impl="$1"; fi
|
||||
# validate arguments
|
||||
has "$libdir" "${libdirs[@]}" || die -q "Invalid libdir ($libdir) !"
|
||||
targets=( $(find_targets_in $libdir) )
|
||||
if ! has "$impl" "${targets[@]}"; then
|
||||
if [[ ${impl} -gt 0 ]] && [[ ${impl} -le ${#targets[@]} ]]; then
|
||||
impl=${targets[(${impl} - 1)]}
|
||||
else
|
||||
die -q "Invalid impl ($impl) !"
|
||||
fi
|
||||
fi
|
||||
# store the configuration to env.d
|
||||
store_config ${EROOT}/etc/env.d/blas/${libdir}/config CURRENT "${impl}"
|
||||
# generate ld.so.conf file
|
||||
ldconf="${EROOT}/etc/ld.so.conf.d/81-blas-${libdir}.conf"
|
||||
libpath=$(load_config ${EROOT}/etc/env.d/blas/${libdir}/${impl} LDPATH)
|
||||
truncate -s0 $ldconf
|
||||
echo "# Auto-generated by eselect::blas. DON'T EDIT." >> $ldconf
|
||||
echo "$libpath" >> $ldconf
|
||||
|
||||
# refresh cache. env-update will call ldconfig (see
|
||||
# portage::env_update.py) so we don't need to call it explicitly.
|
||||
env-update
|
||||
}
|
||||
|
||||
### add action
|
||||
describe_add_parameters() {
|
||||
echo "<libdir> <dir> <impl>"
|
||||
}
|
||||
|
||||
describe_add_options() {
|
||||
echo "libdir : library directory where $MODULE implementation is installed (lib, lib64, etc.)"
|
||||
echo "dir : directory containing lib{,c}blas.so{.3}"
|
||||
echo "impl : name of the $MODULE implementation"
|
||||
}
|
||||
|
||||
do_add() {
|
||||
[[ $# -eq 3 ]] \
|
||||
|| die -q "Please specify <libdir> <dir> <impl> to activate!"
|
||||
validate_blaslibdir $2 || die -q "invalid blas libdir!"
|
||||
store_config ${EROOT}/etc/env.d/blas/$1/$3 LDPATH $2
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="LAPACK module for eselect"
|
||||
HOMEPAGE="https://www.gentoo.org"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
|
||||
IUSE=""
|
||||
|
||||
# Need skel.bash lib
|
||||
RDEPEND=( ">=app-admin/eselect-1.0.5" )
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
src_install() {
|
||||
local MODULEDIR="/usr/share/eselect/modules"
|
||||
local MODULE="lapack"
|
||||
insinto ${MODULEDIR}
|
||||
newins "${FILESDIR}"/${MODULE}.eselect-${PVR} ${MODULE}.eselect
|
||||
doman "${FILESDIR}"/lapack.eselect.5
|
||||
}
|
@ -0,0 +1,167 @@
|
||||
# -*-eselect-*- vim: ft=eselect
|
||||
# Copyright 2019 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU GPL version 2 or later
|
||||
|
||||
inherit config tests multilib skel
|
||||
|
||||
MODULE="LAPACK"
|
||||
IFACE="lapack"
|
||||
DESCRIPTION="Manage installed alternatives of $MODULE shared objects"
|
||||
MAINTAINER="lumin@debian.org"
|
||||
VERSION="20190621"
|
||||
|
||||
### helper utility to find all available LAPACK implementations
|
||||
find_targets_in() {
|
||||
[[ $# -eq 1 ]] || die -q "in which libdir?"
|
||||
|
||||
local cand
|
||||
for cand in ${EROOT}/etc/env.d/lapack/$1/*; do
|
||||
[[ "config" = $(basename ${cand}) ]] && continue
|
||||
[[ -r ${cand} ]] && basename ${cand}
|
||||
done
|
||||
}
|
||||
|
||||
### helper utility to validate a LAPACK library directory
|
||||
validate_lapacklibdir() {
|
||||
[[ -d $1 ]] || return 2 # dir doesn't exist
|
||||
[[ -r "${1}/liblapack.so.3" ]] && [[ -r "${1}/liblapack.so" ]] \
|
||||
|| return 1
|
||||
}
|
||||
|
||||
### show action
|
||||
do_show() {
|
||||
# do_show -- show both lib64 and lib32 selection
|
||||
# do_show libxx -- show libxx selection
|
||||
local libdir cur libdirs=( $(list_libdirs) )
|
||||
|
||||
# if manually specified libdirs
|
||||
if [[ ! $# -eq 0 ]]; then
|
||||
for libdir in $@; do
|
||||
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||
done
|
||||
libdirs=( $@ )
|
||||
fi
|
||||
|
||||
for libdir in ${libdirs[@]}; do
|
||||
[[ ! -d ${EROOT}/usr/$libdir ]] && continue
|
||||
[[ ! -r ${EROOT}/etc/env.d/lapack/${libdir}/config ]] && continue
|
||||
cur=$(load_config ${EROOT}/etc/env.d/lapack/${libdir}/config CURRENT)
|
||||
echo ${libdir}: $cur
|
||||
done
|
||||
}
|
||||
|
||||
### list action
|
||||
do_list() {
|
||||
local i cur targets
|
||||
local libdir libdirs=( $(list_libdirs) )
|
||||
|
||||
# if manually specified libdirs
|
||||
if [[ ! $# -eq 0 ]]; then
|
||||
for libdir in $@; do
|
||||
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||
done
|
||||
libdirs=( $@ )
|
||||
fi
|
||||
|
||||
for libdir in ${libdirs[@]}; do
|
||||
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||
targets=( $(find_targets_in $libdir) )
|
||||
cur=$(load_config ${EROOT}/etc/env.d/lapack/${libdir}/config CURRENT)
|
||||
|
||||
write_list_start "Available LAPACK ($libdir) candidates:"
|
||||
for (( i = 0; i < ${#targets[@]}; i++ )); do
|
||||
[[ ${targets[i]} = $cur ]] \
|
||||
&& targets[i]=$(highlight_marker "${targets[i]}")
|
||||
done
|
||||
write_numbered_list -m "(none found)" "${targets[@]}"
|
||||
done
|
||||
}
|
||||
|
||||
### validate action
|
||||
describe_validate() {
|
||||
echo "validate candidates and remove invalid ones"
|
||||
}
|
||||
|
||||
do_validate() {
|
||||
local i ldpath targets target candidate
|
||||
local libdir libdirs=( $(list_libdirs) )
|
||||
for libdir in ${libdirs[@]}; do
|
||||
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||
targets=( $(find_targets_in $libdir) )
|
||||
for target in ${targets[@]}; do
|
||||
candidate=${EROOT}/etc/env.d/lapack/${libdir}/${target}
|
||||
ldpath=$(load_config $candidate LDPATH)
|
||||
if ! validate_lapacklibdir $ldpath; then
|
||||
echo "Removing invalid LAPACK candidate ($candidate) ..."
|
||||
rm -v $candidate
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
### set action
|
||||
|
||||
describe_set() {
|
||||
echo "Activate one of the installed $MODULE implementations"
|
||||
}
|
||||
|
||||
describe_set_parameters() {
|
||||
echo "[<libdir>] <implementation>"
|
||||
}
|
||||
|
||||
describe_set_options() {
|
||||
echo "libdir: lib64 or lib32. Will use the native one when omitted."
|
||||
echo "implementation : implementation name or number (from 'list' action)"
|
||||
}
|
||||
|
||||
do_set() {
|
||||
local libdirs=( $(list_libdirs) )
|
||||
local targets libdir ldconf libpath impl
|
||||
|
||||
# check argument existence
|
||||
[[ $# -eq 1 ]] || [[ $# -eq 2 ]] || \
|
||||
die -q "Please specify [<libdir>] <impl> to activate!"
|
||||
# read argumenets
|
||||
if [[ $# -eq 2 ]]; then libdir="$1"; else libdir="$(get_libdir)"; fi
|
||||
if [[ $# -eq 2 ]]; then impl="$2"; else impl="$1"; fi
|
||||
# validate arguments
|
||||
has "$libdir" "${libdirs[@]}" || die -q "Invalid libdir ($libdir) !"
|
||||
targets=( $(find_targets_in $libdir) )
|
||||
if ! has "$impl" "${targets[@]}"; then
|
||||
if [[ ${impl} -gt 0 ]] && [[ ${impl} -le ${#targets[@]} ]]; then
|
||||
impl=${targets[(${impl} - 1)]}
|
||||
else
|
||||
die -q "Invalid impl ($impl) !"
|
||||
fi
|
||||
fi
|
||||
# store the configuration to env.d
|
||||
store_config ${EROOT}/etc/env.d/lapack/${libdir}/config CURRENT "${impl}"
|
||||
# generate ld.so.conf file
|
||||
ldconf="${EROOT}/etc/ld.so.conf.d/82-lapack-${libdir}.conf"
|
||||
libpath=$(load_config ${EROOT}/etc/env.d/lapack/${libdir}/${impl} LDPATH)
|
||||
truncate -s0 $ldconf
|
||||
echo "# Auto-generated by eselect::lapack. DON'T EDIT." >> $ldconf
|
||||
echo "$libpath" >> $ldconf
|
||||
|
||||
# refresh cache. env-update will call ldconfig (see
|
||||
# portage::env_update.py) so we don't need to call it explicitly.
|
||||
env-update
|
||||
}
|
||||
|
||||
### add action
|
||||
describe_add_parameters() {
|
||||
echo "<libdir> <dir> <impl>"
|
||||
}
|
||||
|
||||
describe_add_options() {
|
||||
echo "libdir : library directory where $MODULE implementation is installed (lib, lib64, etc.)"
|
||||
echo "dir : directory containing liblapack.so{.3}"
|
||||
echo "impl : name of the $MODULE implementation"
|
||||
}
|
||||
|
||||
do_add() {
|
||||
[[ $# -eq 3 ]] \
|
||||
|| die -q "Please specify <libdir> <dir> <impl> to activate!"
|
||||
validate_lapacklibdir $2 || die -q "invalid lapack libdir!"
|
||||
store_config ${EROOT}/etc/env.d/lapack/$1/$3 LDPATH $2
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,565 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Utilities for users of Gentoo Prefix"
|
||||
HOMEPAGE="https://prefix.gentoo.org/"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${PV} == 9999 ]] ||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
DEPEND=""
|
||||
RDEPEND="
|
||||
>sys-apps/portage-2.3.62
|
||||
!app-portage/prefix-chain-setup
|
||||
!sys-apps/prefix-chain-utils
|
||||
prefix-stack? (
|
||||
>=sys-apps/baselayout-prefix-2.6
|
||||
)
|
||||
"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
my_unpack() {
|
||||
local infile=$1
|
||||
local outfile=${2:-${infile}}
|
||||
ebegin "extracting ${outfile}"
|
||||
sed -ne "/^: ${infile} /,/EOIN/{/EOIN/d;p}" "${EBUILD}" \
|
||||
> "${outfile}" || die "Failed to unpack ${outfile}"
|
||||
eend $?
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use prefix-stack ; then
|
||||
my_unpack prefix-stack.bash_login
|
||||
my_unpack prefix-stack.bashrc
|
||||
my_unpack prefix-stack.envd.99stack
|
||||
my_unpack prefix-stack-ccwrap
|
||||
local editor pager
|
||||
for editor in "${EDITOR}" {"${EPREFIX}","${BROOT}"}/bin/nano
|
||||
do
|
||||
[[ -x ${editor} ]] || continue
|
||||
done
|
||||
for pager in "${PAGER}" {"${EPREFIX}","${BROOT}"}/usr/bin/less
|
||||
do
|
||||
[[ -x ${pager} ]] || continue
|
||||
done
|
||||
printf '%s\n' "EDITOR=\"${editor}\"" "PAGER=\"${pager}\"" > 000fallback
|
||||
else
|
||||
my_unpack prefix-stack-setup
|
||||
fi
|
||||
my_unpack startprefix
|
||||
}
|
||||
|
||||
my_prefixify() {
|
||||
local ebash eenv
|
||||
if use prefix-stack ; then
|
||||
ebash="${BROOT}/bin/bash"
|
||||
eenv="${BROOT}/usr/bin/env"
|
||||
else
|
||||
ebash="${EPREFIX}/bin/bash"
|
||||
eenv="${EPREFIX}/usr/bin/env"
|
||||
fi
|
||||
|
||||
# the @=@ prevents repoman from believing we set readonly vars
|
||||
sed -e "s,@GENTOO_PORTAGE_BPREFIX@,${BROOT},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EPREFIX@,${EPREFIX},g" \
|
||||
-e "s,@GENTOO_PORTAGE_CHOST@,${CHOST},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EBASH@,${ebash},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EENV@,${eenv},g" \
|
||||
-e "s,@=@,=,g" \
|
||||
-i "$@" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# do not eprefixify during unpack, to allow userpatches to apply
|
||||
my_prefixify *
|
||||
}
|
||||
|
||||
src_install-prefix-stack-ccwrap() {
|
||||
# install toolchain wrapper.
|
||||
local wrapperdir=/usr/${CHOST}/gcc-bin/${CHOST}-${PN}/${PV}
|
||||
local wrappercfg=${CHOST}-${P}
|
||||
|
||||
exeinto $wrapperdir
|
||||
doexe prefix-stack-ccwrap
|
||||
|
||||
local cc
|
||||
for cc in \
|
||||
gcc \
|
||||
g++ \
|
||||
cpp \
|
||||
c++ \
|
||||
windres \
|
||||
; do
|
||||
dosym prefix-stack-ccwrap $wrapperdir/${CHOST}-${cc}
|
||||
dosym ${CHOST}-${cc} $wrapperdir/${cc}
|
||||
done
|
||||
|
||||
# LDPATH is required to keep gcc-config happy :(
|
||||
cat > ./${wrappercfg} <<-EOF
|
||||
GCC_PATH="${EPREFIX}$wrapperdir"
|
||||
LDPATH="${EPREFIX}$wrapperdir"
|
||||
EOF
|
||||
|
||||
insinto /etc/env.d/gcc
|
||||
doins ./${wrappercfg}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if use prefix-stack; then
|
||||
src_install-prefix-stack-ccwrap
|
||||
insinto /etc
|
||||
doins prefix-stack.bash_login
|
||||
insinto /etc/bash
|
||||
newins prefix-stack.bashrc bashrc
|
||||
newenvd prefix-stack.envd.99stack 99stack
|
||||
doenvd 000fallback
|
||||
else
|
||||
dobin prefix-stack-setup
|
||||
fi
|
||||
exeinto /
|
||||
doexe startprefix
|
||||
}
|
||||
|
||||
return 0
|
||||
|
||||
: startprefix <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_EBASH@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Fabian Groffen <grobian@gentoo.org> -- 2007-03-10
|
||||
# Enters the prefix environment by starting a login shell from the
|
||||
# prefix. The SHELL environment variable is elevated in order to make
|
||||
# applications that start login shells to work, such as `screen`.
|
||||
|
||||
# if you come from a substantially polluted environment (another
|
||||
# Prefix), a cleanup as follows resolves most oddities I've ever seen:
|
||||
# env -i HOME=$HOME TERM=$TERM USER=$USER $SHELL -l
|
||||
# hence this script starts the Prefix shell like this
|
||||
|
||||
if [[ ${SHELL#@GENTOO_PORTAGE_EPREFIX@} != ${SHELL} ]]
|
||||
then
|
||||
echo "You appear to be in prefix already (SHELL=${SHELL})" > /dev/stderr
|
||||
exit -1
|
||||
elif [[ ${SHELL#@GENTOO_PORTAGE_BPREFIX@} != ${SHELL} ]] &&
|
||||
[[ ${EPREFIX-unset} == '@GENTOO_PORTAGE_EPREFIX@' ]]
|
||||
then
|
||||
echo "You appear to be in stacked prefix already (EPREFIX=${EPREFIX})" > /dev/stderr
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# What is our prefix?
|
||||
EPREFIX@=@'@GENTOO_PORTAGE_EPREFIX@'
|
||||
BPREFIX@=@'@GENTOO_PORTAGE_BPREFIX@'
|
||||
|
||||
# not all systems have the same location for shells, however what it
|
||||
# boils down to, is that we need to know what the shell is, and then we
|
||||
# can find it in the bin dir of our prefix
|
||||
for SHELL in \
|
||||
"${EPREFIX}/bin/${SHELL##*/}" \
|
||||
"${BPREFIX}/bin/${SHELL##*/}" \
|
||||
${SHELL##*/}
|
||||
do
|
||||
[[ ${SHELL} == */* && -x ${SHELL} ]] && break
|
||||
done
|
||||
|
||||
# check if the shell exists
|
||||
if [[ ${SHELL} != */* ]]
|
||||
then
|
||||
echo "Failed to find the Prefix shell, this is probably" > /dev/stderr
|
||||
echo "because you didn't emerge the shell ${SHELL}" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# set the prefix shell in the environment
|
||||
export SHELL
|
||||
|
||||
# give a small notice
|
||||
echo "Entering Gentoo Prefix ${EPREFIX}"
|
||||
# start the login shell, clean the entire environment but what's needed
|
||||
RETAIN="HOME=$HOME TERM=$TERM USER=$USER SHELL=$SHELL"
|
||||
# PROFILEREAD is necessary on SUSE not to wipe the env on shell start
|
||||
[[ -n ${PROFILEREAD} ]] && RETAIN+=" PROFILEREAD=$PROFILEREAD"
|
||||
# ssh-agent is handy to keep, of if set, inherit it
|
||||
[[ -n ${SSH_AUTH_SOCK} ]] && RETAIN+=" SSH_AUTH_SOCK=$SSH_AUTH_SOCK"
|
||||
# if we're on some X terminal, makes sense to inherit that too
|
||||
[[ -n ${DISPLAY} ]] && RETAIN+=" DISPLAY=$DISPLAY"
|
||||
# do it!
|
||||
if [[ ${SHELL#${EPREFIX}} != ${SHELL} ]] ; then
|
||||
'@GENTOO_PORTAGE_EENV@' -i $RETAIN $SHELL -l
|
||||
elif [[ ' bash ' == *" ${SHELL##*/} "* ]] ; then
|
||||
# shell coming from different prefix would load it's own
|
||||
# etc/profile upon -l, so we have to override
|
||||
'@GENTOO_PORTAGE_EENV@' -i ${RETAIN} "${SHELL}" --rcfile "${EPREFIX}"/etc/prefix-stack.bash_login -i
|
||||
else
|
||||
echo "Only bash is supported with stacked Prefix (you have ${SHELL##*/}), sorry!" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
# and leave a message when we exit... the shell might return non-zero
|
||||
# without having real problems, so don't send alarming messages about
|
||||
# that
|
||||
echo "Leaving Gentoo Prefix with exit status $?"
|
||||
EOIN
|
||||
|
||||
: prefix-stack.bashrc <<'EOIN'
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# In stacked Prefix there is no bash installed, yet
|
||||
# etc/bash/bashrc from base Prefix still is useful.
|
||||
#
|
||||
|
||||
if [[ $- != *i* ]] ; then
|
||||
# Shell is non-interactive, bashrc does not apply
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -r @GENTOO_PORTAGE_BPREFIX@/etc/bash/bashrc ]] ; then
|
||||
source '@GENTOO_PORTAGE_BPREFIX@/etc/bash/bashrc'
|
||||
# only if base Prefix does have an etc/bash/bashrc, we also
|
||||
# run bashrc snippets provided by packages in stacked Prefix
|
||||
for sh in '@GENTOO_PORTAGE_EPREFIX@'/etc/bash/bashrc.d/* ; do
|
||||
[[ -r ${sh} ]] && source "${sh}"
|
||||
done
|
||||
unset sh
|
||||
else
|
||||
# etc/profile does expect etc/bash/bashrc to set PS1
|
||||
PS1='\u@\h \w \$ '
|
||||
fi
|
||||
EOIN
|
||||
|
||||
: prefix-stack.bash_login <<'EOIN'
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# In stacked Prefix there is no bash installed, so there is
|
||||
# no bash able to load this Prefix' profile as login shell.
|
||||
# Instead, you can specify this one as bash rcfile to mimic
|
||||
# a bash login shell using this stacked Prefix profile.
|
||||
#
|
||||
|
||||
if [[ -s '@GENTOO_PORTAGE_EPREFIX@/etc/profile' ]] ; then
|
||||
. '@GENTOO_PORTAGE_EPREFIX@/etc/profile'
|
||||
fi
|
||||
if [[ -s ~/.bash_profile ]] ; then
|
||||
. ~/.bash_profile
|
||||
elif [[ -s ~/.bash_login ]] ; then
|
||||
. ~/.bash_login
|
||||
elif [[ -s ~/.profile ]] ; then
|
||||
. ~/.profile
|
||||
fi
|
||||
EOIN
|
||||
|
||||
: prefix-stack.envd.99stack <<'EOIN'
|
||||
PKG_CONFIG_PATH@=@"@GENTOO_PORTAGE_EPREFIX@/usr/lib/pkgconfig:@GENTOO_PORTAGE_EPREFIX@/usr/share/pkgconfig"
|
||||
PORTAGE_CONFIGROOT@=@"@GENTOO_PORTAGE_EPREFIX@"
|
||||
EPREFIX@=@"@GENTOO_PORTAGE_EPREFIX@"
|
||||
EOIN
|
||||
|
||||
: prefix-stack-setup <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_EPREFIX@/bin/bash
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
PARENT_EPREFIX="@GENTOO_PORTAGE_EPREFIX@"
|
||||
PARENT_CHOST="@GENTOO_PORTAGE_CHOST@"
|
||||
CHILD_EPREFIX=
|
||||
CHILD_PROFILE=
|
||||
|
||||
#
|
||||
# get ourselfs the functions.sh script for ebegin/eend/etc.
|
||||
#
|
||||
for f in \
|
||||
/lib/gentoo/functions.sh \
|
||||
/etc/init.d/functions.sh \
|
||||
/sbin/functions.sh \
|
||||
; do
|
||||
if [[ -r ${PARENT_EPREFIX}${f} ]] ; then
|
||||
. "${PARENT_EPREFIX}${f}"
|
||||
f=found
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${f} != found ]] ; then
|
||||
echo "Cannot find Gentoo functions, aborting." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for arg in "$@"; do
|
||||
case "${arg}" in
|
||||
--eprefix=*) CHILD_EPREFIX="${arg#--eprefix=}" ;;
|
||||
--profile=*) CHILD_PROFILE="${arg#--profile=}" ;;
|
||||
|
||||
--help)
|
||||
einfo "$0 usage:"
|
||||
einfo " --eprefix=[PATH] Path to new EPREFIX to create stacked to the prefix"
|
||||
einfo " where this script is installed (${PARENT_EPREFIX})"
|
||||
einfo " --profile=[PATH] The absolute path to the profile to use. This path"
|
||||
einfo " must point to a directory within ${PARENT_EPREFIX}"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
#
|
||||
# sanity check of given values
|
||||
#
|
||||
|
||||
test -n "${CHILD_EPREFIX}" || { eerror "no eprefix argument given"; exit 1; }
|
||||
test -d "${CHILD_EPREFIX}" && { eerror "${CHILD_EPREFIX} already exists"; exit 1; }
|
||||
test -n "${CHILD_PROFILE}" || { eerror "no profile argument given"; exit 1; }
|
||||
test -d "${CHILD_PROFILE}" || { eerror "${CHILD_PROFILE} does not exist"; exit 1; }
|
||||
|
||||
einfo "creating stacked prefix ${CHILD_EPREFIX}"
|
||||
|
||||
#
|
||||
# functions needed below.
|
||||
#
|
||||
eend_exit() {
|
||||
eend $1
|
||||
[[ $1 != 0 ]] && exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# create the directories required to bootstrap the least.
|
||||
#
|
||||
ebegin "creating directory structure"
|
||||
(
|
||||
set -e
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/profile/use.mask
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/profile/use.force
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/env
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/package.env
|
||||
ln -s "${PARENT_EPREFIX}"/etc/portage/repos.conf "${CHILD_EPREFIX}"/etc/portage/repos.conf
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# create a make.conf and set PORTDIR and PORTAGE_TMPDIR
|
||||
#
|
||||
ebegin "creating make.conf"
|
||||
(
|
||||
set -e
|
||||
echo "#"
|
||||
echo "# The following values where taken from the parent prefix's"
|
||||
echo "# environment. Feel free to adopt them as you like."
|
||||
echo "#"
|
||||
echo "CFLAGS=\"$(portageq envvar CFLAGS)\""
|
||||
echo "CXXFLAGS=\"$(portageq envvar CXXFLAGS)\""
|
||||
echo "MAKEOPTS=\"$(portageq envvar MAKEOPTS)\""
|
||||
niceness=$(portageq envvar PORTAGE_NICENESS || true)
|
||||
[[ -n ${niceness} ]] &&
|
||||
echo "PORTAGE_NICENESS=\"${niceness}\""
|
||||
echo
|
||||
echo "# Mirrors from parent prefix."
|
||||
echo "GENTOO_MIRRORS=\"$(portageq envvar GENTOO_MIRRORS || true)\""
|
||||
echo
|
||||
echo "# Below comes the prefix-stack setup. Only change things"
|
||||
echo "# if you know exactly what you are doing!"
|
||||
echo "EPREFIX=\"${CHILD_EPREFIX}\""
|
||||
echo "PORTAGE_OVERRIDE_EPREFIX=\"${PARENT_EPREFIX}\""
|
||||
echo "BROOT=\"${PARENT_EPREFIX}\""
|
||||
) > "${CHILD_EPREFIX}"/etc/portage/make.conf
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating use.mask/prefix-stack"
|
||||
printf -- '-%s\n' prefix{,-guest,-stack} > "${CHILD_EPREFIX}"/etc/portage/profile/use.mask/prefix-stack
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating use.force/prefix-stack"
|
||||
printf -- '%s\n' prefix{,-guest,-stack} > "${CHILD_EPREFIX}"/etc/portage/profile/use.force/prefix-stack
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating env/host-cc.conf"
|
||||
cat > "${CHILD_EPREFIX}"/etc/portage/env/host-cc.conf <<-EOM
|
||||
CC=${PARENT_CHOST}-gcc
|
||||
CXX=${PARENT_CHOST}-g++
|
||||
EOM
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating package.env/prefix-stack"
|
||||
cat > "${CHILD_EPREFIX}"/etc/portage/package.env/prefix-stack <<-'EOM'
|
||||
# merge with the parent's chost. this forces the use of the parent
|
||||
# compiler, which generally would be illegal - this is an exception.
|
||||
# This is required for example on winnt, because the wrapper has to
|
||||
# be able to use/resolve symlinks, etc. native winnt binaries miss
|
||||
# that ability, but cygwin binaries don't.
|
||||
sys-devel/gcc-config host-cc.conf
|
||||
sys-apps/gentoo-functions host-cc.conf
|
||||
EOM
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# create the make.profile symlinks.
|
||||
#
|
||||
ebegin "creating make.profile"
|
||||
(
|
||||
ln -s "${CHILD_PROFILE}" "${CHILD_EPREFIX}/etc/portage/make.profile"
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# adjust permissions of generated files.
|
||||
#
|
||||
ebegin "adjusting permissions"
|
||||
(
|
||||
set -e
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/make.conf
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/env/host-cc.conf
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/package.env/prefix-stack
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# now merge some basics.
|
||||
#
|
||||
ebegin "installing required basic packages"
|
||||
(
|
||||
set -e
|
||||
export PORTAGE_CONFIGROOT@=@"${CHILD_EPREFIX}"
|
||||
export EPREFIX@=@"${CHILD_EPREFIX}"
|
||||
export PORTAGE_OVERRIDE_EPREFIX@=@"${PARENT_EPREFIX}"
|
||||
|
||||
# # this -pv is there to avoid the global update output, which is
|
||||
# # there on the first emerge run. (thus, just cosmetics).
|
||||
# emerge --pretend --oneshot --nodeps baselayout-prefix
|
||||
|
||||
# let baselayout create the directories
|
||||
USE@=@"${USE} build" \
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
'>=baselayout-prefix-2.6'
|
||||
|
||||
# Record the prefix-toolkit into @world file, as it provides the
|
||||
# env.d telling the PM to manage this stacked Prefix, but may not
|
||||
# (unlike baselayout) be part of @system set per the profile.
|
||||
emerge --verbose --nodeps \
|
||||
prefix-toolkit
|
||||
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
gentoo-functions \
|
||||
elt-patches \
|
||||
gnuconfig \
|
||||
gcc-config
|
||||
|
||||
# select the stack wrapper profile from gcc-config
|
||||
env -i PORTAGE_CONFIGROOT="${CHILD_EPREFIX}" "$(type -P bash)" "${CHILD_EPREFIX}"/usr/bin/gcc-config 1
|
||||
|
||||
# do this _after_ selecting the correct compiler!
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
libtool
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# wow, all ok :)
|
||||
#
|
||||
ewarn
|
||||
ewarn "all done. don't forget to tune ${CHILD_EPREFIX}/etc/portage/make.conf."
|
||||
ewarn "to enter the new prefix, run \"${CHILD_EPREFIX}/startprefix\"."
|
||||
ewarn
|
||||
EOIN
|
||||
|
||||
: prefix-stack-ccwrap <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_BPREFIX@/bin/bash
|
||||
|
||||
if [ -r /cygdrive/. ]; then
|
||||
winpath2unix() { cygpath -u "$1"; }
|
||||
unixpath2win() { cygpath -w "$1"; }
|
||||
fi
|
||||
|
||||
myself=${0##*/} # basename $0
|
||||
link_dirs=()
|
||||
opts=()
|
||||
chost="@GENTOO_PORTAGE_CHOST@"
|
||||
prefix="@GENTOO_PORTAGE_EPREFIX@"
|
||||
absprefix=${prefix}
|
||||
if [[ ${chost} == *"-winnt"* ]]; then
|
||||
# we may get called from windows binary, like pkgdata in dev-libs/icu
|
||||
# in this case, PATH elements get the "/dev/fs/C/WINDOWS/SUA" prefix
|
||||
absprefix=$(winpath2unix "$(unixpath2win "${absprefix}")")
|
||||
fi
|
||||
[[ ${myself} == *windres* ]] && mode=compile || mode=link
|
||||
orig_args=("$@")
|
||||
|
||||
for opt in "$@"
|
||||
do
|
||||
case "$opt" in
|
||||
-L)
|
||||
link_dirs=("${link_dirs[@]}" "-L$1")
|
||||
shift
|
||||
;;
|
||||
-L*)
|
||||
link_dirs=("${link_dirs[@]}" "${opt}")
|
||||
;;
|
||||
*)
|
||||
case "${opt}" in
|
||||
-v)
|
||||
# -v done right: only use mode version if -v is the _only_
|
||||
# argument on the command line.
|
||||
[[ ${#orig_args[@]} -gt 1 ]] || mode=version
|
||||
;;
|
||||
--version) mode=version ;;
|
||||
-c|-E|-S) mode=compile ;;
|
||||
-print-search-dirs) mode=dirs ;;
|
||||
esac
|
||||
opts=("${opts[@]}" "${opt}")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# remove any path to current prefix, need base prefix only
|
||||
new_path=
|
||||
save_ifs=$IFS
|
||||
IFS=':'
|
||||
for p in $PATH
|
||||
do
|
||||
IFS=$save_ifs
|
||||
[[ ${p#${absprefix}} != "${p}" ]] && continue
|
||||
if [[ -z "${new_path}" ]]; then
|
||||
new_path="${p}"
|
||||
else
|
||||
new_path="${new_path}:${p}"
|
||||
fi
|
||||
done
|
||||
IFS=$save_ifs
|
||||
|
||||
PATH=${new_path}
|
||||
|
||||
# binutils-config's ldwrapper understands '-R' for aix and hpux too.
|
||||
# parity (winnt) understands -rpath only ...
|
||||
case "${chost}" in
|
||||
*-winnt*) rpath_opt="-Wl,-rpath," ;;
|
||||
*) rpath_opt="-Wl,-R," ;;
|
||||
esac
|
||||
|
||||
pfx_link=("-L${prefix}/usr/lib" "-L${prefix}/lib")
|
||||
pfx_link_r=("${rpath_opt}${prefix}/lib" "${rpath_opt}${prefix}/usr/lib")
|
||||
pfx_comp=("-I${prefix}/include" "-I${prefix}/usr/include")
|
||||
|
||||
# ensure we run the right chost program in base prefix
|
||||
[[ ${myself} == *-*-*-* ]] || myself=${chost}-${myself#${chost}-}
|
||||
|
||||
case "$mode" in
|
||||
link) exec "${myself}" "${link_dirs[@]}" "${pfx_link[@]}" "${opts[@]}" "${pfx_comp[@]}" "${pfx_link_r[@]}" ;;
|
||||
compile) exec "${myself}" "${link_dirs[@]}" "${opts[@]}" "${pfx_comp[@]}" ;;
|
||||
version) exec "${myself}" "${orig_args[@]}" ;;
|
||||
dirs)
|
||||
"${myself}" "${orig_args[@]}" | while read line; do
|
||||
if [[ "${line}" == "libraries: ="* ]]; then
|
||||
echo "libraries: =${prefix}/usr/lib:${prefix}/lib:${line#"libraries: ="}"
|
||||
else
|
||||
echo "${line}"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
*) echo "cannot infer ${myself}'s mode from comamnd line arguments"; exit 1 ;;
|
||||
esac
|
||||
EOIN
|
@ -1,567 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Utilities for users of Gentoo Prefix"
|
||||
HOMEPAGE="https://prefix.gentoo.org/"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${PV} == 9999 ]] ||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
BDEPEND="
|
||||
>sys-apps/portage-2.3.62
|
||||
"
|
||||
DEPEND=""
|
||||
RDEPEND="
|
||||
!app-portage/prefix-chain-setup
|
||||
!sys-apps/prefix-chain-utils
|
||||
prefix-stack? (
|
||||
>=sys-apps/baselayout-prefix-2.6
|
||||
)
|
||||
"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
my_unpack() {
|
||||
local infile=$1
|
||||
local outfile=${2:-${infile}}
|
||||
ebegin "extracting ${outfile}"
|
||||
sed -ne "/^: ${infile} /,/EOIN/{/EOIN/d;p}" "${EBUILD}" \
|
||||
> "${outfile}" || die "Failed to unpack ${outfile}"
|
||||
eend $?
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use prefix-stack ; then
|
||||
my_unpack prefix-stack.bash_login
|
||||
my_unpack prefix-stack.bashrc
|
||||
my_unpack prefix-stack.envd.99stack
|
||||
my_unpack prefix-stack-ccwrap
|
||||
local editor pager
|
||||
for editor in "${EDITOR}" {"${EPREFIX}","${BROOT}"}/bin/nano
|
||||
do
|
||||
[[ -x ${editor} ]] || continue
|
||||
done
|
||||
for pager in "${PAGER}" {"${EPREFIX}","${BROOT}"}/usr/bin/less
|
||||
do
|
||||
[[ -x ${pager} ]] || continue
|
||||
done
|
||||
printf '%s\n' "EDITOR=\"${editor}\"" "PAGER=\"${pager}\"" > 000fallback
|
||||
else
|
||||
my_unpack prefix-stack-setup
|
||||
fi
|
||||
my_unpack startprefix
|
||||
}
|
||||
|
||||
my_prefixify() {
|
||||
local ebash eenv
|
||||
if use prefix-stack ; then
|
||||
ebash="${BROOT}/bin/bash"
|
||||
eenv="${BROOT}/usr/bin/env"
|
||||
else
|
||||
ebash="${EPREFIX}/bin/bash"
|
||||
eenv="${EPREFIX}/usr/bin/env"
|
||||
fi
|
||||
|
||||
# the @=@ prevents repoman from believing we set readonly vars
|
||||
sed -e "s,@GENTOO_PORTAGE_BPREFIX@,${BROOT},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EPREFIX@,${EPREFIX},g" \
|
||||
-e "s,@GENTOO_PORTAGE_CHOST@,${CHOST},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EBASH@,${ebash},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EENV@,${eenv},g" \
|
||||
-e "s,@=@,=,g" \
|
||||
-i "$@" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# do not eprefixify during unpack, to allow userpatches to apply
|
||||
my_prefixify *
|
||||
}
|
||||
|
||||
src_install-prefix-stack-ccwrap() {
|
||||
# install toolchain wrapper.
|
||||
local wrapperdir=/usr/${CHOST}/gcc-bin/${CHOST}-${PN}/${PV}
|
||||
local wrappercfg=${CHOST}-${P}
|
||||
|
||||
exeinto $wrapperdir
|
||||
doexe prefix-stack-ccwrap
|
||||
|
||||
local cc
|
||||
for cc in \
|
||||
gcc \
|
||||
g++ \
|
||||
cpp \
|
||||
c++ \
|
||||
windres \
|
||||
; do
|
||||
dosym prefix-stack-ccwrap $wrapperdir/${CHOST}-${cc}
|
||||
dosym ${CHOST}-${cc} $wrapperdir/${cc}
|
||||
done
|
||||
|
||||
# LDPATH is required to keep gcc-config happy :(
|
||||
cat > ./${wrappercfg} <<-EOF
|
||||
GCC_PATH="${EPREFIX}$wrapperdir"
|
||||
LDPATH="${EPREFIX}$wrapperdir"
|
||||
EOF
|
||||
|
||||
insinto /etc/env.d/gcc
|
||||
doins ./${wrappercfg}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if use prefix-stack; then
|
||||
src_install-prefix-stack-ccwrap
|
||||
insinto /etc
|
||||
doins prefix-stack.bash_login
|
||||
insinto /etc/bash
|
||||
newins prefix-stack.bashrc bashrc
|
||||
newenvd prefix-stack.envd.99stack 99stack
|
||||
doenvd 000fallback
|
||||
else
|
||||
dobin prefix-stack-setup
|
||||
fi
|
||||
exeinto /
|
||||
doexe startprefix
|
||||
}
|
||||
|
||||
return 0
|
||||
|
||||
: startprefix <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_EBASH@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Fabian Groffen <grobian@gentoo.org> -- 2007-03-10
|
||||
# Enters the prefix environment by starting a login shell from the
|
||||
# prefix. The SHELL environment variable is elevated in order to make
|
||||
# applications that start login shells to work, such as `screen`.
|
||||
|
||||
# if you come from a substantially polluted environment (another
|
||||
# Prefix), a cleanup as follows resolves most oddities I've ever seen:
|
||||
# env -i HOME=$HOME TERM=$TERM USER=$USER $SHELL -l
|
||||
# hence this script starts the Prefix shell like this
|
||||
|
||||
if [[ ${SHELL#@GENTOO_PORTAGE_EPREFIX@} != ${SHELL} ]]
|
||||
then
|
||||
echo "You appear to be in prefix already (SHELL=${SHELL})" > /dev/stderr
|
||||
exit -1
|
||||
elif [[ ${SHELL#@GENTOO_PORTAGE_BPREFIX@} != ${SHELL} ]] &&
|
||||
[[ ${EPREFIX-unset} == '@GENTOO_PORTAGE_EPREFIX@' ]]
|
||||
then
|
||||
echo "You appear to be in stacked prefix already (EPREFIX=${EPREFIX})" > /dev/stderr
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# What is our prefix?
|
||||
EPREFIX@=@'@GENTOO_PORTAGE_EPREFIX@'
|
||||
BPREFIX@=@'@GENTOO_PORTAGE_BPREFIX@'
|
||||
|
||||
# not all systems have the same location for shells, however what it
|
||||
# boils down to, is that we need to know what the shell is, and then we
|
||||
# can find it in the bin dir of our prefix
|
||||
for SHELL in \
|
||||
"${EPREFIX}/bin/${SHELL##*/}" \
|
||||
"${BPREFIX}/bin/${SHELL##*/}" \
|
||||
${SHELL##*/}
|
||||
do
|
||||
[[ ${SHELL} == */* && -x ${SHELL} ]] && break
|
||||
done
|
||||
|
||||
# check if the shell exists
|
||||
if [[ ${SHELL} != */* ]]
|
||||
then
|
||||
echo "Failed to find the Prefix shell, this is probably" > /dev/stderr
|
||||
echo "because you didn't emerge the shell ${SHELL}" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# set the prefix shell in the environment
|
||||
export SHELL
|
||||
|
||||
# give a small notice
|
||||
echo "Entering Gentoo Prefix ${EPREFIX}"
|
||||
# start the login shell, clean the entire environment but what's needed
|
||||
RETAIN="HOME=$HOME TERM=$TERM USER=$USER SHELL=$SHELL"
|
||||
# PROFILEREAD is necessary on SUSE not to wipe the env on shell start
|
||||
[[ -n ${PROFILEREAD} ]] && RETAIN+=" PROFILEREAD=$PROFILEREAD"
|
||||
# ssh-agent is handy to keep, of if set, inherit it
|
||||
[[ -n ${SSH_AUTH_SOCK} ]] && RETAIN+=" SSH_AUTH_SOCK=$SSH_AUTH_SOCK"
|
||||
# if we're on some X terminal, makes sense to inherit that too
|
||||
[[ -n ${DISPLAY} ]] && RETAIN+=" DISPLAY=$DISPLAY"
|
||||
# do it!
|
||||
if [[ ${SHELL#${EPREFIX}} != ${SHELL} ]] ; then
|
||||
'@GENTOO_PORTAGE_EENV@' -i $RETAIN $SHELL -l
|
||||
elif [[ ' bash ' == *" ${SHELL##*/} "* ]] ; then
|
||||
# shell coming from different prefix would load it's own
|
||||
# etc/profile upon -l, so we have to override
|
||||
'@GENTOO_PORTAGE_EENV@' -i ${RETAIN} "${SHELL}" --rcfile "${EPREFIX}"/etc/prefix-stack.bash_login -i
|
||||
else
|
||||
echo "Only bash is supported with stacked Prefix (you have ${SHELL##*/}), sorry!" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
# and leave a message when we exit... the shell might return non-zero
|
||||
# without having real problems, so don't send alarming messages about
|
||||
# that
|
||||
echo "Leaving Gentoo Prefix with exit status $?"
|
||||
EOIN
|
||||
|
||||
: prefix-stack.bashrc <<'EOIN'
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# In stacked Prefix there is no bash installed, yet
|
||||
# etc/bash/bashrc from base Prefix still is useful.
|
||||
#
|
||||
|
||||
if [[ $- != *i* ]] ; then
|
||||
# Shell is non-interactive, bashrc does not apply
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -r @GENTOO_PORTAGE_BPREFIX@/etc/bash/bashrc ]] ; then
|
||||
source '@GENTOO_PORTAGE_BPREFIX@/etc/bash/bashrc'
|
||||
# only if base Prefix does have an etc/bash/bashrc, we also
|
||||
# run bashrc snippets provided by packages in stacked Prefix
|
||||
for sh in '@GENTOO_PORTAGE_EPREFIX@'/etc/bash/bashrc.d/* ; do
|
||||
[[ -r ${sh} ]] && source "${sh}"
|
||||
done
|
||||
unset sh
|
||||
else
|
||||
# etc/profile does expect etc/bash/bashrc to set PS1
|
||||
PS1='\u@\h \w \$ '
|
||||
fi
|
||||
EOIN
|
||||
|
||||
: prefix-stack.bash_login <<'EOIN'
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# In stacked Prefix there is no bash installed, so there is
|
||||
# no bash able to load this Prefix' profile as login shell.
|
||||
# Instead, you can specify this one as bash rcfile to mimic
|
||||
# a bash login shell using this stacked Prefix profile.
|
||||
#
|
||||
|
||||
if [[ -s '@GENTOO_PORTAGE_EPREFIX@/etc/profile' ]] ; then
|
||||
. '@GENTOO_PORTAGE_EPREFIX@/etc/profile'
|
||||
fi
|
||||
if [[ -s ~/.bash_profile ]] ; then
|
||||
. ~/.bash_profile
|
||||
elif [[ -s ~/.bash_login ]] ; then
|
||||
. ~/.bash_login
|
||||
elif [[ -s ~/.profile ]] ; then
|
||||
. ~/.profile
|
||||
fi
|
||||
EOIN
|
||||
|
||||
: prefix-stack.envd.99stack <<'EOIN'
|
||||
PKG_CONFIG_PATH@=@"@GENTOO_PORTAGE_EPREFIX@/usr/lib/pkgconfig:@GENTOO_PORTAGE_EPREFIX@/usr/share/pkgconfig"
|
||||
PORTAGE_CONFIGROOT@=@"@GENTOO_PORTAGE_EPREFIX@"
|
||||
EPREFIX@=@"@GENTOO_PORTAGE_EPREFIX@"
|
||||
EOIN
|
||||
|
||||
: prefix-stack-setup <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_EPREFIX@/bin/bash
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
PARENT_EPREFIX="@GENTOO_PORTAGE_EPREFIX@"
|
||||
PARENT_CHOST="@GENTOO_PORTAGE_CHOST@"
|
||||
CHILD_EPREFIX=
|
||||
CHILD_PROFILE=
|
||||
|
||||
#
|
||||
# get ourselfs the functions.sh script for ebegin/eend/etc.
|
||||
#
|
||||
for f in \
|
||||
/lib/gentoo/functions.sh \
|
||||
/etc/init.d/functions.sh \
|
||||
/sbin/functions.sh \
|
||||
; do
|
||||
if [[ -r ${PARENT_EPREFIX}${f} ]] ; then
|
||||
. "${PARENT_EPREFIX}${f}"
|
||||
f=found
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${f} != found ]] ; then
|
||||
echo "Cannot find Gentoo functions, aborting." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for arg in "$@"; do
|
||||
case "${arg}" in
|
||||
--eprefix=*) CHILD_EPREFIX="${arg#--eprefix=}" ;;
|
||||
--profile=*) CHILD_PROFILE="${arg#--profile=}" ;;
|
||||
|
||||
--help)
|
||||
einfo "$0 usage:"
|
||||
einfo " --eprefix=[PATH] Path to new EPREFIX to create stacked to the prefix"
|
||||
einfo " where this script is installed (${PARENT_EPREFIX})"
|
||||
einfo " --profile=[PATH] The absolute path to the profile to use. This path"
|
||||
einfo " must point to a directory within ${PARENT_EPREFIX}"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
#
|
||||
# sanity check of given values
|
||||
#
|
||||
|
||||
test -n "${CHILD_EPREFIX}" || { eerror "no eprefix argument given"; exit 1; }
|
||||
test -d "${CHILD_EPREFIX}" && { eerror "${CHILD_EPREFIX} already exists"; exit 1; }
|
||||
test -n "${CHILD_PROFILE}" || { eerror "no profile argument given"; exit 1; }
|
||||
test -d "${CHILD_PROFILE}" || { eerror "${CHILD_PROFILE} does not exist"; exit 1; }
|
||||
|
||||
einfo "creating stacked prefix ${CHILD_EPREFIX}"
|
||||
|
||||
#
|
||||
# functions needed below.
|
||||
#
|
||||
eend_exit() {
|
||||
eend $1
|
||||
[[ $1 != 0 ]] && exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# create the directories required to bootstrap the least.
|
||||
#
|
||||
ebegin "creating directory structure"
|
||||
(
|
||||
set -e
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/profile/use.mask
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/profile/use.force
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/env
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/package.env
|
||||
ln -s "${PARENT_EPREFIX}"/etc/portage/repos.conf "${CHILD_EPREFIX}"/etc/portage/repos.conf
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# create a make.conf and set PORTDIR and PORTAGE_TMPDIR
|
||||
#
|
||||
ebegin "creating make.conf"
|
||||
(
|
||||
set -e
|
||||
echo "#"
|
||||
echo "# The following values where taken from the parent prefix's"
|
||||
echo "# environment. Feel free to adopt them as you like."
|
||||
echo "#"
|
||||
echo "CFLAGS=\"$(portageq envvar CFLAGS)\""
|
||||
echo "CXXFLAGS=\"$(portageq envvar CXXFLAGS)\""
|
||||
echo "MAKEOPTS=\"$(portageq envvar MAKEOPTS)\""
|
||||
niceness=$(portageq envvar PORTAGE_NICENESS || true)
|
||||
[[ -n ${niceness} ]] &&
|
||||
echo "PORTAGE_NICENESS=\"${niceness}\""
|
||||
echo
|
||||
echo "# Mirrors from parent prefix."
|
||||
echo "GENTOO_MIRRORS=\"$(portageq envvar GENTOO_MIRRORS || true)\""
|
||||
echo
|
||||
echo "# Below comes the prefix-stack setup. Only change things"
|
||||
echo "# if you know exactly what you are doing!"
|
||||
echo "EPREFIX=\"${CHILD_EPREFIX}\""
|
||||
echo "PORTAGE_OVERRIDE_EPREFIX=\"${PARENT_EPREFIX}\""
|
||||
echo "BROOT=\"${PARENT_EPREFIX}\""
|
||||
) > "${CHILD_EPREFIX}"/etc/portage/make.conf
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating use.mask/prefix-stack"
|
||||
printf -- '-%s\n' prefix{,-guest,-stack} > "${CHILD_EPREFIX}"/etc/portage/profile/use.mask/prefix-stack
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating use.force/prefix-stack"
|
||||
printf -- '%s\n' prefix{,-guest,-stack} > "${CHILD_EPREFIX}"/etc/portage/profile/use.force/prefix-stack
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating env/host-cc.conf"
|
||||
cat > "${CHILD_EPREFIX}"/etc/portage/env/host-cc.conf <<-EOM
|
||||
CC=${PARENT_CHOST}-gcc
|
||||
CXX=${PARENT_CHOST}-g++
|
||||
EOM
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating package.env/prefix-stack"
|
||||
cat > "${CHILD_EPREFIX}"/etc/portage/package.env/prefix-stack <<-'EOM'
|
||||
# merge with the parent's chost. this forces the use of the parent
|
||||
# compiler, which generally would be illegal - this is an exception.
|
||||
# This is required for example on winnt, because the wrapper has to
|
||||
# be able to use/resolve symlinks, etc. native winnt binaries miss
|
||||
# that ability, but cygwin binaries don't.
|
||||
sys-devel/gcc-config host-cc.conf
|
||||
sys-apps/gentoo-functions host-cc.conf
|
||||
EOM
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# create the make.profile symlinks.
|
||||
#
|
||||
ebegin "creating make.profile"
|
||||
(
|
||||
ln -s "${CHILD_PROFILE}" "${CHILD_EPREFIX}/etc/portage/make.profile"
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# adjust permissions of generated files.
|
||||
#
|
||||
ebegin "adjusting permissions"
|
||||
(
|
||||
set -e
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/make.conf
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/env/host-cc.conf
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/package.env/prefix-stack
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# now merge some basics.
|
||||
#
|
||||
ebegin "installing required basic packages"
|
||||
(
|
||||
set -e
|
||||
export PORTAGE_CONFIGROOT@=@"${CHILD_EPREFIX}"
|
||||
export EPREFIX@=@"${CHILD_EPREFIX}"
|
||||
export PORTAGE_OVERRIDE_EPREFIX@=@"${PARENT_EPREFIX}"
|
||||
|
||||
# # this -pv is there to avoid the global update output, which is
|
||||
# # there on the first emerge run. (thus, just cosmetics).
|
||||
# emerge --pretend --oneshot --nodeps baselayout-prefix
|
||||
|
||||
# let baselayout create the directories
|
||||
USE@=@"${USE} build" \
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
'>=baselayout-prefix-2.6'
|
||||
|
||||
# Record the prefix-toolkit into @world file, as it provides the
|
||||
# env.d telling the PM to manage this stacked Prefix, but may not
|
||||
# (unlike baselayout) be part of @system set per the profile.
|
||||
emerge --verbose --nodeps \
|
||||
prefix-toolkit
|
||||
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
gentoo-functions \
|
||||
elt-patches \
|
||||
gnuconfig \
|
||||
gcc-config
|
||||
|
||||
# select the stack wrapper profile from gcc-config
|
||||
env -i PORTAGE_CONFIGROOT="${CHILD_EPREFIX}" "$(type -P bash)" "${CHILD_EPREFIX}"/usr/bin/gcc-config 1
|
||||
|
||||
# do this _after_ selecting the correct compiler!
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
libtool
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# wow, all ok :)
|
||||
#
|
||||
ewarn
|
||||
ewarn "all done. don't forget to tune ${CHILD_EPREFIX}/etc/portage/make.conf."
|
||||
ewarn "to enter the new prefix, run \"${CHILD_EPREFIX}/startprefix\"."
|
||||
ewarn
|
||||
EOIN
|
||||
|
||||
: prefix-stack-ccwrap <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_BPREFIX@/bin/bash
|
||||
|
||||
if [ -r /cygdrive/. ]; then
|
||||
winpath2unix() { cygpath -u "$1"; }
|
||||
unixpath2win() { cygpath -w "$1"; }
|
||||
fi
|
||||
|
||||
myself=${0##*/} # basename $0
|
||||
link_dirs=()
|
||||
opts=()
|
||||
chost="@GENTOO_PORTAGE_CHOST@"
|
||||
prefix="@GENTOO_PORTAGE_EPREFIX@"
|
||||
absprefix=${prefix}
|
||||
if [[ ${chost} == *"-winnt"* ]]; then
|
||||
# we may get called from windows binary, like pkgdata in dev-libs/icu
|
||||
# in this case, PATH elements get the "/dev/fs/C/WINDOWS/SUA" prefix
|
||||
absprefix=$(winpath2unix "$(unixpath2win "${absprefix}")")
|
||||
fi
|
||||
[[ ${myself} == *windres* ]] && mode=compile || mode=link
|
||||
orig_args=("$@")
|
||||
|
||||
for opt in "$@"
|
||||
do
|
||||
case "$opt" in
|
||||
-L)
|
||||
link_dirs=("${link_dirs[@]}" "-L$1")
|
||||
shift
|
||||
;;
|
||||
-L*)
|
||||
link_dirs=("${link_dirs[@]}" "${opt}")
|
||||
;;
|
||||
*)
|
||||
case "${opt}" in
|
||||
-v)
|
||||
# -v done right: only use mode version if -v is the _only_
|
||||
# argument on the command line.
|
||||
[[ ${#orig_args[@]} -gt 1 ]] || mode=version
|
||||
;;
|
||||
--version) mode=version ;;
|
||||
-c|-E|-S) mode=compile ;;
|
||||
-print-search-dirs) mode=dirs ;;
|
||||
esac
|
||||
opts=("${opts[@]}" "${opt}")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# remove any path to current prefix, need base prefix only
|
||||
new_path=
|
||||
save_ifs=$IFS
|
||||
IFS=':'
|
||||
for p in $PATH
|
||||
do
|
||||
IFS=$save_ifs
|
||||
[[ ${p#${absprefix}} != "${p}" ]] && continue
|
||||
if [[ -z "${new_path}" ]]; then
|
||||
new_path="${p}"
|
||||
else
|
||||
new_path="${new_path}:${p}"
|
||||
fi
|
||||
done
|
||||
IFS=$save_ifs
|
||||
|
||||
PATH=${new_path}
|
||||
|
||||
# binutils-config's ldwrapper understands '-R' for aix and hpux too.
|
||||
# parity (winnt) understands -rpath only ...
|
||||
case "${chost}" in
|
||||
*-winnt*) rpath_opt="-Wl,-rpath," ;;
|
||||
*) rpath_opt="-Wl,-R," ;;
|
||||
esac
|
||||
|
||||
pfx_link=("-L${prefix}/usr/lib" "-L${prefix}/lib")
|
||||
pfx_link_r=("${rpath_opt}${prefix}/lib" "${rpath_opt}${prefix}/usr/lib")
|
||||
pfx_comp=("-I${prefix}/include" "-I${prefix}/usr/include")
|
||||
|
||||
# ensure we run the right chost program in base prefix
|
||||
[[ ${myself} == *-*-*-* ]] || myself=${chost}-${myself#${chost}-}
|
||||
|
||||
case "$mode" in
|
||||
link) exec "${myself}" "${link_dirs[@]}" "${pfx_link[@]}" "${opts[@]}" "${pfx_comp[@]}" "${pfx_link_r[@]}" ;;
|
||||
compile) exec "${myself}" "${link_dirs[@]}" "${opts[@]}" "${pfx_comp[@]}" ;;
|
||||
version) exec "${myself}" "${orig_args[@]}" ;;
|
||||
dirs)
|
||||
"${myself}" "${orig_args[@]}" | while read line; do
|
||||
if [[ "${line}" == "libraries: ="* ]]; then
|
||||
echo "libraries: =${prefix}/usr/lib:${prefix}/lib:${line#"libraries: ="}"
|
||||
else
|
||||
echo "${line}"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
*) echo "cannot infer ${myself}'s mode from comamnd line arguments"; exit 1 ;;
|
||||
esac
|
||||
EOIN
|
@ -1,614 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Utilities for users of Gentoo Prefix"
|
||||
HOMEPAGE="https://prefix.gentoo.org/"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${PV} == 9999 ]] ||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
DEPEND="
|
||||
!app-portage/prefix-chain-setup
|
||||
!sys-apps/prefix-chain-utils
|
||||
"
|
||||
BDEPEND="${DEPEND}
|
||||
>sys-apps/portage-2.3.62
|
||||
"
|
||||
# In prefix-stack, these dependencies actually are the @system set,
|
||||
# as we rely on the base prefix anyway for package management,
|
||||
# which should have a proper @system set.
|
||||
# See als: pkg_preinst
|
||||
RDEPEND="${DEPEND}
|
||||
prefix-stack? (
|
||||
>=sys-apps/baselayout-prefix-2.6
|
||||
sys-apps/gentoo-functions
|
||||
app-portage/elt-patches
|
||||
sys-devel/gnuconfig
|
||||
sys-devel/gcc-config
|
||||
)
|
||||
"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
my_unpack() {
|
||||
local infile=$1
|
||||
local outfile=${2:-${infile}}
|
||||
ebegin "extracting ${outfile}"
|
||||
sed -ne "/^: ${infile} /,/EOIN/{/EOIN/d;p}" "${EBUILD}" \
|
||||
> "${outfile}" || die "Failed to unpack ${outfile}"
|
||||
eend $?
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use prefix-stack ; then
|
||||
my_unpack prefix-stack.bash_login
|
||||
my_unpack prefix-stack.bashrc
|
||||
my_unpack prefix-stack.envd.99stack
|
||||
my_unpack prefix-stack-ccwrap
|
||||
local editor pager
|
||||
for editor in "${EDITOR}" {"${EPREFIX}","${BROOT}"}/bin/nano
|
||||
do
|
||||
[[ -x ${editor} ]] || continue
|
||||
done
|
||||
for pager in "${PAGER}" {"${EPREFIX}","${BROOT}"}/usr/bin/less
|
||||
do
|
||||
[[ -x ${pager} ]] || continue
|
||||
done
|
||||
printf '%s\n' "EDITOR=\"${editor}\"" "PAGER=\"${pager}\"" > 000fallback
|
||||
else
|
||||
my_unpack prefix-stack-setup
|
||||
fi
|
||||
my_unpack startprefix
|
||||
}
|
||||
|
||||
my_prefixify() {
|
||||
local ebash eenv
|
||||
if use prefix-stack ; then
|
||||
ebash="${BROOT}/bin/bash"
|
||||
eenv="${BROOT}/usr/bin/env"
|
||||
else
|
||||
ebash="${EPREFIX}/bin/bash"
|
||||
eenv="${EPREFIX}/usr/bin/env"
|
||||
fi
|
||||
|
||||
# the @=@ prevents repoman from believing we set readonly vars
|
||||
sed -e "s,@GENTOO_PORTAGE_BPREFIX@,${BROOT},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EPREFIX@,${EPREFIX},g" \
|
||||
-e "s,@GENTOO_PORTAGE_CHOST@,${CHOST},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EBASH@,${ebash},g" \
|
||||
-e "s,@GENTOO_PORTAGE_EENV@,${eenv},g" \
|
||||
-e "s,@=@,=,g" \
|
||||
-i "$@" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# do not eprefixify during unpack, to allow userpatches to apply
|
||||
my_prefixify *
|
||||
}
|
||||
|
||||
src_install-prefix-stack-ccwrap() {
|
||||
# install toolchain wrapper.
|
||||
local wrapperdir=/usr/${CHOST}/gcc-bin/${CHOST}-${PN}/${PV}
|
||||
local wrappercfg=${CHOST}-${P}
|
||||
|
||||
exeinto $wrapperdir
|
||||
doexe prefix-stack-ccwrap
|
||||
|
||||
local cc
|
||||
for cc in \
|
||||
gcc \
|
||||
g++ \
|
||||
cpp \
|
||||
c++ \
|
||||
windres \
|
||||
; do
|
||||
dosym prefix-stack-ccwrap $wrapperdir/${CHOST}-${cc}
|
||||
dosym ${CHOST}-${cc} $wrapperdir/${cc}
|
||||
done
|
||||
|
||||
# LDPATH is required to keep gcc-config happy :(
|
||||
cat > ./${wrappercfg} <<-EOF
|
||||
GCC_PATH="${EPREFIX}$wrapperdir"
|
||||
LDPATH="${EPREFIX}$wrapperdir"
|
||||
EOF
|
||||
|
||||
insinto /etc/env.d/gcc
|
||||
doins ./${wrappercfg}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if use prefix-stack; then
|
||||
src_install-prefix-stack-ccwrap
|
||||
insinto /etc
|
||||
doins prefix-stack.bash_login
|
||||
insinto /etc/bash
|
||||
newins prefix-stack.bashrc bashrc
|
||||
newenvd prefix-stack.envd.99stack 99stack
|
||||
doenvd 000fallback
|
||||
else
|
||||
dobin prefix-stack-setup
|
||||
fi
|
||||
exeinto /
|
||||
doexe startprefix
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
use prefix-stack || return 0
|
||||
ebegin "Purging @system package set for prefix stack"
|
||||
# In prefix stack we empty out the @system set defined via make.profile,
|
||||
# as we may be using some normal profile, but that @system set applies
|
||||
# to the base prefix only.
|
||||
# Instead, we only put ourselve into the @system set, and have additional
|
||||
# @system packages in our RDEPEND.
|
||||
my_lsprofile() {
|
||||
(
|
||||
cd -P "${1:-.}" || exit 1
|
||||
[[ -r ./parent ]] &&
|
||||
for p in $(<parent)
|
||||
do
|
||||
my_lsprofile "${p}" || exit 1
|
||||
done
|
||||
pwd -P
|
||||
)
|
||||
}
|
||||
local systemset="/etc/portage/profile/packages"
|
||||
dodir "${systemset%/*}"
|
||||
[[ -s ${EROOT}${systemset} ]] &&
|
||||
grep -v "# maintained by ${PN}" \
|
||||
"${EROOT}${systemset}" \
|
||||
> "${ED}${systemset}"
|
||||
local p
|
||||
for p in $(my_lsprofile "${EPREFIX}"/etc/portage/make.profile)
|
||||
do
|
||||
[[ -s ${p}/${systemset##*/} ]] || continue
|
||||
awk '/^[ \t]*[^-#]/{print "-" $1 " # maintained by '"${PN}-${PVR}"'"}' \
|
||||
< "${p}"/packages || die
|
||||
done | sort -u >> "${ED}${systemset}"
|
||||
[[ ${PIPESTATUS[@]} == "0 0" ]] || die "failed to collect for ${systemset}"
|
||||
echo "*${CATEGORY}/${PN} # maintained by ${PN}-${PVR}" >> "${ED}${systemset}" || die
|
||||
eend $?
|
||||
}
|
||||
|
||||
return 0
|
||||
|
||||
: startprefix <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_EBASH@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Fabian Groffen <grobian@gentoo.org> -- 2007-03-10
|
||||
# Enters the prefix environment by starting a login shell from the
|
||||
# prefix. The SHELL environment variable is elevated in order to make
|
||||
# applications that start login shells to work, such as `screen`.
|
||||
|
||||
# if you come from a substantially polluted environment (another
|
||||
# Prefix), a cleanup as follows resolves most oddities I've ever seen:
|
||||
# env -i HOME=$HOME TERM=$TERM USER=$USER $SHELL -l
|
||||
# hence this script starts the Prefix shell like this
|
||||
|
||||
if [[ ${SHELL#@GENTOO_PORTAGE_EPREFIX@} != ${SHELL} ]]
|
||||
then
|
||||
echo "You appear to be in prefix already (SHELL=${SHELL})" > /dev/stderr
|
||||
exit -1
|
||||
elif [[ ${SHELL#@GENTOO_PORTAGE_BPREFIX@} != ${SHELL} ]] &&
|
||||
[[ ${EPREFIX-unset} == '@GENTOO_PORTAGE_EPREFIX@' ]]
|
||||
then
|
||||
echo "You appear to be in stacked prefix already (EPREFIX=${EPREFIX})" > /dev/stderr
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# What is our prefix?
|
||||
EPREFIX@=@'@GENTOO_PORTAGE_EPREFIX@'
|
||||
BPREFIX@=@'@GENTOO_PORTAGE_BPREFIX@'
|
||||
|
||||
# not all systems have the same location for shells, however what it
|
||||
# boils down to, is that we need to know what the shell is, and then we
|
||||
# can find it in the bin dir of our prefix
|
||||
for SHELL in \
|
||||
"${EPREFIX}/bin/${SHELL##*/}" \
|
||||
"${BPREFIX}/bin/${SHELL##*/}" \
|
||||
${SHELL##*/}
|
||||
do
|
||||
[[ ${SHELL} == */* && -x ${SHELL} ]] && break
|
||||
done
|
||||
|
||||
# check if the shell exists
|
||||
if [[ ${SHELL} != */* ]]
|
||||
then
|
||||
echo "Failed to find the Prefix shell, this is probably" > /dev/stderr
|
||||
echo "because you didn't emerge the shell ${SHELL}" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# set the prefix shell in the environment
|
||||
export SHELL
|
||||
|
||||
# give a small notice
|
||||
echo "Entering Gentoo Prefix ${EPREFIX}"
|
||||
# start the login shell, clean the entire environment but what's needed
|
||||
RETAIN="HOME=$HOME TERM=$TERM USER=$USER SHELL=$SHELL"
|
||||
# PROFILEREAD is necessary on SUSE not to wipe the env on shell start
|
||||
[[ -n ${PROFILEREAD} ]] && RETAIN+=" PROFILEREAD=$PROFILEREAD"
|
||||
# ssh-agent is handy to keep, of if set, inherit it
|
||||
[[ -n ${SSH_AUTH_SOCK} ]] && RETAIN+=" SSH_AUTH_SOCK=$SSH_AUTH_SOCK"
|
||||
# if we're on some X terminal, makes sense to inherit that too
|
||||
[[ -n ${DISPLAY} ]] && RETAIN+=" DISPLAY=$DISPLAY"
|
||||
# do it!
|
||||
if [[ ${SHELL#${EPREFIX}} != ${SHELL} ]] ; then
|
||||
'@GENTOO_PORTAGE_EENV@' -i $RETAIN $SHELL -l
|
||||
elif [[ ' bash ' == *" ${SHELL##*/} "* ]] ; then
|
||||
# shell coming from different prefix would load it's own
|
||||
# etc/profile upon -l, so we have to override
|
||||
'@GENTOO_PORTAGE_EENV@' -i ${RETAIN} "${SHELL}" --rcfile "${EPREFIX}"/etc/prefix-stack.bash_login -i
|
||||
else
|
||||
echo "Only bash is supported with stacked Prefix (you have ${SHELL##*/}), sorry!" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
# and leave a message when we exit... the shell might return non-zero
|
||||
# without having real problems, so don't send alarming messages about
|
||||
# that
|
||||
echo "Leaving Gentoo Prefix with exit status $?"
|
||||
EOIN
|
||||
|
||||
: prefix-stack.bashrc <<'EOIN'
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# In stacked Prefix there is no bash installed, yet
|
||||
# etc/bash/bashrc from base Prefix still is useful.
|
||||
#
|
||||
|
||||
if [[ $- != *i* ]] ; then
|
||||
# Shell is non-interactive, bashrc does not apply
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -r @GENTOO_PORTAGE_BPREFIX@/etc/bash/bashrc ]] ; then
|
||||
source '@GENTOO_PORTAGE_BPREFIX@/etc/bash/bashrc'
|
||||
# only if base Prefix does have an etc/bash/bashrc, we also
|
||||
# run bashrc snippets provided by packages in stacked Prefix
|
||||
for sh in '@GENTOO_PORTAGE_EPREFIX@'/etc/bash/bashrc.d/* ; do
|
||||
[[ -r ${sh} ]] && source "${sh}"
|
||||
done
|
||||
unset sh
|
||||
else
|
||||
# etc/profile does expect etc/bash/bashrc to set PS1
|
||||
PS1='\u@\h \w \$ '
|
||||
fi
|
||||
EOIN
|
||||
|
||||
: prefix-stack.bash_login <<'EOIN'
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# In stacked Prefix there is no bash installed, so there is
|
||||
# no bash able to load this Prefix' profile as login shell.
|
||||
# Instead, you can specify this one as bash rcfile to mimic
|
||||
# a bash login shell using this stacked Prefix profile.
|
||||
#
|
||||
|
||||
if [[ -s '@GENTOO_PORTAGE_EPREFIX@/etc/profile' ]] ; then
|
||||
. '@GENTOO_PORTAGE_EPREFIX@/etc/profile'
|
||||
fi
|
||||
if [[ -s ~/.bash_profile ]] ; then
|
||||
. ~/.bash_profile
|
||||
elif [[ -s ~/.bash_login ]] ; then
|
||||
. ~/.bash_login
|
||||
elif [[ -s ~/.profile ]] ; then
|
||||
. ~/.profile
|
||||
fi
|
||||
EOIN
|
||||
|
||||
: prefix-stack.envd.99stack <<'EOIN'
|
||||
PKG_CONFIG_PATH@=@"@GENTOO_PORTAGE_EPREFIX@/usr/lib/pkgconfig:@GENTOO_PORTAGE_EPREFIX@/usr/share/pkgconfig"
|
||||
PORTAGE_CONFIGROOT@=@"@GENTOO_PORTAGE_EPREFIX@"
|
||||
EPREFIX@=@"@GENTOO_PORTAGE_EPREFIX@"
|
||||
EOIN
|
||||
|
||||
: prefix-stack-setup <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_EPREFIX@/bin/bash
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
PARENT_EPREFIX="@GENTOO_PORTAGE_EPREFIX@"
|
||||
PARENT_CHOST="@GENTOO_PORTAGE_CHOST@"
|
||||
CHILD_EPREFIX=
|
||||
CHILD_PROFILE=
|
||||
|
||||
#
|
||||
# get ourselfs the functions.sh script for ebegin/eend/etc.
|
||||
#
|
||||
for f in \
|
||||
/lib/gentoo/functions.sh \
|
||||
/etc/init.d/functions.sh \
|
||||
/sbin/functions.sh \
|
||||
; do
|
||||
if [[ -r ${PARENT_EPREFIX}${f} ]] ; then
|
||||
. "${PARENT_EPREFIX}${f}"
|
||||
f=found
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${f} != found ]] ; then
|
||||
echo "Cannot find Gentoo functions, aborting." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for arg in "$@"; do
|
||||
case "${arg}" in
|
||||
--eprefix=*) CHILD_EPREFIX="${arg#--eprefix=}" ;;
|
||||
--profile=*) CHILD_PROFILE="${arg#--profile=}" ;;
|
||||
|
||||
--help)
|
||||
einfo "$0 usage:"
|
||||
einfo " --eprefix=[PATH] Path to new EPREFIX to create stacked to the prefix"
|
||||
einfo " where this script is installed (${PARENT_EPREFIX})"
|
||||
einfo " --profile=[PATH] The absolute path to the profile to use. This path"
|
||||
einfo " must point to a directory within ${PARENT_EPREFIX}"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
#
|
||||
# sanity check of given values
|
||||
#
|
||||
|
||||
test -n "${CHILD_EPREFIX}" || { eerror "no eprefix argument given"; exit 1; }
|
||||
test -d "${CHILD_EPREFIX}" && { eerror "${CHILD_EPREFIX} already exists"; exit 1; }
|
||||
test -n "${CHILD_PROFILE}" || { eerror "no profile argument given"; exit 1; }
|
||||
test -d "${CHILD_PROFILE}" || { eerror "${CHILD_PROFILE} does not exist"; exit 1; }
|
||||
|
||||
einfo "creating stacked prefix ${CHILD_EPREFIX}"
|
||||
|
||||
#
|
||||
# functions needed below.
|
||||
#
|
||||
eend_exit() {
|
||||
eend $1
|
||||
[[ $1 != 0 ]] && exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# create the directories required to bootstrap the least.
|
||||
#
|
||||
ebegin "creating directory structure"
|
||||
(
|
||||
set -e
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/profile/use.mask
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/profile/use.force
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/env
|
||||
mkdir -p "${CHILD_EPREFIX}"/etc/portage/package.env
|
||||
ln -s "${PARENT_EPREFIX}"/etc/portage/repos.conf "${CHILD_EPREFIX}"/etc/portage/repos.conf
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# create a make.conf and set PORTDIR and PORTAGE_TMPDIR
|
||||
#
|
||||
ebegin "creating make.conf"
|
||||
(
|
||||
set -e
|
||||
echo "#"
|
||||
echo "# The following values where taken from the parent prefix's"
|
||||
echo "# environment. Feel free to adopt them as you like."
|
||||
echo "#"
|
||||
echo "CFLAGS=\"$(portageq envvar CFLAGS)\""
|
||||
echo "CXXFLAGS=\"$(portageq envvar CXXFLAGS)\""
|
||||
echo "MAKEOPTS=\"$(portageq envvar MAKEOPTS)\""
|
||||
niceness=$(portageq envvar PORTAGE_NICENESS || true)
|
||||
[[ -n ${niceness} ]] &&
|
||||
echo "PORTAGE_NICENESS=\"${niceness}\""
|
||||
echo
|
||||
echo "# Mirrors from parent prefix."
|
||||
echo "GENTOO_MIRRORS=\"$(portageq envvar GENTOO_MIRRORS || true)\""
|
||||
echo
|
||||
echo "# Below comes the prefix-stack setup. Only change things"
|
||||
echo "# if you know exactly what you are doing!"
|
||||
echo "EPREFIX=\"${CHILD_EPREFIX}\""
|
||||
echo "PORTAGE_OVERRIDE_EPREFIX=\"${PARENT_EPREFIX}\""
|
||||
echo "BROOT=\"${PARENT_EPREFIX}\""
|
||||
) > "${CHILD_EPREFIX}"/etc/portage/make.conf
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating use.mask/prefix-stack"
|
||||
printf -- '-%s\n' prefix{,-guest,-stack} > "${CHILD_EPREFIX}"/etc/portage/profile/use.mask/prefix-stack
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating use.force/prefix-stack"
|
||||
printf -- '%s\n' prefix{,-guest,-stack} > "${CHILD_EPREFIX}"/etc/portage/profile/use.force/prefix-stack
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating env/host-cc.conf"
|
||||
cat > "${CHILD_EPREFIX}"/etc/portage/env/host-cc.conf <<-EOM
|
||||
CC=${PARENT_CHOST}-gcc
|
||||
CXX=${PARENT_CHOST}-g++
|
||||
EOM
|
||||
eend_exit $?
|
||||
|
||||
ebegin "creating package.env/prefix-stack"
|
||||
cat > "${CHILD_EPREFIX}"/etc/portage/package.env/prefix-stack <<-'EOM'
|
||||
# merge with the parent's chost. this forces the use of the parent
|
||||
# compiler, which generally would be illegal - this is an exception.
|
||||
# This is required for example on winnt, because the wrapper has to
|
||||
# be able to use/resolve symlinks, etc. native winnt binaries miss
|
||||
# that ability, but cygwin binaries don't.
|
||||
sys-devel/gcc-config host-cc.conf
|
||||
sys-apps/gentoo-functions host-cc.conf
|
||||
EOM
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# create the make.profile symlinks.
|
||||
#
|
||||
ebegin "creating make.profile"
|
||||
(
|
||||
ln -s "${CHILD_PROFILE}" "${CHILD_EPREFIX}/etc/portage/make.profile"
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# adjust permissions of generated files.
|
||||
#
|
||||
ebegin "adjusting permissions"
|
||||
(
|
||||
set -e
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/make.conf
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/env/host-cc.conf
|
||||
chmod 644 "${CHILD_EPREFIX}"/etc/portage/package.env/prefix-stack
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# now merge some basics.
|
||||
#
|
||||
ebegin "installing required basic packages"
|
||||
(
|
||||
set -e
|
||||
export PORTAGE_CONFIGROOT@=@"${CHILD_EPREFIX}"
|
||||
export EPREFIX@=@"${CHILD_EPREFIX}"
|
||||
export PORTAGE_OVERRIDE_EPREFIX@=@"${PARENT_EPREFIX}"
|
||||
|
||||
# let baselayout create the directories
|
||||
USE@=@"${USE} build" \
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
'>=baselayout-prefix-2.6'
|
||||
|
||||
# In prefix-stack, app-portage/prefix-toolkit does
|
||||
# install/update an etc/portage/profile/packages file,
|
||||
# removing all @system packages from current make.profile,
|
||||
# and adding itself to @system set instead.
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
app-portage/prefix-toolkit
|
||||
|
||||
# In prefix-stack, prefix-toolkit does have an RDEPEND on them,
|
||||
# to hold them in the @system set.
|
||||
emerge --verbose --nodeps --oneshot \
|
||||
sys-apps/gentoo-functions \
|
||||
app-portage/elt-patches \
|
||||
sys-devel/gnuconfig \
|
||||
sys-devel/gcc-config
|
||||
|
||||
# select the stack wrapper profile from gcc-config
|
||||
env -i PORTAGE_CONFIGROOT="${CHILD_EPREFIX}" \
|
||||
"$(type -P bash)" "${CHILD_EPREFIX}"/usr/bin/gcc-config 1
|
||||
)
|
||||
eend_exit $?
|
||||
|
||||
#
|
||||
# wow, all ok :)
|
||||
#
|
||||
ewarn
|
||||
ewarn "all done. don't forget to tune ${CHILD_EPREFIX}/etc/portage/make.conf."
|
||||
ewarn "to enter the new prefix, run \"${CHILD_EPREFIX}/startprefix\"."
|
||||
ewarn
|
||||
EOIN
|
||||
|
||||
: prefix-stack-ccwrap <<'EOIN'
|
||||
#!@GENTOO_PORTAGE_BPREFIX@/bin/bash
|
||||
|
||||
if [ -r /cygdrive/. ]; then
|
||||
winpath2unix() { cygpath -u "$1"; }
|
||||
unixpath2win() { cygpath -w "$1"; }
|
||||
fi
|
||||
|
||||
myself=${0##*/} # basename $0
|
||||
link_dirs=()
|
||||
opts=()
|
||||
chost="@GENTOO_PORTAGE_CHOST@"
|
||||
prefix="@GENTOO_PORTAGE_EPREFIX@"
|
||||
absprefix=${prefix}
|
||||
if [[ ${chost} == *"-winnt"* ]]; then
|
||||
# we may get called from windows binary, like pkgdata in dev-libs/icu
|
||||
# in this case, PATH elements get the "/dev/fs/C/WINDOWS/SUA" prefix
|
||||
absprefix=$(winpath2unix "$(unixpath2win "${absprefix}")")
|
||||
fi
|
||||
[[ ${myself} == *windres* ]] && mode=compile || mode=link
|
||||
orig_args=("$@")
|
||||
|
||||
for opt in "$@"
|
||||
do
|
||||
case "$opt" in
|
||||
-L)
|
||||
link_dirs=("${link_dirs[@]}" "-L$1")
|
||||
shift
|
||||
;;
|
||||
-L*)
|
||||
link_dirs=("${link_dirs[@]}" "${opt}")
|
||||
;;
|
||||
*)
|
||||
case "${opt}" in
|
||||
-v)
|
||||
# -v done right: only use mode version if -v is the _only_
|
||||
# argument on the command line.
|
||||
[[ ${#orig_args[@]} -gt 1 ]] || mode=version
|
||||
;;
|
||||
--version) mode=version ;;
|
||||
-c|-E|-S) mode=compile ;;
|
||||
-print-search-dirs) mode=dirs ;;
|
||||
esac
|
||||
opts=("${opts[@]}" "${opt}")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# remove any path to current prefix, need base prefix only
|
||||
new_path=
|
||||
save_ifs=$IFS
|
||||
IFS=':'
|
||||
for p in $PATH
|
||||
do
|
||||
IFS=$save_ifs
|
||||
[[ ${p#${absprefix}} != "${p}" ]] && continue
|
||||
if [[ -z "${new_path}" ]]; then
|
||||
new_path="${p}"
|
||||
else
|
||||
new_path="${new_path}:${p}"
|
||||
fi
|
||||
done
|
||||
IFS=$save_ifs
|
||||
|
||||
PATH=${new_path}
|
||||
|
||||
pfx_comp=("-I${prefix}/include" "-I${prefix}/usr/include")
|
||||
pfx_link=("-L${prefix}/usr/lib" "-L${prefix}/lib")
|
||||
# binutils-config's ldwrapper understands '-R' for aix and hpux too.
|
||||
pfx_link_r=("-Wl,-R,${prefix}/lib" "-Wl,-R,${prefix}/usr/lib")
|
||||
case "${chost}" in
|
||||
*-winnt*)
|
||||
# parity (winnt) understands -rpath only ...
|
||||
pfx_link_r=("-Wl,-rpath,${prefix}/lib" "-Wl,-rpath,${prefix}/usr/lib")
|
||||
;;
|
||||
*-linux*)
|
||||
# With gcc, -isystem would avoid warning messages in installed headers,
|
||||
# but that breaks with AIX host headers.
|
||||
pfx_comp=("-isystem" "${prefix}/include" "-isystem" "${prefix}/usr/include")
|
||||
;;
|
||||
esac
|
||||
|
||||
# ensure we run the right chost program in base prefix
|
||||
[[ ${myself} == *-*-*-* ]] || myself=${chost}-${myself#${chost}-}
|
||||
|
||||
case "$mode" in
|
||||
link) exec "${myself}" "${link_dirs[@]}" "${pfx_link[@]}" "${opts[@]}" "${pfx_comp[@]}" "${pfx_link_r[@]}" ;;
|
||||
compile) exec "${myself}" "${link_dirs[@]}" "${opts[@]}" "${pfx_comp[@]}" ;;
|
||||
version) exec "${myself}" "${orig_args[@]}" ;;
|
||||
dirs)
|
||||
"${myself}" "${orig_args[@]}" | while read line; do
|
||||
if [[ "${line}" == "libraries: ="* ]]; then
|
||||
echo "libraries: =${prefix}/usr/lib:${prefix}/lib:${line#"libraries: ="}"
|
||||
else
|
||||
echo "${line}"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
*) echo "cannot infer ${myself}'s mode from comamnd line arguments"; exit 1 ;;
|
||||
esac
|
||||
EOIN
|
Binary file not shown.
@ -1,3 +1,3 @@
|
||||
DIST xchm-1.23.tar.gz 474274 BLAKE2B de73c04e68b876edefb1d45d9e982bcce6fd3afa06f8704d05fa5cae710d9724ed20ca50be9022570832da9954ba2af141a66e5b3ab02554441c84bac1d6ffed SHA512 c0df4362ff6db8136b20f62a76e7e93185375f6ef9eeeb1001e27ead9806d486332573ba8c3ca1863a70ce6b1d3bcc6d3af48d42add719312774dccfd7d18c90
|
||||
DIST xchm-1.28.tar.gz 984545 BLAKE2B b91e6983823a3f08b2df296c7d651e1a3a017824034d86dc5cb51dd327fa240e098afe5c5a186d27d57f54e02e2c6546cfe8e82acfd21d89b2cbbedd2ed9a829 SHA512 5d773b097ec813d991ceba4842c5cf967d4f2d0e20c84aff636615a92d000bac36d5ebf244a18f416928bd9b24792a5baf19397694201372478cd13111080630
|
||||
DIST xchm-1.29.tar.gz 972533 BLAKE2B e114047f4c3e19bb4d4c28a74997c76c54a2dc286f1f0691f105824be693e3b51c7618717b5b5b5f3604ab3f4fa89d703e071a36be0bd05529b6f44710b0bd20 SHA512 678cea2947d58e9b173379d6df809be603ca77431a3181ee45e3c1f4a4a55a6c10a395eecb5c25feb14ad361d044355ae313d537f0abc9278c6e5ab37a8768f6
|
||||
DIST xchm-1.30.tar.gz 981171 BLAKE2B 6b2077e9cf8fa849121cee3681bd390218de1ce83c9c49117a186ddef107b15ee8f491eb93ae41ba8a2ea07ede306883ef0f8f0c357142e9ca333bdea8ebc50a SHA512 896d94f4fa3b728e37985b1a2e918596e20bed0a43cf90711d27ebfdcbe49e4a0794c17e1f6cfefb6f272adcc7fb22464e2c25c15d0f0afcbe94b867899eb1a5
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,28 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Elixir programming language"
|
||||
HOMEPAGE="https://elixir-lang.org"
|
||||
SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0 ErlPL-1.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~sparc ~x86"
|
||||
IUSE=""
|
||||
|
||||
DEPEND=">=dev-lang/erlang-18[ssl]"
|
||||
# 'mix' tool collides with sci-biology/phylip, bug #537514
|
||||
RDEPEND="${DEPEND}
|
||||
!!sci-biology/phylip
|
||||
"
|
||||
|
||||
src_compile() {
|
||||
emake Q=""
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install
|
||||
dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md
|
||||
}
|
Binary file not shown.
@ -1,6 +1,7 @@
|
||||
DIST cudnn-10.0-linux-x64-v7.4.1.5.tgz 422699128 BLAKE2B e13b22428f011a4ad6532bfa35d836f23ea6298ad220eaea6c3a6fac7694f1c6b6920255690fac10d84388fb2bec7cc60a0319bd1816b20eac134c7b112822b9 SHA512 fd065c23b27416e2ace5f0eee854ea4a5e04f6ab4cf3a38cf806bb37a45d29756c3f138dfa01b991e96410de3668e0bb9d3cfc19cb7da7113c1f10d4147fcf67
|
||||
DIST cudnn-10.0-linux-x64-v7.4.2.24.tgz 424488399 BLAKE2B 9883cccf146e3ca3a05b8e7ebb2d265da3b7e05949ebb76369a865aa1c2c55c217b21a7847417264712882cc882b25380e5978e58c74279eb208ec593d85e919 SHA512 1e1533a62355bbebc3df62b4c0f306195c7301334390511fae2e0f071d58451edda69b72c3a257fd16470fe3ac5d3ec00aaf208dee2e30d7db0c1f9300a9c663
|
||||
DIST cudnn-10.1-linux-x64-v7.5.0.56.tgz 471291852 BLAKE2B 966a84e983631c827d7852e1dee0a87d80b61521a3c7c836c746f6ce5b60afb1da955a692dce5f0166600707c1f060231d7062d78acdf6085deb37c023301b8d SHA512 875e50669f7ab0b8f52e793285041c0a33dfc951a562869258dd22f85c94cc924c87325253f39fa64c4386768eafd3b0fe181188ef6dd5707f57fc88a6495e36
|
||||
DIST cudnn-10.1-linux-x64-v7.6.0.64.tgz 500810447 BLAKE2B cfe884dd3b2a5ca4641844a0b5df22420148bcd9092b9ad81a45560f901d36e3ab228e7b5fed85519094f4b68be46cbb631368d67166cbef2546b94185a9058d SHA512 c8d2c6efdb79940f5d475057b1e11246038b894990f58a620635e03d561ec3987806c0bccee8c12d0d3d8c4b5bf5211e46faa2c12918520af61f36bd36eb1738
|
||||
DIST cudnn-8.0-linux-x64-v6.0.tgz 201134139 BLAKE2B a7e616c671272a3a0f0c51b93646c8c60302c3dec85b71144e011bc3460d0ce80ff75d39869c05c4ef183d2d09aff31bb470a3fd3fd3d79b581a7a2d5a349279 SHA512 ddeeacb5b449920d942a26b98c353d78fd6f7d7fb3b3ce42a078626473efdda25c7ae641232702d62eb5749e39ecfd03e88346119c920c19348ac3ee82d3ff47
|
||||
DIST cudnn-9.1-linux-x64-v7.tgz 343081241 BLAKE2B 22c2fbef38a05e7929ccc28410dfdbff906b2c3e97e0419cf83988c2fc2340005e4a944d43b1a215b0c3458b2cad03480b7e537ae93861924c28ec1010a530fb SHA512 7eadb64a3d5e49aec2761e6f7dc0295c1d356910b114eed450c47081fc81b6e3b7748f3a4153f6a9d957691e3689cd52823bfa12816b1950dfc8794d6f332749
|
||||
DIST cudnn-9.2-linux-x64-v7.1.tgz 421083972 BLAKE2B 1a1dd6708132d6ad6f8f541694b1406de4a26b7bb78b6198bc8ec5ddde2172d0cc0dc540c7c446a2f941ad11cfafa562235d17129ab8e6aa641433c35c8d31d6 SHA512 2f67c905976eb041512eb012a7cc98e1f408ec867f6a1d9d440afbcddc622c03c40de10386e44e4ab138c1a4ad040d39b0e9243f68e22975ca27ec297be25c5d
|
||||
|
@ -0,0 +1,34 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
CUDA_PV=10.1
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Deep Learning on GPU library"
|
||||
HOMEPAGE="https://developer.nvidia.com/cuDNN"
|
||||
|
||||
MY_PV_MAJOR=$(ver_cut 1-2)
|
||||
SRC_URI="cudnn-${CUDA_PV}-linux-x64-v${PV}.tgz"
|
||||
|
||||
SLOT="0/7"
|
||||
KEYWORDS="~amd64 ~amd64-linux"
|
||||
RESTRICT="fetch"
|
||||
LICENSE="NVIDIA-cuDNN"
|
||||
QA_PREBUILT="*"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
DEPEND="=dev-util/nvidia-cuda-toolkit-${CUDA_PV}*"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
src_install() {
|
||||
insinto /opt/cuda
|
||||
doins cuda/NVIDIA_SLA_cuDNN_Support.txt
|
||||
|
||||
insinto /opt/cuda/targets/x86_64-linux/include
|
||||
doins -r cuda/include/*
|
||||
|
||||
insinto /opt/cuda/targets/x86_64-linux/lib
|
||||
doins -r cuda/lib*/*
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
DIST libinput-1.12.6.tar.xz 518784 BLAKE2B 7462f47be3628f9c66ef5b7c8265b588bd0ca328bafe91932f5341a010ac882648b4e7cfd0db241ae526836172e0829d68d21f8966d2be8b49f4e1c0c40df018 SHA512 02ad90c77a0c8c27fd96ec34e1546c5f0947ced49bad386372c1ef7c41b3b2157c39020f0766f20aaf2ab3c97128567e169279bea21115ced39499dda325d2ef
|
||||
DIST libinput-1.13.1.tar.xz 529516 BLAKE2B 9eb9952ca2762470ee3e9ac0eab6b11c4b404b2702cd81b9f0720e539124a8f71a032803cf77105bbdce412b3c5d4a7fee4e24b8d3ceae991bd2ee9b3460e373 SHA512 a19deec802e704038df0901c103a82a3370f56e0299f4cc1b6aa84c1832a66fb638e6f9d0fa708b51df6c3b939cdc1271e4ff547c645c566be03dce0bc9ff7e0
|
||||
DIST libinput-1.13.2.tar.xz 529488 BLAKE2B 489f962ca0b0385817fc76a5bc7254143d12c07e32a91dd118dca53fcdd6eaf5d2eef8aa5c5598a2aadda9e4a20b8a4c9340b60dee8286cd322fe2d294f1f6b7 SHA512 26f11c5274c26acc38b9b5729195010c0799a9563f1eb0e0cd67e323f8ed73b0fc8db8584ec8fdf1b726417f64c2daeb54832167079832626c8c1190fccf459f
|
||||
DIST libinput-1.13.3.tar.xz 530916 BLAKE2B af88659252d509c22ad255963353109ad9cf05171b3bf2222f6d71872b6d2675a524c54a6ec0af28e1eab484dfeb91a9cd9db227084ffbfd6469d5726c4c882f SHA512 427ec838975444571770e129ef78fd42e4438a11e89ed0b3fc98793184d00c0ca8ed282eab2045cc6cb345804ad6fce1061af563b4f41d75405cdf2f09cb01e1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue