http://ftp.x.org/contrib/applications/xscreensaver-3.04.tar.gz
authorZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:42:31 +0000 (00:42 -0500)
committerZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:42:31 +0000 (00:42 -0500)
-rw-r--r-- 1 zblaxell zblaxell 965445 Nov 15  1998 xscreensaver-3.04.tar.gz
8e4448fa031da1b17773c61bd3a6eecc01584c75  xscreensaver-3.04.tar.gz

16 files changed:
Makefile.in
README
config.h.in
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/passwd-pam.c
driver/passwd-pwent.c
driver/xscreensaver-command.man
driver/xscreensaver-demo.man
driver/xscreensaver.man
hacks/Makefile.in
hacks/bsod.man [new file with mode: 0644]
hacks/munch.man
utils/version.h
xscreensaver.lsm
xscreensaver.spec [new file with mode: 0644]

index 266f4db116cba152237e967ed11f0da07a04a9de..b2e77f14880d98f91f00e389f12ec787c166fa22 100644 (file)
@@ -11,7 +11,7 @@ TARFILES      = README README.VMS README.debugging INSTALL xscreensaver.lsm \
                  configure configure.in Makefile.in config.h.in \
                  config.h-vms install-sh setup.com config.guess \
                  config.sub makevms.com screenblank.txt \
                  configure configure.in Makefile.in config.h.in \
                  config.h-vms install-sh setup.com config.guess \
                  config.sub makevms.com screenblank.txt \
-                 xscreensaver.lsm.sh
+                 xscreensaver.lsm.sh xscreensaver.spec
 TAR            = tar
 COMPRESS       = gzip --verbose --best
 COMPRESS_EXT   = gz
 TAR            = tar
 COMPRESS       = gzip --verbose --best
 COMPRESS_EXT   = gz
@@ -39,6 +39,7 @@ uninstall-man:
 depend:
        @$(MAKE_SUBDIR)
 distdepend:
 depend:
        @$(MAKE_SUBDIR)
 distdepend:
+       @$(MAKE) update_spec_version
        @$(MAKE_SUBDIR)
 TAGS: tags
 tags:
        @$(MAKE_SUBDIR)
 TAGS: tags
 tags:
@@ -152,6 +153,22 @@ bump-version::
   echo "overwrote $$SRC";                                                  \
   ls -lFd $$SRC
 
   echo "overwrote $$SRC";                                                  \
   ls -lFd $$SRC
 
+update_spec_version::
+       @S=$(srcdir)/xscreensaver.spec ;                                    \
+       U=$(srcdir)/utils/version.h ;                                       \
+       V=`sed -n 's/.*\([0-9][0-9]*\.[0-9]*\).*/\1/p' < $$U` ;             \
+       echo -n "Updating version number in $$S to \"$$V\"... " ;           \
+       T=/tmp/xs.$$$$ ;                                                    \
+       sed "s/^\(Version:[^0-9]*\)\(.*\)/\1$$V/"                           \
+         < $$S > $$T ;                                                     \
+       if cmp -s $$S $$T ; then                                            \
+         echo "unchanged." ;                                               \
+       else                                                                \
+         cat $$T > $$S ;                                                   \
+         echo "done." ;                                                    \
+       fi ;                                                                \
+       rm $$T
+
 test-tar::
        @                                                                   \
   VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][0-9]*\).*/\1/p' utils/version.h` ;  \
 test-tar::
        @                                                                   \
   VERS=`sed -n 's/[^0-9]*\([0-9]\.[0-9][0-9]*\).*/\1/p' utils/version.h` ;  \
diff --git a/README b/README
index 9d3df7ba1467d8005695c9ea9492f227e1b9f9c8..e866fcaabcc76e6c7e0d1368de19f6cf3d32191e 100644 (file)
--- a/README
+++ b/README
@@ -77,6 +77,12 @@ http://www.jwz.org/xscreensaver/.
 
                               ============
 
 
                               ============
 
