view src/popt-1-win32.patch @ 684:6ab8ff5ab4f6

use the autotools for package popt
author Volker Grabsch <vog@notjusthosting.com>
date Fri, 05 Feb 2010 03:06:08 +0100
parents dab071eac9c0
children 29f1ba4559ae
line wrap: on
line source

This file is part of mingw-cross-env.
See doc/index.html or doc/README for further information.

diff -urN popt-1.15/autogen.sh popt-1.15-mod/autogen.sh
--- popt-1.15/autogen.sh	2008-02-14 08:33:39.000000000 +0100
+++ popt-1.15-mod/autogen.sh	2009-06-16 14:48:40.000000000 +0200
@@ -5,6 +5,8 @@
 
 THEDIR="`pwd`"
 
+gnulib-tool --update
+
 libtoolize=`which glibtoolize 2>/dev/null`
 case $libtoolize in
 /*) ;;
diff -urN popt-1.15/configure.ac popt-1.15-mod/configure.ac
--- popt-1.15/configure.ac	2009-04-12 21:31:09.000000000 +0200
+++ popt-1.15-mod/configure.ac	2009-06-16 14:48:40.000000000 +0200
@@ -1,4 +1,4 @@
-AC_PREREQ(2.57)
+AC_PREREQ([2.59])
 AC_INIT(popt, 1.15, popt-devel@rpm5.org)
 AC_CANONICAL_TARGET
 AC_CONFIG_SRCDIR([popt.h])
@@ -17,6 +17,7 @@
 ALL_LINGUAS="cs da de eo es fi fr ga gl hu id is it ja ko nb nl pl pt ro ru sk sl sv th tr uk vi wa zh_TW zh_CN"
 
 AC_PROG_CC
+gl_EARLY
 AC_PROG_INSTALL
 AC_PROG_LIBTOOL
 
@@ -42,7 +43,10 @@
 AC_ISC_POSIX
 AM_C_PROTOTYPES
 
-AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h)
+dnl Gnulib tests.
+gl_INIT
+
+AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h sys/ioctl.h)
 
 # For some systems we know that we have ld_version scripts.
 # Use it then as default.
@@ -66,7 +70,7 @@
 AC_CHECK_FUNC(setreuid, [], [
     AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi])
 ])
-AC_CHECK_FUNCS(getuid geteuid iconv mtrace __secure_getenv setregid stpcpy strerror vasprintf srandom)
+AC_CHECK_FUNCS(getuid geteuid iconv mtrace __secure_getenv setregid stpcpy strerror vasprintf srandom random)
 
 AM_GNU_GETTEXT([external])
 AM_ICONV_LINK
@@ -80,4 +84,4 @@
 	[Full path to popt top_srcdir.])
 AC_SUBST(POPT_SOURCE_PATH)
 
-AC_OUTPUT([Doxyfile Makefile po/Makefile.in])
+AC_OUTPUT([Doxyfile Makefile  po/Makefile.in lib/Makefile])
diff -urN popt-1.15/Makefile.am popt-1.15-mod/Makefile.am
--- popt-1.15/Makefile.am	2009-04-12 21:31:09.000000000 +0200
+++ popt-1.15-mod/Makefile.am	2009-06-16 14:49:34.000000000 +0200
@@ -8,9 +8,10 @@
 	footer_no_timestamp.html libpopt.vers \
 	testit.sh test-poptrc test3-data/0* \
 	po/*.in po/*.po po/popt.pot \
-	popt.ps
+	popt.ps \
+	m4/gnulib-cache.m4
 
-SUBDIRS = po
+SUBDIRS = lib po
 
 INCLUDES = -I. -I$(top_srcdir)
 
@@ -40,7 +41,7 @@
 usrlib_LTLIBRARIES = libpopt.la
 
 libpopt_la_SOURCES = popt.c poptparse.c poptconfig.c popthelp.c poptint.c
-libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ @LTLIBICONV@
+libpopt_la_LDFLAGS = @LTLIBINTL@ @LTLIBICONV@
 
 if HAVE_LD_VERSION_SCRIPT
 libpopt_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libpopt.vers
diff -urN popt-1.15/popt.c popt-1.15-mod/popt.c
--- popt-1.15/popt.c	2009-04-12 20:14:38.000000000 +0200
+++ popt-1.15-mod/popt.c	2009-06-16 14:48:40.000000000 +0200
@@ -766,6 +766,21 @@
 /*@=unqualifiedtrans =nullstate@*/
 }
 
+/* Win32 typically lacks random/srandom, but has rand/srand which
+ * produces frankly rubbish random numbers and has RAND_MAX = 0x7FFF.
+ */
+#ifndef HAVE_RANDOM
+static int
+random ()
+{
+  return rand () << 15 | rand ();
+}
+#endif
+
+#ifndef HAVE_SRANDOM
+#define srandom srand
+#endif
+
 /*@unchecked@*/
 static unsigned int seed = 0;
 
diff -urN popt-1.15/poptconfig.c popt-1.15-mod/poptconfig.c
--- popt-1.15/poptconfig.c	2009-04-12 20:14:38.000000000 +0200
+++ popt-1.15-mod/poptconfig.c	2009-06-16 14:48:40.000000000 +0200
@@ -141,18 +141,23 @@
 int poptSaneFile(const char * fn)
 {
     struct stat sb;
+#ifdef HAVE_GETUID
     uid_t uid = getuid();
-
+#endif
     if (stat(fn, &sb) == -1)
 	return 1;
+#ifdef HAVE_GETUID
     if ((uid_t)sb.st_uid != uid)
 	return 0;
+#endif
     if (!S_ISREG(sb.st_mode))
 	return 0;
+#ifdef HAVE_GETUID
 /*@-bitwisesigned@*/
     if (sb.st_mode & (S_IWGRP|S_IWOTH))
 	return 0;
 /*@=bitwisesigned@*/
+#endif
     return 1;
 }
 
diff -urN popt-1.15/popthelp.c popt-1.15-mod/popthelp.c
--- popt-1.15/popthelp.c	2009-04-12 20:14:38.000000000 +0200
+++ popt-1.15-mod/popthelp.c	2009-06-16 14:48:40.000000000 +0200
@@ -12,8 +12,10 @@
 
 #define        POPT_USE_TIOCGWINSZ
 #ifdef POPT_USE_TIOCGWINSZ
+#ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
 #endif
+#endif
 
 #define	POPT_WCHAR_HACK
 #ifdef 	POPT_WCHAR_HACK