diff options
author | Sune Vuorela <sune@vuorela.dk> | 2023-03-22 19:22:40 +0100 |
---|---|---|
committer | Sune Vuorela <sune@vuorela.dk> | 2023-05-21 15:07:40 +0200 |
commit | 720fcc1f1b7c2d13894ce4dfee4f68a40384d91b (patch) | |
tree | 88cba2b8211367226faec4323b1c7359e20b53ee | |
parent | f07d64831252a9cb7775d12e5ce9b663aaae63d5 (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.yml | 4 | ||||
-rw-r--r-- | CMakeLists.txt | 10 | ||||
-rw-r--r-- | do-the-gnupg-2.4-dance.sh | 51 |
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 + + |