+Changes since 3.03:   * Added an `xscreensaver.spec' file, to make it easier
+                        for other folks to generate RPMs.
+                      * Made the password code work on HPUX in the situation
+                        where: ``enhanced security'' is available; but not 
+                        used; but the user typed a password more than 8
+                        characters long anyway.  FTSOHPUX.
 Changes since 3.02:   * Made locking work when passwd aging is enabled.
                       * Added support for PAM (Pluggable Authentication
                         Modules.)  It is still turned off by default, though,
 Changes since 3.02:   * Made locking work when passwd aging is enabled.
                       * Added support for PAM (Pluggable Authentication
                         Modules.)  It is still turned off by default, though,
index 367aa85a97d7ff39f9d3fa632a3d8ec037ef2084..ae3554ad9daa7a68d5dc13767a9d5d976e4306e3 100644 (file)
 #undef HAVE_PAM
 
 /*  If PAM is being used, this is the name of the PAM service that xscreensaver
 #undef HAVE_PAM
 
 /*  If PAM is being used, this is the name of the PAM service that xscreensaver
- *  will authenticate as.  It would be sensible to set this to "xscreensaver".
- *  However, since some systems already have a PAM service named "xlock" 
- *  defined, we might as well use that.
+ *  will authenticate as.  The default is "xscreensaver", which means that the
+ *  PAM library will look for an "xscreensaver" line in /etc/pam.conf, or (on
+ *  recent Linux systems) will look for a file called /etc/pam.d/xscreensaver.
+ *  Some systems might already have a PAM installation that is configured for
+ *  xlock, so setting this to "xlock" would also work in that case.
  */
  */
-#define PAM_SERVICE_NAME "xlock"
+#define PAM_SERVICE_NAME "xscreensaver"
 
 /*  Define this if your system uses `shadow' passwords, that is, the passwords
  *  live in /etc/shadow instead of /etc/passwd, and one reads them with
 
 /*  Define this if your system uses `shadow' passwords, that is, the passwords
  *  live in /etc/shadow instead of /etc/passwd, and one reads them with
index e4bb969037e27283e6985934844344a60be0d9e9..7391a19f2584c108b0df0f4149d633a2665096ae 100644 (file)
@@ -55,6 +55,8 @@ X_EXTRA_LIBS  = @X_EXTRA_LIBS@
 
 
 AD_DIR         = @APPDEFAULTS@
 
 
 AD_DIR         = @APPDEFAULTS@
+PAM_DIR                = /etc/pam.d
+PAM_CONF       = /etc/pam.conf
 
 UTILS_SRC      = $(srcdir)/../utils
 UTILS_BIN      = ../utils
 
 UTILS_SRC      = $(srcdir)/../utils
 UTILS_BIN      = ../utils
@@ -224,8 +226,8 @@ install-pam:
        @src="$(srcdir)/xscreensaver.pam" ;                             \
        dest=`sed -n 's/.*PAM_SERVICE_NAME[     ]*"\([^"]*\)".*$$/\1/p' \
           < ../config.h` ;                                             \
        @src="$(srcdir)/xscreensaver.pam" ;                             \
        dest=`sed -n 's/.*PAM_SERVICE_NAME[     ]*"\([^"]*\)".*$$/\1/p' \
           < ../config.h` ;                                             \
-       dir=/etc/pam.d ;                                                \
-       conf=/etc/pam.conf ;                                            \
+       dir="$(PAM_DIR)" ;                                              \
+       conf="$(PAM_CONF)" ;                                            \
                                                                        \
        if [ -d $$dir ] ; then                                          \
          echo $(INSTALL_DATA) $$src $$dir/$$dest ;                     \
                                                                        \
        if [ -d $$dir ] ; then                                          \
          echo $(INSTALL_DATA) $$src $$dir/$$dest ;                     \
index 6e354619ce783e3d1e58463dfa83d7c5d3480194..0fee5d3e1706fab634d14a84a206bc9c46e2ee47 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 3.03
-!                                15-Nov-98
+!                              version 3.04
+!                                16-Nov-98
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
index f7d8528fd1a8e665caa8945bf7520258383b7e9e..e29ff9c71fa6745f793f79e61cdd43739933edd0 100644 (file)
@@ -59,6 +59,14 @@ struct pam_closure {
 };
 
 
 };
 
 
+#ifdef HAVE_PAM_FAIL_DELAY
+   /* We handle delays ourself.*/
+   /* Don't set this to 0 (Linux bug workaround.) */
+# define PAM_NO_DELAY(pamh) pam_fail_delay ((pamh), 1)
+# else  /* !HAVE_PAM_FAIL_DELAY */
+# define PAM_NO_DELAY(pamh) /* */
+# endif /* !HAVE_PAM_FAIL_DELAY */
+
 /* PAM sucks in that there is no way to tell whether a particular service
    is configured at all.  That is, there is no way to tell the difference
    between "authentication of the FOO service is not allowed" and "the
 /* PAM sucks in that there is no way to tell whether a particular service
    is configured at all.  That is, there is no way to tell the difference
    between "authentication of the FOO service is not allowed" and "the
@@ -141,10 +149,6 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
              status, pam_strerror (pamh, status));
   if (status != PAM_SUCCESS) goto DONE;
 
              status, pam_strerror (pamh, status));
   if (status != PAM_SUCCESS) goto DONE;
 
-# ifdef HAVE_PAM_FAIL_DELAY
-  pam_fail_delay (pamh, 0);    /* We handle delays ourself. */
-# endif /* HAVE_PAM_FAIL_DELAY */
-
   /* #### We should set PAM_TTY to the display we're using, but we
      don't have that handy from here.  So set it to :0.0, which is a
      good guess (and has the bonus of counting as a "secure tty" as
   /* #### We should set PAM_TTY to the display we're using, but we
      don't have that handy from here.  So set it to :0.0, which is a
      good guess (and has the bonus of counting as a "secure tty" as
@@ -160,6 +164,7 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
 
   /* Try to authenticate as the current user.
    */
 
   /* Try to authenticate as the current user.
    */
