From e93943f1e01bb8898e8445fb3ab1a648d1be7b68 Mon Sep 17 00:00:00 2001 From: jbj Date: Thu, 9 Mar 2000 18:13:02 +0000 Subject: [PATCH] - portability: skip bzip2 if not available. - portability: skip gzseek if not available (zlib-1.0.4). - portability: skip personality if not available (linux). - portability: always include arpa/inet.h (HP-UX). - portability: don't use id -u (Brandon Allbery). - portability: don't chown/chgrp -h w/o lchown. - portability: splats in rpm.spec to find /usr/{share,local}/locale/* CVS patchset: 3610 CVS date: 2000/03/09 18:13:02 --- CHANGES | 6 + acconfig.h | 12 +- configure.in | 88 +++++--- macros.in | 12 +- misc/Makefile.am | 4 +- misc/glob.c | 630 ++++++++++++++++++++++++++++++++++++++++++++++++++++ misc/glob.h | 97 ++++++++ perl/Makefile.PL | 2 +- perl/Makefile.in | 6 + platform.in | 9 +- po/cs.po | 2 +- po/de.po | 2 +- po/fi.po | 2 +- po/fr.po | 2 +- po/ja.po | 4 +- po/pl.po | 2 +- po/pt_BR.po | 2 +- po/rpm.pot | 2 +- po/ru.po | 2 +- po/sk.po | 2 +- po/sl.po | 4 +- po/sr.po | 2 +- po/sv.po | 4 +- po/tr.po | 2 +- python/Makefile.in | 6 + rpm.spec | 13 +- scripts/Makefile.in | 6 + 27 files changed, 858 insertions(+), 67 deletions(-) create mode 100644 misc/glob.c create mode 100644 misc/glob.h diff --git a/CHANGES b/CHANGES index 33e081f..430aee3 100644 --- a/CHANGES +++ b/CHANGES @@ -63,6 +63,12 @@ - per-platform configuration factored into /usr/lib/rpm subdir. - sparc-sun-solaris2.6 portability check. - simpler hpux.prov script (Tim Mooney). + - portability: skip bzip2 if not available. + - portability: skip gzseek if not available (zlib-1.0.4). + - portability: skip personality if not available (linux). + - portability: always include arpa/inet.h (HP-UX). + - portability: don't use id -u (Brandon Allbery). + - portability: don't chown/chgrp -h w/o lchown. 3.0.2 -> 3.0.3 - add --eval to find result of macro expansion. diff --git a/acconfig.h b/acconfig.h index 50d5cdc..73ad57c 100644 --- a/acconfig.h +++ b/acconfig.h @@ -77,7 +77,10 @@ /* Define if the patch call you'll be using is 2.1 or older */ #undef HAVE_OLDPATCH_21 -/* Define to the fulkl path name of the static libbz2.a */ +/* Define as 1 if your zlib has gzseek() */ +#undef HAVE_GZSEEK + +/* Define to the full path name of the bzip2 library (libbz2.a) */ #undef BZIP2LIB /* A full path to a program, possibly with arguments, that will create a @@ -126,14 +129,17 @@ /* define if the statfs() call takes 4 arguments */ #undef STAT_STATFS4 +/* Absolute path to rpm top_sourcedir. */ +#undef TOP_SOURCEDIR + /* define if support rpm-1.0 packages is desired */ #undef ENABLE_V1_PACKAGES /* define if experimental support rpm-4.0 packages is desired */ #undef ENABLE_V4_PACKAGES -/* Absolute path to rpm top_sourcedir. */ -#undef TOP_SOURCEDIR +/* Use the included glob.c? */ +#undef USE_GNU_GLOB ^L /* Leave that blank line there!! Autoheader needs it. diff --git a/configure.in b/configure.in index 6bcc896..90a7f38 100644 --- a/configure.in +++ b/configure.in @@ -162,8 +162,19 @@ dnl AC_PATH_PROG(__CP, cp, /bin/cp, $MYPATH) AC_PATH_PROG(__CPIO, cpio, /bin/cpio, $MYPATH) AC_PATH_PROG(GZIPBIN, gzip, /bin/gzip, $MYPATH) -dnl Solaris prefers /usr/xpg4/bin/id + AC_PATH_PROG(__GREP, grep, /bin/grep, $MYPATH) + AC_PATH_PROG(__ID, id, /usr/bin/id, $MYPATH) + AC_MSG_CHECKING(checking whether id supports -u) + if `${__ID} -u 2>&1 > /dev/null` ; then + __ID_U="%{__id} -u" + AC_MSG_RESULT(yes) + else + __ID_U="%{__id} | %{__sed} 's/[^=]*=\([0-9][0-9]*\).*$/\1/'" + AC_MSG_RESULT(no) + fi + AC_SUBST(__ID_U) + AC_PATH_PROG(__INSTALL, install, /usr/bin/install, $MYPATH) AC_PATH_PROG(__MAKE, make, /usr/bin/make, $MYPATH) AC_PATH_PROG(__MKDIR, mkdir, /bin/mkdir, $MYPATH) @@ -179,9 +190,11 @@ dnl Solaris prefers /usr/xpg4/bin/id AC_MSG_RESULT(patch later then 2.2 found) fi + AC_PATH_PROG(__PERL, perl, /usr/bin/perl, $MYPATH) AC_PATH_PROG(PGPBIN, pgp, /usr/bin/pgp, $MYPATH) AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH) AC_PATH_PROG(__RSH, rsh, /usr/bin/rsh, $MYPATH) + AC_PATH_PROG(__SED, sed, /bin/sed, $MYPATH) AC_PATH_PROG(__SSH, ssh, /usr/bin/ssh, $MYPATH) AC_PATH_PROG(__TAR, tar, /bin/tar, $MYPATH) @@ -297,7 +310,7 @@ AC_CHECK_LIB(port, writev) AC_CHECK_FUNC(dbopen, [], AC_CHECK_LIB(db1, dbopen, [LIBS="$LIBS -ldb1"], AC_CHECK_LIB(db, dbopen, [LIBS="$LIBS -ldb"], - AC_MSG_WARN([sorry this package needs libdb.a (from the db package)]))) + AC_MSG_ERROR([sorry rpm requires a db-1.85 API]))) ) AC_CHECK_FUNC(fork, [], [echo "using vfork() instead of fork()"; @@ -316,7 +329,7 @@ for zlib in z gz ; do AC_CHECK_LIB(${zlib}, gzread, [LIBS="$LIBS -l${zlib}"; break], [if test ${zlib} = gz; then - AC_MSG_WARN([sorry rpm needs libz.a or libgz.a (from the zlib package)]) + AC_MSG_ERROR([sorry rpm requires libz.a or libgz.a (from the zlib package)]) fi] ) done @@ -328,13 +341,13 @@ for bz2lib in bz2 ; do AC_CHECK_LIB(${bz2lib}, bzread, [LIBS="$LIBS -l${bz2lib}"; break], [if test ${bz2lib} = bz2; then - AC_MSG_WARN([sorry rpm needs libbz2.a (from the bzip2 package)]) + AC_MSG_WARN([rpm needs libbz2.a (from the bzip2 package)]) fi] ) done dnl Red Hat 4.x has not personality -AC_CHECK_FUNC(personality, [AC_DEFINE(HAVE_PERSONALITY)]) +AC_CHECK_FUNCS(personality) dnl XXX these are needed only by rpmgettext right now AM_FUNC_ERROR_AT_LINE @@ -634,28 +647,28 @@ dnl XXX Glob may be broken on solaris and aix when %files gets something like dnl /usr/share/locale/*/LC_MESSAGES/*.mo dnl (Note: two asterisks in glob pattern.) dnl -dnl AC_ARG_WITH(glob, [ --with-glob use the internal GNU glob ], -dnl [rpm_cv_glob=yes], -dnl [AC_CHECK_FUNCS(glob, rpm_cv_glob=no, rpm_cv_glob=yes)]) -dnl -dnl if test $rpm_cv_glob = no ; then -dnl AC_MSG_CHECKING(whether the glob library is broken) -dnl AC_TRY_RUN([ -dnl #include -dnl #include -dnl main() { glob_t blah ; exit(glob("doc/*/*.8", 0, NULL, &blah) || blah.gl_pathc < 1); } ], -dnl rpm_cv_glob_broken=no, rpm_cv_glob_broken=yes, rpm_cv_glob_broken=yes) -dnl AC_MSG_RESULT([$rpm_cv_glob_broken]) -dnl if test $rpm_cv_glob_broken = yes ; then -dnl echo " --> using the included GNU glob instead." >&AC_FD_MSG -dnl rpm_cv_glob=yes -dnl fi -dnl fi -dnl -dnl if test $rpm_cv_glob = yes; then -dnl AC_DEFINE(USE_GNU_GLOB) -dnl LIBOBJS="$LIBOBJS glob.o" -dnl fi +AC_ARG_WITH(glob, [ --with-glob use the internal GNU glob ], + [rpm_cv_glob=yes], + [AC_CHECK_FUNCS(glob, rpm_cv_glob=no, rpm_cv_glob=yes)]) + +if test $rpm_cv_glob = no ; then + AC_MSG_CHECKING(whether the glob library is broken) + AC_TRY_RUN([ +#include +#include +main() { glob_t blah ; exit(glob("doc/*/*.8", 0, NULL, &blah) || blah.gl_pathc < 1); } ], + rpm_cv_glob_broken=no, rpm_cv_glob_broken=yes, rpm_cv_glob_broken=yes) + AC_MSG_RESULT([$rpm_cv_glob_broken]) + if test $rpm_cv_glob_broken = yes ; then + echo " --> using the included GNU glob instead." >&AC_FD_MSG + rpm_cv_glob=yes + fi +fi + +if test $rpm_cv_glob = yes; then + AC_DEFINE(USE_GNU_GLOB) + LIBOBJS="$LIBOBJS glob.o" +fi AC_CHECK_FUNCS(setlocale) @@ -669,9 +682,12 @@ AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT), [ AC_DEFINE(HAVE_GETMNTINFO_R)], LIBOBJS="$LIBOBJS getmntent.o")])])]) -LCHOWN=no -AC_CHECK_FUNC(lchown, [LCHOWN=yes; AC_DEFINE(HAVE_LCHOWN)]) -if test "$LCHOWN" = no; then +AC_CHECK_FUNC(lchown, + [__CHOWN_RHF="%{__chown} -Rhf" + __CHGRP_RHF="%{__chgrp} -Rhf" + AC_DEFINE(HAVE_LCHOWN)], + [__CHOWN_RHF="%{__chown} -Rf" + __CHGRP_RHF="%{__chgrp} -Rf" dnl Does chown() follow symlinks? This should be a good enough test. AC_MSG_CHECKING(whether chown() follows symlinks) AC_ARG_ENABLE([broken-chown], @@ -683,17 +699,17 @@ if test "$LCHOWN" = no; then result=no fi if test $result = unknown; then - if test `id | cut -f2 -d\= | cut -f1 -d\(` = 0; then + if test `${__ID} | cut -f2 -d\= | cut -f1 -d\(` = 0; then rm -f foo bar touch foo ln -s foo bar - chown 10 bar + ${__CHOWN} 10 bar if test `ls -l foo | awk '{print $3}'` != "root"; then result=yes else result=no fi - rm -f foo bar + ${__RM} -f foo bar else AC_MSG_CHECKING((cannot check by non-root user)) result=no @@ -703,9 +719,9 @@ if test "$LCHOWN" = no; then AC_MSG_RESULT($result) if test $result = yes; then AC_DEFINE(CHOWN_FOLLOWS_SYMLINK) - fi -fi - + fi]) +AC_SUBST(__CHOWN_RHF) +AC_SUBST(__CHGRP_RHF) dnl dnl figure out what root's primary group is diff --git a/macros.in b/macros.in index 4659720..be5dbd6 100644 --- a/macros.in +++ b/macros.in @@ -1,4 +1,4 @@ -# $Id: macros.in,v 1.46 2000/02/13 19:24:19 jbj Exp $ +# $Id: macros.in,v 1.47 2000/03/09 18:13:03 jbj Exp $ #============================================================================== # Macro naming conventions (preliminary): # @@ -32,6 +32,7 @@ %__chown @__CHOWN@ %__cp @__CP@ %__cpio @__CPIO@ +%__grep @__GREP@ %__gzip %{_gzipbin} %__id @__ID@ %__install @__INSTALL@ @@ -41,9 +42,11 @@ %__mkdir_p @MKDIR_P@ %__mv @__MV@ %__patch @__PATCH@ +%__perl @__PERL@ %__pgp %{_pgpbin} %__rm @__RM@ %__rsh @__RSH@ +%__sed @__SED@ %__ssh @__SSH@ %__tar @__TAR@ @@ -88,8 +91,11 @@ #%__find_obsoletes ??? # # XXX fixowner, fixgroup, and fixperms are run at the end of hardcoded setup -%_fixowner [ `%{__id} -u` = '0' ] && %{__chown} -Rhf root -%_fixgroup [ `%{__id} -u` = '0' ] && %{__chgrp} -Rhf @ROOT_GROUP@ +%__id_u @__ID_U@ +%__chown_Rhf @__CHOWN_RHF@ +%__chgrp_Rhf @__CHGRP_RHF@ +%_fixowner [ `%{__id_u}` = '0' ] && %{__chown_Rhf} root +%_fixgroup [ `%{__id_u}` = '0' ] && %{__chgrp_Rhf} @ROOT_GROUP@ %_fixperms %{__chmod} -Rf @FIXPERMS@ # %_gzipbin @GZIPBIN@ diff --git a/misc/Makefile.am b/misc/Makefile.am index 2f88a31..b986dee 100644 --- a/misc/Makefile.am +++ b/misc/Makefile.am @@ -9,7 +9,7 @@ INCLUDES = \ EXTRA_DIST = \ alloca.c basename.c err.c error.c \ fakefork.c fnmatch.c getcwd.c getmntent.c \ - getwd.c memcmp.c \ + getwd.c glob.c memcmp.c \ mktime.c myrealloc.c putenv.c realpath.c \ setenv.c stpcpy.c stpncpy.c strcasecmp.c \ strncasecmp.c strcspn.c strdup.c strerror.c \ @@ -18,7 +18,7 @@ EXTRA_DIST = \ noinst_HEADERS = \ err.h error.h fnmatch.h fstrcmp.h \ - libgettext.h message.h po-lex.h \ + glob.h libgettext.h message.h po-lex.h \ str-list.h fstrcmp.h noinst_LIBRARIES = libmisc.a diff --git a/misc/glob.c b/misc/glob.c new file mode 100644 index 0000000..8cfd337 --- /dev/null +++ b/misc/glob.c @@ -0,0 +1,630 @@ +/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +/* AIX requires this to be the first thing in the file. */ +#if defined (_AIX) && !defined (__GNUC__) + #pragma alloca +#endif + +#include "system.h" + +/* Comment out all this code if we are using the GNU C Library, and are not + actually compiling the library itself. This code is part of the GNU C + Library, but also included in many other GNU distributions. Compiling + and linking in this code is a waste when using the GNU C library + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, + it is simpler to just do this in the source for each such file. */ + +#if defined (_LIBC) || !defined (__GNU_LIBRARY__) + +#ifdef STDC_HEADERS +#include +#endif + +#ifdef HAVE_UNISTD_H +#include +#ifndef POSIX +#ifdef _POSIX_VERSION +#define POSIX +#endif +#endif +#endif + +#if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS) +extern int errno; +#endif + +#ifndef NULL +#define NULL 0 +#endif + +#if defined (POSIX) && !defined (__GNU_LIBRARY__) +/* Posix does not require that the d_ino field be present, and some + systems do not provide it. */ +#define REAL_DIR_ENTRY(dp) 1 +#else +#define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) +#endif /* POSIX */ + +#if (defined (STDC_HEADERS) || defined (__GNU_LIBRARY__)) +#include +#include +#define ANSI_STRING +#else /* No standard headers. */ + +#ifdef HAVE_STRING_H +#define ANSI_STRING +#endif +#ifdef HAVE_MEMORY_H +#include +#endif + +extern void qsort (); +extern void abort (), exit (); + +#endif /* Standard headers. */ + +#ifndef ANSI_STRING + +#ifndef bzero +extern void bzero (); +#endif +#ifndef bcopy +extern void bcopy (); +#endif + +#define memcpy(d, s, n) bcopy ((s), (d), (n)) +#define strrchr rindex +/* memset is only used for zero here, but let's be paranoid. */ +#define memset(s, better_be_zero, n) \ + ((void) ((better_be_zero) == 0 ? (bzero((s), (n)), 0) : (abort(), 0))) +#endif /* Not ANSI_STRING. */ + +#ifndef HAVE_STRCOLL +#define strcoll strcmp +#endif + + +#ifndef __GNU_LIBRARY__ +#ifdef __GNUC__ +__inline +#endif +static char * +my_realloc (p, n) + char *p; + unsigned int n; +{ + /* These casts are the for sake of the broken Ultrix compiler, + which warns of illegal pointer combinations otherwise. */ + if (p == NULL) + return (char *) malloc (n); + return (char *) realloc (p, n); +} +#define realloc my_realloc +#endif + + +#if !defined(__alloca) && !defined(__GNU_LIBRARY__) + +#ifdef __GNUC__ +#undef alloca +#define alloca(n) __builtin_alloca (n) +#else /* Not GCC. */ +#if defined (sparc) || defined (HAVE_ALLOCA_H) +#include +#else /* Not sparc or HAVE_ALLOCA_H. */ +#ifndef _AIX +extern char *alloca (); +#endif /* Not _AIX. */ +#endif /* sparc or HAVE_ALLOCA_H. */ +#endif /* GCC. */ + +#define __alloca alloca + +#endif + +#ifndef STDC_HEADERS +#undef size_t +#define size_t unsigned int +#endif + +/* Some system header files erroneously define these. + We want our own definitions from to take precedence. */ +#undef FNM_PATHNAME +#undef FNM_NOESCAPE +#undef FNM_PERIOD + +/* Some system header files erroneously define these. + We want our own definitions from to take precedence. */ +#undef GLOB_ERR +#undef GLOB_MARK +#undef GLOB_NOSORT +#undef GLOB_DOOFFS +#undef GLOB_NOCHECK +#undef GLOB_APPEND +#undef GLOB_NOESCAPE +#undef GLOB_PERIOD + +__ptr_t (*__glob_opendir_hook) __P ((const char *directory)); +const char *(*__glob_readdir_hook) __P ((__ptr_t stream)); +void (*__glob_closedir_hook) __P ((__ptr_t stream)); + +static int glob_pattern_p __P ((const char *pattern, int quote)); +static int glob_in_dir __P ((const char *pattern, const char *directory, + int flags, + int (*errfunc) __P ((const char *, int)), + glob_t *pglob)); +static int prefix_array __P ((const char *prefix, char **array, size_t n)); +static int collated_compare __P ((const __ptr_t, const __ptr_t)); + +/* Do glob searching for PATTERN, placing results in PGLOB. + The bits defined above may be set in FLAGS. + If a directory cannot be opened or read and ERRFUNC is not nil, + it is called with the pathname that caused the error, and the + `errno' value from the failing call; if it returns non-zero + `glob' returns GLOB_ABEND; if it returns zero, the error is ignored. + If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. + Otherwise, `glob' returns zero. */ +int +glob (pattern, flags, errfunc, pglob) + const char *pattern; + int flags; + int (*errfunc) __P ((const char *, int)); + glob_t *pglob; +{ + const char *filename; + char *dirname; + size_t dirlen; + int status; + int oldcount; + + if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0) + { + errno = EINVAL; + return -1; + } + + /* Find the filename. */ + filename = strrchr (pattern, '/'); + if (filename == NULL) + { + filename = pattern; + dirname = (char *) "."; + dirlen = 0; + } + else if (filename == pattern) + { + /* "/pattern". */ + dirname = (char *) "/"; + dirlen = 1; + ++filename; + } + else + { + dirlen = filename - pattern; + dirname = (char *) __alloca (dirlen + 1); + memcpy (dirname, pattern, dirlen); + dirname[dirlen] = '\0'; + ++filename; + } + + if (filename[0] == '\0' && dirlen > 1) + /* "pattern/". Expand "pattern", appending slashes. */ + { + int ret = glob (dirname, flags | GLOB_MARK, errfunc, pglob); + if (ret == 0) + pglob->gl_flags = (pglob->gl_flags & ~GLOB_MARK) | (flags & GLOB_MARK); + return ret; + } + + if (!(flags & GLOB_APPEND)) + { + pglob->gl_pathc = 0; + pglob->gl_pathv = NULL; + } + + oldcount = pglob->gl_pathc; + + if (glob_pattern_p (dirname, !(flags & GLOB_NOESCAPE))) + { + /* The directory name contains metacharacters, so we + have to glob for the directory, and then glob for + the pattern in each directory found. */ + glob_t dirs; + register int i; + + status = glob (dirname, + ((flags & (GLOB_ERR | GLOB_NOCHECK | GLOB_NOESCAPE)) | + GLOB_NOSORT), + errfunc, &dirs); + if (status != 0) + return status; + + /* We have successfully globbed the preceding directory name. + For each name we found, call glob_in_dir on it and FILENAME, + appending the results to PGLOB. */ + for (i = 0; i < dirs.gl_pathc; ++i) + { + int oldcount; + +#ifdef SHELL + { + /* Make globbing interruptible in the bash shell. */ + extern int interrupt_state; + + if (interrupt_state) + { + globfree (&dirs); + globfree (&files); + return GLOB_ABEND; + } + } +#endif /* SHELL. */ + + oldcount = pglob->gl_pathc; + status = glob_in_dir (filename, dirs.gl_pathv[i], + (flags | GLOB_APPEND) & ~GLOB_NOCHECK, + errfunc, pglob); + if (status == GLOB_NOMATCH) + /* No matches in this directory. Try the next. */ + continue; + + if (status != 0) + { + globfree (&dirs); + globfree (pglob); + return status; + } + + /* Stick the directory on the front of each name. */ + if (prefix_array (dirs.gl_pathv[i], + &pglob->gl_pathv[oldcount], + pglob->gl_pathc - oldcount)) + { + globfree (&dirs); + globfree (pglob); + return GLOB_NOSPACE; + } + } + + flags |= GLOB_MAGCHAR; + + if (pglob->gl_pathc == oldcount) + /* No matches. */ + if (flags & GLOB_NOCHECK) + { + size_t len = strlen (pattern) + 1; + char *patcopy = (char *) malloc (len); + if (patcopy == NULL) + return GLOB_NOSPACE; + memcpy (patcopy, pattern, len); + + pglob->gl_pathv + = (char **) realloc (pglob->gl_pathv, + (pglob->gl_pathc + + ((flags & GLOB_DOOFFS) ? + pglob->gl_offs : 0) + + 1 + 1) * + sizeof (char *)); + if (pglob->gl_pathv == NULL) + { + free (patcopy); + return GLOB_NOSPACE; + } + + if (flags & GLOB_DOOFFS) + while (pglob->gl_pathc < pglob->gl_offs) + pglob->gl_pathv[pglob->gl_pathc++] = NULL; + + pglob->gl_pathv[pglob->gl_pathc++] = patcopy; + pglob->gl_pathv[pglob->gl_pathc] = NULL; + pglob->gl_flags = flags; + } + else + return GLOB_NOMATCH; + } + else + { + status = glob_in_dir (filename, dirname, flags, errfunc, pglob); + if (status != 0) + return status; + + if (dirlen > 0) + { + /* Stick the directory on the front of each name. */ + if (prefix_array (dirname, + &pglob->gl_pathv[oldcount], + pglob->gl_pathc - oldcount)) + { + globfree (pglob); + return GLOB_NOSPACE; + } + } + } + + if (!(flags & GLOB_NOSORT)) + /* Sort the vector. */ + qsort ((__ptr_t) & pglob->gl_pathv[oldcount], + pglob->gl_pathc - oldcount, + sizeof (char *), collated_compare); + + return 0; +} + + +/* Free storage allocated in PGLOB by a previous `glob' call. */ +void +globfree (pglob) + register glob_t *pglob; +{ + if (pglob->gl_pathv != NULL) + { + register int i; + for (i = 0; i < pglob->gl_pathc; ++i) + if (pglob->gl_pathv[i] != NULL) + free ((__ptr_t) pglob->gl_pathv[i]); + free ((__ptr_t) pglob->gl_pathv); + } +} + + +/* Do a collated comparison of A and B. */ +static int +collated_compare (a, b) + const __ptr_t a; + const __ptr_t b; +{ + const char *const s1 = *(const char *const * const) a; + const char *const s2 = *(const char *const * const) b; + + if (s1 == s2) + return 0; + if (s1 == NULL) + return 1; + if (s2 == NULL) + return -1; + return strcoll (s1, s2); +} + + +/* Prepend DIRNAME to each of N members of ARRAY, replacing ARRAY's + elements in place. Return nonzero if out of memory, zero if successful. + A slash is inserted between DIRNAME and each elt of ARRAY, + unless DIRNAME is just "/". Each old element of ARRAY is freed. */ +static int +prefix_array (dirname, array, n) + const char *dirname; + char **array; + const size_t n; +{ + register size_t i; + size_t dirlen = strlen (dirname); + + if (dirlen == 1 && dirname[0] == '/') + /* DIRNAME is just "/", so normal prepending would get us "//foo". + We want "/foo" instead, so don't prepend any chars from DIRNAME. */ + dirlen = 0; + + for (i = 0; i < n; ++i) + { + size_t eltlen = strlen (array[i]) + 1; + char *new = (char *) malloc (dirlen + 1 + eltlen); + if (new == NULL) + { + while (i > 0) + free ((__ptr_t) array[--i]); + return 1; + } + + memcpy (new, dirname, dirlen); + new[dirlen] = '/'; + memcpy (&new[dirlen + 1], array[i], eltlen); + free ((__ptr_t) array[i]); + array[i] = new; + } + + return 0; +} + + +/* Return nonzero if PATTERN contains any metacharacters. + Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ +static int +glob_pattern_p (pattern, quote) + const char *pattern; + const int quote; +{ + register const char *p; + int open = 0; + + for (p = pattern; *p != '\0'; ++p) + switch (*p) + { + case '?': + case '*': + return 1; + + case '\\': + if (quote) + ++p; + break; + + case '[': + open = 1; + break; + + case ']': + if (open) + return 1; + break; + } + + return 0; +} + + +/* Like `glob', but PATTERN is a final pathname component, + and matches are searched for in DIRECTORY. + The GLOB_NOSORT bit in FLAGS is ignored. No sorting is ever done. + The GLOB_APPEND flag is assumed to be set (always appends). */ +static int +glob_in_dir (pattern, directory, flags, errfunc, pglob) + const char *pattern; + const char *directory; + int flags; + int (*errfunc) __P ((const char *, int)); + glob_t *pglob; +{ + __ptr_t stream; + + struct globlink + { + struct globlink *next; + char *name; + }; + struct globlink *names = NULL; + size_t nfound = 0; + + if (!glob_pattern_p (pattern, !(flags & GLOB_NOESCAPE))) + { + stream = NULL; + flags |= GLOB_NOCHECK; + } + else + { + flags |= GLOB_MAGCHAR; + + stream = (__glob_opendir_hook ? (*__glob_opendir_hook) (directory) + : (__ptr_t) opendir (directory)); + if (stream == NULL) + { + if ((errfunc != NULL && (*errfunc) (directory, errno)) || + (flags & GLOB_ERR)) + return GLOB_ABEND; + } + else + while (1) + { + const char *name; + size_t len; + + if (__glob_readdir_hook) + { + name = (*__glob_readdir_hook) (stream); + if (name == NULL) + break; + len = 0; + } + else + { + struct dirent *d = readdir ((DIR *) stream); + if (d == NULL) + break; + if (! REAL_DIR_ENTRY (d)) + continue; + name = d->d_name; + len = NLENGTH(d); + } + + if (fnmatch (pattern, name, + (!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0) | + ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0)) == 0) + { + struct globlink *new + = (struct globlink *) __alloca (sizeof (struct globlink)); + if (len == 0) + len = strlen (name); + new->name + = (char *) malloc (len + ((flags & GLOB_MARK) ? 1 : 0) + 1); + if (new->name == NULL) + goto memory_error; + memcpy ((__ptr_t) new->name, name, len); + if (flags & GLOB_MARK) + new->name[len++] = '/'; + new->name[len] = '\0'; + new->next = names; + names = new; + ++nfound; + } + } + } + + if (nfound == 0 && (flags & GLOB_NOCHECK)) + { + size_t len = strlen (pattern); + nfound = 1; + names = (struct globlink *) __alloca (sizeof (struct globlink)); + names->next = NULL; + names->name = (char *) malloc (len + ((flags & GLOB_MARK) ? 1 : 0) + 1); + if (names->name == NULL) + goto memory_error; + memcpy (names->name, pattern, len); + if (flags & GLOB_MARK) + names->name[len++] = '/'; + names->name[len] = '\0'; + } + + pglob->gl_pathv + = (char **) realloc (pglob->gl_pathv, + (pglob->gl_pathc + + ((flags & GLOB_DOOFFS) ? pglob->gl_offs : 0) + + nfound + 1) * + sizeof (char *)); + if (pglob->gl_pathv == NULL) + goto memory_error; + + if (flags & GLOB_DOOFFS) + while (pglob->gl_pathc < pglob->gl_offs) + pglob->gl_pathv[pglob->gl_pathc++] = NULL; + + for (; names != NULL; names = names->next) + pglob->gl_pathv[pglob->gl_pathc++] = names->name; + pglob->gl_pathv[pglob->gl_pathc] = NULL; + + pglob->gl_flags = flags; + + if (stream != NULL) + { + int save = errno; + if (__glob_closedir_hook) + (*__glob_closedir_hook) (stream); + else + (void) closedir ((DIR *) stream); + errno = save; + } + return nfound == 0 ? GLOB_NOMATCH : 0; + + memory_error: + { + int save = errno; + if (__glob_closedir_hook) + (*__glob_closedir_hook) (stream); + else + (void) closedir ((DIR *) stream); + errno = save; + } + while (names != NULL) + { + if (names->name != NULL) + free ((__ptr_t) names->name); + names = names->next; + } + return GLOB_NOSPACE; +} + +#endif /* _LIBC or not __GNU_LIBRARY__. */ diff --git a/misc/glob.h b/misc/glob.h new file mode 100644 index 0000000..df074c5 --- /dev/null +++ b/misc/glob.h @@ -0,0 +1,97 @@ +/* Copyright (C) 1991, 1992 Free Software Foundation, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _GLOB_H + +#define _GLOB_H 1 + +#ifdef __cplusplus +extern "C" +{ +#endif + +#undef __ptr_t +#if defined (__cplusplus) || defined (__STDC__) +#undef __P +#define __P(protos) protos +#define __ptr_t void * +#else /* Not C++ or ANSI C. */ +#undef __P +#define __P(protos) () +#undef const +#define const +#define __ptr_t char * +#endif /* C++ or ANSI C. */ + +/* Bits set in the FLAGS argument to `glob'. */ +#define GLOB_ERR (1 << 0)/* Return on read errors. */ +#define GLOB_MARK (1 << 1)/* Append a slash to each name. */ +#define GLOB_NOSORT (1 << 2)/* Don't sort the names. */ +#define GLOB_DOOFFS (1 << 3)/* Insert PGLOB->gl_offs NULLs. */ +#define GLOB_NOCHECK (1 << 4)/* If nothing matches, return the pattern. */ +#define GLOB_APPEND (1 << 5)/* Append to results of a previous call. */ +#define GLOB_NOESCAPE (1 << 6)/* Backslashes don't quote metacharacters. */ +#define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */ +#define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \ + GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND|GLOB_PERIOD) + +#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_BSD_SOURCE) +#define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */ +#endif + +/* Error returns from `glob'. */ +#define GLOB_NOSPACE 1 /* Ran out of memory. */ +#define GLOB_ABEND 2 /* Read error. */ +#define GLOB_NOMATCH 3 /* No matches found. */ + +/* Structure describing a globbing run. */ +typedef struct + { + int gl_pathc; /* Count of paths matched by the pattern. */ + char **gl_pathv; /* List of matched pathnames. */ + int gl_offs; /* Slots to reserve in `gl_pathv'. */ + int gl_flags; /* Set to FLAGS, maybe | GLOB_MAGCHAR. */ + } glob_t; + +/* Do glob searching for PATTERN, placing results in PGLOB. + The bits defined above may be set in FLAGS. + If a directory cannot be opened or read and ERRFUNC is not nil, + it is called with the pathname that caused the error, and the + `errno' value from the failing call; if it returns non-zero + `glob' returns GLOB_ABEND; if it returns zero, the error is ignored. + If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. + Otherwise, `glob' returns zero. */ +extern int glob __P ((const char *__pattern, int __flags, + int (*__errfunc) __P ((const char *, int)), + glob_t *__pglob)); + +/* Free storage allocated in PGLOB by a previous `glob' call. */ +extern void globfree __P ((glob_t *__pglob)); + + +#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) +/* If they are not NULL, `glob' uses these functions to read directories. */ +extern __ptr_t (*__glob_opendir_hook) __P ((const char *__directory)); +extern const char *(*__glob_readdir_hook) __P ((__ptr_t __stream)); +extern void (*__glob_closedir_hook) __P ((__ptr_t __stream)); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* glob.h */ diff --git a/perl/Makefile.PL b/perl/Makefile.PL index 4ec6c18..02baf9f 100644 --- a/perl/Makefile.PL +++ b/perl/Makefile.PL @@ -8,7 +8,7 @@ WriteMakefile( 'OBJECT' => 'rpm.o constant.o', 'VERSION_FROM' => 'rpm.pm', # finds $VERSION 'MAKEFILE'=> 'PMakefile', - 'LIBS' => [' -L/usr/local/lib -ldb1 -lz'], # e.g., '-lm' + 'LIBS' => [' -L/usr/local/lib -ldb1 -lz -lbz2'], # e.g., '-lm' 'CCFLAGS' => '-g -O2 -D_GNU_SOURCE -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts', 'OPTIMIZE'=> '-g', 'DEFINE' => '-Dbool=char -DHAS_BOOL', diff --git a/perl/Makefile.in b/perl/Makefile.in index 07406c0..ef17f55 100644 --- a/perl/Makefile.in +++ b/perl/Makefile.in @@ -127,11 +127,15 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ __CAT = @__CAT@ __CHGRP = @__CHGRP@ +__CHGRP_RHF = @__CHGRP_RHF@ __CHMOD = @__CHMOD@ __CHOWN = @__CHOWN@ +__CHOWN_RHF = @__CHOWN_RHF@ __CP = @__CP@ __CPIO = @__CPIO@ +__GREP = @__GREP@ __ID = @__ID@ +__ID_U = @__ID_U@ __INSTALL = @__INSTALL@ __LD = @__LD@ __MAKE = @__MAKE@ @@ -141,8 +145,10 @@ __NM = @__NM@ __OBJCOPY = @__OBJCOPY@ __OBJDUMP = @__OBJDUMP@ __PATCH = @__PATCH@ +__PERL = @__PERL@ __RM = @__RM@ __RSH = @__RSH@ +__SED = @__SED@ __SSH = @__SSH@ __STRIP = @__STRIP@ __TAR = @__TAR@ diff --git a/platform.in b/platform.in index 37fbe5e..c0b7855 100644 --- a/platform.in +++ b/platform.in @@ -41,6 +41,9 @@ #------------------------------------------------------------------------ # Expanded at end of %prep (Red Hat uses these for 6.2) # -%_fixowner [ `%{__id} -u` = '0' ] && %{__chown} -Rhf root -%_fixgroup [ `%{__id} -u` = '0' ] && %{__chgrp} -Rhf root -%_fixperms %{__chmod} -Rf a+rX,g-w,o-w +%__id_u @__ID_U@ +%__chown_Rhf @__CHOWN_RHF@ +%__chgrp_Rhf @__CHGRP_RHF@ +%_fixowner [ `%{__id_u}` = '0' ] && %{__chown_Rhf} root +%_fixgroup [ `%{__id_u}` = '0' ] && %{__chgrp_Rhf} @ROOT_GROUP@ +%_fixperms %{__chmod} -Rf @FIXPERMS@ diff --git a/po/cs.po b/po/cs.po index 7b6ebc3..2853071 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: 1998-10-10 10:10+0200\n" "Last-Translator: Pavel Makovec \n" "Language-Team: Czech \n" diff --git a/po/de.po b/po/de.po index c6865e6..6854fe2 100644 --- a/po/de.po +++ b/po/de.po @@ -37,7 +37,7 @@ msgid "" msgstr "" "Project-Id-Version: rpm 2.5.2\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: 1998-08-03 18:02+02:00\n" "Last-Translator: Karl Eichwalder \n" "Language-Team: German \n" diff --git a/po/fi.po b/po/fi.po index a1095b6..9ee603e 100644 --- a/po/fi.po +++ b/po/fi.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "Last-Translator: Raimo Koski \n" "Language-Team: Finnish \n" "Content-Type: text/plain; charset=\n" diff --git a/po/fr.po b/po/fr.po index 2170d0c..c3fe6f1 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,5 +1,5 @@ msgid "" -msgstr "POT-Creation-Date: 2000-03-07 10:30-0500\n" +msgstr "POT-Creation-Date: 2000-03-09 10:42-0500\n" #: build.c:25 lib/rpminstall.c:250 lib/rpminstall.c:424 #, c-format diff --git a/po/ja.po b/po/ja.po index 3e49a59..479febe 100644 --- a/po/ja.po +++ b/po/ja.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: rpm-3.0.4\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: 1999-12-01 22:49 +JST\n" "Last-Translator: Kanda Mitsuru \n" "Language-Team: JRPM \n" @@ -193,7 +193,7 @@ msgstr "copyright # build root [BuildRoot] # net share [¥Í¥Ã¥È¶¦Í­] # reloate [ºÆÇÛÃÖ/°ÜÆ°¤¹¤ë] -# $Id: ja.po,v 1.28 2000/03/07 15:37:18 jbj Exp $ +# $Id: ja.po,v 1.29 2000/03/09 18:13:03 jbj Exp $ #: rpm.c:199 #, c-format msgid "rpm: %s\n" diff --git a/po/pl.po b/po/pl.po index 4f78264..7a5e8a9 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: rpm-3.0.2\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: 1999-05-25 17:00+0100\n" "Last-Translator: Pawe³ Dziekoñski \n" "Language-Team: Polish \n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 0689851..de937ac 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -2,7 +2,7 @@ # Revised by Arnaldo Carvalho de Melo , 1998. # msgid "" -msgstr "POT-Creation-Date: 2000-03-07 10:30-0500\n" +msgstr "POT-Creation-Date: 2000-03-09 10:42-0500\n" #: build.c:25 lib/rpminstall.c:250 lib/rpminstall.c:424 #, c-format diff --git a/po/rpm.pot b/po/rpm.pot index 37db836..a51ba58 100644 --- a/po/rpm.pot +++ b/po/rpm.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/po/ru.po b/po/ru.po index 1a5fc6d..9394641 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8bit\n" diff --git a/po/sk.po b/po/sk.po index e269a98..3a5675e 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: rpm 2.93\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: 1999-04-08 21:37+02:00\n" "Last-Translator: Stanislav Meduna \n" "Language-Team: Slovak \n" diff --git a/po/sl.po b/po/sl.po index 5773df3..c43cc93 100644 --- a/po/sl.po +++ b/po/sl.po @@ -1,12 +1,12 @@ # -*- mode:po; coding:iso-latin-2; -*- Slovenian messages for Redhat pkg. mngr. # Copyright (C) 2000 Free Software Foundation, Inc. # Primo¾ Peterlin , 2000. -# $Id: sl.po,v 1.13 2000/03/07 15:37:18 jbj Exp $ +# $Id: sl.po,v 1.14 2000/03/09 18:13:04 jbj Exp $ # msgid "" msgstr "" "Project-Id-Version: rpm 3.0.4\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: 2000-02-17 22:25+01:00\n" "Last-Translator: Primo¾ Peterlin \n" "Language-Team: Slovenian \n" diff --git a/po/sr.po b/po/sr.po index bdbbbe5..8163bf5 100644 --- a/po/sr.po +++ b/po/sr.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "Content-Type: text/plain; charset=\n" "Date: 1998-05-02 21:41:47-0400\n" "From: Erik Troan \n" diff --git a/po/sv.po b/po/sv.po index c283274..8efe1ed 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,12 +1,12 @@ # Swedish messages for RPM # Copyright © 1999 Free Software Foundation, Inc. # Göran Uddeborg , 1999, 2000. -# $Revision: 1.73 $ +# $Revision: 1.74 $ # msgid "" msgstr "" "Project-Id-Version: rpm 3.0.4\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: 2000-02-21 12:20+0100\n" "Last-Translator: Göran Uddeborg \n" "Language-Team: Swedish \n" diff --git a/po/tr.po b/po/tr.po index c548f78..1b2b6fc 100644 --- a/po/tr.po +++ b/po/tr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-03-07 10:30-0500\n" +"POT-Creation-Date: 2000-03-09 10:42-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/python/Makefile.in b/python/Makefile.in index 783f637..5f088d3 100644 --- a/python/Makefile.in +++ b/python/Makefile.in @@ -127,11 +127,15 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ __CAT = @__CAT@ __CHGRP = @__CHGRP@ +__CHGRP_RHF = @__CHGRP_RHF@ __CHMOD = @__CHMOD@ __CHOWN = @__CHOWN@ +__CHOWN_RHF = @__CHOWN_RHF@ __CP = @__CP@ __CPIO = @__CPIO@ +__GREP = @__GREP@ __ID = @__ID@ +__ID_U = @__ID_U@ __INSTALL = @__INSTALL@ __LD = @__LD@ __MAKE = @__MAKE@ @@ -141,8 +145,10 @@ __NM = @__NM@ __OBJCOPY = @__OBJCOPY@ __OBJDUMP = @__OBJDUMP@ __PATCH = @__PATCH@ +__PERL = @__PERL@ __RM = @__RM@ __RSH = @__RSH@ +__SED = @__SED@ __SSH = @__SSH@ __STRIP = @__STRIP@ __TAR = @__TAR@ diff --git a/rpm.spec b/rpm.spec index 3d9d52e..fe917e7 100644 --- a/rpm.spec +++ b/rpm.spec @@ -165,7 +165,7 @@ fi %dir /usr/src/redhat/SRPMS %dir /usr/src/redhat/RPMS /usr/src/redhat/RPMS/* -/usr/share/locale/*/LC_MESSAGES/rpm.mo +/usr/*/locale/*/LC_MESSAGES/rpm.mo /usr/man/man[18]/*.[18]* %lang(pl) /usr/man/pl/man[18]/*.[18]* %lang(ru) /usr/man/ru/man[18]/*.[18]* @@ -209,7 +209,7 @@ fi %files -n popt %defattr(-,root,root) /usr/lib/libpopt.so.* -/usr/share/locale/*/LC_MESSAGES/popt.mo +/usr/*/locale/*/LC_MESSAGES/popt.mo /usr/man/man3/popt.3* # XXX These may end up in popt-devel but it hardly seems worth the effort now. @@ -219,6 +219,15 @@ fi /usr/include/popt.h %changelog +* Thu Mar 9 2000 Jeff Johnson +- portability: skip bzip2 if not available. +- portability: skip gzseek if not available (zlib-1.0.4). +- portability: skip personality if not available (linux). +- portability: always include arpa/inet.h (HP-UX). +- portability: don't use id -u (Brandon Allbery). +- portability: don't chown/chgrp -h w/o lchown. +- portability: splats in rpm.spec to find /usr/{share,local}/locale/* + * Thu Mar 2 2000 Jeff Johnson - simpler hpux.prov script (Tim Mooney). diff --git a/scripts/Makefile.in b/scripts/Makefile.in index ba114da..6c1e522 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -127,11 +127,15 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ __CAT = @__CAT@ __CHGRP = @__CHGRP@ +__CHGRP_RHF = @__CHGRP_RHF@ __CHMOD = @__CHMOD@ __CHOWN = @__CHOWN@ +__CHOWN_RHF = @__CHOWN_RHF@ __CP = @__CP@ __CPIO = @__CPIO@ +__GREP = @__GREP@ __ID = @__ID@ +__ID_U = @__ID_U@ __INSTALL = @__INSTALL@ __LD = @__LD@ __MAKE = @__MAKE@ @@ -141,8 +145,10 @@ __NM = @__NM@ __OBJCOPY = @__OBJCOPY@ __OBJDUMP = @__OBJDUMP@ __PATCH = @__PATCH@ +__PERL = @__PERL@ __RM = @__RM@ __RSH = @__RSH@ +__SED = @__SED@ __SSH = @__SSH@ __STRIP = @__STRIP@ __TAR = @__TAR@ -- 2.7.4