cockpit_349.bb 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. SUMMARY = "Admin interface for Linux machines"
  2. DESCRIPTION = "Cockpit makes it easy to administer your GNU/Linux servers via a web browser"
  3. LICENSE = "LGPL-2.1-only"
  4. LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
  5. SRC_URI += " \
  6. https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \
  7. file://0001-Warn-not-error-if-xsltproc-is-not-found.patch \
  8. file://cockpit.pam \
  9. "
  10. SRC_URI[sha256sum] = "2fa8eef40968135fb6df866a415eba8d4d5adbf4d44f293f28d4f3c841b301bb"
  11. inherit gettext pkgconfig autotools systemd features_check python3targetconfig
  12. DEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd python3-pip-native python3-setuptools-native"
  13. COMPATIBLE_HOST:libc-musl = "null"
  14. RDEPENDS:${PN} += "glib-networking"
  15. REQUIRED_DISTRO_FEATURES = "systemd pam"
  16. COCKPIT_USER_GROUP ?= "root"
  17. EXTRA_AUTORECONF = "-I tools"
  18. EXTRA_OECONF = " \
  19. --with-admin-group=${COCKPIT_USER_GROUP} \
  20. --disable-doc \
  21. --with-systemdunitdir=${systemd_system_unitdir} \
  22. --with-pamdir=${base_libdir}/security \
  23. "
  24. PACKAGECONFIG ??= " \
  25. ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
  26. "
  27. PACKAGECONFIG[pcp] = ",,pcp"
  28. PACKAGECONFIG[dashboard] = ",,libssh"
  29. PACKAGECONFIG[storaged] = ",,udisks2"
  30. PACKAGECONFIG[polkit] = ",,polkit"
  31. PACKAGES =+ " \
  32. ${PN}-pcp \
  33. ${PN}-realmd \
  34. ${PN}-tuned \
  35. ${PN}-shell \
  36. ${PN}-systemd \
  37. ${PN}-users \
  38. ${PN}-kdump \
  39. ${PN}-sosreport \
  40. ${PN}-storaged \
  41. ${PN}-networkmanager \
  42. ${PN}-selinux \
  43. ${PN}-playground \
  44. ${PN}-dashboard \
  45. ${PN}-packagekit \
  46. ${PN}-apps \
  47. ${PN}-bridge \
  48. ${PN}-ws \
  49. ${PN}-desktop \
  50. "
  51. SYSTEMD_PACKAGES = "${PN}-ws"
  52. FILES:${PN}-pcp = " \
  53. ${libexecdir}/cockpit-pcp \
  54. ${datadir}/cockpit/pcp \
  55. ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \
  56. "
  57. FILES:${PN}-realmd = "${datadir}/cockpit/realmd"
  58. FILES:${PN}-tuned = "${datadir}/cockpit/tuned"
  59. FILES:${PN}-shell = "${datadir}/cockpit/shell"
  60. FILES:${PN}-systemd = "${datadir}/cockpit/systemd"
  61. FILES:${PN}-users = "${datadir}/cockpit/users"
  62. FILES:${PN}-kdump = " \
  63. ${datadir}/cockpit/kdump \
  64. ${datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml \
  65. "
  66. FILES:${PN}-sosreport = " \
  67. ${datadir}/cockpit/sosreport \
  68. ${datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml \
  69. ${datadir}/pixmaps/cockpit-sosreport.png \
  70. ${datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png \
  71. "
  72. FILES:${PN}-storaged = " \
  73. ${datadir}/cockpit/storaged \
  74. ${datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml \
  75. "
  76. FILES:${PN}-networkmanager = " \
  77. ${datadir}/cockpit/networkmanager \
  78. ${datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml \
  79. "
  80. RDEPENDS:${PN}-networkmanager = "networkmanager"
  81. FILES:${PN}-selinux = " \
  82. ${datadir}/cockpit/selinux \
  83. ${datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml \
  84. "
  85. FILES:${PN}-playground = "${datadir}/cockpit/playground"
  86. FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard"
  87. ALLOW_EMPTY:${PN}-dashboard = "1"
  88. FILES:${PN}-packagekit = "${datadir}/cockpit/packagekit"
  89. FILES:${PN}-apps = "${datadir}/cockpit/apps"
  90. FILES:${PN}-bridge = " \
  91. ${bindir}/cockpit-bridge \
  92. ${libexecdir}/cockpit-askpass \
  93. ${PYTHON_SITEPACKAGES_DIR} \
  94. "
  95. RDEPENDS:${PN}-bridge = "python3"
  96. FILES:${PN}-desktop = "${libexecdir}/cockpit-desktop"
  97. RDEPENDS:${PN}-desktop += "bash"
  98. FILES:${PN}-ws = " \
  99. ${sysconfdir}/cockpit/ws-certs.d \
  100. ${sysconfdir}/pam.d/cockpit \
  101. ${sysconfdir}/issue.d/cockpit.issue \
  102. ${sysconfdir}/motd.d/cockpit \
  103. ${datadir}/cockpit/motd/update-motd \
  104. ${datadir}/cockpit/motd/inactive.motd \
  105. ${systemd_system_unitdir}/cockpit.service \
  106. ${systemd_system_unitdir}/cockpit-motd.service \
  107. ${systemd_system_unitdir}/cockpit.socket \
  108. ${systemd_system_unitdir}/cockpit-session.socket \
  109. ${systemd_system_unitdir}/cockpit-session@.service \
  110. ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \
  111. ${systemd_system_unitdir}/cockpit-wsinstance-http.service \
  112. ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \
  113. ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \
  114. ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \
  115. ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \
  116. ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \
  117. ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \
  118. ${systemd_system_unitdir}/system-cockpithttps.slice \
  119. ${systemd_system_unitdir}/cockpit-session-socket-user.service \
  120. ${systemd_system_unitdir}/cockpit-wsinstance-socket-user.service \
  121. ${systemd_system_unitdir}/cockpit-issue.service \
  122. ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \
  123. ${sbindir}/remotectl \
  124. ${base_libdir}/security/pam_ssh_add.so \
  125. ${base_libdir}/security/pam_cockpit_cert.so \
  126. ${libexecdir}/cockpit-ws \
  127. ${libexecdir}/cockpit-wsinstance-factory \
  128. ${libexecdir}/cockpit-tls \
  129. ${libexecdir}/cockpit-session \
  130. ${localstatedir}/lib/cockpit \
  131. ${datadir}/cockpit/static \
  132. ${datadir}/cockpit/branding \
  133. "
  134. CONFFILES:${PN}-ws += " \
  135. ${sysconfdir}/issue.d/cockpit.issue \
  136. ${sysconfdir}/motd.d/cockpit \
  137. "
  138. RDEPENDS:${PN}-ws += "openssl-bin"
  139. SYSTEMD_SERVICE:${PN}-ws = "cockpit.socket"
  140. FILES:${PN} += " \
  141. ${datadir}/cockpit/base1 \
  142. ${sysconfdir}/cockpit/machines.d \
  143. ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \
  144. ${datadir}/cockpit/ssh \
  145. ${libexecdir}/cockpit-ssh \
  146. ${datadir}/cockpit \
  147. ${datadir}/icons/hicolor/128x128/apps/cockpit.png \
  148. ${datadir}/metainfo/org.cockpit_project.cockpit.appdata.xml \
  149. ${datadir}/pixmaps/cockpit.png \
  150. ${nonarch_libdir}/tmpfiles.d \
  151. ${nonarch_libdir}/firewalld \
  152. "
  153. RDEPENDS:${PN} += "${PN}-bridge"
  154. # Needs bash and mv for /usr/libexec/cockpit-certificate-helper
  155. RDEPENDS:${PN} += "bash coreutils"
  156. do_install:append() {
  157. pkgdatadir=${datadir}/cockpit
  158. chmod 4750 ${D}${libexecdir}/cockpit-session
  159. install -d "${D}${sysconfdir}/pam.d"
  160. install -p -m 0644 ${UNPACKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit
  161. # provided by firewalld
  162. rm -rf ${D}${libdir}/firewalld \
  163. ${D}${PYTHON_SITEPACKAGES_DIR}/*/__pycache__ \
  164. ${D}${PYTHON_SITEPACKAGES_DIR}/*/*/__pycache__ \
  165. ${D}${PYTHON_SITEPACKAGES_DIR}/*/*/*/__pycache__ \
  166. ${D}${PYTHON_SITEPACKAGES_DIR}/*/*/*/*/__pycache__ \
  167. ${D}${PYTHON_SITEPACKAGES_DIR}/${BP}.dist-info/direct_url.json
  168. if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then
  169. for filename in ${FILES:${PN}-storaged}
  170. do
  171. rm -rf ${D}$filename
  172. done
  173. fi
  174. }