From 4a0692071498dfcf247185353ee4b72dcf1e02fc Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 14 Dec 2024 10:00:33 +0100 Subject: [PATCH] add podman container for build bookworm and trixie --- .gitignore | 2 ++ builder/Containerfile-bookworm | 16 ++++++++++++++++ builder/Containerfile-trixie | 16 ++++++++++++++++ builder/build-in-container | 25 +++++++++++++++++++++++++ readme.md | 19 +++++++++++++++++-- src/CMakeLists.txt | 2 +- 6 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 builder/Containerfile-bookworm create mode 100644 builder/Containerfile-trixie create mode 100755 builder/build-in-container diff --git a/.gitignore b/.gitignore index 5acb669..04eaddf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ build +build-bookworm +build-trixie .vscode diff --git a/builder/Containerfile-bookworm b/builder/Containerfile-bookworm new file mode 100644 index 0000000..6d9349a --- /dev/null +++ b/builder/Containerfile-bookworm @@ -0,0 +1,16 @@ +FROM debian:bookworm +WORKDIR /app +RUN apt-get update \ +&& apt-get install -y build-essential \ +cmake \ +imagemagick \ +libmagickcore-dev \ +libsane-dev \ +libconfuse-dev \ +libcurl4-gnutls-dev \ +libjson-c-dev \ +&& apt-get clean +CMD mkdir -p build-bookworm \ +&& cd build-bookworm \ +&& cmake -DEXTRA_VERSION="-bookworm" -DCMAKE_BUILD_TYPE=Release .. \ +&& make -j$(nproc) package \ No newline at end of file diff --git a/builder/Containerfile-trixie b/builder/Containerfile-trixie new file mode 100644 index 0000000..460ba5b --- /dev/null +++ b/builder/Containerfile-trixie @@ -0,0 +1,16 @@ +FROM debian:trixie +WORKDIR /app +RUN apt-get update \ +&& apt-get install -y build-essential \ +cmake \ +imagemagick \ +libmagickcore-dev \ +libsane-dev \ +libconfuse-dev \ +libcurl4-gnutls-dev \ +libjson-c-dev \ +&& apt-get clean +CMD mkdir -p build-trixie \ +&& cd build-trixie \ +&& cmake -DEXTRA_VERSION="-trixie" -DCMAKE_BUILD_TYPE=Release .. \ +&& make -j$(nproc) package \ No newline at end of file diff --git a/builder/build-in-container b/builder/build-in-container new file mode 100755 index 0000000..f113eda --- /dev/null +++ b/builder/build-in-container @@ -0,0 +1,25 @@ +#!/bin/bash + +main() +{ + user=$(whoami) + + if [ "$user" != "root" ]; then + echo "ERROR: you must run as root" + exit 1 + fi + + imageExists=$(podman image ls | grep sane-kds-s2000w-net-builder-bookworm) + if [ -z "$imageExists" ]; then + podman build -f builder/Containerfile-bookworm -t sane-kds-s2000w-net-builder-bookworm + fi + podman run -tiv ./:/app --rm sane-kds-s2000w-net-builder-bookworm + + imageExists=$(podman image ls | grep sane-kds-s2000w-net-builder-trixie) + if [ -z "$imageExists" ]; then + podman build -f builder/Containerfile-trixie -t sane-kds-s2000w-net-builder-trixie + fi + podman run -tiv ./:/app --rm sane-kds-s2000w-net-builder-trixie +} + +main diff --git a/readme.md b/readme.md index ab5bd1d..cbe758f 100644 --- a/readme.md +++ b/readme.md @@ -46,11 +46,12 @@ sudo make install ### Build deb package -You need to install dependencies (Debian 12 Bookworm) +You need to install dependencies ```bash -sudo apt-get install imagemagick libcmocka-dev lcov sane libsane-dev libconfuse-dev libcurl4-gnutls-dev libjson-c-dev libmagickcore-dev +sudo apt-get install imagemagick sane libsane-dev libconfuse-dev libcurl4-gnutls-dev libjson-c-dev libmagickcore-dev ``` + Build Package ```bash @@ -65,6 +66,14 @@ Install Package sudo dpkg -i *.deb ``` +### Build deb package for bookworm and trixie + +it can build with podman as root. + +```bash +sudo ./builder/build-in-container +``` + ### Configuration add `kds_s2000w_net` to the file `/etc/sane.d/dll.conf`. @@ -78,6 +87,12 @@ username = "muster" ## Develop with Tests +install develop dependencies + +```bash +sudo apt-get install libcmocka-dev lcov +``` + build with tests and run it ```bash diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c099e57..125d551 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -114,7 +114,7 @@ SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) SET(CPACK_DEBIAN_PACKAGE_NAME ${PROJECT_NAME}) SET(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_HOST_SYSTEM_PROCESSOR}) -SET(CPACK_DEBIAN_FILE_NAME ${PROJECT_NAME}_${PROJECT_VERSION}-1_${CMAKE_HOST_SYSTEM_PROCESSOR}.deb) +SET(CPACK_DEBIAN_FILE_NAME ${PROJECT_NAME}_${PROJECT_VERSION}-1${EXTRA_VERSION}_${CMAKE_HOST_SYSTEM_PROCESSOR}.deb) SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) SET(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) SET(CPACK_DEBIAN_PACKAGE_RELEASE "1") -- 2.39.5