diff --git a/CHANGES b/CHANGES index 63239f434..d4f583d77 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ - add --xml popt alias for query modes. - remove _rpmdb now that python2.[34] are commonly available. - remove remnant -I/opt/local hacks, --prefix=/usr is recommended. + - rework configure.ac et al to lose internal library baggage flexibly. 4.4 -> 4.4.1: - force *.py->*.pyo byte code compilation with brp-python-bytecompile. diff --git a/Makefile.am b/Makefile.am index 095ed6955..99c87310c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,7 +15,7 @@ EXTRA_DIST = CHANGES CREDITS Doxyheader GROUPS README.amiga INSTALL \ po/*.in po/*.po po/rpm.pot \ rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c -SUBDIRS = intl po @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ file @WITH_DB_SUBDIR@ popt @WITH_BEECRYPT_SUBDIR@ lua rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc . +SUBDIRS = intl po misc @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ @WITH_MAGIC_SUBDIR@ @WITH_DB_SUBDIR@ @WITH_SQLITE3_SUBDIR@ @WITH_POPT_SUBDIR@ @WITH_BEECRYPT_SUBDIR@ @WITH_NEON_SUBDIR@ lua rpmio rpmdb lib build @WITH_PYTHON_SUBDIR@ tools scripts tests doc . INCLUDES = \ -I$(top_srcdir)/build \ @@ -23,7 +23,7 @@ INCLUDES = \ -I$(top_srcdir)/rpmdb \ -I$(top_srcdir)/rpmio \ @WITH_BEECRYPT_INCLUDE@ \ - -I$(top_srcdir)/popt \ + @WITH_POPT_INCLUDE@ \ -I$(top_srcdir)/misc \ @WITH_LIBELF_INCLUDE@ \ @INCPATH@ @@ -36,7 +36,7 @@ myLDADD = \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmdb/librpmdb.la \ $(top_builddir)/rpmio/librpmio.la \ - $(top_builddir)/popt/libpopt.la \ + @WITH_POPT_LIB@ \ @WITH_ZLIB_LIB@ \ @LIBMISC@ diff --git a/configure.ac b/configure.ac index a4d178d9e..a44c18f04 100644 --- a/configure.ac +++ b/configure.ac @@ -209,7 +209,7 @@ dnl substitute this into config.h, so the C source picks it up. dnl AC_DEFINE_UNQUOTED(MKDIR_P, "${MKDIR_P}", [A full path to a program, possibly with arguments, that will create a - directory and all necessary parent directories, ala `mkdir -p']) + directory and all necessary parent directories, ala 'mkdir -p']) AC_SUBST(MKDIR_P) AC_ISC_POSIX @@ -302,6 +302,9 @@ addlib() { esac } +#================= +# Check for zlib library. Prefer internal, otherwise external. + WITH_ZLIB_SUBDIR= WITH_ZLIB_INCLUDE= WITH_ZLIB_LIB= @@ -317,6 +320,33 @@ AC_SUBST(WITH_ZLIB_SUBDIR) AC_SUBST(WITH_ZLIB_INCLUDE) AC_SUBST(WITH_ZLIB_LIB) +if test -z "${WITH_ZLIB_LIB}" ; then + for zlib in z gz ; do + AC_CHECK_LIB(${zlib}, gzread, + [LIBS="$LIBS -l${zlib}"; break], + [if test ${zlib} = gz; then + AC_MSG_ERROR([sorry rpm requires libz.a or libgz.a (from the zlib package)]) + fi] + ) + done + +dnl zlib-1.0.4 has not gzseek + AC_CHECK_LIB(${zlib}, gzseek, [AC_DEFINE(HAVE_GZSEEK, 1, [Define as 1 if your zlib has gzseek()])]) +fi + +#================= +# Check for bzip2 library. Prefer external, otherwise none. + +AC_CHECK_LIB(bz2, bzread, [LIBS="$LIBS -lbz2"], + AC_CHECK_LIB(bz2, BZ2_bzread, [ + WITH_BZIP2=1 + LIBS="$LIBS -lbz2" + AC_DEFINE(HAVE_BZ2_1_0, 1, [Define as 1 if you bzip2 1.0]) ], + WITH_BZIP2=0)) +AC_SUBST(WITH_BZIP2) + +#================= + localdone= dirs=$prefix @@ -371,101 +401,6 @@ dnl dnl Checks for libraries. -#================= -# Check for libelf library. Prefer external, otherwise internal. -WITH_ELFUTILS_SUBDIR= -WITH_LIBELF_INCLUDE= -WITH_LIBELF_LIB= -AC_CHECK_HEADER([libelf.h]) -AC_CHECK_HEADER([gelf.h], [ - AC_DEFINE(HAVE_GELF_H, 1, [Define to 1 if you have the header file.]) - AC_CHECK_LIB(elf, gelf_getvernaux, [ - AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the `elf' library (-lelf).]) - WITH_LIBELF_LIB="-lelf" - ]) - ], [ - if test -d elfutils/libelf ; then - AC_DEFINE(HAVE_GELF_H, 1, [Define to 1 if you have the header file.]) - AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the `elf' library (-lelf).]) - WITH_ELFUTILS_SUBDIR=elfutils - WITH_LIBELF_INCLUDE="-I\${top_srcdir}/${WITH_ELFUTILS_SUBDIR}/libelf" - WITH_LIBELF_LIB="\${top_builddir}/${WITH_ELFUTILS_SUBDIR}/libelf/libelf.a" - fi -]) -AC_SUBST(WITH_ELFUTILS_SUBDIR) -AC_SUBST(WITH_LIBELF_INCLUDE) -AC_SUBST(WITH_LIBELF_LIB) - -WITH_LIBDWARF_INCLUDE= -WITH_LIBDWARF_DEBUGEDIT= -AC_CHECK_HEADER([dwarf.h], [ - AC_DEFINE(HAVE_DWARF_H, 1, [Define to 1 if you have the header file.]) - WITH_LIBDWARF_DEBUGEDIT="debugedit" - ], [ - if test -d elfutils/libdwarf ; then - AC_DEFINE(HAVE_DWARF_H, 1, [Define to 1 if you have the header file.]) - WITH_LIBDWARF_INCLUDE="-I\${top_srcdir}/${WITH_ELFUTILS_SUBDIR}/libdwarf" - WITH_LIBDWARF_DEBUGEDIT="debugedit" - fi -]) -AC_SUBST(WITH_LIBDWARF_INCLUDE) -AC_SUBST(WITH_LIBDWARF_DEBUGEDIT) - -#================= -# Check for beecrypt library. Prefer external, otherwise internal. -WITH_BEECRYPT_SUBDIR= -WITH_BEECRYPT_INCLUDE= -WITH_BEECRYPT_LIB= -AC_CHECK_HEADER([beecrypt/beecrypt.h], [ - AC_CHECK_LIB(beecrypt, mpfprintln, [ - AC_DEFINE(HAVE_LIBBEECRYPT, 1, [Define to 1 if you have the `beecrypt' library (-lbeecrypt).]) - AC_CHECK_HEADER([beecrypt/api.h], [ - AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the header file.]) - ]) - WITH_BEECRYPT_INCLUDE="-I${includedir}/beecrypt" - WITH_BEECRYPT_LIB="-lbeecrypt" - ]) - ], [ - if test -d beecrypt ; then - AC_DEFINE(HAVE_LIBBEECRYPT, 1, [Define to 1 if you have the `beecrypt' library (-lbeecrypt).]) - WITH_BEECRYPT_SUBDIR=beecrypt - WITH_BEECRYPT_INCLUDE="-I\${top_srcdir}/${WITH_BEECRYPT_SUBDIR}" - WITH_BEECRYPT_LIB="\${top_builddir}/${WITH_BEECRYPT_SUBDIR}/libbeecrypt.la" - fi -]) -AC_SUBST(WITH_BEECRYPT_SUBDIR) -AC_SUBST(WITH_BEECRYPT_INCLUDE) -AC_SUBST(WITH_BEECRYPT_LIB) - -#================= -# Check for neon library. Prefer external, otherwise internal. -WITH_NEON_SUBDIR= -WITH_NEON_INCLUDE= -WITH_NEON_LIB= -AC_CHECK_HEADER([neon/ne_session.h], [ - AC_CHECK_LIB(neon, ne_session_create, [ - AC_DEFINE(HAVE_LIBNEON, 1, [Define to 1 if you have the `neon' library (-lneon).]) - AC_CHECK_LIB(neon, ne_get_response_header, [ - AC_DEFINE(HAVE_NEON_NE_GET_RESPONSE_HEADER, 1, [Define to 1 if you have ne_get_response_header() in libneon.]) - ]) - AC_CHECK_LIB(neon, ne_send_request_chunk, [ - AC_DEFINE(HAVE_NEON_NE_SEND_REQUEST_CHUNK, 1, [Define to 1 if you have ne_send_request_chunk() in libneon.]) - ]) - WITH_NEON_INCLUDE="-I${includedir}/neon" - WITH_NEON_LIB="-lneon" - ]) - ], [ - if test -d neon ; then - AC_DEFINE(HAVE_LIBNEON, 1, [Define to 1 if you have the `neon' library (-lneon).]) - WITH_NEON_SUBDIR=neon - WITH_NEON_INCLUDE="-I\${top_srcdir}/${WITH_NEON_SUBDIR}/src" - WITH_NEON_LIB="\${top_builddir}/${WITH_NEON_SUBDIR}/src/libneon.la" - fi -]) -AC_SUBST(WITH_NEON_SUBDIR) -AC_SUBST(WITH_NEON_INCLUDE) -AC_SUBST(WITH_NEON_LIB) - AC_CHECK_FUNC(setreuid, [], [ AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi]) ]) @@ -510,30 +445,192 @@ dnl for this macro (not LIBS=...), otherwise the check for dbopen dnl will fail. AC_CHECK_LIB(port, writev) +#================= +# Check for libelf library. Prefer external, then internal, otherwise none. +WITH_ELFUTILS_SUBDIR= +WITH_LIBELF_INCLUDE= +WITH_LIBELF_LIB= +AC_CHECK_HEADER([libelf.h]) +AC_CHECK_HEADER([gelf.h], [ + AC_DEFINE(HAVE_GELF_H, 1, [Define to 1 if you have the header file.]) + AC_CHECK_LIB(elf, gelf_getvernaux, [ + AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).]) + WITH_LIBELF_LIB="-lelf" + ]) + ], [ + if test -d elfutils/libelf ; then + AC_DEFINE(HAVE_GELF_H, 1, [Define to 1 if you have the header file.]) + AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).]) + WITH_ELFUTILS_SUBDIR=elfutils + WITH_LIBELF_INCLUDE="-I\${top_srcdir}/${WITH_ELFUTILS_SUBDIR}/libelf" + WITH_LIBELF_LIB="\${top_builddir}/${WITH_ELFUTILS_SUBDIR}/libelf/libelf.a" + fi +]) +AC_SUBST(WITH_ELFUTILS_SUBDIR) +AC_SUBST(WITH_LIBELF_INCLUDE) +AC_SUBST(WITH_LIBELF_LIB) + +WITH_LIBDWARF_INCLUDE= +WITH_LIBDWARF_DEBUGEDIT= +AC_CHECK_HEADER([dwarf.h], [ + AC_DEFINE(HAVE_DWARF_H, 1, [Define to 1 if you have the header file.]) + WITH_LIBDWARF_DEBUGEDIT="debugedit" +],[ + if test -d elfutils/libdwarf ; then + AC_DEFINE(HAVE_DWARF_H, 1, [Define to 1 if you have the header file.]) + WITH_LIBDWARF_INCLUDE="-I\${top_srcdir}/${WITH_ELFUTILS_SUBDIR}/libdwarf" + WITH_LIBDWARF_DEBUGEDIT="debugedit" + fi +]) +AC_SUBST(WITH_LIBDWARF_INCLUDE) +AC_SUBST(WITH_LIBDWARF_DEBUGEDIT) + +#================= +# Check for beecrypt library. Prefer external, otherwise internal. +WITH_BEECRYPT_SUBDIR= +WITH_BEECRYPT_INCLUDE= +WITH_BEECRYPT_LIB= +AC_CHECK_HEADER([beecrypt/beecrypt.h], [ + AC_CHECK_LIB(beecrypt, mpfprintln, [ + AC_DEFINE(HAVE_LIBBEECRYPT, 1, [Define to 1 if you have the 'beecrypt' library (-lbeecrypt).]) + AC_CHECK_HEADER([beecrypt/api.h], [ + AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the header file.]) + ]) + WITH_BEECRYPT_INCLUDE="-I${includedir}/beecrypt" + WITH_BEECRYPT_LIB="-lbeecrypt" + ]) +],[ + if test -d beecrypt ; then + AC_DEFINE(HAVE_LIBBEECRYPT, 1, [Define to 1 if you have the 'beecrypt' library (-lbeecrypt).]) + WITH_BEECRYPT_SUBDIR=beecrypt + WITH_BEECRYPT_INCLUDE="-I\${top_srcdir}/${WITH_BEECRYPT_SUBDIR}" + WITH_BEECRYPT_LIB="\${top_builddir}/${WITH_BEECRYPT_SUBDIR}/libbeecrypt.la" + fi +]) +AC_SUBST(WITH_BEECRYPT_SUBDIR) +AC_SUBST(WITH_BEECRYPT_INCLUDE) +AC_SUBST(WITH_BEECRYPT_LIB) + +#================= +# Check for neon library. Prefer external, otherwise internal. +WITH_NEON_SUBDIR= +WITH_NEON_INCLUDE= +WITH_NEON_LIB= +AC_CHECK_HEADER([neon/ne_session.h], [ + AC_CHECK_LIB(neon, ne_session_create, [ + AC_DEFINE(HAVE_LIBNEON, 1, [Define to 1 if you have the 'neon' library (-lneon).]) + AC_CHECK_LIB(neon, ne_get_response_header, [ + AC_DEFINE(HAVE_NEON_NE_GET_RESPONSE_HEADER, 1, [Define to 1 if you have ne_get_response_header() in libneon.]) + ]) + AC_CHECK_LIB(neon, ne_send_request_chunk, [ + AC_DEFINE(HAVE_NEON_NE_SEND_REQUEST_CHUNK, 1, [Define to 1 if you have ne_send_request_chunk() in libneon.]) + ]) + WITH_NEON_INCLUDE="-I${includedir}/neon" + WITH_NEON_LIB="-lneon" + ]) +],[ + if test -d neon ; then + AC_DEFINE(HAVE_LIBNEON, 1, [Define to 1 if you have the 'neon' library (-lneon).]) +# XXX HAVE_NEON_NE_GET_RESPONSE_HEADER assumes libneon-0.25 devel internal + AC_DEFINE(HAVE_NEON_NE_GET_RESPONSE_HEADER, 1, [Define to 1 if you have ne_get_response_header() in libneon.]) + WITH_NEON_SUBDIR=neon + WITH_NEON_INCLUDE="-I\${top_srcdir}/${WITH_NEON_SUBDIR}/src" + WITH_NEON_LIB="\${top_builddir}/${WITH_NEON_SUBDIR}/src/libneon.la" + fi +]) +AC_SUBST(WITH_NEON_SUBDIR) +AC_SUBST(WITH_NEON_INCLUDE) +AC_SUBST(WITH_NEON_LIB) + +#================= +# Check for magic library. Prefer internal, otherwise external. +WITH_MAGIC_SUBDIR= +WITH_MAGIC_INCLUDE= +WITH_MAGIC_LIB= + +if test -d file ; then + WITH_MAGIC_SUBDIR=file + WITH_MAGIC_INCLUDE="-I\${top_srcdir}/${WITH_MAGIC_SUBDIR}/src" + WITH_MAGIC_LIB="\${top_builddir}/${WITH_MAGIC_SUBDIR}/src/libmagic.la" +else + AC_CHECK_HEADER([magic.h], [ + AC_CHECK_LIB(magic, magic_open, [ + WITH_MAGIC_SUBDIR= + WITH_MAGIC_INCLUDE= + WITH_MAGIC_LIB="-lmagic" + ]) + ]) +fi + +AC_SUBST(WITH_MAGIC_SUBDIR) +AC_SUBST(WITH_MAGIC_INCLUDE) +AC_SUBST(WITH_MAGIC_LIB) + +#================= +# Check for popt library. Prefer internal, otherwise external. +WITH_POPT_SUBDIR= +WITH_POPT_INCLUDE= +WITH_POPT_LIB= + +if test -d popt ; then + WITH_POPT_SUBDIR=popt + WITH_POPT_INCLUDE="-I\${top_srcdir}/${WITH_POPT_SUBDIR}" + WITH_POPT_LIB="\${top_builddir}/${WITH_POPT_SUBDIR}/libpopt.la" +else + AC_CHECK_HEADER([popt.h], [ + AC_CHECK_LIB(popt, poptGetContext, [ + WITH_POPT_SUBDIR= + WITH_POPT_INCLUDE= + WITH_POPT_LIB="-lpopt" + ]) + ]) +fi + +AC_SUBST(WITH_POPT_SUBDIR) +AC_SUBST(WITH_POPT_INCLUDE) +AC_SUBST(WITH_POPT_LIB) + +#================= + dnl ------------------ with internal db AC_DEFINE(HAVE_DB3_DB_H, 1, [Define if you have the header file]) WITH_DB_SUBDIR=db3 WITH_INTERNAL_DB=1 DBLIBSRCS="db3.c" -AC_CHECK_HEADER([sqlite3.h], [ - AC_DEFINE(HAVE_SQLITE3_H, 1, [Define if you have the header file]) - WITH_SQLITE3=1 - WITH_SQLITE3_INCLUDE= - WITH_SQLITE3_LIB=-lsqlite3 - DBLIBSRCS="$DBLIBSRCS sqlite.c" -],[ - WITH_SQLITE3=0 - WITH_SQLITE3_INCLUDE= - WITH_SQLITE3_LIB= -]) - AC_SUBST(WITH_DB_SUBDIR) AC_SUBST(WITH_INTERNAL_DB) -AC_SUBST(WITH_SQLITE3) + +#================= +# Check for sqlite3 library. Prefer external, then internal, otherwise none. +WITH_SQLITE3_SUBDIR= +WITH_SQLITE3_INCLUDE= +WITH_SQLITE3_LIB= + +AC_CHECK_HEADER([sqlite3.h], [ + AC_CHECK_LIB(sqlite3, sqlite3_open, [ + AC_DEFINE(HAVE_SQLITE3_H, 1, [Define if you have the header file]) + WITH_SQLITE3_SUBDIR= + WITH_SQLITE3_INCLUDE= + WITH_SQLITE3_LIB="-lsqlite3" + DBLIBSRCS="$DBLIBSRCS sqlite.c" + ]) +],[ + if test -d sqlite ; then + AC_DEFINE(HAVE_SQLITE3_H, 1, [Define if you have the header file]) + WITH_SQLITE3_SUBDIR=sqlite + WITH_SQLITE3_INCLUDE="-I\${top_srcdir}/${WITH_SQLITE3_SUBDIR}/src" + WITH_SQLITE3_LIB="\${top_builddir}/${WITH_SQLITE3_SUBDIR}/libsqlite3.la" + DBLIBSRCS="$DBLIBSRCS sqlite.c" + fi +]) + +AC_SUBST(WITH_SQLITE3_SUBDIR) AC_SUBST(WITH_SQLITE3_INCLUDE) AC_SUBST(WITH_SQLITE3_LIB) +#================= + DBLIBOBJS=`echo $DBLIBSRCS | sed -e "s/\.c/\.lo/g"` AC_SUBST(DBLIBSRCS) @@ -547,28 +644,6 @@ dnl AmigaOS and IXEmul have a fork() dummy ;; esac -if test -z "${WITH_ZLIB_LIB}" ; then -for zlib in z gz ; do - AC_CHECK_LIB(${zlib}, gzread, - [LIBS="$LIBS -l${zlib}"; break], - [if test ${zlib} = gz; then - AC_MSG_ERROR([sorry rpm requires libz.a or libgz.a (from the zlib package)]) - fi] - ) -done - -dnl zlib-1.0.4 has not gzseek -AC_CHECK_LIB(${zlib}, gzseek, [AC_DEFINE(HAVE_GZSEEK, 1, [Define as 1 if your zlib has gzseek()])]) -fi - -AC_CHECK_LIB(bz2, bzread, [LIBS="$LIBS -lbz2"], - AC_CHECK_LIB(bz2, BZ2_bzread, [ - WITH_BZIP2=1 - LIBS="$LIBS -lbz2" - AC_DEFINE(HAVE_BZ2_1_0, 1, [Define as 1 if you bzip2 1.0]) ], - WITH_BZIP2=0)) -AC_SUBST(WITH_BZIP2) - AM_GNU_GETTEXT dnl TVM: dnl horrible *temporary* hack to make sure that if we found gettext() in @@ -609,6 +684,7 @@ dnl We should really emulate/steal sections of the statfs and struct statfs dnl checks from GNU fileutils. dnl AC_MSG_CHECKING(for struct statfs) + dnl dnl this is easier than nesting AC_TRY_COMPILEs... dnl diff --git a/lib/Makefile.am b/lib/Makefile.am index abe3a6403..d433b75ee 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -10,7 +10,7 @@ INCLUDES = -I. \ -I$(top_srcdir)/rpmdb \ -I$(top_srcdir)/rpmio \ @WITH_BEECRYPT_INCLUDE@ \ - -I$(top_srcdir)/popt \ + @WITH_POPT_INCLUDE@ \ -I$(top_srcdir)/misc \ @INCPATH@ @@ -44,7 +44,7 @@ librpm_la_SOURCES = \ librpm_la_LDFLAGS = -release 4.4 $(LDFLAGS) \ $(top_builddir)/rpmdb/librpmdb.la \ $(top_builddir)/rpmio/librpmio.la \ - $(top_builddir)/popt/libpopt.la \ + @WITH_POPT_LIB@ \ @WITH_SELINUX_LIB@ \ @INTLLIBS@ diff --git a/python/Makefile.am b/python/Makefile.am index b79ed016b..1b8c83ae2 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -16,11 +16,11 @@ INCLUDES = -I. \ -I$(top_srcdir)/lib \ -I$(top_srcdir)/rpmdb \ -I$(top_srcdir)/rpmio \ + @WITH_LIBELF_INCLUDE@ \ @WITH_BEECRYPT_INCLUDE@ \ - -I$(top_srcdir)/popt \ + @WITH_POPT_INCLUDE@ \ -I$(top_srcdir)/misc \ -I$(pyincdir) \ - @WITH_LIBELF_INCLUDE@ \ @INCPATH@ noinst_HEADERS = header-py.h \ @@ -29,11 +29,11 @@ noinst_HEADERS = header-py.h \ spec-py.h mylibs= \ + $(top_builddir)/build/librpmbuild.la \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmdb/librpmdb.la \ $(top_builddir)/rpmio/librpmio.la \ - $(top_builddir)/popt/libpopt.la \ - $(top_builddir)/build/librpmbuild.la \ + @WITH_POPT_LIB@ \ @WITH_LIBELF_LIB@ LDADD = diff --git a/rpm.spec.in b/rpm.spec.in index 96932de8d..48457a2ad 100644 --- a/rpm.spec.in +++ b/rpm.spec.in @@ -20,7 +20,7 @@ Name: rpm %define version @VERSION@ Version: %{version} %{expand: %%define rpm_version %{version}} -Release: 0.3 +Release: 0.4 Group: System Environment/Base Source: ftp://jbj.org/pub/rpm-devel/rpm-%{rpm_version}.tar.gz License: GPL @@ -498,13 +498,14 @@ exit 0 %{__includedir}/popt.h %changelog -* Wed Feb 16 2005 Jeff Johnson 4.4.2-0.3 +* Wed Feb 16 2005 Jeff Johnson 4.4.2-0.4 - sqlite3: revert cClose scoping, data is freed in cClose unlike db4. - build against sqlite3-3.1.2. - sqlite3: update encode/decode from sqlite-2.8.16. - add --xml popt alias for query modes. - remove _rpmdb now that python2.[34] are commonly available. - remove remnant -I/opt/local hacks, --prefix=/usr is recommended. +- rework configure.ac et al to lose internal library baggage flexibly. * Sun Feb 13 2005 Jeff Johnson 4.4.2-0.1 - start 4.4.2 devel. diff --git a/rpmdb/Makefile.am b/rpmdb/Makefile.am index c9582195d..fc8d21d1d 100644 --- a/rpmdb/Makefile.am +++ b/rpmdb/Makefile.am @@ -10,7 +10,7 @@ INCLUDES = -I. \ -I$(top_srcdir)/lib \ -I$(top_srcdir)/rpmio \ @WITH_BEECRYPT_INCLUDE@ \ - -I$(top_srcdir)/popt \ + @WITH_POPT_INCLUDE@ \ -I$(top_srcdir)/misc \ @WITH_SQLITE3_INCLUDE@ \ @WITH_LIBELF_INCLUDE@ \ @@ -53,7 +53,7 @@ librpmdb_la_SOURCES = \ tagname.c tagtbl.c librpmdb_la_LDFLAGS = -release 4.4 \ $(top_builddir)/rpmio/librpmio.la \ - $(top_builddir)/popt/libpopt.la \ + @WITH_POPT_LIB@ \ @WITH_SQLITE3_LIB@ \ @WITH_LIBELF_LIB@ librpmdb_la_LIBADD = $(DBLIBOBJS) $(libdb_la) diff --git a/rpmio/Makefile.am b/rpmio/Makefile.am index 8a6a723a1..b3c221411 100644 --- a/rpmio/Makefile.am +++ b/rpmio/Makefile.am @@ -11,8 +11,9 @@ EXTRA_PROGRAMS = tax tdigest tdir tfts tget thkp tput tglob tinv tkey tring trpm INCLUDES = -I. \ -I$(top_srcdir) \ @WITH_BEECRYPT_INCLUDE@ \ + @WITH_NEON_INCLUDE@ \ @WITH_LUA_INCLUDE@ \ - -I$(top_srcdir)/popt \ + @WITH_POPT_INCLUDE@ \ -I$(top_srcdir)/misc \ @INCPATH@ @@ -35,10 +36,11 @@ librpmio_la_SOURCES = \ rpmpgp.c rpmrpc.c rpmsq.c rpmsw.c strcasecmp.c stubs.c url.c ugid.c librpmio_la_LDFLAGS = -release 4.4 $(LDFLAGS) \ @WITH_BEECRYPT_LIB@ \ + @WITH_NEON_LIB@ \ @WITH_LUA_LIB@ \ - $(top_builddir)/file/src/libmagic.la \ + @WITH_MAGIC_LIB@ \ @WITH_ZLIB_LIB@ \ - -lneon -lpthread + -lpthread librpmio_la_LIBADD = # $(BEECRYPTLOBJS) librpmio_la_DEPENDENCIES = # .created diff --git a/rpmio/rpmdav.c b/rpmio/rpmdav.c index d990fc670..876239230 100644 --- a/rpmio/rpmdav.c +++ b/rpmio/rpmdav.c @@ -9,16 +9,23 @@ #include #endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "ne_alloc.h" +#include "ne_auth.h" +#include "ne_basic.h" +#include "ne_dates.h" +#include "ne_locks.h" + +#define NEONBLOWSCHUNKS +#ifndef NEONBLOWSCHUNKS +/* HACK: include ne_private.h to access sess->socket for now. */ +#include "../neon/src/ne_private.h" +#endif + +#include "ne_props.h" +#include "ne_request.h" +#include "ne_socket.h" +#include "ne_string.h" +#include "ne_utils.h" #include @@ -936,7 +943,7 @@ assert(ctrl->req != NULL); #endif if (!strcmp(httpCmd, "PUT")) { -#ifdef NOTYET /* XXX HACK no wr_chunked until libneon supports */ +#if defined(HAVE_NEON_NE_SEND_REQUEST_CHUNK) ctrl->wr_chunked = 1; ne_add_request_header(ctrl->req, "Transfer-Encoding", "chunked"); ne_set_request_chunked(ctrl->req, 1); @@ -1065,13 +1072,28 @@ hexdump(buf, rc); ssize_t davWrite(void * cookie, const char * buf, size_t count) { -#ifdef NOTYET /* XXX HACK no wr_chunked until libneon supports */ FD_t fd = cookie; ssize_t rc; int xx; +#ifndef NEONBLOWSCHUNKS + ne_session * sess; + +assert(fd->req != NULL); + sess = ne_get_session(fd->req); +assert(sess != NULL); + + /* HACK: include ne_private.h to access sess->socket for now. */ + xx = ne_sock_fullwrite(sess->socket, buf, count); +#else +#if defined(HAVE_NEON_NE_SEND_REQUEST_CHUNK) assert(fd->req != NULL); xx = ne_send_request_chunk(fd->req, buf, count); +#else + errno = EIO; /* HACK */ + return -1; +#endif +#endif /* HACK: stupid error impedence matching. */ rc = (xx == 0 ? count : -1); @@ -1084,10 +1106,6 @@ hexdump(buf, count); #endif return rc; -#else - errno = EIO; /* HACK */ - return -1; -#endif } int davSeek(void * cookie, /*@unused@*/ _libio_pos_t pos, int whence) diff --git a/rpmio/rpmurl.h b/rpmio/rpmurl.h index a254fb5cf..4b02a21f4 100644 --- a/rpmio/rpmurl.h +++ b/rpmio/rpmurl.h @@ -53,20 +53,20 @@ struct urlinfo_s { FD_t data; /*!< per-xfer data channel */ /*@relnull@*/ - void * capabilities; /*!< neon ne_server_capabilities ptr */ + void * capabilities; /*!< neon: ne_server_capabilities ptr */ /*@relnull@*/ - void * lockstore; /*!< neon ne_lock_store ptr */ + void * lockstore; /*!< neon: ne_lock_store ptr */ /*@relnull@*/ - void * sess; /*!< neon ne_session ptr */ - off_t current; /*!< neon current body offset. */ - off_t total; /*!< neon total body length. */ - int connstatus; /*!< neon connection status. */ + void * sess; /*!< neon: ne_session ptr */ + off_t current; /*!< neon: current body offset. */ + off_t total; /*!< neon: total body length. */ + int connstatus; /*!< neon: connection status. */ #ifdef REFERENCE typedef enum { - ne_conn_namelookup, /* lookup up hostname (info = hostname) */ - ne_conn_connecting, /* connecting to host (info = hostname) */ - ne_conn_connected, /* connected to host (info = hostname) */ - ne_conn_secure /* connection now secure (info = crypto level) */ + ne_conn_namelookup, /* lookup up hostname (info = hostname) */ + ne_conn_connecting, /* connecting to host (info = hostname) */ + ne_conn_connected, /* connected to host (info = hostname) */ + ne_conn_secure /* connection now secure (info = crypto level) */ } ne_conn_status; #endif diff --git a/sqlite/.cvsignore b/sqlite/.cvsignore new file mode 100644 index 000000000..a858fba38 --- /dev/null +++ b/sqlite/.cvsignore @@ -0,0 +1,23 @@ +.libs +Makefile +Makefile.in +config.h +config.log +config.status +keywordhash.h +lemon +lempar.c +libtool +mkkeywordhash +opcodes.c +opcodes.h +parse.c +parse.h +parse.out +parse.y +sqlite3 +sqlite3.h +sqlite3.pc +*.la +*.lo +*.swp diff --git a/tools/Makefile.am b/tools/Makefile.am index b29dbf1ca..023b92f1e 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -9,7 +9,7 @@ INCLUDES = -I. \ -I$(top_srcdir)/rpmdb \ -I$(top_srcdir)/rpmio \ @WITH_BEECRYPT_INCLUDE@ \ - -I$(top_srcdir)/popt \ + @WITH_POPT_INCLUDE@ \ @WITH_LIBELF_INCLUDE@ \ @WITH_LIBDWARF_INCLUDE@ \ -I$(top_srcdir)/file/src \ @@ -36,8 +36,9 @@ bin_PROGRAMS = rpmgraph convertdb1_SOURCES = convertdb1.c debugedit_SOURCES = debugedit.c hashtab.c -debugedit_LDADD = @LDFLAGS_STATIC@ @WITH_LIBELF_LIB@ \ - $(top_builddir)/popt/libpopt.la +debugedit_LDADD = @LDFLAGS_STATIC@ \ + @WITH_LIBELF_LIB@ \ + @WITH_POPT_LIB@ javadeps_SOURCES = javadeps.c