Compare commits

..

5 commits

Author SHA1 Message Date
lif f86885a60c i don't remember why i have this but i think it had to do with clion 2024-05-07 19:28:10 -07:00
lif 1e4b4dc4c1 fuck gtk4 in particular 2024-05-07 19:27:46 -07:00
lif 11cd8075b3 non-x86 amdvlk 2024-05-07 19:27:35 -07:00
lif abe115b567 furnace (packaged by artemis) 2024-05-07 19:27:25 -07:00
lif 5b1aad6866 grub 2.06, at least until i have time to migrate off 2024-05-07 19:27:10 -07:00
13 changed files with 989 additions and 0 deletions

View file

@ -0,0 +1,34 @@
--- a/native/Makefile
+++ b/native/Makefile
@@ -81,7 +81,7 @@ LIBPFX=lib
LIBSFX=.so
ARSFX=.a
JNISFX=$(LIBSFX)
-CC=gcc
+CC?=gcc
LD=$(CC)
LIBS=
# Default to Sun recommendations for JNI compilation
@@ -94,10 +94,10 @@ CFLAGS_EXTRA=
COUT=-o $@
CINCLUDES=$(JAVA_INCLUDES) -I"$(JAVAH)" -I$(FFI_BUILD)/include
CDEFINES=-D_REENTRANT
-PCFLAGS=-W -Wall -Wno-unused -Wno-parentheses
-CFLAGS=$(PCFLAGS) $(CFLAGS_EXTRA) $(COPT) $(CDEBUG) $(CDEFINES) $(CINCLUDES) \
+PCFLAGS=-Wall -Wno-unused -Wno-parentheses
+CFLAGS+= $(PCFLAGS) $(CFLAGS_EXTRA) $(COPT) $(CDEBUG) $(CDEFINES) $(CINCLUDES) \
-DJNA_JNI_VERSION='"$(JNA_JNI_VERSION)"' -DCHECKSUM='"$(CHECKSUM)"'
-LDFLAGS=-o $@ -shared
+LDFLAGS+= -o $@ -shared
ifeq ($(DYNAMIC_LIBFFI),true)
CFLAGS += $(shell pkg-config --cflags libffi 2>/dev/null || echo)
LIBS += $(shell pkg-config --libs libffi 2>/dev/null || echo -lffi)
@@ -108,7 +108,7 @@ endif
# Avoid bug in X11-based 1.5/1.6 VMs; dynamically load instead of linking
# See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6539705
#LIBS=-L"$(LIBDIR)" -ljawt
-STRIP=strip -x
+STRIP?=strip -x
# end defaults
# Android build (cross-compile) requires the android NDK.

View file

@ -0,0 +1,17 @@
https://bugs.gentoo.org/888813
--- a/native/Makefile
+++ b/native/Makefile
@@ -356,11 +356,11 @@ ifeq ($(CC),gcc)
GCC_MAJOR_VERSION = $(shell gcc -dumpversion | cut -f 1 -d '.')
ifneq ($(GCC_MAJOR_VERSION),4)
ifneq ($(GCC_MAJOR_VERSION),3)
- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable -Wno-alloca-larger-than
+ LOC_CC_OPTS=-Wno-unknown-warning-option -Wno-clobbered -Wno-unused-variable -Wno-alloca-larger-than
endif
endif
else
- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable
+ LOC_CC_OPTS=-Wno-unknown-warning-option -Wno-clobbered -Wno-unused-variable
endif
# Enable 64-bit builds if the arch demands it

View file

