pkgsrc-Users archive

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

need help with brasero on solaris



Hi list,

I try to build sysutils/brasero on solaris 10. The problem is that there is no mkdtemp on solaris 10. So I want to "port" the configure-check an implementation from gdm. See Attached patch-aa to patch-ae.

My problem is now, that if I add these to the Makefile:

+USE_TOOLS+=    autoconf automake

+pre-configure:
+       cd ${WRKSRC} && autoconf && automake
+

The changes made by patch-ah are going to be overwritten by automake, so I created patch-zz instead which is doing, I hope, the same in Makefile.am instead of Makefile.in.

The problem is, that if I start bmake I get the following error:

===> Configuring for brasero-2.30.2nb2
cd /root/tmp/workobjdir-gcc-current/sysutils/brasero/work/brasero-2.30.2 && autoconf && automake
aclocal.m4:16: warning: this file was generated for autoconf 2.65.
You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.
configure:12923: error: possibly undefined macro: AS_MESSAGE_LOG_FDdnl
If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
*** Error code 1

But if I start bmake again it just works. If I use, as suggested, autoreconf I get these messages:

===> Configuring for brasero-2.30.2nb2
cd /root/tmp/workobjdir-gcc-current/sysutils/brasero/work/brasero-2.30.2 && autoreconf
configure.in:597: warning: AM_NLS is m4_require'd but not m4_defun'd
/opt/pkgsrc-gcc-current/share/aclocal/intltool.m4:27: IT_PROG_INTLTOOL is expanded from...
configure.in:597: the top level
configure.in:597: warning: AM_NLS is m4_require'd but not m4_defun'd
aclocal.m4:753: IT_PROG_INTLTOOL is expanded from...
configure.in:597: the top level
configure.in:597: warning: AM_NLS is m4_require'd but not m4_defun'd
aclocal.m4:753: IT_PROG_INTLTOOL is expanded from...
configure.in:597: the top level
configure:16290: error: possibly undefined macro: AM_NLS
If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /opt/pkgsrc-gcc-current/bin/autoconf failed with exit status: 1
*** Error code 1


Since my autotools knowledge is very limited, I hope someone can help me.

Regards

Daniel




$NetBSD$

--- configure.in.orig   2010-06-21 23:59:24.000000000 +0000
+++ configure.in
@@ -497,6 +497,13 @@ if test x"$enable_inotify" = "xyes"; the
 fi
 AM_CONDITIONAL(BUILD_INOTIFY, test x"$enable_inotify" = "xyes")
 
+dnl ****************chek for mkdtemp**************************
+mkdtemp_missing=false
+AC_CHECK_FUNC(mkdtemp,
+    [AC_DEFINE([HAVE_MKDTEMP], 1, [Have GlibC function to make temp dirs])],
+    mkdtemp_missing=true)
+AM_CONDITIONAL(MKDTEMP_MISSING, test x$mkdtemp_missing = xtrue)
+
 dnl ****** GObject Introspection **********************
 dnl This is a copy of the m4 function in gobject-introspection package
 dnl but it was modified so the install path can be forced with a command
$NetBSD$

--- libbrasero-burn/Makefile.am.orig    2010-06-21 22:56:07.000000000 +0000
+++ libbrasero-burn/Makefile.am
@@ -29,6 +29,12 @@ libbrasero-marshal.h: libbrasero-marshal
 libbrasero-marshal.c: libbrasero-marshal.h
        ( $(GLIB_GENMARSHAL) --prefix=brasero_marshal 
$(srcdir)/libbrasero-marshal.list --body --header > libbrasero-marshal.c )
 
+if MKDTEMP_MISSING
+MKDTEMP_FILES = mkdtemp.c mkdtemp.h
+else
+MKDTEMP_FILES =
+endif
+
 lib_LTLIBRARIES = \
        libbrasero-burn.la
 
@@ -195,7 +201,8 @@ libbrasero_burn_la_SOURCES =                \
        brasero-video-options.c                 \
        brasero-session-span.h                 \
        brasero-session-span.c                 \
