Commit c8dc484fdfbefc6d9502901f3d323852fde5c06e
1 parent
894fc8ef
Tweak release instructions, support signed AppImage
Showing
5 changed files
with
28 additions
and
3 deletions
README-maintainer.md
| @@ -27,6 +27,7 @@ | @@ -27,6 +27,7 @@ | ||
| 27 | * libqpdf/QPDF.cc | 27 | * libqpdf/QPDF.cc |
| 28 | * manual/qpdf-manual.xml | 28 | * manual/qpdf-manual.xml |
| 29 | `make_dist` verifies this consistency. | 29 | `make_dist` verifies this consistency. |
| 30 | +* Generate a signed AppImage. To do this, have the gpg key available and run `./appimage/build-appimage --sign`. Rename the AppImage in appimage/build to qpdf-<version>-x86_64.AppImage and include it in the set of files to be released. | ||
| 30 | * Update release date in `manual/qpdf-manual.xml`. Remember to ensure that the entities at the top of the document are consistent with the release notes for both version and release date. | 31 | * Update release date in `manual/qpdf-manual.xml`. Remember to ensure that the entities at the top of the document are consistent with the release notes for both version and release date. |
| 31 | * Check `TODO` file to make sure all planned items for the release are done or retargeted. | 32 | * Check `TODO` file to make sure all planned items for the release are done or retargeted. |
| 32 | * Each year, update copyright notices. Just do a case-insensitive search for copyright. Don't forget copyright in manual. Also update debian copyright in debian package. Last updated: 2018. | 33 | * Each year, update copyright notices. Just do a case-insensitive search for copyright. Don't forget copyright in manual. Also update debian copyright in debian package. Last updated: 2018. |
| @@ -58,6 +59,12 @@ | @@ -58,6 +59,12 @@ | ||
| 58 | git tag -s release-qpdf-$version HEAD -m"qpdf $version" | 59 | git tag -s release-qpdf-$version HEAD -m"qpdf $version" |
| 59 | ``` | 60 | ``` |
| 60 | * When releasing on sourceforge, `external-libs` distributions go in `external-libs/yyyymmdd`, and qpdf distributions go in `qpdf/vvv`. Make the source package the default for all but Windows, and make the 32-bit mingw build the default for Windows. | 61 | * When releasing on sourceforge, `external-libs` distributions go in `external-libs/yyyymmdd`, and qpdf distributions go in `qpdf/vvv`. Make the source package the default for all but Windows, and make the 32-bit mingw build the default for Windows. |
| 62 | +* Prepare and archive all release files. Files should be the source package, Windows binaries, AppImage, checksum files, and signature files. | ||
| 63 | +* Create a github release after pushing the tag. `gcurl` is an alias that includes the auth token. | ||
| 64 | + ``` | ||
| 65 | + url=$(gcurl -s -XPOST https://api.github.com/repos/qpdf/qpdf/releases -d'{"tag_name": "release-qpdf-$version", "name": "qpdf $version", "draft": true, "body": "test *body* text"}' | jq -r '.url') | ||
| 66 | + ``` | ||
| 67 | +* Upload files to sourceforge and github. Publish the github release. Release notes can be added to the github release manually. Publish a news item manually on sourceforge. Email the qpdf-announce list. | ||
| 61 | 68 | ||
| 62 | # General Build Stuff | 69 | # General Build Stuff |
| 63 | 70 |
README-what-to-download.md
| 1 | To build from source for Linux or other UNIX/UNIX-like systems, it is generally sufficient to download just the source `qpdf-<version>.tar.gz` file. | 1 | To build from source for Linux or other UNIX/UNIX-like systems, it is generally sufficient to download just the source `qpdf-<version>.tar.gz` file. |
| 2 | 2 | ||
| 3 | +Virtually all Linux distributions include packages for qpdf. If you'd like to run the latest version of qpdf on an AppImage, you can download `qpdf-<version>-x86_64.AppImage`. | ||
| 4 | + | ||
| 3 | For Windows, there are several additional files that you might want to download. | 5 | For Windows, there are several additional files that you might want to download. |
| 4 | 6 | ||
| 5 | * `qpdf-<version>-bin-mingw32.zip` | 7 | * `qpdf-<version>-bin-mingw32.zip` |
appimage/build-appimage
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | set -ex | 2 | set -ex |
| 3 | +sign= | ||
| 4 | +if [ "$1" = "--sign" ]; then | ||
| 5 | + sign=--sign | ||
| 6 | +fi | ||
| 3 | here="$(dirname $(readlink -f "$0"))" | 7 | here="$(dirname $(readlink -f "$0"))" |
| 4 | top=$(dirname $here) | 8 | top=$(dirname $here) |
| 5 | cd $top | 9 | cd $top |
| @@ -30,7 +34,7 @@ unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH | @@ -30,7 +34,7 @@ unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH | ||
| 30 | # Generate AppImage | 34 | # Generate AppImage |
| 31 | ./linuxdeployqt*.AppImage --appimage-extract | 35 | ./linuxdeployqt*.AppImage --appimage-extract |
| 32 | rm appdir/AppRun ; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun # Replace symlink with custom script | 36 | rm appdir/AppRun ; cp $top/appimage/AppRun appdir; chmod a+x appdir/AppRun # Replace symlink with custom script |
| 33 | -PATH=./squashfs-root/usr/bin:$PATH ./squashfs-root/usr/bin/appimagetool appdir | 37 | +PATH=./squashfs-root/usr/bin:$PATH ./squashfs-root/usr/bin/appimagetool $sign appdir |
| 34 | echo "" | 38 | echo "" |
| 35 | echo "*** AppImage is ready in appimage/build ***" | 39 | echo "*** AppImage is ready in appimage/build ***" |
| 36 | echo "" | 40 | echo "" |
appimage/qpdf.desktop
| @@ -2,6 +2,6 @@ | @@ -2,6 +2,6 @@ | ||
| 2 | Type=Application | 2 | Type=Application |
| 3 | Terminal=true | 3 | Terminal=true |
| 4 | Exec=qpdf | 4 | Exec=qpdf |
| 5 | -Name=QPDF | 5 | +Name=qpdf |
| 6 | Comment=Structural, content-preserving transformations on PDF files | 6 | Comment=Structural, content-preserving transformations on PDF files |
| 7 | Icon=qpdf | 7 | Icon=qpdf |
ispell-words
| @@ -56,11 +56,13 @@ allowPrintLowRes | @@ -56,11 +56,13 @@ allowPrintLowRes | ||
| 56 | antivirus | 56 | antivirus |
| 57 | aobjid | 57 | aobjid |
| 58 | apexcovantage | 58 | apexcovantage |
| 59 | -API | 59 | +api |
| 60 | APIs | 60 | APIs |
| 61 | appendable | 61 | appendable |
| 62 | appendItem | 62 | appendItem |
| 63 | appendString | 63 | appendString |
| 64 | +AppImage | ||
| 65 | +appimage | ||
| 64 | arandom | 66 | arandom |
| 65 | arg | 67 | arg |
| 66 | argc | 68 | argc |
| @@ -95,6 +97,7 @@ assertType | @@ -95,6 +97,7 @@ assertType | ||
| 95 | assignCompressedObjectNumbers | 97 | assignCompressedObjectNumbers |
| 96 | atof | 98 | atof |
| 97 | atoi | 99 | atoi |
| 100 | +auth | ||
| 98 | AuthEvent | 101 | AuthEvent |
| 99 | autobuilder | 102 | autobuilder |
| 100 | autoconf | 103 | autoconf |
| @@ -198,6 +201,7 @@ CHPageOffsetEntry | @@ -198,6 +201,7 @@ CHPageOffsetEntry | ||
| 198 | CHSharedObject | 201 | CHSharedObject |
| 199 | CHSharedObjectEntry | 202 | CHSharedObjectEntry |
| 200 | CHSomething | 203 | CHSomething |
| 204 | +ci | ||
| 201 | cin | 205 | cin |
| 202 | cinfo | 206 | cinfo |
| 203 | ciphertext | 207 | ciphertext |
| @@ -482,6 +486,7 @@ Gagic | @@ -482,6 +486,7 @@ Gagic | ||
| 482 | GajiÄ | 486 | GajiÄ |
| 483 | Gajic | 487 | Gajic |
| 484 | gcc | 488 | gcc |
| 489 | +gcurl | ||
| 485 | gen | 490 | gen |
| 486 | generateHintStream | 491 | generateHintStream |
| 487 | generateID | 492 | generateID |
| @@ -606,6 +611,7 @@ gm | @@ -606,6 +611,7 @@ gm | ||
| 606 | gmail | 611 | gmail |
| 607 | GNUC | 612 | GNUC |
| 608 | gnuwin | 613 | gnuwin |
| 614 | +gpg | ||
| 609 | grayscale | 615 | grayscale |
| 610 | grep | 616 | grep |
| 611 | gsdnld | 617 | gsdnld |
| @@ -754,6 +760,7 @@ JMSG | @@ -754,6 +760,7 @@ JMSG | ||
| 754 | jpeg | 760 | jpeg |
| 755 | jpeglib | 761 | jpeglib |
| 756 | JPOOL | 762 | JPOOL |
| 763 | +jq | ||
| 757 | JSAMPARRAY | 764 | JSAMPARRAY |
| 758 | JSAMPLE | 765 | JSAMPLE |
| 759 | JSAMPROW | 766 | JSAMPROW |
| @@ -864,6 +871,7 @@ msg | @@ -864,6 +871,7 @@ msg | ||
| 864 | msvc | 871 | msvc |
| 865 | MSVC's | 872 | MSVC's |
| 866 | msys | 873 | msys |
| 874 | +MT | ||
| 867 | multibyte | 875 | multibyte |
| 868 | multiline | 876 | multiline |
| 869 | multipage | 877 | multipage |
| @@ -1171,6 +1179,7 @@ replaceObject | @@ -1171,6 +1179,7 @@ replaceObject | ||
| 1171 | replaceOrRemoveKey | 1179 | replaceOrRemoveKey |
| 1172 | replaceReserved | 1180 | replaceReserved |
| 1173 | replaceStreamData | 1181 | replaceStreamData |
| 1182 | +repos | ||
| 1174 | reserveObjects | 1183 | reserveObjects |
| 1175 | resetBits | 1184 | resetBits |
| 1176 | resolveLiteral | 1185 | resolveLiteral |
| @@ -1345,6 +1354,7 @@ Subtype | @@ -1345,6 +1354,7 @@ Subtype | ||
| 1345 | sudo | 1354 | sudo |
| 1346 | supp | 1355 | supp |
| 1347 | suppressions | 1356 | suppressions |
| 1357 | +svg | ||
| 1348 | swapObjects | 1358 | swapObjects |
| 1349 | swversion | 1359 | swversion |
| 1350 | Symlink | 1360 | Symlink |
| @@ -1384,6 +1394,7 @@ Toolchains | @@ -1384,6 +1394,7 @@ Toolchains | ||
| 1384 | toupper | 1394 | toupper |
| 1385 | toUTF | 1395 | toUTF |
| 1386 | tp | 1396 | tp |
| 1397 | +travis | ||
| 1387 | TrimBox | 1398 | TrimBox |
| 1388 | trimTrailerForWrite | 1399 | trimTrailerForWrite |
| 1389 | tt | 1400 | tt |
| @@ -1526,6 +1537,7 @@ xor | @@ -1526,6 +1537,7 @@ xor | ||
| 1526 | XP | 1537 | XP |
| 1527 | xpacket | 1538 | xpacket |
| 1528 | xpdf | 1539 | xpdf |
| 1540 | +XPOST | ||
| 1529 | XRef | 1541 | XRef |
| 1530 | xref | 1542 | xref |
| 1531 | xrefEntry | 1543 | xrefEntry |