+  PAM_NO_DELAY(pamh);
   status = pam_authenticate (pamh, 0);
   if (verbose_p)
     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
   status = pam_authenticate (pamh, 0);
   if (verbose_p)
     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
@@ -176,6 +181,7 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
              blurb(), c.user, status, pam_strerror(pamh, status));
   if (status != PAM_SUCCESS) goto DONE;
 
              blurb(), c.user, status, pam_strerror(pamh, status));
   if (status != PAM_SUCCESS) goto DONE;
 
+  PAM_NO_DELAY(pamh);
   status = pam_authenticate (pamh, 0);
   if (verbose_p)
     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
   status = pam_authenticate (pamh, 0);
   if (verbose_p)
     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
index ba8366169ec0ca3bb762019c0817ecb56b010ff4..6e83e0f4a5440f757353b2c7dcb108b01a28f42f 100644 (file)
@@ -78,7 +78,8 @@
 #   define PWTYPE   struct s_passwd *
 #   define PWPSLOT  pw_passwd
 #   define GETPW    getspwnam
 #   define PWTYPE   struct s_passwd *
 #   define PWPSLOT  pw_passwd
 #   define GETPW    getspwnam
-#   define crypt    bigcrypt
+
+#   define HAVE_BIGCRYPT
 
 #endif
 
 
 #endif
 
@@ -176,7 +177,7 @@ get_encrypted_passwd(const char *user)
        result = strdup(p->pw_passwd);
     }
 
        result = strdup(p->pw_passwd);
     }
 
