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