forked from pool/ghostscript
Compare commits
197 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 87a21d925d | |||
| ab0e7a372b | |||
| b01143abfc | |||
| f8330ece25 | |||
| 3cb1ae323e | |||
| 6c77056311 | |||
| 485fab8227 | |||
| 1de035df9e | |||
| cfab868296 | |||
| 6d31b2d91c | |||
| ed0cd398de | |||
| 3c75751adb | |||
| 95fe8833c4 | |||
| 2525313e1a | |||
| dba243cc78 | |||
| 060a007833 | |||
| 4aa7577cf1 | |||
| 8d44605609 | |||
| e5567acf70 | |||
| 5914aa83dd | |||
| bf855689fe | |||
| 3d7226ee4e | |||
| 69dd483ad7 | |||
| cf52855deb | |||
| f8ae26665e | |||
| afeca6e327 | |||
| 79489dd1d6 | |||
| cafb394741 | |||
| c245dc34e0 | |||
| a4978e4b0c | |||
| be81dd3550 | |||
| 4baa99bd2e | |||
| e235e5412f | |||
| 89c2d5ac42 | |||
| ec0f9996ce | |||
| fba13b28d2 | |||
| 8770f470ee | |||
| 65224379c0 | |||
| 83a537719d | |||
| c25d25a587 | |||
| a5e7be73bb | |||
| 7d0b05a4ef | |||
| ffee26cdec | |||
| a210d6571e | |||
| f7da6853e6 | |||
| 14d22cd53e | |||
| 38e2c0319c | |||
| ff483dd254 | |||
| 064397ec60 | |||
| 7d395cc8de | |||
| 5e8edce3ca | |||
| 2ce46ad6a6 | |||
| e88f5efcbe | |||
| 9d71dde167 | |||
| 15068e1197 | |||
| 967d1b20b0 | |||
| a660ee5ba6 | |||
|
|
05bb74109c | ||
| 295bf60893 | |||
| 008b8cb457 | |||
| 44a55a5b9b | |||
| 8c4dc16072 | |||
| 331fc679d0 | |||
| a99fa23197 | |||
| d457c8966e | |||
| 3914f34250 | |||
| 112ea62c59 | |||
| 693fdde18f | |||
| f18722f7e4 | |||
| 5e3250a567 | |||
| 7cdda786d1 | |||
| 03d1d391b8 | |||
| 59356870bf | |||
| cb34c9d32b | |||
| ba9a26036c | |||
|
|
42553d6db8 | ||
| 2bfcf642e0 | |||
| 9db5869058 | |||
| d137c48cfe | |||
| ac4ca4e97e | |||
|
|
a94b87d806 | ||
| ab547c5c33 | |||
| 83629d3344 | |||
| 6c621b5585 | |||
| 913dde5df3 | |||
| 00991d98dd | |||
| 555c9ea5b2 | |||
| aa21d60340 | |||
| 2a57413541 | |||
| 5fd40ec1a1 | |||
|
|
0dd7230d55 | ||
|
|
1ae8a11879 | ||
| 3d3f520cee | |||
| cb3aac83a7 | |||
| 2aa7b2e0ca | |||
| ce1ba2ad82 | |||
|
|
da972996b4 | ||
| fc115660b1 | |||
| f0089d8f2b | |||
| 98164e5415 | |||
| f82c4ed7e8 | |||
| 469d0aa4b6 | |||
| 07ebe5c7a1 | |||
| c0eb0b9d23 | |||
| 5ee9ca839d | |||
| e7a40f71fe | |||
| 1829075053 | |||
| 0e79a21b88 | |||
| dc0a03b301 | |||
| 7fdc510d60 | |||
| 540378ba24 | |||
| 9ce317b75a | |||
| cf2fbcc701 | |||
| 3fe572792f | |||
| 4173b6edaa | |||
| d041b75502 | |||
| ec293cdc8d | |||
| b87a81b734 | |||
| 404156ec6d | |||
| 6b99f4643b | |||
| 30603cab46 | |||
| 1ec563fa1e | |||
| b17bc9502a | |||
| 7fb4de27c7 | |||
| 170a84ca30 | |||
| 2e708fde52 | |||
| 260ded9072 | |||
| 7572456c4d | |||
| 0a14318d2b | |||
| a4ca1a71f3 | |||
| 77c12adcd5 | |||
| 3071d3c69a | |||
| f5c3d843dc | |||
| 3502757ad9 | |||
| 5b0baf7ad9 | |||
| b1c7d2604f | |||
| 484bea015d | |||
| 28df8a335f | |||
| 825afa6f1c | |||
| 1bb98aba3f | |||
| a1523b6cd0 | |||
| 59c03fa4b8 | |||
| 15c8faebef | |||
| b723c326cd | |||
| cb339b0e86 | |||
| 796132b04a | |||
| 95202a4042 | |||
| edc9d0cc50 | |||
| 6a7f3ad3b8 | |||
| cb1a52951f | |||
|
|
28adab4a5e | ||
| 9876c3a3b9 | |||
| 8230e651e6 | |||
|
|
81598a7bd9 | ||
| e82f1f5be4 | |||
| a7af5ec2ef | |||
| 4c731fb697 | |||
| b0a79c8bdb | |||
|
|
b95a1c42cb | ||
| fe002305bb | |||
|
|
9122be5b2b | ||
| 4a750395a8 | |||
|
|
96a279a4a8 | ||
| 9960deeefc | |||
| 5588774d21 | |||
| c76c978626 | |||
|
|
6be2f6dada | ||
| b8590836c3 | |||
| 41fcd31570 | |||
|
|
2733ff9949 | ||
| 7ff3b0d31a | |||
|
|
9aa0b4994b | ||
| d378086d0b | |||
|
|
cf6f561a96 | ||
| 277eaa6e1b | |||
|
|
579c258043 | ||
| 1fc2760cb3 | |||
| 63d3a0e76f | |||
|
|
d3beb86c73 | ||
|
|
cbb707889a | ||
|
|
2faed9794d | ||
|
|
7f03799df1 | ||
| 5fdf55a3e1 | |||
|
|
0b9f00aca9 | ||
| 5c674c36d8 | |||
| 066b2609af | |||
|
|
3ff72b1e7a | ||
| 2a99778a0b | |||
| d918dcb655 | |||
| bb4d527c31 | |||
| 71c6102332 | |||
| a1b0006c5f | |||
| b686f38730 | |||
| df7a61762f | |||
| 475fd5aea9 | |||
| 12aaa39c2e | |||
| a710e15346 |
120
2010_add_build_timestamp_setting.patch
Normal file
120
2010_add_build_timestamp_setting.patch
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
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@openmailbox.org>
|
||||||
|
Author: Peter De Wachter <pdewacht@gmail.com>
|
||||||
|
Bug-Debian: https://bugs.debian.org/794004
|
||||||
|
Forwarded: not-needed
|
||||||
|
Last-Update: 2023-09-13
|
||||||
|
---
|
||||||
|
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"
|
||||||
|
@@ -149,6 +150,7 @@
|
||||||
|
gp_get_realtime(long *pdt)
|
||||||
|
{
|
||||||
|
struct timeval tp;
|
||||||
|
+ const char *env;
|
||||||
|
|
||||||
|
#if gettimeofday_no_timezone /* older versions of SVR4 */
|
||||||
|
{
|
||||||
|
@@ -168,6 +170,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
|
||||||
|
@@ -437,6 +437,7 @@
|
||||||
|
if (!pdev->OmitInfoDate)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
@@ -448,7 +449,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
|
||||||
|
@@ -216,6 +216,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 */
|
||||||
|
|
||||||
|
@@ -223,7 +224,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_snprintf(buf1, sizeof(buf1),
|
||||||
|
--- a/devices/vector/gdevpsu.c
|
||||||
|
+++ b/devices/vector/gdevpsu.c
|
||||||
|
@@ -187,6 +187,7 @@
|
||||||
|
dev->dname);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
+ long secs_ns[2];
|
||||||
|
time_t t;
|
||||||
|
struct tm tms;
|
||||||
|
|
||||||
|
@@ -194,7 +195,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",
|
||||||
BIN
ghostscript-10.03.1.tar.gz
(Stored with Git LFS)
BIN
ghostscript-10.03.1.tar.gz
(Stored with Git LFS)
Binary file not shown.
63
ghostscript-10.06.0-Fix_32-bit_build.patch
Normal file
63
ghostscript-10.06.0-Fix_32-bit_build.patch
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
From 3c0be6e4fcffa63e4a5a1b0aec057cebc4d2562f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ken Sharp <Ken.Sharp@artifex.com>
|
||||||
|
Date: Wed, 10 Sep 2025 08:55:30 +0100
|
||||||
|
Subject: Fix 32-bit build
|
||||||
|
|
||||||
|
Bug #708824 "ghostscript 10.06.0 compilation failure on 32-bit archs"
|
||||||
|
|
||||||
|
nbytes shiouldn't be an intptr_t, it doesn't get used for pointer
|
||||||
|
arithmetic. Previously it was a uint, should be a int64_t, to fit with
|
||||||
|
all the other devices.
|
||||||
|
|
||||||
|
Checked other warnings, and found a (very minor) one in gdevdbit.c, fix
|
||||||
|
that while we're here (signed/unsigned mismatch, we don't really care).
|
||||||
|
---
|
||||||
|
base/gdevdbit.c | 2 +-
|
||||||
|
base/gdevmpla.c | 6 +++---
|
||||||
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/base/gdevdbit.c b/base/gdevdbit.c
|
||||||
|
index e07cc3f3b..1b5c69325 100644
|
||||||
|
--- a/base/gdevdbit.c
|
||||||
|
+++ b/base/gdevdbit.c
|
||||||
|
@@ -191,7 +191,7 @@ gx_default_copy_alpha_hl_color(gx_device * dev, const byte * data, int data_x,
|
||||||
|
fit_copy(dev, data, data_x, raster, id, x, y, width, height);
|
||||||
|
row_alpha = data;
|
||||||
|
out_raster = bitmap_raster(width * (size_t)byte_depth);
|
||||||
|
- if (check_64bit_multiply(out_raster, ncomps, &product) != 0)
|
||||||
|
+ if (check_64bit_multiply(out_raster, ncomps, (int64_t *) &product) != 0)
|
||||||
|
return gs_note_error(gs_error_undefinedresult);
|
||||||
|
gb_buff = gs_alloc_bytes(mem, product, "copy_alpha_hl_color(gb_buff)");
|
||||||
|
if (gb_buff == 0) {
|
||||||
|
diff --git a/base/gdevmpla.c b/base/gdevmpla.c
|
||||||
|
index 2f0d52256..ffc5ff42e 100644
|
||||||
|
--- a/base/gdevmpla.c
|
||||||
|
+++ b/base/gdevmpla.c
|
||||||
|
@@ -1954,12 +1954,12 @@ mem_planar_strip_copy_rop2(gx_device * dev,
|
||||||
|
int i;
|
||||||
|
int j;
|
||||||
|
intptr_t chunky_sraster;
|
||||||
|
- intptr_t nbytes;
|
||||||
|
+ int64_t nbytes;
|
||||||
|
byte **line_ptrs;
|
||||||
|
byte *sbuf, *buf;
|
||||||
|
|
||||||
|
chunky_sraster = sraster * (intptr_t)mdev->num_planar_planes;
|
||||||
|
- if (check_64bit_multiply(height, chunky_sraster, (size_t *)&nbytes) != 0)
|
||||||
|
+ if (check_64bit_multiply(height, chunky_sraster, &nbytes) != 0)
|
||||||
|
return gs_note_error(gs_error_undefinedresult);
|
||||||
|
buf = gs_alloc_bytes(mdev->memory, nbytes, "mem_planar_strip_copy_rop(buf)");
|
||||||
|
if (buf == NULL) {
|
||||||
|
@@ -2003,7 +2003,7 @@ mem_planar_strip_copy_rop2(gx_device * dev,
|
||||||
|
intptr_t i;
|
||||||
|
intptr_t chunky_t_raster;
|
||||||
|
int chunky_t_height;
|
||||||
|
- intptr_t nbytes;
|
||||||
|
+ int64_t nbytes;
|
||||||
|
byte **line_ptrs;
|
||||||
|
byte *tbuf, *buf;
|
||||||
|
gx_strip_bitmap newtex;
|
||||||
|
--
|
||||||
|
cgit v1.2.3
|
||||||
|
|
||||||
|
|
||||||
BIN
ghostscript-10.06.0.tar.gz
(Stored with Git LFS)
Normal file
BIN
ghostscript-10.06.0.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -1,3 +1,127 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 16 13:45:31 UTC 2025 - Johannes Meixner <jsmeix@suse.com>
|
||||||
|
|
||||||
|
- Version upgrade to 10.06.0
|
||||||
|
See 'Recent Changes in Ghostscript' at Ghostscript upstream
|
||||||
|
https://ghostscript.readthedocs.io/en/gs10.06.0/News.html
|
||||||
|
* This release addresses CVEs: TBC
|
||||||
|
* The 10.06.0 removes the non-standard operator "selectdevice"
|
||||||
|
(cf. the entry below dated Tue Apr 1 09:56:06 UTC 2025)
|
||||||
|
- ghostscript-10.06.0-Fix_32-bit_build.patch is the upstream commit
|
||||||
|
https://cgit.ghostscript.com/cgi-bin/cgit.cgi/ghostpdl.git/patch/?id=3c0be6e4fcffa63e4a5a1b0aec057cebc4d2562f
|
||||||
|
to fix https://bugs.ghostscript.com/show_bug.cgi?id=708824
|
||||||
|
"ghostscript 10.06.0 compilation failure on 32-bit archs"
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 16 08:15:18 UTC 2025 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
- Switch over to libalternatives for ghostscript to provide a gs
|
||||||
|
variant (bsc#1245896)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 4 07:14:46 UTC 2025 - Johannes Meixner <jsmeix@suse.com>
|
||||||
|
|
||||||
|
- Version upgrade to 10.05.1
|
||||||
|
See 'Recent Changes in Ghostscript' at Ghostscript upstream
|
||||||
|
https://ghostscript.readthedocs.io/en/gs10.05.1/News.html
|
||||||
|
* This release addresses CVEs:
|
||||||
|
+ CVE-2025-46646
|
||||||
|
+ CVE-2025-48708 (bsc#1243701)
|
||||||
|
* The 10.05.1 patch release addresses:
|
||||||
|
+ An overflow issue in Freetype on platforms
|
||||||
|
where long is a 4 byte (rather than 8 byte) type
|
||||||
|
(Microsoft Windows, for example) causing corrupted
|
||||||
|
glyph rendering at higher resolutions
|
||||||
|
+ An issue with embedded files, affecting Zugferd
|
||||||
|
format PDF creation.
|
||||||
|
+ Broken logic in PDF Optional Content processing
|
||||||
|
+ Potential slow down due to searching for identifiable
|
||||||
|
font files
|
||||||
|
+ A small number of extreme edge case segmentation faults.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 10 19:39:55 UTC 2025 - Friedrich Haubensak <hsk17@mail.de>
|
||||||
|
|
||||||
|
- add -std=gnu11 to CFLAGS to fix gcc15 compile time error, and to
|
||||||
|
still allow build on Leap 15.6
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 1 09:56:06 UTC 2025 - Johannes Meixner <jsmeix@suse.com>
|
||||||
|
|
||||||
|
- Version upgrade to 10.05.0
|
||||||
|
See 'Recent Changes in Ghostscript' at Ghostscript upstream
|
||||||
|
https://ghostscript.readthedocs.io/en/gs10.05.0/News.html
|
||||||
|
* This release addresses:
|
||||||
|
+ CVE-2025-27830 (bsc#1240074)
|
||||||
|
+ CVE-2025-27831 (bsc#1240075)
|
||||||
|
+ CVE-2025-27832 (bsc#1240077)
|
||||||
|
+ CVE-2025-27833 (bsc#1240078)
|
||||||
|
+ CVE-2025-27834 (bsc#1240079)
|
||||||
|
+ CVE-2025-27835 (bsc#1240080)
|
||||||
|
+ CVE-2025-27836 (bsc#1240081)
|
||||||
|
+ CVE-2025-27837 (bsc#1240082 - affects only Windows)
|
||||||
|
* The 10.05.0 release deprecates the non-standard operator
|
||||||
|
"selectdevice", all code should now be using the standard
|
||||||
|
"setpagedevice" operator. "selectdevice" will be removed
|
||||||
|
in the 10.06.0 release.
|
||||||
|
* We now support production of PDF/X-1a and PDF/X-4a
|
||||||
|
in addition to the existing support for PDF/X-3
|
||||||
|
* The usual round of bug fixes, compatibility changes,
|
||||||
|
and incremental improvements.
|
||||||
|
- In Ghostscript 10.05.0 the pdf2dsc utility is removed because
|
||||||
|
its PostScript program pdf2dsc.ps uses chunks of the old PDF
|
||||||
|
interpreter which is replaced with a new implementation
|
||||||
|
(in C instead of PostScript) in the 10.x series of Ghostscript
|
||||||
|
so pdf2dsc can no longer work as intended. For details see the
|
||||||
|
"Please restore PDF2DSC for preview-latex" mail thread e.g. on
|
||||||
|
https://mail.gnu.org/archive/html/auctex-devel/2025-03/threads.html
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Feb 4 09:42:47 UTC 2025 - Bernhard Wiedemann <bwiedemann@suse.com>
|
||||||
|
|
||||||
|
- Add reproducible.patch to not embed timestamp in .h file
|
||||||
|
- Add 2010_add_build_timestamp_setting.patch to allow overriding
|
||||||
|
timestamp in generated pdf (boo#1236773)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 30 12:27:04 UTC 2024 - Johannes Meixner <jsmeix@suse.com>
|
||||||
|
|
||||||
|
- Enhanced entry below dated "Wed Oct 23 08:54:59 UTC 2024"
|
||||||
|
by adding the individual "bsc" numbers for each CVE, see
|
||||||
|
https://bugzilla.suse.com/show_bug.cgi?id=1232173#c4
|
||||||
|
and by adding the "IMPORTANT" change in Ghostscript 10.04.0
|
||||||
|
- spec file cleanup: removed the special cases for SLE12
|
||||||
|
i.e. rely on "suse_version >= 1500" as given precondition
|
||||||
|
(recent Ghostscript versions fail to build in SLE12 anyway)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 23 08:54:59 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- Version upgrade to 10.04.0 (bsc#1232173):
|
||||||
|
Highlights in this release include:
|
||||||
|
See 'Recent Changes in Ghostscript' at Ghostscript upstream
|
||||||
|
https://ghostscript.readthedocs.io/en/gs10.04.0/News.html
|
||||||
|
* This release addresses:
|
||||||
|
+ CVE-2024-46951 (bsc#1232265)
|
||||||
|
+ CVE-2024-46952 (bsc#1232266)
|
||||||
|
+ CVE-2024-46953 (bsc#1232267)
|
||||||
|
+ CVE-2024-46954 (bsc#1232268)
|
||||||
|
+ CVE-2024-46955 (bsc#1232269)
|
||||||
|
+ CVE-2024-46956 (bsc#1232270)
|
||||||
|
* IMPORTANT: In this release (10.04.0)
|
||||||
|
we (i.e. Ghostscript upstream) have be added
|
||||||
|
protection for device selection from PostScript input.
|
||||||
|
This will mean that, by default, only the device specified
|
||||||
|
on the command line will be permitted. Similar to the file
|
||||||
|
permissions, there will be a "--permit-devices=" allowing
|
||||||
|
a comma separation list of allowed devices. This will also
|
||||||
|
take a single wildcard "*" allowing any device.
|
||||||
|
Any application which relies on allowing PostScript
|
||||||
|
to change devices during a job will have to be aware,
|
||||||
|
and take action to deal with this change.
|
||||||
|
The exception is "nulldevice", switching to that requires
|
||||||
|
no special action.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jul 1 11:56:34 UTC 2024 - Johannes Meixner <jsmeix@suse.com>
|
Mon Jul 1 11:56:34 UTC 2024 - Johannes Meixner <jsmeix@suse.com>
|
||||||
|
|
||||||
|
|||||||
114
ghostscript.spec
114
ghostscript.spec
@@ -1,7 +1,8 @@
|
|||||||
#
|
#
|
||||||
# spec file
|
# spec file for package ghostscript
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
# Copyright (c) 2025 SUSE LLC and contributors
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -23,22 +24,38 @@
|
|||||||
%global psuffix %{nil}
|
%global psuffix %{nil}
|
||||||
%bcond_without apparmor
|
%bcond_without apparmor
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
%bcond_without libalternatives
|
||||||
|
%else
|
||||||
|
%bcond_with libalternatives
|
||||||
|
%endif
|
||||||
Name: ghostscript%{psuffix}
|
Name: ghostscript%{psuffix}
|
||||||
Version: 10.03.1
|
Version: 10.06.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The Ghostscript interpreter for PostScript and PDF
|
Summary: The Ghostscript interpreter for PostScript and PDF
|
||||||
License: AGPL-3.0-only
|
License: AGPL-3.0-only
|
||||||
Group: Productivity/Office/Other
|
Group: Productivity/Office/Other
|
||||||
URL: https://www.ghostscript.com/
|
URL: https://www.ghostscript.com/
|
||||||
# How to manually get Source0:
|
# Use "osc service manualrun" to fetch Source0:
|
||||||
|
Source0: https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10060/ghostscript-%{version}.tar.gz
|
||||||
|
# How to manually (i.e. without "osc service") find the Source0 URL at Ghostscript upstream
|
||||||
|
# (example for the Ghostscript 10.05.1 release):
|
||||||
# Go to https://www.ghostscript.com
|
# Go to https://www.ghostscript.com
|
||||||
# -> "The current Ghostscript release 10.03.1 can be downloaded here" https://www.ghostscript.com/releases/index.html
|
# -> [Download] or "Releases" https://ghostscript.com/releases/index.html
|
||||||
# -> "Ghostscript" https://www.ghostscript.com/releases/gsdnld.html
|
# -> "Ghostscript" https://ghostscript.com/releases/gsdnld.htm
|
||||||
# -> "Ghostscript 10.03.1 Source for all platforms / GNU Affero General Public License" = "Ghostscript AGPL Release"
|
# -> "Ghostscript 10.05.1 Source for all platforms / Ghostscript AGPL Release"
|
||||||
# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10031/ghostscript-10.03.1.tar.gz
|
# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10051/ghostscript-10.05.1.tar.gz
|
||||||
Source0: https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10031/ghostscript-10.03.1.tar.gz
|
# and "MD5 Checksums"
|
||||||
|
# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10051/MD5SUMS
|
||||||
|
# and on https://ghostscript.com/releases/index.html
|
||||||
|
# -> "release notes" https://ghostscript.readthedocs.io/en/gs10.05.1/News.html
|
||||||
Source10: apparmor_ghostscript
|
Source10: apparmor_ghostscript
|
||||||
# Patch0...Patch9 is for patches from upstream:
|
# Patch0...Patch9 is for patches from upstream:
|
||||||
|
# Patch1 ghostscript-10.06.0-Fix_32-bit_build.patch is the upstream commit
|
||||||
|
# https://cgit.ghostscript.com/cgi-bin/cgit.cgi/ghostpdl.git/patch/?id=3c0be6e4fcffa63e4a5a1b0aec057cebc4d2562f
|
||||||
|
# to fix https://bugs.ghostscript.com/show_bug.cgi?id=708824
|
||||||
|
# "ghostscript 10.06.0 compilation failure on 32-bit archs":
|
||||||
|
Patch1: ghostscript-10.06.0-Fix_32-bit_build.patch
|
||||||
# Source10...Source99 is for sources from SUSE which are intended for upstream:
|
# Source10...Source99 is for sources from SUSE which are intended for upstream:
|
||||||
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
|
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
|
||||||
# Source100...Source999 is for sources from SUSE which are not intended for upstream:
|
# Source100...Source999 is for sources from SUSE which are not intended for upstream:
|
||||||
@@ -46,6 +63,8 @@ Source10: apparmor_ghostscript
|
|||||||
# Patch101 ijs_exec_server_dont_use_sh.patch fixes IJS printing problem
|
# Patch101 ijs_exec_server_dont_use_sh.patch fixes IJS printing problem
|
||||||
# additionally allow exec'ing hpijs in apparmor profile was needed (bsc#1128467):
|
# additionally allow exec'ing hpijs in apparmor profile was needed (bsc#1128467):
|
||||||
Patch101: ijs_exec_server_dont_use_sh.patch
|
Patch101: ijs_exec_server_dont_use_sh.patch
|
||||||
|
Patch102: reproducible.patch
|
||||||
|
Patch103: 2010_add_build_timestamp_setting.patch
|
||||||
# Build Requirements:
|
# Build Requirements:
|
||||||
BuildRequires: freetype2-devel
|
BuildRequires: freetype2-devel
|
||||||
BuildRequires: libjpeg-devel
|
BuildRequires: libjpeg-devel
|
||||||
@@ -54,10 +73,15 @@ BuildRequires: libpng-devel
|
|||||||
BuildRequires: libtiff-devel
|
BuildRequires: libtiff-devel
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
|
%if %{with libalternatives}
|
||||||
|
BuildRequires: alts
|
||||||
|
Requires: alts
|
||||||
|
%else
|
||||||
BuildRequires: update-alternatives
|
BuildRequires: update-alternatives
|
||||||
BuildRequires: zlib-devel
|
|
||||||
Requires(post): update-alternatives
|
Requires(post): update-alternatives
|
||||||
Requires(preun):update-alternatives
|
Requires(preun): update-alternatives
|
||||||
|
%endif
|
||||||
|
BuildRequires: zlib-devel
|
||||||
# Provide the additional RPM Provides of the ghostscript-library package
|
# Provide the additional RPM Provides of the ghostscript-library package
|
||||||
# (ghostscript_x11 is provided by the ghostscript-x11 sub-package, see below).
|
# (ghostscript_x11 is provided by the ghostscript-x11 sub-package, see below).
|
||||||
# The "Provides: ghostscript_any" is there to support "BuildRequires: ghostscript_any"
|
# The "Provides: ghostscript_any" is there to support "BuildRequires: ghostscript_any"
|
||||||
@@ -71,6 +95,7 @@ Requires(preun):update-alternatives
|
|||||||
# in openSUSE products, cf. https://build.opensuse.org/request/show/877083
|
# in openSUSE products, cf. https://build.opensuse.org/request/show/877083
|
||||||
Provides: ghostscript_any = %{version}
|
Provides: ghostscript_any = %{version}
|
||||||
%if "%{flavor}" != "mini"
|
%if "%{flavor}" != "mini"
|
||||||
|
BuildRequires: cups-devel
|
||||||
BuildRequires: dbus-1-devel
|
BuildRequires: dbus-1-devel
|
||||||
BuildRequires: libexpat-devel
|
BuildRequires: libexpat-devel
|
||||||
BuildRequires: xorg-x11-fonts
|
BuildRequires: xorg-x11-fonts
|
||||||
@@ -80,18 +105,11 @@ BuildRequires: pkgconfig(x11)
|
|||||||
BuildRequires: pkgconfig(xext)
|
BuildRequires: pkgconfig(xext)
|
||||||
BuildRequires: pkgconfig(xproto)
|
BuildRequires: pkgconfig(xproto)
|
||||||
BuildRequires: pkgconfig(xt)
|
BuildRequires: pkgconfig(xt)
|
||||||
%if 0%{?suse_version} == 1315
|
|
||||||
BuildRequires: cups154-devel
|
|
||||||
%else
|
|
||||||
BuildRequires: cups-devel
|
|
||||||
%endif
|
|
||||||
%if %{with apparmor}
|
%if %{with apparmor}
|
||||||
%if 0%{?suse_version} >= 1500
|
|
||||||
BuildRequires: apparmor-abstractions
|
BuildRequires: apparmor-abstractions
|
||||||
BuildRequires: apparmor-rpm-macros
|
BuildRequires: apparmor-rpm-macros
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
|
||||||
# Always check if latest version of openjpeg becomes compatible with ghostscript
|
# Always check if latest version of openjpeg becomes compatible with ghostscript
|
||||||
%if 0%{?suse_version} >= 1550
|
%if 0%{?suse_version} >= 1550
|
||||||
BuildRequires: pkgconfig(libopenjp2) >= 2.3.1
|
BuildRequires: pkgconfig(libopenjp2) >= 2.3.1
|
||||||
@@ -113,10 +131,8 @@ Obsoletes: ghostscript-library < %{version}
|
|||||||
# The "Obsoletes: ghostscript-mini" is intentionally unversioned because
|
# The "Obsoletes: ghostscript-mini" is intentionally unversioned because
|
||||||
# this package ghostscript should replace any version of ghostscript-mini.
|
# this package ghostscript should replace any version of ghostscript-mini.
|
||||||
Obsoletes: ghostscript-mini
|
Obsoletes: ghostscript-mini
|
||||||
%if 0%{?suse_version} > 1210
|
|
||||||
Recommends: (cups-filters-ghostscript if cups)
|
Recommends: (cups-filters-ghostscript if cups)
|
||||||
%endif
|
%endif
|
||||||
%endif
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Ghostscript is a package of software that provides:
|
Ghostscript is a package of software that provides:
|
||||||
@@ -165,7 +181,11 @@ This package contains the development files for Ghostscript.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n ghostscript-%{version}
|
%setup -q -n ghostscript-%{version}
|
||||||
|
# Patch1 ghostscript-10.06.0-Fix_32-bit_build.patch is the upstream commit
|
||||||
|
# https://cgit.ghostscript.com/cgi-bin/cgit.cgi/ghostpdl.git/patch/?id=3c0be6e4fcffa63e4a5a1b0aec057cebc4d2562f
|
||||||
|
# to fix https://bugs.ghostscript.com/show_bug.cgi?id=708824
|
||||||
|
# "ghostscript 10.06.0 compilation failure on 32-bit archs":
|
||||||
|
%patch -P 1 -p1
|
||||||
# Patch101 ijs_exec_server_dont_use_sh.patch fixes IJS printing problem
|
# Patch101 ijs_exec_server_dont_use_sh.patch fixes IJS printing problem
|
||||||
# additionally allow exec'ing hpijs in apparmor profile was needed (bsc#1128467):
|
# additionally allow exec'ing hpijs in apparmor profile was needed (bsc#1128467):
|
||||||
%patch -P 101 -p1
|
%patch -P 101 -p1
|
||||||
@@ -176,12 +196,14 @@ rm -rf freetype jpeg libpng lcms2art zlib tiff
|
|||||||
%if 0%{?suse_version} >= 1550
|
%if 0%{?suse_version} >= 1550
|
||||||
rm -rf openjpeg
|
rm -rf openjpeg
|
||||||
%endif
|
%endif
|
||||||
|
%patch -P102 -p1
|
||||||
|
%patch -P103 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Derive build timestamp from latest changelog entry
|
# Derive build timestamp from latest changelog entry
|
||||||
export SOURCE_DATE_EPOCH=$(date -d "$(head -n 2 %{_sourcedir}/%{name}.changes | tail -n 1 | cut -d- -f1 )" +%{s})
|
export SOURCE_DATE_EPOCH=$(date -d "$(head -n 2 %{_sourcedir}/%{name}.changes | tail -n 1 | cut -d- -f1 )" +%{s})
|
||||||
# Set our preferred architecture-specific flags for the compiler and linker:
|
# Set our preferred architecture-specific flags for the compiler and linker:
|
||||||
export CFLAGS="%{optflags} -fno-strict-aliasing -fPIC"
|
export CFLAGS="%{optflags} -fno-strict-aliasing -fPIC -std=gnu11"
|
||||||
export CXXFLAGS="%{optflags} -fno-strict-aliasing -fPIC"
|
export CXXFLAGS="%{optflags} -fno-strict-aliasing -fPIC"
|
||||||
export LDFLAGS="-pie"
|
export LDFLAGS="-pie"
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
@@ -269,6 +291,25 @@ popd
|
|||||||
rm %{buildroot}%{_bindir}/ijs_client_example
|
rm %{buildroot}%{_bindir}/ijs_client_example
|
||||||
rm %{buildroot}%{_bindir}/ijs_server_example
|
rm %{buildroot}%{_bindir}/ijs_server_example
|
||||||
rm %{buildroot}%{_libdir}/libijs.la
|
rm %{buildroot}%{_libdir}/libijs.la
|
||||||
|
# Remove pdf2dsc which was removed in Ghostscript 10.05.0
|
||||||
|
# because in Ghostscript 10.x pdf2dsc can no longer work as intended
|
||||||
|
# see https://cgit.ghostscript.com/cgi-bin/cgit.cgi/ghostpdl.git/commit/?id=2c315570de78df902f8f15312728d9e1b00cac44
|
||||||
|
# but in Ghostscript 10.05.1 pdf2dsc was put back
|
||||||
|
# see https://cgit.ghostscript.com/cgi-bin/cgit.cgi/ghostpdl.git/commit/?id=528d324a7968ad89401ebb60dfdb22f9fdfeeb6b
|
||||||
|
# and https://cgit.ghostscript.com/cgi-bin/cgit.cgi/ghostpdl.git/commit/?id=0e23e5009c7e2a65a2f707146f2dffe8a362ab86
|
||||||
|
# regardless that pdf2dsc can still no longer work as intended
|
||||||
|
# according to the git commit 528d324a7968ad89401ebb60dfdb22f9fdfeeb6b message
|
||||||
|
# which reads (excerpts)
|
||||||
|
# > After feedback from users (AUCTeX and gv) put back the pdf2dsc utility
|
||||||
|
# > but note in the comments that this is now unsupported code (in truth
|
||||||
|
# > I think it always was, but this makes it explicit).
|
||||||
|
# > Because the PostScript program uses undocumented parts of the old
|
||||||
|
# > 'written in PostScript' PDF interpreter portions of it probably don't
|
||||||
|
# > work and it may fail altogether at some point.
|
||||||
|
# Because openSUSE cannot support software which is not supported by upstream
|
||||||
|
# the unsupported pdf2dsc is kept removed from Ghostscript:
|
||||||
|
rm %{buildroot}%{_datadir}/ghostscript/%{version}/lib/pdf2dsc.ps
|
||||||
|
rm %{buildroot}%{_bindir}/pdf2dsc
|
||||||
# Install examples:
|
# Install examples:
|
||||||
EXAMPLESDIR=%{buildroot}%{_datadir}/ghostscript/%{version}/examples
|
EXAMPLESDIR=%{buildroot}%{_datadir}/ghostscript/%{version}/examples
|
||||||
test -d $EXAMPLESDIR || install -d $EXAMPLESDIR
|
test -d $EXAMPLESDIR || install -d $EXAMPLESDIR
|
||||||
@@ -321,34 +362,52 @@ install -D -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/apparmor.d/ghostscript
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Move /usr/bin/gs to /usr/bin/gs.bin to be able to use update-alternatives
|
# Move /usr/bin/gs to /usr/bin/gs.bin to be able to use update-alternatives
|
||||||
install -d %{buildroot}%{_sysconfdir}/alternatives
|
|
||||||
mv %{buildroot}%{_bindir}/gs %{buildroot}%{_bindir}/gs.bin
|
mv %{buildroot}%{_bindir}/gs %{buildroot}%{_bindir}/gs.bin
|
||||||
|
%if %{with libalternatives}
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/libalternatives/gs
|
||||||
|
ln -sf %{_bindir}/alts %{buildroot}%{_bindir}/gs
|
||||||
|
cat > %{buildroot}%{_datadir}/libalternatives/gs/10.conf <<-EOF
|
||||||
|
binary=%{_bindir}/gs.bin
|
||||||
|
man=gs.1
|
||||||
|
group=gs
|
||||||
|
EOF
|
||||||
|
%else
|
||||||
|
install -d %{buildroot}%{_sysconfdir}/alternatives
|
||||||
ln -sf %{_bindir}/gs.bin %{buildroot}%{_sysconfdir}/alternatives/gs
|
ln -sf %{_bindir}/gs.bin %{buildroot}%{_sysconfdir}/alternatives/gs
|
||||||
ln -sf %{_sysconfdir}/alternatives/gs %{buildroot}%{_bindir}/gs
|
ln -sf %{_sysconfdir}/alternatives/gs %{buildroot}%{_bindir}/gs
|
||||||
|
%endif
|
||||||
|
|
||||||
%post
|
%post
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%if %{with apparmor}
|
%if %{with apparmor}
|
||||||
%if "%{flavor}" != "mini"
|
%if "%{flavor}" != "mini"
|
||||||
%if 0%{?suse_version} >= 1500
|
|
||||||
%apparmor_reload %{_sysconfdir}/apparmor.d/ghostscript
|
%apparmor_reload %{_sysconfdir}/apparmor.d/ghostscript
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%if ! %{with libalternatives}
|
||||||
%{_sbindir}/update-alternatives \
|
%{_sbindir}/update-alternatives \
|
||||||
--install %{_bindir}/gs gs %{_bindir}/gs.bin 15
|
--install %{_bindir}/gs gs %{_bindir}/gs.bin 15
|
||||||
|
%endif
|
||||||
|
|
||||||
%postun -p /sbin/ldconfig
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%if ! %{with libalternatives}
|
||||||
%preun
|
%preun
|
||||||
if test $1 -eq 0 ; then
|
if test $1 -eq 0 ; then
|
||||||
%{_sbindir}/update-alternatives \
|
%{_sbindir}/update-alternatives \
|
||||||
--remove gs %{_bindir}/gs.bin
|
--remove gs %{_bindir}/gs.bin
|
||||||
fi
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
|
%if %{with libalternatives}
|
||||||
|
%dir %{_datadir}/libalternatives/
|
||||||
|
%dir %{_datadir}/libalternatives/gs/
|
||||||
|
%{_datadir}/libalternatives/gs/10.conf
|
||||||
|
%else
|
||||||
%ghost %config %{_sysconfdir}/alternatives/gs
|
%ghost %config %{_sysconfdir}/alternatives/gs
|
||||||
|
%endif
|
||||||
%{_bindir}/dvipdf
|
%{_bindir}/dvipdf
|
||||||
%{_bindir}/eps2eps
|
%{_bindir}/eps2eps
|
||||||
%{_bindir}/gs
|
%{_bindir}/gs
|
||||||
@@ -360,7 +419,6 @@ fi
|
|||||||
%{_bindir}/gslp
|
%{_bindir}/gslp
|
||||||
%{_bindir}/gsnd
|
%{_bindir}/gsnd
|
||||||
%{_bindir}/lprsetup.sh
|
%{_bindir}/lprsetup.sh
|
||||||
%{_bindir}/pdf2dsc
|
|
||||||
%{_bindir}/pdf2ps
|
%{_bindir}/pdf2ps
|
||||||
%{_bindir}/pf2afm
|
%{_bindir}/pf2afm
|
||||||
%{_bindir}/pfbtopfa
|
%{_bindir}/pfbtopfa
|
||||||
@@ -385,7 +443,6 @@ fi
|
|||||||
%{_mandir}/man1/gslj.1%{?ext_man}
|
%{_mandir}/man1/gslj.1%{?ext_man}
|
||||||
%{_mandir}/man1/gslp.1%{?ext_man}
|
%{_mandir}/man1/gslp.1%{?ext_man}
|
||||||
%{_mandir}/man1/gsnd.1%{?ext_man}
|
%{_mandir}/man1/gsnd.1%{?ext_man}
|
||||||
%{_mandir}/man1/pdf2dsc.1%{?ext_man}
|
|
||||||
%{_mandir}/man1/pdf2ps.1%{?ext_man}
|
%{_mandir}/man1/pdf2ps.1%{?ext_man}
|
||||||
%{_mandir}/man1/pf2afm.1%{?ext_man}
|
%{_mandir}/man1/pf2afm.1%{?ext_man}
|
||||||
%{_mandir}/man1/pfbtopfa.1%{?ext_man}
|
%{_mandir}/man1/pfbtopfa.1%{?ext_man}
|
||||||
@@ -413,9 +470,6 @@ fi
|
|||||||
%if "%{flavor}" != "mini"
|
%if "%{flavor}" != "mini"
|
||||||
%exclude %{_libdir}/ghostscript/%{version}/X11.so
|
%exclude %{_libdir}/ghostscript/%{version}/X11.so
|
||||||
%if %{with apparmor}
|
%if %{with apparmor}
|
||||||
%if 0%{?suse_version} < 1500
|
|
||||||
%dir %{_sysconfdir}/apparmor.d
|
|
||||||
%endif
|
|
||||||
%{_sysconfdir}/apparmor.d/ghostscript
|
%{_sysconfdir}/apparmor.d/ghostscript
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|||||||
20
reproducible.patch
Normal file
20
reproducible.patch
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Date: 2024-09-20
|
||||||
|
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
||||||
|
|
||||||
|
Drop build date from generated .h file
|
||||||
|
so that openSUSE's ghostscript-debugsource package
|
||||||
|
does not vary between builds.
|
||||||
|
|
||||||
|
Index: ghostscript-10.03.1/base/pack_ps.c
|
||||||
|
===================================================================
|
||||||
|
--- ghostscript-10.03.1.orig/base/pack_ps.c
|
||||||
|
+++ ghostscript-10.03.1/base/pack_ps.c
|
||||||
|
@@ -344,7 +344,7 @@ main(int argc, char *argv[])
|
||||||
|
if (!buildtime) {
|
||||||
|
buildtime = time(NULL);
|
||||||
|
}
|
||||||
|
- fprintf(outfile,"/* Auto-generated from PostScript file \"%s\" at time %ld */\n", infilename, (long)buildtime);
|
||||||
|
+ fprintf(outfile,"/* Auto-generated from PostScript file \"%s\" */\n", infilename);
|
||||||
|
|
||||||
|
while (readline(infile, inputline, INPUT_LINE_LENGTH_MAX)) {
|
||||||
|
|
||||||
Reference in New Issue
Block a user