-       brasero-plugin-private.h                 
+       brasero-plugin-private.h               \
+       $(MKDTEMP_FILES)  
 
 if BUILD_INOTIFY
 libbrasero_burn_la_SOURCES += brasero-file-monitor.c brasero-file-monitor.h
$NetBSD$

--- libbrasero-burn/brasero-session.c.orig      2010-06-21 22:56:08.000000000 
+0000
+++ libbrasero-burn/brasero-session.c
@@ -63,6 +63,8 @@
 #include "brasero-track.h"
 #include "brasero-track-disc.h"
 
+#include "mkdtemp.h"
+
 G_DEFINE_TYPE (BraseroBurnSession, brasero_burn_session, G_TYPE_OBJECT);
 #define BRASERO_BURN_SESSION_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE ((o), 
BRASERO_TYPE_BURN_SESSION, BraseroBurnSessionPrivate))
 
$NetBSD$

--- libbrasero-burn/mkdtemp.c.orig      2010-09-22 07:28:02.573028007 +0000
+++ libbrasero-burn/mkdtemp.c
@@ -0,0 +1,202 @@
+/* Copyright (C) 1999, 2001-2002 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Extracted from misc/mkdtemp.c and sysdeps/posix/tempname.c.  */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+/* Specification.  */
+#include "mkdtemp.h"
+
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(Val) errno = (Val)
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <stdio.h>
+#ifndef TMP_MAX
+# define TMP_MAX 238328
+#endif
+
+#if HAVE_STDINT_H_WITH_UINTMAX || _LIBC
+# include <stdint.h>
+#endif
+
+#if HAVE_INTTYPES_H_WITH_UINTMAX || _LIBC
+# include <inttypes.h>
+#endif
+
+#if HAVE_UNISTD_H || _LIBC
+# include <unistd.h>
+#endif
+
+#if HAVE_GETTIMEOFDAY || _LIBC
+# if HAVE_SYS_TIME_H || _LIBC
+#  include <sys/time.h>
+# endif
+#else
+# if HAVE_TIME_H || _LIBC
+#  include <time.h>
+# endif
+#endif
+
+#include <sys/stat.h>
+#if STAT_MACROS_BROKEN
+# undef S_ISDIR
+#endif
+#if !defined S_ISDIR && defined S_IFDIR
+# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+#endif
+#if !S_IRUSR && S_IREAD
+# define S_IRUSR S_IREAD
+#endif
+#if !S_IRUSR
+# define S_IRUSR 00400
+#endif
+#if !S_IWUSR && S_IWRITE
+# define S_IWUSR S_IWRITE
+#endif
+#if !S_IWUSR
+# define S_IWUSR 00200
+#endif
+#if !S_IXUSR && S_IEXEC
+# define S_IXUSR S_IEXEC
+#endif
+#if !S_IXUSR
+# define S_IXUSR 00100
+#endif
+
+#if !_LIBC
+# define __getpid getpid
+# define __gettimeofday gettimeofday
+# define __mkdir mkdir
+#endif
+
+/* Use the widest available unsigned type if uint64_t is not
+   available.  The algorithm below extracts a number less than 62**6
+   (approximately 2**35.725) from uint64_t, so ancient hosts where
+   uintmax_t is only 32 bits lose about 3.725 bits of randomness,
+   which is better than not having mkstemp at all.  */
+#if !defined UINT64_MAX && !defined uint64_t
+# define uint64_t uintmax_t
+#endif
+
+/* These are the characters used in temporary filenames.  */
+static const char letters[] =
+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+
+/* Generate a temporary file name based on TMPL.  TMPL must match the
+   rules for mk[s]temp (i.e. end in "XXXXXX").  The name constructed
+   does not exist at the time of the call to __gen_tempname.  TMPL is
+   overwritten with the result.
+
+   KIND is:
+   __GT_DIR:           create a directory, which will be mode 0700.
+
+   We use a clever algorithm to get hard-to-predict names. */
+static int
+gen_tempname (tmpl)
+     char *tmpl;
+{
+  int len;
+  char *XXXXXX;
+  static uint64_t value;
+  uint64_t random_time_bits;
+  int count, fd = -1;
+  int save_errno = errno;
+
+  len = strlen (tmpl);
+  if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  /* This is where the Xs start.  */
+  XXXXXX = &tmpl[len - 6];
+
+  /* Get some more or less random data.  */
+#ifdef RANDOM_BITS
+  RANDOM_BITS (random_time_bits);
+#else
+# if HAVE_GETTIMEOFDAY || _LIBC
+  {
+    struct timeval tv;
+    __gettimeofday (&tv, NULL);
+    random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec;
+  }
+# else
+  random_time_bits = time (NULL);
+# endif
+#endif
+  value += random_time_bits ^ __getpid ();
+
+  for (count = 0; count < TMP_MAX; value += 7777, ++count)
+    {
+      uint64_t v = value;
+
+      /* Fill in the random bits.  */
+      XXXXXX[0] = letters[v % 62];
+      v /= 62;
+      XXXXXX[1] = letters[v % 62];
+      v /= 62;
+      XXXXXX[2] = letters[v % 62];
+      v /= 62;
+      XXXXXX[3] = letters[v % 62];
+      v /= 62;
+      XXXXXX[4] = letters[v % 62];
+      v /= 62;
+      XXXXXX[5] = letters[v % 62];
+
+      fd = __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR);
+
+      if (fd >= 0)
+       {
+         __set_errno (save_errno);
+         return fd;
+       }
+      else if (errno != EEXIST)
+       return -1;
+    }
+
+  /* We got out of the loop because we ran out of combinations to try.  */
+  __set_errno (EEXIST);
+  return -1;
+}
+
+/* Generate a unique temporary directory from TEMPLATE.
+   The last six characters of TEMPLATE must be "XXXXXX";
+   they are replaced with a string that makes the filename unique.
+   The directory is created, mode 700, and its name is returned.
+   (This function comes from OpenBSD.) */
+char *
+mkdtemp (template)
+     char *template;
+{
+  if (gen_tempname (template))
+    return NULL;
+  else
+    return template;
+}
+
$NetBSD$

