[arch-commits] Commit in ghostscript/repos/testing-x86_64 (3 files)

Andreas Radke andyrtr at gemini.archlinux.org
Mon Sep 27 14:48:55 UTC 2021


    Date: Monday, September 27, 2021 @ 14:48:55
  Author: andyrtr
Revision: 424758

archrelease: copy trunk to testing-x86_64

Added:
  ghostscript/repos/testing-x86_64/2010_add_build_timestamp_setting.patch
    (from rev 424757, ghostscript/trunk/2010_add_build_timestamp_setting.patch)
  ghostscript/repos/testing-x86_64/PKGBUILD
    (from rev 424757, ghostscript/trunk/PKGBUILD)
Deleted:
  ghostscript/repos/testing-x86_64/PKGBUILD

----------------------------------------+
 2010_add_build_timestamp_setting.patch |  119 +++++++++++++++
 PKGBUILD                               |  237 +++++++++++++++----------------
 2 files changed, 240 insertions(+), 116 deletions(-)

Copied: ghostscript/repos/testing-x86_64/2010_add_build_timestamp_setting.patch (from rev 424757, ghostscript/trunk/2010_add_build_timestamp_setting.patch)
===================================================================
--- 2010_add_build_timestamp_setting.patch	                        (rev 0)
+++ 2010_add_build_timestamp_setting.patch	2021-09-27 14:48:55 UTC (rev 424758)
@@ -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 <dhole at openmailbox.org>
+Author: Peter De Wachter <pdewacht at 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	2021-09-27 14:48:42 UTC (rev 424757)
+++ PKGBUILD	2021-09-27 14:48:55 UTC (rev 424758)
@@ -1,116 +0,0 @@
-# Maintainer: AndyRTR <andyrtr at archlinux.org>
-
-pkgbase=ghostscript
-pkgname=(ghostscript ghostxps ghostpcl)
-pkgver=9.55.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')
-# 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)
-sha512sums=('d23864be1548ce7c7ae61398f52c34c5485dfe74e78bf7ef16c8fa5690e2ea857cc9795409a70feda5ff78c27b3c2bbc0e0710d190763fca77137ee9c56a0fed')
-
-### update jbig2dec first! ###
-
-### make sure to rebuild core/groff on version updates - https://bugs.archlinux.org/task/67751 ###
-
-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
-}
-
-build() {
-  cd ghostpdl-${pkgver}
-  ./configure --prefix=/usr \
-              --enable-dynamic \
-              --with-ijs \
-              --with-jbig2dec \
-              --with-x \
-              --with-drivers=ALL \
-              --with-fontpath=/usr/share/fonts/gsfonts \
-              --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
-  
-  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
-
-  # fix file conflict - FS#70238
-  rm -r "${pkgdir}"/usr/lib/libgxps.so
-}
-
-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/testing-x86_64/PKGBUILD (from rev 424757, ghostscript/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2021-09-27 14:48:55 UTC (rev 424758)
@@ -0,0 +1,121 @@
+# Maintainer: AndyRTR <andyrtr at archlinux.org>
+
+pkgbase=ghostscript
+pkgname=(ghostscript ghostxps ghostpcl)
+pkgver=9.55.0
+pkgrel=2
+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')
+# 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=('d23864be1548ce7c7ae61398f52c34c5485dfe74e78bf7ef16c8fa5690e2ea857cc9795409a70feda5ff78c27b3c2bbc0e0710d190763fca77137ee9c56a0fed'
+            'cd7794ee4f28b11177021b950196385200b610127ed6cb94a45e3202b690b721a0dfcc0276ff39448d4dab64c1b31a76e6c323696a8315aad9edc22077f18a3d')
+
+### update jbig2dec first! ###
+
+### make sure to rebuild core/groff on version updates - https://bugs.archlinux.org/task/67751 ###
+
+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 \
+              --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
+  
+  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
+
+  # fix file conflict - FS#70238
+  rm -r "${pkgdir}"/usr/lib/libgxps.so
+}
+
+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
+}



More information about the arch-commits mailing list