summaryrefslogtreecommitdiffstats
path: root/x11/gnome-screensaver/files
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2013-10-28 06:10:10 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2013-10-28 06:10:10 +0800
commit752a66b40a757b50196fb97fda1143a42e96c295 (patch)
tree49bd85e2fc333a96c40e09b46a8027f64b1a470f /x11/gnome-screensaver/files
parent2d81cfc3ccdf086d3ac5c107818ffe2f73f04d9a (diff)
downloadmarcuscom-ports-752a66b40a757b50196fb97fda1143a42e96c295.tar
marcuscom-ports-752a66b40a757b50196fb97fda1143a42e96c295.tar.gz
marcuscom-ports-752a66b40a757b50196fb97fda1143a42e96c295.tar.bz2
marcuscom-ports-752a66b40a757b50196fb97fda1143a42e96c295.tar.lz
marcuscom-ports-752a66b40a757b50196fb97fda1143a42e96c295.tar.xz
marcuscom-ports-752a66b40a757b50196fb97fda1143a42e96c295.tar.zst
marcuscom-ports-752a66b40a757b50196fb97fda1143a42e96c295.zip
Move gnome3 ports into the place of the gnome2 locations.
Update to new port rules, remove conflicts, latest_link, enable stage support. gnome-games was skipped because I got a update for that. gnome-keyring 2 vs 3, needs to be looked at. zenity 2 vs 3, and libgnomekbd 2 vs 3 Use new lib_depend syntax in bsd.gnome.mk. Possible lots of broken links. git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@18813 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'x11/gnome-screensaver/files')
-rw-r--r--x11/gnome-screensaver/files/gnome-screensaver.pam.in2
-rw-r--r--x11/gnome-screensaver/files/patch-src_gs-auth-helper.c201
-rw-r--r--x11/gnome-screensaver/files/patch-src_gs-job.c12
-rw-r--r--x11/gnome-screensaver/files/patch-src_gs-lock-plug.c11
4 files changed, 202 insertions, 24 deletions
diff --git a/x11/gnome-screensaver/files/gnome-screensaver.pam.in b/x11/gnome-screensaver/files/gnome-screensaver.pam.in
index c2f8394ff..539ca0ee7 100644
--- a/x11/gnome-screensaver/files/gnome-screensaver.pam.in
+++ b/x11/gnome-screensaver/files/gnome-screensaver.pam.in
@@ -1,3 +1,3 @@
auth include system
-%%PAM_KEYRING%%auth optional %%LOCALBASE%%/lib/pam_gnome_keyring.so
+auth optional %%LOCALBASE%%/lib/pam_gnome_keyring.so
account include system
diff --git a/x11/gnome-screensaver/files/patch-src_gs-auth-helper.c b/x11/gnome-screensaver/files/patch-src_gs-auth-helper.c
new file mode 100644
index 000000000..00e8766f4
--- /dev/null
+++ b/x11/gnome-screensaver/files/patch-src_gs-auth-helper.c
@@ -0,0 +1,201 @@
+--- src/gs-auth-helper.c.orig 2011-03-16 17:24:06.000000000 -0500
++++ src/gs-auth-helper.c 2011-03-16 17:23:55.000000000 -0500
+@@ -0,0 +1,198 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * written by Olaf Kirch <okir@suse.de>
++ * xscreensaver, Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
++ *
++ * 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.
++ */
++
++/* The idea here is to be able to run gnome-screensaver-dialog without any setuid bits.
++ * Password verification happens through an external program that you feed
++ * your password to on stdin. The external command is invoked with a user
++ * name argument.
++ *
++ * The external helper does whatever authentication is necessary. Currently,
++ * SuSE uses "unix2_chkpwd", which is a variation of "unix_chkpwd" from the
++ * PAM distribution.
++ *
++ * Normally, the password helper should just authenticate the calling user
++ * (i.e. based on the caller's real uid). This is in order to prevent
++ * brute-forcing passwords in a shadow environment. A less restrictive
++ * approach would be to allow verifying other passwords as well, but always
++ * with a 2 second delay or so. (Not sure what SuSE's "unix2_chkpwd"
++ * currently does.)
++ * -- Olaf Kirch <okir@suse.de>, 16-Dec-2003
++ */
++
++#include "config.h"
++
++#include <stdlib.h>
++#ifdef HAVE_UNISTD_H
++# include <unistd.h>
++#endif
++
++#include <stdio.h>
++#include <string.h>
++#include <sys/types.h>
++#include <pwd.h>
++#include <errno.h>
++#include <sys/wait.h>
++
++#include <glib.h>
++#include <glib/gstdio.h>
++
++#include "gs-auth.h"
++#include "subprocs.h"
++
++static gboolean verbose_enabled = FALSE;
++
++GQuark
++gs_auth_error_quark (void)
++{
++ static GQuark quark = 0;
++ if (! quark) {
++ quark = g_quark_from_static_string ("gs_auth_error");
++ }
++
++ return quark;
++}
++
++void
++gs_auth_set_verbose (gboolean enabled)
++{
++ verbose_enabled = enabled;
++}
++
++gboolean
++gs_auth_get_verbose (void)
++{
++ return verbose_enabled;
++}
++
++static gboolean
++ext_run (const char *user,
++ const char *typed_passwd,
++ gboolean verbose)
++{
++ int pfd[2], status;
++ pid_t pid;
++
++ if (pipe (pfd) < 0) {
++ return 0;
++ }
++
++ if (verbose) {
++ g_message ("ext_run (%s, %s)",
++ PASSWD_HELPER_PROGRAM, user);
++ }
++
++ block_sigchld ();
++
++ if ((pid = fork ()) < 0) {
++ close (pfd [0]);
++ close (pfd [1]);
++ return FALSE;
++ }
++
++ if (pid == 0) {
++ close (pfd [1]);
++ if (pfd [0] != 0) {
++ dup2 (pfd [0], 0);
++ }
++
++ /* Helper is invoked as helper service-name [user] */
++ execlp (PASSWD_HELPER_PROGRAM, PASSWD_HELPER_PROGRAM, "gnome-screensaver", user, NULL);
++ if (verbose) {
++ g_message ("%s: %s", PASSWD_HELPER_PROGRAM, g_strerror (errno));
++ }
++
++ exit (1);
++ }
++
++ close (pfd [0]);
++
++ /* Write out password to helper process */
++ if (!typed_passwd) {
++ typed_passwd = "";
++ }
++ write (pfd [1], typed_passwd, strlen (typed_passwd));
++ close (pfd [1]);
++
++ while (waitpid (pid, &status, 0) < 0) {
++ if (errno == EINTR) {
++ continue;
++ }
++
++ if (verbose) {
++ g_message ("ext_run: waitpid failed: %s\n",
++ g_strerror (errno));
++ }
++
++ unblock_sigchld ();
++ return FALSE;
++ }
++
++ unblock_sigchld ();
++
++ if (! WIFEXITED (status) || WEXITSTATUS (status) != 0) {
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++gboolean
++gs_auth_verify_user (const char *username,
++ const char *display,
++ GSAuthMessageFunc func,
++ gpointer data,
++ GError **error)
++{
++ gboolean res = FALSE;
++ char *password;
++
++ password = NULL;
++
++ /* ask for the password for user */
++ if (func != NULL) {
++ func (GS_AUTH_MESSAGE_PROMPT_ECHO_OFF,
++ "Password: ",
++ &password,
++ data);
++ }
++
++ if (password == NULL) {
++ return FALSE;
++ }
++
++ res = ext_run (username, password, gs_auth_get_verbose ());
++
++ return res;
++}
++
++gboolean
++gs_auth_init (void)
++{
++ return TRUE;
++}
++
++gboolean
++gs_auth_priv_init (void)
++{
++ /* Make sure the passwd helper exists */
++ if (g_access (PASSWD_HELPER_PROGRAM, X_OK) < 0) {
++ g_warning ("%s does not exist. "
++ "password authentication via "
++ "external helper will not work.",
++ PASSWD_HELPER_PROGRAM);
++ return FALSE;
++ }
++
++ return TRUE;
++}
diff --git a/x11/gnome-screensaver/files/patch-src_gs-job.c b/x11/gnome-screensaver/files/patch-src_gs-job.c
deleted file mode 100644
index 39e303d27..000000000
--- a/x11/gnome-screensaver/files/patch-src_gs-job.c
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/gs-job.c.orig Wed Sep 7 09:23:59 2005
-+++ src/gs-job.c Mon Sep 12 13:24:11 2005
-@@ -29,7 +29,8 @@
- #include <sys/wait.h>
- #include <errno.h>
-
--#if defined(HAVE_SETPRIORITY) && defined(PRIO_PROCESS)
-+#if defined(HAVE_SETPRIORITY)
-+#include <sys/time.h>
- #include <sys/resource.h>
- #endif
-
diff --git a/x11/gnome-screensaver/files/patch-src_gs-lock-plug.c b/x11/gnome-screensaver/files/patch-src_gs-lock-plug.c
deleted file mode 100644
index af5d39f8e..000000000
--- a/x11/gnome-screensaver/files/patch-src_gs-lock-plug.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/gs-lock-plug.c.orig 2011-03-06 21:27:00.000000000 +0100
-+++ src/gs-lock-plug.c 2011-03-06 21:27:36.000000000 +0100
-@@ -1090,7 +1090,7 @@ submit_note (GtkButton *button,
- strftime (summary, 128, "%X", tmp);
-
- notify_init ("gnome-screensaver-dialog");
-- note = notify_notification_new (summary, escaped_text, NULL, NULL);
-+ note = notify_notification_new (summary, escaped_text, NULL);
- notify_notification_set_timeout (note, NOTIFY_EXPIRES_NEVER);
- notify_notification_show (note, NULL);
- g_object_unref (note);