--- libbrasero-burn/mkdtemp.h.orig      2010-09-22 07:28:05.876900119 +0000
+++ libbrasero-burn/mkdtemp.h
@@ -0,0 +1,41 @@
+/* Creating a private temporary directory.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#ifndef PARAMS
+# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus 
|| __PROTOTYPES
+#  define PARAMS(Args) Args
+# else
+#  define PARAMS(Args) ()
+# endif
+#endif
+
+#if HAVE_MKDTEMP
+
+/* Get mkdtemp() declaration.  */
+#include <stdlib.h>
+
+#else
+
+/* Create a unique temporary directory from TEMPLATE.
+   The last six characters of TEMPLATE must be "XXXXXX";
+   they are replaced with a string that makes the directory name unique.
+   Returns TEMPLATE, or a null pointer if it cannot get a unique name.
+   The directory is created mode 700.  */
+extern char * mkdtemp PARAMS ((char *template));
+
+#endif
+
$NetBSD$

--- nautilus/Makefile.am.orig   2010-06-21 22:56:08.000000000 +0000
+++ nautilus/Makefile.am
@@ -50,11 +50,13 @@ libnautilus_brasero_extension_la_SOURCES
 
 libnautilus_brasero_extension_la_LIBADD =      \
        $(BRASERO_GCONF_CFLAGS) \
-       $(NAUTILUS_EXTENSION_LIBS)              \
-       ../libbrasero-utils/libbrasero-utils.la \
-       ../libbrasero-media/libbrasero-media.la \
-       ../libbrasero-burn/libbrasero-burn.la
+       $(NAUTILUS_EXTENSION_LIBS)
        
-libnautilus_brasero_extension_la_LDFLAGS = $(module_flags)
+libnautilus_brasero_extension_la_LDFLAGS = $(module_flags) \
+       -L$(prefix)/lib -Wl,-R$(prefix)/lib \
+       -lbrasero-utils \
+       -lbrasero-media \
+       -lbrasero-burn
+
 
 -include $(top_srcdir)/git.mk


Home | Main Index | Thread Index | Old Index