-  /* The manual for passwd(4) says:
+  /* The manual for passwd(4) on HPUX 10.10 says:
 
          Password aging is put in effect for a particular user if his
          encrypted password in the password file is followed by a comma and
 
          Password aging is put in effect for a particular user if his
          encrypted password in the password file is followed by a comma and
@@ -233,6 +234,32 @@ pwent_lock_init (int argc, char **argv, Bool verbose_p)
 }
 
 
 }
 
 
+static Bool
+passwds_match_p (const char *cleartext, const char *ciphertext)
+{
+  char *s = 0;  /* note that on some systems, crypt() may return null */
+
+  s = (char *) crypt (cleartext, ciphertext);
+  if (s && !strcmp (s, ciphertext))
+    return True;
+
+#ifdef HAVE_BIGCRYPT
+  /* There seems to be no way to tell at runtime if an HP machine is in
+     "trusted" mode, and thereby, which of crypt() or bigcrypt() we should
+     be calling to compare passwords.  So call them both, and see which
+     one works. */
+
+  s = (char *) bigcrypt (cleartext, ciphertext);
+  if (s && !strcmp (s, ciphertext))
+    return True;
+
+#endif /* HAVE_BIGCRYPT */
+  
+  return False;
+}
+
+
+
 /* This can be called at any time, and says whether the typed password
    belongs to either the logged in user (real uid, not effective); or
    to root.
 /* This can be called at any time, and says whether the typed password
    belongs to either the logged in user (real uid, not effective); or
    to root.
@@ -240,18 +267,14 @@ pwent_lock_init (int argc, char **argv, Bool verbose_p)
 Bool
 pwent_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
 {
 Bool
 pwent_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
 {
-  char *s = 0;  /* note that on some systems, crypt() may return null */
-
   if (encrypted_user_passwd &&
   if (encrypted_user_passwd &&
-      (s = (char *) crypt (typed_passwd, encrypted_user_passwd)) &&
-      !strcmp (s, encrypted_user_passwd))
+      passwds_match_p (typed_passwd, encrypted_user_passwd))
     return True;
 
   /* do not allow root to have a null password. */
   else if (typed_passwd[0] &&
           encrypted_root_passwd &&
     return True;
 
   /* do not allow root to have a null password. */
   else if (typed_passwd[0] &&
           encrypted_root_passwd &&
-          (s = (char *) crypt (typed_passwd, encrypted_root_passwd)) &&
-          !strcmp (s, encrypted_root_passwd))
+           passwds_match_p (typed_passwd, encrypted_root_passwd))
     return True;
 
   else
     return True;
 
   else
index 927fb5bd03086327d9120d27fd47e843e0290fb5..5905b85d4fe8f3b96baf899f61928c6834d17586 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "15-Nov-98 (3.03)" "X Version 11"
+.TH XScreenSaver 1 "16-Nov-98 (3.04)" "X Version 11"
 .SH NAME
 xscreensaver-command - control a running xscreensaver process
 .SH SYNOPSIS
 .SH NAME
 xscreensaver-command - control a running xscreensaver process
 .SH SYNOPSIS
index e320b9927e5ea28e32f6087a140dfb75ec39aaf6..44611dd769e141b03ac0670a7c625dc0942ddb7f 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "15-Nov-98 (3.03)" "X Version 11"
+.TH XScreenSaver 1 "16-Nov-98 (3.04)" "X Version 11"
 .SH NAME
 xscreensaver-demo - interactively control the background xscreensaver daemon
 .SH SYNOPSIS
 .SH NAME
 xscreensaver-demo - interactively control the background xscreensaver daemon
 .SH SYNOPSIS
index ad8b2898f4d27808d861e5db108d0e60bd637d37..94754b17f2fca70865ad0facb7fa392764c7c791 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "15-Nov-98 (3.03)" "X Version 11"
+.TH XScreenSaver 1 "16-Nov-98 (3.04)" "X Version 11"
 .SH NAME
 xscreensaver - graphics hack and screen locker, launched when the user is idle
 .SH SYNOPSIS
 .SH NAME
 xscreensaver - graphics hack and screen locker, launched when the user is idle
 .SH SYNOPSIS
@@ -914,8 +914,9 @@ without first turning off \fI.Xauthority\fP-based access control, please
 let me know.
 .TP 8
 .B Passwords
 let me know.
 .TP 8
 .B Passwords
