rpms/gnome-screensaver/devel gnome-screensaver-2.18.0-user-dirs.patch, NONE, 1.1 gnome-screensaver.spec, 1.140, 1.141
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Sat Mar 31 02:38:53 UTC 2007
Author: mclasen
Update of /cvs/dist/rpms/gnome-screensaver/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv4549
Modified Files:
gnome-screensaver.spec
Added Files:
gnome-screensaver-2.18.0-user-dirs.patch
Log Message:
Use PICTURES user dir in the personal-slideshow screensaver
gnome-screensaver-2.18.0-user-dirs.patch:
personal-slideshow.desktop.in | 2
slideshow.c | 7 +
xdg-user-dir-lookup.c | 167 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 175 insertions(+), 1 deletion(-)
--- NEW FILE gnome-screensaver-2.18.0-user-dirs.patch ---
--- gnome-screensaver-2.18.0/savers/personal-slideshow.desktop.in.user-dirs 2007-03-30 22:35:28.000000000 -0400
+++ gnome-screensaver-2.18.0/savers/personal-slideshow.desktop.in 2007-03-30 22:37:33.000000000 -0400
@@ -2,7 +2,7 @@
Encoding=UTF-8
_Name=Pictures folder
_Comment=Display a slideshow from your Pictures folder
-Exec=slideshow --location=Pictures
+Exec=slideshow
TryExec=slideshow
StartupNotify=false
Terminal=false
--- gnome-screensaver-2.18.0/savers/slideshow.c.user-dirs 2007-02-22 23:39:09.000000000 -0500
+++ gnome-screensaver-2.18.0/savers/slideshow.c 2007-03-30 22:13:17.000000000 -0400
@@ -34,6 +34,8 @@
#include "gs-theme-engine.h"
#include "gste-slideshow.h"
+#include "xdg-user-dir-lookup.c"
+
int
main (int argc, char **argv)
{
@@ -79,6 +81,11 @@
G_CALLBACK (gtk_main_quit), NULL);
engine = g_object_new (GSTE_TYPE_SLIDESHOW, NULL);
+
+ if (location == NULL) {
+ location = xdg_user_dir_lookup ("PICTURES");
+ }
+
if (location != NULL) {
g_object_set (engine, "images-location", location, NULL);
}
--- /dev/null 2007-03-30 22:25:08.845418234 -0400
+++ gnome-screensaver-2.18.0/savers/xdg-user-dir-lookup.c 2007-03-30 22:13:17.000000000 -0400
@@ -0,0 +1,167 @@
+/*
+ This file is not licenced under the GPL like the rest of the code.
+ Its is under the MIT license, to encourage reuse by cut-and-paste.
+
+ Copyright (c) 2007 Red Hat, inc
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+static char *
+xdg_user_dir_lookup (const char *type)
+{
+ FILE *file;
+ char *home_dir, *config_home, *config_file;
+ char buffer[512];
+ char *user_dir;
+ char *p, *d;
+ int len;
+ int relative;
+
+ home_dir = getenv ("HOME");
+
+ if (home_dir == NULL)
+ return strdup ("/tmp");
+
+ config_home = getenv ("XDG_CONFIG_HOME");
+ if (config_home == NULL || config_home[0] == 0)
+ {
+ config_file = malloc (strlen (home_dir) + strlen ("/.config/user-dirs.dirs") + 1);
+ strcpy (config_file, home_dir);
+ strcat (config_file, "/.config/user-dirs.dirs");
+ }
+ else
+ {
+ config_file = malloc (strlen (config_home) + strlen ("/user-dirs.dirs") + 1);
+ strcpy (config_file, config_home);
+ strcat (config_file, "/user-dirs.dirs");
+ }
+
+ file = fopen (config_file, "r");
+ free (config_file);
+ if (file == NULL)
+ goto error;
+
+ user_dir = NULL;
+ while (fgets (buffer, sizeof (buffer), file))
+ {
+ /* Remove newline at end */
+ len = strlen (buffer);
+ if (len > 0 && buffer[len-1] == '\n')
+ buffer[len-1] = 0;
+
+ p = buffer;
+ while (*p == ' ' || *p == '\t')
+ p++;
+
+ if (strncmp (p, "XDG_", 4) != 0)
+ continue;
+ p += 4;
+ if (strncmp (p, type, strlen (type)) != 0)
+ continue;
+ p += strlen (type);
+ if (strncmp (p, "_DIR", 4) != 0)
+ continue;
+ p += 4;
+
+ while (*p == ' ' || *p == '\t')
+ p++;
+
+ if (*p != '=')
+ continue;
+ p++;
+
+ while (*p == ' ' || *p == '\t')
+ p++;
+
+ if (*p != '"')
+ continue;
+ p++;
+
+ relative = 0;
+ if (strncmp (p, "$HOME/", 6) == 0)
+ {
+ p += 6;
+ relative = 1;
+ }
+ else if (*p != '/')
+ continue;
+
+ if (relative)
+ {
+ user_dir = malloc (strlen (home_dir) + 1 + strlen (p) + 1);
+ strcpy (user_dir, home_dir);
+ strcat (user_dir, "/");
+ }
+ else
+ {
+ user_dir = malloc (strlen (p) + 1);
+ *user_dir = 0;
+ }
+
+ d = user_dir + strlen (user_dir);
+ while (*p && *p != '"')
+ {
+ if ((*p == '\\') && (*(p+1) != 0))
+ p++;
+ *d++ = *p++;
+ }
+ *d = 0;
+ }
+ fclose (file);
+
+ if (user_dir)
+ return user_dir;
+
+ error:
+ /* Special case desktop for historical compatibility */
+ if (strcmp (type, "DESKTOP") == 0)
+ {
+ user_dir = malloc (strlen (home_dir) + strlen ("/Desktop") + 1);
+ strcpy (user_dir, home_dir);
+ strcat (user_dir, "/Desktop");
+ return user_dir;
+ }
+ else
+ return strdup (home_dir);
+}
+
+#ifdef STANDALONE
+
+int
+main (int argc, char *argv[])
+{
+ if (argc != 2)
+ {
+ fprintf (stderr, "Usage %s <dir-type>\n", argv[0]);
+ exit (1);
+ }
+
+ printf ("%s\n", xdg_user_dir_lookup (argv[1]));
+ return 0;
+}
+
+#endif
Index: gnome-screensaver.spec
===================================================================
RCS file: /cvs/dist/rpms/gnome-screensaver/devel/gnome-screensaver.spec,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -r1.140 -r1.141
--- gnome-screensaver.spec 14 Mar 2007 14:58:55 -0000 1.140
+++ gnome-screensaver.spec 31 Mar 2007 02:38:51 -0000 1.141
@@ -13,7 +13,7 @@
Summary: GNOME Screensaver
Name: gnome-screensaver
Version: 2.18.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPL
Group: Amusements/Graphics
Source0: http://ftp.gnome.org/pub/gnome/sources/gnome-screensaver/2.18/%{name}-%{version}.tar.bz2
@@ -21,6 +21,7 @@
Patch1: gnome-screensaver-2.15.4-default-theme.patch
Patch2: gnome-screensaver-2.18.0-securitytoken.patch
+Patch3: gnome-screensaver-2.18.0-user-dirs.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
URL: http://www.gnome.org
@@ -64,6 +65,7 @@
%setup -q
%patch1 -p1 -b .use-floaters-by-default
%patch2 -p1 -b .securitytoken
+%patch3 -p1 -b .user-dirs
%build
autoreconf
@@ -123,6 +125,9 @@
%{_sysconfdir}/skel/Pictures
%changelog
+* Fri Mar 30 2007 Matthias Clasen <mclasen at redhat.com> - 2.18.0-2
+- Use the PICTURES user dir in the Pictures screensaver
+
* Wed Mar 14 2007 Ray Strode <rstrode at redhat.com> - 2.18.0-1
- Update to 2.18.0 (Matthias)
- rework smart card patch
More information about the fedora-cvs-commits
mailing list