tech-pkg archive

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

Some problems



* The attached patch for sysutils/consolekit which mainly improves a lot 
  FreeBSD and DragonFly support (mainly from FreeBSD ports), fixes two 
  leak problems (from upstream bugzilla). As the patch is for nonleaf 
  package and nontrivial, I'd like to be sure there is no objections 
  before committing it.

* devel/libgweather fails here 100% in bulkbuild process (in machine with 
  2GB of memory):

  gmake[2]: Entering directory 
  `/scratch/devel/libgweather/work/libgweather-2.24.2/data'
  LC_ALL=C /scratch/devel/libgweather/work/.tools/bin/intltool-merge
  --multiple-output --xml-style --utf8
  --cache=../po-locations/.intltool-merge-cache ../po-locations   
  Locations.xml.in Locations.xml
  Generating and caching the translation database
  Out of memory!

  I can't repeat it out of bulkbuild process even in machine with 256MB of 
  memory and running out of ideas how to solve it. Any ideas?

* Building www/webkit-gtk fails here:

  ===> Configuring for webkit-gtk-1.0.3.39230
  cd /scratch/www/webkit-gtk/work/WebKit-r39230 && /bin/csh autogen.sh
  srcdir=.: Command not found.
  srcdir: Undefined variable.
  *** Error code 1

  I think that using just ${SHELL} is incorrect here? As build already 
  depends on bash should it use that?


-- 
Hasso Tepper
Index: Makefile
===================================================================
RCS file: /NetBSD/pkgsrc/sysutils/consolekit/Makefile,v
retrieving revision 1.6
diff -u -3 -p -r1.6 Makefile
--- Makefile    10 Dec 2008 11:43:20 -0000      1.6
+++ Makefile    26 Dec 2008 06:28:14 -0000
@@ -4,7 +4,7 @@
 CONSOLEKIT_VER=                0.3.0
 DISTNAME=              ConsoleKit-${CONSOLEKIT_VER}
 PKGNAME=               consolekit-${CONSOLEKIT_VER}
-PKGREVISION=           2
+PKGREVISION=           3
 CATEGORIES=            sysutils
 MASTER_SITES=          http://people.freedesktop.org/~mccann/dist/
 EXTRACT_SUFX=          .tar.bz2
@@ -40,10 +40,19 @@ CONFIGURE_ARGS+=    --localstatedir=${VARBA
 #.include "../../mk/pam.buildlink3.mk"
 
 post-extract:
-       cp ${FILESDIR}/ck-sysdeps-netbsd.c ${WRKSRC}/src/
+       ${CP} ${FILESDIR}/ck-sysdeps-netbsd.c ${WRKSRC}/src/
 
 pre-configure:
        cd ${WRKSRC} && autoreconf -vi
+
+.include "../../mk/bsd.prefs.mk"
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly"
+post-install:
+       ${CP} ${FILESDIR}/ck-get-x11-display-device.FreeBSD \
+               ${DESTDIR}${PREFIX}/libexec/ck-get-x11-display-device
+       ${CP} ${FILESDIR}/ck-get-x11-server-pid.FreeBSD \
+               ${DESTDIR}${PREFIX}/libexec/ck-get-x11-server-pid
+.endif
 
 .include "../../devel/zlib/buildlink3.mk"
 .include "../../security/policykit/buildlink3.mk"
Index: distinfo
===================================================================
RCS file: /NetBSD/pkgsrc/sysutils/consolekit/distinfo,v
retrieving revision 1.5
diff -u -3 -p -r1.5 distinfo
--- distinfo    23 Dec 2008 21:46:14 -0000      1.5
+++ distinfo    26 Dec 2008 06:28:14 -0000
@@ -7,5 +7,7 @@ SHA1 (patch-aa) = a1589faf05d5358a0820da
 SHA1 (patch-ab) = 2e9fe9de1f27c635a4eefa77af8322cb8a02ab35
 SHA1 (patch-ac) = 0595a9cd1c4013eb4761e044b4b4b01b613f7d2b
 SHA1 (patch-ad) = a1c1a1d0452945550065da3eac2390318c1eb7be
-SHA1 (patch-ae) = 0b5bea5260b8595fc9dfef6340ff47b1545b0bec
-SHA1 (patch-af) = ad854bcde3f8defefb476ccec3f68e64d4c055ec
+SHA1 (patch-ae) = 8a9612cd35d1ec86240fd17dfa6963c20edc0ad0
+SHA1 (patch-af) = e86c63147798d61f7560cfe7547b0d06d18d5583
+SHA1 (patch-ag) = 724e2eb95f7ca78c5659fde1eec2f2c5c6bc5002
+SHA1 (patch-ah) = f62d8c661732a4ea47e29b99f883b539fb5c7468
Index: patches/patch-ae
===================================================================
RCS file: /NetBSD/pkgsrc/sysutils/consolekit/patches/patch-ae,v
retrieving revision 1.4
diff -u -3 -p -r1.4 patch-ae
--- patches/patch-ae    25 Nov 2008 13:40:05 -0000      1.4
+++ patches/patch-ae    26 Dec 2008 06:28:14 -0000
@@ -1,7 +1,7 @@
 $NetBSD: patch-ae,v 1.4 2008/11/25 13:40:05 hasso Exp $
 
---- src/ck-sysdeps-unix.c.orig 2008-01-23 16:30:44 +0200
-+++ src/ck-sysdeps-unix.c      2008-11-25 12:34:32 +0200
+--- src/ck-sysdeps-unix.c.orig 2008-11-27 05:10:25 +0200
++++ src/ck-sysdeps-unix.c      2008-11-27 05:09:59 +0200
 @@ -35,6 +35,11 @@
  #include <linux/kd.h>
  #endif
@@ -80,7 +80,23 @@ $NetBSD: patch-ae,v 1.4 2008/11/25 13:40
          kb_ok = (ioctl (fd, CONS_GETVERS, &vers) == 0);
  #else
          kb_ok = 1;
-@@ -184,6 +217,14 @@ ck_get_a_console_fd (void)
+@@ -172,6 +205,15 @@ ck_get_a_console_fd (void)
+ 
+         fd = -1;
+ 
++#if defined(__FreeBSD__) || defined(__DragonFly__)
++      /* On FreeBSD, try /dev/consolectl first as this will survive
++       * /etc/ttys initialization. */
++      fd = open_a_console ("/dev/consolectl");
++      if (fd >= 0) {
++              goto done;
++      }
++#endif
++
+ #ifdef __sun
+         /* On Solaris, first try Sun VT device. */
+         fd = open_a_console ("/dev/vt/active");
+@@ -184,6 +226,14 @@ ck_get_a_console_fd (void)
          }
  #endif
  
Index: patches/patch-af
===================================================================
RCS file: /NetBSD/pkgsrc/sysutils/consolekit/patches/patch-af,v
retrieving revision 1.1
diff -u -3 -p -r1.1 patch-af
--- patches/patch-af    25 Nov 2008 13:40:05 -0000      1.1
+++ patches/patch-af    26 Dec 2008 06:28:14 -0000
@@ -1,8 +1,16 @@
 $NetBSD: patch-af,v 1.1 2008/11/25 13:40:05 hasso Exp $
 
---- src/ck-sysdeps-freebsd.c.orig      2008-11-25 14:43:51 +0200
-+++ src/ck-sysdeps-freebsd.c   2008-11-25 14:50:24 +0200
-@@ -151,14 +151,38 @@ stat2proc (pid_t        pid,
+--- src/ck-sysdeps-freebsd.c.orig      2008-11-27 05:12:41 +0200
++++ src/ck-sysdeps-freebsd.c   2008-11-27 05:08:28 +0200
+@@ -27,6 +27,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <errno.h>
++#include <glob.h>
+ #include <paths.h>
+ #include <ttyent.h>
+ #include <kvm.h>
+@@ -151,14 +152,38 @@ stat2proc (pid_t        pid,
                  return FALSE;
          }
  
@@ -41,7 +49,7 @@ $NetBSD: patch-af,v 1.1 2008/11/25 13:40
          P->pid        = p.ki_pid;
          P->ppid       = p.ki_ppid;
          P->pgrp       = p.ki_pgid;
-@@ -173,19 +197,33 @@ stat2proc (pid_t        pid,
+@@ -173,19 +198,33 @@ stat2proc (pid_t        pid,
          P->tpgid      = p.ki_tpgid;
          P->processor  = p.ki_oncpu;
          P->nlwp       = p.ki_numthreads;
@@ -75,7 +83,23 @@ $NetBSD: patch-af,v 1.1 2008/11/25 13:40
                  memcpy (P->tty_text, "   ?   ", sizeof P->tty_text);
          }
  
-@@ -308,7 +346,11 @@ ck_unix_pid_get_uid (pid_t pid)
+@@ -202,7 +241,6 @@ ck_process_stat_new_for_unix_pid (pid_t 
+                                   GError        **error)
+ {
+         gboolean       res;
+-        GError        *local_error;
+         CkProcessStat *proc;
+ 
+         g_return_val_if_fail (pid > 1, FALSE);
+@@ -217,7 +255,6 @@ ck_process_stat_new_for_unix_pid (pid_t 
+         if (res) {
+                 *stat = proc;
+         } else {
+-                g_propagate_error (error, local_error);
+                 *stat = NULL;
+         }
+ 
+@@ -308,7 +345,11 @@ ck_unix_pid_get_uid (pid_t pid)
          res = get_kinfo_proc (pid, &p);
  
          if (res) {
@@ -87,3 +111,119 @@ $NetBSD: patch-af,v 1.1 2008/11/25 13:40
          }
  
          return uid;
+@@ -327,38 +368,40 @@ gboolean
+ ck_get_max_num_consoles (guint *num)
+ {
+         int      max_consoles;
+-        int      res;
+-        gboolean ret;
+-        struct ttyent *t;
++        int      i;
++        glob_t   g;
+ 
+-        ret = FALSE;
+         max_consoles = 0;
+ 
+-        res = setttyent ();
+-        if (res == 0) {
+-                goto done;
+-        }
+-
+-        while ((t = getttyent ()) != NULL) {
+-                if (t->ty_status & TTY_ON && strncmp (t->ty_name, "ttyv", 4) 
== 0)
++        g.gl_offs = 0;
++        glob ("/dev/ttyv*", GLOB_DOOFFS, NULL, &g);
++        for (i = 0; i < g.gl_pathc && g.gl_pathv[i] != NULL; i++) {
++                int fd;
++                char *cdev;
++
++                cdev = g.gl_pathv[i];
++                fd = open (cdev, O_RDONLY | O_NOCTTY);
++                if (fd > -1) {
++                        close (fd);
+                         max_consoles++;
++                } else {
++                        break;
++                }
+         }
+ 
+-        /* Increment one more so that all consoles are properly counted
++        globfree (&g);
++
++        /*
++         * Increment one more so that all consoles are properly counted
+          * this is arguable a bug in vt_add_watches().
+          */
+         max_consoles++;
+ 
+-        ret = TRUE;
+-
+-        endttyent ();
+-
+-done:
+         if (num != NULL) {
+                 *num = max_consoles;
+         }
+ 
+-        return ret;
++        return TRUE;
+ }
+ 
+ char *
+@@ -369,7 +412,12 @@ ck_get_console_device_for_num (guint num
+         /* The device number is always one less than the VT number. */
+         num--;
+ 
+-        device = g_strdup_printf ("/dev/ttyv%u", num);
++        if (num < 10)
++                device = g_strdup_printf ("/dev/ttyv%i", num);
++        else if (num < 32)
++                device = g_strdup_printf ("/dev/ttyv%c", num - 10 + 'a');
++        else
++                device = NULL;
+ 
+         return device;
+ }
+@@ -379,6 +427,7 @@ ck_get_console_num_from_device (const ch
+                                 guint      *num)
+ {
+         guint    n;
++        char     c;
+         gboolean ret;
+ 
+         n = 0;
+@@ -388,7 +437,11 @@ ck_get_console_num_from_device (const ch
+                 return FALSE;
+         }
+ 
+-        if (sscanf (device, "/dev/ttyv%u", &n) == 1) {
++        if (sscanf (device, "/dev/ttyv%c", &c) == 1) {
++                if (c < 58)
++                        n = c - 48;
++                else
++                        n = c - 'a' + 10;
+                 /* The VT number is always one more than the device number. */
+                 n++;
+                 ret = TRUE;
+@@ -408,6 +461,7 @@ ck_get_active_console_num (int    consol
+         gboolean ret;
+         int      res;
+         int      active;
++        char      ttyn;
+ 
+         g_assert (console_fd != -1);
+ 
+@@ -420,7 +474,12 @@ ck_get_active_console_num (int    consol
+                 goto out;
+         }
+ 
+-        g_debug ("Active VT is: %d (ttyv%d)", active, active - 1);
++        if (active - 1 < 10)
++                ttyn = active - 1 + '0';
++        else
++                ttyn = active - 11 + 'a';
++
++        g_debug ("Active VT is: %d (ttyv%c)", active, ttyn);
+         ret = TRUE;
+ 
+  out:
--- /dev/null   2008-12-26 07:13:48 +0200
+++ patches/patch-ag    2008-11-27 08:54:07 +0200
@@ -0,0 +1,15 @@
+$NetBSD$
+
+https://bugs.freedesktop.org/show_bug.cgi?id=18330
+
+--- src/ck-session.c.orig      2008-11-27 05:49:11 +0200
++++ src/ck-session.c   2008-11-27 08:51:37 +0200
+@@ -1100,6 +1100,8 @@ ck_session_finalize (GObject *object)
+ 
+         session_remove_activity_watch (session);
+ 
++        g_object_unref (session->priv->bus_proxy);
++
+         g_free (session->priv->id);
+         g_free (session->priv->cookie);
+         g_free (session->priv->seat_id);
--- /dev/null   2008-12-26 07:13:48 +0200
+++ patches/patch-ah    2008-11-27 08:53:36 +0200
@@ -0,0 +1,14 @@
+$NetBSD$
+
+https://bugs.freedesktop.org/show_bug.cgi?id=17893
+
+--- src/ck-run-programs.c.orig 2008-11-27 08:52:06 +0200
++++ src/ck-run-programs.c      2008-11-27 08:52:40 +0200
+@@ -225,6 +225,7 @@ ck_run_programs (const char *dirpath,
+         out_loop:
+                 g_free (child_argv[0]);
+         }
++        g_dir_close (dir);
+ out:
+         g_strfreev (env_for_child);
+ }
--- /dev/null   2008-12-26 07:13:48 +0200
+++ files/ck-get-x11-display-device.FreeBSD     2008-11-26 19:36:25 +0200
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+FSTAT="/usr/bin/fstat"
+GREP="/usr/bin/grep"
+AWK="/usr/bin/awk"
+SED="/usr/bin/sed"
+CAT="/bin/cat"
+HEAD="/usr/bin/head"
+
+dispnum=0
+if [ x"$1" = x"--display" ]; then
+    if [ $# != 2 ]; then
+       echo "usage: $0 [--display DISPLAY]"
+       exit 1
+    fi
+    DISPLAY=$2
+fi
+if [ ! -z "${DISPLAY}" ]; then
+    dispnum=$(echo ${DISPLAY} | ${SED} -E -e 's|:([0-9]+).*|\1|')
+fi
+
+if [ ! -f "/tmp/.X${dispnum}-lock" ]; then
+    echo "ERROR: Failed to find X lock file for display ${dispnum}"
+    exit 1
+fi
+pid=$(${CAT} "/tmp/.X${dispnum}-lock")
+
+device=$(${FSTAT} -p ${pid} | ${GREP} ttyv | ${HEAD} -1 | ${AWK} '{print $8}')
+
+if [ -z "${device}" ]; then
+    echo "ERROR: Failed to find TTY device for X server on display ${dispnum}"
+    exit 1
+fi
+
+echo "/dev/${device}"
--- /dev/null   2008-12-26 07:13:48 +0200
+++ files/ck-get-x11-server-pid.FreeBSD 2008-11-26 19:39:05 +0200
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+SED="/usr/bin/sed"
+CAT="/bin/cat"
+
+dispnum=0
+if [ ! -z "${DISPLAY}" ]; then
+    dispnum=$(echo ${DISPLAY} | ${SED} -E -e 's|:([0-9]+).*|\1|')
+fi
+
+if [ ! -f "/tmp/.X${dispnum}-lock" ]; then
+    echo "ERROR: Failed to find X lock file for display ${dispnum}"
+    exit 1
+fi
+pid=$(${CAT} "/tmp/.X${dispnum}-lock")
+
+echo ${pid}


Home | Main Index | Thread Index | Old Index