# Contributor: xdavidwu <xdavidwuph@gmail.com>
# Maintainer: xdavidwu <xdavidwuph@gmail.com>
pkgname=systemd
pkgver=255.9
pkgrel=0
pkgdesc="System and Service Manager"
url="https://www.github.com/systemd/systemd"
arch="all"
license="LGPL2.1-or-later"
# util-linux-login: sulogin for emergency mode
# login: pam support (for systemd-logind)
# fsck: -l used in systemd-fsck
depends="cmd:agetty util-linux-login cmd:fsck mount cmd:loadkeys"
makedepends="coreutils py3-jinja2 gperf libcap-dev util-linux-dev gettext-dev kmod-dev bash libxslt docbook-xsl meson linux-pam-dev zstd-dev libseccomp-dev py3-elftools"
checkdepends=""
install="$pkgname.pre-install"
subpackages="$pkgname-dev $pkgname-doc $pkgname-bash-completion $pkgname-zsh-completion"
source="$pkgname-$pkgver.tar.gz::https://github.com/systemd/systemd-stable/archive/refs/tags/v$pkgver.tar.gz
	0001-missing_type.h-add-comparison_fn_t.patch
	0002-add-fallback-parse_printf_format-implementation.patch
	0003-src-basic-missing.h-check-for-missing-strndupa.patch
	0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
	0005-add-missing-FTW_-macros-for-musl.patch
	0006-Use-uintmax_t-for-handling-rlim_t.patch
	0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
	0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
	0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
	0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
	0011-avoid-redefinition-of-prctl_mm_map-structure.patch
	0012-do-not-disable-buffer-in-writing-files.patch
	0013-Handle-__cpu_mask-usage.patch
	0014-Handle-missing-gshadow.patch
	0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
	0016-pass-correct-parameters-to-getdents64.patch
	0017-Adjust-for-musl-headers.patch
	0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
	0019-errno-util-Make-STRERROR-portable-for-musl.patch
	0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
	0021-shared-Do-not-use-malloc_info-on-musl.patch
	0022-avoid-missing-LOCK_EX-declaration.patch
	0100-Do-not-buffer-on-systemd-sleep.patch
	0101-efi-do-not-set-wide-exec-charset.patch
	0102-efi-hack-out-musl-wchar-definition.patch
	0103-meson-lintl-for-musl-gettext.patch
	0104-DNM-alpine-path-util-support-pre-usrmerge.patch"
pkgusers="systemd-network systemd-resolve systemd-coredump"
pkggroups="systemd-journal"
provides="hwids-udev=99999999 eudev=99 eudev-libs=99"
builddir="$srcdir/systemd-stable-$pkgver"

build() {
	env CFLAGS=" -D__UAPI_DEF_ETHHDR=0 " meson \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--localstatedir=/var \
		--buildtype=plain \
		-Dauto_features=disabled \
		-Dbootloader=true \
		-Defi=true \
		-Duserdb=false \
		-Dman=true \
		-Dkmod=true \
		-Dpam=true \
		-Ddns-over-tls=false \
		-Dseccomp=true \
		-Dblkid=true \
		-Dtpm=false \
		-Dzstd=true \
		-Dinitrd=false \
		-Dnscd=false \
		-Dutmp=false \
		-Dhibernate=false \
		-Dldconfig=false \
		-Denvironment-d=false \
		-Dbinfmt=false \
		-Dpstore=false \
		-Doomd=false \
		-Dhostnamed=false \
		-Dlocaled=false \
		-Dmachined=false \
		-Dportabled=false \
		-Dsysext=false \
		-Dtimedated=false \
		-Dtimesyncd=false \
		-Dnss-myhostname=false \
		-Dnss-systemd=false \
		-Dfirstboot=false \
		-Drandomseed=false \
		-Dquotacheck=false \
		-Dsysusers=false \
		-Dtmpfiles=false \
		-Dtranslations=false \
		-Dgshadow=false \
		-Dsmack=false \
		-Dima=false \
		-Didn=false \
		-Dkernel-install=false \
		-Dxdg-autostart=false \
		-Dmode=release \
		-Dsysvinit-path='' \
		-Dsysvrcnd-path='' \
		-Ddebug-shell=/bin/sh \
		-Ddefault-user-shell=/bin/sh \
		-Dpamlibdir=/lib/security \
		-Dstoragetm=false \
		. output
	meson compile ${JOBS:+-j ${JOBS}} -C output
}

