Commit 86bead36dbb4c2775028127c5776fa70dc7baa5c

Authored by m-holger
Committed by Jay Berkenbilt
1 parent dbf9f15f

Bump version to 12.3.0 and C++ to C++-20

CMakeLists.txt
... ... @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.16)
7 7 # also find the version number here. generate_auto_job also reads the
8 8 # version from here.
9 9 project(qpdf
10   - VERSION 12.2.1
  10 + VERSION 12.3.0
11 11 LANGUAGES C CXX)
12 12  
13 13 # Honor CMAKE_REQUIRED_LIBRARIES when checking for include files. This
... ... @@ -167,9 +167,9 @@ Please remove CMakeCache.txt and the CMakeFiles directories.")
167 167 endif()
168 168  
169 169 if(CXX_NEXT)
170   - set(CMAKE_CXX_STANDARD 20)
  170 + set(CMAKE_CXX_STANDARD 23)
171 171 else()
172   - set(CMAKE_CXX_STANDARD 17)
  172 + set(CMAKE_CXX_STANDARD 20)
173 173 endif()
174 174 set(CMAKE_CXX_EXTENSIONS OFF)
175 175 set(CMAKE_CXX_STANDARD_REQUIRED ON)
... ...
appimage/Dockerfile
1   -FROM ubuntu:18.04
  1 +# This should be based on as old of an Ubuntu LTS as possible while
  2 +# supporting the minimum C++ or other requirements.
  3 +FROM ubuntu:22.04
2 4 ENV DEBIAN_FRONTEND=noninteractive
3 5 RUN apt-get update
4 6 RUN apt-get -y install screen git sudo \
5   - build-essential pkg-config \
  7 + build-essential pkg-config cmake \
6 8 zlib1g-dev libjpeg-dev libgnutls28-dev \
7   - python3-pip texlive-latex-extra latexmk \
8   - inkscape imagemagick busybox-static wget fuse && \
  9 + python3-sphinx python3-sphinx-rtd-theme \
  10 + libjs-sphinxdoc texlive texlive-latex-extra \
  11 + latexmk tex-gyre imagemagick busybox-static \
  12 + wget fuse && \
9 13 apt-get clean && rm -rf /var/lib/apt/lists/*
10   -# Get cmake from pypi. We need to keep Ubuntu 18.04 for a while longer
11   -# since the glibc in Ubuntu 20.04 is too new (as of late 2023) for
12   -# Amazon Linux 2 in Lambda and for some supported CentOS versions.
13   -# When we are ready to update to 20.04 or newer, remove the version
14   -# constraint on sphinx, and install the OS package for cmake.
15   -RUN pip3 install --upgrade pip
16   -RUN pip3 install sphinx==4 sphinx_rtd_theme cmake
17   -COPY entrypoint /entrypoint
18   -RUN chmod +x /entrypoint
  14 +COPY --chmod=0755 entrypoint /entrypoint
19 15 ENTRYPOINT [ "/entrypoint" ]
... ...
appimage/build-appimage
... ... @@ -47,14 +47,14 @@ fi
47 47 _osversion=$(cat /etc/os-release | grep PRETTY_NAME | awk -F'=' '{print $2}' | sed 's#"##g')
48 48  
49 49 # Warn users building the AppImage locally:
50   -if [[ ! $_osversion =~ Ubuntu\ 18.04.*\ LTS ]]; then
  50 +if [[ ! $_osversion =~ Ubuntu\ 22.04.*\ LTS ]]; then
51 51 set +x
52 52 echo ""
53 53 # 0 1 2 3 4 5 6 7
54 54 # 01234567890123456789012345678901234567890123456789012345678901234567890123456789
55 55 echo "+===========================================================================+"
56 56 echo "|| WARNING: You are about to build a QPDF AppImage on a system which is ||"
57   - echo "|| NOT Ubuntu 18.04 LTS. ||"
  57 + echo "|| NOT Ubuntu 22.04 LTS. ||"
58 58 echo "|| ||"
59 59 echo "|| It is recommended that you use a distribution that is at least a ||"
60 60 echo "|| few years old to maximize the number of Linux distributions the ||"
... ... @@ -67,7 +67,6 @@ set +x
67 67 set -x
68 68 fi
69 69  
70   -
71 70 # From where do we run this script?
72 71 here="$(dirname $(readlink -f "$0"))"
73 72 top=$(dirname $here)
... ... @@ -116,9 +115,7 @@ cd $here/build
116 115 for width in 64 128 256 512; do
117 116 dir=appdir/usr/share/icons/hicolor/${width}x${width}/apps
118 117 mkdir -p $dir
119   - inkscape -z -e qpdf-tmp.png -w $width -b white $top/logo/qpdf.svg
120   - convert qpdf-tmp.png -gravity center -background white -extent ${width}x${width} $dir/qpdf.png
121   - rm qpdf-tmp.png
  118 + convert $top/logo/qpdf.svg -gravity center -background white -extent ${width}x${width} $dir/qpdf.png
122 119 done
123 120  
124 121 # Copy .desktop and .appdata.xml metadata for desktop integration into place:
... ... @@ -173,21 +170,7 @@ export LD_LIBRARY_PATH=$(dirname $(find $appdir -type l -name 'libqpdf.so.*'))
173 170 # Replace symlink with custom script
174 171 rm appdir/AppRun; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun
175 172  
176   -# If we are not on Ubuntu Trusty, we need to disable 'appstreamcli' validation:
177   -if [[ $_osversion =~ Ubuntu\ 14.04.*\ LTS ]]; then
178   - appimagetool_param=""
179   -else
180   - appimagetool_param="-n"
181   - set +x
182   - echo ""
183   - echo " Running 'appimagetool' with '-n' parameter..."
184   - echo " Reason: this does not seem to be a build running on"
185   - echo " Ubuntu Trusty 14.04."
186   - echo " '-n' disables checking of AppStream data by the 'appstreamcli'"
187   - echo " utility since post-Trusty versions have incompatible changes."
188   - echo ""
189   - set -x
190   -fi
  173 +appimagetool_param="-n"
191 174  
192 175 # Set up a version string to include in the AppImage name
193 176 MAJOR_QPDF_VERSION=$( ./appdir/usr/bin/qpdf --version | grep "qpdf version" | awk '{print $3}' )
... ...
include/qpdf/DLL.h
... ... @@ -26,13 +26,13 @@
26 26  
27 27 /* The first version of qpdf to include the version constants is 10.6.0. */
28 28 #define QPDF_MAJOR_VERSION 12
29   -#define QPDF_MINOR_VERSION 2
30   -#define QPDF_PATCH_VERSION 1
  29 +#define QPDF_MINOR_VERSION 3
  30 +#define QPDF_PATCH_VERSION 0
