]> git.ipfire.org Git - pakfire.git/blobdiff - configure.ac
compress: Remove legacy logger
[pakfire.git] / configure.ac
index b73afbaf5669086235c5e65b047df95d57dae458..204556a801e815dcf18fa4ffc6ab3b6f0fe57d35 100644 (file)
 #                                                                             #
 ###############################################################################
 
-AC_PREREQ([2.64])
+AC_PREREQ([2.69])
 
 AC_INIT([pakfire],
-       [0.9.27],
+       [0.9.29],
        [info@ipfire.org],
        [pakfire],
-       [http://git.ipfire.org/?p=pakfire.git;a=summary])
+       [https://git.ipfire.org/?p=pakfire.git;a=summary])
 
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADERS([config.h])
@@ -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,51 @@ 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 \
+       -std=gnu11 \
        -Wall \
        -Wextra \
-       -Wno-inline \
-       -Wundef \
-       "-Wformat=2 -Wformat-security -Wformat-nonliteral" \
+       -Warray-bounds=2 \
+       -Wdate-time \
+       -Wendif-labels \
+       -Werror=format=2 \
+       -Werror=format-signedness \
+       -Werror=implicit-function-declaration \
+       -Werror=implicit-int \
+       -Werror=incompatible-pointer-types \
+       -Werror=int-conversion \
+       -Werror=missing-declarations \
+       -Werror=missing-prototypes \
+       -Werror=overflow \
+       -Werror=override-init \
+       -Werror=return-type \
+       -Werror=shift-count-overflow \
+       -Werror=shift-overflow=2 \
+       -Werror=strict-flex-arrays \
+       -Werror=undef \
+       -Wfloat-equal \
+       -Wimplicit-fallthrough=5 \
+       -Winit-self \
+       -Wlogical-op \
+       -Wmissing-include-dirs \
+       -Wmissing-noreturn \
+       -Wnested-externs \
+       -Wold-style-definition \
+       -Wpointer-arith \
+       -Wredundant-decls \
+       -Wshadow \
+       -Wstrict-aliasing=2 \
+       -Wstrict-prototypes \
+       -Wsuggest-attribute=noreturn \
+       -Wunused-function \
+       -Wwrite-strings \
+       -Wzero-length-bounds \
        -Wno-unused-parameter \
-       -Wno-unused-result \
-       -fno-strict-aliasing \
-       -ffunction-sections \
-       -fdata-sections \
-       -fstack-protector-all \
-       --param=ssp-buffer-size=4])
+       -Wno-missing-field-initializers \
+       -fdiagnostics-show-option \
+       -fno-common \
+])
 
 # Enable -fanalyzer if requested
 AC_ARG_ENABLE([analyzer],
@@ -111,22 +152,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 +205,8 @@ AC_CHECK_HEADERS([ \
        grp.h \
        libgen.h \
        libintl.h \
+       linux/bpf.h \
+       linux/capability.h \
        linux/limits.h \
        linux/magic.h \
        linux/sched.h \
@@ -174,10 +221,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 \
@@ -195,18 +245,18 @@ AC_CHECK_HEADERS([ \
 
 AC_CHECK_FUNCS([ \
        asprintf \
+       bpf \
        epoll_ctl \
        epoll_create1 \
        epoll_wait \
+       flock \
        fnctl \
-       fts_close \
-       fts_open \
-       fts_read \
        getpid \
        glob \
        nftw \
        openlog \
        personality \
+       prctl \
        remove \
        secure_getenv \
        sendfile \
@@ -224,18 +274,28 @@ AC_CHECK_FUNCS([ \
 # Python Stuff
 AM_PATH_PYTHON([3.6])
 
+AX_PYTHON_MODULE([kerberos], [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([BPF], [libbpf])
+PKG_CHECK_MODULES([CAP], [libcap])
 PKG_CHECK_MODULES([CURL], [libcurl])
+PKG_CHECK_MODULES([ELF], [libelf])
 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([KRB5], [krb5])
 PKG_CHECK_MODULES([LZMA], [liblzma])
+PKG_CHECK_MODULES([MAGIC], [libmagic])
+PKG_CHECK_MODULES([NL3], [libnl-3.0])
+PKG_CHECK_MODULES([NL3_ROUTE], [libnl-route-3.0])
 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([SQLITE3], [sqlite3])
 PKG_CHECK_MODULES([SYSTEMD], [libsystemd],
@@ -243,7 +303,17 @@ PKG_CHECK_MODULES([SYSTEMD], [libsystemd],
 PKG_CHECK_MODULES([UUID], [uuid])
 PKG_CHECK_MODULES([ZSTD], [libzstd])
 
-AM_PATH_GPGME([1.6.0], [], [AC_MSG_ERROR([*** GPGME not found])])
+save_LIBS="$LIBS"
+
+# subid
+#LIBS=
+#AC_SEARCH_LIBS([subid_init], [subid],
+#      [AC_DEFINE([HAVE_SUBID], [], [subid is present])],
+#      [AC_MSG_WARN([*** subid library not found])])
+#SUBID_LIBS="$LIBS"
+#AC_SUBST(SUBID_LIBS)
+
+LIBS="$save_LIBS"
 
 AC_ARG_WITH([systemdsystemunitdir],
        AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
@@ -251,14 +321,16 @@ AC_ARG_WITH([systemdsystemunitdir],
 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"])
 
-AC_DEFINE_UNQUOTED([PAKFIRE_CONFIG_PATH], ["${sysconfdir}/${PACKAGE_NAME}"],
+AC_DEFINE_UNQUOTED([PAKFIRE_CONFIG_DIR], ["${sysconfdir}/${PACKAGE_NAME}"],
        [The path where Pakfire stores configuration files])
-AC_DEFINE_UNQUOTED([PAKFIRE_CACHE_PATH], ["/var/cache/${PACKAGE_NAME}"],
-       [The path where Pakfire stores temporary data])
+AC_DEFINE_UNQUOTED([PAKFIRE_CACHE_DIR], ["/var/cache/${PACKAGE_NAME}"],
+       [The path where Pakfire caches downloaded data])
 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"],
+       [The path where Pakfire stores temporary data])
 
 AC_CONFIG_FILES([
        Makefile
@@ -273,8 +345,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}