diff --git a/book/src/packaging_debs.md b/book/src/packaging_debs.md index f762d439c..d02336496 100644 --- a/book/src/packaging_debs.md +++ b/book/src/packaging_debs.md @@ -7,20 +7,18 @@ This happens in Docker currently, and here's some instructions for doing it for 1. Start in the root directory of the repository. 2. Run `./platform/debian/ubuntu_docker_builder.sh` This'll start a container, mounting the repository in `~/kanidm/`. -3. Install the required dependencies by running `./platform/debian/install_deps.sh`. +3. Install the required dependencies by running `./scripts/install_ubuntu_dependencies.sh`. 4. Building packages uses make, get a list by running `make -f ./platform/debian/Makefile help` -``` -➜ make -f platform/debian/Makefile help -debs/kanidm: - build a .deb for the Kanidm CLI -debs/kanidmd: - build a .deb for the Kanidm daemon -debs/kanidm-unixd: - build a .deb for the Kanidm UNIX tools (PAM/NSS, unixd and related tools) and SSH tools -debs/all: - build all the debs -``` + ➜ make -f platform/debian/Makefile help + debs/kanidm: + build a .deb for the Kanidm CLI + debs/kanidmd: + build a .deb for the Kanidm daemon + debs/kanidm-unixd: + build a .deb for the Kanidm UNIX tools (PAM/NSS, unixd and related tools) and SSH tools + debs/all: + build all the debs 5. So if you wanted to build the package for the Kanidm CLI, run `make -f ./platform/debian/Makefile debs/kanidm`. diff --git a/platform/debian/build_kanidm.sh b/platform/debian/build_kanidm.sh index 5460b50ed..0caac9817 100755 --- a/platform/debian/build_kanidm.sh +++ b/platform/debian/build_kanidm.sh @@ -26,11 +26,7 @@ fi BUILD_DIR="$HOME/build" if [ -z "${SKIP_DEPS}" ]; then - if [ "$(whoami)" != "root" ]; then - sudo ./platform/debian/install_deps.sh - else - ./platform/debian/install_deps.sh - fi + PACKAGING=1 ./scripts/install_ubuntu_dependencies.sh else echo "SKIP_DEPS configured, skipping install of rust and packages" fi diff --git a/platform/debian/fix_wasm_opt.sh b/platform/debian/fix_wasm_opt.sh deleted file mode 100755 index 139c6c586..000000000 --- a/platform/debian/fix_wasm_opt.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -# This is a hack to work around the fact that wasm-opt isn't available on -# Linux + aarch64 - -if [ "$(uname -m)" = "aarch64" ] && [ "$(uname -s)" = "Linux" ]; then - echo "#####################################" - echo " WASM-OPT NOT AVAILABLE" - echo "" - echo " Large WASM ahead." - echo "#####################################" - - if [ "$(grep -oE 'wasm-opt.*' server/web_ui/Cargo.toml | awk '{print $NF}')" != "false" ]; then - echo "Updating server/web_ui/Cargo.toml to disable wasm-opt" - cat >> server/web_ui/Cargo.toml <<-EOM -[package.metadata.wasm-pack.profile.release] -wasm-opt = false -EOM - fi -fi - diff --git a/platform/debian/install_deps.sh b/platform/debian/install_deps.sh deleted file mode 100755 index d38f042b9..000000000 --- a/platform/debian/install_deps.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env bash - -set -e - -echo "Updating local packages" -if [ "$(whoami)" == "root" ]; then - apt-get update -else - sudo apt-get update -fi - -echo "Installing build dependencies" -if [ "$(whoami)" == "root" ]; then -apt-get install -y \ - libpam0g-dev \ - libudev-dev \ - libssl-dev \ - pkg-config \ - make \ - devscripts \ - fakeroot \ - dh-make \ - debmake -else - sudo apt-get install -y \ - libpam0g-dev \ - libudev-dev \ - libssl-dev \ - pkg-config \ - make \ - devscripts \ - fakeroot \ - dh-make \ - debmake -fi - -if [ -f "$HOME/.cargo/env" ]; then - # shellcheck disable=SC1091 - source "$HOME/.cargo/env" -fi - -if [ "$(which cargo | wc -l)" -ne 1 ]; then - echo "Installing rust" - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > "$TMPDIR/rustup.sh" - chmod +x "${TMPDIR}/rustup.sh" - "${TMPDIR}/rustup.sh" -y - echo "Done installing rust!" -else - echo "rust already installed!" -fi - -if [ "$1" == "kanidmd" ] && [ "$(which wasm-pack | wc -l)" -eq 0 ]; then - echo "Installing wasm-pack" - echo "Downloading script to ~/install-wasm-pack" - curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf > "${HOME}/install-wasm-pack" - chmod +x "${HOME}/install-wasm-pack" - if [ "$(whoami)" == "root" ]; then - "${HOME}/install-wasm-pack" - else - sudo "${HOME}/install-wasm-pack" - fi - rm "${HOME}/install-wasm-pack" -else - echo "wasm-pack already installed" -fi \ No newline at end of file diff --git a/platform/debian/kanidmd/rules b/platform/debian/kanidmd/rules index 9e21c7bfd..364e881ca 100755 --- a/platform/debian/kanidmd/rules +++ b/platform/debian/kanidmd/rules @@ -28,9 +28,6 @@ override_dh_autoreconf: override_dh_auto_build: KANIDM_BUILD_PROFILE=release_suse_generic dh_auto_build -- release/${PACKAGE} - ./platform/debian/fix_wasm_opt.sh - cargo install wasm-pack --force - cd server/web_ui && ./build_wasm.sh override_dh_auto_test: override_dh_shlibdeps: diff --git a/platform/debian/ubuntu_docker_builder.sh b/platform/debian/ubuntu_docker_builder.sh index b2d4cc9f3..4cfcd92e4 100755 --- a/platform/debian/ubuntu_docker_builder.sh +++ b/platform/debian/ubuntu_docker_builder.sh @@ -10,6 +10,8 @@ fi echo "Starting base ubuntu container" echo "Repository is in ~/kanidm/" docker run --rm -it \ + -e "INSTALL_RUST=1" \ + -e "PACKAGING=1" \ -v "$(pwd):/root/kanidm/" \ --workdir "/root/kanidm/" \ ubuntu:latest "$@" diff --git a/scripts/install_ubuntu_dependencies.sh b/scripts/install_ubuntu_dependencies.sh index 174877826..7c81fb6f5 100755 --- a/scripts/install_ubuntu_dependencies.sh +++ b/scripts/install_ubuntu_dependencies.sh @@ -16,14 +16,27 @@ ${SUDOCMD} apt-get install -y \ pkg-config \ curl \ rsync \ - build-essential + git \ + build-essential \ + +if [ "${PACKAGING}" -eq 1 ]; then + ${SUDOCMD} apt-get install -y \ + devscripts \ + fakeroot \ + dh-make \ + debmake +fi + +if [ "${PACKAGING}" -eq 1 ]; then + export INSTALL_RUST=1 +fi if [ -z "$(which cargo)" ]; then if [ -f "$HOME/.cargo/env" ]; then #shellcheck disable=SC1091 source "$HOME/.cargo/env" elif [ "${INSTALL_RUST}" == "1" ]; then - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y #shellcheck disable=SC1091 source "$HOME/.cargo/env" fi