Merge "allow rpm to custom systemd installation" into tizen
[platform/upstream/rpm.git] / configure.ac
index 58a5c85..e97f727 100644 (file)
@@ -1,11 +1,13 @@
 AC_PREREQ(2.61)
-AC_INIT(rpm, 4.9.90, rpm-maint@lists.rpm.org)
+AC_INIT(rpm, 4.11.0.1, rpm-maint@lists.rpm.org)
 
 AC_CONFIG_SRCDIR([rpmqv.c])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
 
 AM_INIT_AUTOMAKE([1.10 foreign tar-ustar dist-bzip2 subdir-objects nostdinc])
+dnl Allow silent build on automake versions that support it
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
 
 AC_CONFIG_TESTDIR(tests)
 
@@ -13,6 +15,8 @@ AC_USE_SYSTEM_EXTENSIONS
 
 AC_DISABLE_STATIC
 
+PKG_PROG_PKG_CONFIG
+
 dnl Checks for programs.
 AC_PROG_CXX
 AC_PROG_AWK
@@ -33,22 +37,19 @@ fi
 AS=${AS-as}
 AC_SUBST(AS)
 if test "$GCC" = yes; then
-    CFLAGS="$CFLAGS -fPIC -DPIC -D_REENTRANT -Wall -Wpointer-arith -Wmissing-prototypes -Wno-char-subscripts"
-    # XXX disabled for now due to noise from NSPR headers
-    # CFLAGS="$CFLAGS -Wstrict-prototypes"
     cflags_to_try="-fno-strict-aliasing -fstack-protector -Wempty-body"
     AC_MSG_CHECKING([supported compiler flags])
     old_cflags=$CFLAGS
     echo
     for flag in $cflags_to_try; do
-        CFLAGS="$CFLAGS $flag"
+        CFLAGS="$CFLAGS $flag -Werror"
         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[return 0;]])],[
                 echo "   $flag"
                 RPMCFLAGS="$RPMCFLAGS $flag"
         ],[])
         CFLAGS=$old_cflags
     done
-    CFLAGS="$CFLAGS $RPMCFLAGS"
+    CFLAGS="$CFLAGS -fPIC -DPIC -D_REENTRANT -Wall -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes $RPMCFLAGS"
 fi
 export CFLAGS
 
@@ -89,6 +90,7 @@ fi
 dnl
 dnl Find some common programs
 dnl
+AC_PATH_PROG(__7ZIP, 7zip, /usr/bin/7za, $MYPATH)
 AC_PATH_PROG(__BZIP2, bzip2, /usr/bin/bzip2, $MYPATH)
 AC_PATH_PROG(__CAT, cat, /bin/cat, $MYPATH)
 AC_PATH_PROG(__CHGRP, chgrp, /bin/chgrp, $MYPATH)
@@ -104,6 +106,8 @@ AC_PATH_PROG(__GZIP, gzip, /bin/gzip, $MYPATH)
 AC_PATH_PROG(__UNZIP, unzip, /usr/bin/unzip, $MYPATH)
 AC_PATH_PROG(__ID, id, /usr/bin/id, $MYPATH)
 AC_PATH_PROG(__INSTALL, install, /usr/bin/install, $MYPATH)
+AC_PATH_PROG(__LRZIP, lrzip, /usr/bin/lrzip, $MYPATH)
+AC_PATH_PROG(__LZIP, lzip, /usr/bin/lzip, $MYPATH)
 AC_PATH_PROG(__XZ, xz, /usr/bin/xz, $MYPATH)
 AC_PATH_PROG(__MAKE, make, /usr/bin/make, $MYPATH)
 AC_PATH_PROG(__MKDIR, mkdir, /bin/mkdir, $MYPATH)
@@ -136,7 +140,14 @@ AC_PATH_PROG(__NM, nm, /usr/bin/nm, $MYPATH)
 AC_PATH_PROG(__OBJCOPY, objcopy, /usr/bin/objcopy, $MYPATH)
 AC_PATH_PROG(__OBJDUMP, objdump, /usr/bin/objdump, $MYPATH)
 AC_PATH_PROG(__STRIP, strip, /usr/bin/strip, $MYPATH)
