User Tools

Site Tools


buildroot:cockpit

Table of Contents

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)
accountsservice
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)
accountsservice
perl-locale-po
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
buildroot/cockpit.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1