]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add podman container for build bookworm and trixie
authorBastian Dehn <hhaalo@arcor.de>
Sat, 14 Dec 2024 09:00:33 +0000 (10:00 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 15 Dec 2024 12:17:01 +0000 (13:17 +0100)
.gitignore
builder/Containerfile-bookworm [new file with mode: 0644]
builder/Containerfile-trixie [new file with mode: 0644]
builder/build-in-container [new file with mode: 0755]
readme.md
src/CMakeLists.txt

index 5acb669bb2a93ebb6c70495b24dc12b068a03d4c..04eaddf7a168d73638dea1b8c9c4a6e9b7e57a32 100644 (file)
@@ -1,2 +1,4 @@
 build
+build-bookworm
+build-trixie
 .vscode
diff --git a/builder/Containerfile-bookworm b/builder/Containerfile-bookworm
new file mode 100644 (file)
index 0000000..6d9349a
--- /dev/null
@@ -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 (file)
index 0000000..460ba5b
--- /dev/null
@@ -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 (executable)
index 0000000..f113eda
--- /dev/null
@@ -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
index ab5bd1dd550ed3d74a74954fde9f4437875db582..cbe758fb289a89615be5abfbc6e3c8f2b1acf6d7 100644 (file)
--- 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
index c099e57e07e7cfbf5815350ef4b14344edc74ef0..125d551d76cbb613f83f26ea685f4327f14cbec8 100644 (file)
@@ -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")