# cockpit A systemd web based user interface for Linux servers ^ runtime dependencies | libkrb5 (Libraries/Networking) | ^ ::: | glib-networking (Libraries/Networking) | ^ ::: | libssh (Libraries/Crypto) | ^ ::: | openssl (Libraries/Crypto) | ^ ::: | json-glib (Libraries/JSON/XML) | ^ ::: | libpwquality (Libraries/Other) | ^ ::: | kexec (Debugging, profiling and benchmark) | ^ ::: | perl-json-tiny (Interpreter languages and scripting/Perl libraries/modules) | ^ ::: | [[buildroot:accountsservice]] | ^ ::: | [[buildroot:perl-locale-po]] | ^ make dependencies | git (Development tools) | ^ ::: | perl-json-tiny (Interpreter languages and scripting/Perl libraries/modules) | ^ ::: | glib-networking (Libraries/Networking) | ^ ::: | libkrb5 (Libraries/Networking) | ^ ::: | json-glib (Libraries/JSON/XML) | ^ ::: | libssh (Libraries/Crypto) | ^ ::: | [[buildroot:accountsservice]] | ^ ::: | [[buildroot:perl-locale-po]] | ^ ::: | [[buildroot:npm]] | ^ ::: | gtk-doc | ^ ::: | intltool | ^ ::: | gendesk | ^ ::: | libgsystem | ^ ::: | networkmanager | ^ ::: | pcp | ^ ::: | xmlto | ^ ::: | libjson-glib-dev | ^ ::: | libpam-dev | ^ ::: | libkrb5-dev | ^ ::: | libpolkit-agent-1-dev | ^ ::: | libssh-dev | ^ ::: | gobject-introspection | cockpit ├── libkrb5 (Libraries/Networking) ├── glib-networking (Libraries/Networking) ├── libssh (Libraries/Crypto) ├── openssl (Libraries/Crypto) ├── json-glib (Libraries/JSON/XML) ├── libpwquality (Libraries/Other) ├── kexec (Debugging, profiling and benchmark) ├── perl-json-tiny (Interpreter languages and scripting/Perl libraries/modules) ├── accountsservice (Custom) │   ├── libglib2 (Libraries/Other) │   ├── libxcrypt (Libraries/Crypto) │   ├── polkit (System tools) │   ├── shadow │   └── systemd (System tools) └── perl-locale-po (Custom) ## Pré requis ``` apt install gtk-doc intltool libgsystem networkmanager pcp xmlto libjson-glib-dev libpam-dev libkrb5-dev libpolkit-agent-1-dev libssh-dev gobject-introspection ``` ## Recette ``` mkdir /data/buildroot/package/cockpit cat > /data/buildroot/package/cockpit/Config.in<< 'EOF' config BR2_PACKAGE_COCKPIT bool "cockpit" depends on BR2_PACKAGE_LIBKRB5 depends on BR2_PACKAGE_LIBSSH depends on BR2_PACKAGE_ACCOUNTSSERVICE depends on BR2_PACKAGE_PERL_JSON_TINY depends on BR2_PACKAGE_PERL_LOCALE_PO depends on BR2_PACKAGE_JSON_GLIB depends on BR2_PACKAGE_GLIB_NETWORKING depends on BR2_PACKAGE_LIBPWQUALITY depends on BR2_PACKAGE_OPENSSL depends on BR2_PACKAGE_KEXEC help REST API, command line tool and OpenStack integration plugin for LXC. EOF cat > /data/buildroot/package/cockpit/cockpit.mk<< 'EOF' ############################################################# # # cockpit # ############################################################# COCKPIT_VERSION = 264.1 COCKPIT_SOURCE = cockpit-$(COCKPIT_VERSION).tar.xz COCKPIT_SITE = https://github.com/cockpit-project/cockpit/releases/download/$(COCKPIT_VERSION) COCKPIT_DEPENDENCIES = libkrb5 libssh accountsservice perl-json-tiny perl-locale-po json-glib glib-networking libpwquality openssl kexec COCKPIT_BIN_ARCH_EXCLUDE = /usr/lib define COCKPIT_CONFIGURE_CMDS cd $(@D)/ && \ wget https://raw.githubusercontent.com/archlinux/svntogit-community/packages/cockpit/trunk/cockpit-ws.sysuser.conf && \ wget https://raw.githubusercontent.com/archlinux/svntogit-community/packages/cockpit/trunk/cockpit-wsinstance.sysuser.conf && \ wget https://raw.githubusercontent.com/archlinux/svntogit-community/packages/cockpit/trunk/cockpit.pam && \ sed -r '/^cmd_make_package_lock_json\b/ a exit 0' -i tools/node-modules endef define COCKPIT_BUILD_CMDS cd $(@D)/ && \ PKG_CONFIG_PATH="$(STAGING_DIR)/lib/pkgconfig/" ./configure \ --prefix=/usr \ --sbindir=/usr/bin \ --libexecdir=/usr/lib/cockpit/ \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-dependency-tracking \ --disable-silent-rules \ --disable-pcp \ --disable-doc \ --with-cockpit-user=cockpit-ws \ --with-cockpit-ws-instance-user=cockpit-wsinstance && \ make all endef define COCKPIT_INSTALL_TARGET_CMDS cd $(@D)/ && \ make DESTDIR="$(TARGET_DIR)" install rm -rf "$(TARGET_DIR)"/usr/{src,lib/firewalld} install -Dm644 "$(@D)"/cockpit.pam "$(TARGET_DIR)"/etc/pam.d/cockpit install -Dm644 "$(@D)"/cockpit-ws.sysuser.conf "$(TARGET_DIR)"/usr/lib/sysusers.d/cockpit-ws.conf install -Dm644 "$(@D)"/cockpit-wsinstance.sysuser.conf "$(TARGET_DIR)"/usr/lib/sysusers.d/cockpit-wsinstance.conf echo "z /usr/lib/cockpit/cockpit-session - - cockpit-wsinstance -" >> "$(TARGET_DIR)"/usr/lib/tmpfiles.d/cockpit-tempfiles.conf #install -Dm644 cockpit.desktop "$(TARGET_DIR)"/usr/share/applications/org.cockpit_project.CockpitClient.desktop # remove unused plugins rm -rf "$(TARGET_DIR)"/usr/share/cockpit/{selinux,playground,sosreport} \ "$(TARGET_DIR)"/usr/share/metainfo/org.cockpit-project.cockpit-{selinux,sosreport}.metainfo.xml endef define COCKPIT_USERS cockpit-wsinstance -1 cockpit-wsinstance -1 = - - - cockpit wsinstance endef $(eval $(generic-package)) EOF sed -i '/menu "Custom packages"/a source "package/cockpit/Config.in"' /data/buildroot/package/Config.in ```