PKGBUILD 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. # Maintainer: David P. <megver83@parabola.nu>
  2. # Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
  3. # Maintainer (Arch): Jan de Groot <jgc@archlinxu.org>
  4. # Contributor (Arch): Wael Nasreddine <gandalf@siemens-mobiles.org>
  5. # Contributor (Arch): Tor Krill <tor@krill.nu>
  6. # Contributor (Arch): Will Rea <sillywilly@gmail.com>
  7. # Contributor (Arch): Valentine Sinitsyn <e_val@inbox.ru>
  8. pkgbase=networkmanager
  9. pkgname=(networkmanager libnm nm-cloud-setup)
  10. pkgver=1.32.2
  11. pkgrel=1
  12. pkgrel+=.nonsystemd1
  13. pkgdesc="Network connection manager and user applications"
  14. url="https://wiki.gnome.org/Projects/NetworkManager"
  15. arch=(x86_64)
  16. arch+=(i686 armv7h)
  17. license=(GPL2)
  18. _pppver=2.4.9
  19. makedepends=(intltool dhclient dhcpcd iptables-nft gobject-introspection gtk-doc
  20. "ppp=$_pppver" modemmanager iproute2 nss polkit wpa_supplicant curl
  21. logind libmm-glib libnewt libndp libteam nftables vala perl-yaml
  22. python-gobject git vala jansson bluez-libs glib2-docs iwd dnsmasq
  23. openresolv libpsl audit meson)
  24. checkdepends=(libx11 python-dbus)
  25. _commit=bf1b09702ed442a3efe426c8ceba4ef1e6bb1902 # tags/1.20.6^0
  26. source=("git+https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git#commit=$_commit"
  27. NetworkManager.{confd,initd} 10-openrc-status)
  28. sha256sums=('SKIP'
  29. '4594573f01fe5e04b6dde4525796acf909158591bdcefd662ec23fe0d1c3e1bd'
  30. 'eaf7d210540ed9f4c6b4ba81ddbb30a2aa5ce8b528057f7d64ce3478981f88e4'
  31. 'd32a21c0683cf7a09370b35b7e3d3b3f28f5d4d242ecde2c866cfb400b94bcbe')
  32. pkgver() {
  33. cd NetworkManager
  34. git describe --abbrev=10 | sed 's/-dev/dev/;s/-rc/rc/;s/-/+/g'
  35. }
  36. prepare() {
  37. cd NetworkManager
  38. }
  39. build() {
  40. local meson_args=(
  41. # system paths
  42. -D dbus_conf_dir=/usr/share/dbus-1/system.d
  43. # platform
  44. -D dist_version="$pkgver-$pkgrel"
  45. -D session_tracking_consolekit=false
  46. -D suspend_resume=elogind
  47. -D modify_system=true
  48. -D polkit_agent=true
  49. -D selinux=false
  50. -D systemdsystemunitdir=no
  51. -D session_tracking=elogind
  52. -D systemd_journal=false
  53. # features
  54. -D iwd=true
  55. -D pppd_plugin_dir=/usr/lib/pppd/$_pppver
  56. -D teamdctl=true
  57. -D nm_cloud_setup=true
  58. -D bluez5_dun=true
  59. -D ebpf=true
  60. # configuration plugins
  61. -D config_plugins_default=keyfile
  62. # handlers for resolv.conf
  63. -D netconfig=no
  64. -D config_dns_rc_manager_default=symlink
  65. # miscellaneous
  66. -D vapi=true
  67. -D docs=true
  68. -D more_asserts=no
  69. -D more_logging=false
  70. -D qt=false
  71. )
  72. arch-meson NetworkManager build "${meson_args[@]}"
  73. meson compile -C build
  74. }
  75. check() {
  76. meson test -C build --print-errorlogs
  77. }
  78. _pick() {
  79. local p="$1" f d; shift
  80. for f; do
  81. d="$srcdir/$p/${f#$pkgdir/}"
  82. mkdir -p "$(dirname "$d")"
  83. mv "$f" "$d"
  84. rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
  85. done
  86. }
  87. package_networkmanager() {
  88. depends=(libnm iproute2 polkit wpa_supplicant libmm-glib libnewt libndp libteam curl
  89. bluez-libs libpsl audit mobile-broadband-provider-info elogind)
  90. optdepends=('dnsmasq: connection sharing'
  91. 'nftables: connection sharing'
  92. 'iptables: connection sharing'
  93. 'bluez: Bluetooth support'
  94. 'ppp: dialup connection support'
  95. 'modemmanager: cellular network support'
  96. 'iwd: wpa_supplicant alternative'
  97. 'dhclient: alternative DHCP client'
  98. 'dhcpcd: alternative DHCP client'
  99. 'openresolv: alternative resolv.conf manager'
  100. 'firewalld: firewall support')
  101. provides=($pkgname-{elogind,openrc})
  102. replaces=($pkgname-{elogind,openrc})
  103. backup=(etc/NetworkManager/NetworkManager.conf)
  104. meson install -C build --destdir "$pkgdir"
  105. cd "$pkgdir"
  106. # /etc/NetworkManager
  107. install -d etc/NetworkManager/{conf,dnsmasq}.d
  108. install -dm700 etc/NetworkManager/system-connections
  109. install -m644 /dev/stdin etc/NetworkManager/NetworkManager.conf <<END
  110. # Configuration file for NetworkManager.
  111. # See "man 5 NetworkManager.conf" for details.
  112. END
  113. # packaged configuration
  114. install -Dm644 /dev/stdin usr/lib/NetworkManager/conf.d/20-connectivity.conf <<END
  115. [connectivity]
  116. uri=http://ping.archlinux.org/nm-check.txt
  117. END
  118. shopt -s globstar
  119. _pick libnm usr/include/libnm
  120. _pick libnm usr/lib/girepository-1.0/NM-*
  121. _pick libnm usr/lib/libnm.*
  122. _pick libnm usr/lib/pkgconfig/libnm.pc
  123. _pick libnm usr/share/gir-1.0/NM-*
  124. _pick libnm usr/share/gtk-doc/html/libnm
  125. _pick libnm usr/share/vala/vapi/libnm.*
  126. _pick nm-cloud-setup "$pkgdir"/usr/lib/**/*nm-cloud-setup*
  127. # _pick nm-cloud-setup "$pkgdir"/usr/share/man/*/nm-cloud-setup* (Parabola)
  128. # Restore empty dir
  129. # mkdir "$pkgdir/usr/lib/NetworkManager/dispatcher.d/no-wait.d" (Parabola)
  130. # Init script
  131. install -Dm755 ${srcdir}/NetworkManager.confd ${pkgdir}/etc/conf.d/NetworkManager
  132. install -Dm755 ${srcdir}/NetworkManager.initd ${pkgdir}/etc/init.d/NetworkManager
  133. install -Dm755 "${srcdir}/10-openrc-status" "${pkgdir}/etc/NetworkManager/dispatcher.d/10-openrc-status"
  134. }
  135. package_libnm() {
  136. pkgdesc="NetworkManager client library"
  137. depends=(glib2 nss util-linux-libs jansson libelogind)
  138. license=(LGPL)
  139. provides=(libnm.so)
  140. mv libnm/* "$pkgdir"
  141. }
  142. package_nm-cloud-setup() {
  143. pkgdesc="Automatically configure NetworkManager in cloud"
  144. depends=(networkmanager)
  145. mv nm-cloud-setup/* "$pkgdir"
  146. }
  147. # vim:set sw=2 et: