PKGBUILD 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. # Maintainer: David P. <megver83@parabola.nu>
  2. # Maintainer (Artix): Artoo <artoo@artixlinux.org>
  3. # Contributor (Artix): Christian Hesse <mail@eworm.de>
  4. # Contributor (Artix): Dave Reisner <dreisner@archlinux.org>
  5. # Contributor (Artix): Tom Gundersen <teg@jklm.no>
  6. _pkgbase=systemd-stable
  7. pkgbase=udev
  8. pkgname=('udev' 'libudev' 'esysusers' 'etmpfiles')
  9. pkgdesc='Userspace device file manager'
  10. _tag='95d0353dad616c275fda9b123ba9660e16b20d0a' # git rev-parse v${_tag_name}
  11. _tag_name=250.2
  12. pkgver="${_tag_name/-/}"
  13. pkgrel=1
  14. arch=('x86_64')
  15. arch+=('i686' 'armv7h')
  16. url='https://www.github.com/systemd/systemd'
  17. license=('GPL2' 'LGPL2.1')
  18. makedepends=('acl' 'libacl.so' 'kmod' 'libkmod.so' 'util-linux' 'libblkid.so'
  19. 'hwdata' 'libcap' 'libcap.so' 'kbd' 'gperf' 'intltool' 'git'
  20. 'meson' 'docbook-xsl' 'rsync' 'python-jinja')
  21. options=('strip')
  22. validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4' # Lennart Poettering <lennart@poettering.net>
  23. 'A9EA9081724FFAE0484C35A1A81CEA22BC8C7E2E' # Luca Boccassi <luca.boccassi@gmail.com>
  24. '5C251B5FC54EB2F80F407AAAC54CA336CFEB557E') # Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
  25. _commit=29cd296aa4635fe6f7b53bda2f2cb1648bdc0782
  26. source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}?signed"
  27. "git+https://github.com/systemd/systemd#tag=v${_tag_name%.*}?signed"
  28. '0001-Use-Arch-Linux-device-access-groups.patch'
  29. initcpio-{hook,install}-udev
  30. git+https://gitea.artixlinux.org/artix/alpm-hooks.git#commit=$_commit)
  31. sha512sums=('SKIP'
  32. 'SKIP'
  33. '10f3b477527ec263cc6465c84d94416e356435930edc9e26844a0fd4f71e87a27fa0f91ce24b43a22cacdd2ead5e760e9d607369bc537a8da8d34021302a89a1'
  34. '32606b42856b5f3ea7f485143e532671f58986237e14c58ea5ab17383dc39a375cb6c738c8a2db9e4a8c8be88ea44a876d6bbed129cb2f5c9aa3f8228b04d927'
  35. '38eed28d42ac8f70bc8d1058ace35f137f7f5c972442ee14b98c2146202e0615aa584304edbd59e8608d1b6bec3cb391fc69b25393740f6eabd8fc5ad3bde64f'
  36. 'SKIP')
  37. _backports=(
  38. )
  39. _reverts=(
  40. )
  41. prepare() {
  42. cd "$_pkgbase"
  43. # add upstream repository for cherry-picking
  44. git remote add -f upstream ../systemd
  45. local _c
  46. for _c in "${_backports[@]}"; do
  47. git log --oneline -1 "${_c}"
  48. git cherry-pick -n "${_c}"
  49. done
  50. for _c in "${_reverts[@]}"; do
  51. git log --oneline -1 "${_c}"
  52. git revert -n "${_c}"
  53. done
  54. # Replace cdrom/dialout/tape groups with optical/uucp/storage
  55. patch -Np1 -i ../0001-Use-Arch-Linux-device-access-groups.patch
  56. }
  57. _get_libudev() {
  58. echo "$(readlink build/libudev.so.1)"
  59. }
  60. _inst_bin() {
  61. local bin="$1"
  62. install -Dm755 build/systemd-"$bin".standalone "${pkgdir}"/usr/bin/"$bin"
  63. install -d "${pkgdir}"/usr/lib/"$bin".d
  64. install -d "${pkgdir}"/usr/share/{doc/"${pkgname}",man/man{5,8}}
  65. install -m644 build/man/"$bin".d.5 "${pkgdir}"/usr/share/man/man5/
  66. install -m644 build/man/systemd-"$bin".8 "${pkgdir}"/usr/share/man/man8/"$bin".8
  67. install -m644 "$_pkgbase"/LICENSE.* "${pkgdir}"/usr/share/doc/"${pkgname}"
  68. }
  69. build() {
  70. local _meson_options=()
  71. _meson_options+=(
  72. -Dversion-tag="${_tag_name/-/\~}-${pkgrel}-parabola"
  73. -Dmode=release
  74. -Dstandalone-binaries=true
  75. -Dsysusers=true
  76. -Dtmpfiles=true
  77. -Dadm-group=true
  78. -Dwheel-group=true
  79. -Dgshadow=true
  80. -Dhwdb=true
  81. -Dblkid=true
  82. -Dman=false
  83. -Dtests=false
  84. -Ddns-servers=''
  85. -Dntp-servers=''
  86. -Defi=false
  87. -Dlink-udev-shared=false
  88. -Dlibidn2=false
  89. -Dlibidn=false
  90. -Dlibcryptsetup=false
  91. -Didn=false
  92. -Dgcrypt=false
  93. -Dlibiptc=false
  94. -Dlz4=false
  95. -Dp11kit=false
  96. -Dseccomp=false
  97. -Dxz=false
  98. -Dtimesyncd=false
  99. -Dnss-systemd=false
  100. -Dnss-resolve=false
  101. -Dnss-mymachines=false
  102. -Dnss-myhostname=false
  103. -Dnetworkd=false
  104. -Dmachined=false
  105. -Dtimedated=false
  106. -Dkernel-install=false
  107. -Dresolve=false
  108. -Dxdg-autostart=false
  109. )
  110. arch-meson "$_pkgbase" build "${_meson_options[@]}"
  111. local _udev=() _man=() _ebin=()
  112. _udev+=(
  113. $(_get_libudev)
  114. src/libudev/libudev.pc
  115. udevadm
  116. src/udev/{ata_id,cdrom_id,fido_id,mtd_probe,dmi_memory_id,scsi_id,v4l_id}
  117. src/udev/udev.pc
  118. rules.d/{50-udev-default.rules,64-btrfs.rules}
  119. hwdb.d/60-autosuspend-chromiumos.hwdb
  120. )
  121. _ebin+=(
  122. systemd-{sysusers,tmpfiles}.standalone
  123. sysusers.d/basic.conf
  124. tmpfiles.d/{etc,static-nodes-permissions,var}.conf
  125. )
  126. _man+=(
  127. man/{sysusers,tmpfiles}.d.5
  128. man/systemd-{sysusers,tmpfiles}.8
  129. man/{libudev.3,udev.conf.5,hwdb.7,udev.7,udevadm.8}
  130. )
  131. ninja -C build "${_udev[@]}" "${_ebin[@]}" "${_man[@]}"
  132. }
  133. package_udev() {
  134. pkgdesc='Userspace device file manager'
  135. depends=('acl' 'libacl.so' 'kmod' 'libkmod.so'
  136. 'util-linux' 'libblkid.so' 'libudev' 'hwdata' 'kbd')
  137. provides=("udev=$pkgver" 'eudev')
  138. replaces=('eudev')
  139. install -d "${pkgdir}"/etc/udev/{hwdb,rules}.d
  140. mv -v "$_pkgbase"/src/udev/udev.conf "${pkgdir}"/etc/udev
  141. install -d "${pkgdir}"/usr/bin
  142. mv -v build/udevadm "${pkgdir}"/usr/bin/udevadm
  143. ln -sfv udevadm "${pkgdir}"/usr/bin/udevd
  144. install -d "${pkgdir}"/usr/{share,lib}/pkgconfig
  145. mv -v build/src/libudev/libudev.pc "${pkgdir}"/usr/lib/pkgconfig
  146. mv -v build/src/udev/udev.pc "${pkgdir}"/usr/share/pkgconfig
  147. install -d "${pkgdir}"/usr/lib/udev
  148. mv -v build/src/udev/{*_id,mtd_probe} "${pkgdir}"/usr/lib/udev
  149. mv -v build/hwdb.d "${pkgdir}"/usr/lib/udev/
  150. mv -v "$_pkgbase"/hwdb.d/{*.hwdb,README} "${pkgdir}"/usr/lib/udev/hwdb.d/
  151. mv -v build/rules.d "${pkgdir}"/usr/lib/udev/
  152. mv -v "$_pkgbase"/rules.d/{*.rules,README} "${pkgdir}"/usr/lib/udev/rules.d/
  153. install -d "${pkgdir}"/usr/include
  154. mv -v "$_pkgbase"/src/libudev/libudev.h "${pkgdir}"/usr/include
  155. install -d "${pkgdir}"/usr/share/man/man{3,5,7,8}
  156. mv -v build/man/libudev.3 "${pkgdir}"/usr/share/man/man3/
  157. mv -v build/man/udev.conf.5 "${pkgdir}"/usr/share/man/man5/
  158. mv -v build/man/udev.7 "${pkgdir}"/usr/share/man/man7/
  159. mv -v build/man/udevadm.8 "${pkgdir}"/usr/share/man/man8/
  160. install -d "${pkgdir}"/usr/share/doc/"${pkgname}"
  161. install -m644 "$_pkgbase"/LICENSE.* "${pkgdir}"/usr/share/doc/"${pkgname}"
  162. # initcpio
  163. install -D -m0644 initcpio-install-udev "${pkgdir}"/usr/lib/initcpio/install/udev
  164. install -D -m0644 initcpio-hook-udev "${pkgdir}"/usr/lib/initcpio/hooks/udev
  165. # pacman hooks
  166. make -C alpm-hooks DESTDIR="${pkgdir}" install_udev
  167. }
  168. package_libudev() {
  169. pkgdesc='udev library for enumerating and introspecting local devices'
  170. depends=('gcc-libs')
  171. provides=('libudev.so' 'libeudev')
  172. replaces=('libeudev')
  173. install -d "${pkgdir}"/usr/lib
  174. mv -v build/{libudev.so{,.1},$(_get_libudev)} "${pkgdir}"/usr/lib/
  175. }
  176. package_esysusers() {
  177. pkgdesc='the sysusers.d binary'
  178. groups=('base-devel')
  179. depends=('gcc-libs' 'libxcrypt')
  180. _inst_bin sysusers
  181. mv -v build/sysusers.d/basic.conf "${pkgdir}"/usr/lib/sysusers.d
  182. mv -v "$_pkgbase"/sysusers.d/README "${pkgdir}"/usr/lib/sysusers.d
  183. # pacman hooks
  184. make -C alpm-hooks DESTDIR="${pkgdir}" install_sysusers
  185. }
  186. package_etmpfiles() {
  187. pkgdesc='the tmpfiles.d binary'
  188. groups=('base-devel')
  189. depends=('acl' 'libacl.so' 'libcap' 'libcap.so')
  190. _inst_bin tmpfiles
  191. install -d "${pkgdir}"/etc/tmpfiles.d
  192. mv -v build/tmpfiles.d "${pkgdir}"/usr/lib/
  193. mv -v "$_pkgbase"/tmpfiles.d/{{tmp,home,x11}.conf,README} "${pkgdir}"/usr/lib/tmpfiles.d
  194. # pacman hooks
  195. make -C alpm-hooks DESTDIR="${pkgdir}" install_tmpfiles
  196. }