-If you get an error message like ``couldn't get password of \fIuser\fP'' 
-then this probably means that you're on a system in which the
+If you get an error message at startup like ``couldn't get password
+of \fIuser\fP'' then this probably means that you're on a system in which 
+the
 .BR getpwent (3)
 library routine can only be effectively used by root.  If this is the case, 
 then \fIxscreensaver\fP must be installed as setuid to root in order for
 .BR getpwent (3)
 library routine can only be effectively used by root.  If this is the case, 
 then \fIxscreensaver\fP must be installed as setuid to root in order for
@@ -934,6 +935,24 @@ xscreensaver-command -restart
 .EE
 to make \fIxscreensaver\fP notice.
 .TP 8
 .EE
 to make \fIxscreensaver\fP notice.
 .TP 8
+.B PAM Passwords
+If your system uses PAM (Pluggable Authentication Modules), then in order
+for xscreensaver to use PAM properly, PAM must be told about xscreensaver.
+The xscreensaver installation process should update the PAM data (on Linux,
+by creating the file \fI/etc/pam.d/xscreensaver\fP for you, and on Solaris, 
+by telling you what lines to add to the \fI/etc/pam.conf\fP file.)  
+
+If the PAM configuration files do not know about xscreensaver, then 
+you \fImight\fP be in a situation where xscreensaver will refuse to ever
+unlock the screen.
+
+This is a design flaw in PAM (there is no way for a client to tell the
+difference between PAM responding ``I have never heard of your module,''
+and responding, ``you typed the wrong password.''  As far as I can tell,
+there is no way for xscreensaver to automatically work around this, or
+detect the problem in advance, so if you have PAM, make sure it is
+configured correctly!
+.TP 8
 .B Colormap lossage: TWM
 The \fBinstallColormap\fP option doesn't work very well with the
 .BR twm (1)
 .B Colormap lossage: TWM
 The \fBinstallColormap\fP option doesn't work very well with the
 .BR twm (1)
index d295b314014ebcd131943f12948b0c7f21f7f42b..de2c10e3f78636ef62d29a953df86d9a28da28fb 100644 (file)
@@ -127,7 +127,7 @@ MEN         = attraction.man blitspin.man bouboule.man braid.man \
                  rocks.man rorschach.man sierpinski.man slidescreen.man \
                  slip.man sphere.man spiral.man strange.man swirl.man \
                  xroger.man goop.man starfish.man munch.man rd-bomb.man \
                  rocks.man rorschach.man sierpinski.man slidescreen.man \
                  slip.man sphere.man spiral.man strange.man swirl.man \
                  xroger.man goop.man starfish.man munch.man rd-bomb.man \
-                 xjack.man xlyap.man jigsaw.man epicycle.man
+                 xjack.man xlyap.man jigsaw.man epicycle.man bsod.man
 STAR           = *
 EXTRAS         = README Makefile.in xlock_23.h .gdbinit \
                  vidwhacker \
 STAR           = *
 EXTRAS         = README Makefile.in xlock_23.h .gdbinit \
                  vidwhacker \
diff --git a/hacks/bsod.man b/hacks/bsod.man
new file mode 100644 (file)
index 0000000..63bcee6
--- /dev/null
@@ -0,0 +1,126 @@
+.de EX         \"Begin example
+.ne 5
+.if n .sp 1
+.if t .sp .5
+.nf
+.in +.5i
+..
+.de EE
+.fi
+.in -.5i
+.if n .sp 1
+.if t .sp .5
+..
+.TH XScreenSaver 1 "28-Oct-98" "X Version 11"
+.SH NAME
+bsod - Blue Screen of Death emulator
+.SH SYNOPSIS
+.B bsod
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP]
+[\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install]
+[\-visual \fIvisual\fP] [\-delay \fIseconds\fP]
+.SH DESCRIPTION
+The
+.I bsod
+program is the finest in personal computer emulation.  
+.PP
+.I bsod
+steps through a set of screens, each one a recreation of a different failure
+mode of an operating system.  Systems depicted include Microsoft's Windows 95
+and Windows NT, Commodore-Amiga's AmigaDOS 1.3, SPARC Linux, SCO UNIX, the
+Apple Macintosh (both the MacsBug debugger and the rarer "Sad Mac"), and the
+Atari ST.
+.PP
+.SH OPTIONS
+.I bsod
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-mono 
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIdelay\fP
+The delay between displaying one crash and another.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH X RESOURCES
+Notable X resources supported include the following, which control which
+hacks are displayed and which aren't.
+.BR doWindows ,
+.BR doNT ,
+.BR doAmiga ,
+.BR doMac ,
+.BR doMacsBug ,
+.BR doSCO ,
+.BR doAtari ,
+and
+.BR doSparcLinux .
+Each of these is a Boolean resource, they all default to true, except for
+doSparcLinux and doAtari, which are turned off by default, because they're
+really not all that interesting looking unless you're a fan of those systems.
+There aren't command-line options for these, so to change them, you'll need
+to add entries to your .Xdefaults file, or use the -xrm option.
+For example, to tell bsod not to show the NT crash:
+.EX
+bsod -xrm '*doNT: false'
+.EE
+.SH BUGS
+Unlike the systems that the images are borrowed from,
+.I bsod
+does not require a reboot after running.
+.PP
+.I bsod
+should also emulate more systems, but systems with interesting crash
+graphics are not as common as one might hope.
+
+One I'd really like to see is a Unix system getting a kernel panic, 
+rebooting, and running
+.BR fsck (8).
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR http://www.microsoft.com/ ,
+.BR http://www.apple.com/ ,
+and
+.BR http://www.sco.com/ ,
+.BR http://www.kernel.org/ ,
+and
+.BR http://www.amiga.de/ .
+.SH TRADEMARKS
+Microsoft Windows, Microsoft Windows 95, and Microsoft Windows NT are all
+registered trademarks of Microsoft Corporation.  Apple Macintosh is a
+registered trademark of Apple Computer.  Amiga is a registered trademark of
+Amiga International, Inc.  Atari ST is probably a trademark, too, but it's
+hard to tell who owns it. Linux is a registered trademark of Linus Torvalds,
+but it isn't his fault.
+.SH COPYRIGHT
+Copyright \(co 1998 by Jamie Zawinski.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.  No animals were harmed during the testing of
+these simulations.  Always mount a scratch monkey.
+.SH AUTHOR
+Concept cribbed from Stephen Martin <smartin@mks.com>.  This version is by
+Jamie Zawinski <jwz@jwz.org>.
index 87721c025ca88677d15acd1a64fc68945ffecc5b..97b1b797ebfa02933b83c00d5bf8788e99ce2eab 100644 (file)
@@ -1,4 +1,4 @@
-..de EX                \"Begin example
+.de EX         \"Begin example
 .ne 5
 .if n .sp 1
 .if t .sp .5
 .ne 5
 .if n .sp 1
 .if t .sp .5
@@ -15,7 +15,7 @@
 .SH NAME
 munch - munching squares screen hack
 .SH SYNOPSIS
 .SH NAME
 munch - munching squares screen hack
 .SH SYNOPSIS
-.B deco
+.B munch
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP]
 [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install]
 [\-visual \fIvisual\fP] [\-delay \fIseconds\fP] [\-xor] [\-noxor] [\-shift]
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP]
 [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install]
 [\-visual \fIvisual\fP] [\-delay \fIseconds\fP] [\-xor] [\-noxor] [\-shift]
