[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#691331: unblock: glib2.0/2.33.12+really2.32.4-3



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please consider:
	unblock glib2.0/2.33.12+really2.32.4-3

glib2.0 (2.33.12+really2.32.4-3) unstable; urgency=low

  * Team upload
  * 92_kfreebsd_credentials.patch: use the FreeBSD credentials-passing
    implementation on kFreeBSD too, making gnome-terminal and lightdm
    work on kFreeBSD (Closes: #631968)

 -- Simon McVittie <smcv@debian.org>  Wed, 24 Oct 2012 10:51:08 +0100

Debdiff attached. It basically just replaces all "defined(__FreeBSD__)"
cpp tests with "defined(__FreeBSD__) || defined(__FreeBSD_kernel__)",
since the userland is irrelevant for the features GLib wants.

    S

diffstat for glib2.0-2.33.12+really2.32.4 glib2.0-2.33.12+really2.32.4

 changelog                             |    9 +
 patches/92_kfreebsd_credentials.patch |  164 ++++++++++++++++++++++++++++++++++
 patches/series                        |    1 
 3 files changed, 174 insertions(+)

diff -Nru glib2.0-2.33.12+really2.32.4/debian/changelog glib2.0-2.33.12+really2.32.4/debian/changelog
--- glib2.0-2.33.12+really2.32.4/debian/changelog	2012-10-06 00:15:25.000000000 +0100
+++ glib2.0-2.33.12+really2.32.4/debian/changelog	2012-10-24 10:51:16.000000000 +0100
@@ -1,3 +1,12 @@
+glib2.0 (2.33.12+really2.32.4-3) unstable; urgency=low
+
+  * Team upload
+  * 92_kfreebsd_credentials.patch: use the FreeBSD credentials-passing
+    implementation on kFreeBSD too, making gnome-terminal and lightdm
+    work on kFreeBSD (Closes: #631968)
+
+ -- Simon McVittie <smcv@debian.org>  Wed, 24 Oct 2012 10:51:08 +0100
+
 glib2.0 (2.33.12+really2.32.4-2) unstable; urgency=medium
 
   * Revert link adding for gdbus-object-manager-example. While it is 
diff -Nru glib2.0-2.33.12+really2.32.4/debian/patches/92_kfreebsd_credentials.patch glib2.0-2.33.12+really2.32.4/debian/patches/92_kfreebsd_credentials.patch
--- glib2.0-2.33.12+really2.32.4/debian/patches/92_kfreebsd_credentials.patch	1970-01-01 01:00:00.000000000 +0100
+++ glib2.0-2.33.12+really2.32.4/debian/patches/92_kfreebsd_credentials.patch	2012-10-24 10:27:01.000000000 +0100
@@ -0,0 +1,164 @@
+From 7c02d526880e9a684a6b2f0c72f1b5779c1ae481 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <smcv@debian.org>
+Date: Sun, 21 Oct 2012 23:38:31 +0100
+Subject: [PATCH] Use the FreeBSD credentials-passing code on Debian
+ GNU/kFreeBSD
+
+The __FreeBSD__ macro means we have both a FreeBSD kernel and FreeBSD
+libc, which isn't the case on GNU/kFreeBSD (GNU libc and userland on
+the FreeBSD kernel), so it predefines a different macro. The kernel
+is what actually matters for credentials-passing, though.
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Tested-by: Steven Chamberlain <steven@pyro.eu.org>
+---
+ gio/gcredentials.c            |   18 +++++++++---------
+ gio/gunixcredentialsmessage.c |   12 ++++++------
+ 2 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/gio/gcredentials.c b/gio/gcredentials.c
+index 3a98333..2827c45 100644
+--- a/gio/gcredentials.c
++++ b/gio/gcredentials.c
+@@ -22,7 +22,7 @@
+ 
+ #include "config.h"
+ 
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <string.h>
+@@ -88,7 +88,7 @@ struct _GCredentials
+ 
+ #ifdef __linux__
+   struct ucred native;
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   struct cmsgcred native;
+ #elif defined(__OpenBSD__)
+   struct sockpeercred native;
+@@ -140,7 +140,7 @@ g_credentials_init (GCredentials *credentials)
+   credentials->native.pid = getpid ();
+   credentials->native.uid = geteuid ();
+   credentials->native.gid = getegid ();
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   memset (&credentials->native, 0, sizeof (struct cmsgcred));
+   credentials->native.cmcred_pid  = getpid ();
+   credentials->native.cmcred_euid = geteuid ();
+@@ -202,7 +202,7 @@ g_credentials_to_string (GCredentials *credentials)
+     g_string_append_printf (ret, "gid=%" G_GINT64_FORMAT ",", (gint64) credentials->native.gid);
+   if (ret->str[ret->len - 1] == ',')
+     ret->str[ret->len - 1] = '\0';
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   g_string_append (ret, "freebsd-cmsgcred:");
+   if (credentials->native.cmcred_pid != -1)
+     g_string_append_printf (ret, "pid=%" G_GINT64_FORMAT ",", (gint64) credentials->native.cmcred_pid);
+@@ -260,7 +260,7 @@ g_credentials_is_same_user (GCredentials  *credentials,
+ #ifdef __linux__
+   if (credentials->native.uid == other_credentials->native.uid)
+     ret = TRUE;
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   if (credentials->native.cmcred_euid == other_credentials->native.cmcred_euid)
+     ret = TRUE;
+ #elif defined(__OpenBSD__)
+@@ -316,7 +316,7 @@ g_credentials_get_native (GCredentials     *credentials,
+     {
+       ret = &credentials->native;
+     }
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   if (native_type != G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED)
+     {
+       g_warning ("g_credentials_get_native: Trying to get credentials of type %d but only "
+@@ -377,7 +377,7 @@ g_credentials_set_native (GCredentials     *credentials,
+     {
+       memcpy (&credentials->native, native, sizeof (struct ucred));
+     }
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   if (native_type != G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED)
+     {
+       g_warning ("g_credentials_set_native: Trying to set credentials of type %d "
+@@ -435,7 +435,7 @@ g_credentials_get_unix_user (GCredentials    *credentials,
+ 
+ #ifdef __linux__
+   ret = credentials->native.uid;
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   ret = credentials->native.cmcred_euid;
+ #elif defined(__OpenBSD__)
+   ret = credentials->native.uid;
+@@ -482,7 +482,7 @@ g_credentials_set_unix_user (GCredentials    *credentials,
+ #ifdef __linux__
+   credentials->native.uid = uid;
+   ret = TRUE;
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   credentials->native.cmcred_euid = uid;
+   ret = TRUE;
+ #elif defined(__OpenBSD__)
+diff --git a/gio/gunixcredentialsmessage.c b/gio/gunixcredentialsmessage.c
+index 7cbbab9..13bf3de 100644
+--- a/gio/gunixcredentialsmessage.c
++++ b/gio/gunixcredentialsmessage.c
+@@ -44,7 +44,7 @@
+ #include <fcntl.h>
+ #define G_UNIX_CREDENTIALS_MESSAGE_SUPPORTED 1
+ 
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+@@ -84,7 +84,7 @@ g_unix_credentials_message_get_size (GSocketControlMessage *message)
+ {
+ #ifdef __linux__
+   return sizeof (struct ucred);
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   return sizeof (struct cmsgcred);
+ #else
+   return 0;
+@@ -96,7 +96,7 @@ g_unix_credentials_message_get_level (GSocketControlMessage *message)
+ {
+ #ifdef __linux__
+   return SOL_SOCKET;
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   return SOL_SOCKET;
+ #else
+   return 0;
+@@ -108,7 +108,7 @@ g_unix_credentials_message_get_msg_type (GSocketControlMessage *message)
+ {
+ #ifdef __linux__
+   return SCM_CREDENTIALS;
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   return SCM_CREDS;
+ #else
+   return 0;
+@@ -158,7 +158,7 @@ g_unix_credentials_message_deserialize (gint     level,
+  out:
+     ;
+   }
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   {
+     GCredentials *credentials;
+     struct cmsgcred *cred;
+@@ -200,7 +200,7 @@ g_unix_credentials_message_serialize (GSocketControlMessage *_message,
+           g_credentials_get_native (message->priv->credentials,
+                                     G_CREDENTIALS_TYPE_LINUX_UCRED),
+           sizeof (struct ucred));
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+   memcpy (data,
+           g_credentials_get_native (message->priv->credentials,
+                                     G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED),
+-- 
+1.7.10.4
+
diff -Nru glib2.0-2.33.12+really2.32.4/debian/patches/series glib2.0-2.33.12+really2.32.4/debian/patches/series
--- glib2.0-2.33.12+really2.32.4/debian/patches/series	2012-10-05 08:43:07.000000000 +0100
+++ glib2.0-2.33.12+really2.32.4/debian/patches/series	2012-10-24 10:27:01.000000000 +0100
@@ -9,3 +9,4 @@
 61_glib-compile-binaries-path.patch
 90_gio-modules-multiarch-compat.patch
 91_revert_schema_path_warning.patch
+92_kfreebsd_credentials.patch


Reply to: