openpkg/rpm.patch.porting

Tue, 29 Mar 2011 19:46:35 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 29 Mar 2011 19:46:35 +0200
changeset 333
4ecfc2416fd8
parent 330
51aab9414a86
child 336
fa72b60f59c9
permissions
-rw-r--r--

Correct and introduce slightly needed logic, leading to better reliability:
Update bash(1) patch logic, correct several buildconf make location
errors, correct failed bash(1) configure invocation, enable perl(1) to
build with unpathed make(1), patch rpm(1) to correctly link with
internal libdb(3), and lastly unsuscessfully try to reorganize rpm patch
hunks.

michael@13 1 ##
michael@13 2 ## rpm.patch.porting -- Annotated OpenPKG RPM Patch file
michael@13 3 ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@13 4 ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/>
michael@13 5 ##
michael@13 6 ## This file assembles changes to existing RPM source files between
michael@13 7 ## the original RedHat RPM and the OpenPKG RPM variant. It can be
michael@13 8 ## automatically applied to a vanilla RedHat RPM source tree with the
michael@13 9 ## 'patch' tool to upgrade those files. Each patch snippet is annotated
michael@13 10 ## with a short description.
michael@13 11 ##
michael@13 12 ## Created on: 13-Sep-2006
michael@13 13 ##
michael@13 14 ## ATTENTION: THIS PATCH FILE WAS AUTO-GENERATED FROM AN OPENPKG
michael@13 15 ## RPM CVS REPOSITORY, HENCE DO NOT EDIT THIS FILE.
michael@13 16 ##
michael@13 17
michael@13 18 +---------------------------------------------------------------------------
michael@13 19 | Evil hack to get GNU libtool working under NetBSD 1.6
michael@13 20 | with the ugly way RPM currently has to use it.
michael@13 21 +---------------------------------------------------------------------------
michael@13 22 Index: ltconfig
michael@13 23 --- ltconfig 17 Jan 2001 16:22:58 -0000 1.1.1.7
michael@13 24 +++ ltconfig 29 Apr 2004 13:07:28 -0000 1.4
michael@13 25 @@ -2017,6 +2017,7 @@
michael@13 26 dynamic_linker='NetBSD ld.elf_so'
michael@13 27 fi
michael@13 28 shlibpath_var=LD_LIBRARY_PATH
michael@13 29 + deplibs_check_method=pass_all
michael@13 30 ;;
michael@13 31
michael@13 32 openbsd*)
michael@13 33
michael@13 34 +---------------------------------------------------------------------------
michael@13 35 | Disable special RedHat NPTL handling.
michael@13 36 +---------------------------------------------------------------------------
michael@13 37 Index: configure.ac
michael@13 38 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
michael@13 39 +++ configure.ac 13 Sep 2006 13:40:20 -0000
michael@333 40 @@ -151,10 +151,10 @@
michael@13 41 dnl XXX Test for libpthread.a that is NPTL aware (static link only).
michael@13 42 dnl
michael@13 43 LDFLAGS_NPTL=
michael@13 44 -if test -f /usr/lib/nptl/libpthread.a ; then
michael@13 45 - LDFLAGS_NPTL="-L/usr/lib/nptl"
michael@13 46 -# INCPATH="$INCPATH -I/usr/include/nptl"
michael@13 47 -fi
michael@13 48 +dnl if test -f /usr/lib/nptl/libpthread.a ; then
michael@13 49 +dnl LDFLAGS_NPTL="-L/usr/lib/nptl"
michael@13 50 +dnl # INCPATH="$INCPATH -I/usr/include/nptl"
michael@13 51 +dnl fi
michael@13 52 AC_SUBST(LDFLAGS_NPTL)
michael@13 53
michael@13 54 dnl
michael@13 55
michael@13 56 +---------------------------------------------------------------------------
michael@13 57 | Disable any POSIX Pthread stuff because in OpenPKG we use
michael@13 58 | non-Pthread mutexes in Berkeley-DB.
michael@13 59 +---------------------------------------------------------------------------
michael@13 60 Index: configure.ac
michael@13 61 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
michael@13 62 +++ configure.ac 13 Sep 2006 13:40:21 -0000
michael@333 63 @@ -447,14 +447,17 @@
michael@13 64 AC_CHECK_LIB(socket, socket)
michael@13 65 ])
michael@13 66
michael@13 67 -AC_CHECK_HEADERS(thread.h pthread.h synch.h semaphore.h)
michael@13 68 +dnl # required for HP-UX because of RPC stuff in DB
michael@13 69 +AC_CHECK_LIB(nsl, svc_run)
michael@13 70
michael@13 71 -AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
michael@13 72 - dnl OSF 5.0 has the the symbols prefixed with __ in libpthread.
michael@13 73 - AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [
michael@13 74 - AC_CHECK_LIB(thread, mutex_lock)
michael@13 75 - ])
michael@13 76 -])
michael@13 77 +dnl AC_CHECK_HEADERS(thread.h pthread.h synch.h semaphore.h)
michael@13 78 +dnl
michael@13 79 +dnl AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
michael@13 80 +dnl dnl OSF 5.0 has the the symbols prefixed with __ in libpthread.
michael@13 81 +dnl AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [
michael@13 82 +dnl AC_CHECK_LIB(thread, mutex_lock)
michael@13 83 +dnl ])
michael@13 84 +dnl ])
michael@13 85
michael@13 86 AC_CHECK_HEADERS(aio.h)
michael@13 87 AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
michael@13 88
michael@13 89 +---------------------------------------------------------------------------
michael@13 90 | Add support for BSD getmntinfo(3).
michael@13 91 +---------------------------------------------------------------------------
michael@13 92 Index: configure.ac
michael@13 93 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
michael@13 94 +++ configure.ac 13 Sep 2006 13:40:23 -0000
michael@333 95 @@ -964,12 +967,13 @@
michael@13 96 AC_CHECK_FUNCS(getpassphrase)
michael@13 97
michael@13 98 AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT, 1, [Define if you have the getmntent() function]), [
michael@13 99 + AC_CHECK_FUNC(getmntinfo, AC_DEFINE(HAVE_GETMNTINFO, 1, [Define as 1 if you have the getmntinfo() function]), [
michael@13 100 AC_CHECK_FUNC(mntctl, AC_DEFINE(HAVE_MNTCTL, 1, [Define as 1 if you have mntctl() (only aix?)]),[
michael@13 101 AC_CHECK_FUNC(getmntinfo_r, AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)]), [
michael@13 102 AC_CHECK_LIB(c_r, getmntinfo_r, [LIBS="$LIBS -lc_r";
michael@13 103 AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)])], [
michael@13 104 AC_DEFINE([USE_GETMNTENT], 1, [Defined if getmntent replacement is used])
michael@13 105 - AC_LIBOBJ(getmntent)])])])])
michael@13 106 + AC_LIBOBJ(getmntent)])])])])])
michael@13 107
michael@13 108 AC_CHECK_FUNC(lchown,
michael@13 109 [__CHOWN_RHF="%{__chown} -Rhf"
michael@13 110
michael@13 111 +---------------------------------------------------------------------------
michael@13 112 | Remove RPM's "lib64" hack because we do not install
michael@13 113 | into any system locations at all.
michael@13 114 +---------------------------------------------------------------------------
michael@13 115 Index: configure.ac
michael@13 116 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
michael@13 117 +++ configure.ac 13 Sep 2006 13:40:25 -0000
michael@333 118 @@ -1142,9 +1146,6 @@
michael@13 119
michael@13 120 dnl XXX Choose /usr/lib or /usr/lib64 for library installs.
michael@13 121 MARK64=
michael@13 122 -case "${target_cpu}" in
michael@13 123 -x86_64*|ppc64*|powerpc64*|sparc64*|s390x*) MARK64=64 ;;
michael@13 124 -esac
michael@13 125 AC_SUBST(MARK64)
michael@13 126
michael@13 127 dnl Determine the canonical arch-vendor-os for the build machine
michael@13 128
michael@13 129 +---------------------------------------------------------------------------
michael@13 130 | Provide fallback definitions for uintX_t stuff, which is used by
michael@13 131 | build/rpmfile.h and not available on all platforms. We do this by
michael@13 132 | adding the same Autoconf checks file/configure already used for its
michael@13 133 | original file.h.
michael@13 134 | Additionally, do not try to configure in an internal
michael@13 135 | beecrypt subdirectory.
michael@13 136 +---------------------------------------------------------------------------
michael@13 137 Index: configure.ac
michael@13 138 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
michael@13 139 +++ configure.ac 13 Sep 2006 13:40:29 -0000
michael@333 140 @@ -1250,11 +1251,40 @@
michael@13 141
michael@13 142 AC_SUBST(OBJDUMP)
michael@13 143
michael@13 144 +dnl OpenPKG: rpmfile.h (used in RPM) from file(1) needs additional checks
michael@13 145 +dnl for its use of uintXX_t (which are available in file/config.h, but which
michael@13 146 +dnl we cannot include into RPM because of conflicts with RPM's config.h)
michael@13 147 +AC_DEFUN([AC_CHECK_TYPE_STDC],
michael@13 148 +[AC_REQUIRE([AC_HEADER_STDC])dnl
michael@13 149 +AC_MSG_CHECKING(for $1)
michael@13 150 +AC_CACHE_VAL(ac_cv_type_$1,
michael@13 151 +[AC_EGREP_CPP(dnl
michael@13 152 +[(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]],
michael@13 153 +[#if HAVE_STDINT_H
michael@13 154 +#include <stdint.h>
michael@13 155 +#endif
michael@13 156 +#include <sys/types.h>
michael@13 157 +#if STDC_HEADERS
michael@13 158 +#include <stdlib.h>
michael@13 159 +#include <stddef.h>
michael@13 160 +#endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
michael@13 161 +AC_MSG_RESULT($ac_cv_type_$1)
michael@13 162 +if test $ac_cv_type_$1 = no; then
michael@13 163 + AC_DEFINE($1, $2, $1)
michael@13 164 +fi])
michael@13 165 +AC_CHECK_TYPE_STDC(uint8_t, unsigned char)
michael@13 166 +AC_CHECK_TYPE_STDC(uint16_t, unsigned short)
michael@13 167 +AC_CHECK_TYPE_STDC(uint32_t, unsigned int)
michael@13 168 +
michael@13 169 +dnl OpenPKG: some strange platforms (like Unixware) really have MADV_XXX
michael@13 170 +dnl but no madvise(2) function itself, so check for madvise explicitly.
michael@13 171 +AC_CHECK_FUNC(madvise)
michael@13 172 +
michael@13 173 dnl XXX this causes popt to depend on zlib et al
michael@13 174 dnl # XXX Propagate -lucb to popt ...
michael@13 175 dnl export LIBS INCPATH CONFIG_SITE
michael@13 176
michael@13 177 -AC_CONFIG_SUBDIRS(popt beecrypt zlib elfutils file db3)
michael@13 178 +AC_CONFIG_SUBDIRS(popt zlib elfutils file db3)
michael@13 179
michael@13 180 AC_OUTPUT([ Doxyfile Makefile rpmrc macros platform rpmpopt rpm.spec
michael@13 181 rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile
michael@13 182
michael@13 183 +---------------------------------------------------------------------------
michael@13 184 | Remove RPM's "lib64" hack because we do not install
michael@13 185 | into any system locations at all.
michael@13 186 +---------------------------------------------------------------------------
michael@13 187 Index: popt/configure.ac
michael@13 188 --- popt/configure.ac 27 Mar 2003 17:23:18 -0000 1.1.1.3
michael@13 189 +++ popt/configure.ac 12 May 2004 14:34:35 -0000 1.2
michael@13 190 @@ -53,9 +53,6 @@
michael@13 191
michael@13 192 dnl XXX Choose /usr/lib or /usr/lib64 for library installs.
michael@13 193 MARK64=
michael@13 194 -case "${target_cpu}" in
michael@13 195 -x86_64*|powerpc64*|ppc64*|sparc64*|s390x*) MARK64=64 ;;
michael@13 196 -esac
michael@13 197 AC_SUBST(MARK64)
michael@13 198
michael@13 199 AC_CHECK_HEADERS(alloca.h float.h libintl.h mcheck.h unistd.h)
michael@13 200
michael@13 201 +---------------------------------------------------------------------------
michael@13 202 | Prevent (at least NetBSD's) gcc 2.95 from optimizing (at least sha1.c)
michael@13 203 | and this way run into a resource (virtual memory) exhaustion situation.
michael@13 204 | Not all Bourne-Shells support embedded TAB characters in
michael@13 205 | here-document style constructs. Insert the TAB character indirectly
michael@13 206 | to workaround problems.
michael@13 207 | Additionally, there is no need to build a shared library version of
michael@13 208 | Berkeley-DB.
michael@13 209 | Finally, enforce the use of the standard UNIX/fcntl mutex type for
michael@13 210 | full portability and to get rid of Pthread library dependencies
michael@13 211 | (which especially are nasty for the external RPM API users).
michael@13 212 +---------------------------------------------------------------------------
michael@13 213 Index: db3/configure
michael@13 214 --- db3/configure 18 Jan 2003 14:04:22 -0000 1.1.1.4
michael@13 215 +++ db3/configure 6 Jun 2005 15:53:05 -0000 1.3
michael@13 216 @@ -7,19 +7,29 @@
michael@13 217 # XXX edit CFLAGS= ... out of invocation args ???
michael@13 218 ARGS="`echo $* | sed -e 's% [^ ]*CFLAGS=[^ ]*%%' -e 's% -[^-][^ ]*%%g' -e 's%--cache-file=.*$%%'`"
michael@13 219
michael@13 220 +# prevent gcc 2.95 from optimizing (at least sha1.c)
michael@13 221 +# and this way get into a resource exhaustion situation
michael@13 222 +if [ ".`($CC -v; $CC --version) </dev/null 2>&1 | grep -i 'gcc'`" != . ]; then
michael@13 223 + case "`$CC -dumpversion 2>/dev/null`" in
michael@13 224 + 3.* ) ;;
michael@13 225 + * ) CFLAGS=`echo " $CFLAGS -O0" | sed -e 's; -O[0-9]* ; ;g' -e 's;^ *;;'` ;;
michael@13 226 + esac
michael@13 227 +fi
michael@13 228 +
michael@13 229 CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure $ARGS \
michael@13 230 - --enable-shared --enable-static --enable-rpc \
michael@13 231 - --with-uniquename=_rpmdb --srcdir=$db_dist
michael@13 232 + --disable-shared --enable-static --enable-rpc \
michael@13 233 + --with-uniquename=_rpmdb --srcdir=$db_dist \
michael@13 234 + --with-mutex="UNIX/fcntl" --disable-largefile
michael@13 235
michael@13 236 mv Makefile Makefile.orig
michael@13 237 cat Makefile.orig | sed -e '/^install[:-]/c\
michael@13 238 .PHONY: listobjs\
michael@13 239 listobjs:\
michael@13 240 - @echo $(OBJS) $(C_OBJS) \
michael@13 241 +~@echo $(OBJS) $(C_OBJS) \
michael@13 242 \
michael@13 243 distdir install check:\
michael@13 244 \
michael@13 245 -db4_install: all install_setip' > Makefile
michael@13 246 +db4_install: all install_setip' | tr '~' ' ' > Makefile
michael@13 247
michael@13 248 mv db.h db.h.orig
michael@13 249 cat db.h.orig | sed \
michael@13 250
michael@13 251 +---------------------------------------------------------------------------
michael@13 252 | Add support for BSD getmntinfo(3).
michael@13 253 +---------------------------------------------------------------------------
michael@13 254 Index: lib/fs.c
michael@13 255 --- lib/fs.c 4 Jun 2003 18:09:43 -0000 1.1.1.13
michael@13 256 +++ lib/fs.c 25 Nov 2004 09:32:16 -0000 1.3
michael@13 257 @@ -164,6 +164,15 @@
michael@13 258 int nextMount = 0;
michael@13 259
michael@13 260 getmntinfo_r(&mounts, flags, &mntCount, &bufSize);
michael@13 261 +# elif HAVE_GETMNTINFO
michael@13 262 +# if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)
michael@13 263 +# define statfs statvfs
michael@13 264 +# endif
michael@13 265 + struct statfs * mounts = NULL;
michael@13 266 + int mntCount, flags = MNT_NOWAIT;
michael@13 267 + int nextMount = 0;
michael@13 268 +
michael@13 269 + mntCount = getmntinfo(&mounts, flags);
michael@13 270 # endif
michael@13 271
michael@13 272 filesystems = xcalloc((numAlloced + 1), sizeof(*filesystems)); /* XXX memory leak */
michael@13 273 @@ -193,6 +202,9 @@
michael@13 274 # elif HAVE_GETMNTINFO_R
michael@13 275 if (nextMount == mntCount) break;
michael@13 276 mntdir = mounts[nextMount++].f_mntonname;
michael@13 277 +# elif HAVE_GETMNTINFO
michael@13 278 + if (nextMount == mntCount) break;
michael@13 279 + mntdir = mounts[nextMount++].f_mntonname;
michael@13 280 # endif
michael@13 281
michael@13 282 if (stat(mntdir, &sb)) {
michael@13 283
michael@13 284 +---------------------------------------------------------------------------
michael@13 285 | Add support for Compaq/HP OSF1/Tru64.
michael@13 286 +---------------------------------------------------------------------------
michael@13 287 Index: misc/fnmatch.h
michael@13 288 --- misc/fnmatch.h 22 Feb 2002 17:12:15 -0000 1.1.1.3
michael@13 289 +++ misc/fnmatch.h 22 Jan 2004 21:42:26 -0000 1.2
michael@13 290 @@ -55,7 +55,7 @@
michael@13 291 #define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
michael@13 292 #define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
michael@13 293
michael@13 294 -#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
michael@13 295 +#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE || defined __osf__
michael@13 296 # define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
michael@13 297 # define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
michael@13 298 # define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
michael@13 299
michael@13 300 +---------------------------------------------------------------------------
michael@13 301 | Use more correct Autoconf based size_t check.
michael@13 302 | Add support for Compaq/HP OSF1/Tru64 and SCO UnixWare.
michael@13 303 +---------------------------------------------------------------------------
michael@13 304 Index: misc/glob.h
michael@13 305 --- misc/glob.h 11 Mar 2000 20:59:30 -0000 1.1.1.3
michael@13 306 +++ misc/glob.h 22 Jan 2004 21:42:27 -0000 1.2
michael@13 307 @@ -46,7 +46,7 @@
michael@13 308 #endif /* C++ or ANSI C. */
michael@13 309
michael@13 310 /* We need `size_t' for the following definitions. */
michael@13 311 -#ifndef __size_t
michael@13 312 +#if !defined(__size_t) && !defined(_SIZE_T_DECLARED)
michael@13 313 # if defined __GNUC__ && __GNUC__ >= 2
michael@13 314 typedef __SIZE_TYPE__ __size_t;
michael@13 315 # ifdef _XOPEN_SOURCE
michael@13 316 @@ -74,7 +74,7 @@
michael@13 317 #define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */
michael@13 318
michael@13 319 #if (!defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _BSD_SOURCE \
michael@13 320 - || defined _GNU_SOURCE)
michael@13 321 + || defined _GNU_SOURCE || defined __osf__ )
michael@13 322 # define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */
michael@13 323 # define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */
michael@13 324 # define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */
michael@13 325 @@ -151,7 +151,8 @@
michael@13 326 `glob' returns GLOB_ABEND; if it returns zero, the error is ignored.
michael@13 327 If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
michael@13 328 Otherwise, `glob' returns zero. */
michael@13 329 -#if _FILE_OFFSET_BITS != 64
michael@13 330 +/* #if _FILE_OFFSET_BITS != 64 || defined(OPENPKG_UNIXWARE) */
michael@13 331 +#if !defined(__linux__)
michael@13 332 extern int glob __P ((__const char *__pattern, int __flags,
michael@13 333 int (*__errfunc) (__const char *, int),
michael@13 334 glob_t *__pglob));
michael@13 335
michael@13 336 +---------------------------------------------------------------------------
michael@13 337 | Better portability.
michael@13 338 +---------------------------------------------------------------------------
michael@13 339 Index: misc/glob.c
michael@13 340 --- misc/glob.c 11 Mar 2000 21:13:18 -0000 1.1.1.4
michael@13 341 +++ misc/glob.c 22 Jan 2004 21:42:26 -0000 1.2
michael@13 342 @@ -813,6 +813,7 @@
michael@13 343
michael@13 344
michael@13 345 /* Free storage allocated in PGLOB by a previous `glob' call. */
michael@13 346 +#if !defined(__linux__) || (defined(__linux__) && (_FILE_OFFSET_BITS != 64) || (__GNUC__ >= 2))
michael@13 347 void
michael@13 348 globfree (pglob)
michael@13 349 register glob_t *pglob;
michael@13 350 @@ -826,7 +827,7 @@
michael@13 351 free ((__ptr_t) pglob->gl_pathv);
michael@13 352 }
michael@13 353 }
michael@13 354 -
michael@13 355 +#endif
michael@13 356
michael@13 357 /* Do a collated comparison of A and B. */
michael@13 358 static int
michael@13 359
michael@13 360 +---------------------------------------------------------------------------
michael@13 361 | Add libmisc.a for platform portability.
michael@13 362 +---------------------------------------------------------------------------
michael@13 363 Index: tools/Makefile.am
michael@13 364 --- tools/Makefile.am 29 May 2003 17:40:17 -0000 1.1.1.14
michael@13 365 +++ tools/Makefile.am 22 Jan 2004 21:42:34 -0000 1.2
michael@13 366 @@ -22,7 +22,7 @@
michael@13 367
michael@13 368 LDADD = \
michael@13 369 $(top_builddir)/lib/librpm.la \
michael@13 370 - @INTLLIBS@
michael@13 371 + @INTLLIBS@ @LIBMISC@
michael@13 372
michael@13 373 staticLDFLAGS = @LDFLAGS_STATIC@ @LDFLAGS_NPTL@
michael@13 374
michael@13 375
michael@13 376 +---------------------------------------------------------------------------
michael@13 377 | Add libmisc.a for platform portability.
michael@13 378 +---------------------------------------------------------------------------
michael@13 379 Index: tools/Makefile.in
michael@13 380 --- tools/Makefile.in 16 Jul 2003 17:05:51 -0000 1.1.1.20
michael@13 381 +++ tools/Makefile.in 22 Jan 2004 21:42:35 -0000 1.2
michael@13 382 @@ -275,7 +275,7 @@
michael@13 383
michael@13 384 LDADD = \
michael@13 385 $(top_builddir)/lib/librpm.la \
michael@13 386 - @INTLLIBS@
michael@13 387 + @INTLLIBS@ @LIBMISC@
michael@13 388
michael@13 389
michael@13 390 staticLDFLAGS = @LDFLAGS_STATIC@ @LDFLAGS_NPTL@
michael@13 391
michael@13 392 +---------------------------------------------------------------------------
michael@13 393 | Drop GCC "inline" attribute if not compiling with GCC.
michael@13 394 | Workaround some other GCC'isms, too.
michael@13 395 | Do not take over "const" replacements from Zlib.
michael@13 396 +---------------------------------------------------------------------------
michael@13 397 Index: file/system.h
michael@13 398 --- file/system.h 24 Jan 2003 19:41:56 -0000 1.1.1.1
michael@13 399 +++ file/system.h 6 Jun 2005 15:53:05 -0000 1.4
michael@13 400 @@ -13,6 +13,9 @@
michael@13 401 #endif
michael@13 402
michael@13 403 #include <sys/types.h>
michael@13 404 +#ifdef HAVE_INTTYPES_H
michael@13 405 +#include <inttypes.h>
michael@13 406 +#endif
michael@13 407
michael@13 408 #include <sys/stat.h>
michael@13 409 #include <stdio.h>
michael@13 410 @@ -53,6 +56,8 @@
michael@13 411 #else
michael@13 412 #if HAVE_ERROR && HAVE_ERROR_H
michael@13 413 #include <error.h>
michael@13 414 +#else
michael@13 415 +extern void error(int status, int errnum, const char *format, ...);
michael@13 416 #endif
michael@13 417 #endif
michael@13 418
michael@13 419 @@ -194,6 +199,7 @@
michael@13 420
michael@13 421 #ifdef HAVE_LIBZ
michael@13 422 #include <zlib.h>
michael@13 423 +#undef const
michael@13 424 #endif
michael@13 425
michael@13 426 #ifndef HAVE_STRERROR
michael@13 427 @@ -246,7 +252,11 @@
michael@13 428 */
michael@13 429 /*@-shadow@*/
michael@13 430 /*@unused@*/ /*@exits@*/ /*@only@*/
michael@13 431 +#if defined(__GNUC__)
michael@13 432 static inline void * vmefail(/*@unused@*/ size_t nb)
michael@13 433 +#else
michael@13 434 +static void * vmefail(/*@unused@*/ size_t nb)
michael@13 435 +#endif
michael@13 436 /*@globals fileSystem @*/
michael@13 437 /*@modifies fileSystem @*/
michael@13 438 {
michael@13 439 @@ -286,9 +296,33 @@
michael@13 440
michael@13 441 #if !defined(__LCLINT__)
michael@13 442 /* Memory allocation via macro defs to get meaningful locations from mtrace() */
michael@13 443 +#if defined(__GNUC__)
michael@13 444 #define xmalloc(_size) (malloc(_size) ? : vmefail(0))
michael@13 445 #define xcalloc(_nmemb, _size) (calloc((_nmemb), (_size)) ? : vmefail(0))
michael@13 446 #define xrealloc(_ptr, _size) (realloc((_ptr), (_size)) ? : vmefail(0))
michael@13 447 +#else
michael@13 448 +static void *xmalloc(size_t size)
michael@13 449 +{
michael@13 450 + void *vp = malloc(size);
michael@13 451 + if (vp == NULL)
michael@13 452 + vmefail(0);
michael@13 453 + return vp;
michael@13 454 +}
michael@13 455 +static void *xcalloc(size_t number, size_t size)
michael@13 456 +{
michael@13 457 + void *vp = calloc(number, size);
michael@13 458 + if (vp == NULL)
michael@13 459 + vmefail(0);
michael@13 460 + return vp;
michael@13 461 +}
michael@13 462 +static void *xrealloc(void *ptr, size_t size)
michael@13 463 +{
michael@13 464 + void *vp = realloc(ptr, size);
michael@13 465 + if (vp == NULL)
michael@13 466 + vmefail(0);
michael@13 467 + return vp;
michael@13 468 +}
michael@13 469 +#endif
michael@13 470 #define xstrdup(_str) (strcpy(xmalloc(strlen(_str)+1), (_str)))
michael@13 471 #endif
michael@13 472
michael@13 473 @@ -314,9 +348,14 @@
michael@13 474
michael@13 475 #if defined(__LCLINT__)
michael@13 476 #define FILE_RCSID(id)
michael@13 477 -#else
michael@13 478 +#elif defined(__GNUC__)
michael@13 479 #define FILE_RCSID(id) \
michael@13 480 static inline const char *rcsid(const char *p) { \
michael@13 481 + return rcsid(p = id); \
michael@13 482 +}
michael@13 483 +#else
michael@13 484 +#define FILE_RCSID(id) \
michael@13 485 +static const char *rcsid(const char *p) { \
michael@13 486 return rcsid(p = id); \
michael@13 487 }
michael@13 488 #endif
michael@13 489
michael@13 490 +---------------------------------------------------------------------------
michael@13 491 | Use GCC extensional features only if compiled with GCC.
michael@13 492 +---------------------------------------------------------------------------
michael@13 493 Index: file/file.h
michael@13 494 --- file/file.h 24 Jan 2003 19:41:56 -0000 1.1.1.1
michael@13 495 +++ file/file.h 22 Jan 2004 21:42:22 -0000 1.2
michael@13 496 @@ -95,7 +95,11 @@
michael@13 497 } value; /* either number or string */
michael@13 498 uint32_t mask; /* mask before comparison with value */
michael@13 499 char desc[MAXDESC]; /* description */
michael@13 500 +#if defined(__GNUC__)
michael@13 501 } __attribute__((__packed__));
michael@13 502 +#else
michael@13 503 +};
michael@13 504 +#endif
michael@13 505
michael@13 506 #define BIT(A) (1 << (A))
michael@13 507 #define STRING_IGNORE_LOWERCASE BIT(0)
michael@13 508
michael@13 509 +---------------------------------------------------------------------------
michael@13 510 | Add int32_t detection and automatic fallback support.
michael@13 511 +---------------------------------------------------------------------------
michael@13 512 Index: file/config.h.in
michael@13 513 --- file/config.h.in 7 Mar 2003 19:39:18 -0000 1.1.1.1
michael@13 514 +++ file/config.h.in 13 Sep 2006 13:40:49 -0000
michael@13 515 @@ -106,6 +106,9 @@
michael@13 516 /* Define to 1 if you have the <unistd.h> header file. */
michael@13 517 #undef HAVE_UNISTD_H
michael@13 518
michael@13 519 +/* Define to 1 if you have the `vsnprintf' function. */
michael@13 520 +#undef HAVE_VSNPRINTF
michael@13 521 +
michael@13 522 /* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
michael@13 523 */
michael@13 524 #undef MAJOR_IN_MKDEV
michael@13 525 @@ -162,12 +165,16 @@
michael@13 526 /* Define to empty if `const' does not conform to ANSI C. */
michael@13 527 #undef const
michael@13 528
michael@13 529 +/* int32_t */
michael@13 530 +#undef int32_t
michael@13 531 +
michael@13 532 /* Define to `long' if <sys/types.h> does not define. */
michael@13 533 #undef off_t
michael@13 534
michael@13 535 /* Define to `unsigned' if <sys/types.h> does not define. */
michael@13 536 #undef size_t
michael@13 537
michael@13 538 +#ifndef HAVE_STDINT_H
michael@13 539 /* uint16_t */
michael@13 540 #undef uint16_t
michael@13 541
michael@13 542 @@ -179,3 +186,4 @@
michael@13 543
michael@13 544 /* uint8_t */
michael@13 545 #undef uint8_t
michael@13 546 +#endif
michael@13 547
michael@13 548 +---------------------------------------------------------------------------
michael@13 549 | Add int32_t detection and automatic fallback support.
michael@13 550 +---------------------------------------------------------------------------
michael@13 551 Index: file/configure.ac
michael@13 552 --- file/configure.ac 1 Dec 2002 21:34:06 -0000 1.1.1.1
michael@13 553 +++ file/configure.ac 6 Jun 2005 15:53:05 -0000 1.2
michael@13 554 @@ -92,6 +92,7 @@
michael@13 555 AC_CHECK_TYPE_STDC(uint8_t, unsigned char)
michael@13 556 AC_CHECK_TYPE_STDC(uint16_t, unsigned short)
michael@13 557 AC_CHECK_TYPE_STDC(uint32_t, unsigned int)
michael@13 558 +AC_CHECK_TYPE_STDC(int32_t, int)
michael@13 559 AC_C_LONG_LONG
michael@13 560 if test $ac_cv_c_long_long = yes; then
michael@13 561 long64='unsigned long long';
michael@13 562 @@ -107,7 +108,7 @@
michael@13 563 AC_CHECK_SIZEOF_STDC_HEADERS(uint64_t, 0)
michael@13 564
michael@13 565 dnl Checks for functions
michael@13 566 -AC_CHECK_FUNCS(error mtrace mkstemp mmap strdup strerror strtoul)
michael@13 567 +AC_CHECK_FUNCS(error mtrace mkstemp mmap strdup strerror strtoul vsnprintf)
michael@13 568
michael@13 569 dnl Checks for libraries
michael@13 570 AC_CHECK_LIB(z, gzopen)
michael@13 571
michael@13 572 +---------------------------------------------------------------------------
michael@13 573 | Add int32_t detection and automatic fallback support.
michael@13 574 +---------------------------------------------------------------------------
michael@13 575 Index: file/configure
michael@13 576 --- file/configure 16 Jul 2003 17:05:25 -0000 1.1.1.2
michael@13 577 +++ file/configure 6 Jun 2005 15:53:05 -0000 1.2
michael@13 578 @@ -10847,6 +10847,46 @@
michael@13 579
michael@13 580 fi
michael@13 581
michael@13 582 +echo "$as_me:$LINENO: checking for int32_t" >&5
michael@13 583 +echo $ECHO_N "checking for int32_t... $ECHO_C" >&6
michael@13 584 +if test "${ac_cv_type_int32_t+set}" = set; then
michael@13 585 + echo $ECHO_N "(cached) $ECHO_C" >&6
michael@13 586 +else
michael@13 587 + cat >conftest.$ac_ext <<_ACEOF
michael@13 588 +#line $LINENO "configure"
michael@13 589 +/* confdefs.h. */
michael@13 590 +_ACEOF
michael@13 591 +cat confdefs.h >>conftest.$ac_ext
michael@13 592 +cat >>conftest.$ac_ext <<_ACEOF
michael@13 593 +/* end confdefs.h. */
michael@13 594 +#if HAVE_STDINT_H
michael@13 595 +#include <stdint.h>
michael@13 596 +#endif
michael@13 597 +#include <sys/types.h>
michael@13 598 +#if STDC_HEADERS
michael@13 599 +#include <stdlib.h>
michael@13 600 +#include <stddef.h>
michael@13 601 +#endif
michael@13 602 +_ACEOF
michael@13 603 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
michael@13 604 + $EGREP "(^|[^a-zA-Z_0-9])int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
michael@13 605 + ac_cv_type_int32_t=yes
michael@13 606 +else
michael@13 607 + ac_cv_type_int32_t=no
michael@13 608 +fi
michael@13 609 +rm -f conftest*
michael@13 610 +
michael@13 611 +fi
michael@13 612 +echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5
michael@13 613 +echo "${ECHO_T}$ac_cv_type_int32_t" >&6
michael@13 614 +if test $ac_cv_type_int32_t = no; then
michael@13 615 +
michael@13 616 +cat >>confdefs.h <<\_ACEOF
michael@13 617 +#define int32_t int
michael@13 618 +_ACEOF
michael@13 619 +
michael@13 620 +fi
michael@13 621 +
michael@13 622 echo "$as_me:$LINENO: checking for long long" >&5
michael@13 623 echo $ECHO_N "checking for long long... $ECHO_C" >&6
michael@13 624 if test "${ac_cv_c_long_long+set}" = set; then
michael@13 625 @@ -11220,7 +11260,8 @@
michael@13 626
michael@13 627
michael@13 628
michael@13 629 -for ac_func in error mtrace mkstemp mmap strdup strerror strtoul
michael@13 630 +
michael@13 631 +for ac_func in error mtrace mkstemp mmap strdup strerror strtoul vsnprintf
michael@13 632 do
michael@13 633 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
michael@13 634 echo "$as_me:$LINENO: checking for $ac_func" >&5
michael@13 635
michael@13 636 +---------------------------------------------------------------------------
michael@13 637 | Fallback to vsprintf(3) if vsnprintf(3) does not exist.
michael@13 638 +---------------------------------------------------------------------------
michael@13 639 Index: file/print.c
michael@13 640 --- file/print.c 24 Jan 2003 19:41:56 -0000 1.1.1.1
michael@13 641 +++ file/print.c 6 Jun 2005 15:53:05 -0000 1.2
michael@13 642 @@ -187,7 +187,11 @@
michael@13 643
michael@13 644 va_start(va, f);
michael@13 645 /*@-boundswrite@*/
michael@13 646 +#ifdef HAVE_VSNPRINTF
michael@13 647 rc = vsnprintf(fm->obp, fm->nob, f, va);
michael@13 648 +#else
michael@13 649 + rc = vsprintf(fm->obp, f, va);
michael@13 650 +#endif
michael@13 651 /*@=boundswrite@*/
michael@13 652 va_end(va);
michael@13 653
michael@13 654
michael@13 655 +---------------------------------------------------------------------------
michael@13 656 | Use GNU libtool's weaker -static (link with own static libraries)
michael@13 657 | instead of the strong -all-static (link even with static libc, etc),
michael@13 658 | because OpenPKG does not need to be fully static.
michael@13 659 +---------------------------------------------------------------------------
michael@13 660 Index: rpmdb/Makefile.am
michael@13 661 --- rpmdb/Makefile.am 2 Jul 2003 20:14:07 -0000 1.1.1.7
michael@13 662 +++ rpmdb/Makefile.am 22 Jan 2004 21:42:29 -0000 1.2
michael@13 663 @@ -18,7 +18,7 @@
michael@13 664 EXTRA_PROGRAMS = tjfn
michael@13 665
michael@13 666 tjfn_SOURCES = tjfn.c
michael@13 667 -tjfn_LDFLAGS = -all-static
michael@13 668 +tjfn_LDFLAGS = -static
michael@13 669 tjfn_LDADD = librpmdb.la
michael@13 670
michael@13 671 pkgincdir = $(pkgincludedir)
michael@13 672 @@ -180,4 +180,4 @@
michael@13 673 $(LINT) $(DEFS) $(INCLUDES) $(librpmdb_la_SOURCES)
michael@13 674
michael@13 675 tdbi: librpmdb.la tdbi.o
michael@13 676 - $(LINK) -all-static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
michael@13 677 + $(LINK) -static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
michael@13 678
michael@13 679 +---------------------------------------------------------------------------
michael@13 680 | Use GNU libtool's weaker -static (link with own static libraries)
michael@13 681 | instead of the strong -all-static (link even with static libc, etc),
michael@13 682 | because OpenPKG does not need to be fully static.
michael@13 683 +---------------------------------------------------------------------------
michael@13 684 Index: rpmdb/Makefile.in
michael@13 685 --- rpmdb/Makefile.in 16 Jul 2003 17:05:48 -0000 1.1.1.7
michael@13 686 +++ rpmdb/Makefile.in 22 Jan 2004 21:42:29 -0000 1.2
michael@13 687 @@ -273,7 +273,7 @@
michael@13 688 EXTRA_PROGRAMS = tjfn
michael@13 689
michael@13 690 tjfn_SOURCES = tjfn.c
michael@13 691 -tjfn_LDFLAGS = -all-static
michael@13 692 +tjfn_LDFLAGS = -static
michael@13 693 tjfn_LDADD = librpmdb.la
michael@13 694
michael@13 695 pkgincdir = $(pkgincludedir)
michael@13 696 @@ -952,7 +952,7 @@
michael@13 697 $(LINT) $(DEFS) $(INCLUDES) $(librpmdb_la_SOURCES)
michael@13 698
michael@13 699 tdbi: librpmdb.la tdbi.o
michael@13 700 - $(LINK) -all-static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
michael@13 701 + $(LINK) -static $@.o $< $(mylibpaths) $(mylibs) $(LIBS)
michael@13 702 # Tell versions [3.59,3.63) of GNU make to not export all variables.
michael@13 703 # Otherwise a system limit (for SysV at least) may be exceeded.
michael@13 704 .NOEXPORT:
michael@13 705
michael@13 706 +---------------------------------------------------------------------------
michael@13 707 | Use GNU libtool's weaker -static (link with own static libraries)
michael@13 708 | instead of the strong -all-static (link even with static libc, etc),
michael@13 709 | because OpenPKG does not need to be fully static.
michael@13 710 +---------------------------------------------------------------------------
michael@13 711 Index: rpmio/Makefile.am
michael@13 712 --- rpmio/Makefile.am 5 Jun 2003 12:05:23 -0000 1.1.1.9
michael@13 713 +++ rpmio/Makefile.am 22 Jan 2004 21:42:31 -0000 1.2
michael@13 714 @@ -68,27 +68,27 @@
michael@13 715 tdigest_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 716
michael@13 717 tdir_SOURCES = tdir.c
michael@13 718 -tdir_LDFLAGS = -all-static
michael@13 719 +tdir_LDFLAGS = -static
michael@13 720 tdir_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 721
michael@13 722 tfts_SOURCES = tfts.c
michael@13 723 -tfts_LDFLAGS = -all-static
michael@13 724 +tfts_LDFLAGS = -static
michael@13 725 tfts_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 726
michael@13 727 tglob_SOURCES = tglob.c
michael@13 728 -tglob_LDFLAGS = -all-static
michael@13 729 +tglob_LDFLAGS = -static
michael@13 730 tglob_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 731
michael@13 732 tinv_SOURCES = tinv.c
michael@13 733 -tinv_LDFLAGS = -all-static
michael@13 734 +tinv_LDFLAGS = -static
michael@13 735 tinv_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 736
michael@13 737 tkey_SOURCES = tkey.c
michael@13 738 -tkey_LDFLAGS = -all-static
michael@13 739 +tkey_LDFLAGS = -static
michael@13 740 tkey_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 741
michael@13 742 tring_SOURCES = tring.c
michael@13 743 -tring_LDFLAGS = -all-static
michael@13 744 +tring_LDFLAGS = -static
michael@13 745 tring_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 746
michael@13 747 trpmio_SOURCES = trpmio.c
michael@13 748
michael@13 749 +---------------------------------------------------------------------------
michael@13 750 | Use GNU libtool's weaker -static (link with own static libraries)
michael@13 751 | instead of the strong -all-static (link even with static libc, etc),
michael@13 752 | because OpenPKG does not need to be fully static.
michael@13 753 | Additionally, remove hard-coded Linux'ism of linking against POSIX
michael@13 754 | rt/pthread libraries (is not needed even under Linux itself) and
michael@13 755 | make sure the build does not break by an empty argument list when
michael@13 756 | iterating over (the not existing) BeeCrypt objects.
michael@13 757 +---------------------------------------------------------------------------
michael@13 758 Index: rpmio/Makefile.in
michael@13 759 --- rpmio/Makefile.in 16 Jul 2003 17:05:49 -0000 1.1.1.9
michael@13 760 +++ rpmio/Makefile.in 22 Jan 2004 21:42:31 -0000 1.2
michael@13 761 @@ -288,8 +288,7 @@
michael@13 762 librpmio_la_LDFLAGS = -release 4.2 \
michael@13 763 @WITH_BEECRYPT_LIB@ \
michael@13 764 $(top_builddir)/file/libfmagic.la \
michael@13 765 - @WITH_ZLIB_LIB@ \
michael@13 766 - -lrt -lpthread
michael@13 767 + @WITH_ZLIB_LIB@
michael@13 768
michael@13 769 librpmio_la_LIBADD = $(BEECRYPTLOBJS)
michael@13 770 librpmio_la_DEPENDENCIES = .created
michael@13 771 @@ -298,27 +297,27 @@
michael@13 772 tdigest_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 773
michael@13 774 tdir_SOURCES = tdir.c
michael@13 775 -tdir_LDFLAGS = -all-static
michael@13 776 +tdir_LDFLAGS = -static
michael@13 777 tdir_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 778
michael@13 779 tfts_SOURCES = tfts.c
michael@13 780 -tfts_LDFLAGS = -all-static
michael@13 781 +tfts_LDFLAGS = -static
michael@13 782 tfts_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 783
michael@13 784 tglob_SOURCES = tglob.c
michael@13 785 -tglob_LDFLAGS = -all-static
michael@13 786 +tglob_LDFLAGS = -static
michael@13 787 tglob_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 788
michael@13 789 tinv_SOURCES = tinv.c
michael@13 790 -tinv_LDFLAGS = -all-static
michael@13 791 +tinv_LDFLAGS = -static
michael@13 792 tinv_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 793
michael@13 794 tkey_SOURCES = tkey.c
michael@13 795 -tkey_LDFLAGS = -all-static
michael@13 796 +tkey_LDFLAGS = -static
michael@13 797 tkey_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 798
michael@13 799 tring_SOURCES = tring.c
michael@13 800 -tring_LDFLAGS = -all-static
michael@13 801 +tring_LDFLAGS = -static
michael@13 802 tring_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la
michael@13 803
michael@13 804 trpmio_SOURCES = trpmio.c
michael@13 805 @@ -743,8 +742,8 @@
michael@13 806 .created:
michael@13 807 if test X"@WITH_BEECRYPT_SUBDIR@" != X; then \
michael@13 808 ${MAKE} -C $(top_builddir)/@WITH_BEECRYPT_SUBDIR@ listobjs ; \
michael@13 809 - for lo in $(BEECRYPTLOBJS); do \
michael@13 810 - [ -f $$lo ] || $(LN_S) $(top_builddir)/@WITH_BEECRYPT_SUBDIR@/$$lo $$lo ; \
michael@13 811 + for lo in $(BEECRYPTLOBJS) ''; do \
michael@13 812 + [ ".$$lo" = . ] || [ -f $$lo ] || $(LN_S) $(top_builddir)/@WITH_BEECRYPT_SUBDIR@/$$lo $$lo ; \
michael@13 813 done \
michael@13 814 fi
michael@13 815 touch $@
michael@13 816
michael@13 817 +---------------------------------------------------------------------------
michael@13 818 | Add Unixware support.
michael@13 819 +---------------------------------------------------------------------------
michael@13 820 Index: rpmio/fts.h
michael@13 821 --- rpmio/fts.h 18 Jan 2003 16:13:17 -0000 1.1.1.3
michael@13 822 +++ rpmio/fts.h 22 Jan 2004 21:42:32 -0000 1.2
michael@13 823 @@ -51,7 +51,7 @@
michael@13 824 # define _LARGEFILE64_SOURCE
michael@13 825 #endif
michael@13 826
michael@13 827 -#if defined(sun)
michael@13 828 +#if defined(sun) || defined(OPENPKG_UNIXWARE)
michael@13 829 # define _D_EXACT_NAMLEN(d) ((d)->d_reclen)
michael@13 830 #endif
michael@13 831
michael@13 832
michael@13 833 +---------------------------------------------------------------------------
michael@13 834 | Add FreeBSD/NetBSD/OpenBSD support.
michael@13 835 | Workaround some GCC'isms.
michael@13 836 +---------------------------------------------------------------------------
michael@13 837 Index: rpmio/fts.c
michael@13 838 --- rpmio/fts.c 18 Jan 2003 16:13:17 -0000 1.1.1.3
michael@13 839 +++ rpmio/fts.c 8 Jun 2005 13:16:25 -0000 1.5
michael@13 840 @@ -34,6 +34,8 @@
michael@13 841 static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
michael@13 842 #endif /* LIBC_SCCS and not lint */
michael@13 843
michael@13 844 +#include <limits.h>
michael@13 845 +
michael@13 846 #if defined(_LIBC)
michael@13 847 #include <sys/param.h>
michael@13 848 #include <include/sys/stat.h>
michael@330 849 @@ -45,20 +47,52 @@
michael@13 850 #include <string.h>
michael@13 851 #include <unistd.h>
michael@13 852 #else
michael@13 853 -#if defined(hpux)
michael@13 854 +#if defined(OPENPKG_HPUX)
michael@13 855 # define _INCLUDE_POSIX_SOURCE
michael@13 856 # define __errno_location() (&errno)
michael@330 857 -# define dirfd(dirp) -1
michael@330 858 +# define locdirfd(dirp) -1
michael@13 859 # define stat64 stat
michael@13 860 # define _STAT_VER 0
michael@13 861 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
michael@13 862 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
michael@13 863 #endif
michael@13 864 -#if defined(sun)
michael@13 865 +#if defined(sun) || defined(OPENPKG_UNIXWARE)
michael@13 866 # define __errno_location() (&errno)
michael@330 867 -# define dirfd(dirp) -1
michael@330 868 +# define locdirfd(dirp) -1
michael@13 869 # define _STAT_VER 0
michael@13 870 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
michael@13 871 #endif
michael@13 872 +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN)
michael@13 873 +# define __errno_location() (&errno)
michael@13 874 +# define stat64 stat
michael@13 875 +# define _STAT_VER 0
michael@13 876 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
michael@13 877 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
michael@13 878 +#endif
michael@13 879 +#if defined(__osf__)
michael@13 880 +# define __errno_location() (&errno)
michael@330 881 +# define locdirfd(dirp) -1
michael@13 882 +# define stat64 stat
michael@13 883 +# define _STAT_VER 0
michael@13 884 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
michael@13 885 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
michael@13 886 +#endif
michael@13 887 +#if defined(OPENPKG_IRIX64)
michael@13 888 +# define __errno_location() (&errno)
michael@330 889 +# define locdirfd(dirp) -1
michael@13 890 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
michael@13 891 +# define _D_EXACT_NAMLEN(d) ((d)->d_reclen)
michael@13 892 +#endif
michael@13 893 +#if defined(OPENPKG_AIX)
michael@13 894 +# define __errno_location() (&errno)
michael@13 895 +# define _STAT_VER 0
michael@330 896 +# define locdirfd(dirp) ((dirp)->dd_fd)
michael@13 897 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp))
michael@13 898 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
michael@13 899 +#endif
michael@330 900 +#if !defined(locdirfd)
michael@330 901 +# define locdirfd(dirp) dirfd(dirp)
michael@330 902 +#endif
michael@13 903 #include "system.h"
michael@13 904 #include "fts.h"
michael@13 905 #include "rpmio.h"
michael@330 906 @@ -73,7 +107,12 @@
michael@13 907 /* Largest alignment size needed, minus one.
michael@13 908 Usually long double is the worst case. */
michael@13 909 #ifndef ALIGNBYTES
michael@13 910 +#if defined(__GNUC__)
michael@13 911 #define ALIGNBYTES (__alignof__ (long double) - 1)
michael@13 912 +#else
michael@13 913 +/* not accurate enough (usually too large), but sufficient (and this way equal safe) */
michael@13 914 +#define ALIGNBYTES (sizeof (long double) - 1)
michael@13 915 +#endif
michael@13 916 #endif
michael@13 917 /* Align P to that size. */
michael@13 918 #ifndef ALIGN
michael@330 919 @@ -107,9 +146,13 @@
michael@13 920 /*@modifies fileSystem, internalState @*/;
michael@13 921
michael@13 922 #ifndef MAX
michael@13 923 +#if defined(__GNUC__)
michael@13 924 #define MAX(a, b) ({ __typeof__ (a) _a = (a); \
michael@13 925 __typeof__ (b) _b = (b); \
michael@13 926 _a > _b ? _a : _b; })
michael@13 927 +#else
michael@13 928 +#define MAX(a, b) ((a) > (b) ? (a) : (b))
michael@13 929 +#endif
michael@13 930 #endif
michael@13 931
michael@13 932 #define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
michael@330 933 @@ -719,7 +762,7 @@
michael@330 934 */
michael@330 935 cderrno = 0;
michael@330 936 if (nlinks || type == BREAD) {
michael@330 937 - if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
michael@330 938 + if (fts_safe_changedir(sp, cur, locdirfd(dirp), NULL)) {
michael@330 939 if (nlinks && type == BREAD)
michael@330 940 cur->fts_errno = errno;
michael@330 941 cur->fts_flags |= FTS_DONTCHDIR;
michael@13 942
michael@13 943 +---------------------------------------------------------------------------
michael@13 944 | Remove inclusion of system <glob.h> because RPM uses its own glob(3)
michael@13 945 | implementation and this can conflict with the system one.
michael@13 946 +---------------------------------------------------------------------------
michael@13 947 Index: rpmio/rpmio.h
michael@13 948 --- rpmio/rpmio.h 12 Jun 2003 18:22:18 -0000 1.1.1.7
michael@13 949 +++ rpmio/rpmio.h 22 Jan 2004 21:42:33 -0000 1.2
michael@13 950 @@ -9,9 +9,6 @@
michael@13 951 #include <sys/types.h>
michael@13 952 #include <sys/stat.h>
michael@13 953 #include <dirent.h>
michael@13 954 -/*@-noparams@*/
michael@13 955 -#include <glob.h>
michael@13 956 -/*@=noparams@*/
michael@13 957 #include <stdio.h>
michael@13 958 #include <stdlib.h>
michael@13 959 #include <unistd.h>
michael@13 960
michael@13 961 +---------------------------------------------------------------------------
michael@13 962 | Make this whole "dirent" fiddling at least working on
michael@13 963 | FreeBSD/NetBSD/OpenBSD, Solaris, HPUX and Unixware. This certainly
michael@13 964 | is a bad corner of RPM which inherently leads to portability
michael@13 965 | problems.
michael@13 966 +---------------------------------------------------------------------------
michael@13 967 Index: rpmio/rpmrpc.c
michael@13 968 --- rpmio/rpmrpc.c 29 May 2003 22:14:04 -0000 1.1.1.8
michael@13 969 +++ rpmio/rpmrpc.c 8 Jun 2005 13:16:26 -0000 1.5
michael@13 970 @@ -1079,6 +1079,8 @@
michael@13 971 return rc;
michael@13 972 }
michael@13 973
michael@13 974 +#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(sun) && !defined(OPENPKG_DARWIN)
michael@13 975 +
michael@13 976 struct __dirstream {
michael@13 977 int fd; /* File descriptor. */
michael@13 978 char * data; /* Directory block. */
michael@13 979 @@ -1091,6 +1093,8 @@
michael@13 980 #endif
michael@13 981 };
michael@13 982
michael@13 983 +#endif
michael@13 984 +
michael@13 985 #if !defined(DT_DIR)
michael@13 986 # define DT_UNKNOWN 0
michael@13 987 # define DT_FIFO 1
michael@13 988 @@ -1101,14 +1105,30 @@
michael@13 989 # define DT_LNK 10
michael@13 990 # define DT_SOCK 12
michael@13 991 # define DT_WHT 14
michael@13 992 -typedef struct __dirstream * FTPDIR;
michael@13 993 -#else
michael@13 994 -typedef DIR * FTPDIR;
michael@13 995 #endif
michael@13 996
michael@13 997 +struct mydirstreament {
michael@13 998 + unsigned char type;
michael@13 999 + char *name;
michael@13 1000 +};
michael@13 1001 +struct mydirstream {
michael@13 1002 + DIR dir;
michael@13 1003 + struct dirent ent;
michael@13 1004 + unsigned int offset;
michael@13 1005 + unsigned int size;
michael@13 1006 + struct mydirstreament av[1];
michael@13 1007 +};
michael@13 1008 +typedef struct mydirstream *FTPDIR;
michael@13 1009 +
michael@13 1010 /*@unchecked@*/
michael@13 1011 static int ftpmagicdir = 0x8440291;
michael@13 1012 -#define ISFTPMAGIC(_dir) (!memcmp((_dir), &ftpmagicdir, sizeof(ftpmagicdir)))
michael@13 1013 +#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)
michael@13 1014 +#define SETFTPMAGIC(_dir) ((_dir)->fd) = ftpmagicdir
michael@13 1015 +#define ISFTPMAGIC(_dir) ((_dir)->fd == ftpmagicdir)
michael@13 1016 +#else
michael@13 1017 +#define SETFTPMAGIC(_dir) ((_dir)->dd_fd) = ftpmagicdir
michael@13 1018 +#define ISFTPMAGIC(_dir) ((_dir)->dd_fd == ftpmagicdir)
michael@13 1019 +#endif
michael@13 1020
michael@13 1021 /*@-boundswrite@*/
michael@13 1022 /*@-type@*/ /* FIX: abstract DIR */
michael@13 1023 @@ -1121,8 +1141,7 @@
michael@13 1024 struct dirent * dp;
michael@13 1025 size_t nb;
michael@13 1026 const char * s, * sb, * se;
michael@13 1027 - const char ** av;
michael@13 1028 - unsigned char * dt;
michael@13 1029 + struct mydirstreament * av;
michael@13 1030 char * t;
michael@13 1031 int ac;
michael@13 1032 int c;
michael@13 1033 @@ -1165,28 +1184,22 @@
michael@13 1034 }
michael@13 1035 }
michael@13 1036
michael@13 1037 - nb += sizeof(*mydir) + sizeof(*dp) + ((ac + 1) * sizeof(*av)) + (ac + 1);
michael@13 1038 + nb = sizeof(*mydir) + (ac * sizeof(*av)) + nb;
michael@13 1039 mydir = xcalloc(1, nb);
michael@13 1040 /*@-abstract@*/
michael@13 1041 - dp = (struct dirent *) (mydir + 1);
michael@13 1042 - av = (const char **) (dp + 1);
michael@13 1043 - dt = (char *) (av + (ac + 1));
michael@13 1044 - t = (char *) (dt + ac + 1);
michael@13 1045 + dp = &mydir->ent;
michael@13 1046 + av = &mydir->av[0];
michael@13 1047 + t = (char *)&mydir->av[ac+1];
michael@13 1048 /*@=abstract@*/
michael@13 1049
michael@13 1050 - mydir->fd = ftpmagicdir;
michael@13 1051 -/*@-usereleased@*/
michael@13 1052 - mydir->data = (char *) dp;
michael@13 1053 -/*@=usereleased@*/
michael@13 1054 - mydir->allocation = nb;
michael@13 1055 - mydir->size = ac;
michael@13 1056 - mydir->offset = -1;
michael@13 1057 - mydir->filepos = 0;
michael@13 1058 + SETFTPMAGIC((DIR *)mydir);
michael@13 1059 + mydir->size = ac;
michael@13 1060 + mydir->offset = 0;
michael@13 1061
michael@13 1062 ac = 0;
michael@13 1063 /*@-dependenttrans -unrecog@*/
michael@13 1064 - dt[ac] = DT_DIR; av[ac++] = t; t = stpcpy(t, "."); t++;
michael@13 1065 - dt[ac] = DT_DIR; av[ac++] = t; t = stpcpy(t, ".."); t++;
michael@13 1066 + av[ac].type = DT_DIR; av[ac].name = t; t = stpcpy(t, "."); ++ac;
michael@13 1067 + av[ac].type = DT_DIR; av[ac].name = t; t = stpcpy(t, ".."); ++ac;
michael@13 1068 /*@=dependenttrans =unrecog@*/
michael@13 1069 sb = NULL;
michael@13 1070 s = se = ftpBuf;
michael@13 1071 @@ -1198,34 +1211,34 @@
michael@13 1072 /*@switchbreak@*/ break;
michael@13 1073 case '\r':
michael@13 1074 /*@-dependenttrans@*/
michael@13 1075 - av[ac] = t;
michael@13 1076 + av[ac].name = t;
michael@13 1077 /*@=dependenttrans@*/
michael@13 1078 if (sb == NULL) {
michael@13 1079 /*@-unrecog@*/
michael@13 1080 switch(*s) {
michael@13 1081 case 'p':
michael@13 1082 - dt[ac] = DT_FIFO;
michael@13 1083 + av[ac].type = DT_FIFO;
michael@13 1084 /*@innerbreak@*/ break;
michael@13 1085 case 'c':
michael@13 1086 - dt[ac] = DT_CHR;
michael@13 1087 + av[ac].type = DT_CHR;
michael@13 1088 /*@innerbreak@*/ break;
michael@13 1089 case 'd':
michael@13 1090 - dt[ac] = DT_DIR;
michael@13 1091 + av[ac].type = DT_DIR;
michael@13 1092 /*@innerbreak@*/ break;
michael@13 1093 case 'b':
michael@13 1094 - dt[ac] = DT_BLK;
michael@13 1095 + av[ac].type = DT_BLK;
michael@13 1096 /*@innerbreak@*/ break;
michael@13 1097 case '-':
michael@13 1098 - dt[ac] = DT_REG;
michael@13 1099 + av[ac].type = DT_REG;
michael@13 1100 /*@innerbreak@*/ break;
michael@13 1101 case 'l':
michael@13 1102 - dt[ac] = DT_LNK;
michael@13 1103 + av[ac].type = DT_LNK;
michael@13 1104 /*@innerbreak@*/ break;
michael@13 1105 case 's':
michael@13 1106 - dt[ac] = DT_SOCK;
michael@13 1107 + av[ac].type = DT_SOCK;
michael@13 1108 /*@innerbreak@*/ break;
michael@13 1109 default:
michael@13 1110 - dt[ac] = DT_UNKNOWN;
michael@13 1111 + av[ac].type = DT_UNKNOWN;
michael@13 1112 /*@innerbreak@*/ break;
michael@13 1113 }
michael@13 1114 /*@=unrecog@*/
michael@13 1115 @@ -1243,7 +1256,7 @@
michael@13 1116 /*@switchbreak@*/ break;
michael@13 1117 }
michael@13 1118 }
michael@13 1119 - av[ac] = NULL;
michael@13 1120 + av[ac].name = NULL;
michael@13 1121
michael@13 1122 /*@-kepttrans@*/
michael@13 1123 return (DIR *) mydir;
michael@13 1124 @@ -1258,43 +1271,50 @@
michael@13 1125 {
michael@13 1126 FTPDIR mydir = (FTPDIR)dir;
michael@13 1127 struct dirent * dp;
michael@13 1128 - const char ** av;
michael@13 1129 - unsigned char * dt;
michael@13 1130 + struct mydirstreament * av;
michael@13 1131 int ac;
michael@13 1132 int i;
michael@13 1133
michael@13 1134 /*@+voidabstract@*/
michael@13 1135 - if (mydir == NULL || !ISFTPMAGIC(mydir) || mydir->data == NULL) {
michael@13 1136 + if (dir == NULL || !ISFTPMAGIC(dir)) {
michael@13 1137 /* XXX TODO: EBADF errno. */
michael@13 1138 return NULL;
michael@13 1139 }
michael@13 1140 /*@=voidabstract@*/
michael@13 1141
michael@13 1142 - dp = (struct dirent *) mydir->data;
michael@13 1143 - av = (const char **) (dp + 1);
michael@13 1144 + dp = &mydir->ent;
michael@13 1145 + av = &mydir->av[0];
michael@13 1146 ac = mydir->size;
michael@13 1147 - dt = (char *) (av + (ac + 1));
michael@13 1148 - i = mydir->offset + 1;
michael@13 1149 + i = mydir->offset + 1;
michael@13 1150
michael@13 1151 /*@-boundsread@*/
michael@13 1152 - if (i < 0 || i >= ac || av[i] == NULL)
michael@13 1153 + if (i < 0 || i >= ac || av[i].name == NULL)
michael@13 1154 return NULL;
michael@13 1155 /*@=boundsread@*/
michael@13 1156
michael@13 1157 mydir->offset = i;
michael@13 1158
michael@13 1159 +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN)
michael@13 1160 + dp->d_ino = i + 1;
michael@13 1161 + dp->d_reclen = 0;
michael@13 1162 + dp->d_type = av[i].type;
michael@13 1163 + strncpy(dp->d_name, av[i].name, sizeof(dp->d_name) - 1);
michael@13 1164 + dp->d_name[sizeof(dp->d_name)-1] = '\0';
michael@13 1165 + dp->d_namlen = strlen(dp->d_name);
michael@13 1166 +#elif defined(OPENPKG_HPUX) || defined(sun) || defined(OPENPKG_UNIXWARE) || defined(__osf__) || defined(OPENPKG_IRIX64) || defined(OPENPKG_AIX)
michael@13 1167 + /* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */
michael@13 1168 + dp->d_ino = i + 1; /* W2DO? */
michael@13 1169 + dp->d_reclen = 0; /* W2DO? */
michael@13 1170 + strncpy(dp->d_name, av[i].name, sizeof(dp->d_name));
michael@13 1171 +#else
michael@13 1172 /* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */
michael@13 1173 dp->d_ino = i + 1; /* W2DO? */
michael@13 1174 dp->d_reclen = 0; /* W2DO? */
michael@13 1175 -
michael@13 1176 -#if !defined(hpux) && !defined(sun)
michael@13 1177 dp->d_off = 0; /* W2DO? */
michael@13 1178 -/*@-boundsread@*/
michael@13 1179 - dp->d_type = dt[i];
michael@13 1180 -/*@=boundsread@*/
michael@13 1181 + dp->d_type = av[i].type;
michael@13 1182 + strncpy(dp->d_name, av[i].name, sizeof(dp->d_name));
michael@13 1183 #endif
michael@13 1184
michael@13 1185 - strncpy(dp->d_name, av[i], sizeof(dp->d_name));
michael@13 1186 /*@+voidabstract@*/
michael@13 1187 if (_ftp_debug)
michael@13 1188 fprintf(stderr, "*** ftpReaddir(%p) %p \"%s\"\n", (void *)mydir, dp, dp->d_name);
michael@13 1189 @@ -1313,7 +1333,7 @@
michael@13 1190 /*@+voidabstract@*/
michael@13 1191 if (_ftp_debug)
michael@13 1192 fprintf(stderr, "*** ftpClosedir(%p)\n", (void *)mydir);
michael@13 1193 - if (mydir == NULL || !ISFTPMAGIC(mydir)) {
michael@13 1194 + if (dir == NULL || !ISFTPMAGIC(dir)) {
michael@13 1195 /* XXX TODO: EBADF errno. */
michael@13 1196 return -1;
michael@13 1197 }
michael@13 1198
michael@13 1199 +---------------------------------------------------------------------------
michael@13 1200 | Remove inclusion of ancient (and since years deprecated) <malloc.h>
michael@13 1201 | header. This especially makes sure RPM build does not break on
michael@13 1202 | strict platforms like FreeBSD 5.
michael@13 1203 +---------------------------------------------------------------------------
michael@13 1204 Index: system.h
michael@13 1205 --- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10
michael@13 1206 +++ system.h 8 Jun 2005 13:15:16 -0000 1.4
michael@13 1207 @@ -256,10 +256,6 @@
michael@13 1208 #include <err.h>
michael@13 1209 #endif
michael@13 1210
michael@13 1211 -#if HAVE_MALLOC_H && !defined(__LCLINT__)
michael@13 1212 -#include <malloc.h>
michael@13 1213 -#endif
michael@13 1214 -
michael@13 1215 /*@-declundef -incondefs @*/ /* FIX: these are macros */
michael@13 1216 /**
michael@13 1217 */
michael@13 1218
michael@13 1219 +---------------------------------------------------------------------------
michael@13 1220 | Add support for BSD getmntinfo(3).
michael@13 1221 +---------------------------------------------------------------------------
michael@13 1222 Index: system.h
michael@13 1223 --- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10
michael@13 1224 +++ system.h 8 Jun 2005 13:15:16 -0000 1.4
michael@13 1225 @@ -550,7 +546,7 @@
michael@13 1226 #define lchown chown
michael@13 1227 #endif
michael@13 1228
michael@13 1229 -#if HAVE_GETMNTINFO_R || HAVE_MNTCTL
michael@13 1230 +#if HAVE_GETMNTINFO_R || HAVE_GETMNTINFO || HAVE_MNTCTL
michael@13 1231 # define GETMNTENT_ONE 0
michael@13 1232 # define GETMNTENT_TWO 0
michael@13 1233 # if HAVE_SYS_MNTCTL_H
michael@13 1234
michael@13 1235 +---------------------------------------------------------------------------
michael@13 1236 | Drop GCC "inline" attribute if not compiling with GCC.
michael@13 1237 +---------------------------------------------------------------------------
michael@13 1238 Index: system.h
michael@13 1239 --- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10
michael@13 1240 +++ system.h 8 Jun 2005 13:15:16 -0000 1.4
michael@13 1241 @@ -603,11 +599,24 @@
michael@13 1242
michael@13 1243 #if defined(__LCLINT__)
michael@13 1244 #define FILE_RCSID(id)
michael@13 1245 -#else
michael@13 1246 +#elif defined(__GNUC__)
michael@13 1247 #define FILE_RCSID(id) \
michael@13 1248 static inline const char *rcsid(const char *p) { \
michael@13 1249 return rcsid(p = id); \
michael@13 1250 }
michael@13 1251 +#else
michael@13 1252 +#define FILE_RCSID(id) \
michael@13 1253 +static const char *rcsid(const char *p) { \
michael@13 1254 + return rcsid(p = id); \
michael@13 1255 +}
michael@13 1256 +#endif
michael@13 1257 +
michael@13 1258 +/* for basename(3) and dirname(3) */
michael@13 1259 +#if !defined(OPENPKG_AIX)
michael@13 1260 +#include <libgen.h>
michael@13 1261 +#endif
michael@13 1262 +#if defined(OPENPKG_AIX)
michael@13 1263 +#define unsetenv(x) /* unsetenv() is used in RPM just for malloc debugging purposes */
michael@13 1264 #endif
michael@13 1265
michael@13 1266 #endif /* H_SYSTEM */
michael@13 1267
michael@13 1268 +---------------------------------------------------------------------------
michael@13 1269 | Remove GCC'ism.
michael@13 1270 +---------------------------------------------------------------------------
michael@13 1271 Index: build/rpmfile.h
michael@13 1272 --- build/rpmfile.h 24 Jan 2003 19:41:56 -0000 1.1.1.1
michael@13 1273 +++ build/rpmfile.h 22 Jan 2004 21:42:14 -0000 1.2
michael@13 1274 @@ -95,7 +95,11 @@
michael@13 1275 } value; /* either number or string */
michael@13 1276 uint32_t mask; /* mask before comparison with value */
michael@13 1277 char desc[MAXDESC]; /* description */
michael@13 1278 +#if defined(__GNUC__)
michael@13 1279 } __attribute__((__packed__));
michael@13 1280 +#else
michael@13 1281 +};
michael@13 1282 +#endif
michael@13 1283
michael@13 1284 #define BIT(A) (1 << (A))
michael@13 1285 #define STRING_IGNORE_LOWERCASE BIT(0)
michael@13 1286
michael@13 1287 +---------------------------------------------------------------------------
michael@13 1288 | Better portability for madvise(2) usage.
michael@13 1289 +---------------------------------------------------------------------------
michael@13 1290 Index: rpmdb/legacy.c
michael@13 1291 --- rpmdb/legacy.c 18 Dec 2002 22:40:19 -0000 1.1.1.4
michael@13 1292 +++ rpmdb/legacy.c 22 Jan 2004 21:42:30 -0000 1.2
michael@13 1293 @@ -182,7 +182,7 @@
michael@13 1294 break;
michael@13 1295 }
michael@13 1296
michael@13 1297 -#ifdef MADV_SEQUENTIAL
michael@13 1298 +#if defined(HAVE_MADVISE) && defined(MADV_SEQUENTIAL)
michael@13 1299 xx = madvise(mapped, fsize, MADV_SEQUENTIAL);
michael@13 1300 #endif
michael@13 1301
michael@13 1302
michael@13 1303 +---------------------------------------------------------------------------
michael@13 1304 | Better portability for madvise(2) usage.
michael@13 1305 +---------------------------------------------------------------------------
michael@13 1306 Index: lib/fsm.c
michael@13 1307 --- lib/fsm.c 3 Mar 2003 21:28:12 -0000 1.1.1.5
michael@13 1308 +++ lib/fsm.c 22 Jan 2004 21:42:23 -0000 1.2
michael@13 1309 @@ -879,7 +879,7 @@
michael@13 1310 rdbuf = fsm->rdbuf;
michael@13 1311 fsm->rdbuf = (char *) mapped;
michael@13 1312 fsm->rdlen = nmapped = st->st_size;
michael@13 1313 -#if defined(MADV_DONTNEED)
michael@13 1314 +#if defined(HAVE_MADVISE) && defined(MADV_DONTNEED)
michael@13 1315 xx = madvise(mapped, nmapped, MADV_DONTNEED);
michael@13 1316 #endif
michael@13 1317 }
michael@13 1318 @@ -909,7 +909,7 @@
michael@13 1319 #if HAVE_MMAP
michael@13 1320 if (mapped != (void *)-1) {
michael@13 1321 xx = msync(mapped, nmapped, MS_ASYNC);
michael@13 1322 -#if defined(MADV_DONTNEED)
michael@13 1323 +#if defined(HAVE_MADVISE) && defined(MADV_DONTNEED)
michael@13 1324 xx = madvise(mapped, nmapped, MADV_DONTNEED);
michael@13 1325 #endif
michael@13 1326 /*@-noeffect@*/ xx = munmap(mapped, nmapped) /*@=noeffect@*/;
michael@13 1327
michael@13 1328 +---------------------------------------------------------------------------
michael@13 1329 | Support UnixWare 7.1.3 and OpenDarwin 6.6.2, too.
michael@13 1330 +---------------------------------------------------------------------------
michael@13 1331 Index: aclocal.m4
michael@13 1332 --- aclocal.m4 16 Jul 2003 17:05:28 -0000 1.1.1.10
michael@13 1333 +++ aclocal.m4 6 Jun 2005 15:53:03 -0000 1.4
michael@13 1334 @@ -2838,7 +2838,7 @@
michael@13 1335 runpath_var=LD_RUN_PATH
michael@13 1336 ;;
michael@13 1337
michael@13 1338 - sysv5uw7* | unixware7*)
michael@13 1339 + sysv5uw7* | unixware7* | sysv5UnixWare7* )
michael@13 1340 no_undefined_flag='${wl}-z ${wl}text'
michael@13 1341 if test "$GCC" = yes; then
michael@13 1342 archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
michael@13 1343 @@ -4311,6 +4311,7 @@
michael@13 1344 ;;
michael@13 1345 *) # Darwin 1.3 on
michael@13 1346 lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
michael@13 1347 + lt_cv_deplibs_check_method=pass_all
michael@13 1348 ;;
michael@13 1349 esac
michael@13 1350 ;;
michael@13 1351 @@ -4336,7 +4337,7 @@
michael@13 1352 ;;
michael@13 1353
michael@13 1354 hpux10.20*|hpux11*)
michael@13 1355 - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
michael@13 1356 + lt_cv_deplibs_check_method='pass_all'
michael@13 1357 lt_cv_file_magic_cmd=/usr/bin/file
michael@13 1358 lt_cv_file_magic_test_file=/usr/lib/libc.sl
michael@13 1359 ;;
michael@13 1360 @@ -4375,11 +4376,7 @@
michael@13 1361 ;;
michael@13 1362
michael@13 1363 netbsd*)
michael@13 1364 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
michael@13 1365 - lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$'
michael@13 1366 - else
michael@13 1367 - lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$'
michael@13 1368 - fi
michael@13 1369 + lt_cv_deplibs_check_method='pass_all'
michael@13 1370 ;;
michael@13 1371
michael@13 1372 newos6*)
michael@13 1373 @@ -4414,7 +4411,7 @@
michael@13 1374 lt_cv_file_magic_test_file=/lib/libc.so
michael@13 1375 ;;
michael@13 1376
michael@13 1377 -sysv5uw[[78]]* | sysv4*uw2*)
michael@13 1378 +sysv5uw[[78]]* | sysv4*uw2* | sysv5UnixWare7* )
michael@13 1379 lt_cv_deplibs_check_method=pass_all
michael@13 1380 ;;
michael@13 1381
michael@13 1382
michael@13 1383 +---------------------------------------------------------------------------
michael@13 1384 | Use Linux i386 assembly specific stuff on Linux only.
michael@13 1385 +---------------------------------------------------------------------------
michael@13 1386 Index: rpmio/rpmsw.c
michael@13 1387 --- rpmio/rpmsw.c 5 Jun 2003 12:04:05 -0000 1.1.1.1
michael@13 1388 +++ rpmio/rpmsw.c 22 Jan 2004 21:42:33 -0000 1.2
michael@13 1389 @@ -27,7 +27,7 @@
michael@13 1390 /*@unchecked@*/
michael@13 1391 static int rpmsw_initialized = 0;
michael@13 1392
michael@13 1393 -#if defined(__i386__)
michael@13 1394 +#if defined(__linux__) && defined(__i386__)
michael@13 1395 /* Swiped from glibc-2.3.2 sysdeps/i386/i686/hp-timing.h */
michael@13 1396
michael@13 1397 #define HP_TIMING_ZERO(Var) (Var) = (0)
michael@13 1398
michael@13 1399 +---------------------------------------------------------------------------
michael@13 1400 | Fix "environ" declaration.
michael@13 1401 +---------------------------------------------------------------------------
michael@13 1402 Index: lib/signature.c
michael@13 1403 --- lib/signature.c 29 May 2003 18:42:23 -0000 1.1.1.23
michael@13 1404 +++ lib/signature.c 22 Jan 2004 21:42:25 -0000 1.2
michael@13 1405 @@ -27,7 +27,7 @@
michael@13 1406 /*@access pgpDigParams@*/
michael@13 1407
michael@13 1408 #if !defined(__GLIBC__)
michael@13 1409 -char ** environ = NULL;
michael@13 1410 +extern char ** environ;
michael@13 1411 #endif
michael@13 1412
michael@13 1413 int rpmLookupSignatureType(int action)
michael@13 1414
michael@13 1415 +---------------------------------------------------------------------------
michael@13 1416 | Rename own mergesort(3) implementation to avoid conflicts
michael@13 1417 | with a possibly existing vendor version.
michael@13 1418 +---------------------------------------------------------------------------
michael@13 1419 Index: rpmdb/merge.c
michael@13 1420 --- rpmdb/merge.c 22 Jun 2002 18:51:58 -0000 1.1.1.2
michael@13 1421 +++ rpmdb/merge.c 22 Jan 2004 21:42:30 -0000 1.2
michael@13 1422 @@ -204,7 +204,7 @@
michael@13 1423 * Arguments are as for qsort.
michael@13 1424 */
michael@13 1425 int
michael@13 1426 -mergesort(void *base, size_t nmemb, size_t size,
michael@13 1427 +rpmdb_mergesort(void *base, size_t nmemb, size_t size,
michael@13 1428 int (*cmp) (const void *, const void *))
michael@13 1429 {
michael@13 1430 register int i, sense;
michael@13 1431
michael@13 1432 +---------------------------------------------------------------------------
michael@13 1433 | Rename own mergesort(3) implementation to avoid conflicts
michael@13 1434 | with a possibly existing vendor version.
michael@13 1435 +---------------------------------------------------------------------------
michael@13 1436 Index: rpmdb/rpmdb.h
michael@13 1437 --- rpmdb/rpmdb.h 18 Jan 2003 14:04:35 -0000 1.1.1.5
michael@13 1438 +++ rpmdb/rpmdb.h 22 Jan 2004 21:42:31 -0000 1.2
michael@13 1439 @@ -1080,7 +1080,7 @@
michael@13 1440 * Mergesort, same arguments as qsort(2).
michael@13 1441 */
michael@13 1442 /*@unused@*/
michael@13 1443 -int mergesort(void *base, size_t nmemb, size_t size,
michael@13 1444 +int rpmdb_mergesort(void *base, size_t nmemb, size_t size,
michael@13 1445 int (*cmp) (const void *, const void *))
michael@13 1446 /*@globals errno @*/
michael@13 1447 /*@modifies base, errno @*/;
michael@13 1448
michael@13 1449 +---------------------------------------------------------------------------
michael@13 1450 | Rename own mergesort(3) implementation to avoid conflicts
michael@13 1451 | with a possibly existing vendor version.
michael@13 1452 +---------------------------------------------------------------------------
michael@13 1453 Index: rpmdb/rpmdb.c
michael@13 1454 --- rpmdb/rpmdb.c 2 Jul 2003 19:21:54 -0000 1.1.1.6
michael@13 1455 +++ rpmdb/rpmdb.c 22 Jan 2004 21:42:30 -0000 1.2
michael@13 1456 @@ -2361,7 +2361,7 @@
michael@13 1457 sizeof(*mi->mi_set->recs), hdrNumCmp);
michael@13 1458 /*@=boundsread@*/
michael@13 1459 #else
michael@13 1460 - mergesort(mi->mi_set->recs, mi->mi_set->count,
michael@13 1461 + rpmdb_mergesort(mi->mi_set->recs, mi->mi_set->count,
michael@13 1462 sizeof(*mi->mi_set->recs), hdrNumCmp);
michael@13 1463 #endif
michael@13 1464 mi->mi_sorted = 1;
michael@13 1465
michael@13 1466 +---------------------------------------------------------------------------
michael@13 1467 | Workaround a double-inclusion problem under AIX.
michael@13 1468 +---------------------------------------------------------------------------
michael@13 1469 Index: lib/getdate.y
michael@13 1470 --- lib/getdate.y 24 Sep 2001 21:53:15 -0000 1.1.1.2
michael@13 1471 +++ lib/getdate.y 8 Jun 2005 13:16:22 -0000 1.2
michael@13 1472 @@ -30,7 +30,9 @@
michael@13 1473 #undef static
michael@13 1474 #endif
michael@13 1475
michael@13 1476 +#ifndef OPENPKG_AIX
michael@13 1477 #include <stdio.h>
michael@13 1478 +#endif
michael@13 1479 #include <ctype.h>
michael@13 1480
michael@13 1481 /* The code at the top of get_date which figures out the offset of the
michael@13 1482
michael@13 1483 +---------------------------------------------------------------------------
michael@13 1484 | Workaround a double-inclusion problem under AIX.
michael@13 1485 +---------------------------------------------------------------------------
michael@13 1486 Index: lib/getdate.c
michael@13 1487 --- lib/getdate.c 2 Jul 2003 19:21:45 -0000 1.1.1.4
michael@13 1488 +++ lib/getdate.c 8 Jun 2005 13:16:21 -0000 1.2
michael@13 1489 @@ -50,7 +50,9 @@
michael@13 1490 #undef static
michael@13 1491 #endif
michael@13 1492
michael@13 1493 +#ifndef OPENPKG_AIX
michael@13 1494 #include <stdio.h>
michael@13 1495 +#endif
michael@13 1496 #include <ctype.h>
michael@13 1497
michael@13 1498 /* The code at the top of get_date which figures out the offset of the
michael@14 1499
michael@14 1500 +---------------------------------------------------------------------------
michael@14 1501 | The following patch works around a general failure of RPM to
michael@14 1502 | adhere to the ISO C standard, for which newer GCC releases claim
michael@14 1503 | compile errors and fail.
michael@14 1504 +---------------------------------------------------------------------------
michael@14 1505 Index: misc/err.h
michael@14 1506 --- misc/err.h 2009-01-06 22:48:16.104430941 +0100
michael@14 1507 +++ misc/err.h 2009-01-06 22:47:55.944312482 +0100
michael@14 1508 @@ -29,31 +29,4 @@
michael@14 1509 # define __gnuc_va_list __ptr_t
michael@14 1510 #endif
michael@14 1511
michael@14 1512 -__BEGIN_DECLS
michael@14 1513 -
michael@14 1514 -/* Print "program: ", FORMAT, ": ", the standard error string for errno,
michael@14 1515 - and a newline, on stderr. */
michael@14 1516 -extern void warn __P ((__const char *__format, ...))
michael@14 1517 - __attribute__ ((__format__ (__printf__, 1, 2)));
michael@14 1518 -extern void vwarn __P ((__const char *__format, __gnuc_va_list))
michael@14 1519 - __attribute__ ((__format__ (__printf__, 1, 0)));
michael@14 1520 -
michael@14 1521 -/* Likewise, but without ": " and the standard error string. */
michael@14 1522 -extern void warnx __P ((__const char *__format, ...))
michael@14 1523 - __attribute__ ((__format__ (__printf__, 1, 2)));
michael@14 1524 -extern void vwarnx __P ((__const char *__format, __gnuc_va_list))
michael@14 1525 - __attribute__ ((__format__ (__printf__, 1, 0)));
michael@14 1526 -
michael@14 1527 -/* Likewise, and then exit with STATUS. */
michael@14 1528 -extern void err __P ((int __status, __const char *__format, ...))
michael@14 1529 - __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
michael@14 1530 -extern void verr __P ((int __status, __const char *__format, __gnuc_va_list))
michael@14 1531 - __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
michael@14 1532 -extern void errx __P ((int __status, __const char *__format, ...))
michael@14 1533 - __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
michael@14 1534 -extern void verrx __P ((int __status, __const char *, __gnuc_va_list))
michael@14 1535 - __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
michael@14 1536 -
michael@14 1537 -__END_DECLS
michael@14 1538 -
michael@14 1539 #endif /* err.h */

mercurial