index 43d4355a131f7ae18a816f0cb23d31c068ed38cf..4b67aa21eb3c78a9237d145703e5ccb7ab3c7f0a 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
 static const char screensaver_id[] =
-       "@(#)xscreensaver 3.03 (25-Oct-98), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 3.04 (15-Nov-98), by Jamie Zawinski (jwz@jwz.org)";
index 41d60d4430aa19805bca3ce98662682ed30bdc0f..f74c39209a3e37a8e9d55f7851d58b129fb58ca5 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title:          xscreensaver
 Begin3
 Title:          xscreensaver
-Version:        3.03
-Entered-date:   15NOV98
+Version:        3.04
+Entered-date:   16NOV98
 Description:    A modular screen saver and locker for the X Window System.
                 Highly customizable: allows the use of any program that
                 can draw on the root window as a display mode.
 Description:    A modular screen saver and locker for the X Window System.
                 Highly customizable: allows the use of any program that
                 can draw on the root window as a display mode.
@@ -10,15 +10,15 @@ Keywords:       screen saver, screen lock, lock, xlock, X11
 Author:         jwz@jwz.org (Jamie Zawinski)
 Maintained-by:  jwz@jwz.org (Jamie Zawinski)
 Primary-site:   http://www.jwz.org/xscreensaver/
 Author:         jwz@jwz.org (Jamie Zawinski)
 Maintained-by:  jwz@jwz.org (Jamie Zawinski)
 Primary-site:   http://www.jwz.org/xscreensaver/
