Date: Monday, April 4, 2022 @ 19:49:25 Author: andyrtr Revision: 441549
archrelease: copy trunk to extra-x86_64 Added: ghostscript/repos/extra-x86_64/2010_add_build_timestamp_setting.patch (from rev 441548, ghostscript/trunk/2010_add_build_timestamp_setting.patch) ghostscript/repos/extra-x86_64/PKGBUILD (from rev 441548, ghostscript/trunk/PKGBUILD) Deleted: ghostscript/repos/extra-x86_64/2010_add_build_timestamp_setting.patch ghostscript/repos/extra-x86_64/PKGBUILD ----------------------------------------+ 2010_add_build_timestamp_setting.patch | 238 ++++++++++++++--------------- PKGBUILD | 253 +++++++++++++++---------------- 2 files changed, 243 insertions(+), 248 deletions(-) Deleted: 2010_add_build_timestamp_setting.patch =================================================================== --- 2010_add_build_timestamp_setting.patch 2022-04-04 19:49:16 UTC (rev 441548) +++ 2010_add_build_timestamp_setting.patch 2022-04-04 19:49:25 UTC (rev 441549) @@ -1,119 +0,0 @@ -Description: Allow the build timestamp to be externally set - In order to make Ghostscript output reproducible, we need a way to - set the build timestamp to other values than the current time. - We now consistently use gp_get_realtime() instead of directly calling - time() or gp_get_usertime() and make gp_get_realtime() use the value - found in the SOURCE_DATE_EPOCH environment variable if set. Also, - environment timezone is fixed to UTC if SOURCE_DATE_EPOCH is used to - avoid variations. -Author: Eduard Sanou <dh...@openmailbox.org> -Author: Peter De Wachter <pdewa...@gmail.com> -Bug-Debian: https://bugs.debian.org/794004 -Last-Update: 2015-07-30 ---- -This patch header follows DEP-3: https://dep.debian.net/deps/dep3/ ---- a/base/gp_unix.c -+++ b/base/gp_unix.c -@@ -19,6 +19,7 @@ - #ifdef __MINGW32__ - # include "windows_.h" - #endif -+#include "errno_.h" - #include "pipe_.h" - #include "string_.h" - #include "time_.h" -@@ -148,6 +149,7 @@ - gp_get_realtime(long *pdt) - { - struct timeval tp; -+ const char *env; - - #if gettimeofday_no_timezone /* older versions of SVR4 */ - { -@@ -167,6 +169,26 @@ - } - #endif - -+ env = getenv("SOURCE_DATE_EPOCH"); -+ if (env) { -+ char *end; -+ long timestamp; -+ -+ errno = 0; -+ timestamp = strtol(env, &end, 10); -+ if (env == end || *end || errno != 0) { -+ lprintf("Ghostscript: SOURCE_DATE_EPOCH is not a number!\n"); -+ timestamp = 0; -+ } -+ -+ tp.tv_sec = timestamp; -+ tp.tv_usec = 0; -+ -+ /* We need to fix the environment timezone to get reproducible */ -+ /* results when parsing the result of gp_get_realtime. */ -+ setenv("TZ", "UTC", 1); -+ } -+ - /* tp.tv_sec is #secs since Jan 1, 1970 */ - pdt[0] = tp.tv_sec; - ---- a/devices/vector/gdevpdf.c -+++ b/devices/vector/gdevpdf.c -@@ -427,6 +427,7 @@ - */ - { - struct tm tms; -+ long secs_ns[2]; - time_t t; - char buf[1+2+4+2+2+2+2+2+1+2+1+2+1+1+1]; /* (D:yyyymmddhhmmssZhh'mm')\0 */ - int timeoffset; -@@ -438,7 +439,8 @@ - timesign = 'Z'; - timeoffset = 0; - #else -- time(&t); -+ gp_get_realtime(secs_ns); -+ t = secs_ns[0]; - tms = *gmtime(&t); - tms.tm_isdst = -1; - timeoffset = (int)difftime(t, mktime(&tms)); /* tz+dst in seconds */ ---- a/devices/vector/gdevpdfe.c -+++ b/devices/vector/gdevpdfe.c -@@ -199,6 +199,7 @@ - { - /* We don't write a day time because we don't have a time zone. */ - struct tm tms; -+ long secs_ns[2]; - time_t t; - char buf1[4+1+2+1+2+1]; /* yyyy-mm-dd\0 */ - -@@ -206,7 +207,8 @@ - memset(&t, 0, sizeof(t)); - memset(&tms, 0, sizeof(tms)); - #else -- time(&t); -+ gp_get_realtime(secs_ns); -+ t = secs_ns[0]; - tms = *localtime(&t); - #endif - gs_sprintf(buf1, ---- a/devices/vector/gdevpsu.c -+++ b/devices/vector/gdevpsu.c -@@ -183,6 +183,7 @@ - fprintf(f, "%%%%Creator: %s %ld (%s)\n", gs_product, (long)gs_revision, - dev->dname); - { -+ long secs_ns[2]; - time_t t; - struct tm tms; - -@@ -190,7 +191,8 @@ - memset(&t, 0, sizeof(t)); - memset(&tms, 0, sizeof(tms)); - #else -- time(&t); -+ gp_get_realtime(secs_ns); -+ t = secs_ns[0]; - tms = *localtime(&t); - #endif - fprintf(f, "%%%%CreationDate: %d/%02d/%02d %02d:%02d:%02d\n", Copied: ghostscript/repos/extra-x86_64/2010_add_build_timestamp_setting.patch (from rev 441548, ghostscript/trunk/2010_add_build_timestamp_setting.patch) =================================================================== --- 2010_add_build_timestamp_setting.patch (rev 0) +++ 2010_add_build_timestamp_setting.patch 2022-04-04 19:49:25 UTC (rev 441549) @@ -0,0 +1,119 @@ +Description: Allow the build timestamp to be externally set + In order to make Ghostscript output reproducible, we need a way to + set the build timestamp to other values than the current time. + We now consistently use gp_get_realtime() instead of directly calling + time() or gp_get_usertime() and make gp_get_realtime() use the value + found in the SOURCE_DATE_EPOCH environment variable if set. Also, + environment timezone is fixed to UTC if SOURCE_DATE_EPOCH is used to + avoid variations. +Author: Eduard Sanou <dh...@openmailbox.org> +Author: Peter De Wachter <pdewa...@gmail.com> +Bug-Debian: https://bugs.debian.org/794004 +Last-Update: 2015-07-30 +--- +This patch header follows DEP-3: https://dep.debian.net/deps/dep3/ +--- a/base/gp_unix.c ++++ b/base/gp_unix.c +@@ -19,6 +19,7 @@ + #ifdef __MINGW32__ + # include "windows_.h" + #endif ++#include "errno_.h" + #include "pipe_.h" + #include "string_.h" + #include "time_.h" +@@ -148,6 +149,7 @@ + gp_get_realtime(long *pdt) + { + struct timeval tp; ++ const char *env; + + #if gettimeofday_no_timezone /* older versions of SVR4 */ + { +@@ -167,6 +169,26 @@ + } + #endif + ++ env = getenv("SOURCE_DATE_EPOCH"); ++ if (env) { ++ char *end; ++ long timestamp; ++ ++ errno = 0; ++ timestamp = strtol(env, &end, 10); ++ if (env == end || *end || errno != 0) { ++ lprintf("Ghostscript: SOURCE_DATE_EPOCH is not a number!\n"); ++ timestamp = 0; ++ } ++ ++ tp.tv_sec = timestamp; ++ tp.tv_usec = 0; ++ ++ /* We need to fix the environment timezone to get reproducible */ ++ /* results when parsing the result of gp_get_realtime. */ ++ setenv("TZ", "UTC", 1); ++ } ++ + /* tp.tv_sec is #secs since Jan 1, 1970 */ + pdt[0] = tp.tv_sec; + +--- a/devices/vector/gdevpdf.c ++++ b/devices/vector/gdevpdf.c +@@ -427,6 +427,7 @@ + */ + { + struct tm tms; ++ long secs_ns[2]; + time_t t; + char buf[1+2+4+2+2+2+2+2+1+2+1+2+1+1+1]; /* (D:yyyymmddhhmmssZhh'mm')\0 */ + int timeoffset; +@@ -438,7 +439,8 @@ + timesign = 'Z'; + timeoffset = 0; + #else +- time(&t); ++ gp_get_realtime(secs_ns); ++ t = secs_ns[0]; + tms = *gmtime(&t); + tms.tm_isdst = -1; + timeoffset = (int)difftime(t, mktime(&tms)); /* tz+dst in seconds */ +--- a/devices/vector/gdevpdfe.c ++++ b/devices/vector/gdevpdfe.c +@@ -199,6 +199,7 @@ + { + /* We don't write a day time because we don't have a time zone. */ + struct tm tms; ++ long secs_ns[2]; + time_t t; + char buf1[4+1+2+1+2+1]; /* yyyy-mm-dd\0 */ + +@@ -206,7 +207,8 @@ + memset(&t, 0, sizeof(t)); + memset(&tms, 0, sizeof(tms)); + #else +- time(&t); ++ gp_get_realtime(secs_ns); ++ t = secs_ns[0]; + tms = *localtime(&t); + #endif + gs_sprintf(buf1, +--- a/devices/vector/gdevpsu.c ++++ b/devices/vector/gdevpsu.c +@@ -183,6 +183,7 @@ + fprintf(f, "%%%%Creator: %s %ld (%s)\n", gs_product, (long)gs_revision, + dev->dname); + { ++ long secs_ns[2]; + time_t t; + struct tm tms; + +@@ -190,7 +191,8 @@ + memset(&t, 0, sizeof(t)); + memset(&tms, 0, sizeof(tms)); + #else +- time(&t); ++ gp_get_realtime(secs_ns); ++ t = secs_ns[0]; + tms = *localtime(&t); + #endif + fprintf(f, "%%%%CreationDate: %d/%02d/%02d %02d:%02d:%02d\n", Deleted: PKGBUILD =================================================================== --- PKGBUILD 2022-04-04 19:49:16 UTC (rev 441548) +++ PKGBUILD 2022-04-04 19:49:25 UTC (rev 441549) @@ -1,129 +0,0 @@ -# Maintainer: AndyRTR <andy...@archlinux.org> - -pkgbase=ghostscript -pkgname=(ghostscript ghostxps ghostpcl) -pkgver=9.56.0 -pkgrel=1 -pkgdesc="An interpreter for the PostScript language" -url="https://www.ghostscript.com/" -arch=('x86_64') -license=('AGPL3' 'custom') -depends=('libxt' 'libcups' 'fontconfig' 'zlib' 'libpng' 'libjpeg' 'jbig2dec' - 'libtiff' 'lcms2' 'dbus' 'libpaper' 'ijs' 'openjpeg2' 'libidn') -makedepends=('gtk3' 'gnutls' 'glu' 'freeglut') -options=('debug') -# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases -source=(https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver//./}/ghostpdl-${pkgver}.tar.xz - #https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/ghostpdl-${pkgver/.0//}/ghostpdl-${pkgver}.tar.xz - 2010_add_build_timestamp_setting.patch - https://github.com/ArtifexSoftware/ghostpdl/commit/9aae213ff3ae971942b427062799b009c07ea713.patch) -sha512sums=('213aaa844533fe28ffde0008ff6e8ae10096efddf480c236407668a6445ef2c146557af8da05d9664f44ff53bd31809e89178dfe464763365a1af9de49edf507' - 'cd7794ee4f28b11177021b950196385200b610127ed6cb94a45e3202b690b721a0dfcc0276ff39448d4dab64c1b31a76e6c323696a8315aad9edc22077f18a3d' - '530a03f3d333a6c45cc024b5ebd57138b4f7fbff8069e8a81f3015aed9d553b1294e529f57e4123d20442e896dde780c120f438e61c1e3a6436d90c03580e982') - - -### update jbig2dec first! ### - - -prepare() { - cd ghostpdl-${pkgver} - - # *** remove after final decision *** - # new in 9.54.0: - # https://www.ghostscript.com/doc/9.54.0/News.htm - - # 1) inclusion of the tesseract/leptonica sources for OCR capabilities - # at the moment we do not support linking with tesseract/leptonica shared libraries. - # As is normal with such included libraries, deleting those directories and (re)running - # configure (on Unix like systems) will automatically build without the OCR functionality. - # increases package size ghostpcl 2.7->4.9MB | ghostscript 18->23MB | ghostxps 2,7->4.9MB - # https://www.ghostscript.com/doc/9.54.0/VectorDevices.htm#UseOCR - - # this doesn't seem to be worth to keep enabled until linking with shared libs is supported - rm -r tesseract leptonica - - # 2) new directory addition in the source tree: "extract/". - # It contains the implementation for the writing of docx format files used by the - # new "docxwrite" device. This is *not* a "thirdparty library". - # For distribution package maintainers, if you want your packaged Ghostscript to include - # the "docxwrite" device, do not delete this directory. - # ^ this one doesn't affect package size - so let's keep it - - # force it to use system-libs - rm -r cups/libs expat ijs jbig2dec jpeg lcms2mt libpng openjpeg tiff zlib - # using tree freetype because of https://bugs.archlinux.org/task/56849 - # lcms2mt is the new lcms2 fork aimed to replace lcms2 in a thread safe way - - # http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=40dc5b409c6262b18b4bf5386b5482ead4c511e3 - # libs link unwanted to libgpdl that isn't installed - rm -rf gpdl - - # https://bugs.ghostscript.com/show_bug.cgi?id=704405 - sed -i "s/gscms_transformm_color_const/gscms_transform_color_const/" base/gsicc_lcms2.c - - # Debian: # allow the build timestamp to be externally set - patch -Np1 -i ../2010_add_build_timestamp_setting.patch - - # Revert patch breaking build of GTK gsx - patch -Rp1 -i ../9aae213ff3ae971942b427062799b009c07ea713.patch -} - -build() { - cd ghostpdl-${pkgver} - ./configure --prefix=/usr \ - --enable-dynamic \ - --with-ijs \ - --with-jbig2dec \ - --with-x \ - --with-drivers=ALL \ - --with-fontpath=/usr/share/fonts/gsfonts \ - --without-versioned-path \ - --enable-fontconfig \ - --enable-freetype \ - --enable-openjpeg \ - --with-system-libtiff \ - --with-libpaper \ - --disable-compile-inits #--help # needed for linking with system-zlib - make -} - -package_ghostscript() { - optdepends=('texlive-core: needed for dvipdf' - 'gtk3: needed for gsx') - - cd ghostpdl-${pkgver} - make DESTDIR="${pkgdir}" install-gs install-so-gs - - # replace statically linked gs binary with symlink to dynamically linked gsc - rm -v "${pkgdir}"/usr/bin/gs - ln -s gsc "${pkgdir}"/usr/bin/gs - - # remove unwanted localized manpages - rm -rv "${pkgdir}"/usr/share/man/de - - install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE -} - -package_ghostxps() { - pkgdesc="${pkgdesc/PostScript/XPS document}" - depends=("ghostscript=${pkgver}-${pkgrel}") - - cd ghostpdl-${pkgver} - make DESTDIR="${pkgdir}" install-gxps install-so-gxps - rm -r "${pkgdir}"/usr/include - - # fix file conflict - FS#70238 - rm -r "${pkgdir}"/usr/lib/libgxps.so - - install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE -} - -package_ghostpcl() { - pkgdesc="${pkgdesc/PostScript/PCL 6}" - depends=("ghostscript=${pkgver}-${pkgrel}") - - cd ghostpdl-${pkgver} - make DESTDIR="${pkgdir}" install-gpcl6 install-so-gpcl6 - rm -r "${pkgdir}"/usr/include - - install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE -} Copied: ghostscript/repos/extra-x86_64/PKGBUILD (from rev 441548, ghostscript/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2022-04-04 19:49:25 UTC (rev 441549) @@ -0,0 +1,124 @@ +# Maintainer: AndyRTR <andy...@archlinux.org> + +pkgbase=ghostscript +pkgname=(ghostscript ghostxps ghostpcl) +pkgver=9.56.1 +pkgrel=1 +pkgdesc="An interpreter for the PostScript language" +url="https://www.ghostscript.com/" +arch=('x86_64') +license=('AGPL3' 'custom') +depends=('libxt' 'libcups' 'fontconfig' 'zlib' 'libpng' 'libjpeg' 'jbig2dec' + 'libtiff' 'lcms2' 'dbus' 'libpaper' 'ijs' 'openjpeg2' 'libidn') +makedepends=('gtk3' 'gnutls' 'glu' 'freeglut') +options=('debug') +# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases +source=(https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver//./}/ghostpdl-${pkgver}.tar.xz + #https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/ghostpdl-${pkgver/.0//}/ghostpdl-${pkgver}.tar.xz + 2010_add_build_timestamp_setting.patch) +sha512sums=('7eb3e6b8de83d0e31cc976151164326cdc110741eb2e9cddb59ab9590e15a6535659e50dea4feb643b9b3b6d90a26d01fe0326a400833e82b22f0091146151cc' + 'cd7794ee4f28b11177021b950196385200b610127ed6cb94a45e3202b690b721a0dfcc0276ff39448d4dab64c1b31a76e6c323696a8315aad9edc22077f18a3d') + + +### update jbig2dec first! ### + + +prepare() { + cd ghostpdl-${pkgver} + + # *** remove after final decision *** + # new in 9.54.0: + # https://www.ghostscript.com/doc/9.54.0/News.htm + + # 1) inclusion of the tesseract/leptonica sources for OCR capabilities + # at the moment we do not support linking with tesseract/leptonica shared libraries. + # As is normal with such included libraries, deleting those directories and (re)running + # configure (on Unix like systems) will automatically build without the OCR functionality. + # increases package size ghostpcl 2.7->4.9MB | ghostscript 18->23MB | ghostxps 2,7->4.9MB + # https://www.ghostscript.com/doc/9.54.0/VectorDevices.htm#UseOCR - + # this doesn't seem to be worth to keep enabled until linking with shared libs is supported + rm -r tesseract leptonica + + # 2) new directory addition in the source tree: "extract/". + # It contains the implementation for the writing of docx format files used by the + # new "docxwrite" device. This is *not* a "thirdparty library". + # For distribution package maintainers, if you want your packaged Ghostscript to include + # the "docxwrite" device, do not delete this directory. + # ^ this one doesn't affect package size - so let's keep it + + # force it to use system-libs + rm -r cups/libs expat ijs jbig2dec jpeg lcms2mt libpng openjpeg tiff zlib + # using tree freetype because of https://bugs.archlinux.org/task/56849 + # lcms2mt is the new lcms2 fork aimed to replace lcms2 in a thread safe way + + # http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=40dc5b409c6262b18b4bf5386b5482ead4c511e3 + # libs link unwanted to libgpdl that isn't installed + rm -rf gpdl + + # https://bugs.ghostscript.com/show_bug.cgi?id=704405 + sed -i "s/gscms_transformm_color_const/gscms_transform_color_const/" base/gsicc_lcms2.c + + # Debian: # allow the build timestamp to be externally set + patch -Np1 -i ../2010_add_build_timestamp_setting.patch +} + +build() { + cd ghostpdl-${pkgver} + ./configure --prefix=/usr \ + --enable-dynamic \ + --with-ijs \ + --with-jbig2dec \ + --with-x \ + --with-drivers=ALL \ + --with-fontpath=/usr/share/fonts/gsfonts \ + --without-versioned-path \ + --enable-fontconfig \ + --enable-freetype \ + --enable-openjpeg \ + --with-system-libtiff \ + --with-libpaper \ + --disable-compile-inits #--help # needed for linking with system-zlib + make +} + +package_ghostscript() { + optdepends=('texlive-core: needed for dvipdf' + 'gtk3: needed for gsx') + + cd ghostpdl-${pkgver} + make DESTDIR="${pkgdir}" install-gs install-so-gs + + # replace statically linked gs binary with symlink to dynamically linked gsc + rm -v "${pkgdir}"/usr/bin/gs + ln -s gsc "${pkgdir}"/usr/bin/gs + + # remove unwanted localized manpages + rm -rv "${pkgdir}"/usr/share/man/de + + install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE +} + +package_ghostxps() { + pkgdesc="${pkgdesc/PostScript/XPS document}" + depends=("ghostscript=${pkgver}-${pkgrel}") + + cd ghostpdl-${pkgver} + make DESTDIR="${pkgdir}" install-gxps install-so-gxps + rm -r "${pkgdir}"/usr/include + + # fix file conflict - FS#70238 + rm -r "${pkgdir}"/usr/lib/libgxps.so + + install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE +} + +package_ghostpcl() { + pkgdesc="${pkgdesc/PostScript/PCL 6}" + depends=("ghostscript=${pkgver}-${pkgrel}") + + cd ghostpdl-${pkgver} + make DESTDIR="${pkgdir}" install-gpcl6 install-so-gpcl6 + rm -r "${pkgdir}"/usr/include + + install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE +}