parent
0fa0d98efc
commit
e90fe506d2
Binary file not shown.
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
|
||||||
<pkgmetadata>
|
|
||||||
<maintainer type="project">
|
|
||||||
<email>ros@gentoo.org</email>
|
|
||||||
<name>Gentoo ROS Project</name>
|
|
||||||
</maintainer>
|
|
||||||
</pkgmetadata>
|
|
@ -1,10 +0,0 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
inherit acct-group
|
|
||||||
|
|
||||||
DESCRIPTION="A group for dev-ros/roslaunch"
|
|
||||||
|
|
||||||
ACCT_GROUP_ID="130"
|
|
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
|
||||||
<pkgmetadata>
|
|
||||||
<maintainer type="project">
|
|
||||||
<email>ros@gentoo.org</email>
|
|
||||||
<name>Gentoo ROS Project</name>
|
|
||||||
</maintainer>
|
|
||||||
</pkgmetadata>
|
|
@ -1,14 +0,0 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
inherit acct-user
|
|
||||||
|
|
||||||
DESCRIPTION="A user for dev-ros/roslaunch"
|
|
||||||
|
|
||||||
ACCT_USER_GROUPS=( "ros" )
|
|
||||||
ACCT_USER_HOME="/home/ros"
|
|
||||||
ACCT_USER_ID="130"
|
|
||||||
|
|
||||||
acct-user_add_deps
|
|
Binary file not shown.
@ -0,0 +1,223 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{9..11} )
|
||||||
|
FINDLIB_USE="ocaml"
|
||||||
|
JAVA_PKG_WANT_SOURCE="1.8"
|
||||||
|
JAVA_PKG_WANT_TARGET="1.8"
|
||||||
|
|
||||||
|
inherit findlib toolchain-funcs java-pkg-opt-2 autotools python-r1 tmpfiles
|
||||||
|
|
||||||
|
DESCRIPTION="Daemon that provides access to the Linux/Unix console for a blind person"
|
||||||
|
HOMEPAGE="https://brltty.app/"
|
||||||
|
SRC_URI="https://brltty.app/archive/${P}.tar.xz"
|
||||||
|
|
||||||
|
LICENSE="GPL-2 LGPL-2.1"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||||
|
IUSE="+api +beeper bluetooth doc +fm gpm iconv icu
|
||||||
|
java louis +midi ncurses nls ocaml +pcm policykit python
|
||||||
|
usb systemd +speech tcl xml X"
|
||||||
|
REQUIRED_USE="doc? ( api )
|
||||||
|
java? ( api )
|
||||||
|
ocaml? ( api )
|
||||||
|
python? ( api ${PYTHON_REQUIRED_USE} )
|
||||||
|
tcl? ( api )"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
acct-group/brltty
|
||||||
|
acct-user/brltty
|
||||||
|
dev-libs/libpcre2[pcre32]
|
||||||
|
bluetooth? (
|
||||||
|
sys-apps/dbus
|
||||||
|
net-wireless/bluez
|
||||||
|
)
|
||||||
|
gpm? ( >=sys-libs/gpm-1.20 )
|
||||||
|
iconv? ( virtual/libiconv )
|
||||||
|
icu? ( dev-libs/icu:= )
|
||||||
|
louis? ( dev-libs/liblouis:= )
|
||||||
|
midi? ( media-libs/alsa-lib )
|
||||||
|
ncurses? ( sys-libs/ncurses:0= )
|
||||||
|
pcm? ( media-libs/alsa-lib )
|
||||||
|
policykit? ( sys-auth/polkit )
|
||||||
|
python? ( ${PYTHON_DEPS} )
|
||||||
|
speech? (
|
||||||
|
app-accessibility/espeak-ng
|
||||||
|
app-accessibility/flite
|
||||||
|
app-accessibility/speech-dispatcher
|
||||||
|
)
|
||||||
|
systemd? ( sys-apps/systemd )
|
||||||
|
tcl? ( >=dev-lang/tcl-8.6.13-r1:= )
|
||||||
|
usb? ( virtual/libusb:1 )
|
||||||
|
xml? ( dev-libs/expat )
|
||||||
|
X? (
|
||||||
|
app-accessibility/at-spi2-core:2
|
||||||
|
sys-apps/dbus
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXaw
|
||||||
|
x11-libs/libXfixes
|
||||||
|
x11-libs/libXt
|
||||||
|
x11-libs/libXtst
|
||||||
|
)"
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
java? ( >=virtual/jre-1.8:* )
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
virtual/pkgconfig
|
||||||
|
java? ( >=virtual/jdk-1.8:* )
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
python? ( >=dev-python/cython-0.16[${PYTHON_USEDEP}] )
|
||||||
|
"
|
||||||
|
|
||||||
|
HTML_DOCS=( "${S}"/Documents/Manual-BrlAPI/. )
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-6.4-respect-AR.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
java-pkg-opt-2_src_prepare
|
||||||
|
|
||||||
|
# We run eautoconf instead of using eautoreconf because brltty uses
|
||||||
|
# a custom build system that uses autoconf without the rest of the
|
||||||
|
# autotools.
|
||||||
|
eautoconf
|
||||||
|
use python && python_copy_sources
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
tc-export AR LD PKG_CONFIG
|
||||||
|
|
||||||
|
export JAVAC=""
|
||||||
|
export JAVA_JNI_FLAGS=""
|
||||||
|
if use java; then
|
||||||
|
export JAVA_HOME="$(java-config -g JAVA_HOME)"
|
||||||
|
export JAVAC_HOME="${JAVA_HOME}/bin"
|
||||||
|
export JAVA_JNI_FLAGS="$(java-pkg_get-jni-cflags)"
|
||||||
|
export JAVAC="$(java-pkg_get-javac) -encoding UTF-8 $(java-pkg_javac-args)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Override bindir for backward compatibility.
|
||||||
|
# Also override localstatedir so that the lib/brltty directory is installed
|
||||||
|
# correctly.
|
||||||
|
# Disable stripping since we do that ourselves.
|
||||||
|
local myconf=(
|
||||||
|
--bindir="${EPREFIX}"/bin
|
||||||
|
--htmldir="${EPREFIX}"/usr/share/doc/"${P}"/html
|
||||||
|
--localstatedir="${EPREFIX}"/var
|
||||||
|
--runstatedir="${EPREFIX}"/run
|
||||||
|
# the next two lines should be removed once support is added.
|
||||||
|
--disable-emacs-bindings
|
||||||
|
--disable-lua-bindings
|
||||||
|
--disable-stripping
|
||||||
|
--with-updatable-directory="${EPREFIX}"/var/lib/brltty
|
||||||
|
--with-writable-directory="${EPREFIX}"/run/brltty
|
||||||
|
--with-privilege-parameters=lx:user=brltty
|
||||||
|
$(use_enable api)
|
||||||
|
$(use_with beeper beep-package)
|
||||||
|
# $(use_enable emacs emacs-bindings)
|
||||||
|
$(use_with fm fm-package)
|
||||||
|
$(use_enable gpm)
|
||||||
|
$(use_enable iconv)
|
||||||
|
$(use_enable icu)
|
||||||
|
$(use_enable java java-bindings)
|
||||||
|
$(use_enable louis liblouis)
|
||||||
|
# $(use_enable lua lua-bindings)
|
||||||
|
$(use_with midi midi-package)
|
||||||
|
$(use_enable nls i18n)
|
||||||
|
$(use_enable ocaml ocaml-bindings)
|
||||||
|
$(use_with pcm pcm-package)
|
||||||
|
$(use_enable policykit polkit)
|
||||||
|
$(use_enable python python-bindings)
|
||||||
|
$(use_enable speech speech-support)
|
||||||
|
$(use_with systemd service-package)
|
||||||
|
$(use_enable tcl tcl-bindings)
|
||||||
|
$(use_enable xml expat)
|
||||||
|
$(use_enable X x)
|
||||||
|
$(use_with bluetooth bluetooth-package)
|
||||||
|
$(use_with ncurses curses)
|
||||||
|
$(use_with usb usb-package)
|
||||||
|
)
|
||||||
|
# disable espeak since we use espeak-ng
|
||||||
|
use speech && myconf+=( --with-speech-driver=-es )
|
||||||
|
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
|
||||||
|
if use python; then
|
||||||
|
python_configure() {
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
python_foreach_impl run_in_build_dir python_configure
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake -j1 JAVA_JNI_FLAGS="${JAVA_JNI_FLAGS}" JAVAC="${JAVAC}"
|
||||||
|
|
||||||
|
if use python; then
|
||||||
|
python_build() {
|
||||||
|
cd "Bindings/Python" || die
|
||||||
|
emake -j1
|
||||||
|
}
|
||||||
|
python_foreach_impl run_in_build_dir python_build
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
if use ocaml; then
|
||||||
|
findlib_src_preinst
|
||||||
|
fi
|
||||||
|
|
||||||
|
emake -j1 INSTALL_ROOT="${D}" OCAML_LDCONF= install
|
||||||
|
|
||||||
|
if use python; then
|
||||||
|
python_install() {
|
||||||
|
cd "Bindings/Python" || die
|
||||||
|
emake -j1 INSTALL_ROOT="${D}" install
|
||||||
|
}
|
||||||
|
python_foreach_impl run_in_build_dir python_install
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use java; then
|
||||||
|
java-pkg_doso Bindings/Java/libbrlapi_java.so
|
||||||
|
java-pkg_dojar Bindings/Java/brlapi.jar
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /etc
|
||||||
|
doins Documents/brltty.conf
|
||||||
|
newinitd "${FILESDIR}"/brltty.initd brltty
|
||||||
|
pushd Autostart/Systemd 1> /dev/null || die
|
||||||
|
emake -j1 INSTALL_ROOT="${ED}" install
|
||||||
|
popd || die
|
||||||
|
pushd Autostart/Udev 1> /dev/null || die
|
||||||
|
emake -j1 INSTALL_ROOT="${ED}" install
|
||||||
|
popd || die
|
||||||
|
|
||||||
|
dodoc Documents/{CONTRIBUTORS,ChangeLog,HISTORY,README*,TODO}
|
||||||
|
if use doc; then
|
||||||
|
HTML_DOCS="doc/Manual-BRLTTY" einstalldocs
|
||||||
|
fi
|
||||||
|
|
||||||
|
keepdir /var/lib/BrlAPI
|
||||||
|
rm -fr "${ED}/run" || die
|
||||||
|
find "${ED}" -name '*.a' -delete || die
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
tmpfiles_process ${PN}.conf
|
||||||
|
|
||||||
|
elog "please be sure ${EROOT}/etc/brltty.conf is correct for your system."
|
||||||
|
elog
|
||||||
|
elog "To make brltty start on boot on an OpenRC system, type this command:"
|
||||||
|
elog "# rc-update add brltty boot"
|
||||||
|
elog
|
||||||
|
elog "If you are using systemd, type this command:"
|
||||||
|
elog "# systemctl daemon-reload"
|
||||||
|
elog
|
||||||
|
elog "Please reload udev by typing:"
|
||||||
|
elog "# udevadm control --reload"
|
||||||
|
}
|
Binary file not shown.
@ -1 +1,2 @@
|
|||||||
DIST httpd-2.4.54.tar.bz2 7434530 BLAKE2B be2ba2d33368f9dd619e36e63dd3635fbcf55773a539ac2840251bda04311f3eb535c08a37ab58d8b184c71e75b90b92e2bdc4e59c722cfb146de516f6e1ed04 SHA512 228493b2ff32c4142c6e484d304f2ea12e467498605fe12adce2b61388d8efe7b2e96ae2fd0abd1dc88a5f12d625e007d8da0ae5628cff2a5272806754f41e18
|
DIST httpd-2.4.54.tar.bz2 7434530 BLAKE2B be2ba2d33368f9dd619e36e63dd3635fbcf55773a539ac2840251bda04311f3eb535c08a37ab58d8b184c71e75b90b92e2bdc4e59c722cfb146de516f6e1ed04 SHA512 228493b2ff32c4142c6e484d304f2ea12e467498605fe12adce2b61388d8efe7b2e96ae2fd0abd1dc88a5f12d625e007d8da0ae5628cff2a5272806754f41e18
|
||||||
|
DIST httpd-2.4.55.tar.bz2 7456187 BLAKE2B 98e9ec41aa3ccbbe533672ba6de8421e1f0cb5a4b4a06d0cf26c676945bcd5ebe66a1fd21d941ad8ff2c9183565ce542a5643730bbee5972934008652924945b SHA512 94982f7a1fedac8961fc17b5a22cf763ac28cb27ee6facab2e6a15b249b927773667493fd3f7354fb13fcb34a6f1afc1bdd5cf4b7be030cba1dfb523e40d43fb
|
||||||
|
@ -1,109 +0,0 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
inherit autotools toolchain-funcs
|
|
||||||
|
|
||||||
DESCRIPTION="Useful Apache tools - htdigest, htpasswd, ab, htdbm"
|
|
||||||
HOMEPAGE="https://httpd.apache.org/"
|
|
||||||
SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2"
|
|
||||||
|
|
||||||
LICENSE="Apache-2.0"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc64-solaris ~x64-solaris"
|
|
||||||
IUSE="ssl"
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
RDEPEND=">=dev-libs/apr-1.5.0:1=
|
|
||||||
dev-libs/apr-util:1=
|
|
||||||
dev-libs/expat
|
|
||||||
dev-libs/libpcre
|
|
||||||
virtual/libcrypt:=
|
|
||||||
kernel_linux? ( sys-apps/util-linux )
|
|
||||||
ssl? ( dev-libs/openssl:0= )"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
sys-devel/libtool"
|
|
||||||
BDEPEND="
|
|
||||||
virtual/pkgconfig
|
|
||||||
"
|
|
||||||
|
|
||||||
S="${WORKDIR}/httpd-${PV}"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/${PN}-2.4.54-Makefile.patch" #459446
|
|
||||||
"${FILESDIR}/${PN}-2.4.54-no-which.patch" #844868
|
|
||||||
"${FILESDIR}/${PN}-2.4.54-libtool.patch" #858833
|
|
||||||
)
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
|
|
||||||
# This package really should upgrade to using pcre's .pc file.
|
|
||||||
cat <<-\EOF >"${T}"/pcre-config
|
|
||||||
#!/bin/bash
|
|
||||||
flags=()
|
|
||||||
for flag; do
|
|
||||||
if [[ ${flag} == "--version" ]]; then
|
|
||||||
flags+=( --modversion )
|
|
||||||
else
|
|
||||||
flags+=( "${flag}" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
exec ${PKG_CONFIG} libpcre "${flags[@]}"
|
|
||||||
EOF
|
|
||||||
chmod a+x "${T}"/pcre-config || die
|
|
||||||
|
|
||||||
# Only here for libtool and which patches
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
# Brain dead check.
|
|
||||||
tc-is-cross-compiler && export ap_cv_void_ptr_lt_long="no"
|
|
||||||
|
|
||||||
tc-export PKG_CONFIG
|
|
||||||
|
|
||||||
local myeconfargs=(
|
|
||||||
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/apache2/modules
|
|
||||||
--sbindir="${EPREFIX}"/usr/sbin
|
|
||||||
--with-z="${EPREFIX}"/usr
|
|
||||||
--with-apr="${ESYSROOT}"/usr
|
|
||||||
--with-apr-util="${ESYSROOT}"/usr
|
|
||||||
--with-pcre="${T}"/pcre-config
|
|
||||||
$(use_enable ssl)
|
|
||||||
$(usex ssl '--with-ssl="${EPREFIX}"/usr' '')
|
|
||||||
)
|
|
||||||
# econf overwrites the stuff from config.layout.
|
|
||||||
ac_cv_path_PKGCONFIG="${PKG_CONFIG}" \
|
|
||||||
econf "${myeconfargs[@]}"
|
|
||||||
sed -i \
|
|
||||||
-e '/^LTFLAGS/s:--silent::' \
|
|
||||||
build/rules.mk build/config_vars.mk || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
emake -C support
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake -C support DESTDIR="${D}" install
|
|
||||||
dodoc CHANGES
|
|
||||||
doman docs/man/{dbmmanage,htdigest,htpasswd,htdbm,ab,logresolve}.1 \
|
|
||||||
docs/man/{htcacheclean,rotatelogs}.8
|
|
||||||
|
|
||||||
# Providing compatiblity symlinks for #177697 (which we'll stop to install
|
|
||||||
# at some point).
|
|
||||||
pushd "${ED}"/usr/sbin >/dev/null || die
|
|
||||||
local i
|
|
||||||
for i in *; do
|
|
||||||
dosym ${i} /usr/sbin/${i}2
|
|
||||||
done
|
|
||||||
popd >/dev/null || die
|
|
||||||
|
|
||||||
# Provide a symlink for ab-ssl
|
|
||||||
if use ssl ; then
|
|
||||||
dosym ab /usr/bin/ab-ssl
|
|
||||||
dosym ab /usr/bin/ab2-ssl
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,104 +0,0 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
inherit toolchain-funcs
|
|
||||||
|
|
||||||
DESCRIPTION="Useful Apache tools - htdigest, htpasswd, ab, htdbm"
|
|
||||||
HOMEPAGE="https://httpd.apache.org/"
|
|
||||||
SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2"
|
|
||||||
|
|
||||||
LICENSE="Apache-2.0"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc64-solaris ~x64-solaris"
|
|
||||||
IUSE="ssl"
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
RDEPEND=">=dev-libs/apr-1.5.0:1=
|
|
||||||
dev-libs/apr-util:1=
|
|
||||||
dev-libs/expat
|
|
||||||
dev-libs/libpcre
|
|
||||||
virtual/libcrypt:=
|
|
||||||
kernel_linux? ( sys-apps/util-linux )
|
|
||||||
ssl? ( dev-libs/openssl:0= )"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
sys-devel/libtool"
|
|
||||||
BDEPEND="
|
|
||||||
sys-apps/which
|
|
||||||
virtual/pkgconfig
|
|
||||||
"
|
|
||||||
|
|
||||||
S="${WORKDIR}/httpd-${PV}"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/${PN}-2.4.7-Makefile.patch" #459446
|
|
||||||
)
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
|
|
||||||
# This package really should upgrade to using pcre's .pc file.
|
|
||||||
cat <<-\EOF >"${T}"/pcre-config
|
|
||||||
#!/bin/bash
|
|
||||||
flags=()
|
|
||||||
for flag; do
|
|
||||||
if [[ ${flag} == "--version" ]]; then
|
|
||||||
flags+=( --modversion )
|
|
||||||
else
|
|
||||||
flags+=( "${flag}" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
exec ${PKG_CONFIG} libpcre "${flags[@]}"
|
|
||||||
EOF
|
|
||||||
chmod a+x "${T}"/pcre-config || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
# Brain dead check.
|
|
||||||
tc-is-cross-compiler && export ap_cv_void_ptr_lt_long="no"
|
|
||||||
|
|
||||||
tc-export PKG_CONFIG
|
|
||||||
|
|
||||||
local myeconfargs=(
|
|
||||||
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/apache2/modules
|
|
||||||
--sbindir="${EPREFIX}"/usr/sbin
|
|
||||||
--with-z="${EPREFIX}"/usr
|
|
||||||
--with-apr="${ESYSROOT}"/usr
|
|
||||||
--with-apr-util="${ESYSROOT}"/usr
|
|
||||||
--with-pcre="${T}"/pcre-config
|
|
||||||
$(use_enable ssl)
|
|
||||||
$(usex ssl '--with-ssl="${EPREFIX}"/usr' '')
|
|
||||||
)
|
|
||||||
# econf overwrites the stuff from config.layout.
|
|
||||||
ac_cv_path_PKGCONFIG="${PKG_CONFIG}" \
|
|
||||||
econf "${myeconfargs[@]}"
|
|
||||||
sed -i \
|
|
||||||
-e '/^LTFLAGS/s:--silent::' \
|
|
||||||
build/rules.mk build/config_vars.mk || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
emake -C support
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake -C support DESTDIR="${D}" install
|
|
||||||
dodoc CHANGES
|
|
||||||
doman docs/man/{dbmmanage,htdigest,htpasswd,htdbm,ab,logresolve}.1 \
|
|
||||||
docs/man/{htcacheclean,rotatelogs}.8
|
|
||||||
|
|
||||||
# Providing compatiblity symlinks for #177697 (which we'll stop to install
|
|
||||||
# at some point).
|
|
||||||
pushd "${ED}"/usr/sbin >/dev/null || die
|
|
||||||
local i
|
|
||||||
for i in *; do
|
|
||||||
dosym ${i} /usr/sbin/${i}2
|
|
||||||
done
|
|
||||||
popd >/dev/null || die
|
|
||||||
|
|
||||||
# Provide a symlink for ab-ssl
|
|
||||||
if use ssl ; then
|
|
||||||
dosym ab /usr/bin/ab-ssl
|
|
||||||
dosym ab /usr/bin/ab2-ssl
|
|
||||||
fi
|
|
||||||
}
|
|
@ -0,0 +1,113 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Useful Apache tools - htdigest, htpasswd, ab, htdbm"
|
||||||
|
HOMEPAGE="https://httpd.apache.org/"
|
||||||
|
SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc64-solaris ~x64-solaris"
|
||||||
|
IUSE="ssl"
|
||||||
|
RESTRICT="test"
|
||||||
|
|
||||||
|
RDEPEND=">=dev-libs/apr-1.5.0:1=
|
||||||
|
dev-libs/apr-util:1=
|
||||||
|
dev-libs/expat
|
||||||
|
dev-libs/libpcre2
|
||||||
|
virtual/libcrypt:=
|
||||||
|
kernel_linux? ( sys-apps/util-linux )
|
||||||
|
ssl? ( dev-libs/openssl:0= )"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
sys-devel/libtool"
|
||||||
|
BDEPEND="
|
||||||
|
virtual/pkgconfig
|
||||||
|
"
|
||||||
|
|
||||||
|
S="${WORKDIR}/httpd-${PV}"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-2.4.54-Makefile.patch" #459446
|
||||||
|
"${FILESDIR}/${PN}-2.4.54-no-which.patch" #844868
|
||||||
|
"${FILESDIR}/${PN}-2.4.54-libtool.patch" #858833
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# This package really should upgrade to using pcre's .pc file.
|
||||||
|
cat <<-\EOF > "${T}"/pcre2-config
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
flags=()
|
||||||
|
for flag; do
|
||||||
|
if [[ ${flag} == "--version" ]]; then
|
||||||
|
flags+=( --modversion )
|
||||||
|
else
|
||||||
|
flags+=( "${flag}" )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exec ${PKG_CONFIG} libpcre2-8 "${flags[@]}"
|
||||||
|
EOF
|
||||||
|
chmod a+x "${T}"/pcre2-config || die
|
||||||
|
|
||||||
|
# Only here for libtool and which patches
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Silly check.
|
||||||
|
tc-is-cross-compiler && export ap_cv_void_ptr_lt_long="no"
|
||||||
|
|
||||||
|
tc-export PKG_CONFIG
|
||||||
|
export ac_cv_path_PKGCONFIG="${PKG_CONFIG}"
|
||||||
|
export ac_cv_prog_ac_ct_PCRE_CONFIG="${T}"/pcre2-config
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/apache2/modules
|
||||||
|
--sbindir="${EPREFIX}"/usr/sbin
|
||||||
|
--with-z="${EPREFIX}"/usr
|
||||||
|
--with-apr="${ESYSROOT}"/usr
|
||||||
|
--with-apr-util="${ESYSROOT}"/usr
|
||||||
|
--without-pcre
|
||||||
|
--with-pcre2="${T}"/pcre2-config
|
||||||
|
$(use_enable ssl)
|
||||||
|
$(usex ssl '--with-ssl="${EPREFIX}"/usr' '')
|
||||||
|
)
|
||||||
|
|
||||||
|
# econf overwrites the stuff from config.layout.
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
sed -i \
|
||||||
|
-e '/^LTFLAGS/s:--silent::' \
|
||||||
|
build/rules.mk build/config_vars.mk || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake -C support
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
emake -C support DESTDIR="${D}" install
|
||||||
|
dodoc CHANGES
|
||||||
|
doman docs/man/{dbmmanage,htdigest,htpasswd,htdbm,ab,logresolve}.1 \
|
||||||
|
docs/man/{htcacheclean,rotatelogs}.8
|
||||||
|
|
||||||
|
# Providing compatiblity symlinks for #177697 (which we'll stop to install
|
||||||
|
# at some point).
|
||||||
|
pushd "${ED}"/usr/sbin >/dev/null || die
|
||||||
|
local i
|
||||||
|
for i in *; do
|
||||||
|
dosym ${i} /usr/sbin/${i}2
|
||||||
|
done
|
||||||
|
popd >/dev/null || die
|
||||||
|
|
||||||
|
# Provide a symlink for ab-ssl
|
||||||
|
if use ssl ; then
|
||||||
|
dosym ab /usr/bin/ab-ssl
|
||||||
|
dosym ab /usr/bin/ab2-ssl
|
||||||
|
fi
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
|
inherit bash-completion-r1 distutils-r1 multiprocessing
|
||||||
|
|
||||||
|
MY_P=aws-cli-${PV}
|
||||||
|
DESCRIPTION="Universal Command Line Environment for AWS"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://github.com/aws/aws-cli/
|
||||||
|
https://pypi.org/project/awscli/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
|
||||||
|
-> ${MY_P}.gh.tar.gz
|
||||||
|
"
|
||||||
|
S=${WORKDIR}/${MY_P}
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||||
|
|
||||||
|
# botocore is x.(y+2).z
|
||||||
|
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||||
|
dev-python/colorama[${PYTHON_USEDEP}]
|
||||||
|
dev-python/docutils[${PYTHON_USEDEP}]
|
||||||
|
dev-python/rsa[${PYTHON_USEDEP}]
|
||||||
|
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||||
|
!app-admin/awscli-bin
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
test? (
|
||||||
|
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# do not rely on bundled deps in botocore (sic!)
|
||||||
|
find -name '*.py' -exec sed -i \
|
||||||
|
-e 's:from botocore[.]vendored import:import:' \
|
||||||
|
-e 's:from botocore[.]vendored[.]:from :' \
|
||||||
|
{} + || die
|
||||||
|
# strip overzealous upper bounds on requirements
|
||||||
|
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
|
||||||
|
distutils-r1_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
python_test() {
|
||||||
|
local EPYTEST_DESELECT=(
|
||||||
|
# TODO
|
||||||
|
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
|
||||||
|
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
|
||||||
|
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
|
||||||
|
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
|
||||||
|
)
|
||||||
|
|
||||||
|
# integration tests require AWS credentials and Internet access
|
||||||
|
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
|
||||||
|
}
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
newbashcomp bin/aws_bash_completer aws
|
||||||
|
|
||||||
|
insinto /usr/share/zsh/site-functions
|
||||||
|
newins bin/aws_zsh_completer.sh _aws
|
||||||
|
|
||||||
|
distutils-r1_python_install_all
|
||||||
|
|
||||||
|
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
|
inherit bash-completion-r1 distutils-r1 multiprocessing
|
||||||
|
|
||||||
|
MY_P=aws-cli-${PV}
|
||||||
|
DESCRIPTION="Universal Command Line Environment for AWS"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://github.com/aws/aws-cli/
|
||||||
|
https://pypi.org/project/awscli/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
|
||||||
|
-> ${MY_P}.gh.tar.gz
|
||||||
|
"
|
||||||
|
S=${WORKDIR}/${MY_P}
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||||
|
|
||||||
|
# botocore is x.(y+2).z
|
||||||
|
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||||
|
dev-python/colorama[${PYTHON_USEDEP}]
|
||||||
|
dev-python/docutils[${PYTHON_USEDEP}]
|
||||||
|
dev-python/rsa[${PYTHON_USEDEP}]
|
||||||
|
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||||
|
!app-admin/awscli-bin
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
test? (
|
||||||
|
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# do not rely on bundled deps in botocore (sic!)
|
||||||
|
find -name '*.py' -exec sed -i \
|
||||||
|
-e 's:from botocore[.]vendored import:import:' \
|
||||||
|
-e 's:from botocore[.]vendored[.]:from :' \
|
||||||
|
{} + || die
|
||||||
|
# strip overzealous upper bounds on requirements
|
||||||
|
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
|
||||||
|
distutils-r1_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
python_test() {
|
||||||
|
local EPYTEST_DESELECT=(
|
||||||
|
# TODO
|
||||||
|
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
|
||||||
|
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
|
||||||
|
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
|
||||||
|
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
|
||||||
|
)
|
||||||
|
|
||||||
|
# integration tests require AWS credentials and Internet access
|
||||||
|
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
|
||||||
|
}
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
newbashcomp bin/aws_bash_completer aws
|
||||||
|
|
||||||
|
insinto /usr/share/zsh/site-functions
|
||||||
|
newins bin/aws_zsh_completer.sh _aws
|
||||||
|
|
||||||
|
distutils-r1_python_install_all
|
||||||
|
|
||||||
|
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||||
|
}
|
@ -1,2 +1 @@
|
|||||||
DIST hcloud-1.30.3.tar.xz 1690980 BLAKE2B 115a6769d5bd5e6a10d812502506f9921a7659a262eea7088c88205e9fc748a570c1c9830e5061923f1be18a64d96104e6e930c9edc3316645e5d86450fbf69c SHA512 64bc692b8d098149815ba63aec8346a7f4f2ff7461fac3369343595a733a5c727b41ec8341e4eee1a98804b14bfc5a94ff9fc0621abb798d381d9bc802818b77
|
|
||||||
DIST hcloud-1.31.1.tar.xz 1735560 BLAKE2B 66b2deaefbf61a72bf6a9e004c29d1198e5cfd40956e9936d5db27903aff5f8151c230da61b33ce4231885613d53ba5c96f99fb10df03fdcc241ec32fa465de5 SHA512 b61683ea54455be1db0ae196615642d0247e56ca51f3848847fba09124a45606aea2495f4408694acc5e819d9dc79ffdb2b9ce4e85aade7dea0335be94461066
|
DIST hcloud-1.31.1.tar.xz 1735560 BLAKE2B 66b2deaefbf61a72bf6a9e004c29d1198e5cfd40956e9936d5db27903aff5f8151c230da61b33ce4231885613d53ba5c96f99fb10df03fdcc241ec32fa465de5 SHA512 b61683ea54455be1db0ae196615642d0247e56ca51f3848847fba09124a45606aea2495f4408694acc5e819d9dc79ffdb2b9ce4e85aade7dea0335be94461066
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
DESCRIPTION="A command-line interface for Hetzner Cloud"
|
|
||||||
HOMEPAGE="https://github.com/hetznercloud/cli"
|
|
||||||
SRC_URI="https://dev.gentoo.org/~ago/distfiles/${P}.tar.xz"
|
|
||||||
|
|
||||||
LICENSE="MIT"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="amd64"
|
|
||||||
|
|
||||||
IUSE=""
|
|
||||||
DEPEND="dev-lang/go:="
|
|
||||||
RESTRICT="strip"
|
|
||||||
QA_FLAGS_IGNORED=".*"
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
go build -mod vendor -o ${PN} -ldflags "-w -X github.com/hetznercloud/cli/internal/version.Version=${PV}-gentoo" ./cmd/${PN} || die "build failed"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
# For upstream a simple test is run 'hcloud version'
|
|
||||||
./hcloud version
|
|
||||||
if [[ $? -ne 0 ]]
|
|
||||||
then
|
|
||||||
die "Test failed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
dobin ${PN}
|
|
||||||
}
|
|
@ -1,5 +1 @@
|
|||||||
DIST syslog-ng-3.34.1.tar.gz 5903489 BLAKE2B ae94dacb324f2db68fdaad6d41d1974e4506527ace432af314566b20a8d82ae91e96e3aa039d035f3baf096bb02e16143a35446ff2e3cbba1880c61c1f708688 SHA512 f4df871f780b2e55e847d3ac108d0647659cac2493180d29436f04a4b75d38b90aba8adcd38f6337dce8f69d6aba9ff33fd3d8dc0f86021a29f60a21747e9a10
|
|
||||||
DIST syslog-ng-3.35.1.tar.gz 5901321 BLAKE2B 9ee93c22358703bc95c951f6fc9207da0291b3d5a6dedf0222302ca16576f49734d31891265c8c1d218a0308a76074301babbaa39b37e1564107e2ab6adf8a92 SHA512 7a0aa149d3e01b256e0f3168ceabebcbeadb0d8bbee6838d646cb425571b26330cccbcdd3a221f7b57a4605e875f48e48cd367825623299dc43d5ba77f94c50d
|
|
||||||
DIST syslog-ng-3.36.1.tar.gz 5968598 BLAKE2B b74536e20ae2a2eac056fe278f2e7973b3c97657cd80962ee551812633045dbdeb65fe34b66448d565a6f1b9edb2f1066fc1934d3f7ffbd43b9527a73a181e58 SHA512 b74c10e708616f7f5f5d529de5c1a3ce8ac888c05aa4b0fcf390d70082e9bc3432f3752998a5a258663fd47b8e4d0c2735240a3e4eda28178579b18308ebb376
|
|
||||||
DIST syslog-ng-3.37.1.tar.gz 6033219 BLAKE2B fe3787daec137d5eb61c6bf55d6066b642e7944738ec0655fcc7ddf8d0c841a734ec423b0710f424576fa78bbecfb1121475921e6f8bf896c10470c89dbf98c8 SHA512 beebd89c54a415469dc58630ac1900d632ef351f6a13fad4a95ce7bb1760b16d6cfdcede02225a35e97ebce7dae151c6aa228f3d378463e8b873c4f71ed86ab7
|
|
||||||
DIST syslog-ng-3.38.1.tar.gz 5405048 BLAKE2B 7819cbe0caab7f580ca9f71181c84d64da838a238a6f8b8b79c8816e37e5691e72e1284de57d5066d3c681d8751950e5a32d65a1b1af4e064dd82f2c59899fe3 SHA512 3a3ef5c72d8c211ed2914791380061dcd48ea1ea95f636a1a8649dc5dee731a11e9ae000a37cbeeba624f4053b623b697e6c7f945a81153106c2365f4f09a847
|
DIST syslog-ng-3.38.1.tar.gz 5405048 BLAKE2B 7819cbe0caab7f580ca9f71181c84d64da838a238a6f8b8b79c8816e37e5691e72e1284de57d5066d3c681d8751950e5a32d65a1b1af4e064dd82f2c59899fe3 SHA512 3a3ef5c72d8c211ed2914791380061dcd48ea1ea95f636a1a8649dc5dee731a11e9ae000a37cbeeba624f4053b623b697e6c7f945a81153106c2365f4f09a847
|
||||||
|
@ -1,173 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..10} )
|
|
||||||
inherit autotools python-single-r1 systemd
|
|
||||||
|
|
||||||
MY_PV_MM=$(ver_cut 1-2)
|
|
||||||
DESCRIPTION="syslog replacement with advanced filtering features"
|
|
||||||
HOMEPAGE="https://www.syslog-ng.com/products/open-source-log-management/"
|
|
||||||
SRC_URI="https://github.com/balabit/syslog-ng/releases/download/${P}/${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2+ LGPL-2.1+"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
|
||||||
IUSE="amqp caps dbi geoip2 http ipv6 json kafka mongodb pacct python redis smtp snmp test spoof-source systemd tcpd"
|
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
test? ( python )"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=dev-libs/glib-2.10.1:2
|
|
||||||
>=dev-libs/ivykis-0.42.4
|
|
||||||
>=dev-libs/libpcre-6.1:=
|
|
||||||
!dev-libs/eventlog
|
|
||||||
amqp? ( >=net-libs/rabbitmq-c-0.8.0:=[ssl] )
|
|
||||||
caps? ( sys-libs/libcap )
|
|
||||||
dbi? ( >=dev-db/libdbi-0.9.0 )
|
|
||||||
geoip2? ( dev-libs/libmaxminddb:= )
|
|
||||||
http? ( net-misc/curl )
|
|
||||||
json? ( >=dev-libs/json-c-0.9:= )
|
|
||||||
kafka? ( >=dev-libs/librdkafka-1.0.0:= )
|
|
||||||
mongodb? ( >=dev-libs/mongo-c-driver-1.2.0 )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
redis? ( >=dev-libs/hiredis-0.11.0:= )
|
|
||||||
smtp? ( net-libs/libesmtp:= )
|
|
||||||
snmp? ( net-analyzer/net-snmp:0= )
|
|
||||||
spoof-source? ( net-libs/libnet:1.1= )
|
|
||||||
systemd? ( sys-apps/systemd:= )
|
|
||||||
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
|
|
||||||
dev-libs/openssl:0="
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( dev-libs/criterion )"
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/bison
|
|
||||||
sys-devel/flex
|
|
||||||
virtual/pkgconfig"
|
|
||||||
|
|
||||||
DOCS=( AUTHORS NEWS.md CONTRIBUTING.md contrib/syslog-ng.conf.{HP-UX,RedHat,SunOS,doc}
|
|
||||||
contrib/syslog2ng "${T}/syslog-ng.conf.gentoo.hardened"
|
|
||||||
"${T}/syslog-ng.logrotate.hardened" "${FILESDIR}/README.hardened" )
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-3.28.1-net-snmp.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local f
|
|
||||||
|
|
||||||
use python && python_fix_shebang .
|
|
||||||
|
|
||||||
# remove bundled libs
|
|
||||||
rm -r lib/ivykis || die
|
|
||||||
|
|
||||||
# drop scl modules requiring json
|
|
||||||
if use !json; then
|
|
||||||
sed -i -r '/cim|elasticsearch|ewmm|graylog2|loggly|logmatic|netskope|nodejs|osquery|slack/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# drop scl modules requiring http
|
|
||||||
if use !http; then
|
|
||||||
sed -i -r '/slack|telegram/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# use gentoo default path
|
|
||||||
if use systemd; then
|
|
||||||
sed -e 's@/etc/syslog-ng.conf@/etc/syslog-ng/syslog-ng.conf@g;s@/var/run@/run@g' \
|
|
||||||
-i contrib/systemd/syslog-ng@default || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
for f in syslog-ng.logrotate.hardened.in syslog-ng.logrotate.in; do
|
|
||||||
sed \
|
|
||||||
-e "s#@GENTOO_RESTART@#$(usex systemd "systemctl kill -s HUP syslog-ng@default" \
|
|
||||||
"/etc/init.d/syslog-ng reload")#g" \
|
|
||||||
"${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in syslog-ng.conf.gentoo.hardened.in \
|
|
||||||
syslog-ng.conf.gentoo.in; do
|
|
||||||
sed -e "s/@SYSLOGNG_VERSION@/${MY_PV_MM}/g" "${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
default
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--disable-docs
|
|
||||||
--disable-java
|
|
||||||
--disable-java-modules
|
|
||||||
--disable-riemann
|
|
||||||
--enable-manpages
|
|
||||||
--localstatedir=/var/lib/syslog-ng
|
|
||||||
--sysconfdir=/etc/syslog-ng
|
|
||||||
--with-embedded-crypto
|
|
||||||
--with-ivykis=system
|
|
||||||
--with-module-dir=/usr/$(get_libdir)/syslog-ng
|
|
||||||
--with-pidfile-dir=/var/run
|
|
||||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
|
||||||
$(use_enable amqp)
|
|
||||||
$(usex amqp --with-librabbitmq-client=system --without-librabbitmq-client)
|
|
||||||
$(use_enable caps linux-caps)
|
|
||||||
$(use_enable dbi sql)
|
|
||||||
$(use_enable geoip2)
|
|
||||||
$(use_enable http)
|
|
||||||
$(use_enable ipv6)
|
|
||||||
$(use_enable json)
|
|
||||||
$(use_enable kafka)
|
|
||||||
$(use_enable mongodb)
|
|
||||||
$(usex mongodb --with-mongoc=system "--without-mongoc --disable-legacy-mongodb-options")
|
|
||||||
$(use_enable pacct)
|
|
||||||
$(use_enable python)
|
|
||||||
$(use_enable redis)
|
|
||||||
$(use_enable smtp)
|
|
||||||
$(use_enable snmp afsnmp)
|
|
||||||
$(use_enable spoof-source)
|
|
||||||
$(use_enable systemd)
|
|
||||||
$(use_enable tcpd tcp-wrapper)
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
|
|
||||||
# Install default configuration
|
|
||||||
insinto /etc/default
|
|
||||||
doins contrib/systemd/syslog-ng@default
|
|
||||||
|
|
||||||
insinto /etc/syslog-ng
|
|
||||||
newins "${T}/syslog-ng.conf.gentoo" syslog-ng.conf
|
|
||||||
|
|
||||||
insinto /etc/logrotate.d
|
|
||||||
newins "${T}/syslog-ng.logrotate" syslog-ng
|
|
||||||
|
|
||||||
newinitd "${FILESDIR}/syslog-ng.rc" syslog-ng
|
|
||||||
newconfd "${FILESDIR}/syslog-ng.confd" syslog-ng
|
|
||||||
keepdir /etc/syslog-ng/patterndb.d /var/lib/syslog-ng
|
|
||||||
find "${D}" -name '*.la' -delete || die
|
|
||||||
|
|
||||||
use python && python_optimize
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# bug #355257
|
|
||||||
if ! has_version app-admin/logrotate ; then
|
|
||||||
elog "It is highly recommended that app-admin/logrotate be emerged to"
|
|
||||||
elog "manage the log files. ${PN} installs a file in /etc/logrotate.d"
|
|
||||||
elog "for logrotate to use."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use systemd; then
|
|
||||||
ewarn "The service file for systemd has changed to support multiple instances."
|
|
||||||
ewarn "To start the default instance issue:"
|
|
||||||
ewarn "# systemctl start syslog-ng@default"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,173 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..10} )
|
|
||||||
inherit autotools python-single-r1 systemd
|
|
||||||
|
|
||||||
MY_PV_MM=$(ver_cut 1-2)
|
|
||||||
DESCRIPTION="syslog replacement with advanced filtering features"
|
|
||||||
HOMEPAGE="https://www.syslog-ng.com/products/open-source-log-management/"
|
|
||||||
SRC_URI="https://github.com/balabit/syslog-ng/releases/download/${P}/${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2+ LGPL-2.1+"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 ~arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
|
||||||
IUSE="amqp caps dbi geoip2 http ipv6 json kafka mongodb pacct python redis smtp snmp test spoof-source systemd tcpd"
|
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
test? ( python )"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=dev-libs/glib-2.10.1:2
|
|
||||||
>=dev-libs/ivykis-0.42.4
|
|
||||||
>=dev-libs/libpcre-6.1:=
|
|
||||||
!dev-libs/eventlog
|
|
||||||
amqp? ( >=net-libs/rabbitmq-c-0.8.0:=[ssl] )
|
|
||||||
caps? ( sys-libs/libcap )
|
|
||||||
dbi? ( >=dev-db/libdbi-0.9.0 )
|
|
||||||
geoip2? ( dev-libs/libmaxminddb:= )
|
|
||||||
http? ( net-misc/curl )
|
|
||||||
json? ( >=dev-libs/json-c-0.9:= )
|
|
||||||
kafka? ( >=dev-libs/librdkafka-1.0.0:= )
|
|
||||||
mongodb? ( >=dev-libs/mongo-c-driver-1.2.0 )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
redis? ( >=dev-libs/hiredis-0.11.0:= )
|
|
||||||
smtp? ( net-libs/libesmtp:= )
|
|
||||||
snmp? ( net-analyzer/net-snmp:0= )
|
|
||||||
spoof-source? ( net-libs/libnet:1.1= )
|
|
||||||
systemd? ( sys-apps/systemd:= )
|
|
||||||
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
|
|
||||||
dev-libs/openssl:0="
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( dev-libs/criterion )"
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/bison
|
|
||||||
sys-devel/flex
|
|
||||||
virtual/pkgconfig"
|
|
||||||
|
|
||||||
DOCS=( AUTHORS NEWS.md CONTRIBUTING.md contrib/syslog-ng.conf.{HP-UX,RedHat,SunOS,doc}
|
|
||||||
contrib/syslog2ng "${T}/syslog-ng.conf.gentoo.hardened"
|
|
||||||
"${T}/syslog-ng.logrotate.hardened" "${FILESDIR}/README.hardened" )
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-3.28.1-net-snmp.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local f
|
|
||||||
|
|
||||||
use python && python_fix_shebang .
|
|
||||||
|
|
||||||
# remove bundled libs
|
|
||||||
rm -r lib/ivykis || die
|
|
||||||
|
|
||||||
# drop scl modules requiring json
|
|
||||||
if use !json; then
|
|
||||||
sed -i -r '/cim|elasticsearch|ewmm|graylog2|loggly|logmatic|netskope|nodejs|osquery|slack/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# drop scl modules requiring http
|
|
||||||
if use !http; then
|
|
||||||
sed -i -r '/slack|telegram/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# use gentoo default path
|
|
||||||
if use systemd; then
|
|
||||||
sed -e 's@/etc/syslog-ng.conf@/etc/syslog-ng/syslog-ng.conf@g;s@/var/run@/run@g' \
|
|
||||||
-i contrib/systemd/syslog-ng@default || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
for f in syslog-ng.logrotate.hardened.in syslog-ng.logrotate.in; do
|
|
||||||
sed \
|
|
||||||
-e "s#@GENTOO_RESTART@#$(usex systemd "systemctl kill -s HUP syslog-ng@default" \
|
|
||||||
"/etc/init.d/syslog-ng reload")#g" \
|
|
||||||
"${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in syslog-ng.conf.gentoo.hardened.in \
|
|
||||||
syslog-ng.conf.gentoo.in; do
|
|
||||||
sed -e "s/@SYSLOGNG_VERSION@/${MY_PV_MM}/g" "${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
default
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--disable-docs
|
|
||||||
--disable-java
|
|
||||||
--disable-java-modules
|
|
||||||
--disable-riemann
|
|
||||||
--enable-manpages
|
|
||||||
--localstatedir=/var/lib/syslog-ng
|
|
||||||
--sysconfdir=/etc/syslog-ng
|
|
||||||
--with-embedded-crypto
|
|
||||||
--with-ivykis=system
|
|
||||||
--with-module-dir=/usr/$(get_libdir)/syslog-ng
|
|
||||||
--with-pidfile-dir=/var/run
|
|
||||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
|
||||||
$(use_enable amqp)
|
|
||||||
$(usex amqp --with-librabbitmq-client=system --without-librabbitmq-client)
|
|
||||||
$(use_enable caps linux-caps)
|
|
||||||
$(use_enable dbi sql)
|
|
||||||
$(use_enable geoip2)
|
|
||||||
$(use_enable http)
|
|
||||||
$(use_enable ipv6)
|
|
||||||
$(use_enable json)
|
|
||||||
$(use_enable kafka)
|
|
||||||
$(use_enable mongodb)
|
|
||||||
$(usex mongodb --with-mongoc=system "--without-mongoc --disable-legacy-mongodb-options")
|
|
||||||
$(use_enable pacct)
|
|
||||||
$(use_enable python)
|
|
||||||
$(use_enable redis)
|
|
||||||
$(use_enable smtp)
|
|
||||||
$(use_enable snmp afsnmp)
|
|
||||||
$(use_enable spoof-source)
|
|
||||||
$(use_enable systemd)
|
|
||||||
$(use_enable tcpd tcp-wrapper)
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
|
|
||||||
# Install default configuration
|
|
||||||
insinto /etc/default
|
|
||||||
doins contrib/systemd/syslog-ng@default
|
|
||||||
|
|
||||||
insinto /etc/syslog-ng
|
|
||||||
newins "${T}/syslog-ng.conf.gentoo" syslog-ng.conf
|
|
||||||
|
|
||||||
insinto /etc/logrotate.d
|
|
||||||
newins "${T}/syslog-ng.logrotate" syslog-ng
|
|
||||||
|
|
||||||
newinitd "${FILESDIR}/syslog-ng.rc" syslog-ng
|
|
||||||
newconfd "${FILESDIR}/syslog-ng.confd" syslog-ng
|
|
||||||
keepdir /etc/syslog-ng/patterndb.d /var/lib/syslog-ng
|
|
||||||
find "${D}" -name '*.la' -delete || die
|
|
||||||
|
|
||||||
use python && python_optimize
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# bug #355257
|
|
||||||
if ! has_version app-admin/logrotate ; then
|
|
||||||
elog "It is highly recommended that app-admin/logrotate be emerged to"
|
|
||||||
elog "manage the log files. ${PN} installs a file in /etc/logrotate.d"
|
|
||||||
elog "for logrotate to use."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use systemd; then
|
|
||||||
ewarn "The service file for systemd has changed to support multiple instances."
|
|
||||||
ewarn "To start the default instance issue:"
|
|
||||||
ewarn "# systemctl start syslog-ng@default"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,173 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..10} )
|
|
||||||
inherit autotools python-single-r1 systemd
|
|
||||||
|
|
||||||
MY_PV_MM=$(ver_cut 1-2)
|
|
||||||
DESCRIPTION="syslog replacement with advanced filtering features"
|
|
||||||
HOMEPAGE="https://www.syslog-ng.com/products/open-source-log-management/"
|
|
||||||
SRC_URI="https://github.com/balabit/syslog-ng/releases/download/${P}/${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2+ LGPL-2.1+"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
|
||||||
IUSE="amqp caps dbi geoip2 http ipv6 json kafka mongodb pacct python redis smtp snmp test spoof-source systemd tcpd"
|
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
test? ( python )"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=dev-libs/glib-2.10.1:2
|
|
||||||
>=dev-libs/ivykis-0.42.4
|
|
||||||
>=dev-libs/libpcre-6.1:=
|
|
||||||
!dev-libs/eventlog
|
|
||||||
amqp? ( >=net-libs/rabbitmq-c-0.8.0:=[ssl] )
|
|
||||||
caps? ( sys-libs/libcap )
|
|
||||||
dbi? ( >=dev-db/libdbi-0.9.0 )
|
|
||||||
geoip2? ( dev-libs/libmaxminddb:= )
|
|
||||||
http? ( net-misc/curl )
|
|
||||||
json? ( >=dev-libs/json-c-0.9:= )
|
|
||||||
kafka? ( >=dev-libs/librdkafka-1.0.0:= )
|
|
||||||
mongodb? ( >=dev-libs/mongo-c-driver-1.2.0 )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
redis? ( >=dev-libs/hiredis-0.11.0:= )
|
|
||||||
smtp? ( net-libs/libesmtp:= )
|
|
||||||
snmp? ( net-analyzer/net-snmp:0= )
|
|
||||||
spoof-source? ( net-libs/libnet:1.1= )
|
|
||||||
systemd? ( sys-apps/systemd:= )
|
|
||||||
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
|
|
||||||
dev-libs/openssl:0="
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( dev-libs/criterion )"
|
|
||||||
BDEPEND="
|
|
||||||
>=sys-devel/bison-3.7.6
|
|
||||||
sys-devel/flex
|
|
||||||
virtual/pkgconfig"
|
|
||||||
|
|
||||||
DOCS=( AUTHORS NEWS.md CONTRIBUTING.md contrib/syslog-ng.conf.{HP-UX,RedHat,SunOS,doc}
|
|
||||||
contrib/syslog2ng "${T}/syslog-ng.conf.gentoo.hardened"
|
|
||||||
"${T}/syslog-ng.logrotate.hardened" "${FILESDIR}/README.hardened" )
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-3.28.1-net-snmp.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local f
|
|
||||||
|
|
||||||
use python && python_fix_shebang .
|
|
||||||
|
|
||||||
# remove bundled libs
|
|
||||||
rm -r lib/ivykis || die
|
|
||||||
|
|
||||||
# drop scl modules requiring json
|
|
||||||
if use !json; then
|
|
||||||
sed -i -r '/cim|elasticsearch|ewmm|graylog2|loggly|logmatic|netskope|nodejs|osquery|slack/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# drop scl modules requiring http
|
|
||||||
if use !http; then
|
|
||||||
sed -i -r '/slack|telegram/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# use gentoo default path
|
|
||||||
if use systemd; then
|
|
||||||
sed -e 's@/etc/syslog-ng.conf@/etc/syslog-ng/syslog-ng.conf@g;s@/var/run@/run@g' \
|
|
||||||
-i contrib/systemd/syslog-ng@default || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
for f in syslog-ng.logrotate.hardened.in syslog-ng.logrotate.in; do
|
|
||||||
sed \
|
|
||||||
-e "s#@GENTOO_RESTART@#$(usex systemd "systemctl kill -s HUP syslog-ng@default" \
|
|
||||||
"/etc/init.d/syslog-ng reload")#g" \
|
|
||||||
"${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in syslog-ng.conf.gentoo.hardened.in \
|
|
||||||
syslog-ng.conf.gentoo.in; do
|
|
||||||
sed -e "s/@SYSLOGNG_VERSION@/${MY_PV_MM}/g" "${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
default
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--disable-docs
|
|
||||||
--disable-java
|
|
||||||
--disable-java-modules
|
|
||||||
--disable-riemann
|
|
||||||
--enable-manpages
|
|
||||||
--localstatedir=/var/lib/syslog-ng
|
|
||||||
--sysconfdir=/etc/syslog-ng
|
|
||||||
--with-embedded-crypto
|
|
||||||
--with-ivykis=system
|
|
||||||
--with-module-dir=/usr/$(get_libdir)/syslog-ng
|
|
||||||
--with-pidfile-dir=/var/run
|
|
||||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
|
||||||
$(use_enable amqp)
|
|
||||||
$(usex amqp --with-librabbitmq-client=system --without-librabbitmq-client)
|
|
||||||
$(use_enable caps linux-caps)
|
|
||||||
$(use_enable dbi sql)
|
|
||||||
$(use_enable geoip2)
|
|
||||||
$(use_enable http)
|
|
||||||
$(use_enable ipv6)
|
|
||||||
$(use_enable json)
|
|
||||||
$(use_enable kafka)
|
|
||||||
$(use_enable mongodb)
|
|
||||||
$(usex mongodb --with-mongoc=system "--without-mongoc --disable-legacy-mongodb-options")
|
|
||||||
$(use_enable pacct)
|
|
||||||
$(use_enable python)
|
|
||||||
$(use_enable redis)
|
|
||||||
$(use_enable smtp)
|
|
||||||
$(use_enable snmp afsnmp)
|
|
||||||
$(use_enable spoof-source)
|
|
||||||
$(use_enable systemd)
|
|
||||||
$(use_enable tcpd tcp-wrapper)
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
|
|
||||||
# Install default configuration
|
|
||||||
insinto /etc/default
|
|
||||||
doins contrib/systemd/syslog-ng@default
|
|
||||||
|
|
||||||
insinto /etc/syslog-ng
|
|
||||||
newins "${T}/syslog-ng.conf.gentoo" syslog-ng.conf
|
|
||||||
|
|
||||||
insinto /etc/logrotate.d
|
|
||||||
newins "${T}/syslog-ng.logrotate" syslog-ng
|
|
||||||
|
|
||||||
newinitd "${FILESDIR}/syslog-ng.rc" syslog-ng
|
|
||||||
newconfd "${FILESDIR}/syslog-ng.confd" syslog-ng
|
|
||||||
keepdir /etc/syslog-ng/patterndb.d /var/lib/syslog-ng
|
|
||||||
find "${D}" -name '*.la' -delete || die
|
|
||||||
|
|
||||||
use python && python_optimize
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# bug #355257
|
|
||||||
if ! has_version app-admin/logrotate ; then
|
|
||||||
elog "It is highly recommended that app-admin/logrotate be emerged to"
|
|
||||||
elog "manage the log files. ${PN} installs a file in /etc/logrotate.d"
|
|
||||||
elog "for logrotate to use."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use systemd; then
|
|
||||||
ewarn "The service file for systemd has changed to support multiple instances."
|
|
||||||
ewarn "To start the default instance issue:"
|
|
||||||
ewarn "# systemctl start syslog-ng@default"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,173 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
inherit autotools python-single-r1 systemd
|
|
||||||
|
|
||||||
MY_PV_MM=$(ver_cut 1-2)
|
|
||||||
DESCRIPTION="syslog replacement with advanced filtering features"
|
|
||||||
HOMEPAGE="https://www.syslog-ng.com/products/open-source-log-management/"
|
|
||||||
SRC_URI="https://github.com/balabit/syslog-ng/releases/download/${P}/${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="GPL-2+ LGPL-2.1+"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
|
||||||
IUSE="amqp caps dbi geoip2 http ipv6 json kafka mongodb pacct python redis smtp snmp test spoof-source systemd tcpd"
|
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
test? ( python )"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=dev-libs/glib-2.10.1:2
|
|
||||||
>=dev-libs/ivykis-0.42.4
|
|
||||||
>=dev-libs/libpcre-6.1:=
|
|
||||||
!dev-libs/eventlog
|
|
||||||
amqp? ( >=net-libs/rabbitmq-c-0.8.0:=[ssl] )
|
|
||||||
caps? ( sys-libs/libcap )
|
|
||||||
dbi? ( >=dev-db/libdbi-0.9.0 )
|
|
||||||
geoip2? ( dev-libs/libmaxminddb:= )
|
|
||||||
http? ( net-misc/curl )
|
|
||||||
json? ( >=dev-libs/json-c-0.9:= )
|
|
||||||
kafka? ( >=dev-libs/librdkafka-1.0.0:= )
|
|
||||||
mongodb? ( >=dev-libs/mongo-c-driver-1.2.0 )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
redis? ( >=dev-libs/hiredis-0.11.0:= )
|
|
||||||
smtp? ( net-libs/libesmtp:= )
|
|
||||||
snmp? ( net-analyzer/net-snmp:0= )
|
|
||||||
spoof-source? ( net-libs/libnet:1.1= )
|
|
||||||
systemd? ( sys-apps/systemd:= )
|
|
||||||
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
|
|
||||||
dev-libs/openssl:0="
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( dev-libs/criterion )"
|
|
||||||
BDEPEND="
|
|
||||||
>=sys-devel/bison-3.7.6
|
|
||||||
sys-devel/flex
|
|
||||||
virtual/pkgconfig"
|
|
||||||
|
|
||||||
DOCS=( AUTHORS NEWS.md CONTRIBUTING.md contrib/syslog-ng.conf.{HP-UX,RedHat,SunOS,doc}
|
|
||||||
contrib/syslog2ng "${T}/syslog-ng.conf.gentoo.hardened"
|
|
||||||
"${T}/syslog-ng.logrotate.hardened" "${FILESDIR}/README.hardened" )
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-3.28.1-net-snmp.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
local f
|
|
||||||
|
|
||||||
use python && python_fix_shebang .
|
|
||||||
|
|
||||||
# remove bundled libs
|
|
||||||
rm -r lib/ivykis || die
|
|
||||||
|
|
||||||
# drop scl modules requiring json
|
|
||||||
if use !json; then
|
|
||||||
sed -i -r '/cim|elasticsearch|ewmm|graylog2|loggly|logmatic|netskope|nodejs|osquery|slack/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# drop scl modules requiring http
|
|
||||||
if use !http; then
|
|
||||||
sed -i -r '/slack|telegram/d' scl/Makefile.am || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# use gentoo default path
|
|
||||||
if use systemd; then
|
|
||||||
sed -e 's@/etc/syslog-ng.conf@/etc/syslog-ng/syslog-ng.conf@g;s@/var/run@/run@g' \
|
|
||||||
-i contrib/systemd/syslog-ng@default || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
for f in syslog-ng.logrotate.hardened.in syslog-ng.logrotate.in; do
|
|
||||||
sed \
|
|
||||||
-e "s#@GENTOO_RESTART@#$(usex systemd "systemctl kill -s HUP syslog-ng@default" \
|
|
||||||
"/etc/init.d/syslog-ng reload")#g" \
|
|
||||||
"${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in syslog-ng.conf.gentoo.hardened.in \
|
|
||||||
syslog-ng.conf.gentoo.in; do
|
|
||||||
sed -e "s/@SYSLOGNG_VERSION@/${MY_PV_MM}/g" "${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
|
|
||||||
done
|
|
||||||
|
|
||||||
default
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--disable-docs
|
|
||||||
--disable-java
|
|
||||||
--disable-java-modules
|
|
||||||
--disable-riemann
|
|
||||||
--enable-manpages
|
|
||||||
--localstatedir=/var/lib/syslog-ng
|
|
||||||
--sysconfdir=/etc/syslog-ng
|
|
||||||
--with-embedded-crypto
|
|
||||||
--with-ivykis=system
|
|
||||||
--with-module-dir=/usr/$(get_libdir)/syslog-ng
|
|
||||||
--with-pidfile-dir=/var/run
|
|
||||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
|
||||||
$(use_enable amqp)
|
|
||||||
$(usex amqp --with-librabbitmq-client=system --without-librabbitmq-client)
|
|
||||||
$(use_enable caps linux-caps)
|
|
||||||
$(use_enable dbi sql)
|
|
||||||
$(use_enable geoip2)
|
|
||||||
$(use_enable http)
|
|
||||||
$(use_enable ipv6)
|
|
||||||
$(use_enable json)
|
|
||||||
$(use_enable kafka)
|
|
||||||
$(use_enable mongodb)
|
|
||||||
$(usex mongodb --with-mongoc=system "--without-mongoc --disable-legacy-mongodb-options")
|
|
||||||
$(use_enable pacct)
|
|
||||||
$(use_enable python)
|
|
||||||
$(use_enable redis)
|
|
||||||
$(use_enable smtp)
|
|
||||||
$(use_enable snmp afsnmp)
|
|
||||||
$(use_enable spoof-source)
|
|
||||||
$(use_enable systemd)
|
|
||||||
$(use_enable tcpd tcp-wrapper)
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
|
|
||||||
# Install default configuration
|
|
||||||
insinto /etc/default
|
|
||||||
doins contrib/systemd/syslog-ng@default
|
|
||||||
|
|
||||||
insinto /etc/syslog-ng
|
|
||||||
newins "${T}/syslog-ng.conf.gentoo" syslog-ng.conf
|
|
||||||
|
|
||||||
insinto /etc/logrotate.d
|
|
||||||
newins "${T}/syslog-ng.logrotate" syslog-ng
|
|
||||||
|
|
||||||
newinitd "${FILESDIR}/syslog-ng.rc" syslog-ng
|
|
||||||
newconfd "${FILESDIR}/syslog-ng.confd" syslog-ng
|
|
||||||
keepdir /etc/syslog-ng/patterndb.d /var/lib/syslog-ng
|
|
||||||
find "${D}" -name '*.la' -delete || die
|
|
||||||
|
|
||||||
use python && python_optimize
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# bug #355257
|
|
||||||
if ! has_version app-admin/logrotate ; then
|
|
||||||
elog "It is highly recommended that app-admin/logrotate be emerged to"
|
|
||||||
elog "manage the log files. ${PN} installs a file in /etc/logrotate.d"
|
|
||||||
elog "for logrotate to use."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use systemd; then
|
|
||||||
ewarn "The service file for systemd has changed to support multiple instances."
|
|
||||||
ewarn "To start the default instance issue:"
|
|
||||||
ewarn "# systemctl start syslog-ng@default"
|
|
||||||
fi
|
|
||||||
}
|
|
Binary file not shown.
Binary file not shown.
@ -1,6 +1,3 @@
|
|||||||
DIST vim-9.0.0099.tar.gz 16712565 BLAKE2B b3277ebda0bb40601d995935422006d1a266bb862be612e69abd057a7342d13457ded5cb4743cf43a09b7d2001438f5a426ba12c30947bb7c193188c5fc13cf7 SHA512 ca0dea7b7fd78cf9c7cd4656611d066540f9d81ab17bcb75c79f0e989bdcfb769940ea29f75445c554b159e9eb3b2c4f9d77448254c3e4e4457b1bf721936498
|
|
||||||
DIST vim-9.0.0828.tar.gz 16782339 BLAKE2B 6b997c1c828338d64a8b204a1e232676ec075834b1b7e74c2fc671e315f9bf6026b0c419ebb3c31e7ce58dbca23828ca11d866b2bfcb73f8a86fb31fa0d51b00 SHA512 03f93515039a2f275a8fe6b84bbac5875ffff17768ab3201e111eba4897a2485fe4ccfe238151f393334c7a6ea77eddd8898f0b816e26dbdb884f4e6bcbd2943
|
|
||||||
DIST vim-9.0.1000.tar.gz 16842747 BLAKE2B 85edab7d13daa3e84ef0aeb50e3e9bfd31f0634d8e480c105727b0c34318e0adf7f1276dcdac53df8fc416fd8dfb70377cd74ed570752a3e77f07a083fa6c113 SHA512 9d2b914a112948d77b92c8dcafc2f711a83c3fdaf35a28f7f606e77007b9320e2260a0f6b24fc875a817c33c012f077f89730b34e9f12d6f00795c5c806704c8
|
DIST vim-9.0.1000.tar.gz 16842747 BLAKE2B 85edab7d13daa3e84ef0aeb50e3e9bfd31f0634d8e480c105727b0c34318e0adf7f1276dcdac53df8fc416fd8dfb70377cd74ed570752a3e77f07a083fa6c113 SHA512 9d2b914a112948d77b92c8dcafc2f711a83c3fdaf35a28f7f606e77007b9320e2260a0f6b24fc875a817c33c012f077f89730b34e9f12d6f00795c5c806704c8
|
||||||
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
||||||
DIST vim-patches-vim-9.0.0049-patches.tar.gz 2743 BLAKE2B dff3e215b235e1cbc2c62b1af2d1414d10b794dbee9f5e7797fb3d34e00c2e065c339d4c82bf28aed53e0b5f2f8f1ee5c7ce69851cd63360788609bf144ac922 SHA512 7d5c64d674fa77048fdca7287072c0e488723133e254c10711dbadf750416c368725327ca9b76f332017bc70aa544a9baef671765eabf0d172d39921ffd7d942
|
|
||||||
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
https://github.com/vim/vim/pull/11496
|
|
||||||
|
|
||||||
From 360b569f86b851c37e32b7cfaec079823188ff27 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Fri, 4 Nov 2022 03:18:23 +0000
|
|
||||||
Subject: [PATCH] configure.ac: Fix -Wimplicit-int
|
|
||||||
|
|
||||||
Clang 16 makes -Wimplicit-int an error by default. Fixes errors like:
|
|
||||||
```
|
|
||||||
error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Werror,-Wimplicit-int]
|
|
||||||
```
|
|
||||||
|
|
||||||
We already use proper declarations with every other test anyway, so
|
|
||||||
let's be consistent.
|
|
||||||
|
|
||||||
Signed-off-by: Sam James <sam@gentoo.org>
|
|
||||||
--- a/src/configure.ac
|
|
||||||
+++ b/src/configure.ac
|
|
||||||
@@ -3654,7 +3654,7 @@ dnl check if struct sigcontext is defined (used for SGI only)
|
|
||||||
AC_MSG_CHECKING(for struct sigcontext)
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
|
|
||||||
#include <signal.h>
|
|
||||||
-test_sig()
|
|
||||||
+int test_sig()
|
|
||||||
{
|
|
||||||
struct sigcontext *scont;
|
|
||||||
scont = (struct sigcontext *)0;
|
|
||||||
|
|
@ -1,364 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# Please bump with app-editors/vim-core and app-editors/vim
|
|
||||||
|
|
||||||
VIM_VERSION="9.0"
|
|
||||||
LUA_COMPAT=( lua5-{1..4} luajit )
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
PYTHON_REQ_USE="threads(+)"
|
|
||||||
USE_RUBY="ruby27 ruby30 ruby31"
|
|
||||||
|
|
||||||
inherit vim-doc flag-o-matic xdg-utils bash-completion-r1 prefix lua-single python-single-r1 toolchain-funcs ruby-single
|
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
|
||||||
EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-9.0.0049-patches.tar.gz"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
|
|
||||||
fi
|
|
||||||
S="${WORKDIR}"/vim-${PV}
|
|
||||||
|
|
||||||
DESCRIPTION="GUI version of the Vim text editor"
|
|
||||||
HOMEPAGE="https://vim.sourceforge.io/ https://github.com/vim/vim"
|
|
||||||
|
|
||||||
LICENSE="vim"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="acl aqua crypt cscope debug lua motif netbeans nls perl python racket ruby selinux session sound tcl"
|
|
||||||
REQUIRED_USE="
|
|
||||||
lua? ( ${LUA_REQUIRED_USE} )
|
|
||||||
python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
aqua? ( !motif )
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
~app-editors/vim-core-${PV}
|
|
||||||
>=app-eselect/eselect-vi-1.1
|
|
||||||
>=sys-libs/ncurses-5.2-r2:0=
|
|
||||||
x11-libs/libICE
|
|
||||||
x11-libs/libSM
|
|
||||||
x11-libs/libXext
|
|
||||||
x11-libs/libXt
|
|
||||||
acl? ( kernel_linux? ( sys-apps/acl ) )
|
|
||||||
!aqua? (
|
|
||||||
motif? ( >=x11-libs/motif-2.3:0 )
|
|
||||||
!motif? (
|
|
||||||
x11-libs/gtk+:3
|
|
||||||
x11-libs/libXft
|
|
||||||
)
|
|
||||||
)
|
|
||||||
crypt? ( dev-libs/libsodium:= )
|
|
||||||
cscope? ( dev-util/cscope )
|
|
||||||
lua? (
|
|
||||||
${LUA_DEPS}
|
|
||||||
$(lua_gen_impl_dep 'deprecated' lua5-1)
|
|
||||||
)
|
|
||||||
nls? ( virtual/libintl )
|
|
||||||
perl? ( dev-lang/perl:= )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
racket? ( dev-scheme/racket )
|
|
||||||
ruby? ( ${RUBY_DEPS} )
|
|
||||||
selinux? ( sys-libs/libselinux )
|
|
||||||
session? ( x11-libs/libSM )
|
|
||||||
sound? ( media-libs/libcanberra )
|
|
||||||
tcl? ( dev-lang/tcl:0= )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
# configure runs the Lua interpreter
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/autoconf
|
|
||||||
virtual/pkgconfig
|
|
||||||
lua? ( ${LUA_DEPS} )
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
"
|
|
||||||
|
|
||||||
# various failures (bugs #630042 and #682320)
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
# people with broken alphabets run into trouble. bug 82186.
|
|
||||||
unset LANG LC_ALL
|
|
||||||
export LC_COLLATE="C"
|
|
||||||
|
|
||||||
use lua && lua-single_pkg_setup
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ ${PV} != 9999* ]]; then
|
|
||||||
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
|
||||||
eapply "${WORKDIR}/vim-patches-vim-9.0.0049-patches"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup a script to use awk instead of nawk
|
|
||||||
sed -i -e \
|
|
||||||
'1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
|
||||||
"${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
|
|
||||||
|
|
||||||
# Read vimrc and gvimrc from /etc/vim
|
|
||||||
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
|
|
||||||
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
|
||||||
# Hopefully this pattern won't break for a while at least.
|
|
||||||
# This fixes bug 29398 (27 Sep 2003 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
|
||||||
"${S}"/runtime/doc/syntax.txt \
|
|
||||||
"${S}"/runtime/doc/tagsrch.txt \
|
|
||||||
"${S}"/runtime/doc/usr_29.txt \
|
|
||||||
"${S}"/runtime/menu.vim \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# Don't be fooled by /usr/include/libc.h. When found, vim thinks
|
|
||||||
# this is NeXT, but it's actually just a file in dev-libs/9libs
|
|
||||||
# This fixes bug 43885 (20 Mar 2004 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/ libc\.h / /' "${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
|
||||||
# correctly. To avoid some really entertaining error messages about stuff
|
|
||||||
# which isn't even in the source file being invalid, we'll do some trickery
|
|
||||||
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
|
||||||
find "${S}" -name '*.c' | while read c; do
|
|
||||||
echo >> "$c" || die "echo failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Try to avoid sandbox problems. Bug #114475.
|
|
||||||
if [[ -d "${S}"/src/po ]]; then
|
|
||||||
sed -i -e \
|
|
||||||
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
|
||||||
"${S}"/src/po/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
|
||||||
|
|
||||||
# Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0
|
|
||||||
sed -i -e \
|
|
||||||
"s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \
|
|
||||||
"${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed'
|
|
||||||
|
|
||||||
# Fix bug 18245: Prevent "make" from the following chain:
|
|
||||||
# (1) Notice configure.ac is newer than auto/configure
|
|
||||||
# (2) Rebuild auto/configure
|
|
||||||
# (3) Notice auto/configure is newer than auto/config.mk
|
|
||||||
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
|
||||||
sed -i -e \
|
|
||||||
's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
|
||||||
rm -v src/auto/configure || die "rm failed"
|
|
||||||
|
|
||||||
# --with-features=huge forces on cscope even if we --disable it. We need
|
|
||||||
# to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
|
|
||||||
if ! use cscope; then
|
|
||||||
sed -i -e \
|
|
||||||
'/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope"
|
|
||||||
fi
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
|
|
||||||
# Fix bug 37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug 57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
# Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for
|
|
||||||
# everyone since previous flag filtering bugs have turned out to affect
|
|
||||||
# multiple archs...
|
|
||||||
replace-flags -O3 -O2
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug 24447). The hvc
|
|
||||||
# things are for ppc64, see bug 86433.
|
|
||||||
local file
|
|
||||||
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
|
||||||
if [[ -e ${file} ]]; then
|
|
||||||
addwrite $file
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
use debug && append-flags "-DDEBUG"
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
--with-features=huge
|
|
||||||
--disable-gpm
|
|
||||||
--with-gnome=no
|
|
||||||
$(use_enable sound canberra)
|
|
||||||
$(use_enable acl)
|
|
||||||
$(use_enable crypt libsodium)
|
|
||||||
$(use_enable cscope)
|
|
||||||
$(use_enable netbeans)
|
|
||||||
$(use_enable nls)
|
|
||||||
$(use_enable perl perlinterp)
|
|
||||||
$(use_enable python python3interp)
|
|
||||||
$(use_with python python3-command "${PYTHON}")
|
|
||||||
$(use_enable racket mzschemeinterp)
|
|
||||||
$(use_enable ruby rubyinterp)
|
|
||||||
$(use_enable selinux)
|
|
||||||
$(use_enable session xsmp)
|
|
||||||
$(use_enable tcl tclinterp)
|
|
||||||
)
|
|
||||||
|
|
||||||
if use lua; then
|
|
||||||
# -DLUA_COMPAT_OPENLIB=1 is required to enable the
|
|
||||||
# deprecated (in 5.1) luaL_openlib API (#874690)
|
|
||||||
use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
|
|
||||||
|
|
||||||
myconf+=(
|
|
||||||
--enable-luainterp
|
|
||||||
$(use_with lua_single_target_luajit luajit)
|
|
||||||
--with-lua-prefix="${EPREFIX}/usr"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Default is gtk unless aqua or motif are enabled
|
|
||||||
echo ; echo
|
|
||||||
if use aqua; then
|
|
||||||
einfo "Building gvim with the Carbon GUI"
|
|
||||||
myconf+=(
|
|
||||||
--enable-darwin
|
|
||||||
--enable-gui=carbon
|
|
||||||
)
|
|
||||||
elif use motif; then
|
|
||||||
einfo "Building gvim with the MOTIF GUI"
|
|
||||||
myconf+=( --enable-gui=motif )
|
|
||||||
else
|
|
||||||
myconf+=( --enable-gtk3-check )
|
|
||||||
einfo "Building gvim with the gtk+-3 GUI"
|
|
||||||
myconf+=( --enable-gui=gtk3 )
|
|
||||||
fi
|
|
||||||
echo ; echo
|
|
||||||
|
|
||||||
# let package manager strip binaries
|
|
||||||
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
|
||||||
|
|
||||||
# keep prefix env contained within the EPREFIX
|
|
||||||
use prefix && myconf+=( --without-local-dir )
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-interix* ]]; then
|
|
||||||
# avoid finding of this function, to avoid having to patch either
|
|
||||||
# configure or the source, which would be much more hackish.
|
|
||||||
# after all vim does it right, only interix is badly broken (again)
|
|
||||||
export ac_cv_func_sigaction=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
if tc-is-cross-compiler ; then
|
|
||||||
export vim_cv_getcwd_broken=no \
|
|
||||||
vim_cv_memmove_handles_overlap=yes \
|
|
||||||
vim_cv_stat_ignores_slash=yes \
|
|
||||||
vim_cv_terminfo=yes \
|
|
||||||
vim_cv_toupper_broken=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf \
|
|
||||||
--with-modified-by=Gentoo-${PVR} \
|
|
||||||
--with-vim-name=gvim \
|
|
||||||
--with-x \
|
|
||||||
"${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
# The following allows emake to be used
|
|
||||||
emake -j1 -C src auto/osdef.h objects
|
|
||||||
|
|
||||||
emake
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
einfo
|
|
||||||
einfo "Starting vim tests. Several error messages will be shown"
|
|
||||||
einfo "while the tests run. This is normal behaviour and does not"
|
|
||||||
einfo "indicate a fault."
|
|
||||||
einfo
|
|
||||||
ewarn "If the tests fail, your terminal may be left in a strange"
|
|
||||||
ewarn "state. Usually, running 'reset' will fix this."
|
|
||||||
einfo
|
|
||||||
|
|
||||||
# Don't let vim talk to X
|
|
||||||
unset DISPLAY
|
|
||||||
|
|
||||||
# Make gvim not try to connect to X. See :help gui-x11-start in vim for how
|
|
||||||
# this evil trickery works.
|
|
||||||
ln -s "${S}"/src/gvim "${S}"/src/testvim || die
|
|
||||||
|
|
||||||
# Make sure our VIMPROG is used.
|
|
||||||
sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die
|
|
||||||
|
|
||||||
# Don't do additional GUI tests.
|
|
||||||
emake -j1 VIMPROG=../testvim -C src/testdir nongui
|
|
||||||
}
|
|
||||||
|
|
||||||
# Call eselect vi update with --if-unset
|
|
||||||
# to respect user's choice (bug 187449)
|
|
||||||
eselect_vi_update() {
|
|
||||||
ebegin "Calling eselect vi update"
|
|
||||||
eselect vi update --if-unset
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
|
||||||
|
|
||||||
dobin src/gvim
|
|
||||||
dosym gvim /usr/bin/gvimdiff
|
|
||||||
dosym gvim /usr/bin/evim
|
|
||||||
dosym gvim /usr/bin/eview
|
|
||||||
dosym gvim /usr/bin/gview
|
|
||||||
dosym gvim /usr/bin/rgvim
|
|
||||||
dosym gvim /usr/bin/rgview
|
|
||||||
|
|
||||||
emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons
|
|
||||||
|
|
||||||
dodir /usr/share/man/man1
|
|
||||||
echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed"
|
|
||||||
echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed"
|
|
||||||
echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \
|
|
||||||
die "echo failed"
|
|
||||||
|
|
||||||
insinto /etc/vim
|
|
||||||
newins "${FILESDIR}"/gvimrc-r1 gvimrc
|
|
||||||
eprefixify "${ED}"/etc/vim/gvimrc
|
|
||||||
|
|
||||||
# bash completion script, bug #79018.
|
|
||||||
newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
|
|
||||||
|
|
||||||
# don't install vim desktop file
|
|
||||||
rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update fdo mime stuff, bug #78394
|
|
||||||
xdg_desktop_database_update
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
|
|
||||||
# call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
# update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update fdo mime stuff, bug #78394
|
|
||||||
xdg_desktop_database_update
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
|
|
||||||
# call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
}
|
|
@ -1,369 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# Please bump with app-editors/vim-core and app-editors/vim
|
|
||||||
|
|
||||||
VIM_VERSION="9.0"
|
|
||||||
LUA_COMPAT=( lua5-{1..4} luajit )
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
PYTHON_REQ_USE="threads(+)"
|
|
||||||
USE_RUBY="ruby27 ruby30 ruby31"
|
|
||||||
|
|
||||||
inherit bash-completion-r1 flag-o-matic lua-single prefix python-single-r1 ruby-single toolchain-funcs vim-doc xdg-utils
|
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
|
||||||
EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-9.0.0049-patches.tar.gz"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
|
|
||||||
fi
|
|
||||||
S="${WORKDIR}"/vim-${PV}
|
|
||||||
|
|
||||||
DESCRIPTION="GUI version of the Vim text editor"
|
|
||||||
HOMEPAGE="https://vim.sourceforge.io/ https://github.com/vim/vim"
|
|
||||||
|
|
||||||
LICENSE="vim"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="acl aqua crypt cscope debug lua minimal motif netbeans nls perl python racket ruby selinux session sound tcl"
|
|
||||||
REQUIRED_USE="
|
|
||||||
lua? ( ${LUA_REQUIRED_USE} )
|
|
||||||
python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
aqua? ( !motif )
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
~app-editors/vim-core-${PV}
|
|
||||||
>=app-eselect/eselect-vi-1.1
|
|
||||||
>=sys-libs/ncurses-5.2-r2:0=
|
|
||||||
x11-libs/libICE
|
|
||||||
x11-libs/libSM
|
|
||||||
x11-libs/libXext
|
|
||||||
x11-libs/libXt
|
|
||||||
acl? ( kernel_linux? ( sys-apps/acl ) )
|
|
||||||
!aqua? (
|
|
||||||
motif? ( >=x11-libs/motif-2.3:0 )
|
|
||||||
!motif? (
|
|
||||||
x11-libs/gtk+:3
|
|
||||||
x11-libs/libXft
|
|
||||||
)
|
|
||||||
)
|
|
||||||
crypt? ( dev-libs/libsodium:= )
|
|
||||||
cscope? ( dev-util/cscope )
|
|
||||||
lua? (
|
|
||||||
${LUA_DEPS}
|
|
||||||
$(lua_gen_impl_dep 'deprecated' lua5-1)
|
|
||||||
)
|
|
||||||
nls? ( virtual/libintl )
|
|
||||||
perl? ( dev-lang/perl:= )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
racket? ( dev-scheme/racket )
|
|
||||||
ruby? ( ${RUBY_DEPS} )
|
|
||||||
selinux? ( sys-libs/libselinux )
|
|
||||||
session? ( x11-libs/libSM )
|
|
||||||
sound? ( media-libs/libcanberra )
|
|
||||||
tcl? ( dev-lang/tcl:0= )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
# configure runs the Lua interpreter
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/autoconf
|
|
||||||
virtual/pkgconfig
|
|
||||||
lua? ( ${LUA_DEPS} )
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
"
|
|
||||||
PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
|
|
||||||
|
|
||||||
# various failures (bugs #630042 and #682320)
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/vim-0.0.0828-configure-clang16.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
# people with broken alphabets run into trouble. bug 82186.
|
|
||||||
unset LANG LC_ALL
|
|
||||||
export LC_COLLATE="C"
|
|
||||||
|
|
||||||
use lua && lua-single_pkg_setup
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ ${PV} != 9999* ]]; then
|
|
||||||
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
|
||||||
eapply "${WORKDIR}/vim-patches-vim-9.0.0049-patches"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup a script to use awk instead of nawk
|
|
||||||
sed -i -e \
|
|
||||||
'1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
|
||||||
"${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
|
|
||||||
|
|
||||||
# Read vimrc and gvimrc from /etc/vim
|
|
||||||
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
|
|
||||||
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
|
||||||
# Hopefully this pattern won't break for a while at least.
|
|
||||||
# This fixes bug 29398 (27 Sep 2003 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
|
||||||
"${S}"/runtime/doc/syntax.txt \
|
|
||||||
"${S}"/runtime/doc/tagsrch.txt \
|
|
||||||
"${S}"/runtime/doc/usr_29.txt \
|
|
||||||
"${S}"/runtime/menu.vim \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# Don't be fooled by /usr/include/libc.h. When found, vim thinks
|
|
||||||
# this is NeXT, but it's actually just a file in dev-libs/9libs
|
|
||||||
# This fixes bug 43885 (20 Mar 2004 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/ libc\.h / /' "${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
|
||||||
# correctly. To avoid some really entertaining error messages about stuff
|
|
||||||
# which isn't even in the source file being invalid, we'll do some trickery
|
|
||||||
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
|
||||||
find "${S}" -name '*.c' | while read c; do
|
|
||||||
echo >> "$c" || die "echo failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Try to avoid sandbox problems. Bug #114475.
|
|
||||||
if [[ -d "${S}"/src/po ]]; then
|
|
||||||
sed -i -e \
|
|
||||||
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
|
||||||
"${S}"/src/po/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
|
||||||
|
|
||||||
# Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0
|
|
||||||
sed -i -e \
|
|
||||||
"s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \
|
|
||||||
"${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed'
|
|
||||||
|
|
||||||
# Fix bug 18245: Prevent "make" from the following chain:
|
|
||||||
# (1) Notice configure.ac is newer than auto/configure
|
|
||||||
# (2) Rebuild auto/configure
|
|
||||||
# (3) Notice auto/configure is newer than auto/config.mk
|
|
||||||
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
|
||||||
sed -i -e \
|
|
||||||
's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
|
||||||
rm -v src/auto/configure || die "rm failed"
|
|
||||||
|
|
||||||
# --with-features=huge forces on cscope even if we --disable it. We need
|
|
||||||
# to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
|
|
||||||
if ! use cscope; then
|
|
||||||
sed -i -e \
|
|
||||||
'/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope"
|
|
||||||
fi
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
|
|
||||||
# Fix bug 37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug 57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
# Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for
|
|
||||||
# everyone since previous flag filtering bugs have turned out to affect
|
|
||||||
# multiple archs...
|
|
||||||
replace-flags -O3 -O2
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug 24447). The hvc
|
|
||||||
# things are for ppc64, see bug 86433.
|
|
||||||
local file
|
|
||||||
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
|
||||||
if [[ -e ${file} ]]; then
|
|
||||||
addwrite $file
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
use debug && append-flags "-DDEBUG"
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
--with-features=huge
|
|
||||||
--disable-gpm
|
|
||||||
--with-gnome=no
|
|
||||||
$(use_enable sound canberra)
|
|
||||||
$(use_enable acl)
|
|
||||||
$(use_enable crypt libsodium)
|
|
||||||
$(use_enable cscope)
|
|
||||||
$(use_enable netbeans)
|
|
||||||
$(use_enable nls)
|
|
||||||
$(use_enable perl perlinterp)
|
|
||||||
$(use_enable python python3interp)
|
|
||||||
$(use_with python python3-command "${PYTHON}")
|
|
||||||
$(use_enable racket mzschemeinterp)
|
|
||||||
$(use_enable ruby rubyinterp)
|
|
||||||
$(use_enable selinux)
|
|
||||||
$(use_enable session xsmp)
|
|
||||||
$(use_enable tcl tclinterp)
|
|
||||||
)
|
|
||||||
|
|
||||||
if use lua; then
|
|
||||||
# -DLUA_COMPAT_OPENLIB=1 is required to enable the
|
|
||||||
# deprecated (in 5.1) luaL_openlib API (#874690)
|
|
||||||
use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
|
|
||||||
|
|
||||||
myconf+=(
|
|
||||||
--enable-luainterp
|
|
||||||
$(use_with lua_single_target_luajit luajit)
|
|
||||||
--with-lua-prefix="${EPREFIX}/usr"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Default is gtk unless aqua or motif are enabled
|
|
||||||
echo ; echo
|
|
||||||
if use aqua; then
|
|
||||||
einfo "Building gvim with the Carbon GUI"
|
|
||||||
myconf+=(
|
|
||||||
--enable-darwin
|
|
||||||
--enable-gui=carbon
|
|
||||||
)
|
|
||||||
elif use motif; then
|
|
||||||
einfo "Building gvim with the MOTIF GUI"
|
|
||||||
myconf+=( --enable-gui=motif )
|
|
||||||
else
|
|
||||||
myconf+=( --enable-gtk3-check )
|
|
||||||
einfo "Building gvim with the gtk+-3 GUI"
|
|
||||||
myconf+=( --enable-gui=gtk3 )
|
|
||||||
fi
|
|
||||||
echo ; echo
|
|
||||||
|
|
||||||
# let package manager strip binaries
|
|
||||||
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
|
||||||
|
|
||||||
# keep prefix env contained within the EPREFIX
|
|
||||||
use prefix && myconf+=( --without-local-dir )
|
|
||||||
|
|
||||||
if [[ ${CHOST} == *-interix* ]]; then
|
|
||||||
# avoid finding of this function, to avoid having to patch either
|
|
||||||
# configure or the source, which would be much more hackish.
|
|
||||||
# after all vim does it right, only interix is badly broken (again)
|
|
||||||
export ac_cv_func_sigaction=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
if tc-is-cross-compiler ; then
|
|
||||||
export vim_cv_getcwd_broken=no \
|
|
||||||
vim_cv_memmove_handles_overlap=yes \
|
|
||||||
vim_cv_stat_ignores_slash=yes \
|
|
||||||
vim_cv_terminfo=yes \
|
|
||||||
vim_cv_toupper_broken=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf \
|
|
||||||
--with-modified-by=Gentoo-${PVR} \
|
|
||||||
--with-vim-name=gvim \
|
|
||||||
--with-x \
|
|
||||||
"${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
# The following allows emake to be used
|
|
||||||
emake -j1 -C src auto/osdef.h objects
|
|
||||||
|
|
||||||
emake
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
einfo
|
|
||||||
einfo "Starting vim tests. Several error messages will be shown"
|
|
||||||
einfo "while the tests run. This is normal behaviour and does not"
|
|
||||||
einfo "indicate a fault."
|
|
||||||
einfo
|
|
||||||
ewarn "If the tests fail, your terminal may be left in a strange"
|
|
||||||
ewarn "state. Usually, running 'reset' will fix this."
|
|
||||||
einfo
|
|
||||||
|
|
||||||
# Don't let vim talk to X
|
|
||||||
unset DISPLAY
|
|
||||||
|
|
||||||
# Make gvim not try to connect to X. See :help gui-x11-start in vim for how
|
|
||||||
# this evil trickery works.
|
|
||||||
ln -s "${S}"/src/gvim "${S}"/src/testvim || die
|
|
||||||
|
|
||||||
# Make sure our VIMPROG is used.
|
|
||||||
sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die
|
|
||||||
|
|
||||||
# Don't do additional GUI tests.
|
|
||||||
emake -j1 VIMPROG=../testvim -C src/testdir nongui
|
|
||||||
}
|
|
||||||
|
|
||||||
# Call eselect vi update with --if-unset
|
|
||||||
# to respect user's choice (bug 187449)
|
|
||||||
eselect_vi_update() {
|
|
||||||
ebegin "Calling eselect vi update"
|
|
||||||
eselect vi update --if-unset
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
|
||||||
|
|
||||||
dobin src/gvim
|
|
||||||
dosym gvim /usr/bin/gvimdiff
|
|
||||||
dosym gvim /usr/bin/evim
|
|
||||||
dosym gvim /usr/bin/eview
|
|
||||||
dosym gvim /usr/bin/gview
|
|
||||||
dosym gvim /usr/bin/rgvim
|
|
||||||
dosym gvim /usr/bin/rgview
|
|
||||||
|
|
||||||
emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons
|
|
||||||
|
|
||||||
dodir /usr/share/man/man1
|
|
||||||
echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed"
|
|
||||||
echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed"
|
|
||||||
echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \
|
|
||||||
die "echo failed"
|
|
||||||
|
|
||||||
insinto /etc/vim
|
|
||||||
newins "${FILESDIR}"/gvimrc-r1 gvimrc
|
|
||||||
eprefixify "${ED}"/etc/vim/gvimrc
|
|
||||||
|
|
||||||
# bash completion script, bug #79018.
|
|
||||||
newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
|
|
||||||
|
|
||||||
# don't install vim desktop file
|
|
||||||
rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update fdo mime stuff, bug #78394
|
|
||||||
xdg_desktop_database_update
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
|
|
||||||
# call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
# update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update fdo mime stuff, bug #78394
|
|
||||||
xdg_desktop_database_update
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
|
|
||||||
# call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
}
|
|
@ -1,6 +1,3 @@
|
|||||||
DIST vim-9.0.0099.tar.gz 16712565 BLAKE2B b3277ebda0bb40601d995935422006d1a266bb862be612e69abd057a7342d13457ded5cb4743cf43a09b7d2001438f5a426ba12c30947bb7c193188c5fc13cf7 SHA512 ca0dea7b7fd78cf9c7cd4656611d066540f9d81ab17bcb75c79f0e989bdcfb769940ea29f75445c554b159e9eb3b2c4f9d77448254c3e4e4457b1bf721936498
|
|
||||||
DIST vim-9.0.0828.tar.gz 16782339 BLAKE2B 6b997c1c828338d64a8b204a1e232676ec075834b1b7e74c2fc671e315f9bf6026b0c419ebb3c31e7ce58dbca23828ca11d866b2bfcb73f8a86fb31fa0d51b00 SHA512 03f93515039a2f275a8fe6b84bbac5875ffff17768ab3201e111eba4897a2485fe4ccfe238151f393334c7a6ea77eddd8898f0b816e26dbdb884f4e6bcbd2943
|
|
||||||
DIST vim-9.0.1000.tar.gz 16842747 BLAKE2B 85edab7d13daa3e84ef0aeb50e3e9bfd31f0634d8e480c105727b0c34318e0adf7f1276dcdac53df8fc416fd8dfb70377cd74ed570752a3e77f07a083fa6c113 SHA512 9d2b914a112948d77b92c8dcafc2f711a83c3fdaf35a28f7f606e77007b9320e2260a0f6b24fc875a817c33c012f077f89730b34e9f12d6f00795c5c806704c8
|
DIST vim-9.0.1000.tar.gz 16842747 BLAKE2B 85edab7d13daa3e84ef0aeb50e3e9bfd31f0634d8e480c105727b0c34318e0adf7f1276dcdac53df8fc416fd8dfb70377cd74ed570752a3e77f07a083fa6c113 SHA512 9d2b914a112948d77b92c8dcafc2f711a83c3fdaf35a28f7f606e77007b9320e2260a0f6b24fc875a817c33c012f077f89730b34e9f12d6f00795c5c806704c8
|
||||||
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
||||||
DIST vim-patches-vim-9.0.0049-patches.tar.gz 2743 BLAKE2B dff3e215b235e1cbc2c62b1af2d1414d10b794dbee9f5e7797fb3d34e00c2e065c339d4c82bf28aed53e0b5f2f8f1ee5c7ce69851cd63360788609bf144ac922 SHA512 7d5c64d674fa77048fdca7287072c0e488723133e254c10711dbadf750416c368725327ca9b76f332017bc70aa544a9baef671765eabf0d172d39921ffd7d942
|
|
||||||
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
https://github.com/vim/vim/pull/11496
|
|
||||||
|
|
||||||
From 360b569f86b851c37e32b7cfaec079823188ff27 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Fri, 4 Nov 2022 03:18:23 +0000
|
|
||||||
Subject: [PATCH] configure.ac: Fix -Wimplicit-int
|
|
||||||
|
|
||||||
Clang 16 makes -Wimplicit-int an error by default. Fixes errors like:
|
|
||||||
```
|
|
||||||
error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Werror,-Wimplicit-int]
|
|
||||||
```
|
|
||||||
|
|
||||||
We already use proper declarations with every other test anyway, so
|
|
||||||
let's be consistent.
|
|
||||||
|
|
||||||
Signed-off-by: Sam James <sam@gentoo.org>
|
|
||||||
--- a/src/configure.ac
|
|
||||||
+++ b/src/configure.ac
|
|
||||||
@@ -3654,7 +3654,7 @@ dnl check if struct sigcontext is defined (used for SGI only)
|
|
||||||
AC_MSG_CHECKING(for struct sigcontext)
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
|
|
||||||
#include <signal.h>
|
|
||||||
-test_sig()
|
|
||||||
+int test_sig()
|
|
||||||
{
|
|
||||||
struct sigcontext *scont;
|
|
||||||
scont = (struct sigcontext *)0;
|
|
||||||
|
|
@ -1,234 +0,0 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# Please bump with app-editors/vim and app-editors/gvim
|
|
||||||
|
|
||||||
VIM_VERSION="9.0"
|
|
||||||
inherit vim-doc flag-o-matic bash-completion-r1 prefix desktop xdg-utils
|
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]] ; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
|
||||||
EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-9.0.0049-patches.tar.gz"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
fi
|
|
||||||
S="${WORKDIR}/vim-${PV}"
|
|
||||||
|
|
||||||
DESCRIPTION="vim and gvim shared files"
|
|
||||||
HOMEPAGE="https://vim.sourceforge.io/ https://github.com/vim/vim"
|
|
||||||
|
|
||||||
LICENSE="vim"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="nls acl minimal"
|
|
||||||
|
|
||||||
# ncurses is only needed by ./configure, so no subslot operator required
|
|
||||||
DEPEND=">=sys-libs/ncurses-5.2-r2:0"
|
|
||||||
BDEPEND="sys-devel/autoconf"
|
|
||||||
# Avoid icon file collision, bug #673880
|
|
||||||
RDEPEND="!<app-editors/vim-8.2.4328-r1"
|
|
||||||
PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
# people with broken alphabets run into trouble. bug #82186.
|
|
||||||
unset LANG LC_ALL
|
|
||||||
export LC_COLLATE="C"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ ${PV} != 9999* ]] ; then
|
|
||||||
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
|
||||||
eapply "${WORKDIR}"/vim-patches-vim-9.0.0049-patches
|
|
||||||
eapply "${FILESDIR}"/vim-9.0-fix-create-timer-for-cros-compiling.patch
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup a script to use awk instead of nawk
|
|
||||||
sed -i \
|
|
||||||
-e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
|
||||||
"${S}"/runtime/tools/mve.awk || die "sed failed"
|
|
||||||
|
|
||||||
# See bug #77841. We remove this file after the tarball extraction.
|
|
||||||
rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
|
|
||||||
|
|
||||||
# Read vimrc and gvimrc from /etc/vim
|
|
||||||
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
|
|
||||||
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
|
|
||||||
|
|
||||||
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
|
||||||
# Hopefully this pattern won't break for a while at least.
|
|
||||||
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
|
||||||
sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
|
||||||
"${S}"/runtime/doc/syntax.txt \
|
|
||||||
"${S}"/runtime/doc/tagsrch.txt \
|
|
||||||
"${S}"/runtime/doc/usr_29.txt \
|
|
||||||
"${S}"/runtime/menu.vim \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# Don't be fooled by /usr/include/libc.h. When found, vim thinks
|
|
||||||
# this is NeXT, but it's actually just a file in dev-libs/9libs
|
|
||||||
# This fixes bug #43885 (20 Mar 2004 agriffis)
|
|
||||||
sed -i 's/ libc\.h / /' "${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
|
||||||
# correctly. To avoid some really entertaining error messages about stuff
|
|
||||||
# which isn't even in the source file being invalid, we'll do some trickery
|
|
||||||
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
|
||||||
find "${S}" -name '*.c' | while read c; do
|
|
||||||
echo >> "$c" || die "echo failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Try to avoid sandbox problems. Bug #114475.
|
|
||||||
if [[ -d "${S}"/src/po ]]; then
|
|
||||||
sed -i -e \
|
|
||||||
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
|
||||||
"${S}"/src/po/Makefile || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
|
||||||
|
|
||||||
# Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0
|
|
||||||
sed -i -e \
|
|
||||||
"s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \
|
|
||||||
"${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed'
|
|
||||||
|
|
||||||
# Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
|
|
||||||
# everyone since previous flag filtering bugs have turned out to affect
|
|
||||||
# multiple archs...
|
|
||||||
replace-flags -O3 -O2
|
|
||||||
|
|
||||||
# Fix bug #18245: Prevent "make" from the following chain:
|
|
||||||
# (1) Notice configure.ac is newer than auto/configure
|
|
||||||
# (2) Rebuild auto/configure
|
|
||||||
# (3) Notice auto/configure is newer than auto/config.mk
|
|
||||||
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
|
||||||
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
|
||||||
|
|
||||||
# Remove src/auto/configure file.
|
|
||||||
rm -v src/auto/configure || die "rm configure failed"
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug 57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug 24447). The hvc
|
|
||||||
# things are for ppc64, see bug 86433.
|
|
||||||
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
|
||||||
if [[ -e "${file}" ]]; then
|
|
||||||
addwrite ${file}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Let Portage do the stripping. Some people like that.
|
|
||||||
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
--with-modified-by=Gentoo-${PVR}
|
|
||||||
--enable-gui=no
|
|
||||||
--without-x
|
|
||||||
--disable-darwin
|
|
||||||
--disable-perlinterp
|
|
||||||
--disable-pythoninterp
|
|
||||||
--disable-rubyinterp
|
|
||||||
--disable-gpm
|
|
||||||
--disable-selinux
|
|
||||||
$(use_enable nls)
|
|
||||||
$(use_enable acl)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Keep Gentoo Prefix env contained within the EPREFIX
|
|
||||||
use prefix && myconf+=( --without-local-dir )
|
|
||||||
|
|
||||||
if tc-is-cross-compiler ; then
|
|
||||||
export vim_cv_getcwd_broken=no \
|
|
||||||
vim_cv_memmove_handles_overlap=yes \
|
|
||||||
vim_cv_stat_ignores_slash=yes \
|
|
||||||
vim_cv_terminfo=yes \
|
|
||||||
vim_cv_toupper_broken=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
emake -j1 -C src auto/osdef.h objects
|
|
||||||
emake tools
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() { :; }
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
|
||||||
|
|
||||||
dodir /usr/{bin,share/{man/man1,vim}}
|
|
||||||
emake -C src \
|
|
||||||
installruntime \
|
|
||||||
installmanlinks \
|
|
||||||
installmacros \
|
|
||||||
installtutor \
|
|
||||||
installtutorbin \
|
|
||||||
installtools \
|
|
||||||
install-languages \
|
|
||||||
DESTDIR="${D}" \
|
|
||||||
BINDIR="${EPREFIX}"/usr/bin \
|
|
||||||
MANDIR="${EPREFIX}"/usr/share/man \
|
|
||||||
DATADIR="${EPREFIX}"/usr/share
|
|
||||||
|
|
||||||
keepdir ${vimfiles}/keymap
|
|
||||||
|
|
||||||
# default vimrc is installed by vim-core since it applies to
|
|
||||||
# both vim and gvim
|
|
||||||
insinto /etc/vim/
|
|
||||||
newins "${FILESDIR}"/vimrc-r6 vimrc
|
|
||||||
eprefixify "${ED}"/etc/vim/vimrc
|
|
||||||
|
|
||||||
if use minimal; then
|
|
||||||
# To save space, install only a subset of the files.
|
|
||||||
# Helps minimalize the livecd, bug 65144.
|
|
||||||
rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
|
|
||||||
rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
|
|
||||||
rm -v "${ED}"/usr/bin/vimtutor || die
|
|
||||||
|
|
||||||
for f in "${ED}${vimfiles}"/colors/*.vim; do
|
|
||||||
if [[ ${f} != */@(default).vim ]] ; then
|
|
||||||
printf '%s\0' "${f}"
|
|
||||||
fi
|
|
||||||
done | xargs -0 rm -f || die
|
|
||||||
|
|
||||||
for f in "${ED}${vimfiles}"/syntax/*.vim; do
|
|
||||||
if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
|
|
||||||
printf '%s\0' "${f}"
|
|
||||||
fi
|
|
||||||
done | xargs -0 rm -f || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
newbashcomp "${FILESDIR}"/xxd-completion xxd
|
|
||||||
|
|
||||||
# install gvim icon since both vim/gvim desktop files reference it
|
|
||||||
doicon -s scalable "${FILESDIR}"/gvim.svg
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
# Update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
}
|
|
@ -1,234 +0,0 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# Please bump with app-editors/vim and app-editors/gvim
|
|
||||||
|
|
||||||
VIM_VERSION="9.0"
|
|
||||||
inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils
|
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]] ; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
|
||||||
EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-9.0.0049-patches.tar.gz"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
fi
|
|
||||||
S="${WORKDIR}/vim-${PV}"
|
|
||||||
|
|
||||||
DESCRIPTION="vim and gvim shared files"
|
|
||||||
HOMEPAGE="https://vim.sourceforge.io/ https://github.com/vim/vim"
|
|
||||||
|
|
||||||
LICENSE="vim"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="nls acl minimal"
|
|
||||||
|
|
||||||
# ncurses is only needed by ./configure, so no subslot operator required
|
|
||||||
DEPEND=">=sys-libs/ncurses-5.2-r2:0"
|
|
||||||
BDEPEND="sys-devel/autoconf"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/vim-0.0.0828-configure-clang16.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
# people with broken alphabets run into trouble. bug #82186.
|
|
||||||
unset LANG LC_ALL
|
|
||||||
export LC_COLLATE="C"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ ${PV} != 9999* ]] ; then
|
|
||||||
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
|
||||||
eapply "${WORKDIR}"/vim-patches-vim-9.0.0049-patches
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup a script to use awk instead of nawk
|
|
||||||
sed -i \
|
|
||||||
-e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
|
||||||
"${S}"/runtime/tools/mve.awk || die "sed failed"
|
|
||||||
|
|
||||||
# See bug #77841. We remove this file after the tarball extraction.
|
|
||||||
rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
|
|
||||||
|
|
||||||
# Read vimrc and gvimrc from /etc/vim
|
|
||||||
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
|
|
||||||
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
|
|
||||||
|
|
||||||
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
|
||||||
# Hopefully this pattern won't break for a while at least.
|
|
||||||
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
|
||||||
sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
|
||||||
"${S}"/runtime/doc/syntax.txt \
|
|
||||||
"${S}"/runtime/doc/tagsrch.txt \
|
|
||||||
"${S}"/runtime/doc/usr_29.txt \
|
|
||||||
"${S}"/runtime/menu.vim \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# Don't be fooled by /usr/include/libc.h. When found, vim thinks
|
|
||||||
# this is NeXT, but it's actually just a file in dev-libs/9libs
|
|
||||||
# This fixes bug #43885 (20 Mar 2004 agriffis)
|
|
||||||
sed -i 's/ libc\.h / /' "${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
|
||||||
# correctly. To avoid some really entertaining error messages about stuff
|
|
||||||
# which isn't even in the source file being invalid, we'll do some trickery
|
|
||||||
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
|
||||||
find "${S}" -name '*.c' | while read c; do
|
|
||||||
echo >> "$c" || die "echo failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Try to avoid sandbox problems. Bug #114475.
|
|
||||||
if [[ -d "${S}"/src/po ]]; then
|
|
||||||
sed -i -e \
|
|
||||||
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
|
||||||
"${S}"/src/po/Makefile || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
|
||||||
|
|
||||||
# Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0
|
|
||||||
sed -i -e \
|
|
||||||
"s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \
|
|
||||||
"${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed'
|
|
||||||
|
|
||||||
# Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
|
|
||||||
# everyone since previous flag filtering bugs have turned out to affect
|
|
||||||
# multiple archs...
|
|
||||||
replace-flags -O3 -O2
|
|
||||||
|
|
||||||
# Fix bug #18245: Prevent "make" from the following chain:
|
|
||||||
# (1) Notice configure.ac is newer than auto/configure
|
|
||||||
# (2) Rebuild auto/configure
|
|
||||||
# (3) Notice auto/configure is newer than auto/config.mk
|
|
||||||
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
|
||||||
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
|
||||||
|
|
||||||
# Remove src/auto/configure file.
|
|
||||||
rm -v src/auto/configure || die "rm configure failed"
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug 57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug 24447). The hvc
|
|
||||||
# things are for ppc64, see bug 86433.
|
|
||||||
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
|
||||||
if [[ -e "${file}" ]]; then
|
|
||||||
addwrite ${file}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Let Portage do the stripping. Some people like that.
|
|
||||||
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
--with-modified-by=Gentoo-${PVR}
|
|
||||||
--enable-gui=no
|
|
||||||
--without-x
|
|
||||||
--disable-darwin
|
|
||||||
--disable-perlinterp
|
|
||||||
--disable-pythoninterp
|
|
||||||
--disable-rubyinterp
|
|
||||||
--disable-gpm
|
|
||||||
--disable-selinux
|
|
||||||
$(use_enable nls)
|
|
||||||
$(use_enable acl)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Keep Gentoo Prefix env contained within the EPREFIX
|
|
||||||
use prefix && myconf+=( --without-local-dir )
|
|
||||||
|
|
||||||
if tc-is-cross-compiler ; then
|
|
||||||
export vim_cv_getcwd_broken=no \
|
|
||||||
vim_cv_memmove_handles_overlap=yes \
|
|
||||||
vim_cv_stat_ignores_slash=yes \
|
|
||||||
vim_cv_terminfo=yes \
|
|
||||||
vim_cv_toupper_broken=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
emake -j1 -C src auto/osdef.h objects
|
|
||||||
emake tools
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() { :; }
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
|
||||||
|
|
||||||
dodir /usr/{bin,share/{man/man1,vim}}
|
|
||||||
emake -C src \
|
|
||||||
installruntime \
|
|
||||||
installmanlinks \
|
|
||||||
installmacros \
|
|
||||||
installtutor \
|
|
||||||
installtutorbin \
|
|
||||||
installtools \
|
|
||||||
install-languages \
|
|
||||||
DESTDIR="${D}" \
|
|
||||||
BINDIR="${EPREFIX}"/usr/bin \
|
|
||||||
MANDIR="${EPREFIX}"/usr/share/man \
|
|
||||||
DATADIR="${EPREFIX}"/usr/share
|
|
||||||
|
|
||||||
keepdir ${vimfiles}/keymap
|
|
||||||
|
|
||||||
# default vimrc is installed by vim-core since it applies to
|
|
||||||
# both vim and gvim
|
|
||||||
insinto /etc/vim/
|
|
||||||
newins "${FILESDIR}"/vimrc-r6 vimrc
|
|
||||||
eprefixify "${ED}"/etc/vim/vimrc
|
|
||||||
|
|
||||||
if use minimal; then
|
|
||||||
# To save space, install only a subset of the files.
|
|
||||||
# Helps minimalize the livecd, bug 65144.
|
|
||||||
rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
|
|
||||||
rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
|
|
||||||
rm -v "${ED}"/usr/bin/vimtutor || die
|
|
||||||
|
|
||||||
for f in "${ED}${vimfiles}"/colors/*.vim; do
|
|
||||||
if [[ ${f} != */@(default).vim ]] ; then
|
|
||||||
printf '%s\0' "${f}"
|
|
||||||
fi
|
|
||||||
done | xargs -0 rm -f || die
|
|
||||||
|
|
||||||
for f in "${ED}${vimfiles}"/syntax/*.vim; do
|
|
||||||
if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
|
|
||||||
printf '%s\0' "${f}"
|
|
||||||
fi
|
|
||||||
done | xargs -0 rm -f || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
newbashcomp "${FILESDIR}"/xxd-completion xxd
|
|
||||||
|
|
||||||
# install gvim icon since both vim/gvim desktop files reference it
|
|
||||||
doicon -s scalable "${FILESDIR}"/gvim.svg
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
# Update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# update icon cache
|
|
||||||
xdg_icon_cache_update
|
|
||||||
}
|
|
@ -1,6 +1,3 @@
|
|||||||
DIST vim-9.0.0099.tar.gz 16712565 BLAKE2B b3277ebda0bb40601d995935422006d1a266bb862be612e69abd057a7342d13457ded5cb4743cf43a09b7d2001438f5a426ba12c30947bb7c193188c5fc13cf7 SHA512 ca0dea7b7fd78cf9c7cd4656611d066540f9d81ab17bcb75c79f0e989bdcfb769940ea29f75445c554b159e9eb3b2c4f9d77448254c3e4e4457b1bf721936498
|
|
||||||
DIST vim-9.0.0828.tar.gz 16782339 BLAKE2B 6b997c1c828338d64a8b204a1e232676ec075834b1b7e74c2fc671e315f9bf6026b0c419ebb3c31e7ce58dbca23828ca11d866b2bfcb73f8a86fb31fa0d51b00 SHA512 03f93515039a2f275a8fe6b84bbac5875ffff17768ab3201e111eba4897a2485fe4ccfe238151f393334c7a6ea77eddd8898f0b816e26dbdb884f4e6bcbd2943
|
|
||||||
DIST vim-9.0.1000.tar.gz 16842747 BLAKE2B 85edab7d13daa3e84ef0aeb50e3e9bfd31f0634d8e480c105727b0c34318e0adf7f1276dcdac53df8fc416fd8dfb70377cd74ed570752a3e77f07a083fa6c113 SHA512 9d2b914a112948d77b92c8dcafc2f711a83c3fdaf35a28f7f606e77007b9320e2260a0f6b24fc875a817c33c012f077f89730b34e9f12d6f00795c5c806704c8
|
DIST vim-9.0.1000.tar.gz 16842747 BLAKE2B 85edab7d13daa3e84ef0aeb50e3e9bfd31f0634d8e480c105727b0c34318e0adf7f1276dcdac53df8fc416fd8dfb70377cd74ed570752a3e77f07a083fa6c113 SHA512 9d2b914a112948d77b92c8dcafc2f711a83c3fdaf35a28f7f606e77007b9320e2260a0f6b24fc875a817c33c012f077f89730b34e9f12d6f00795c5c806704c8
|
||||||
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
DIST vim-9.0.1157.tar.gz 16924574 BLAKE2B 0cdc6cf61f5abdaff0762b98550bfa5bae8f0485ddd0e9947a5fe52390f9da54fc8f5fdae767fb8f5d3ac2b441253917a80ae7f6092f67b69bdc9b6a630df8e2 SHA512 19240a9bcf5900766db42e2894b1bf7b849274711f17dc267671aacd867b334c3d30f39947dde7dd0245f289e9ad801eeb272f34a2ab15d01fac40bf71a54271
|
||||||
DIST vim-patches-vim-9.0.0049-patches.tar.gz 2743 BLAKE2B dff3e215b235e1cbc2c62b1af2d1414d10b794dbee9f5e7797fb3d34e00c2e065c339d4c82bf28aed53e0b5f2f8f1ee5c7ce69851cd63360788609bf144ac922 SHA512 7d5c64d674fa77048fdca7287072c0e488723133e254c10711dbadf750416c368725327ca9b76f332017bc70aa544a9baef671765eabf0d172d39921ffd7d942
|
|
||||||
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
DIST vim-patches-vim-9.0.1000-patches.tar.bz2 3245 BLAKE2B 3bf3d0e314cc3f96d5d9675de196a62c4c8a72645d56ef94b80768571c99cba5cc556442e3bd2dfa8818460fd851fe7bd1ae15999af7225fb271b81c43105843 SHA512 2883441a2001bf7ce89a7f0862f780b71cc0164c8fcb8dbdf7040e1bcbcf408d138d3d77f308aa54c762e9975fa5ec89cfceeabbf721344dfc938870a363667a
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
https://github.com/vim/vim/pull/11496
|
|
||||||
|
|
||||||
From 360b569f86b851c37e32b7cfaec079823188ff27 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sam James <sam@gentoo.org>
|
|
||||||
Date: Fri, 4 Nov 2022 03:18:23 +0000
|
|
||||||
Subject: [PATCH] configure.ac: Fix -Wimplicit-int
|
|
||||||
|
|
||||||
Clang 16 makes -Wimplicit-int an error by default. Fixes errors like:
|
|
||||||
```
|
|
||||||
error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Werror,-Wimplicit-int]
|
|
||||||
```
|
|
||||||
|
|
||||||
We already use proper declarations with every other test anyway, so
|
|
||||||
let's be consistent.
|
|
||||||
|
|
||||||
Signed-off-by: Sam James <sam@gentoo.org>
|
|
||||||
--- a/src/configure.ac
|
|
||||||
+++ b/src/configure.ac
|
|
||||||
@@ -3654,7 +3654,7 @@ dnl check if struct sigcontext is defined (used for SGI only)
|
|
||||||
AC_MSG_CHECKING(for struct sigcontext)
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
|
|
||||||
#include <signal.h>
|
|
||||||
-test_sig()
|
|
||||||
+int test_sig()
|
|
||||||
{
|
|
||||||
struct sigcontext *scont;
|
|
||||||
scont = (struct sigcontext *)0;
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From bba26c9ed9d4ddc82afd0343f145dc9e14b91498 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Varsha Teratipally <teratipally@google.com>
|
|
||||||
Date: Tue, 2 Aug 2022 22:18:29 +0000
|
|
||||||
Subject: [PATCH] Configure check for timer_create may give wrong error.
|
|
||||||
Give a warning instead of an error
|
|
||||||
|
|
||||||
Partial solution from github.com/vim/vim/commit/5f6cae8b8a49c435556e32f84d067cd0b4d28e4c
|
|
||||||
|
|
||||||
---
|
|
||||||
src/configure.ac | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/configure.ac b/src/configure.ac
|
|
||||||
index e8522ec05..41f41dee3 100644
|
|
||||||
--- a/src/configure.ac
|
|
||||||
+++ b/src/configure.ac
|
|
||||||
@@ -3850,7 +3850,7 @@ static void set_flag(union sigval sv) {}
|
|
||||||
])],
|
|
||||||
vim_cv_timer_create=yes,
|
|
||||||
vim_cv_timer_create=no),
|
|
||||||
- AC_MSG_ERROR(cross-compiling: please set 'vim_cv_timer_create')
|
|
||||||
+ AC_MSG_WARN(cross-compiling: please set 'vim_cv_timer_create')
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
|
|
||||||
--
|
|
||||||
|
|
||||||
|
|
@ -1,371 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# Please bump with app-editors/vim-core and app-editors/gvim
|
|
||||||
|
|
||||||
VIM_VERSION="9.0"
|
|
||||||
LUA_COMPAT=( lua5-{1..4} luajit )
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
PYTHON_REQ_USE="threads(+)"
|
|
||||||
USE_RUBY="ruby27 ruby30 ruby31"
|
|
||||||
|
|
||||||
inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils
|
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]] ; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-9.0.0049-patches.tar.gz"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="Vim, an improved vi-style text editor"
|
|
||||||
HOMEPAGE="https://vim.sourceforge.io/ https://github.com/vim/vim"
|
|
||||||
|
|
||||||
LICENSE="vim"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager"
|
|
||||||
REQUIRED_USE="
|
|
||||||
lua? ( ${LUA_REQUIRED_USE} )
|
|
||||||
python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
vim-pager? ( !minimal )
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=app-eselect/eselect-vi-1.1
|
|
||||||
>=sys-libs/ncurses-5.2-r2:0=
|
|
||||||
nls? ( virtual/libintl )
|
|
||||||
acl? ( kernel_linux? ( sys-apps/acl ) )
|
|
||||||
crypt? ( dev-libs/libsodium:= )
|
|
||||||
cscope? ( dev-util/cscope )
|
|
||||||
gpm? ( >=sys-libs/gpm-1.19.3 )
|
|
||||||
lua? ( ${LUA_DEPS}
|
|
||||||
$(lua_gen_impl_dep 'deprecated' lua5-1)
|
|
||||||
)
|
|
||||||
~app-editors/vim-core-${PV}
|
|
||||||
!<app-editors/vim-core-8.2.4328-r1
|
|
||||||
vim-pager? ( app-editors/vim-core[-minimal] )
|
|
||||||
perl? ( dev-lang/perl:= )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
racket? ( dev-scheme/racket )
|
|
||||||
ruby? ( ${RUBY_DEPS} )
|
|
||||||
selinux? ( sys-libs/libselinux )
|
|
||||||
sound? ( media-libs/libcanberra )
|
|
||||||
tcl? ( dev-lang/tcl:0= )
|
|
||||||
X? ( x11-libs/libXt )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
# configure runs the Lua interpreter
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/autoconf
|
|
||||||
lua? ( ${LUA_DEPS} )
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
# people with broken alphabets run into trouble. bug #82186.
|
|
||||||
unset LANG LC_ALL
|
|
||||||
export LC_COLLATE="C"
|
|
||||||
|
|
||||||
use lua && lua-single_pkg_setup
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
|
|
||||||
if [[ ${PV} != 9999* ]] ; then
|
|
||||||
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
|
||||||
eapply "${WORKDIR}"/vim-patches-vim-9.0.0049-patches
|
|
||||||
eapply "${FILESDIR}"/vim-9.0-fix-create-timer-for-cros-compiling.patch
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup a script to use awk instead of nawk
|
|
||||||
sed -i -e \
|
|
||||||
'1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
|
||||||
"${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
|
|
||||||
|
|
||||||
# Read vimrc and gvimrc from /etc/vim
|
|
||||||
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
|
|
||||||
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
|
||||||
# Hopefully this pattern won't break for a while at least.
|
|
||||||
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
|
||||||
"${S}"/runtime/doc/syntax.txt \
|
|
||||||
"${S}"/runtime/doc/tagsrch.txt \
|
|
||||||
"${S}"/runtime/doc/usr_29.txt \
|
|
||||||
"${S}"/runtime/menu.vim \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# Don't be fooled by /usr/include/libc.h. When found, vim thinks
|
|
||||||
# this is NeXT, but it's actually just a file in dev-libs/9libs
|
|
||||||
# This fixes bug #43885 (20 Mar 2004 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/ libc\.h / /' \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
|
||||||
# correctly. To avoid some really entertaining error messages about stuff
|
|
||||||
# which isn't even in the source file being invalid, we'll do some trickery
|
|
||||||
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
|
||||||
find "${S}" -name '*.c' | while read c; do
|
|
||||||
echo >> "$c" || die "echo failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
# conditionally make the manpager.sh script
|
|
||||||
if use vim-pager; then
|
|
||||||
cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed"
|
|
||||||
#!/bin/sh
|
|
||||||
sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\
|
|
||||||
vim \\
|
|
||||||
-c 'let no_plugin_maps = 1' \\
|
|
||||||
-c 'set nolist nomod ft=man ts=8' \\
|
|
||||||
-c 'let g:showmarks_enable=0' \\
|
|
||||||
-c 'runtime! macros/less.vim' -
|
|
||||||
_EOF_
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Try to avoid sandbox problems. Bug #114475.
|
|
||||||
if [[ -d "${S}"/src/po ]]; then
|
|
||||||
sed -i -e \
|
|
||||||
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
|
||||||
"${S}"/src/po/Makefile || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
|
||||||
|
|
||||||
sed -i -e \
|
|
||||||
"s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \
|
|
||||||
"${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed'
|
|
||||||
|
|
||||||
# Fix bug 18245: Prevent "make" from the following chain:
|
|
||||||
# (1) Notice configure.ac is newer than auto/configure
|
|
||||||
# (2) Rebuild auto/configure
|
|
||||||
# (3) Notice auto/configure is newer than auto/config.mk
|
|
||||||
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
|
||||||
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
|
||||||
rm src/auto/configure || die "rm failed"
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
|
|
||||||
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug #57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
# Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for
|
|
||||||
# everyone since previous flag filtering bugs have turned out to affect
|
|
||||||
# multiple archs...
|
|
||||||
replace-flags -O3 -O2
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug #24447). The hvc
|
|
||||||
# things are for ppc64, see bug #86433.
|
|
||||||
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
|
||||||
if [[ -e "${file}" ]]; then
|
|
||||||
addwrite ${file}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
local myconf=()
|
|
||||||
if use minimal; then
|
|
||||||
myconf=(
|
|
||||||
--with-features=tiny
|
|
||||||
--disable-nls
|
|
||||||
--disable-canberra
|
|
||||||
--disable-acl
|
|
||||||
--enable-gui=no
|
|
||||||
--without-x
|
|
||||||
--disable-darwin
|
|
||||||
--disable-luainterp
|
|
||||||
--disable-perlinterp
|
|
||||||
--disable-pythoninterp
|
|
||||||
--disable-mzschemeinterp
|
|
||||||
--disable-rubyinterp
|
|
||||||
--disable-selinux
|
|
||||||
--disable-tclinterp
|
|
||||||
--disable-gpm
|
|
||||||
)
|
|
||||||
else
|
|
||||||
use debug && append-flags "-DDEBUG"
|
|
||||||
|
|
||||||
myconf=(
|
|
||||||
--with-features=huge
|
|
||||||
$(use_enable sound canberra)
|
|
||||||
$(use_enable acl)
|
|
||||||
$(use_enable crypt libsodium)
|
|
||||||
$(use_enable cscope)
|
|
||||||
$(use_enable gpm)
|
|
||||||
$(use_enable nls)
|
|
||||||
$(use_enable perl perlinterp)
|
|
||||||
$(use_enable python python3interp)
|
|
||||||
$(use_with python python3-command "${PYTHON}")
|
|
||||||
$(use_enable racket mzschemeinterp)
|
|
||||||
$(use_enable ruby rubyinterp)
|
|
||||||
$(use_enable selinux)
|
|
||||||
$(use_enable tcl tclinterp)
|
|
||||||
$(use_enable terminal)
|
|
||||||
)
|
|
||||||
|
|
||||||
# --with-features=huge forces on cscope even if we --disable it. We need
|
|
||||||
# to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
|
|
||||||
if ! use cscope; then
|
|
||||||
sed -i -e \
|
|
||||||
'/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use lua; then
|
|
||||||
# -DLUA_COMPAT_OPENLIB=1 is required to enable the
|
|
||||||
# deprecated (in 5.1) luaL_openlib API (#874690)
|
|
||||||
use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
|
|
||||||
|
|
||||||
myconf+=(
|
|
||||||
--enable-luainterp
|
|
||||||
$(use_with lua_single_target_luajit luajit)
|
|
||||||
--with-lua-prefix="${EPREFIX}/usr"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't test USE=X here ... see bug #19115
|
|
||||||
# but need to provide a way to link against X ... see bug #20093
|
|
||||||
myconf+=(
|
|
||||||
--enable-gui=no
|
|
||||||
--disable-darwin
|
|
||||||
$(use_with X x)
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# let package manager strip binaries
|
|
||||||
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
|
||||||
|
|
||||||
# keep prefix env contained within the EPREFIX
|
|
||||||
use prefix && myconf+=( --without-local-dir )
|
|
||||||
|
|
||||||
if tc-is-cross-compiler ; then
|
|
||||||
export vim_cv_getcwd_broken=no \
|
|
||||||
vim_cv_memmove_handles_overlap=yes \
|
|
||||||
vim_cv_stat_ignores_slash=yes \
|
|
||||||
vim_cv_terminfo=yes \
|
|
||||||
vim_cv_toupper_broken=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf \
|
|
||||||
--with-modified-by=Gentoo-${PVR} \
|
|
||||||
"${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
# The following allows emake to be used
|
|
||||||
emake -j1 -C src auto/osdef.h objects
|
|
||||||
|
|
||||||
emake
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
einfo
|
|
||||||
einfo "Starting vim tests. Several error messages will be shown"
|
|
||||||
einfo "while the tests run. This is normal behaviour and does not"
|
|
||||||
einfo "indicate a fault."
|
|
||||||
einfo
|
|
||||||
ewarn "If the tests fail, your terminal may be left in a strange"
|
|
||||||
ewarn "state. Usually, running 'reset' will fix this."
|
|
||||||
einfo
|
|
||||||
|
|
||||||
# Don't let vim talk to X
|
|
||||||
unset DISPLAY
|
|
||||||
|
|
||||||
# Arch and opensuse seem to do this and at this point, I'm willing
|
|
||||||
# to try anything to avoid random test hangs!
|
|
||||||
export TERM=xterm
|
|
||||||
|
|
||||||
# See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5
|
|
||||||
# for more information on test variables we can use.
|
|
||||||
# Note that certain variables need vim-compatible regex (not PCRE), see e.g.
|
|
||||||
# http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml.
|
|
||||||
#
|
|
||||||
# Skipped tests:
|
|
||||||
# - Test_expand_star_star
|
|
||||||
# Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680)
|
|
||||||
# - Test_exrc
|
|
||||||
# Looks in wrong location? (bug #742710)
|
|
||||||
# - Test_job_tty_in_out
|
|
||||||
# Fragile and depends on TERM(?)
|
|
||||||
# - Test_spelldump_bang
|
|
||||||
# Hangs.
|
|
||||||
# - Test_fuzzy_completion_env
|
|
||||||
# Too sensitive to leaked environment variables.
|
|
||||||
# - Test_term_mouse_multiple_clicks_to_select_mode
|
|
||||||
# Hangs.
|
|
||||||
# - Test_spelldump
|
|
||||||
# Hangs.
|
|
||||||
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\)'
|
|
||||||
|
|
||||||
emake -j1 -C src/testdir nongui
|
|
||||||
}
|
|
||||||
|
|
||||||
# Call eselect vi update with --if-unset
|
|
||||||
# to respect user's choice (bug #187449)
|
|
||||||
eselect_vi_update() {
|
|
||||||
ebegin "Calling eselect vi update"
|
|
||||||
eselect vi update --if-unset
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
|
||||||
|
|
||||||
# Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are
|
|
||||||
# managed by eselect-vi
|
|
||||||
dobin src/vim
|
|
||||||
if ! use minimal ; then
|
|
||||||
dosym vim /usr/bin/vimdiff
|
|
||||||
fi
|
|
||||||
dosym vim /usr/bin/rvim
|
|
||||||
dosym vim /usr/bin/rview
|
|
||||||
if use vim-pager ; then
|
|
||||||
dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager
|
|
||||||
dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager
|
|
||||||
insinto ${vimfiles}/macros
|
|
||||||
doins runtime/macros/manpager.sh
|
|
||||||
fperms a+x ${vimfiles}/macros/manpager.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
domenu runtime/vim.desktop
|
|
||||||
|
|
||||||
newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
|
|
||||||
|
|
||||||
# keep in sync with 'complete ... -F' list
|
|
||||||
bashcomp_alias vim ex vi view rvim rview vimdiff
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# Update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# Call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
|
|
||||||
# update desktop file mime cache
|
|
||||||
xdg_desktop_database_update
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
# Update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# Call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
|
|
||||||
# update desktop file mime cache
|
|
||||||
xdg_desktop_database_update
|
|
||||||
}
|
|
@ -1,374 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# Please bump with app-editors/vim-core and app-editors/gvim
|
|
||||||
|
|
||||||
VIM_VERSION="9.0"
|
|
||||||
LUA_COMPAT=( lua5-{1..4} luajit )
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
PYTHON_REQ_USE="threads(+)"
|
|
||||||
USE_RUBY="ruby27 ruby30 ruby31"
|
|
||||||
|
|
||||||
inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils
|
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]] ; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
|
||||||
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-9.0.0049-patches.tar.gz"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="Vim, an improved vi-style text editor"
|
|
||||||
HOMEPAGE="https://vim.sourceforge.io/ https://github.com/vim/vim"
|
|
||||||
|
|
||||||
LICENSE="vim"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager"
|
|
||||||
REQUIRED_USE="
|
|
||||||
lua? ( ${LUA_REQUIRED_USE} )
|
|
||||||
python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
vim-pager? ( !minimal )
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=app-eselect/eselect-vi-1.1
|
|
||||||
>=sys-libs/ncurses-5.2-r2:0=
|
|
||||||
nls? ( virtual/libintl )
|
|
||||||
acl? ( kernel_linux? ( sys-apps/acl ) )
|
|
||||||
crypt? ( dev-libs/libsodium:= )
|
|
||||||
cscope? ( dev-util/cscope )
|
|
||||||
gpm? ( >=sys-libs/gpm-1.19.3 )
|
|
||||||
lua? ( ${LUA_DEPS}
|
|
||||||
$(lua_gen_impl_dep 'deprecated' lua5-1)
|
|
||||||
)
|
|
||||||
~app-editors/vim-core-${PV}
|
|
||||||
!<app-editors/vim-core-8.2.4328-r1
|
|
||||||
vim-pager? ( app-editors/vim-core[-minimal] )
|
|
||||||
perl? ( dev-lang/perl:= )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
racket? ( dev-scheme/racket )
|
|
||||||
ruby? ( ${RUBY_DEPS} )
|
|
||||||
selinux? ( sys-libs/libselinux )
|
|
||||||
sound? ( media-libs/libcanberra )
|
|
||||||
tcl? ( dev-lang/tcl:0= )
|
|
||||||
X? ( x11-libs/libXt )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
# configure runs the Lua interpreter
|
|
||||||
BDEPEND="
|
|
||||||
sys-devel/autoconf
|
|
||||||
lua? ( ${LUA_DEPS} )
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
"
|
|
||||||
PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/vim-0.0.0828-configure-clang16.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
# people with broken alphabets run into trouble. bug #82186.
|
|
||||||
unset LANG LC_ALL
|
|
||||||
export LC_COLLATE="C"
|
|
||||||
|
|
||||||
use lua && lua-single_pkg_setup
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ ${PV} != 9999* ]] ; then
|
|
||||||
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
|
||||||
eapply "${WORKDIR}"/vim-patches-vim-9.0.0049-patches
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fixup a script to use awk instead of nawk
|
|
||||||
sed -i -e \
|
|
||||||
'1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
|
||||||
"${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
|
|
||||||
|
|
||||||
# Read vimrc and gvimrc from /etc/vim
|
|
||||||
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
|
|
||||||
>> "${S}"/src/feature.h || die "echo failed"
|
|
||||||
|
|
||||||
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
|
||||||
# Hopefully this pattern won't break for a while at least.
|
|
||||||
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
|
||||||
"${S}"/runtime/doc/syntax.txt \
|
|
||||||
"${S}"/runtime/doc/tagsrch.txt \
|
|
||||||
"${S}"/runtime/doc/usr_29.txt \
|
|
||||||
"${S}"/runtime/menu.vim \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# Don't be fooled by /usr/include/libc.h. When found, vim thinks
|
|
||||||
# this is NeXT, but it's actually just a file in dev-libs/9libs
|
|
||||||
# This fixes bug #43885 (20 Mar 2004 agriffis)
|
|
||||||
sed -i -e \
|
|
||||||
's/ libc\.h / /' \
|
|
||||||
"${S}"/src/configure.ac || die 'sed failed'
|
|
||||||
|
|
||||||
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
|
||||||
# correctly. To avoid some really entertaining error messages about stuff
|
|
||||||
# which isn't even in the source file being invalid, we'll do some trickery
|
|
||||||
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
|
||||||
find "${S}" -name '*.c' | while read c; do
|
|
||||||
echo >> "$c" || die "echo failed"
|
|
||||||
done
|
|
||||||
|
|
||||||
# conditionally make the manpager.sh script
|
|
||||||
if use vim-pager; then
|
|
||||||
cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed"
|
|
||||||
#!/bin/sh
|
|
||||||
sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\
|
|
||||||
vim \\
|
|
||||||
-c 'let no_plugin_maps = 1' \\
|
|
||||||
-c 'set nolist nomod ft=man ts=8' \\
|
|
||||||
-c 'let g:showmarks_enable=0' \\
|
|
||||||
-c 'runtime! macros/less.vim' -
|
|
||||||
_EOF_
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Try to avoid sandbox problems. Bug #114475.
|
|
||||||
if [[ -d "${S}"/src/po ]]; then
|
|
||||||
sed -i -e \
|
|
||||||
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
|
||||||
"${S}"/src/po/Makefile || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
|
||||||
|
|
||||||
sed -i -e \
|
|
||||||
"s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \
|
|
||||||
"${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed'
|
|
||||||
|
|
||||||
# Fix bug 18245: Prevent "make" from the following chain:
|
|
||||||
# (1) Notice configure.ac is newer than auto/configure
|
|
||||||
# (2) Rebuild auto/configure
|
|
||||||
# (3) Notice auto/configure is newer than auto/config.mk
|
|
||||||
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
|
||||||
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
|
||||||
rm src/auto/configure || die "rm failed"
|
|
||||||
|
|
||||||
eapply_user
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
|
|
||||||
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug #57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
# Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for
|
|
||||||
# everyone since previous flag filtering bugs have turned out to affect
|
|
||||||
# multiple archs...
|
|
||||||
replace-flags -O3 -O2
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug #24447). The hvc
|
|
||||||
# things are for ppc64, see bug #86433.
|
|
||||||
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
|
||||||
if [[ -e "${file}" ]]; then
|
|
||||||
addwrite ${file}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
local myconf=()
|
|
||||||
if use minimal; then
|
|
||||||
myconf=(
|
|
||||||
--with-features=tiny
|
|
||||||
--disable-nls
|
|
||||||
--disable-canberra
|
|
||||||
--disable-acl
|
|
||||||
--enable-gui=no
|
|
||||||
--without-x
|
|
||||||
--disable-darwin
|
|
||||||
--disable-luainterp
|
|
||||||
--disable-perlinterp
|
|
||||||
--disable-pythoninterp
|
|
||||||
--disable-mzschemeinterp
|
|
||||||
--disable-rubyinterp
|
|
||||||
--disable-selinux
|
|
||||||
--disable-tclinterp
|
|
||||||
--disable-gpm
|
|
||||||
)
|
|
||||||
else
|
|
||||||
use debug && append-flags "-DDEBUG"
|
|
||||||
|
|
||||||
myconf=(
|
|
||||||
--with-features=huge
|
|
||||||
$(use_enable sound canberra)
|
|
||||||
$(use_enable acl)
|
|
||||||
$(use_enable crypt libsodium)
|
|
||||||
$(use_enable cscope)
|
|
||||||
$(use_enable gpm)
|
|
||||||
$(use_enable nls)
|
|
||||||
$(use_enable perl perlinterp)
|
|
||||||
$(use_enable python python3interp)
|
|
||||||
$(use_with python python3-command "${PYTHON}")
|
|
||||||
$(use_enable racket mzschemeinterp)
|
|
||||||
$(use_enable ruby rubyinterp)
|
|
||||||
$(use_enable selinux)
|
|
||||||
$(use_enable tcl tclinterp)
|
|
||||||
$(use_enable terminal)
|
|
||||||
)
|
|
||||||
|
|
||||||
# --with-features=huge forces on cscope even if we --disable it. We need
|
|
||||||
# to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
|
|
||||||
if ! use cscope; then
|
|
||||||
sed -i -e \
|
|
||||||
'/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use lua; then
|
|
||||||
# -DLUA_COMPAT_OPENLIB=1 is required to enable the
|
|
||||||
# deprecated (in 5.1) luaL_openlib API (#874690)
|
|
||||||
use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
|
|
||||||
|
|
||||||
myconf+=(
|
|
||||||
--enable-luainterp
|
|
||||||
$(use_with lua_single_target_luajit luajit)
|
|
||||||
--with-lua-prefix="${EPREFIX}/usr"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't test USE=X here ... see bug #19115
|
|
||||||
# but need to provide a way to link against X ... see bug #20093
|
|
||||||
myconf+=(
|
|
||||||
--enable-gui=no
|
|
||||||
--disable-darwin
|
|
||||||
$(use_with X x)
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# let package manager strip binaries
|
|
||||||
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
|
||||||
|
|
||||||
# keep prefix env contained within the EPREFIX
|
|
||||||
use prefix && myconf+=( --without-local-dir )
|
|
||||||
|
|
||||||
if tc-is-cross-compiler ; then
|
|
||||||
export vim_cv_getcwd_broken=no \
|
|
||||||
vim_cv_memmove_handles_overlap=yes \
|
|
||||||
vim_cv_stat_ignores_slash=yes \
|
|
||||||
vim_cv_terminfo=yes \
|
|
||||||
vim_cv_toupper_broken=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
econf \
|
|
||||||
--with-modified-by=Gentoo-${PVR} \
|
|
||||||
"${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
# The following allows emake to be used
|
|
||||||
emake -j1 -C src auto/osdef.h objects
|
|
||||||
|
|
||||||
emake
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
einfo
|
|
||||||
einfo "Starting vim tests. Several error messages will be shown"
|
|
||||||
einfo "while the tests run. This is normal behaviour and does not"
|
|
||||||
einfo "indicate a fault."
|
|
||||||
einfo
|
|
||||||
ewarn "If the tests fail, your terminal may be left in a strange"
|
|
||||||
ewarn "state. Usually, running 'reset' will fix this."
|
|
||||||
einfo
|
|
||||||
|
|
||||||
# Don't let vim talk to X
|
|
||||||
unset DISPLAY
|
|
||||||
|
|
||||||
# Arch and opensuse seem to do this and at this point, I'm willing
|
|
||||||
# to try anything to avoid random test hangs!
|
|
||||||
export TERM=xterm
|
|
||||||
|
|
||||||
# See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5
|
|
||||||
# for more information on test variables we can use.
|
|
||||||
# Note that certain variables need vim-compatible regex (not PCRE), see e.g.
|
|
||||||
# http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml.
|
|
||||||
#
|
|
||||||
# Skipped tests:
|
|
||||||
# - Test_expand_star_star
|
|
||||||
# Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680)
|
|
||||||
# - Test_exrc
|
|
||||||
# Looks in wrong location? (bug #742710)
|
|
||||||
# - Test_job_tty_in_out
|
|
||||||
# Fragile and depends on TERM(?)
|
|
||||||
# - Test_spelldump_bang
|
|
||||||
# Hangs.
|
|
||||||
# - Test_fuzzy_completion_env
|
|
||||||
# Too sensitive to leaked environment variables.
|
|
||||||
# - Test_term_mouse_multiple_clicks_to_select_mode
|
|
||||||
# Hangs.
|
|
||||||
# - Test_spelldump
|
|
||||||
# Hangs.
|
|
||||||
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\)'
|
|
||||||
|
|
||||||
emake -j1 -C src/testdir nongui
|
|
||||||
}
|
|
||||||
|
|
||||||
# Call eselect vi update with --if-unset
|
|
||||||
# to respect user's choice (bug #187449)
|
|
||||||
eselect_vi_update() {
|
|
||||||
ebegin "Calling eselect vi update"
|
|
||||||
eselect vi update --if-unset
|
|
||||||
eend $?
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
|
||||||
|
|
||||||
# Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are
|
|
||||||
# managed by eselect-vi
|
|
||||||
dobin src/vim
|
|
||||||
if ! use minimal ; then
|
|
||||||
dosym vim /usr/bin/vimdiff
|
|
||||||
fi
|
|
||||||
dosym vim /usr/bin/rvim
|
|
||||||
dosym vim /usr/bin/rview
|
|
||||||
if use vim-pager ; then
|
|
||||||
dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager
|
|
||||||
dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager
|
|
||||||
insinto ${vimfiles}/macros
|
|
||||||
doins runtime/macros/manpager.sh
|
|
||||||
fperms a+x ${vimfiles}/macros/manpager.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
domenu runtime/vim.desktop
|
|
||||||
|
|
||||||
newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
|
|
||||||
|
|
||||||
# keep in sync with 'complete ... -F' list
|
|
||||||
bashcomp_alias vim ex vi view rvim rview vimdiff
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# Update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# Call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
|
|
||||||
# update desktop file mime cache
|
|
||||||
xdg_desktop_database_update
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
# Update documentation tags (from vim-doc.eclass)
|
|
||||||
update_vim_helptags
|
|
||||||
|
|
||||||
# Call eselect vi update
|
|
||||||
eselect_vi_update
|
|
||||||
|
|
||||||
# update desktop file mime cache
|
|
||||||
xdg_desktop_database_update
|
|
||||||
}
|
|
Binary file not shown.
Binary file not shown.
@ -1,5 +1,7 @@
|
|||||||
DIST dxvk-1.10.3.tar.gz 1204407 BLAKE2B 3507ffe4abf9c45f2a138b05e7cf706322a6bf3d2e9ae86a9d6216b206c09f79eac696ee7dfe33d0bef55e727f51301c36eb89bfa3b3f429d7d5fafc1eebdcb4 SHA512 8995b231b3f3650beda04c01f30186d10a373075a4774b4ecbfb3bbeb4de99c57555f1db0611e5c61c6a411a7215e0faf228f9861f6b7adae6fc365e8056f7e3
|
DIST dxvk-1.10.3.tar.gz 1204407 BLAKE2B 3507ffe4abf9c45f2a138b05e7cf706322a6bf3d2e9ae86a9d6216b206c09f79eac696ee7dfe33d0bef55e727f51301c36eb89bfa3b3f429d7d5fafc1eebdcb4 SHA512 8995b231b3f3650beda04c01f30186d10a373075a4774b4ecbfb3bbeb4de99c57555f1db0611e5c61c6a411a7215e0faf228f9861f6b7adae6fc365e8056f7e3
|
||||||
DIST dxvk-2.0.tar.gz 943397 BLAKE2B 7d59050e8ac3f9be311d11323cc0057d84c3b730360fe9e064ff4a5e2db5bffea5bae3214da366c60295ec5f1577ab08e2776274c9aaff7a7de1b9f2cefa836a SHA512 98537bdec2b5e4f2ead5b93ab49db717e0706fe771a82a6ef1e5b5792c1bdd3f417cd6b6b2deadb1397b8a0740445fa88b9fb6c1f73510cc5c0e7ae35d65bcac
|
DIST dxvk-2.0.tar.gz 943397 BLAKE2B 7d59050e8ac3f9be311d11323cc0057d84c3b730360fe9e064ff4a5e2db5bffea5bae3214da366c60295ec5f1577ab08e2776274c9aaff7a7de1b9f2cefa836a SHA512 98537bdec2b5e4f2ead5b93ab49db717e0706fe771a82a6ef1e5b5792c1bdd3f417cd6b6b2deadb1397b8a0740445fa88b9fb6c1f73510cc5c0e7ae35d65bcac
|
||||||
|
DIST dxvk-2.1.tar.gz 960078 BLAKE2B ad8ea7eb000237914d9116a8fbfde13fde3dc00d428ebfe41aacb9373c6509112545ef1942b4cbc96a18338c3d07c2c494d0454236721e220ee5f5731a5c27b9 SHA512 10d919ba2612f665a20f7c72605967adeea94d8414bee45878f9df42ad263fa5ebfc7a76319173dce054ffe9b9cdc919ff7a136042f3f4e64142844c943bdef7
|
||||||
|
DIST dxvk-libdisplay-info-d39344f466.tar.bz2 81232 BLAKE2B af76ccd3c40bc953008bc30d222c72f90bdc77f47f767b6e7423efaa0ec89d746396a755160b5470e219a15a0aa392be6066aab12921b45a1adb35d88132cd97 SHA512 79b4bf325cefc39bc587233bd82ff64c927ca5f829b8172d213c3d47af725c8dc7fe33576a8e96a869075ee2a8f00d165f3aa9e6c472e862a47e5c800b2b3315
|
||||||
DIST dxvk-spirv-headers-0bcc624926.tar.gz 437771 BLAKE2B 08815e36ad99b84777e38ad0c5616b6608a552f993e7f67433f2b8e20de81e9bce41420ac5998f5b67bca70a92ce70aed91b238990bd431c7b97070dfb0c5a60 SHA512 5995cf75d5605d41e9643bca81c195ef5aaa17d596e0282807f6fa8f8c494f7b63a41d611c535ae43dc3d609436aabef1e0d89626f37e6f20bad17b5e122e32c
|
DIST dxvk-spirv-headers-0bcc624926.tar.gz 437771 BLAKE2B 08815e36ad99b84777e38ad0c5616b6608a552f993e7f67433f2b8e20de81e9bce41420ac5998f5b67bca70a92ce70aed91b238990bd431c7b97070dfb0c5a60 SHA512 5995cf75d5605d41e9643bca81c195ef5aaa17d596e0282807f6fa8f8c494f7b63a41d611c535ae43dc3d609436aabef1e0d89626f37e6f20bad17b5e122e32c
|
||||||
DIST dxvk-vulkan-headers-98f440ce68.tar.gz 1691979 BLAKE2B bf6fd288f16df7adcb5cebeb6e13713db1c26a0b833dead2fb522227861abc60b2d0cda8e3f46f8e89cccb629e01081ba27763989ad6fd336c60a475b198c1c8 SHA512 69238d37d0af0162e0fd68094cd2fa9baa320497d34a9de491dea086c23291d0815b51e89218b1f0ee2b3314cbc8ac1809d6edb15ca51fcb282fe1e2b39a1a77
|
DIST dxvk-vulkan-headers-98f440ce68.tar.gz 1691979 BLAKE2B bf6fd288f16df7adcb5cebeb6e13713db1c26a0b833dead2fb522227861abc60b2d0cda8e3f46f8e89cccb629e01081ba27763989ad6fd336c60a475b198c1c8 SHA512 69238d37d0af0162e0fd68094cd2fa9baa320497d34a9de491dea086c23291d0815b51e89218b1f0ee2b3314cbc8ac1809d6edb15ca51fcb282fe1e2b39a1a77
|
||||||
DIST setup_dxvk.sh 4631 BLAKE2B 25270e1f6dfd446b1d124eac3bd19da8bc770527d02d987949fc3ae0bead07866dafa25f77a90b9a408413a724354a29a4a156ff5c9dc75e26b66e079824ec86 SHA512 257fd84e29a7037f04a1a2a506502c71d527af58f8c84d8c3dfb64597ebdc41c3dca362eaf20ab4bc1982b76428c1f843815d56a6e1369d072e0009e270cb121
|
DIST setup_dxvk.sh 4631 BLAKE2B 25270e1f6dfd446b1d124eac3bd19da8bc770527d02d987949fc3ae0bead07866dafa25f77a90b9a408413a724354a29a4a156ff5c9dc75e26b66e079824ec86 SHA512 257fd84e29a7037f04a1a2a506502c71d527af58f8c84d8c3dfb64597ebdc41c3dca362eaf20ab4bc1982b76428c1f843815d56a6e1369d072e0009e270cb121
|
||||||
|
@ -0,0 +1,171 @@
|
|||||||
|
# Copyright 2022-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{9..11} )
|
||||||
|
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||||
|
inherit flag-o-matic meson-multilib python-any-r1
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
|
||||||
|
EGIT_SUBMODULES=(
|
||||||
|
# picky about headers and is cross-compiled making -I/usr/include troublesome
|
||||||
|
include/{spirv,vulkan}
|
||||||
|
subprojects/libdisplay-info
|
||||||
|
)
|
||||||
|
else
|
||||||
|
HASH_SPIRV=0bcc624926a25a2a273d07877fd25a6ff5ba1cfb
|
||||||
|
HASH_VULKAN=98f440ce6868c94f5ec6e198cc1adda4760e8849
|
||||||
|
HASH_DISPLAYINFO=d39344f466caae0495ebac4d49b03a886d83ba3a
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz
|
||||||
|
-> ${P}.tar.gz
|
||||||
|
https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
|
||||||
|
-> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz
|
||||||
|
https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
|
||||||
|
-> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz
|
||||||
|
https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/${PN}-libdisplay-info-${HASH_DISPLAYINFO::10}.tar.bz2"
|
||||||
|
KEYWORDS="-* ~amd64 ~x86"
|
||||||
|
fi
|
||||||
|
# setup_dxvk.sh is no longer provided, fetch old until a better solution
|
||||||
|
SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh"
|
||||||
|
|
||||||
|
DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
|
||||||
|
HOMEPAGE="https://github.com/doitsujin/dxvk/"
|
||||||
|
|
||||||
|
LICENSE="ZLIB Apache-2.0 MIT"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 debug +dxgi"
|
||||||
|
REQUIRED_USE="
|
||||||
|
|| ( d3d9 d3d10 d3d11 dxgi )
|
||||||
|
d3d10? ( d3d11 )
|
||||||
|
d3d11? ( dxgi )"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
dev-util/glslang
|
||||||
|
!crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
[[ ${MERGE_TYPE} == binary ]] && return
|
||||||
|
|
||||||
|
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
|
||||||
|
local tool=-w64-mingw32-g++
|
||||||
|
for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
|
||||||
|
if ! type -P ${tool} >/dev/null; then
|
||||||
|
eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
|
||||||
|
eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
|
||||||
|
use abi_x86_32 && use abi_x86_64 &&
|
||||||
|
eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
|
||||||
|
die "USE=crossdev-mingw is set but ${tool} was not found"
|
||||||
|
elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
|
||||||
|
eerror "${PN} requires GCC to be built with --enable-threads=posix"
|
||||||
|
eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
|
||||||
|
die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ ${PV} != 9999 ]]; then
|
||||||
|
rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
|
||||||
|
mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
|
||||||
|
mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
|
||||||
|
mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
sed "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" \
|
||||||
|
"${DISTDIR}"/setup_dxvk.sh > setup_dxvk.sh || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
|
||||||
|
|
||||||
|
# AVX has a history of causing issues with this package, disable for safety
|
||||||
|
# https://bugs.winehq.org/show_bug.cgi?id=43516
|
||||||
|
# https://bugs.winehq.org/show_bug.cgi?id=45289
|
||||||
|
append-flags -mno-avx
|
||||||
|
|
||||||
|
if [[ ${CHOST} != *-mingw* ]]; then
|
||||||
|
if [[ ! -v MINGW_BYPASS ]]; then
|
||||||
|
unset AR CC CXX RC STRIP
|
||||||
|
filter-flags '-fstack-clash-protection' #758914
|
||||||
|
filter-flags '-fstack-protector*' #870136
|
||||||
|
filter-flags '-fuse-ld=*'
|
||||||
|
filter-flags '-mfunction-return=thunk*' #878849
|
||||||
|
fi
|
||||||
|
|
||||||
|
CHOST_amd64=x86_64-w64-mingw32
|
||||||
|
CHOST_x86=i686-w64-mingw32
|
||||||
|
CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
|
||||||
|
|
||||||
|
strip-unsupported-flags
|
||||||
|
fi
|
||||||
|
|
||||||
|
multilib-minimal_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
# multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
|
||||||
|
# unset again so meson eclass will set ${CHOST}-gcc + others
|
||||||
|
use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
|
||||||
|
|
||||||
|
local emesonargs=(
|
||||||
|
--prefix="${EPREFIX}"/usr/lib/${PN}
|
||||||
|
--{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
|
||||||
|
$(meson_use {,enable_}d3d9)
|
||||||
|
$(meson_use {,enable_}d3d10)
|
||||||
|
$(meson_use {,enable_}d3d11)
|
||||||
|
$(meson_use {,enable_}dxgi)
|
||||||
|
$(usev !debug --strip) # portage won't strip .dll, so allow it here
|
||||||
|
)
|
||||||
|
|
||||||
|
meson_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
dobin setup_dxvk.sh
|
||||||
|
dodoc README.md dxvk.conf
|
||||||
|
|
||||||
|
find "${ED}" -type f -name '*.a' -delete || die
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
[[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [[ ! ${REPLACING_VERSIONS} ]]; then
|
||||||
|
elog "To enable ${PN} on a wine prefix, you can run the following command:"
|
||||||
|
elog
|
||||||
|
elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
|
||||||
|
elog
|
||||||
|
elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
|
||||||
|
elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
|
||||||
|
elog "removed upstream, handling may change in the future."
|
||||||
|
elif [[ -v DXVK_HAD_OVERLAY ]]; then
|
||||||
|
# temporary warning until this version is more widely used
|
||||||
|
elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
|
||||||
|
elog "If you were using symbolic links in wine prefixes it may be necessary to"
|
||||||
|
elog "refresh them by re-running the command:"
|
||||||
|
elog
|
||||||
|
elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
|
||||||
|
elog
|
||||||
|
elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
|
||||||
|
elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! ${REPLACING_VERSIONS##* } ]] ||
|
||||||
|
ver_test ${REPLACING_VERSIONS##* } -lt 2.0
|
||||||
|
then
|
||||||
|
elog
|
||||||
|
elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:"
|
||||||
|
elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
|
||||||
|
elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support"
|
||||||
|
fi
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
Stop cargo from attempting to update it, we're already unpacking same revision.
|
||||||
|
--- a/Cargo.toml
|
||||||
|
+++ b/Cargo.toml
|
||||||
|
@@ -72,4 +72,2 @@
|
||||||
|
inherits = "release"
|
||||||
|
|
||||||
|
-[patch.crates-io]
|
||||||
|
-naga = { git = "https://github.com/gfx-rs/naga", rev = "1be8024" }
|
||||||
|
\ No newline at end of file
|
@ -0,0 +1,614 @@
|
|||||||
|
# Copyright 2021-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
CRATES="
|
||||||
|
Inflector-0.11.4
|
||||||
|
addr2line-0.19.0
|
||||||
|
adler-1.0.2
|
||||||
|
adler32-1.2.0
|
||||||
|
ahash-0.7.6
|
||||||
|
aho-corasick-0.7.20
|
||||||
|
aliasable-0.1.3
|
||||||
|
alsa-0.6.0
|
||||||
|
alsa-sys-0.3.1
|
||||||
|
android_system_properties-0.1.5
|
||||||
|
anyhow-1.0.68
|
||||||
|
approx-0.5.1
|
||||||
|
arboard-3.2.0
|
||||||
|
arrayref-0.3.6
|
||||||
|
arrayvec-0.5.2
|
||||||
|
arrayvec-0.7.2
|
||||||
|
ash-0.37.2+1.3.238
|
||||||
|
async-channel-1.8.0
|
||||||
|
atk-sys-0.15.1
|
||||||
|
atty-0.2.14
|
||||||
|
autocfg-1.1.0
|
||||||
|
backtrace-0.3.67
|
||||||
|
base-x-0.2.11
|
||||||
|
base64-0.13.1
|
||||||
|
base64-0.21.0
|
||||||
|
bindgen-0.61.0
|
||||||
|
bit-set-0.5.3
|
||||||
|
bit-vec-0.6.3
|
||||||
|
bit_field-0.10.1
|
||||||
|
bitflags-1.3.2
|
||||||
|
bitstream-io-1.6.0
|
||||||
|
bitvec-0.19.6
|
||||||
|
block-0.1.6
|
||||||
|
block-buffer-0.10.3
|
||||||
|
bstr-0.2.17
|
||||||
|
bumpalo-3.11.1
|
||||||
|
bytemuck-1.12.3
|
||||||
|
bytemuck_derive-1.3.0
|
||||||
|
byteorder-1.4.3
|
||||||
|
bytes-1.3.0
|
||||||
|
cairo-sys-rs-0.15.1
|
||||||
|
calloop-0.10.4
|
||||||
|
castaway-0.1.2
|
||||||
|
cc-1.0.77
|
||||||
|
cesu8-1.1.0
|
||||||
|
cexpr-0.6.0
|
||||||
|
cfg-expr-0.11.0
|
||||||
|
cfg-if-0.1.10
|
||||||
|
cfg-if-1.0.0
|
||||||
|
chrono-0.4.23
|
||||||
|
clang-sys-1.4.0
|
||||||
|
clap-4.0.32
|
||||||
|
clap_derive-4.0.21
|
||||||
|
clap_lex-0.3.0
|
||||||
|
clipboard-win-4.4.2
|
||||||
|
cmake-0.1.49
|
||||||
|
cocoa-0.24.1
|
||||||
|
cocoa-foundation-0.1.0
|
||||||
|
codespan-reporting-0.11.1
|
||||||
|
color_quant-1.1.0
|
||||||
|
colored-2.0.0
|
||||||
|
com-rs-0.2.1
|
||||||
|
combine-4.6.6
|
||||||
|
concurrent-queue-2.0.0
|
||||||
|
console-0.15.4
|
||||||
|
console_error_panic_hook-0.1.7
|
||||||
|
convert_case-0.6.0
|
||||||
|
cookie-factory-0.3.2
|
||||||
|
core-foundation-0.9.3
|
||||||
|
core-foundation-sys-0.8.3
|
||||||
|
core-graphics-0.22.3
|
||||||
|
core-graphics-types-0.1.1
|
||||||
|
core-text-19.2.0
|
||||||
|
coreaudio-rs-0.10.0
|
||||||
|
coreaudio-sys-0.2.11
|
||||||
|
cpal-0.14.2
|
||||||
|
cpufeatures-0.2.5
|
||||||
|
crc-3.0.0
|
||||||
|
crc-catalog-2.1.0
|
||||||
|
crc32fast-1.3.2
|
||||||
|
crossbeam-channel-0.5.6
|
||||||
|
crossbeam-deque-0.8.2
|
||||||
|
crossbeam-epoch-0.9.13
|
||||||
|
crossbeam-utils-0.8.14
|
||||||
|
crossfont-0.5.1
|
||||||
|
crunchy-0.2.2
|
||||||
|
crypto-common-0.1.6
|
||||||
|
csv-1.1.6
|
||||||
|
csv-core-0.1.10
|
||||||
|
ctor-0.1.26
|
||||||
|
cty-0.2.2
|
||||||
|
curl-0.4.44
|
||||||
|
curl-sys-0.4.59+curl-7.86.0
|
||||||
|
cxx-1.0.83
|
||||||
|
cxx-build-1.0.83
|
||||||
|
cxxbridge-flags-1.0.83
|
||||||
|
cxxbridge-macro-1.0.83
|
||||||
|
darling-0.13.4
|
||||||
|
darling-0.14.2
|
||||||
|
darling_core-0.13.4
|
||||||
|
darling_core-0.14.2
|
||||||
|
darling_macro-0.13.4
|
||||||
|
darling_macro-0.14.2
|
||||||
|
data-encoding-2.3.3
|
||||||
|
derive-try-from-primitive-1.0.0
|
||||||
|
diff-0.1.13
|
||||||
|
digest-0.10.6
|
||||||
|
dirs-4.0.0
|
||||||
|
dirs-sys-0.3.7
|
||||||
|
discard-1.0.4
|
||||||
|
dispatch-0.2.0
|
||||||
|
dlib-0.5.0
|
||||||
|
downcast-rs-1.2.0
|
||||||
|
dwrote-0.11.0
|
||||||
|
either-1.8.0
|
||||||
|
embed-resource-1.8.0
|
||||||
|
encode_unicode-0.3.6
|
||||||
|
encoding_rs-0.8.31
|
||||||
|
enum-map-2.4.2
|
||||||
|
enum-map-derive-0.11.0
|
||||||
|
enumset-1.0.12
|
||||||
|
enumset_derive-0.6.1
|
||||||
|
env_logger-0.10.0
|
||||||
|
errno-0.2.8
|
||||||
|
errno-dragonfly-0.1.2
|
||||||
|
error-code-2.3.1
|
||||||
|
euclid-0.22.7
|
||||||
|
event-listener-2.5.3
|
||||||
|
expat-sys-2.1.6
|
||||||
|
exr-1.5.2
|
||||||
|
fastrand-1.8.0
|
||||||
|
flate2-1.0.25
|
||||||
|
float_next_after-0.1.5
|
||||||
|
flume-0.10.14
|
||||||
|
fnv-1.0.7
|
||||||
|
foreign-types-0.3.2
|
||||||
|
foreign-types-0.5.0
|
||||||
|
foreign-types-macros-0.2.2
|
||||||
|
foreign-types-shared-0.1.1
|
||||||
|
foreign-types-shared-0.3.1
|
||||||
|
form_urlencoded-1.1.0
|
||||||
|
freetype-rs-0.26.0
|
||||||
|
freetype-sys-0.13.1
|
||||||
|
funty-1.1.0
|
||||||
|
futures-0.3.25
|
||||||
|
futures-channel-0.3.25
|
||||||
|
futures-core-0.3.25
|
||||||
|
futures-executor-0.3.25
|
||||||
|
futures-io-0.3.25
|
||||||
|
futures-lite-1.12.0
|
||||||
|
futures-macro-0.3.25
|
||||||
|
futures-sink-0.3.25
|
||||||
|
futures-task-0.3.25
|
||||||
|
futures-util-0.3.25
|
||||||
|
fxhash-0.2.1
|
||||||
|
gdk-pixbuf-sys-0.15.10
|
||||||
|
gdk-sys-0.15.1
|
||||||
|
generational-arena-0.2.8
|
||||||
|
generator-0.7.2
|
||||||
|
generic-array-0.14.6
|
||||||
|
gethostname-0.2.3
|
||||||
|
getrandom-0.2.8
|
||||||
|
gif-0.11.4
|
||||||
|
gif-0.12.0
|
||||||
|
gimli-0.27.0
|
||||||
|
gio-sys-0.15.10
|
||||||
|
glib-sys-0.15.10
|
||||||
|
glob-0.3.0
|
||||||
|
gobject-sys-0.15.10
|
||||||
|
gpu-alloc-0.5.3
|
||||||
|
gpu-alloc-types-0.2.0
|
||||||
|
gpu-allocator-0.21.0
|
||||||
|
gpu-descriptor-0.2.3
|
||||||
|
gpu-descriptor-types-0.1.1
|
||||||
|
gtk-sys-0.15.3
|
||||||
|
half-2.1.0
|
||||||
|
hashbrown-0.12.3
|
||||||
|
hassle-rs-0.9.0
|
||||||
|
heck-0.4.0
|
||||||
|
hermit-abi-0.1.19
|
||||||
|
hermit-abi-0.2.6
|
||||||
|
hexf-parse-0.2.1
|
||||||
|
http-0.2.8
|
||||||
|
humantime-2.1.0
|
||||||
|
iana-time-zone-0.1.53
|
||||||
|
iana-time-zone-haiku-0.1.1
|
||||||
|
ident_case-1.0.1
|
||||||
|
idna-0.3.0
|
||||||
|
image-0.24.5
|
||||||
|
indexmap-1.9.2
|
||||||
|
indicatif-0.17.2
|
||||||
|
insta-1.26.0
|
||||||
|
instant-0.1.12
|
||||||
|
io-lifetimes-1.0.3
|
||||||
|
is-terminal-0.4.1
|
||||||
|
isahc-1.7.2
|
||||||
|
itoa-0.4.8
|
||||||
|
itoa-1.0.4
|
||||||
|
jni-0.19.0
|
||||||
|
jni-0.20.0
|
||||||
|
jni-sys-0.3.0
|
||||||
|
jobserver-0.1.25
|
||||||
|
jpeg-decoder-0.3.0
|
||||||
|
js-sys-0.3.60
|
||||||
|
khronos-egl-4.1.0
|
||||||
|
lazy_static-1.4.0
|
||||||
|
lazycell-1.3.0
|
||||||
|
lebe-0.5.2
|
||||||
|
lexical-core-0.7.6
|
||||||
|
libc-0.2.138
|
||||||
|
libflate-1.2.0
|
||||||
|
libflate_lz77-1.1.0
|
||||||
|
libloading-0.7.4
|
||||||
|
libm-0.2.6
|
||||||
|
libnghttp2-sys-0.1.7+1.45.0
|
||||||
|
libz-sys-1.1.8
|
||||||
|
link-cplusplus-1.0.7
|
||||||
|
linked-hash-map-0.5.6
|
||||||
|
linux-raw-sys-0.1.4
|
||||||
|
lock_api-0.4.9
|
||||||
|
log-0.4.17
|
||||||
|
loom-0.5.6
|
||||||
|
lyon-1.0.1
|
||||||
|
lyon_algorithms-1.0.2
|
||||||
|
lyon_geom-1.0.4
|
||||||
|
lyon_path-1.0.3
|
||||||
|
lyon_tessellation-1.0.7
|
||||||
|
lzma-rs-0.3.0
|
||||||
|
mach-0.3.2
|
||||||
|
malloc_buf-0.0.6
|
||||||
|
matchers-0.1.0
|
||||||
|
memchr-2.5.0
|
||||||
|
memmap2-0.5.8
|
||||||
|
memoffset-0.6.5
|
||||||
|
memoffset-0.7.1
|
||||||
|
metal-0.24.0
|
||||||
|
mime-0.3.16
|
||||||
|
minimal-lexical-0.2.1
|
||||||
|
miniz_oxide-0.6.2
|
||||||
|
mio-0.8.5
|
||||||
|
nanorand-0.7.0
|
||||||
|
ndk-0.6.0
|
||||||
|
ndk-0.7.0
|
||||||
|
ndk-context-0.1.1
|
||||||
|
ndk-glue-0.7.0
|
||||||
|
ndk-macro-0.3.0
|
||||||
|
ndk-sys-0.3.0
|
||||||
|
ndk-sys-0.4.1+23.1.7779620
|
||||||
|
nix-0.23.2
|
||||||
|
nix-0.24.3
|
||||||
|
nix-0.25.1
|
||||||
|
nom-6.1.2
|
||||||
|
nom-7.1.1
|
||||||
|
nu-ansi-term-0.46.0
|
||||||
|
num-bigint-0.4.3
|
||||||
|
num-complex-0.4.2
|
||||||
|
num-derive-0.3.3
|
||||||
|
num-integer-0.1.45
|
||||||
|
num-rational-0.4.1
|
||||||
|
num-traits-0.2.15
|
||||||
|
num_cpus-1.14.0
|
||||||
|
num_enum-0.5.7
|
||||||
|
num_enum_derive-0.5.7
|
||||||
|
number_prefix-0.4.0
|
||||||
|
objc-0.2.7
|
||||||
|
objc-foundation-0.1.1
|
||||||
|
objc_exception-0.1.2
|
||||||
|
objc_id-0.1.1
|
||||||
|
object-0.30.1
|
||||||
|
oboe-0.4.6
|
||||||
|
oboe-sys-0.4.5
|
||||||
|
once_cell-1.17.0
|
||||||
|
openssl-probe-0.1.5
|
||||||
|
openssl-sys-0.9.79
|
||||||
|
os_info-3.5.1
|
||||||
|
os_str_bytes-6.4.1
|
||||||
|
ouroboros-0.15.5
|
||||||
|
ouroboros_macro-0.15.5
|
||||||
|
output_vt100-0.1.3
|
||||||
|
overload-0.1.1
|
||||||
|
pango-sys-0.15.10
|
||||||
|
parking-2.0.0
|
||||||
|
parking_lot-0.12.1
|
||||||
|
parking_lot_core-0.9.5
|
||||||
|
path-slash-0.2.1
|
||||||
|
peeking_take_while-0.1.2
|
||||||
|
percent-encoding-2.2.0
|
||||||
|
pin-project-1.0.12
|
||||||
|
pin-project-internal-1.0.12
|
||||||
|
pin-project-lite-0.2.9
|
||||||
|
pin-utils-0.1.0
|
||||||
|
pkg-config-0.3.26
|
||||||
|
png-0.17.7
|
||||||
|
polling-2.5.2
|
||||||
|
portable-atomic-0.3.17
|
||||||
|
pp-rs-0.2.1
|
||||||
|
ppv-lite86-0.2.17
|
||||||
|
pretty_assertions-1.3.0
|
||||||
|
primal-check-0.3.3
|
||||||
|
proc-macro-crate-1.2.1
|
||||||
|
proc-macro-error-1.0.4
|
||||||
|
proc-macro-error-attr-1.0.4
|
||||||
|
proc-macro2-1.0.49
|
||||||
|
profiling-1.0.7
|
||||||
|
profiling-procmacros-1.0.7
|
||||||
|
quote-1.0.23
|
||||||
|
radium-0.5.3
|
||||||
|
rand-0.8.5
|
||||||
|
rand_chacha-0.3.1
|
||||||
|
rand_core-0.6.4
|
||||||
|
range-alloc-0.1.2
|
||||||
|
raw-window-handle-0.4.3
|
||||||
|
raw-window-handle-0.5.0
|
||||||
|
rayon-1.6.1
|
||||||
|
rayon-core-1.10.1
|
||||||
|
redox_syscall-0.2.16
|
||||||
|
redox_users-0.4.3
|
||||||
|
regex-1.7.1
|
||||||
|
regex-automata-0.1.10
|
||||||
|
regex-syntax-0.6.28
|
||||||
|
regress-0.4.1
|
||||||
|
renderdoc-sys-0.7.1
|
||||||
|
rfd-0.10.0
|
||||||
|
rle-decode-fast-1.0.3
|
||||||
|
ron-0.8.0
|
||||||
|
rustc-demangle-0.1.21
|
||||||
|
rustc-hash-1.1.0
|
||||||
|
rustc_version-0.2.3
|
||||||
|
rustc_version-0.4.0
|
||||||
|
rustdct-0.7.1
|
||||||
|
rustfft-6.1.0
|
||||||
|
rustix-0.36.5
|
||||||
|
rustversion-1.0.11
|
||||||
|
ryu-1.0.11
|
||||||
|
safe_arch-0.5.2
|
||||||
|
safe_arch-0.6.0
|
||||||
|
same-file-1.0.6
|
||||||
|
schannel-0.1.20
|
||||||
|
scoped-tls-1.0.1
|
||||||
|
scoped_threadpool-0.1.9
|
||||||
|
scopeguard-1.1.0
|
||||||
|
scratch-1.0.2
|
||||||
|
sctk-adwaita-0.4.3
|
||||||
|
semver-0.9.0
|
||||||
|
semver-1.0.14
|
||||||
|
semver-parser-0.7.0
|
||||||
|
serde-1.0.152
|
||||||
|
serde-wasm-bindgen-0.4.5
|
||||||
|
serde-xml-rs-0.6.0
|
||||||
|
serde_derive-1.0.152
|
||||||
|
serde_json-1.0.91
|
||||||
|
servo-fontconfig-0.5.1
|
||||||
|
servo-fontconfig-sys-5.1.0
|
||||||
|
sha1-0.6.1
|
||||||
|
sha1_smol-1.0.0
|
||||||
|
sha2-0.10.6
|
||||||
|
sharded-slab-0.1.4
|
||||||
|
shlex-1.1.0
|
||||||
|
similar-2.2.1
|
||||||
|
simple_asn1-0.6.2
|
||||||
|
slab-0.4.7
|
||||||
|
slotmap-1.0.6
|
||||||
|
sluice-0.5.5
|
||||||
|
smallvec-1.10.0
|
||||||
|
smithay-client-toolkit-0.16.0
|
||||||
|
socket2-0.4.7
|
||||||
|
spin-0.9.4
|
||||||
|
spirv-0.2.0+1.5.4
|
||||||
|
static_assertions-1.1.0
|
||||||
|
stdweb-0.4.20
|
||||||
|
stdweb-derive-0.5.3
|
||||||
|
stdweb-internal-macros-0.2.9
|
||||||
|
stdweb-internal-runtime-0.1.5
|
||||||
|
str-buf-1.0.6
|
||||||
|
strength_reduce-0.2.4
|
||||||
|
strsim-0.10.0
|
||||||
|
symphonia-0.5.1
|
||||||
|
symphonia-bundle-mp3-0.5.1
|
||||||
|
symphonia-core-0.5.1
|
||||||
|
symphonia-metadata-0.5.1
|
||||||
|
syn-1.0.107
|
||||||
|
synstructure-0.12.6
|
||||||
|
system-deps-6.0.3
|
||||||
|
tap-1.0.1
|
||||||
|
termcolor-1.1.3
|
||||||
|
thiserror-1.0.38
|
||||||
|
thiserror-impl-1.0.38
|
||||||
|
thread_local-1.1.4
|
||||||
|
threadpool-1.8.1
|
||||||
|
tiff-0.8.1
|
||||||
|
time-0.3.17
|
||||||
|
time-core-0.1.0
|
||||||
|
time-macros-0.2.6
|
||||||
|
tiny-skia-0.7.0
|
||||||
|
tiny-skia-path-0.7.0
|
||||||
|
tinyvec-1.6.0
|
||||||
|
tinyvec_macros-0.1.0
|
||||||
|
toml-0.5.10
|
||||||
|
tracing-0.1.37
|
||||||
|
tracing-attributes-0.1.23
|
||||||
|
tracing-core-0.1.30
|
||||||
|
tracing-futures-0.2.5
|
||||||
|
tracing-log-0.1.3
|
||||||
|
tracing-subscriber-0.3.16
|
||||||
|
tracing-tracy-0.10.0
|
||||||
|
tracing-wasm-0.2.1
|
||||||
|
tracy-client-0.14.2
|
||||||
|
tracy-client-sys-0.19.0
|
||||||
|
transpose-0.2.2
|
||||||
|
typed-arena-2.0.2
|
||||||
|
typenum-1.16.0
|
||||||
|
unicode-bidi-0.3.8
|
||||||
|
unicode-ident-1.0.5
|
||||||
|
unicode-normalization-0.1.22
|
||||||
|
unicode-segmentation-1.10.0
|
||||||
|
unicode-width-0.1.10
|
||||||
|
unicode-xid-0.2.4
|
||||||
|
url-2.3.1
|
||||||
|
valuable-0.1.0
|
||||||
|
vcpkg-0.2.15
|
||||||
|
vec_map-0.8.2
|
||||||
|
version-compare-0.1.1
|
||||||
|
version_check-0.9.4
|
||||||
|
vswhom-0.1.0
|
||||||
|
vswhom-sys-0.1.2
|
||||||
|
waker-fn-1.1.0
|
||||||
|
walkdir-2.3.2
|
||||||
|
wasi-0.11.0+wasi-snapshot-preview1
|
||||||
|
wasm-bindgen-0.2.83
|
||||||
|
wasm-bindgen-backend-0.2.83
|
||||||
|
wasm-bindgen-futures-0.4.33
|
||||||
|
wasm-bindgen-macro-0.2.83
|
||||||
|
wasm-bindgen-macro-support-0.2.83
|
||||||
|
wasm-bindgen-shared-0.2.83
|
||||||
|
wayland-client-0.29.5
|
||||||
|
wayland-commons-0.29.5
|
||||||
|
wayland-cursor-0.29.5
|
||||||
|
wayland-protocols-0.29.5
|
||||||
|
wayland-scanner-0.29.5
|
||||||
|
wayland-sys-0.29.5
|
||||||
|
weak-table-0.3.2
|
||||||
|
web-sys-0.3.60
|
||||||
|
webbrowser-0.8.4
|
||||||
|
weezl-0.1.7
|
||||||
|
wepoll-ffi-0.1.2
|
||||||
|
wide-0.7.5
|
||||||
|
widestring-0.5.1
|
||||||
|
winapi-0.3.9
|
||||||
|
winapi-i686-pc-windows-gnu-0.4.0
|
||||||
|
winapi-util-0.1.5
|
||||||
|
winapi-wsapoll-0.1.1
|
||||||
|
winapi-x86_64-pc-windows-gnu-0.4.0
|
||||||
|
windows-0.37.0
|
||||||
|
windows-0.39.0
|
||||||
|
windows-0.43.0
|
||||||
|
windows-sys-0.36.1
|
||||||
|
windows-sys-0.42.0
|
||||||
|
windows_aarch64_gnullvm-0.42.0
|
||||||
|
windows_aarch64_msvc-0.36.1
|
||||||
|
windows_aarch64_msvc-0.37.0
|
||||||
|
windows_aarch64_msvc-0.39.0
|
||||||
|
windows_aarch64_msvc-0.42.0
|
||||||
|
windows_i686_gnu-0.36.1
|
||||||
|
windows_i686_gnu-0.37.0
|
||||||
|
windows_i686_gnu-0.39.0
|
||||||
|
windows_i686_gnu-0.42.0
|
||||||
|
windows_i686_msvc-0.36.1
|
||||||
|
windows_i686_msvc-0.37.0
|
||||||
|
windows_i686_msvc-0.39.0
|
||||||
|
windows_i686_msvc-0.42.0
|
||||||
|
windows_x86_64_gnu-0.36.1
|
||||||
|
windows_x86_64_gnu-0.37.0
|
||||||
|
windows_x86_64_gnu-0.39.0
|
||||||
|
windows_x86_64_gnu-0.42.0
|
||||||
|
windows_x86_64_gnullvm-0.42.0
|
||||||
|
windows_x86_64_msvc-0.36.1
|
||||||
|
windows_x86_64_msvc-0.37.0
|
||||||
|
windows_x86_64_msvc-0.39.0
|
||||||
|
windows_x86_64_msvc-0.42.0
|
||||||
|
winit-0.27.5
|
||||||
|
winreg-0.10.1
|
||||||
|
wio-0.2.2
|
||||||
|
wyz-0.2.0
|
||||||
|
x11-dl-2.20.1
|
||||||
|
x11rb-0.10.1
|
||||||
|
x11rb-protocol-0.10.0
|
||||||
|
xcursor-0.3.4
|
||||||
|
xml-rs-0.8.4
|
||||||
|
yaml-rust-0.4.5
|
||||||
|
yansi-0.5.1"
|
||||||
|
inherit cargo desktop flag-o-matic xdg
|
||||||
|
|
||||||
|
# 0(github) 1(repo) 2(commit hash) 3(crate_name:workspace,...)
|
||||||
|
# note: if this gets too hard to maintain, should switch to a vendor tarball
|
||||||
|
RUFFLE_GIT=(
|
||||||
|
"Aaron1011 naga_oil f4474b53285a85fe67cc35372c9d7ff4517cb556 naga_oil:."
|
||||||
|
"RustAudio dasp f05a703d247bb504d7e812b51e95f3765d9c5e94 dasp"
|
||||||
|
"gfx-rs d3d12-rs a990c93ec64eeab78f2292763d0715da9dba1d59 d3d12:."
|
||||||
|
"gfx-rs naga 1be8024bda3594987b417bead5024b98be9ab521 naga:."
|
||||||
|
"gfx-rs rspirv b969f175d5663258b4891e44b76c1544da9661ab rspirv:rspirv"
|
||||||
|
"gfx-rs wgpu c5851275c59b1d5d949b142d6aa973d0bb638181 wgpu:wgpu"
|
||||||
|
"grovesNL glow c8a011fcd57a5c68cc917ed394baa484bdefc909 glow:."
|
||||||
|
"kyren gc-arena 318b2ea594dcdadd01f7789025e3b3940be96b2c gc-arena:src/gc-arena"
|
||||||
|
"ruffle-rs h263-rs 023e14c73e565c4c778d41f66cfbac5ece6419b2 h263-rs:h263,h263-rs-yuv:yuv"
|
||||||
|
"ruffle-rs nellymoser 4a33521c29a918950df8ae9fe07e527ac65553f5 nellymoser-rs:."
|
||||||
|
"ruffle-rs nihav-vp6 9416fcc9fc8aab8f4681aa9093b42922214abbd3 nihav_codec_support:nihav-codec-support,nihav_core:nihav-core,nihav_duck:nihav-duck"
|
||||||
|
"ruffle-rs quick-xml 8496365ec1412eb5ba5de350937b6bce352fa0ba quick-xml:."
|
||||||
|
"ruffle-rs rust-flash-lso 19fecd07b9888c4bdaa66771c468095783b52bed flash-lso"
|
||||||
|
)
|
||||||
|
ruffle_uris() {
|
||||||
|
cargo_crate_uris
|
||||||
|
|
||||||
|
local g
|
||||||
|
for g in "${RUFFLE_GIT[@]}"; do
|
||||||
|
g=(${g})
|
||||||
|
echo "https://github.com/${g[0]}/${g[1]}/archive/${g[2]}.tar.gz -> ${PN}-${g[1]}-${g[2]::10}.tar.gz"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}"
|
||||||
|
MY_P="${PN}-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="Flash Player emulator written in Rust"
|
||||||
|
HOMEPAGE="https://ruffle.rs/"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
|
||||||
|
$(ruffle_uris)"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0 BSD BSD-2 Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB curl"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
|
||||||
|
# dlopen: libX* (see winit+x11-dl crates)
|
||||||
|
RDEPEND="
|
||||||
|
dev-libs/glib:2
|
||||||
|
dev-libs/openssl:=
|
||||||
|
media-libs/alsa-lib
|
||||||
|
media-libs/fontconfig
|
||||||
|
media-libs/freetype
|
||||||
|
sys-libs/zlib:=
|
||||||
|
x11-libs/gtk+:3
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXcursor
|
||||||
|
x11-libs/libXrandr
|
||||||
|
x11-libs/libXrender"
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
x11-base/xorg-proto"
|
||||||
|
BDEPEND="
|
||||||
|
virtual/jre:*
|
||||||
|
virtual/pkgconfig
|
||||||
|
>=virtual/rust-1.64"
|
||||||
|
|
||||||
|
QA_FLAGS_IGNORED="usr/bin/${PN}.*"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${P}-no-patch-naga.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# use [patch] directive to register git snapshots of needed crates
|
||||||
|
local crate g
|
||||||
|
for g in "${RUFFLE_GIT[@]}"; do
|
||||||
|
g=(${g})
|
||||||
|
echo
|
||||||
|
echo "[patch.\"https://github.com/${g[0]}/${g[1]}\"]"
|
||||||
|
for crate in ${g[3]//,/ }; do
|
||||||
|
echo "${crate%:*} = { path = \"../${g[1]}-${g[2]}/${crate#*:}\" }"
|
||||||
|
done
|
||||||
|
done >> Cargo.toml || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
filter-lto # does not play well with C code in crates
|
||||||
|
|
||||||
|
cargo_src_compile --bins # note: configure --bins would skip tests
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dodoc README.md
|
||||||
|
|
||||||
|
newicon web/packages/extension/assets/images/icon180.png ${PN}.png
|
||||||
|
make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \
|
||||||
|
"MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;"
|
||||||
|
|
||||||
|
cd target/$(usex debug{,} release) || die
|
||||||
|
|
||||||
|
newbin ${PN}_desktop ${PN}
|
||||||
|
newbin exporter ${PN}_exporter
|
||||||
|
dobin ${PN}_scanner
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
xdg_pkg_postinst
|
||||||
|
|
||||||
|
if [[ ! ${REPLACING_VERSIONS} ]]; then
|
||||||
|
elog "${PN} is experimental software that is still under heavy development"
|
||||||
|
elog "and only receiving nightly releases. Plans in Gentoo is to update"
|
||||||
|
elog "roughly every months if no known major regressions (feel free to"
|
||||||
|
elog "report if you feel a newer nightly is needed ahead of time)."
|
||||||
|
elog
|
||||||
|
elog "There is currently no plans to support wasm builds / browser"
|
||||||
|
elog "extensions, this provides the desktop viewer and other tools."
|
||||||
|
fi
|
||||||
|
}
|
@ -1 +1,2 @@
|
|||||||
DIST virt-what-1.21.tar.gz 478767 BLAKE2B 7c48b84d9f1fe5f734921f68848b84beee2e5687a6ebfbc422a1349063e6a83c932a89cb2936239da6be033b72e6010694314cf106486cd6c54cd02652bc61a6 SHA512 14ace184c4aee5a09b855c1f5acaa619057aed1b9bf03c91ed1003e6a39ea69162c9fe452ea8162c7fe29825e0e2202cfc7d76e82f0cecea3e32405e5eb9f717
|
DIST virt-what-1.21.tar.gz 478767 BLAKE2B 7c48b84d9f1fe5f734921f68848b84beee2e5687a6ebfbc422a1349063e6a83c932a89cb2936239da6be033b72e6010694314cf106486cd6c54cd02652bc61a6 SHA512 14ace184c4aee5a09b855c1f5acaa619057aed1b9bf03c91ed1003e6a39ea69162c9fe452ea8162c7fe29825e0e2202cfc7d76e82f0cecea3e32405e5eb9f717
|
||||||
|
DIST virt-what-1.25.tar.gz 516445 BLAKE2B 3f3403a3954e359005754e1ad2aba545a824ff9eb77e787615235c1042735f99a58d89f755c265324c16a9d0467e8332a67dff88b3ac15ae21a4f4f7a6dd3136 SHA512 0147b4b44ae0ee685977aa34dfa9bf30ae8e0eb31b7a6d5c0097d16f830fa6fb6afd7156964fc79f3fd5e82b2f68d921fd5306245cc63a2140f6dddc7fdd0e98
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DESCRIPTION="Detects if the current machine is running in a virtual machine"
|
||||||
|
HOMEPAGE="https://people.redhat.com/~rjones/virt-what/"
|
||||||
|
SRC_URI="https://people.redhat.com/~rjones/virt-what/files/${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||||
|
IUSE="dmi"
|
||||||
|
|
||||||
|
DEPEND="dev-lang/perl"
|
||||||
|
RDEPEND="app-shells/bash
|
||||||
|
dmi? ( sys-apps/dmidecode )"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# Pretends to be POSIX sh while it is not
|
||||||
|
sed -e 's:/bin/sh:/bin/bash:' -i virt-what.in || die
|
||||||
|
}
|
@ -1,4 +1,6 @@
|
|||||||
DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5
|
DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5
|
||||||
DIST wine-7.22.tar.xz 28974052 BLAKE2B c86466964817b916ee8f7b687f193eda8bdd3fb17152ab1565971e36f43b12b540033ac1c5fa5d15576041febd32cf1ea2955732c5386debcbda46fb3acca0f1 SHA512 bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc
|
DIST wine-7.22.tar.xz 28974052 BLAKE2B c86466964817b916ee8f7b687f193eda8bdd3fb17152ab1565971e36f43b12b540033ac1c5fa5d15576041febd32cf1ea2955732c5386debcbda46fb3acca0f1 SHA512 bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc
|
||||||
|
DIST wine-8.0.tar.xz 29054044 BLAKE2B baf8f96b665119c9f38a148a2472dbe8f6ca8d4641d9d09d48cb72cb4de2585c274b8b7981c2fa622ead6da2f087c57652e9b48edc8a17c0cfd6be9a36732f02 SHA512 53ba813b260a65a271ec575822725b97631f60038fb026dcc0fe66862711eedcc29a8feb29ff54ae4f64458f85c290d8f3838eff5e4c77a5420a7d2b951fef77
|
||||||
DIST wine-staging-7.19.tar.gz 9523048 BLAKE2B e53fd47af493cbdc4542f908a39557324d70ad67ff2e06c80296c006a63518e43988750cab2f4d3d9197fc9c8a1e61ed4d96bcc310b82b6cfc8ec12b941f1c5c SHA512 c51cb18c4ae00eccf414f5edda18ebf363674ba7cfa95da135b3a43b7c012c086d454d6ac32b22d98e611bb87e55c3e1ee95571a4a0c9713028b5ac38e8aed3f
|
DIST wine-staging-7.19.tar.gz 9523048 BLAKE2B e53fd47af493cbdc4542f908a39557324d70ad67ff2e06c80296c006a63518e43988750cab2f4d3d9197fc9c8a1e61ed4d96bcc310b82b6cfc8ec12b941f1c5c SHA512 c51cb18c4ae00eccf414f5edda18ebf363674ba7cfa95da135b3a43b7c012c086d454d6ac32b22d98e611bb87e55c3e1ee95571a4a0c9713028b5ac38e8aed3f
|
||||||
DIST wine-staging-7.22.tar.gz 9528424 BLAKE2B e41f24f924117259715505f4f9998ef23a657bca5b0e285feb7f9fd732e6b566a495f48ec59af09b1d4d51db522b051028f6cbba748256e939929fbf978f0e44 SHA512 5fdac19ec290c67767fac71abe07d9350ec431919c67a0f2d2df18ced20f1d3dddb921b3d5586d03add187c6281e1a691cc220e8d2d5ad4eeb94015721479d65
|
DIST wine-staging-7.22.tar.gz 9528424 BLAKE2B e41f24f924117259715505f4f9998ef23a657bca5b0e285feb7f9fd732e6b566a495f48ec59af09b1d4d51db522b051028f6cbba748256e939929fbf978f0e44 SHA512 5fdac19ec290c67767fac71abe07d9350ec431919c67a0f2d2df18ced20f1d3dddb921b3d5586d03add187c6281e1a691cc220e8d2d5ad4eeb94015721479d65
|
||||||
|
DIST wine-staging-8.0.tar.gz 9529620 BLAKE2B c9540195ea885d9f1e980232b0af471e92c61eb079cae35fdb3af5c13d4660b3466f751772440e38f15874082db296d16d1f1d68827a505b2dd949617eda0203 SHA512 76a729d7ced1ff634ddb455ddfaa66ca103b652f43cd152b57ada7431bb5fbb74f5e92bf2f4f329b6df6f5908130afad84e609cbce6df645d6cf8131e9b949f9
|
||||||
|
@ -0,0 +1,355 @@
|
|||||||
|
# Copyright 2022-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||||
|
inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
|
||||||
|
|
||||||
|
WINE_GECKO=2.47.3
|
||||||
|
WINE_MONO=7.4.0
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
|
||||||
|
WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
|
||||||
|
else
|
||||||
|
(( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
|
||||||
|
SRC_URI="
|
||||||
|
https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz
|
||||||
|
https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="-* ~amd64 ~x86"
|
||||||
|
fi
|
||||||
|
S="${WORKDIR}/wine-${PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||||
|
HOMEPAGE="https://wiki.winehq.org/Wine-Staging"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
|
||||||
|
SLOT="${PV}"
|
||||||
|
IUSE="
|
||||||
|
+X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
|
||||||
|
llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
|
||||||
|
+gstreamer kerberos +mingw +mono netapi nls odbc opencl +opengl
|
||||||
|
osmesa pcap perl pulseaudio samba scanner +sdl selinux +ssl
|
||||||
|
+truetype udev udisks +unwind usb v4l +vulkan +xcomposite xinerama"
|
||||||
|
REQUIRED_USE="
|
||||||
|
X? ( truetype )
|
||||||
|
crossdev-mingw? ( mingw )" # bug #551124 for truetype
|
||||||
|
|
||||||
|
# tests are non-trivial to run, can hang easily, don't play well with
|
||||||
|
# sandbox, and several need real opengl/vulkan or network access
|
||||||
|
RESTRICT="test"
|
||||||
|
|
||||||
|
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
|
||||||
|
WINE_DLOPEN_DEPEND="
|
||||||
|
X? (
|
||||||
|
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXrender[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||||
|
opengl? (
|
||||||
|
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
|
||||||
|
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||||
|
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
cups? ( net-print/cups[${MULTILIB_USEDEP}] )
|
||||||
|
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
|
||||||
|
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
|
||||||
|
netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
|
||||||
|
odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
|
||||||
|
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
|
||||||
|
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||||
|
truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
|
||||||
|
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||||
|
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||||
|
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )"
|
||||||
|
WINE_COMMON_DEPEND="
|
||||||
|
${WINE_DLOPEN_DEPEND}
|
||||||
|
X? (
|
||||||
|
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||||
|
capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
|
||||||
|
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||||
|
gstreamer? (
|
||||||
|
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||||
|
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
||||||
|
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||||
|
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||||
|
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||||
|
scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
|
||||||
|
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||||
|
unwind? (
|
||||||
|
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
|
||||||
|
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
|
||||||
|
RDEPEND="
|
||||||
|
${WINE_COMMON_DEPEND}
|
||||||
|
app-emulation/wine-desktop-common
|
||||||
|
dos? ( games-emulation/dosbox )
|
||||||
|
gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
|
||||||
|
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
|
||||||
|
mono? ( app-emulation/wine-mono:${WINE_MONO} )
|
||||||
|
perl? (
|
||||||
|
dev-lang/perl
|
||||||
|
dev-perl/XML-LibXML
|
||||||
|
)
|
||||||
|
samba? ( net-fs/samba[winbind] )
|
||||||
|
selinux? ( sec-policy/selinux-wine )
|
||||||
|
udisks? ( sys-fs/udisks:2 )"
|
||||||
|
DEPEND="
|
||||||
|
${WINE_COMMON_DEPEND}
|
||||||
|
sys-kernel/linux-headers
|
||||||
|
X? ( x11-base/xorg-proto )"
|
||||||
|
BDEPEND="
|
||||||
|
dev-lang/perl
|
||||||
|
sys-devel/binutils
|
||||||
|
sys-devel/bison
|
||||||
|
sys-devel/flex
|
||||||
|
virtual/pkgconfig
|
||||||
|
mingw? ( !crossdev-mingw? (
|
||||||
|
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
|
||||||
|
) )
|
||||||
|
nls? ( sys-devel/gettext )"
|
||||||
|
IDEPEND=">=app-eselect/eselect-wine-2"
|
||||||
|
|
||||||
|
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-7.17-noexecstack.patch
|
||||||
|
"${FILESDIR}"/${PN}-7.20-unwind.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
[[ ${MERGE_TYPE} == binary ]] && return
|
||||||
|
|
||||||
|
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
|
||||||
|
local mingw=-w64-mingw32
|
||||||
|
for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
|
||||||
|
if ! type -P ${mingw}-gcc >/dev/null; then
|
||||||
|
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
|
||||||
|
eerror "yourself by installing sys-devel/crossdev then running:"
|
||||||
|
eerror
|
||||||
|
eerror " crossdev --target ${mingw}"
|
||||||
|
eerror
|
||||||
|
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
|
||||||
|
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == *9999 ]]; then
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
|
||||||
|
git-r3_src_unpack
|
||||||
|
|
||||||
|
EGIT_COMMIT=$("${BASH}" "${EGIT_CHECKOUT_DIR}"/patches/patchinstall.sh --upstream-commit) || die
|
||||||
|
EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local staging=(
|
||||||
|
./patchinstall.sh DESTDIR="${S}"
|
||||||
|
--all
|
||||||
|
--backend=eapply
|
||||||
|
--no-autoconf
|
||||||
|
-W winemenubuilder-Desktop_Icon_Path #652176
|
||||||
|
${MY_WINE_STAGING_CONF}
|
||||||
|
)
|
||||||
|
|
||||||
|
# source patcher in a subshell so can use eapply as a backend
|
||||||
|
ebegin "Running ${staging[*]}"
|
||||||
|
( cd ../${P}/patches && . "${staging[@]}" )
|
||||||
|
eend ${?} || die "Failed to apply the patchset"
|
||||||
|
|
||||||
|
# sanity check, bumping these has a history of oversights
|
||||||
|
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
|
||||||
|
dlls/appwiz.cpl/addons.c || die)
|
||||||
|
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
|
||||||
|
local gmfatal=
|
||||||
|
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
|
||||||
|
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# ensure .desktop calls this variant + slot
|
||||||
|
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
|
||||||
|
|
||||||
|
# always update for patches (including user's wrt #432348)
|
||||||
|
eautoreconf
|
||||||
|
tools/make_requests || die # perl
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
WINE_PREFIX=/usr/lib/${P}
|
||||||
|
WINE_DATADIR=/usr/share/${P}
|
||||||
|
|
||||||
|
local conf=(
|
||||||
|
--prefix="${EPREFIX}"${WINE_PREFIX}
|
||||||
|
--datadir="${EPREFIX}"${WINE_DATADIR}
|
||||||
|
--includedir="${EPREFIX}"/usr/include/${P}
|
||||||
|
--libdir="${EPREFIX}"${WINE_PREFIX}
|
||||||
|
--mandir="${EPREFIX}"${WINE_DATADIR}/man
|
||||||
|
$(use_enable gecko mshtml)
|
||||||
|
$(use_enable mono mscoree)
|
||||||
|
--disable-tests
|
||||||
|
$(use_with X x)
|
||||||
|
$(use_with alsa)
|
||||||
|
$(use_with capi)
|
||||||
|
$(use_with cups)
|
||||||
|
$(use_with fontconfig)
|
||||||
|
$(use_with gphoto2 gphoto)
|
||||||
|
$(use_with gstreamer)
|
||||||
|
$(use_with kerberos gssapi)
|
||||||
|
$(use_with kerberos krb5)
|
||||||
|
$(use_with mingw)
|
||||||
|
$(use_with netapi)
|
||||||
|
$(use_with nls gettext)
|
||||||
|
$(use_with opencl)
|
||||||
|
$(use_with opengl)
|
||||||
|
$(use_with osmesa)
|
||||||
|
--without-oss # media-sound/oss is not packaged (OSSv4)
|
||||||
|
$(use_with pcap)
|
||||||
|
$(use_with pulseaudio pulse)
|
||||||
|
$(use_with scanner sane)
|
||||||
|
$(use_with sdl)
|
||||||
|
$(use_with ssl gnutls)
|
||||||
|
$(use_with truetype freetype)
|
||||||
|
$(use_with udev)
|
||||||
|
$(use_with udisks dbus) # dbus is only used for udisks
|
||||||
|
$(use_with unwind)
|
||||||
|
$(use_with usb)
|
||||||
|
$(use_with v4l v4l2)
|
||||||
|
$(use_with vulkan)
|
||||||
|
$(use_with xcomposite)
|
||||||
|
$(use_with xinerama)
|
||||||
|
$(usev !odbc ac_cv_lib_soname_odbc=)
|
||||||
|
)
|
||||||
|
|
||||||
|
tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
|
||||||
|
filter-lto # build failure
|
||||||
|
use mingw || filter-flags -fno-plt # build failure
|
||||||
|
use custom-cflags || strip-flags # can break in obscure ways at runtime
|
||||||
|
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
|
||||||
|
|
||||||
|
# temporary workaround for tc-ld-force-bfd not yet enforcing with mold
|
||||||
|
# https://github.com/gentoo/gentoo/pull/28355
|
||||||
|
[[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
|
||||||
|
append-ldflags -fuse-ld=bfd
|
||||||
|
|
||||||
|
# build using upstream's way (--with-wine64)
|
||||||
|
# order matters: configure+compile 64->32, install 32->64
|
||||||
|
local -i bits
|
||||||
|
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
|
||||||
|
(
|
||||||
|
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
|
||||||
|
|
||||||
|
mkdir ../build${bits} || die
|
||||||
|
cd ../build${bits} || die
|
||||||
|
|
||||||
|
pe_arch=i386
|
||||||
|
if (( bits == 64 )); then
|
||||||
|
pe_arch=x86_64
|
||||||
|
: "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
|
||||||
|
conf+=( --enable-win64 )
|
||||||
|
elif use amd64; then
|
||||||
|
conf+=(
|
||||||
|
$(usev abi_x86_64 --with-wine64=../build64)
|
||||||
|
TARGETFLAGS=-m32 # for widl
|
||||||
|
)
|
||||||
|
# _setup is optional, but use over Wine's auto-detect (+#472038)
|
||||||
|
multilib_toolchain_setup x86
|
||||||
|
fi
|
||||||
|
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
|
||||||
|
|
||||||
|
if use mingw; then
|
||||||
|
# CROSSCC is no longer recognized by Wine, but still use for now
|
||||||
|
# (future handling for CROSS* variables is subject to changes)
|
||||||
|
conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
|
||||||
|
|
||||||
|
# use *FLAGS for mingw, but strip unsupported
|
||||||
|
: "${CROSSCFLAGS:=$(
|
||||||
|
# >=wine-7.21 configure.ac no longer adds -fno-strict by mistake
|
||||||
|
append-cflags '-fno-strict-aliasing'
|
||||||
|
filter-flags '-fstack-clash-protection' #758914
|
||||||
|
filter-flags '-fstack-protector*' #870136
|
||||||
|
filter-flags '-mfunction-return=thunk*' #878849
|
||||||
|
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
|
||||||
|
: "${CROSSLDFLAGS:=$(
|
||||||
|
filter-flags '-fuse-ld=*'
|
||||||
|
CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
|
||||||
|
export CROSS{C,LD}FLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE=${S} econf "${conf[@]}"
|
||||||
|
)
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
use abi_x86_64 && emake -C ../build64 # do first
|
||||||
|
use abi_x86_32 && emake -C ../build32
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
|
||||||
|
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
|
||||||
|
|
||||||
|
# symlink for plain 'wine' and install its man pages if 64bit-only #404331
|
||||||
|
if use abi_x86_64 && use !abi_x86_32; then
|
||||||
|
dosym wine64 ${WINE_PREFIX}/bin/wine
|
||||||
|
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
|
||||||
|
local man
|
||||||
|
for man in ../build64/loader/wine.*man; do
|
||||||
|
: "${man##*/wine}"
|
||||||
|
: "${_%.*}"
|
||||||
|
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
|
||||||
|
newins ${man} wine.1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
|
||||||
|
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
|
||||||
|
|
||||||
|
# create variant wrappers for eselect-wine
|
||||||
|
local bin
|
||||||
|
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
|
||||||
|
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# don't let portage try to strip PE files with the wrong
|
||||||
|
# strip executable and instead handle it here (saves ~120MB)
|
||||||
|
if use mingw; then
|
||||||
|
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
|
||||||
|
use debug ||
|
||||||
|
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
|
||||||
|
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
dodoc ANNOUNCE AUTHORS README* documentation/README*
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
eselect wine update --if-unset || die
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
eselect wine update --if-unset || die
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
DIST wine-7.0.1.tar.xz 27167768 BLAKE2B 9bf74e7077fe4b77611f8195feeb53fc6475bdaeac97dab5221942115d6108d8786f93d4a96745bad72afb074b15129fec9b0b2f10261d91c9a9b57bd2240ded SHA512 5a5258132fe30bfb5313454598b85e7d97a74d1e0c7ca7af16aa8c486e316ad34ab74a25fd9a403c98ad1f3280385232f7d159bb824f713e920a4a0dae62c944
|
DIST wine-7.0.1.tar.xz 27167768 BLAKE2B 9bf74e7077fe4b77611f8195feeb53fc6475bdaeac97dab5221942115d6108d8786f93d4a96745bad72afb074b15129fec9b0b2f10261d91c9a9b57bd2240ded SHA512 5a5258132fe30bfb5313454598b85e7d97a74d1e0c7ca7af16aa8c486e316ad34ab74a25fd9a403c98ad1f3280385232f7d159bb824f713e920a4a0dae62c944
|
||||||
DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5
|
DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5
|
||||||
DIST wine-7.22.tar.xz 28974052 BLAKE2B c86466964817b916ee8f7b687f193eda8bdd3fb17152ab1565971e36f43b12b540033ac1c5fa5d15576041febd32cf1ea2955732c5386debcbda46fb3acca0f1 SHA512 bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc
|
DIST wine-7.22.tar.xz 28974052 BLAKE2B c86466964817b916ee8f7b687f193eda8bdd3fb17152ab1565971e36f43b12b540033ac1c5fa5d15576041febd32cf1ea2955732c5386debcbda46fb3acca0f1 SHA512 bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc
|
||||||
|
DIST wine-8.0.tar.xz 29054044 BLAKE2B baf8f96b665119c9f38a148a2472dbe8f6ca8d4641d9d09d48cb72cb4de2585c274b8b7981c2fa622ead6da2f087c57652e9b48edc8a17c0cfd6be9a36732f02 SHA512 53ba813b260a65a271ec575822725b97631f60038fb026dcc0fe66862711eedcc29a8feb29ff54ae4f64458f85c290d8f3838eff5e4c77a5420a7d2b951fef77
|
||||||
|
@ -0,0 +1,325 @@
|
|||||||
|
# Copyright 2022-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||||
|
inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
|
||||||
|
|
||||||
|
WINE_GECKO=2.47.3
|
||||||
|
WINE_MONO=7.4.0
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
|
||||||
|
else
|
||||||
|
(( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
|
||||||
|
SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
|
||||||
|
S="${WORKDIR}/wine-${PV}"
|
||||||
|
KEYWORDS="-* ~amd64 ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.winehq.org/
|
||||||
|
https://gitlab.winehq.org/wine/wine/"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
|
||||||
|
SLOT="${PV}"
|
||||||
|
IUSE="
|
||||||
|
+X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
|
||||||
|
llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
|
||||||
|
+gstreamer kerberos +mingw +mono netapi nls odbc opencl +opengl
|
||||||
|
osmesa pcap perl pulseaudio samba scanner +sdl selinux +ssl
|
||||||
|
+truetype udev udisks +unwind usb v4l +vulkan +xcomposite xinerama"
|
||||||
|
REQUIRED_USE="
|
||||||
|
X? ( truetype )
|
||||||
|
crossdev-mingw? ( mingw )" # bug #551124 for truetype
|
||||||
|
|
||||||
|
# tests are non-trivial to run, can hang easily, don't play well with
|
||||||
|
# sandbox, and several need real opengl/vulkan or network access
|
||||||
|
RESTRICT="test"
|
||||||
|
|
||||||
|
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
|
||||||
|
WINE_DLOPEN_DEPEND="
|
||||||
|
X? (
|
||||||
|
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXrender[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||||
|
opengl? (
|
||||||
|
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
|
||||||
|
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||||
|
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
cups? ( net-print/cups[${MULTILIB_USEDEP}] )
|
||||||
|
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
|
||||||
|
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
|
||||||
|
netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
|
||||||
|
odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
|
||||||
|
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
|
||||||
|
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||||
|
truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
|
||||||
|
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||||
|
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||||
|
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )"
|
||||||
|
WINE_COMMON_DEPEND="
|
||||||
|
${WINE_DLOPEN_DEPEND}
|
||||||
|
X? (
|
||||||
|
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||||
|
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||||
|
capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
|
||||||
|
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||||
|
gstreamer? (
|
||||||
|
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||||
|
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
||||||
|
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||||
|
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||||
|
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||||
|
scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
|
||||||
|
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||||
|
unwind? (
|
||||||
|
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
|
||||||
|
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
|
||||||
|
RDEPEND="
|
||||||
|
${WINE_COMMON_DEPEND}
|
||||||
|
app-emulation/wine-desktop-common
|
||||||
|
dos? ( games-emulation/dosbox )
|
||||||
|
gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
|
||||||
|
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
|
||||||
|
mono? ( app-emulation/wine-mono:${WINE_MONO} )
|
||||||
|
perl? (
|
||||||
|
dev-lang/perl
|
||||||
|
dev-perl/XML-LibXML
|
||||||
|
)
|
||||||
|
samba? ( net-fs/samba[winbind] )
|
||||||
|
selinux? ( sec-policy/selinux-wine )
|
||||||
|
udisks? ( sys-fs/udisks:2 )"
|
||||||
|
DEPEND="
|
||||||
|
${WINE_COMMON_DEPEND}
|
||||||
|
sys-kernel/linux-headers
|
||||||
|
X? ( x11-base/xorg-proto )"
|
||||||
|
BDEPEND="
|
||||||
|
dev-lang/perl
|
||||||
|
sys-devel/binutils
|
||||||
|
sys-devel/bison
|
||||||
|
sys-devel/flex
|
||||||
|
virtual/pkgconfig
|
||||||
|
mingw? ( !crossdev-mingw? (
|
||||||
|
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
|
||||||
|
) )
|
||||||
|
nls? ( sys-devel/gettext )"
|
||||||
|
IDEPEND=">=app-eselect/eselect-wine-2"
|
||||||
|
|
||||||
|
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-7.0-noexecstack.patch
|
||||||
|
"${FILESDIR}"/${PN}-7.20-unwind.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
[[ ${MERGE_TYPE} == binary ]] && return
|
||||||
|
|
||||||
|
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
|
||||||
|
local mingw=-w64-mingw32
|
||||||
|
for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
|
||||||
|
if ! type -P ${mingw}-gcc >/dev/null; then
|
||||||
|
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
|
||||||
|
eerror "yourself by installing sys-devel/crossdev then running:"
|
||||||
|
eerror
|
||||||
|
eerror " crossdev --target ${mingw}"
|
||||||
|
eerror
|
||||||
|
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
|
||||||
|
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# sanity check, bumping these has a history of oversights
|
||||||
|
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
|
||||||
|
dlls/appwiz.cpl/addons.c || die)
|
||||||
|
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
|
||||||
|
local gmfatal=
|
||||||
|
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
|
||||||
|
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# ensure .desktop calls this variant + slot
|
||||||
|
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
|
||||||
|
|
||||||
|
# always update for patches (including user's wrt #432348)
|
||||||
|
eautoreconf
|
||||||
|
tools/make_requests || die # perl
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
WINE_PREFIX=/usr/lib/${P}
|
||||||
|
WINE_DATADIR=/usr/share/${P}
|
||||||
|
|
||||||
|
local conf=(
|
||||||
|
--prefix="${EPREFIX}"${WINE_PREFIX}
|
||||||
|
--datadir="${EPREFIX}"${WINE_DATADIR}
|
||||||
|
--includedir="${EPREFIX}"/usr/include/${P}
|
||||||
|
--libdir="${EPREFIX}"${WINE_PREFIX}
|
||||||
|
--mandir="${EPREFIX}"${WINE_DATADIR}/man
|
||||||
|
$(use_enable gecko mshtml)
|
||||||
|
$(use_enable mono mscoree)
|
||||||
|
--disable-tests
|
||||||
|
$(use_with X x)
|
||||||
|
$(use_with alsa)
|
||||||
|
$(use_with capi)
|
||||||
|
$(use_with cups)
|
||||||
|
$(use_with fontconfig)
|
||||||
|
$(use_with gphoto2 gphoto)
|
||||||
|
$(use_with gstreamer)
|
||||||
|
$(use_with kerberos gssapi)
|
||||||
|
$(use_with kerberos krb5)
|
||||||
|
$(use_with mingw)
|
||||||
|
$(use_with netapi)
|
||||||
|
$(use_with nls gettext)
|
||||||
|
$(use_with opencl)
|
||||||
|
$(use_with opengl)
|
||||||
|
$(use_with osmesa)
|
||||||
|
--without-oss # media-sound/oss is not packaged (OSSv4)
|
||||||
|
$(use_with pcap)
|
||||||
|
$(use_with pulseaudio pulse)
|
||||||
|
$(use_with scanner sane)
|
||||||
|
$(use_with sdl)
|
||||||
|
$(use_with ssl gnutls)
|
||||||
|
$(use_with truetype freetype)
|
||||||
|
$(use_with udev)
|
||||||
|
$(use_with udisks dbus) # dbus is only used for udisks
|
||||||
|
$(use_with unwind)
|
||||||
|
$(use_with usb)
|
||||||
|
$(use_with v4l v4l2)
|
||||||
|
$(use_with vulkan)
|
||||||
|
$(use_with xcomposite)
|
||||||
|
$(use_with xinerama)
|
||||||
|
$(usev !odbc ac_cv_lib_soname_odbc=)
|
||||||
|
)
|
||||||
|
|
||||||
|
tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
|
||||||
|
filter-lto # build failure
|
||||||
|
use mingw || filter-flags -fno-plt # build failure
|
||||||
|
use custom-cflags || strip-flags # can break in obscure ways at runtime
|
||||||
|
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
|
||||||
|
|
||||||
|
# temporary workaround for tc-ld-force-bfd not yet enforcing with mold
|
||||||
|
# https://github.com/gentoo/gentoo/pull/28355
|
||||||
|
[[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
|
||||||
|
append-ldflags -fuse-ld=bfd
|
||||||
|
|
||||||
|
# build using upstream's way (--with-wine64)
|
||||||
|
# order matters: configure+compile 64->32, install 32->64
|
||||||
|
local -i bits
|
||||||
|
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
|
||||||
|
(
|
||||||
|
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
|
||||||
|
|
||||||
|
mkdir ../build${bits} || die
|
||||||
|
cd ../build${bits} || die
|
||||||
|
|
||||||
|
pe_arch=i386
|
||||||
|
if (( bits == 64 )); then
|
||||||
|
pe_arch=x86_64
|
||||||
|
: "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
|
||||||
|
conf+=( --enable-win64 )
|
||||||
|
elif use amd64; then
|
||||||
|
conf+=(
|
||||||
|
$(usev abi_x86_64 --with-wine64=../build64)
|
||||||
|
TARGETFLAGS=-m32 # for widl
|
||||||
|
)
|
||||||
|
# _setup is optional, but use over Wine's auto-detect (+#472038)
|
||||||
|
multilib_toolchain_setup x86
|
||||||
|
fi
|
||||||
|
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
|
||||||
|
|
||||||
|
if use mingw; then
|
||||||
|
# CROSSCC is no longer recognized by Wine, but still use for now
|
||||||
|
# (future handling for CROSS* variables is subject to changes)
|
||||||
|
conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
|
||||||
|
|
||||||
|
# use *FLAGS for mingw, but strip unsupported
|
||||||
|
: "${CROSSCFLAGS:=$(
|
||||||
|
# >=wine-7.21 configure.ac no longer adds -fno-strict by mistake
|
||||||
|
append-cflags '-fno-strict-aliasing'
|
||||||
|
filter-flags '-fstack-clash-protection' #758914
|
||||||
|
filter-flags '-fstack-protector*' #870136
|
||||||
|
filter-flags '-mfunction-return=thunk*' #878849
|
||||||
|
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
|
||||||
|
: "${CROSSLDFLAGS:=$(
|
||||||
|
filter-flags '-fuse-ld=*'
|
||||||
|
CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
|
||||||
|
export CROSS{C,LD}FLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE=${S} econf "${conf[@]}"
|
||||||
|
)
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
use abi_x86_64 && emake -C ../build64 # do first
|
||||||
|
use abi_x86_32 && emake -C ../build32
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
|
||||||
|
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
|
||||||
|
|
||||||
|
# symlink for plain 'wine' and install its man pages if 64bit-only #404331
|
||||||
|
if use abi_x86_64 && use !abi_x86_32; then
|
||||||
|
dosym wine64 ${WINE_PREFIX}/bin/wine
|
||||||
|
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
|
||||||
|
local man
|
||||||
|
for man in ../build64/loader/wine.*man; do
|
||||||
|
: "${man##*/wine}"
|
||||||
|
: "${_%.*}"
|
||||||
|
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
|
||||||
|
newins ${man} wine.1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
|
||||||
|
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
|
||||||
|
|
||||||
|
# create variant wrappers for eselect-wine
|
||||||
|
local bin
|
||||||
|
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
|
||||||
|
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# don't let portage try to strip PE files with the wrong
|
||||||
|
# strip executable and instead handle it here (saves ~120MB)
|
||||||
|
if use mingw; then
|
||||||
|
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
|
||||||
|
use debug ||
|
||||||
|
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
|
||||||
|
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
dodoc ANNOUNCE AUTHORS README* documentation/README*
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
eselect wine update --if-unset || die
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
eselect wine update --if-unset || die
|
||||||
|
}
|
@ -1,537 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..10} )
|
|
||||||
PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
|
|
||||||
|
|
||||||
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
REPO="xen.git"
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
|
|
||||||
S="${WORKDIR}/${REPO}"
|
|
||||||
else
|
|
||||||
KEYWORDS="amd64 ~arm ~arm64 x86"
|
|
||||||
|
|
||||||
SEABIOS_VER="1.14.0"
|
|
||||||
EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
|
|
||||||
EDK2_OPENSSL_VERSION="1_1_1j"
|
|
||||||
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
|
|
||||||
EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
|
|
||||||
IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
|
|
||||||
|
|
||||||
XEN_PRE_PATCHSET_NUM=1
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=2
|
|
||||||
XEN_PRE_VERSION_BASE=4.15.3
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="
|
|
||||||
https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz
|
|
||||||
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
|
|
||||||
ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
|
|
||||||
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
|
|
||||||
https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
|
|
||||||
https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
|
|
||||||
https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_BASE_PV})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="Xen tools including QEMU and xl"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
DOCS=( README )
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0/$(ver_cut 1-2)"
|
|
||||||
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
|
|
||||||
# >=dev-lang/ocaml-4 stable
|
|
||||||
# Masked in profiles/eapi-5-files instead
|
|
||||||
IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios"
|
|
||||||
|
|
||||||
REQUIRED_USE="
|
|
||||||
${PYTHON_REQUIRED_USE}
|
|
||||||
ipxe? ( rombios )
|
|
||||||
ovmf? ( hvm )
|
|
||||||
pygrub? ( python )
|
|
||||||
rombios? ( hvm )
|
|
||||||
system-ipxe? ( rombios )
|
|
||||||
?? ( ipxe system-ipxe )
|
|
||||||
?? ( qemu system-qemu )"
|
|
||||||
|
|
||||||
COMMON_DEPEND="
|
|
||||||
lzma? ( app-arch/xz-utils )
|
|
||||||
qemu? (
|
|
||||||
dev-libs/glib:2
|
|
||||||
sys-libs/pam
|
|
||||||
)
|
|
||||||
app-arch/bzip2
|
|
||||||
dev-libs/libnl:3
|
|
||||||
dev-libs/lzo:2
|
|
||||||
dev-libs/yajl
|
|
||||||
sys-apps/util-linux
|
|
||||||
sys-fs/e2fsprogs
|
|
||||||
sys-libs/ncurses
|
|
||||||
sys-libs/zlib
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="${COMMON_DEPEND}
|
|
||||||
sys-apps/iproute2[-minimal]
|
|
||||||
net-misc/bridge-utils
|
|
||||||
screen? (
|
|
||||||
app-misc/screen
|
|
||||||
app-admin/logrotate
|
|
||||||
)
|
|
||||||
selinux? ( sec-policy/selinux-xen )"
|
|
||||||
|
|
||||||
DEPEND="${COMMON_DEPEND}
|
|
||||||
app-misc/pax-utils
|
|
||||||
>=sys-kernel/linux-headers-4.11
|
|
||||||
x11-libs/pixman
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/lxml[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
x86? ( sys-devel/dev86
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
sys-power/iasl )
|
|
||||||
api? ( dev-libs/libxml2
|
|
||||||
net-misc/curl )
|
|
||||||
|
|
||||||
ovmf? (
|
|
||||||
!arm? ( !arm64? ( dev-lang/nasm ) )
|
|
||||||
$(python_gen_impl_dep sqlite)
|
|
||||||
)
|
|
||||||
!amd64? ( >=sys-apps/dtc-1.4.0 )
|
|
||||||
amd64? ( sys-power/iasl
|
|
||||||
system-seabios? (
|
|
||||||
|| (
|
|
||||||
sys-firmware/seabios
|
|
||||||
sys-firmware/seabios-bin
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
arm64? ( sys-power/iasl
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
doc? (
|
|
||||||
app-text/ghostscript-gpl
|
|
||||||
app-text/pandoc
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/markdown[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
dev-texlive/texlive-latexextra
|
|
||||||
media-gfx/transfig
|
|
||||||
)
|
|
||||||
hvm? ( x11-base/xorg-proto )
|
|
||||||
qemu? (
|
|
||||||
app-arch/snappy:=
|
|
||||||
dev-util/meson
|
|
||||||
sdl? (
|
|
||||||
media-libs/libsdl[X]
|
|
||||||
media-libs/libsdl2[X]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-qemu? ( app-emulation/qemu[xen] )
|
|
||||||
ocaml? ( dev-ml/findlib
|
|
||||||
dev-lang/ocaml[ocamlopt] )
|
|
||||||
python? ( >=dev-lang/swig-4.0.0 )"
|
|
||||||
|
|
||||||
BDEPEND="dev-lang/perl
|
|
||||||
sys-devel/bison
|
|
||||||
sys-devel/gettext"
|
|
||||||
|
|
||||||
# hvmloader is used to bootstrap a fully virtualized kernel
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="
|
|
||||||
usr/libexec/xen/boot/hvmloader
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_EXECSTACK="
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_PREBUILT="
|
|
||||||
usr/libexec/xen/bin/elf2dmp
|
|
||||||
usr/libexec/xen/bin/ivshmem-client
|
|
||||||
usr/libexec/xen/bin/ivshmem-server
|
|
||||||
usr/libexec/xen/bin/qemu-edid
|
|
||||||
usr/libexec/xen/bin/qemu-img
|
|
||||||
usr/libexec/xen/bin/qemu-io
|
|
||||||
usr/libexec/xen/bin/qemu-keymap
|
|
||||||
usr/libexec/xen/bin/qemu-nbd
|
|
||||||
usr/libexec/xen/bin/qemu-pr-helper
|
|
||||||
usr/libexec/xen/bin/qemu-storage-daemon
|
|
||||||
usr/libexec/xen/bin/qemu-system-i386
|
|
||||||
usr/libexec/xen/bin/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/libexec/xen/libexec/qemu-pr-helper
|
|
||||||
usr/libexec/xen/libexec/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/libexec/virtiofsd
|
|
||||||
usr/libexec/xen/libexec/xen-bridge-helper
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/s390-netboot.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python_setup
|
|
||||||
export "CONFIG_LOMOUNT=y"
|
|
||||||
|
|
||||||
#bug 522642, disable compile tools/tests
|
|
||||||
export "CONFIG_TESTS=n"
|
|
||||||
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
|
|
||||||
if use x86 && use amd64; then
|
|
||||||
die "Confusion! Both x86 and amd64 are set in your use flags!"
|
|
||||||
elif use x86; then
|
|
||||||
export XEN_TARGET_ARCH="x86_32"
|
|
||||||
elif use amd64 ; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
|
|
||||||
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
|
|
||||||
pushd tools/firmware/ > /dev/null
|
|
||||||
ln -s seabios-dir-remote seabios-dir || die
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Rename qemu-bridge-helper to xen-bridge-helper to avoid file
|
|
||||||
# collisions with app-emulation/qemu.
|
|
||||||
sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
|
|
||||||
tools/qemu-xen/include/net/net.h \
|
|
||||||
tools/qemu-xen/Makefile \
|
|
||||||
tools/qemu-xen/qemu-bridge-helper.c \
|
|
||||||
tools/qemu-xen/qemu-options.hx \
|
|
||||||
|| die
|
|
||||||
|
|
||||||
if use ovmf; then
|
|
||||||
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
|
|
||||||
|
|
||||||
# Bug #816987
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
|
|
||||||
eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
|
|
||||||
eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ipxe
|
|
||||||
if use ipxe; then
|
|
||||||
cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
|
|
||||||
|
|
||||||
# gcc 11
|
|
||||||
cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die
|
|
||||||
echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
|
|
||||||
|
|
||||||
# Fix texi2html build error with new texi2html, qemu.doc.html
|
|
||||||
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config, fixes to gcc-4.6
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
# drop flags
|
|
||||||
unset CFLAGS
|
|
||||||
unset LDFLAGS
|
|
||||||
unset ASFLAGS
|
|
||||||
unset CPPFLAGS
|
|
||||||
|
|
||||||
if ! use pygrub; then
|
|
||||||
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use python; then
|
|
||||||
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use hvm; then
|
|
||||||
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
|
|
||||||
# Bug 351648
|
|
||||||
elif ! use x86 && ! has x86 $(get_all_abis); then
|
|
||||||
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
|
|
||||||
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
|
|
||||||
export CPATH="${WORKDIR}"/extra-headers
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use qemu; then
|
|
||||||
if use sdl; then
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
else
|
|
||||||
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
|
|
||||||
tools/qemu-xen-traditional/xen-setup || die
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Don't bother with qemu, only needed for fully virtualised guests
|
|
||||||
sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Reset bash completion dir; Bug 472438
|
|
||||||
sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
|
|
||||||
-i config/Paths.mk.in || die
|
|
||||||
|
|
||||||
# xencommons, Bug #492332, sed lighter weight than patching
|
|
||||||
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xencommons.in || die
|
|
||||||
|
|
||||||
# fix bashishm
|
|
||||||
sed -e '/Usage/s/\$//g' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xendriverdomain.in || die
|
|
||||||
|
|
||||||
# respect multilib, usr/lib/libcacard.so.0.0.0
|
|
||||||
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
|
|
||||||
-i tools/qemu-xen/configure || die
|
|
||||||
|
|
||||||
#bug 518136, don't build 32bit exactuable for nomultilib profile
|
|
||||||
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
|
|
||||||
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# uncomment lines in xl.conf
|
|
||||||
sed -e 's:^#autoballoon=:autoballoon=:' \
|
|
||||||
-e 's:^#lockfile=:lockfile=:' \
|
|
||||||
-e 's:^#vif.default.script=:vif.default.script=:' \
|
|
||||||
-i tools/examples/xl.conf || die
|
|
||||||
|
|
||||||
# disable capstone (Bug #673474)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable glusterfs
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable jpeg automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable png automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable docker (Bug #732970)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-containers:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable abi-dumper (Bug #791172)
|
|
||||||
sed -e 's/$(ABI_DUMPER) /echo /g' \
|
|
||||||
-i tools/libs/libs.mk || die
|
|
||||||
|
|
||||||
# Remove -Werror
|
|
||||||
find . -type f \( -name Makefile -o -name "*.mk" \) \
|
|
||||||
-exec sed -i \
|
|
||||||
-e 's/-Werror //g' \
|
|
||||||
-e '/^CFLAGS *+= -Werror$/d' \
|
|
||||||
-e 's/, "-Werror"//' \
|
|
||||||
{} + || die
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--libdir="${EPREFIX}/usr/$(get_libdir)"
|
|
||||||
--libexecdir="${EPREFIX}/usr/libexec"
|
|
||||||
--localstatedir="${EPREFIX}/var"
|
|
||||||
--disable-golang
|
|
||||||
--disable-werror
|
|
||||||
--disable-xen
|
|
||||||
--enable-tools
|
|
||||||
--enable-docs
|
|
||||||
$(use_enable api xenapi)
|
|
||||||
$(use_enable ipxe)
|
|
||||||
$(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '')
|
|
||||||
$(use_enable ocaml ocamltools)
|
|
||||||
$(use_enable ovmf)
|
|
||||||
$(use_enable rombios)
|
|
||||||
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
|
|
||||||
)
|
|
||||||
|
|
||||||
use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin )
|
|
||||||
use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 )
|
|
||||||
use amd64 && myconf+=( $(use_enable qemu-traditional) )
|
|
||||||
tc-ld-disable-gold # Bug 669570
|
|
||||||
econf ${myconf[@]}
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
local myopt
|
|
||||||
use debug && myopt="${myopt} debug=y"
|
|
||||||
use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y"
|
|
||||||
|
|
||||||
if test-flag-CC -fno-strict-overflow; then
|
|
||||||
append-flags -fno-strict-overflow
|
|
||||||
fi
|
|
||||||
|
|
||||||
# bug #845099
|
|
||||||
if use ipxe; then
|
|
||||||
local -x NO_WERROR=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake -C docs build
|
|
||||||
else
|
|
||||||
emake -C docs man-pages
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# Override auto-detection in the build system, bug #382573
|
|
||||||
export INITD_DIR=/tmp/init.d
|
|
||||||
export CONFIG_LEAF_DIR=../tmp/default
|
|
||||||
|
|
||||||
# Let the build system compile installed Python modules.
|
|
||||||
local PYTHONDONTWRITEBYTECODE
|
|
||||||
export PYTHONDONTWRITEBYTECODE
|
|
||||||
|
|
||||||
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
|
|
||||||
XEN_PYTHON_NATIVE_INSTALL=y install-tools
|
|
||||||
|
|
||||||
# Created at runtime
|
|
||||||
rm -rv "${ED}/var/run" || die
|
|
||||||
|
|
||||||
# Fix the remaining Python shebangs.
|
|
||||||
python_fix_shebang "${D}"
|
|
||||||
|
|
||||||
# Remove RedHat-specific stuff
|
|
||||||
rm -rf "${D}"/tmp || die
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
|
|
||||||
dodoc -r docs/{pdf,txt}
|
|
||||||
else
|
|
||||||
emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
|
|
||||||
fi
|
|
||||||
dodoc ${DOCS[@]}
|
|
||||||
|
|
||||||
newconfd "${FILESDIR}"/xendomains.confd xendomains
|
|
||||||
newconfd "${FILESDIR}"/xenstored.confd xenstored
|
|
||||||
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
|
|
||||||
newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
|
|
||||||
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xencommons.initd xencommons
|
|
||||||
newconfd "${FILESDIR}"/xencommons.confd xencommons
|
|
||||||
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
|
|
||||||
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
|
|
||||||
newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
|
|
||||||
|
|
||||||
if use screen; then
|
|
||||||
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
|
|
||||||
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
|
|
||||||
keepdir /var/log/xen-consoles
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For -static-libs wrt Bug 384355
|
|
||||||
if ! use static-libs; then
|
|
||||||
rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
# for xendomains
|
|
||||||
keepdir /etc/xen/auto
|
|
||||||
|
|
||||||
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
|
|
||||||
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
|
|
||||||
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
|
|
||||||
|
|
||||||
keepdir /var/lib/xen/dump
|
|
||||||
keepdir /var/lib/xen/xenpaging
|
|
||||||
keepdir /var/lib/xenstored
|
|
||||||
keepdir /var/log/xen
|
|
||||||
|
|
||||||
if use python; then
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
python_optimize
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "Official Xen Guide and the offical wiki page:"
|
|
||||||
elog "https://wiki.gentoo.org/wiki/Xen"
|
|
||||||
elog "https://wiki.xen.org/wiki/Main_Page"
|
|
||||||
elog ""
|
|
||||||
elog "Recommended to utilise the xencommons script to config system at boot"
|
|
||||||
elog "Add by use of rc-update on completion of the install"
|
|
||||||
|
|
||||||
if ! use hvm; then
|
|
||||||
echo
|
|
||||||
elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
|
|
||||||
elog "support enable the hvm use flag."
|
|
||||||
elog "An x86 or amd64 system is required to build HVM support."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use qemu; then
|
|
||||||
elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
|
|
||||||
elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
|
|
||||||
elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
|
|
||||||
elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,537 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..10} )
|
|
||||||
PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
|
|
||||||
|
|
||||||
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
REPO="xen.git"
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
|
|
||||||
S="${WORKDIR}/${REPO}"
|
|
||||||
else
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
|
||||||
|
|
||||||
SEABIOS_VER="1.14.0"
|
|
||||||
EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
|
|
||||||
EDK2_OPENSSL_VERSION="1_1_1j"
|
|
||||||
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
|
|
||||||
EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
|
|
||||||
IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
|
|
||||||
|
|
||||||
XEN_PRE_PATCHSET_NUM=1
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=2
|
|
||||||
XEN_PRE_VERSION_BASE=4.15.3
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="
|
|
||||||
https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz
|
|
||||||
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
|
|
||||||
ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
|
|
||||||
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
|
|
||||||
https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
|
|
||||||
https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
|
|
||||||
https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_BASE_PV})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="Xen tools including QEMU and xl"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
DOCS=( README )
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0/$(ver_cut 1-2)"
|
|
||||||
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
|
|
||||||
# >=dev-lang/ocaml-4 stable
|
|
||||||
# Masked in profiles/eapi-5-files instead
|
|
||||||
IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios"
|
|
||||||
|
|
||||||
REQUIRED_USE="
|
|
||||||
${PYTHON_REQUIRED_USE}
|
|
||||||
ipxe? ( rombios )
|
|
||||||
ovmf? ( hvm )
|
|
||||||
pygrub? ( python )
|
|
||||||
rombios? ( hvm )
|
|
||||||
system-ipxe? ( rombios )
|
|
||||||
?? ( ipxe system-ipxe )
|
|
||||||
?? ( qemu system-qemu )"
|
|
||||||
|
|
||||||
COMMON_DEPEND="
|
|
||||||
lzma? ( app-arch/xz-utils )
|
|
||||||
qemu? (
|
|
||||||
dev-libs/glib:2
|
|
||||||
sys-libs/pam
|
|
||||||
)
|
|
||||||
app-arch/bzip2
|
|
||||||
dev-libs/libnl:3
|
|
||||||
dev-libs/lzo:2
|
|
||||||
dev-libs/yajl
|
|
||||||
sys-apps/util-linux
|
|
||||||
sys-fs/e2fsprogs
|
|
||||||
sys-libs/ncurses
|
|
||||||
sys-libs/zlib
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="${COMMON_DEPEND}
|
|
||||||
sys-apps/iproute2[-minimal]
|
|
||||||
net-misc/bridge-utils
|
|
||||||
screen? (
|
|
||||||
app-misc/screen
|
|
||||||
app-admin/logrotate
|
|
||||||
)
|
|
||||||
selinux? ( sec-policy/selinux-xen )"
|
|
||||||
|
|
||||||
DEPEND="${COMMON_DEPEND}
|
|
||||||
app-misc/pax-utils
|
|
||||||
>=sys-kernel/linux-headers-4.11
|
|
||||||
x11-libs/pixman
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/lxml[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
x86? ( sys-devel/dev86
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
sys-power/iasl )
|
|
||||||
api? ( dev-libs/libxml2
|
|
||||||
net-misc/curl )
|
|
||||||
|
|
||||||
ovmf? (
|
|
||||||
!arm? ( !arm64? ( dev-lang/nasm ) )
|
|
||||||
$(python_gen_impl_dep sqlite)
|
|
||||||
)
|
|
||||||
!amd64? ( >=sys-apps/dtc-1.4.0 )
|
|
||||||
amd64? ( sys-power/iasl
|
|
||||||
system-seabios? (
|
|
||||||
|| (
|
|
||||||
sys-firmware/seabios
|
|
||||||
sys-firmware/seabios-bin
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
arm64? ( sys-power/iasl
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
doc? (
|
|
||||||
app-text/ghostscript-gpl
|
|
||||||
app-text/pandoc
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/markdown[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
dev-texlive/texlive-latexextra
|
|
||||||
media-gfx/transfig
|
|
||||||
)
|
|
||||||
hvm? ( x11-base/xorg-proto )
|
|
||||||
qemu? (
|
|
||||||
app-arch/snappy:=
|
|
||||||
dev-util/meson
|
|
||||||
sdl? (
|
|
||||||
media-libs/libsdl[X]
|
|
||||||
media-libs/libsdl2[X]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-qemu? ( app-emulation/qemu[xen] )
|
|
||||||
ocaml? ( dev-ml/findlib
|
|
||||||
dev-lang/ocaml[ocamlopt] )
|
|
||||||
python? ( >=dev-lang/swig-4.0.0 )"
|
|
||||||
|
|
||||||
BDEPEND="dev-lang/perl
|
|
||||||
sys-devel/bison
|
|
||||||
sys-devel/gettext"
|
|
||||||
|
|
||||||
# hvmloader is used to bootstrap a fully virtualized kernel
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="
|
|
||||||
usr/libexec/xen/boot/hvmloader
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_EXECSTACK="
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_PREBUILT="
|
|
||||||
usr/libexec/xen/bin/elf2dmp
|
|
||||||
usr/libexec/xen/bin/ivshmem-client
|
|
||||||
usr/libexec/xen/bin/ivshmem-server
|
|
||||||
usr/libexec/xen/bin/qemu-edid
|
|
||||||
usr/libexec/xen/bin/qemu-img
|
|
||||||
usr/libexec/xen/bin/qemu-io
|
|
||||||
usr/libexec/xen/bin/qemu-keymap
|
|
||||||
usr/libexec/xen/bin/qemu-nbd
|
|
||||||
usr/libexec/xen/bin/qemu-pr-helper
|
|
||||||
usr/libexec/xen/bin/qemu-storage-daemon
|
|
||||||
usr/libexec/xen/bin/qemu-system-i386
|
|
||||||
usr/libexec/xen/bin/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/libexec/xen/libexec/qemu-pr-helper
|
|
||||||
usr/libexec/xen/libexec/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/libexec/virtiofsd
|
|
||||||
usr/libexec/xen/libexec/xen-bridge-helper
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/s390-netboot.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python_setup
|
|
||||||
export "CONFIG_LOMOUNT=y"
|
|
||||||
|
|
||||||
#bug 522642, disable compile tools/tests
|
|
||||||
export "CONFIG_TESTS=n"
|
|
||||||
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
|
|
||||||
if use x86 && use amd64; then
|
|
||||||
die "Confusion! Both x86 and amd64 are set in your use flags!"
|
|
||||||
elif use x86; then
|
|
||||||
export XEN_TARGET_ARCH="x86_32"
|
|
||||||
elif use amd64 ; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
|
|
||||||
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
|
|
||||||
pushd tools/firmware/ > /dev/null
|
|
||||||
ln -s seabios-dir-remote seabios-dir || die
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Rename qemu-bridge-helper to xen-bridge-helper to avoid file
|
|
||||||
# collisions with app-emulation/qemu.
|
|
||||||
sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
|
|
||||||
tools/qemu-xen/include/net/net.h \
|
|
||||||
tools/qemu-xen/Makefile \
|
|
||||||
tools/qemu-xen/qemu-bridge-helper.c \
|
|
||||||
tools/qemu-xen/qemu-options.hx \
|
|
||||||
|| die
|
|
||||||
|
|
||||||
if use ovmf; then
|
|
||||||
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
|
|
||||||
|
|
||||||
# Bug #816987
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
|
|
||||||
eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
|
|
||||||
eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ipxe
|
|
||||||
if use ipxe; then
|
|
||||||
cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
|
|
||||||
|
|
||||||
# gcc 11
|
|
||||||
cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die
|
|
||||||
echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
|
|
||||||
|
|
||||||
# Fix texi2html build error with new texi2html, qemu.doc.html
|
|
||||||
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config, fixes to gcc-4.6
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
# drop flags
|
|
||||||
unset CFLAGS
|
|
||||||
unset LDFLAGS
|
|
||||||
unset ASFLAGS
|
|
||||||
unset CPPFLAGS
|
|
||||||
|
|
||||||
if ! use pygrub; then
|
|
||||||
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use python; then
|
|
||||||
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use hvm; then
|
|
||||||
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
|
|
||||||
# Bug 351648
|
|
||||||
elif ! use x86 && ! has x86 $(get_all_abis); then
|
|
||||||
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
|
|
||||||
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
|
|
||||||
export CPATH="${WORKDIR}"/extra-headers
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use qemu; then
|
|
||||||
if use sdl; then
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
else
|
|
||||||
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
|
|
||||||
tools/qemu-xen-traditional/xen-setup || die
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Don't bother with qemu, only needed for fully virtualised guests
|
|
||||||
sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Reset bash completion dir; Bug 472438
|
|
||||||
sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
|
|
||||||
-i config/Paths.mk.in || die
|
|
||||||
|
|
||||||
# xencommons, Bug #492332, sed lighter weight than patching
|
|
||||||
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xencommons.in || die
|
|
||||||
|
|
||||||
# fix bashishm
|
|
||||||
sed -e '/Usage/s/\$//g' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xendriverdomain.in || die
|
|
||||||
|
|
||||||
# respect multilib, usr/lib/libcacard.so.0.0.0
|
|
||||||
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
|
|
||||||
-i tools/qemu-xen/configure || die
|
|
||||||
|
|
||||||
#bug 518136, don't build 32bit exactuable for nomultilib profile
|
|
||||||
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
|
|
||||||
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# uncomment lines in xl.conf
|
|
||||||
sed -e 's:^#autoballoon=:autoballoon=:' \
|
|
||||||
-e 's:^#lockfile=:lockfile=:' \
|
|
||||||
-e 's:^#vif.default.script=:vif.default.script=:' \
|
|
||||||
-i tools/examples/xl.conf || die
|
|
||||||
|
|
||||||
# disable capstone (Bug #673474)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable glusterfs
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable jpeg automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable png automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable docker (Bug #732970)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-containers:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable abi-dumper (Bug #791172)
|
|
||||||
sed -e 's/$(ABI_DUMPER) /echo /g' \
|
|
||||||
-i tools/libs/libs.mk || die
|
|
||||||
|
|
||||||
# Remove -Werror
|
|
||||||
find . -type f \( -name Makefile -o -name "*.mk" \) \
|
|
||||||
-exec sed -i \
|
|
||||||
-e 's/-Werror //g' \
|
|
||||||
-e '/^CFLAGS *+= -Werror$/d' \
|
|
||||||
-e 's/, "-Werror"//' \
|
|
||||||
{} + || die
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--libdir="${EPREFIX}/usr/$(get_libdir)"
|
|
||||||
--libexecdir="${EPREFIX}/usr/libexec"
|
|
||||||
--localstatedir="${EPREFIX}/var"
|
|
||||||
--disable-golang
|
|
||||||
--disable-werror
|
|
||||||
--disable-xen
|
|
||||||
--enable-tools
|
|
||||||
--enable-docs
|
|
||||||
$(use_enable api xenapi)
|
|
||||||
$(use_enable ipxe)
|
|
||||||
$(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '')
|
|
||||||
$(use_enable ocaml ocamltools)
|
|
||||||
$(use_enable ovmf)
|
|
||||||
$(use_enable rombios)
|
|
||||||
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
|
|
||||||
)
|
|
||||||
|
|
||||||
use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin )
|
|
||||||
use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 )
|
|
||||||
use amd64 && myconf+=( $(use_enable qemu-traditional) )
|
|
||||||
tc-ld-disable-gold # Bug 669570
|
|
||||||
econf ${myconf[@]}
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
local myopt
|
|
||||||
use debug && myopt="${myopt} debug=y"
|
|
||||||
use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y"
|
|
||||||
|
|
||||||
if test-flag-CC -fno-strict-overflow; then
|
|
||||||
append-flags -fno-strict-overflow
|
|
||||||
fi
|
|
||||||
|
|
||||||
# bug #845099
|
|
||||||
if use ipxe; then
|
|
||||||
local -x NO_WERROR=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake -C docs build
|
|
||||||
else
|
|
||||||
emake -C docs man-pages
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# Override auto-detection in the build system, bug #382573
|
|
||||||
export INITD_DIR=/tmp/init.d
|
|
||||||
export CONFIG_LEAF_DIR=../tmp/default
|
|
||||||
|
|
||||||
# Let the build system compile installed Python modules.
|
|
||||||
local PYTHONDONTWRITEBYTECODE
|
|
||||||
export PYTHONDONTWRITEBYTECODE
|
|
||||||
|
|
||||||
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
|
|
||||||
XEN_PYTHON_NATIVE_INSTALL=y install-tools
|
|
||||||
|
|
||||||
# Created at runtime
|
|
||||||
rm -rv "${ED}/var/run" || die
|
|
||||||
|
|
||||||
# Fix the remaining Python shebangs.
|
|
||||||
python_fix_shebang "${D}"
|
|
||||||
|
|
||||||
# Remove RedHat-specific stuff
|
|
||||||
rm -rf "${D}"/tmp || die
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
|
|
||||||
dodoc -r docs/{pdf,txt}
|
|
||||||
else
|
|
||||||
emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
|
|
||||||
fi
|
|
||||||
dodoc ${DOCS[@]}
|
|
||||||
|
|
||||||
newconfd "${FILESDIR}"/xendomains.confd xendomains
|
|
||||||
newconfd "${FILESDIR}"/xenstored.confd xenstored
|
|
||||||
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
|
|
||||||
newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
|
|
||||||
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xencommons.initd xencommons
|
|
||||||
newconfd "${FILESDIR}"/xencommons.confd xencommons
|
|
||||||
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
|
|
||||||
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
|
|
||||||
newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
|
|
||||||
|
|
||||||
if use screen; then
|
|
||||||
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
|
|
||||||
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
|
|
||||||
keepdir /var/log/xen-consoles
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For -static-libs wrt Bug 384355
|
|
||||||
if ! use static-libs; then
|
|
||||||
rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
# for xendomains
|
|
||||||
keepdir /etc/xen/auto
|
|
||||||
|
|
||||||
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
|
|
||||||
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
|
|
||||||
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
|
|
||||||
|
|
||||||
keepdir /var/lib/xen/dump
|
|
||||||
keepdir /var/lib/xen/xenpaging
|
|
||||||
keepdir /var/lib/xenstored
|
|
||||||
keepdir /var/log/xen
|
|
||||||
|
|
||||||
if use python; then
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
python_optimize
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "Official Xen Guide and the offical wiki page:"
|
|
||||||
elog "https://wiki.gentoo.org/wiki/Xen"
|
|
||||||
elog "https://wiki.xen.org/wiki/Main_Page"
|
|
||||||
elog ""
|
|
||||||
elog "Recommended to utilise the xencommons script to config system at boot"
|
|
||||||
elog "Add by use of rc-update on completion of the install"
|
|
||||||
|
|
||||||
if ! use hvm; then
|
|
||||||
echo
|
|
||||||
elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
|
|
||||||
elog "support enable the hvm use flag."
|
|
||||||
elog "An x86 or amd64 system is required to build HVM support."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use qemu; then
|
|
||||||
elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
|
|
||||||
elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
|
|
||||||
elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
|
|
||||||
elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -0,0 +1,532 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{9..11} )
|
||||||
|
PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
|
||||||
|
|
||||||
|
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
REPO="xen.git"
|
||||||
|
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
|
||||||
|
S="${WORKDIR}/${REPO}"
|
||||||
|
else
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||||
|
|
||||||
|
SEABIOS_VER="1.14.0"
|
||||||
|
EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
|
||||||
|
EDK2_OPENSSL_VERSION="1_1_1j"
|
||||||
|
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
|
||||||
|
EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
|
||||||
|
IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
|
||||||
|
|
||||||
|
XEN_GENTOO_PATCHSET_NUM=2
|
||||||
|
XEN_GENTOO_PATCHSET_BASE=4.16.1
|
||||||
|
XEN_PRE_PATCHSET_NUM=
|
||||||
|
XEN_PRE_VERSION_BASE=
|
||||||
|
|
||||||
|
XEN_BASE_PV="${PV}"
|
||||||
|
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
||||||
|
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
SRC_URI="
|
||||||
|
https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz
|
||||||
|
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
|
||||||
|
ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
|
||||||
|
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
|
||||||
|
https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
|
||||||
|
https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
|
||||||
|
https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
||||||
|
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
||||||
|
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
||||||
|
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
||||||
|
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
||||||
|
fi
|
||||||
|
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
||||||
|
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
||||||
|
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
||||||
|
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
||||||
|
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Xen tools including QEMU and xl"
|
||||||
|
HOMEPAGE="https://xenproject.org"
|
||||||
|
DOCS=( README )
|
||||||
|
|
||||||
|
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0/$(ver_cut 1-2)"
|
||||||
|
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
|
||||||
|
# >=dev-lang/ocaml-4 stable
|
||||||
|
# Masked in profiles/eapi-5-files instead
|
||||||
|
IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd"
|
||||||
|
|
||||||
|
REQUIRED_USE="
|
||||||
|
${PYTHON_REQUIRED_USE}
|
||||||
|
ipxe? ( rombios )
|
||||||
|
ovmf? ( hvm )
|
||||||
|
pygrub? ( python )
|
||||||
|
rombios? ( hvm )
|
||||||
|
system-ipxe? ( rombios )
|
||||||
|
?? ( ipxe system-ipxe )
|
||||||
|
?? ( qemu system-qemu )"
|
||||||
|
|
||||||
|
COMMON_DEPEND="
|
||||||
|
lzma? ( app-arch/xz-utils )
|
||||||
|
qemu? (
|
||||||
|
dev-libs/glib:2
|
||||||
|
sys-libs/pam
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd )
|
||||||
|
app-arch/bzip2
|
||||||
|
app-arch/zstd
|
||||||
|
dev-libs/libnl:3
|
||||||
|
dev-libs/lzo:2
|
||||||
|
dev-libs/yajl
|
||||||
|
sys-apps/util-linux
|
||||||
|
sys-fs/e2fsprogs
|
||||||
|
sys-libs/ncurses
|
||||||
|
sys-libs/zlib
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPEND="${COMMON_DEPEND}
|
||||||
|
sys-apps/iproute2[-minimal]
|
||||||
|
net-misc/bridge-utils
|
||||||
|
screen? (
|
||||||
|
app-misc/screen
|
||||||
|
app-admin/logrotate
|
||||||
|
)
|
||||||
|
selinux? ( sec-policy/selinux-xen )"
|
||||||
|
|
||||||
|
DEPEND="${COMMON_DEPEND}
|
||||||
|
app-misc/pax-utils
|
||||||
|
>=sys-kernel/linux-headers-4.11
|
||||||
|
x11-libs/pixman
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
dev-python/lxml[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
x86? ( sys-devel/dev86
|
||||||
|
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
||||||
|
sys-power/iasl )
|
||||||
|
api? ( dev-libs/libxml2
|
||||||
|
net-misc/curl )
|
||||||
|
|
||||||
|
ovmf? (
|
||||||
|
!arm? ( !arm64? ( dev-lang/nasm ) )
|
||||||
|
$(python_gen_impl_dep sqlite)
|
||||||
|
)
|
||||||
|
!amd64? ( >=sys-apps/dtc-1.4.0 )
|
||||||
|
amd64? ( sys-power/iasl
|
||||||
|
system-seabios? (
|
||||||
|
|| (
|
||||||
|
sys-firmware/seabios
|
||||||
|
sys-firmware/seabios-bin
|
||||||
|
)
|
||||||
|
)
|
||||||
|
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
||||||
|
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
||||||
|
arm64? ( sys-power/iasl
|
||||||
|
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
||||||
|
doc? (
|
||||||
|
app-text/ghostscript-gpl
|
||||||
|
app-text/pandoc
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
dev-python/markdown[${PYTHON_USEDEP}]
|
||||||
|
')
|
||||||
|
dev-texlive/texlive-latexextra
|
||||||
|
media-gfx/transfig
|
||||||
|
)
|
||||||
|
hvm? ( x11-base/xorg-proto )
|
||||||
|
qemu? (
|
||||||
|
app-arch/snappy:=
|
||||||
|
dev-util/meson
|
||||||
|
sdl? (
|
||||||
|
media-libs/libsdl[X]
|
||||||
|
media-libs/libsdl2[X]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
system-qemu? ( app-emulation/qemu[xen] )
|
||||||
|
ocaml? ( dev-ml/findlib
|
||||||
|
dev-lang/ocaml[ocamlopt] )
|
||||||
|
python? ( >=dev-lang/swig-4.0.0 )"
|
||||||
|
|
||||||
|
BDEPEND="dev-lang/perl
|
||||||
|
sys-devel/bison
|
||||||
|
sys-devel/gettext"
|
||||||
|
|
||||||
|
# hvmloader is used to bootstrap a fully virtualized kernel
|
||||||
|
# Approved by QA team in bug #144032
|
||||||
|
QA_WX_LOAD="
|
||||||
|
usr/libexec/xen/boot/hvmloader
|
||||||
|
usr/libexec/xen/boot/ovmf.bin
|
||||||
|
usr/libexec/xen/boot/xen-shim
|
||||||
|
usr/share/qemu-xen/qemu/hppa-firmware.img
|
||||||
|
usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||||
|
usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||||
|
usr/share/qemu-xen/qemu/s390-ccw.img
|
||||||
|
usr/share/qemu-xen/qemu/u-boot.e500
|
||||||
|
"
|
||||||
|
|
||||||
|
QA_EXECSTACK="
|
||||||
|
usr/share/qemu-xen/qemu/hppa-firmware.img
|
||||||
|
"
|
||||||
|
|
||||||
|
QA_PREBUILT="
|
||||||
|
usr/libexec/xen/bin/elf2dmp
|
||||||
|
usr/libexec/xen/bin/ivshmem-client
|
||||||
|
usr/libexec/xen/bin/ivshmem-server
|
||||||
|
usr/libexec/xen/bin/qemu-edid
|
||||||
|
usr/libexec/xen/bin/qemu-img
|
||||||
|
usr/libexec/xen/bin/qemu-io
|
||||||
|
usr/libexec/xen/bin/qemu-keymap
|
||||||
|
usr/libexec/xen/bin/qemu-nbd
|
||||||
|
usr/libexec/xen/bin/qemu-pr-helper
|
||||||
|
usr/libexec/xen/bin/qemu-storage-daemon
|
||||||
|
usr/libexec/xen/bin/qemu-system-i386
|
||||||
|
usr/libexec/xen/bin/virtfs-proxy-helper
|
||||||
|
usr/libexec/xen/boot/ovmf.bin
|
||||||
|
usr/libexec/xen/boot/xen-shim
|
||||||
|
usr/libexec/xen/libexec/qemu-pr-helper
|
||||||
|
usr/libexec/xen/libexec/virtfs-proxy-helper
|
||||||
|
usr/libexec/xen/libexec/virtiofsd
|
||||||
|
usr/libexec/xen/libexec/xen-bridge-helper
|
||||||
|
usr/share/qemu-xen/qemu/s390-ccw.img
|
||||||
|
usr/share/qemu-xen/qemu/s390-netboot.img
|
||||||
|
usr/share/qemu-xen/qemu/u-boot.e500
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="test"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
python_setup
|
||||||
|
export "CONFIG_LOMOUNT=y"
|
||||||
|
|
||||||
|
#bug 522642, disable compile tools/tests
|
||||||
|
export "CONFIG_TESTS=n"
|
||||||
|
|
||||||
|
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
|
||||||
|
if use x86 && use amd64; then
|
||||||
|
die "Confusion! Both x86 and amd64 are set in your use flags!"
|
||||||
|
elif use x86; then
|
||||||
|
export XEN_TARGET_ARCH="x86_32"
|
||||||
|
elif use amd64 ; then
|
||||||
|
export XEN_TARGET_ARCH="x86_64"
|
||||||
|
elif use arm; then
|
||||||
|
export XEN_TARGET_ARCH="arm32"
|
||||||
|
elif use arm64; then
|
||||||
|
export XEN_TARGET_ARCH="arm64"
|
||||||
|
else
|
||||||
|
die "Unsupported architecture!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
|
||||||
|
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
|
||||||
|
pushd tools/firmware/ > /dev/null
|
||||||
|
ln -s seabios-dir-remote seabios-dir || die
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
||||||
|
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
||||||
|
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rename qemu-bridge-helper to xen-bridge-helper to avoid file
|
||||||
|
# collisions with app-emulation/qemu.
|
||||||
|
sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
|
||||||
|
tools/qemu-xen/include/net/net.h \
|
||||||
|
tools/qemu-xen/meson.build \
|
||||||
|
tools/qemu-xen/qemu-bridge-helper.c \
|
||||||
|
tools/qemu-xen/qemu-options.hx \
|
||||||
|
|| die
|
||||||
|
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
|
||||||
|
|
||||||
|
if use ovmf; then
|
||||||
|
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
|
||||||
|
rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
||||||
|
rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
||||||
|
rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
||||||
|
rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
||||||
|
mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
||||||
|
mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
||||||
|
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
||||||
|
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
||||||
|
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
|
||||||
|
|
||||||
|
# Bug #816987
|
||||||
|
pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
|
||||||
|
eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
|
||||||
|
eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
|
||||||
|
popd > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ipxe
|
||||||
|
if use ipxe; then
|
||||||
|
cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
|
||||||
|
|
||||||
|
# gcc 11
|
||||||
|
cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die
|
||||||
|
echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix texi2html build error with new texi2html, qemu.doc.html
|
||||||
|
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
|
||||||
|
|
||||||
|
# Drop .config, fixes to gcc-4.6
|
||||||
|
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
||||||
|
|
||||||
|
# drop flags
|
||||||
|
unset CFLAGS
|
||||||
|
unset LDFLAGS
|
||||||
|
unset ASFLAGS
|
||||||
|
unset CPPFLAGS
|
||||||
|
|
||||||
|
if ! use pygrub; then
|
||||||
|
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! use python; then
|
||||||
|
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! use hvm; then
|
||||||
|
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
|
||||||
|
# Bug 351648
|
||||||
|
elif ! use x86 && ! has x86 $(get_all_abis); then
|
||||||
|
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
|
||||||
|
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
|
||||||
|
export CPATH="${WORKDIR}"/extra-headers
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use qemu; then
|
||||||
|
if use sdl; then
|
||||||
|
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
|
||||||
|
tools/Makefile || die
|
||||||
|
else
|
||||||
|
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
|
||||||
|
tools/qemu-xen-traditional/xen-setup || die
|
||||||
|
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
|
||||||
|
tools/Makefile || die
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Don't bother with qemu, only needed for fully virtualised guests
|
||||||
|
sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Reset bash completion dir; Bug 472438
|
||||||
|
sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
|
||||||
|
-i config/Paths.mk.in || die
|
||||||
|
|
||||||
|
# xencommons, Bug #492332, sed lighter weight than patching
|
||||||
|
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
|
||||||
|
-i tools/hotplug/Linux/init.d/xencommons.in || die
|
||||||
|
|
||||||
|
# fix bashishm
|
||||||
|
sed -e '/Usage/s/\$//g' \
|
||||||
|
-i tools/hotplug/Linux/init.d/xendriverdomain.in || die
|
||||||
|
|
||||||
|
# respect multilib, usr/lib/libcacard.so.0.0.0
|
||||||
|
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
|
||||||
|
-i tools/qemu-xen/configure || die
|
||||||
|
|
||||||
|
#bug 518136, don't build 32bit exactuable for nomultilib profile
|
||||||
|
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
|
||||||
|
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# uncomment lines in xl.conf
|
||||||
|
sed -e 's:^#autoballoon=:autoballoon=:' \
|
||||||
|
-e 's:^#lockfile=:lockfile=:' \
|
||||||
|
-e 's:^#vif.default.script=:vif.default.script=:' \
|
||||||
|
-i tools/examples/xl.conf || die
|
||||||
|
|
||||||
|
# disable capstone (Bug #673474)
|
||||||
|
sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
|
||||||
|
-i tools/Makefile || die
|
||||||
|
|
||||||
|
# disable glusterfs
|
||||||
|
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
|
||||||
|
-i tools/Makefile || die
|
||||||
|
|
||||||
|
# disable jpeg automagic
|
||||||
|
sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
|
||||||
|
-i tools/Makefile || die
|
||||||
|
|
||||||
|
# disable png automagic
|
||||||
|
sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
|
||||||
|
-i tools/Makefile || die
|
||||||
|
|
||||||
|
# disable docker (Bug #732970)
|
||||||
|
sed -e "s:\$\$source/configure:\0 --disable-containers:" \
|
||||||
|
-i tools/Makefile || die
|
||||||
|
|
||||||
|
# disable abi-dumper (Bug #791172)
|
||||||
|
sed -e 's/$(ABI_DUMPER) /echo /g' \
|
||||||
|
-i tools/libs/libs.mk || die
|
||||||
|
|
||||||
|
# Remove -Werror
|
||||||
|
find . -type f \( -name Makefile -o -name "*.mk" \) \
|
||||||
|
-exec sed -i \
|
||||||
|
-e 's/-Werror //g' \
|
||||||
|
-e '/^CFLAGS *+= -Werror$/d' \
|
||||||
|
-e 's/, "-Werror"//' \
|
||||||
|
{} + || die
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local myconf=(
|
||||||
|
--libdir="${EPREFIX}/usr/$(get_libdir)"
|
||||||
|
--libexecdir="${EPREFIX}/usr/libexec"
|
||||||
|
--localstatedir="${EPREFIX}/var"
|
||||||
|
--disable-golang
|
||||||
|
--disable-werror
|
||||||
|
--disable-xen
|
||||||
|
--enable-tools
|
||||||
|
--enable-docs
|
||||||
|
$(use_enable api xenapi)
|
||||||
|
$(use_enable ipxe)
|
||||||
|
$(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '')
|
||||||
|
$(use_enable ocaml ocamltools)
|
||||||
|
$(use_enable ovmf)
|
||||||
|
$(use_enable rombios)
|
||||||
|
$(use_enable systemd)
|
||||||
|
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
|
||||||
|
)
|
||||||
|
|
||||||
|
use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin )
|
||||||
|
use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 )
|
||||||
|
use amd64 && myconf+=( $(use_enable qemu-traditional) )
|
||||||
|
tc-ld-disable-gold # Bug 669570
|
||||||
|
econf ${myconf[@]}
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
local myopt
|
||||||
|
use debug && myopt="${myopt} debug=y"
|
||||||
|
use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y"
|
||||||
|
|
||||||
|
if test-flag-CC -fno-strict-overflow; then
|
||||||
|
append-flags -fno-strict-overflow
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bug #845099
|
||||||
|
if use ipxe; then
|
||||||
|
local -x NO_WERROR=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
emake \
|
||||||
|
HOSTCC="$(tc-getBUILD_CC)" \
|
||||||
|
HOSTCXX="$(tc-getBUILD_CXX)" \
|
||||||
|
CC="$(tc-getCC)" \
|
||||||
|
CXX="$(tc-getCXX)" \
|
||||||
|
LD="$(tc-getLD)" \
|
||||||
|
AR="$(tc-getAR)" \
|
||||||
|
OBJDUMP="$(tc-getOBJDUMP)" \
|
||||||
|
RANLIB="$(tc-getRANLIB)" \
|
||||||
|
build-tools ${myopt}
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
emake -C docs build
|
||||||
|
else
|
||||||
|
emake -C docs man-pages
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
# Override auto-detection in the build system, bug #382573
|
||||||
|
export INITD_DIR=/tmp/init.d
|
||||||
|
export CONFIG_LEAF_DIR=../tmp/default
|
||||||
|
|
||||||
|
# Let the build system compile installed Python modules.
|
||||||
|
local PYTHONDONTWRITEBYTECODE
|
||||||
|
export PYTHONDONTWRITEBYTECODE
|
||||||
|
|
||||||
|
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
|
||||||
|
XEN_PYTHON_NATIVE_INSTALL=y install-tools
|
||||||
|
|
||||||
|
# Created at runtime
|
||||||
|
rm -rv "${ED}/var/run" || die
|
||||||
|
|
||||||
|
# Fix the remaining Python shebangs.
|
||||||
|
python_fix_shebang "${D}"
|
||||||
|
|
||||||
|
# Remove RedHat-specific stuff
|
||||||
|
rm -rf "${D}"/tmp || die
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
|
||||||
|
dodoc -r docs/{pdf,txt}
|
||||||
|
else
|
||||||
|
emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
|
||||||
|
fi
|
||||||
|
dodoc ${DOCS[@]}
|
||||||
|
|
||||||
|
newconfd "${FILESDIR}"/xendomains.confd xendomains
|
||||||
|
newconfd "${FILESDIR}"/xenstored.confd xenstored
|
||||||
|
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
|
||||||
|
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
|
||||||
|
newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
|
||||||
|
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
|
||||||
|
newinitd "${FILESDIR}"/xencommons.initd xencommons
|
||||||
|
newconfd "${FILESDIR}"/xencommons.confd xencommons
|
||||||
|
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
|
||||||
|
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
|
||||||
|
newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
|
||||||
|
|
||||||
|
if use screen; then
|
||||||
|
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
|
||||||
|
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
|
||||||
|
keepdir /var/log/xen-consoles
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For -static-libs wrt Bug 384355
|
||||||
|
if ! use static-libs; then
|
||||||
|
rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
|
||||||
|
fi
|
||||||
|
|
||||||
|
# for xendomains
|
||||||
|
keepdir /etc/xen/auto
|
||||||
|
|
||||||
|
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
|
||||||
|
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
|
||||||
|
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
|
||||||
|
|
||||||
|
keepdir /var/lib/xen/dump
|
||||||
|
keepdir /var/lib/xen/xenpaging
|
||||||
|
keepdir /var/lib/xenstored
|
||||||
|
keepdir /var/log/xen
|
||||||
|
|
||||||
|
if use python; then
|
||||||
|
python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
|
||||||
|
python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
|
||||||
|
fi
|
||||||
|
|
||||||
|
python_optimize
|
||||||
|
|
||||||
|
readme.gentoo_create_doc
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
readme.gentoo_print_elog
|
||||||
|
}
|
@ -1,532 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
|
|
||||||
|
|
||||||
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
REPO="xen.git"
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
|
|
||||||
S="${WORKDIR}/${REPO}"
|
|
||||||
else
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
|
||||||
|
|
||||||
SEABIOS_VER="1.14.0"
|
|
||||||
EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
|
|
||||||
EDK2_OPENSSL_VERSION="1_1_1j"
|
|
||||||
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
|
|
||||||
EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
|
|
||||||
IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
|
|
||||||
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=2
|
|
||||||
XEN_GENTOO_PATCHSET_BASE=4.16.1
|
|
||||||
XEN_PRE_PATCHSET_NUM=0
|
|
||||||
XEN_PRE_VERSION_BASE=4.16.2
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="
|
|
||||||
https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz
|
|
||||||
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
|
|
||||||
ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
|
|
||||||
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
|
|
||||||
https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
|
|
||||||
https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
|
|
||||||
https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="Xen tools including QEMU and xl"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
DOCS=( README )
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0/$(ver_cut 1-2)"
|
|
||||||
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
|
|
||||||
# >=dev-lang/ocaml-4 stable
|
|
||||||
# Masked in profiles/eapi-5-files instead
|
|
||||||
IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd"
|
|
||||||
|
|
||||||
REQUIRED_USE="
|
|
||||||
${PYTHON_REQUIRED_USE}
|
|
||||||
ipxe? ( rombios )
|
|
||||||
ovmf? ( hvm )
|
|
||||||
pygrub? ( python )
|
|
||||||
rombios? ( hvm )
|
|
||||||
system-ipxe? ( rombios )
|
|
||||||
?? ( ipxe system-ipxe )
|
|
||||||
?? ( qemu system-qemu )"
|
|
||||||
|
|
||||||
COMMON_DEPEND="
|
|
||||||
lzma? ( app-arch/xz-utils )
|
|
||||||
qemu? (
|
|
||||||
dev-libs/glib:2
|
|
||||||
sys-libs/pam
|
|
||||||
)
|
|
||||||
zstd? ( app-arch/zstd )
|
|
||||||
app-arch/bzip2
|
|
||||||
app-arch/zstd
|
|
||||||
dev-libs/libnl:3
|
|
||||||
dev-libs/lzo:2
|
|
||||||
dev-libs/yajl
|
|
||||||
sys-apps/util-linux
|
|
||||||
sys-fs/e2fsprogs
|
|
||||||
sys-libs/ncurses
|
|
||||||
sys-libs/zlib
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="${COMMON_DEPEND}
|
|
||||||
sys-apps/iproute2[-minimal]
|
|
||||||
net-misc/bridge-utils
|
|
||||||
screen? (
|
|
||||||
app-misc/screen
|
|
||||||
app-admin/logrotate
|
|
||||||
)
|
|
||||||
selinux? ( sec-policy/selinux-xen )"
|
|
||||||
|
|
||||||
DEPEND="${COMMON_DEPEND}
|
|
||||||
app-misc/pax-utils
|
|
||||||
>=sys-kernel/linux-headers-4.11
|
|
||||||
x11-libs/pixman
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/lxml[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
x86? ( sys-devel/dev86
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
sys-power/iasl )
|
|
||||||
api? ( dev-libs/libxml2
|
|
||||||
net-misc/curl )
|
|
||||||
|
|
||||||
ovmf? (
|
|
||||||
!arm? ( !arm64? ( dev-lang/nasm ) )
|
|
||||||
$(python_gen_impl_dep sqlite)
|
|
||||||
)
|
|
||||||
!amd64? ( >=sys-apps/dtc-1.4.0 )
|
|
||||||
amd64? ( sys-power/iasl
|
|
||||||
system-seabios? (
|
|
||||||
|| (
|
|
||||||
sys-firmware/seabios
|
|
||||||
sys-firmware/seabios-bin
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
arm64? ( sys-power/iasl
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
doc? (
|
|
||||||
app-text/ghostscript-gpl
|
|
||||||
app-text/pandoc
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/markdown[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
dev-texlive/texlive-latexextra
|
|
||||||
media-gfx/transfig
|
|
||||||
)
|
|
||||||
hvm? ( x11-base/xorg-proto )
|
|
||||||
qemu? (
|
|
||||||
app-arch/snappy:=
|
|
||||||
dev-util/meson
|
|
||||||
sdl? (
|
|
||||||
media-libs/libsdl[X]
|
|
||||||
media-libs/libsdl2[X]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-qemu? ( app-emulation/qemu[xen] )
|
|
||||||
ocaml? ( dev-ml/findlib
|
|
||||||
dev-lang/ocaml[ocamlopt] )
|
|
||||||
python? ( >=dev-lang/swig-4.0.0 )"
|
|
||||||
|
|
||||||
BDEPEND="dev-lang/perl
|
|
||||||
sys-devel/bison
|
|
||||||
sys-devel/gettext"
|
|
||||||
|
|
||||||
# hvmloader is used to bootstrap a fully virtualized kernel
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="
|
|
||||||
usr/libexec/xen/boot/hvmloader
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_EXECSTACK="
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_PREBUILT="
|
|
||||||
usr/libexec/xen/bin/elf2dmp
|
|
||||||
usr/libexec/xen/bin/ivshmem-client
|
|
||||||
usr/libexec/xen/bin/ivshmem-server
|
|
||||||
usr/libexec/xen/bin/qemu-edid
|
|
||||||
usr/libexec/xen/bin/qemu-img
|
|
||||||
usr/libexec/xen/bin/qemu-io
|
|
||||||
usr/libexec/xen/bin/qemu-keymap
|
|
||||||
usr/libexec/xen/bin/qemu-nbd
|
|
||||||
usr/libexec/xen/bin/qemu-pr-helper
|
|
||||||
usr/libexec/xen/bin/qemu-storage-daemon
|
|
||||||
usr/libexec/xen/bin/qemu-system-i386
|
|
||||||
usr/libexec/xen/bin/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/libexec/xen/libexec/qemu-pr-helper
|
|
||||||
usr/libexec/xen/libexec/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/libexec/virtiofsd
|
|
||||||
usr/libexec/xen/libexec/xen-bridge-helper
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/s390-netboot.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python_setup
|
|
||||||
export "CONFIG_LOMOUNT=y"
|
|
||||||
|
|
||||||
#bug 522642, disable compile tools/tests
|
|
||||||
export "CONFIG_TESTS=n"
|
|
||||||
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
|
|
||||||
if use x86 && use amd64; then
|
|
||||||
die "Confusion! Both x86 and amd64 are set in your use flags!"
|
|
||||||
elif use x86; then
|
|
||||||
export XEN_TARGET_ARCH="x86_32"
|
|
||||||
elif use amd64 ; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
|
|
||||||
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
|
|
||||||
pushd tools/firmware/ > /dev/null
|
|
||||||
ln -s seabios-dir-remote seabios-dir || die
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Rename qemu-bridge-helper to xen-bridge-helper to avoid file
|
|
||||||
# collisions with app-emulation/qemu.
|
|
||||||
sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
|
|
||||||
tools/qemu-xen/include/net/net.h \
|
|
||||||
tools/qemu-xen/meson.build \
|
|
||||||
tools/qemu-xen/qemu-bridge-helper.c \
|
|
||||||
tools/qemu-xen/qemu-options.hx \
|
|
||||||
|| die
|
|
||||||
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
|
|
||||||
|
|
||||||
if use ovmf; then
|
|
||||||
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
|
|
||||||
|
|
||||||
# Bug #816987
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ipxe
|
|
||||||
if use ipxe; then
|
|
||||||
cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
|
|
||||||
|
|
||||||
# gcc 11
|
|
||||||
cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die
|
|
||||||
echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fix texi2html build error with new texi2html, qemu.doc.html
|
|
||||||
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config, fixes to gcc-4.6
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
# drop flags
|
|
||||||
unset CFLAGS
|
|
||||||
unset LDFLAGS
|
|
||||||
unset ASFLAGS
|
|
||||||
unset CPPFLAGS
|
|
||||||
|
|
||||||
if ! use pygrub; then
|
|
||||||
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use python; then
|
|
||||||
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use hvm; then
|
|
||||||
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
|
|
||||||
# Bug 351648
|
|
||||||
elif ! use x86 && ! has x86 $(get_all_abis); then
|
|
||||||
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
|
|
||||||
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
|
|
||||||
export CPATH="${WORKDIR}"/extra-headers
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use qemu; then
|
|
||||||
if use sdl; then
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
else
|
|
||||||
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
|
|
||||||
tools/qemu-xen-traditional/xen-setup || die
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Don't bother with qemu, only needed for fully virtualised guests
|
|
||||||
sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Reset bash completion dir; Bug 472438
|
|
||||||
sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
|
|
||||||
-i config/Paths.mk.in || die
|
|
||||||
|
|
||||||
# xencommons, Bug #492332, sed lighter weight than patching
|
|
||||||
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xencommons.in || die
|
|
||||||
|
|
||||||
# fix bashishm
|
|
||||||
sed -e '/Usage/s/\$//g' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xendriverdomain.in || die
|
|
||||||
|
|
||||||
# respect multilib, usr/lib/libcacard.so.0.0.0
|
|
||||||
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
|
|
||||||
-i tools/qemu-xen/configure || die
|
|
||||||
|
|
||||||
#bug 518136, don't build 32bit exactuable for nomultilib profile
|
|
||||||
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
|
|
||||||
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# uncomment lines in xl.conf
|
|
||||||
sed -e 's:^#autoballoon=:autoballoon=:' \
|
|
||||||
-e 's:^#lockfile=:lockfile=:' \
|
|
||||||
-e 's:^#vif.default.script=:vif.default.script=:' \
|
|
||||||
-i tools/examples/xl.conf || die
|
|
||||||
|
|
||||||
# disable capstone (Bug #673474)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable glusterfs
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable jpeg automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable png automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable docker (Bug #732970)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-containers:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable abi-dumper (Bug #791172)
|
|
||||||
sed -e 's/$(ABI_DUMPER) /echo /g' \
|
|
||||||
-i tools/libs/libs.mk || die
|
|
||||||
|
|
||||||
# Remove -Werror
|
|
||||||
find . -type f \( -name Makefile -o -name "*.mk" \) \
|
|
||||||
-exec sed -i \
|
|
||||||
-e 's/-Werror //g' \
|
|
||||||
-e '/^CFLAGS *+= -Werror$/d' \
|
|
||||||
-e 's/, "-Werror"//' \
|
|
||||||
{} + || die
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--libdir="${EPREFIX}/usr/$(get_libdir)"
|
|
||||||
--libexecdir="${EPREFIX}/usr/libexec"
|
|
||||||
--localstatedir="${EPREFIX}/var"
|
|
||||||
--disable-golang
|
|
||||||
--disable-werror
|
|
||||||
--disable-xen
|
|
||||||
--enable-tools
|
|
||||||
--enable-docs
|
|
||||||
$(use_enable api xenapi)
|
|
||||||
$(use_enable ipxe)
|
|
||||||
$(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '')
|
|
||||||
$(use_enable ocaml ocamltools)
|
|
||||||
$(use_enable ovmf)
|
|
||||||
$(use_enable rombios)
|
|
||||||
$(use_enable systemd)
|
|
||||||
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
|
|
||||||
)
|
|
||||||
|
|
||||||
use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin )
|
|
||||||
use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 )
|
|
||||||
use amd64 && myconf+=( $(use_enable qemu-traditional) )
|
|
||||||
tc-ld-disable-gold # Bug 669570
|
|
||||||
econf ${myconf[@]}
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
local myopt
|
|
||||||
use debug && myopt="${myopt} debug=y"
|
|
||||||
use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y"
|
|
||||||
|
|
||||||
if test-flag-CC -fno-strict-overflow; then
|
|
||||||
append-flags -fno-strict-overflow
|
|
||||||
fi
|
|
||||||
|
|
||||||
# bug #845099
|
|
||||||
if use ipxe; then
|
|
||||||
local -x NO_WERROR=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
emake \
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" \
|
|
||||||
HOSTCXX="$(tc-getBUILD_CXX)" \
|
|
||||||
CC="$(tc-getCC)" \
|
|
||||||
CXX="$(tc-getCXX)" \
|
|
||||||
LD="$(tc-getLD)" \
|
|
||||||
AR="$(tc-getAR)" \
|
|
||||||
OBJDUMP="$(tc-getOBJDUMP)" \
|
|
||||||
RANLIB="$(tc-getRANLIB)" \
|
|
||||||
build-tools ${myopt}
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake -C docs build
|
|
||||||
else
|
|
||||||
emake -C docs man-pages
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# Override auto-detection in the build system, bug #382573
|
|
||||||
export INITD_DIR=/tmp/init.d
|
|
||||||
export CONFIG_LEAF_DIR=../tmp/default
|
|
||||||
|
|
||||||
# Let the build system compile installed Python modules.
|
|
||||||
local PYTHONDONTWRITEBYTECODE
|
|
||||||
export PYTHONDONTWRITEBYTECODE
|
|
||||||
|
|
||||||
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
|
|
||||||
XEN_PYTHON_NATIVE_INSTALL=y install-tools
|
|
||||||
|
|
||||||
# Created at runtime
|
|
||||||
rm -rv "${ED}/var/run" || die
|
|
||||||
|
|
||||||
# Fix the remaining Python shebangs.
|
|
||||||
python_fix_shebang "${D}"
|
|
||||||
|
|
||||||
# Remove RedHat-specific stuff
|
|
||||||
rm -rf "${D}"/tmp || die
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
|
|
||||||
dodoc -r docs/{pdf,txt}
|
|
||||||
else
|
|
||||||
emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
|
|
||||||
fi
|
|
||||||
dodoc ${DOCS[@]}
|
|
||||||
|
|
||||||
newconfd "${FILESDIR}"/xendomains.confd xendomains
|
|
||||||
newconfd "${FILESDIR}"/xenstored.confd xenstored
|
|
||||||
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
|
|
||||||
newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
|
|
||||||
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xencommons.initd xencommons
|
|
||||||
newconfd "${FILESDIR}"/xencommons.confd xencommons
|
|
||||||
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
|
|
||||||
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
|
|
||||||
newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
|
|
||||||
|
|
||||||
if use screen; then
|
|
||||||
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
|
|
||||||
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
|
|
||||||
keepdir /var/log/xen-consoles
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For -static-libs wrt Bug 384355
|
|
||||||
if ! use static-libs; then
|
|
||||||
rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
# for xendomains
|
|
||||||
keepdir /etc/xen/auto
|
|
||||||
|
|
||||||
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
|
|
||||||
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
|
|
||||||
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
|
|
||||||
|
|
||||||
keepdir /var/lib/xen/dump
|
|
||||||
keepdir /var/lib/xen/xenpaging
|
|
||||||
keepdir /var/lib/xenstored
|
|
||||||
keepdir /var/log/xen
|
|
||||||
|
|
||||||
if use python; then
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
python_optimize
|
|
||||||
|
|
||||||
readme.gentoo_create_doc
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
readme.gentoo_print_elog
|
|
||||||
}
|
|
@ -1,532 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
|
|
||||||
|
|
||||||
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
REPO="xen.git"
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
|
|
||||||
S="${WORKDIR}/${REPO}"
|
|
||||||
else
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
|
||||||
|
|
||||||
SEABIOS_VER="1.14.0"
|
|
||||||
EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
|
|
||||||
EDK2_OPENSSL_VERSION="1_1_1j"
|
|
||||||
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
|
|
||||||
EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
|
|
||||||
IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
|
|
||||||
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=2
|
|
||||||
XEN_GENTOO_PATCHSET_BASE=4.16.1
|
|
||||||
XEN_PRE_PATCHSET_NUM=0
|
|
||||||
XEN_PRE_VERSION_BASE=4.16.2
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="
|
|
||||||
https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz
|
|
||||||
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
|
|
||||||
ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
|
|
||||||
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
|
|
||||||
https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
|
|
||||||
https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
|
|
||||||
https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="Xen tools including QEMU and xl"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
DOCS=( README )
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0/$(ver_cut 1-2)"
|
|
||||||
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
|
|
||||||
# >=dev-lang/ocaml-4 stable
|
|
||||||
# Masked in profiles/eapi-5-files instead
|
|
||||||
IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd"
|
|
||||||
|
|
||||||
REQUIRED_USE="
|
|
||||||
${PYTHON_REQUIRED_USE}
|
|
||||||
ipxe? ( rombios )
|
|
||||||
ovmf? ( hvm )
|
|
||||||
pygrub? ( python )
|
|
||||||
rombios? ( hvm )
|
|
||||||
system-ipxe? ( rombios )
|
|
||||||
?? ( ipxe system-ipxe )
|
|
||||||
?? ( qemu system-qemu )"
|
|
||||||
|
|
||||||
COMMON_DEPEND="
|
|
||||||
lzma? ( app-arch/xz-utils )
|
|
||||||
qemu? (
|
|
||||||
dev-libs/glib:2
|
|
||||||
sys-libs/pam
|
|
||||||
)
|
|
||||||
zstd? ( app-arch/zstd )
|
|
||||||
app-arch/bzip2
|
|
||||||
app-arch/zstd
|
|
||||||
dev-libs/libnl:3
|
|
||||||
dev-libs/lzo:2
|
|
||||||
dev-libs/yajl
|
|
||||||
sys-apps/util-linux
|
|
||||||
sys-fs/e2fsprogs
|
|
||||||
sys-libs/ncurses
|
|
||||||
sys-libs/zlib
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="${COMMON_DEPEND}
|
|
||||||
sys-apps/iproute2[-minimal]
|
|
||||||
net-misc/bridge-utils
|
|
||||||
screen? (
|
|
||||||
app-misc/screen
|
|
||||||
app-admin/logrotate
|
|
||||||
)
|
|
||||||
selinux? ( sec-policy/selinux-xen )"
|
|
||||||
|
|
||||||
DEPEND="${COMMON_DEPEND}
|
|
||||||
app-misc/pax-utils
|
|
||||||
>=sys-kernel/linux-headers-4.11
|
|
||||||
x11-libs/pixman
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/lxml[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
x86? ( sys-devel/dev86
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
sys-power/iasl )
|
|
||||||
api? ( dev-libs/libxml2
|
|
||||||
net-misc/curl )
|
|
||||||
|
|
||||||
ovmf? (
|
|
||||||
!arm? ( !arm64? ( dev-lang/nasm ) )
|
|
||||||
$(python_gen_impl_dep sqlite)
|
|
||||||
)
|
|
||||||
!amd64? ( >=sys-apps/dtc-1.4.0 )
|
|
||||||
amd64? ( sys-power/iasl
|
|
||||||
system-seabios? (
|
|
||||||
|| (
|
|
||||||
sys-firmware/seabios
|
|
||||||
sys-firmware/seabios-bin
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-ipxe? ( sys-firmware/ipxe[qemu] )
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
arm64? ( sys-power/iasl
|
|
||||||
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
|
|
||||||
doc? (
|
|
||||||
app-text/ghostscript-gpl
|
|
||||||
app-text/pandoc
|
|
||||||
$(python_gen_cond_dep '
|
|
||||||
dev-python/markdown[${PYTHON_USEDEP}]
|
|
||||||
')
|
|
||||||
dev-texlive/texlive-latexextra
|
|
||||||
media-gfx/transfig
|
|
||||||
)
|
|
||||||
hvm? ( x11-base/xorg-proto )
|
|
||||||
qemu? (
|
|
||||||
app-arch/snappy:=
|
|
||||||
dev-util/meson
|
|
||||||
sdl? (
|
|
||||||
media-libs/libsdl[X]
|
|
||||||
media-libs/libsdl2[X]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
system-qemu? ( app-emulation/qemu[xen] )
|
|
||||||
ocaml? ( dev-ml/findlib
|
|
||||||
dev-lang/ocaml[ocamlopt] )
|
|
||||||
python? ( >=dev-lang/swig-4.0.0 )"
|
|
||||||
|
|
||||||
BDEPEND="dev-lang/perl
|
|
||||||
sys-devel/bison
|
|
||||||
sys-devel/gettext"
|
|
||||||
|
|
||||||
# hvmloader is used to bootstrap a fully virtualized kernel
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="
|
|
||||||
usr/libexec/xen/boot/hvmloader
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_EXECSTACK="
|
|
||||||
usr/share/qemu-xen/qemu/hppa-firmware.img
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_PREBUILT="
|
|
||||||
usr/libexec/xen/bin/elf2dmp
|
|
||||||
usr/libexec/xen/bin/ivshmem-client
|
|
||||||
usr/libexec/xen/bin/ivshmem-server
|
|
||||||
usr/libexec/xen/bin/qemu-edid
|
|
||||||
usr/libexec/xen/bin/qemu-img
|
|
||||||
usr/libexec/xen/bin/qemu-io
|
|
||||||
usr/libexec/xen/bin/qemu-keymap
|
|
||||||
usr/libexec/xen/bin/qemu-nbd
|
|
||||||
usr/libexec/xen/bin/qemu-pr-helper
|
|
||||||
usr/libexec/xen/bin/qemu-storage-daemon
|
|
||||||
usr/libexec/xen/bin/qemu-system-i386
|
|
||||||
usr/libexec/xen/bin/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/boot/ovmf.bin
|
|
||||||
usr/libexec/xen/boot/xen-shim
|
|
||||||
usr/libexec/xen/libexec/qemu-pr-helper
|
|
||||||
usr/libexec/xen/libexec/virtfs-proxy-helper
|
|
||||||
usr/libexec/xen/libexec/virtiofsd
|
|
||||||
usr/libexec/xen/libexec/xen-bridge-helper
|
|
||||||
usr/share/qemu-xen/qemu/s390-ccw.img
|
|
||||||
usr/share/qemu-xen/qemu/s390-netboot.img
|
|
||||||
usr/share/qemu-xen/qemu/u-boot.e500
|
|
||||||
"
|
|
||||||
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python_setup
|
|
||||||
export "CONFIG_LOMOUNT=y"
|
|
||||||
|
|
||||||
#bug 522642, disable compile tools/tests
|
|
||||||
export "CONFIG_TESTS=n"
|
|
||||||
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
|
|
||||||
if use x86 && use amd64; then
|
|
||||||
die "Confusion! Both x86 and amd64 are set in your use flags!"
|
|
||||||
elif use x86; then
|
|
||||||
export XEN_TARGET_ARCH="x86_32"
|
|
||||||
elif use amd64 ; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
|
|
||||||
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
|
|
||||||
pushd tools/firmware/ > /dev/null
|
|
||||||
ln -s seabios-dir-remote seabios-dir || die
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Rename qemu-bridge-helper to xen-bridge-helper to avoid file
|
|
||||||
# collisions with app-emulation/qemu.
|
|
||||||
sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
|
|
||||||
tools/qemu-xen/include/net/net.h \
|
|
||||||
tools/qemu-xen/meson.build \
|
|
||||||
tools/qemu-xen/qemu-bridge-helper.c \
|
|
||||||
tools/qemu-xen/qemu-options.hx \
|
|
||||||
|| die
|
|
||||||
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
|
|
||||||
|
|
||||||
if use ovmf; then
|
|
||||||
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
|
|
||||||
mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
|
|
||||||
cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
|
|
||||||
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
|
|
||||||
|
|
||||||
# Bug #816987
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
|
|
||||||
popd > /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ipxe
|
|
||||||
if use ipxe; then
|
|
||||||
cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
|
|
||||||
|
|
||||||
# gcc 11
|
|
||||||
cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die
|
|
||||||
echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fix texi2html build error with new texi2html, qemu.doc.html
|
|
||||||
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config, fixes to gcc-4.6
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
# drop flags
|
|
||||||
unset CFLAGS
|
|
||||||
unset LDFLAGS
|
|
||||||
unset ASFLAGS
|
|
||||||
unset CPPFLAGS
|
|
||||||
|
|
||||||
if ! use pygrub; then
|
|
||||||
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use python; then
|
|
||||||
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! use hvm; then
|
|
||||||
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
|
|
||||||
# Bug 351648
|
|
||||||
elif ! use x86 && ! has x86 $(get_all_abis); then
|
|
||||||
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
|
|
||||||
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
|
|
||||||
export CPATH="${WORKDIR}"/extra-headers
|
|
||||||
fi
|
|
||||||
|
|
||||||
if use qemu; then
|
|
||||||
if use sdl; then
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
else
|
|
||||||
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
|
|
||||||
tools/qemu-xen-traditional/xen-setup || die
|
|
||||||
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
|
|
||||||
tools/Makefile || die
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Don't bother with qemu, only needed for fully virtualised guests
|
|
||||||
sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Reset bash completion dir; Bug 472438
|
|
||||||
sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
|
|
||||||
-i config/Paths.mk.in || die
|
|
||||||
|
|
||||||
# xencommons, Bug #492332, sed lighter weight than patching
|
|
||||||
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xencommons.in || die
|
|
||||||
|
|
||||||
# fix bashishm
|
|
||||||
sed -e '/Usage/s/\$//g' \
|
|
||||||
-i tools/hotplug/Linux/init.d/xendriverdomain.in || die
|
|
||||||
|
|
||||||
# respect multilib, usr/lib/libcacard.so.0.0.0
|
|
||||||
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
|
|
||||||
-i tools/qemu-xen/configure || die
|
|
||||||
|
|
||||||
#bug 518136, don't build 32bit exactuable for nomultilib profile
|
|
||||||
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
|
|
||||||
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# uncomment lines in xl.conf
|
|
||||||
sed -e 's:^#autoballoon=:autoballoon=:' \
|
|
||||||
-e 's:^#lockfile=:lockfile=:' \
|
|
||||||
-e 's:^#vif.default.script=:vif.default.script=:' \
|
|
||||||
-i tools/examples/xl.conf || die
|
|
||||||
|
|
||||||
# disable capstone (Bug #673474)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable glusterfs
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable jpeg automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable png automagic
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable docker (Bug #732970)
|
|
||||||
sed -e "s:\$\$source/configure:\0 --disable-containers:" \
|
|
||||||
-i tools/Makefile || die
|
|
||||||
|
|
||||||
# disable abi-dumper (Bug #791172)
|
|
||||||
sed -e 's/$(ABI_DUMPER) /echo /g' \
|
|
||||||
-i tools/libs/libs.mk || die
|
|
||||||
|
|
||||||
# Remove -Werror
|
|
||||||
find . -type f \( -name Makefile -o -name "*.mk" \) \
|
|
||||||
-exec sed -i \
|
|
||||||
-e 's/-Werror //g' \
|
|
||||||
-e '/^CFLAGS *+= -Werror$/d' \
|
|
||||||
-e 's/, "-Werror"//' \
|
|
||||||
{} + || die
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myconf=(
|
|
||||||
--libdir="${EPREFIX}/usr/$(get_libdir)"
|
|
||||||
--libexecdir="${EPREFIX}/usr/libexec"
|
|
||||||
--localstatedir="${EPREFIX}/var"
|
|
||||||
--disable-golang
|
|
||||||
--disable-werror
|
|
||||||
--disable-xen
|
|
||||||
--enable-tools
|
|
||||||
--enable-docs
|
|
||||||
$(use_enable api xenapi)
|
|
||||||
$(use_enable ipxe)
|
|
||||||
$(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '')
|
|
||||||
$(use_enable ocaml ocamltools)
|
|
||||||
$(use_enable ovmf)
|
|
||||||
$(use_enable rombios)
|
|
||||||
$(use_enable systemd)
|
|
||||||
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
|
|
||||||
)
|
|
||||||
|
|
||||||
use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin )
|
|
||||||
use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 )
|
|
||||||
use amd64 && myconf+=( $(use_enable qemu-traditional) )
|
|
||||||
tc-ld-disable-gold # Bug 669570
|
|
||||||
econf ${myconf[@]}
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
local myopt
|
|
||||||
use debug && myopt="${myopt} debug=y"
|
|
||||||
use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y"
|
|
||||||
|
|
||||||
if test-flag-CC -fno-strict-overflow; then
|
|
||||||
append-flags -fno-strict-overflow
|
|
||||||
fi
|
|
||||||
|
|
||||||
# bug #845099
|
|
||||||
if use ipxe; then
|
|
||||||
local -x NO_WERROR=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
emake \
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" \
|
|
||||||
HOSTCXX="$(tc-getBUILD_CXX)" \
|
|
||||||
CC="$(tc-getCC)" \
|
|
||||||
CXX="$(tc-getCXX)" \
|
|
||||||
LD="$(tc-getLD)" \
|
|
||||||
AR="$(tc-getAR)" \
|
|
||||||
OBJDUMP="$(tc-getOBJDUMP)" \
|
|
||||||
RANLIB="$(tc-getRANLIB)" \
|
|
||||||
build-tools ${myopt}
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake -C docs build
|
|
||||||
else
|
|
||||||
emake -C docs man-pages
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# Override auto-detection in the build system, bug #382573
|
|
||||||
export INITD_DIR=/tmp/init.d
|
|
||||||
export CONFIG_LEAF_DIR=../tmp/default
|
|
||||||
|
|
||||||
# Let the build system compile installed Python modules.
|
|
||||||
local PYTHONDONTWRITEBYTECODE
|
|
||||||
export PYTHONDONTWRITEBYTECODE
|
|
||||||
|
|
||||||
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
|
|
||||||
XEN_PYTHON_NATIVE_INSTALL=y install-tools
|
|
||||||
|
|
||||||
# Created at runtime
|
|
||||||
rm -rv "${ED}/var/run" || die
|
|
||||||
|
|
||||||
# Fix the remaining Python shebangs.
|
|
||||||
python_fix_shebang "${D}"
|
|
||||||
|
|
||||||
# Remove RedHat-specific stuff
|
|
||||||
rm -rf "${D}"/tmp || die
|
|
||||||
|
|
||||||
if use doc; then
|
|
||||||
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
|
|
||||||
dodoc -r docs/{pdf,txt}
|
|
||||||
else
|
|
||||||
emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
|
|
||||||
fi
|
|
||||||
dodoc ${DOCS[@]}
|
|
||||||
|
|
||||||
newconfd "${FILESDIR}"/xendomains.confd xendomains
|
|
||||||
newconfd "${FILESDIR}"/xenstored.confd xenstored
|
|
||||||
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
|
|
||||||
newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
|
|
||||||
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
|
|
||||||
newinitd "${FILESDIR}"/xencommons.initd xencommons
|
|
||||||
newconfd "${FILESDIR}"/xencommons.confd xencommons
|
|
||||||
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
|
|
||||||
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
|
|
||||||
newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
|
|
||||||
|
|
||||||
if use screen; then
|
|
||||||
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
|
|
||||||
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
|
|
||||||
keepdir /var/log/xen-consoles
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For -static-libs wrt Bug 384355
|
|
||||||
if ! use static-libs; then
|
|
||||||
rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
# for xendomains
|
|
||||||
keepdir /etc/xen/auto
|
|
||||||
|
|
||||||
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
|
|
||||||
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
|
|
||||||
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
|
|
||||||
|
|
||||||
keepdir /var/lib/xen/dump
|
|
||||||
keepdir /var/lib/xen/xenpaging
|
|
||||||
keepdir /var/lib/xenstored
|
|
||||||
keepdir /var/log/xen
|
|
||||||
|
|
||||||
if use python; then
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
|
|
||||||
python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
python_optimize
|
|
||||||
|
|
||||||
readme.gentoo_create_doc
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
readme.gentoo_print_elog
|
|
||||||
}
|
|
@ -1,183 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..10} )
|
|
||||||
|
|
||||||
inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
KEYWORDS="amd64 ~arm -x86"
|
|
||||||
|
|
||||||
XEN_PRE_PATCHSET_NUM=1
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=
|
|
||||||
XEN_PRE_VERSION_BASE=4.15.3
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_BASE_PV})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="The Xen virtual machine monitor"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="debug efi flask"
|
|
||||||
REQUIRED_USE="arm? ( debug )"
|
|
||||||
|
|
||||||
DEPEND="${PYTHON_DEPS}
|
|
||||||
efi? ( >=sys-devel/binutils-2.22[multitarget] )
|
|
||||||
!efi? ( >=sys-devel/binutils-2.22 )
|
|
||||||
flask? ( sys-apps/checkpolicy )"
|
|
||||||
RDEPEND=""
|
|
||||||
PDEPEND="~app-emulation/xen-tools-${PV}"
|
|
||||||
|
|
||||||
# no tests are available for the hypervisor
|
|
||||||
# prevent the silliness of /usr/lib/debug/usr/lib/debug files
|
|
||||||
# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
|
|
||||||
RESTRICT="test splitdebug strip"
|
|
||||||
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="boot/xen-syms-${PV}"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python-any-r1_pkg_setup
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]]; then
|
|
||||||
if use amd64; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
eapply "${FILESDIR}"/${PN}-4.15-efi.patch
|
|
||||||
|
|
||||||
# Enable XSM-FLASK
|
|
||||||
use flask && eapply "${FILESDIR}"/${PN}-4.15-flask.patch
|
|
||||||
|
|
||||||
# Workaround new gcc-11 options
|
|
||||||
sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
if use efi; then
|
|
||||||
export EFI_VENDOR="gentoo"
|
|
||||||
export EFI_MOUNTPOINT="/boot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
xen_make() {
|
|
||||||
# Setting clang to either 'y' or 'n' tells Xen's build system
|
|
||||||
# whether or not clang is used.
|
|
||||||
local clang=n
|
|
||||||
if tc-is-clang; then
|
|
||||||
clang=y
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Send raw LDFLAGS so that --as-needed works
|
|
||||||
emake \
|
|
||||||
V=1 \
|
|
||||||
LDFLAGS="$(raw-ldflags)" \
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" \
|
|
||||||
HOSTCXX="$(tc-getBUILD_CXX)" \
|
|
||||||
clang="${clang}" \
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
cd xen || die
|
|
||||||
|
|
||||||
touch gentoo-config || die
|
|
||||||
if use arm; then
|
|
||||||
echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
if use debug; then
|
|
||||||
cat <<-EOF >> gentoo-config || die
|
|
||||||
CONFIG_DEBUG=y
|
|
||||||
CONFIG_CRASH_DEBUG=y
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
if use flask; then
|
|
||||||
echo "CONFIG_XSM=y" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# remove flags
|
|
||||||
unset CFLAGS
|
|
||||||
|
|
||||||
tc-ld-disable-gold # Bug 700374
|
|
||||||
|
|
||||||
xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
xen_make -C xen
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# The 'make install' doesn't 'mkdir -p' the subdirs
|
|
||||||
if use efi; then
|
|
||||||
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
xen_make DESTDIR="${D}" -C xen install
|
|
||||||
|
|
||||||
# make install likes to throw in some extra EFI bits if it built
|
|
||||||
use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "Official Xen Guide:"
|
|
||||||
elog " https://wiki.gentoo.org/wiki/Xen"
|
|
||||||
|
|
||||||
use efi && einfo "The efi executable is installed in /boot/efi/gentoo"
|
|
||||||
|
|
||||||
ewarn
|
|
||||||
ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause"
|
|
||||||
ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems"
|
|
||||||
ewarn "to work fine."
|
|
||||||
ewarn
|
|
||||||
ewarn "Add sched=credit to xen command line options to use the legacy scheduler."
|
|
||||||
ewarn
|
|
||||||
ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B"
|
|
||||||
}
|
|
@ -1,183 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..10} )
|
|
||||||
|
|
||||||
inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
KEYWORDS="~amd64 ~arm -x86"
|
|
||||||
|
|
||||||
XEN_PRE_PATCHSET_NUM=1
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=
|
|
||||||
XEN_PRE_VERSION_BASE=4.15.3
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_BASE_PV})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="The Xen virtual machine monitor"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="debug efi flask"
|
|
||||||
REQUIRED_USE="arm? ( debug )"
|
|
||||||
|
|
||||||
DEPEND="${PYTHON_DEPS}
|
|
||||||
efi? ( >=sys-devel/binutils-2.22[multitarget] )
|
|
||||||
!efi? ( >=sys-devel/binutils-2.22 )
|
|
||||||
flask? ( sys-apps/checkpolicy )"
|
|
||||||
RDEPEND=""
|
|
||||||
PDEPEND="~app-emulation/xen-tools-${PV}"
|
|
||||||
|
|
||||||
# no tests are available for the hypervisor
|
|
||||||
# prevent the silliness of /usr/lib/debug/usr/lib/debug files
|
|
||||||
# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
|
|
||||||
RESTRICT="test splitdebug strip"
|
|
||||||
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="boot/xen-syms-${PV}"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python-any-r1_pkg_setup
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]]; then
|
|
||||||
if use amd64; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
eapply "${FILESDIR}"/${PN}-4.15-efi.patch
|
|
||||||
|
|
||||||
# Enable XSM-FLASK
|
|
||||||
use flask && eapply "${FILESDIR}"/${PN}-4.15-flask.patch
|
|
||||||
|
|
||||||
# Workaround new gcc-11 options
|
|
||||||
sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
if use efi; then
|
|
||||||
export EFI_VENDOR="gentoo"
|
|
||||||
export EFI_MOUNTPOINT="/boot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
xen_make() {
|
|
||||||
# Setting clang to either 'y' or 'n' tells Xen's build system
|
|
||||||
# whether or not clang is used.
|
|
||||||
local clang=n
|
|
||||||
if tc-is-clang; then
|
|
||||||
clang=y
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Send raw LDFLAGS so that --as-needed works
|
|
||||||
emake \
|
|
||||||
V=1 \
|
|
||||||
LDFLAGS="$(raw-ldflags)" \
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" \
|
|
||||||
HOSTCXX="$(tc-getBUILD_CXX)" \
|
|
||||||
clang="${clang}" \
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
cd xen || die
|
|
||||||
|
|
||||||
touch gentoo-config || die
|
|
||||||
if use arm; then
|
|
||||||
echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
if use debug; then
|
|
||||||
cat <<-EOF >> gentoo-config || die
|
|
||||||
CONFIG_DEBUG=y
|
|
||||||
CONFIG_CRASH_DEBUG=y
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
if use flask; then
|
|
||||||
echo "CONFIG_XSM=y" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# remove flags
|
|
||||||
unset CFLAGS
|
|
||||||
|
|
||||||
tc-ld-disable-gold # Bug 700374
|
|
||||||
|
|
||||||
xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
xen_make -C xen
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# The 'make install' doesn't 'mkdir -p' the subdirs
|
|
||||||
if use efi; then
|
|
||||||
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
xen_make DESTDIR="${D}" -C xen install
|
|
||||||
|
|
||||||
# make install likes to throw in some extra EFI bits if it built
|
|
||||||
use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog "Official Xen Guide:"
|
|
||||||
elog " https://wiki.gentoo.org/wiki/Xen"
|
|
||||||
|
|
||||||
use efi && einfo "The efi executable is installed in /boot/efi/gentoo"
|
|
||||||
|
|
||||||
ewarn
|
|
||||||
ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause"
|
|
||||||
ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems"
|
|
||||||
ewarn "to work fine."
|
|
||||||
ewarn
|
|
||||||
ewarn "Add sched=credit to xen command line options to use the legacy scheduler."
|
|
||||||
ewarn
|
|
||||||
ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B"
|
|
||||||
}
|
|
@ -0,0 +1,174 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{9..11} )
|
||||||
|
|
||||||
|
inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
|
||||||
|
SRC_URI=""
|
||||||
|
else
|
||||||
|
KEYWORDS="~amd64 ~arm -x86"
|
||||||
|
|
||||||
|
XEN_GENTOO_PATCHSET_NUM=2
|
||||||
|
XEN_GENTOO_PATCHSET_BASE=4.16.1
|
||||||
|
XEN_PRE_PATCHSET_NUM=
|
||||||
|
XEN_PRE_VERSION_BASE=
|
||||||
|
|
||||||
|
XEN_BASE_PV="${PV}"
|
||||||
|
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
||||||
|
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz"
|
||||||
|
|
||||||
|
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
||||||
|
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
||||||
|
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
||||||
|
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
||||||
|
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
||||||
|
fi
|
||||||
|
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
||||||
|
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
||||||
|
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
||||||
|
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
||||||
|
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="The Xen virtual machine monitor"
|
||||||
|
HOMEPAGE="https://xenproject.org"
|
||||||
|
|
||||||
|
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="+boot-symlinks debug efi flask"
|
||||||
|
REQUIRED_USE="arm? ( debug )"
|
||||||
|
|
||||||
|
DEPEND="${PYTHON_DEPS}
|
||||||
|
efi? ( >=sys-devel/binutils-2.22[multitarget] )
|
||||||
|
!efi? ( >=sys-devel/binutils-2.22 )
|
||||||
|
flask? ( sys-apps/checkpolicy )"
|
||||||
|
RDEPEND=""
|
||||||
|
PDEPEND="~app-emulation/xen-tools-${PV}"
|
||||||
|
|
||||||
|
# no tests are available for the hypervisor
|
||||||
|
# prevent the silliness of /usr/lib/debug/usr/lib/debug files
|
||||||
|
# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
|
||||||
|
RESTRICT="test splitdebug strip"
|
||||||
|
|
||||||
|
# Approved by QA team in bug #144032
|
||||||
|
QA_WX_LOAD="boot/xen-syms-${PV}"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
python-any-r1_pkg_setup
|
||||||
|
if [[ -z ${XEN_TARGET_ARCH} ]]; then
|
||||||
|
if use amd64; then
|
||||||
|
export XEN_TARGET_ARCH="x86_64"
|
||||||
|
elif use arm; then
|
||||||
|
export XEN_TARGET_ARCH="arm32"
|
||||||
|
elif use arm64; then
|
||||||
|
export XEN_TARGET_ARCH="arm64"
|
||||||
|
else
|
||||||
|
die "Unsupported architecture!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
||||||
|
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
||||||
|
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Symlinks do not work on fat32 volumes # 829765
|
||||||
|
if ! use boot-symlinks || use efi; then
|
||||||
|
eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Workaround new gcc-11 options
|
||||||
|
sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
|
||||||
|
|
||||||
|
# Drop .config
|
||||||
|
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
||||||
|
|
||||||
|
if use efi; then
|
||||||
|
export EFI_VENDOR="gentoo"
|
||||||
|
export EFI_MOUNTPOINT="/boot"
|
||||||
|
fi
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
xen_make() {
|
||||||
|
# Setting clang to either 'y' or 'n' tells Xen's build system
|
||||||
|
# whether or not clang is used.
|
||||||
|
local clang=n
|
||||||
|
if tc-is-clang; then
|
||||||
|
clang=y
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Send raw LDFLAGS so that --as-needed works
|
||||||
|
emake \
|
||||||
|
V=1 \
|
||||||
|
LDFLAGS="$(raw-ldflags)" \
|
||||||
|
HOSTCC="$(tc-getBUILD_CC)" \
|
||||||
|
HOSTCXX="$(tc-getBUILD_CXX)" \
|
||||||
|
CC="$(tc-getCC)" \
|
||||||
|
CXX="$(tc-getCXX)" \
|
||||||
|
LD="$(tc-getLD)" \
|
||||||
|
AR="$(tc-getAR)" \
|
||||||
|
OBJDUMP="$(tc-getOBJDUMP)" \
|
||||||
|
RANLIB="$(tc-getRANLIB)" \
|
||||||
|
clang="${clang}" \
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
cd xen || die
|
||||||
|
|
||||||
|
touch gentoo-config || die
|
||||||
|
if use arm; then
|
||||||
|
echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
|
||||||
|
fi
|
||||||
|
if use debug; then
|
||||||
|
cat <<-EOF >> gentoo-config || die
|
||||||
|
CONFIG_DEBUG=y
|
||||||
|
CONFIG_CRASH_DEBUG=y
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
if use flask; then
|
||||||
|
echo "CONFIG_XSM=y" >> gentoo-config || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# remove flags
|
||||||
|
unset CFLAGS
|
||||||
|
|
||||||
|
tc-ld-disable-gold # Bug 700374
|
||||||
|
|
||||||
|
xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
xen_make -C xen
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
# The 'make install' doesn't 'mkdir -p' the subdirs
|
||||||
|
if use efi; then
|
||||||
|
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
xen_make DESTDIR="${D}" -C xen install
|
||||||
|
|
||||||
|
# make install likes to throw in some extra EFI bits if it built
|
||||||
|
use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
|
||||||
|
}
|
@ -1,174 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
|
|
||||||
inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
KEYWORDS="~amd64 ~arm -x86"
|
|
||||||
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=2
|
|
||||||
XEN_GENTOO_PATCHSET_BASE=4.16.1
|
|
||||||
XEN_PRE_PATCHSET_NUM=0
|
|
||||||
XEN_PRE_VERSION_BASE=4.16.2
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="The Xen virtual machine monitor"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="+boot-symlinks debug efi flask"
|
|
||||||
REQUIRED_USE="arm? ( debug )"
|
|
||||||
|
|
||||||
DEPEND="${PYTHON_DEPS}
|
|
||||||
efi? ( >=sys-devel/binutils-2.22[multitarget] )
|
|
||||||
!efi? ( >=sys-devel/binutils-2.22 )
|
|
||||||
flask? ( sys-apps/checkpolicy )"
|
|
||||||
RDEPEND=""
|
|
||||||
PDEPEND="~app-emulation/xen-tools-${PV}"
|
|
||||||
|
|
||||||
# no tests are available for the hypervisor
|
|
||||||
# prevent the silliness of /usr/lib/debug/usr/lib/debug files
|
|
||||||
# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
|
|
||||||
RESTRICT="test splitdebug strip"
|
|
||||||
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="boot/xen-syms-${PV}"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python-any-r1_pkg_setup
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]]; then
|
|
||||||
if use amd64; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Symlinks do not work on fat32 volumes # 829765
|
|
||||||
if ! use boot-symlinks || use efi; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Workaround new gcc-11 options
|
|
||||||
sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
if use efi; then
|
|
||||||
export EFI_VENDOR="gentoo"
|
|
||||||
export EFI_MOUNTPOINT="/boot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
xen_make() {
|
|
||||||
# Setting clang to either 'y' or 'n' tells Xen's build system
|
|
||||||
# whether or not clang is used.
|
|
||||||
local clang=n
|
|
||||||
if tc-is-clang; then
|
|
||||||
clang=y
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Send raw LDFLAGS so that --as-needed works
|
|
||||||
emake \
|
|
||||||
V=1 \
|
|
||||||
LDFLAGS="$(raw-ldflags)" \
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" \
|
|
||||||
HOSTCXX="$(tc-getBUILD_CXX)" \
|
|
||||||
CC="$(tc-getCC)" \
|
|
||||||
CXX="$(tc-getCXX)" \
|
|
||||||
LD="$(tc-getLD)" \
|
|
||||||
AR="$(tc-getAR)" \
|
|
||||||
OBJDUMP="$(tc-getOBJDUMP)" \
|
|
||||||
RANLIB="$(tc-getRANLIB)" \
|
|
||||||
clang="${clang}" \
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
cd xen || die
|
|
||||||
|
|
||||||
touch gentoo-config || die
|
|
||||||
if use arm; then
|
|
||||||
echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
if use debug; then
|
|
||||||
cat <<-EOF >> gentoo-config || die
|
|
||||||
CONFIG_DEBUG=y
|
|
||||||
CONFIG_CRASH_DEBUG=y
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
if use flask; then
|
|
||||||
echo "CONFIG_XSM=y" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# remove flags
|
|
||||||
unset CFLAGS
|
|
||||||
|
|
||||||
tc-ld-disable-gold # Bug 700374
|
|
||||||
|
|
||||||
xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
xen_make -C xen
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# The 'make install' doesn't 'mkdir -p' the subdirs
|
|
||||||
if use efi; then
|
|
||||||
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
xen_make DESTDIR="${D}" -C xen install
|
|
||||||
|
|
||||||
# make install likes to throw in some extra EFI bits if it built
|
|
||||||
use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
|
|
||||||
}
|
|
@ -1,174 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} )
|
|
||||||
|
|
||||||
inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
|
|
||||||
SRC_URI=""
|
|
||||||
else
|
|
||||||
KEYWORDS="~amd64 ~arm -x86"
|
|
||||||
|
|
||||||
XEN_GENTOO_PATCHSET_NUM=2
|
|
||||||
XEN_GENTOO_PATCHSET_BASE=4.16.1
|
|
||||||
XEN_PRE_PATCHSET_NUM=0
|
|
||||||
XEN_PRE_VERSION_BASE=4.16.2
|
|
||||||
|
|
||||||
XEN_BASE_PV="${PV}"
|
|
||||||
if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
|
|
||||||
XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz"
|
|
||||||
|
|
||||||
if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
|
|
||||||
XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
|
|
||||||
XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
|
|
||||||
XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
|
|
||||||
SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
|
|
||||||
XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="The Xen virtual machine monitor"
|
|
||||||
HOMEPAGE="https://xenproject.org"
|
|
||||||
|
|
||||||
S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="+boot-symlinks debug efi flask"
|
|
||||||
REQUIRED_USE="arm? ( debug )"
|
|
||||||
|
|
||||||
DEPEND="${PYTHON_DEPS}
|
|
||||||
efi? ( >=sys-devel/binutils-2.22[multitarget] )
|
|
||||||
!efi? ( >=sys-devel/binutils-2.22 )
|
|
||||||
flask? ( sys-apps/checkpolicy )"
|
|
||||||
RDEPEND=""
|
|
||||||
PDEPEND="~app-emulation/xen-tools-${PV}"
|
|
||||||
|
|
||||||
# no tests are available for the hypervisor
|
|
||||||
# prevent the silliness of /usr/lib/debug/usr/lib/debug files
|
|
||||||
# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
|
|
||||||
RESTRICT="test splitdebug strip"
|
|
||||||
|
|
||||||
# Approved by QA team in bug #144032
|
|
||||||
QA_WX_LOAD="boot/xen-syms-${PV}"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
python-any-r1_pkg_setup
|
|
||||||
if [[ -z ${XEN_TARGET_ARCH} ]]; then
|
|
||||||
if use amd64; then
|
|
||||||
export XEN_TARGET_ARCH="x86_64"
|
|
||||||
elif use arm; then
|
|
||||||
export XEN_TARGET_ARCH="arm32"
|
|
||||||
elif use arm64; then
|
|
||||||
export XEN_TARGET_ARCH="arm64"
|
|
||||||
else
|
|
||||||
die "Unsupported architecture!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_UPSTREAM_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Symlinks do not work on fat32 volumes # 829765
|
|
||||||
if ! use boot-symlinks || use efi; then
|
|
||||||
eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Workaround new gcc-11 options
|
|
||||||
sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
|
|
||||||
|
|
||||||
# Drop .config
|
|
||||||
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
|
|
||||||
|
|
||||||
if use efi; then
|
|
||||||
export EFI_VENDOR="gentoo"
|
|
||||||
export EFI_MOUNTPOINT="/boot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
xen_make() {
|
|
||||||
# Setting clang to either 'y' or 'n' tells Xen's build system
|
|
||||||
# whether or not clang is used.
|
|
||||||
local clang=n
|
|
||||||
if tc-is-clang; then
|
|
||||||
clang=y
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Send raw LDFLAGS so that --as-needed works
|
|
||||||
emake \
|
|
||||||
V=1 \
|
|
||||||
LDFLAGS="$(raw-ldflags)" \
|
|
||||||
HOSTCC="$(tc-getBUILD_CC)" \
|
|
||||||
HOSTCXX="$(tc-getBUILD_CXX)" \
|
|
||||||
CC="$(tc-getCC)" \
|
|
||||||
CXX="$(tc-getCXX)" \
|
|
||||||
LD="$(tc-getLD)" \
|
|
||||||
AR="$(tc-getAR)" \
|
|
||||||
OBJDUMP="$(tc-getOBJDUMP)" \
|
|
||||||
RANLIB="$(tc-getRANLIB)" \
|
|
||||||
clang="${clang}" \
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
cd xen || die
|
|
||||||
|
|
||||||
touch gentoo-config || die
|
|
||||||
if use arm; then
|
|
||||||
echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
if use debug; then
|
|
||||||
cat <<-EOF >> gentoo-config || die
|
|
||||||
CONFIG_DEBUG=y
|
|
||||||
CONFIG_CRASH_DEBUG=y
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
if use flask; then
|
|
||||||
echo "CONFIG_XSM=y" >> gentoo-config || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# remove flags
|
|
||||||
unset CFLAGS
|
|
||||||
|
|
||||||
tc-ld-disable-gold # Bug 700374
|
|
||||||
|
|
||||||
xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
xen_make -C xen
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
# The 'make install' doesn't 'mkdir -p' the subdirs
|
|
||||||
if use efi; then
|
|
||||||
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
xen_make DESTDIR="${D}" -C xen install
|
|
||||||
|
|
||||||
# make install likes to throw in some extra EFI bits if it built
|
|
||||||
use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
|
|
||||||
}
|
|
Binary file not shown.
@ -1,23 +0,0 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
DESCRIPTION="Manage /usr/bin/pinentry symlink"
|
|
||||||
HOMEPAGE="https://www.gentoo.org/proj/en/eselect/"
|
|
||||||
SRC_URI=""
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
||||||
IUSE=""
|
|
||||||
|
|
||||||
RDEPEND=">=app-eselect/eselect-lib-bin-symlink-0.1.1"
|
|
||||||
|
|
||||||
S="${FILESDIR}"
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
insinto /usr/share/eselect/modules
|
|
||||||
newins pinentry.eselect-${PV} pinentry.eselect
|
|
||||||
}
|
|
@ -0,0 +1,21 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DESCRIPTION="Manage /usr/bin/pinentry symlink"
|
||||||
|
HOMEPAGE="https://www.gentoo.org/proj/en/eselect/"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||||
|
|
||||||
|
RDEPEND=">=app-eselect/eselect-lib-bin-symlink-0.1.1"
|
||||||
|
|
||||||
|
S="${FILESDIR}"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
insinto /usr/share/eselect/modules
|
||||||
|
newins pinentry.eselect-${PV} pinentry.eselect
|
||||||
|
}
|
@ -1,12 +0,0 @@
|
|||||||
# Copyright 1999-2021 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
DESCRIPTION="Manage /usr/bin/pinentry implementation"
|
|
||||||
MAINTAINER="zlogene@gentoo.org"
|
|
||||||
VERSION="0.7.1"
|
|
||||||
|
|
||||||
SYMLINK_PATH=/usr/bin/pinentry
|
|
||||||
SYMLINK_TARGETS=( pinentry-gnome3 pinentry-qt5 pinentry-curses pinentry-tty )
|
|
||||||
SYMLINK_DESCRIPTION='pinentry binary'
|
|
||||||
|
|
||||||
inherit bin-symlink
|
|
Binary file not shown.
@ -1 +1,2 @@
|
|||||||
DIST tuxedo-control-center_1.1.4.rpm 86231740 BLAKE2B be8b7d7c6de05601acd90a89b3e6bb89c5e251a94a18c7f1021e88797fbc1fc9c580545ca3d86e1ebf11f689d2454d4b6eac1736be0a31eabf28668d0ca0b32c SHA512 80e0c0f8ba81b8fe7bee2ec86b13a5f50c2a174b4260b7922a58df821a0b2ae89cd40c87e41c48de0a9e24a56ec1ad5123a664fc94123b95c05e61801db67072
|
DIST tuxedo-control-center_1.1.4.rpm 86231740 BLAKE2B be8b7d7c6de05601acd90a89b3e6bb89c5e251a94a18c7f1021e88797fbc1fc9c580545ca3d86e1ebf11f689d2454d4b6eac1736be0a31eabf28668d0ca0b32c SHA512 80e0c0f8ba81b8fe7bee2ec86b13a5f50c2a174b4260b7922a58df821a0b2ae89cd40c87e41c48de0a9e24a56ec1ad5123a664fc94123b95c05e61801db67072
|
||||||
|
DIST tuxedo-control-center_1.2.4.rpm 87792476 BLAKE2B 1d825b457be311da9022147eea8d86e17cc61c2c7decb5c334ad0f1cf44e7c0affe8026a650bcf6325fb21381fb4a17c3825a37c3815b489b059ea34b97f1794 SHA512 ac887b6681e6c56cd45f2c6f59dfb250c95f2a2ccdf1521c51126243461d680a7e7399a835672f1adf0512879fe7d69c8c7a3ca0e4ab217c3b617bfe41a7951d
|
||||||
|
@ -0,0 +1,80 @@
|
|||||||
|
# Copyright 2021-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit rpm systemd xdg-utils
|
||||||
|
|
||||||
|
MY_PN="${PN/-bin/}"
|
||||||
|
|
||||||
|
DESCRIPTION="Tool to control performance, energy, fan and comfort settings on TUXEDO laptops"
|
||||||
|
HOMEPAGE="https://github.com/tuxedocomputers/tuxedo-control-center"
|
||||||
|
SRC_URI="https://rpm.tuxedocomputers.com/opensuse/15.4/x86_64/${MY_PN}_${PV}.rpm"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="-* ~amd64"
|
||||||
|
|
||||||
|
RESTRICT="strip splitdebug"
|
||||||
|
|
||||||
|
DEPEND=">=app-laptop/tuxedo-keyboard-3.1.3"
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
# See bug #827729
|
||||||
|
BDEPEND="app-arch/xz-utils[extra-filters]"
|
||||||
|
|
||||||
|
S="${WORKDIR}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
rm -rf usr/lib || die "could not remove usr/lib"
|
||||||
|
mkdir files || die "could not create files dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto /
|
||||||
|
doins -r usr opt
|
||||||
|
find . -type f -perm -a=x | while read f; do
|
||||||
|
fperms 0755 "${f/./}"
|
||||||
|
done
|
||||||
|
|
||||||
|
dosym ../../opt/tuxedo-control-center/tuxedo-control-center /usr/bin/tuxedo-control-center
|
||||||
|
|
||||||
|
insinto /usr/share/dbus-1/system.d/
|
||||||
|
doins opt/tuxedo-control-center/resources/dist/tuxedo-control-center/data/dist-data/com.tuxedocomputers.tccd.conf
|
||||||
|
|
||||||
|
insinto /usr/share/polkit-1/actions
|
||||||
|
doins opt/tuxedo-control-center/resources/dist/tuxedo-control-center/data/dist-data/com.tuxedocomputers.tccd.policy
|
||||||
|
|
||||||
|
systemd_dounit opt/tuxedo-control-center/resources/dist/tuxedo-control-center/data/dist-data/tccd.service
|
||||||
|
systemd_dounit opt/tuxedo-control-center/resources/dist/tuxedo-control-center/data/dist-data/tccd-sleep.service
|
||||||
|
|
||||||
|
newinitd "${FILESDIR}/tccd.initd" tccd
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_config() {
|
||||||
|
ebegin "Reloading systemd"
|
||||||
|
systemctl daemon-reload
|
||||||
|
eend $?
|
||||||
|
ebegin "Enabling and starting tccd.service"
|
||||||
|
systemctl enable --now tccd
|
||||||
|
eend $?
|
||||||
|
ebegin "Enabling and starting tccd-sleep.service"
|
||||||
|
systemctl enable --now tccd-sleep
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_icon_cache_update
|
||||||
|
elog
|
||||||
|
elog "You need to enable tccd and tccd-sleep service before running tuxedo-control-center"
|
||||||
|
elog
|
||||||
|
elog "For your convenience, if you use systemd, you may just call:"
|
||||||
|
elog " emerge --config =app-laptop/${PF}"
|
||||||
|
elog
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_icon_cache_update
|
||||||
|
}
|
Binary file not shown.
@ -1 +1,2 @@
|
|||||||
DIST mc-4.8.28.tar.xz 2333072 BLAKE2B f4218e6c166df85b7b3736f0fd1414c9507c72074f06001f12b114ce6c6fbbf3688ab850aa70f5063eb3920736f878e113eb39a5d261ccfc3ffa9dab473a8436 SHA512 ca3b3a57281e9387cb52bf1fcfc3f39a4d5f438aafc256dc492c192678824f67c983a852c759664efc5bc6d0de471c9b3929834f8301f6302ca1ebeee513fdfd
|
DIST mc-4.8.28.tar.xz 2333072 BLAKE2B f4218e6c166df85b7b3736f0fd1414c9507c72074f06001f12b114ce6c6fbbf3688ab850aa70f5063eb3920736f878e113eb39a5d261ccfc3ffa9dab473a8436 SHA512 ca3b3a57281e9387cb52bf1fcfc3f39a4d5f438aafc256dc492c192678824f67c983a852c759664efc5bc6d0de471c9b3929834f8301f6302ca1ebeee513fdfd
|
||||||
|
DIST mc-4.8.29.tar.xz 2368164 BLAKE2B 0ecddf33b4b7b32918484bc7efe15ef1c9dda094814c85ceabf1b4bd9343507a33932b8cd050fdae2e683f9815ab6dd802ff8eb8e2215c6264be073bc5ac7e4d SHA512 c7e219eda34197d0294748cf5fd1a5dcfedfc17c20cfcf94c4dad5170f87095845f4fc0065e2868342125039c13cc3ba617804df74186816828e93ed71c1e9a3
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
--- a/misc/ext.d/video.sh
|
||||||
|
+++ b/misc/ext.d/video.sh
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
elif which mpv_identify.sh >/dev/null 2>&1; then
|
||||||
|
mpv_identify.sh "${MC_EXT_FILENAME}"
|
||||||
|
else
|
||||||
|
- echo "Please install either mplayer or mpv to get information for this file"
|
||||||
|
+ echo "Please install either mplayer or mpv[tools] to get information for this file"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
@ -0,0 +1,126 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools flag-o-matic
|
||||||
|
|
||||||
|
MY_P="${P/_/-}"
|
||||||
|
SRC_URI="http://ftp.midnight-commander.org/${MY_P}.tar.xz"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
|
||||||
|
|
||||||
|
DESCRIPTION="GNU Midnight Commander is a text based file manager"
|
||||||
|
HOMEPAGE="https://midnight-commander.org"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="+edit gpm nls sftp slang spell test unicode X"
|
||||||
|
|
||||||
|
REQUIRED_USE="spell? ( edit )"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
>=dev-libs/glib-2.30.0:2
|
||||||
|
gpm? ( sys-libs/gpm )
|
||||||
|
kernel_linux? ( sys-fs/e2fsprogs[tools(+)] )
|
||||||
|
sftp? ( net-libs/libssh2 )
|
||||||
|
slang? ( >=sys-libs/slang-2 )
|
||||||
|
!slang? ( sys-libs/ncurses:=[unicode(+)?] )
|
||||||
|
spell? ( app-text/aspell )
|
||||||
|
X? (
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libICE
|
||||||
|
x11-libs/libXau
|
||||||
|
x11-libs/libXdmcp
|
||||||
|
x11-libs/libSM
|
||||||
|
)
|
||||||
|
"
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
spell? ( app-dicts/aspell-en )"
|
||||||
|
BDEPEND="
|
||||||
|
app-arch/xz-utils
|
||||||
|
virtual/pkgconfig
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
test? ( dev-libs/check )
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-4.8.26-ncurses-mouse.patch
|
||||||
|
"${FILESDIR}"/${PN}-4.8.29-gentoo-tools.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
if use slang && use unicode ; then
|
||||||
|
ewarn "\"unicode\" USE flag only takes effect when the \"slang\" USE flag is disabled."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
# patch touches configure.ac
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
[[ ${CHOST} == *-solaris* ]] && append-ldflags "-lnsl -lsocket"
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
--enable-charset
|
||||||
|
--enable-vfs
|
||||||
|
--with-screen=$(usex slang 'slang' "ncurses$(usex unicode 'w' '')")
|
||||||
|
$(use_enable kernel_linux vfs-undelfs)
|
||||||
|
# Today mclib does not expose any headers and is linked to
|
||||||
|
# single 'mc' binary. Thus there is no advantage of having
|
||||||
|
# a library. Let's avoid shared library altogether
|
||||||
|
# as it also conflicts with sci-libs/mc: bug #685938
|
||||||
|
--disable-mclib
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_enable sftp vfs-sftp)
|
||||||
|
$(use_enable spell aspell)
|
||||||
|
$(use_enable test tests)
|
||||||
|
$(use_with gpm gpm-mouse)
|
||||||
|
$(use_with X x)
|
||||||
|
$(use_with edit internal-edit)
|
||||||
|
)
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Bug #759466
|
||||||
|
if [[ ${EUID} == 0 ]] ; then
|
||||||
|
ewarn "You are emerging ${PN} as root with 'userpriv' disabled."
|
||||||
|
ewarn "Expect some test failures, or emerge with 'FEATURES=userpriv'!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CK_FORK=no to avoid using fork() in check library
|
||||||
|
# as mc mocks fork() itself: bug #644462.
|
||||||
|
#
|
||||||
|
# VERBOSE=1 to make test failures contain detailed
|
||||||
|
# information.
|
||||||
|
CK_FORK=no emake check VERBOSE=1
|
||||||
|
}
|
||||||
|
src_install() {
|
||||||
|
emake DESTDIR="${D}" install
|
||||||
|
dodoc AUTHORS NEWS README
|
||||||
|
|
||||||
|
# fix bug #334383
|
||||||
|
if use kernel_linux && [[ ${EUID} == 0 ]] ; then
|
||||||
|
fowners root:tty /usr/libexec/mc/cons.saver
|
||||||
|
fperms g+s /usr/libexec/mc/cons.saver
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if use spell && ! has_version app-dicts/aspell-en ; then
|
||||||
|
elog "'spell' USE flag is enabled however app-dicts/aspell-en is not installed."
|
||||||
|
elog "You should manually set 'spell_language' in the Misc section of ~/.config/mc/ini"
|
||||||
|
elog "It has to be set to one of your installed aspell dictionaries or 'NONE'"
|
||||||
|
elog
|
||||||
|
fi
|
||||||
|
elog "To enable exiting to latest working directory,"
|
||||||
|
elog "put this into your ~/.bashrc:"
|
||||||
|
elog ". ${EPREFIX}/usr/libexec/mc/mc.sh"
|
||||||
|
}
|
@ -0,0 +1,94 @@
|
|||||||
|
From 425ebfb12908c0d5f72f5a4eec06a235e8bbd54b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||||
|
Date: Sun, 23 Oct 2022 11:38:58 +0200
|
||||||
|
Subject: [PATCH] Use tomllib/tomli/tomli-w instead of unmaintained toml
|
||||||
|
package
|
||||||
|
|
||||||
|
Replace the use of the unmaintained `toml` package with the modern
|
||||||
|
trinity: built-in `tomllib` module for reading TOML in Python 3.11+,
|
||||||
|
`tomli` for reading TOML in older Python versions and `tomli-w` for
|
||||||
|
writing TOML in all Python versions. This ensures correct TOML 1.0
|
||||||
|
support that the old `toml` package lacks.
|
||||||
|
---
|
||||||
|
README.rst | 4 +++-
|
||||||
|
setup.py | 3 ++-
|
||||||
|
yq/__init__.py | 18 ++++++++++++------
|
||||||
|
3 files changed, 17 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/README.rst b/README.rst
|
||||||
|
index 69d77e1..237b89e 100644
|
||||||
|
--- a/README.rst
|
||||||
|
+++ b/README.rst
|
||||||
|
@@ -109,7 +109,9 @@ the ``xq --xml-output``/``xq -x`` option. Multiple XML documents can be passed i
|
||||||
|
TOML support
|
||||||
|
------------
|
||||||
|
``yq`` supports `TOML <https://toml.io/>`_ as well. The ``yq`` package installs an executable, ``tomlq``, which uses the
|
||||||
|
-`toml library <https://github.com/uiri/toml>`_ to transcode TOML to JSON, then pipes it to ``jq``. Roundtrip transcoding
|
||||||
|
+`tomllib module <https://docs.python.org/3.11/library/tomllib.html>` or `tomli library
|
||||||
|
+<https://github.com/hukkin/tomli>`_ to transcode TOML to JSON, then pipes it to ``jq``. Transcoding to TOML uses the
|
||||||
|
+`tomli-w <https://github.com/hukkin/toml-w`_ package. Roundtrip transcoding
|
||||||
|
is available with the ``tomlq --toml-output``/``tomlq -t`` option.
|
||||||
|
|
||||||
|
.. admonition:: Compatibility note
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 9a7f643..71774ed 100755
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -19,7 +19,8 @@
|
||||||
|
install_requires=[
|
||||||
|
"PyYAML >= 5.3.1",
|
||||||
|
"xmltodict >= 0.11.0",
|
||||||
|
- "toml >= 0.10.0",
|
||||||
|
+ "tomli >= 1.2.3; python_version < '3.11'",
|
||||||
|
+ "tomli-w",
|
||||||
|
"argcomplete >= 1.8.1"
|
||||||
|
],
|
||||||
|
extras_require={
|
||||||
|
diff --git a/yq/__init__.py b/yq/__init__.py
|
||||||
|
index 1043ff7..dd89408 100755
|
||||||
|
--- a/yq/__init__.py
|
||||||
|
+++ b/yq/__init__.py
|
||||||
|
@@ -201,8 +201,11 @@ def yq(input_streams=None, output_stream=None, input_format="yaml", output_forma
|
||||||
|
json.dump(doc, json_buffer, cls=JSONDateTimeEncoder)
|
||||||
|
json_buffer.write("\n")
|
||||||
|
elif input_format == "toml":
|
||||||
|
- import toml
|
||||||
|
- doc = toml.load(input_stream)
|
||||||
|
+ if sys.version_info >= (3, 11):
|
||||||
|
+ import tomllib
|
||||||
|
+ else:
|
||||||
|
+ import tomli as tomllib
|
||||||
|
+ doc = tomllib.loads(input_stream.read())
|
||||||
|
json.dump(doc, json_buffer, cls=JSONDateTimeEncoder)
|
||||||
|
json_buffer.write("\n")
|
||||||
|
else:
|
||||||
|
@@ -235,12 +238,12 @@ def yq(input_streams=None, output_stream=None, input_format="yaml", output_forma
|
||||||
|
raise
|
||||||
|
output_stream.write(b"\n" if sys.version_info < (3, 0) else "\n")
|
||||||
|
elif output_format == "toml":
|
||||||
|
- import toml
|
||||||
|
+ import tomli_w
|
||||||
|
for doc in decode_docs(jq_out, json_decoder):
|
||||||
|
if not isinstance(doc, dict):
|
||||||
|
msg = "{}: Error converting JSON to TOML: cannot represent non-object types at top level."
|
||||||
|
exit_func(msg.format(program_name))
|
||||||
|
- toml.dump(doc, output_stream)
|
||||||
|
+ output_stream.write(tomli_w.dumps(doc))
|
||||||
|
else:
|
||||||
|
if input_format == "yaml":
|
||||||
|
loader_class = get_loader(use_annotations=False, expand_aliases=expand_aliases,
|
||||||
|
@@ -255,9 +258,12 @@ def yq(input_streams=None, output_stream=None, input_format="yaml", output_forma
|
||||||
|
force_list=xml_force_list), jq.stdin)
|
||||||
|
jq.stdin.write("\n")
|
||||||
|
elif input_format == "toml":
|
||||||
|
- import toml
|
||||||
|
+ if sys.version_info >= (3, 11):
|
||||||
|
+ import tomllib
|
||||||
|
+ else:
|
||||||
|
+ import tomli as tomllib
|
||||||
|
for input_stream in input_streams:
|
||||||
|
- json.dump(toml.load(input_stream), jq.stdin)
|
||||||
|
+ json.dump(tomllib.loads(input_stream.read()), jq.stdin)
|
||||||
|
jq.stdin.write("\n")
|
||||||
|
else:
|
||||||
|
raise Exception("Unknown input format")
|
@ -0,0 +1,59 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{9..11} pypy3 )
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Command-line YAML processor - jq wrapper for YAML documents"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://yq.readthedocs.io/
|
||||||
|
https://github.com/kislyuk/yq/
|
||||||
|
https://pypi.org/project/yq/
|
||||||
|
"
|
||||||
|
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE="test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-misc/jq
|
||||||
|
dev-python/argcomplete[${PYTHON_USEDEP}]
|
||||||
|
>=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}]
|
||||||
|
dev-python/xmltodict[${PYTHON_USEDEP}]
|
||||||
|
$(python_gen_cond_dep '
|
||||||
|
dev-python/tomli[${PYTHON_USEDEP}]
|
||||||
|
' 3.{8..10})
|
||||||
|
"
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
test? (
|
||||||
|
dev-python/wheel[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/yq-2.13.0-tests.patch"
|
||||||
|
"${FILESDIR}/${P}-tomli.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
python_prepare_all() {
|
||||||
|
sed -e 's:unittest.main():unittest.main(verbosity=2):' \
|
||||||
|
-i test/test.py || die
|
||||||
|
|
||||||
|
sed -r -e 's:[[:space:]]*"coverage",:: ; s:[[:space:]]*"flake8",::' \
|
||||||
|
-i setup.py || die
|
||||||
|
|
||||||
|
sed -e '/license_file/ d' -i setup.cfg || die
|
||||||
|
|
||||||
|
distutils-r1_python_prepare_all
|
||||||
|
}
|
||||||
|
|
||||||
|
python_test() {
|
||||||
|
"${EPYTHON}" test/test.py </dev/null || die "tests failed under ${EPYTHON}"
|
||||||
|
}
|
@ -1,50 +0,0 @@
|
|||||||
# Copyright 1999-2022 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
PYTHON_COMPAT=( python3_{9..11} pypy3 )
|
|
||||||
|
|
||||||
inherit distutils-r1
|
|
||||||
|
|
||||||
DESCRIPTION="Command-line YAML processor - jq wrapper for YAML documents"
|
|
||||||
HOMEPAGE="https://yq.readthedocs.io/ https://github.com/kislyuk/yq/ https://pypi.org/project/yq/"
|
|
||||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
|
||||||
LICENSE="Apache-2.0"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~amd64 ~x86"
|
|
||||||
IUSE="test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
app-misc/jq
|
|
||||||
dev-python/argcomplete[${PYTHON_USEDEP}]
|
|
||||||
>=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}]
|
|
||||||
dev-python/toml[${PYTHON_USEDEP}]
|
|
||||||
dev-python/xmltodict[${PYTHON_USEDEP}]
|
|
||||||
"
|
|
||||||
DEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
test? (
|
|
||||||
dev-python/wheel[${PYTHON_USEDEP}]
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/yq-2.13.0-tests.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
python_prepare_all() {
|
|
||||||
sed -e 's:unittest.main():unittest.main(verbosity=2):' \
|
|
||||||
-i test/test.py || die
|
|
||||||
|
|
||||||
sed -r -e 's:[[:space:]]*"coverage",:: ; s:[[:space:]]*"flake8",::' \
|
|
||||||
-i setup.py || die
|
|
||||||
|
|
||||||
sed -e '/license_file/ d' -i setup.cfg || die
|
|
||||||
|
|
||||||
distutils-r1_python_prepare_all
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
"${EPYTHON}" test/test.py </dev/null || die "tests failed under ${EPYTHON}"
|
|
||||||
}
|
|
Binary file not shown.
@ -0,0 +1,72 @@
|
|||||||
|
# Copyright 2019-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit bash-completion-r1 go-module
|
||||||
|
|
||||||
|
DESCRIPTION="General-purpose command-line fuzzy finder, written in Golang"
|
||||||
|
HOMEPAGE="https://github.com/junegunn/fzf"
|
||||||
|
|
||||||
|
# For fancy versioning only. Bump on the next release!
|
||||||
|
# MY_GIT_REV is the first 7 characters of release commit, we truncate it
|
||||||
|
# after to make it easier to copy/paste.
|
||||||
|
MY_GIT_REV=2023012408ff892d43441fce0385943bafdbb52b
|
||||||
|
MY_GIT_REV=${MY_GIT_REV:0:7}
|
||||||
|
|
||||||
|
SRC_URI="https://github.com/junegunn/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-deps.tar.xz"
|
||||||
|
|
||||||
|
LICENSE="MIT BSD-with-disclosure"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
sed -i 's/-s -w //' Makefile || die # bug 795225
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake PREFIX="${EPREFIX}"/usr VERSION=${PV} REVISION=${MY_GIT_REV} bin/${PN}
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dobin bin/${PN}
|
||||||
|
doman man/man1/${PN}.1
|
||||||
|
|
||||||
|
dobin bin/${PN}-tmux
|
||||||
|
doman man/man1/${PN}-tmux.1
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/plugin
|
||||||
|
doins plugin/${PN}.vim
|
||||||
|
|
||||||
|
insinto /usr/share/nvim/runtime/plugin
|
||||||
|
doins plugin/${PN}.vim
|
||||||
|
|
||||||
|
newbashcomp shell/completion.bash ${PN}
|
||||||
|
|
||||||
|
insinto /usr/share/zsh/site-functions
|
||||||
|
newins shell/completion.zsh _${PN}
|
||||||
|
|
||||||
|
insinto /usr/share/fzf
|
||||||
|
doins shell/key-bindings.bash
|
||||||
|
doins shell/key-bindings.fish
|
||||||
|
doins shell/key-bindings.zsh
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if [[ -z ${REPLACING_VERSIONS} ]]; then
|
||||||
|
elog "To add fzf support to your shell, make sure to use the right file"
|
||||||
|
elog "from ${EROOT}/usr/share/fzf."
|
||||||
|
elog
|
||||||
|
elog "For bash, add the following line to ~/.bashrc:"
|
||||||
|
elog
|
||||||
|
elog " # source ${EROOT}/usr/share/bash-completion/completions/fzf"
|
||||||
|
elog " # source ${EROOT}/usr/share/fzf/key-bindings.bash"
|
||||||
|
elog
|
||||||
|
elog "Plugins for Vim and Neovim are installed to respective directories"
|
||||||
|
elog "and will work out of the box."
|
||||||
|
elog
|
||||||
|
elog "For fzf support in tmux see fzf-tmux(1)."
|
||||||
|
fi
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue