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 +7,7 @@ cmake_minimum_required(VERSION 3.16)
7 # also find the version number here. generate_auto_job also reads the 7 # also find the version number here. generate_auto_job also reads the
8 # version from here. 8 # version from here.
9 project(qpdf 9 project(qpdf
10 - VERSION 12.2.1 10 + VERSION 12.3.0
11 LANGUAGES C CXX) 11 LANGUAGES C CXX)
12 12
13 # Honor CMAKE_REQUIRED_LIBRARIES when checking for include files. This 13 # Honor CMAKE_REQUIRED_LIBRARIES when checking for include files. This
@@ -167,9 +167,9 @@ Please remove CMakeCache.txt and the CMakeFiles directories.") @@ -167,9 +167,9 @@ Please remove CMakeCache.txt and the CMakeFiles directories.")
167 endif() 167 endif()
168 168
169 if(CXX_NEXT) 169 if(CXX_NEXT)
170 - set(CMAKE_CXX_STANDARD 20) 170 + set(CMAKE_CXX_STANDARD 23)
171 else() 171 else()
172 - set(CMAKE_CXX_STANDARD 17) 172 + set(CMAKE_CXX_STANDARD 20)
173 endif() 173 endif()
174 set(CMAKE_CXX_EXTENSIONS OFF) 174 set(CMAKE_CXX_EXTENSIONS OFF)
175 set(CMAKE_CXX_STANDARD_REQUIRED ON) 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 ENV DEBIAN_FRONTEND=noninteractive 4 ENV DEBIAN_FRONTEND=noninteractive
3 RUN apt-get update 5 RUN apt-get update
4 RUN apt-get -y install screen git sudo \ 6 RUN apt-get -y install screen git sudo \
5 - build-essential pkg-config \ 7 + build-essential pkg-config cmake \
6 zlib1g-dev libjpeg-dev libgnutls28-dev \ 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 apt-get clean && rm -rf /var/lib/apt/lists/* 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 ENTRYPOINT [ "/entrypoint" ] 15 ENTRYPOINT [ "/entrypoint" ]
appimage/build-appimage
@@ -47,14 +47,14 @@ fi @@ -47,14 +47,14 @@ fi
47 _osversion=$(cat /etc/os-release | grep PRETTY_NAME | awk -F'=' '{print $2}' | sed 's#"##g') 47 _osversion=$(cat /etc/os-release | grep PRETTY_NAME | awk -F'=' '{print $2}' | sed 's#"##g')
48 48
49 # Warn users building the AppImage locally: 49 # Warn users building the AppImage locally:
50 -if [[ ! $_osversion =~ Ubuntu\ 18.04.*\ LTS ]]; then 50 +if [[ ! $_osversion =~ Ubuntu\ 22.04.*\ LTS ]]; then
51 set +x 51 set +x
52 echo "" 52 echo ""
53 # 0 1 2 3 4 5 6 7 53 # 0 1 2 3 4 5 6 7
54 # 01234567890123456789012345678901234567890123456789012345678901234567890123456789 54 # 01234567890123456789012345678901234567890123456789012345678901234567890123456789
55 echo "+===========================================================================+" 55 echo "+===========================================================================+"
56 echo "|| WARNING: You are about to build a QPDF AppImage on a system which is ||" 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 echo "|| ||" 58 echo "|| ||"
59 echo "|| It is recommended that you use a distribution that is at least a ||" 59 echo "|| It is recommended that you use a distribution that is at least a ||"
60 echo "|| few years old to maximize the number of Linux distributions the ||" 60 echo "|| few years old to maximize the number of Linux distributions the ||"
@@ -67,7 +67,6 @@ set +x @@ -67,7 +67,6 @@ set +x
67 set -x 67 set -x
68 fi 68 fi
69 69
70 -  
71 # From where do we run this script? 70 # From where do we run this script?
72 here="$(dirname $(readlink -f "$0"))" 71 here="$(dirname $(readlink -f "$0"))"
73 top=$(dirname $here) 72 top=$(dirname $here)
@@ -116,9 +115,7 @@ cd $here/build @@ -116,9 +115,7 @@ cd $here/build
116 for width in 64 128 256 512; do 115 for width in 64 128 256 512; do
117 dir=appdir/usr/share/icons/hicolor/${width}x${width}/apps 116 dir=appdir/usr/share/icons/hicolor/${width}x${width}/apps
118 mkdir -p $dir 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 done 119 done
123 120
124 # Copy .desktop and .appdata.xml metadata for desktop integration into place: 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,21 +170,7 @@ export LD_LIBRARY_PATH=$(dirname $(find $appdir -type l -name 'libqpdf.so.*'))
173 # Replace symlink with custom script 170 # Replace symlink with custom script
174 rm appdir/AppRun; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun 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 # Set up a version string to include in the AppImage name 175 # Set up a version string to include in the AppImage name
193 MAJOR_QPDF_VERSION=$( ./appdir/usr/bin/qpdf --version | grep "qpdf version" | awk '{print $3}' ) 176 MAJOR_QPDF_VERSION=$( ./appdir/usr/bin/qpdf --version | grep "qpdf version" | awk '{print $3}' )
include/qpdf/DLL.h
@@ -26,13 +26,13 @@ @@ -26,13 +26,13 @@
26 26
27 /* The first version of qpdf to include the version constants is 10.6.0. */ 27 /* The first version of qpdf to include the version constants is 10.6.0. */
28 #define QPDF_MAJOR_VERSION 12 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 #ifdef QPDF_FUTURE 32 #ifdef QPDF_FUTURE
33 -# define QPDF_VERSION "12.2.1+future" 33 +# define QPDF_VERSION "12.3.0+future"
34 #else 34 #else
35 -# define QPDF_VERSION "12.2.1" 35 +# define QPDF_VERSION "12.3.0"
36 #endif 36 #endif
37 37
38 /* 38 /*
job.sums
1 # Generated by generate_auto_job 1 # Generated by generate_auto_job
2 -CMakeLists.txt 6d1c286b464c50843f2cfbd5808adc2de3cf5850f934471093cfdac63f9918e7 2 +CMakeLists.txt 18214e276670dc8beb2ab83f789c6d94941bc92b199b353f3943024cfd41d3bc
3 generate_auto_job f64733b79dcee5a0e3e8ccc6976448e8ddf0e8b6529987a66a7d3ab2ebc10a86 3 generate_auto_job f64733b79dcee5a0e3e8ccc6976448e8ddf0e8b6529987a66a7d3ab2ebc10a86
4 include/qpdf/auto_job_c_att.hh 4c2b171ea00531db54720bf49a43f8b34481586ae7fb6cbf225099ee42bc5bb4 4 include/qpdf/auto_job_c_att.hh 4c2b171ea00531db54720bf49a43f8b34481586ae7fb6cbf225099ee42bc5bb4
5 include/qpdf/auto_job_c_copy_att.hh 50609012bff14fd82f0649185940d617d05d530cdc522185c7f3920a561ccb42 5 include/qpdf/auto_job_c_copy_att.hh 50609012bff14fd82f0649185940d617d05d530cdc522185c7f3920a561ccb42
@@ -16,5 +16,5 @@ libqpdf/qpdf/auto_job_json_init.hh b49378f00d521a9f3e0ce9086e30b082bc6ef8e43c845 @@ -16,5 +16,5 @@ libqpdf/qpdf/auto_job_json_init.hh b49378f00d521a9f3e0ce9086e30b082bc6ef8e43c845
16 libqpdf/qpdf/auto_job_schema.hh f6a3e8b663714bba50b594f5e31437bbcb96ca4609d2c150c3bbc172e3b000fa 16 libqpdf/qpdf/auto_job_schema.hh f6a3e8b663714bba50b594f5e31437bbcb96ca4609d2c150c3bbc172e3b000fa
17 manual/_ext/qpdf.py 6add6321666031d55ed4aedf7c00e5662bba856dfcd66ccb526563bffefbb580 17 manual/_ext/qpdf.py 6add6321666031d55ed4aedf7c00e5662bba856dfcd66ccb526563bffefbb580
18 manual/cli.rst 6fae28c9589bfde5b55260c95a7c64ad48688875f14f195129606405b32a04c6 18 manual/cli.rst 6fae28c9589bfde5b55260c95a7c64ad48688875f14f195129606405b32a04c6
19 -manual/qpdf.1 76b02da5aed70b605e01bf26a856dbd7617d086acfb96d240063cfcc226e9817 19 +manual/qpdf.1 358dfe1bbeb49366d6dd17f74d883295344725b985183b8ca5e23226461654b3
20 manual/qpdf.1.in 436ecc85d45c4c9e2dbd1725fb7f0177fb627179469f114561adf3cb6cbb677b 20 manual/qpdf.1.in 436ecc85d45c4c9e2dbd1725fb7f0177fb627179469f114561adf3cb6cbb677b
manual/installation.rst
@@ -16,7 +16,7 @@ need to build qpdf in various circumstances. @@ -16,7 +16,7 @@ need to build qpdf in various circumstances.
16 Basic Dependencies 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 - `CMake <https://www.cmake.org>`__ version 3.16 or later 21 - `CMake <https://www.cmake.org>`__ version 3.16 or later
22 22
manual/qpdf.1
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 .\" Edits will be automatically overwritten if the build is 3 .\" Edits will be automatically overwritten if the build is
4 .\" run in maintainer mode. 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 .SH NAME 7 .SH NAME
8 qpdf \- PDF transformation software 8 qpdf \- PDF transformation software
9 .SH SYNOPSIS 9 .SH SYNOPSIS
manual/release-notes.rst
@@ -13,6 +13,16 @@ more detail. @@ -13,6 +13,16 @@ more detail.
13 13
14 .. x.y.z: not yet released 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 12.2.0: May 4, 2025 26 12.2.0: May 4, 2025
17 - Upcoming C++ Version Change 27 - Upcoming C++ Version Change
18 28