parent
5467bc8a87
commit
2c8770dde3
Binary file not shown.
Binary file not shown.
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>gentoo@seichter.de</email>
|
||||
<name>Ralph Seichter</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,9 @@
|
||||
# Copyright 2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-group
|
||||
|
||||
ACCT_GROUP_ID=330
|
||||
DESCRIPTION="Group for net-analyzer/ossec-hids"
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>python@gentoo.org</email>
|
||||
<name>Python</name>
|
||||
<maintainer type="person">
|
||||
<name>Sven Wegener</name>
|
||||
<email>swegener@gentoo.org</email>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,8 @@
|
||||
# Copyright 2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-group
|
||||
|
||||
ACCT_GROUP_ID=423
|
Binary file not shown.
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>gentoo@seichter.de</email>
|
||||
<name>Ralph Seichter</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,13 @@
|
||||
# Copyright 2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
ACCT_USER_ID=330
|
||||
ACCT_USER_GROUPS=( ossec )
|
||||
ACCT_USER_HOME=/var/ossec
|
||||
DESCRIPTION="net-analyzer/ossec-hids (agentlessd, analysisd, monitord)"
|
||||
|
||||
acct-user_add_deps
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>gentoo@seichter.de</email>
|
||||
<name>Ralph Seichter</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,12 @@
|
||||
# Copyright 2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
ACCT_USER_ID=331
|
||||
ACCT_USER_GROUPS=( ossec )
|
||||
DESCRIPTION="net-analyzer/ossec-hids (csyslogd, maild)"
|
||||
|
||||
acct-user_add_deps
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>gentoo@seichter.de</email>
|
||||
<name>Ralph Seichter</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,12 @@
|
||||
# Copyright 2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
ACCT_USER_ID=332
|
||||
ACCT_USER_GROUPS=( ossec )
|
||||
DESCRIPTION="net-analyzer/ossec-hids (remoted)"
|
||||
|
||||
acct-user_add_deps
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>kde@gentoo.org</email>
|
||||
<name>Gentoo KDE Project</name>
|
||||
<maintainer type="person">
|
||||
<name>Sven Wegener</name>
|
||||
<email>swegener@gentoo.org</email>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,11 @@
|
||||
# Copyright 2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
ACCT_USER_ID=423
|
||||
ACCT_USER_GROUPS=( pdns )
|
||||
|
||||
acct-user_add_deps
|
Binary file not shown.
@ -1,3 +1,2 @@
|
||||
DIST ansible-2.9.4.tar.gz 14170264 BLAKE2B e230837360d29df460906d118b3c2ebb9a9dc1ac2a4427809a16716e67a79db8e737ed1beca757bd8a75b631c8cb6c26e58b1caeaaeb613731d63031f1e4e34e SHA512 21020548100fc31b59d4ee1b461f2a14359f2f18752d431cd041eb987c8c8b308f1aa1687461a9b3f5a086485b77b3a38c8f006b942cc24cb2157b45e6582822
|
||||
DIST ansible-2.9.5.tar.gz 14186885 BLAKE2B c64fb384ab55c5b9cca753319fba911b8a40d634b59998f2e4c65ccafaa536788f3ac8c18a45a4b0d322ecca9b7fa2c580311a35a202ad70c2de2157ab04bfaf SHA512 cd2ce807b3136e2c02856339ea910b0a5cae8ca946da804ed7d3ec5725d3eff0fe5b4bd8527b2a17d6f3109e16859d52045b50f2ffd21169b30768e65b813407
|
||||
DIST ansible-2.9.6.tar.gz 14201258 BLAKE2B 29da78035291a252f215a49945e82d9f3598a91c9c8993c69623668e9f8a667882330d51c75e1ae27ee5242f4a6320ee947af338c4c38e23f4f9d04cf19364ca SHA512 7111fd72b4e029b2f661bfb849b4323b69ea796f8a069ad3120e8de390effa670180c69ca0fd5e0a1c2e444db6d574a52d530a2b0343c76cd81ba963b3c3a7cb
|
||||
|
@ -1,68 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6,7} )
|
||||
|
||||
inherit distutils-r1 eutils
|
||||
|
||||
DESCRIPTION="Model-driven deployment, config management, and command execution framework"
|
||||
HOMEPAGE="https://ansible.com/"
|
||||
SRC_URI="https://releases.ansible.com/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm ~arm64 x86 ~x64-macos"
|
||||
IUSE="doc test"
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/paramiko[${PYTHON_USEDEP}]
|
||||
dev-python/jinja[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
dev-python/cryptography[${PYTHON_USEDEP}]
|
||||
dev-python/httplib2[${PYTHON_USEDEP}]
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
dev-python/netaddr[${PYTHON_USEDEP}]
|
||||
dev-python/pexpect[${PYTHON_USEDEP}]
|
||||
net-misc/sshpass
|
||||
virtual/ssh
|
||||
"
|
||||
DEPEND="
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=dev-python/packaging-16.6[${PYTHON_USEDEP}]
|
||||
doc? (
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx-notfound-page[${PYTHON_USEDEP}]
|
||||
>=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
|
||||
)
|
||||
test? (
|
||||
${RDEPEND}
|
||||
dev-python/nose[${PYTHON_USEDEP}]
|
||||
>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
|
||||
dev-python/passlib[${PYTHON_USEDEP}]
|
||||
dev-python/coverage[${PYTHON_USEDEP}]
|
||||
dev-python/unittest2[${PYTHON_USEDEP}]
|
||||
dev-vcs/git
|
||||
)"
|
||||
|
||||
python_compile_all() {
|
||||
if use doc; then
|
||||
cd docs/docsite || die
|
||||
export CPUS=4
|
||||
emake -f Makefile.sphinx html
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
nosetests -d -w test/units -v --with-coverage --cover-package=ansible --cover-branches || die
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
use doc && local HTML_DOCS=( docs/docsite/_build/html/. )
|
||||
distutils-r1_python_install_all
|
||||
|
||||
dodoc -r examples
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST entr-4.3.tar.gz 23756 BLAKE2B 0272b0185932d7c388818df0cc615e991c9545473a823c478ad9f0b6a23c97c0f4b2727b109a7bb18e2b0792f18d94d188d4a5d3fc90c479628ea078b1288f96 SHA512 f65dfc3f106e25ec4ff39eaec94222d8a547eb35390c654f6a741f92541c1b86d7d303a795308fcbfced44ac8eca6ad67e70393802ac9d46153e037dc1eab902
|
||||
DIST entr-4.4.tar.gz 24125 BLAKE2B c77b4a862c0b4a2861d7e2784fbaa3f60899a9934314a5cf3abb01d70df946e3786957cbaa9ed58cea7171390d115157f0d9a48093f6e7a8c05bcabf34da9792 SHA512 355bc19cfee9a9b5a460b136d8db014a1d129b6e4c95d905c1c4557cf7d845a076d260798ae8b84221563c049a9bd6d81974f00eea681abaf2eac2f2f5e6d087
|
||||
|
@ -0,0 +1,31 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Run arbitrary commands when files change"
|
||||
HOMEPAGE="http://entrproject.org"
|
||||
SRC_URI="http://entrproject.org/code/${P}.tar.gz"
|
||||
|
||||
LICENSE="ISC"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
src_configure() {
|
||||
sh configure || die
|
||||
sed -i -e 's#\(^PREFIX \).*#\1\?= /usr#' Makefile.bsd || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export CC=$(tc-getCC)
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
export CC=$(tc-getCC)
|
||||
default
|
||||
}
|
@ -1,3 +1 @@
|
||||
DIST keepassxc-2.4.3-src.tar.xz 3301944 BLAKE2B ba95d5d48049367e7d3c39b5fdc9fc9816dfe2b257530068f229d1b5bd4eb9c137607f63bcce0aac4bc67ed41ee00c0385be800720acfdc3920c44444cade180 SHA512 893f1d18ab8051143d29c568ba87adcc42a13d28d0c3a7af04396cd91d6724f8a98d76d2e20ca15138c4642ec060d48b9e957857251f3a0df6066af08cd0765d
|
||||
DIST keepassxc-2.5.2-src.tar.xz 6835848 BLAKE2B 4c536ec062295655c04a360ba3c94ff97078aa03b96e5bb29e246f6ad13cce16ba77bcf5e7232de4df669706bc612f6b157e3050f0d8b9eb4b1f47e4308af0d0 SHA512 f87408362e5fbba10e2e66ff1cead2f8495214197e142c16cd3c95ea47956570b6cfc561d7b593c9a962f476637b8bd6b5e21e2fc3e4f20224506bd97d16bb23
|
||||
DIST keepassxc-2.5.3-src.tar.xz 6839148 BLAKE2B b3cc32f9abb42e662edec0c28967fca65a4f3c794f70bfe6c40c39375cad8cbc35eba95431b33119268230a324f83f2e5a53186ee8fc64cd366e20eac1341dc5 SHA512 8b1e3360b4ae5de170be6936291f7b309de09b2462fcd5a48f239c22f1c8b6ffe721aca8d1e9b6ae3881f7b16374850d7f4b809733244fd16d45eed6ad4f60c6
|
||||
|
@ -1,100 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake xdg
|
||||
|
||||
DESCRIPTION="KeePassXC - KeePass Cross-platform Community Edition"
|
||||
HOMEPAGE="https://keepassxc.org"
|
||||
|
||||
if [[ "${PV}" != 9999 ]] ; then
|
||||
if [[ "${PV}" == *_beta* ]] ; then
|
||||
SRC_URI="https://github.com/keepassxreboot/keepassxc/archive/${PV/_/-}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P/_/-}"
|
||||
else
|
||||
#SRC_URI="https://github.com/keepassxreboot/keepassxc/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
SRC_URI="https://github.com/keepassxreboot/keepassxc/releases/download/${PV}/${P}-src.tar.xz"
|
||||
KEYWORDS="amd64 x86"
|
||||
fi
|
||||
else
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/keepassxreboot/${PN}"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1 GPL-2 GPL-3"
|
||||
SLOT="0"
|
||||
IUSE="autotype browser debug keeshare +network test yubikey"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
app-crypt/argon2:=
|
||||
dev-libs/libgcrypt:=
|
||||
>=dev-libs/libsodium-1.0.12:=
|
||||
dev-qt/qtconcurrent:5
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtdbus:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtnetwork:5
|
||||
dev-qt/qtsvg:5
|
||||
dev-qt/qtwidgets:5
|
||||
media-gfx/qrencode:=
|
||||
sys-libs/zlib:=
|
||||
autotype? (
|
||||
dev-qt/qtx11extras:5
|
||||
x11-libs/libX11
|
||||
x11-libs/libXi
|
||||
x11-libs/libXtst
|
||||
)
|
||||
browser? ( >=dev-libs/libsodium-1.0.12 )
|
||||
keeshare? ( dev-libs/quazip )
|
||||
yubikey? ( sys-auth/ykpers )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
dev-qt/linguist-tools:5
|
||||
dev-qt/qttest:5
|
||||
"
|
||||
|
||||
# Not a runtime dependency but still needed (see bug #667092)
|
||||
PDEPEND="
|
||||
x11-misc/xsel
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
use test || \
|
||||
sed -e "/^find_package(Qt5Test/d" -i CMakeLists.txt || die
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DWITH_GUI_TESTS=OFF
|
||||
-DWITH_TESTS="$(usex test)"
|
||||
-DWITH_XC_AUTOTYPE="$(usex autotype)"
|
||||
-DWITH_XC_BROWSER="$(usex browser)"
|
||||
-DWITH_XC_KEESHARE="$(usex keeshare)"
|
||||
-DWITH_XC_NETWORKING="$(usex network)"
|
||||
-DWITH_XC_SSHAGENT=ON
|
||||
-DWITH_XC_UPDATECHECK=OFF
|
||||
-DWITH_XC_YUBIKEY="$(usex yubikey)"
|
||||
)
|
||||
if [[ "${PV}" == *_beta* ]] ; then
|
||||
mycmakeargs+=( -DOVERRIDE_VERSION="${PV/_/-}" )
|
||||
fi
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
xdg_pkg_preinst
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_pkg_postrm
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake xdg
|
||||
|
||||
DESCRIPTION="KeePassXC - KeePass Cross-platform Community Edition"
|
||||
HOMEPAGE="https://keepassxc.org"
|
||||
|
||||
if [[ "${PV}" != 9999 ]] ; then
|
||||
if [[ "${PV}" == *_beta* ]] ; then
|
||||
SRC_URI="https://github.com/keepassxreboot/keepassxc/archive/${PV/_/-}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P/_/-}"
|
||||
else
|
||||
#SRC_URI="https://github.com/keepassxreboot/keepassxc/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
SRC_URI="https://github.com/keepassxreboot/keepassxc/releases/download/${PV}/${P}-src.tar.xz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
else
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/keepassxreboot/${PN}"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1 GPL-2 GPL-3"
|
||||
SLOT="0"
|
||||
IUSE="autotype browser ccache debug keeshare +network test yubikey"
|
||||
|
||||
RDEPEND="
|
||||
app-crypt/argon2:=
|
||||
dev-libs/libgcrypt:=
|
||||
>=dev-libs/libsodium-1.0.12:=
|
||||
dev-qt/qtconcurrent:5
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtdbus:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtnetwork:5
|
||||
dev-qt/qtsvg:5
|
||||
dev-qt/qtwidgets:5
|
||||
media-gfx/qrencode:=
|
||||
sys-libs/readline:0=
|
||||
sys-libs/zlib:=
|
||||
autotype? (
|
||||
dev-qt/qtx11extras:5
|
||||
x11-libs/libX11
|
||||
x11-libs/libXi
|
||||
x11-libs/libXtst
|
||||
)
|
||||
keeshare? ( dev-libs/quazip )
|
||||
yubikey? ( sys-auth/ykpers )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
dev-qt/linguist-tools:5
|
||||
dev-qt/qttest:5
|
||||
"
|
||||
BDEPEND="
|
||||
ccache? ( dev-util/ccache )
|
||||
"
|
||||
# Not a runtime dependency but still needed (see bug #667092)
|
||||
PDEPEND="
|
||||
x11-misc/xsel
|
||||
"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-2.5.2-ccache_switch.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
use test || \
|
||||
sed -e "/^find_package(Qt5Test/d" -i CMakeLists.txt || die
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DWITH_CCACHE="$(usex ccache)"
|
||||
-DWITH_GUI_TESTS=OFF
|
||||
-DWITH_TESTS="$(usex test)"
|
||||
-DWITH_XC_AUTOTYPE="$(usex autotype)"
|
||||
-DWITH_XC_BROWSER="$(usex browser)"
|
||||
-DWITH_XC_FDOSECRETS=ON
|
||||
-DWITH_XC_KEESHARE="$(usex keeshare)"
|
||||
-DWITH_XC_NETWORKING="$(usex network)"
|
||||
-DWITH_XC_SSHAGENT=ON
|
||||
-DWITH_XC_UPDATECHECK=OFF
|
||||
-DWITH_XC_YUBIKEY="$(usex yubikey)"
|
||||
)
|
||||
if [[ "${PV}" == *_beta* ]] ; then
|
||||
mycmakeargs+=( -DOVERRIDE_VERSION="${PV/_/-}" )
|
||||
fi
|
||||
cmake_src_configure
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST needrestart-3.3.tar.gz 59814 BLAKE2B bfba00dee7c0f225efcaaa80b301eb38d0ea82645f253c8bef9294102f9f4183433ed1b6efe71a9dc34c65f76364ff3fc2344e840b34f97361f3ddcd0dc9ab4b SHA512 ea2f3cbe228a6b879905bd3b3de8b5e0bb2362e8d3cd566817d2e7d519d54207ff5923eb8e49cbd8ffe8ed50729f4da04bf4d55268e806f49157860584058d50
|
||||
DIST needrestart-3.4.tar.gz 63219 BLAKE2B 892bb610001575b7e653e06380ba39bb91608db6b5cc491d1e89543a72a17f69547f2610ebe7f3e51835dc1af5a32604fe54f79b6565c9f97df194a87f5f7bdf SHA512 3d63a9c32112b1d4f5d0c6d66430323761c9e7c17f01f52d0572b64ebf113fc9b52838dada363667632ae51894312d891ae8016e8eb5cbd4e0d06fa37c603f25
|
||||
|
@ -0,0 +1,41 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/liske/${PN}.git"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
KEYWORDS="amd64 x86"
|
||||
else
|
||||
SRC_URI="https://github.com/liske/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="amd64 x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Restart daemons after library updates"
|
||||
HOMEPAGE="https://fiasko-nw.net/~thomas/tag/needrestart.html https://github.com/liske/needrestart"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2+"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-apps/sed-4.2.2
|
||||
dev-lang/perl:=
|
||||
dev-perl/libintl-perl
|
||||
dev-perl/Module-Find
|
||||
dev-perl/Module-ScanDeps
|
||||
dev-perl/Proc-ProcessTable
|
||||
dev-perl/Sort-Naturally
|
||||
dev-perl/TermReadKey
|
||||
sys-apps/init-system-helpers
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/gettext
|
||||
"
|
||||
|
||||
src_install() {
|
||||
default
|
||||
doman man/*.1
|
||||
dodoc -r ex
|
||||
}
|
@ -1,2 +1,4 @@
|
||||
DIST puppet-agent_6.13.0-1stretch_amd64.deb 22432484 BLAKE2B 231f8683afbf4d2c5ded7bfec323baecbfd52446bb3483c2c16764bc57b79a18d256ecf94b27d4db1bbe88038d7f3eef037c500a39e3b66d641e4effa94cd2d3 SHA512 6101e84e5dbfa64bd336bb23595fe559165e4a159fa5de739aa1617e6825ab11ad62d1abbee26ff94b9f68caa7a192c0339a0c721efcc534ae9ddbba161af907
|
||||
DIST puppet-agent_6.13.0-1stretch_i386.deb 22787442 BLAKE2B 1bcea00b2da5c5b0db51fdd12d3828492a9a56af3a8c84919258ac7b90f7d135df708aba602a6d517364ac8b42f1ee3f1c11596cca0e89809a72d1d04c7ecc58 SHA512 55afd1ec6d331808a2a5adcd9c41803d932bcd7e2653da42c81c8ea1179649ae7ac642993813d527b2f365fb4f21d67015a0c2eb5379de2184585475521f8726
|
||||
DIST puppet-agent_6.14.0-1stretch_amd64.deb 22450130 BLAKE2B fe6e30d99357328a884944e59d7cb1c66ad9fc36642ba377ed99e23551c5cbf06cffc4336b47440389fee7a9f1996b8325d18335768187f5d052fcecae041f5b SHA512 41d87f1ab4ead019eb5ef90ad21e557db686729151618e4ec642ea6636feda383874f7d457de7e9e323cf44d9d410e7fb650edd6e69b186c2fdff5657955ac5a
|
||||
DIST puppet-agent_6.14.0-1stretch_i386.deb 22792198 BLAKE2B 7638fd1edfeb22377ab22484dd0fd5377bab6ee5e3e01c64ffd8eae29b08e0182204446db23d8cf68018a58c2419ce22c4dda4fd10a6dfac64356d68a5478bfa SHA512 dc787dfeb2565fde00da6e991fb94435c56e804657a38268ad49d72783b9857de4e359d6d9002525759684ddcb48a00e2fdb73f069cd79da74237bcb9530a116
|
||||
|
@ -0,0 +1,75 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
inherit eutils systemd unpacker
|
||||
|
||||
DESCRIPTION="general puppet client utils along with hiera and facter"
|
||||
HOMEPAGE="https://puppetlabs.com/"
|
||||
SRC_BASE="http://apt.puppetlabs.com/pool/stretch/puppet/${PN:0:1}/${PN}/${PN}_${PV}-1stretch"
|
||||
SRC_URI="
|
||||
amd64? ( ${SRC_BASE}_amd64.deb )
|
||||
x86? ( ${SRC_BASE}_i386.deb )"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="puppetdb selinux"
|
||||
RESTRICT="strip"
|
||||
|
||||
CDEPEND="!app-admin/puppet
|
||||
!dev-ruby/hiera
|
||||
!dev-ruby/facter
|
||||
!app-emulation/virt-what
|
||||
acct-user/puppet
|
||||
acct-group/puppet"
|
||||
|
||||
DEPEND="
|
||||
${CDEPEND}
|
||||
app-admin/augeas"
|
||||
RDEPEND="${CDEPEND}
|
||||
app-portage/eix
|
||||
sys-apps/dmidecode
|
||||
sys-libs/libselinux
|
||||
sys-libs/glibc
|
||||
sys-libs/readline:0/7
|
||||
sys-libs/ncurses:0[tinfo]
|
||||
selinux? (
|
||||
sys-libs/libselinux[ruby]
|
||||
sec-policy/selinux-puppet
|
||||
)
|
||||
puppetdb? ( >=dev-ruby/puppetdb-termini-5.0.1 )"
|
||||
|
||||
S=${WORKDIR}
|
||||
|
||||
src_install() {
|
||||
# conf.d
|
||||
doconfd etc/default/puppet
|
||||
doconfd etc/default/pxp-agent
|
||||
# logrotate.d
|
||||
insinto /etc/logrotate.d
|
||||
doins etc/logrotate.d/pxp-agent
|
||||
# puppet itself
|
||||
insinto /etc/puppetlabs
|
||||
doins -r etc/puppetlabs/*
|
||||
# logdir for systemd
|
||||
dodir var/log/puppetlabs/puppet/
|
||||
fperms 0750 var/log/puppetlabs/puppet/
|
||||
# the rest
|
||||
insinto /opt
|
||||
dodir opt/puppetlabs/puppet/cache
|
||||
doins -r opt/*
|
||||
fperms 0750 /opt/puppetlabs/puppet/cache
|
||||
# init
|
||||
newinitd "${FILESDIR}/puppet.initd" puppet
|
||||
systemd_dounit lib/systemd/system/puppet.service
|
||||
systemd_dounit lib/systemd/system/pxp-agent.service
|
||||
systemd_newtmpfilesd "${FILESDIR}/puppet-agent.conf.tmpfilesd" puppet-agent.conf
|
||||
# symlinks
|
||||
chmod 0755 -R "${D}/opt/puppetlabs/puppet/bin/"
|
||||
chmod 0755 "${D}//opt/puppetlabs/puppet/lib/virt-what/virt-what-cpuid-helper"
|
||||
dosym ../../opt/puppetlabs/bin/facter /usr/bin/facter
|
||||
dosym ../../opt/puppetlabs/bin/hiera /usr/bin/hiera
|
||||
dosym ../../opt/puppetlabs/bin/puppet /usr/bin/puppet
|
||||
dosym ../../opt/puppetlabs/puppet/bin/virt-what /usr/bin/virt-what
|
||||
}
|
@ -1,3 +1,5 @@
|
||||
DIST puppet-5.5.17.tar.gz 3090402 BLAKE2B 7722ec4196ee766c29eddd7dc73539a4a5a0e4cc781a84af25210488328b5ae01178ca64e8eef14152cbeca06dc8fe145b5e39ce6a120d7689fc32cbbbe16f9f SHA512 95c6cd836a9f732ccfe2d8b83096e79c32428c43390c0826663f896ca1388e1fe3b55d93a5a7548831e95de85247db717866c36786d591e207341c734d70168b
|
||||
DIST puppet-5.5.18.tar.gz 2984835 BLAKE2B d5a1d023d3d26e04ccc81efa772131c06fc7ace8ec59c7efa97bddb775bb492d3256290824a87d54df5c28862cbba98c58cf41bb4a0c27a4128701652c06eee0 SHA512 86f210ee783ca36340b22463cd4ac237d8dc1c6a35526530af0696bb3f0373b0b22f690d3e3f8e31655ea182a33eb60b66b5826bd6c4d1b0059a8e46152416e6
|
||||
DIST puppet-5.5.19.tar.gz 2993740 BLAKE2B aa6bde89489279769ee9a1ed5508fb223f7f0153b1b1991970018908eee70ff0816688c702b8dc779d01e1978ea7f9290c80523648730d5408a17674c11345fd SHA512 996fa155ca04c8c3c96c29cf65cd24eaf9e19e89fcf85345509dbd3673b28c263df5b62d6f016b8ac1c1da8ed86f0acf3100eae2656252bb10c542972db81de3
|
||||
DIST puppet-6.13.0.tar.gz 2837171 BLAKE2B dc64b23fa2d5fcb978cfb03bf67f89ff0ae084883320f267bbb7fd613fd8948193658d717ecbf30f73e313c4530f872617a186675547509db9492589e4f226d6 SHA512 fb7abc9cf79a3de1daf597c0c1768ab4abcc11a236beb8294c5fc69d07ae23149216f7c8d33599365d3c10485f3fb3f8f5fe492e0e7312d19ffdaa0bc8b87d0c
|
||||
DIST puppet-6.14.0.tar.gz 2842351 BLAKE2B db9a467d8e0f4f25d45c2f735ee9d11ac6ed4e47c16b95ded3ff9f1c5055ea866735bcda27c19c2988035d9592035e433ef0d79a19781c99f4e97388edf46b93 SHA512 066ad8de6393cb58b1f92fae450dc72dabcbe912cdbb3417848a66955fe17696a68abf67d86b107a2b1c54e7037d38da7264a9234a8833b56065c8e407ff57a4
|
||||
|
@ -0,0 +1,141 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
USE_RUBY="ruby24 ruby25 ruby26"
|
||||
|
||||
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
|
||||
|
||||
RUBY_FAKEGEM_TASK_DOC="doc:all"
|
||||
|
||||
RUBY_FAKEGEM_EXTRAINSTALL="locales"
|
||||
|
||||
inherit eutils user ruby-fakegem eapi7-ver
|
||||
|
||||
DESCRIPTION="A system automation and configuration management software."
|
||||
HOMEPAGE="https://puppet.com/"
|
||||
SRC_URI="http://downloads.puppetlabs.com/puppet/${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0 GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
|
||||
IUSE="augeas diff doc emacs ldap rrdtool selinux shadow sqlite vim-syntax"
|
||||
RESTRICT="test"
|
||||
|
||||
ruby_add_rdepend "
|
||||
dev-ruby/hiera
|
||||
dev-ruby/json:=
|
||||
>=dev-ruby/facter-3.0.0
|
||||
augeas? ( dev-ruby/ruby-augeas )
|
||||
diff? ( dev-ruby/diff-lcs )
|
||||
doc? ( dev-ruby/rdoc )
|
||||
ldap? ( dev-ruby/ruby-ldap )
|
||||
shadow? ( dev-ruby/ruby-shadow )
|
||||
sqlite? ( dev-ruby/sqlite3 )
|
||||
virtual/ruby-ssl
|
||||
dev-ruby/hocon"
|
||||
|
||||
ruby_add_bdepend "
|
||||
doc? ( dev-ruby/yard )
|
||||
test? (
|
||||
dev-ruby/mocha
|
||||
dev-ruby/rack
|
||||
dev-ruby/rspec-its
|
||||
)"
|
||||
# this should go in the above lists, but isn't because of test deps not being keyworded
|
||||
# dev-ruby/rspec-collection_matchers
|
||||
|
||||
RDEPEND+=" ${RDEPEND}
|
||||
rrdtool? ( >=net-analyzer/rrdtool-1.2.23[ruby] )
|
||||
selinux? (
|
||||
sys-libs/libselinux[ruby]
|
||||
sec-policy/selinux-puppet
|
||||
)
|
||||
vim-syntax? ( >=app-vim/puppet-syntax-3.0.1 )
|
||||
>=app-portage/eix-0.18.0"
|
||||
PDEPEND="emacs? ( >=app-emacs/puppet-mode-0.3-r1 )"
|
||||
|
||||
pkg_setup() {
|
||||
enewgroup puppet
|
||||
enewuser puppet -1 -1 /var/lib/puppet puppet
|
||||
}
|
||||
|
||||
all_ruby_prepare() {
|
||||
# Avoid spec that require unpackaged json-schema.
|
||||
rm spec/lib/matchers/json.rb $( grep -Rl matchers/json spec) || die
|
||||
|
||||
# fix systemd path
|
||||
epatch "${FILESDIR}/puppet-systemd.patch"
|
||||
|
||||
# Avoid specs that can only run in the puppet.git repository. This
|
||||
# should be narrowed down to the specific specs.
|
||||
rm spec/integration/parser/compiler_spec.rb || die
|
||||
|
||||
# Avoid failing spec that need further investigation.
|
||||
rm spec/unit/module_tool/metadata_spec.rb || die
|
||||
}
|
||||
|
||||
each_ruby_install() {
|
||||
each_fakegem_install
|
||||
# dosym "/usr/$(get_libdir)/ruby/gems/$(ruby_get_version)/gems/${P}" "/usr/$(get_libdir)/ruby/gems/$(ruby_get_version)/gems/${PN}"
|
||||
}
|
||||
|
||||
all_ruby_install() {
|
||||
all_fakegem_install
|
||||
|
||||
# systemd stuffs
|
||||
insinto /usr/lib/systemd/system
|
||||
doins "${WORKDIR}/all/${P}/ext/systemd/puppet.service"
|
||||
|
||||
# tmpfiles stuff
|
||||
insinto /usr/lib/tmpfiles.d
|
||||
newins "${FILESDIR}/tmpfiles.d" "puppet.conf"
|
||||
|
||||
# openrc init stuff
|
||||
newinitd "${FILESDIR}"/puppet.init-4.x puppet
|
||||
newinitd "${FILESDIR}"/puppetmaster.init-4.x puppetmaster
|
||||
newconfd "${FILESDIR}"/puppetmaster.confd puppetmaster
|
||||
|
||||
keepdir /etc/puppetlabs/puppet/ssl
|
||||
|
||||
keepdir /var/lib/puppet/facts
|
||||
keepdir /var/lib/puppet/files
|
||||
fowners -R puppet:puppet /var/lib/puppet
|
||||
|
||||
fperms 0750 /var/lib/puppet
|
||||
|
||||
fperms 0750 /etc/puppetlabs
|
||||
fperms 0750 /etc/puppetlabs/puppet
|
||||
fperms 0750 /etc/puppetlabs/puppet/ssl
|
||||
fowners -R :puppet /etc/puppetlabs
|
||||
fowners -R :puppet /var/lib/puppet
|
||||
|
||||
if use ldap ; then
|
||||
insinto /etc/openldap/schema; doins ext/ldap/puppet.schema
|
||||
fi
|
||||
|
||||
# ext and examples files
|
||||
for f in $(find ext examples -type f) ; do
|
||||
docinto "$(dirname ${f})"; dodoc "${f}"
|
||||
done
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog
|
||||
elog "Please, *don't* include the --ask option in EMERGE_EXTRA_OPTS as this could"
|
||||
elog "cause puppet to hang while installing packages."
|
||||
elog
|
||||
elog "Portage Puppet module with Gentoo-specific resources:"
|
||||
elog "http://forge.puppetlabs.com/gentoo/portage"
|
||||
elog
|
||||
|
||||
for v in ${REPLACING_VERSIONS}; do
|
||||
if [ "$(ver_cut 1 "$v")" -eq "4" ]; then
|
||||
elog
|
||||
elog "Please see the following url for the release notes for puppet-5"
|
||||
elog "https://docs.puppet.com/puppet/5.0/release_notes.html#if-youre-upgrading-from-puppet-4x"
|
||||
elog
|
||||
fi
|
||||
done
|
||||
}
|
@ -0,0 +1,136 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
USE_RUBY="ruby23 ruby24 ruby25"
|
||||
|
||||
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
|
||||
|
||||
RUBY_FAKEGEM_TASK_DOC="doc:all"
|
||||
|
||||
RUBY_FAKEGEM_EXTRAINSTALL="locales"
|
||||
|
||||
inherit eutils ruby-fakegem eapi7-ver
|
||||
|
||||
DESCRIPTION="A system automation and configuration management software."
|
||||
HOMEPAGE="https://puppet.com/"
|
||||
SRC_URI="http://downloads.puppetlabs.com/puppet/${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0 GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
|
||||
IUSE="augeas diff doc emacs ldap rrdtool selinux shadow sqlite vim-syntax"
|
||||
RESTRICT="test"
|
||||
|
||||
ruby_add_rdepend "
|
||||
dev-ruby/hiera
|
||||
dev-ruby/json:=
|
||||
dev-ruby/semantic_puppet
|
||||
>=dev-ruby/facter-3.0.0
|
||||
dev-ruby/concurrent-ruby
|
||||
augeas? ( dev-ruby/ruby-augeas )
|
||||
diff? ( dev-ruby/diff-lcs )
|
||||
doc? ( dev-ruby/rdoc )
|
||||
ldap? ( dev-ruby/ruby-ldap )
|
||||
shadow? ( dev-ruby/ruby-shadow )
|
||||
sqlite? ( dev-ruby/sqlite3 )
|
||||
virtual/ruby-ssl
|
||||
dev-ruby/hocon"
|
||||
|
||||
ruby_add_bdepend "
|
||||
doc? ( dev-ruby/yard )
|
||||
test? (
|
||||
dev-ruby/mocha
|
||||
dev-ruby/rack
|
||||
dev-ruby/rspec-its
|
||||
)"
|
||||
# this should go in the above lists, but isn't because of test deps not being keyworded
|
||||
# dev-ruby/rspec-collection_matchers
|
||||
|
||||
RDEPEND+=" ${RDEPEND}
|
||||
rrdtool? ( >=net-analyzer/rrdtool-1.2.23[ruby] )
|
||||
selinux? (
|
||||
sys-libs/libselinux[ruby]
|
||||
sec-policy/selinux-puppet
|
||||
)
|
||||
vim-syntax? ( >=app-vim/puppet-syntax-3.0.1 )
|
||||
>=app-portage/eix-0.18.0
|
||||
acct-user/puppet
|
||||
acct-group/puppet"
|
||||
PDEPEND="emacs? ( >=app-emacs/puppet-mode-0.3-r1 )"
|
||||
|
||||
all_ruby_prepare() {
|
||||
# Avoid spec that require unpackaged json-schema.
|
||||
rm spec/lib/matchers/json.rb $( grep -Rl matchers/json spec) || die
|
||||
|
||||
# can't be run within portage.
|
||||
epatch "${FILESDIR}/puppet-fix-tests-6.10.1.patch"
|
||||
|
||||
# fix systemd path
|
||||
epatch "${FILESDIR}/puppet-systemd.patch"
|
||||
|
||||
# Avoid specs that can only run in the puppet.git repository. This
|
||||
# should be narrowed down to the specific specs.
|
||||
rm spec/integration/parser/compiler_spec.rb || die
|
||||
|
||||
# Avoid failing spec that need further investigation.
|
||||
rm spec/unit/module_tool/metadata_spec.rb || die
|
||||
}
|
||||
|
||||
each_ruby_install() {
|
||||
each_fakegem_install
|
||||
# dosym "/usr/$(get_libdir)/ruby/gems/$(ruby_get_version)/gems/${P}" "/usr/$(get_libdir)/ruby/gems/$(ruby_get_version)/gems/${PN}"
|
||||
}
|
||||
|
||||
all_ruby_install() {
|
||||
all_fakegem_install
|
||||
|
||||
# systemd stuffs
|
||||
insinto /usr/lib/systemd/system
|
||||
doins "${WORKDIR}/all/${P}/ext/systemd/puppet.service"
|
||||
|
||||
# tmpfiles stuff
|
||||
insinto /usr/lib/tmpfiles.d
|
||||
newins "${FILESDIR}/tmpfiles.d" "puppet.conf"
|
||||
|
||||
# openrc init stuff
|
||||
newinitd "${FILESDIR}"/puppet.init-4.x puppet
|
||||
|
||||
keepdir /etc/puppetlabs/puppet/ssl
|
||||
|
||||
keepdir /var/lib/puppet/facts
|
||||
keepdir /var/lib/puppet/files
|
||||
fowners -R puppet:puppet /var/lib/puppet
|
||||
|
||||
fperms 0750 /var/lib/puppet
|
||||
|
||||
fperms 0750 /etc/puppetlabs
|
||||
fperms 0750 /etc/puppetlabs/puppet
|
||||
fperms 0750 /etc/puppetlabs/puppet/ssl
|
||||
fowners -R :puppet /etc/puppetlabs
|
||||
fowners -R :puppet /var/lib/puppet
|
||||
|
||||
if use ldap ; then
|
||||
insinto /etc/openldap/schema; doins ext/ldap/puppet.schema
|
||||
fi
|
||||
|
||||
# ext and examples files
|
||||
for f in $(find ext examples -type f) ; do
|
||||
docinto "$(dirname ${f})"; dodoc "${f}"
|
||||
done
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog
|
||||
elog "Please, *don't* include the --ask option in EMERGE_EXTRA_OPTS as this could"
|
||||
elog "cause puppet to hang while installing packages."
|
||||
elog
|
||||
elog "Portage Puppet module with Gentoo-specific resources:"
|
||||
elog "http://forge.puppetlabs.com/gentoo/portage"
|
||||
elog
|
||||
elog "If updating from puppet 5 to 6, keep in mind that webrick (server/master)"
|
||||
elog "suppert was removed for >=6.x, please migrate to puppetserver if you have"
|
||||
elog "not already done so."
|
||||
elog
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST puppetdb-6.8.0.tar.gz 44216021 BLAKE2B ac5641ee0bceef3948d108c725e2ff53d76e897cafd75c9bc6978462f4b157c3d30146ce2f57fd2aa7610b2defc4e074c168847d8aba5501cde16ee0ab7b5aaf SHA512 2dd01058edbd8a4bb3f4717dc518e58ac57139ccc0651e8e39c721a32651bd932fe4ec747c7da23561ab33d7d4d7ddc448fe9b05734d1562f799e183c5e236d5
|
||||
DIST puppetdb-6.9.0.tar.gz 44270700 BLAKE2B 2346bf8cf3c944b1a75d0ed9fc32678909f0a6615ea615b7d89316ce470eaaa9540b56550b655214711564c6f0f0e2931a0f037e0ffad983f5578a54b4b180ec SHA512 2450f82bcbcd84fd63f107ea69dc3890a77fc94a54b2c5601c5aa3ed80fcc12e26302f6150777fbcbc1fbedb3c9fb9dd60e6aea37101c0abb2cf19a1696be2e7
|
||||
DIST puppetdb-6.9.1.tar.gz 44274016 BLAKE2B eaf1fe6ee88d2f4a1d147032db017eefd95a3edaba6fe5b114be6ac4ce37584ee58fa96c34fdac97b9b8b1aecd8abc982107024d2155bb78781d1c2c2f2112e1 SHA512 8db39c7571af597be2cff7e21ec5818d422f83f1c3188896e8eb9391e52d0f4bb1f85358a25998db599e9db2b93baec60415a43b519be3da600a9c1de0f073bc
|
||||
|
@ -0,0 +1,87 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit multilib systemd
|
||||
|
||||
DESCRIPTION="PuppetDB collects data generated by Puppet."
|
||||
HOMEPAGE="http://docs.puppetlabs.com/puppetdb/"
|
||||
SRC_URI="https://downloads.puppetlabs.com/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE=""
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND+=">=virtual/jdk-1.8.0"
|
||||
DEPEND+="acct-user/puppetdb
|
||||
acct-group/puppetdb"
|
||||
|
||||
src_prepare() {
|
||||
sed -i 's/sysconfig/conf\.d/g' ext/redhat/puppetdb.service || die
|
||||
sed -i 's/sysconfig/conf\.d/g' ext/bin/puppetdb || die
|
||||
sed -i 's/sysconfig/conf\.d/g' install.sh || die
|
||||
sed -i 's/var\/run/run/g' ext/puppetdb.tmpfiles.conf || die
|
||||
sed -i 's/var\/run/run/g' install.sh || die
|
||||
default
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
einfo "not compiling"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir /opt/puppetlabs/server/data/puppetdb
|
||||
insinto /opt/puppetlabs/server/apps/puppetdb
|
||||
insopts -m0744
|
||||
doins ext/ezbake-functions.sh
|
||||
insopts -m0644
|
||||
doins ext/ezbake.manifest
|
||||
doins puppetdb.jar
|
||||
insinto /etc/puppetlabs/puppetdb
|
||||
doins ext/config/logback.xml
|
||||
doins ext/config/bootstrap.cfg
|
||||
doins ext/config/request-logging.xml
|
||||
insinto /etc/puppetlabs/puppetdb/conf.d
|
||||
doins ext/config/conf.d/jetty.ini
|
||||
doins ext/config/conf.d/repl.ini
|
||||
doins ext/config/conf.d/database.ini
|
||||
doins ext/config/conf.d/config.ini
|
||||
insopts -m0755
|
||||
insinto /opt/puppetlabs/server/apps/puppetdb/scripts
|
||||
doins install.sh
|
||||
insinto /opt/puppetlabs/server/apps/puppetdb/cli/apps
|
||||
doins ext/cli/foreground
|
||||
doins ext/cli/ssl-setup
|
||||
doins ext/cli/config-migration
|
||||
doins ext/cli/foreground
|
||||
doins ext/cli/anonymize
|
||||
doins ext/cli/reload
|
||||
doins ext/cli/start
|
||||
doins ext/cli/stop
|
||||
insinto /opt/puppetlabs/server/apps/puppetdb/bin
|
||||
doins ext/bin/puppetdb
|
||||
insopts -m0644
|
||||
dodir /opt/puppetlabs/server/bin
|
||||
dosym ../apps/puppetdb/bin/puppetdb /opt/puppetlabs/server/bin/puppetdb
|
||||
dodir /opt/puppetlabs/bin
|
||||
dosym ../server/apps/puppetdb/bin/puppetdb /opt/puppetlabs/bin/puppetdb
|
||||
dosym ../../opt/puppetlabs/server/apps/puppetdb/bin/puppetdb /usr/bin/puppetdb
|
||||
# init type tasks
|
||||
newconfd ext/default puppetdb
|
||||
systemd_dounit ext/redhat/puppetdb.service
|
||||
systemd_newtmpfilesd ext/puppetdb.tmpfiles.conf puppetdb.conf
|
||||
newinitd "${FILESDIR}/puppetdb.initd-r2" puppetdb
|
||||
# misc
|
||||
insinto /etc/logrotate.d
|
||||
newins ext/puppetdb.logrotate.conf puppetdb
|
||||
fowners -R puppetdb:puppetdb /opt/puppetlabs/server/data/puppetdb
|
||||
fperms -R 770 /opt/puppetlabs/server/data/puppetdb
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "to install please run '/opt/puppetlabs/server/bin/puppetdb ssl-setup'"
|
||||
elog
|
||||
elog "to upgrade please run '/opt/puppetlabs/server/bin/puppetdb config-migration'"
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST puppetserver-6.8.0.tar.gz 59370389 BLAKE2B 227512d3a054980867730882459bff32559f8baa5fb0c807a14fcc827b8f41fc1da2cceab6bdbd6162bb4e6e6e4312f5d47d478f6887a978c359c6a4225d663d SHA512 9e4d0ea1aad1209342151cfcfd304e4a296df0e95fefde46d4e4a28a9da62422194492d430c3492cc717a7c872ee0f448a89a40fe1e1cb565f865fc0aca7089b
|
||||
DIST puppetserver-6.9.0.tar.gz 59495229 BLAKE2B 17e02d201dd39a7c9a060c8898c76de3b85c5ffceb8dae128c032352e8f2959b6084558790c14979f95b7904bc70db0b3374d81f2b0c1f70bfb286084d6ba3a4 SHA512 b1446d407d50e3da502e2cd882647379fb51334bf5d4cc13d3654c8f7cbec2d6c4d7efd8acdfbdc1c70c6e30e3b420ed642cbdb97ee5f6a16b3b404dbd42bba7
|
||||
DIST puppetserver-6.9.1.tar.gz 59496176 BLAKE2B 1599380ebf731fb4d67c04abc06303647d5d29c99f2b9721d049972eaaf3d4c2b108c6ac2f1a45efce3c52e9a57ebd362c874c36093027ebca77a2ae1d4c0323 SHA512 3a794adfa48c7bf9bd241c9da0578ea192b8551e75093e4d95c7c10fa659ef59d59ae72b33561d13ac31e839245d266301a6067d30b466138a95a6c4879bc58a
|
||||
|
@ -0,0 +1,131 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit multilib systemd
|
||||
|
||||
DESCRIPTION="Puppet Server is the next-generation application for managing Puppet agents."
|
||||
HOMEPAGE="http://docs.puppetlabs.com/puppetserver/"
|
||||
SRC_URI="https://downloads.puppetlabs.com/puppet/${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="puppetdb"
|
||||
# will need the same keywords as puppet
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND+="
|
||||
>=virtual/jdk-1.8.0
|
||||
app-admin/puppet-agent[puppetdb?]"
|
||||
DEPEND+="acct-user/puppet
|
||||
acct-group/puppet"
|
||||
|
||||
src_prepare() {
|
||||
sed -i 's/sysconfig\/puppetserver/default\/puppetserver/g' ext/redhat/puppetserver.service || die
|
||||
sed -i 's/sysconfig\/puppetserver/default\/puppetserver/g' ext/bin/puppetserver || die
|
||||
sed -i 's/sysconfig\/puppetserver/default\/puppetserver/g' install.sh || die
|
||||
sed -i 's/var\/run/run/g' ext/config/conf.d/puppetserver.conf || die
|
||||
sed -i 's/var\/run/run/g' ext/redhat/puppetserver.service || die
|
||||
sed -i 's/var\/run/run/g' install.sh || die
|
||||
default
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
einfo "not compiling"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /opt/puppetlabs/server/apps/puppetserver
|
||||
insopts -m0774
|
||||
doins ext/ezbake-functions.sh
|
||||
insopts -m0644
|
||||
doins ext/ezbake.manifest
|
||||
doins puppet-server-release.jar
|
||||
insinto /etc/puppetlabs/puppetserver
|
||||
doins ext/config/logback.xml
|
||||
doins ext/config/request-logging.xml
|
||||
insinto /etc/puppetlabs/puppetserver/services.d
|
||||
doins ext/system-config/services.d/bootstrap.cfg
|
||||
doins ext/config/services.d/ca.cfg
|
||||
insinto /etc/puppetlabs/puppetserver/conf.d
|
||||
doins ext/config/conf.d/puppetserver.conf
|
||||
doins ext/config/conf.d/auth.conf
|
||||
doins ext/config/conf.d/global.conf
|
||||
doins ext/config/conf.d/web-routes.conf
|
||||
doins ext/config/conf.d/metrics.conf
|
||||
doins ext/config/conf.d/webserver.conf
|
||||
insopts -m0755
|
||||
insinto /opt/puppetlabs/server/apps/puppetserver/scripts
|
||||
doins install.sh
|
||||
insinto /opt/puppetlabs/server/apps/puppetserver/cli/apps
|
||||
doins ext/cli/ca
|
||||
doins ext/cli/irb
|
||||
doins ext/cli/foreground
|
||||
doins ext/cli/gem
|
||||
doins ext/cli/ruby
|
||||
doins ext/cli/reload
|
||||
doins ext/cli/start
|
||||
doins ext/cli/stop
|
||||
insinto /opt/puppetlabs/server/apps/puppetserver/cli
|
||||
doins ext/cli_defaults/cli-defaults.sh
|
||||
insinto /opt/puppetlabs/server/apps/puppetserver/bin
|
||||
doins ext/bin/puppetserver
|
||||
insopts -m0644
|
||||
dodir /opt/puppetlabs/server/bin
|
||||
dosym ../apps/puppetserver/bin/puppetserver /opt/puppetlabs/server/bin/puppetserver
|
||||
dodir /opt/puppetlabs/bin
|
||||
dosym ../server/apps/puppetserver/bin/puppetserver /opt/puppetlabs/bin/puppetserver
|
||||
dosym ../../opt/puppetlabs/server/apps/puppetserver/bin/puppetserver /usr/bin/puppetserver
|
||||
dodir /opt/puppetlabs/server/apps/puppetserver/config/services.d
|
||||
# other sys stuff
|
||||
dodir /etc/puppetlabs/code
|
||||
# needed for systemd
|
||||
dodir /var/log/puppetlabs/puppetserver
|
||||
dodir /etc/puppetlabs/puppet/ssl
|
||||
fowners -R puppet:puppet /etc/puppetlabs/puppet/ssl
|
||||
fperms -R 771 /etc/puppetlabs/puppet/ssl
|
||||
# systemd type things
|
||||
insinto /etc/systemd/system/puppetserver.service.d/
|
||||
systemd_dounit ext/redhat/puppetserver.service
|
||||
insinto /etc/default
|
||||
newins ext/default puppetserver
|
||||
# normal init type tasks
|
||||
dosym ../default/puppetserver /etc/conf.d/puppetserver
|
||||
newinitd "${FILESDIR}/puppetserver.init-r1" puppetserver
|
||||
# misc
|
||||
insinto /etc/logrotate.d
|
||||
newins ext/puppetserver.logrotate.conf puppetserver
|
||||
# cleanup
|
||||
dodir /opt/puppetlabs/server/data/puppetserver/jruby-gems
|
||||
fowners -R puppet:puppet /opt/puppetlabs/server/data
|
||||
fperms -R 775 /opt/puppetlabs/server/data/puppetserver
|
||||
fperms -R 700 /var/log/puppetlabs/puppetserver
|
||||
insinto /opt/puppetlabs/server/data
|
||||
doins ext/build-scripts/jruby-gem-list.txt
|
||||
doins ext/build-scripts/mri-gem-list-no-dependencies.txt
|
||||
insopts -m 0644
|
||||
insinto /usr/lib/tmpfiles.d
|
||||
newins ext/puppetserver.tmpfiles.conf puppetserver.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "to install you may want to run the following:"
|
||||
elog
|
||||
elog "puppet config set --section master vardir /opt/puppetlabs/server/data/puppetserver"
|
||||
elog "puppet config set --section master logdir /var/log/puppetlabs/puppetserver"
|
||||
elog "puppet config set --section master rundir /run/puppetlabs/puppetserver"
|
||||
elog "puppet config set --section master pidfile /run/puppetlabs/puppetserver/puppetserver.pid"
|
||||
elog "puppet config set --section master codedir /etc/puppetlabs/code"
|
||||
elog
|
||||
elog "# install puppetserver gems"
|
||||
elog "cd /opt/puppetlabs/server/apps/puppetserver"
|
||||
elog "echo \"jruby-puppet: { gem-home: ${DESTDIR}/opt/puppetlabs/server/data/puppetserver/vendored-jruby-gems }\" > jruby.conf"
|
||||
elog "while read LINE; do"
|
||||
elog " java -cp puppet-server-release.jar:jruby-9k.jar clojure.main -m puppetlabs.puppetserver.cli.gem --config jruby.conf -- install --no-ri --no-rdoc \$(echo \$LINE |awk '{print \$1}') --version \$(echo \$LINE |awk '{print \$2}')"
|
||||
elog "done < /opt/puppetlabs/server/data/jruby-gem-list.txt"
|
||||
elog "echo \"jruby-puppet: { gem-home: ${DESTDIR}/opt/puppetlabs/puppet/lib/ruby/vendor_gems }\" > jruby.conf"
|
||||
elog "while read LINE; do"
|
||||
elog " java -cp puppet-server-release.jar:jruby-9k.jar clojure.main -m puppetlabs.puppetserver.cli.gem --config jruby.conf -- install --no-ri --no-rdoc \$(echo \$LINE |awk '{print \$1}') --version \$(echo \$LINE |awk '{print \$2}')"
|
||||
elog "done < /opt/puppetlabs/server/data/mri-gem-list-no-dependencies.txt"
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
DIST salt-2018.3.4.tar.gz 14404085 BLAKE2B 932b30b1ba60aefd3a6874a8ebe4cb6c469d82e31f6acdbe8a5641d09e3316796b5403ef803a355cec6255c1aede8bac3b66af179bd1bbaa5418c7076229cef9 SHA512 f17e06fdbf4741f231d9e769be57de4f6079e9283881b4bafa0d23928d7626a1f9c02b9f49c654b29c3e6ee8ed3d3ddf42c21baecef158ad63a97dc87895b21b
|
||||
DIST salt-2019.2.0.tar.gz 14952746 BLAKE2B aa3bba4b7d9548a8d333c242fc0265a743f56ff1a259da7c8618d37b3b022e12f09ac594a09f0ceec80fd9d3a6b6b9ec35b33e879b7a124e6612f2ec2a63a01c SHA512 de5a976213d011c230e423a172952effddb87168367958b8657eaaaf8fd2a8bec8471f547b6ff9e896a17064a13d387dbc12e12c605c8a241062e3238bd19eca
|
||||
DIST salt-2019.2.2.tar.gz 14420887 BLAKE2B 84e8a0aa72b88a66a1020b695849926669728ee02f8cb51a14853b5e9c2ab692fe65810367e5d53268f7b234c10911f16d063ce665b3761432ab1d9c0aa52d16 SHA512 2bbf9765384f1f6c2336a3f421298c8900cf459e6d1ebc7fb89284014ef8db9f5215a68de2bb06dfa3404983160a0c4c589ffa3dc046611dd5409bd502938677
|
||||
DIST salt-2019.2.3.tar.gz 14572686 BLAKE2B 770b815f43ca8651408c1c057377b02c8037e673584c719e0a9b5c56c13c8db2db0e2c8641a17323f2b890d4a69d1508b0090624c7067869d9fa84303c2f8585 SHA512 cd694ca19696a84e3370e39c61da180e508592253713d99dd6dd5342b57c2814fee22e46bade30d7604f5730d9e1a736e59c3a512161f744d3f097f74a2836c5
|
||||
|
@ -0,0 +1,151 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
PYTHON_COMPAT=( python3_6 )
|
||||
|
||||
inherit eutils systemd distutils-r1
|
||||
|
||||
DESCRIPTION="Salt is a remote execution and configuration manager"
|
||||
HOMEPAGE="https://www.saltstack.com/resources/community/
|
||||
https://github.com/saltstack"
|
||||
|
||||
if [[ ${PV} == 9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
|
||||
EGIT_BRANCH="develop"
|
||||
SRC_URI=""
|
||||
KEYWORDS=""
|
||||
else
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="cherrypy ldap libcloud libvirt gnupg keyring mako mongodb neutron nova"
|
||||
IUSE+=" openssl portage profile redis selinux test raet +zeromq vim-syntax"
|
||||
|
||||
RDEPEND="sys-apps/pciutils
|
||||
dev-python/jinja[${PYTHON_USEDEP}]
|
||||
dev-python/libnacl[${PYTHON_USEDEP}]
|
||||
>=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/markupsafe[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=www-servers/tornado-4.2.1[${PYTHON_USEDEP}]
|
||||
<www-servers/tornado-5.0[${PYTHON_USEDEP}]
|
||||
virtual/python-futures[${PYTHON_USEDEP}]
|
||||
libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
|
||||
mako? ( dev-python/mako[${PYTHON_USEDEP}] )
|
||||
ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
|
||||
libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
|
||||
openssl? (
|
||||
dev-libs/openssl:0=[-bindist]
|
||||
dev-python/pyopenssl[${PYTHON_USEDEP}]
|
||||
)
|
||||
raet? (
|
||||
>=dev-python/libnacl-1.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/ioflo-1.1.7[${PYTHON_USEDEP}]
|
||||
>=dev-python/raet-0.6.0[${PYTHON_USEDEP}]
|
||||
)
|
||||
zeromq? (
|
||||
>=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
|
||||
dev-python/pycryptodome[${PYTHON_USEDEP}]
|
||||
)
|
||||
cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
|
||||
mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
|
||||
portage? ( sys-apps/portage[${PYTHON_USEDEP}] )
|
||||
keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
|
||||
redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
|
||||
selinux? ( sec-policy/selinux-salt )
|
||||
nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
|
||||
neutron? ( >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] )
|
||||
gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )
|
||||
profile? ( dev-python/yappi[${PYTHON_USEDEP}] )
|
||||
vim-syntax? ( app-vim/salt-vim )"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
>=dev-python/pytest-salt-2018.12.8[${PYTHON_USEDEP}]
|
||||
>=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
|
||||
dev-python/psutil[${PYTHON_USEDEP}]
|
||||
dev-python/pytest[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-catchlog[${PYTHON_USEDEP}]
|
||||
dev-python/pip[${PYTHON_USEDEP}]
|
||||
dev-python/virtualenv[${PYTHON_USEDEP}]
|
||||
>=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
|
||||
!x86? ( >=dev-python/boto3-1.2.1[${PYTHON_USEDEP}] )
|
||||
>=dev-python/moto-0.3.6[${PYTHON_USEDEP}]
|
||||
>=dev-python/SaltTesting-2016.5.11[${PYTHON_USEDEP}]
|
||||
>=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}]
|
||||
${RDEPEND}
|
||||
)"
|
||||
|
||||
DOCS=( README.rst AUTHORS )
|
||||
|
||||
REQUIRED_USE="|| ( raet zeromq )"
|
||||
RESTRICT="!test? ( test ) x86? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/salt-2017.7.0-dont-realpath-tmpdir.patch"
|
||||
"${FILESDIR}/salt-2019.2.0-tests.patch"
|
||||
"${FILESDIR}/salt-2019.2.0-skip-tests-that-oom-machine.patch"
|
||||
"${FILESDIR}/salt-2019.2.2-newer-deps.patch"
|
||||
"${FILESDIR}/salt-2019.2.2-workaround-broken-mock-on-py2.patch"
|
||||
)
|
||||
|
||||
python_prepare() {
|
||||
# remove tests with external dependencies that may not be available
|
||||
rm tests/unit/{test_zypp_plugins.py,utils/test_extend.py} || die
|
||||
rm tests/unit/modules/test_{file,boto_{vpc,secgroup,elb}}.py || die
|
||||
rm tests/unit/states/test_boto_vpc.py || die
|
||||
|
||||
# allow the use of the renamed msgpack
|
||||
sed -i '/^msgpack/d' requirements/base.txt || die
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
local svc
|
||||
USE_SETUPTOOLS=1 distutils-r1_python_install_all
|
||||
|
||||
for svc in minion master syndic api; do
|
||||
newinitd "${FILESDIR}"/${svc}-initd-4 salt-${svc}
|
||||
newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc}
|
||||
systemd_dounit "${FILESDIR}"/salt-${svc}.service
|
||||
done
|
||||
|
||||
insinto /etc/${PN}
|
||||
doins -r conf/*
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local tempdir
|
||||
# testsuite likes lots of files
|
||||
ulimit -n 3072 || die
|
||||
|
||||
# ${T} is too long a path for the tests to work
|
||||
tempdir="$(mktemp -du --tmpdir=/tmp salt-XXX)"
|
||||
mkdir "${T}/$(basename "${tempdir}")"
|
||||
mkdir "${BUILD_DIR}"/../{templates,conf/cloud.{providers,profiles,maps}.d} || die
|
||||
|
||||
(
|
||||
cleanup() {
|
||||
rm -f "${tempdir}"
|
||||
rmdir "${BUILD_DIR}"/../{templates,conf/cloud.{providers,profiles,maps}.d} || die
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
addwrite "${tempdir}"
|
||||
ln -s "$(realpath --relative-to=/tmp "${T}/$(basename "${tempdir}")")" "${tempdir}"
|
||||
|
||||
USE_SETUPTOOLS=1 SHELL="/bin/bash" \
|
||||
TMPDIR="${tempdir}" \
|
||||
${EPYTHON} tests/runtests.py \
|
||||
--unit-tests --no-report --verbose
|
||||
|
||||
) || die "testing failed"
|
||||
}
|
Binary file not shown.
@ -1,2 +1 @@
|
||||
DIST libarchive-3.4.0.tar.gz 6908093 BLAKE2B 6da5798ceabb542d8b877b3d672f6e6431ed7340ec0160a5d8cef28591b516b55d426002379eddc632a478bfd2f034a358f8552f55c9f066fd7f5c31c218b462 SHA512 2f9e2a551a6bcab56fb1a030b5d656df7299a3d151465aa02f0420d344d2fada49dee4755b3abff9095f62519e14dc9af8afa1695ecc6d5fdb4f0b28e6ede852
|
||||
DIST libarchive-3.4.2.tar.gz 6979481 BLAKE2B eea90e4751ae487cd1a9b0eecd16598d1b81ffff665ae97a160e3858c8ffe60b82003f081af644f3f32260d0e1d3f3077240125e8279bf8111a79d93c68ac25d SHA512 a8922e54f2e985889d205ee8a0594c1d30dad950438b602a5be6bb1b274a735ad20a48ed484efd458013a0810d26ee4ae76e3a6c820823243d24ea0593ed7021
|
||||
|
@ -1,160 +0,0 @@
|
||||
From 64333cef68d7bcc67bef6ecf177fbeaa549b9139 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Matuska <martin@matuska.org>
|
||||
Date: Sat, 29 Jun 2019 00:20:58 +0200
|
||||
Subject: [PATCH] Unbreak compilation without zlib
|
||||
|
||||
Fixes #1214
|
||||
---
|
||||
libarchive/archive_read_support_filter_gzip.c | 54 ++++++++++++-------
|
||||
libarchive/test/test_read_format_raw.c | 4 ++
|
||||
2 files changed, 39 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/libarchive/archive_read_support_filter_gzip.c b/libarchive/archive_read_support_filter_gzip.c
|
||||
index 458b6f729..9fa9e2b0d 100644
|
||||
--- a/libarchive/archive_read_support_filter_gzip.c
|
||||
+++ b/libarchive/archive_read_support_filter_gzip.c
|
||||
@@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct archive *_a)
|
||||
*/
|
||||
static ssize_t
|
||||
peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
- struct private_data *state)
|
||||
+#ifdef HAVE_ZLIB_H
|
||||
+ struct private_data *state
|
||||
+#else
|
||||
+ void *state
|
||||
+#endif
|
||||
+ )
|
||||
{
|
||||
const unsigned char *p;
|
||||
ssize_t avail, len;
|
||||
int bits = 0;
|
||||
int header_flags;
|
||||
+#ifndef HAVE_ZLIB_H
|
||||
+ (void)state; /* UNUSED */
|
||||
+#endif
|
||||
|
||||
/* Start by looking at the first ten bytes of the header, which
|
||||
* is all fixed layout. */
|
||||
@@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
bits += 3;
|
||||
header_flags = p[3];
|
||||
/* Bytes 4-7 are mod time in little endian. */
|
||||
+#ifdef HAVE_ZLIB_H
|
||||
if (state)
|
||||
state->mtime = archive_le32dec(p + 4);
|
||||
+#endif
|
||||
/* Byte 8 is deflate flags. */
|
||||
/* XXXX TODO: return deflate flags back to consume_header for use
|
||||
in initializing the decompressor. */
|
||||
@@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
|
||||
/* Null-terminated optional filename. */
|
||||
if (header_flags & 8) {
|
||||
+#ifdef HAVE_ZLIB_H
|
||||
ssize_t file_start = len;
|
||||
+#endif
|
||||
do {
|
||||
++len;
|
||||
if (avail < len)
|
||||
@@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
return (0);
|
||||
} while (p[len - 1] != 0);
|
||||
|
||||
+#ifdef HAVE_ZLIB_H
|
||||
if (state) {
|
||||
/* Reset the name in case of repeat header reads. */
|
||||
free(state->name);
|
||||
state->name = strdup((const char *)&p[file_start]);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* Null-terminated optional comment. */
|
||||
@@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filter_bidder *self,
|
||||
return (0);
|
||||
}
|
||||
|
||||
-static int
|
||||
-gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
|
||||
-{
|
||||
- struct private_data *state;
|
||||
-
|
||||
- state = (struct private_data *)self->data;
|
||||
-
|
||||
- /* A mtime of 0 is considered invalid/missing. */
|
||||
- if (state->mtime != 0)
|
||||
- archive_entry_set_mtime(entry, state->mtime, 0);
|
||||
-
|
||||
- /* If the name is available, extract it. */
|
||||
- if (state->name)
|
||||
- archive_entry_set_pathname(entry, state->name);
|
||||
-
|
||||
- return (ARCHIVE_OK);
|
||||
-}
|
||||
-
|
||||
#ifndef HAVE_ZLIB_H
|
||||
|
||||
/*
|
||||
@@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_filter *self)
|
||||
|
||||
#else
|
||||
|
||||
+static int
|
||||
+gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
|
||||
+{
|
||||
+ struct private_data *state;
|
||||
+
|
||||
+ state = (struct private_data *)self->data;
|
||||
+
|
||||
+ /* A mtime of 0 is considered invalid/missing. */
|
||||
+ if (state->mtime != 0)
|
||||
+ archive_entry_set_mtime(entry, state->mtime, 0);
|
||||
+
|
||||
+ /* If the name is available, extract it. */
|
||||
+ if (state->name)
|
||||
+ archive_entry_set_pathname(entry, state->name);
|
||||
+
|
||||
+ return (ARCHIVE_OK);
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Initialize the filter object.
|
||||
*/
|
||||
@@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_filter *self)
|
||||
self->read = gzip_filter_read;
|
||||
self->skip = NULL; /* not supported */
|
||||
self->close = gzip_filter_close;
|
||||
+#ifdef HAVE_ZLIB_H
|
||||
self->read_header = gzip_read_header;
|
||||
+#endif
|
||||
|
||||
state->in_stream = 0; /* We're not actually within a stream yet. */
|
||||
|
||||
diff --git a/libarchive/test/test_read_format_raw.c b/libarchive/test/test_read_format_raw.c
|
||||
index 0dac8bfba..3961723b4 100644
|
||||
--- a/libarchive/test/test_read_format_raw.c
|
||||
+++ b/libarchive/test/test_read_format_raw.c
|
||||
@@ -36,7 +36,9 @@ DEFINE_TEST(test_read_format_raw)
|
||||
const char *reffile1 = "test_read_format_raw.data";
|
||||
const char *reffile2 = "test_read_format_raw.data.Z";
|
||||
const char *reffile3 = "test_read_format_raw.bufr";
|
||||
+#ifdef HAVE_ZLIB_H
|
||||
const char *reffile4 = "test_read_format_raw.data.gz";
|
||||
+#endif
|
||||
|
||||
/* First, try pulling data out of an uninterpretable file. */
|
||||
extract_reference_file(reffile1);
|
||||
@@ -119,6 +121,7 @@ DEFINE_TEST(test_read_format_raw)
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
|
||||
+#ifdef HAVE_ZLIB_H
|
||||
/* Fourth, try with gzip which has metadata. */
|
||||
extract_reference_file(reffile4);
|
||||
assert((a = archive_read_new()) != NULL);
|
||||
@@ -144,4 +147,5 @@ DEFINE_TEST(test_read_format_raw)
|
||||
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
+#endif
|
||||
}
|
@ -1,135 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
inherit libtool multilib-minimal toolchain-funcs
|
||||
|
||||
DESCRIPTION="Multi-format archive and compression library"
|
||||
HOMEPAGE="https://www.libarchive.org/"
|
||||
SRC_URI="https://www.libarchive.org/downloads/${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
||||
SLOT="0/13"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="acl blake2 +bzip2 +e2fsprogs expat +iconv kernel_linux libressl lz4 +lzma lzo nettle static-libs +threads xattr +zlib zstd"
|
||||
|
||||
RDEPEND="
|
||||
acl? ( virtual/acl[${MULTILIB_USEDEP}] )
|
||||
blake2? ( app-crypt/libb2[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
|
||||
expat? ( dev-libs/expat[${MULTILIB_USEDEP}] )
|
||||
!expat? ( dev-libs/libxml2[${MULTILIB_USEDEP}] )
|
||||
iconv? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
kernel_linux? (
|
||||
xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
!libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] )
|
||||
libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
|
||||
lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] )
|
||||
lzma? ( app-arch/xz-utils[threads=,${MULTILIB_USEDEP}] )
|
||||
lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] )
|
||||
nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
|
||||
zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] )"
|
||||
DEPEND="${RDEPEND}
|
||||
kernel_linux? (
|
||||
virtual/os-headers
|
||||
e2fsprogs? ( sys-fs/e2fsprogs )
|
||||
)"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-3.3.3-libressl.patch
|
||||
"${FILESDIR}"/${P}-without_zlib_build_fix.patch #693202
|
||||
)
|
||||
|
||||
# Various test problems, starting with the fact that sandbox
|
||||
# explodes on long paths. https://bugs.gentoo.org/598806
|
||||
RESTRICT="test"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
elibtoolize # is required for Solaris sol2_ld linker fix
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
|
||||
|
||||
local myconf=(
|
||||
$(use_enable acl)
|
||||
$(use_enable static-libs static)
|
||||
$(use_enable xattr)
|
||||
$(use_with blake2 libb2)
|
||||
$(use_with bzip2 bz2lib)
|
||||
$(use_with expat)
|
||||
$(use_with !expat xml2)
|
||||
$(use_with iconv)
|
||||
$(use_with lz4)
|
||||
$(use_with lzma)
|
||||
$(use_with lzo lzo2)
|
||||
$(use_with nettle)
|
||||
$(use_with zlib)
|
||||
$(use_with zstd)
|
||||
|
||||
# Windows-specific
|
||||
--without-cng
|
||||
)
|
||||
if multilib_is_native_abi ; then
|
||||
myconf+=(
|
||||
--enable-bsdcat=$(tc-is-static-only && echo static || echo shared)
|
||||
--enable-bsdcpio=$(tc-is-static-only && echo static || echo shared)
|
||||
--enable-bsdtar=$(tc-is-static-only && echo static || echo shared)
|
||||
)
|
||||
else
|
||||
myconf+=(
|
||||
--disable-bsdcat
|
||||
--disable-bsdcpio
|
||||
--disable-bsdtar
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if multilib_is_native_abi ; then
|
||||
emake
|
||||
else
|
||||
emake libarchive.la
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# Replace the default src_test so that it builds tests in parallel
|
||||
multilib_is_native_abi && emake check
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi ; then
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
# Create symlinks for FreeBSD
|
||||
if ! use prefix && [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Exclude cat for the time being #589876
|
||||
for bin in cpio tar; do
|
||||
dosym bsd${bin} /usr/bin/${bin}
|
||||
echo '.so bsd${bin}.1' > "${T}"/${bin}.1
|
||||
doman "${T}"/${bin}.1
|
||||
done
|
||||
fi
|
||||
else
|
||||
local install_targets=(
|
||||
install-includeHEADERS
|
||||
install-libLTLIBRARIES
|
||||
install-pkgconfigDATA
|
||||
)
|
||||
emake DESTDIR="${D}" "${install_targets[@]}"
|
||||
fi
|
||||
|
||||
# Libs.private: should be used from libarchive.pc instead
|
||||
find "${ED}" -type f -name "*.la" -delete || die
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
cd "${S}" || die
|
||||
einstalldocs
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
DIST XADMaster-1.10.6.tar.gz 2064628 BLAKE2B 34203e5280a8e450db616849a953eb9f5147c8fe2922fabdcfce8585fd4bbe2c3aad76921368818e546d60d64b9c59de942cb63008edec83efa29ce4f5caae7f SHA512 f6e51943fd3ced9d0a0a2189db0a7a45d7f59e8109e78406b8c434f568fb53d791613e51437996cb1debae7d4490cdfabc9fa1fdfcc621ad97a43770af6b13e8
|
||||
DIST unar1.10.1_src.zip 2552535 BLAKE2B 678c90dae6572cf9de6f90d044de650d82293df3918eb298de27fe5a557efdda1c1da284c6829c667bb2812033627fcb1a31bf22318d277e9467ca965435f6b2 SHA512 2755f1e2dcca68912f748587f195887d785d5c30933ca0d7a7de1dd35c6c1c115571e49f462fe15722e1b34560f02503382727e1df19a1f23d4a3cc75750434e
|
||||
DIST XADMaster-1.10.7.tar.gz 2064770 BLAKE2B f6119dfb46f3d617fafb5847f41d6c0f3e5e87c8cd0763cd8e5986fae1d5b1c6e6761e9e7e4fa84125003979151b2b34d35ff47dc9be3271107cf53f1be22644 SHA512 3447b6d8f3f4fa5eea93c6628a1633017da6ff09c580d5ce4fd422027b3b79acbf38d6e41a059806d1e60eb25a9d66889938b32599168dc2c0ca648e1c1976b1
|
||||
DIST universal-detector-1.1.tar.gz 196274 BLAKE2B d84dc1f850031213d88c288341edcbb588197f23ae0d10632ed129e73e4cc2b7670c8c862bba2165fcc7421c265e4dc3e791ea188e3d2b647bd1ab9b428bb866 SHA512 e514670b3d37b2472ed3e9cb0fdc3298a8479772264b7573411f104be554222bec2e01f73e1f35db95620fe785bee2dcf9ddc9c2b1f4ff6b522fa64d14d020f5
|
||||
|
@ -1,54 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="unpacker for various archiving formats, e.g. rar v3"
|
||||
HOMEPAGE="https://unarchiver.c3.cx/"
|
||||
SRC_URI="https://unarchiver.c3.cx/downloads/${PN}${PV}_src.zip"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
dev-libs/icu:=
|
||||
gnustep-base/gnustep-base
|
||||
sys-libs/zlib:=
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
app-arch/unzip
|
||||
>=gnustep-base/gnustep-make-2.6.0[native-exceptions]
|
||||
sys-devel/gcc[objc]
|
||||
"
|
||||
|
||||
S="${WORKDIR}/The Unarchiver/XADMaster"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
# avoid jobserver warning, upstream bug:
|
||||
# https://bitbucket.org/WAHa_06x36/theunarchiver/issues/918/dont-call-make-from-makefile
|
||||
sed -i -e 's:make:$(MAKE):g' Makefile.linux || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake -f Makefile.linux \
|
||||
AR="$(tc-getAR)" \
|
||||
CC="$(tc-getCC)" \
|
||||
CXX="$(tc-getCXX)" \
|
||||
OBJCC="$(tc-getCC)" \
|
||||
CFLAGS="${CFLAGS}" \
|
||||
CXXFLAGS="${CXXFLAGS}" \
|
||||
OBJCFLAGS="${CFLAGS}" \
|
||||
LD="$(tc-getCXX)" \
|
||||
LDFLAGS="-Wl,--whole-archive -fexceptions -fgnu-runtime ${LDFLAGS}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin {ls,un}ar
|
||||
doman ../Extra/{ls,un}ar.1
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit bash-completion-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="Unpacker for various archiving formats, e.g. rar v3"
|
||||
HOMEPAGE="https://unarchiver.c3.cx/"
|
||||
SRC_URI="
|
||||
https://github.com/MacPaw/XADMaster/archive/v${PV}/XADMaster-${PV}.tar.gz
|
||||
https://github.com/MacPaw/universal-detector/archive/1.1/universal-detector-1.1.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
BDEPEND="
|
||||
sys-devel/gcc[objc]
|
||||
"
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
dev-libs/icu:=
|
||||
gnustep-base/gnustep-base
|
||||
media-sound/wavpack
|
||||
sys-libs/zlib
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
${BDEPEND}
|
||||
gnustep-base/gnustep-make[native-exceptions]
|
||||
"
|
||||
|
||||
S="${WORKDIR}/XADMaster-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
# avoid jobserver warning "make[1]: warning: jobserver unavailable: using -j1"
|
||||
sed -i -e 's:make:$(MAKE):g' Makefile.linux || die
|
||||
mv "${WORKDIR}/universal-detector-1.1" "${WORKDIR}/UniversalDetector" || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake -f Makefile.linux \
|
||||
AR="$(tc-getAR)" \
|
||||
CC="$(tc-getCC)" \
|
||||
CXX="$(tc-getCXX)" \
|
||||
OBJCC="$(tc-getCC)" \
|
||||
CFLAGS="${CFLAGS}" \
|
||||
CXXFLAGS="${CXXFLAGS}" \
|
||||
OBJCFLAGS="${CFLAGS}" \
|
||||
LD="$(tc-getCXX)" \
|
||||
LDFLAGS="-Wl,--whole-archive -fexceptions -fgnu-runtime ${LDFLAGS}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin {ls,un}ar
|
||||
doman Extra/{ls,un}ar.1
|
||||
dobashcomp Extra/{ls,un}ar.bash_completion
|
||||
}
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST borgbackup-1.1.10.tar.gz 3610011 BLAKE2B 9c13d89a0441b5403019ed24b2f36fd55f4d133219b68802b79c76f5086324f4a249124a89c67049fecbadb78d5dae64b007ed6c53a579c115ce248db3e83054 SHA512 9315335208f10427e3105e10819817d15fd05171479252903bd51eaacb016bc3ff792d505b9203ce0b9b41ec350472bdb9a23b0128e7fe156aaa47c1608451c0
|
||||
DIST borgbackup-1.1.11.tar.gz 3718055 BLAKE2B ea03d538bd7936cc12705f73c3f8e63dc28167f1930e84bdd04fc13bcc34c2b9f35e7e6ed945ba20b647dbdefe12c66c04645414c7efc974e53a312e3dff6991 SHA512 cf629f31d38d27ce6350670ff27b4937f2f30eddf9e0cd9209cd9d57a4ffa653f5a291ea1e1c79614dd2c08bcf5c50bc3e4e0f222e0d3cd1bbfb2d756b4a4573
|
||||
|
@ -0,0 +1,52 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6,7} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/${PN}/borg.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Deduplicating backup program with compression and authenticated encryption"
|
||||
HOMEPAGE="https://borgbackup.readthedocs.io/"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
IUSE="libressl"
|
||||
|
||||
# Unfortunately we have a file conflict with app-office/borg, bug #580402
|
||||
RDEPEND="
|
||||
!!app-office/borg
|
||||
app-arch/lz4
|
||||
virtual/acl
|
||||
dev-python/llfuse[${PYTHON_USEDEP}]
|
||||
~dev-python/msgpack-0.5.6[${PYTHON_USEDEP}]
|
||||
dev-python/pyzmq[${PYTHON_USEDEP}]
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
dev-python/setuptools_scm[${PYTHON_USEDEP}]
|
||||
dev-python/cython[${PYTHON_USEDEP}]
|
||||
${RDEPEND}
|
||||
"
|
||||
|
||||
python_prepare_all() {
|
||||
rm -rf src/borg/algorithms/msgpack
|
||||
eapply "${FILESDIR}"/${P}-unbundle-msgpack.patch
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
src_install() {
|
||||
distutils-r1_src_install
|
||||
doman docs/man/*
|
||||
}
|
@ -0,0 +1,110 @@
|
||||
diff -Naur borgbackup-1.1.11.orig/setup.cfg borgbackup-1.1.11/setup.cfg
|
||||
--- borgbackup-1.1.11.orig/setup.cfg 2020-03-07 18:44:15.000000000 -0500
|
||||
+++ borgbackup-1.1.11/setup.cfg 2020-03-11 10:28:25.168481822 -0400
|
||||
@@ -6,7 +6,7 @@
|
||||
F401,F405,F811,
|
||||
W504
|
||||
max-line-length = 255
|
||||
-exclude = build,dist,.git,.idea,.cache,.tox,docs/conf.py,src/borg/algorithms/msgpack
|
||||
+exclude = build,dist,.git,.idea,.cache,.tox,docs/conf.py
|
||||
|
||||
[egg_info]
|
||||
tag_build =
|
||||
diff -Naur borgbackup-1.1.11.orig/setup.py borgbackup-1.1.11/setup.py
|
||||
--- borgbackup-1.1.11.orig/setup.py 2020-03-07 18:32:06.000000000 -0500
|
||||
+++ borgbackup-1.1.11/setup.py 2020-03-11 10:28:15.568759338 -0400
|
||||
@@ -25,8 +25,6 @@
|
||||
# True: use the shared libb2 from the system, False: use the bundled blake2 code
|
||||
prefer_system_libb2 = True
|
||||
|
||||
-# prefer_system_msgpack is another option, but you need to set it in src/borg/helpers.py.
|
||||
-
|
||||
min_python = (3, 4)
|
||||
my_python = sys.version_info
|
||||
|
||||
@@ -79,8 +77,6 @@
|
||||
platform_syncfilerange_source = 'src/borg/platform/syncfilerange.pyx'
|
||||
platform_darwin_source = 'src/borg/platform/darwin.pyx'
|
||||
platform_freebsd_source = 'src/borg/platform/freebsd.pyx'
|
||||
-msgpack_packer_source = 'src/borg/algorithms/msgpack/_packer.pyx'
|
||||
-msgpack_unpacker_source = 'src/borg/algorithms/msgpack/_unpacker.pyx'
|
||||
|
||||
cython_c_sources = [
|
||||
# these .pyx will get compiled to .c
|
||||
@@ -98,12 +94,6 @@
|
||||
platform_darwin_source,
|
||||
]
|
||||
|
||||
-cython_cpp_sources = [
|
||||
- # these .pyx will get compiled to .cpp
|
||||
- msgpack_packer_source,
|
||||
- msgpack_unpacker_source,
|
||||
-]
|
||||
-
|
||||
try:
|
||||
from Cython.Distutils import build_ext
|
||||
import Cython.Compiler.Main as cython_compiler
|
||||
@@ -133,8 +123,6 @@
|
||||
'src/borg/platform/syncfilerange.c',
|
||||
'src/borg/platform/freebsd.c',
|
||||
'src/borg/platform/darwin.c',
|
||||
- 'src/borg/algorithms/msgpack/_packer.cpp',
|
||||
- 'src/borg/algorithms/msgpack/_unpacker.cpp',
|
||||
])
|
||||
super().make_distribution()
|
||||
|
||||
@@ -155,14 +143,12 @@
|
||||
platform_freebsd_source = platform_freebsd_source.replace('.pyx', '.c')
|
||||
platform_darwin_source = platform_darwin_source.replace('.pyx', '.c')
|
||||
|
||||
- msgpack_packer_source = msgpack_packer_source.replace('.pyx', '.cpp')
|
||||
- msgpack_unpacker_source = msgpack_unpacker_source.replace('.pyx', '.cpp')
|
||||
|
||||
from distutils.command.build_ext import build_ext
|
||||
if not on_rtd and not all(os.path.exists(path) for path in [
|
||||
compress_source, crypto_ll_source, chunker_source, hashindex_source, item_source, checksums_source,
|
||||
platform_posix_source, platform_linux_source, platform_syncfilerange_source, platform_freebsd_source, platform_darwin_source,
|
||||
- msgpack_packer_source, msgpack_unpacker_source]):
|
||||
+ ]):
|
||||
raise ImportError('The GIT version of Borg needs Cython. Install Cython or use a released version.')
|
||||
|
||||
|
||||
@@ -805,26 +791,7 @@
|
||||
system_prefix=libb2_prefix, system=libb2_system,
|
||||
**crypto_ext_kwargs)
|
||||
|
||||
- msgpack_endian = '__BIG_ENDIAN__' if (sys.byteorder == 'big') else '__LITTLE_ENDIAN__'
|
||||
- msgpack_macros = [(msgpack_endian, '1')]
|
||||
- msgpack_packer_ext_kwargs = dict(
|
||||
- sources=[msgpack_packer_source],
|
||||
- include_dirs=include_dirs,
|
||||
- library_dirs=library_dirs,
|
||||
- define_macros=msgpack_macros,
|
||||
- language='c++',
|
||||
- )
|
||||
- msgpack_unpacker_ext_kwargs = dict(
|
||||
- sources=[msgpack_unpacker_source],
|
||||
- include_dirs=include_dirs,
|
||||
- library_dirs=library_dirs,
|
||||
- define_macros=msgpack_macros,
|
||||
- language='c++',
|
||||
- )
|
||||
-
|
||||
ext_modules += [
|
||||
- Extension('borg.algorithms.msgpack._packer', **msgpack_packer_ext_kwargs),
|
||||
- Extension('borg.algorithms.msgpack._unpacker', **msgpack_unpacker_ext_kwargs),
|
||||
Extension('borg.compress', **compress_ext_kwargs),
|
||||
Extension('borg.crypto.low_level', **crypto_ext_kwargs),
|
||||
Extension('borg.hashindex', [hashindex_source]),
|
||||
diff -Naur borgbackup-1.1.11.orig/src/borg/helpers.py borgbackup-1.1.11/src/borg/helpers.py
|
||||
--- borgbackup-1.1.11.orig/src/borg/helpers.py 2020-03-07 18:32:06.000000000 -0500
|
||||
+++ borgbackup-1.1.11/src/borg/helpers.py 2020-03-11 10:28:42.519980213 -0400
|
||||
@@ -55,7 +55,7 @@
|
||||
# any feedback related to issues caused by this will be ignored.
|
||||
# - especially, it is known that msgpack 0.6.x does NOT work for borg 1.1.x.
|
||||
|
||||
-prefer_system_msgpack = False
|
||||
+prefer_system_msgpack = True
|
||||
|
||||
try:
|
||||
if prefer_system_msgpack:
|
@ -0,0 +1,50 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
PYTHON_COMPAT=( python2_7 python3_6 python3_7 )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Secure backup system using gnupg to encrypt data"
|
||||
HOMEPAGE="http://www.nongnu.org/duplicity/"
|
||||
SRC_URI="https://code.launchpad.net/${PN}/$(ver_cut 1-2)-series/$(ver_cut 1-3)/+download/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
|
||||
IUSE="s3 test"
|
||||
|
||||
CDEPEND="
|
||||
net-libs/librsync
|
||||
app-crypt/gnupg
|
||||
dev-python/fasteners[${PYTHON_USEDEP}]
|
||||
"
|
||||
DEPEND="${CDEPEND}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
app-arch/par2cmdline
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
dev-python/pexpect[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
RDEPEND="${CDEPEND}
|
||||
dev-python/paramiko[${PYTHON_USEDEP}]
|
||||
dev-python/future[${PYTHON_USEDEP}]
|
||||
s3? ( dev-python/boto[${PYTHON_USEDEP}] )
|
||||
"
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-fix-docs.patch"
|
||||
)
|
||||
|
||||
python_test() {
|
||||
esetup.py test
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "Duplicity has many optional dependencies to support various backends."
|
||||
elog "Currently it's up to you to install them as necessary."
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST diskimage-builder-2.33.0.tar.gz 434041 BLAKE2B 16d14c68e7a54b785426516ecced4adb53b4e84f36d36846732ef7c4823644375373249ceacd1371e39262ebc9050f2f86184718dc3fb17b44eaa20f561410c0 SHA512 125bdcc0a2d4249918485115c49482746e4f86cb7883d3689afd4288a0d18ca97bcb669b811034ccb159879520172ca37bd9f9d7ba4ea509f788be0f3cf2259b
|
||||
DIST diskimage-builder-2.34.0.tar.gz 436267 BLAKE2B b234385fedb48ec32c7fb8b684bd5531e04e342b237cc2090bd69742774a58868a1021767fb281a06cff1507d7d0c109ecb26caea61d0075ddf1a0fff9b1b48b SHA512 ddad45d57fc59c64a07276492354a7ea6d6aea76e300f1fce202208159a285c51dfc851f6630287b19c9f5685315cdcab1125e37cea90a92c361ea38e82a5a33
|
||||
|
@ -0,0 +1,39 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{6,7} )
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Golden Disk Image builder."
|
||||
HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/"
|
||||
if [[ ${PV} == 9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git"
|
||||
else
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE=""
|
||||
|
||||
CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
|
||||
!~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
|
||||
DEPEND="${CDEPEND}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]"
|
||||
RDEPEND="${CDEPEND}
|
||||
>=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
|
||||
!~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/networkx-1.10[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
|
||||
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
|
||||
app-emulation/qemu
|
||||
sys-block/parted
|
||||
sys-fs/multipath-tools
|
||||
sys-fs/dosfstools
|
||||
sys-apps/gptfdisk
|
||||
!dev-python/dib-utils[${PYTHON_USEDEP}]"
|
@ -1,6 +1,6 @@
|
||||
DIST xen-4.11.3-upstream-patches-1.tar.xz 30200 BLAKE2B c63fd2d15efda1ae9aab534c13cd1826a87a5fbd2757f3d82461b1ef2dada0ee23dbb814328e3f8695e0819094d80584fc388536c927c386f02201d4d26a8287 SHA512 e48c60f724fa0f2d5e2bbea3d71590d7c3be2973c35c4b73ff0737f03207dcbfd7f9e43b43783bb739f7059778862693a50354178ae2fd53b04e5d39429e59cf
|
||||
DIST xen-4.11.3.tar.gz 25180826 BLAKE2B 56041bcef9adec754ee21032cf849745c6011224463f73b763ea186b37460f8456cb1f10614cb51ee4d2d77f03cba311f025e8999687888d15ac59cc122cd172 SHA512 2204e490e9fc357a05983a9bf4e7345e1d364fe00400ce473988dcb9ca7d4e2b921fe10f095cbbc64248130a92d22c6f0d154dcae250a57a7f915df32e3dc436
|
||||
DIST xen-4.12.2-upstream-patches-0.tar.xz 3976 BLAKE2B 4527b5699b13e1b5bed9b82b67c7a3ddfbe39dc69f63b3bb1fda81cb315c6d78a34441219b8d4ae3d95ae2bc52ef0779410b65813212fa07867061fcb2b599ac SHA512 462de147b0474ca8e051219b41b088f25eb4be3962cde399403be5fbcfd4747054f84bf8c732ba8d86c1ba1980c518b67cd8e4f342e4120dd8bf6594d185a92e
|
||||
DIST xen-4.12.2-upstream-patches-1.tar.xz 17016 BLAKE2B 5bd27f6187c13b1c4792aa81c0ca8cde0d687566e0fde322e7cb249e1c8665fca0def5a137493a04598b617c46f052cf69701257ea1b97823fd1534d94cabd8f SHA512 dab5e7a3ac1a82faff3069f07945dc0b9651f90e8e87b3c342bb98a06ac244d212dc0baf8c7f1997f285b06baca9dc57d4823bfb220ca34274bd3d6d31421b02
|
||||
DIST xen-4.12.2.tar.gz 26985135 BLAKE2B 530821011a6dd0ac0a99fb135ff5311eb8e975c3791818093b5e250eed7854d153de6d4340197f9b949c0ad2c3d7b2b7180deb42bc71748ff70ff6fad195269d SHA512 7d9e7921271830c9eadf1bb8eca1aec20d343ad7475b0dc3165ef6d681759e7cb70739f8d9f85622a23aef960988820e822267fb198b12ee3dd657ad6164069f
|
||||
DIST xen-4.13.0-upstream-patches-0.tar.xz 11156 BLAKE2B e704a3fc1a9213a79208cf60b9972f5480214c0f050fce15245e225b67a34f90ca46e77a74c286d7aef90718295ec6968c2671b72f1994a4372bc191681d38f8 SHA512 594194021d0786016e8e214d477892c1ea721e1964729a15ab6928c3cb14b986cbc628d1522ccbf9d53fe568f680acb056d2ff2a37e64261d183589accea4983
|
||||
DIST xen-4.13.0-upstream-patches-1.tar.xz 26000 BLAKE2B 0ab884f4b64f318c256d1959fde34da85e85a1d6974f00001125e29838f3f7d9b06ff767dff437635648eed1449976ff88250cbe141e9175d4430135e8923667 SHA512 f37514bf7ad92f8d8be798129c446fe9ec0d409e904f6b4971f07dd8b899dd20f40424a72106d7c50da83fed1f7097c575fbdeee06e18f9f4255bf6b2a71f08a
|
||||
DIST xen-4.13.0.tar.gz 39005191 BLAKE2B cd85bfe549e20447afb8ec6b2ab33ea1893f45392c08737730d7898706748ebb96b2e842b2ff3e4af8c5d8a705e6d25a2bfb8acf0d7cc771805d0cc97757a949 SHA512 5b2ded9a2fe3f7ddf40eed1fa9858baead06233a01eb6099cc45b3c78b6c3823acfe7b731910733e87125dfa49d08c53f74c215fb1b320a92b44b87a0a105225
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST todo-2.10.tar.gz 56509 BLAKE2B ec89d12506b5025bab8d05bab1122d48ef2e9edb811c4091c1ff96b4b18c2ced54026d3d908a565278804c15c6fbde8aef3ae5a0cb23d4b12bb36133fce5bb2c SHA512 b14d9d13948836d971f72b941770e8e2c59d171d35f074205900619c5c3efd7ca0a482887046c1865890afb6595fe27c69677c54ea5824163d291e16fa5329d3
|
||||
DIST todo-2.11.0.tar.gz 712455 BLAKE2B f9d0fa53712a49c2f6ee94c02a62c16b8184734f7bb0c9354db9d640e2f619c75e3b3468065cb51204c7872f1f155bda51b9e3387f62f0f478f80f6a99f199b4 SHA512 5500ed1aa10eceaaa3e5116605eed4f4228337fdc0f2ceaa5b889753a60576918c0953adbfbf80c40008d6dfdf854e8a538103bfed4d1015aa1c5a9876c2e47c
|
||||
|
@ -0,0 +1,15 @@
|
||||
diff --git a/todo_completion b/todo_completion
|
||||
index 644be6e..964383e 100755
|
||||
--- a/todo_completion
|
||||
+++ b/todo_completion
|
||||
@@ -85,6 +85,10 @@ _todo()
|
||||
}
|
||||
complete -F _todo todo.sh
|
||||
|
||||
+# Gentoo bug 614400
|
||||
+complete -F _todo todocli
|
||||
+complete -F _todo todotxt
|
||||
+
|
||||
# If you define an alias (e.g. "t") to todo.sh, you need to explicitly enable
|
||||
# completion for it, too:
|
||||
#complete -F _todo t
|
@ -0,0 +1,68 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit bash-completion-r1
|
||||
|
||||
DESCRIPTION="A CLI-based TODO list manager"
|
||||
HOMEPAGE="http://todotxt.org"
|
||||
SRC_URI="https://github.com/todotxt/${PN}.txt-cli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="app-shells/bash"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${P}-fix-bash-completion.patch" )
|
||||
|
||||
DOCS=( README.md CONTRIBUTING.md LICENSE todo.cfg )
|
||||
|
||||
S="${WORKDIR}/${PN}.txt-cli-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# fix version string
|
||||
sed -i -e "s/@DEV_VERSION@/${PV}/" todo.sh || die
|
||||
|
||||
# TODO_DIR variable is bogus
|
||||
sed -i -e '/export TODO_DIR/d' todo.cfg || die
|
||||
sed -i -e '4i export TODO_DIR="$HOME/.todo"' todo.cfg || die
|
||||
}
|
||||
|
||||
src_test() {
|
||||
make test || die "tests failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin "${PN}.sh"
|
||||
dosym "${PN}.sh" "/usr/bin/${PN}cli"
|
||||
dosym "${PN}.sh" "/usr/bin/${PN}txt"
|
||||
newbashcomp "${PN}_completion" "${PN}.sh"
|
||||
bashcomp_alias "${PN}.sh" "${PN}cli" "${PN}txt"
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
einfo
|
||||
einfo 'Before starting todo, make sure to create'
|
||||
einfo 'a .todo directory in your home directory:'
|
||||
einfo ' $ mkdir -p $HOME/.todo'
|
||||
einfo
|
||||
einfo 'and make sure to copy the default todo'
|
||||
einfo 'configuration file in the same location:'
|
||||
einfo " $ bzcat /usr/share/doc/${PF}/todo.cfg.bz2 > \$HOME/.todo/config"
|
||||
einfo
|
||||
einfo 'Alternatively, you can use XDG directories instead:'
|
||||
einfo ' $ mkdir -p $HOME/.local/share/todo'
|
||||
einfo ' $ mkdir -p $HOME/.config/todo'
|
||||
einfo " $ bzcat /usr/share/doc/${PF}/todo.cfg.bz2 > \$HOME/.config/todo/config"
|
||||
einfo
|
||||
einfo 'You can then edit this file as you see fit.'
|
||||
einfo 'Enjoy!'
|
||||
einfo
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
diff --git a/ttyrec.c b/ttyrec.c
|
||||
index 3392f70..86a59ee 100644
|
||||
--- a/ttyrec.c
|
||||
+++ b/ttyrec.c
|
||||
@@ -57,7 +57,9 @@
|
||||
|
||||
#if defined(SVR4)
|
||||
#include <fcntl.h>
|
||||
+#if !(defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__linux__))
|
||||
#include <stropts.h>
|
||||
+#endif
|
||||
#endif /* SVR4 */
|
||||
|
||||
#include <sys/time.h>
|
||||
@@ -449,6 +451,7 @@ getslave()
|
||||
perror("open(fd, O_RDWR)");
|
||||
fail();
|
||||
}
|
||||
+#ifndef __linux__
|
||||
if (isastream(slave)) {
|
||||
if (ioctl(slave, I_PUSH, "ptem") < 0) {
|
||||
perror("ioctl(fd, I_PUSH, ptem)");
|
||||
@@ -466,6 +469,7 @@ getslave()
|
||||
#endif
|
||||
(void) ioctl(0, TIOCGWINSZ, (char *)&win);
|
||||
}
|
||||
+#endif
|
||||
#else /* !SVR4 */
|
||||
#ifndef HAVE_openpty
|
||||
line[strlen("/dev/")] = 't';
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,685 @@
|
||||
# Copyright 1999-2020 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-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
|
||||
elibc_Winnt? (
|
||||
dev-libs/pthreads4w
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
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"
|
||||
if [[ -d /proc/registry ]]; then # we're on Cygwin
|
||||
# crucial to Windows but cannot be restored, see
|
||||
# https://cygwin.com/ml/cygwin/2019-08/msg00072.html
|
||||
[[ -n ${SYSTEMDRIVE} ]] && RETAIN+=" SYSTEMDRIVE=$SYSTEMDRIVE"
|
||||
# COMSPEC is to native Windows what SHELL is to *nix
|
||||
[[ -n ${COMSPEC} ]] && RETAIN+=" COMSPEC=$COMSPEC"
|
||||
# some Windows programs (e.g. devenv.exe) need TMP or TEMP
|
||||
[[ -n ${TEMP} ]] && RETAIN+=" TEMP=$TEMP"
|
||||
fi
|
||||
# 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=
|
||||
CHILD_CHOST=
|
||||
|
||||
#
|
||||
# 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=}" ;;
|
||||
--chost=*) CHILD_CHOST="${arg#--chost=}" ;;
|
||||
|
||||
--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}"
|
||||
einfo " --chost=[CHOST] The CHOST to use for the new EPREFIX, required if"
|
||||
einfo " the profile does not set CHOST, or to override."
|
||||
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; }
|
||||
|
||||
if [[ -z ${CHILD_CHOST} ]]
|
||||
then
|
||||
my_lsprofile() {
|
||||
(
|
||||
cd -P "${1:-.}" || exit 1
|
||||
[[ -r ./parent ]] &&
|
||||
for p in $(<parent)
|
||||
do
|
||||
my_lsprofile "${p}" || exit 1
|
||||
done
|
||||
pwd -P
|
||||
)
|
||||
}
|
||||
|
||||
for profile in $(my_lsprofile "${CHILD_PROFILE}") missing
|
||||
do
|
||||
if [[ ${profile} == missing ]]
|
||||
then
|
||||
eerror "profile does not set CHOST, need --chost argument"
|
||||
exit 1
|
||||
fi
|
||||
[[ -s "${profile}/make.defaults" ]] || continue
|
||||
grep -q '^[ ]*CHOST@=@' "${profile}/make.defaults" && break
|
||||
done
|
||||
fi
|
||||
|
||||
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}"/var/tmp/portage
|
||||
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 "# These are sane default compiler flags, feel free to adopt them as you like."
|
||||
echo "# Extending the flags is done to respect flags probably set by some profile."
|
||||
echo "#"
|
||||
echo "CFLAGS=\"\${CFLAGS} -O2 -pipe\""
|
||||
echo "CXXFLAGS=\"${CXXFLAGS} -O2 -pipe\""
|
||||
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}\""
|
||||
echo "PORTAGE_TMPDIR=\"\${EPREFIX}/var/tmp\""
|
||||
# Since EAPI 7 there is BDEPEND, which is DEPEND in EAPI up to 6.
|
||||
# We do not want to pull DEPEND from EAPI <= 6, but RDEPEND only.
|
||||
echo "EMERGE_DEFAULT_OPTS=\"--root-deps=rdeps\""
|
||||
if [[ -n ${CHILD_CHOST} ]] ; then
|
||||
echo "CHOST=\"${CHILD_CHOST}\""
|
||||
fi
|
||||
) > "${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++
|
||||
# Inherited compiler flags from parent prefix,
|
||||
# as the child prefix may have a different compiler.
|
||||
CFLAGS="$(portageq envvar CFLAGS)"
|
||||
CXXFLAGS="$(portageq envvar CXXFLAGS)"
|
||||
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
|
||||
|
||||
# get eventual dependencies, add to world
|
||||
emerge --verbose --update --deep \
|
||||
app-portage/prefix-toolkit
|
||||
|
||||
# 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=()
|
||||
linkopts=()
|
||||
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
|
||||
if [[ ${chost} == *"-winnt"* ]]; then
|
||||
# We depend on dev-libs/pthreads4w, no?
|
||||
case ${opt} in
|
||||
-pthread | -lpthread)
|
||||
case " ${linkopts[*]} " in
|
||||
*" -lpthread "*) ;;
|
||||
*) linkopts=( "${linkopts[@]}" "-lpthread" ) ;;
|
||||
esac
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
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[@]}" "${linkopts[@]}" ;;
|
||||
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
|
@ -0,0 +1,692 @@
|
||||
# Copyright 1999-2020 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-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
|
||||
elibc_Winnt? (
|
||||
dev-libs/pthreads4w
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
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 $?
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use prefix-stack || return 0
|
||||
[[ -x ${EROOT}/usr/bin/gcc-config ]] || return 0
|
||||
"${EROOT}"/usr/bin/gcc-config ${CHOST}-${P}
|
||||
}
|
||||
|
||||
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"
|
||||
if [[ -d /proc/registry ]]; then # we're on Cygwin
|
||||
# crucial to Windows but cannot be restored, see
|
||||
# https://cygwin.com/ml/cygwin/2019-08/msg00072.html
|
||||
[[ -n ${SYSTEMDRIVE} ]] && RETAIN+=" SYSTEMDRIVE=$SYSTEMDRIVE"
|
||||
# COMSPEC is to native Windows what SHELL is to *nix
|
||||
[[ -n ${COMSPEC} ]] && RETAIN+=" COMSPEC=$COMSPEC"
|
||||
# some Windows programs (e.g. devenv.exe) need TMP or TEMP
|
||||
[[ -n ${TEMP} ]] && RETAIN+=" TEMP=$TEMP"
|
||||
fi
|
||||
# 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"
|
||||
AT_SYS_M4DIR@=@"@GENTOO_PORTAGE_EPREFIX@/usr/share/aclocal"
|
||||
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=
|
||||
CHILD_CHOST=
|
||||
|
||||
#
|
||||
# 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=}" ;;
|
||||
--chost=*) CHILD_CHOST="${arg#--chost=}" ;;
|
||||
|
||||
--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}"
|
||||
einfo " --chost=[CHOST] The CHOST to use for the new EPREFIX, required if"
|
||||
einfo " the profile does not set CHOST, or to override."
|
||||
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; }
|
||||
|
||||
if [[ -z ${CHILD_CHOST} ]]
|
||||
then
|
||||
my_lsprofile() {
|
||||
(
|
||||
cd -P "${1:-.}" || exit 1
|
||||
[[ -r ./parent ]] &&
|
||||
for p in $(<parent)
|
||||
do
|
||||
my_lsprofile "${p}" || exit 1
|
||||
done
|
||||
pwd -P
|
||||
)
|
||||
}
|
||||
|
||||
for profile in $(my_lsprofile "${CHILD_PROFILE}") missing
|
||||
do
|
||||
if [[ ${profile} == missing ]]
|
||||
then
|
||||
eerror "profile does not set CHOST, need --chost argument"
|
||||
exit 1
|
||||
fi
|
||||
[[ -s "${profile}/make.defaults" ]] || continue
|
||||
grep -q '^[ ]*CHOST@=@' "${profile}/make.defaults" && break
|
||||
done
|
||||
fi
|
||||
|
||||
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}"/var/tmp/portage
|
||||
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 "# These are sane default compiler flags, feel free to adopt them as you like."
|
||||
echo "# Extending the flags is done to respect flags probably set by some profile."
|
||||
echo "#"
|
||||
echo "CFLAGS=\"\${CFLAGS} -O2 -pipe\""
|
||||
echo "CXXFLAGS=\"${CXXFLAGS} -O2 -pipe\""
|
||||
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}\""
|
||||
echo "PORTAGE_TMPDIR=\"\${EPREFIX}/var/tmp\""
|
||||
# Since EAPI 7 there is BDEPEND, which is DEPEND in EAPI up to 6.
|
||||
# We do not want to pull DEPEND from EAPI <= 6, but RDEPEND only.
|
||||
echo "EMERGE_DEFAULT_OPTS=\"--root-deps=rdeps\""
|
||||
if [[ -n ${CHILD_CHOST} ]] ; then
|
||||
echo "CHOST=\"${CHILD_CHOST}\""
|
||||
fi
|
||||
) > "${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++
|
||||
# Inherited compiler flags from parent prefix,
|
||||
# as the child prefix may have a different compiler.
|
||||
CFLAGS="$(portageq envvar CFLAGS)"
|
||||
CXXFLAGS="$(portageq envvar CXXFLAGS)"
|
||||
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
|
||||
|
||||
# get eventual dependencies, add to world
|
||||
emerge --verbose --update --deep \
|
||||
app-portage/prefix-toolkit
|
||||
|
||||
# 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=()
|
||||
linkopts=()
|
||||
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
|
||||
if [[ ${chost} == *"-winnt"* ]]; then
|
||||
# We depend on dev-libs/pthreads4w, no?
|
||||
case ${opt} in
|
||||
-pthread | -lpthread)
|
||||
case " ${linkopts[*]} " in
|
||||
*" -lpthread "*) ;;
|
||||
*) linkopts=( "${linkopts[@]}" "-lpthread" ) ;;
|
||||
esac
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
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[@]}" "${linkopts[@]}" ;;
|
||||
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
|
@ -0,0 +1,693 @@
|
||||
# Copyright 1999-2020 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-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
|
||||
elibc_Winnt? (
|
||||
dev-libs/pthreads4w
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
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
|
||||
keepdir /usr/share/aclocal
|
||||
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 $?
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use prefix-stack || return 0
|
||||
[[ -x ${EROOT}/usr/bin/gcc-config ]] || return 0
|
||||
"${EROOT}"/usr/bin/gcc-config ${CHOST}-${P}
|
||||
}
|
||||
|
||||
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"
|
||||
if [[ -d /proc/registry ]]; then # we're on Cygwin
|
||||
# crucial to Windows but cannot be restored, see
|
||||
# https://cygwin.com/ml/cygwin/2019-08/msg00072.html
|
||||
[[ -n ${SYSTEMDRIVE} ]] && RETAIN+=" SYSTEMDRIVE=$SYSTEMDRIVE"
|
||||
# COMSPEC is to native Windows what SHELL is to *nix
|
||||
[[ -n ${COMSPEC} ]] && RETAIN+=" COMSPEC=$COMSPEC"
|
||||
# some Windows programs (e.g. devenv.exe) need TMP or TEMP
|
||||
[[ -n ${TEMP} ]] && RETAIN+=" TEMP=$TEMP"
|
||||
fi
|
||||
# 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"
|
||||
AT_SYS_M4DIR@=@"@GENTOO_PORTAGE_EPREFIX@/usr/share/aclocal"
|
||||
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=
|
||||
CHILD_CHOST=
|
||||
|
||||
#
|
||||
# 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=}" ;;
|
||||
--chost=*) CHILD_CHOST="${arg#--chost=}" ;;
|
||||
|
||||
--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}"
|
||||
einfo " --chost=[CHOST] The CHOST to use for the new EPREFIX, required if"
|
||||
einfo " the profile does not set CHOST, or to override."
|
||||
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; }
|
||||
|
||||
if [[ -z ${CHILD_CHOST} ]]
|
||||
then
|
||||
my_lsprofile() {
|
||||
(
|
||||
cd -P "${1:-.}" || exit 1
|
||||
[[ -r ./parent ]] &&
|
||||
for p in $(<parent)
|
||||
do
|
||||
my_lsprofile "${p}" || exit 1
|
||||
done
|
||||
pwd -P
|
||||
)
|
||||
}
|
||||
|
||||
for profile in $(my_lsprofile "${CHILD_PROFILE}") missing
|
||||
do
|
||||
if [[ ${profile} == missing ]]
|
||||
then
|
||||
eerror "profile does not set CHOST, need --chost argument"
|
||||
exit 1
|
||||
fi
|
||||
[[ -s "${profile}/make.defaults" ]] || continue
|
||||
grep -q '^[ ]*CHOST@=@' "${profile}/make.defaults" && break
|
||||
done
|
||||
fi
|
||||
|
||||
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}"/var/tmp/portage
|
||||
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 "# These are sane default compiler flags, feel free to adopt them as you like."
|
||||
echo "# Extending the flags is done to respect flags probably set by some profile."
|
||||
echo "#"
|
||||
echo "CFLAGS=\"\${CFLAGS} -O2 -pipe\""
|
||||
echo "CXXFLAGS=\"${CXXFLAGS} -O2 -pipe\""
|
||||
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}\""
|
||||
echo "PORTAGE_TMPDIR=\"\${EPREFIX}/var/tmp\""
|
||||
# Since EAPI 7 there is BDEPEND, which is DEPEND in EAPI up to 6.
|
||||
# We do not want to pull DEPEND from EAPI <= 6, but RDEPEND only.
|
||||
echo "EMERGE_DEFAULT_OPTS=\"--root-deps=rdeps\""
|
||||
if [[ -n ${CHILD_CHOST} ]] ; then
|
||||
echo "CHOST=\"${CHILD_CHOST}\""
|
||||
fi
|
||||
) > "${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++
|
||||
# Inherited compiler flags from parent prefix,
|
||||
# as the child prefix may have a different compiler.
|
||||
CFLAGS="$(portageq envvar CFLAGS)"
|
||||
CXXFLAGS="$(portageq envvar CXXFLAGS)"
|
||||
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
|
||||
|
||||
# get eventual dependencies, add to world
|
||||
emerge --verbose --update --deep \
|
||||
app-portage/prefix-toolkit
|
||||
|
||||
# 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=()
|
||||
linkopts=()
|
||||
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
|
||||
if [[ ${chost} == *"-winnt"* ]]; then
|
||||
# We depend on dev-libs/pthreads4w, no?
|
||||
case ${opt} in
|
||||
-pthread | -lpthread)
|
||||
case " ${linkopts[*]} " in
|
||||
*" -lpthread "*) ;;
|
||||
*) linkopts=( "${linkopts[@]}" "-lpthread" ) ;;
|
||||
esac
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
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[@]}" "${linkopts[@]}" ;;
|
||||
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 +1,2 @@
|
||||
DIST hstr-2.0.tar.gz 1242802 BLAKE2B 24f1a870e6aa12b6544a38601c6bc654e01aa1a185c4f7735559aa3220ed8d9fb840e298526b9e4a177000f2ec5c08caee5da97e13783e4114bde5276ee1e85e SHA512 50d5e8e61aa853dab0093f4225d3329e98bc59609d8d59abf832cd4cb616d78a2fa091d1ad8d16f3543276c4ead95a419f33a13a96f423bf93dc648da32740b7
|
||||
DIST hstr-2.1.tar.gz 1244067 BLAKE2B aa37f26a5ba8ee465a03212cc80e55b9581e59cbb535f17fda8e59bed062f0b0065d456d8566927c089595b92270b83235f0bf73f26ac88704bd933c1926cd5b SHA512 ea217ac2b6dcb7e283f83d15524b47f88c5c8cfb82e5728537750a2ec8526f03304503a5bb67970d893e10057aba087aa86a67548aa361c892b6ee3e81903122
|
||||
|
@ -0,0 +1,81 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1676ec8..73c8be5 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -47,39 +47,33 @@ then
|
||||
fi
|
||||
|
||||
# PKG_CHECK_MODULES macro is NOT used to avoid confusing syntax errors in case that pkg-config is NOT installed
|
||||
-AC_CHECK_LIB(ncursesw, killwchar, [],
|
||||
-[
|
||||
- AC_CHECK_LIB(ncurses, killwchar, [],
|
||||
- [
|
||||
- AC_SUBST([NCURSESW_CFLAGS])
|
||||
- AC_SUBST([NCURSESW_LIBS])
|
||||
- if pkg-config --exists ncursesw
|
||||
- then
|
||||
- AC_MSG_NOTICE([Module ncursesw found])
|
||||
- NCURSESW_CFLAGS=`pkg-config --cflags ncursesw`
|
||||
- NCURSESW_LIBS=`pkg-config --libs ncursesw`
|
||||
- else
|
||||
- if pkg-config --exists ncurses
|
||||
- then
|
||||
- AC_MSG_NOTICE([Module ncurses found])
|
||||
- NCURSESW_CFLAGS=`pkg-config --cflags ncursesw`
|
||||
- NCURSESW_LIBS=`pkg-config --libs ncurses`
|
||||
- else
|
||||
- AS_CASE([$host_os],
|
||||
- [darwin*],
|
||||
- [
|
||||
- AC_CHECK_LIB(ncurses, killwchar, [], [AC_MSG_ERROR([Could not find ncurses library])])
|
||||
- AC_CHECK_HEADER(curses.h)
|
||||
- ],
|
||||
- [
|
||||
- AC_CHECK_LIB(ncursesw, killwchar, [], [AC_MSG_ERROR([Could not find ncursesw library])])
|
||||
- AC_CHECK_HEADER(ncursesw/curses.h)
|
||||
- ]
|
||||
- )
|
||||
- fi
|
||||
- fi
|
||||
- ]) # FAIL of ncurses
|
||||
-]) # FAIL of ncursesw
|
||||
+AC_SUBST([NCURSESW_CFLAGS])
|
||||
+AC_SUBST([NCURSESW_LIBS])
|
||||
+if pkg-config --exists ncursesw
|
||||
+then
|
||||
+ AC_MSG_NOTICE([Module ncursesw found])
|
||||
+ NCURSESW_CFLAGS=`pkg-config --cflags ncursesw`
|
||||
+ NCURSESW_LIBS=`pkg-config --libs ncursesw`
|
||||
+else
|
||||
+ if pkg-config --exists ncurses
|
||||
+ then
|
||||
+ AC_MSG_NOTICE([Module ncurses found])
|
||||
+ NCURSESW_CFLAGS=`pkg-config --cflags ncursesw`
|
||||
+ NCURSESW_LIBS=`pkg-config --libs ncurses`
|
||||
+ else
|
||||
+ AS_CASE([$host_os],
|
||||
+ [darwin*],
|
||||
+ [
|
||||
+ AC_CHECK_LIB(ncurses, killwchar, [], [AC_MSG_ERROR([Could not find ncurses library])])
|
||||
+ AC_CHECK_HEADER(curses.h)
|
||||
+ ],
|
||||
+ [
|
||||
+ AC_CHECK_LIB(ncursesw, killwchar, [], [AC_MSG_ERROR([Could not find ncursesw library])])
|
||||
+ AC_CHECK_HEADER(ncursesw/curses.h)
|
||||
+ ]
|
||||
+ )
|
||||
+ fi
|
||||
+fi
|
||||
|
||||
|
||||
# Checks for libraries.
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 7640d21..17a82b7 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -37,4 +37,4 @@ hstr_SOURCES = \
|
||||
install-exec-hook:
|
||||
ln $(DESTDIR)$(bindir)/hstr$(EXEEXT) $(DESTDIR)$(bindir)/hh$(EXEEXT)
|
||||
|
||||
-hstr_LDADD = $(NCURSES_LIBS)
|
||||
+hstr_LDADD = $(NCURSESW_LIBS)
|
@ -0,0 +1,33 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit autotools
|
||||
|
||||
DESCRIPTION="Shell history suggest box"
|
||||
HOMEPAGE="https://github.com/dvorka/hstr http://www.mindforger.com"
|
||||
SRC_URI="https://github.com/dvorka/hstr/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="Apache-2.0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND="
|
||||
sys-libs/ncurses:0=[unicode]"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
virtual/pkgconfig"
|
||||
|
||||
DOCS=( CONFIGURATION.md README.md )
|
||||
|
||||
PATCHES=( ${FILESDIR}/${P}-fix-ncurses-configure.patch )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
sed \
|
||||
-e 's:-O2::g' \
|
||||
-i src/Makefile.am || die
|
||||
eautoreconf
|
||||
}
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue