From 3fd612a46e3ba93044ea0cfa6256a1e4edb73e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Wed, 4 Jun 2025 23:56:26 +0200 Subject: [PATCH 1/3] Update Qubes version on the lock screen QubesOS/qubes-issues#9317 --- ...-branding.patch => Qubes-0009-Update-to-4-3-branding.patch | 4 ++-- xscreensaver.spec.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename Qubes-0009-Update-to-4-2-branding.patch => Qubes-0009-Update-to-4-3-branding.patch (86%) diff --git a/Qubes-0009-Update-to-4-2-branding.patch b/Qubes-0009-Update-to-4-3-branding.patch similarity index 86% rename from Qubes-0009-Update-to-4-2-branding.patch rename to Qubes-0009-Update-to-4-3-branding.patch index 90cb7a9..5ebc07e 100644 --- a/Qubes-0009-Update-to-4-2-branding.patch +++ b/Qubes-0009-Update-to-4-3-branding.patch @@ -1,7 +1,7 @@ From c78d51772d9a7814a0d71a3d69fbd140766e6a46 Mon Sep 17 00:00:00 2001 From: unman Date: Thu, 21 Oct 2021 17:51:42 +0000 -Subject: [PATCH] Update to 4.2 branding +Subject: [PATCH] Update to 4.3 branding --- driver/dialog.c | 2 +- @@ -16,7 +16,7 @@ index e5834b6..666fb5f 100644 ws->heading_label = (char *) malloc (100); ws->version = strdup(version); - sprintf (ws->heading_label, "Qubes OS 4.1"); -+ sprintf (ws->heading_label, "Qubes OS 4.2"); ++ sprintf (ws->heading_label, "Qubes OS 4.3"); if (splash_p) { diff --git a/xscreensaver.spec.in b/xscreensaver.spec.in index 43ac352..b92d671 100644 --- a/xscreensaver.spec.in +++ b/xscreensaver.spec.in @@ -109,7 +109,7 @@ Patch6: Qubes-0001-Brand-with-Qubes.patch Patch7: Qubes-0002-Remove-Documentation-link-since-we-are-offline.patch Patch8: Qubes-0007-utils.patch Patch9: Qubes-0008-Remove-jwz-email-address-from-xscreensaver-help.patch -Patch10: Qubes-0009-Update-to-4-2-branding.patch +Patch10: Qubes-0009-Update-to-4-3-branding.patch ## Patches already sent to the upsteam ## Patches which must be discussed with upstream From 4994ade1f939c6b1f52a0267344202a4172c4822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 8 Jun 2025 01:36:23 +0200 Subject: [PATCH 2/3] Update to 6.10 Update patches, drop some not relevant anymore. Weirdly, tarball with 6.10 is called xscreensaver-6.10.1.tar.gz (but the directory inside is called xscreensaver-6.10) so add a bit of code around it. --- Qubes-0007-utils.patch | 8 +- barcode-words-blacklist.txt | 10 ++ rel | 2 +- version | 2 +- ...-glsnake-sanitize-the-names-of-modes.patch | 65 ------------ ...ectory-for-ffmpeg-related-libraries-.patch | 99 ------------------- ...out.c-include-additional-header-file.patch | 36 ------- xscreensaver-6.08.tar.gz.sha512 | 1 - xscreensaver-6.10.1.tar.gz.sha512 | 1 + xscreensaver.spec.in | 28 +++--- 10 files changed, 34 insertions(+), 218 deletions(-) create mode 100644 barcode-words-blacklist.txt delete mode 100644 xscreensaver-6.07-0003-check-header-directory-for-ffmpeg-related-libraries-.patch delete mode 100644 xscreensaver-6.07-0004-ffmpeg-out.c-include-additional-header-file.patch delete mode 100644 xscreensaver-6.08.tar.gz.sha512 create mode 100644 xscreensaver-6.10.1.tar.gz.sha512 diff --git a/Qubes-0007-utils.patch b/Qubes-0007-utils.patch index 98a4d7b..1464d43 100644 --- a/Qubes-0007-utils.patch +++ b/Qubes-0007-utils.patch @@ -13,7 +13,7 @@ index 28347f3..420919e 100644 +++ b/utils/version.h @@ -1,4 +1,4 @@ static const char screensaver_id[] = -- "@(#)xscreensaver 6.08 (10-Oct-2023), by Jamie Zawinski (jwz@jwz.org)"; -+ "@(#)xscreensaver 6.08 (10-Oct-2023), by Jamie Zawinski"; - #define XSCREENSAVER_VERSION "6.08" - #define XSCREENSAVER_RELEASED 1696964400 +- "@(#)xscreensaver 6.10 (28-Apr-2025), by Jamie Zawinski (jwz@jwz.org)"; ++ "@(#)xscreensaver 6.10 (28-Apr-2025), by Jamie Zawinski"; + #define XSCREENSAVER_VERSION "6.10" + #define XSCREENSAVER_RELEASED 1745866800 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/rel b/rel index 7ed6ff8..d00491f 100644 --- a/rel +++ b/rel @@ -1 +1 @@ -5 +1 diff --git a/version b/version index f85d6c7..3094a4c 100644 --- a/version +++ b/version @@ -1 +1 @@ -6.08 +6.10.1 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..11ab671 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 @@ -4,74 +4,9 @@ Date: Wed, 9 Dec 2020 22:12:09 +0900 Subject: [PATCH] barcode / glsnake: sanitize the names of modes --- - hacks/barcode.c | 10 ---------- hacks/glx/glsnake.c | 12 ++++++------ 2 files changed, 6 insertions(+), 16 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.07-0003-check-header-directory-for-ffmpeg-related-libraries-.patch b/xscreensaver-6.07-0003-check-header-directory-for-ffmpeg-related-libraries-.patch deleted file mode 100644 index 921a928..0000000 --- a/xscreensaver-6.07-0003-check-header-directory-for-ffmpeg-related-libraries-.patch +++ /dev/null @@ -1,99 +0,0 @@ -From a3556bac2e0e1a139487a94d4604294c0b957c48 Mon Sep 17 00:00:00 2001 -From: XScreenSaver owners -Date: Thu, 7 Sep 2023 23:24:17 +0900 -Subject: [PATCH 3/4] check header directory for ffmpeg related libraries and - add to CFLAGS - -The header files for ffmpeg related libraries may be installed -under subdirectories of /usr/include. - -To handle such settings: -- configure.ac: detect such header files correctly using pkg-config --cflags . -- hacks/Makefile.in: add header directory path to include path for compilation - when needed ---- - configure.ac | 15 +++++++++++++++ - hacks/Makefile.in | 6 ++++++ - 2 files changed, 21 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 826ec5a..feeff9a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -4015,6 +4015,9 @@ have_swresample="$ok" - # Check includes - if test "$have_avutil" = yes; then - ac_save_avutil_CPPFLAGS="$CPPFLAGS" -+ AC_CACHE_CHECK([for avutil includes], ac_cv_avutil_config_cflags, -+ [ac_cv_avutil_config_cflags=`$pkg_config --cflags libavutil`]) -+ ac_avutil_config_cflags=$ac_cv_avutil_config_cflags - CPPFLAGS="$CPPFLAGS $ac_avutil_config_cflags" - have_avutil=no - AC_CHECK_X_HEADER(libavutil/avutil.h, [have_avutil=yes]) -@@ -4023,6 +4026,9 @@ fi - - if test "$have_avcodec" = yes; then - ac_save_avcodec_CPPFLAGS="$CPPFLAGS" -+ AC_CACHE_CHECK([for avcodec includes], ac_cv_avcodec_config_cflags, -+ [ac_cv_avcodec_config_cflags=`$pkg_config --cflags libavcodec`]) -+ ac_avcodec_config_cflags=$ac_cv_avcodec_config_cflags - CPPFLAGS="$CPPFLAGS $ac_avcodec_config_cflags" - have_avcodec=no - AC_CHECK_X_HEADER(libavcodec/avcodec.h, [have_avcodec=yes]) -@@ -4031,6 +4037,9 @@ fi - - if test "$have_avformat" = yes; then - ac_save_avformat_CPPFLAGS="$CPPFLAGS" -+ AC_CACHE_CHECK([for avformat includes], ac_cv_avformat_config_cflags, -+ [ac_cv_avformat_config_cflags=`$pkg_config --cflags libavformat`]) -+ ac_avformat_config_cflags=$ac_cv_avformat_config_cflags - CPPFLAGS="$CPPFLAGS $ac_avformat_config_cflags" - have_avformat=no - AC_CHECK_X_HEADER(libavformat/avformat.h, [have_avformat=yes]) -@@ -4039,6 +4048,9 @@ fi - - if test "$have_swscale" = yes; then - ac_save_swscale_CPPFLAGS="$CPPFLAGS" -+ AC_CACHE_CHECK([for swscale includes], ac_cv_swscale_config_cflags, -+ [ac_cv_swscale_config_cflags=`$pkg_config --cflags libswscale`]) -+ ac_swscale_config_cflags=$ac_cv_swscale_config_cflags - CPPFLAGS="$CPPFLAGS $ac_swscale_config_cflags" - have_swscale=no - AC_CHECK_X_HEADER(libswscale/swscale.h, [have_swscale=yes]) -@@ -4047,6 +4059,9 @@ fi - - if test "$have_swresample" = yes; then - ac_save_swresample_CPPFLAGS="$CPPFLAGS" -+ AC_CACHE_CHECK([for swresample includes], ac_cv_swresample_config_cflags, -+ [ac_cv_swresample_config_cflags=`$pkg_config --cflags libswresample`]) -+ ac_swresample_config_cflags=$ac_cv_swresample_config_cflags - CPPFLAGS="$CPPFLAGS $ac_swresample_config_cflags" - have_swresample=no - AC_CHECK_X_HEADER(libswresample/swresample.h, [have_swresample=yes]) -diff --git a/hacks/Makefile.in b/hacks/Makefile.in -index 5942315..1cef418 100644 ---- a/hacks/Makefile.in -+++ b/hacks/Makefile.in -@@ -51,6 +51,8 @@ X_PRE_LIBS = @X_PRE_LIBS@ - X_EXTRA_LIBS = @X_EXTRA_LIBS@ - XFT_LIBS = @XFT_LIBS@ - -+FFMPEG_CFLAGS = @FFMPEG_CFLAGS@ -+ - # Note: see comment in ../driver/Makefile.in for explanation of X_LIBS, etc. - # - HACK_PRE = $(LIBS) $(X_LIBS) -@@ -507,6 +509,10 @@ HACK_CFLAGS_BASE=$(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) - .c.o: - $(CC) -c $(HACK_CFLAGS_BASE) $< - -+# For objects which require ffmpeg related headers -+ffmpeg-out.o: $(srcdir)/ffmpeg-out.c -+ $(CC) -o $@ -c $(FFMPEG_CFLAGS) $(HACK_CFLAGS_BASE) $< -+ - - # Make sure these are regenerated when the version number ticks. - screenhack.o: $(UTILS_SRC)/version.h --- -2.41.0 - diff --git a/xscreensaver-6.07-0004-ffmpeg-out.c-include-additional-header-file.patch b/xscreensaver-6.07-0004-ffmpeg-out.c-include-additional-header-file.patch deleted file mode 100644 index b1169a9..0000000 --- a/xscreensaver-6.07-0004-ffmpeg-out.c-include-additional-header-file.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 463a9e6352741e7bb358f8b8d9d437c17658c4b1 Mon Sep 17 00:00:00 2001 -From: XScreenSaver owners -Date: Thu, 7 Sep 2023 23:28:19 +0900 -Subject: [PATCH 4/4] ffmpeg-out.c: include additional header file -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When configure'ing with --with-record-animation using -ffmpeg 6.0, ffmpeg-out.c won't compile like: - -../../hacks/ffmpeg-out.c:47:3: error: unknown type name ‘AVCodecContext’ -../../hacks/ffmpeg-out.c:91:17: warning: implicit declaration of function ‘avcodec_receive_packet’ [-Wimplicit-function-declaration] - -... and so on. - -Include needed additional header. ---- - hacks/ffmpeg-out.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/hacks/ffmpeg-out.c b/hacks/ffmpeg-out.c -index 0295d7e..e54e9e6 100644 ---- a/hacks/ffmpeg-out.c -+++ b/hacks/ffmpeg-out.c -@@ -37,6 +37,7 @@ - /* No "diagnostic pop" because some macrose use c99 features. */ - #endif - -+#include - #include - #include - #include --- -2.41.0 - diff --git a/xscreensaver-6.08.tar.gz.sha512 b/xscreensaver-6.08.tar.gz.sha512 deleted file mode 100644 index a604ab1..0000000 --- a/xscreensaver-6.08.tar.gz.sha512 +++ /dev/null @@ -1 +0,0 @@ -a333d4921ed3a8219f3b672dd68543aea31fcd64ea6766143f1c7f6e5ed3bc7122355635d5afba1632457ad71a11cabdc7b2756431e4f1dc7e0426ae0896e6db diff --git a/xscreensaver-6.10.1.tar.gz.sha512 b/xscreensaver-6.10.1.tar.gz.sha512 new file mode 100644 index 0000000..ea81fb4 --- /dev/null +++ b/xscreensaver-6.10.1.tar.gz.sha512 @@ -0,0 +1 @@ +25219f670cdd18db34fc514dc68c628ac8721f88a15d5df2cecbef92ebdfaa916be40ddd171b79166fc20469c199573827dbcbeb7bfa258d48b7f1a9ca7ea07a diff --git a/xscreensaver.spec.in b/xscreensaver.spec.in index b92d671..46b4aa0 100644 --- a/xscreensaver.spec.in +++ b/xscreensaver.spec.in @@ -1,6 +1,7 @@ %define name xscreensaver -%define mainversion @VERSION@ +%define mainversion %(echo @VERSION@ | sed -e 's/\\([0-9]\\+\\.[0-9]\\+\\).*/\\1/') +%define fullversion @VERSION@ #%%define beta_ver b2 %undefine beta_ver @@ -69,12 +70,12 @@ Summary: X screen saver and locker Name: %{name} -Version: %{mainversion} +Version: %{fullversion} Release: %{?beta_ver:0.}%{fedora_rel}%{?beta_ver:.%beta_ver}%{?dist}%{flagrel}%{?extrarel} Epoch: 2 License: MIT URL: http://www.jwz.org/xscreensaver/ -Source0: http://www.jwz.org/xscreensaver/xscreensaver-%{mainversion}%{?beta_ver}.tar.gz +Source0: http://www.jwz.org/xscreensaver/xscreensaver-%{fullversion}%{?beta_ver}.tar.gz %if %{modular_conf} Source10: update-xscreensaver-hacks %endif @@ -84,6 +85,7 @@ Source12: xscreensaver-autostart.desktop %endif # wrapper script for switching user (bug 1878730) Source13: xscreensaver-newlogin-wrapper +Source20: barcode-words-blacklist.txt Source100: ja.po @@ -119,10 +121,6 @@ Patch21: xscreensaver-6.06-webcollage-default-nonet.patch 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 -# check header directory for ffmpeg related libraries and add to CFLAGS -Patch4703: xscreensaver-6.07-0003-check-header-directory-for-ffmpeg-related-libraries-.patch -# ffmpeg-out.c: include additional header file -Patch4704: xscreensaver-6.07-0004-ffmpeg-out.c-include-additional-header-file.patch # Fedora specific # window_init: search parenthesis first for searching year Patch10001: xscreensaver-6.00-0001-screensaver_id-search-parenthesis-first-for-searchin.patch @@ -174,6 +172,7 @@ BuildRequires: gettext BuildRequires: libtool BuildRequires: pam-devel > %{pam_ver} BuildRequires: sed +BuildRequires: libxcrypt-devel # Use pseudo symlink # BuildRequires: xdg-utils BuildRequires: xorg-x11-proto-devel @@ -429,12 +428,15 @@ find . -name \*.c -exec chmod ugo-x {} \; %__cat %PATCH9 | %__git am %__cat %PATCH10 | %__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 %PATCH4701 | %__git am %__cat %PATCH4702 | %__git am -%__cat %PATCH4703 | %__git am -%__cat %PATCH4704 | %__git am %__cat %PATCH10001 | %__git am %__cat %PATCH14001 | %__git am @@ -526,9 +528,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 From c411d08517702528b8905174f74462a7cd81dc24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 8 Jun 2025 01:54:26 +0200 Subject: [PATCH 3/3] Build for VM too Relevant for sys-gui, to have consistent experience. --- .gitlab-ci.yml | 2 ++ .qubesbuilder | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 294330f..89acaae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,3 +3,5 @@ include: project: QubesOS/qubes-continuous-integration - file: /r4.3/gitlab-host.yml project: QubesOS/qubes-continuous-integration +- file: /r4.3/gitlab-vm.yml + project: QubesOS/qubes-continuous-integration diff --git a/.qubesbuilder b/.qubesbuilder index 8e456c0..f87d2c8 100644 --- a/.qubesbuilder +++ b/.qubesbuilder @@ -2,6 +2,10 @@ host: rpm: build: - xscreensaver.spec +vm: + rpm: + build: + - xscreensaver.spec source: files: - url: https://ftp.qubes-os.org/distfiles/xscreensaver-@VERSION@.tar.gz