@ -0,0 +1,12 @@
Bug #906053
--- a/contrib/platform/test/com/sun/jna/platform/linux/LibCTest.java
+++ b/contrib/platform/test/com/sun/jna/platform/linux/LibCTest.java
@@ -71,7 +71,7 @@ public class LibCTest extends TestCase {
}
@Test
- public void testStatvfs() throws IOException, InterruptedException {
+ public void noTestStatvfs() throws IOException, InterruptedException {
Statvfs vfs = new Statvfs();
String testDirectory = "/";

View file

@ -0,0 +1,103 @@
This patch solves several test failures on com.sun.jna.LibraryLoadTest like
"Expected JNA native library at build/native-linux-x86-64/libtestlib.so is missing"
--- a/test/com/sun/jna/Paths.java
+++ b/test/com/sun/jna/Paths.java
@@ -47,12 +47,12 @@ public interface Paths {
USING_CLOVER
? "build.clover" : "build");
String CLASSES = BUILDDIR + (Platform.isWindowsCE() ? "" : "/classes");
- String JNAJAR = BUILDDIR + "/jna.jar";
+ String JNAJAR = "jna.jar";
String TESTPATH = Platform.isWindowsCE()
? "/Storage Card/"
: System.getProperty("jna.nativedir",
- BUILDDIR + "/native-" + Platform.RESOURCE_PREFIX + "/");
+ BUILDDIR + "/native/");
String TESTJAR = BUILDDIR + "/jna-test.jar";
String TESTJAR2 = BUILDDIR + "/jna-test2.jar";
String TESTJAR3 = BUILDDIR + "/jna-test3.jar";
1) testAvoidJarUnpacking(com.sun.jna.JNALoadTest)
java.lang.ClassNotFoundException: com.sun.jna.Native
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.jna.JNALoadTest.testAvoidJarUnpacking(JNALoadTest.java:94)
2) testLoadAndUnloadFromJar(com.sun.jna.JNALoadTest)
java.lang.ClassNotFoundException: com.sun.jna.Native
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.jna.JNALoadTest.testLoadAndUnloadFromJar(JNALoadTest.java:128)
3) testAvoidResourcePathLoading(com.sun.jna.JNALoadTest)
java.lang.Error: Expected JNA library at build/classes/com/sun/jna/linux-x86-64/libjnidispatch.so is missing
at com.sun.jna.JNALoadTest.assertLibraryExists(JNALoadTest.java:87)
at com.sun.jna.JNALoadTest$TestLoader.<init>(JNALoadTest.java:54)
at com.sun.jna.JNALoadTest.testAvoidResourcePathLoading(JNALoadTest.java:109)
4) testLoadFromUnicodePath(com.sun.jna.JNALoadTest)
java.lang.ClassNotFoundException: com.sun.jna.Native
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.jna.JNALoadTest.testLoadFromUnicodePath(JNALoadTest.java:255)
5) testLoadAndUnloadFromResourcePath(com.sun.jna.JNALoadTest)
java.lang.Error: Expected JNA library at build/classes/com/sun/jna/linux-x86-64/libjnidispatch.so is missing
at com.sun.jna.JNALoadTest.assertLibraryExists(JNALoadTest.java:87)
at com.sun.jna.JNALoadTest$TestLoader.<init>(JNALoadTest.java:54)
at com.sun.jna.JNALoadTest.testLoadAndUnloadFromResourcePath(JNALoadTest.java:184)
--- a/test/com/sun/jna/JNALoadTest.java
+++ b/test/com/sun/jna/JNALoadTest.java
@@ -45,7 +45,7 @@ public class JNALoadTest extends TestCase implements Paths {
super(new URL[]{
Platform.isWindowsCE()
? new File("/Storage Card/" + (fromJar ? "jna.jar" : "test.jar")).toURI().toURL()
- : new File(BUILDDIR + (fromJar ? "/jna.jar" : "/classes")).toURI().toURL()},
+ : new File((fromJar ? "jna.jar" : "/classes")).toURI().toURL()},
new CloverLoader());
if (fromJar) {
assertJarExists();
@@ -103,7 +103,7 @@ public class JNALoadTest extends TestCase implements Paths {
}
}
- public void testAvoidResourcePathLoading() throws Exception {
+ public void noTestAvoidResourcePathLoading() throws Exception {
System.setProperty("jna.noclasspath", "true");
try {
Class<?> cls = Class.forName("com.sun.jna.Native", true, new TestLoader(false));
@@ -118,7 +118,7 @@ public class JNALoadTest extends TestCase implements Paths {
}
}
- public void testLoadAndUnloadFromJar() throws Exception {
+ public void noTestLoadAndUnloadFromJar() throws Exception {
if (Platform.isIntel() && (! Platform.is64Bit())) {
System.out.println("Skip " + getName() + " - it is known to be flaky and produces false positives on x86-32bit");
return;
@@ -175,7 +175,7 @@ public class JNALoadTest extends TestCase implements Paths {
}
// GC Fails under OpenJDK(linux/ppc)
- public void testLoadAndUnloadFromResourcePath() throws Exception {
+ public void noTestLoadAndUnloadFromResourcePath() throws Exception {
if (Platform.isIntel() && (! Platform.is64Bit())) {
System.out.println("Skip " + getName() + " - it is known to be flaky and produces false positives on x86-32bit");
return;
@@ -231,7 +231,7 @@ public class JNALoadTest extends TestCase implements Paths {
}
}
- public void testLoadFromUnicodePath() throws Exception {
+ public void noTestLoadFromUnicodePath() throws Exception {
if (Platform.isWindows()) {
String vendor = System.getProperty("java.vendor");
if (vendor != null) {

View file

@ -0,0 +1,197 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source test"
MAVEN_PROVIDES="
net.java.dev.jna:jna:${PV}
net.java.dev.jna:jna-platform:${PV}
"
JAVA_TESTING_FRAMEWORKS="junit-4"
inherit java-pkg-2 java-pkg-simple toolchain-funcs
DESCRIPTION="Java Native Access"
HOMEPAGE="https://github.com/java-native-access/jna"
SRC_URI="https://github.com/java-native-access/jna/archive/${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P}"
LICENSE="|| ( Apache-2.0 LGPL-2.1+ )"
SLOT="4"
KEYWORDS="amd64 ~arm arm64 ppc64 x86"
BDEPEND="
virtual/pkgconfig
"
CDEPEND="
>=dev-libs/libffi-3.4:=
"
DEPEND="
>=virtual/jdk-1.8:*
test? (
dev-java/reflections:0
)
${CDEPEND}
x11-libs/libXt
"
RDEPEND="
>=virtual/jre-1.8:*
${CDEPEND}
"
DOCS=( README.md CHANGES.md OTHERS TODO )
PATCHES=(
"${FILESDIR}/5.11.0-makefile-flags.patch"
"${FILESDIR}/jna-5.11.0-no-Werror.patch"
"${FILESDIR}/jna-5.13.0-testpath.patch"
"${FILESDIR}/jna-5.13.0-LibCTest.patch"
)
src_prepare() {
default
java-pkg-2_src_prepare
java-pkg_clean
mkdir -p "res/META-INF" || die
echo "Main-Class: com.sun.jna.Native" > "res/META-INF/MANIFEST.MF" || die
# https://github.com/java-native-access/jna/blob/5.13.0/build.xml#L402-L407
sed \
-e "/VERSION =/s:TEMPLATE:${PV}:" \
-e '/VERSION_NATIVE =/s:TEMPLATE:5.1.0:' \
-i src/com/sun/jna/Version.java || die
}
src_compile() {
einfo "Compiling jna.jar"
JAVA_AUTOMATIC_MODULE_NAME="com.sun.jna"
JAVA_JAR_FILENAME="jna.jar"
JAVA_RESOURCE_DIRS="res"
JAVA_SRC_DIR="src"
java-pkg-simple_src_compile
JAVA_GENTOO_CLASSPATH_EXTRA+=":jna.jar"
rm -r target || die
einfo "Compiling jna-platform.jar"
JAVA_AUTOMATIC_MODULE_NAME="com.sun.jna.platform"
JAVA_JAR_FILENAME="jna-platform.jar"
JAVA_RESOURCE_DIRS=""
JAVA_SRC_DIR="contrib/platform/src"
java-pkg-simple_src_compile
JAVA_GENTOO_CLASSPATH_EXTRA+=":jna-platform.jar"
rm -r target || die
if use doc; then
einfo "Compiling javadocs"
JAVA_SRC_DIR=(
"src"
"contrib/platform/src"
)
JAVA_JAR_FILENAME="ignoreme.jar"
java-pkg-simple_src_compile
fi
einfo "Generating headers com_sun_jna_Native.h com_sun_jna_Function.h"
ejavac -h native -classpath "src" \
"src/com/sun/jna/Function.java" \
"src/com/sun/jna/Native.java" || die
einfo "Building native library"
cd native || die
local args=(
CC="$(tc-getCC)"
STRIP=true
DYNAMIC_LIBFFI=true
)
# Using -j1 since otherwise fails to build:
# cannot find ../build/native/libtestlib.so: No such file or directory
# [Makefile:505: ../build/native/libtestlib2.so] Error 1
emake -j1 "${args[@]}"
}
src_test() {
JAVA_TEST_EXTRA_ARGS=(
-Djna.nosys=true
-Djna.boot.library.path=build/native
-Djna.library.path=build/native
)
JAVA_TEST_GENTOO_CLASSPATH="
junit-4
reflections
"
JAVA_TEST_SRC_DIR="contrib/platform/test"
rm -r contrib/platform/test/com/sun/jna/platform/{mac,unix,win32} || die
JAVA_TEST_EXCLUDES=(
# 1) testGetXAttr(com.sun.jna.platform.linux.XAttrUtilTest)
# java.io.IOException: errno: 95
# at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:85)
# at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:70)
# at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:56)
# at com.sun.jna.platform.linux.XAttrUtilTest.testGetXAttr(XAttrUtilTest.java:83)
# 2) setXAttr(com.sun.jna.platform.linux.XAttrUtilTest)
# java.io.IOException: errno: 95
# at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:85)
# at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:70)
# at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:56)
# at com.sun.jna.platform.linux.XAttrUtilTest.setXAttr(XAttrUtilTest.java:53)
com.sun.jna.platform.linux.XAttrUtilTest
)
java-pkg-simple_src_test
JAVA_TEST_SRC_DIR="test"
rm -r test/com/sun/jna/wince || die
rm -r test/com/sun/jna/win32 || die
# 1) testLoadFromJarAbsolute(com.sun.jna.LibraryLoadTest)
# java.lang.UnsatisfiedLinkError: Unable to load library '/libtestlib-jar.so':
# /libtestlib-jar.so: cannot open shared object file: No such file or directory
jar cvf build/jna-test.jar \
-C build/native libtestlib-jar.so \
-C test com/sun/jna/data || die
JAVA_GENTOO_CLASSPATH_EXTRA+=":build/jna-test.jar"
JAVA_TEST_EXCLUDES=(
com.sun.jna.CallbacksTest # Needs to run separately
com.sun.jna.DirectTest # Needs to run separately
com.sun.jna.NativeTest # Needs to run separately
com.sun.jna.TypeMapperTest # Needs to run separately
com.sun.jna.UnionTest # Needs to run separately
com.sun.jna.VMCrashProtectionTest # Needs to run separately
)
java-pkg-simple_src_test
JAVA_TEST_RUN_ONLY=(
com.sun.jna.CallbacksTest
com.sun.jna.DirectTest
com.sun.jna.UnionTest
)
java-pkg-simple_src_test
JAVA_TEST_RUN_ONLY=( com.sun.jna.NativeTest )
java-pkg-simple_src_test
JAVA_TEST_RUN_ONLY=( com.sun.jna.VMCrashProtectionTest )
java-pkg-simple_src_test
JAVA_TEST_RUN_ONLY=( com.sun.jna.TypeMapperTest )
java-pkg-simple_src_test
}
src_install() {
default
java-pkg_dojar jna.jar jna-platform.jar
java-pkg_doso build/native/libjnidispatch.so
if use doc; then
java-pkg_dojavadoc target/api
fi
if use source; then
java-pkg_dosrc "src/*"
java-pkg_dosrc "contrib/platform/src/*"
fi
}

View file

@ -0,0 +1 @@
DIST zenity-3.44.2.tar.xz 3095752 BLAKE2B 07d5b9aa673ae1e719bbd8d2ff85394ce19b9e77c36c3b6cf73d6b806dbcb0ab6322d13e66a715ebf5aefc14fa289a31367d0f0abd6ceaa9df7e3d7d12049492 SHA512 60f139b18db9ddf95a9c3481b08a3b99dd56ce457a49d99dc33f59570837e8498e8819bdd130c915a08e40042b2f3af583bd0fe4498adb8152632bd044137f2f

View file

@ -0,0 +1,55 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org gnome2-utils meson xdg
DESCRIPTION="Tool to display dialogs from the commandline and shell scripts"
HOMEPAGE="https://wiki.gnome.org/Projects/Zenity"
LICENSE="LGPL-2+"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
IUSE="libnotify webkit"
# TODO: X11 dependency is automagically enabled
RDEPEND="
>=x11-libs/gtk+-3.16.0:3[X]
>=dev-libs/glib-2.43.4:2
libnotify? ( >=x11-libs/libnotify-0.6.1:= )
webkit? ( >=net-libs/webkit-gtk-2.8.1:4.1 )
x11-libs/libX11
x11-libs/gdk-pixbuf:2
x11-libs/pango
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/itstool
>=sys-devel/gettext-0.19.4
virtual/pkgconfig
"
src_configure() {
local emesonargs=(
$(meson_use libnotify)
$(meson_use webkit webkitgtk)
)
meson_src_configure
}
src_install() {
meson_src_install
# Not really needed and prevent us from needing perl
rm "${ED}/usr/bin/gdialog" || die "rm gdialog failed!"
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}

View file

@ -1,6 +1,14 @@
DIST amdvlk-CWPack-4f8cf0584442a91d829d269158567d7ed926f026.tar.gz 39633 BLAKE2B d5b2a88f0d563eef5beb42a8304cf6cdd825e75242c22acc360c5bb9cbd1d02a4f891b6b2f3a4803e1e6b48a4d176aad40f8bdeca92847f2fbf53674dedeaff3 SHA512 06d56baaba1f1224a5266f4a63c1abf70edba7cc16cc4e62f2f5b1ec94fc2c1cfc4c6f11a9c6ef42c23b29be8d07921caad5e919357c0bd82cf714783eee0bcc
DIST amdvlk-CWPack-7387247eb9889ddcabbc1053b9c2052e253b088e.tar.gz 24538 BLAKE2B 76c4da32ea06df355f7e8f77a14c185b2ccab2ce2762988f04a04d65b674e089d4fc27206e744f89b4bd84c9d7226d324414a31941303290e7f574e9d64756cf SHA512 38378ef325e42a7356511c2fc06b6c896581968079e85c4b924a1768d895feecaf1eb8fd65afb59bed0f66e0547104d67c2deb9f82a86f4b9fa65b36e57cd47d DIST amdvlk-CWPack-7387247eb9889ddcabbc1053b9c2052e253b088e.tar.gz 24538 BLAKE2B 76c4da32ea06df355f7e8f77a14c185b2ccab2ce2762988f04a04d65b674e089d4fc27206e744f89b4bd84c9d7226d324414a31941303290e7f574e9d64756cf SHA512 38378ef325e42a7356511c2fc06b6c896581968079e85c4b924a1768d895feecaf1eb8fd65afb59bed0f66e0547104d67c2deb9f82a86f4b9fa65b36e57cd47d
DIST amdvlk-LLVM-dialects-17aafecff46b68206a0ed82d58f5e2fc358367a1.tar.gz 44441 BLAKE2B a94eb01ae3a2a868a1613e17573c5326252fa163d8e336b8c3292d0e3e349e3df98b124d300bbe42870bc2d60d18afe2c566e4484b45beb84a7087c0d58291e4 SHA512 4a6b2484f0fbb63f2cf987184a12f8a4a344ebfbfe5c1f37423fbda88c171f2eee0f7af4d0b066a9a87c3b22e0c92b7f7f1f5536b4c5d59fb2ca10b963cb8e62
DIST amdvlk-MetroHash-18893fb28601bb9af1154cd1a671a121fff6d8d3.tar.gz 11729 BLAKE2B b0e3de885e50c317141d62c885b421c7fd2e1ac783733704342bbed3109bff36a9209ab276f534a2231531483539221bbb1014bd39528a91124161bafc5646eb SHA512 8f12f95e80d594c8bd87a852c67a2d6777ce89d1a13e1a87ee17bbb876a0702c14ffe7a7fd65a244620f2043ad5d22ae8eb863d69f1dc5494d985733bbfb7bf9
DIST amdvlk-MetroHash-3c566dd9cda44ca7fd97659e0b53ac953f9037d2.tar.gz 11804 BLAKE2B 683ca8a9e4b93a945dc455c5cb78a2c6dd9dbdf22432ea9f447a6d2d1b05399cc57b621d1e304dc5695ab936a212a2df110e47ec9141764f4eaa2b184a01f4ba SHA512 ae4fcf09a097ceddfcc9f0b721cae0018fff8a0360d8fbbb195d2a8c2809cf8f3c01090ba8129593d89fe1c041224e42a49e7a1c66f20e60958a5373f6d9027f DIST amdvlk-MetroHash-3c566dd9cda44ca7fd97659e0b53ac953f9037d2.tar.gz 11804 BLAKE2B 683ca8a9e4b93a945dc455c5cb78a2c6dd9dbdf22432ea9f447a6d2d1b05399cc57b621d1e304dc5695ab936a212a2df110e47ec9141764f4eaa2b184a01f4ba SHA512 ae4fcf09a097ceddfcc9f0b721cae0018fff8a0360d8fbbb195d2a8c2809cf8f3c01090ba8129593d89fe1c041224e42a49e7a1c66f20e60958a5373f6d9027f
DIST amdvlk-gpurt-714a028e920c502520011fc4f4556f58ec897424.tar.gz 308297 BLAKE2B aeb699332b76cd6d0ac0dcc47a410e8a6ad0b6b073ca2521b3e6c06b4307ee74b79ae9f7767f43e863b8070f664ffd9ffcbacab5f0b12576069e5469b8f5251e SHA512 8044de6555dd2c73ff75d059bda1bba3ef6960c46bb6a92b4ff77e3ced3a8100380ec3d27e5e8ad49fae2fe6994d548494535aa5023412033a2ed9b9236b52bc
DIST amdvlk-llpc-1ecd9997579b962be571162931c9e38bd86bafad.tar.gz 2618677 BLAKE2B 5849ce333bc52ea1bba47f253834c10974fdc2089ba41fa41a89d9a9fe0249f6e4286985e092c5aaaa52b2e9aff3704dde01ac09fad82d43556b67786156092e SHA512 11f69a6f31a282acc410d1ddd6a8996842e1076cdd49db8f08378ab1401acac1d4eba48788b7f78fb5d5297dda52fd1ceaeec6e68986168c0a92b49222bda3b5
DIST amdvlk-llpc-c89f405e3632f0b639faafe61cd03cb851492f4e.tar.gz 2176219 BLAKE2B b04c159b48e0ba48f5ac283ac9640eab67d4d938e7b181184161372f49aaa4d27f279e6895102db2fb2f59dc37ec7abe27093fe9de2b990a89c8b0ca5e3038da SHA512 24eb4732bbfe98bb65677ffcaced7790d427299e167b6c3dd6cbcf1ceaf26fe7441f672651bba9cac260381e65a3a198c80ccbf7c740e079029a902e56178245 DIST amdvlk-llpc-c89f405e3632f0b639faafe61cd03cb851492f4e.tar.gz 2176219 BLAKE2B b04c159b48e0ba48f5ac283ac9640eab67d4d938e7b181184161372f49aaa4d27f279e6895102db2fb2f59dc37ec7abe27093fe9de2b990a89c8b0ca5e3038da SHA512 24eb4732bbfe98bb65677ffcaced7790d427299e167b6c3dd6cbcf1ceaf26fe7441f672651bba9cac260381e65a3a198c80ccbf7c740e079029a902e56178245
DIST amdvlk-llvm-project-a85ea7baf89016f72d7cb7c94db4c996d70d9898.tar.gz 144442498 BLAKE2B 2e93f4b15ef5934f06380802b01333c7195fb611c5c51b64a4d4055c4a05bf764d546d70254d6e7b25869f60bd429d7abcf38ba1e68c92adab50f855bccce20c SHA512 90357c05230e0653968ecb6e57d816278a30a136ed38aea0c067cd1add6b062a94da22e85e4e2c994c5eaaa4e94c290b31761c519b405f86b3f03b6e3a09cb45 DIST amdvlk-llvm-project-a85ea7baf89016f72d7cb7c94db4c996d70d9898.tar.gz 144442498 BLAKE2B 2e93f4b15ef5934f06380802b01333c7195fb611c5c51b64a4d4055c4a05bf764d546d70254d6e7b25869f60bd429d7abcf38ba1e68c92adab50f855bccce20c SHA512 90357c05230e0653968ecb6e57d816278a30a136ed38aea0c067cd1add6b062a94da22e85e4e2c994c5eaaa4e94c290b31761c519b405f86b3f03b6e3a09cb45
DIST amdvlk-llvm-project-fdc6165b081b7b5e5ba245f4283fcb23d6d9f167.tar.gz 179654477 BLAKE2B 4a09ad5d194525365106b44627693f6eef49b9bd9c38c9eb690ea0288593e7a72467e0f2da757e728b40ee11a26ae3e5305aefe0744965dc7b0166f348539116 SHA512 e8603930e389cbcd0433d48bd72763b0d3ac3acd4f6fadaa3ac68f5148881723863f2816fa6ae34b4cb87538f77a70eb318b31d5ef9c085cc72a5dc9ca83fcb2
DIST amdvlk-pal-02ac99ba650afb3aebff3eb8006862ce93d31968.tar.gz 8285204 BLAKE2B 586611d50f39e8567e2774cb6a418627b6b5582b83de1f108b6f02b46a9dfd4d84bbdf2b03f18a671e0c3f58fa49d3ac24708826dd7e3afbf268366382dc1a55 SHA512 dd47365b4717ac808034ae8a61f6bb05b5d43308562134edb2374231549f1f4a0f8a476fd4dc0e38dc8501f840aeaf2cdbc9da25b686eb0b05b79e72a236df2c DIST amdvlk-pal-02ac99ba650afb3aebff3eb8006862ce93d31968.tar.gz 8285204 BLAKE2B 586611d50f39e8567e2774cb6a418627b6b5582b83de1f108b6f02b46a9dfd4d84bbdf2b03f18a671e0c3f58fa49d3ac24708826dd7e3afbf268366382dc1a55 SHA512 dd47365b4717ac808034ae8a61f6bb05b5d43308562134edb2374231549f1f4a0f8a476fd4dc0e38dc8501f840aeaf2cdbc9da25b686eb0b05b79e72a236df2c
DIST amdvlk-pal-4640888b579bc9b0951c586b08a4552f71780d0d.tar.gz 12404946 BLAKE2B a348bce089766ac86539df1f9297df61d94d5db7993f95d86e8967e8641090949d177e9f6d9c1b257404eac8a0a05836c7f0dd6964b8bfc1946a21c47d7f19e0 SHA512 3b43ff0a86f66a238a02a7c71a0fe957deb63968abf2f48b1222ffd048d8fd3e864240a956fb013ab6336eebebb7a76538f748c0c93fbda9ab110e1d33547ef3
DIST amdvlk-xgl-14397c77fbc0c760397dd3162482407b2721a825.tar.gz 898003 BLAKE2B a0f663a36a9d54b9f9d2600534907bb953f0eb8480de4b5edca4efcca62426044ab0ccaf710e73a41dfb25ece9c9d042db73f524348df680c36718ec1c001234 SHA512 1b697bac073297738e118ce315909cb3aa42f1d10c40c6835dc901ea0729cb36bb5d55bde0b8f7da447931396814681682db8b093ca2fdb775ab8f9a890da666 DIST amdvlk-xgl-14397c77fbc0c760397dd3162482407b2721a825.tar.gz 898003 BLAKE2B a0f663a36a9d54b9f9d2600534907bb953f0eb8480de4b5edca4efcca62426044ab0ccaf710e73a41dfb25ece9c9d042db73f524348df680c36718ec1c001234 SHA512 1b697bac073297738e118ce315909cb3aa42f1d10c40c6835dc901ea0729cb36bb5d55bde0b8f7da447931396814681682db8b093ca2fdb775ab8f9a890da666
DIST amdvlk-xgl-997225355d7fce7392a9e32fe9f0a515f5736d0f.tar.gz 1247401 BLAKE2B 5381474b3e8eb1783ab5b6a6059204fdd1fc6215a4bdc724bef874908d860f3f306773235325c725bddbc1c7e416a00a865e7b11e5218c3bca9fccd09e6bda95 SHA512 4217567268525f934dbde112e4a3b7703576d63cd49776dc1d991897bce406533d5954196cface6c31663d9ae073ec74ea0b084e55dfa91314aca350b9effa47

View file

@ -0,0 +1,147 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# MULTILIB_COMPAT=( abi_x86_{32,64} )
PYTHON_COMPAT=( python3_{10..11} )
inherit check-reqs python-any-r1 cmake-multilib
DESCRIPTION="AMD Open Source Driver for Vulkan"
HOMEPAGE="https://github.com/GPUOpen-Drivers/AMDVLK"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="wayland +raytracing"
# REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
BUNDLED_LLVM_DEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]"
DEPEND="wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
${BUNDLED_LLVM_DEPEND}
>=dev-util/vulkan-headers-1.3.224
raytracing? ( dev-util/DirectXShaderCompiler )
dev-util/glslang[${MULTILIB_USEDEP}]"
BDEPEND="${BUNDLED_LLVM_DEPEND}
${PYTHON_DEPS}
virtual/linux-sources"
RDEPEND=" ${DEPEND}
x11-libs/libdrm[${MULTILIB_USEDEP}]
x11-libs/libXrandr[${MULTILIB_USEDEP}]
x11-libs/libxcb[${MULTILIB_USEDEP}]
x11-libs/libxshmfence[${MULTILIB_USEDEP}]
>=media-libs/vulkan-loader-1.3.224[${MULTILIB_USEDEP}]
dev-util/glslang[${MULTILIB_USEDEP}]
dev-libs/openssl[${MULTILIB_USEDEP}]" #890449
CHECKREQS_MEMORY="7G"
CHECKREQS_DISK_BUILD="4G"
S="${WORKDIR}"
CMAKE_USE_DIR="${S}/xgl"
CMAKE_MAKEFILE_GENERATOR=ninja
### SOURCE CODE PER_VERSION VARIABLES
FETCH_URI="https://github.com/GPUOpen-Drivers"
## For those who wants update ebuild: check https://github.com/GPUOpen-Drivers/AMDVLK/blob/${VERSION}/default.xml
## e.g. https://github.com/GPUOpen-Drivers/AMDVLK/blob/v-2022.Q3.5/default.xml
## and place commits in the desired variables
## EXAMPLE: XGL_COMMIT="80e5a4b11ad2058097e77746772ddc9ab2118e07"
## SRC_URI="... ${FETCH_URI}/$PART/archive/$COMMIT.zip -> $PART-$COMMIT.zip ..."
XGL_COMMIT="997225355d7fce7392a9e32fe9f0a515f5736d0f"
PAL_COMMIT="4640888b579bc9b0951c586b08a4552f71780d0d"
LLPC_COMMIT="1ecd9997579b962be571162931c9e38bd86bafad"
GPURT_COMMIT="714a028e920c502520011fc4f4556f58ec897424"
LLVM_PROJECT_COMMIT="fdc6165b081b7b5e5ba245f4283fcb23d6d9f167"
METROHASH_COMMIT="18893fb28601bb9af1154cd1a671a121fff6d8d3"
CWPACK_COMMIT="4f8cf0584442a91d829d269158567d7ed926f026"
# Submodule of LLPC, also updates often. Grab commit version from
# https://github.com/GPUOpen-Drivers/llpc/tree/${LLPC_COMMIT}/imported
LLVM_DIALECTS_COMMIT="17aafecff46b68206a0ed82d58f5e2fc358367a1"
### end of variables
SRC_URI="${FETCH_URI}/xgl/archive/${XGL_COMMIT}.tar.gz -> amdvlk-xgl-${XGL_COMMIT}.tar.gz
${FETCH_URI}/pal/archive/${PAL_COMMIT}.tar.gz -> amdvlk-pal-${PAL_COMMIT}.tar.gz
${FETCH_URI}/llpc/archive/${LLPC_COMMIT}.tar.gz -> amdvlk-llpc-${LLPC_COMMIT}.tar.gz
${FETCH_URI}/gpurt/archive/${GPURT_COMMIT}.tar.gz -> amdvlk-gpurt-${GPURT_COMMIT}.tar.gz
${FETCH_URI}/llvm-project/archive/${LLVM_PROJECT_COMMIT}.tar.gz -> amdvlk-llvm-project-${LLVM_PROJECT_COMMIT}.tar.gz
${FETCH_URI}/MetroHash/archive/${METROHASH_COMMIT}.tar.gz -> amdvlk-MetroHash-${METROHASH_COMMIT}.tar.gz
${FETCH_URI}/CWPack/archive/${CWPACK_COMMIT}.tar.gz -> amdvlk-CWPack-${CWPACK_COMMIT}.tar.gz
${FETCH_URI}/llvm-dialects/archive/${LLVM_DIALECTS_COMMIT}.tar.gz -> amdvlk-LLVM-dialects-${LLVM_DIALECTS_COMMIT}.tar.gz"
PATCHES=(
"${FILESDIR}/amdvlk-2022.3.5-no-compiler-presets.patch" #875821
"${FILESDIR}/amdvlk-2022.4.1-proper-libdir.patch"
"${FILESDIR}/amdvlk-2022.4.2-license-path.patch" #878803
#"${FILESDIR}/amdvlk-2022.4.2-reduced-llvm-installations.patch"
#"${FILESDIR}/amdvlk-2022.4.2-reduced-llvm-installations-part2.patch"
"${FILESDIR}/amdvlk-2022.4.4-r1-disable-Werror.patch" #887777
"${FILESDIR}/amdvlk-2023.1.2-gcc13-cstdint.patch" #905174
)
pkg_pretend(){
ewarn "It's generally recomended to have at least 16GB memory to build"
ewarn "However, experiments shows that if you'll use MAKEOPTS=\"-j1\" you can build it with 4GB RAM"
ewarn "or you can use MAKEOPTS=\"-j3\" with 7.5GB system memory"
ewarn "See https://wiki.gentoo.org/wiki/AMDVLK#Additional_system_requirements_to_build"
ewarn "Use CHECKREQS_DONOTHING=1 if you need to bypass memory checking"
check-reqs_pkg_pretend
}
src_prepare() {
einfo "moving src to proper directories"
mkdir third_party || die
mv xgl-${XGL_COMMIT}/ xgl || die
mv pal-${PAL_COMMIT}/ pal || die
mv llpc-${LLPC_COMMIT}/ llpc || die
mv gpurt-${GPURT_COMMIT}/ gpurt || die
mv llvm-project-${LLVM_PROJECT_COMMIT}/ llvm-project || die
rm -d llpc/imported/llvm-dialects/ || die
mv llvm-dialects-${LLVM_DIALECTS_COMMIT}/ llpc/imported/llvm-dialects/ || die
mv MetroHash-${METROHASH_COMMIT}/ third_party/metrohash || die
mv CWPack-${CWPACK_COMMIT}/ third_party/cwpack || die
cmake_src_prepare
}
multilib_src_configure() {
local mycmakeargs=(
-DBUILD_WAYLAND_SUPPORT=$(usex wayland)
-DVKI_RAY_TRACING=$(usex raytracing)
-DLLVM_HOST_TRIPLE="${CHOST}"
-DLLVM_ENABLE_WERROR=OFF
-DENABLE_WERROR=OFF
-DVAM_ENABLE_WERROR=OFF
-DICD_ANALYSIS_WARNINGS_AS_ERRORS=OFF
-DMETROHASH_ENABLE_WERROR=OFF
-DBUILD_SHARED_LIBS=OFF #LLVM parts don't support shared libs
-DPython3_EXECUTABLE="${PYTHON}"
-DPACKAGE_VERSION="${PV}"
-DPACKAGE_NAME="${PN}"
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON #Disable installation of various LLVM parts which we had to clean up.
-Wno-dev
)
cmake_src_configure
}
multilib_check_headers() {
einfo "Checking headers skipped: there is no headers"
}
multilib_src_install_all() {
default
einfo "Removing unused LLVM parts…"
rm "${ED}"/usr/lib/libLTO* || die "Can't remove unused LLVM lto library"
rm "${ED}"/usr/lib/libRemarks* || die "Can't remove unused LLVM libRemarks library"
rm -r "${ED}"/usr/lib/cmake || die "Can't remove unused LLVM cmake folder"
einfo "Removal done"
}
pkg_postinst() {
ewarn "Make sure the following line is NOT included in the any Xorg configuration section:"
ewarn "| Driver \"modesetting\""
ewarn "and make sure you use DRI3 mode for Xorg (not revelant for wayland)"
elog "More information about the configuration can be found here:"
elog "https://github.com/GPUOpen-Drivers/AMDVLK"
elog "You can use AMD_VULKAN_ICD variable to switch to the required driver."
elog "AMD_VULKAN_ICD=RADV application - for using radv."
elog "AMD_VULKAN_ICD=AMDVLK application - for using amdvlk."
}

View file

@ -0,0 +1,2 @@
DIST furnace-0.6-adpcm-ef7a217.zip 11910 BLAKE2B d498b9f2ccabc11a2796351fc09b0722e0d949eff1d26b5b853dcf748c57e44534d8e61ade965c5c70101e64299371bec7891788aedefd8aef09c9ba79ef39e8 SHA512 f5b2e073b8576d58b8c724d1351796583a74822f12d60cbc36bb83a26a8918dc7a1bc97ad71c2463940f5072d82f2d291815ed3b895610d1a88e4d6868533342
DIST furnace-0.6.tar.gz 44552370 BLAKE2B fd91ab161e309d6c3637fa0c70ea3100f70da98e0044ced1743b0f5416cf6fd9f4f4d307c87776c0a4cfd202ff118d814409bd69f23445443c22265c0630b1fc SHA512 e24aca8e26961c53121869aafa041bf507748e4d4886761ca4a755ad31ba98ce228114009ffb34333d6737fe4759bfa47cd733457863c2f767c01686728c3798

View file

@ -0,0 +1,56 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="a multi-system chiptune tracker compatible with DefleMask modules"
HOMEPAGE="https://github.com/tildearrow/furnace"
SRC_URI="
https://github.com/tildearrow/furnace/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/superctr/adpcm/archive/ef7a217154badc3b99978ac481b268c8aab67bd8.zip -> ${P}-adpcm-ef7a217.zip
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
IUSE="jack"
RDEPEND="
dev-libs/libfmt
media-libs/alsa-lib
media-libs/libglvnd
media-libs/libsdl2
media-libs/libsndfile
media-libs/portaudio
media-libs/rtmidi
sci-libs/fftw
sys-libs/zlib
x11-themes/hicolor-icon-theme
jack? ( virtual/jack )
"
DEPEND="${RDEPEND}"
src_prepare() {
# adpcm is a git submodule in-tree, and thus not included in the
# github-generated source bundle. We move it in here.
rmdir -v "${S}/extern/adpcm" || die "couldn't remove existing adpcm stub directory"
mv -v "${WORKDIR}/adpcm-"* "${S}/extern/adpcm" || die "failed to move adpcm directory into place"
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DBUILD_GUI=ON
-DSYSTEM_FFTW=ON
-DSYSTEM_FMT=ON
-DSYSTEM_LIBSNDFILE=ON
-DSYSTEM_PORTAUDIO=ON
-DSYSTEM_RTMIDI=ON
-DSYSTEM_ZLIB=ON
-DSYSTEM_SDL2=ON
-DWITH_JACK="$(usex jack ON OFF)"
)
cmake_src_configure
}

5
sys-boot/grub/Manifest Normal file
View file

@ -0,0 +1,5 @@
DIST dejavu-sans-ttf-2.37.zip 417746 BLAKE2B c8904f3cd5a49370a7dc10e456684c88aeae998a99090bf4d0a5baa4f36cc8fb8f70586cf6d610a5ffeee97261d28c80f55bbe9dcfc3ed796d5c2d60e79adb58 SHA512 ede5899daa1984c5aa8cacb1c850eb53f189dddef3d9bb78bf9774d8976b7c0d6eb0bcf86237cd7d11f5b36cf5b5058d42cd94d3bd76f2bd0931c7ceb1271fae
DIST grub-2.06-backports-r3.tar.xz 47612 BLAKE2B 235610e826c7a76d05872fb51e74564fb3861590f95377d5dcb9a5a4b0f5037d0b71c9f334bfe0bbe399f65036088d808f7af8e43090007ab7394002d05f7b4a SHA512 561f031dca2cdc13fc1b3f3cfdbdccd7decd67ef18ddcc588327f141b026eadcda5d64d729929859cad54959b3855ff86c1f62e3ff1d8ae5f6f5ac5761fa6ba4
DIST grub-2.06.tar.xz 6581924 BLAKE2B 2a40b9b03d7bb3b9e7b1309ab274d686f01b3c42e7035ebc6e5a0e59a59c3b7362ba518341664b314cb0dbc8222bb10ea05ce09f08ce9d58a293207cb909e417 SHA512 4f11c648f3078567e53fc0c74d5026fdc6da4be27d188975e79d9a4df817ade0fe5ad2ddd694238a07edc45adfa02943d83c57767dd51548102b375e529e8efe
DIST grub-2.06.tar.xz.sig 566 BLAKE2B 2ff18fb40d9cce36cac110ba9996f88236dbaa261d19e777a6d23a0e9754a9fc8bc45a01896f4838c88bb44edff0172a97611202cb3ffd5653a3cbdfc102ae16 SHA512 797683dafade76b5981bd02f079d7dcecb36f5d07eca652181fd69f3df821931f84cc0d8771bfb80506ef41fbd96edfb202b6698af1fec3c8228dd320a05fa84
DIST unifont-12.1.02.pcf.gz 1335424 BLAKE2B 97080312468e3f3c8aa6f49cef08f5622641e8c9c035f3ede1e09d8d98de4e78d3b23c8aba2e8070eb46cbebd2d55e8568e467d7f15f35aa8fc8db792b7e5f14 SHA512 b280b2db7cf5f480b0668c331130dede2c0cc87d5e02e44566b77787113d0f6604d0105522858288f2ac6b8e77df7a2d9878725013a6c778dc5bfb183156e2f0

View file

@ -0,0 +1,352 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
# This ebuild uses 3 special global variables:
# GRUB_BOOTSTRAP: Depend on python and invoke bootstrap (gnulib).
# GRUB_AUTOGEN: Depend on python and invoke autogen.sh.
# GRUB_AUTORECONF: Inherit autotools and invoke eautoreconf.
#
# When applying patches:
# If gnulib is updated, set GRUB_BOOTSTRAP=1
# If gentpl.py or *.def is updated, set GRUB_AUTOGEN=1
# If gnulib, gentpl.py, *.def, or any autotools files are updated, set GRUB_AUTORECONF=1
#
# If any of the above applies to a user patch, the user should set the
# corresponding variable in make.conf or the environment.
if [[ ${PV} == 9999 ]]; then
GRUB_AUTORECONF=1
GRUB_BOOTSTRAP=1
fi
GRUB_AUTOGEN=1
GRUB_AUTORECONF=1
PYTHON_COMPAT=( python3_{8..11} )
WANT_LIBTOOL=none
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/dkiper.gpg
if [[ -n ${GRUB_AUTOGEN} || -n ${GRUB_BOOTSTRAP} ]]; then
inherit python-any-r1
fi
if [[ -n ${GRUB_AUTORECONF} ]]; then
inherit autotools
fi
inherit bash-completion-r1 flag-o-matic multibuild optfeature toolchain-funcs verify-sig
MY_P=${P}
if [[ ${PV} != 9999 ]]; then
if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then
# The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860
MY_P=${P/_/'~'}
SRC_URI="
https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz
verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz.sig )
"
S=${WORKDIR}/${MY_P}
else
SRC_URI="
mirror://gnu/${PN}/${P}.tar.xz
verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )
"
S=${WORKDIR}/${P%_*}
fi
KEYWORDS="amd64 arm arm64 ~ia64 ppc ppc64 ~riscv sparc x86"
else
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/grub.git"
fi
SRC_URI+=" https://dev.gentoo.org/~floppym/dist/${P}-backports-r3.tar.xz"
PATCHES=(
"${WORKDIR}/${P}-backports"
"${FILESDIR}"/gfxpayload.patch
"${FILESDIR}"/grub-2.02_beta2-KERNEL_GLOBS.patch
"${FILESDIR}"/grub-2.06-test-words.patch
)
DEJAVU=dejavu-sans-ttf-2.37
UNIFONT=unifont-12.1.02
SRC_URI+=" fonts? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz )
themes? ( mirror://sourceforge/dejavu/${DEJAVU}.zip )"
DESCRIPTION="GNU GRUB boot loader"
HOMEPAGE="https://www.gnu.org/software/grub/"
# Includes licenses for dejavu and unifont
LICENSE="GPL-3+ BSD MIT fonts? ( GPL-2-with-font-exception ) themes? ( CC-BY-SA-3.0 BitstreamVera )"
SLOT="2/${PVR}"
IUSE="device-mapper doc efiemu +fonts mount nls sdl test +themes truetype libzfs"
GRUB_ALL_PLATFORMS=( coreboot efi-32 efi-64 emu ieee1275 loongson multiboot
qemu qemu-mips pc uboot xen xen-32 xen-pvh )
IUSE+=" ${GRUB_ALL_PLATFORMS[@]/#/grub_platforms_}"
REQUIRED_USE="
grub_platforms_coreboot? ( fonts )
grub_platforms_qemu? ( fonts )
grub_platforms_ieee1275? ( fonts )
grub_platforms_loongson? ( fonts )
"
BDEPEND="
${PYTHON_DEPS}
>=sys-devel/flex-2.5.35
sys-devel/bison
sys-apps/help2man
sys-apps/texinfo
fonts? (
media-libs/freetype:2
virtual/pkgconfig
)
test? (
app-admin/genromfs
app-alternatives/cpio
app-arch/lzop
app-emulation/qemu
dev-libs/libisoburn
sys-apps/miscfiles
sys-block/parted
sys-fs/squashfs-tools
)
themes? (
app-arch/unzip
media-libs/freetype:2
virtual/pkgconfig
)
truetype? ( virtual/pkgconfig )
verify-sig? ( sec-keys/openpgp-keys-danielkiper )
"
DEPEND="
app-arch/xz-utils
>=sys-libs/ncurses-5.2-r5:0=
grub_platforms_emu? (
sdl? ( media-libs/libsdl )
)
device-mapper? ( >=sys-fs/lvm2-2.02.45 )
libzfs? ( sys-fs/zfs:= )
mount? ( sys-fs/fuse:0 )
truetype? ( media-libs/freetype:2= )
ppc? ( >=sys-apps/ibm-powerpc-utils-1.3.5 )
ppc64? ( >=sys-apps/ibm-powerpc-utils-1.3.5 )
"
RDEPEND="${DEPEND}
kernel_linux? (
grub_platforms_efi-32? ( sys-boot/efibootmgr )
grub_platforms_efi-64? ( sys-boot/efibootmgr )
)
!sys-boot/grub:0
nls? ( sys-devel/gettext )
"
RESTRICT="!test? ( test )"
QA_EXECSTACK="usr/bin/grub-emu* usr/lib/grub/*"
QA_PRESTRIPPED="usr/lib/grub/.*"
QA_MULTILIB_PATHS="usr/lib/grub/.*"
QA_WX_LOAD="usr/lib/grub/*"
pkg_setup() {
:
}
src_unpack() {
if [[ ${PV} == 9999 ]]; then
git-r3_src_unpack
pushd "${P}" >/dev/null || die
local GNULIB_URI="https://git.savannah.gnu.org/git/gnulib.git"
local GNULIB_REVISION=$(source bootstrap.conf >/dev/null; echo "${GNULIB_REVISION}")
git-r3_fetch "${GNULIB_URI}" "${GNULIB_REVISION}"
git-r3_checkout "${GNULIB_URI}" gnulib
popd >/dev/null || die
elif use verify-sig; then
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig}
fi
default
}
src_prepare() {
default
if [[ -n ${GRUB_AUTOGEN} || -n ${GRUB_BOOTSTRAP} ]]; then
python_setup
else
export PYTHON=true
fi
if [[ -n ${GRUB_BOOTSTRAP} ]]; then
eautopoint --force
AUTOPOINT=: AUTORECONF=: ./bootstrap || die
elif [[ -n ${GRUB_AUTOGEN} ]]; then
FROM_BOOTSTRAP=1 ./autogen.sh || die
fi
if [[ -n ${GRUB_AUTORECONF} ]]; then
eautoreconf
fi
}
grub_do() {
multibuild_foreach_variant run_in_build_dir "$@"
}
grub_do_once() {
multibuild_for_best_variant run_in_build_dir "$@"
}
grub_configure() {
local platform
case ${MULTIBUILD_VARIANT} in
efi*) platform=efi ;;
xen-pvh) platform=xen_pvh ;;
xen*) platform=xen ;;
guessed) ;;
*) platform=${MULTIBUILD_VARIANT} ;;
esac
case ${MULTIBUILD_VARIANT} in
*-32)
if [[ ${CTARGET:-${CHOST}} == x86_64* ]]; then
local CTARGET=i386
fi ;;
*-64)
if [[ ${CTARGET:-${CHOST}} == i?86* ]]; then
local CTARGET=x86_64
local -x TARGET_CFLAGS="-Os -march=x86-64 ${TARGET_CFLAGS}"
local -x TARGET_CPPFLAGS="-march=x86-64 ${TARGET_CPPFLAGS}"
fi ;;
esac
local myeconfargs=(
--disable-werror
--program-prefix=
--libdir="${EPREFIX}"/usr/lib
$(use_enable device-mapper)
$(use_enable mount grub-mount)
$(use_enable nls)
$(use_enable themes grub-themes)
$(use_enable truetype grub-mkfont)
$(use_enable libzfs)
$(use_enable sdl grub-emu-sdl)
${platform:+--with-platform=}${platform}
# Let configure detect this where supported
$(usex efiemu '' '--disable-efiemu')
)
if use fonts; then
ln -rs "${WORKDIR}/${UNIFONT}.pcf" unifont.pcf || die
fi
if use themes; then
ln -rs "${WORKDIR}/${DEJAVU}/ttf/DejaVuSans.ttf" DejaVuSans.ttf || die
fi
local ECONF_SOURCE="${S}"
econf "${myeconfargs[@]}"
}
src_configure() {
# Bug 508758.
replace-flags -O3 -O2
# Workaround for bug 829165.
filter-ldflags -pie
# We don't want to leak flags onto boot code.
export HOST_CCASFLAGS=${CCASFLAGS}
export HOST_CFLAGS=${CFLAGS}
export HOST_CPPFLAGS=${CPPFLAGS}
export HOST_LDFLAGS=${LDFLAGS}
unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS
tc-ld-disable-gold #439082 #466536 #526348
export TARGET_LDFLAGS="${TARGET_LDFLAGS} ${LDFLAGS}"
unset LDFLAGS
tc-export CC NM OBJCOPY RANLIB STRIP
tc-export BUILD_CC BUILD_PKG_CONFIG
# Force configure to use flex & bison, bug 887211.
export LEX=flex
unset YACC
MULTIBUILD_VARIANTS=()
local p
for p in "${GRUB_ALL_PLATFORMS[@]}"; do
use "grub_platforms_${p}" && MULTIBUILD_VARIANTS+=( "${p}" )
done
[[ ${#MULTIBUILD_VARIANTS[@]} -eq 0 ]] && MULTIBUILD_VARIANTS=( guessed )
grub_do grub_configure
}
src_compile() {
# Sandbox bug 404013.
use libzfs && { addpredict /etc/dfs; addpredict /dev/zfs; }
grub_do emake
use doc && grub_do_once emake -C docs html
}
src_test() {
# The qemu dependency is a bit complex.
# You will need to adjust QEMU_SOFTMMU_TARGETS to match the cpu/platform.
grub_do emake check
}
src_install() {
grub_do emake install DESTDIR="${D}" bashcompletiondir="$(get_bashcompdir)"
use doc && grub_do_once emake -C docs install-html DESTDIR="${D}"
einstalldocs
insinto /etc/default
newins "${FILESDIR}"/grub.default-4 grub
# https://bugs.gentoo.org/231935
dostrip -x /usr/lib/grub
if use elibc_musl; then
# https://bugs.gentoo.org/900348
QA_CONFIG_IMPL_DECL_SKIP=( re_{compile_pattern,match,search,set_syntax} )
fi
}
pkg_postinst() {
elog "For information on how to configure GRUB2 please refer to the guide:"
elog " https://wiki.gentoo.org/wiki/GRUB2_Quick_Start"
if [[ -n ${REPLACING_VERSIONS} ]]; then
local v
for v in ${REPLACING_VERSIONS}; do
if ver_test -gt ${v}; then
ewarn
ewarn "Re-run grub-install to update installed boot code!"
ewarn "Re-run grub-mkconfig to update grub.cfg!"
ewarn
break
fi
done
else
elog
optfeature "detecting other operating systems (grub-mkconfig)" sys-boot/os-prober
optfeature "creating rescue media (grub-mkrescue)" dev-libs/libisoburn
optfeature "enabling RAID device detection" sys-fs/mdadm
optfeature "automatically updating GRUB's configuration on each kernel installation" "sys-kernel/installkernel[grub]"
fi
if has_version 'sys-boot/grub:0'; then
elog "A migration guide for GRUB Legacy users is available:"
elog " https://wiki.gentoo.org/wiki/GRUB2_Migration"
fi
if has_version sys-boot/os-prober; then
ewarn "Due to security concerns, os-prober is disabled by default."
ewarn "Set GRUB_DISABLE_OS_PROBER=false in /etc/default/grub to enable it."
fi
}