upg btrfs-progs debugedit ed elfutils hwdata mkinitcpio

This commit is contained in:
joborun linux 2024-05-06 20:04:14 +03:00
parent 98d33cefe7
commit ec6a67bea9
24 changed files with 893 additions and 89 deletions

View file

@ -6,8 +6,8 @@
#-----------------------------------------| DESCRIPTION |---------------------------------------
pkgname=btrfs-progs
pkgver=6.8
pkgrel=03
pkgver=6.8.1
pkgrel=01
pkgdesc='Btrfs filesystem utilities w/o systemd'
makedepends=('asciidoc' 'xmlto' 'python' 'python-setuptools' 'e2fsprogs'
'reiserfsprogs' 'python-sphinx' 'python-sphinx_rtd_theme')
@ -72,9 +72,11 @@ license=('GPL-2.0-only')
validpgpkeys=('F2B41200C54EFB30380C1756C565D5F9D76D583B')
sha256sums=(9c21645feac182611e28b47769d5f613cb9e2ecab58ece60b10e6c55a9ead575 # btrfs-progs-v6.8.tar.xz
f5a8b2c11bfc48f94609a5d35239df7869255f5d069536bd9ad77e4f6f9db79e # btrfs-progs-v6.8.tar.sign
sha256sums=(0e40a068a26c2969cb02a95ba9fef888d7a6356e3f457ff92ad2477d08735678 # btrfs-progs-v6.8.1.tar.xz
0af0e663406c88806667c6834989cd1e7dc1213c8d05104f205aa847fba46b6b # btrfs-progs-v6.8.1.tar.sign
bbe60b35d1b1e2efc1308a8f54f1fdc6808240a81c5f5b4d75321b7ee86e41f4 # initcpio-install-btrfs
35efeee8590d6d60c711ae9cdc918e4841ab61d10cb02359e65e36ebff95ffc5) # initcpio-hook-btrfs
## a9881a0126d2243e2ea7f6d30534619090b0c2f0089226dd2a0da0fe86d18ca2 btrfs-progs-6.8-03-x86_64.pkg.tar.lz
## e2fd648b15c96984f9bf1d50eb6913c3be9936fda2279896e41d23e93a15f36f btrfs-progs-6.8.1-01-x86_64.pkg.tar.lz

View file

@ -3,8 +3,8 @@
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgname=btrfs-progs
pkgver=6.8
pkgrel=3
pkgver=6.8.1
pkgrel=1
pkgdesc='Btrfs filesystem utilities'
arch=('x86_64')
makedepends=('git' 'asciidoc' 'xmlto' 'systemd' 'python' 'python-setuptools' 'e2fsprogs'
@ -28,7 +28,7 @@ source=("https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-
install=btrfs-progs.install
options=(!staticlibs)
sha256sums=('SKIP'
'9c21645feac182611e28b47769d5f613cb9e2ecab58ece60b10e6c55a9ead575'
'0e40a068a26c2969cb02a95ba9fef888d7a6356e3f457ff92ad2477d08735678'
'bbe60b35d1b1e2efc1308a8f54f1fdc6808240a81c5f5b4d75321b7ee86e41f4'
'35efeee8590d6d60c711ae9cdc918e4841ab61d10cb02359e65e36ebff95ffc5'
'eaa7af92d28bfa8940bb551560fd7be777f9f175292eaa72b5f6ef00fb240252'

View file

@ -1,6 +1,6 @@
real 0m57.023s
user 0m51.954s
sys 0m5.615s
real 1m40.991s
user 4m11.754s
sys 0m8.042s

1
debugedit/NOTE Normal file
View file

@ -0,0 +1 @@
help2man was added most likely due to patches and was not needed on -05 - remove when patches are gone on 5.1 and above

View file

@ -7,15 +7,23 @@
pkgname=debugedit
pkgver=5.0
pkgrel=05
pkgrel=06
pkgdesc='Tool to mangle source locations in .debug files'
url='https://sourceware.org/debugedit/'
makedepends=(help2man)
depends=('libelf')
source=("https://sourceware.org/ftp/debugedit/${pkgver}/debugedit-${pkgver}.tar.xz"{,.sig})
source=("https://sourceware.org/ftp/debugedit/${pkgver}/debugedit-${pkgver}.tar.xz"{,.sig}
"debugedit-use-elfstrptr.patch::https://sourceware.org/git/?p=debugedit.git;a=patch;h=7497274aed00c459a0d74bf171e1b11358b0210c"
"debugedit-support-debugstr.patch::https://sourceware.org/git/?p=debugedit.git;a=patch;h=3e7aeeab4f744ad15108775685db68d3a35b0735"
"debugedit-limit-write.patch::https://sourceware.org/git/?p=debugedit.git;a=patch;h=6dd28bb30320e5236b3b5f79b6b2b41d2b2317bd")
prepare() {
cd "debugedit-${pkgver}"
patch -Np1 < "$srcdir/debugedit-use-elfstrptr.patch"
patch -Np1 < "$srcdir/debugedit-support-debugstr.patch"
patch -Np1 < "$srcdir/debugedit-limit-write.patch"
autoreconf -fiv
}
build() {
@ -33,12 +41,22 @@ package() {
arch=(x86_64)
license=('LGPL2.1')
license=('GPL-3.0-or-later' 'GPL-2.0-or-later' 'LGPL-2.0-or-later')
validpgpkeys=('EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A')
sha512sums=('7e7f529eafe41b53f0b5bfc58282fdbfa0dfa93ed7908b70e81942d6d2b6f80fc9c6bff2ed9674fd98947e5750b615f4c8b222544989e2900c5f8ff5ae0efb92'
'SKIP'
'8f56fc24fae6424d244508a29fb992a106ce91a4115a7429024db66fd9ef0d5e9a6ff5a473312ebb83726061193692cc56564b84c4b4bb553a6210a912fbf738'
'967da3adb66857a37056f8d0678d5fdc761704b74f6ca35d4631be1ee099683c2ea40cdd1a59f34eab3bbc33bb846009325403552519b3c300b76493f5c4dcf1'
'68b8d7388143da464a248b11555b08a708ea367b241317c622d76bd2b4b16473885d249ea9931af4ae438f6553beff7d9919c5ecd44fcbaf128b4d1f1bcdae82')
sha256sums=(e9ecd7d350bebae1f178ce6776ca19a648b6fe8fa22f5b3044b38d7899aa553e # debugedit-5.0.tar.xz
4fd8c44986d734196103ed2b630928949ed2ea48e0757c7a9e3d6f3b87cf00a7) # debugedit-5.0.tar.xz.sig
4fd8c44986d734196103ed2b630928949ed2ea48e0757c7a9e3d6f3b87cf00a7 # debugedit-5.0.tar.xz.sig
016464f7cbcb3b97ebeeecacbdaa8a871e5180d9cf1738f4c3860233ce6c063b # debugedit-use-elfstrptr.patch
6c25a9dfd0f27e468227805fe6a19b8054ee2563ed5971c0615aab8ae4705047 # debugedit-support-debugstr.patch
838c549c56820b4f1b6766fd88f0d01269374f994dd8924e507acd86658c0ec2) # debugedit-limit-write.patch
## 0a4da524d6979b6bbc223e23b5823ce01f2f5d459eb96d5b95a68d8a5b62d3e9 debugedit-5.0-05-x86_64.pkg.tar.lz
## 6e0d37d21e3cf52718018848f73d5382758a5bbf361ef0803d16ce8f418872c9 debugedit-5.0-06-x86_64.pkg.tar.lz

View file

@ -4,19 +4,28 @@
pkgname=debugedit
pkgver=5.0
pkgrel=5
pkgrel=6
pkgdesc='Tool to mangle source locations in .debug files'
arch=('x86_64')
url='https://sourceware.org/debugedit/'
license=('LGPL2.1')
license=('GPL-3.0-or-later' 'GPL-2.0-or-later' 'LGPL-2.0-or-later')
depends=('glibc' 'libelf')
source=("https://sourceware.org/ftp/debugedit/${pkgver}/debugedit-${pkgver}.tar.xz"{,.sig})
source=("https://sourceware.org/ftp/debugedit/${pkgver}/debugedit-${pkgver}.tar.xz"{,.sig}
"debugedit-use-elfstrptr.patch::https://sourceware.org/git/?p=debugedit.git;a=patch;h=7497274aed00c459a0d74bf171e1b11358b0210c"
"debugedit-support-debugstr.patch::https://sourceware.org/git/?p=debugedit.git;a=patch;h=3e7aeeab4f744ad15108775685db68d3a35b0735"
"debugedit-limit-write.patch::https://sourceware.org/git/?p=debugedit.git;a=patch;h=6dd28bb30320e5236b3b5f79b6b2b41d2b2317bd")
validpgpkeys=('EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A')
sha512sums=('7e7f529eafe41b53f0b5bfc58282fdbfa0dfa93ed7908b70e81942d6d2b6f80fc9c6bff2ed9674fd98947e5750b615f4c8b222544989e2900c5f8ff5ae0efb92'
'SKIP')
'SKIP'
'8f56fc24fae6424d244508a29fb992a106ce91a4115a7429024db66fd9ef0d5e9a6ff5a473312ebb83726061193692cc56564b84c4b4bb553a6210a912fbf738'
'967da3adb66857a37056f8d0678d5fdc761704b74f6ca35d4631be1ee099683c2ea40cdd1a59f34eab3bbc33bb846009325403552519b3c300b76493f5c4dcf1'
'68b8d7388143da464a248b11555b08a708ea367b241317c622d76bd2b4b16473885d249ea9931af4ae438f6553beff7d9919c5ecd44fcbaf128b4d1f1bcdae82')
prepare() {
cd "debugedit-${pkgver}"
patch -Np1 < "$srcdir/debugedit-use-elfstrptr.patch"
patch -Np1 < "$srcdir/debugedit-support-debugstr.patch"
patch -Np1 < "$srcdir/debugedit-limit-write.patch"
autoreconf -fiv
}

View file

@ -1,4 +1,5 @@
autoconf
automake
help2man

View file

@ -7,13 +7,16 @@
pkgname=ed
pkgver=1.20.2
pkgrel=01
pkgrel=02
pkgdesc="A POSIX-compliant line-oriented text editor"
url="https://www.gnu.org/software/ed/ed.html"
depends=('glibc' 'sh')
options=('!emptydirs')
source=("https://ftp.gnu.org/gnu/ed/$pkgname-$pkgver.tar.lz"{,.sig})
# There is something seriously wrong with this guy, check diff file
# Maintainer: Caleb Maclennan <caleb@alerque.com>
build() {
cd "$pkgname-$pkgver"
@ -40,12 +43,12 @@ package() {
arch=('x86_64')
license=('GPL')
license=(GPL-2.0-only)
validpgpkeys=('1D41C14B272A2219A739FA4F8FE99503132D7742') # Antonio Diaz Diaz
sha256sums=(65fec7318f48c2ca17f334ac0f4703defe62037bb13cc23920de077b5fa24523 # ed-1.20.2.tar.lz
8f1ced496dc1c33ebdc22dffcd23c8b00c109cf565ea9de1af960266aa57abac) # ed-1.20.2.tar.lz.sig
## 0b6e2c668bb02f6012c86fc5d003d71277d00dade4e2c4c26667cdf9388f1818 ed-1.20.2-01-x86_64.pkg.tar.lz
## ccdd9b72c324e58c9769622486ab57b7514c97fc409b651e17c6a7c43bfdf5c3 ed-1.20.2-02-x86_64.pkg.tar.lz

View file

@ -1,38 +1,40 @@
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Maintainer: Caleb Maclennan <caleb@alerque.com>
# Contributor: Dave Reisner <dreisner@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=ed
pkgver=1.20.2
pkgrel=1
pkgdesc="A POSIX-compliant line-oriented text editor"
arch=('x86_64')
license=('GPL')
pkgrel=2
pkgdesc='A POSIX-compliant line-oriented text editor'
arch=(x86_64)
license=(GPL-2.0-only)
url="https://www.gnu.org/software/ed/ed.html"
depends=('glibc' 'sh')
options=('!emptydirs')
validpgpkeys=('1D41C14B272A2219A739FA4F8FE99503132D7742') # Antonio Diaz Diaz
source=("https://ftp.gnu.org/gnu/ed/$pkgname-$pkgver.tar.lz"{,.sig})
depends=(glibc
sh)
options=(!emptydirs)
_archive="$pkgname-$pkgver"
source=("https://ftp.gnu.org/gnu/ed/$_archive.tar.lz"{,.sig})
sha256sums=('65fec7318f48c2ca17f334ac0f4703defe62037bb13cc23920de077b5fa24523'
'SKIP')
validpgpkeys=('1D41C14B272A2219A739FA4F8FE99503132D7742') # Antonio Diaz Diaz
build() {
cd "$pkgname-$pkgver"
./configure --prefix=/ \
--bindir=/usr/bin \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
"CPPFLAGS=$CPPFLAGS" \
"CFLAGS=$CFLAGS" \
"LDFLAGS=$LDFLAGS"
make
cd "$_archive"
./configure \
--prefix=/\
--bindir=/usr/bin \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
"CPPFLAGS=$CPPFLAGS" \
"CFLAGS=$CFLAGS" \
"LDFLAGS=$LDFLAGS"
make
}
check() {
make -C "$pkgname-$pkgver" check
make -C "$_archive" check
}
package() {
make -C "$pkgname-$pkgver" "DESTDIR=$pkgdir" install
make -C "$_archive" "DESTDIR=$pkgdir" install
}

View file

@ -1,3 +1,2 @@

68
ed/diff.rebuild Normal file
View file

@ -0,0 +1,68 @@
+PKGBUILD-arch.new:# Maintainer: Caleb Maclennan <caleb@alerque.com>
--- PKGBUILD-arch 2024-05-01 01:50:13.148942339 +0300
+++ PKGBUILD-arch.new 2024-05-04 20:22:20.181290147 +0300
@@ -1,38 +1,40 @@
-# Maintainer: Dave Reisner <dreisner@archlinux.org>
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=ed
pkgver=1.20.2
-pkgrel=1
-pkgdesc="A POSIX-compliant line-oriented text editor"
-arch=('x86_64')
-license=('GPL')
+pkgrel=2
+pkgdesc='A POSIX-compliant line-oriented text editor'
+arch=(x86_64)
+license=(GPL-2.0-only)
url="https://www.gnu.org/software/ed/ed.html"
-depends=('glibc' 'sh')
-options=('!emptydirs')
-validpgpkeys=('1D41C14B272A2219A739FA4F8FE99503132D7742') # Antonio Diaz Diaz
-source=("https://ftp.gnu.org/gnu/ed/$pkgname-$pkgver.tar.lz"{,.sig})
+depends=(glibc
+ sh)
+options=(!emptydirs)
+_archive="$pkgname-$pkgver"
+source=("https://ftp.gnu.org/gnu/ed/$_archive.tar.lz"{,.sig})
sha256sums=('65fec7318f48c2ca17f334ac0f4703defe62037bb13cc23920de077b5fa24523'
'SKIP')
+validpgpkeys=('1D41C14B272A2219A739FA4F8FE99503132D7742') # Antonio Diaz Diaz
build() {
- cd "$pkgname-$pkgver"
-
- ./configure --prefix=/ \
- --bindir=/usr/bin \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- "CPPFLAGS=$CPPFLAGS" \
- "CFLAGS=$CFLAGS" \
- "LDFLAGS=$LDFLAGS"
-
- make
+ cd "$_archive"
+ ./configure \
+ --prefix=/\
+ --bindir=/usr/bin \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ "CPPFLAGS=$CPPFLAGS" \
+ "CFLAGS=$CFLAGS" \
+ "LDFLAGS=$LDFLAGS"
+ make
}
check() {
- make -C "$pkgname-$pkgver" check
+ make -C "$_archive" check
}
package() {
- make -C "$pkgname-$pkgver" "DESTDIR=$pkgdir" install
+ make -C "$_archive" "DESTDIR=$pkgdir" install
}

View file

@ -8,7 +8,7 @@
pkgbase=elfutils
pkgname=(elfutils libelf debuginfod)
pkgver=0.191
pkgrel=01
pkgrel=02
pkgdesc="Handle ELF object files and DWARF debugging information"
url="https://sourceware.org/elfutils/"
makedepends=(bzip2 curl gcc-libs libarchive libmicrohttpd sqlite xz zlib)
@ -121,6 +121,7 @@ package_debuginfod() {
mv -v debuginfod/* "$pkgdir"
install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/"
}
#---- arch license gpg-key & sha256sums ----
arch=(x86_64)
@ -134,3 +135,8 @@ validpgpkeys=(47CC0331081B8BC6D0FD4DA08370665B57816A6A # Mark J. Wielaard <mark
sha256sums=(df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871 # elfutils-0.191.tar.bz2
d07b86df17cbe5187b311cd6e02fc47228cdd20545779cde5cd2a26ca03b7cb1) # elfutils-0.191.tar.bz2.sig
## ca4ba6a0aea9b7286c12996a8e3be929729fc2d5285b609dba15ba7f6ce0da00 debuginfod-0.191-02-x86_64.pkg.tar.lz
## c7682012c7c7fec800b8a323d2cc51afefa86dfa61440191d77cc034cda1560d elfutils-0.191-02-x86_64.pkg.tar.lz
## 432eb590e2c17efc55bd1a81428259ffaec5feb6d15d69fbb6cd08f2fc03f9f6 libelf-0.191-02-x86_64.pkg.tar.lz

View file

@ -10,7 +10,7 @@ pkgname=(
debuginfod
)
pkgver=0.191
pkgrel=1
pkgrel=2
pkgdesc="Handle ELF object files and DWARF debugging information"
arch=(x86_64)
url="https://sourceware.org/elfutils/"

View file

@ -1,20 +1,11 @@
============================================================================
Testsuite summary for elfutils 0.188
Testsuite summary for elfutils 0.191
============================================================================
# TOTAL: 261
# PASS: 224
# SKIP: 30
# TOTAL: 274
# PASS: 235
# SKIP: 32
# XFAIL: 0
# FAIL: 7
# XPASS: 0
# ERROR: 0
============================================================================
See tests/test-suite.log
Please report to https://sourceware.org/bugzilla
============================================================================
make[3]: *** [Makefile:2615: test-suite.log] Error 1
make[2]: *** [Makefile:2723: check-TESTS] Error 2
make[1]: *** [Makefile:4616: check-am] Error 2
make: *** [Makefile:533: check-recursive] Error 1
make: Leaving directory '/src/pkg/jobcore/elfutils/src/elfutils-test-0.188'
==> ERROR: A failure occurred in check().

View file

@ -6,7 +6,7 @@
#-----------------------------------------| DESCRIPTION |---------------------------------------
pkgname=hwdata
pkgver=0.381
pkgver=0.382
pkgrel=01
pkgdesc="hardware identification databases"
makedepends=('git')
@ -35,7 +35,7 @@ license=('GPL-2.0-or-later')
validpgpkeys=('3C40194FB79138CE0F78FD4919C2F062574F5403') # Vitezslav Crhonek
sha256sums=(SKIP)
sha256sums=(c20b03555bed7016d56adffcbe01fd2f65e3cc9fe88dc2545856512cacfa7162) # hwdata
## 7150e0f4bdc24b5a0204ea8622ea600a788ee98a65bcdf14afa9032bafacddf9 hwdata-0.381-01-x86_64.pkg.tar.lz
## c4c9a3c59c612acf899a4e852a94f69f0c74c923bb84d7ee06b778e4f7dc60be hwdata-0.382-01-x86_64.pkg.tar.lz

View file

@ -1,6 +1,6 @@
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=hwdata
pkgver=0.381
pkgver=0.382
pkgrel=1
pkgdesc="hardware identification databases"
makedepends=('git')
@ -10,7 +10,7 @@ license=('GPL-2.0-or-later')
arch=('any')
source=("git+https://github.com/vcrhonek/hwdata.git#tag=v${pkgver}?signed")
validpgpkeys=('3C40194FB79138CE0F78FD4919C2F062574F5403') # Vitezslav Crhonek
sha256sums=('SKIP')
sha256sums=('c20b03555bed7016d56adffcbe01fd2f65e3cc9fe88dc2545856512cacfa7162')
build() {
cd ${pkgname}

View file

@ -1,4 +1,3 @@
git

View file

@ -7,7 +7,7 @@
pkgname=mkinitcpio
pkgver=38.1
pkgrel=01
pkgrel=02
pkgdesc="Modular initramfs image creation utility w/o systemd zstd "
makedepends=('binutils' 'asciidoc' 'sed')
install=mkinitcpio.install
@ -78,5 +78,5 @@ sha256sums=(5c63525097a3c17bfb654dacea71ed7681c3102a3684d18c319d06e57007e1cd #
c4afeb6b3300c4d50c3f01233705b542f59d6e95a7670f7efde097ea209ef5bd # nosystemd.patch
3fd3810547c39a8cb55a8ec729e8e8500c365dd345e242e6fda568c346947436) # mkinitcpio.conf
## ba8be900c8c6ff9c1e8178b008701175e49d19d45710e30c254e0f030f428335 mkinitcpio-38.1-02-x86_64.pkg.tar.lz
## c2909e0e2ad7d2401ffbbe1ac838b2d9c0de0c93abec246a380a60408c3c8eb2 mkinitcpio-38.1-01-x86_64.pkg.tar.lz

90
mkinitcpio/PKGBUILD-39 Normal file
View file

@ -0,0 +1,90 @@
#!/usr/bin/bash
# JOBoRun : Jwm OpenBox Obarun RUNit
# Maintainer : Joe Bo Run <joborun@disroot.org>
# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobcore/$pkgname"
# Website : https://pozol.eu
#-----------------------------------------| DESCRIPTION |---------------------------------------
pkgname=mkinitcpio
pkgver=39
pkgrel=01
pkgdesc="Modular initramfs image creation utility w/o systemd zstd "
makedepends=('binutils' 'asciidoc' 'sed')
install=mkinitcpio.install
depends=('awk' 'mkinitcpio-busybox>=1.35.0' 'kmod' 'util-linux>=2.23' 'libarchive' 'coreutils'
'bash' 'binutils' 'diffutils' 'findutils' 'grep' 'filesystem' 'gzip')
checkdepends=('bats' 'bats-assert' 'lzop')
conflicts=('systemd>0' 'cryptsetup<2.7.0-3' 'mdadm<4.3-2' 'lvm2<2.03.23-3')
optdepends=('zstd: Use zstd compression for the initramfs image'
'bzip2: Use bzip2 compression for the initramfs image'
'lzop: Use lzo compression for the initramfs image'
'lz4: Use lz4 compression for the initramfs image'
'mkinitcpio-nfs-utils: Support for root filesystem on NFS')
provides=("mkinitcpio=$pkgver-$pkgrel"
'initramfs')
backup=('etc/mkinitcpio.conf')
#url='https://github.com/archlinux/mkinitcpio'
#url='https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio'
url="https://sources.archlinux.org/other"
source=("$url/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig}
# nosystemd.patch
mkinitcpio.conf)
prepare() {
cd "${pkgname}-${pkgver}"
# patch -Np1 -i ../nosystemd.patch
}
check() {
make -C $pkgname-$pkgver check
}
package() {
make -C $pkgname-$pkgver DESTDIR="$pkgdir" install
rm -f "${pkgdir}"/usr/lib/initcpio/install/sd-*
rm -f "${pkgdir}/etc/mkinitcpio.conf"
## The following two files are provided by eudev and the ones
## provided here contain systemd commands which wouldn't work on obarun or joborun
rm -f "${pkgdir}/usr/lib/initcpio/install/udev"
rm -f "${pkgdir}/usr/lib/initcpio/hooks/udev"
rm -rf "${pkgdir}/usr/lib/systemd"
rm -rf "${pkgdir}/usr/lib/initcpio/install/systemd"
rm -rf "${pkgdir}/usr/lib/initcpio/hooks/resume"
rm -rf "${pkgdir}/usr/lib/initcpio/install/resume"
install -Dm644 "${srcdir}/mkinitcpio.conf" "${pkgdir}/etc/mkinitcpio.conf"
}
#---- arch license gpg-key & sha256sums ----
arch=(x86_64)
license=('GPL-2.0-only')
validpgpkeys=('ECCAC84C1BA08A6CC8E63FBBF22FB1D78A77AEAB' # Giancarlo Razzolini
'C100346676634E80C940FB9E9C02FF419FECBE16') # Morten Linderud
sha512sums=('e727509badc528f45f2b193b3f49c202df41d4e75067bebd44c22ebc59f635d4a9596bc671d609d8941644f3a246267f7a199946730ba474040a1f24b94f663c'
'SKIP'
'SKIP'
'SKIP')
b2sums=('625455bb1140688bcdf04c946eb6fa1da53deaa221b2c8090c173aef1d7fc617227aa0674344f3c18d5b9ab77a093725856f4f0cd3b8a33462a2ac742f0dbf11'
'SKIP'
'SKIP'
'SKIP')
sha512sums=('50ae08ddf7596b821c89f927ff6692ca907a5045590096155ec6de64e0b5da647ff2c75d1603ab0035046096d37a6eacae383d458b1bb36bd525691b2b23c9ea'
'SKIP'
# 'SKIP'
'SKIP')
b2sums=('3a28d6711ce843aafe2868b09ba5a723e57e4fdffe905ac915aa5d224279590a10bba902933f183de33e08e96a6aad4d9e1d4752be74c011a37c4cbe83c8d645'
'SKIP'
# 'SKIP'
'SKIP')
sha256sums=(d91cfe9f04f2fd71839ce2c73ed53083573ab7e80dde9dff52ca9fd68a14d5cd # mkinitcpio-39.tar.xz
80bea6f24142a7baead2715f8f2f722ffbd3a16979a70eff8f246e5a7901ce4f # mkinitcpio-39.tar.xz.sig
# c4afeb6b3300c4d50c3f01233705b542f59d6e95a7670f7efde097ea209ef5bd # nosystemd.patch
3fd3810547c39a8cb55a8ec729e8e8500c365dd345e242e6fda568c346947436) # mkinitcpio.conf
## 93e273fa910d09a8c40928ac94b4e4a9eab24e9c062066a0d2c006d502835f37 mkinitcpio-39-01-x86_64.pkg.tar.lz

View file

@ -4,21 +4,16 @@
# Contributor: Thomas Bächler <thomas@archlinux.org>
pkgname=mkinitcpio
pkgver=38.1
pkgver=39
pkgrel=1
pkgdesc="Modular initramfs image creation utility"
arch=('any')
url='https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio'
license=('GPL')
license=('GPL-2.0-only')
depends=('awk' 'mkinitcpio-busybox>=1.19.4-2' 'kmod' 'util-linux>=2.23' 'libarchive' 'coreutils'
'bash' 'binutils' 'diffutils' 'findutils' 'grep' 'filesystem>=2011.10-1' 'zstd' 'systemd')
checkdepends=('bats' 'bats-assert' 'lzop')
conflicts=(
'systemd<255.4-2'
'cryptsetup<2.7.0-3'
'mdadm<4.3-2'
'lvm2<2.03.23-3'
)
makedepends=('asciidoc')
optdepends=('gzip: Use gzip compression for the initramfs image'
'xz: Use lzma or xz compression for the initramfs image'
'bzip2: Use bzip2 compression for the initramfs image'
@ -27,11 +22,10 @@ optdepends=('gzip: Use gzip compression for the initramfs image'
'mkinitcpio-nfs-utils: Support for root filesystem on NFS')
provides=('initramfs')
backup=('etc/mkinitcpio.conf')
source=("https://sources.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig})
install=mkinitcpio.install
sha512sums=('e727509badc528f45f2b193b3f49c202df41d4e75067bebd44c22ebc59f635d4a9596bc671d609d8941644f3a246267f7a199946730ba474040a1f24b94f663c'
source=("https://sources.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig})
sha512sums=('50ae08ddf7596b821c89f927ff6692ca907a5045590096155ec6de64e0b5da647ff2c75d1603ab0035046096d37a6eacae383d458b1bb36bd525691b2b23c9ea'
'SKIP')
b2sums=('625455bb1140688bcdf04c946eb6fa1da53deaa221b2c8090c173aef1d7fc617227aa0674344f3c18d5b9ab77a093725856f4f0cd3b8a33462a2ac742f0dbf11'
b2sums=('3a28d6711ce843aafe2868b09ba5a723e57e4fdffe905ac915aa5d224279590a10bba902933f183de33e08e96a6aad4d9e1d4752be74c011a37c4cbe83c8d645'
'SKIP')
validpgpkeys=('ECCAC84C1BA08A6CC8E63FBBF22FB1D78A77AEAB' # Giancarlo Razzolini
'C100346676634E80C940FB9E9C02FF419FECBE16') # Morten Linderud

View file

@ -1 +1,2 @@
rm -rf {src,pkg,mki*tar.gz*}
rm -rf {src,pkg,mki*tar.xz*,mki*tar.gz*}

View file

@ -0,0 +1,605 @@
diff pkg/mkinitcpio/usr/lib/initcpio/functions /usr/lib/initcpio/functions
--- pkg/mkinitcpio/usr/lib/initcpio/functions 2024-05-04 13:25:31.000000000 +0300
+++ /usr/lib/initcpio/functions 2024-03-14 14:58:49.000000000 +0200
@@ -142,17 +142,10 @@
kver_x86() {
local kver
local -i offset
- # On x86 (since kernel 1.3.73, 1996), regardless of whether it's
- # an Image, a zImage, or a bzImage: The file header is the same,
- # and contains the kernel_version string.
- #
# scrape the version out of the kernel image. locate the offset
# to the version string by reading 2 bytes out of image at at
# address 0x20E. this leads us to a string of, at most, 128 bytes.
# read the first word from this string as the kernel version.
- #
- # https://www.kernel.org/doc/html/v6.7/arch/x86/boot.html
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/boot/header.S?h=v6.7
offset="$(od -An -j0x20E -dN2 "$1")" || return
read -r kver _ < \
@@ -162,273 +155,124 @@
}
detect_compression() {
- # Detect standard compressed files. Not Linux-kernel specific.
-
local file="$1" offset="${2:-0}" bytes
- # The first 8 bytes are enough to detect most formats.
- bytes="$(od -An -t x1 -j "$offset" -N 8 "$file" | tr -d ' ')"
+ bytes="$(od -An -t x1 -N6 -j "$offset" "$file" | tr -dc '[:alnum:]')"
case "$bytes" in
- 'fd377a585a00'*)
- printf 'xz'
- return
- ;;
- '894c5a4f'*)
- printf 'lzop'
- return
- ;;
- '1f8b'*)
- printf 'gzip'
- return
- ;;
- '04224d18'*)
- error 'Newer lz4 stream format detected! This may not boot!'
- printf 'lz4'
- return
- ;;
- '02214c18'*)
- printf 'lz4 -l'
- return
- ;;
- '28b52ffd'*)
- printf 'zstd'
- return
- ;;
- '425a68'*) # 'BZh' in ASCII
- printf 'bzip2'
- return
- ;;
- '5d0000'*)
- # lzma detection sucks and there's really no good way to
- # do it without reading large portions of the stream. this
- # check is good enough for GNU tar, apparently, so it's good
- # enough for me.
- printf 'lzma'
- return
- ;;
- ????????'7a696d67'*) # 4 discarded bytes, then 'zimg' in ASCII
- # Linux kernel "zboot" self-decompressing EFI images
- # (since kernel 6.1)
- # (as of kernel 6.7: only on arm64, loongarch, and riscv)
-
- # Read 32 bytes (before 0x38) from address 0x18, which is a
- # null-terminated string representing the compressed type.
- #
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/libstub/zboot-header.S?h=v6.7
- read -rd '' bytes < <(od -An -j0x18 -t a -N32 "$1" | sed 's/ nul//g' | tr -dc '[:alnum:]')
- printf 'zboot %s' "$bytes"
+ 'fd377a585a00')
+ echo 'xz'
return
;;
esac
- # Try some formats that require us to sniff bytes at other locations.
-
- bytes="$(od -An -t x1 -j "$((offset+0x24))" -N4 "$file" | tr -d ' ')"
- if [[ "$bytes" == '18286f01' || "$bytes" == '016f2818' ]]; then # endian-sensitive
- # Linux kernel ARM32 self-decompressing "zImage"
- #
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/compressed/vmlinux.lds.S?h=v6.7#n121
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/compressed/head.S?h=v6.7#n215
- printf 'ARM zImage'
+ bytes="$(od -An -t x1 -N4 -j "$offset" "$file" | tr -dc '[:alnum:]')"
+ if [[ "$bytes" == '894c5a4f' ]]; then
+ echo 'lzop'
return
fi
- # out of ideas, assuming uncompressed
-}
-
-decompress_cat() {
- local file="$1" offset="${2:-0}" size="${3:-}"
- local comp_type reader
+ bytes="$(od -An -t x2 -N2 -j "$offset" "$file" | tr -dc '[:alnum:]')"
+ if [[ "$bytes" == '8b1f' ]]; then
+ echo 'gzip'
+ return
+ fi
- comp_type="$(detect_compression "$file" "$offset")"
- case "$comp_type" in
- '') reader='cat' ;;
- 'xz') reader='xzcat' ;;
- 'lzop') reader='lzop -d' ;;
- 'gzip') reader='zcat' ;;
- 'lz4') reader='lz4cat' ;;
- 'lz4 -l') reader='lz4cat -l' ;;
- 'zstd') reader='zstdcat' ;;
- 'bzip2') reader='bzcat' ;;
- 'lzma') reader='xzcat' ;;
- 'zboot '*)
- _zboot_cat "${comp_type#'zboot '}" "$file" "$offset"
+ bytes="$(od -An -t x4 -N4 -j "$offset" "$file" | tr -dc '[:alnum:]')"
+ case "$bytes" in
+ '184d2204')
+ error 'Newer lz4 stream format detected! This may not boot!'
+ echo 'lz4'
return
;;
- 'ARM zImage')
- _arm_zimage_cat "$file" "$offset"
+ '184c2102')
+ echo 'lz4 -l'
return
;;
- *)
- error 'Unknown compression type: %s' "$comp_type"
- return 1
+ 'fd2fb528')
+ echo 'zstd'
+ return
;;
esac
- if (( offset == 0 )) && [[ -z "$size" ]]; then
- $reader - <"$file"
- elif [[ -z "$size" ]]; then
- tail --bytes=+"$((offset+1))" "$file" | $reader -
- else
- tail --bytes=+"$((offset+1))" "$file" | head --bytes="$size" | $reader -
+
+ bytes="$(od -An -c -N3 -j "$offset" "$file" | tr -dc '[:alnum:]')"
+ if [[ "$bytes" == 'BZh' ]]; then
+ echo 'bzip2'
+ return
fi
-}
-_zboot_cat() {
- # Linux kernel "zboot" self-decompressing EFI images
- # (since kernel 6.1)
- # (as of kernel 6.7: only on arm64, loongarch, and riscv)
+ # lzma detection sucks and there's really no good way to
+ # do it without reading large portions of the stream. this
+ # check is good enough for GNU tar, apparently, so it's good
+ # enough for me.
+ bytes="$(od -An -t x1 -N3 -j "$offset" "$file" | tr -dc '[:alnum:]')"
+ if [[ "$bytes" == '5d0000' ]]; then
+ echo 'lzma'
+ return
+ fi
- # See zboot-header.S for offsets. See Makefile.zboot for
- # compression types and size adjustments.
- #
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/libstub/Makefile.zboot?h=v6.7
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/libstub/zboot-header.S?h=v6.7
+ read -rd '' bytes < <(od -An -j $((offset + 0x04)) -t c -N4 "$file" | tr -dc '[:alnum:]')
+ if [[ "$bytes" == 'zimg' ]]; then
+ echo 'zimg'
+ return
+ fi
- local comp_type="$1" file="$2" offset="${3:-0}"
- local reader start size size_len
+ # out of ideas, assuming uncompressed
+}
- # Read a pair of u32s from 0x08 (right after the "zimg" magic
- # identifier) for the starting-offset and size of the compressed
- # data.
- start="$(od -An -j "$((offset+0x08))" -t u4 -N4 "$file" | tr -dc '[:alnum:]')"
- size="$(od -An -j "$((offset+0x0c))" -t u4 -N4 "$file" | tr -dc '[:alnum:]')"
+kver_zimage() {
+ # Generic EFI zboot added since kernel 6.1
+ # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/libstub/Makefile.zboot?h=v6.1
+ # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/libstub/zboot-header.S?h=v6.1
+
+ local kver='' reader start size comp_type
+
+ # Reading 4 bytes from address 0x08 is the starting offset of compressed data
+ start="$(od -An -j0x08 -t u4 -N4 "$1" | tr -dc '[:alnum:]')"
+
+ # Reading 4 bytes from address 0x0c is the size of compressed data,
+ # but it needs to be corrected according to the compressed type.
+ size="$(od -An -j0x0c -t u4 -N4 "$1" | tr -dc '[:alnum:]')"
+
+ # Read 36 bytes (before 0x3c) from address 0x18,
+ # which is a nul-terminated string representing the compressed type.
+ read -rd '' comp_type < <(od -An -j0x18 -t a -N32 "$1" | sed 's/ nul//g' | tr -dc '[:alnum:]')
[[ "$start" =~ ^[0-9]+$ ]] || return 1
[[ "$size" =~ ^[0-9]+$ ]] || return 1
- size_len=4 # corresponds to Makefile.zboot:zboot-size-len-y or zboot-header.S:ZBOOT_SIZE_LEN
case "$comp_type" in
- 'gzip') reader='zcat'
- size_len=0
- ;;
- 'lz4') reader='lz4cat' ;;
- 'lzma') reader='xzcat' ;;
- 'lzo') reader='lzop -d' ;;
- 'xzkern') reader='xzcat' ;;
- 'zstd22') reader='zstdcat' ;;
- *)
- error 'Unknown zboot compression type: %s' "${comp_type#'zboot '}"
- return 1
+ 'gzip')
+ reader='zcat'
+ ;;
+ 'lz4')
+ reader='lz4cat'
+ size="$((size + 4))"
+ ;;
+ 'lzma')
+ reader='xzcat'
+ size="$((size + 4))"
+ ;;
+ 'lzo')
+ reader="lzop -d"
+ size="$((size + 4))"
+ ;;
+ 'xzkern')
+ reader='xzcat'
+ size="$((size + 4))"
+ ;;
+ 'zstd22')
+ reader='zstdcat'
+ size="$((size + 4))"
;;
- esac
-
- tail --bytes=+"$((offset+start+1))" <"$file" | head --bytes="$((size+size_len))" | $reader -
-}
-
-_arm_zimage_cat() {
- # Linux kernel ARM32 self-decompressing "zImage"
-
- # The end of the file looks like:
- #
- # input_data: char []<compressed data>
- # piggy_size: u32 len(<uncompressed_data>)
- # padding: char []<zeros> ; <=4096 bytes
- # got: u32 []<global_offsets>
- # trailer: char []<whatever> ; <512 bytes
- #
- # We can find the location of "piggy_size" from the file header,
- # and then we can ignore some zeros to find the GOT. It is
- # reasonable to assume (but still a heuristic) that the largest
- # value in the GOT that is <0x20000 (128KiB) is the location of
- # input_data.
- #
- # Note that piggy_size is *not* at a 4-byte-aligned location.
- #
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/compressed/vmlinux.lds.S?h=v6.7
- #
- # About that 0x20000 heuristic: input_data is put after the
- # extraction code, and so its location is basically determined by
- # the size of the extraction code, which will vary based on a
- # number of factors. So, this heuristic relies on a few things:
- #
- # 1. That ${max_extraction_code_size} is less than ~128KiB
- # 2. That ${min_compressed_kernel_size}+${min_extraction_code_size}
- # is more than ~128KiB.
- #
- # How safe are those assumptions?
- #
- # 1. Using GCC 12.2.0 with kernels 4.15 - 6.8 in a variety of
- # configurations, I've observed input_data being placed at
- # addresses in the range 0x152e - 0x10f63 (~5.3KiB - ~68KiB).
- # This is well within our 128KiB threshold.
- # 2. Let's just say that at the limit min_extraction_code_size =~
- # 0; I think it is safe to assume that even compressed,
- # kernels are measured in MiB, not KiB. (Though, when writing
- # tests for this code, it means we must be careful to use
- # files that are large enough!)
-
- local file="$1" offset="${2:-0}"
-
- # Read magic numbers.
- local hdr_endian_indicator cpu_endian_indicator have_table_indicator hdr_endian cpu_endian
- hdr_endian_indicator="$(od -An -t x1 -j "$((offset+0x24))" -N4 "$file" | tr -d ' ')"
- cpu_endian_indicator="$(od -An -t x1 -j "$((offset+0x30))" -N4 "$file" | tr -d ' ')"
- have_table_indicator="$(od -An -t x1 -j "$((offset+0x34))" -N4 "$file" | tr -d ' ')"
- case "$hdr_endian_indicator" in #
- '18286f01') hdr_endian='little' ;;
- '016f2818') hdr_endian='big' ;;
*)
- error '_arm_zimage_cat called, but file does not look like an ARM zImage'
- return 1
+ reader="$comp_type"
+ size="$((size + 4))"
;;
esac
- case "$cpu_endian_indicator" in
- # Prior to v3.17, hdr_endian and cpu_endian were the same, and
- # there was no cpu_endian_indicator.
- '01020304') cpu_endian='little' ;;
- '04030201') cpu_endian='big' ;;
- *) cpu_endian="$hdr_endian" ;;
- esac
- if [[ "$have_table_indicator" != '45454545' ]]; then
- error 'ARM zImage is too old (before v4.15, 2017)'
- return 1
- fi
- # Read offsets.
- local zboot_rom_text magic_table_addr piggy_size_addr aligned_after_piggy
- zboot_rom_text="$(od --endian="$hdr_endian" -An -t u4 -j "$((offset+0x28))" -N4 "$file" | tr -d ' ')"
- magic_table_addr="$(od --endian="$hdr_endian" -An -t u4 -j "$((offset+0x38))" -N4 "$file" | tr -d ' ')"
- piggy_size_addr="$(od --endian="$hdr_endian" -An -t u4 -j $((offset+magic_table_addr+8)) -N4 "$file" | tr -d ' ')"
- aligned_after_piggy=$((((piggy_size_addr+4+3)/4)*4))
-
- # Read the padding and GOT.
- # These values have zboot_rom_text added to them.
- local -i input_data_addr=0 in_got=0 val size
- while read -r val; do
- if (( val == 0 )); then
- if (( in_got )); then
- break
- else
- continue
- fi
- fi
- in_got=1
- val="$((val - zboot_rom_text))"
- if (( val > input_data_addr && val < 0x20000 )); then
- input_data_addr=$val
- fi
- done < <(od --endian="$cpu_endian" -An -v -t u4 -j "$((offset+aligned_after_piggy))" "$file" | xargs printf '%s\n')
- if (( input_data_addr == 0 )); then
- error 'Could not find input_data_addr in ARM zImage'
- return 1
- fi
- size="$((piggy_size_addr-input_data_addr))"
+ read -r _ _ kver _ < <(dd if="$1" bs=1 count="$size" skip="$start" 2>/dev/null | $reader - | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
- # gzip contains a 4-byte uncompressed-size suffix, so for
- # CONFIG_KERNEL_GZIP it saves 4 bytes by having the input_data
- # extend into the piggy_size.
- #
- # That is: the Makefile says
- # compress-$(CONFIG_KERNEL_GZIP) = gzip
- # instead of
- # compress-$(CONFIG_KERNEL_GZIP) = gzip_with_size
- #
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/compressed/Makefile?h=v6.7#n79
- if [[ "$(detect_compression "$file" "$((offset+input_data_addr))")" == 'gzip' ]]; then
- size=$((size+4))
- fi
-
- decompress_cat "$file" "$((offset+input_data_addr))" "$size"
+ printf '%s' "$kver"
}
kver_generic() {
@@ -438,11 +282,24 @@
# gzipped /boot/vmlinuz-linuz. On other architectures it may be worth trying
# rather than bailing, and inform the user if none was found.
- local kver=''
-
# Loosely grep for `linux_banner`:
- # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/init/version-timestamp.c?h=v6.7#n28
- read -r _ _ kver _ < <(decompress_cat "$1" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
+ # https://elixir.bootlin.com/linux/v5.7.2/source/init/version.c#L46
+ local kver='' reader='cat'
+ local comp_type=''
+
+ comp_type="$(detect_compression "$1")"
+
+ if [[ "$comp_type" == 'zimg' ]]; then
+ # Generic EFI zboot image
+ kver_zimage "$1"
+ return 0
+ elif [[ "$comp_type" == 'gzip' ]]; then
+ reader='zcat'
+ fi
+
+ [[ "$(detect_compression "$1")" == 'gzip' ]] && reader='zcat'
+
+ read -r _ _ kver _ < <($reader "$1" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]+]+)+')
printf '%s' "$kver"
}
@@ -820,16 +677,6 @@
command install -dm"${mode}" "${BUILDROOT}${path}"
}
-add_dir_early() {
- # add a directory (with parents) to $EARLYROOT
- # $1: pathname on initcpio
- # $2: mode (optional)
-
- # $EARLYROOT is assigned by mkinitcpio
- # shellcheck disable=SC2153
- BUILDROOT="$EARLYROOT" add_dir "$@" || return
-}
-
add_symlink() {
# Add a symlink to the initcpio image. There is no checking done
# to ensure that the target of the symlink exists.
@@ -878,21 +725,7 @@
# determine source and destination
local src="$1" dest="${2:-$1}" mode="$3" srcrealpath destrealpath
- # Treat '-' as /dev/stdin
- if [[ "$src" == '-' ]]; then
- src='/dev/stdin'
- fi
-
- if [[ -c "$src" || -p "$src" ]]; then
- if [[ "$src" == "$dest" || "$dest" == *'/' ]]; then
- error "no destination file specified for: '%s'" "$src"
- return 1
- fi
- if [[ -z "$mode" ]]; then
- error "no file mode specified for: '%s'" "$dest"
- return 1
- fi
- elif [[ ! -f "$src" ]]; then
+ if [[ ! -f "$src" ]]; then
error "file not found: '%s'" "$src"
return 1
fi
@@ -912,7 +745,7 @@
fi
# check if $src is a symlink
- if [[ -L "$src" && ! -c "$src" && ! -p "$src" ]]; then
+ if [[ -L "$src" ]]; then
srcrealpath="$(realpath -- "$src")"
if [[ "$srcrealpath" != "$dest" ]]; then
# add the target file
@@ -923,15 +756,13 @@
fi
fi
- # cp does not create directories leading to the destination and install
- # does not create the last directory if the destination is a directory.
- [[ ! -e "${BUILDROOT}${dest%/*}" && ( -z "$mode" || "$dest" == *'/' ) ]] && add_dir "${dest%/*}"
-
- # if destination ends with a slash, then use the source file name
- if [[ -e "${BUILDROOT}${dest/%\//\/${src##*/}}" ]]; then
- quiet 'overwriting file: %s' "${dest/%\//\/${src##*/}}"
+ # unlike install, cp does not create directories leading to the destination
+ [[ -z "$mode" && ! -e "${BUILDROOT}${dest%/*}" ]] && add_dir "${dest%/*}"
+
+ if [[ -e "${BUILDROOT}${dest}" ]]; then
+ quiet 'overwriting file: %s' "$dest"
else
- quiet 'adding file: %s' "${dest/%\//\/${src##*/}}"
+ quiet 'adding file: %s' "$dest"
fi
if [[ -z "$mode" ]]; then
command cp --remove-destination --preserve=mode,ownership "$src" "${BUILDROOT}${dest}"
@@ -940,18 +771,6 @@
fi
}
-add_file_early() {
- # Add a plain file to $EARLYROOT. No parsing is performed and only
- # the singular file is added.
- # $1: path to file
- # $2: destination on initcpio (optional, defaults to same as source)
- # $3: mode
-
- # $EARLYROOT is assigned by mkinitcpio
- # shellcheck disable=SC2153
- BUILDROOT="$EARLYROOT" add_file "$@" || return
-}
-
add_runscript() {
# Adds a runtime script to the initcpio image. The name is derived from the
# script which calls it as the basename of the caller.
@@ -1139,7 +958,7 @@
# creates a temporary directory for the buildroot and initialize it with a
# basic set of necessary directories and symlinks
- local kernver="$1" generatedir="$2" workdir arch buildroot osreleasefile root
+ local kernver="$1" generatedir="$2" workdir arch buildroot osreleasefile
arch="$(uname -m)"
if ! workdir="$(mktemp -d --tmpdir mkinitcpio.XXXXXX 2>/dev/null)"; then
@@ -1160,21 +979,19 @@
echo 1 > "${earlyroot}/early_cpio"
# base directory structure
- for root in "$buildroot" "$earlyroot"; do
- install -dm755 "$root"/{new_root,proc,sys,dev,run,tmp,var,etc,usr/{local{,/bin,/sbin,/lib},lib,bin}}
- ln -s "usr/lib" "$root/lib"
- ln -s "bin" "$root/usr/sbin"
- ln -s "usr/bin" "$root/bin"
- ln -s "usr/bin" "$root/sbin"
- ln -s "../run" "$root/var/run"
-
- case "$arch" in
- x86_64)
- ln -s "lib" "$root/usr/lib64"
- ln -s "usr/lib" "$root/lib64"
- ;;
- esac
- done
+ install -dm755 "$buildroot"/{new_root,proc,sys,dev,run,tmp,var,etc,usr/{local{,/bin,/sbin,/lib},lib,bin}}
+ ln -s "usr/lib" "$buildroot/lib"
+ ln -s "bin" "$buildroot/usr/sbin"
+ ln -s "usr/bin" "$buildroot/bin"
+ ln -s "usr/bin" "$buildroot/sbin"
+ ln -s "/run" "$buildroot/var/run"
+
+ case "$arch" in
+ x86_64)
+ ln -s "lib" "$buildroot/usr/lib64"
+ ln -s "usr/lib" "$buildroot/lib64"
+ ;;
+ esac
# mkinitcpio version stamp
# shellcheck disable=SC2154
@@ -1354,43 +1171,30 @@
}
add_all_modules_from_symbol() {
- local symbol="$1"
- local -a mods paths=("${@:2}")
-
- mapfile -t mods < <(find_module_from_symbol "$symbol" "${paths[@]}")
- if (( ! ${#mods[@]} )); then
- paths=("${paths[@]#=}") paths=("${paths[@]/#/\'}") paths=("${paths[@]/%/\',}")
- local path_string="${paths[*]}"
- warning "No module containing the symbol '%s' found in: %s" "$symbol" "${path_string%,}"
- return 1
- fi
-
- # add_checked_modules_from_symbol
- if [[ "${FUNCNAME[1]}" == 'add_checked_modules_from_symbol' ]]; then
- # _autodetect_cache is declared in mkinitcpio and assigned in install/autodetect
- # shellcheck disable=SC2154
- if (( ${#_autodetect_cache[@]} )); then
- mapfile -t mods < <(printf '%s\n' "${mods[@]}" | grep -xFf <(printf '%s\n' "${!_autodetect_cache[@]}"))
- # Do not fail if no autodetected module has the symbol
- if (( ! ${#mods[@]} )); then
- return 0
- fi
- fi
- fi
+ local -a mods
+ mapfile -t mods < <(find_module_from_symbol "$@")
+ (( ${#mods[@]} )) || return 1
map add_module "${mods[@]}"
}
-
add_checked_modules_from_symbol() {
- if ! add_all_modules_from_symbol "$@"; then
- return 1
+ local -a mods
+
+ mapfile -t mods < <(find_module_from_symbol "$@")
+ (( ${#mods[@]} )) || return 1
+
+ # _autodetect_cache is declared in mkinitcpio and assigned in install/autodetect
+ # shellcheck disable=SC2154
+ if (( ${#_autodetect_cache[@]} )); then
+ mapfile -t mods < <(grep -xFf <(printf '%s\n' "${!_autodetect_cache[@]}") <<<"${mods[@]}")
+ # Do not fail if no autodetected module has the symbol
+ if (( ${#mods[@]} )); then
+ return 0
+ fi
fi
-}
-if [[ "$0" == *'/functions' && "$1" == 'run_mkinitcpio_func' ]]; then
- shift
- "$@"
-fi
+ map add_module "${mods[@]}"
+}
# vim: set ft=sh ts=4 sw=4 et:

View file

@ -56,7 +56,8 @@ HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont bl
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
@ -70,7 +71,11 @@ HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont bl
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"

10
mkinitcpio/sys.d Normal file
View file

@ -0,0 +1,10 @@
pkg/mkinitcpio/usr/lib/initcpio/install/lvm2: # this udev rule is specific for systemd and non-systemd systems
pkg/mkinitcpio/usr/lib/initcpio/install/lvm2: if declare -F add_systemd_unit &>/dev/null; then
pkg/mkinitcpio/usr/lib/initcpio/install/mdadm_udev: if declare -F add_systemd_unit &>/dev/null; then
pkg/mkinitcpio/usr/lib/initcpio/install/mdadm_udev: add_systemd_unit 'mdmon@.service'
pkg/mkinitcpio/usr/lib/initcpio/functions: # add os-release and initrd-release for systemd
pkg/mkinitcpio/usr/lib/initcpio/init_functions: # ensure that root is going to be mounted rw. Otherwise, systemd
pkg/mkinitcpio/usr/lib/initcpio/init_functions:# TODO: this really needs to follow the logic of systemd's encode_devnode_name
pkg/mkinitcpio/usr/share/mkinitcpio/hook.preset:#default_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp"
pkg/mkinitcpio/usr/bin/mkinitcpio: for stub in /usr/lib/{systemd/boot/efi,gummiboot}/"linux${uefiarch}.efi.stub"; do