31 31  
32 32 #ifdef QPDF_FUTURE
33   -# define QPDF_VERSION "12.2.1+future"
  33 +# define QPDF_VERSION "12.3.0+future"
34 34 #else
35   -# define QPDF_VERSION "12.2.1"
  35 +# define QPDF_VERSION "12.3.0"
36 36 #endif
37 37  
38 38 /*
... ...
job.sums
1 1 # Generated by generate_auto_job
2   -CMakeLists.txt 6d1c286b464c50843f2cfbd5808adc2de3cf5850f934471093cfdac63f9918e7
  2 +CMakeLists.txt 18214e276670dc8beb2ab83f789c6d94941bc92b199b353f3943024cfd41d3bc
3 3 generate_auto_job f64733b79dcee5a0e3e8ccc6976448e8ddf0e8b6529987a66a7d3ab2ebc10a86
4 4 include/qpdf/auto_job_c_att.hh 4c2b171ea00531db54720bf49a43f8b34481586ae7fb6cbf225099ee42bc5bb4
5 5 include/qpdf/auto_job_c_copy_att.hh 50609012bff14fd82f0649185940d617d05d530cdc522185c7f3920a561ccb42
... ... @@ -16,5 +16,5 @@ libqpdf/qpdf/auto_job_json_init.hh b49378f00d521a9f3e0ce9086e30b082bc6ef8e43c845
16 16 libqpdf/qpdf/auto_job_schema.hh f6a3e8b663714bba50b594f5e31437bbcb96ca4609d2c150c3bbc172e3b000fa
17 17 manual/_ext/qpdf.py 6add6321666031d55ed4aedf7c00e5662bba856dfcd66ccb526563bffefbb580
18 18 manual/cli.rst 6fae28c9589bfde5b55260c95a7c64ad48688875f14f195129606405b32a04c6
19   -manual/qpdf.1 76b02da5aed70b605e01bf26a856dbd7617d086acfb96d240063cfcc226e9817
  19 +manual/qpdf.1 358dfe1bbeb49366d6dd17f74d883295344725b985183b8ca5e23226461654b3
20 20 manual/qpdf.1.in 436ecc85d45c4c9e2dbd1725fb7f0177fb627179469f114561adf3cb6cbb677b
... ...
manual/installation.rst
... ... @@ -16,7 +16,7 @@ need to build qpdf in various circumstances.
16 16 Basic Dependencies
17 17 ~~~~~~~~~~~~~~~~~~
18 18  
19   -- A C++ compiler that supports C++-17
  19 +- A C++ compiler that supports C++-20
20 20  
21 21 - `CMake <https://www.cmake.org>`__ version 3.16 or later
22 22  
... ...
manual/qpdf.1
... ... @@ -3,7 +3,7 @@
3 3 .\" Edits will be automatically overwritten if the build is
4 4 .\" run in maintainer mode.
5 5 .\"
6   -.TH QPDF "1" "" "qpdf version 12.2.1" "User Commands"
  6 +.TH QPDF "1" "" "qpdf version 12.3.0" "User Commands"
7 7 .SH NAME
8 8 qpdf \- PDF transformation software
9 9 .SH SYNOPSIS
... ...
manual/release-notes.rst
... ... @@ -13,6 +13,16 @@ more detail.
13 13  
14 14 .. x.y.z: not yet released
15 15  
  16 +12.3.0: not yet released
  17 + - Build changes
  18 +
  19 + - A C++-20 compiler is now required.
  20 +
  21 + - The AppImage and Linux standalone binary distributions are now
  22 + built with Ubuntu 22.04 to support C++-20, which means they will
  23 + not work on some older Linux distributions. If you need support
  24 + for an older distribution, please use version 12.2.0 or below.
  25 +
16 26 12.2.0: May 4, 2025
17 27 - Upcoming C++ Version Change
18 28  
... ...