186 lines
6.7 KiB
Bash
186 lines
6.7 KiB
Bash
# This is the recipe.sh script. It is executed by BPM in a temporary directory when compiling a source package
|
|
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
|
|
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
|
|
|
|
# The prepare function is executed in the root of the temp directory
|
|
# This function is used for putting downloaded files to the correct location or applying patches
|
|
prepare() {
|
|
cd "$BPM_SOURCE"
|
|
# Patch from Artix to make installation easier
|
|
patch -Np1 -i "$BPM_WORKDIR"/0001-artix-standalone-install.patch
|
|
}
|
|
|
|
# The build function is executed in the source directory
|
|
# This function is used to compile the source code
|
|
build() {
|
|
# Replace 'render' group with 'video' and remove 'sgx' group from default udev rules
|
|
sed -i -e 's/GROUP="render"/GROUP="video"/' -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
|
|
|
|
meson setup --prefix=/usr \
|
|
--buildtype=release \
|
|
-Dmode=release \
|
|
-Dsbat-distro='tide' \
|
|
-Dsbat-distro-summary='Tide Linux' \
|
|
-Dsbat-distro-pkgname='udev' \
|
|
-Dsbat-distro-version="${BPM_PKG_VERSION}" \
|
|
-Dlink-udev-shared=false \
|
|
-Dlink-boot-shared=false \
|
|
-Dsysusers=false \
|
|
-Dtmpfiles=false \
|
|
-Dhwdb=true \
|
|
-Dblkid=enabled \
|
|
-Dkmod=enabled \
|
|
-Dgshadow=false \
|
|
-Ddefault-keymap='us' \
|
|
-Dman=enabled \
|
|
-Dhtml=disabled \
|
|
-Ddns-servers='' \
|
|
-Dntp-servers='' \
|
|
-Defi=false \
|
|
-Dbootloader=disabled \
|
|
-Dkernel-install=false \
|
|
-Dukify=disabled \
|
|
-Dsysvinit-path= \
|
|
-Dsysvrcnd-path= \
|
|
-Ddefault-dnssec=no \
|
|
-Ddefault-llmnr=no \
|
|
-Ddefault-mdns=no \
|
|
-Dsshconfdir=no \
|
|
-Dadm-group=false \
|
|
-Danalyze=false \
|
|
-Dapparmor=disabled \
|
|
-Daudit=disabled \
|
|
-Dbacklight=false \
|
|
-Dbinfmt=false \
|
|
-Dbzip2=disabled \
|
|
-Dcoredump=false \
|
|
-Ddbus=disabled \
|
|
-Delfutils=disabled \
|
|
-Denvironment-d=false \
|
|
-Dfdisk=disabled \
|
|
-Dgcrypt=disabled \
|
|
-Dglib=disabled \
|
|
-Dgnutls=disabled \
|
|
-Dhibernate=false \
|
|
-Dhostnamed=false \
|
|
-Didn=false \
|
|
-Dima=false \
|
|
-Dinitrd=false \
|
|
-Dfirstboot=false \
|
|
-Dldconfig=false \
|
|
-Dlibcryptsetup=disabled \
|
|
-Dlibcurl=disabled \
|
|
-Dlibfido2=disabled \
|
|
-Dlibidn=disabled \
|
|
-Dlibidn2=disabled \
|
|
-Dlibiptc=disabled \
|
|
-Dlocaled=false \
|
|
-Dlogind=false \
|
|
-Dlz4=disabled \
|
|
-Dmachined=false \
|
|
-Dmicrohttpd=disabled \
|
|
-Dnetworkd=false \
|
|
-Dnss-myhostname=false \
|
|
-Dnss-resolve=disabled \
|
|
-Dnss-systemd=false \
|
|
-Doomd=false \
|
|
-Dopenssl=disabled \
|
|
-Dp11kit=disabled \
|
|
-Dpam=disabled \
|
|
-Dpcre2=disabled \
|
|
-Dpolkit=disabled \
|
|
-Dportabled=false \
|
|
-Dpstore=false \
|
|
-Dpwquality=disabled \
|
|
-Drandomseed=false \
|
|
-Dresolve=false \
|
|
-Drfkill=false \
|
|
-Dseccomp=disabled \
|
|
-Dsmack=false \
|
|
-Dstoragetm=false \
|
|
-Dsysext=false \
|
|
-Dtimedated=false \
|
|
-Dtimesyncd=false \
|
|
-Dtpm=false \
|
|
-Dqrencode=disabled \
|
|
-Dquotacheck=false \
|
|
-Duserdb=false \
|
|
-Dutmp=false \
|
|
-Dvconsole=false \
|
|
-Dvmspawn=disabled \
|
|
-Dwheel-group=false \
|
|
-Dxdg-autostart=false \
|
|
-Dxkbcommon=disabled \
|
|
-Dxz=disabled \
|
|
-Dzlib=disabled \
|
|
-Dzstd=disabled \
|
|
-Dbpf-framework=disabled \
|
|
-Dpasswdqc=disabled \
|
|
-Dselinux=disabled \
|
|
-Dxenctrl=disabled \
|
|
-Dlibcryptsetup-plugins=disabled \
|
|
-Drepart=disabled \
|
|
-Dsysupdate=disabled \
|
|
-Dimportd=disabled \
|
|
-Dhomed=disabled \
|
|
-Dremote=disabled \
|
|
-Dnss-mymachines=disabled \
|
|
-Dtpm2=disabled \
|
|
-Dshellprofiledir=no \
|
|
build
|
|
|
|
local targets=(
|
|
udev:shared_library
|
|
src/libudev/libudev.pc
|
|
|
|
udevadm
|
|
{ata_id,cdrom_id,dmi_memory_id,fido_id,iocost,mtd_probe,scsi_id,v4l_id}
|
|
rules.d/{50-udev-default,60-persistent-storage,64-btrfs}.rules
|
|
udev-hwdb
|
|
hwdb.d/60-autosuspend-chromiumos.hwdb
|
|
src/udev/udev.pc
|
|
man/{libudev.3,udev.conf.5,hwdb.7,udev.7,udevadm.8,iocost.conf.5,systemd-hwdb.8}
|
|
)
|
|
meson compile -C build "${targets[@]}"
|
|
}
|
|
|
|
# The package function is executed in the source directory
|
|
# This function is used to move the compiled files into the output directory
|
|
package_udev() {
|
|
meson install -C build --destdir="$BPM_OUTPUT" --no-rebuild --tags udev,udev-devel,hwdb
|
|
|
|
# Move udevd to usr/sbin
|
|
install -d "$BPM_OUTPUT"/usr/sbin
|
|
mv "$BPM_OUTPUT"/usr/bin/udevd "$BPM_OUTPUT"/usr/sbin/udevd
|
|
|
|
# Install man pages
|
|
for manpage in udev.conf.5 iocost.conf.5 udev.7 udevadm.8; do
|
|
x=${manpage##*.}
|
|
install -Dm644 build/man/"$manpage" -t "$BPM_OUTPUT"/usr/share/man/man$x/
|
|
done
|
|
install -Dm644 build/man/systemd-hwdb.8 "$BPM_OUTPUT"/usr/share/man/man8/udev-hwdb.8
|
|
|
|
# Install esvm service
|
|
install -Dm644 "$BPM_WORKDIR"/udevd.esv "$BPM_OUTPUT"/etc/esvm/services/udevd.esv
|
|
install -Dm755 "$BPM_WORKDIR"/udevd.sh "$BPM_OUTPUT"/etc/esvm/scripts/udevd.sh
|
|
|
|
# Install BPM hook
|
|
install -Dm644 "$BPM_WORKDIR"/udev-hwdb.bpmhook "$BPM_OUTPUT"/var/lib/bpm/hooks/udev-hwdb.bpmhook
|
|
|
|
# Install package license
|
|
install -Dm644 "$BPM_SOURCE"/LICENSE.{GPL2,LGPL2.1} -t "$BPM_OUTPUT"/usr/share/licenses/udev/
|
|
}
|
|
|
|
package_libudev() {
|
|
meson install -C build --destdir="$BPM_OUTPUT" --no-rebuild --tags libudev,libudev-devel
|
|
|
|
# Install libudev header file
|
|
install -Dm644 "$BPM_SOURCE"/src/libudev/libudev.h "$BPM_OUTPUT"/usr/include/libudev.h
|
|
|
|
# Install man page
|
|
install -Dm644 build/man/libudev.3 -t "$BPM_OUTPUT"/usr/share/man/man3/
|
|
|
|
# Install package license
|
|
install -Dm644 "$BPM_SOURCE"/LICENSE.{GPL2,LGPL2.1} -t "$BPM_OUTPUT"/usr/share/licenses/udev/
|
|
}
|