diff --git a/barcode-words-blacklist.txt b/barcode-words-blacklist.txt new file mode 100644 index 0000000..46a45e9 --- /dev/null +++ b/barcode-words-blacklist.txt @@ -0,0 +1,10 @@ +boobies +boobs +cock +flatulence +hemorrhoid +heroin +pussy +rectum +viagra +vibrator diff --git a/sources b/sources index 28de36a..1c9feb9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xscreensaver-6.05.1.tar.gz) = c659a769ff71020b9f96b7e707bd1bcc667eb304179305d56b1be45eed095d650a8aa019890a0c5d444672f9dd68516c99c53b0df94cd96196d7f30a24b987e3 +SHA512 (xscreensaver-6.13.tar.gz) = 1ab42c0d0bf31b6d25e543d44c2ff41f48ef229ffce3a02f82495c1ef9c9452eddec4abe1cd7705220c6491562361f8cd0cca8bce9875ff80a765816574bf8ac diff --git a/xscreensaver-5.36-0007-misc-kill-gcc-warn_unused_result-warnings.patch b/xscreensaver-5.36-0007-misc-kill-gcc-warn_unused_result-warnings.patch deleted file mode 100644 index aa3852e..0000000 --- a/xscreensaver-5.36-0007-misc-kill-gcc-warn_unused_result-warnings.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 0d26e4514d7d6c90d2c5e35749c0b83121a66b77 Mon Sep 17 00:00:00 2001 -From: "mtasaka@fedoraproject.org" -Date: Tue, 7 Feb 2017 16:40:52 +0900 -Subject: [PATCH] misc: kill gcc warn_unused_result warnings - -Remove misc warnings generated gcc -Wall with -"warning: ignoring return value of 'foo', -declared with attribute warn_unused_result". - -For setuid() and fgets(), really check the returned value. -For system(), for now just use empty body to avoid this -warning. Note that casting the result to (void) does not -remove these warnings. ---- - driver/demo-Gtk.c | 9 +++++++-- - hacks/glx/sonar-icmp.c | 2 +- - hacks/glx/sonar.c | 5 +++-- - hacks/recanim.c | 6 +++++- - 4 files changed, 16 insertions(+), 6 deletions(-) - -diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c -index f5c4839..7c34846 100644 ---- a/driver/demo-Gtk.c -+++ b/driver/demo-Gtk.c -@@ -4423,7 +4423,8 @@ kde_screensaver_active_p (void) - FILE *p = popen ("dcop kdesktop KScreensaverIface isEnabled 2>/dev/null", - "r"); - char buf[255]; -- fgets (buf, sizeof(buf)-1, p); -+ if (!p) return False; -+ if (!fgets (buf, sizeof(buf)-1, p)) return False; - pclose (p); - if (!strcmp (buf, "true\n")) - return True; -@@ -4434,7 +4435,11 @@ kde_screensaver_active_p (void) - static void - kill_kde_screensaver (void) - { -- system ("dcop kdesktop KScreensaverIface enable false"); -+ /* Use empty body to kill warning from gcc -Wall with -+ "warning: ignoring return value of 'system', -+ declared with attribute warn_unused_result" -+ */ -+ if (system ("dcop kdesktop KScreensaverIface enable false")) {} - } - - -diff --git a/hacks/glx/sonar-icmp.c b/hacks/glx/sonar-icmp.c -index 8256270..26eb90d 100644 ---- a/hacks/glx/sonar-icmp.c -+++ b/hacks/glx/sonar-icmp.c -@@ -1634,7 +1634,7 @@ sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret, - fprintf (stderr, "%s: unable to open icmp socket\n", progname); - - /* Disavow privs */ -- setuid(getuid()); -+ if (setuid(getuid()) == -1) abort(); - - pd->pid = getpid() & 0xFFFF; - pd->seq = 0; -diff --git a/hacks/glx/sonar.c b/hacks/glx/sonar.c -index f3a4d9d..2c6ca5b 100644 ---- a/hacks/glx/sonar.c -+++ b/hacks/glx/sonar.c -@@ -930,8 +930,9 @@ init_sensor (ModeInfo *mi) - sp->ssd = sonar_init_ping (MI_DISPLAY (mi), &sp->error, &sp->desc, - ping_arg, ping_timeout, resolve_p, times_p, - debug_p); -- else -- setuid(getuid()); /* Disavow privs if not pinging. */ -+ else { -+ if (setuid(getuid()) == -1) abort(); /* Disavow privs if not pinging. */ -+ } - - sp->start_time = double_time (); /* for error message timing */ - -diff --git a/hacks/recanim.c b/hacks/recanim.c -index 51379ed..a526c25 100644 ---- a/hacks/recanim.c -+++ b/hacks/recanim.c -@@ -324,7 +324,11 @@ screenhack_record_anim_free (record_anim_state *st) - " 2>&-", - fn); - fprintf (stderr, "%s: exec: %s\n", progname, cmd); -- system (cmd); -+ /* Use empty body to kill warning from gcc -Wall with -+ "warning: ignoring return value of 'system', -+ declared with attribute warn_unused_result" -+ */ -+ if (system (cmd)) {} - - if (stat (fn, &s)) - { --- -2.9.3 - diff --git a/xscreensaver-5.45-0001-barcode-glsnake-sanitize-the-names-of-modes.patch b/xscreensaver-5.45-0001-barcode-glsnake-sanitize-the-names-of-modes.patch index 93bc5cb..f77a6e6 100644 --- a/xscreensaver-5.45-0001-barcode-glsnake-sanitize-the-names-of-modes.patch +++ b/xscreensaver-5.45-0001-barcode-glsnake-sanitize-the-names-of-modes.patch @@ -1,77 +1,12 @@ From d8ba605b7779ce5d2fc893c44fc2986ecf176e47 Mon Sep 17 00:00:00 2001 From: XScreenSaver owners Date: Wed, 9 Dec 2020 22:12:09 +0900 -Subject: [PATCH] barcode / glsnake: sanitize the names of modes +Subject: [PATCH] glsnake: sanitize the names of modes --- - hacks/barcode.c | 10 ---------- hacks/glx/glsnake.c | 12 ++++++------ - 2 files changed, 6 insertions(+), 16 deletions(-) + 1 file changed, 6 insertions(+), 6 deletions(-) -diff --git a/hacks/barcode.c b/hacks/barcode.c -index 20c2f38..ba3e2b2 100644 ---- a/hacks/barcode.c -+++ b/hacks/barcode.c -@@ -122,8 +122,6 @@ static const char *words[] = - "bird flu", - "bliss", - "bogosity", -- "boobies", -- "boobs", - "booty", - "bread", - "brogrammers", -@@ -139,7 +137,6 @@ static const char *words[] = - "chocolate", - "chupacabra", - "CLONE", -- "cock", - "congress", - "constriction", - "contrition", -@@ -184,7 +181,6 @@ static const char *words[] = - "fear", - "fever", - "filth", -- "flatulence", - "fluff", - "fnord", - "followers", -@@ -202,9 +198,7 @@ static const char *words[] = - "happiness", - "hate", - "helplessness", -- "hemorrhoid", - "hermaphrodite", -- "heroin", - "heroine", - "hope", - "hysteria", -@@ -286,7 +280,6 @@ static const char *words[] = - "punishment", - "punk rock", - "punk", -- "pussy", - "quagmire", - "quarantine", - "quartz", -@@ -295,7 +288,6 @@ static const char *words[] = - "rage", - "readout", - "reality", -- "rectum", - "reject", - "rejection", - "respect", -@@ -365,8 +357,6 @@ static const char *words[] = - "venom", - "verifiability", - "very fine people", -- "viagra", -- "vibrator", - "victim", - "vignette", - "villainy", diff --git a/hacks/glx/glsnake.c b/hacks/glx/glsnake.c index 8efc681..125df90 100644 --- a/hacks/glx/glsnake.c diff --git a/xscreensaver-6.05-0001-demo-Gtk.c-main-enable-localization-again.patch b/xscreensaver-6.05-0001-demo-Gtk.c-main-enable-localization-again.patch deleted file mode 100644 index e31cf0c..0000000 --- a/xscreensaver-6.05-0001-demo-Gtk.c-main-enable-localization-again.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 8e78268b11e76648a2d7924bb5ed402e9f926a85 Mon Sep 17 00:00:00 2001 -From: Mamoru TASAKA -Date: Sun, 23 Oct 2022 01:03:21 +0900 -Subject: [PATCH] demo-Gtk.c/main: enable localization again - -Even if demo-Gtk.c switched to use g_application_run(), for localization -gettext stuff must be called. ---- - driver/demo-Gtk.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c -index 442dac1..404fc88 100644 ---- a/driver/demo-Gtk.c -+++ b/driver/demo-Gtk.c -@@ -5094,6 +5094,12 @@ main (int argc, char *argv[]) - if (s) progname = s+1; - g_log_set_default_handler (g_logger, NULL); - g_log_set_writer_func (g_other_logger, NULL, NULL); -+# ifdef ENABLE_NLS -+ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); -+ textdomain (GETTEXT_PACKAGE); -+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); -+# endif /* ENABLE_NLS */ -+ - return g_application_run (G_APPLICATION (xscreensaver_app_new()), - argc, argv); - } --- -2.38.1 - diff --git a/xscreensaver-6.05-0002-demo-Gtk.c-populate_prefs_page-use-correct-pointer-f.patch b/xscreensaver-6.05-0002-demo-Gtk.c-populate_prefs_page-use-correct-pointer-f.patch deleted file mode 100644 index 29a5874..0000000 --- a/xscreensaver-6.05-0002-demo-Gtk.c-populate_prefs_page-use-correct-pointer-f.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ae526a4276abeccdd0b0c738dea903c5575a52b6 Mon Sep 17 00:00:00 2001 -From: Mamoru TASAKA -Date: Sun, 23 Oct 2022 02:41:03 +0900 -Subject: [PATCH] demo-Gtk.c/populate_prefs_page: use correct pointer for - pref_changed_cb - -With xscreensaver 6.05. xscreensaver-settings causes segfault when -trying to choose another theme for auth window. This is because -in populate_prefs_page() wrong pointer is passed to pref_changed_cb(), -then XSCREENSAVER_WINDOW cast complains. - -The first line in populate_prefs_page() actually writes what pointer -should be used - use the same pointer here. ---- - driver/demo-Gtk.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c -index 404fc88..aa85923 100644 ---- a/driver/demo-Gtk.c -+++ b/driver/demo-Gtk.c -@@ -2518,7 +2518,7 @@ populate_prefs_page (state *s) - if (! signal_connected_p) - { - g_signal_connect (G_OBJECT (cbox), "changed", -- G_CALLBACK (pref_changed_cb), (gpointer) s); -+ G_CALLBACK (pref_changed_cb), (gpointer) s->window); - signal_connected_p = TRUE; - } - } --- -2.38.1 - diff --git a/xscreensaver-6.05-0003-hacks-fonts-fix-installation-on-out-of-source-build.patch b/xscreensaver-6.05-0003-hacks-fonts-fix-installation-on-out-of-source-build.patch deleted file mode 100644 index 6ef38a0..0000000 --- a/xscreensaver-6.05-0003-hacks-fonts-fix-installation-on-out-of-source-build.patch +++ /dev/null @@ -1,37 +0,0 @@ -From daa5f3b4c1fe953527e3d58e8e511378e3411ef2 Mon Sep 17 00:00:00 2001 -From: XScreenSaver owners -Date: Fri, 4 Nov 2022 15:48:01 +0900 -Subject: [PATCH] hacks/fonts: fix installation on out-of-source build - -Fix the following error when doing out-of-source build: -``` -make[1]: Entering directory '/builddir/xscreensaver-6.05/x86_64-pc-linux-gnu/hacks/fonts' -install -c -p -d /installroot/usr/share/fonts/xscreensaver -install -c -p -m 644 clacon.ttf /installroot/usr/share/fonts/xscreensaver/clacon.ttf -install: cannot stat 'clacon.ttf': No such file or directory -install -c -p -m 644 gallant12x22.ttf /installroot/usr/share/fonts/xscreensaver/gallant12x22.ttf -install: cannot stat 'gallant12x22.ttf': No such file or directory -.... -``` ---- - hacks/fonts/Makefile.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/hacks/fonts/Makefile.in b/hacks/fonts/Makefile.in -index 193ecec..c5c637f 100644 ---- a/hacks/fonts/Makefile.in -+++ b/hacks/fonts/Makefile.in -@@ -69,8 +69,8 @@ install-fonts: - $(INSTALL_DIRS) "$$dest" ; \ - fi ; \ - for f in $(FONTS) ; do \ -- echo $(INSTALL_DATA) $$f $$dest/$$f ; \ -- $(INSTALL_DATA) $$f $$dest/$$f ; \ -+ echo $(INSTALL_DATA) $(srcdir)/$$f $$dest/$$f ; \ -+ $(INSTALL_DATA) $(srcdir)/$$f $$dest/$$f ; \ - done ; \ - fi - --- -2.38.1 - diff --git a/xscreensaver-6.05-0004-driver-Makefile.in-fix-GLIB_COMPILE_RESOURCES-source.patch b/xscreensaver-6.05-0004-driver-Makefile.in-fix-GLIB_COMPILE_RESOURCES-source.patch deleted file mode 100644 index 1e8b905..0000000 --- a/xscreensaver-6.05-0004-driver-Makefile.in-fix-GLIB_COMPILE_RESOURCES-source.patch +++ /dev/null @@ -1,43 +0,0 @@ -From e80109ca1ff408af1938508570d9168a6904cd33 Mon Sep 17 00:00:00 2001 -From: XScreenSaver owners -Date: Fri, 4 Nov 2022 16:28:51 +0900 -Subject: [PATCH] driver/Makefile.in: fix GLIB_COMPILE_RESOURCES source - reference -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix the following error: -``` -$ make -make[1]: Entering directory '/builddir/xscreensaver-6.05/x86_64-pc-linux-gnu/driver' -/usr/bin/glib-compile-resources gresource.xml --target=demo-Gtk-resources.c --sourcedir=../../driver --sourcedir=../../driver/../utils/images --generate-source -Failed to open file “gresource.xml”: No such file or directory -make[1]: *** [Makefile:864: demo-Gtk-resources.c] Error 1 -make[1]: Leaving directory '/builddir/xscreensaver-6.05/x86_64-pc-linux-gnu/driver' -``` - -`--sourcedir=DIR` option maybe a bit confusing. "man glib-compile-resources" says -the files referenced *in* FILE are loaded from this directory, i.e. the contents in -FILE is written so that the additional file should be loaded from this directory, -so it seems to be saying that the FILE itself is not searched from the directory. ---- - driver/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/driver/Makefile.in b/driver/Makefile.in -index c25494a..f46db37 100644 ---- a/driver/Makefile.in -+++ b/driver/Makefile.in -@@ -861,7 +861,7 @@ demo-Gtk-conf.o: demo-Gtk-conf.c - - GCRARGS = --sourcedir=$(srcdir) --sourcedir=$(ICON_SRC) --generate-source - demo-Gtk-resources.c: gresource.xml demo.ui prefs.ui -- $(GLIB_COMPILE_RESOURCES) gresource.xml --target=$@ $(GCRARGS) -+ $(GLIB_COMPILE_RESOURCES) $(srcdir)/gresource.xml --target=$@ $(GCRARGS) - - GTK_WARNINGS = -Wno-long-long -Wno-c99-extensions -Wno-pedantic - demo-Gtk-resources.o: demo-Gtk-resources.c --- -2.38.1 - diff --git a/xscreensaver-6.05-0005-hacks-Makefile.in-fix-driver-prefs.o-output-location.patch b/xscreensaver-6.05-0005-hacks-Makefile.in-fix-driver-prefs.o-output-location.patch deleted file mode 100644 index 44a2360..0000000 --- a/xscreensaver-6.05-0005-hacks-Makefile.in-fix-driver-prefs.o-output-location.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 9dace12f068c2cf8d64bea15ae48308015d5a427 Mon Sep 17 00:00:00 2001 -From: XScreenSaver owners -Date: Sat, 5 Nov 2022 22:38:41 +0900 -Subject: [PATCH] hacks/Makefile.in: fix driver/prefs.o output location - -Sometimes `make' process produces the following error: -``` -$ make - -make[1]: Entering directory '/builddir/xscreensaver-6.05/x86_64-pc-linux-gnu/driver' -gcc -fsanitize=address -fsanitize=undefined -std=gnu89 -pedantic -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wdeclaration-after-statement -Wno-overlength-strings -Wno-language-extension-token -Wno-variadic-macros -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -pthread -L/usr/lib64 -o xscreensaver xscreensaver.o blurb.o atoms.o clientmsg.o xinput.o prefs.o ../utils/xmu.o -lSM -lICE -lXi -lX11 -/bin/ld: cannot find prefs.o: No such file or directory -collect2: error: ld returned 1 exit status -make[1]: *** [Makefile:830: xscreensaver] Error 1 -make[1]: Leaving directory '/builddir/xscreensaver-6.05/x86_64-pc-linux-gnu/driver' -make: *** [Makefile:30: default] Error 5 -``` - -Actually prefs.o is found under /builddir/xscreensaver-6.05/driver , not under /builddir/xscreensaver-6.05/x86_64-pc-linux-gnu/driver . -This error happens when prefs.o is created first by hacks/Makefile, later trying to make on driver/Makefile. -`$ make -d' (debug mode) shows make process finds xscreensaver-6.05/driver/prefs.o , tring to "reuse" it, -but at last final linkage fails because x86_64-pc-linux-gnu/driver/prefs.o is not built yet. - -This commit fixes prefs.o output location. ---- - hacks/Makefile.in | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/hacks/Makefile.in b/hacks/Makefile.in -index 874b139..1c11685 100644 ---- a/hacks/Makefile.in -+++ b/hacks/Makefile.in -@@ -65,6 +65,9 @@ UTILS_SRC = $(srcdir)/../utils - UTILS_BIN = ../utils - HACK_BIN = . - -+DRIVER_SRC = $(srcdir)/../driver -+DRIVER_BIN = ../driver -+ - INCLUDES_1 = -I. -I$(srcdir) -I$(UTILS_SRC) -I.. - INCLUDES = $(INCLUDES_1) @INCLUDES@ - -@@ -492,9 +495,9 @@ $(UTIL_OBJS): - $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" - - # For xscreensaver-getimage --$(srcdir)/../driver/prefs.o: $(srcdir)/../driver/prefs.c --$(srcdir)/../driver/prefs.o: -- cd $(srcdir)/../driver ; \ -+$(DRIVER_BIN)/prefs.o: $(DRIVER_SRC)/prefs.c -+$(DRIVER_BIN)/prefs.o: -+ cd $(DRIVER_BIN) ; \ - $(MAKE) $(@F) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" - - -@@ -544,7 +547,7 @@ GETIMG_OBJS = xscreensaver-getimage.o \ - $(UTILS_BIN)/colors.o $(UTILS_BIN)/grabscreen.o \ - $(UTILS_BIN)/logo.o $(UTILS_BIN)/minixpm.o \ - $(UTILS_BIN)/xmu.o \ -- $(srcdir)/../driver/prefs.o -+ $(DRIVER_BIN)/prefs.o - GETIMG_LIBS = $(LIBS) $(X_LIBS) $(PNG_LIBS) $(JPEG_LIBS) \ - $(X_PRE_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS) - --- -2.38.1 - diff --git a/xscreensaver-6.05-webcollage-default-nonet.patch b/xscreensaver-6.06-webcollage-default-nonet.patch similarity index 97% rename from xscreensaver-6.05-webcollage-default-nonet.patch rename to xscreensaver-6.06-webcollage-default-nonet.patch index 0376ead..88f7e4f 100644 --- a/xscreensaver-6.05-webcollage-default-nonet.patch +++ b/xscreensaver-6.06-webcollage-default-nonet.patch @@ -31,7 +31,7 @@ index a2acab7..1db7aa5 100644 +and uses image files on your local disk. If you want webcollage to +search for image files on net, use webcollage.original . + - Written by Jamie Zawinski; 1999. + Written by Jamie Zawinski; 1998. diff --git a/hacks/webcollage.man b/hacks/webcollage.man diff --git a/xscreensaver-6.07-0001-make_ximage-avoid-integer-overflow-on-left-shift.patch b/xscreensaver-6.07-0001-make_ximage-avoid-integer-overflow-on-left-shift.patch new file mode 100644 index 0000000..a2eecaf --- /dev/null +++ b/xscreensaver-6.07-0001-make_ximage-avoid-integer-overflow-on-left-shift.patch @@ -0,0 +1,49 @@ +From 1e20010cd70edd4c26bbc6ce48c57bf36b064aeb Mon Sep 17 00:00:00 2001 +From: XScreenSaver owners +Date: Fri, 1 Sep 2023 17:30:50 +0900 +Subject: [PATCH 1/2] make_ximage: avoid integer overflow on left shift + +gcc -fsanitize=undefined shows the following undefined behavior: + +../../hacks/ximage-loader.c:176:29: runtime error: left shift of 255 by 24 places cannot be represented in type 'int' +../../hacks/ximage-loader.c:169:29: runtime error: left shift of 255 by 24 places cannot be represented in type 'int' + +This is because of integral promotion from guchar to int, not to unsigned int. + +To avoid this error, cast to unsigned long type. +--- + hacks/ximage-loader.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hacks/ximage-loader.c b/hacks/ximage-loader.c +index a3f6eb0..152ad9f 100644 +--- a/hacks/ximage-loader.c ++++ b/hacks/ximage-loader.c +@@ -159,21 +159,21 @@ make_ximage (Display *dpy, Visual *visual, const char *filename, + unsigned long rgba = 0; + switch (chan) { + case 1: +- rgba = ((0xFF << 24) | ++ rgba = ((0xFFUL << 24) | + (*i << 16) | + (*i << 8) | + *i); + i++; + break; + case 3: +- rgba = ((0xFF << 24) | ++ rgba = ((0xFFUL << 24) | + (i[2] << 16) | + (i[1] << 8) | + i[0]); + i += 3; + break; + case 4: +- rgba = ((i[3] << 24) | ++ rgba = ((((unsigned long)i[3]) << 24) | + (i[2] << 16) | + (i[1] << 8) | + i[0]); +-- +2.41.0 + diff --git a/xscreensaver-6.07-0002-convert_ximage_to_rgba32-avoid-integer-overflow-on-l.patch b/xscreensaver-6.07-0002-convert_ximage_to_rgba32-avoid-integer-overflow-on-l.patch new file mode 100644 index 0000000..334c203 --- /dev/null +++ b/xscreensaver-6.07-0002-convert_ximage_to_rgba32-avoid-integer-overflow-on-l.patch @@ -0,0 +1,37 @@ +From b6aacc5eb73ef0d41bdff9cd62672d4dc7a62e0d Mon Sep 17 00:00:00 2001 +From: XScreenSaver owners +Date: Fri, 1 Sep 2023 17:32:57 +0900 +Subject: [PATCH 2/2] convert_ximage_to_rgba32: avoid integer overflow on left + shift + +gcc -fsanitize=undefined shows the following undefined behavior: + +../../../hacks/glx/grab-ximage.c:213:21: runtime error: left shift of 255 by 24 places cannot be represented in type 'int' + +This is because of integral promotion from unsigned char to int, not to unsigned int. + +To avoid this error, cast to unsigned long type. +--- + hacks/glx/grab-ximage.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hacks/glx/grab-ximage.c b/hacks/glx/grab-ximage.c +index defefda..9d3a2d6 100644 +--- a/hacks/glx/grab-ximage.c ++++ b/hacks/glx/grab-ximage.c +@@ -207,10 +207,10 @@ convert_ximage_to_rgba32 (Screen *screen, XImage *image) + sb = spread_map[2][sb]; + } + +- cp = ((sr << crpos) | ++ cp = ((((unsigned long)sr) << crpos) | + (sg << cgpos) | + (sb << cbpos) | +- (0xFF << capos)); ++ (0xFFUL << capos)); + + XPutPixel (to, x, y, cp); + } +-- +2.41.0 + diff --git a/xscreensaver-6.13-0001-driver-demo-Gtk.c-Initialize-locking_supported_p-for.patch b/xscreensaver-6.13-0001-driver-demo-Gtk.c-Initialize-locking_supported_p-for.patch new file mode 100644 index 0000000..2a33417 --- /dev/null +++ b/xscreensaver-6.13-0001-driver-demo-Gtk.c-Initialize-locking_supported_p-for.patch @@ -0,0 +1,26 @@ +From 7071bfa1503191aaf5ab550fe2cd41350b15d15f Mon Sep 17 00:00:00 2001 +From: Jamie Zawinski +Date: Sat, 6 Dec 2025 11:19:50 +0900 +Subject: [PATCH] driver/demo-Gtk.c: Initialize locking_supported_p for X11 + session + +--- + driver/demo-Gtk.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c +index 9ab785d..692b84d 100644 +--- a/driver/demo-Gtk.c ++++ b/driver/demo-Gtk.c +@@ -2585,6 +2585,8 @@ populate_prefs_page (state *s) + # ifdef NO_LOCKING + s->locking_supported_p = FALSE; + lock_why = _("Not compiled with support for locking"); ++#else ++ s->locking_supported_p = TRUE; + # endif + + if (s->backend == WAYLAND_BACKEND || +-- +2.52.0 + diff --git a/xscreensaver.spec b/xscreensaver.spec index 6a636d1..53c47b6 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,9 +1,8 @@ %define name xscreensaver -%define mainversion 6.05 -%define extratarver 1 -#%%define beta_ver b2 -%undefine beta_ver +%define mainversion 6.13 +%dnl %define extratarver 1 +%dnl %define beta_ver b2 %define modular_conf 1 @@ -12,7 +11,7 @@ %define split_getimage 1 %endif -%define fedora_rel 3 +%define baserelease 1 %global use_clang_as_cc 0 %global use_clang_analyze 0 @@ -73,8 +72,8 @@ Summary: X screen saver and locker Name: %{name} -Version: %{mainversion} -Release: %{?beta_ver:0.}%{fedora_rel}%{?beta_ver:.%beta_ver}%{?dist}%{flagrel}%{?extrarel} +Version: %{mainversion}%{?extratarver:.%extratarver} +Release: %{?beta_ver:0.}%{baserelease}%{?beta_ver:.%beta_ver}%{?dist}%{flagrel}%{?extrarel} Epoch: 1 License: MIT URL: http://www.jwz.org/xscreensaver/ @@ -88,6 +87,9 @@ Source12: xscreensaver-autostart.desktop %endif # wrapper script for switching user (bug 1878730) Source13: xscreensaver-newlogin-wrapper +# bug 129335 +# Remove unwilling words from barcode hack +Source20: barcode-words-blacklist.txt Source100: ja.po ## ## Patches @@ -97,24 +99,18 @@ Patch1: xscreensaver-5.45-0001-barcode-glsnake-sanitize-the-names-of-mo ## Patches already sent to the upsteam ## Patches which must be discussed with upstream # See bug 472061 -Patch21: xscreensaver-6.05-webcollage-default-nonet.patch -# demo-Gtk.c/main: enable localization again -Patch501: xscreensaver-6.05-0001-demo-Gtk.c-main-enable-localization-again.patch -# demo-Gtk.c/populate_prefs_page: use correct pointer for pref_changed_cb -Patch502: xscreensaver-6.05-0002-demo-Gtk.c-populate_prefs_page-use-correct-pointer-f.patch -# hacks/fonts: fix installation on out-of-source build -Patch503: xscreensaver-6.05-0003-hacks-fonts-fix-installation-on-out-of-source-build.patch -# driver/Makefile.in: fix GLIB_COMPILE_RESOURCES source -Patch504: xscreensaver-6.05-0004-driver-Makefile.in-fix-GLIB_COMPILE_RESOURCES-source.patch -# hacks/Makefile.in: fix driver/prefs.o output location -Patch505: xscreensaver-6.05-0005-hacks-Makefile.in-fix-driver-prefs.o-output-location.patch -# misc: kill gcc warn_unused_result warnings -Patch3607: xscreensaver-5.36-0007-misc-kill-gcc-warn_unused_result-warnings.patch +Patch21: xscreensaver-6.06-webcollage-default-nonet.patch +# make_ximage: avoid integer overflow on left shift +Patch4701: xscreensaver-6.07-0001-make_ximage-avoid-integer-overflow-on-left-shift.patch +# convert_ximage_to_rgba32: avoid integer overflow on left shift +Patch4702: xscreensaver-6.07-0002-convert_ximage_to_rgba32-avoid-integer-overflow-on-l.patch +# driver/demo-Gtk.c: Initialize locking_supported_p for X11 session +Patch5301: xscreensaver-6.13-0001-driver-demo-Gtk.c-Initialize-locking_supported_p-for.patch # Fedora specific # window_init: search parenthesis first for searching year -Patch10001: xscreensaver-6.00-0001-screensaver_id-search-parenthesis-first-for-searchin.patch +Patch10001: xscreensaver-6.00-0001-screensaver_id-search-parenthesis-first-for-searchin.patch # dialog.c: window_init: show more version string -Patch10003: xscreensaver-6.00-0003-dialog.c-window_init-show-more-version-string.patch +Patch10003: xscreensaver-6.00-0003-dialog.c-window_init-show-more-version-string.patch # # gcc warning cleanup # Some cppcheck cleanup @@ -155,9 +151,11 @@ BuildRequires: bc BuildRequires: desktop-file-utils BuildRequires: gawk BuildRequires: gettext +BuildRequires: gettext-devel BuildRequires: libtool BuildRequires: pam-devel > %{pam_ver} BuildRequires: sed +BuildRequires: libxcrypt-devel # Use pseudo symlink # BuildRequires: xdg-utils BuildRequires: xorg-x11-proto-devel @@ -186,7 +184,7 @@ BuildRequires: libXt-devel #BuildRequires: libXxf86misc-devel BuildRequires: libXxf86vm-devel # XScreenSaver 5.31 -BuildRequires: libXft-devel +BuildRequires: pkgconfig(xft) BuildRequires: pkgconfig(gtk+-3.0) >= 2.22.0 BuildRequires: pkgconfig(gmodule-2.0) BuildRequires: pkgconfig(libxml-2.0) @@ -203,6 +201,17 @@ BuildRequires: pkgconfig(libcap) %if 0%{?support_systemd} >= 1 BuildRequires: pkgconfig(libsystemd) %endif +# From xscreensaver 6.07 +%if 0%{?enable_animation} +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libswscale) +BuildRequires: pkgconfig(libswresample) +%endif +# From xscreensaver 6.12 +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wayland-client) %if 0%{?fedora} BuildRequires: %{default_text} %endif @@ -210,6 +219,9 @@ BuildRequires: %{default_text} # https://fedoraproject.org/wiki/Changes/Build_Root_Without_Perl BuildRequires: perl-interpreter BuildRequires: perl-generators +# xscreensaver 6.07 calls check-configs.pl +BuildRequires: perl(strict) +BuildRequires: perl(diagnostics) # For --with-login-manager option %if 0%{?fedora} >= 14 # Use pseudo symlink, not writing BR: gdm @@ -224,10 +236,16 @@ Requires: appres %endif # For switch user wrapper Requires: %{_bindir}/pidof +# XScreenSaver 6.07: For manual +# Actually the following is not needed, yelp is still used +#Recommends: xterm %if 0%{?build_tests} < 1 # Obsoletes but not Provides Obsoletes: xscreeensaver-tests < %{epoch}:%{version}-%{release} %endif +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1030659 +# XScreenSaver 6.06 xscreensaver-settings now needs xscreensaver-gl-visual +Requires: %{name}-gl-base = %{epoch}:%{version}-%{release} %package extras-base Summary: A base package for screensavers @@ -251,7 +269,6 @@ Requires: %{name}-extras-base = %{epoch}:%{version}-%{release} %package gl-base Summary: A base package for screensavers that require OpenGL -Requires: %{name}-base = %{epoch}:%{version}-%{release} %package gl-extras Summary: An enhanced set of screensavers that require OpenGL @@ -382,20 +399,22 @@ rm -f driver/XScreenSaver_ad.h find . -name \*.c -exec chmod ugo-x {} \; %__git init -%__git config user.email "xscreensaver-owner@fedoraproject.org" -%__git config user.name "XScreenSaver owners" +%__git config user.email "xscreensaver-maintainer@fedoraproject.org" +%__git config user.name "XScreenSaver maintainer" %__git add . %__git commit -m "base" -q %__cat %PATCH1 | %__git am +%__cat %SOURCE20 | while read f +do + sed -i hacks/barcode.c -e "\@\"$f\"@s@^.*\$@/**/@" +done +%__git commit -m "barcode: sanitize the names of modes" -a %__cat %PATCH21 | %__git am -%__cat %PATCH501 | %__git am -%__cat %PATCH502 | %__git am -%__cat %PATCH503 | %__git am -%__cat %PATCH504 | %__git am -%__cat %PATCH505 | %__git am -#%%__cat %PATCH3607 | %__git am +%__cat %PATCH4701 | %__git am +%__cat %PATCH4702 | %__git am +%__cat %PATCH5301 | %__git am %__cat %PATCH10001 | %__git am %__cat %PATCH10003 | %__git am @@ -444,6 +463,7 @@ for f in \ driver/XScreenSaver.ad.in \ %endif hacks/glx/sproingies.man \ + hacks/glx/cubocteversion.man \ ; do iconv -f ISO-8859-1 -t UTF-8 $f > $f.tmp || cp -p $f $f.tmp touch -r $f $f.tmp @@ -473,9 +493,13 @@ change_option driver/XScreenSaver.ad.in \ # Disable the following hacks by default \ # (disable, not remove) silence_hack driver/XScreenSaver.ad.in \ - bsod flag \ - peepers \ + bsod \ + covid19 \ + flag \ headroom \ + peepers \ + skulloop \ + skytentacles \ %{nil} %__git commit -m "%PATCH_desc" -a @@ -515,6 +539,12 @@ sed -i.manentry -e 's@man %%s@man 6x %%s 2>/dev/null || man 1 %%s @' \ driver/XScreenSaver.ad.in %__git commit -m "%PATCH_desc" -a +# XScreenSaver 6.07: use xterm +sed -i.term \ + driver/XScreenSaver.ad.in \ + -e 's|lxterminal|xterm|' +%__git commit -m "Manual: change terminal to xterm" -a + # Suppress rpmlint warnings. # suppress about pam config (although this is # not the fault of xscreensaver.pam ......). @@ -523,6 +553,15 @@ sed -i.manentry -e 's@man %%s@man 6x %%s 2>/dev/null || man 1 %%s @' \ %if 0 sed -i.rpmlint -n -e '1,5p' driver/xscreensaver.pam %endif +# xscreensaver 6.12 +sed -i.auth driver/xscreensaver.pam.in \ + -e '\@auth.*include.*system-auth@s|^#||' +%__git commit -m "Use system-auth for auth again" -a +# xscreensaver 6.13 +# and don't override xscreensaver.pam by system-wide /etc/pam.d/login or so +sed -i.nooverride driver/Makefile.in \ + -e '\@src2.*PAM_DIR@s|src2=.*$|src2= ;\\|' +%__git commit -m "Don't override xscreensaver.pam by system-wide /etc/pam.d/login or so" -a if [ -x %{_datadir}/libtool/config.guess ]; then # use system-wide copy @@ -557,12 +596,18 @@ sed -i Makefile.in.in \ popd %__git commit -m "Manually fix po files entry" -a +# xscreensaver 6.13: test-wayland-lock: no rule for wayland-lock.o +sed -i driver/Makefile.in -e 's|test-wayland-lock$||' +%__git commit -m "Skip test-wayland-lock for now" -a + # %%configure adds --disable-dependency-tracking, don't fail with that for now sed -i configure.ac \ -e "$(($(sed -n '\@ac_unrecognized_opts@=' configure.ac | head -n 1) + 2))s|exit 2|true exit 2|" %__git commit -m "Don't make configure fail with unrecognized option" -a touch config.rpath +# Add ACLOCAL_PATH for gettext 0.25 (ref: bug 2366708) +export ACLOCAL_PATH=%{_datadir}/gettext/m4/ aclocal autoconf autoheader @@ -631,6 +676,8 @@ CONFIG_OPTS="$CONFIG_OPTS --with-text-file=%{default_text}" CONFIG_OPTS="$CONFIG_OPTS --with-x-app-defaults=%{_datadir}/X11/app-defaults" CONFIG_OPTS="$CONFIG_OPTS --disable-root-passwd" CONFIG_OPTS="$CONFIG_OPTS --with-browser=xdg-open" +# 6.12 +CONFIG_OPTS="$CONFIG_OPTS --with-wayland" # From xscreensaver 5.12, login-manager option is on by default # For now, let's enable it on F-14 and above @@ -793,7 +840,7 @@ rm -rf ${RPM_BUILD_ROOT} # mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d -make install_prefix=$RPM_BUILD_ROOT INSTALL="install -c -p" install +make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -c -p" install # Kill OnlyShowIn=GNOME; on F-11+ (bug 483495) desktop-file-install --vendor "" --delete-original \ @@ -816,7 +863,7 @@ desktop-file-install --vendor "" --delete-original \ # It does this by parsing the output of a dummy run of "make install". list_files() { echo "%%defattr(-,root,root,-)" - make -s install_prefix=${RPM_BUILD_ROOT} INSTALL=true "$@" \ + make -s DESTDIR=${RPM_BUILD_ROOT} INSTALL=true "$@" \ | sed -e '\@gtk-update-icon-cache@d' \ | sed -n -e 's@.* \(/[^ ]*\)$@\1@p' \ | sed -e "s@^${RPM_BUILD_ROOT}@@" \ @@ -869,7 +916,7 @@ done echo "%%defattr(-,root,root,-)" >> $dd/gl-base.files grep xscreensaver-gl-visual $dd/gl-extras.files >> $dd/gl-base.files -sed -i -e '/xscreensaver-gl-helper/d' $dd/gl-extras.files +sed -i -e '/xscreensaver-gl-visual/d' $dd/gl-extras.files sed -i -e 's|^\(%{_mandir}.*\)$|\1*|' $dd/gl-base.files %endif @@ -1172,6 +1219,78 @@ exit 0 %endif %changelog +* Sat Dec 06 2025 Mamoru TASAKA - 1:6.13-1 +- Update to 6.13 + +* Thu Nov 06 2025 Dominik Mierzejewski - 1:6.12-5 +- Rebuilt for FFmpeg 8 + +* Wed Oct 15 2025 Dominik Mierzejewski - 1:6.12-4 +- Fixed build with FFmpeg 8 + +* Fri Jul 25 2025 Fedora Release Engineering - 1:6.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jul 11 2025 Mamoru TASAKA - 1:6.12-2 +- Fix heap buffer overflow on xscreensaver-settings when reading previous hack + +* Fri Jul 11 2025 Mamoru TASAKA - 1:6.12-1 +- Update to 6.12 + +* Mon May 26 2025 Mamoru TASAKA - 1:6.10.1-2 +- Add ACLOCAL_PATH for gettext 0.25 (ref: bug 2366708) + +* Tue Apr 29 2025 Mamoru TASAKA - 1:6.10.1-1 +- Update to 6.10.1 + +* Sat Feb 01 2025 Björn Esser - 1:6.09-5 +- Add explicit BR: libxcrypt-devel + +* Sun Jan 19 2025 Fedora Release Engineering - 1:6.09-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Sep 23 2024 Fabio Valentini - 1:6.09-3 +- Rebuild for ffmpeg 7 + +* Sat Jul 20 2024 Fedora Release Engineering - 1:6.09-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jun 11 2024 Mamoru TASAKA - 1:6.09-1 +- Update to 6.09 + +* Sat Jan 27 2024 Fedora Release Engineering - 1:6.08-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Oct 17 2023 Mamoru TASAKA - 1:6.08-1 +- Update to 6.08 + +* Thu Sep 7 2023 Mamoru TASAKA - 1:6.07-4 +- Fix compilation to make --with-record-animation really work + +* Sun Sep 3 2023 Mamoru TASAKA - 1:6.07-3 +- Fix patch again + +* Fri Sep 1 2023 Mamoru TASAKA - 1:6.07-2 +- Update to 6.07 +- make_ximage: avoid integer overflow on left shift +- convert_ximage_to_rgba32: likewise + +* Sat Jul 22 2023 Mamoru TASAKA - 1:6.06-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Mar 2 2023 Mamoru TASAKA - 1:6.06-3 +- distort_reset: restrict radius by xgwa correctly (bug 2174626) + +* Wed Feb 15 2023 Mamoru TASAKA - 1:6.06-2 +- Make -base subpackage require -gl-base (debian bug 1030659) +- switch_page_cb: backport debian fix for DPMS settings issue + +* Sat Jan 21 2023 Fedora Release Engineering - 1:6.06-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Dec 12 2022 Mamoru TASAKA - 1:6.06-1 +- Update to 6.06 + * Sun Nov 6 2022 Mamoru TASAKA - 1:6.05-3 - Kill no longer needed workaround stuff - hacks/fonts: fix installation on out-of-source build