summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSune Vuorela <sune@vuorela.dk>2023-03-22 19:22:40 +0100
committerSune Vuorela <sune@vuorela.dk>2023-05-21 15:07:40 +0200
commit720fcc1f1b7c2d13894ce4dfee4f68a40384d91b (patch)
tree88cba2b8211367226faec4323b1c7359e20b53ee
parentf07d64831252a9cb7775d12e5ce9b663aaae63d5 (diff)
Let's try get in a bit of gnupg
A script to build a gnupg2.4.1 A gpgme that is hardcoded to use the above gnupg And enough CMake to see we can find it.
-rw-r--r--.gitlab-ci.yml4
-rw-r--r--CMakeLists.txt10
-rw-r--r--do-the-gnupg-2.4-dance.sh51
3 files changed, 62 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b83b69d1..3b87969a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -38,9 +38,11 @@ clang_format:
build:
stage: build
script:
+ - apt-get update
+ - bash do-the-gnupg-2.4-dance.sh $PWD/build/gnupg/
- git clone --branch ${CI_COMMIT_REF_NAME} --depth 1 ${TEST_DATA_URL} test-data || git clone --depth 1 ${UPSTREAM_TEST_DATA_URL} test-data
- mkdir -p build && cd build
- - cmake -G Ninja -DTESTDATADIR=$PWD/../test-data ..
+ - cmake -G Ninja -DTESTDATADIR=$PWD/../test-data -DCMAKE_PREFIX_PATH=$PWD/gnupg ..
- ninja -j ${FDO_CI_CONCURRENT}
- ctest --output-on-failure
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 04696499..a7438542 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -152,6 +152,7 @@ macro_optional_find_package(JPEG)
macro_optional_find_package(PNG)
macro_optional_find_package(TIFF)
macro_optional_find_package(NSS3)
+macro_optional_find_package(Gpgmepp 1.19)
if(ENABLE_DCTDECODER STREQUAL "libjpeg")
if(JPEG_FOUND)
include(CheckCSourceCompiles)
@@ -351,6 +352,9 @@ include_directories(
if (NSS3_FOUND)
set(ENABLE_NSS3 ON)
endif()
+if (Gpgmepp_FOUND)
+ set(ENABLE_GPGME ON)
+endif()
if(PNG_FOUND)
set(ENABLE_LIBPNG ON)
endif()
@@ -362,6 +366,9 @@ set(SIGNATURE_BACKENDS "")
if(ENABLE_NSS3)
list(APPEND SIGNATURE_BACKENDS "NSS")
endif()
+if(ENABLE_GPGME)
+ list(APPEND SIGNATURE_BACKENDS "GPG")
+endif()
list(LENGTH SIGNATURE_BACKENDS _signing_backends_count)
if (_signing_backends_count GREATER 0)
@@ -379,8 +386,6 @@ if (NOT DEFAULT_SIGNATURE_BACKEND)
set(DEFAULT_SIGNATURE_BACKEND "None")
endif()
-
-
# Recent versions of poppler-data install a .pc file.
# Use it to determine the encoding data path, if available.
# Default to the same prefix otherwise.
@@ -860,6 +865,7 @@ show_end_message_yesno("use libtiff" ENABLE_LIBTIFF)
show_end_message_yesno("use zlib compress" ENABLE_ZLIB)
show_end_message_yesno("use zlib uncompress" ENABLE_ZLIB_UNCOMPRESS)
show_end_message_yesno("use nss3" ENABLE_NSS3)
+show_end_message_yesno("use gpg" ENABLE_GPGME)
show_end_message(" default signature backend" ${DEFAULT_SIGNATURE_BACKEND})
show_end_message_yesno("use curl" ENABLE_LIBCURL)
show_end_message_yesno("use libopenjpeg2" WITH_OPENJPEG)
diff --git a/do-the-gnupg-2.4-dance.sh b/do-the-gnupg-2.4-dance.sh
new file mode 100644
index 00000000..c46edf83
--- /dev/null
+++ b/do-the-gnupg-2.4-dance.sh
@@ -0,0 +1,51 @@
+#! /bin/sh
+set -eux
+
+if [ -z ${1} ]
+then
+ echo "Destination must be provided"
+ exit 1
+fi
+
+apt-get -y install --no-install-recommends libksba-dev libgpg-error-dev libgcrypt-dev libassuan-dev libnpth-dev libgnutls28-dev pkg-config libldap-dev wget ca-certificates bzip2 patch texinfo
+
+DESTINATION=${1}
+if [ -e "${DESTINATION}/bin/gpg" ]
+then
+ echo "Already installed"
+ exit 0
+fi
+
+if [ -e "${DESTINATION}" ]
+then
+ echo "Please use a nonexisting destination"
+ exit 1
+fi
+
+GNUPG_VERSION=2.4.1
+GPGME_VERSION=1.19.0
+
+WORKDIR=$(mktemp -d)
+
+cd ${WORKDIR}
+
+wget https://gnupg.org/ftp/gcrypt/gnupg/gnupg-${GNUPG_VERSION}.tar.bz2
+tar xf gnupg-${GNUPG_VERSION}.tar.bz2
+wget https://gnupg.org/ftp/gcrypt/gpgme/gpgme-${GPGME_VERSION}.tar.bz2
+tar xf gpgme-${GPGME_VERSION}.tar.bz2
+
+
+mkdir -p ${WORKDIR}/gnupg-${GNUPG_VERSION}/build
+cd gnupg-${GNUPG_VERSION}
+cd build
+../configure --prefix=${DESTINATION}
+make install
+
+cd ${WORKDIR}
+
+mkdir gpgme-${GPGME_VERSION}/build
+cd gpgme-${GPGME_VERSION}/build
+../configure --prefix=${DESTINATION} --enable-fixed-path=${DESTINATION}/bin --enable-languages=cpp
+PATH=${DESTINATION}/bin:$PATH make -j5 install
+
+