]> git.ipfire.org Git - pakfire.git/blobdiff - configure.ac
dependencies: Log any invalid dependencies
[pakfire.git] / configure.ac
index 0ec3ae5f3365d7f5aae2834a53991d6d404256f2..9889ec69545e6ad9e7c8aacba03d1571893edab6 100644 (file)
@@ -18,7 +18,7 @@
 #                                                                             #
 ###############################################################################
 
-AC_PREREQ([2.64])
+AC_PREREQ([2.69])
 
 AC_INIT([pakfire],
        [0.9.27],
@@ -76,6 +76,21 @@ AS_IF([test "x$enable_online_tests" = "xyes"], [
        AC_DEFINE(ENABLE_ONLINE_TESTS, [1], [Online Tests])
 ])
 
+# Man Pages
+
+have_man_pages=no
+AC_ARG_ENABLE(man_pages, AS_HELP_STRING([--disable-man-pages],
+       [do not install man pages]))
+AS_IF([test "x$enable_man_pages" != xno], [have_man_pages=yes])
+AM_CONDITIONAL(ENABLE_MAN_PAGES, [test "x$have_man_pages" = "xyes"])
+
+AC_PATH_PROG([XSLTPROC], [xsltproc])
+
+AC_CHECK_PROGS(ASCIIDOC, [asciidoc])
+if test "${have_man_pages}" = "yes" && test -z "${ASCIIDOC}"; then
+       AC_MSG_ERROR([Required program 'asciidoc' not found])
+fi
+
 # pkg-config
 PKG_PROG_PKG_CONFIG
 # This makes sure pkg.m4 is available.
@@ -83,25 +98,20 @@ m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-conf
 
 # C Compiler
 AC_PROG_CC
-AC_PROG_CC_C99
-AC_PROG_CC_C_O
-AC_PROG_GCC_TRADITIONAL
-AC_OPENMP
 
 CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
-       -pipe \
        -Wall \
-       -Wextra \
-       -Wno-inline \
-       -Wundef \
-       "-Wformat=2 -Wformat-security -Wformat-nonliteral" \
-       -Wno-unused-parameter \
-       -Wno-unused-result \
-       -fno-strict-aliasing \
-       -ffunction-sections \
-       -fdata-sections \
-       -fstack-protector-all \
-       --param=ssp-buffer-size=4])
+       -Wchar-subscripts \
+       -Wformat-security \
+       -Wmissing-declarations \
+       -Wmissing-prototypes \
+       -Wnested-externs \
+       -Wpointer-arith \
+       -Wshadow \
+       -Wsign-compare \
+       -Wstrict-prototypes \
+       -Wtype-limits \
+])
 
 # Enable -fanalyzer if requested
 AC_ARG_ENABLE([analyzer],
@@ -111,22 +121,26 @@ AS_IF([test "x$enable_analyzer" = "xyes"],
        CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [-fanalyzer])
 )
 
-AC_SUBST([OUR_CFLAGS], $with_cflags)
+# Enable -fno-semantic-interposition (if available)
+CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [-fno-semantic-interposition])
+CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [-fno-semantic-interposition])
 
-AS_CASE([$CFLAGS], [*-O[[12345g\ ]]*],
-       [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\
-               -Wp,-D_FORTIFY_SOURCE=2])],
-       [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])])
 AC_SUBST([OUR_CPPFLAGS], $with_cppflags)
-
-CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
-       -Wl,--as-needed \
-       -Wl,--no-undefined \
-       -Wl,--gc-sections \
-       -Wl,-z,relro \
-       -Wl,-z,now])
+AC_SUBST([OUR_CFLAGS], $with_cflags)
 AC_SUBST([OUR_LDFLAGS], $with_ldflags)
 
+# C Types
+AC_TYPE_INT64_T
+AC_TYPE_INTMAX_T
+AC_TYPE_INTPTR_T
+AC_TYPE_MODE_T
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+AC_TYPE_UINT64_T
+
 # Bison
 AC_PROG_YACC
 