check() {
	# Replace with proper check command(s)
	:
}

package() {
	env DESTDIR="$pkgdir" meson install --no-rebuild -C output
	ln -s libsystemd.pc "$pkgdir"/usr/lib/pkgconfig/libelogind.pc
	install -d "$pkgdir/sbin"
	ln -s ../usr/lib/systemd/systemd "$pkgdir"/sbin/init
	install -d "$pkgdir/lib"
	ln -s ../usr/lib/udev "$pkgdir"/lib/udev
}

dev() {
	provides="elogind-dev eudev-dev"
	default_dev
}

sha512sums="
75b46e443bcbe5e4ae812b6cbbd4ea6485caf5b4addea78a0b42365147a0bdc390a288b4aeda1fc7f3e9a46abf2881cda0e45bb8cb782daa50ea5661514b1af8  systemd-255.9.tar.gz
b985aec9f03b35bb4fb9927405e8ab1def6c1b2a5f2f15323164c7ff0b330b011778fa433f9335e971c6c149ce316c5b7bad7f077a5ca0695e2fbf1836265077  0001-missing_type.h-add-comparison_fn_t.patch
fe34196887b961baadef9f0cc93668e70570da7f3826bcc60b3daed3c286361ec5b5f923bc1d34fc78e67c801d10889999523acbe5fc73205f75435e77ca5347  0002-add-fallback-parse_printf_format-implementation.patch
ba776e6822db80a8e980b803fbee454157340fbb3bf7224b43e836273baffd06be70e70120444b7f243d412ccc9a84f1fa54c3f4259c41c9c89760aed3168c10  0003-src-basic-missing.h-check-for-missing-strndupa.patch
898a985dd1900721914880fc1d4fe028c73942469436051e5f4fb571b7a5ff1dfbac834613563db9257a99c2706398048a4210628f3b690b8dc31c3862d38cf9  0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
f04619649e11af4673e472fc64520d1eb9e50b4e0d6531768b5a863d1813ad274525dcd029e4595cf07060ef239478817a0ff9686494d83876fa589dde27f8b8  0005-add-missing-FTW_-macros-for-musl.patch
5b15a8421016d6f673ab0145b7282b37a3bca2effbaaa3773f8fa95b38a91588dec81d00c13f4170a3762a2c39c79d840a5a27ab05ae046267faed4a170f51bc  0006-Use-uintmax_t-for-handling-rlim_t.patch
5542d1f6d9af2e4c4e321e8ee01ff86bb17f31924c610ee27364b1168aae491547e72380b1699387ac4cabfa538f5d5bfd77818a255e64c0ac8e36511cdfe20d  0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
5adb506e12b441791c2b6af76d1a18d68fc6af0bc1f7dbbc458cdbac8fddeff6130cb1d93d93fa2f05417283787f13c2011488f815efc03b3f65991074c1040c  0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
0aecbaae0076ca47208f5469471633931c76750a0cbb1310e5297501bf884e376d04d1e8f212f6a23c546300bf157606d31047df0fd20ce7ef9136edb0e0829b  0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
cd9109805ef0ece6081180a1dc30158c4358374eb979fc19896d505a3e664e83b439bfdcdcb24aeb14cc91140ab8de02f228be59b070305156f05b17729b88eb  0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
ce9aa83edbdcef13a77a3197b411f0bc8a843c72ef5c9e1e8ac15b9a9c137bc80c776b50db1a6d62e2a0a86f1b3033c757faa40d8c33ba64160e50f5d03e9600  0011-avoid-redefinition-of-prctl_mm_map-structure.patch
162ea03f13f8d9e52322ac0810d71cdb58b3939e5bd3b421d9a1810eecd593b15d0cf68404e32657c4b320a7f2513fda3180684b0ba6786d9148adb261065d34  0012-do-not-disable-buffer-in-writing-files.patch
f52575fc69963d2edf9285644f6ebb25d58b01bcf777fa7e7866e0cde5d34b5f64d86b92311443b49e583672b7c77506b8bde94ded318a4427e5fc41699d9a9c  0013-Handle-__cpu_mask-usage.patch
4577d05cae8058eee12b7bb5b35a8ee05d74e4609cf194b63bc590b3adb0d9cc77bb6b776dcad4644e976344e7ddb618dc638755fb395fb425e6fd7ef71a40ca  0014-Handle-missing-gshadow.patch
82ebd1b1f6f64b0661b2499f8f44995f2fbb84eba52f2a8377fbc548983b4507ceab3648987b15c5f1641bc259ba19a6251a23204bc9784200702603bcbe123f  0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
0c886530eae19d1fcd06ae873910c9272b2dc80a9bc1e0b5e22ca049707acc22977cfc42fd85387fc2a3d8b7753484db02625a14072edbaf9604130f894667ab  0016-pass-correct-parameters-to-getdents64.patch
6f403b6898b64a2fa509f390bd9137a49bfebca57bafc9bd98e7cb47af158d6ea0ff851dd15ca5e54a6e19b233254119a55b871f8c9d6286875e04c89bde4590  0017-Adjust-for-musl-headers.patch
6addbd80091f052fc5e0349689f55a50e3e02e54d2d7322426808217e3f378e14010b7a3107e1cfbab8b378c2db4563bfaa4401b107652e7af015da9c7cb9d4f  0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
c1ae5eb03a1702b7c1882b6c235933813fc27db79cde7b230cebb9ee2bcdcff317d2fcac005da00adec11d29b633714cd6a81368c8d8b49ee0dcd2c8fc35e9b7  0019-errno-util-Make-STRERROR-portable-for-musl.patch
00dec5f9a7a6d53844e2461bc44549249466c3602e0f643c4a2fe99364c6ca3af58771e482ac77daf43d169251d52e446fd7d5a88f013069f6350ed878d9e42e  0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
4bce8082b3500a31670afbcea711df1b4d97da268d12f9280c673d82a75bb03d9e15602fc1c4360d8b168a39a12fb1d258cc338bd913368f04e629e0cea13fcb  0021-shared-Do-not-use-malloc_info-on-musl.patch
5c2007242e5006589b106b4ea9fd10ce890093076aedf84f4d973a510ef4eb8c970bd3cacff68aecd89ce8f7991aacd83fa5812193aed4272177d49d0ccb1113  0022-avoid-missing-LOCK_EX-declaration.patch
d2ab37ed91af87b70f18ff1f05c9959f20cfafe78e1d49f18a522d41ce4a8ed1c2851826fad1c4f5b8b4b28ada2b4681c33fed6f97ad24d029fe68ddacb01349  0100-Do-not-buffer-on-systemd-sleep.patch
4ea51f1b47140ee79d738fa983c42402ed0bb4c5ae79880fd30555c7571b5e0a4e7e86457be987bfdf0da928a1111a54709ed54a6676305e5036920347adb5cd  0101-efi-do-not-set-wide-exec-charset.patch
ab3075a07010708fa795a9ff2a0f08f9a0a317034479e41bc8948c0d24155087b797b832e13dc6f534151600dbe5ad4526e9a48eec0328fc00c6609a8328aee7  0102-efi-hack-out-musl-wchar-definition.patch
ec8feed6259e52874ff8c3019746a6c40d38cc4b5a775d934161c51515f435768baad7d87315ecf8192266d2a5e096137a73c8bbe2f8f88b6844e53c276cfdd1  0103-meson-lintl-for-musl-gettext.patch
3a489e3d79590b8a8c9fc523602b7cf2e90c0f221b0d97ea51fceb071d8fd66fca3e93764ff6b0cba0a21528b3252a81f10a01e017d6529a6255f6e1c31fffc9  0104-DNM-alpine-path-util-support-pre-usrmerge.patch
"