wok rev 25629
Fix xscreensaver and up to 5.45 (thanks Pat)
author | Stanislas Leduc <shann@slitaz.org> |
---|---|
date | Tue Dec 19 20:23:40 2023 +0100 (10 months ago) |
parents | c228e4370f9d |
children | d88295c12cfc |
files | xscreensaver/receipt xscreensaver/stuff/xscreensaver.no.expiration.date.diff xscreensaver/stuff/xscreensaver.setuid.diff |
line diff
1.1 --- a/xscreensaver/receipt Sun Dec 17 20:37:36 2023 +0000 1.2 +++ b/xscreensaver/receipt Tue Dec 19 20:23:40 2023 +0100 1.3 @@ -1,7 +1,7 @@ 1.4 # SliTaz package receipt. 1.5 1.6 PACKAGE="xscreensaver" 1.7 -VERSION="5.44" 1.8 +VERSION="5.45" 1.9 CATEGORY="x-window" 1.10 SHORT_DESC="A collection of free screen savers." 1.11 MAINTAINER="al.bobylev@gmail.com" 1.12 @@ -11,12 +11,11 @@ 1.13 TARBALL="$PACKAGE-$VERSION.tar.gz" 1.14 WGET_URL="http://sources.buildroot.net/$PACKAGE/$TARBALL" 1.15 1.16 -DEPENDS="" 1.17 -BUILD_DEPENDS="bc gdk-pixbuf-dev gtk+-dev jpeg-dev libglade-dev 1.18 - libxml2-dev mesa-dev xorg-libX11-dev xorg-libXext-dev 1.19 - xorg-libXi-dev xorg-libXinerama-dev xorg-libXmu-dev 1.20 - xorg-libXpm-dev xorg-libXrandr-dev xorg-libXt-dev 1.21 - xorg-libXxf86vm-dev" 1.22 +BUILD_DEPENDS="bc gdk-pixbuf-dev gtk+-dev jpeg-dev 1.23 + libglade-dev libxml2-dev mesa-dev xorg-libX11-dev 1.24 + xorg-libXext-dev xorg-libXi-dev xorg-libXinerama-dev 1.25 + xorg-libXmu-dev xorg-libXpm-dev xorg-libXrandr-dev 1.26 + xorg-libXt-dev xorg-libXxf86vm-dev" 1.27 1.28 # What is the latest version available today? 1.29 current_version() 1.30 @@ -28,11 +27,24 @@ 1.31 # Rules to configure and make the package. 1.32 compile_rules() 1.33 { 1.34 - export LDFLAGS="$LDFLAGS $(pkg-config --libs gtk+-2.0 gdk-pixbuf-xlib-2.0 gl)" 1.35 + # Thanks Slackware for patch and have work xscreensaver 1.36 + export CFLAGS="$CFLAGS -std=gnu89" 1.37 1.38 - ./configure $CONFIGURE_ARGS && 1.39 - make && 1.40 - make install_prefix=$DESTDIR install 1.41 + # Drop popup about version is old 1.42 + patch -p1 < $stuff/xscreensaver.no.expiration.date.diff 1.43 + # Patch for shadow 1.44 + patch -p1 < $stuff/xscreensaver.setuid.diff 1.45 + 1.46 + ./configure \ 1.47 + --with-shadow \ 1.48 + --with-jpeg \ 1.49 + --with-gl \ 1.50 + $CONFIGURE_ARGS && 1.51 + make && 1.52 + make install_prefix=$DESTDIR install 1.53 + 1.54 + # Need for password unlock 1.55 + chmod 2751 $install/usr/bin/xscreensaver 1.56 } 1.57 1.58 # Rules to gen a SliTaz package suitable for Tazpkg.
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/xscreensaver/stuff/xscreensaver.no.expiration.date.diff Tue Dec 19 20:23:40 2023 +0100 2.3 @@ -0,0 +1,30 @@ 2.4 +--- ./driver/prefs.c.orig 2018-04-09 20:21:20.000000000 -0500 2.5 ++++ ./driver/prefs.c 2018-04-13 13:38:47.859002138 -0500 2.6 +@@ -1734,6 +1734,17 @@ 2.7 + shipping the last version with the old license and then never 2.8 + upgrading it again -- which would be the worst possible outcome for 2.9 + everyone involved, most especially the users. 2.10 ++ 2.11 ++ --- 2.12 ++ 2.13 ++ NOTE: This feature is disabled by Slackware... we do not ship multi-year 2.14 ++ old versions, nor do we think it is a good idea to include nag screens 2.15 ++ that activate when an expiration date is reached. In this case, the 2.16 ++ nag screen was activated after only one year, which practically insures 2.17 ++ that this will be seen before the next stable Slackware release. 2.18 ++ If there's a problem that needs fixing, we'll issue a fix. 2.19 ++ No nag screens please. Thanks for possibly reconsidering this! 2.20 ++ 2.21 + */ 2.22 + 2.23 + time_t now = time ((time_t *) 0); /* d */ 2.24 +@@ -1766,5 +1777,8 @@ 2.25 + mrnths = ((((tm->tm_year + 1900) * 12) + tm->tm_mon) - /* h */ 2.26 + (y * 12 + m)); /* h */ 2.27 + /* p */ 2.28 +- return (mrnths >= 17); /* . */ 2.29 ++ /* Disable date checking for Slackware: */ /* \■/ */ 2.30 ++ /* return (mrnths >= 17); */ /* . */ 2.31 ++ return ( 0 ); 2.32 ++ 2.33 + }
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/xscreensaver/stuff/xscreensaver.setuid.diff Tue Dec 19 20:23:40 2023 +0100 3.3 @@ -0,0 +1,179 @@ 3.4 +--- ./driver/setuid.c.orig 2006-02-08 20:28:38.000000000 -0600 3.5 ++++ ./driver/setuid.c 2006-04-04 16:48:08.000000000 -0500 3.6 +@@ -1,5 +1,5 @@ 3.7 + /* setuid.c --- management of runtime privileges. 3.8 +- * xscreensaver, Copyright (c) 1993-1998, 2005 Jamie Zawinski <jwz@jwz.org> 3.9 ++ * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <jwz@jwz.org> 3.10 + * 3.11 + * Permission to use, copy, modify, distribute, and sell this software and its 3.12 + * documentation for any purpose is hereby granted without fee, provided that 3.13 +@@ -41,7 +41,7 @@ 3.14 + struct group *g = 0; 3.15 + p = getpwuid (uid); 3.16 + g = getgrgid (gid); 3.17 +- sprintf (buf, "%.100s/%.100s (%ld/%ld)", 3.18 ++ sprintf (buf, "%s/%s (%ld/%ld)", 3.19 + (p && p->pw_name ? p->pw_name : "???"), 3.20 + (g && g->gr_name ? g->gr_name : "???"), 3.21 + (long) uid, (long) gid); 3.22 +@@ -74,50 +74,11 @@ 3.23 + } 3.24 + 3.25 + 3.26 +-/* Returns true if we need to call setgroups(). 3.27 +- 3.28 +- Without calling setgroups(), the process will retain any supplementary 3.29 +- gids associated with the uid, e.g.: 3.30 +- 3.31 +- % groups root 3.32 +- root : root bin daemon sys adm disk wheel 3.33 +- 3.34 +- However, setgroups() can only be called by root, and returns EPERM 3.35 +- for other users even if the call would be a no-op (e.g., setting the 3.36 +- group list to the current list.) So, to avoid that spurious error, 3.37 +- before calling setgroups() we first check whether the current list 3.38 +- of groups contains only one element, our target group. If so, we 3.39 +- don't need to call setgroups(). 3.40 +- */ 3.41 +-static int 3.42 +-setgroups_needed_p (uid_t target_group) 3.43 +-{ 3.44 +- gid_t groups[1024]; 3.45 +- int n, size; 3.46 +- size = sizeof(groups) / sizeof(gid_t); 3.47 +- n = getgroups (size - 1, groups); 3.48 +- if (n < 0) 3.49 +- { 3.50 +- char buf [1024]; 3.51 +- sprintf (buf, "%s: getgroups(%ld, ...)", blurb(), (long int)(size - 1)); 3.52 +- perror (buf); 3.53 +- return 1; 3.54 +- } 3.55 +- else if (n == 0) /* an empty list means only egid is in effect. */ 3.56 +- return 0; 3.57 +- else if (n == 1 && groups[0] == target_group) /* one element, the target */ 3.58 +- return 0; 3.59 +- else /* more than one, or the wrong one. */ 3.60 +- return 1; 3.61 +-} 3.62 +- 3.63 +- 3.64 + static int 3.65 + set_ids_by_number (uid_t uid, gid_t gid, char **message_ret) 3.66 + { 3.67 + int uid_errno = 0; 3.68 + int gid_errno = 0; 3.69 +- int sgs_errno = 0; 3.70 + struct passwd *p = getpwuid (uid); 3.71 + struct group *g = getgrgid (gid); 3.72 + 3.73 +@@ -136,11 +97,6 @@ 3.74 + if (uid == (uid_t) -1) uid = (uid_t) -2; 3.75 + 3.76 + errno = 0; 3.77 +- if (setgroups_needed_p (gid) && 3.78 +- setgroups (1, &gid) < 0) 3.79 +- sgs_errno = errno ? errno : -1; 3.80 +- 3.81 +- errno = 0; 3.82 + if (setgid (gid) != 0) 3.83 + gid_errno = errno ? errno : -1; 3.84 + 3.85 +@@ -148,10 +104,10 @@ 3.86 + if (setuid (uid) != 0) 3.87 + uid_errno = errno ? errno : -1; 3.88 + 3.89 +- if (uid_errno == 0 && gid_errno == 0 && sgs_errno == 0) 3.90 ++ if (uid_errno == 0 && gid_errno == 0) 3.91 + { 3.92 + static char buf [1024]; 3.93 +- sprintf (buf, "changed uid/gid to %.100s/%.100s (%ld/%ld).", 3.94 ++ sprintf (buf, "changed uid/gid to %s/%s (%ld/%ld).", 3.95 + (p && p->pw_name ? p->pw_name : "???"), 3.96 + (g && g->gr_name ? g->gr_name : "???"), 3.97 + (long) uid, (long) gid); 3.98 +@@ -162,71 +118,28 @@ 3.99 + else 3.100 + { 3.101 + char buf [1024]; 3.102 +- gid_t groups[1024]; 3.103 +- int n, size; 3.104 +- 3.105 +- if (sgs_errno) 3.106 +- { 3.107 +- sprintf (buf, "%s: couldn't setgroups to %.100s (%ld)", 3.108 +- blurb(), 3.109 +- (g && g->gr_name ? g->gr_name : "???"), 3.110 +- (long) gid); 3.111 +- if (sgs_errno == -1) 3.112 +- fprintf(stderr, "%s: unknown error\n", buf); 3.113 +- else 3.114 +- { 3.115 +- errno = sgs_errno; 3.116 +- perror(buf); 3.117 +- } 3.118 +- 3.119 +- fprintf (stderr, "%s: effective group list: ", blurb()); 3.120 +- size = sizeof(groups) / sizeof(gid_t); 3.121 +- n = getgroups (size - 1, groups); 3.122 +- if (n < 0) 3.123 +- fprintf (stderr, "unknown!\n"); 3.124 +- else 3.125 +- { 3.126 +- int i; 3.127 +- fprintf (stderr, "["); 3.128 +- for (i = 0; i < n; i++) 3.129 +- { 3.130 +- g = getgrgid (groups[i]); 3.131 +- if (i > 0) fprintf (stderr, ", "); 3.132 +- if (g && g->gr_name) fprintf (stderr, "%s", g->gr_name); 3.133 +- else fprintf (stderr, "%ld", (long) groups[i]); 3.134 +- } 3.135 +- fprintf (stderr, "]\n"); 3.136 +- } 3.137 +- } 3.138 +- 3.139 + if (gid_errno) 3.140 + { 3.141 +- sprintf (buf, "%s: couldn't set gid to %.100s (%ld)", 3.142 ++ sprintf (buf, "%s: couldn't set gid to %s (%ld)", 3.143 + blurb(), 3.144 + (g && g->gr_name ? g->gr_name : "???"), 3.145 + (long) gid); 3.146 + if (gid_errno == -1) 3.147 + fprintf(stderr, "%s: unknown error\n", buf); 3.148 + else 3.149 +- { 3.150 +- errno = gid_errno; 3.151 +- perror(buf); 3.152 +- } 3.153 ++ perror(buf); 3.154 + } 3.155 + 3.156 + if (uid_errno) 3.157 + { 3.158 +- sprintf (buf, "%s: couldn't set uid to %.100s (%ld)", 3.159 ++ sprintf (buf, "%s: couldn't set uid to %s (%ld)", 3.160 + blurb(), 3.161 + (p && p->pw_name ? p->pw_name : "???"), 3.162 + (long) uid); 3.163 + if (uid_errno == -1) 3.164 + fprintf(stderr, "%s: unknown error\n", buf); 3.165 + else 3.166 +- { 3.167 +- errno = uid_errno; 3.168 +- perror(buf); 3.169 +- } 3.170 ++ perror(buf); 3.171 + } 3.172 + 3.173 + return -1; 3.174 +@@ -350,7 +263,7 @@ 3.175 + !strcmp (p->pw_name, "games")) 3.176 + { 3.177 + static char buf [1024]; 3.178 +- sprintf (buf, "running as %.100s", 3.179 ++ sprintf (buf, "running as %s", 3.180 + (p && p->pw_name && *p->pw_name 3.181 + ? p->pw_name : "<unknown>")); 3.182 + si->nolock_reason = buf;