-                962K xscreensaver-3.03.tar.gz
+                964K xscreensaver-3.04.tar.gz
                 25K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/
                 25K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/
-                962K xscreensaver-3.03.tar.gz
+                964K xscreensaver-3.04.tar.gz
                 25K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: ftp.x.org /contrib/applications/
                 25K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: ftp.x.org /contrib/applications/
-                962K xscreensaver-3.03.tar.gz
+                964K xscreensaver-3.04.tar.gz
                 25K  xscreensaver.README
                 1K   xscreensaver.lsm
 Platforms:      Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD,
                 25K  xscreensaver.README
                 1K   xscreensaver.lsm
 Platforms:      Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD,
diff --git a/xscreensaver.spec b/xscreensaver.spec
new file mode 100644 (file)
index 0000000..c31c1ad
--- /dev/null
@@ -0,0 +1,62 @@
+Name: xscreensaver
+Summary: X screen saver and locker
+Vendor: Jamie Zawinski
+Version: 3.04
+Release: 1
+URL: http://www.jwz.org/xscreensaver/
+Source: xscreensaver-%{version}.tar.gz
+Copyright: BSD
+Group: X11/Utilities
+Buildroot: /var/tmp/xscreensaver-root
+
+%description
+A modular screen saver and locker for the X Window System.
+Highly customizable: allows the use of any program that
+can draw on the root window as a display mode.
+More than 80 display modes are included in this package.
+
+%prep
+%setup -q
+
+%build
+./configure --prefix=/usr/X11R6
+make
+
+%install
+mkdir -p $RPM_BUILD_ROOT/usr/X11R6/bin
+mkdir -p $RPM_BUILD_ROOT/usr/X11R6/man/man1
+mkdir -p $RPM_BUILD_ROOT/etc/X11/wmconfig
+mkdir -p $RPM_BUILD_ROOT/etc/pam.d
+make  prefix=$RPM_BUILD_ROOT/usr/X11R6 \
+      AD_DIR=$RPM_BUILD_ROOT/usr/X11R6/lib/X11/app-defaults \
+     PAM_DIR=$RPM_BUILD_ROOT/etc/pam.d \
+     install-strip
+
+# This line is redundant, except that it causes the "xscreensaver"
+# executable to be installed unstripped (while all others are stripped.)
+# You should install it this way so that jwz gets useful bug reports.
+#
+install -m 4755 driver/xscreensaver $RPM_BUILD_ROOT/usr/X11R6/bin
+
+# Even if we weren't compiled with PAM support, make sure to include
+# the PAM module file in the RPM anyway, just in case.
+#
+( cd driver; make PAM_DIR=$RPM_BUILD_ROOT/etc/pam.d install-pam )
+
+cat > $RPM_BUILD_ROOT/etc/X11/wmconfig/xscreensaver <<EOF
+xscreensaver name "xscreensaver (1min timeout)"
+xscreensaver description "xscreensaver"
+xscreensaver group "Amusements/Screen Savers"
+xscreensaver exec "xscreensaver -timeout 1 -cycle 1 &"
+EOF
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+/usr/X11R6/bin/*
+/usr/X11R6/lib/X11/app-defaults/*
+/usr/X11R6/man/man1/*
+%config(missingok) /etc/X11/wmconfig/*
+%config(missingok) /etc/pam.d/*