diff --git a/xscreensaver-5.00-pam-popup-passwindow.patch b/xscreensaver-5.00-pam-popup-passwindow.patch new file mode 100644 index 0000000..a680c20 --- /dev/null +++ b/xscreensaver-5.00-pam-popup-passwindow.patch @@ -0,0 +1,96 @@ +--- xscreensaver-5.00/driver/XScreenSaver.ad.in.poppasswin 2006-09-10 21:19:27.000000000 +0900 ++++ xscreensaver-5.00/driver/XScreenSaver.ad.in 2006-09-10 21:20:21.000000000 +0900 +@@ -33,6 +33,8 @@ + *cycle: 0:10:00 + *lockTimeout: 0:00:00 + *passwdTimeout: 0:00:30 ++*forbid_passwin: False ++*pop_passwin_iffailed: False + *dpmsEnabled: False + *dpmsStandby: 2:00:00 + *dpmsSuspend: 2:00:00 +--- xscreensaver-5.00/driver/lock.c.poppasswin 2006-05-18 08:35:54.000000000 +0900 ++++ xscreensaver-5.00/driver/lock.c 2006-09-10 16:15:18.000000000 +0900 +@@ -1613,6 +1613,9 @@ + si->unlock_typeahead = 0; + } + ++#ifdef HAVE_PAM ++extern Bool pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p); ++#endif + + Bool + unlock_p (saver_info *si) +@@ -1620,6 +1623,19 @@ + saver_preferences *p = &si->prefs; + Bool status; + ++#ifdef HAVE_PAM ++ ++ /* If using PAM authentication which does not need ++ password window popping up, imediately return. ++ */ ++ ++ if (p->forbid_passwin_p){ ++ status = pam_passwd_valid_p ("", p->verbose_p); ++ if (status || !p->pop_passwin_iffailed_p) ++ return status; ++ } ++#endif ++ + raise_window (si, True, True, True); + + if (p->verbose_p) +--- xscreensaver-5.00/driver/prefs.c.poppasswin 2006-05-24 07:03:47.000000000 +0900 ++++ xscreensaver-5.00/driver/prefs.c 2006-09-10 21:00:40.000000000 +0900 +@@ -251,6 +251,8 @@ + "lockVTs", /* not saved */ + "lockTimeout", + "passwdTimeout", ++ "forbid_passwin", ++ "pop_passwin_iffailed", + "visualID", + "installColormap", + "verbose", +@@ -781,6 +783,9 @@ + CHECK("lockVTs") continue; /* don't save, unused */ + CHECK("lockTimeout") type = pref_time, t = p->lock_timeout; + CHECK("passwdTimeout") type = pref_time, t = p->passwd_timeout; ++ CHECK("forbid_passwin") type = pref_bool, b = p->forbid_passwin_p; ++ CHECK("pop_passwin_iffailed") ++ type = pref_bool, b = p->pop_passwin_iffailed_p; + CHECK("visualID") type = pref_str, s = visual_name; + CHECK("installColormap") type = pref_bool, b = p->install_cmap_p; + CHECK("verbose") type = pref_bool, b = p->verbose_p; +--- xscreensaver-5.00/driver/prefs.h.poppasswin 2006-05-18 08:35:54.000000000 +0900 ++++ xscreensaver-5.00/driver/prefs.h 2006-09-10 16:06:18.000000000 +0900 +@@ -87,6 +87,12 @@ + Time watchdog_timeout; /* how often to re-raise and re-blank screen */ + int pointer_hysteresis; /* mouse motions less than N/sec are ignored */ + ++ Bool forbid_passwin_p; /* Whether to forbid popping up ++ password window */ ++ Bool pop_passwin_iffailed_p; /* Whether to popup password window ++ if other PAM authentication failed. ++ */ ++ + Bool dpms_enabled_p; /* Whether to power down the monitor */ + Time dpms_standby; /* how long until monitor goes black */ + Time dpms_suspend; /* how long until monitor power-saves */ +--- xscreensaver-5.00/driver/xscreensaver.man.poppasswin 2005-07-24 03:21:24.000000000 +0900 ++++ xscreensaver-5.00/driver/xscreensaver.man 2006-09-10 22:01:43.000000000 +0900 +@@ -146,6 +146,14 @@ + password dialog box is up (for security purposes) and leaving the server + grabbed for too long can cause problems. + .TP 8 ++.B forbid_passwin\fP (class \fBBoolean\fP) ++Whether to prevent from popping up password unlock window when unlocking the ++screen, with using PAM authentication which supports non-password method. ++.TP 8 ++.B pop_passwin_iffailed\fP (class \fBBoolean\fP) ++Whether to pop up password unlock window and use normal password ++authentication when non-password PAM authentication failed. ++.TP 8 + .B dpmsEnabled\fP (class \fBBoolean\fP) + Whether power management is enabled. + .TP 8 diff --git a/xscreensaver.spec b/xscreensaver.spec index 1e5e41b..4754f2f 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,7 +1,7 @@ %define name xscreensaver %define version 5.00 -%define fedora_rel 20 +%define fedora_rel 21 %define default_text %{_datadir}/eula/eula.en_US @@ -33,7 +33,7 @@ Patch105: xscreensaver-5.00-text-locale.patch Patch110: xscreensaver-5.00-fix-hacks.patch Patch111: xscreensaver-5.00-kill-getimage.patch Patch112: xscreensaver-5.00-po-correctdir.patch -#Patch113: xscreensaver-5.00-localesegv.patch +Patch114: xscreensaver-5.00-pam-popup-passwindow.patch %package base Summary: A minimal installation of xscreensaver @@ -133,10 +133,12 @@ for gnome-screensaver compatibility. %patch111 -p1 -b .kill-getimage %patch112 -p1 -b .po-dir #%%patch113 -p1 -b .localesegv +%patch114 -p1 -b .popup_passwin install -c -m644 -p %{SOURCE10} po/ja.po change_option(){ + set +x ADFILE=$1 if [ ! -f ${ADFILE}.opts ] ; then cp -p $ADFILE ${ADFILE}.opts @@ -149,11 +151,13 @@ change_option(){ eval sed -i \ -e \'s\|\^\\\(\\\*$TYPE\:\[ \\t\]\[ \\t\]\*\\\)\[\^ \\t\]\.\*\$\|\\1$VALUE\|\' \ - $ADFILE + $ADFILE done + set -x } silence_hack(){ + set +x ADFILE=$1 if [ ! -f ${ADFILE}.hack ] ; then cp -p $ADFILE ${ADFILE}.hack @@ -162,10 +166,11 @@ silence_hack(){ for hack in "$@" ; do eval sed -i \ - -e \'\/\^\[ \\t\]\[ \\t\]\*$hack\/s\|\^\|-\|g\' \ - -e \'s\|\^@GL_\.\*@.*\\\(GL\:\[ \\t\]\[ \\t\]\*$hack\\\)\|-\\t\\1\|g\' \ - $ADFILE + -e \'\/\^\[ \\t\]\[ \\t\]\*$hack\/s\|\^\|-\|g\' \ + -e \'s\|\^@GL_\.\*@.*\\\(GL\:\[ \\t\]\[ \\t\]\*$hack\\\)\|-\\t\\1\|g\' \ + $ADFILE done + set -x } change_option driver/XScreenSaver.ad.in \ @@ -384,6 +389,9 @@ rm -rf ${RPM_BUILD_ROOT} %defattr(-,root,root) %changelog +* Sun Sep 10 2006 Mamoru Tasaka - 1:5.00-21 +- Try to support non-password PAM authentication (bug #205669) + * Sat Sep 9 2006 Mamoru Tasaka - 1:5.00-20 - Change default document. - Again man entry fix.