@@ -160,6 +174,7 @@ AC_CHECK_HEADERS([ \
        grp.h \
        libgen.h \
        libintl.h \
+       linux/capability.h \
        linux/limits.h \
        linux/magic.h \
        linux/sched.h \
@@ -174,10 +189,13 @@ AC_CHECK_HEADERS([ \
        stdlib.h \
        string.h \
        syslog.h \
+       sys/capability.h \
        sys/epoll.h \
+       sys/file.h \
        sys/ioctl.h \
        sys/mount.h \
        sys/personality.h \
+       sys/prctl.h \
        sys/random.h \
        sys/resource.h \
        sys/sendfile.h \
@@ -198,6 +216,7 @@ AC_CHECK_FUNCS([ \
        epoll_ctl \
        epoll_create1 \
        epoll_wait \
+       flock \
        fnctl \
        fts_close \
        fts_open \
@@ -207,6 +226,7 @@ AC_CHECK_FUNCS([ \
        nftw \
        openlog \
        personality \
+       prctl \
        remove \
        secure_getenv \
        sendfile \
@@ -224,27 +244,34 @@ AC_CHECK_FUNCS([ \
 # Python Stuff
 AM_PATH_PYTHON([3.6])
 
+AX_PYTHON_MODULE([cpuinfo], [fatal])
+AX_PYTHON_MODULE([kerberos], [fatal])
+AX_PYTHON_MODULE([psutil], [fatal])
+AX_PYTHON_MODULE([setproctitle], [fatal])
 AX_PYTHON_MODULE([systemd], [fatal])
 AX_PYTHON_MODULE([tornado], [fatal])
 
 # Libraries we depend on
-PKG_CHECK_MODULES([ARCHIVE], [libarchive >= 3.5.0])
+PKG_CHECK_MODULES([ARCHIVE], [libarchive >= 3.4.0])
+PKG_CHECK_MODULES([CAP], [libcap])
 PKG_CHECK_MODULES([CURL], [libcurl])
+PKG_CHECK_MODULES([GPGME], [gpgme >= 1.6.0])
 PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}-embed],
        [], [PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}])])
 PKG_CHECK_MODULES([JSON_C], [json-c >= 0.15])
 PKG_CHECK_MODULES([LZMA], [liblzma])
+PKG_CHECK_MODULES([MOUNT], [mount])
 PKG_CHECK_MODULES([OPENSSL], [openssl >= 1.1.1])
 PKG_CHECK_MODULES([PCRE2], [libpcre2-8])
+PKG_CHECK_MODULES([SECCOMP], [libseccomp])
 PKG_CHECK_MODULES([SOLV], [libsolv >= 0.7.5])
+PKG_CHECK_MODULES([SOLVEXT], [libsolvext >= 0.7.5])
 PKG_CHECK_MODULES([SQLITE3], [sqlite3])
 PKG_CHECK_MODULES([SYSTEMD], [libsystemd],
        [AC_DEFINE([HAVE_SYSTEMD], [1], [Use systemd])])
 PKG_CHECK_MODULES([UUID], [uuid])
 PKG_CHECK_MODULES([ZSTD], [libzstd])
 
-AM_PATH_GPGME([1.6.0], [], [AC_MSG_ERROR([*** GPGME not found])])
-
 AC_ARG_WITH([systemdsystemunitdir],
        AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
        [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
@@ -259,7 +286,7 @@ AC_DEFINE_UNQUOTED([PAKFIRE_PRIVATE_DIR], ["/var/lib/${PACKAGE_NAME}"],
        [The path where Pakfire stores its private data])
 AC_DEFINE_UNQUOTED([PAKFIRE_SCRIPTS_DIR], ["${PREFIX}/lib/${PACKAGE_NAME}"],
        [The path where Pakfire stores its scripts])
-AC_DEFINE_UNQUOTED([PAKFIRE_TMP_DIR], ["/var/tmp/${PACKAGE_NAME}"],
+AC_DEFINE_UNQUOTED([PAKFIRE_TMP_DIR], ["/var/tmp"],
        [The path where Pakfire stores temporary data])
 
 AC_CONFIG_FILES([
@@ -275,8 +302,8 @@ AC_MSG_RESULT([
        Debug:                  ${enable_debug}
        Online Tests:           ${enable_online_tests}
 
-       CFLAGS:                 ${OUR_CFLAGS} ${CFLAGS}
        CPPFLAGS:               ${OUR_CPPFLAGS} ${CPPFLAGS}
+       CFLAGS:                 ${OUR_CFLAGS} ${CFLAGS}
        LDFLAGS:                ${OUR_LDFLAGS} ${LDFLAGS}
        PYTHON_CFLAGS:          ${PYTHON_DEVEL_CFLAGS}
        PYTHON_LIBS:            ${PYTHON_DEVEL_LIBS}