Tue, 29 Mar 2011 19:46:35 +0200
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 */ |