From 821f854f3f4197e31752c1238564dbb42cdb2e2e Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Jul 24 2008 18:15:32 +0000 Subject: - Patch from jwz to fix bug 456399 --- diff --git a/xscreensaver-5.06-bz456399-jwz.patch b/xscreensaver-5.06-bz456399-jwz.patch new file mode 100644 index 0000000..4aa9207 --- /dev/null +++ b/xscreensaver-5.06-bz456399-jwz.patch @@ -0,0 +1,54 @@ +Index: driver/screens.c +=================================================================== +RCS file: /cvsroot/xscreensaver/driver/screens.c,v +retrieving revision 1.7 +diff -u -r1.7 screens.c +--- driver/screens.c 8 Jul 2008 05:22:46 -0000 1.7 ++++ driver/screens.c 24 Jul 2008 15:52:14 -0000 +@@ -342,7 +342,7 @@ + + for (i = 0, j = 0; i < ScreenCount (dpy); i++) + { +- Screen *screen = ScreenOfDisplay (dpy, j); ++ Screen *screen = ScreenOfDisplay (dpy, i); + + if (! new_randr_p) /* RANDR 1.0 */ + { +@@ -624,6 +624,7 @@ + if (i != j && + monitors[i]->sanity == S_SANE && + monitors[j]->sanity == S_SANE && ++ monitors[i]->screen == monitors[j]->screen && + X2 >= X1 && + Y2 >= Y1 && + (X2+W2) <= (X1+W1) && +@@ -648,6 +649,7 @@ + { + if (monitors[i]->sanity != S_SANE) continue; /* already marked */ + if (monitors[j]->sanity != S_SANE) continue; ++ if (monitors[i]->screen != monitors[j]->screen) continue; + + if (monitors_overlap_p (monitors[i], monitors[j])) + { +@@ -656,17 +658,15 @@ + } + } + +- /* Finally, make sure all monitors are enclosed by their X screen. ++ /* Finally, make sure all monitors have sane positions and sizes. + Xinerama sometimes reports 1024x768 VPs at -1936862040, -1953705044. + */ + for (i = 0; i < count; i++) + { +- int sw = WidthOfScreen (monitors[i]->screen) * 2; +- int sh = HeightOfScreen (monitors[i]->screen) * 2; + if (monitors[i]->sanity != S_SANE) continue; /* already marked */ +- if (X1 < 0 || Y1 < 0 || +- W1 <= 0 || H1 <= 0 || +- X1+W1 > sw || Y1+H1 > sh) ++ if (X1 < 0 || Y1 < 0 || ++ W1 <= 0 || H1 <= 0 || ++ X1+W1 >= 0x7FFF || Y1+H1 >= 0x7FFF) + { + monitors[i]->sanity = S_OFFSCREEN; + monitors[i]->enemy = 0; diff --git a/xscreensaver.spec b/xscreensaver.spec index 8234bb3..d716ee9 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -5,7 +5,7 @@ %define modular_conf 1 -%define fedora_rel 1 +%define fedora_rel 2 %define extrarel %{nil} @@ -14,7 +14,8 @@ %define pam_ver 0.80-7 %define autoconf_ver 2.53 -%define update_po 1 +%define update_po 0 +%define build_tests 0 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -32,6 +33,7 @@ Source10: update-xscreensaver-hacks %endif Patch1: xscreensaver-5.00b5-sanitize-hacks.patch Patch21: xscreensaver-5.05-webcollage-default-nonet.patch +Patch40: xscreensaver-5.06-bz456399-jwz.patch Requires: xscreensaver-base = %{epoch}:%{version}-%{release} Requires: xscreensaver-extras = %{epoch}:%{version}-%{release} Requires: xscreensaver-gl-extras = %{epoch}:%{version}-%{release} @@ -67,6 +69,10 @@ Requires: pam > %{pam_ver} Requires: xdg-utils Requires: xorg-x11-resutils Requires: xorg-x11-fonts-ISO8859-1-100dpi +%if 0%{?build_tests} < 1 +# Obsoletes but not Provides +Obsoletes: xscreeensaver-tests < %{epoch}:%{version}-%{release} +%endif %package extras Summary: An enhanced set of screensavers @@ -104,6 +110,11 @@ Group: Amusements/Graphics Requires: %{name}-gl-extras = %{epoch}:%{version}-%{release} Requires: gnome-screensaver +%package tests +Summary: Test programs related to XScreenSaver +Group: Development/Debuggers +Requires: %{name}-base = %{epoch}:%{version}-%{release} + %description A modular screen saver and locker for the X Window System. @@ -166,6 +177,8 @@ for gnome-screensaver compatibility. This package contains desktop files of gl-extras screensavers for gnome-screensaver compatibility. +%description tests +This package contains some test programs to debug XScreenSaver. %prep @@ -173,6 +186,7 @@ for gnome-screensaver compatibility. %patch1 -p1 -b .sanitize-hacks %patch21 -p1 -b .nonet +%patch40 -p0 -b .jwz40 change_option(){ set +x @@ -279,6 +293,22 @@ sed -i.icon -e 's|xscreensaver\.xpm|xscreensaver|' \ driver/screensaver-properties.desktop.in %endif +# Disable (don't build) some tests +# apm: doesn't compile +# passwd: causes segv +# mlstring: causes OOM +sed -i.test \ + -e 's|test-apm[ \t][ \t]*t|t|' \ + -e 's|test-passwd[ \t][ \t]*t|t|' \ + -e 's|test-mlstring[ \t][ \t]*t|t|' \ + driver/Makefile.in +sed -i.dir -e '/TEST_FADE_OBJS =/s|UTILS_SRC|UTILS_BIN|' driver/Makefile.in + +# test-fade: give more time between fading +sed -i.delay -e 's| delay = 1| delay = 3|' driver/test-fade.c +# test-grab: testing time too long, setting time 15 min -> 20 sec +sed -i.delay -e 's|60 \* 15|20|' driver/test-grab.c + %build autoconf @@ -331,6 +361,11 @@ cd .. %endif +# test +%if %{build_tests} +make tests -C driver +%endif + %install archdir=`./config.guess` cd $archdir @@ -464,6 +499,17 @@ for f in ${RPM_BUILD_ROOT}%{_bindir}/xscreensaver-getimage-* \ fi done +# tests +%if %{build_tests} +echo "%%defattr(-,root,root,-)" > $dd/tests.files +cd driver +for tests in `find . -name test-\* -perm -0700` ; do + install -cpm 0755 $tests ${RPM_BUILD_ROOT}%{_libexecdir}/xscreensaver + echo "%{_libexecdir}/xscreensaver/$tests" >> $dd/tests.files +done +cd .. +%endif + # create desktop entry for gnome-screensaver create_desktop(){ COMMAND=`cat $1 | sed -n -e 's|^ - 1:5.06-2 +- Patch from jwz to fix bug 456399 + +* Thu Jul 24 2008 Mamoru Tasaka +- Build some test binaries for debugging + * Thu Jul 17 2008 Mamoru Tasaka - 1:5.06-1 - Update to 5.06