##
## rpm.patch.porting -- Annotated OpenPKG RPM Patch file
## Copyright (c) 2000-2006 OpenPKG Foundation e.V.
## Copyright (c) 2000-2006 Ralf S. Engelschall
##
## This file assembles changes to existing RPM source files between
## the original RedHat RPM and the OpenPKG RPM variant. It can be
## automatically applied to a vanilla RedHat RPM source tree with the
## 'patch' tool to upgrade those files. Each patch snippet is annotated
## with a short description.
##
## Created on: 13-Sep-2006
##
## ATTENTION: THIS PATCH FILE WAS AUTO-GENERATED FROM AN OPENPKG
## RPM CVS REPOSITORY, HENCE DO NOT EDIT THIS FILE.
##
+---------------------------------------------------------------------------
| Evil hack to get GNU libtool working under NetBSD 1.6
| with the ugly way RPM currently has to use it.
+---------------------------------------------------------------------------
Index: ltconfig
--- ltconfig 17 Jan 2001 16:22:58 -0000 1.1.1.7
+++ ltconfig 29 Apr 2004 13:07:28 -0000 1.4
@@ -2017,6 +2017,7 @@
dynamic_linker='NetBSD ld.elf_so'
fi
shlibpath_var=LD_LIBRARY_PATH
+ deplibs_check_method=pass_all
;;
openbsd*)
+---------------------------------------------------------------------------
| Disable special RedHat NPTL handling.
+---------------------------------------------------------------------------
Index: configure.ac
--- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
+++ configure.ac 13 Sep 2006 13:40:20 -0000
@@ -150,10 +151,10 @@
dnl XXX Test for libpthread.a that is NPTL aware (static link only).
dnl
LDFLAGS_NPTL=
-if test -f /usr/lib/nptl/libpthread.a ; then
- LDFLAGS_NPTL="-L/usr/lib/nptl"
-# INCPATH="$INCPATH -I/usr/include/nptl"
-fi
+dnl if test -f /usr/lib/nptl/libpthread.a ; then
+dnl LDFLAGS_NPTL="-L/usr/lib/nptl"
+dnl # INCPATH="$INCPATH -I/usr/include/nptl"
+dnl fi
AC_SUBST(LDFLAGS_NPTL)
dnl
+---------------------------------------------------------------------------
| Disable any POSIX Pthread stuff because in OpenPKG we use
| non-Pthread mutexes in Berkeley-DB.
+---------------------------------------------------------------------------
Index: configure.ac
--- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
+++ configure.ac 13 Sep 2006 13:40:21 -0000
@@ -446,14 +447,17 @@
AC_CHECK_LIB(socket, socket)
])
-AC_CHECK_HEADERS(thread.h pthread.h synch.h semaphore.h)
+dnl # required for HP-UX because of RPC stuff in DB
+AC_CHECK_LIB(nsl, svc_run)
-AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
- dnl OSF 5.0 has the the symbols prefixed with __ in libpthread.
- AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [
- AC_CHECK_LIB(thread, mutex_lock)
- ])
-])
+dnl AC_CHECK_HEADERS(thread.h pthread.h synch.h semaphore.h)
+dnl
+dnl AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
+dnl dnl OSF 5.0 has the the symbols prefixed with __ in libpthread.
+dnl AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [
+dnl AC_CHECK_LIB(thread, mutex_lock)
+dnl ])
+dnl ])
AC_CHECK_HEADERS(aio.h)
AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
+---------------------------------------------------------------------------
| Add support for BSD getmntinfo(3).
+---------------------------------------------------------------------------
Index: configure.ac
--- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
+++ configure.ac 13 Sep 2006 13:40:23 -0000
@@ -963,12 +967,13 @@
AC_CHECK_FUNCS(getpassphrase)
AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT, 1, [Define if you have the getmntent() function]), [
+ AC_CHECK_FUNC(getmntinfo, AC_DEFINE(HAVE_GETMNTINFO, 1, [Define as 1 if you have the getmntinfo() function]), [
AC_CHECK_FUNC(mntctl, AC_DEFINE(HAVE_MNTCTL, 1, [Define as 1 if you have mntctl() (only aix?)]),[
AC_CHECK_FUNC(getmntinfo_r, AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)]), [
AC_CHECK_LIB(c_r, getmntinfo_r, [LIBS="$LIBS -lc_r";
AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)])], [
AC_DEFINE([USE_GETMNTENT], 1, [Defined if getmntent replacement is used])
- AC_LIBOBJ(getmntent)])])])])
+ AC_LIBOBJ(getmntent)])])])])])
AC_CHECK_FUNC(lchown,
[__CHOWN_RHF="%{__chown} -Rhf"
+---------------------------------------------------------------------------
| Remove RPM's "lib64" hack because we do not install
| into any system locations at all.
+---------------------------------------------------------------------------
Index: configure.ac
--- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
+++ configure.ac 13 Sep 2006 13:40:25 -0000
@@ -1141,9 +1146,6 @@
dnl XXX Choose /usr/lib or /usr/lib64 for library installs.
MARK64=
-case "${target_cpu}" in
-x86_64*|ppc64*|powerpc64*|sparc64*|s390x*) MARK64=64 ;;
-esac
AC_SUBST(MARK64)
dnl Determine the canonical arch-vendor-os for the build machine
+---------------------------------------------------------------------------
| Provide fallback definitions for uintX_t stuff, which is used by
| build/rpmfile.h and not available on all platforms. We do this by
| adding the same Autoconf checks file/configure already used for its
| original file.h.
| Additionally, do not try to configure in an internal
| beecrypt subdirectory.
+---------------------------------------------------------------------------
Index: configure.ac
--- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
+++ configure.ac 13 Sep 2006 13:40:29 -0000
@@ -1249,11 +1251,40 @@
AC_SUBST(OBJDUMP)
+dnl OpenPKG: rpmfile.h (used in RPM) from file(1) needs additional checks
+dnl for its use of uintXX_t (which are available in file/config.h, but which
+dnl we cannot include into RPM because of conflicts with RPM's config.h)
+AC_DEFUN([AC_CHECK_TYPE_STDC],
+[AC_REQUIRE([AC_HEADER_STDC])dnl
+AC_MSG_CHECKING(for $1)
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP(dnl
+[(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]],
+[#if HAVE_STDINT_H
+#include
+#endif
+#include
+#if STDC_HEADERS
+#include
+#include
+#endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
+AC_MSG_RESULT($ac_cv_type_$1)
+if test $ac_cv_type_$1 = no; then
+ AC_DEFINE($1, $2, $1)
+fi])
+AC_CHECK_TYPE_STDC(uint8_t, unsigned char)
+AC_CHECK_TYPE_STDC(uint16_t, unsigned short)
+AC_CHECK_TYPE_STDC(uint32_t, unsigned int)
+
+dnl OpenPKG: some strange platforms (like Unixware) really have MADV_XXX
+dnl but no madvise(2) function itself, so check for madvise explicitly.
+AC_CHECK_FUNC(madvise)
+
dnl XXX this causes popt to depend on zlib et al
dnl # XXX Propagate -lucb to popt ...
dnl export LIBS INCPATH CONFIG_SITE
-AC_CONFIG_SUBDIRS(popt beecrypt zlib elfutils file db3)
+AC_CONFIG_SUBDIRS(popt zlib elfutils file db3)
AC_OUTPUT([ Doxyfile Makefile rpmrc macros platform rpmpopt rpm.spec
rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile
+---------------------------------------------------------------------------
| Remove RPM's "lib64" hack because we do not install
| into any system locations at all.
+---------------------------------------------------------------------------
Index: popt/configure.ac
--- popt/configure.ac 27 Mar 2003 17:23:18 -0000 1.1.1.3
+++ popt/configure.ac 12 May 2004 14:34:35 -0000 1.2
@@ -53,9 +53,6 @@
dnl XXX Choose /usr/lib or /usr/lib64 for library installs.
MARK64=
-case "${target_cpu}" in
-x86_64*|powerpc64*|ppc64*|sparc64*|s390x*) MARK64=64 ;;
-esac
AC_SUBST(MARK64)
AC_CHECK_HEADERS(alloca.h float.h libintl.h mcheck.h unistd.h)
+---------------------------------------------------------------------------
| Prevent (at least NetBSD's) gcc 2.95 from optimizing (at least sha1.c)
| and this way run into a resource (virtual memory) exhaustion situation.
| Not all Bourne-Shells support embedded TAB characters in
| here-document style constructs. Insert the TAB character indirectly
| to workaround problems.
| Additionally, there is no need to build a shared library version of
| Berkeley-DB.
| Finally, enforce the use of the standard UNIX/fcntl mutex type for
| full portability and to get rid of Pthread library dependencies
| (which especially are nasty for the external RPM API users).
+---------------------------------------------------------------------------
Index: db3/configure
--- db3/configure 18 Jan 2003 14:04:22 -0000 1.1.1.4
+++ db3/configure 6 Jun 2005 15:53:05 -0000 1.3
@@ -7,19 +7,29 @@
# XXX edit CFLAGS= ... out of invocation args ???
ARGS="`echo $* | sed -e 's% [^ ]*CFLAGS=[^ ]*%%' -e 's% -[^-][^ ]*%%g' -e 's%--cache-file=.*$%%'`"
+# prevent gcc 2.95 from optimizing (at least sha1.c)
+# and this way get into a resource exhaustion situation
+if [ ".`($CC -v; $CC --version) &1 | grep -i 'gcc'`" != . ]; then
+ case "`$CC -dumpversion 2>/dev/null`" in
+ 3.* ) ;;
+ * ) CFLAGS=`echo " $CFLAGS -O0" | sed -e 's; -O[0-9]* ; ;g' -e 's;^ *;;'` ;;
+ esac
+fi
+
CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure $ARGS \
- --enable-shared --enable-static --enable-rpc \
- --with-uniquename=_rpmdb --srcdir=$db_dist
+ --disable-shared --enable-static --enable-rpc \
+ --with-uniquename=_rpmdb --srcdir=$db_dist \
+ --with-mutex="UNIX/fcntl" --disable-largefile
mv Makefile Makefile.orig
cat Makefile.orig | sed -e '/^install[:-]/c\
.PHONY: listobjs\
listobjs:\
- @echo $(OBJS) $(C_OBJS) \
+~@echo $(OBJS) $(C_OBJS) \
\
distdir install check:\
\
-db4_install: all install_setip' > Makefile
+db4_install: all install_setip' | tr '~' ' ' > Makefile
mv db.h db.h.orig
cat db.h.orig | sed \
+---------------------------------------------------------------------------
| Add support for BSD getmntinfo(3).
+---------------------------------------------------------------------------
Index: lib/fs.c
--- lib/fs.c 4 Jun 2003 18:09:43 -0000 1.1.1.13
+++ lib/fs.c 25 Nov 2004 09:32:16 -0000 1.3
@@ -164,6 +164,15 @@
int nextMount = 0;
getmntinfo_r(&mounts, flags, &mntCount, &bufSize);
+# elif HAVE_GETMNTINFO
+# if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)
+# define statfs statvfs
+# endif
+ struct statfs * mounts = NULL;
+ int mntCount, flags = MNT_NOWAIT;
+ int nextMount = 0;
+
+ mntCount = getmntinfo(&mounts, flags);
# endif
filesystems = xcalloc((numAlloced + 1), sizeof(*filesystems)); /* XXX memory leak */
@@ -193,6 +202,9 @@
# elif HAVE_GETMNTINFO_R
if (nextMount == mntCount) break;
mntdir = mounts[nextMount++].f_mntonname;
+# elif HAVE_GETMNTINFO
+ if (nextMount == mntCount) break;
+ mntdir = mounts[nextMount++].f_mntonname;
# endif
if (stat(mntdir, &sb)) {
+---------------------------------------------------------------------------
| Add support for Compaq/HP OSF1/Tru64.
+---------------------------------------------------------------------------
Index: misc/fnmatch.h
--- misc/fnmatch.h 22 Feb 2002 17:12:15 -0000 1.1.1.3
+++ misc/fnmatch.h 22 Jan 2004 21:42:26 -0000 1.2
@@ -55,7 +55,7 @@
#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
-#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
+#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE || defined __osf__
# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
+---------------------------------------------------------------------------
| Use more correct Autoconf based size_t check.
| Add support for Compaq/HP OSF1/Tru64 and SCO UnixWare.
+---------------------------------------------------------------------------
Index: misc/glob.h
--- misc/glob.h 11 Mar 2000 20:59:30 -0000 1.1.1.3
+++ misc/glob.h 22 Jan 2004 21:42:27 -0000 1.2
@@ -46,7 +46,7 @@
#endif /* C++ or ANSI C. */
/* We need `size_t' for the following definitions. */
-#ifndef __size_t
+#if !defined(__size_t) && !defined(_SIZE_T_DECLARED)
# if defined __GNUC__ && __GNUC__ >= 2
typedef __SIZE_TYPE__ __size_t;
# ifdef _XOPEN_SOURCE
@@ -74,7 +74,7 @@
#define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */
#if (!defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _BSD_SOURCE \
- || defined _GNU_SOURCE)
+ || defined _GNU_SOURCE || defined __osf__ )
# define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */
# define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */
# define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */
@@ -151,7 +151,8 @@
`glob' returns GLOB_ABEND; if it returns zero, the error is ignored.
If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
Otherwise, `glob' returns zero. */
-#if _FILE_OFFSET_BITS != 64
+/* #if _FILE_OFFSET_BITS != 64 || defined(OPENPKG_UNIXWARE) */
+#if !defined(__linux__)
extern int glob __P ((__const char *__pattern, int __flags,
int (*__errfunc) (__const char *, int),
glob_t *__pglob));
+---------------------------------------------------------------------------
| Better portability.
+---------------------------------------------------------------------------
Index: misc/glob.c
--- misc/glob.c 11 Mar 2000 21:13:18 -0000 1.1.1.4
+++ misc/glob.c 22 Jan 2004 21:42:26 -0000 1.2
@@ -813,6 +813,7 @@
/* Free storage allocated in PGLOB by a previous `glob' call. */
+#if !defined(__linux__) || (defined(__linux__) && (_FILE_OFFSET_BITS != 64) || (__GNUC__ >= 2))
void
globfree (pglob)
register glob_t *pglob;
@@ -826,7 +827,7 @@
free ((__ptr_t) pglob->gl_pathv);
}
}
-
+#endif
/* Do a collated comparison of A and B. */
static int
+---------------------------------------------------------------------------
| Add libmisc.a for platform portability.
+---------------------------------------------------------------------------
Index: tools/Makefile.am
--- tools/Makefile.am 29 May 2003 17:40:17 -0000 1.1.1.14
+++ tools/Makefile.am 22 Jan 2004 21:42:34 -0000 1.2
@@ -22,7 +22,7 @@
LDADD = \
$(top_builddir)/lib/librpm.la \
- @INTLLIBS@
+ @INTLLIBS@ @LIBMISC@
staticLDFLAGS = @LDFLAGS_STATIC@ @LDFLAGS_NPTL@
+---------------------------------------------------------------------------
| Add libmisc.a for platform portability.
+---------------------------------------------------------------------------
Index: tools/Makefile.in
--- tools/Makefile.in 16 Jul 2003 17:05:51 -0000 1.1.1.20
+++ tools/Makefile.in 22 Jan 2004 21:42:35 -0000 1.2
@@ -275,7 +275,7 @@
LDADD = \
$(top_builddir)/lib/librpm.la \
- @INTLLIBS@
+ @INTLLIBS@ @LIBMISC@
staticLDFLAGS = @LDFLAGS_STATIC@ @LDFLAGS_NPTL@
+---------------------------------------------------------------------------
| Drop GCC "inline" attribute if not compiling with GCC.
| Workaround some other GCC'isms, too.
| Do not take over "const" replacements from Zlib.
+---------------------------------------------------------------------------
Index: file/system.h
--- file/system.h 24 Jan 2003 19:41:56 -0000 1.1.1.1
+++ file/system.h 6 Jun 2005 15:53:05 -0000 1.4
@@ -13,6 +13,9 @@
#endif
#include
+#ifdef HAVE_INTTYPES_H
+#include
+#endif
#include
#include
@@ -53,6 +56,8 @@
#else
#if HAVE_ERROR && HAVE_ERROR_H
#include
+#else
+extern void error(int status, int errnum, const char *format, ...);
#endif
#endif
@@ -194,6 +199,7 @@
#ifdef HAVE_LIBZ
#include
+#undef const
#endif
#ifndef HAVE_STRERROR
@@ -246,7 +252,11 @@
*/
/*@-shadow@*/
/*@unused@*/ /*@exits@*/ /*@only@*/
+#if defined(__GNUC__)
static inline void * vmefail(/*@unused@*/ size_t nb)
+#else
+static void * vmefail(/*@unused@*/ size_t nb)
+#endif
/*@globals fileSystem @*/
/*@modifies fileSystem @*/
{
@@ -286,9 +296,33 @@
#if !defined(__LCLINT__)
/* Memory allocation via macro defs to get meaningful locations from mtrace() */
+#if defined(__GNUC__)
#define xmalloc(_size) (malloc(_size) ? : vmefail(0))
#define xcalloc(_nmemb, _size) (calloc((_nmemb), (_size)) ? : vmefail(0))
#define xrealloc(_ptr, _size) (realloc((_ptr), (_size)) ? : vmefail(0))
+#else
+static void *xmalloc(size_t size)
+{
+ void *vp = malloc(size);
+ if (vp == NULL)
+ vmefail(0);
+ return vp;
+}
+static void *xcalloc(size_t number, size_t size)
+{
+ void *vp = calloc(number, size);
+ if (vp == NULL)
+ vmefail(0);
+ return vp;
+}
+static void *xrealloc(void *ptr, size_t size)
+{
+ void *vp = realloc(ptr, size);
+ if (vp == NULL)
+ vmefail(0);
+ return vp;
+}
+#endif
#define xstrdup(_str) (strcpy(xmalloc(strlen(_str)+1), (_str)))
#endif
@@ -314,9 +348,14 @@
#if defined(__LCLINT__)
#define FILE_RCSID(id)
-#else
+#elif defined(__GNUC__)
#define FILE_RCSID(id) \
static inline const char *rcsid(const char *p) { \
+ return rcsid(p = id); \
+}
+#else
+#define FILE_RCSID(id) \
+static const char *rcsid(const char *p) { \
return rcsid(p = id); \
}
#endif
+---------------------------------------------------------------------------
| Use GCC extensional features only if compiled with GCC.
+---------------------------------------------------------------------------
Index: file/file.h
--- file/file.h 24 Jan 2003 19:41:56 -0000 1.1.1.1
+++ file/file.h 22 Jan 2004 21:42:22 -0000 1.2
@@ -95,7 +95,11 @@
} value; /* either number or string */
uint32_t mask; /* mask before comparison with value */
char desc[MAXDESC]; /* description */
+#if defined(__GNUC__)
} __attribute__((__packed__));
+#else
+};
+#endif
#define BIT(A) (1 << (A))
#define STRING_IGNORE_LOWERCASE BIT(0)
+---------------------------------------------------------------------------
| Add int32_t detection and automatic fallback support.
+---------------------------------------------------------------------------
Index: file/config.h.in
--- file/config.h.in 7 Mar 2003 19:39:18 -0000 1.1.1.1
+++ file/config.h.in 13 Sep 2006 13:40:49 -0000
@@ -106,6 +106,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if you have the `vsnprintf' function. */
+#undef HAVE_VSNPRINTF
+
/* Define to 1 if `major', `minor', and `makedev' are declared in .
*/
#undef MAJOR_IN_MKDEV
@@ -162,12 +165,16 @@
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
+/* int32_t */
+#undef int32_t
+
/* Define to `long' if does not define. */
#undef off_t
/* Define to `unsigned' if does not define. */
#undef size_t
+#ifndef HAVE_STDINT_H
/* uint16_t */
#undef uint16_t
@@ -179,3 +186,4 @@
/* uint8_t */
#undef uint8_t
+#endif
+---------------------------------------------------------------------------
| Add int32_t detection and automatic fallback support.
+---------------------------------------------------------------------------
Index: file/configure.ac
--- file/configure.ac 1 Dec 2002 21:34:06 -0000 1.1.1.1
+++ file/configure.ac 6 Jun 2005 15:53:05 -0000 1.2
@@ -92,6 +92,7 @@
AC_CHECK_TYPE_STDC(uint8_t, unsigned char)
AC_CHECK_TYPE_STDC(uint16_t, unsigned short)
AC_CHECK_TYPE_STDC(uint32_t, unsigned int)
+AC_CHECK_TYPE_STDC(int32_t, int)
AC_C_LONG_LONG
if test $ac_cv_c_long_long = yes; then
long64='unsigned long long';
@@ -107,7 +108,7 @@
AC_CHECK_SIZEOF_STDC_HEADERS(uint64_t, 0)
dnl Checks for functions
-AC_CHECK_FUNCS(error mtrace mkstemp mmap strdup strerror strtoul)
+AC_CHECK_FUNCS(error mtrace mkstemp mmap strdup strerror strtoul vsnprintf)
dnl Checks for libraries
AC_CHECK_LIB(z, gzopen)
+---------------------------------------------------------------------------
| Add int32_t detection and automatic fallback support.
+---------------------------------------------------------------------------
Index: file/configure
--- file/configure 16 Jul 2003 17:05:25 -0000 1.1.1.2
+++ file/configure 6 Jun 2005 15:53:05 -0000 1.2
@@ -10847,6 +10847,46 @@
fi
+echo "$as_me:$LINENO: checking for int32_t" >&5
+echo $ECHO_N "checking for int32_t... $ECHO_C" >&6
+if test "${ac_cv_type_int32_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#if HAVE_STDINT_H
+#include
+#endif
+#include
+#if STDC_HEADERS
+#include
+#include
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "(^|[^a-zA-Z_0-9])int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ ac_cv_type_int32_t=yes
+else
+ ac_cv_type_int32_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5
+echo "${ECHO_T}$ac_cv_type_int32_t" >&6
+if test $ac_cv_type_int32_t = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define int32_t int
+_ACEOF
+
+fi
+
echo "$as_me:$LINENO: checking for long long" >&5
echo $ECHO_N "checking for long long... $ECHO_C" >&6
if test "${ac_cv_c_long_long+set}" = set; then
@@ -11220,7 +11260,8 @@
-for ac_func in error mtrace mkstemp mmap strdup strerror strtoul
+
+for ac_func in error mtrace mkstemp mmap strdup strerror strtoul vsnprintf
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
+---------------------------------------------------------------------------
| Fallback to vsprintf(3) if vsnprintf(3) does not exist.
+---------------------------------------------------------------------------
Index: file/print.c
--- file/print.c 24 Jan 2003 19:41:56 -0000 1.1.1.1
+++ file/print.c 6 Jun 2005 15:53:05 -0000 1.2
@@ -187,7 +187,11 @@
va_start(va, f);
/*@-boundswrite@*/
+#ifdef HAVE_VSNPRINTF
rc = vsnprintf(fm->obp, fm->nob, f, va);
+#else
+ rc = vsprintf(fm->obp, f, va);
+#endif
/*@=boundswrite@*/
va_end(va);
+---------------------------------------------------------------------------
| Use GNU libtool's weaker -static (link with own static libraries)
| instead of the strong -all-static (link even with static libc, etc),
| because OpenPKG does not need to be fully static.
+---------------------------------------------------------------------------
Index: rpmdb/Makefile.am
--- rpmdb/Makefile.am 2 Jul 2003 20:14:07 -0000 1.1.1.7
+++ rpmdb/Makefile.am 22 Jan 2004 21:42:29 -0000 1.2
@@ -18,7 +18,7 @@
EXTRA_PROGRAMS = tjfn
tjfn_SOURCES = tjfn.c
-tjfn_LDFLAGS = -all-static
+tjfn_LDFLAGS = -static
tjfn_LDADD = librpmdb.la
pkgincdir = $(pkgincludedir)
@@ -180,4 +180,4 @@
$(LINT) $(DEFS) $(INCLUDES) $(librpmdb_la_SOURCES)
tdbi: librpmdb.la tdbi.o
- $(LINK) -all-static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
+ $(LINK) -static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
+---------------------------------------------------------------------------
| Use GNU libtool's weaker -static (link with own static libraries)
| instead of the strong -all-static (link even with static libc, etc),
| because OpenPKG does not need to be fully static.
+---------------------------------------------------------------------------
Index: rpmdb/Makefile.in
--- rpmdb/Makefile.in 16 Jul 2003 17:05:48 -0000 1.1.1.7
+++ rpmdb/Makefile.in 22 Jan 2004 21:42:29 -0000 1.2
@@ -273,7 +273,7 @@
EXTRA_PROGRAMS = tjfn
tjfn_SOURCES = tjfn.c
-tjfn_LDFLAGS = -all-static
+tjfn_LDFLAGS = -static
tjfn_LDADD = librpmdb.la
pkgincdir = $(pkgincludedir)
@@ -952,7 +952,7 @@
$(LINT) $(DEFS) $(INCLUDES) $(librpmdb_la_SOURCES)
tdbi: librpmdb.la tdbi.o
- $(LINK) -all-static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
+ $(LINK) -static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+---------------------------------------------------------------------------
| Use GNU libtool's weaker -static (link with own static libraries)
| instead of the strong -all-static (link even with static libc, etc),
| because OpenPKG does not need to be fully static.
+---------------------------------------------------------------------------
Index: rpmio/Makefile.am
--- rpmio/Makefile.am 5 Jun 2003 12:05:23 -0000 1.1.1.9
+++ rpmio/Makefile.am 22 Jan 2004 21:42:31 -0000 1.2
@@ -68,27 +68,27 @@
tdigest_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tdir_SOURCES = tdir.c
-tdir_LDFLAGS = -all-static
+tdir_LDFLAGS = -static
tdir_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tfts_SOURCES = tfts.c
-tfts_LDFLAGS = -all-static
+tfts_LDFLAGS = -static
tfts_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tglob_SOURCES = tglob.c
-tglob_LDFLAGS = -all-static
+tglob_LDFLAGS = -static
tglob_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tinv_SOURCES = tinv.c
-tinv_LDFLAGS = -all-static
+tinv_LDFLAGS = -static
tinv_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tkey_SOURCES = tkey.c
-tkey_LDFLAGS = -all-static
+tkey_LDFLAGS = -static
tkey_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tring_SOURCES = tring.c
-tring_LDFLAGS = -all-static
+tring_LDFLAGS = -static
tring_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
trpmio_SOURCES = trpmio.c
+---------------------------------------------------------------------------
| Use GNU libtool's weaker -static (link with own static libraries)
| instead of the strong -all-static (link even with static libc, etc),
| because OpenPKG does not need to be fully static.
| Additionally, remove hard-coded Linux'ism of linking against POSIX
| rt/pthread libraries (is not needed even under Linux itself) and
| make sure the build does not break by an empty argument list when
| iterating over (the not existing) BeeCrypt objects.
+---------------------------------------------------------------------------
Index: rpmio/Makefile.in
--- rpmio/Makefile.in 16 Jul 2003 17:05:49 -0000 1.1.1.9
+++ rpmio/Makefile.in 22 Jan 2004 21:42:31 -0000 1.2
@@ -288,8 +288,7 @@
librpmio_la_LDFLAGS = -release 4.2 \
@WITH_BEECRYPT_LIB@ \
$(top_builddir)/file/libfmagic.la \
- @WITH_ZLIB_LIB@ \
- -lrt -lpthread
+ @WITH_ZLIB_LIB@
librpmio_la_LIBADD = $(BEECRYPTLOBJS)
librpmio_la_DEPENDENCIES = .created
@@ -298,27 +297,27 @@
tdigest_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tdir_SOURCES = tdir.c
-tdir_LDFLAGS = -all-static
+tdir_LDFLAGS = -static
tdir_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tfts_SOURCES = tfts.c
-tfts_LDFLAGS = -all-static
+tfts_LDFLAGS = -static
tfts_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tglob_SOURCES = tglob.c
-tglob_LDFLAGS = -all-static
+tglob_LDFLAGS = -static
tglob_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tinv_SOURCES = tinv.c
-tinv_LDFLAGS = -all-static
+tinv_LDFLAGS = -static
tinv_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tkey_SOURCES = tkey.c
-tkey_LDFLAGS = -all-static
+tkey_LDFLAGS = -static
tkey_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
tring_SOURCES = tring.c
-tring_LDFLAGS = -all-static
+tring_LDFLAGS = -static
tring_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
trpmio_SOURCES = trpmio.c
@@ -743,8 +742,8 @@
.created:
if test X"@WITH_BEECRYPT_SUBDIR@" != X; then \
${MAKE} -C $(top_builddir)/@WITH_BEECRYPT_SUBDIR@ listobjs ; \
- for lo in $(BEECRYPTLOBJS); do \
- [ -f $$lo ] || $(LN_S) $(top_builddir)/@WITH_BEECRYPT_SUBDIR@/$$lo $$lo ; \
+ for lo in $(BEECRYPTLOBJS) ''; do \
+ [ ".$$lo" = . ] || [ -f $$lo ] || $(LN_S) $(top_builddir)/@WITH_BEECRYPT_SUBDIR@/$$lo $$lo ; \
done \
fi
touch $@
+---------------------------------------------------------------------------
| Add Unixware support.
+---------------------------------------------------------------------------
Index: rpmio/fts.h
--- rpmio/fts.h 18 Jan 2003 16:13:17 -0000 1.1.1.3
+++ rpmio/fts.h 22 Jan 2004 21:42:32 -0000 1.2
@@ -51,7 +51,7 @@
# define _LARGEFILE64_SOURCE
#endif
-#if defined(sun)
+#if defined(sun) || defined(OPENPKG_UNIXWARE)
# define _D_EXACT_NAMLEN(d) ((d)->d_reclen)
#endif
+---------------------------------------------------------------------------
| Add FreeBSD/NetBSD/OpenBSD support.
| Workaround some GCC'isms.
+---------------------------------------------------------------------------
Index: rpmio/fts.c
--- rpmio/fts.c 18 Jan 2003 16:13:17 -0000 1.1.1.3
+++ rpmio/fts.c 8 Jun 2005 13:16:25 -0000 1.5
@@ -34,6 +34,8 @@
static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
#endif /* LIBC_SCCS and not lint */
+#include
+
#if defined(_LIBC)
#include
#include
@@ -45,20 +47,49 @@
#include
#include
#else
-#if defined(hpux)
+#if defined(OPENPKG_HPUX)
# define _INCLUDE_POSIX_SOURCE
# define __errno_location() (&errno)
# define dirfd(dirp) -1
# define stat64 stat
# define _STAT_VER 0
# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
+# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
#endif
-#if defined(sun)
+#if defined(sun) || defined(OPENPKG_UNIXWARE)
# define __errno_location() (&errno)
# define dirfd(dirp) -1
# define _STAT_VER 0
# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
#endif
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN)
+# define __errno_location() (&errno)
+# define stat64 stat
+# define _STAT_VER 0
+# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
+# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
+#endif
+#if defined(__osf__)
+# define __errno_location() (&errno)
+# define dirfd(dirp) -1
+# define stat64 stat
+# define _STAT_VER 0
+# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
+# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
+#endif
+#if defined(OPENPKG_IRIX64)
+# define __errno_location() (&errno)
+# define dirfd(dirp) -1
+# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
+# define _D_EXACT_NAMLEN(d) ((d)->d_reclen)
+#endif
+#if defined(OPENPKG_AIX)
+# define __errno_location() (&errno)
+# define _STAT_VER 0
+# define dirfd(dirp) ((dirp)->dd_fd)
+# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
+# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
+#endif
#include "system.h"
#include "fts.h"
#include "rpmio.h"
@@ -73,7 +104,12 @@
/* Largest alignment size needed, minus one.
Usually long double is the worst case. */
#ifndef ALIGNBYTES
+#if defined(__GNUC__)
#define ALIGNBYTES (__alignof__ (long double) - 1)
+#else
+/* not accurate enough (usually too large), but sufficient (and this way equal safe) */
+#define ALIGNBYTES (sizeof (long double) - 1)
+#endif
#endif
/* Align P to that size. */
#ifndef ALIGN
@@ -107,9 +143,13 @@
/*@modifies fileSystem, internalState @*/;
#ifndef MAX
+#if defined(__GNUC__)
#define MAX(a, b) ({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a > _b ? _a : _b; })
+#else
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
#endif
#define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
+---------------------------------------------------------------------------
| Remove inclusion of system because RPM uses its own glob(3)
| implementation and this can conflict with the system one.
+---------------------------------------------------------------------------
Index: rpmio/rpmio.h
--- rpmio/rpmio.h 12 Jun 2003 18:22:18 -0000 1.1.1.7
+++ rpmio/rpmio.h 22 Jan 2004 21:42:33 -0000 1.2
@@ -9,9 +9,6 @@
#include
#include
#include
-/*@-noparams@*/
-#include
-/*@=noparams@*/
#include
#include
#include
+---------------------------------------------------------------------------
| Make this whole "dirent" fiddling at least working on
| FreeBSD/NetBSD/OpenBSD, Solaris, HPUX and Unixware. This certainly
| is a bad corner of RPM which inherently leads to portability
| problems.
+---------------------------------------------------------------------------
Index: rpmio/rpmrpc.c
--- rpmio/rpmrpc.c 29 May 2003 22:14:04 -0000 1.1.1.8
+++ rpmio/rpmrpc.c 8 Jun 2005 13:16:26 -0000 1.5
@@ -1079,6 +1079,8 @@
return rc;
}
+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(sun) && !defined(OPENPKG_DARWIN)
+
struct __dirstream {
int fd; /* File descriptor. */
char * data; /* Directory block. */
@@ -1091,6 +1093,8 @@
#endif
};
+#endif
+
#if !defined(DT_DIR)
# define DT_UNKNOWN 0
# define DT_FIFO 1
@@ -1101,14 +1105,30 @@
# define DT_LNK 10
# define DT_SOCK 12
# define DT_WHT 14
-typedef struct __dirstream * FTPDIR;
-#else
-typedef DIR * FTPDIR;
#endif
+struct mydirstreament {
+ unsigned char type;
+ char *name;
+};
+struct mydirstream {
+ DIR dir;
+ struct dirent ent;
+ unsigned int offset;
+ unsigned int size;
+ struct mydirstreament av[1];
+};
+typedef struct mydirstream *FTPDIR;
+
/*@unchecked@*/
static int ftpmagicdir = 0x8440291;
-#define ISFTPMAGIC(_dir) (!memcmp((_dir), &ftpmagicdir, sizeof(ftpmagicdir)))
+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(sun) && !defined(OPENPKG_UNIXWARE) && !defined(OPENPKG_DARWIN) && !defined(__osf__) && !defined(OPENPKG_IRIX64) && !defined(OPENPKG_HPUX) && !defined(OPENPKG_AIX)
+#define SETFTPMAGIC(_dir) ((_dir)->fd) = ftpmagicdir
+#define ISFTPMAGIC(_dir) ((_dir)->fd == ftpmagicdir)
+#else
+#define SETFTPMAGIC(_dir) ((_dir)->dd_fd) = ftpmagicdir
+#define ISFTPMAGIC(_dir) ((_dir)->dd_fd == ftpmagicdir)
+#endif
/*@-boundswrite@*/
/*@-type@*/ /* FIX: abstract DIR */
@@ -1121,8 +1141,7 @@
struct dirent * dp;
size_t nb;
const char * s, * sb, * se;
- const char ** av;
- unsigned char * dt;
+ struct mydirstreament * av;
char * t;
int ac;
int c;
@@ -1165,28 +1184,22 @@
}
}
- nb += sizeof(*mydir) + sizeof(*dp) + ((ac + 1) * sizeof(*av)) + (ac + 1);
+ nb = sizeof(*mydir) + (ac * sizeof(*av)) + nb;
mydir = xcalloc(1, nb);
/*@-abstract@*/
- dp = (struct dirent *) (mydir + 1);
- av = (const char **) (dp + 1);
- dt = (char *) (av + (ac + 1));
- t = (char *) (dt + ac + 1);
+ dp = &mydir->ent;
+ av = &mydir->av[0];
+ t = (char *)&mydir->av[ac+1];
/*@=abstract@*/
- mydir->fd = ftpmagicdir;
-/*@-usereleased@*/
- mydir->data = (char *) dp;
-/*@=usereleased@*/
- mydir->allocation = nb;
- mydir->size = ac;
- mydir->offset = -1;
- mydir->filepos = 0;
+ SETFTPMAGIC((DIR *)mydir);
+ mydir->size = ac;
+ mydir->offset = 0;
ac = 0;
/*@-dependenttrans -unrecog@*/
- dt[ac] = DT_DIR; av[ac++] = t; t = stpcpy(t, "."); t++;
- dt[ac] = DT_DIR; av[ac++] = t; t = stpcpy(t, ".."); t++;
+ av[ac].type = DT_DIR; av[ac].name = t; t = stpcpy(t, "."); ++ac;
+ av[ac].type = DT_DIR; av[ac].name = t; t = stpcpy(t, ".."); ++ac;
/*@=dependenttrans =unrecog@*/
sb = NULL;
s = se = ftpBuf;
@@ -1198,34 +1211,34 @@
/*@switchbreak@*/ break;
case '\r':
/*@-dependenttrans@*/
- av[ac] = t;
+ av[ac].name = t;
/*@=dependenttrans@*/
if (sb == NULL) {
/*@-unrecog@*/
switch(*s) {
case 'p':
- dt[ac] = DT_FIFO;
+ av[ac].type = DT_FIFO;
/*@innerbreak@*/ break;
case 'c':
- dt[ac] = DT_CHR;
+ av[ac].type = DT_CHR;
/*@innerbreak@*/ break;
case 'd':
- dt[ac] = DT_DIR;
+ av[ac].type = DT_DIR;
/*@innerbreak@*/ break;
case 'b':
- dt[ac] = DT_BLK;
+ av[ac].type = DT_BLK;
/*@innerbreak@*/ break;
case '-':
- dt[ac] = DT_REG;
+ av[ac].type = DT_REG;
/*@innerbreak@*/ break;
case 'l':
- dt[ac] = DT_LNK;
+ av[ac].type = DT_LNK;
/*@innerbreak@*/ break;
case 's':
- dt[ac] = DT_SOCK;
+ av[ac].type = DT_SOCK;
/*@innerbreak@*/ break;
default:
- dt[ac] = DT_UNKNOWN;
+ av[ac].type = DT_UNKNOWN;
/*@innerbreak@*/ break;
}
/*@=unrecog@*/
@@ -1243,7 +1256,7 @@
/*@switchbreak@*/ break;
}
}
- av[ac] = NULL;
+ av[ac].name = NULL;
/*@-kepttrans@*/
return (DIR *) mydir;
@@ -1258,43 +1271,50 @@
{
FTPDIR mydir = (FTPDIR)dir;
struct dirent * dp;
- const char ** av;
- unsigned char * dt;
+ struct mydirstreament * av;
int ac;
int i;
/*@+voidabstract@*/
- if (mydir == NULL || !ISFTPMAGIC(mydir) || mydir->data == NULL) {
+ if (dir == NULL || !ISFTPMAGIC(dir)) {
/* XXX TODO: EBADF errno. */
return NULL;
}
/*@=voidabstract@*/
- dp = (struct dirent *) mydir->data;
- av = (const char **) (dp + 1);
+ dp = &mydir->ent;
+ av = &mydir->av[0];
ac = mydir->size;
- dt = (char *) (av + (ac + 1));
- i = mydir->offset + 1;
+ i = mydir->offset + 1;
/*@-boundsread@*/
- if (i < 0 || i >= ac || av[i] == NULL)
+ if (i < 0 || i >= ac || av[i].name == NULL)
return NULL;
/*@=boundsread@*/
mydir->offset = i;
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN)
+ dp->d_ino = i + 1;
+ dp->d_reclen = 0;
+ dp->d_type = av[i].type;
+ strncpy(dp->d_name, av[i].name, sizeof(dp->d_name) - 1);
+ dp->d_name[sizeof(dp->d_name)-1] = '\0';
+ dp->d_namlen = strlen(dp->d_name);
+#elif defined(OPENPKG_HPUX) || defined(sun) || defined(OPENPKG_UNIXWARE) || defined(__osf__) || defined(OPENPKG_IRIX64) || defined(OPENPKG_AIX)
+ /* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */
+ dp->d_ino = i + 1; /* W2DO? */
+ dp->d_reclen = 0; /* W2DO? */
+ strncpy(dp->d_name, av[i].name, sizeof(dp->d_name));
+#else
/* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */
dp->d_ino = i + 1; /* W2DO? */
dp->d_reclen = 0; /* W2DO? */
-
-#if !defined(hpux) && !defined(sun)
dp->d_off = 0; /* W2DO? */
-/*@-boundsread@*/
- dp->d_type = dt[i];
-/*@=boundsread@*/
+ dp->d_type = av[i].type;
+ strncpy(dp->d_name, av[i].name, sizeof(dp->d_name));
#endif
- strncpy(dp->d_name, av[i], sizeof(dp->d_name));
/*@+voidabstract@*/
if (_ftp_debug)
fprintf(stderr, "*** ftpReaddir(%p) %p \"%s\"\n", (void *)mydir, dp, dp->d_name);
@@ -1313,7 +1333,7 @@
/*@+voidabstract@*/
if (_ftp_debug)
fprintf(stderr, "*** ftpClosedir(%p)\n", (void *)mydir);
- if (mydir == NULL || !ISFTPMAGIC(mydir)) {
+ if (dir == NULL || !ISFTPMAGIC(dir)) {
/* XXX TODO: EBADF errno. */
return -1;
}
+---------------------------------------------------------------------------
| Remove inclusion of ancient (and since years deprecated)
| header. This especially makes sure RPM build does not break on
| strict platforms like FreeBSD 5.
+---------------------------------------------------------------------------
Index: system.h
--- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10
+++ system.h 8 Jun 2005 13:15:16 -0000 1.4
@@ -256,10 +256,6 @@
#include
#endif
-#if HAVE_MALLOC_H && !defined(__LCLINT__)
-#include
-#endif
-
/*@-declundef -incondefs @*/ /* FIX: these are macros */
/**
*/
+---------------------------------------------------------------------------
| Add support for BSD getmntinfo(3).
+---------------------------------------------------------------------------
Index: system.h
--- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10
+++ system.h 8 Jun 2005 13:15:16 -0000 1.4
@@ -550,7 +546,7 @@
#define lchown chown
#endif
-#if HAVE_GETMNTINFO_R || HAVE_MNTCTL
+#if HAVE_GETMNTINFO_R || HAVE_GETMNTINFO || HAVE_MNTCTL
# define GETMNTENT_ONE 0
# define GETMNTENT_TWO 0
# if HAVE_SYS_MNTCTL_H
+---------------------------------------------------------------------------
| Drop GCC "inline" attribute if not compiling with GCC.
+---------------------------------------------------------------------------
Index: system.h
--- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10
+++ system.h 8 Jun 2005 13:15:16 -0000 1.4
@@ -603,11 +599,24 @@
#if defined(__LCLINT__)
#define FILE_RCSID(id)
-#else
+#elif defined(__GNUC__)
#define FILE_RCSID(id) \
static inline const char *rcsid(const char *p) { \
return rcsid(p = id); \
}
+#else
+#define FILE_RCSID(id) \
+static const char *rcsid(const char *p) { \
+ return rcsid(p = id); \
+}
+#endif
+
+/* for basename(3) and dirname(3) */
+#if !defined(OPENPKG_AIX)
+#include
+#endif
+#if defined(OPENPKG_AIX)
+#define unsetenv(x) /* unsetenv() is used in RPM just for malloc debugging purposes */
#endif
#endif /* H_SYSTEM */
+---------------------------------------------------------------------------
| Remove GCC'ism.
+---------------------------------------------------------------------------
Index: build/rpmfile.h
--- build/rpmfile.h 24 Jan 2003 19:41:56 -0000 1.1.1.1
+++ build/rpmfile.h 22 Jan 2004 21:42:14 -0000 1.2
@@ -95,7 +95,11 @@
} value; /* either number or string */
uint32_t mask; /* mask before comparison with value */
char desc[MAXDESC]; /* description */
+#if defined(__GNUC__)
} __attribute__((__packed__));
+#else
+};
+#endif
#define BIT(A) (1 << (A))
#define STRING_IGNORE_LOWERCASE BIT(0)
+---------------------------------------------------------------------------
| Better portability for madvise(2) usage.
+---------------------------------------------------------------------------
Index: rpmdb/legacy.c
--- rpmdb/legacy.c 18 Dec 2002 22:40:19 -0000 1.1.1.4
+++ rpmdb/legacy.c 22 Jan 2004 21:42:30 -0000 1.2
@@ -182,7 +182,7 @@
break;
}
-#ifdef MADV_SEQUENTIAL
+#if defined(HAVE_MADVISE) && defined(MADV_SEQUENTIAL)
xx = madvise(mapped, fsize, MADV_SEQUENTIAL);
#endif
+---------------------------------------------------------------------------
| Better portability for madvise(2) usage.
+---------------------------------------------------------------------------
Index: lib/fsm.c
--- lib/fsm.c 3 Mar 2003 21:28:12 -0000 1.1.1.5
+++ lib/fsm.c 22 Jan 2004 21:42:23 -0000 1.2
@@ -879,7 +879,7 @@
rdbuf = fsm->rdbuf;
fsm->rdbuf = (char *) mapped;
fsm->rdlen = nmapped = st->st_size;
-#if defined(MADV_DONTNEED)
+#if defined(HAVE_MADVISE) && defined(MADV_DONTNEED)
xx = madvise(mapped, nmapped, MADV_DONTNEED);
#endif
}
@@ -909,7 +909,7 @@
#if HAVE_MMAP
if (mapped != (void *)-1) {
xx = msync(mapped, nmapped, MS_ASYNC);
-#if defined(MADV_DONTNEED)
+#if defined(HAVE_MADVISE) && defined(MADV_DONTNEED)
xx = madvise(mapped, nmapped, MADV_DONTNEED);
#endif
/*@-noeffect@*/ xx = munmap(mapped, nmapped) /*@=noeffect@*/;
+---------------------------------------------------------------------------
| Support UnixWare 7.1.3 and OpenDarwin 6.6.2, too.
+---------------------------------------------------------------------------
Index: aclocal.m4
--- aclocal.m4 16 Jul 2003 17:05:28 -0000 1.1.1.10
+++ aclocal.m4 6 Jun 2005 15:53:03 -0000 1.4
@@ -2838,7 +2838,7 @@
runpath_var=LD_RUN_PATH
;;
- sysv5uw7* | unixware7*)
+ sysv5uw7* | unixware7* | sysv5UnixWare7* )
no_undefined_flag='${wl}-z ${wl}text'
if test "$GCC" = yes; then
archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -4311,6 +4311,7 @@
;;
*) # Darwin 1.3 on
lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+ lt_cv_deplibs_check_method=pass_all
;;
esac
;;
@@ -4336,7 +4337,7 @@
;;
hpux10.20*|hpux11*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+ lt_cv_deplibs_check_method='pass_all'
lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=/usr/lib/libc.sl
;;
@@ -4375,11 +4376,7 @@
;;
netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$'
- fi
+ lt_cv_deplibs_check_method='pass_all'
;;
newos6*)
@@ -4414,7 +4411,7 @@
lt_cv_file_magic_test_file=/lib/libc.so
;;
-sysv5uw[[78]]* | sysv4*uw2*)
+sysv5uw[[78]]* | sysv4*uw2* | sysv5UnixWare7* )
lt_cv_deplibs_check_method=pass_all
;;
+---------------------------------------------------------------------------
| Use Linux i386 assembly specific stuff on Linux only.
+---------------------------------------------------------------------------
Index: rpmio/rpmsw.c
--- rpmio/rpmsw.c 5 Jun 2003 12:04:05 -0000 1.1.1.1
+++ rpmio/rpmsw.c 22 Jan 2004 21:42:33 -0000 1.2
@@ -27,7 +27,7 @@
/*@unchecked@*/
static int rpmsw_initialized = 0;
-#if defined(__i386__)
+#if defined(__linux__) && defined(__i386__)
/* Swiped from glibc-2.3.2 sysdeps/i386/i686/hp-timing.h */
#define HP_TIMING_ZERO(Var) (Var) = (0)
+---------------------------------------------------------------------------
| Fix "environ" declaration.
+---------------------------------------------------------------------------
Index: lib/signature.c
--- lib/signature.c 29 May 2003 18:42:23 -0000 1.1.1.23
+++ lib/signature.c 22 Jan 2004 21:42:25 -0000 1.2
@@ -27,7 +27,7 @@
/*@access pgpDigParams@*/
#if !defined(__GLIBC__)
-char ** environ = NULL;
+extern char ** environ;
#endif
int rpmLookupSignatureType(int action)
+---------------------------------------------------------------------------
| Rename own mergesort(3) implementation to avoid conflicts
| with a possibly existing vendor version.
+---------------------------------------------------------------------------
Index: rpmdb/merge.c
--- rpmdb/merge.c 22 Jun 2002 18:51:58 -0000 1.1.1.2
+++ rpmdb/merge.c 22 Jan 2004 21:42:30 -0000 1.2
@@ -204,7 +204,7 @@
* Arguments are as for qsort.
*/
int
-mergesort(void *base, size_t nmemb, size_t size,
+rpmdb_mergesort(void *base, size_t nmemb, size_t size,
int (*cmp) (const void *, const void *))
{
register int i, sense;
+---------------------------------------------------------------------------
| Rename own mergesort(3) implementation to avoid conflicts
| with a possibly existing vendor version.
+---------------------------------------------------------------------------
Index: rpmdb/rpmdb.h
--- rpmdb/rpmdb.h 18 Jan 2003 14:04:35 -0000 1.1.1.5
+++ rpmdb/rpmdb.h 22 Jan 2004 21:42:31 -0000 1.2
@@ -1080,7 +1080,7 @@
* Mergesort, same arguments as qsort(2).
*/
/*@unused@*/
-int mergesort(void *base, size_t nmemb, size_t size,
+int rpmdb_mergesort(void *base, size_t nmemb, size_t size,
int (*cmp) (const void *, const void *))
/*@globals errno @*/
/*@modifies base, errno @*/;
+---------------------------------------------------------------------------
| Rename own mergesort(3) implementation to avoid conflicts
| with a possibly existing vendor version.
+---------------------------------------------------------------------------
Index: rpmdb/rpmdb.c
--- rpmdb/rpmdb.c 2 Jul 2003 19:21:54 -0000 1.1.1.6
+++ rpmdb/rpmdb.c 22 Jan 2004 21:42:30 -0000 1.2
@@ -2361,7 +2361,7 @@
sizeof(*mi->mi_set->recs), hdrNumCmp);
/*@=boundsread@*/
#else
- mergesort(mi->mi_set->recs, mi->mi_set->count,
+ rpmdb_mergesort(mi->mi_set->recs, mi->mi_set->count,
sizeof(*mi->mi_set->recs), hdrNumCmp);
#endif
mi->mi_sorted = 1;
+---------------------------------------------------------------------------
| Workaround a double-inclusion problem under AIX.
+---------------------------------------------------------------------------
Index: lib/getdate.y
--- lib/getdate.y 24 Sep 2001 21:53:15 -0000 1.1.1.2
+++ lib/getdate.y 8 Jun 2005 13:16:22 -0000 1.2
@@ -30,7 +30,9 @@
#undef static
#endif
+#ifndef OPENPKG_AIX
#include
+#endif
#include
/* The code at the top of get_date which figures out the offset of the
+---------------------------------------------------------------------------
| Workaround a double-inclusion problem under AIX.
+---------------------------------------------------------------------------
Index: lib/getdate.c
--- lib/getdate.c 2 Jul 2003 19:21:45 -0000 1.1.1.4
+++ lib/getdate.c 8 Jun 2005 13:16:21 -0000 1.2
@@ -50,7 +50,9 @@
#undef static
#endif
+#ifndef OPENPKG_AIX
#include
+#endif
#include
/* The code at the top of get_date which figures out the offset of the