Initial commit

This commit is contained in:
2026-03-21 12:43:00 -05:00
commit 83bf16823c
438 changed files with 33617 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-static"]
build_32 = true
[dependencies]
runtime = [
"glibc",
"attr",
]
[dependencies.lib32]
runtime = [
"lib32-glibc",
"lib32-attr",
]
[package]
description = "utilities to administer Access Control Lists"
homepage = "https://savannah.nongnu.org/projects/acl"
license = "GPL-2.0-or-Later"
name = "acl"
version = "2.3.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "97203a72cae99ab89a067fe2210c1cbf052bc492b479eca7d226d9830883b0bd"
url = "https://download.savannah.nongnu.org/releases/acl/acl-$version.tar.xz"
+26
View File
@@ -0,0 +1,26 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--disable-static",
]
build_32 = true
[dependencies]
runtime = ["glibc"]
[dependencies.lib32]
runtime = [ "lib32-glibc" ]
[package]
description = "utilities to administer the extended attributes of filesystem objects"
homepage = "https://www.gnu.org/software/attr/"
license = "GPL-2.0-or-Later"
name = "attr"
version = "2.5.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "f2e97b0ab7ce293681ab701915766190d607a1dba7fae8a718138150b700a70b"
url = "https://download.savannah.nongnu.org/releases/attr/attr-$version.tar.xz"
+27
View File
@@ -0,0 +1,27 @@
[build]
type = "autotools"
[build.flags]
skip_tests = true
[dependencies]
runtime = [
"glibc",
"sh",
"gawk",
"diffutils",
"m4",
"perl",
]
[package]
description = "programs for producing shell scripts that can automatically configure source code"
homepage = "https://www.gnu.org/software/autoconf/"
license = "GPL-3.0-or-Later"
name = "autoconf"
version = "2.72"
[[source]]
extract_dir = "$name-$version"
sha256 = "ba885c1319578d6c94d46e9b0dceb4014caafe2490e437a0dbca3f270a223f5a"
url = "https://mirrors.kernel.org/gnu/autoconf/autoconf-$version.tar.xz"
+25
View File
@@ -0,0 +1,25 @@
[build]
type = "autotools"
[build.flags]
configure = ["--docdir=/usr/share/doc/automake"]
skip_tests = true
[dependencies]
runtime = [
"glibc",
"perl",
"sh",
]
[package]
description = "programs for generating Makefiles for use with Autoconf"
homepage = "https://www.gnu.org/software/automake/"
license = "GPL-2.0-or-Later"
name = "automake"
version = "1.18.1"
[[source]]
extract_dir = "$name-$version"
sha256 = "168aa363278351b89af56684448f525a5bce5079d0b6842bd910fdd3f1646887"
url = "https://mirrors.kernel.org/gnu/automake/automake-$version.tar.xz"
+43
View File
@@ -0,0 +1,43 @@
[build]
type = "meta"
[dependencies]
runtime = [
"glibc",
"filesystem",
"dash",
"coreutils",
"depot",
"llvm-libgcc",
"libcxx",
"procps-ng",
"psmisc",
"gawk",
"gettext",
"grep",
"gzip",
"bzip2",
"file",
"findutils",
"sed",
"shadow",
"openrc",
"tar",
"util-linux",
"vertex-keyring",
"which",
"xz",
"zsh",
"zsh-completions",
"kbd",
"iproute2",
"net-tools"
]
[package]
description = "Basic Packages for Booting Vertex Linux"
homepage = "https://www.vertexlinux.net"
license = "MIT"
name = "base"
version = "1.0.0"
revision = 5
+30
View File
@@ -0,0 +1,30 @@
[build]
type = "autotools"
[build.flags]
configure = [
"-G",
"-r",
]
[dependencies]
build = [
"llvm",
"make",
]
runtime = [
"glibc",
"readline",
]
[package]
description = "implementation of the POSIX bc calculator with GNU extensions and dc"
homepage = "https://github.com/gavinhoward/bc"
license = "BSD-2-Clause"
name = "bc"
version = "7.0.3"
[[source]]
extract_dir = "$name-$version"
sha256 = "91eb74caed0ee6655b669711a4f350c25579778694df248e28363318e03c7fc4"
url = "https://github.com/gavinhoward/bc/releases/download/$version/bc-$version.tar.xz"
+21
View File
@@ -0,0 +1,21 @@
[build]
type = "autotools"
[build.flags]
skip_tests = true
no_delete_static = true
[dependencies]
runtime = ["glibc"]
[package]
description = "parser generator"
homepage = "https://www.gnu.org/software/bison/"
license = "GPL-3.0-Or-Later"
name = "bison"
version = "3.8.2"
[[source]]
sha256 = "9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2"
url = "https://mirrors.kernel.org/gnu/bison/bison-$version.tar.xz"
extract_dir = "bison-$version"
+59
View File
@@ -0,0 +1,59 @@
[build]
type = "makefile"
[build.flags]
makefile_commands = [
'make -j$JOBS -f Makefile-libbz2_so CFLAGS="$CFLAGS -fPIC" LDFLAGS="$LDFLAGS"',
'make -j$JOBS bzip2-shared CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"',
]
makefile_install_commands = [
"make DESTDIR=$DESTDIR PREFIX=/usr install",
"mkdir -p $DESTDIR/usr/lib",
"mkdir -p $DESTDIR/usr/bin",
"mkdir -p $DESTDIR/usr/share/man/man1",
"cp -av libbz2.so.$version $DESTDIR/usr/lib/",
"ln -sfv libbz2.so.$version $DESTDIR/usr/lib/libbz2.so",
"ln -sfv libbz2.so.$version $DESTDIR/usr/lib/libbz2.so.1",
"ln -sfv libbz2.so.$version $DESTDIR/usr/lib/libbz2.so.1.0",
"cp -v bzip2-shared $DESTDIR/usr/bin/bzip2",
'ln -sfv bzip2 $DESTDIR/usr/bin/bunzip2',
'ln -sfv bzip2 $DESTDIR/usr/bin/bzcat',
'ln -sfv bzip2.1 $DESTDIR/usr/share/man/man1/bunzip2.1',
'ln -sfv bzip2.1 $DESTDIR/usr/share/man/man1/bzcat.1',
'ln -sfv bzip2.1 $DESTDIR/usr/share/man/man1/bzip2recover.1',
]
[dependencies]
runtime = [
"glibc",
]
[dependencies.lib32]
runtime = [
"lib32-glibc",
]
[package]
description = "programs for compressing and decompressing files"
homepage = "https://sourceware.org/bzip2/"
license = "BSD-4-Clause"
name = "bzip2"
version = "1.0.8"
[[source]]
extract_dir = "$name-$version"
post_extract = [
'''sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile''',
'sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile',
]
sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269"
url = "https://sourceware.org/pub/bzip2/bzip2-$version.tar.gz"
patches = [ "make.patch" ]
+133
View File
@@ -0,0 +1,133 @@
diff --git a/Makefile b/Makefile
index f8a1772..b3a442c 100644
--- a/Makefile
+++ b/Makefile
@@ -15,13 +15,13 @@
SHELL=/bin/sh
# To assist in cross-compiling
-CC=gcc
-AR=ar
-RANLIB=ranlib
+CC ?= gcc
+AR ?= ar
+RANLIB ?= ranlib
LDFLAGS=
BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
+CFLAGS += -Wall -Winline -O2 $(BIGFILES)
# Where you want it installed when you do 'make install'
PREFIX=/usr/local
@@ -70,43 +70,43 @@ test: bzip2
@cat words3
install: bzip2 bzip2recover
- if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
- if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi
- if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
- if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
- if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
- cp -f bzip2 $(PREFIX)/bin/bzip2
- cp -f bzip2 $(PREFIX)/bin/bunzip2
- cp -f bzip2 $(PREFIX)/bin/bzcat
- cp -f bzip2recover $(PREFIX)/bin/bzip2recover
- chmod a+x $(PREFIX)/bin/bzip2
- chmod a+x $(PREFIX)/bin/bunzip2
- chmod a+x $(PREFIX)/bin/bzcat
- chmod a+x $(PREFIX)/bin/bzip2recover
- cp -f bzip2.1 $(PREFIX)/man/man1
- chmod a+r $(PREFIX)/man/man1/bzip2.1
- cp -f bzlib.h $(PREFIX)/include
- chmod a+r $(PREFIX)/include/bzlib.h
- cp -f libbz2.a $(PREFIX)/lib
- chmod a+r $(PREFIX)/lib/libbz2.a
- cp -f bzgrep $(PREFIX)/bin/bzgrep
- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
- chmod a+x $(PREFIX)/bin/bzgrep
- cp -f bzmore $(PREFIX)/bin/bzmore
- ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
- chmod a+x $(PREFIX)/bin/bzmore
- cp -f bzdiff $(PREFIX)/bin/bzdiff
- ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
- chmod a+x $(PREFIX)/bin/bzdiff
- cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
- chmod a+r $(PREFIX)/man/man1/bzgrep.1
- chmod a+r $(PREFIX)/man/man1/bzmore.1
- chmod a+r $(PREFIX)/man/man1/bzdiff.1
- echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1
- echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1
- echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1
- echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1
+ if ( test ! -d $(DESTDIR)$(PREFIX)/bin ) ; then mkdir -p $(DESTDIR)$(PREFIX)/bin ; fi
+ if ( test ! -d $(DESTDIR)$(PREFIX)/lib ) ; then mkdir -p $(DESTDIR)$(PREFIX)/lib ; fi
+ if ( test ! -d $(DESTDIR)$(PREFIX)/man ) ; then mkdir -p $(DESTDIR)$(PREFIX)/man ; fi
+ if ( test ! -d $(DESTDIR)$(PREFIX)/man/man1 ) ; then mkdir -p $(DESTDIR)$(PREFIX)/man/man1 ; fi
+ if ( test ! -d $(DESTDIR)$(PREFIX)/include ) ; then mkdir -p $(DESTDIR)$(PREFIX)/include ; fi
+ cp -f bzip2 $(DESTDIR)$(PREFIX)/bin/bzip2
+ cp -f bzip2 $(DESTDIR)$(PREFIX)/bin/bunzip2
+ cp -f bzip2 $(DESTDIR)$(PREFIX)/bin/bzcat
+ cp -f bzip2recover $(DESTDIR)$(PREFIX)/bin/bzip2recover
+ chmod a+x $(DESTDIR)$(PREFIX)/bin/bzip2
+ chmod a+x $(DESTDIR)$(PREFIX)/bin/bunzip2
+ chmod a+x $(DESTDIR)$(PREFIX)/bin/bzcat
+ chmod a+x $(DESTDIR)$(PREFIX)/bin/bzip2recover
+ cp -f bzip2.1 $(DESTDIR)$(PREFIX)/man/man1
+ chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzip2.1
+ cp -f bzlib.h $(DESTDIR)$(PREFIX)/include
+ chmod a+r $(DESTDIR)$(PREFIX)/include/bzlib.h
+ cp -f libbz2.a $(DESTDIR)$(PREFIX)/lib
+ chmod a+r $(DESTDIR)$(PREFIX)/lib/libbz2.a
+ cp -f bzgrep $(DESTDIR)$(PREFIX)/bin/bzgrep
+ ln -s -f $(PREFIX)/bin/bzgrep $(DESTDIR)$(PREFIX)/bin/bzegrep
+ ln -s -f $(PREFIX)/bin/bzgrep $(DESTDIR)$(PREFIX)/bin/bzfgrep
+ chmod a+x $(DESTDIR)$(PREFIX)/bin/bzgrep
+ cp -f bzmore $(DESTDIR)$(PREFIX)/bin/bzmore
+ ln -s -f $(PREFIX)/bin/bzmore $(DESTDIR)$(PREFIX)/bin/bzless
+ chmod a+x $(DESTDIR)$(PREFIX)/bin/bzmore
+ cp -f bzdiff $(DESTDIR)$(PREFIX)/bin/bzdiff
+ ln -s -f $(PREFIX)/bin/bzdiff $(DESTDIR)$(PREFIX)/bin/bzcmp
+ chmod a+x $(DESTDIR)$(PREFIX)/bin/bzdiff
+ cp -f bzgrep.1 bzmore.1 bzdiff.1 $(DESTDIR)$(PREFIX)/man/man1
+ chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzgrep.1
+ chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzmore.1
+ chmod a+r $(DESTDIR)$(PREFIX)/man/man1/bzdiff.1
+ echo ".so man1/bzgrep.1" > $(DESTDIR)$(PREFIX)/man/man1/bzegrep.1
+ echo ".so man1/bzgrep.1" > $(DESTDIR)$(PREFIX)/man/man1/bzfgrep.1
+ echo ".so man1/bzmore.1" > $(DESTDIR)$(PREFIX)/man/man1/bzless.1
+ echo ".so man1/bzdiff.1" > $(DESTDIR)$(PREFIX)/man/man1/bzcmp.1
clean:
rm -f *.o libbz2.a bzip2 bzip2recover \
diff --git a/Makefile-libbz2_so b/Makefile-libbz2_so
index fb0f230..1b3a94d 100644
--- a/Makefile-libbz2_so
+++ b/Makefile-libbz2_so
@@ -22,9 +22,9 @@
SHELL=/bin/sh
-CC=gcc
+CC ?= gcc
BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
+CFLAGS += -fpic -fPIC -Wall -Winline $(BIGFILES)
OBJS= blocksort.o \
huffman.o \
@@ -35,10 +35,11 @@ OBJS= blocksort.o \
bzlib.o
all: $(OBJS)
- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS)
- $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.8 $(OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
rm -f libbz2.so.1.0
ln -s libbz2.so.1.0.8 libbz2.so.1.0
+ ln -s libbz2.so.1.0.8 libbz2.so.1
clean:
rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared
+31
View File
@@ -0,0 +1,31 @@
[build]
type = "meson"
[build.flags]
build_dir = "build"
[dependencies]
build = [
"meson",
"rust"
]
runtime = [
"glibc",
"p11-kit",
"libunwind",
]
[package]
description = "Linux CLI for managing CA trust store sources and extracted bundles"
homepage = "https://www.vertexlinux.net"
license = "MIT"
name = "ca-certs"
version = "0.1.0"
[[source]]
extract_dir = "$name-$version"
url = "https://gitlab.com/sfg-os/ca-certs.git"
sha256 = "skip"
[[manual_sources]]
files = [ "postinstall.sh", "postupdate.sh" ]
+1
View File
@@ -0,0 +1 @@
ca-certs certdata sync --root $DEPOT_ROOTFS
+1
View File
@@ -0,0 +1 @@
ca-certs certdata sync --root $DEPOT_ROOTFS
+46
View File
@@ -0,0 +1,46 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--disable-static",
"--with-openssl",
"--with-ca-path=/etc/ssl/certs",
"--with-libssh2",
"--enable-ipv6",
"--disable-ldap",
"--disable-ldaps",
"--enable-threaded-resolver",
"--enable-websockets",
"--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
]
skip_tests = true
[dependencies]
runtime = [
"glibc",
"libidn2",
"libnghttp2",
"libpsl",
"zlib-ng",
"openssl",
"zstd",
"libssh2",
"ca-certs",
"libngtcp2",
"brotli",
"libnghttp3"
]
build = [ "gnutls", "nettle", "patchelf" ]
[package]
description = "utility and a library used for transferring files with URL syntax"
homepage = "https://curl.se/"
license = "MIT"
name = "curl"
version = "8.19.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "sha256:4eb41489790d19e190d7ac7e18e82857cdd68af8f4e66b292ced562d333f11df"
url = "https://curl.se/download/curl-$version.tar.xz"
+37
View File
@@ -0,0 +1,37 @@
[package]
name = "dash"
version = "0.5.13.1"
revision = 1
description = "modern POSIX-compliant implementation of sh"
homepage = "https://git.kernel.org/pub/scm/utils/dash/dash.git/"
license = "BSD-3-Clause"
[alternatives]
provides = [ "sh" ]
[[source]]
url = "http://gondor.apana.org.au/~herbert/dash/files/dash-$version.tar.gz"
sha256 = "d9271bce09c127d9866e25c011582ddc75ab988958a04bc4d8553a3b8f30e370"
extract_dir = "$name-$version"
[build]
type = "autotools"
[build.flags]
configure = [ "--with-libedit" ]
post_install = ["ln -sf dash $DESTDIR/usr/bin/sh"]
[dependencies]
runtime = [ "glibc", "libedit" ]
[[manual_sources]]
file = "preinstall.sh"
sha256 = "skip"
[[manual_sources]]
file = "preremove.sh"
sha256 = "skip"
[[manual_sources]]
file = "preupdate.sh"
sha256 = "skip"
+2
View File
@@ -0,0 +1,2 @@
grep -q '/bin/dash' etc/shells || echo '/bin/dash' >> etc/shells
grep -q '/bin/sh' etc/shells || echo '/bin/sh' >> etc/shells
+2
View File
@@ -0,0 +1,2 @@
sed -i '/^\/bin\/dash/d' etc/shells
sed -i '/^\/bin\/sh/d' etc/shells
+2
View File
@@ -0,0 +1,2 @@
grep -q '/bin/dash' etc/shells || echo '/bin/dash' >> etc/shells
grep -q '/bin/sh' etc/shells || echo '/bin/sh' >> etc/shells
+22
View File
@@ -0,0 +1,22 @@
[build]
type = "autotools"
[dependencies]
runtime = [
"glibc",
"expect",
"sh",
]
test = ["tcl"]
[package]
description = " framework for running test suites on GNU tools"
homepage = "https://www.gnu.org/software/dejagnu/"
license = "GPL-3.0-or-Later"
name = "dejagnu"
version = "1.6.3"
[[source]]
extract_dir = "$name-$version"
sha256 = "87daefacd7958b4a69f88c6856dbd1634261963c414079d0c371f589cd66a2e3"
url = "https://mirrors.kernel.org/gnu/dejagnu/dejagnu-$version.tar.gz"
+39
View File
@@ -0,0 +1,39 @@
[build]
type = "meson"
[build.flags]
build_dir = "build"
keep = "etc/**"
configure = [ "-Dbuild-html-doc=true" ]
[dependencies]
build = [
"meson",
"rust",
"cli_doc"
]
runtime = [
"glibc",
"xz",
"zlib-ng",
"openssl",
"sqlite",
"libunwind",
"zstd",
"libgit2",
"minisign",
"ca-certs"
]
[package]
description = "source-based package manager designed for Linux, focuses on reproducibility, atomic installations, and ease of cross-compilation"
homepage = "https://gitlab.com/sfg-os/depot"
license = "MIT"
name = "depot"
version = "0.29.0"
revision = 1
[[source]]
extract_dir = "$name-$version"
url = "https://gitlab.com/sfg-os/depot.git"
sha256 = "skip"
@@ -0,0 +1,38 @@
[build]
type = "meta"
[dependencies]
runtime = [
"base",
"autoconf",
"automake",
"llvm",
"bison",
"fakeroot",
"file",
"findutils",
"flex",
"gawk",
"clang",
"gettext",
"grep",
"groff",
"gzip",
"libtool",
"m4",
"make",
"depot",
"patch",
"pkgconf",
"sed",
"sudo",
"texinfo",
"which",
]
[package]
description = "Basic tools to build Vertex Packages"
homepage = "https://www.vertexlinux.net"
license = "MIT"
name = "development-base"
version = "1.0.0"
+17
View File
@@ -0,0 +1,17 @@
[build]
type = "autotools"
[dependencies]
runtime = ["sh", "glibc" ]
[package]
description = "programs that show the differences between files or directories"
homepage = "https://www.gnu.org/software/diffutils/"
license = "GPL-3.0-or-later"
name = "diffutils"
version = "3.12"
[[source]]
extract_dir = "$name-$version"
sha256 = "7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd"
url = "https://mirrors.kernel.org/gnu/diffutils/diffutils-$version.tar.xz"
+39
View File
@@ -0,0 +1,39 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--sysconfdir=/etc",
"--enable-elf-shlibs",
"--disable-libblkid",
"--disable-libuuid",
"--disable-uuidd",
"--disable-fsck",
]
post_install = [
"rm -fv $DESTDIR/usr/lib/libcom_err.a",
"rm -fv $DESTDIR/usr/lib/libext2fs.a",
"rm -fv $DESTDIR/usr/lib/libss.a",
"rm -fv $DESTDIR/usr/lib/libe2p.a",
]
skip_tests = true # needs an ext* fs
keep = [ "etc/mke2fs.conf" ]
build_dir = "build"
[dependencies]
runtime = [
"glibc",
"util-linux",
]
[package]
description = "utilities for handling the ext family of filesystems"
homepage = "https://e2fsprogs.sourceforge.net/"
license = "GPL-2.0-or-Later"
name = "e2fsprogs"
version = "1.47.3"
[[source]]
extract_dir = "$name-$version"
sha256 = "2f5164e64dd7d91eadd1e0e8a77d92c06dd7837bb19f1d9189ce1939b363d2b4"
url = "https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v$version/e2fsprogs-$version.tar.gz"
+22
View File
@@ -0,0 +1,22 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-static"]
# tests need bash
skip_tests = true
[dependencies]
runtime = ["glibc"]
[package]
description = "stream oriented C library for parsing XML"
homepage = "https://github.com/libexpat/libexpat"
license = "MIT"
name = "expat"
version = "2.7.4"
[[source]]
extract_dir = "$name-$version"
sha256 = "9e9cabb457c1e09de91db2706d8365645792638eb3be1f94dbb2149301086ac0"
url = "https://github.com/libexpat/libexpat/releases/download/R_2_7_4/expat-$version.tar.xz"
+411
View File
@@ -0,0 +1,411 @@
Submitted By: Xi Ruoyao <xry111@xry111.site>
Date: 2025-04-21
Initial Package Version: 5.45.4
Upstream Status: The C99-compatibility part has been submitted
for a long time, but the upstream seems inactive.
The C23-compatibility part is not submitted.
Origin: Fedora & Self:
- Fedora expect-5.45.4-covscan-fixes.patch
- Fedora expect-c99.patch
- Fedora expect-configure-c99.patch
- We are directly patching configure instead of
patching configure.in like Fedora. It's
generally not a good idea, but better than
adding autoconf into chapter 7 or bloating this
patch into 100+ KiB (with a full regeneration
of the configure script).
- Self-made C23-compatibility fixes
- Add a parameter list for various function
declerations.
Description: Fix some build failure caused by the pre-C23 syntax
no longer allowed by GCC 15 in the default C23
mode.
diff --color -Naur expect5.45.4.orig/configure expect5.45.4/configure
--- expect5.45.4.orig/configure 2018-02-04 18:43:58.000000000 +0800
+++ expect5.45.4/configure 2025-04-22 11:16:42.221990368 +0800
@@ -7994,7 +7994,6 @@
{
extern long timezone;
timezone += 1;
- exit (0);
;
return 0;
}
@@ -8030,7 +8029,6 @@
{
extern time_t timezone;
timezone += 1;
- exit (0);
;
return 0;
}
@@ -8791,7 +8789,7 @@
$as_echo_n "checking for memcpy... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+#include <string.h>
int
main ()
{
@@ -8831,7 +8829,7 @@
/* end confdefs.h. */
#include <sys/wait.h>
-main() {
+int main() {
#ifndef WNOHANG
return 0;
#else
@@ -8867,7 +8865,7 @@
#include <stdio.h>
#include <sys/wait.h>
-main() {
+int main() {
#ifdef WNOHANG
FILE *fp = fopen("wnohang","w");
fprintf(fp,"%d",WNOHANG);
@@ -8935,7 +8933,9 @@
/* end confdefs.h. */
#include <signal.h>
-#define RETSIGTYPE $retsigtype
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/wait.h>
int signal_rearms = 0;
@@ -8952,7 +8952,7 @@
signal_rearms++;
}
-main()
+int main()
{
signal(SIGINT,parent_sigint_handler);
@@ -9234,10 +9234,9 @@
/* end confdefs.h. */
#include <sgtty.h>
-main()
+int main()
{
struct sgttyb tmp;
- exit(0);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
@@ -9274,10 +9273,9 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <termio.h>
- main()
+ int main()
{
struct termio tmp;
- exit(0);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
@@ -9312,10 +9310,9 @@
# include <inttypes.h>
# endif
# include <termios.h>
- main()
+ int main()
{
struct termios tmp;
- exit(0);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
@@ -9350,7 +9347,7 @@
#include <inttypes.h>
#endif
#include <termios.h>
-main() {
+int main() {
#if defined(TCGETS) || defined(TCGETA)
return 0;
#else
@@ -9388,7 +9385,7 @@
#include <inttypes.h>
#endif
#include <termios.h>
-main() {
+int main() {
#ifdef TIOCGWINSZ
return 0;
#else
@@ -9423,7 +9420,7 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-main(){
+int main(){
#ifdef CRAY
return 0;
#else
@@ -9565,12 +9562,10 @@
extern char *tzname[2];
extern int daylight;
-main()
+int main()
{
int *x = &daylight;
char **y = tzname;
-
- exit(0);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
diff --color -Naur expect5.45.4.orig/exp_chan.c expect5.45.4/exp_chan.c
--- expect5.45.4.orig/exp_chan.c 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_chan.c 2025-04-22 11:16:42.222758025 +0800
@@ -51,6 +51,8 @@
int mask));
static int ExpGetHandleProc _ANSI_ARGS_((ClientData instanceData,
int direction, ClientData *handlePtr));
+void exp_background_channelhandler _ANSI_ARGS_((ClientData,
+ int));
/*
* This structure describes the channel type structure for Expect-based IO:
@@ -58,7 +60,7 @@
Tcl_ChannelType expChannelType = {
"exp", /* Type name. */
- ExpBlockModeProc, /* Set blocking/nonblocking mode.*/
+ TCL_CHANNEL_VERSION_2,
ExpCloseProc, /* Close proc. */
ExpInputProc, /* Input proc. */
ExpOutputProc, /* Output proc. */
@@ -68,6 +70,7 @@
ExpWatchProc, /* Initialize notifier. */
ExpGetHandleProc, /* Get OS handles out of channel. */
NULL, /* Close2 proc */
+ ExpBlockModeProc, /* Set blocking/nonblocking mode.*/
};
typedef struct ThreadSpecificData {
diff --color -Naur expect5.45.4.orig/exp_clib.c expect5.45.4/exp_clib.c
--- expect5.45.4.orig/exp_clib.c 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_clib.c 2025-04-22 11:22:35.735989675 +0800
@@ -37,6 +37,14 @@
# endif
#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+//#ifdef HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+//#endif
+
#ifdef HAVE_SYS_FCNTL_H
# include <sys/fcntl.h>
#else
@@ -1727,13 +1735,14 @@
int exp_loguser = TRUE; /* if TRUE, user sees interactions on stdout */
-char *exp_printify();
+char *exp_printify(char *);
int exp_getptymaster();
-int exp_getptyslave();
+int exp_getptyslave(int, int, CONST char *);
#define sysreturn(x) return(errno = x, -1)
void exp_init_pty();
+void exp_init_tty();
/*
The following functions are linked from the Tcl library. They
@@ -2253,6 +2262,7 @@
argv[i] = va_arg(args,char *);
if (!argv[i]) break;
}
+ va_end(args);
i = exp_spawnv(argv[0],argv+1);
free((char *)argv);
return(i);
@@ -2726,6 +2736,7 @@
/* Ultrix 4.2 compiler refuses enumerations comparison!? */
if ((int)type < 0 || (int)type >= (int)exp_bogus) {
fprintf(stderr,"bad type (set %d) in exp_expectl\n",i);
+ va_end(args);
sysreturn(EINVAL);
}
@@ -2791,6 +2802,7 @@
/* Ultrix 4.2 compiler refuses enumerations comparison!? */
if ((int)type < 0 || (int)type >= (int)exp_bogus) {
fprintf(stderr,"bad type (set %d) in exp_expectl\n",i);
+ va_end(args);
sysreturn(EINVAL);
}
diff --color -Naur expect5.45.4.orig/exp_command.h expect5.45.4/exp_command.h
--- expect5.45.4.orig/exp_command.h 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_command.h 2025-04-22 11:15:02.579293854 +0800
@@ -222,8 +222,8 @@
EXTERN void exp_strftime(char *format, const struct tm *timeptr,Tcl_DString *dstring);
-#define exp_deleteProc (void (*)())0
-#define exp_deleteObjProc (void (*)())0
+#define exp_deleteProc NULL
+#define exp_deleteObjProc NULL
EXTERN int expect_key;
EXTERN int exp_configure_count; /* # of times descriptors have been closed */
@@ -321,7 +321,7 @@
EXTERN void exp_init_most_cmds _ANSI_ARGS_((Tcl_Interp *));
EXTERN void exp_init_trap_cmds _ANSI_ARGS_((Tcl_Interp *));
EXTERN void exp_init_interact_cmds _ANSI_ARGS_((Tcl_Interp *));
-EXTERN void exp_init_tty_cmds();
+EXTERN void exp_init_tty_cmds _ANSI_ARGS_((Tcl_Interp *));
EXTERN ExpState * expStateCheck _ANSI_ARGS_((Tcl_Interp *,ExpState *,int,int,char *));
EXTERN ExpState * expStateCurrent _ANSI_ARGS_((Tcl_Interp *,int,int,int));
diff --color -Naur expect5.45.4.orig/exp_log.c expect5.45.4/exp_log.c
--- expect5.45.4.orig/exp_log.c 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_log.c 2025-04-22 11:16:42.223164242 +0800
@@ -174,7 +174,10 @@
force_stdout = TCL_VARARGS_START(int,arg1,args);
fmt = va_arg(args,char *);
- if ((!tsdPtr->logUser) && (!force_stdout) && (!tsdPtr->logAll)) return;
+ if ((!tsdPtr->logUser) && (!force_stdout) && (!tsdPtr->logAll)) {
+ va_end(args);
+ return;
+ }
(void) vsprintf(bigbuf,fmt,args);
expDiagWriteBytes(bigbuf,-1);
diff --color -Naur expect5.45.4.orig/exp_main_sub.c expect5.45.4/exp_main_sub.c
--- expect5.45.4.orig/exp_main_sub.c 2018-02-04 18:43:58.000000000 +0800
+++ expect5.45.4/exp_main_sub.c 2025-04-22 11:17:05.635391610 +0800
@@ -49,14 +49,15 @@
#define NEED_TCL_MINOR 5
char *exp_argv0 = "this program"; /* default program name */
-void (*exp_app_exit)() = 0;
-void (*exp_event_exit)() = 0;
+void (*exp_app_exit) _ANSI_ARGS_((Tcl_Interp *)) = 0;
+void (*exp_event_exit) _ANSI_ARGS_((Tcl_Interp *)) = 0;
FILE *exp_cmdfile = 0;
char *exp_cmdfilename = 0;
int exp_cmdlinecmds = FALSE;
int exp_interactive = FALSE;
int exp_buffer_command_input = FALSE;/* read in entire cmdfile at once */
int exp_fgets();
+int exp_tty_cooked_echo(Tcl_Interp *interp, exp_tty *tty_old, int *was_raw, int *was_echo);
Tcl_Interp *exp_interp; /* for use by signal handlers who can't figure out */
/* the interpreter directly */
@@ -920,7 +921,6 @@
char file[200];
char *home;
int fd;
- char *getenv();
if ((NULL != (home = getenv("DOTDIR"))) ||
(NULL != (home = getenv("HOME")))) {
diff --color -Naur expect5.45.4.orig/exp_pty.c expect5.45.4/exp_pty.c
--- expect5.45.4.orig/exp_pty.c 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_pty.c 2025-04-22 11:17:41.627176185 +0800
@@ -134,8 +134,8 @@
return(cc);
}
-static RETSIGTYPE (*oldAlarmHandler)();
-static RETSIGTYPE (*oldHupHandler)();
+static RETSIGTYPE (*oldAlarmHandler)(int);
+static RETSIGTYPE (*oldHupHandler)(int);
static time_t current_time; /* time when testing began */
/* if TRUE, begin testing, else end testing */
diff --color -Naur expect5.45.4.orig/exp_trap.c expect5.45.4/exp_trap.c
--- expect5.45.4.orig/exp_trap.c 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_trap.c 2025-04-22 11:19:10.154722359 +0800
@@ -53,7 +53,8 @@
int sigchld_count = 0; /* # of sigchlds caught but not yet processed */
-static int eval_trap_action();
+static int
+eval_trap_action(Tcl_Interp *, int, struct trap *, int);
static int got_sig; /* this records the last signal received */
/* it is only a hint and can be wiped out */
diff --color -Naur expect5.45.4.orig/exp_tty.c expect5.45.4/exp_tty.c
--- expect5.45.4.orig/exp_tty.c 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_tty.c 2025-04-22 11:12:33.066206967 +0800
@@ -572,7 +572,7 @@
char **argv)
{
int result = TCL_OK;
- RETSIGTYPE (*old)(); /* save old sigalarm handler */
+ RETSIGTYPE (*old)(int); /* save old sigalarm handler */
#define MAX_ARGLIST 10240
int i;
diff --color -Naur expect5.45.4.orig/exp_win.h expect5.45.4/exp_win.h
--- expect5.45.4.orig/exp_win.h 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/exp_win.h 2025-04-22 11:21:03.990362077 +0800
@@ -8,8 +8,8 @@
#include <tcl.h> /* For _ANSI_ARGS_ */
-int exp_window_size_set();
-int exp_window_size_get();
+int exp_window_size_set _ANSI_ARGS_ ((int));
+int exp_window_size_get _ANSI_ARGS_ ((int));
void exp_win_rows_set _ANSI_ARGS_ ((char* rows));
char* exp_win_rows_get _ANSI_ARGS_ ((void));
diff --color -Naur expect5.45.4.orig/pty_termios.c expect5.45.4/pty_termios.c
--- expect5.45.4.orig/pty_termios.c 2018-02-03 03:15:52.000000000 +0800
+++ expect5.45.4/pty_termios.c 2025-04-22 11:23:56.897369591 +0800
@@ -105,6 +105,7 @@
void expDiagLog();
void expDiagLogPtr();
+char *expErrnoMsg(int errorNo);
#include <errno.h>
/*extern char *sys_errlist[];*/
@@ -189,6 +190,7 @@
#endif /* HAVE_SCO_CLIST_PTYS */
#ifdef HAVE_OPENPTY
+#include <pty.h>
static char master_name[64];
static char slave_name[64];
#endif
@@ -204,7 +206,7 @@
{
#define MAX_ARGLIST 10240
char buf[MAX_ARGLIST]; /* overkill is easier */
- RETSIGTYPE (*old)(); /* save old sigalarm handler */
+ RETSIGTYPE (*old)(int); /* save old sigalarm handler */
int pid;
old = signal(SIGCHLD, SIG_DFL);
@@ -264,7 +266,7 @@
{
#define MAX_ARGLIST 10240
char buf[MAX_ARGLIST]; /* overkill is easier */
- RETSIGTYPE (*old)(); /* save old sigalarm handler */
+ RETSIGTYPE (*old)(int); /* save old sigalarm handler */
#ifdef STTY_READS_STDOUT
sprintf(buf,"%s %s > %s",STTY_BIN,s,name);
+33
View File
@@ -0,0 +1,33 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--with-tcl=/usr/lib",
"--enable-shared",
"--disable-rpath",
"--mandir=/usr/share/man",
"--with-tclinclude=/usr/include",
]
post_install = ["ln -svf expect$version/libexpect$version.so $DESTDIR/usr/lib"]
source_subdir = "expect$version"
[dependencies]
runtime = ["tcl"]
[package]
description = "tools for automating, via scripted dialogues, interactive applications such as telnet, ftp, passwd, fsck, rlogin, and tip"
homepage = "https://www.nist.gov/el/msid/expect.cfm"
license = "custom"
name = "expect"
version = "5.45.4"
[[source]]
extract_dir = "$name-$version"
sha256 = "md5:00fce8de158422f5ccd2666512329bd2"
url = "https://sourceforge.net/projects/expect/files/Expect/$version/expect$version.tar.gz"
post_extract = [ "patch -Np0 -i $DEPOT_SPECDIR/expect-5.45.4-gcc15-1.patch" ]
[[manual_sources]]
file = "expect-$version-gcc15-1.patch"
sha256 = "skip"
@@ -0,0 +1,10 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
AUTOMAKE_OPTIONS=foreign
ACLOCAL_AMFLAGS = -I build-aux
-SUBDIRS=doc scripts test
+SUBDIRS=scripts test
noinst_LTLIBRARIES = libcommunicate.la libmacosx.la libfakeroot_time64.la
libcommunicate_la_SOURCES = communicate.c
+41
View File
@@ -0,0 +1,41 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--disable-static",
"--with-ipc=sysv",
]
post_install = [
"install -dm0755 $DESTDIR/usr/lib/ld.so.conf.d/",
"echo '/usr/lib/libfakeroot' > $DESTDIR/usr/lib/ld.so.conf.d/fakeroot.conf",
]
libdir = "/usr/lib/fakeroot"
[dependencies]
runtime = [
"glibc",
"filesystem",
"sed",
"sh",
"util-linux",
]
test = ["sharutils"]
[package]
description = "Tool for simulating superuser privileges"
homepage = "https://tracker.debian.org/pkg/fakeroot"
license = "GPL-3.0-or-later"
name = "fakeroot"
version = "1.37.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "487051a5ff55ecc631381c09474f6bf6759e79a5a887634e4d1738542836558d"
url = "https://salsa.debian.org/clint/fakeroot/-/archive/upstream/$version/fakeroot-upstream-$version.tar.bz2"
post_extract = ["autoreconf -fi"]
patches = [ "fakeroot-1.37.2-no-doc-man-install.patch" ]
[[manual_sources]]
file = "fakeroot-1.37.2-no-doc-man-install.patch"
sha256 = "sha512:e975fdd19f7b475a95c4c96ae093be43fd0ffcf82ea5598d6196b91159881220113cc4904245809e96c1c87f1b40778061669d6770970b9bf97860b6e605b6e7"
+17
View File
@@ -0,0 +1,17 @@
[build]
type = "autotools"
[dependencies]
runtime = ["glibc"]
[package]
description = "utility for determining the type of a given file or files"
homepage = "https://www.darwinsys.com/file/"
license = "BSD-2-Clause"
name = "file"
version = "5.46"
[[source]]
extract_dir = "$name-$version"
sha256 = "c9cc77c7c560c543135edc555af609d5619dbef011997e988ce40a3d75d86088"
url = "https://astron.com/pub/file/file-$version.tar.gz"
+271
View File
@@ -0,0 +1,271 @@
#!/bin/sh
# Base filesystem package build script - creates merged-/usr directory structure
set -eu
: "${DESTDIR:?DESTDIR is not set}"
# Canonical merged-/usr directories
mkdir -p \
"$DESTDIR/usr/bin" \
"$DESTDIR/usr/lib" \
"$DESTDIR/usr/lib32" \
"$DESTDIR/usr/include" \
"$DESTDIR/usr/share/man" \
"$DESTDIR/usr/share/info" \
"$DESTDIR/etc" \
"$DESTDIR/var" \
"$DESTDIR/tmp" \
"$DESTDIR/home" \
"$DESTDIR/root" \
"$DESTDIR/run" \
"$DESTDIR/dev" \
"$DESTDIR/mnt" \
"$DESTDIR/proc" \
"$DESTDIR/sys" \
"$DESTDIR/opt" \
"$DESTDIR/srv" \
"$DESTDIR/boot"
# Common optional dirs (safe to have even if empty)
mkdir -p \
"$DESTDIR/usr/share" \
"$DESTDIR/usr/libexec" \
"$DESTDIR/usr/local" \
"$DESTDIR/etc/profile.d" \
"$DESTDIR/etc/skel" \
"$DESTDIR/var/cache" \
"$DESTDIR/var/lib/misc" \
"$DESTDIR/var/log/old" \
"$DESTDIR/var/empty" \
"$DESTDIR/var/local" \
"$DESTDIR/var/opt" \
"$DESTDIR/var/tmp" \
"$DESTDIR/var/spool/mail" \
"$DESTDIR/usr/src" \
"$DESTDIR/usr/share/misc" \
"$DESTDIR/usr/share/pixmaps" \
"$DESTDIR/usr/share/factory/etc"
chown 0:0 \
"$DESTDIR/boot" \
"$DESTDIR/dev" \
"$DESTDIR/etc" \
"$DESTDIR/etc/profile.d" \
"$DESTDIR/etc/skel" \
"$DESTDIR/home" \
"$DESTDIR/mnt" \
"$DESTDIR/opt" \
"$DESTDIR/proc" \
"$DESTDIR/root" \
"$DESTDIR/run" \
"$DESTDIR/srv" \
"$DESTDIR/sys" \
"$DESTDIR/tmp" \
"$DESTDIR/usr" \
"$DESTDIR/usr/bin" \
"$DESTDIR/usr/include" \
"$DESTDIR/usr/lib" \
"$DESTDIR/usr/lib32" \
"$DESTDIR/usr/libexec" \
"$DESTDIR/usr/local" \
"$DESTDIR/usr/share" \
"$DESTDIR/usr/share/man" \
"$DESTDIR/usr/share/info" \
"$DESTDIR/usr/share/misc" \
"$DESTDIR/usr/share/pixmaps" \
"$DESTDIR/usr/share/factory/etc" \
"$DESTDIR/usr/src" \
"$DESTDIR/var" \
"$DESTDIR/var/cache" \
"$DESTDIR/var/empty" \
"$DESTDIR/var/lib/misc" \
"$DESTDIR/var/local" \
"$DESTDIR/var/log/old" \
"$DESTDIR/var/opt" \
"$DESTDIR/var/spool/mail" \
"$DESTDIR/var/tmp"
chmod 0755 \
"$DESTDIR/boot" \
"$DESTDIR/dev" \
"$DESTDIR/etc" \
"$DESTDIR/etc/profile.d" \
"$DESTDIR/etc/skel" \
"$DESTDIR/home" \
"$DESTDIR/mnt" \
"$DESTDIR/opt" \
"$DESTDIR/run" \
"$DESTDIR/srv" \
"$DESTDIR/usr" \
"$DESTDIR/usr/bin" \
"$DESTDIR/usr/include" \
"$DESTDIR/usr/lib" \
"$DESTDIR/usr/libexec" \
"$DESTDIR/usr/local" \
"$DESTDIR/usr/share" \
"$DESTDIR/usr/share/man" \
"$DESTDIR/usr/share/info" \
"$DESTDIR/usr/share/misc" \
"$DESTDIR/usr/share/pixmaps" \
"$DESTDIR/usr/share/factory/etc" \
"$DESTDIR/usr/src" \
"$DESTDIR/var" \
"$DESTDIR/var/cache" \
"$DESTDIR/var/empty" \
"$DESTDIR/var/lib/misc" \
"$DESTDIR/var/local" \
"$DESTDIR/var/log/old" \
"$DESTDIR/var/opt"
chmod 0555 "$DESTDIR/proc" "$DESTDIR/sys"
chmod 0750 "$DESTDIR/root"
chmod 1777 "$DESTDIR/tmp" "$DESTDIR/var/tmp" "$DESTDIR/var/spool/mail"
# Compatibility: make legacy top-level dirs point into /usr
# /bin -> /usr/bin
# /sbin -> /usr/bin (merged "one thing" behavior)
# /lib -> /usr/lib
if [ ! -e "$DESTDIR/bin" ]; then
ln -s usr/bin "$DESTDIR/bin"
fi
if [ ! -e "$DESTDIR/sbin" ]; then
ln -s usr/bin "$DESTDIR/sbin"
fi
if [ ! -e "$DESTDIR/lib" ]; then
ln -s usr/lib "$DESTDIR/lib"
fi
if [ ! -e "$DESTDIR/lib64" ]; then
ln -s usr/lib "$DESTDIR/lib64"
fi
if [ ! -e "$DESTDIR/usr/sbin" ]; then
ln -s bin "$DESTDIR/usr/sbin"
fi
# Default PATH for login shells
cat > "$DESTDIR/etc/profile.d/00-path.sh" <<'EOF'
# Default PATH for interactive shells
export PATH=/usr/bin:/usr/sbin:$PATH
EOF
# /etc/profile entrypoint to load profile.d snippets
cat > "$DESTDIR/etc/profile" <<'EOF'
# System-wide profile
for f in /etc/profile.d/*.sh; do
[ -r "$f" ] && . "$f"
done
EOF
# Non-login interactive shells (bash reads this if enabled by the distro)
cat > "$DESTDIR/etc/bash.bashrc" <<'EOF'
# System-wide bashrc
for f in /etc/profile.d/*.sh; do
[ -r "$f" ] && . "$f"
done
EOF
cat > "$DESTDIR/etc/os-release" <<'EOF'
NAME="Vertex Linux"
ID=vertex
PRETTY_NAME="Vertex Linux 1.0 (Parallel Panther)"
VERSION="1.0 (Parallel Panther)"
VERSION_ID="1.0"
VERSION_CODENAME=parallel_panther
BUILD_ID=1.0
HOME_URL="https://www.vertexlinux.net"
SUPPORT_URL="https://www.vertexlinux.net"
BUG_REPORT_URL="https://www.vertexlinux.net"
ANSI_COLOR="1;35"
EOF
cat > "$DESTDIR/etc/lsb-release" <<'EOF'
DISTRIB_ID=VertexLinux
DISTRIB_RELEASE=1.0
DISTRIB_CODENAME=parallel_panther
DISTRIB_DESCRIPTION="Vertex Linux 1.0 (Parallel Panther)"
DISTRIB_URL="https://vertexlinux.net"
EOF
cat > "$DESTDIR/etc/passwd" << 'EOF'
root:x:0:0:root:/root:/bin/zsh
bin:x:1:1:bin:/dev/null:/usr/bin/false
daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
uucp:x:14:14:UUCP User:/dev/null:/usr/bin/false
uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false
EOF
cat > "$DESTDIR/etc/shadow" << 'EOF'
root:*:14871::::::
EOF
cat > "$DESTDIR/etc/shells" << 'EOF'
# Pathnames of valid login shells.
# See shells(5) for details.
/bin/sh
/bin/dash
/usr/bin/sh
/usr/bin/dash
EOF
cat > "$DESTDIR/etc/group" << 'EOF'
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
clock:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
uucp:x:19:
input:x:24:
mail:x:34:
kvm:x:61:
uuidd:x:80:
wheel:x:97:
users:x:999:
nogroup:x:65534:
EOF
cat > "$DESTDIR/etc/hosts" << 'EOF'
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1 localhost
::1 localhost
EOF
cat > "$DESTDIR/etc/issue" << 'EOF'
\S{PRETTY_NAME} \r (\l)
EOF
cat > "$DESTDIR/etc/fstab" << 'EOF'
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
EOF
cat > "$DESTDIR/etc/resolv.conf" << 'EOF'
# Resolver configuration file.
# See resolv.conf(5) for details.
EOF
ln -sv usr/lib32 "$DESTDIR/lib32"
echo "Merged-/usr filesystem directory structure created."
+16
View File
@@ -0,0 +1,16 @@
[package]
name = "filesystem"
version = "1.0.1"
description = "FHS-compliant base directory structure for Vertex Linux"
homepage = "https://gitlab.com/vertex-linux"
license = "Unlicense"
revision = 3
[[manual_sources]]
file = "build.sh"
[build]
type = "custom"
[build.flags]
keep = [ "etc/**" ]
+20
View File
@@ -0,0 +1,20 @@
[build]
type = "autotools"
[dependencies]
runtime = [ "glibc", "sh" ]
[package]
description = "programs to find files"
homepage = "https://www.gnu.org/software/findutils/"
license = "GPL-3.0-or-later"
name = "findutils"
version = "4.10.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "1387e0b67ff247d2abde998f90dfbf70c1491391a59ddfecb8ae698789f0a4f5"
url = "https://mirrors.kernel.org/gnu/findutils/findutils-$version.tar.xz"
[build.flags]
configure = [ "--localstatedir=/var/lib/locate" ]
+28
View File
@@ -0,0 +1,28 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-static"]
post_install = [
"ln -sv flex $DESTDIR/usr/bin/lex",
"ln -sv flex.1 $DESTDIR/usr/share/man/man1/lex.1",
]
[dependencies]
runtime = [
"glibc",
"m4",
"sh",
]
[package]
description = "Fast Lexical Analyzer"
homepage = "https://github.com/westes/flex"
license = "BSD-2-Clause"
name = "flex"
version = "2.6.4"
[[source]]
extract_dir = "$name-$version"
sha256 = "e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995"
url = "https://github.com/westes/flex/releases/download/v$version/flex-$version.tar.gz"
+25
View File
@@ -0,0 +1,25 @@
[build]
type = "autotools"
[build.flags]
skip_tests = true
[dependencies]
runtime = [
"glibc",
"sh",
"mpfr"
]
[package]
description = "programs for manipulating text files"
homepage = "https://www.gnu.org/software/gawk/"
license = "GPL-3.0-or-later"
name = "gawk"
version = "5.3.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "f8c3486509de705192138b00ef2c00bbbdd0e84c30d5c07d23fc73a9dc4cc9cc"
url = "https://mirrors.kernel.org/gnu/gawk/gawk-$version.tar.xz"
post_extract = [ "sed -i 's/extras//' Makefile.in" ]
+27
View File
@@ -0,0 +1,27 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--disable-static",
"--enable-libgdbm-compat",
]
[dependencies]
runtime = [
"glibc",
"readline",
"sh",
]
[package]
description = "GNU Database Manager"
homepage = "https://www.gnu.org/software/gdbm/"
license = "GPL-3.0-or-Later"
name = "gdbm"
version = "1.26"
[[source]]
extract_dir = "$name-$version"
sha256 = "6a24504a14de4a744103dcb936be976df6fbe88ccff26065e54c1c47946f4a5e"
url = "https://mirrors.kernel.org/gnu/gdbm/gdbm-$version.tar.gz"
+31
View File
@@ -0,0 +1,31 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-static"]
post_install = [ "chmod -v 0755 $DESTDIR/usr/lib/preloadable_libintl.so" ]
skip_tests = true # tests are flaky
[dependencies]
runtime = [
"glibc",
"acl",
"sh",
]
[package]
description = "utilities for internationalization and localization"
homepage = "https://www.gnu.org/software/gettext/"
license = [
"GFDL-1.2-only",
"GPL-2.0-only",
"GPL-2.0-or-later",
"LGPL-2.0-only",
]
name = "gettext"
version = "1.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "71132a3fb71e68245b8f2ac4e9e97137d3e5c02f415636eb508ae607bc01add7"
url = "https://mirrors.kernel.org/gnu/gettext/gettext-$version.tar.xz"
@@ -0,0 +1,11 @@
--- a/sysdeps/x86/fpu/math-barriers.h
+++ b/sysdeps/x86/fpu/math-barriers.h
@@ -19,7 +19,7 @@
#ifndef X86_MATH_BARRIERS_H
#define X86_MATH_BARRIERS_H 1
-#ifdef __SSE2_MATH__
+#if defined __SSE2_MATH__ && !defined __clang__
# define math_opt_barrier(x) \
({ __typeof(x) __x; \
if (sizeof (x) <= sizeof (double) \
@@ -0,0 +1,321 @@
diff -ruN a/Makeconfig b/Makeconfig
--- a/Makeconfig 2026-01-23 14:54:00.000000000 -0600
+++ b/Makeconfig 2026-03-15 17:40:53.944414759 -0500
@@ -709,38 +709,110 @@
# makefiles to use additional libraries for linking executables and
# shared libraries built by glibc.
ifndef gnulib
-ifneq ($(have-cc-with-libunwind),yes)
- libunwind =
-else
- libunwind = -lunwind
-endif
-libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
+libunwind =
+# Preserve the configured target selection when asking the compiler for
+# support libraries and CRT objects. For Clang, prefer
+# compiler-rt builtins if available because libgcc lookups may resolve to a
+# host archive.
+cc-runtime-flags := $(filter-out -I%,$(CFLAGS)) $(sysdep-LDFLAGS) $(LDFLAGS)
+cc-runtime-target := $(shell $(CC) $(cc-runtime-flags) -print-target-triple 2>/dev/null)
+cc-clang-resource-dir := $(shell $(CC) $(cc-runtime-flags) --print-resource-dir 2>/dev/null)
+cc-clang-rtlib-flags := $(shell \
+ if test "$(have-test-clang)" = yes; then \
+ for candidate in i686-linux-gnu i686-unknown-linux-gnu i386-unknown-linux-gnu "$(cc-runtime-target)"; do \
+ if test -n "$$candidate"; then \
+ rtlib=$$($(CC) $(cc-runtime-flags) --target=$$candidate \
+ --rtlib=compiler-rt --print-libgcc-file-name 2>/dev/null); \
+ if test "x$$rtlib" != x && test "x$$rtlib" != xlibgcc.a && test -r "$$rtlib"; then \
+ printf '%s' "--target=$$candidate --rtlib=compiler-rt"; \
+ exit 0; \
+ fi; \
+ fi; \
+ done; \
+ fi)
+cc-clang-crtbegin := $(shell \
+ if test "$(have-test-clang)" = yes; then \
+ for path in \
+ "$(cc-clang-resource-dir)/lib/i686-linux-gnu/clang_rt.crtbegin-i386.o" \
+ "$(cc-clang-resource-dir)/lib/i686-unknown-linux-gnu/clang_rt.crtbegin-i386.o" \
+ "$(cc-clang-resource-dir)/lib/i386-unknown-linux-gnu/clang_rt.crtbegin-i386.o" \
+ "$(cc-clang-resource-dir)/lib/$(cc-runtime-target)/clang_rt.crtbegin-i386.o" \
+ "$(cc-clang-resource-dir)/lib/linux/clang_rt.crtbegin-i386.o"; do \
+ if test -r "$$path"; then \
+ printf '%s' "$$path"; \
+ exit 0; \
+ fi; \
+ done; \
+ fi)
+cc-clang-crtend := $(shell \
+ if test "$(have-test-clang)" = yes; then \
+ for path in \
+ "$(cc-clang-resource-dir)/lib/i686-linux-gnu/clang_rt.crtend-i386.o" \
+ "$(cc-clang-resource-dir)/lib/i686-unknown-linux-gnu/clang_rt.crtend-i386.o" \
+ "$(cc-clang-resource-dir)/lib/i386-unknown-linux-gnu/clang_rt.crtend-i386.o" \
+ "$(cc-clang-resource-dir)/lib/$(cc-runtime-target)/clang_rt.crtend-i386.o" \
+ "$(cc-clang-resource-dir)/lib/linux/clang_rt.crtend-i386.o"; do \
+ if test -r "$$path"; then \
+ printf '%s' "$$path"; \
+ exit 0; \
+ fi; \
+ done; \
+ fi)
+libgcc := $(shell \
+ lib=$$($(CC) $(cc-runtime-flags) --print-libgcc-file-name 2>/dev/null); \
+ if test "$(have-test-clang)" = yes; then \
+ rtlib=$$($(CC) $(cc-runtime-flags) $(cc-clang-rtlib-flags) \
+ --print-libgcc-file-name 2>/dev/null); \
+ if test "x$$rtlib" != x && test "x$$rtlib" != xlibgcc.a && test -r "$$rtlib"; then \
+ lib=$$rtlib; \
+ else \
+ for path in \
+ "$(cc-clang-resource-dir)/lib/i686-linux-gnu/libclang_rt.builtins.a" \
+ "$(cc-clang-resource-dir)/lib/i686-unknown-linux-gnu/libclang_rt.builtins.a" \
+ "$(cc-clang-resource-dir)/lib/i386-unknown-linux-gnu/libclang_rt.builtins.a" \
+ "$(cc-clang-resource-dir)/lib/$(cc-runtime-target)/libclang_rt.builtins.a" \
+ "$(cc-clang-resource-dir)/lib/linux/libclang_rt.builtins-i386.a"; do \
+ if test -r "$$path"; then \
+ lib=$$path; \
+ break; \
+ fi; \
+ done; \
+ fi; \
+ fi; \
+ printf '%s' "$$lib")
+# Do not mix Clang's compiler-rt builtins with GCC crtbegin/crtend
+# objects. If compiler-rt CRT objects are unavailable, leave these
+# empty and let the link proceed without the GCC startup fragments.
+cc-clang-use-rt := $(and $(filter yes,$(have-test-clang)),$(cc-clang-rtlib-flags))
+libgcc_eh_archive := $(shell $(CC) $(cc-runtime-flags) --print-file-name=libgcc_eh.a)
+libgcc_s := $(shell $(CC) $(cc-runtime-flags) --print-file-name=libgcc_s.so$(libgcc_s.so-version))
+libgcc_eh := -Wl,--as-needed $(libgcc_s) $(libunwind) -Wl,--no-as-needed
gnulib-arch =
-gnulib = -lgcc $(gnulib-arch)
-gnulib-tests := -lgcc $(libgcc_eh)
-gnulib-extralibdir = $(dir $(shell $(CC) -print-file-name=libgcc_s.so$(libgcc_s.so-version)))
+gnulib = $(libgcc) $(gnulib-arch)
+gnulib-tests := $(libgcc) $(libgcc_eh)
+gnulib-extralibdir = $(patsubst ./,,$(dir $(libgcc_s)))
static-gnulib-arch =
# By default, elf/static-stubs.o, instead of -lgcc_eh, is used to
# statically link programs. When --disable-shared is used, we use
# -lgcc_eh since elf/static-stubs.o isn't sufficient.
ifeq (yes,$(build-shared))
-static-gnulib = -lgcc $(static-gnulib-arch)
+static-gnulib = $(libgcc) $(static-gnulib-arch)
else
-static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch)
+static-gnulib = $(libgcc) $(libgcc_eh_archive) $(static-gnulib-arch)
endif
-static-gnulib-tests := -lgcc -lgcc_eh $(libunwind)
-libc.so-gnulib := -lgcc
+static-gnulib-tests := $(libgcc) $(libgcc_eh_archive) $(libunwind)
+libc.so-gnulib := $(libgcc)
endif
+preinit = $(addprefix $(csu-objpfx),crti.o)
+postinit = $(addprefix $(csu-objpfx),crtn.o)
-+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o`
-+postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
++prector = $(if $(cc-clang-use-rt),$(cc-clang-crtbegin),`$(CC) $(cc-runtime-flags) --print-file-name=crtbegin.o`)
++postctor = $(if $(cc-clang-use-rt),$(cc-clang-crtend),`$(CC) $(cc-runtime-flags) --print-file-name=crtend.o`)
# Variants of the two previous definitions for linking PIE programs.
-+prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
-+postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
++prectorS = $(if $(cc-clang-use-rt),$(cc-clang-crtbegin),`$(CC) $(cc-runtime-flags) --print-file-name=crtbeginS.o`)
++postctorS = $(if $(cc-clang-use-rt),$(cc-clang-crtend),`$(CC) $(cc-runtime-flags) --print-file-name=crtendS.o`)
# Variants of the two previous definitions for statically linking programs.
-static-prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginT.o`
-static-postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
+static-prector = $(if $(cc-clang-use-rt),$(cc-clang-crtbegin),`$(CC) $(cc-runtime-flags) --print-file-name=crtbeginT.o`)
+static-postctor = $(if $(cc-clang-use-rt),$(cc-clang-crtend),`$(CC) $(cc-runtime-flags) --print-file-name=crtend.o`)
ifeq (yes,$(enable-static-pie))
# Static PIE must use PIE variants.
+prectorT = $(if $($(@F)-no-pie),$(static-prector),$(+prectorS))
diff -ruN a/Makerules b/Makerules
--- a/Makerules 2026-01-23 14:54:00.000000000 -0600
+++ b/Makerules 2026-03-15 17:40:29.652012402 -0500
@@ -543,7 +543,7 @@
$(call after-link,$@)
define build-shlib-helper
-$(LINK.o) -shared -static-libgcc -Wl,-O1 $(sysdep-LDFLAGS) \
+$(LINK.o) -shared $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-rtlib-flags)),-nostartfiles $(cc-clang-rtlib-flags),-static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \
$(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(rtld-LDFLAGS) \
$(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
$(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \
@@ -555,11 +555,13 @@
define build-shlib
$(build-shlib-helper) -o $@ \
- $(csu-objpfx)abi-note.o $(build-shlib-objlist)
+ $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-crtbegin)),$(if $(filter c.so,$(@F)),,$(+preinit)) $(+prectorS)) \
+ $(csu-objpfx)abi-note.o $(build-shlib-objlist) \
+ $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-crtend)),$(+postctorS) $(if $(filter c.so,$(@F)),,$(+postinit)))
endef
define build-module-helper
-$(LINK.o) -shared -static-libgcc $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \
+$(LINK.o) -shared $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-rtlib-flags)),-nostartfiles $(cc-clang-rtlib-flags),-static-libgcc) $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \
$(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \
$(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
-B$(csu-objpfx) $(load-map-file) \
@@ -574,14 +576,18 @@
# not for shared objects
define build-module
$(build-module-helper) -o $@ \
- $(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args)
+ $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-crtbegin)),$(+preinit) $(+prectorS)) \
+ $(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args) \
+ $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-crtend)),$(+postctorS) $(+postinit))
$(call after-link,$@)
endef
define build-module-asneeded
$(build-module-helper) -o $@ \
+ $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-crtbegin)),$(+preinit) $(+prectorS)) \
$(csu-objpfx)abi-note.o \
-Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed \
- $(link-libc-args)
+ $(link-libc-args) \
+ $(if $(and $(filter yes,$(have-test-clang)),$(cc-clang-crtend)),$(+postctorS) $(+postinit))
$(call after-link,$@)
endef
diff -ruN a/configure b/configure
--- a/configure 2026-01-23 14:54:00.000000000 -0600
+++ b/configure 2026-03-15 17:40:29.652602103 -0500
@@ -9328,18 +9328,28 @@
config_vars="$config_vars
enable-static-pie = $libc_cv_static_pie"
-# Check if we can link support functionality against libgcc_s.
+# Check if the compiler reports usable support functionality from libgcc_s.
# Must not be used for linking installed binaries, to produce the
# same binaries for bootstrapped and bootstrapping builds (the latter
# with a GCC that does not build libgcc_s).
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC can link against -lgcc_s" >&5
-printf %s "checking whether $CC can link against -lgcc_s... " >&6; }
+#
+# The compiler-reported runtime may be an absolute path rather than a bare
+# library name, for example when using llvm-libgcc. Include the configured
+# target-selection flags so multilib and compiler-rt builds query the
+# matching runtime.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC reports a usable libgcc_s" >&5
+printf %s "checking whether $CC reports a usable libgcc_s... " >&6; }
if test ${libc_cv_have_libgcc_s+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) old_LIBS="$LIBS"
- LIBS="$LIBS -lgcc_s"
+ libc_cv_libgcc_s=`$CC $CFLAGS $LDFLAGS -print-file-name=libgcc_s.so 2>/dev/null`
+ if test "x$libc_cv_libgcc_s" = "xlibgcc_s.so"
+ then :
+ libc_cv_have_libgcc_s=no
+ else case e in #(
+ e) LIBS="$LIBS $libc_cv_libgcc_s"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -9360,6 +9370,9 @@
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
+ ;;
+esac
+ fi
LIBS="$old_LIBS" ;;
esac
fi
@@ -11002,5 +11015,3 @@
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
-
-
diff -ruN a/configure.ac b/configure.ac
--- a/configure.ac 2026-01-23 14:54:00.000000000 -0600
+++ b/configure.ac 2026-03-15 17:40:29.653053992 -0500
@@ -2122,15 +2122,24 @@
fi
LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
-# Check if we can link support functionality against libgcc_s.
+# Check if the compiler reports usable support functionality from libgcc_s.
# Must not be used for linking installed binaries, to produce the
# same binaries for bootstrapped and bootstrapping builds (the latter
# with a GCC that does not build libgcc_s).
-AC_CACHE_CHECK([whether $CC can link against -lgcc_s], libc_cv_have_libgcc_s, [dnl
+# The compiler-reported runtime may be an absolute path rather than a bare
+# library name, for example when using llvm-libgcc. Include the configured
+# target-selection flags so multilib and compiler-rt builds query the
+# matching runtime.
+AC_CACHE_CHECK([whether $CC reports a usable libgcc_s], libc_cv_have_libgcc_s, [dnl
old_LIBS="$LIBS"
- LIBS="$LIBS -lgcc_s"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
- [libc_cv_have_libgcc_s=yes], [libc_cv_have_libgcc_s=no])
+ libc_cv_libgcc_s=`$CC $CFLAGS $LDFLAGS -print-file-name=libgcc_s.so 2>/dev/null`
+ if test "x$libc_cv_libgcc_s" = "xlibgcc_s.so"; then
+ libc_cv_have_libgcc_s=no
+ else
+ LIBS="$LIBS $libc_cv_libgcc_s"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+ [libc_cv_have_libgcc_s=yes], [libc_cv_have_libgcc_s=no])
+ fi
LIBS="$old_LIBS"])
LIBC_CONFIG_VAR([have-libgcc_s], [$libc_cv_have_libgcc_s])
diff -ruN a/dlfcn/Makefile b/dlfcn/Makefile
--- a/dlfcn/Makefile 2026-01-23 14:54:00.000000000 -0600
+++ b/dlfcn/Makefile 2026-03-15 17:40:29.653172707 -0500
@@ -187,7 +187,7 @@
$(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so
ifneq (,$(CXX))
-LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh
+LDLIBS-bug-atexit3-lib.so = -lstdc++ $(libgcc_eh_archive)
$(objpfx)bug-atexit3-lib.so: $(libsupport)
$(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so
endif
diff -ruN a/elf/Makefile b/elf/Makefile
--- a/elf/Makefile 2026-01-23 14:54:00.000000000 -0600
+++ b/elf/Makefile 2026-03-15 17:40:29.653314888 -0500
@@ -1514,7 +1514,7 @@
echo ".globl $$symbol"; \
echo "$$symbol:"; \
done | $(CC) -o $@T.o $(ASFLAGS) -c -x assembler -
- $(reloc-link) -o $@.o $@T.o '-Wl,-(' $^ -lgcc '-Wl,-)' -Wl,-Map,$@T
+ $(reloc-link) -o $@.o $@T.o '-Wl,-(' $^ $(libgcc) '-Wl,-)' -Wl,-Map,$@T
rm -f %@T.o $@.o
mv -f $@T $@
@@ -1544,7 +1544,7 @@
$(MAKE) -f $< -f rtld-Rules
$(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a
- $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' \
+ $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ $(libgcc) '-Wl,-)' \
-Wl,-Map,$@.map
generated += librtld.map librtld.mk rtld-libc.a librtld.os.map
diff -ruN a/support/Makefile b/support/Makefile
--- a/support/Makefile 2026-01-23 14:54:00.000000000 -0600
+++ b/support/Makefile 2026-03-15 17:40:29.653481645 -0500
@@ -284,14 +284,14 @@
ifeq (,$(CXX))
LINKS_DSO_PROGRAM = links-dso-program-c
-LDLIBS-links-dso-program-c = -lgcc
+LDLIBS-links-dso-program-c = $(libgcc)
ifeq ($(have-libgcc_s),yes)
CFLAGS-links-dso-program-c.c += -fexceptions
-LDLIBS-links-dso-program-c += -lgcc_s $(libunwind)
+LDLIBS-links-dso-program-c += $(libgcc_s) $(libunwind)
endif
else
LINKS_DSO_PROGRAM = links-dso-program
-LDLIBS-links-dso-program = -lstdc++ -lgcc -lgcc_s $(libunwind)
+LDLIBS-links-dso-program = -lstdc++ $(libgcc) $(libgcc_s) $(libunwind)
endif
ifeq (yes,$(have-selinux))
+72
View File
@@ -0,0 +1,72 @@
Submitted By: Armin K. <krejzi at email dot com>
Date: 2013-02-11
Initial Package Version: 2.17
Upstream Status: Not Applicable
Origin: Self
Description: This patch removes references to /var/db directory which is not part
of FHS and replaces them with more suitable directories in /var
hierarchy - /var/cache/nscd for nscd and /var/lib/nss_db for nss_db.
--- a/Makeconfig 2012-12-25 04:02:13.000000000 +0100
+++ b/Makeconfig 2013-02-11 01:32:32.500667439 +0100
@@ -250,7 +250,7 @@
# Directory for the database files and Makefile for nss_db.
ifndef vardbdir
-vardbdir = $(localstatedir)/db
+vardbdir = $(localstatedir)/lib/nss_db
endif
inst_vardbdir = $(install_root)$(vardbdir)
--- a/nscd/nscd.h 2012-12-25 04:02:13.000000000 +0100
+++ b/nscd/nscd.h 2013-02-11 01:32:32.500667439 +0100
@@ -112,11 +112,11 @@
/* Paths of the file for the persistent storage. */
-#define _PATH_NSCD_PASSWD_DB "/var/db/nscd/passwd"
-#define _PATH_NSCD_GROUP_DB "/var/db/nscd/group"
-#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts"
-#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services"
-#define _PATH_NSCD_NETGROUP_DB "/var/db/nscd/netgroup"
+#define _PATH_NSCD_PASSWD_DB "/var/cache/nscd/passwd"
+#define _PATH_NSCD_GROUP_DB "/var/cache/nscd/group"
+#define _PATH_NSCD_HOSTS_DB "/var/cache/nscd/hosts"
+#define _PATH_NSCD_SERVICES_DB "/var/cache/nscd/services"
+#define _PATH_NSCD_NETGROUP_DB "/var/cache/nscd/netgroup"
/* Path used when not using persistent storage. */
#define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX"
--- a/nss/db-Makefile 2012-12-25 04:02:13.000000000 +0100
+++ b/nss/db-Makefile 2013-02-11 01:32:32.500667439 +0100
@@ -22,7 +22,7 @@
/etc/rpc /etc/services /etc/shadow /etc/gshadow \
/etc/netgroup)
-VAR_DB = /var/db
+VAR_DB = /var/lib/nss_db
AWK = awk
MAKEDB = makedb --quiet
--- a/sysdeps/generic/paths.h 2012-12-25 04:02:13.000000000 +0100
+++ b/sysdeps/generic/paths.h 2013-02-11 01:32:32.500667439 +0100
@@ -68,7 +68,7 @@
/* Provide trailing slash, since mostly used for building pathnames. */
#define _PATH_DEV "/dev/"
#define _PATH_TMP "/tmp/"
-#define _PATH_VARDB "/var/db/"
+#define _PATH_VARDB "/var/lib/nss_db/"
#define _PATH_VARRUN "/var/run/"
#define _PATH_VARTMP "/var/tmp/"
--- a/sysdeps/unix/sysv/linux/paths.h 2012-12-25 04:02:13.000000000 +0100
+++ b/sysdeps/unix/sysv/linux/paths.h 2013-02-11 01:32:32.504000831 +0100
@@ -68,7 +68,7 @@
/* Provide trailing slash, since mostly used for building pathnames. */
#define _PATH_DEV "/dev/"
#define _PATH_TMP "/tmp/"
-#define _PATH_VARDB "/var/db/"
+#define _PATH_VARDB "/var/lib/nss_db/"
#define _PATH_VARRUN "/var/run/"
#define _PATH_VARTMP "/var/tmp/"
+15
View File
@@ -0,0 +1,15 @@
--- a/sysdeps/unix/sysv/linux/x86/longjmp.c
+++ b/sysdeps/unix/sysv/linux/x86/longjmp.c
@@ -29,6 +29,7 @@
/* Assert that the priv field in struct pthread_unwind_buf has space
to store shadow stack pointer. */
+#if defined SHADOW_STACK_POINTER_OFFSET && SHADOW_STACK_POINTER_OFFSET > 0
_Static_assert ((offsetof (struct pthread_unwind_buf, priv)
<= SHADOW_STACK_POINTER_OFFSET)
&& ((offsetof (struct pthread_unwind_buf, priv)
@@ -37,3 +38,4 @@
+ SHADOW_STACK_POINTER_SIZE)),
"Shadow stack pointer is not within private storage "
"of pthread_unwind_buf.");
+#endif
@@ -0,0 +1,154 @@
--- a/sysdeps/x86/fpu/sfp-machine.h
+++ b/sysdeps/x86/fpu/sfp-machine.h
@@ -2,6 +2,7 @@
libgcc, with soft-float and other irrelevant parts removed. */
#include <math-inline-asm.h>
+#include <fenv.h>
#if HAVE_X86_LIBGCC_CMP_RETURN_ATTR
/* The type of the result of a floating point comparison. This must
@@ -65,76 +66,82 @@
# define _FP_WS_TYPE signed long int
# define _FP_I_TYPE long int
+# ifdef __clang__
+# define __SFP_REG(x) (x)
+# else
+# define __SFP_REG(x) ((USItype) (x))
+# endif
+
# define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
__asm__ ("add{l} {%11,%3|%3,%11}\n\t" \
"adc{l} {%9,%2|%2,%9}\n\t" \
"adc{l} {%7,%1|%1,%7}\n\t" \
"adc{l} {%5,%0|%0,%5}" \
- : "=r" ((USItype) (r3)), \
- "=&r" ((USItype) (r2)), \
- "=&r" ((USItype) (r1)), \
- "=&r" ((USItype) (r0)) \
- : "%0" ((USItype) (x3)), \
- "g" ((USItype) (y3)), \
- "%1" ((USItype) (x2)), \
- "g" ((USItype) (y2)), \
- "%2" ((USItype) (x1)), \
- "g" ((USItype) (y1)), \
- "%3" ((USItype) (x0)), \
- "g" ((USItype) (y0)))
+ : "=r" (__SFP_REG (r3)), \
+ "=&r" (__SFP_REG (r2)), \
+ "=&r" (__SFP_REG (r1)), \
+ "=&r" (__SFP_REG (r0)) \
+ : "%0" (__SFP_REG (x3)), \
+ "g" (__SFP_REG (y3)), \
+ "%1" (__SFP_REG (x2)), \
+ "g" (__SFP_REG (y2)), \
+ "%2" (__SFP_REG (x1)), \
+ "g" (__SFP_REG (y1)), \
+ "%3" (__SFP_REG (x0)), \
+ "g" (__SFP_REG (y0)))
# define __FP_FRAC_ADD_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
__asm__ ("add{l} {%8,%2|%2,%8}\n\t" \
"adc{l} {%6,%1|%1,%6}\n\t" \
"adc{l} {%4,%0|%0,%4}" \
- : "=r" ((USItype) (r2)), \
- "=&r" ((USItype) (r1)), \
- "=&r" ((USItype) (r0)) \
- : "%0" ((USItype) (x2)), \
- "g" ((USItype) (y2)), \
- "%1" ((USItype) (x1)), \
- "g" ((USItype) (y1)), \
- "%2" ((USItype) (x0)), \
- "g" ((USItype) (y0)))
+ : "=r" (__SFP_REG (r2)), \
+ "=&r" (__SFP_REG (r1)), \
+ "=&r" (__SFP_REG (r0)) \
+ : "%0" (__SFP_REG (x2)), \
+ "g" (__SFP_REG (y2)), \
+ "%1" (__SFP_REG (x1)), \
+ "g" (__SFP_REG (y1)), \
+ "%2" (__SFP_REG (x0)), \
+ "g" (__SFP_REG (y0)))
# define __FP_FRAC_SUB_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
__asm__ ("sub{l} {%11,%3|%3,%11}\n\t" \
"sbb{l} {%9,%2|%2,%9}\n\t" \
"sbb{l} {%7,%1|%1,%7}\n\t" \
"sbb{l} {%5,%0|%0,%5}" \
- : "=r" ((USItype) (r3)), \
- "=&r" ((USItype) (r2)), \
- "=&r" ((USItype) (r1)), \
- "=&r" ((USItype) (r0)) \
- : "0" ((USItype) (x3)), \
- "g" ((USItype) (y3)), \
- "1" ((USItype) (x2)), \
- "g" ((USItype) (y2)), \
- "2" ((USItype) (x1)), \
- "g" ((USItype) (y1)), \
- "3" ((USItype) (x0)), \
- "g" ((USItype) (y0)))
+ : "=r" (__SFP_REG (r3)), \
+ "=&r" (__SFP_REG (r2)), \
+ "=&r" (__SFP_REG (r1)), \
+ "=&r" (__SFP_REG (r0)) \
+ : "0" (__SFP_REG (x3)), \
+ "g" (__SFP_REG (y3)), \
+ "1" (__SFP_REG (x2)), \
+ "g" (__SFP_REG (y2)), \
+ "2" (__SFP_REG (x1)), \
+ "g" (__SFP_REG (y1)), \
+ "3" (__SFP_REG (x0)), \
+ "g" (__SFP_REG (y0)))
# define __FP_FRAC_SUB_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
__asm__ ("sub{l} {%8,%2|%2,%8}\n\t" \
"sbb{l} {%6,%1|%1,%6}\n\t" \
"sbb{l} {%4,%0|%0,%4}" \
- : "=r" ((USItype) (r2)), \
- "=&r" ((USItype) (r1)), \
- "=&r" ((USItype) (r0)) \
- : "0" ((USItype) (x2)), \
- "g" ((USItype) (y2)), \
- "1" ((USItype) (x1)), \
- "g" ((USItype) (y1)), \
- "2" ((USItype) (x0)), \
- "g" ((USItype) (y0)))
+ : "=r" (__SFP_REG (r2)), \
+ "=&r" (__SFP_REG (r1)), \
+ "=&r" (__SFP_REG (r0)) \
+ : "0" (__SFP_REG (x2)), \
+ "g" (__SFP_REG (y2)), \
+ "1" (__SFP_REG (x1)), \
+ "g" (__SFP_REG (y1)), \
+ "2" (__SFP_REG (x0)), \
+ "g" (__SFP_REG (y0)))
# define __FP_FRAC_ADDI_4(x3,x2,x1,x0,i) \
__asm__ ("add{l} {%4,%3|%3,%4}\n\t" \
"adc{l} {$0,%2|%2,0}\n\t" \
"adc{l} {$0,%1|%1,0}\n\t" \
"adc{l} {$0,%0|%0,0}" \
- : "+r" ((USItype) (x3)), \
- "+&r" ((USItype) (x2)), \
- "+&r" ((USItype) (x1)), \
- "+&r" ((USItype) (x0)) \
- : "g" ((USItype) (i)))
+ : "+r" (__SFP_REG (x3)), \
+ "+&r" (__SFP_REG (x2)), \
+ "+&r" (__SFP_REG (x1)), \
+ "+&r" (__SFP_REG (x0)) \
+ : "g" (__SFP_REG (i)))
# define _FP_MUL_MEAT_S(R,X,Y) \
@@ -210,12 +217,10 @@
(FP_EX_INVALID | FP_EX_DENORM | FP_EX_DIVZERO | FP_EX_OVERFLOW \
| FP_EX_UNDERFLOW | FP_EX_INEXACT)
-void __sfp_handle_exceptions (int);
-
#define FP_HANDLE_EXCEPTIONS \
do { \
if (__builtin_expect (_fex, 0)) \
- __sfp_handle_exceptions (_fex); \
+ __feraiseexcept (_fex & FE_ALL_EXCEPT); \
} while (0);
#define FP_TRAPPING_EXCEPTIONS ((~_fcw >> FP_EX_SHIFT) & FP_EX_ALL)
+127
View File
@@ -0,0 +1,127 @@
[package]
name = "glibc"
version = "2.43"
revision = 4
description = "GNU C Library"
homepage = "https://sourceware.org/glibc"
license = "LGPL-2.1-or-later"
[[manual_sources]]
file = "nsswitch.conf"
sha256 = "skip"
[[manual_sources]]
file = "ld.so.conf"
sha256 = "skip"
[[manual_sources]]
file = "locale-gen"
sha256 = "skip"
[[manual_sources]]
file = "locale.gen.txt"
sha256 = "skip"
[[manual_sources]]
file = "glibc-longjmp-ssp-fix.patch"
sha256 = "skip"
[[manual_sources]]
file = "glibc-sfp-handle-exceptions-fix.patch"
sha256 = "skip"
[[manual_sources]]
file = "glibc-2.43-use-compiler-reported-libgcc.patch"
sha256 = "skip"
[[manual_sources]]
file = "ldd"
sha256 = "skip"
[[manual_sources]]
file = "lib32-postinstall.sh"
sha256 = "skip"
[[manual_sources]]
file = "glibc-2.43-clang-math-barriers.patch"
sha256 = "skip"
[[source]]
url = "https://mirrors.kernel.org/gnu/glibc/glibc-$version.tar.xz"
sha256 = "d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831"
extract_dir = "$name-$version"
patches = ["glibc-fhs-1.patch","glibc-longjmp-ssp-fix.patch","glibc-sfp-handle-exceptions-fix.patch","glibc-2.43-use-compiler-reported-libgcc.patch", "glibc-2.43-clang-math-barriers.patch" ]
post_extract = ["mkdir -p build", "echo 'rootsbindir=/usr/sbin' > build/configparms"]
[build]
type = "autotools"
[build.flags]
build_dir = "build"
prefix = "/usr"
configure = [
"--disable-werror",
"--disable-nscd",
"libc_cv_slibdir=/usr/lib",
"--enable-stack-protector=strong",
"--enable-kernel=5.4",
]
post_compile = [
"sed '/test-installation/s@$(PERL)@echo not running@' -i Makefile",
"touch ./locale/programs/charmap-kw.h",
"touch ./locale/programs/locfile-kw.h"
]
post_install = [
"mkdir -p $DESTDIR/etc",
"cp -rv $DEPOT_SPECDIR/ld.so.conf $DEPOT_SPECDIR/nsswitch.conf $DESTDIR/etc",
"rm -f ${DESTDIR}/etc/ld.so.cache",
"install -dm755 \"${DESTDIR}\"/usr/share/i18n",
"install -dm755 \"${DESTDIR}\"/usr/lib/locale",
"install -m644 posix/gai.conf \"${DESTDIR}\"/etc/gai.conf",
"install -m755 \"${DEPOT_SPECDIR}\"/locale-gen \"${DESTDIR}\"/usr/bin",
"install -m644 \"${DEPOT_SPECDIR}\"/locale.gen.txt \"${DESTDIR}\"/etc/locale.gen",
"sed -e '1,3d' -e 's|/| |g' -e 's|\\\\| |g' -e 's|^|#|g' localedata/SUPPORTED >> \"${DESTDIR}\"/etc/locale.gen",
"sed -e '1,3d' -e 's|/| |g' -e 's| \\\\||g' localedata/SUPPORTED > \"${DESTDIR}\"/usr/share/i18n/SUPPORTED",
"sed -i '/#C\\.UTF-8 /d' \"${DESTDIR}\"/etc/locale.gen",
"rm $DESTDIR/usr/bin/ldd",
"install -m 0755 $DEPOT_SPECDIR/ldd $DESTDIR/usr/bin/ldd"
]
use_lto = false
keep = [ "etc/locale.gen", "etc/ld.so.conf", "etc/nsswitch.conf", "etc/gai.conf" ]
# you can do the tests if you want, not me though...
skip_tests = true
no_delete_static = true
build_32 = true
configure_lib32 = [
"--disable-werror",
"--disable-nscd",
"libc_cv_slibdir=/usr/lib32",
"libc_cv_cc_with_libunwind=no",
"--enable-stack-protector=strong",
"--enable-kernel=5.4",
]
post_install_lib32 = [ "mkdir -p $DESTDIR/usr/include/gnu/", "install -vm644 destdir/usr/include/gnu/stubs-32.h destdir/usr/include/gnu/lib-names-32.h $DESTDIR/usr/include/gnu/" ]
ldflags-lib32 += [ "-L/usr/lib32 -Wl,-rpath-link,/usr/lib32" ]
[dependencies]
runtime = ["filesystem", "tzdata", "linux-headers"]
build = [ "python" ]
[dependencies.lib32]
runtime = ["filesystem", "tzdata", "linux-headers"]
build = [ "python" ]
+3
View File
@@ -0,0 +1,3 @@
/usr/local/lib
/opt/lib
include /etc/ld.so.conf.d/*.conf
+176
View File
@@ -0,0 +1,176 @@
#!/bin/sh
# Copyright (C) 1996-2026 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <https://www.gnu.org/licenses/>.
# This is the `ldd' command, which lists what shared libraries are
# used by given dynamically-linked executables. It works by invoking the
# run-time dynamic linker as a command and setting the environment
# variable LD_TRACE_LOADED_OBJECTS to a non-empty value.
RTLDLIST="/lib64/ld-linux-x86-64.so.2 /lib/ld-linux.so.2 /libx32/ld-linux-x32.so.2"
warn=
bind_now=
verbose=
unused=
while test $# -gt 0; do
case "$1" in
--vers | --versi | --versio | --version)
echo 'ldd (GNU libc) 2.43'
printf "Copyright (C) %s Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "2024"
printf "Written by %s and %s.\n" "Roland McGrath" "Ulrich Drepper"
exit 0
;;
--h | --he | --hel | --help)
echo "Usage: ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations
-r, --function-relocs process data and function relocations
-u, --unused print unused direct dependencies
-v, --verbose print all information
"
printf "For bug reporting instructions, please see:\\n%s.\\n" \
"<https://www.gnu.org/software/libc/bugs.html>"
exit 0
;;
-d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \
--data-rel | --data-relo | --data-reloc | --data-relocs)
warn=yes
shift
;;
-r | --f | --fu | --fun | --func | --funct | --functi | --functio | \
--function | --function- | --function-r | --function-re | --function-rel | \
--function-relo | --function-reloc | --function-relocs)
warn=yes
bind_now=yes
shift
;;
-v | --verb | --verbo | --verbos | --verbose)
verbose=yes
shift
;;
-u | --u | --un | --unu | --unus | --unuse | --unused)
unused=yes
shift
;;
--v | --ve | --ver)
echo >&2 "ldd: option \`$1' is ambiguous"
exit 1
;;
--) # Stop option processing.
shift; break
;;
-*)
echo >&2 'ldd:' "unrecognized option" "\`$1'"
echo >&2 "Try \`ldd --help' for more information."
exit 1
;;
*)
break
;;
esac
done
nonelf ()
{
# Maybe extra code for non-ELF binaries.
return 1;
}
add_env="LD_TRACE_LOADED_OBJECTS=1 LD_WARN=$warn LD_BIND_NOW=$bind_now"
add_env="$add_env LD_VERBOSE=$verbose"
if test "$unused" = yes; then
add_env="$add_env LD_DEBUG=\"$LD_DEBUG${LD_DEBUG:+,}unused\""
fi
try_trace() (
output=$(eval $add_env '"$@"' 2>&1; rc=$?; printf 'x'; exit $rc)
rc=$?
printf '%s' "${output%x}"
return $rc
)
case $# in
0)
echo >&2 'ldd:' "missing file arguments"
echo >&2 "Try \`ldd --help' for more information."
exit 1
;;
1)
single_file=t
;;
*)
single_file=f
;;
esac
result=0
for file do
test $single_file = t || echo "${file}:"
case $file in
*/*) : ;;
*) file=./$file ;;
esac
if test ! -e "$file"; then
echo "ldd: ${file}:" "No such file or directory" >&2
result=1
elif test ! -f "$file"; then
echo "ldd: ${file}:" "not regular file" >&2
result=1
elif test -r "$file"; then
test -x "$file" || echo 'ldd:' "\
warning: you do not have execution permission for" "\`$file'" >&2
RTLD=
ret=1
for rtld in ${RTLDLIST}; do
if test -x $rtld; then
verify_out=`${rtld} --verify "$file"`
ret=$?
case $ret in
[02]) RTLD=${rtld}; break;;
esac
fi
done
case $ret in
1)
nonelf "$file" || {
echo " not a dynamic executable" >&2
result=1
}
;;
0|2)
try_trace "$RTLD" "$file" || result=1
;;
*)
echo 'ldd:' ${RTLD} "exited with unknown exit code" "($ret)" >&2
exit 1
;;
esac
else
echo 'ldd:' "error: you do not have read permission for" "\`$file'" >&2
result=1
fi
done
exit $result
# Local Variables:
# mode:sh
# End:
+1
View File
@@ -0,0 +1 @@
echo "/usr/lib32" >> etc/ld.so.conf
+63
View File
@@ -0,0 +1,63 @@
#!/bin/sh
set -e
LOCALEGEN=/etc/locale.gen
LOCALES=/usr/share/i18n/locales
LOCALES_OVERRIDES=/usr/local/share/i18n/locales
if [ -n "$POSIXLY_CORRECT" ]; then
unset POSIXLY_CORRECT
fi
[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
# Remove all old locale dir and locale-archive before generating new
# locale data.
rm -rf /usr/lib/locale/locale-archive || true
umask 022
is_entry_ok() {
if [ -z "$locale" ] || [ -z "$charset" ]; then
echo "error: Bad entry '$locale $charset'"
return 1
fi
}
echo "Generating locales..."
while read -r locale charset; do
if [ -z "$locale" ] || [ "${locale#\#}" != "$locale" ]; then continue; fi
is_entry_ok || continue
# strip charmap and at-suffix for locale base
locale_base="${locale%%.*}"
locale_base="${locale_base%%@*}"
# optional at-suffix
locale_at="${locale#*@}"
[ "$locale_at" = "$locale" ] && locale_at= || locale_at="@$locale_at"
printf " %s.%s%s..." "$locale_base" "$charset" "$locale_at"
# fully matching override locale
if [ -e "$LOCALES_OVERRIDES/$locale" ]; then
input="$LOCALES_OVERRIDES/$locale"
# fully matching vendor locale
elif [ -e "$LOCALES/$locale" ]; then
input="$locale"
# fallback to partial matches
else
# locale base with optional at-suffix
input="$locale_base$locale_at"
# override partial locale
if [ -e "$LOCALES_OVERRIDES/$input" ]; then
input="$LOCALES_OVERRIDES/$input"
fi
fi
localedef -i "$input" -c -f "$charset" -A /usr/share/locale/locale.alias "$locale" || :
echo ' done'
done < $LOCALEGEN
echo "Generation complete."
+17
View File
@@ -0,0 +1,17 @@
# Configuration file for locale-gen
#
# lists of locales that are to be generated by the locale-gen command.
#
# Each line is of the form:
#
# <locale> <charset>
#
# where <locale> is one of the locales given in /usr/share/i18n/locales
# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
#
# The locale-gen command will generate all the locales,
# placing them in /usr/lib/locale.
#
# A list of supported locales is given in /usr/share/i18n/SUPPORTED
# and is included in this file. Uncomment the needed locales below.
#
+11
View File
@@ -0,0 +1,11 @@
passwd: files
group: files
shadow: files
hosts: files dns
networks: files
protocols: files
services: files
ethers: files
rpc: files
+42
View File
@@ -0,0 +1,42 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--enable-cxx",
"--disable-static",
"--enable-fat"
]
build_32 = true
configure-lib32 = [
"--enable-cxx",
"--disable-static",
"--enable-fat",
"--includedir=/usr/lib32/gmp",
"ABI=32"
]
[dependencies]
runtime = [
"glibc",
"libunwind",
"libcxx"
]
[dependencies.lib32]
runtime = [ "lib32-glibc", "lib32-libunwind", "lib32-libcxx" ]
[package]
description = "arbitrary precision arithmetic math libs"
homepage = "https://www.gnu.org/software/gmp/"
license = [
"GPL-2.0-or-later",
"LGPL-3.0-or-later",
]
name = "gmp"
version = "6.3.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898"
url = "https://gmplib.org/download/gmp/gmp-$version.tar.xz"
+17
View File
@@ -0,0 +1,17 @@
[build]
type = "autotools"
[dependencies]
runtime = [ "glibc", "libunwind" ]
[package]
description = "generates a perfect hash function from a key set"
homepage = "https://www.gnu.org/software/gperf/"
license = "GPL-3.0-or-later"
name = "gperf"
version = "3.3"
[[source]]
extract_dir = "$name-$version"
sha256 = "fd87e0aba7e43ae054837afd6cd4db03a3f2693deb3619085e6ed9d8d9604ad8"
url = "https://mirrors.kernel.org/gnu/gperf/gperf-$version.tar.gz"
+21
View File
@@ -0,0 +1,21 @@
[build]
type = "autotools"
[build.flags]
skip_tests = true
[dependencies]
runtime = [ "glibc", "pcre2" ]
[package]
description = "programs for searching through the contents of files"
homepage = "https://www.gnu.org/software/grep/"
license = "GPL-3.0-or-Later"
name = "grep"
version = "3.12"
[[source]]
extract_dir = "$name-$version"
sha256 = "sha512:c54b4db5a8b9afe098c088decd94977746305284d716666a60bac82b4edc0fae4acf828970b5b6fc7d58ecd549f638e17e6958f33a71fedcc7d7415b9228b161"
url = "https://mirrors.kernel.org/gnu/grep/grep-$version.tar.xz"
post_extract = [ "sed -i 's/echo/#echo/' src/egrep.sh" ]
+24
View File
@@ -0,0 +1,24 @@
[build]
type = "autotools"
[build.flags]
configure = ["PAGE=letter"]
[dependencies]
runtime = [
"perl",
"glibc",
"libunwind"
]
[package]
description = "programs for processing and formatting text and images"
homepage = "https://www.gnu.org/software/groff/"
license = "GPL-3.0-or-later"
name = "groff"
version = "1.23.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "6b9757f592b7518b4902eb6af7e54570bdccba37a871fddb2d30ae3863511c13"
url = "https://mirrors.kernel.org/gnu/groff/groff-$version.tar.gz"
+23
View File
@@ -0,0 +1,23 @@
[build]
type = "autotools"
[build.flags]
skip_tests = true
[dependencies]
runtime = [
"glibc",
"sh",
]
[package]
description = "programs for compressing and decompressing files"
homepage = "https://www.gnu.org/software/gzip/"
license = "GPL-3.0-or-Later"
name = "gzip"
version = "1.14"
[[source]]
extract_dir = "$name-$version"
sha256 = "01a7b881bd220bfdf615f97b8718f80bdfd3f6add385b993dcf6efd14e8c0ac6"
url = "https://mirrors.kernel.org/gnu/gzip/gzip-$version.tar.xz"
+2
View File
@@ -0,0 +1,2 @@
mkdir -p $DESTDIR/etc
cp -v services protocols $DESTDIR/etc
+20
View File
@@ -0,0 +1,20 @@
[build]
type = "custom"
[build.flags]
keep = [ "etc/protocols", "etc/services" ]
[dependencies]
runtime = ["filesystem"]
[package]
description = "data for network services and protocols"
homepage = "https://www.iana.org/protocols"
license = "custom:none"
name = "iana-etc"
version = "20260202"
[[source]]
extract_dir = "$name-$version"
sha256 = "32f1d8fb403b0afd8b2649dbdb3f5137ac5dd1262c72ec670249f54cc87e2900"
url = "https://github.com/Mic92/iana-etc/releases/download/$version/iana-etc-$version.tar.gz"
@@ -0,0 +1,62 @@
diff --git a/icu/source/test/intltest/ssearch.cpp b/icu/source/test/intltest/ssearch.cpp
index a13df7f..615ea53 100644
--- a/icu/source/test/intltest/ssearch.cpp
+++ b/icu/source/test/intltest/ssearch.cpp
@@ -531,12 +531,26 @@ static char *printOffsets(char *buffer, size_t n, OrderList &list)
for(int32_t i = 0; i < size; i += 1) {
const Order *order = list.get(i);
+ size_t remaining = n - static_cast<size_t>(s - buffer);
+
+ if (remaining == 0) {
+ break;
+ }
if (i != 0) {
- s += snprintf(s, n, ", ");
+ int32_t written = snprintf(s, remaining, ", ");
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
+ break;
+ }
+ s += written;
+ remaining -= written;
}
- s += snprintf(s, n, "(%d, %d)", order->lowOffset, order->highOffset);
+ int32_t written = snprintf(s, remaining, "(%d, %d)", order->lowOffset, order->highOffset);
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
+ break;
+ }
+ s += written;
}
return buffer;
@@ -549,12 +563,26 @@ static char *printOrders(char *buffer, size_t n, OrderList &list)
for(int32_t i = 0; i < size; i += 1) {
const Order *order = list.get(i);
+ size_t remaining = n - static_cast<size_t>(s - buffer);
+
+ if (remaining == 0) {
+ break;
+ }
if (i != 0) {
- s += snprintf(s, n, ", ");
+ int32_t written = snprintf(s, remaining, ", ");
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
+ break;
+ }
+ s += written;
+ remaining -= written;
}
- s += snprintf(s, n, "%8.8X", order->order);
+ int32_t written = snprintf(s, remaining, "%8.8X", order->order);
+ if (written < 0 || static_cast<size_t>(written) >= remaining) {
+ break;
+ }
+ s += written;
}
return buffer;
+43
View File
@@ -0,0 +1,43 @@
[build]
type = "autotools"
[build.flags]
source_subdir = "icu/source"
build_32 = true
host_build = true
configure_lib32 = [ "--with-cross-build=$DEPOT_BUILD_HOST_DIR" ]
[dependencies]
build = ["python"]
runtime = [
"glibc",
"sh",
"libunwind",
"libcxx"
]
[dependencies.lib32]
build = ["python"]
runtime = [
"lib32-glibc",
"lib32-libunwind",
"lib32-libcxx"
]
[package]
description = "International Components for Unicode, version 78"
homepage = "https://icu.unicode.org/"
license = "Unicode-3.0"
name = "icu78"
version = "78.2"
revision = 2
[[source]]
extract_dir = "$name-$version"
sha256 = "3e99687b5c435d4b209630e2d2ebb79906c984685e78635078b672e03c89df35"
url = "https://github.com/unicode-org/icu/releases/download/release-$version/icu4c-$version-sources.tgz"
patches = [ "icu-78.2-fix-ssearch-fortify-overflow.patch" ]
[[manual_sources]]
file = "icu-78.2-fix-ssearch-fortify-overflow.patch"
sha256 = "b2:7de580c89edfdef1d191d9ffd796f5182ecd7b495a192f0280b0fddedb53fec7a9c7df28c4dbc86d1492db3fa6ff1fcd39c8363d7737710693e61bba2661d410"
+39
View File
@@ -0,0 +1,39 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--bindir=/usr/bin",
"--localstatedir=/var",
"--disable-logger",
"--disable-whois",
"--disable-rcp",
"--disable-rexec",
"--disable-rlogin",
"--disable-rsh",
"--disable-servers",
"--disable-hostname"
]
skip_tests = true
[dependencies]
runtime = [
"glibc",
"readline",
"ncurses",
"libcap",
"pam",
"libxcrypt"
]
[package]
description = "collection of common network programs"
homepage = "https://www.gnu.org/software/inetutils/"
license = "GPL-3.0-or-later"
name = "inetutils"
version = "2.7"
[[source]]
extract_dir = "$name-$version"
sha256 = "a156be1cde3c5c0ffefc262180d9369a60484087907aa554c62787d2f40ec086"
url = "https://mirrors.kernel.org/gnu/inetutils/inetutils-$version.tar.gz"
+18
View File
@@ -0,0 +1,18 @@
[build]
type = "autotools"
[dependencies]
runtime = ["perl-xml-parser"]
[package]
description = "The internationalization tool collection"
homepage = "https://launchpad.net/intltool"
license = "GPL-2.0-or-Later"
name = "intltool"
version = "0.51.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd"
url = "https://launchpad.net/intltool/trunk/$version/+download/intltool-$version.tar.gz"
post_extract = ['''sed -i 's:\\\${:\\\$\\{:' intltool-update.in''']
+11
View File
@@ -0,0 +1,11 @@
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,7 @@
#options for NETROM
ADDLIB+=netrom_ntop.o
-CC := gcc
+CC ?= gcc
HOSTCC ?= $(CC)
DEFINES += -D_GNU_SOURCE
# Turn on transparent support for LFS
+34
View File
@@ -0,0 +1,34 @@
[build]
type = "makefile"
[build.flags]
makefile_commands = ["make NETNS_RUN_DIR=/run/netns"]
makefile_install_commands = ["make SBINDIR=/usr/bin DESTDIR=$DESTDIR install"]
[dependencies]
runtime = [
"glibc",
"zlib-ng",
"libelf",
"libcap",
"coreutils",
"sh",
]
build = [ "linux-headers" ]
[package]
description = "programs for basic and advanced IPV4-based networking"
homepage = "https://git.kernel.org/pub/scm/network/iproute2/iproute2.git"
license = "GPL-2.0-or-Later"
name = "iproute2"
version = "6.19.0"
[[source]]
extract_dir = "$name-$version"
post_extract = [
"sed -i /ARPD/d Makefile",
"rm -fv man/man8/arpd.8",
]
sha256 = "9332213d35480b647086a70c302de8568de83455a98774d35de216c4ce191006"
url = "https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-$version.tar.xz"
patches = [ "clang.patch" ]
+250
View File
@@ -0,0 +1,250 @@
Submitted By: Matt Burgess
Date: 2008-12-06
Initial Package Version: 1.15
Upstream Status: Not submitted, possibly incomplete
Description: Makes Backspace and Delete keys consistent in all i386 keymaps.
Makes the Backspace key send character code 127, and Delete send a well known
escape sequence. Obsoletes the /etc/kbd/bs-sends-del file for i386.
Original patch for 1.12 by Alexander Patrakov.
Updated for 1.13 (drop ru.map, the change is upstream, and add ru_win.map,
ru-cp1251.map) by Ken Moffat <ken at linuxfromscratch dot org>.
Re-diffed against 1.15 by Matt Burgess <matthew at linuxfromscratch.org>.
diff -Naur kbd-1.15.orig/data/keymaps/i386/dvorak/dvorak-l.map kbd-1.15/data/keymaps/i386/dvorak/dvorak-l.map
--- kbd-1.15.orig/data/keymaps/i386/dvorak/dvorak-l.map 2008-06-20 12:36:01.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/dvorak/dvorak-l.map 2008-12-03 22:27:55.000000000 +0000
@@ -43,7 +43,7 @@
keycode 11 = three numbersign
keycode 12 = two at
keycode 13 = one exclam
- keycode 14 = BackSpace Delete
+ keycode 14 = Delete Delete
! --------------------------------------------------------------------------
! Row 3
! --------------------------------------------------------------------------
diff -Naur kbd-1.15.orig/data/keymaps/i386/dvorak/dvorak-r.map kbd-1.15/data/keymaps/i386/dvorak/dvorak-r.map
--- kbd-1.15.orig/data/keymaps/i386/dvorak/dvorak-r.map 2008-06-20 12:36:01.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/dvorak/dvorak-r.map 2008-12-03 22:28:13.000000000 +0000
@@ -43,7 +43,7 @@
keycode 11 = slash question
keycode 12 = bracketleft braceleft
keycode 13 = bracketright braceright
- keycode 14 = BackSpace Delete
+ keycode 14 = Delete Delete
! --------------------------------------------------------------------------
! Row 3
! --------------------------------------------------------------------------
diff -Naur kbd-1.15.orig/data/keymaps/i386/fgGIod/tr_f-latin5.map kbd-1.15/data/keymaps/i386/fgGIod/tr_f-latin5.map
--- kbd-1.15.orig/data/keymaps/i386/fgGIod/tr_f-latin5.map 2008-10-23 20:03:58.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/fgGIod/tr_f-latin5.map 2008-12-03 22:40:32.000000000 +0000
@@ -51,7 +51,7 @@
alt keycode 12 = Meta_minus
keycode 13 = minus underscore
alt keycode 13 = Meta_equal
-keycode 14 = BackSpace Delete
+keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab Meta_Tab
alt keycode 15 = Meta_Tab
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/lt.l4.map kbd-1.15/data/keymaps/i386/qwerty/lt.l4.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/lt.l4.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/lt.l4.map 2008-12-03 22:42:14.000000000 +0000
@@ -205,7 +205,7 @@
# edit this if you want the key above <Enter> to delete symbols above
# cursor, not before.
keycode 14 = \
- BackSpace BackSpace BackSpace BackSpace \
+ Delete Delete Delete Delete \
Delete Delete Delete Delete \
Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace \
Meta_Delete Meta_Delete Meta_Delete Meta_Delete
@@ -506,7 +506,7 @@
# Edit this if you want strict VT100 emulation.
string F111 = "\033[3$"
-keycode 111 = Delete F111 Delete F111 \
+keycode 111 = Remove F111 Remove F111 \
Remove Remove Remove Remove \
Meta_Delete Meta_Delete Meta_Delete Meta_Delete \
Boot Boot Boot Boot
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/lt.map kbd-1.15/data/keymaps/i386/qwerty/lt.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/lt.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/lt.map 2008-12-03 22:42:58.000000000 +0000
@@ -204,7 +204,7 @@
# edit this if you want the key above <Enter> to delete symbols above
# cursor, not before.
keycode 14 = \
- BackSpace BackSpace BackSpace BackSpace \
+ Delete Delete Delete Delete \
Delete Delete Delete Delete \
Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace \
Meta_Delete Meta_Delete Meta_Delete Meta_Delete
@@ -505,7 +505,7 @@
# Edit this if you want strict VT100 emulation.
string F111 = "\033[3$"
-keycode 111 = Delete F111 Delete F111 \
+keycode 111 = Remove F111 Remove F111 \
Remove Remove Remove Remove \
Meta_Delete Meta_Delete Meta_Delete Meta_Delete \
Boot Boot Boot Boot
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/no-latin1.map kbd-1.15/data/keymaps/i386/qwerty/no-latin1.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/no-latin1.map 2008-06-20 12:36:00.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/no-latin1.map 2008-12-03 22:44:25.000000000 +0000
@@ -3,7 +3,7 @@
# Send comments to Kjetil T. Homme <kjetilho@ifi.uio.no>
include "linux-with-alt-and-altgr"
plain keycode 83 = KP_Comma
- plain keycode 111 = Delete # "Remove" originally, weird...
+ plain keycode 111 = Remove
strings as usual
keycode 1 = Escape
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ru1.map kbd-1.15/data/keymaps/i386/qwerty/ru1.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ru1.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ru1.map 2008-12-03 22:45:32.000000000 +0000
@@ -143,8 +143,8 @@
# The keycode "0xFF" is too dangerous for many programs (including emacs).
# So let it be bracket instead of Hard Sign.
-# altgr keycode 27 = +0xDF
-# altgr shift keycode 27 = +0xFF
+altgr keycode 27 = +0xDF
+altgr shift keycode 27 = +0xFF
control keycode 27 = Control_bracketright
altgr control keycode 27 = Control_bracketright
alt keycode 27 = Meta_bracketright
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ru2.map kbd-1.15/data/keymaps/i386/qwerty/ru2.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ru2.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ru2.map 2008-12-03 22:46:15.000000000 +0000
@@ -46,7 +46,7 @@
alt keycode 12 = Meta_minus
keycode 13 = equal plus equal plus
alt keycode 13 = Meta_equal
- keycode 14 = BackSpace BackSpace BackSpace BackSpace
+ keycode 14 = Delete Delete Delete Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab Tab Tab Tab
alt keycode 15 = Meta_Tab
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ru-cp1251.map kbd-1.15/data/keymaps/i386/qwerty/ru-cp1251.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ru-cp1251.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ru-cp1251.map 2008-12-03 22:47:12.000000000 +0000
@@ -39,7 +39,7 @@
alt keycode 12 = Meta_minus
keycode 13 = equal plus equal plus
alt keycode 13 = Meta_equal
- keycode 14 = BackSpace
+ keycode 14 = Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab
alt keycode 15 = Meta_Tab
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ru-ms.map kbd-1.15/data/keymaps/i386/qwerty/ru-ms.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ru-ms.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ru-ms.map 2008-12-03 22:48:10.000000000 +0000
@@ -89,8 +89,8 @@
altgr alt keycode 13 = Meta_equal
shift alt keycode 13 = Meta_plus
altgr shift alt keycode 13 = Meta_plus
- keycode 14 = BackSpace BackSpace BackSpace BackSpace
-# keycode 14 = Delete Delete Delete Delete
+# keycode 14 = BackSpace BackSpace BackSpace BackSpace
+ keycode 14 = Delete Delete Delete Delete
alt keycode 14 = Meta_Delete
altgr alt keycode 14 = Meta_Delete
keycode 15 = Tab Tab Tab Tab
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ru_win.map kbd-1.15/data/keymaps/i386/qwerty/ru_win.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ru_win.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ru_win.map 2008-12-03 22:49:17.000000000 +0000
@@ -42,7 +42,7 @@
alt keycode 12 = Meta_minus
keycode 13 = equal plus equal plus
alt keycode 13 = Meta_equal
- keycode 14 = BackSpace BackSpace BackSpace BackSpace
+ keycode 14 = Delete Delete Delete Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab Tab Tab Tab
alt keycode 15 = Meta_Tab
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/se-ir209.map kbd-1.15/data/keymaps/i386/qwerty/se-ir209.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/se-ir209.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/se-ir209.map 2008-12-03 22:50:18.000000000 +0000
@@ -345,7 +345,7 @@
keycode 109 = Next Scroll_Forward
keycode 110 = Insert
- keycode 111 = Delete # "Remove" originally, weird...
+ keycode 111 = Remove
control alt keycode 111 = Boot
control altgr keycode 111 = Boot
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/se-lat6.map kbd-1.15/data/keymaps/i386/qwerty/se-lat6.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/se-lat6.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/se-lat6.map 2008-12-03 22:50:44.000000000 +0000
@@ -374,6 +374,6 @@
keycode 109 = Next Scroll_Forward
keycode 110 = Insert
- keycode 111 = Delete # "Remove" originally, weird...
+ keycode 111 = Remove
control alt keycode 111 = Boot
control altgr keycode 111 = Boot
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/tr_q-latin5.map kbd-1.15/data/keymaps/i386/qwerty/tr_q-latin5.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/tr_q-latin5.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/tr_q-latin5.map 2008-12-03 22:52:09.000000000 +0000
@@ -49,7 +49,7 @@
alt keycode 12 = Meta_minus
keycode 13 = minus underscore
alt keycode 13 = Meta_equal
-keycode 14 = BackSpace Delete
+keycode 14 = Delete Delete
alt keycode 14 = Meta_Delete
keycode 15 = Tab Meta_Tab
alt keycode 15 = Meta_Tab
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ua.map kbd-1.15/data/keymaps/i386/qwerty/ua.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ua.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ua.map 2008-12-03 22:52:52.000000000 +0000
@@ -249,7 +249,7 @@
shift ctrll ctrlr keycode 13 = plus
alt ctrll ctrlr keycode 13 = Meta_equal
shift alt ctrll ctrlr keycode 13 = Meta_plus
-keycode 14 = BackSpace Delete
+keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
ctrlr keycode 14 = BackSpace
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ua-utf.map kbd-1.15/data/keymaps/i386/qwerty/ua-utf.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ua-utf.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ua-utf.map 2008-12-03 22:53:36.000000000 +0000
@@ -250,7 +250,7 @@
shift ctrll ctrlr keycode 13 = plus
alt ctrll ctrlr keycode 13 = Meta_equal
shift alt ctrll ctrlr keycode 13 = Meta_plus
-keycode 14 = BackSpace Delete
+keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
ctrlr keycode 14 = BackSpace
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ua-utf-ws.map kbd-1.15/data/keymaps/i386/qwerty/ua-utf-ws.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ua-utf-ws.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ua-utf-ws.map 2008-12-03 22:54:06.000000000 +0000
@@ -260,7 +260,7 @@
shift ctrll ctrlr keycode 13 = plus
alt ctrll ctrlr keycode 13 = Meta_equal
shift alt ctrll ctrlr keycode 13 = Meta_plus
-keycode 14 = BackSpace Delete
+keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
ctrlr keycode 14 = BackSpace
diff -Naur kbd-1.15.orig/data/keymaps/i386/qwerty/ua-ws.map kbd-1.15/data/keymaps/i386/qwerty/ua-ws.map
--- kbd-1.15.orig/data/keymaps/i386/qwerty/ua-ws.map 2008-10-23 20:03:59.000000000 +0100
+++ kbd-1.15/data/keymaps/i386/qwerty/ua-ws.map 2008-12-03 22:54:23.000000000 +0000
@@ -260,7 +260,7 @@
shift ctrll ctrlr keycode 13 = plus
alt ctrll ctrlr keycode 13 = Meta_equal
shift alt ctrll ctrlr keycode 13 = Meta_plus
-keycode 14 = BackSpace Delete
+keycode 14 = Delete Delete
control keycode 14 = BackSpace
alt keycode 14 = Meta_Delete
ctrlr keycode 14 = BackSpace
+29
View File
@@ -0,0 +1,29 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-vlock"]
[dependencies]
runtime = [
"sh",
"glibc",
"coreutils",
]
[package]
description = "key-table files, console fonts, and keyboard utilities"
homepage = "http://www.kbd-project.org"
license = "GPL-2.0-or-later"
name = "kbd"
version = "2.9.0"
[[source]]
extract_dir = "$name-$version"
patches = ["kbd-2.9.0-backspace-1.patch"]
post_extract = [
"sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure",
"sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in",
]
sha256 = "fb3197f17a99eb44d22a3a1a71f755f9622dd963e66acfdea1a45120951b02ed"
url = "https://www.kernel.org/pub/linux/utils/kbd/kbd-$version.tar.xz"
+38
View File
@@ -0,0 +1,38 @@
[build]
type = "meson"
[build.flags]
build_dir = "build"
configure = [
"--buildtype=release",
"-Dmanpages=false",
]
[dependencies]
build = [
"meson",
"ninja",
]
runtime = [
"glibc",
"xz",
"zlib-ng",
"openssl",
"zstd"
]
[package]
description = "libraries and utilities for loading kernel modules"
homepage = "https://github.com/kmod-project/kmod"
license = "LGPL-2.1-or-Later"
name = "kmod"
version = "34.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "5a5d5073070cc7e0c7a7a3c6ec2a0e1780850c8b47b3e3892226b93ffcb9cb54"
url = "https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-$version.tar.xz"
post_extract = [
'''sed -i 's/\bstatic inline const char \*basename(/static inline const char *kmod_basename(/' shared/missing.h''',
'''sed -i 's/\bbasename(/kmod_basename(/g' shared/util.c tools/depmod.c libkmod/libkmod-config.c testsuite/testsuite.c'''
]
+24
View File
@@ -0,0 +1,24 @@
[build]
type = "autotools"
[build.flags]
configure = ["--sysconfdir=/etc"]
skip_tests = true
[dependencies]
runtime = [
"glibc",
"ncurses",
"pcre2",
]
[package]
description = "terminal based program for viewing text files"
homepage = "https://www.greenwoodsoftware.com/less/"
license = "GPL-3.0-or-later OR LicenseRef-Less"
name = "less"
version = "692"
[[source]]
extract_dir = "$name-$version"
sha256 = "61300f603798ecf1d7786570789f0ff3f5a1acf075a6fb9f756837d166e37d14"
url = "https://www.greenwoodsoftware.com/less/less-$version.tar.gz"
+54
View File
@@ -0,0 +1,54 @@
[build]
type = "cmake"
[alternatives]
provides = [ "unzip" ]
[build.flags]
configure = [ "-DBUILD_SHARED_LIBS=ON", "-G Ninja" ]
post_install = ["ln -sfv bsdunzip $DESTDIR/usr/bin/unzip || true"]
build_32 = true
configure-lib32 = ["-DBUILD_SHARED_LIBS=ON", "-DENABLE_TEST=OFF", "-DENABLE_TAR=OFF", "-DENABLE_CPIO=OFF", "-DENABLE_CAT=OFF", "-DENABLE_UNZIP=OFF", "-G Ninja"]
[dependencies]
runtime = [
"glibc",
"acl",
"bzip2",
"openssl",
"libxml215",
"lz4",
"xz",
"zlib-ng",
"zstd",
]
build = [ "cmake", "ninja" ]
[dependencies.lib32]
runtime = [
"lib32-glibc",
"lib32-acl",
"lib32-bzip2",
"lib32-openssl",
"lib32-libxml215",
"lib32-lz4",
"lib32-xz",
"lib32-zlib-ng",
"lib32-zstd",
]
build = [ "cmake", "ninja" ]
[package]
description = "Multi-format archive and compression library"
homepage = "http://www.libarchive.org/"
license = [
"BSD-3-Clause",
"BSD-2-Clause",
]
name = "libarchive"
version = "3.8.6"
[[source]]
extract_dir = "$name-$version"
sha256 = "sha256:8ac57c1f5e99550948d1fe755c806d26026e71827da228f36bef24527e372e6f"
url = "https://github.com/libarchive/libarchive/releases/download/v$version/libarchive-$version.tar.xz"
@@ -0,0 +1,29 @@
[build]
type = "makefile"
[build.flags]
makefile_commands = ["make PREFIX=/usr LIBDIR=/usr/lib"]
makefile_install_commands = ['make DESTDIR="$DESTDIR" PREFIX=/usr LIBDIR=/usr/lib install']
build_32 = true
no-remove-static = true
build_dir = "build"
[dependencies]
runtime = ["glibc"]
[dependencies.lib32]
runtime = ["lib32-glibc"]
[alternatives]
provides = [ "libatomic" ]
[package]
description = "replacement for GCC libatomic"
homepage = "https://github.com/chimera-linux/libatomic-chimera"
license = "Apache-2.0"
name = "libatomic-chimera"
version = "1.0.0"
[[source]]
extract_dir = "$name-$version"
url = "https://github.com/chimera-linux/libatomic-chimera.git"
@@ -0,0 +1,12 @@
diff '--color=auto' -ruN libcap-2.77.orig/Make.Rules libcap-2.77/Make.Rules
--- libcap-2.77.orig/Make.Rules 2025-10-26 13:29:03.000000000 -0500
+++ libcap-2.77/Make.Rules 2026-03-15 23:30:24.030620424 -0500
@@ -85,7 +85,7 @@
CPPFLAGS += -Dlinux $(DEFINES) $(LIBCAP_INCLUDES)
LDFLAGS ?= # -g
-BUILD_CC ?= $(CC)
+BUILD_CC ?= cc
BUILD_LD ?= $(BUILD_CC) -Wl,-x -shared
BUILD_COPTS ?= $(COPTS)
BUILD_CFLAGS ?= $(BUILD_COPTS)
+40
View File
@@ -0,0 +1,40 @@
[build]
type = "makefile"
[build.flags]
makefile_commands = [
"make prefix=/usr lib=lib CC=\"$CC\"",
]
build_32 = true
makefile_install_commands = [
"make DESTDIR=\"$DESTDIR\" prefix=/usr lib=lib install CC=\"$CC\"",
"mkdir -pv \"$DESTDIR/etc/security\"",
"install -v -m644 pam_cap/capability.conf \"$DESTDIR/etc/security\"",
]
keep = [ "etc/security/*" ]
[dependencies]
runtime = [ "glibc", "pam" ]
[dependencies.lib32]
runtime = [ "lib32-glibc", "lib32-pam" ]
[package]
description = "userspace interface to the POSIX 1003.1e capabilities available in Linux kernels"
homepage = "https://sites.google.com/site/fullycapable"
license = "BSD-3-Clause OR GPL-2.0-only"
name = "libcap"
version = "2.77"
revision = 3
[[source]]
extract_dir = "$name-$version"
post_extract = ["sed -i '/install -m.*STA/d' libcap/Makefile"]
sha256 = "5e339f5ab434bf5b7979f65437ca24942ddcd6e6a3e57347370cd791bc0ea51c"
url = "https://git.kernel.org/pub/scm/libs/libcap/libcap.git/snapshot/libcap-$version.tar.gz"
patches = [ "no-bash.patch", "libcap-2.77-host-build-cc.patch" ]
[[manual_sources]]
files = [ "postinstall.sh", "postupdate.sh", "libcap-2.77-host-build-cc.patch", "no-bash.patch" ]
+211
View File
@@ -0,0 +1,211 @@
From 364684d498f1679b12db03e1baa954b30e2640ad Mon Sep 17 00:00:00 2001
From: q66 <q66@chimera-linux.org>
Date: Sat, 30 Jul 2022 03:37:01 +0200
Subject: [PATCH] ditch bash were possible
---
contrib/sucap/su.c | 2 +-
distcheck.sh | 4 ++--
doc/capsh.1 | 2 +-
doc/mkmd.sh | 4 +++-
go/cgo-required.sh | 2 +-
gomods.sh | 6 +++---
progs/capsh.c | 2 +-
progs/mkcapshdoc.sh | 10 +++++-----
progs/quicktest.sh | 6 +++---
tests/uns_test.c | 4 ++--
10 files changed, 22 insertions(+), 20 deletions(-)
diff --git a/contrib/sucap/su.c b/contrib/sucap/su.c
index c8cc05f..41062fc 100644
--- a/contrib/sucap/su.c
+++ b/contrib/sucap/su.c
@@ -22,7 +22,7 @@
#endif /* ndef PAM_APP_NAME */
#define DEFAULT_HOME "/"
-#define DEFAULT_SHELL "/bin/bash"
+#define DEFAULT_SHELL "/bin/sh"
#define SLEEP_TO_KILL_CHILDREN 3 /* seconds to wait after SIGTERM before
SIGKILL */
#define SU_FAIL_DELAY 2000000 /* usec on authentication failure */
diff --git a/distcheck.sh b/distcheck.sh
index 3360e31..bfb8b9e 100755
--- a/distcheck.sh
+++ b/distcheck.sh
@@ -1,9 +1,9 @@
-#!/bin/bash
+#!/bin/sh
actual=$(wget -o/dev/null -O/dev/stdout https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/include/uapi/linux/capability.h | grep "#define.CAP_LAST_CAP"|awk '{print $3}')
working=$(grep "#define.CAP_LAST_CAP" libcap/include/uapi/linux/capability.h|awk '{print $3}')
-if [[ ${actual} = ${working} ]]; then
+if [ "${actual}" = "${working}" ]; then
echo "up to date with officially named caps"
exit 0
fi
diff --git a/doc/capsh.1 b/doc/capsh.1
index 4f3aaae..117fd76 100644
--- a/doc/capsh.1
+++ b/doc/capsh.1
@@ -26,7 +26,7 @@ Display prevailing capability state, 1e capabilities and IAB vector.
.TP
.BI \-\- " [args]"
Execute
-.B /bin/bash
+.B /bin/sh
with trailing arguments. Note, you can use
.B \-c 'command to execute'
for specific commands.
diff --git a/doc/mkmd.sh b/doc/mkmd.sh
index 39beac9..11b8dc6 100755
--- a/doc/mkmd.sh
+++ b/doc/mkmd.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# Handy script to rebuild the markdown version of the man pages.
# This uses pandoc if it is installed.
@@ -7,6 +7,8 @@
#
# cd md; for x in *.md ; do pandoc -s $x --metadata pagetitle="${x%.md}" -o ${x%.md}.html --lua-filter=../md2html.lua ; done
+exit 0
+
if [[ -z "$(which pandoc)" ]]; then
echo "pandoc not found - skipping conversion"
exit 0
diff --git a/go/cgo-required.sh b/go/cgo-required.sh
index f9afa52..00e7328 100755
--- a/go/cgo-required.sh
+++ b/go/cgo-required.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# Runtime check for whether or not syscall.AllThreadsSyscall is
# available to the working go runtime or not. If it isn't we always
diff --git a/gomods.sh b/gomods.sh
index 890cccd..392c9eb 100755
--- a/gomods.sh
+++ b/gomods.sh
@@ -1,11 +1,11 @@
-#!/bin/bash
+#!/bin/sh
version="${1}"
-if [[ -z "${version}" ]]; then
+if [ -z "${version}" ]; then
echo "usage: supply a cap/psx module version to target"
exit 1
fi
for x in $(find . -name 'go.mod'); do
- sed -i -e 's@kernel.org/\([^ ]*\) v.*$@kernel.org/\1 '"${version}@" "${x}"
+ sed -i '' -e 's@kernel.org/\([^ ]*\) v.*$@kernel.org/\1 '"${version}@" "${x}"
done
diff --git a/progs/capsh.c b/progs/capsh.c
index f753291..31909d1 100644
--- a/progs/capsh.c
+++ b/progs/capsh.c
@@ -33,7 +33,7 @@
#include <unistd.h>
#ifndef SHELL
-#define SHELL "/bin/bash"
+#define SHELL "/bin/sh"
#endif /* ndef SHELL */
#include "./capshdoc.h"
diff --git a/progs/mkcapshdoc.sh b/progs/mkcapshdoc.sh
index 8421685..47303b8 100755
--- a/progs/mkcapshdoc.sh
+++ b/progs/mkcapshdoc.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# This script generates some C code for inclusion in the capsh binary.
# The Makefile generally only generates the .c code and compares it
# with the checked in code in the progs directory.
@@ -13,12 +13,12 @@ cat<<EOF
*/
EOF
-let x=0
+x=0
while [ -f "../doc/values/${x}.txt" ]; do
name=$(grep -F ",${x}}" ../libcap/cap_names.list.h|sed -e 's/{"//' -e 's/",/ = /' -e 's/},//')
echo "static const char *explanation${x}[] = { /* ${name} */"
sed -e 's/"/\\"/g' -e 's/^/ "/' -e 's/$/",/' "../doc/values/${x}.txt"
- let x=1+${x}
+ x=$(($x+1))
echo " NULL"
echo "};"
done
@@ -26,10 +26,10 @@ done
cat<<EOF
const char **explanations[] = {
EOF
-let y=0
+y=0
while [ "${y}" -lt "${x}" ]; do
echo " explanation${y},"
- let y=1+${y}
+ y=$(($y+1))
done
cat<<EOF
};
diff --git a/progs/quicktest.sh b/progs/quicktest.sh
index 776b175..cf6838e 100755
--- a/progs/quicktest.sh
+++ b/progs/quicktest.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# Run through a series of tests to try out the various capability
# manipulations possible through exec.
@@ -157,7 +157,7 @@ pass_capsh --secbits=47 --inh=cap_setuid,cap_setgid --drop=cap_setuid \
# test that we do not support capabilities on setuid shell-scripts
/bin/cat > hack.sh <<EOF
-#!/bin/bash
+#!/bin/sh
/usr/bin/id
mypid=\$\$
caps=\$(./getpcaps \$mypid 2>&1 | /usr/bin/cut -d: -f2)
@@ -201,7 +201,7 @@ if [ $? -eq 0 ]; then
# test that shell scripts can inherit through ambient capabilities
/bin/cat > hack.sh <<EOF
-#!/bin/bash
+#!/bin/sh
/usr/bin/id
mypid=\$\$
caps=\$(./getpcaps \$mypid 2>&1 | /usr/bin/cut -d: -f2)
diff --git a/tests/uns_test.c b/tests/uns_test.c
index 3fe73af..603daf9 100644
--- a/tests/uns_test.c
+++ b/tests/uns_test.c
@@ -25,7 +25,7 @@ struct my_pipe {
static int child(void *data) {
struct my_pipe *fdsp = data;
- static const char * const args[] = {"bash", NULL};
+ static const char * const args[] = {"sh", NULL};
close(fdsp->to[1]);
close(fdsp->from[0]);
@@ -48,7 +48,7 @@ static int child(void *data) {
setsid();
- execv("/bin/bash", (const void *) args);
+ execv("/bin/sh", (const void *) args);
perror("execv failed");
exit(1);
}
--
2.37.1
+3
View File
@@ -0,0 +1,3 @@
cat >> etc/pam.d/system-auth << "EOF"
auth optional pam_cap.so
EOF
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh
set -eu
file=etc/pam.d/system-auth
line='auth optional pam_cap.so'
if [ -f "$file" ]; then
if ! grep -F -x -q "$line" "$file"; then
printf '%s\n' "$line" >> "$file"
fi
else
printf '%s\n' "$line" > "$file"
fi
+29
View File
@@ -0,0 +1,29 @@
[build]
type = "autotools"
[build.flags]
build_32 = true
[dependencies]
runtime = [
"glibc",
"ncurses",
]
[dependencies.lib32]
runtime = [
"lib32-glibc",
"lib32-ncurses",
]
[package]
description = "Command line editor library providing generic line editing, history, and tokenization functions"
homepage = "https://thrysoee.dk/editline/"
license = "BSD-3-Clause"
name = "libedit"
version = "20251016-3.1"
[[source]]
extract_dir = "$name-$version"
sha256 = "21362b00653bbfc1c71f71a7578da66b5b5203559d43134d2dd7719e313ce041"
url = "https://thrysoee.dk/editline/libedit-$version.tar.gz"
+34
View File
@@ -0,0 +1,34 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--disable-debuginfod",
"--enable-libdebuginfod=dummy",
]
make_dirs = [ "lib", "libelf" ]
make_install_dirs = [ "libelf" ]
post_install = [ "mkdir -p $DESTDIR/usr/lib/pkgconfig", "install -vm644 config/libelf.pc $DESTDIR/usr/lib/pkgconfig", "rm $DESTDIR/usr/lib/libelf.a" ]
# the tests fail with glibc 2.43
skip_tests = true
[dependencies]
runtime = [
"glibc",
"xz",
"bzip2",
"zlib-ng",
"zstd"
]
[package]
description = "Library to read, modify and create ELF files "
homepage = "https://sourceware.org/elfutils/"
license = "GPL-3.0-or-later AND ( GPL-2.0-or-later OR LGPL-3.0-or-later )"
name = "libelf"
version = "0.194"
[[source]]
extract_dir = "$name-$version"
sha256 = "09e2ff033d39baa8b388a2d7fbc5390bfde99ae3b7c67c7daaf7433fbcf0f01e"
url = "https://sourceware.org/elfutils/ftp/$version/elfutils-$version.tar.bz2"
+26
View File
@@ -0,0 +1,26 @@
[build]
type = "autotools"
[build.flags]
configure = [ "--disable-static" ]
build_32 = true
configure-lib32 = [ "--disable-static" ]
[dependencies]
runtime = ["glibc"]
test = ["dejagnu"]
[dependencies.lib32]
runtime = [ "lib32-glibc" ]
[package]
description = "portable, high level programming interface to various calling conventions"
homepage = "https://sourceware.org/libffi/"
license = "MIT"
name = "libffi"
version = "3.5.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc"
url = "https://github.com/libffi/libffi/releases/download/v$version/libffi-$version.tar.gz"
+39
View File
@@ -0,0 +1,39 @@
[build]
type = "cmake"
[build.flags]
build_dir = "build"
configure = [
"-DREGEX_BACKEND=pcre2",
"-DUSE_SSH=ON",
"-Wno-dev",
]
[dependencies]
build = [
"cmake",
"openssl",
"libssh2",
"pcre2",
"python",
]
runtime = [
"glibc",
"libunwind",
"zlib-ng",
"pcre2",
"openssl",
"libssh2"
]
[package]
description = "linkable library for Git"
homepage = "https://github.com/libgit2/libgit2"
license = "LicenseRef-GPL-2.0-only-with-linking-exception"
name = "libgit2"
version = "1.9.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "6f097c82fc06ece4f40539fb17e9d41baf1a5a2fc26b1b8562d21b89bc355fe6"
url = "https://github.com/libgit2/libgit2/archive/refs/tags/v$version.tar.gz"
+31
View File
@@ -0,0 +1,31 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-static"]
skip_tests = true
build_32 = true
[dependencies]
runtime = [
"glibc",
"libunistring",
]
[dependencies.lib32]
runtime = [
"lib32-glibc",
"lib32-libunistring",
]
[package]
description = "package designed for internationalized string handling based on standards from the Internet Engineering Task Force (IETF)'s IDN working group, designed for internationalized domain names"
homepage = "https://www.gnu.org/software/libidn/"
license = "GPL-3.0-or-Later"
name = "libidn2"
version = "2.3.8"
[[source]]
extract_dir = "$name-$version"
url = "https://mirrors.kernel.org/gnu/libidn/libidn2-$version.tar.gz"
sha256 = "f557911bf6171621e1f72ff35f5b1825bb35b52ed45325dcdee931e5d3c0787a"
+33
View File
@@ -0,0 +1,33 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--disable-static",
"--enable-lib-only",
"--docdir=/usr/share/doc/nghttp2",
]
build_32 = true
configure-lib32 = [
"--disable-static",
"--enable-lib-only",
]
[dependencies]
runtime = ["glibc"]
[dependencies.lib32]
runtime = ["lib32-glibc"]
[package]
description = "implementation of HTTP/2 and its header compression algorithm, HPACK"
homepage = "https://nghttp2.org/"
license = "MIT"
name = "libnghttp2"
version = "1.68.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "5511d3128850e01b5b26ec92bf39df15381c767a63441438b25ad6235def902c"
url = "https://github.com/nghttp2/nghttp2/releases/download/v$version/nghttp2-$version.tar.xz"
+24
View File
@@ -0,0 +1,24 @@
[build]
type = "autotools"
[build.flags]
build_32 = true
[dependencies]
runtime = ["glibc"]
[dependencies.lib32]
runtime = [ "lib32-glibc", "lib32-libcxx" ]
[package]
description = "HTTP/3 library written in C"
homepage = "https://github.com/ngtcp2/nghttp3"
license = "MIT"
name = "libnghttp3"
version = "1.15.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "6da0cd06b428d32a54c58137838505d9dc0371a900bb8070a46b29e1ceaf2e0f"
url = "https://github.com/ngtcp2/nghttp3/releases/download/v$version/nghttp3-$version.tar.xz"
post_extract = [ "autoreconf -i" ]
+17
View File
@@ -0,0 +1,17 @@
[build]
type = "autotools"
[dependencies]
runtime = ["glibc"]
[package]
description = "library for manipulating pipelines of subprocesses in a flexible and convenient way"
homepage = "https://libpipeline.nongnu.org/"
license = "GPL-3.0-or-Later"
name = "libpipeline"
version = "1.5.8"
[[source]]
extract_dir = "$name-$version"
sha256 = "1b1203ca152ccd63983c3f2112f7fe6fa5afd453218ede5153d1b31e11bb8405"
url = "https://download.savannah.nongnu.org/releases/libpipeline/libpipeline-$version.tar.gz"
+36
View File
@@ -0,0 +1,36 @@
[build]
type = "meson"
[build.flags]
build_dir = "build"
configure = [
"-Dc_args=-fvisibility=default",
"-Dc_link_args=-fvisibility=default",
]
build_32 = true
[dependencies]
build = [ "python", "meson" ]
runtime = [
"libidn2",
"libunistring",
]
[dependencies.lib32]
build = [ "python", "meson" ]
runtime = [
"lib32-libidn2",
"lib32-libunistring",
]
[package]
description = "library for accessing and resolving information from the Public Suffix List"
homepage = "https://github.com/rockdaboot/libpsl/"
license = "MIT"
name = "libpsl"
version = "0.21.5"
[[source]]
extract_dir = "$name-$version"
sha256 = "1dcc9ceae8b128f3c0b3f654decd0e1e891afc6ff81098f227ef260449dae208"
url = "https://github.com/rockdaboot/libpsl/releases/download/$version/libpsl-$version.tar.gz"
+25
View File
@@ -0,0 +1,25 @@
[build]
type = "autotools"
[build.flags]
configure = [ "--disable-static" ]
build_32 = true
configure-lib32 = [ "--disable-static" ]
[dependencies]
runtime = ["glibc"]
[dependencies.lib32]
runtime = [ "lib32-glibc" ]
[package]
description = "modern, portable, easy to use crypto library"
homepage = "https://github.com/jedisct1/libsodium"
license = "ISC"
name = "libsodium"
version = "1.0.21"
[[source]]
extract_dir = "$name-$version"
sha256 = "sha256:9e4285c7a419e82dedb0be63a72eea357d6943bc3e28e6735bf600dd4883feaf"
url = "https://github.com/jedisct1/libsodium/releases/download/$version-RELEASE/libsodium-$version.tar.gz"
+31
View File
@@ -0,0 +1,31 @@
[build]
type = "autotools"
[build.flags]
configure = [ "--disable-docker-tests", "--with-crypto=openssl" ]
build_32 = true
configure-lib32 = [ "--disable-docker-tests", "--with-crypto=openssl" ]
[dependencies]
runtime = [
"openssl",
"zlib-ng",
]
[dependencies.lib32]
runtime = [
"lib32-openssl",
"lib32-zlib-ng",
]
[package]
description = "library implementing the SSH2 protocol as defined by Internet Drafts"
homepage = "https://www.libssh2.org/"
license = "BSD-3-Clause"
name = "libssh2"
version = "1.11.1"
[[source]]
extract_dir = "$name-$version"
sha256 = "9954cb54c4f548198a7cbebad248bdc87dd64bd26185708a294b2b50771e3769"
url = "https://libssh2.org/download/libssh2-$version.tar.xz"
+20
View File
@@ -0,0 +1,20 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-static"]
[dependencies]
runtime = ["glibc"]
[package]
description = "highly portable C library that encodes and decodes DER/BER data following an ASN.1 schema"
homepage = "https://www.gnu.org/software/libtasn1/"
license = "LGPL-2.1-or-Later"
name = "libtasn1"
version = "4.21.0"
[[source]]
extract_dir = "$name-$version"
sha256 = "1d8a444a223cc5464240777346e125de51d8e6abf0b8bac742ac84609167dc87"
url = "https://mirrors.kernel.org/gnu/libtasn1/libtasn1-$version.tar.gz"
+26
View File
@@ -0,0 +1,26 @@
[build]
type = "autotools"
[dependencies]
runtime = [
"glibc",
"sh",
"coreutils",
]
test = ["findutils"]
[package]
description = "GNU generic library support script"
homepage = "https://www.gnu.org/software/libtool/"
license = "GPL-2.0-or-Later"
name = "libtool"
version = "2.5.4"
[[source]]
extract_dir = "$name-$version"
sha256 = "f81f5860666b0bc7d84baddefa60d1cb9fa6fceb2398cc3baca6afaa60266675"
url = "https://mirrors.kernel.org/gnu/libtool/libtool-$version.tar.xz"
[build.flags]
post_install = [ "rm -fv $DESTDIR/usr/lib/libltdl.a" ]
skip_tests = true
+26
View File
@@ -0,0 +1,26 @@
[build]
type = "autotools"
[build.flags]
configure = ["--disable-static"]
skip_tests = true
build_32 = true
[dependencies]
runtime = ["glibc"]
[dependencies.lib32]
runtime = ["lib32-glibc"]
[package]
description = "library that provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard"
homepage = "https://www.gnu.org/software/libunistring/"
license = "GPL-2.0-or-later OR LGPL-3.0-or-later"
name = "libunistring"
version = "1.4.1"
[[source]]
extract_dir = "$name-$version"
sha256 = "67d88430892527861903788868c77802a217b0959990f7449f2976126a307763"
url = "https://mirrors.kernel.org/gnu/libunistring/libunistring-1.4.1.tar.xz"
post_extract = [ '''sed -r '/_GL_EXTERN_C/s/w?memchr|bsearch/(&)/' -i $(find -name \*.in.h)''' ]
+35
View File
@@ -0,0 +1,35 @@
[build]
type = "autotools"
[build.flags]
configure = [
"--enable-hashes=strong,glibc",
"--enable-obsolete-api=no",
"--disable-static",
"--disable-failure-tokens",
"--disable-symvers"
]
build_32 = true
[dependencies]
runtime = ["glibc"]
[dependencies.lib32]
runtime = ["lib32-glibc"]
[package]
description = "modern library for one-way hashing of passwords"
homepage = "https://github.com/besser82/libxcrypt"
license = "LGPL-2.1-or-Later"
name = "libxcrypt"
version = "4.5.2"
[[source]]
extract_dir = "$name-$version"
sha256 = "71513a31c01a428bccd5367a32fd95f115d6dac50fb5b60c779d5c7942aec071"
url = "https://github.com/besser82/libxcrypt/releases/download/v$version/libxcrypt-$version.tar.xz"
post_extract = [
"printf '#ifdef __clang__\\n#pragma clang diagnostic ignored \"-Wgnu-statement-expression-from-macro-expansion\"\\n#endif\\n' > /tmp/_pragma.h",
"cat /tmp/_pragma.h lib/alg-yescrypt-opt.c > /tmp/_tmp.c && mv /tmp/_tmp.c lib/alg-yescrypt-opt.c",
"sed -i '/strchr/s/const//' lib/crypt-sm3-yescrypt.c lib/crypt-gost-yescrypt.c"
]
@@ -0,0 +1,25 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Wed, 4 Mar 2026 19:08:16 +0100
Subject: [PATCH] catalog: Free xmlCatalogResolveCache on cleanup
Otherwise the `tstLastError.py` test will complain about a memory leak.
Fixes: b706c5c5b7ce11d002a5b77ff938aa3693931c12 (Add xmlCatalogResolveCache)
Fixes: https://gitlab.gnome.org/GNOME/libxml2/-/issues/1069
---
catalog.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/catalog.c b/catalog.c
index 8a5ca77a6ae1..bfaf099f47a4 100644
--- a/catalog.c
+++ b/catalog.c
@@ -3338,6 +3338,7 @@ xmlCatalogCleanup(void) {
if (xmlDebugCatalogs)
xmlCatalogPrintDebug(
"Catalogs cleanup\n");
+ xmlResetCatalogResolveCache();
if (xmlCatalogXMLFiles != NULL)
xmlHashFree(xmlCatalogXMLFiles, xmlFreeCatalogHashEntryList);
xmlCatalogXMLFiles = NULL;
+62
View File
@@ -0,0 +1,62 @@
[build]
type = "meson"
[build.flags]
build_dir = "build"
configure = [
"-Dhistory=enabled",
"-Dicu=enabled",
"-Dc_args=-D_GNU_SOURCE",
]
post_install = [
'test -f $DESTDIR/usr/bin/xml2-config && sed "s/--static/--shared/" -i $DESTDIR/usr/bin/xml2-config || true',
'test -f libxml.m4 && install -Dm644 libxml.m4 -t $DESTDIR/usr/share/aclocal || true',
]
build_32 = true
[dependencies]
build = [
"python",
"meson",
"ninja",
]
runtime = [
"sh",
"glibc",
"icu78",
"readline",
"zlib-ng",
]
optional = [ "python" ]
[dependencies.lib32]
build = [
"python",
"meson",
"ninja",
]
runtime = [
"lib32-glibc",
"lib32-icu78",
"lib32-readline",
"lib32-zlib-ng",
]
[package]
description = "libraries and utilities used for parsing XML files"
homepage = "https://gitlab.gnome.org/GNOME/libxml2"
license = "MIT"
name = "libxml215"
version = "2.15.2"
revision = 1
[[source]]
extract_dir = "$name-$version"
post_extract = ["""sed -i "/'git'/,+3d" meson.build"""]
sha256 = "b2:e8adec751b6c8c8fd8358bee0c33159813601f6306b318314ffbf85324fa3ebeee2e838608a7fe365ffe4b82c4700f328fc27ae9a75cd7ed67cf256067542c2e"
url = "https://download.gnome.org/sources/libxml2/2.15/libxml2-$version.tar.xz"
patches = [ "0001-catalog-Free-xmlCatalogResolveCache-on-cleanup.patch" ]
[[manual_sources]]
files = [ "0001-catalog-Free-xmlCatalogResolveCache-on-cleanup.patch" ]
sha256 = "skip"
+29
View File
@@ -0,0 +1,29 @@
[build]
type = "autotools"
[dependencies]
build = [
"nasm",
"mtools",
"llvm",
"clang",
"git"
]
runtime = ["glibc"]
[build.flags]
no_flags = true
configure = [ "--enable-all" ]
[package]
description = "advanced, portable, multiprotocol bootloader"
homepage = "https://limine-bootloader.org/"
license = "BSD-2-Clause"
name = "limine"
version = "10.8.3"
[[source]]
extract_dir = "$name-$version"
url = "https://codeberg.org/Limine/limine.git#v$version"
sha256 = "skip"
post_extract = [ "./bootstrap" ]
+255
View File
@@ -0,0 +1,255 @@
#!/bin/sh
set -eu
other_destdir() {
printf '%s\n' "${DEPOT_SUBDESTDIR_LINUX_FIRMWARE_OTHER:?build.sh: DEPOT_SUBDESTDIR_LINUX_FIRMWARE_OTHER is not set}"
}
require_destdir() {
printf '%s\n' "${DESTDIR:?build.sh: DESTDIR is not set}"
}
move_from_other() {
pkg=$1
shift
srcroot=$(other_destdir)
destroot=$(require_destdir)
moved=0
for pattern in "$@"; do
set -- "$srcroot"/$pattern
for src in "$@"; do
[ -e "$src" ] || [ -L "$src" ] || continue
rel=${src#$srcroot/}
dst=$destroot/$rel
mkdir -p "$(dirname "$dst")"
rm -rf "$dst"
mv "$src" "$dst"
moved=1
done
done
[ "$moved" -eq 1 ] || {
echo "build.sh: no matches moved from linux-firmware-other for $pkg" >&2
exit 1
}
}
dedup_current_firmware() {
destdir=$(require_destdir)
[ -d "$destdir/usr/lib/firmware" ] || return 0
make -C . \
DESTDIR="$destdir" \
FIRMWAREDIR=/usr/lib/firmware \
dedup
}
build_amd_ucode_img() {
mkdir -p kernel/x86/microcode
rm -f kernel/x86/microcode/AuthenticAMD.bin amd-ucode.img
find amd-ucode -maxdepth 1 -type f -name 'microcode_amd*.bin' | LC_ALL=C sort |
while IFS= read -r blob; do
cat "$blob" >> kernel/x86/microcode/AuthenticAMD.bin
done
[ -s kernel/x86/microcode/AuthenticAMD.bin ] || {
echo "build.sh: failed to assemble AuthenticAMD.bin" >&2
exit 1
}
printf '%s\0' 'kernel/x86/microcode/AuthenticAMD.bin' |
cpio --null -o -H newc --quiet > amd-ucode.img
}
install_whence_payload() {
destdir=$(require_destdir)
mkdir -p "$destdir/usr/share/licenses/linux-firmware"
for file in WHENCE LICENSE* LICENCE* COPYING*; do
[ -e "$file" ] || continue
install -m644 "$file" "$destdir/usr/share/licenses/linux-firmware/${file##*/}"
done
}
depot_build() {
build_amd_ucode_img
}
depot_install_linux_firmware_whence() {
install_whence_payload
}
depot_install_linux_firmware_other() {
destdir=$(require_destdir)
env ZSTD_CLEVEL=19 MAKEFLAGS= \
make -C . \
DESTDIR="$destdir" \
FIRMWAREDIR=/usr/lib/firmware \
install-zst
}
depot_install_amd_ucode() {
destdir=$(require_destdir)
move_from_other amd-ucode \
'usr/lib/firmware/amd-ucode' \
'usr/lib/firmware/amd-ucode/*'
dedup_current_firmware
install -Dm644 amd-ucode.img "$destdir/boot/amd-ucode.img"
}
depot_install_linux_firmware_amdgpu() {
move_from_other linux-firmware-amdgpu \
'usr/lib/firmware/amdgpu' \
'usr/lib/firmware/amdgpu/*'
dedup_current_firmware
}
depot_install_linux_firmware_atheros() {
move_from_other linux-firmware-atheros \
'usr/lib/firmware/ar[0-9]*' \
'usr/lib/firmware/ath*' \
'usr/lib/firmware/carl9170*' \
'usr/lib/firmware/htc_*' \
'usr/lib/firmware/qca' \
'usr/lib/firmware/qca/*' \
'usr/lib/firmware/wil6210*'
dedup_current_firmware
}
depot_install_linux_firmware_broadcom() {
move_from_other linux-firmware-broadcom \
'usr/lib/firmware/bnx2*' \
'usr/lib/firmware/brcm' \
'usr/lib/firmware/brcm/*' \
'usr/lib/firmware/cypress' \
'usr/lib/firmware/cypress/*' \
'usr/lib/firmware/tigon'
dedup_current_firmware
}
depot_install_linux_firmware_cirrus() {
move_from_other linux-firmware-cirrus \
'usr/lib/firmware/cirrus' \
'usr/lib/firmware/cirrus/*' \
'usr/lib/firmware/cs42l43*'
dedup_current_firmware
}
depot_install_linux_firmware_intel() {
move_from_other linux-firmware-intel \
'usr/lib/firmware/e100' \
'usr/lib/firmware/e100/*' \
'usr/lib/firmware/hfi1_*' \
'usr/lib/firmware/i915' \
'usr/lib/firmware/i915/*' \
'usr/lib/firmware/intel' \
'usr/lib/firmware/intel/*' \
'usr/lib/firmware/isci' \
'usr/lib/firmware/isci/*' \
'usr/lib/firmware/iwlwifi*' \
'usr/lib/firmware/ixp4xx' \
'usr/lib/firmware/ixp4xx/*' \
'usr/lib/firmware/qat_*' \
'usr/lib/firmware/xe' \
'usr/lib/firmware/xe/*'
dedup_current_firmware
}
depot_install_linux_firmware_liquidio() {
move_from_other linux-firmware-liquidio \
'usr/lib/firmware/liquidio' \
'usr/lib/firmware/liquidio/*'
dedup_current_firmware
}
depot_install_linux_firmware_marvell() {
move_from_other linux-firmware-marvell \
'usr/lib/firmware/libertas' \
'usr/lib/firmware/libertas/*' \
'usr/lib/firmware/mwl8k' \
'usr/lib/firmware/mwl8k/*' \
'usr/lib/firmware/mwlwifi' \
'usr/lib/firmware/mwlwifi/*' \
'usr/lib/firmware/mrvl' \
'usr/lib/firmware/mrvl/*'
dedup_current_firmware
}
depot_install_linux_firmware_mediatek() {
move_from_other linux-firmware-mediatek \
'usr/lib/firmware/mediatek' \
'usr/lib/firmware/mediatek/*' \
'usr/lib/firmware/mt7*' \
'usr/lib/firmware/vpu_*' \
'usr/lib/firmware/rt[237]*'
dedup_current_firmware
}
depot_install_linux_firmware_mellanox() {
move_from_other linux-firmware-mellanox \
'usr/lib/firmware/mellanox' \
'usr/lib/firmware/mellanox/*'
dedup_current_firmware
}
depot_install_linux_firmware_nfp() {
move_from_other linux-firmware-nfp \
'usr/lib/firmware/netronome' \
'usr/lib/firmware/netronome/*'
dedup_current_firmware
}
depot_install_linux_firmware_nvidia() {
move_from_other linux-firmware-nvidia \
'usr/lib/firmware/nvidia' \
'usr/lib/firmware/nvidia/*'
dedup_current_firmware
}
depot_install_linux_firmware_qcom() {
move_from_other linux-firmware-qcom \
'usr/lib/firmware/qcom' \
'usr/lib/firmware/qcom/*' \
'usr/lib/firmware/a300_*'
dedup_current_firmware
}
depot_install_linux_firmware_qlogic() {
move_from_other linux-firmware-qlogic \
'usr/lib/firmware/qlogic' \
'usr/lib/firmware/qlogic/*' \
'usr/lib/firmware/qed' \
'usr/lib/firmware/qed/*' \
'usr/lib/firmware/ql2???_*' \
'usr/lib/firmware/cbfw-*' \
'usr/lib/firmware/ctfw-*' \
'usr/lib/firmware/ct2fw-*'
dedup_current_firmware
}
depot_install_linux_firmware_radeon() {
move_from_other linux-firmware-radeon \
'usr/lib/firmware/radeon' \
'usr/lib/firmware/radeon/*'
dedup_current_firmware
}
depot_install_linux_firmware_realtek() {
move_from_other linux-firmware-realtek \
'usr/lib/firmware/realtek' \
'usr/lib/firmware/realtek/*' \
'usr/lib/firmware/rtlwifi' \
'usr/lib/firmware/rtlwifi/*' \
'usr/lib/firmware/rtw8*' \
'usr/lib/firmware/rtl_*'
dedup_current_firmware
}
@@ -0,0 +1,18 @@
diff --git a/copy-firmware.sh b/copy-firmware.sh
index 6a32127..7c1821e 100755
--- a/copy-firmware.sh
+++ b/copy-firmware.sh
@@ -164,9 +164,10 @@ if [ "$num_jobs" -gt 1 ]; then
parallel -j"$num_jobs" -a "$parallel_args_file"
fi
-# Verify no broken symlinks
-if test "$(find "$destdir" -xtype l | wc -l)" -ne 0 ; then
- err "Broken symlinks found:\n$(find "$destdir" -xtype l)"
+# Verify no broken symlinks without relying on non-portable find -xtype.
+broken_links=$(find "$destdir" -type l ! -exec test -e {} \; -print)
+if test -n "$broken_links"; then
+ err "Broken symlinks found:\n$broken_links"
fi
exit 0
+245
View File
@@ -0,0 +1,245 @@
[package]
name = "linux-firmware"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Default set"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "CC0-1.0"
[[packages]]
name = "linux-firmware-whence"
version = "20260309"
revision = 1
description = "Firmware files for Linux - WHENCE file (vendor licenses)"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-WHENCE"
[[packages]]
name = "linux-firmware-other"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Unsorted firmware for various devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-WHENCE"
[[packages]]
name = "amd-ucode"
version = "20260309"
revision = 1
description = "Microcode update image for AMD CPUs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-amd-ucode"
[[packages]]
name = "linux-firmware-amdgpu"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for AMD Radeon GPUs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["LicenseRef-amdgpu", "MIT"]
[[packages]]
name = "linux-firmware-atheros"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Qualcomm Atheros WiFi and Bluetooth adapters"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["GPL-2.0-only", "LicenseRef-atheros"]
[[packages]]
name = "linux-firmware-broadcom"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Broadcom and Cypress network adapters"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-broadcom"
[[packages]]
name = "linux-firmware-cirrus"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Cirrus Logic audio devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-cirrus"
[[packages]]
name = "linux-firmware-intel"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Intel devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["Apache-2.0", "GPL-2.0-only", "LicenseRef-intel"]
[[packages]]
name = "linux-firmware-liquidio"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Cavium LiquidIO server adapters"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-liquidio"
[[packages]]
name = "linux-firmware-marvell"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Marvell devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-marvell"
[[packages]]
name = "linux-firmware-mediatek"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for MediaTek and Ralink devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-mediatek"
[[packages]]
name = "linux-firmware-mellanox"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Mellanox Spectrum switches"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-WHENCE"
[[packages]]
name = "linux-firmware-nfp"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Netronome Flow Processors"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-netronome"
[[packages]]
name = "linux-firmware-nvidia"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-nvidia"
[[packages]]
name = "linux-firmware-qcom"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Qualcomm SoCs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = ["BSD-3-Clause", "LicenseRef-qcom"]
[[packages]]
name = "linux-firmware-qlogic"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for QLogic devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-qlogic"
[[packages]]
name = "linux-firmware-radeon"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for ATI Radeon GPUs"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-radeon"
[[packages]]
name = "linux-firmware-realtek"
version = "20260309"
revision = 1
description = "Firmware files for Linux - Firmware for Realtek devices"
homepage = "https://gitlab.com/kernel-firmware/linux-firmware"
license = "LicenseRef-realtek"
[[manual_sources]]
file = "build.sh"
[[source]]
url = "https://gitlab.com/kernel-firmware/linux-firmware.git#$version"
sha256 = "skip"
extract_dir = "$name"
patches = ["linux-firmware-20260309-portable-find-symlink-check.patch"]
[build]
type = "custom"
[build.flags]
no_strip = true
[dependencies]
build = [
"cpio",
"git",
"parallel",
"python",
"rdfind",
]
runtime = [
"linux-firmware-amdgpu",
"linux-firmware-atheros",
"linux-firmware-broadcom",
"linux-firmware-cirrus",
"linux-firmware-intel",
"linux-firmware-mediatek",
"linux-firmware-nvidia",
"linux-firmware-other",
"linux-firmware-radeon",
"linux-firmware-realtek",
]
optional = [
"linux-firmware-liquidio",
"linux-firmware-marvell",
"linux-firmware-mellanox",
"linux-firmware-nfp",
"linux-firmware-qcom",
"linux-firmware-qlogic",
]
[package_dependencies.linux-firmware-amdgpu]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-atheros]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-broadcom]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-cirrus]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-intel]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-liquidio]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-marvell]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-mediatek]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-mellanox]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-nfp]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-nvidia]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-qcom]
runtime = ["linux-firmware-atheros", "linux-firmware-whence"]
[package_dependencies.linux-firmware-qlogic]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-radeon]
runtime = ["linux-firmware-whence"]
[package_dependencies.linux-firmware-realtek]
runtime = ["linux-firmware-whence"]
[package_alternatives.linux-firmware-broadcom]
provides = ["linux-firmware-bnx2x"]
conflicts = ["linux-firmware-bnx2x"]
replaces = ["linux-firmware-bnx2x<=20250613.12fe085f-4"]
+31
View File
@@ -0,0 +1,31 @@
[package]
name = "linux-headers"
version = "6.19.3"
revision = 1
description = "Kernel headers sanitized for use in userspace"
homepage = "https://www.kernel.org"
license = "GPL-2.0-only"
[[source]]
url = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$version.tar.xz"
sha256 = "0e474968adfcbee32916fd01a89d8ccfd1168d8d32569e76a5c664c793198ebe"
extract_dir = "$name-$version"
patches = []
[build]
type = "makefile"
[build.flags]
makefile_commands = [
"LLVM=1 make mrproper",
"LLVM=1 make ARCH=$CARCH headers",
]
makefile_install_commands = [
"find usr/include -type f ! -name '*.h' -delete",
"mkdir -p \"$DESTDIR/usr\"",
"cp -rv usr/include \"$DESTDIR/usr\"",
]
[dependencies]
runtime = [ "filesystem" ]
+11
View File
@@ -0,0 +1,11 @@
cp ../config.$CARCH .config
LLVM=1 make olddefconfig
LLVM=1 make -s kernelrelease > version
LLVM=1 make all
echo "Installing Kernel..."
install -Dm644 "$(make -s image_name)" "$DESTDIR/boot/vmlinuz-linux-vertex"
echo "Installing modules..."
ZSTD_CLEVEL=22 LLVM=1 make INSTALL_MOD_PATH="$DESTDIR/usr" INSTALL_MOD_STRIP=1 DEPMOD=/doesnt/exist modules_install
find "$DESTDIR/usr/lib/modules" -mindepth 2 -maxdepth 2 \( -name build -o -name source \) -exec rm -rf -- {} +
kver="$(LLVM=1 make -s kernelrelease)"
ln -sfn "../../../../boot/vmlinuz-linux-vertex" "$DESTDIR/usr/lib/modules/$kver/vmlinuz"
File diff suppressed because it is too large Load Diff
+46
View File
@@ -0,0 +1,46 @@
[build]
type = "custom"
[build.flags]
no_strip = true
[dependencies]
build = [
"bc",
"cpio",
"gettext",
"perl",
"python",
"libelf",
"rust",
"rust-bindgen",
"tar",
"xz",
"zstd",
"openssl",
]
optional = [
"linux-firmware",
"linux-headers",
]
runtime = [
"coreutils",
"kmod",
"initramfs",
]
[package]
description = "The Linux Kernel + Modules"
homepage = "https://www.kernel.org"
license = "GPL-2.0-Only"
name = "linux"
version = "6.19.5"
revision = 3
[[source]]
extract_dir = "$name-$version"
sha256 = "95ae05c8c709e353c0e8506c072efc5598d85b8b7b564a1ebac7ee8345042ffa"
url = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$version.tar.xz"
[[manual_sources]]
files = [ "build.sh", "config.$CARCH" ]
+51
View File
@@ -0,0 +1,51 @@
[build]
type = "cmake"
[dependencies]
runtime = ["glibc"]
[package]
description = "The LLVM Project, LLVM-Libgcc, Clang, and Libc++"
homepage = "https://llvm.org/"
license = "Apache-2.0"
name = "llvm"
version = "21.1.8"
[[source]]
extract_dir = "$name-$version"
sha256 = "sha256:4633a23617fa31a3ea51242586ea7fb1da7140e426bd62fc164261fe036aa142"
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-project-$version.src.tar.xz"
[build.flags]
source_subdir = "llvm"
configure = [
"-DCMAKE_C_COMPILER=$CC",
"-DCMAKE_CXX_COMPILER=$CXX",
"-DCMAKE_INSTALL_PREFIX=/usr",
"-DLLVM_ENABLE_PROJECTS=clang;lld",
"-DLLVM_ENABLE_LIBCXX=ON",
"-DLLVM_ENABLE_ZSTD=OFF",
"-DLLVM_USE_LINKER=lld",
"-DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-sfg-linux-gnu",
"-DLLVM_TARGETS_TO_BUILD=X86",
"-DCMAKE_BUILD_TYPE=Release",
"-DCLANG_DEFAULT_RTLIB=compiler-rt",
"-DCLANG_DEFAULT_CXX_STDLIB=libc++",
"-DCLANG_DEFAULT_UNWINDLIB=libunwind",
"-DLLVM_INSTALL_BINUTILS_SYMLINKS=ON",
"-DCMAKE_SYSROOT=$DEPOT_ROOTFS",
"-DCMAKE_FIND_ROOT_PATH=$DEPOT_ROOTFS",
"-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY",
"-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY",
"-DCMAKE_CXX_FLAGS='--stdlib=libc++'",
"-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY",
"-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER",
"-DCMAKE_INSTALL_RPATH=/usr/lib;/lib",
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF",
"-DLLVM_TABLEGEN=/mnt/nvme/tools/bin/llvm-tblgen",
"-DCLANG_TABLEGEN=/mnt/nvme/tools/bin/clang-tblgen",
"-DLLVM_CONFIG_PATH=/mnt/nvme/tools/bin/llvm-config",
"-DLLVM_NATIVE_TOOL_DIR=/mnt/nvme/tools/bin",
"-DPKG_CONFIG_EXECUTABLE=/mnt/nvme/tools/bin/pkg-config",
"-G Ninja"
]
@@ -0,0 +1,37 @@
From 9779b878973501138a7ac60671ea791dde0ea029 Mon Sep 17 00:00:00 2001
From: q66 <q66@chimera-linux.org>
Date: Sat, 4 Nov 2023 08:44:01 +0100
Subject: [PATCH 01/29] llvm: always set a larger stack size explicitly
---
llvm/lib/Support/Threading.cpp | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp
index 693de0e64..dd3e76fb8 100644
--- a/llvm/lib/Support/Threading.cpp
+++ b/llvm/lib/Support/Threading.cpp
@@ -75,21 +75,7 @@ unsigned llvm::ThreadPoolStrategy::compute_thread_count() const {
// keyword.
#include "llvm/Support/thread.h"
-#if defined(__APPLE__)
- // Darwin's default stack size for threads except the main one is only 512KB,
- // which is not enough for some/many normal LLVM compilations. This implements
- // the same interface as std::thread but requests the same stack size as the
- // main thread (8MB) before creation.
const std::optional<unsigned> llvm::thread::DefaultStackSize = 8 * 1024 * 1024;
-#elif defined(_AIX)
- // On AIX, the default pthread stack size limit is ~192k for 64-bit programs.
- // This limit is easily reached when doing link-time thinLTO. AIX library
- // developers have used 4MB, so we'll do the same.
-const std::optional<unsigned> llvm::thread::DefaultStackSize = 4 * 1024 * 1024;
-#else
-const std::optional<unsigned> llvm::thread::DefaultStackSize;
-#endif
-
#endif
--
2.51.1
+230
View File
@@ -0,0 +1,230 @@
#!/bin/sh
set -eu
jobs() {
if command -v nproc >/dev/null 2>&1; then
nproc
else
getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1
fi
}
target_triple() {
printf '%s\n' "${CHOST:-x86_64-sfg-linux-gnu}"
}
assert_destdir() {
[ "${DESTDIR:-}" != "" ] || {
echo "build.sh: DESTDIR is not set" >&2
exit 1
}
}
haul_from_primary() {
pkg=$1
shift
old_destdir=$DESTDIR
DESTDIR=$DEPOT_PRIMARY_DESTDIR
export DESTDIR
haul "$pkg" "$@"
DESTDIR=$old_destdir
export DESTDIR
}
depot_build() {
j=$(jobs)
triple=$(target_triple)
cmake -G Ninja llvm \
-B build-clang-llvm \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="$CC" \
-DCMAKE_CXX_COMPILER="$CXX" \
-DCMAKE_C_FLAGS="$CFLAGS" \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DLLVM_ENABLE_PROJECTS=clang\;lld\;flang \
-DLLVM_ENABLE_RUNTIMES=compiler-rt \
-DLLVM_USE_LINKER=lld \
-DLLVM_DEFAULT_TARGET_TRIPLE="$triple" \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DCLANG_LINK_CLANG_DYLIB=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_FFI=ON \
-DCLANG_DEFAULT_PIE_ON_LINUX=ON \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DCLANG_DEFAULT_CXX_STDLIB=libc++ \
-DCOMPILER_RT_BUILD_GWP_ASAN=OFF \
-DLLVM_INCLUDE_UTILS=ON \
-DLLVM_BUILD_UTILS=ON \
-DSANITIZER_CXX_ABI=libcxxabi \
-DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=OFF \
-DCOMPILER_RT_BUILD_BUILTINS=ON \
-DLLVM_INSTALL_UTILS=ON \
-DCLANG_DEFAULT_UNWINDLIB="none" \
-DCOMPILER_RT_BUILD_SANITIZERS=ON \
-DCOMPILER_RT_BUILD_XRAY=ON \
-DCOMPILER_RT_BUILD_LIBFUZZER=ON \
-DCOMPILER_RT_BUILD_PROFILE=ON \
-DCOMPILER_RT_BUILD_MEMPROF=ON \
-DCOMPILER_RT_BUILD_ORC=ON \
-DCOMPILER_RT_BUILD_CRT=ON \
-DLLVM_BUILD_DOCS=ON \
-DCMAKE_INSTALL_DOCDIR=share/doc \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DLLVM_ENABLE_SPHINX=ON \
-DCOMPILER_RT_DEFAULT_TARGET_ARCH="i686;x86_64" \
-DCLANG_DEFAULT_RTLIB=compiler-rt \
-DLLVM_INCLUDE_TESTS=ON
ninja -C build-clang-llvm -j"$j"
cmake -G Ninja runtimes/ \
-B build-libcxx \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="$CC" \
-DCMAKE_CXX_COMPILER="$CXX" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLLVM_ENABLE_RUNTIMES=libcxx\;libcxxabi\;libunwind \
-DCMAKE_C_COMPILER_TARGET="$triple" \
-DCMAKE_CXX_COMPILER_TARGET="$triple" \
-DLLVM_DEFAULT_TARGET_TRIPLE="$triple" \
-DLLVM_ENABLE_LTO=Thin \
-DLLVM_ENABLE_SPHINX=ON \
-DLIBCXX_INCLUDE_DOCS=ON \
-DCMAKE_INSTALL_DOCDIR=share/doc \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -unwindlib=libunwind -rtlib=compiler-rt" \
-DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -unwindlib=libunwind -rtlib=compiler-rt"
ninja -C build-libcxx -j"$j"
cmake -G Ninja llvm-libgcc \
-DCMAKE_C_COMPILER="$CC" \
-DCMAKE_CXX_COMPILER="$CXX" \
-B build-llvm-libgcc \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCOMPILER_RT_BUILD_BUILTINS=ON \
-DCOMPILER_RT_BUILD_LIBUNWIND=ON \
-DCOMPILER_RT_BUILD_XRAY=OFF \
-DCOMPILER_RT_BUILD_PROFILE=OFF \
-DLLVM_LIBGCC_EXPLICIT_OPT_IN=Yes \
-DCMAKE_C_COMPILER_TARGET="$triple" \
-DCMAKE_CXX_COMPILER_TARGET="$triple" \
-DLLVM_DEFAULT_TARGET_TRIPLE="$triple" \
-DCOMPILER_RT_BUILD_CRT=ON \
-DCOMPILER_RT_BUILD_ORC=OFF \
-DCOMPILER_RT_BAREMETAL_BUILD=OFF \
-DCOMPILER_RT_USE_LLVM_UNWINDER=ON \
-DCOMPILER_RT_ENABLE_STATIC_UNWINDER=ON \
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
-DCOMPILER_RT_BUILD_MEMPROF=OFF \
-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \
-DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -unwindlib=libunwind -rtlib=compiler-rt" \
-DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -unwindlib=libunwind -rtlib=compiler-rt"
ninja -C build-llvm-libgcc -j"$j"
}
depot_install() {
# Primary package: install the big LLVM/Clang/Flang tree once, then split from it.
assert_destdir
DESTDIR="$DESTDIR" cmake --install build-clang-llvm
ln -snf clang "$DESTDIR/usr/bin/cc"
ln -snf clang++ "$DESTDIR/usr/bin/c++"
ln -snf flang "$DESTDIR/usr/bin/f95"
ln -snf ld.lld "$DESTDIR/usr/bin/ld"
ln -snf linux/clang_rt.crtbegin-x86_64.o "$DESTDIR/usr/lib/crtbeginS.o"
ln -snf linux/clang_rt.crtend-x86_64.o "$DESTDIR/usr/lib/crtendS.o"
ln -snf linux/clang_rt.crtbegin-x86_64.o "$DESTDIR/usr/lib/crtbeginT.o"
ln -snf linux/clang_rt.crtend-x86_64.o "$DESTDIR/usr/lib/crtendT.o"
ln -snf linux/clang_rt.crtbegin-x86_64.o "$DESTDIR/usr/lib/crtbegin.o"
ln -snf linux/clang_rt.crtend-x86_64.o "$DESTDIR/usr/lib/crtend.o"
if [ -f "$DESTDIR/usr/share/clang/bash-autocomplete.sh" ]; then
mkdir -p "$DESTDIR/usr/share/bash-completion/completions"
mv "$DESTDIR/usr/share/clang/bash-autocomplete.sh" \
"$DESTDIR/usr/share/bash-completion/completions/clang"
fi
}
depot_install_llvm_libs() {
# Split shared LLVM libraries out of the primary LLVM install tree.
haul_from_primary llvm-libs 'usr/lib/libLLVM*.so*'
haul_from_primary llvm-libs 'usr/lib/libLTO.so*'
haul_from_primary llvm-libs 'usr/lib/libRemarks.so*'
}
depot_install_clang() {
haul_from_primary clang 'usr/bin/analyze-build'
haul_from_primary clang 'usr/bin/amdgpu-arch'
haul_from_primary clang 'usr/bin/c-index-test'
haul_from_primary clang 'usr/bin/clang*'
haul_from_primary clang 'usr/bin/diagtool'
haul_from_primary clang 'usr/bin/git-clang-format'
haul_from_primary clang 'usr/bin/hmaptool'
haul_from_primary clang 'usr/bin/intercept-build'
haul_from_primary clang 'usr/bin/nvptx-arch'
haul_from_primary clang 'usr/bin/scan-build*'
haul_from_primary clang 'usr/bin/scan-view'
haul_from_primary clang 'usr/bin/cc'
haul_from_primary clang 'usr/bin/c++'
haul_from_primary clang 'usr/include/clang*'
haul_from_primary clang 'usr/lib/clang'
haul_from_primary clang 'usr/lib/cmake/clang'
haul_from_primary clang 'usr/lib/libclang*.so*'
haul_from_primary clang 'usr/share/clang*'
haul_from_primary clang 'usr/share/scan-build'
haul_from_primary clang 'usr/share/scan-view'
haul_from_primary clang 'usr/share/bash-completion/completions/clang'
haul_from_primary clang 'usr/lib/crt*'
haul_from_primary clang 'usr/share/doc/clang*'
haul_from_primary clang 'usr/share/man/man1/clang*'
}
depot_install_libcxx() {
assert_destdir
DESTDIR="$DESTDIR" cmake --install build-libcxx
# Keep libcxx package focused (libunwind belongs to llvm-libgcc in this split).
rm -f "$DESTDIR/usr/include/__libunwind_config.h" \
"$DESTDIR/usr/include/libunwind.h" \
"$DESTDIR/usr/include/libunwind.modulemap" \
"$DESTDIR/usr/include/unwind.h" \
"$DESTDIR/usr/include/unwind_itanium.h" \
"$DESTDIR/usr/include/unwind_arm_ehabi.h" \
"$DESTDIR/usr/include/mach-o/compact_unwind_encoding.h"
rm -f "$DESTDIR/usr/lib/libunwind.so" \
"$DESTDIR/usr/lib/libunwind.so.1" \
"$DESTDIR/usr/lib/libunwind.so.1.0" \
"$DESTDIR/usr/lib/libunwind.a"
rm -rf "$DESTDIR/usr/lib/cmake/libunwind"
rmdir "$DESTDIR/usr/include/mach-o" 2>/dev/null || true
}
depot_install_llvm_libgcc() {
assert_destdir
DESTDIR="$DESTDIR" cmake --install build-llvm-libgcc
}
depot_install_flang() {
haul_from_primary flang 'usr/bin/flang*'
haul_from_primary flang 'usr/bin/tco'
haul_from_primary flang 'usr/bin/fir-*'
haul_from_primary flang 'usr/bin/f95'
haul_from_primary flang 'usr/include/flang*'
haul_from_primary flang 'usr/lib/cmake/flang*'
haul_from_primary flang 'usr/lib/libFIR*'
haul_from_primary flang 'usr/lib/libFortran*'
haul_from_primary flang 'usr/lib/libFlang*'
haul_from_primary flang 'usr/lib/libflang*'
haul_from_primary flang 'usr/lib/libCUFAttrs.a'
haul_from_primary flang 'usr/lib/libCUFDialect.a'
haul_from_primary flang 'usr/share/man/man1/flang*'
}
@@ -0,0 +1,63 @@
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -362,6 +362,7 @@
set(i386_SOURCES
${GENERIC_SOURCES}
+ ${GENERIC_TF_SOURCES}
${x86_ARCH_SOURCES}
i386/ashldi3.S
i386/ashrdi3.S
@@ -1012,9 +1013,9 @@
list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET)
endif()
- # For RISCV32 and 32-bit SPARC, we must force enable int128 for compiling long
- # double routines.
- if (COMPILER_RT_ENABLE_SOFTWARE_INT128 OR ("${arch}" MATCHES "riscv32|sparc$"
+ # For i386, RISCV32 and 32-bit SPARC, we must force enable int128 for
+ # compiling long double routines.
+ if (COMPILER_RT_ENABLE_SOFTWARE_INT128 OR ("${arch}" MATCHES "i386|riscv32|sparc$"
AND NOT CMAKE_COMPILER_IS_GNUCC))
list(APPEND BUILTIN_CFLAGS_${arch} -fforce-enable-int128)
endif()
--- a/compiler-rt/lib/builtins/extendxftf2.c
+++ b/compiler-rt/lib/builtins/extendxftf2.c
@@ -12,7 +12,8 @@
#define QUAD_PRECISION
#include "fp_lib.h"
-#if defined(CRT_HAS_TF_MODE) && __LDBL_MANT_DIG__ == 64 && defined(__x86_64__)
+#if defined(CRT_HAS_TF_MODE) && __LDBL_MANT_DIG__ == 64 && \
+ (defined(__x86_64__) || defined(__i386__))
#define SRC_80
#define DST_QUAD
#include "fp_extend_impl.inc"
--- a/compiler-rt/lib/builtins/trunctfxf2.c
+++ b/compiler-rt/lib/builtins/trunctfxf2.c
@@ -12,7 +12,8 @@
#define QUAD_PRECISION
#include "fp_lib.h"
-#if defined(CRT_HAS_TF_MODE) && __LDBL_MANT_DIG__ == 64 && defined(__x86_64__)
+#if defined(CRT_HAS_TF_MODE) && __LDBL_MANT_DIG__ == 64 && \
+ (defined(__x86_64__) || defined(__i386__))
#define SRC_QUAD
#define DST_80
--- a/compiler-rt/lib/builtins/truncxfbf2.c
+++ b/compiler-rt/lib/builtins/truncxfbf2.c
@@ -6,7 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#if defined(CRT_HAS_TF_MODE) && __LDBL_MANT_DIG__ == 64 && defined(__x86_64__)
+#if defined(CRT_HAS_TF_MODE) && __LDBL_MANT_DIG__ == 64 && \
+ (defined(__x86_64__) || defined(__i386__))
#define SRC_80
#define DST_BFLOAT
#include "fp_trunc_impl.inc"

Some files were not shown because too many files have changed in this diff Show More