-AC_PATH_PROG(__FAKECHROOT, fakechroot, /usr/bin/fakechroot, $MYPATH)
+
+AC_PATH_PROG(__GIT, git, /usr/bin/git, $MYPATH)
+AC_PATH_PROG(__HG, hg, /usr/bin/hg, $MYPATH)
+AC_PATH_PROG(__BZR, bzr, /usr/bin/bzr, $MYPATH)
+AC_PATH_PROG(__QUILT, quilt, /usr/bin/quilt, $MYPATH)
+
+AC_PATH_PROG(__FAKECHROOT, fakechroot, no, $MYPATH)
+AM_CONDITIONAL(HAVE_FAKECHROOT, [test "$__FAKECHROOT" != "no"])
 
 dnl see if we have a mkdir that supports `-p' for rpmbuild's purposes
 AC_PROG_MKDIR_P
@@ -166,6 +177,8 @@ AC_CHECK_HEADERS([zlib.h],[
 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()])])
   ])
+],[
+  AC_MSG_ERROR([missing required header zlib.h])
 ])
 
 AC_SUBST(WITH_ZLIB_INCLUDE)
@@ -175,13 +188,7 @@ AC_SUBST(WITH_ZLIB_LIB)
 # Check for bzip2 library.
 
 AC_CHECK_HEADERS([bzlib.h],[
-  AC_CHECK_LIB(bz2, bzread, [WITH_BZ2_LIB=-lbz2],
-  [
-    AC_CHECK_LIB(bz2, BZ2_bzread,[ 
-      WITH_BZ2_LIB="-lbz2"
-      AC_DEFINE(HAVE_BZ2_1_0, 1, [Define as 1 if you bzip2 1.0])
-    ]) 
-  ])
+  AC_CHECK_LIB(bz2, BZ2_bzread, [WITH_BZ2_LIB=-lbz2])
 ])
 AC_SUBST(WITH_BZ2_LIB)
 
@@ -205,8 +212,6 @@ AC_CHECK_FUNC(gethostname, [], [
     AC_CHECK_LIB(nsl, gethostname)
 ])
 
-AC_CHECK_HEADERS(poll.h)
-
 AC_CHECK_HEADERS(pthread.h)
 
 AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
@@ -216,16 +221,8 @@ AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
   ])
 ])
 
-AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
 AC_SEARCH_LIBS(dlopen, [dl])
 
-dnl Temporary hack for MiNT.  Some functions (writev, snprintf) are
-dnl not in the libc but in libport (for political reasons).  This check
-dnl can hopefully be removed soon.  Please use the default action
-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, otherwise none.
 WITH_LIBELF_LIB=
@@ -246,20 +243,56 @@ AC_CHECK_HEADERS([dwarf.h], [
 AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes])
 
 #=================
+# Check for beecrypt library if requested.
+AC_ARG_WITH(beecrypt, [  --with-beecrypt         build with beecrypt support ],,[with_beecrypt=no])
+AC_ARG_WITH(internal_beecrypt, [  --with-internal-beecrypt build with internal beecrypt library ],,[with_internal_beecrypt=no])
+AM_CONDITIONAL([WITH_INTERNAL_BEECRYPT],[test "$with_internal_beecrypt" = yes])
+if test "$with_internal_beecrypt" = yes ; then
+  with_beecrypt=yes
+fi
+AM_CONDITIONAL([WITH_BEECRYPT],[test "$with_beecrypt" = yes])
+
+WITH_BEECRYPT_INCLUDE=
+WITH_BEECRYPT_LIB=
+if test "$with_beecrypt" = yes ; then
+  AC_DEFINE(WITH_BEECRYPT, 1, [Build with beecrypt instead of nss3 support?])
+  if test "$with_internal_beecrypt" = yes ; then
+    WITH_BEECRYPT_INCLUDE="-I\$(top_srcdir)/beecrypt"
+    AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the <beecrypt/api.h> header file.])
+  else
+    AC_CHECK_LIB(beecrypt, mpfprintln, [
+      WITH_BEECRYPT_LIB="-lbeecrypt"
+    ],[
+      AC_MSG_ERROR([missing required library 'beecrypt']) 
+    ])
+    AC_CHECK_HEADER([beecrypt/api.h], [AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the <beecrypt/api.h> header file.])
+    ])
+  fi
+fi
+AC_SUBST(WITH_BEECRYPT_LIB)
+AC_SUBST(WITH_BEECRYPT_INCLUDE)
+
+#=================
 # Check for NSS library.
 # We need nss.h from NSS which needs nspr.h. Unfortunately both glibc and NSS 
 # have a header named nss.h... so make extra check for NSS's sechash.h 
 # which we use too and hopefully is slightly more unique to NSS.
 WITH_NSS_INCLUDE=
 WITH_NSS_LIB=
+if test "$with_beecrypt" != yes ; then
 AC_CHECK_HEADERS([nspr.h nss.h sechash.h], [], [
   AC_MSG_ERROR([missing required NSPR / NSS header])
 ])
-AC_CHECK_LIB(nss3, NSS_NoDB_Init, [
+AC_CHECK_LIB(nss3, VFY_VerifyDigestDirect, [
   WITH_NSS_LIB=-lnss3
+  AC_CHECK_LIB(nss3, NSS_InitContext, [
+    AC_DEFINE(HAVE_NSS_INITCONTEXT, 1, [Define to 1 if NSS has NSS_InitContext])
+    AC_SUBST(HAVE_NSS_INITCONTEXT, [1])
+  ])
 ], [
-  AC_MSG_ERROR([missing required NSS library 'nss3'])
+  AC_MSG_ERROR([required NSS library 'nss3' missing or too old])
 ])
+fi
 AC_SUBST(WITH_NSS_INCLUDE)
 AC_SUBST(WITH_NSS_LIB)
 
@@ -344,19 +377,16 @@ AM_GNU_GETTEXT([external])
 dnl Checks for header files we can live without.
 AC_HEADER_STDC
 AC_HEADER_MAJOR
-AC_HEADER_DIRENT
+AC_STRUCT_DIRENT_D_TYPE
 
 AC_CHECK_HEADERS(limits.h)
-AC_CHECK_HEADERS(fcntl.h getopt.h memory.h)
+AC_CHECK_HEADERS(fcntl.h getopt.h)
 
-AC_CHECK_HEADERS(sys/ipc.h)
 AC_CHECK_HEADERS(sys/utsname.h)
 
 AC_CHECK_HEADERS(sys/systemcfg.h)
 AC_CHECK_HEADERS(sys/param.h)
 
-AC_CHECK_HEADERS(glob.h)
-
 dnl statfs portability fiddles.
 dnl
 dnl We should really emulate/steal sections of the statfs and struct statfs
@@ -370,25 +400,25 @@ dnl
 found_struct_statfs=no
 
 if test X$found_struct_statfs = Xno ; then
-dnl Solaris 2.6+ wants to use statvfs
+dnl first try including sys/vfs.h
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
-#include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in sys/statvfs.h)
-       AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
-               [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
+#include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/vfs.h)
+       AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux systems)])
        found_struct_statfs=yes],[])
 fi
 
 if test X$found_struct_statfs = Xno ; then
-dnl first try including sys/vfs.h
+dnl Solaris 2.6+ wants to use statvfs
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
-#include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/vfs.h)
-       AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux systems)])
+#include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in sys/statvfs.h)
+       AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
+               [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
        found_struct_statfs=yes],[])
 fi
 
@@ -485,27 +515,18 @@ AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 
 dnl Checks for library functions.
-AC_FUNC_MMAP
-
 AC_CHECK_FUNCS(putenv)
+AC_CHECK_FUNCS(mempcpy)
+AC_CHECK_FUNCS(fdatasync)
 
 AC_REPLACE_FUNCS(stpcpy stpncpy)
 
-AC_CHECK_FUNCS(__secure_getenv)
+AC_CHECK_FUNCS([secure_getenv __secure_getenv])
 
 AC_CHECK_FUNCS(
    [mkstemp getcwd basename dirname realpath setenv unsetenv regcomp lchown],
    [], [AC_MSG_ERROR([function required by rpm])])
 
-dnl XXX Glob *is* broken on linux with libc5, solaris and possibly aix when
-dnl %files gets something like
-dnl    /usr/*/locale/*/LC_MESSAGES/*.mo
-dnl (Note: more than one asterisk in glob pattern.)
-dnl
-dnl XXX Glob is "fixed" in glibc-2.3.3-61, but the cost is that
-dnl dangling symlinks are no longer globbed. Always use the internal glob.
-AC_DEFINE(USE_GNU_GLOB, 1, [Use the included glob.c?])
-AC_LIBOBJ(glob)
 AC_LIBOBJ(fnmatch)
 
 dnl check if python is requested
@@ -644,6 +665,70 @@ AC_SUBST(WITH_SELINUX_LIB)
 AC_SUBST(WITH_SEMANAGE_LIB)
 AM_CONDITIONAL(SELINUX,[test "$with_selinux" = yes])
 
+
+WITH_MSM_LIB=
+AC_ARG_WITH(msm, [AS_HELP_STRING([--with-msm],[build with msm support])],
+[case "$with_msm" in
+yes|no) ;;
+*) AC_MSG_ERROR([invalid argument to --with-msm])
+  ;;
+esac],
+[with_msm=no])
+
+AS_IF([test "$with_msm" = yes],[
+    save_LIBS="$LIBS"
+    AC_CHECK_LIB([xml2],[xmlReaderForMemory],[],[
+      AC_MSG_ERROR([--with-msm given, but xmlReaderForMemory not found in libxml2])])
+    LIBS="$save_LIBS"
+  AC_CHECK_HEADER([sys/capability.h],[
+    save_LIBS="$LIBS"
+    AC_CHECK_LIB([cap],[cap_set_file],[],[
+      AC_MSG_ERROR([--with-msm given, but cap_set_file not found in libcap])])
+    LIBS="$save_LIBS"
+  ],[
+    AC_MSG_ERROR([--with-msm given, but sys/capability.h not found])
+  ])
+
+  PKG_CHECK_MODULES(
+    [LIBXML2],
+    [libxml-2.0 >= 2.0],
+    [AC_DEFINE(WITH_LIBXML2, 1, [Build with libxml2 support])],
+    [AC_MSG_ERROR([--with-msm given, but libxml2 not found])]
+  )
+  AC_SUBST(LIBXML2_CFLAGS)
+  AC_SUBST(LIBXML2_LIBS)
+
+  AC_CHECK_HEADER([attr/xattr.h],[
+    save_LIBS="$LIBS"
+    AC_CHECK_LIB([attr],[setxattr],[],[
+      AC_MSG_ERROR([--with-msm given, but setxattr not found in libattr])])
+    LIBS="$save_LIBS"
+  ],[
+    AC_MSG_ERROR([--with-msm given, but attr/xattr.h not found])
+  ])
+  AC_CHECK_HEADER([uthash.h],[
+    save_LIBS="$LIBS"
+    LIBS="$save_LIBS"
+  ],[
+    AC_MSG_ERROR([--with-msm given, but uthash.h not found])
+  ])
+  AC_CHECK_HEADER([sys/smack.h],[
+     save_LIBS="$LIBS"
+    LIBS="$save_LIBS"
+   ],[
+     AC_MSG_ERROR([--with-msm given, but smack.h not found])
+   ])
+])
+
+AS_IF([test "$with_msm" = yes],[
+  AC_DEFINE(WITH_MSM, 1, [Build with msm support?])
+  WITH_MSM_LIB="`xml2-config --libs` -lcap -lattr -lsmack -lmagic"
+  WITH_MSM_INCLUDE="`xml2-config --cflags`"
+])
+AC_SUBST(WITH_MSM_LIB)
+AC_SUBST(WITH_MSM_INCLUDE)
+AM_CONDITIONAL(MSM,[test "$with_msm" = yes])
+
 # libcap
 WITH_CAP_LIB=
 AC_ARG_WITH(cap, [AS_HELP_STRING([--with-cap],[build with capability support])],
@@ -703,28 +788,19 @@ AS_IF([test "$with_acl" = yes],[
 AC_SUBST(WITH_ACL_LIB)
 AM_CONDITIONAL(ACL,[test "$with_acl" = yes])
 
-WITH_LUA_LIB=
-WITH_LUA_INCLUDE=
-AC_ARG_WITH(lua, [AS_HELP_STRING([--with-lua],[build with lua support])],,[with_lua=yes])
-AS_IF([test "$with_lua" = yes],[
-  AC_CHECK_HEADER([lua.h],[
-    AC_CHECK_LIB(lua,[luaL_openlibs],[with_lua=yes],[
-      AC_MSG_ERROR([--with-lua given, but liblua not found])
-    ], 
-    [-lm])
-  ],[
-      AC_MSG_ERROR([--with-lua given, but lua.h not found])
-  ])
-])
-
-AS_IF([test "$with_lua" = yes],[
-  AC_DEFINE(WITH_LUA, 1, [Build with lua support?])
-  WITH_LUA_INCLUDE=
-  WITH_LUA_LIB="-llua -lm" 
+AC_ARG_WITH([lua], [AS_HELP_STRING([--with-lua], [build with lua support])],
+            [],
+            [with_lua=yes])
+
+AS_IF([test "$with_lua" != no],[
+  PKG_CHECK_MODULES([LUA],
+    [lua >= 5.1],
+    [AC_DEFINE(WITH_LUA, 1, [Build with lua support?])],
+    [AC_MSG_ERROR([lua not present (--without-lua to disable)])])
+  AC_SUBST(LUA_CFLAGS)
+  AC_SUBST(LUA_LIBS)
 ])
-AC_SUBST(WITH_LUA_LIB)
-AC_SUBST(WITH_LUA_INCLUDE)
-AM_CONDITIONAL(WITH_LUAEXT,[test "$with_lua" = yes])
+AM_CONDITIONAL(WITH_LUA,[test "$with_lua" = yes])
 
 AC_ARG_ENABLE(plugins, [AS_HELP_STRING([--disable-plugins],[build without plugin support])],,[enable_plugins=yes])
 AS_IF([test "$enable_plugins" = yes],[
@@ -763,88 +839,43 @@ host_os_major=`echo "${host_os}" | sed 's/\..*$//'`
 host_os_noversion=`echo "${host_os}" | sed 's/[0-9]*\..*$//'`
 changequote([, ])
 
-rm -f ./find-provides
-if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ; then
-       echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov for automatic provides generation"
-    ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ./find-provides
-elif test -f ${srcdir}/autodeps/${host_os_exact}.prov ; then
-       echo "using ${srcdir}/autodeps/${host_os_exact}.prov for automatic provides generation"
-    ln -s ${srcdir}/autodeps/${host_os_exact}.prov ./find-provides
-elif test -f ${srcdir}/autodeps/${host_os_major}.prov ; then
-       echo "using ${srcdir}/autodeps/${host_os_major}.prov for automatic provides generation"
-    ln -s ${srcdir}/autodeps/${host_os_major}.prov ./find-provides
-elif test -f ${srcdir}/autodeps/${host_os_noversion}.prov ; then
-       echo "using ${srcdir}/autodeps/${host_os_noversion}.prov for automatic provides generation"
-    ln -s ${srcdir}/autodeps/${host_os_noversion}.prov ./find-provides
-else
-    echo "*** no default provides information is available for ${host_os_noversion}"
-    ln -s ${srcdir}/autodeps/none ./find-provides
-fi
-
-rm -f ./find-requires
-if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ; then
-       echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req for automatic requires generation"
-    ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ./find-requires
-elif test -f ${srcdir}/autodeps/${host_os_exact}.req ; then
-       echo "using ${srcdir}/autodeps/${host_os_exact}.req for automatic requires generation"
-    ln -s ${srcdir}/autodeps/${host_os_exact}.req ./find-requires
-elif test -f ${srcdir}/autodeps/${host_os_major}.req ; then
-       echo "using ${srcdir}/autodeps/${host_os_major}.req for automatic requires generation"
-    ln -s ${srcdir}/autodeps/${host_os_major}.req ./find-requires
-elif test -f ${srcdir}/autodeps/${host_os_noversion}.req ; then
-       echo "using ${srcdir}/autodeps/${host_os_noversion}.req for automatic requires generation"
-    ln -s ${srcdir}/autodeps/${host_os_noversion}.req ./find-requires
-else
-    echo "*** no default requires information is available for ${host_os_noversion}"
-    ln -s ${srcdir}/autodeps/none ./find-requires
-fi
+for provscript in ${host_cpu}-${host_os_exact}.prov ${host_os_exact}.prov ${host_os_major}.prov ${host_os_noversion}.prov none ; do {
+    if test -f ${srcdir}/autodeps/${provscript} ; then
+       if [[ ${provscript} == none ]] ; then
+           echo "*** no default provides information is available for ${host_os_noversion}"
+       else
+           echo "using ${srcdir}/autodeps/${provscript} for automatic provides generation"
+       fi
+       ln -sf ${provscript} ${srcdir}/autodeps/find-provides
+       break
+    fi
+}; done
+
+
+for reqscript in ${host_cpu}-${host_os_exact}.req ${host_os_exact}.req ${host_os_major}.req ${host_os_noversion}.req none ; do {
+    if test -f ${srcdir}/autodeps/${reqscript} ; then
+       if [[ ${reqscript} == none ]] ; then
+           echo "*** no default requires information is available for ${host_os_noversion}"
+       else
+         echo "using ${srcdir}/autodeps/${reqscript} for automatic requires generation"
+       fi
+       ln -sf ${reqscript} ./autodeps/find-requires
+       break
+    fi
+} done
 
-dnl Determine the canonical arch-vendor-os for the host machine
-case "${host_cpu}" in
-*86)           RPMCANONCOLOR=0; RPMCANONARCH=i386 ;;
-ia32e*)                RPMCANONCOLOR=3; RPMCANONARCH=ia32e ;;
-amd64*)                RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
-x86_64*)       RPMCANONCOLOR=3; RPMCANONARCH=x86_64 ;;
-alpha*)                RPMCANONCOLOR=0; RPMCANONARCH=alpha ;;
-sparc64*)      RPMCANONCOLOR=3; RPMCANONARCH=sparc64 ;;
-sparc*)                RPMCANONCOLOR=3; RPMCANONARCH=sparc ;;
-ia64*)         RPMCANONCOLOR=2; RPMCANONARCH=ia64 ;;
-s390x*)                RPMCANONCOLOR=3; RPMCANONARCH=s390x ;;
-s390*)         RPMCANONCOLOR=0; RPMCANONARCH=s390 ;;
-powerpc64*|ppc64*)     RPMCANONCOLOR=3; RPMCANONARCH=ppc64 ;;
-powerpc*|ppc*) RPMCANONCOLOR=0; RPMCANONARCH=ppc ;;
-arm*)          RPMCANONCOLOR=0; RPMCANONARCH=arm ;;
-mipsel*)       RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
-mips*)         RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
-m68k*)         RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
-sh3*)          RPMCANONCOLOR=0; RPMCANONARCH=sh3 ;;
-sh4*)          RPMCANONCOLOR=0; RPMCANONARCH=sh4 ;;
-*)             RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
-esac
-case "${host_os_noversion}" in
-mint)          RPMCANONARCH=m68kmint ;;
-esac
+dnl permit overriding build_vendor for "canonical rpm vendor"
 RPMCANONVENDOR="$build_vendor"
-case "${build_vendor}" in
-unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos|suse)
-       test -f /etc/redhat-release &&          RPMCANONVENDOR=redhat
-       test -f /etc/SuSE-release &&            RPMCANONVENDOR=suse
-       test -f /etc/pld-release &&             RPMCANONVENDOR=pld
-       test -f /etc/mandrake-release &&        RPMCANONVENDOR=mandrake
-       test -f /etc/conectiva-release &&       RPMCANONVENDOR=conectiva
-       test -f /etc/lvr-release &&             RPMCANONVENDOR=lvr
-       test -f /etc/yellowdog-release &&       RPMCANONVENDOR=yellowdog
-       test -f /etc/caos-release &&            RPMCANONVENDOR=caos
-       ;;
-esac
+AC_ARG_WITH([vendor], 
+  AS_HELP_STRING([--with-vendor=VENDOR], [specify rpm vendor name]),
+  [RPMCANONVENDOR=$withval])
+AC_DEFINE_UNQUOTED([RPMCANONVENDOR],["${RPMCANONVENDOR}"],[canonical vendor])
+          
 RPMCANONOS="$host_os_noversion"
 RPMCANONGNU="$host_os_gnu"
-AC_SUBST(RPMCANONCOLOR)
-AC_SUBST(RPMCANONARCH)
 AC_SUBST(RPMCANONVENDOR)
 AC_SUBST(RPMCANONOS)
 AC_SUBST(RPMCANONGNU)
-AC_DEFINE_UNQUOTED([RPMCANONVENDOR],["${RPMCANONVENDOR}"],[canonical vendor])
 
 if test X"$prefix" = XNONE ; then
     usrprefix="$ac_default_prefix"