aboutsummaryrefslogtreecommitdiff
path: root/x11/cinnamon-screensaver
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2014-11-19 11:49:04 +0000
committerKoop Mast <kwm@FreeBSD.org>2014-11-19 11:49:04 +0000
commitaf3811313c14afb06fe2d1f6158e3e431bbfc2b6 (patch)
tree1ad98a4e8faecd0e2fa9ac2c18e65da4cf89c236 /x11/cinnamon-screensaver
parentc7d4d6bd7ef6ff4955eab2863a5c6e2feb14b839 (diff)
downloadports-af3811313c14afb06fe2d1f6158e3e431bbfc2b6.tar.gz
ports-af3811313c14afb06fe2d1f6158e3e431bbfc2b6.zip
The FreeBSD GNOME team proudly presents GNOME 3.14 and Cinnamon 2.2.
Gnome 3.14.1 and Cinnamon 2.2.16 are supported on FreeBSD 9.3-RELEASE and up. This commit removes the old GNOME 2 desktop, bindings and some ports that can't be compiled. A few ports where updated to more recent versions to allow them to compile with this update. Apart from updating ports to newer versions GDM is more integrated with gnome-shell now, and handles several things for the GNOME desktop such as screen locking. If you want to use GNOME 3 via startx, you will have to add your own lock screen/screensaver. For example xscreensaver can be used for sessions started without GDM. Shell Extensions can be installed via https://extensions.gnome.org/ , we have ported a few that can't be installed via this way. The old gnome-utils and gnome-games ports where split up into single ports and where converted to meta-ports. gnome-terminal requires a UTF-8 locale to run, gdm handles this already, but if you use startx you need to do this yourself. Upgrade instructions: Delete the old and conflicting packages: # pkg delete clutter gnome-utils gnome-panel gnome-keyring vala-vapigen \ guile gcalctool gnome-media libgnomekbd # pkg delete gnome-screensaver gnome-applets bug-buddy evolution-exchange \ evolution-webcal gnome-system-tools seahorse-plugins gnome-control-center For package users the following lines will be enough: # pkg upgrade # pkg install gnome3 For ports users should do the following: # portmaster -a # portmaster x11/gnome3 We are currently aware of two issues. The first issue is a bug in the file monitoring code in the glib20 port. This bug causes glib programs to crash when files in a monitored directory are added or removed. Upstream is aware of the problem, but since the problem is quite complex there is no solution yet. This problem isn't restricted to BSD. The second issue is that on certain video cards totem will display a purple/pink overlay on the video. It not clear yet where the issues comes from. Major thanks goes to Gustau Perez for being a driving force behind getting GNOME 3 up to speed again. Also thanks to Antoine Brodin for running the exp-runs. This update was also made possible by: Joe Maloney Kris Moore Beeblebrox Ryan Lortie Antoine Jacoutot and everyone I missed
Notes
Notes: svn path=/head/; revision=372768
Diffstat (limited to 'x11/cinnamon-screensaver')
-rw-r--r--x11/cinnamon-screensaver/Makefile52
-rw-r--r--x11/cinnamon-screensaver/distinfo2
-rw-r--r--x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in3
-rw-r--r--x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c201
-rw-r--r--x11/cinnamon-screensaver/files/patch-src_gs-debug.c20
-rw-r--r--x11/cinnamon-screensaver/files/patch-src_gs-fade.c11
-rw-r--r--x11/cinnamon-screensaver/files/patch-src_gs-listener-dbus.c21
-rw-r--r--x11/cinnamon-screensaver/pkg-descr7
-rw-r--r--x11/cinnamon-screensaver/pkg-plist8
9 files changed, 325 insertions, 0 deletions
diff --git a/x11/cinnamon-screensaver/Makefile b/x11/cinnamon-screensaver/Makefile
new file mode 100644
index 000000000000..f34d293f4f6d
--- /dev/null
+++ b/x11/cinnamon-screensaver/Makefile
@@ -0,0 +1,52 @@
+# Created by: Gustau Perez i Querol <gustau.perez@gmail.com>
+# $FreeBSD$
+# $MCom: ports/trunk/x11/cinnamon-screensaver/Makefile 20008 2014-10-21 15:13:35Z gusi $
+
+PORTNAME= cinnamon-screensaver
+PORTVERSION= 2.2.4
+MASTER_SITES= http://github.com/linuxmint/${PORTNAME}/archive/${PORTVERSION}.tar.gz?dummy=/
+CATEGORIES= x11 gnome
+DIST_SUBDIR= gnome3
+
+MAINTAINER= gnome@FreeBSD.org
+COMMENT= GNOME screen saver and locker
+
+BUILD_DEPENDS= gsettings-desktop-schemas>=3.2.0:${PORTSDIR}/devel/gsettings-desktop-schemas \
+ gnome-autogen.sh:${PORTSDIR}/devel/gnome-common
+LIB_DEPENDS= libnotify.so:${PORTSDIR}/devel/libnotify \
+ libcinnamon-desktop.so:${PORTSDIR}/x11/cinnamon-desktop \
+ libdbus-glib-1.so:${PORTSDIR}/devel/dbus-glib
+RUN_DEPENDS= pam_helper:${PORTSDIR}/security/pam_helper \
+ gsettings-desktop-schemas>=3.2.0:${PORTSDIR}/devel/gsettings-desktop-schemas \
+ gnome-keyring>=0:${PORTSDIR}/security/gnome-keyring
+
+USES= autoreconf:build gettext gmake libtool pathfix pkgconfig tar:xz
+USE_XORG= x11 xext xxf86vm xxf86misc xscrnsaver
+USE_GNOME= gnomedesktop3 gnomeprefix intlhack intlhack libgnomekbd libxml2
+GNU_CONFIGURE= yes
+PATHFIX_MAKEFILEIN= Makefile.am
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+CONFIGURE_ARGS= --with-pam-prefix=${PREFIX}/etc/pam.d \
+ --without-systemd
+INSTALL_TARGET= install-strip
+
+SUB_FILES+= cinnamon-screensaver.pam
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/etc/pam.d|${PREFIX}/etc/pam.d|g' \
+ ${WRKSRC}/src/gs-auth-pam.c
+ @${REINPLACE_CMD} -e 's|find -m|find . -m|g' \
+ ${WRKSRC}/files/Makefile.in
+ @${ECHO} "#define PASSWD_HELPER_PROGRAM \"/usr/local/bin/pam_helper\"" \
+ >> ${WRKSRC}/config.h.in
+
+post-install:
+ ${INSTALL_DATA} ${WRKDIR}/cinnamon-screensaver.pam \
+ ${STAGEDIR}${PREFIX}/etc/pam.d/cinnamon-screensaver
+ ${RM} -fr ${STAGEDIR}${PREFIX}/etc/pam.d/pam.d/
+
+pre-configure:
+ cd ${WRKSRC} && NOCONFIGURE=yes ${SH} ./autogen.sh
+
+.include <bsd.port.mk>
diff --git a/x11/cinnamon-screensaver/distinfo b/x11/cinnamon-screensaver/distinfo
new file mode 100644
index 000000000000..265db4affd51
--- /dev/null
+++ b/x11/cinnamon-screensaver/distinfo
@@ -0,0 +1,2 @@
+SHA256 (gnome3/cinnamon-screensaver-2.2.4.tar.xz) = 5fed9a7504856dc362390e3f020b5faa5b4e9a2b4dd09b0e87c04ee18bd40bfa
+SIZE (gnome3/cinnamon-screensaver-2.2.4.tar.xz) = 141772
diff --git a/x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in b/x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in
new file mode 100644
index 000000000000..539ca0ee7e13
--- /dev/null
+++ b/x11/cinnamon-screensaver/files/cinnamon-screensaver.pam.in
@@ -0,0 +1,3 @@
+auth include system
+auth optional %%LOCALBASE%%/lib/pam_gnome_keyring.so
+account include system
diff --git a/x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c b/x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c
new file mode 100644
index 000000000000..00e8766f402c
--- /dev/null
+++ b/x11/cinnamon-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/cinnamon-screensaver/files/patch-src_gs-debug.c b/x11/cinnamon-screensaver/files/patch-src_gs-debug.c
new file mode 100644
index 000000000000..d4d5dcc90048
--- /dev/null
+++ b/x11/cinnamon-screensaver/files/patch-src_gs-debug.c
@@ -0,0 +1,20 @@
+--- src/gs-debug.c.orig 2013-11-25 08:35:36.406973707 +0000
++++ src/gs-debug.c 2013-11-25 08:37:07.941451522 +0000
+@@ -57,8 +57,17 @@
+
+ va_start (args, format);
+
++#ifdef __clang__
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wformat-nonliteral"
++#endif
++
+ g_vsnprintf (buffer, 1024, format, args);
+
++#ifdef __clang__
++#pragma clang diagnostic pop
++#endif
++
+ va_end (args);
+
+ time (&the_time);
diff --git a/x11/cinnamon-screensaver/files/patch-src_gs-fade.c b/x11/cinnamon-screensaver/files/patch-src_gs-fade.c
new file mode 100644
index 000000000000..bb554c4f274e
--- /dev/null
+++ b/x11/cinnamon-screensaver/files/patch-src_gs-fade.c
@@ -0,0 +1,11 @@
+--- src/gs-fade.c.orig 2013-11-25 08:42:45.005944760 +0000
++++ src/gs-fade.c 2013-11-25 08:43:11.449942142 +0000
+@@ -420,7 +420,7 @@
+
+ #ifdef HAVE_XF86VMODE_GAMMA
+ if (g_getenv("LTSP_CLIENT")) {
+- return FADE_TYPE_NONE; /* We're on an LTSP Client, bad idea to fade at all */
++ return;
+ }
+
+ res = XF86VidModeQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &event, &error);
diff --git a/x11/cinnamon-screensaver/files/patch-src_gs-listener-dbus.c b/x11/cinnamon-screensaver/files/patch-src_gs-listener-dbus.c
new file mode 100644
index 000000000000..e154472a84c7
--- /dev/null
+++ b/x11/cinnamon-screensaver/files/patch-src_gs-listener-dbus.c
@@ -0,0 +1,21 @@
+--- src/gs-listener-dbus.c.orig 2013-11-25 08:35:49.853972866 +0000
++++ src/gs-listener-dbus.c 2013-11-25 08:38:02.592963642 +0000
+@@ -359,7 +359,18 @@
+
+ va_list args;
+ va_start (args, format);
++
++#ifdef __clang__
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wformat-nonliteral"
++#endif
++
+ vsnprintf (buf, sizeof (buf), format, args);
++
++#ifdef __clang__
++#pragma clang diagnostic pop
++#endif
++
+ va_end (args);
+
+ gs_debug (buf);
diff --git a/x11/cinnamon-screensaver/pkg-descr b/x11/cinnamon-screensaver/pkg-descr
new file mode 100644
index 000000000000..96af92f1163e
--- /dev/null
+++ b/x11/cinnamon-screensaver/pkg-descr
@@ -0,0 +1,7 @@
+Gnome-screensaver is GNOME-based screen saver and locker that aims to have
+simple, sane, secure defaults and be well integrated with the desktop.
+It is designed to support:
+
+ * the ability to lock down configuration settings
+ * translation into other languages
+ * user switching
diff --git a/x11/cinnamon-screensaver/pkg-plist b/x11/cinnamon-screensaver/pkg-plist
new file mode 100644
index 000000000000..502af42763d6
--- /dev/null
+++ b/x11/cinnamon-screensaver/pkg-plist
@@ -0,0 +1,8 @@
+bin/cinnamon-screensaver
+bin/cinnamon-screensaver-command
+etc/pam.d/cinnamon-screensaver
+libexec/cinnamon-screensaver-dialog
+man/man1/cinnamon-screensaver-command.1.gz
+man/man1/cinnamon-screensaver.1.gz
+share/applications/cinnamon-screensaver.desktop
+share/dbus-1/services/org.cinnamon.ScreenSaver.service