build
+build-bookworm
+build-trixie
.vscode
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+#!/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
### 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
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`.
## Develop with Tests
+install develop dependencies
+
+```bash
+sudo apt-get install libcmocka-dev lcov
+```
+
build with tests and run it
```bash
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")