X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=configure.ac;h=91029206362264a6b26eda1705df5dfcef786d22;hb=386b30c2f9b682eea98e4cc0852f218eb1dfa6b6;hp=0f87e118c8497c94f9685cb0cdba0ebdb8bd3a4d;hpb=f253ac347b98b38b75dc0937937905a137963185;p=people%2Fstevee%2Fpakfire.git diff --git a/configure.ac b/configure.ac index 0f87e118..91029206 100644 --- a/configure.ac +++ b/configure.ac @@ -18,13 +18,13 @@ # # ############################################################################### -AC_PREREQ([2.64]) +AC_PREREQ([2.69]) AC_INIT([pakfire], - [0.9.27], + [0.9.28], [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]) @@ -65,6 +65,32 @@ AS_IF([test "x$enable_debug" = "xyes"], [ AC_DEFINE(ENABLE_DEBUG, [1], [Debug messages.]) ]) +# Online Tests +AC_ARG_ENABLE([online-tests], + AS_HELP_STRING( + [--enable-online-tests], + [enable tests that require internet access @<:@default=disabled@:>@] + ), [], [enable_online_tests=no] +) +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. @@ -72,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], @@ -100,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 @@ -149,6 +174,7 @@ AC_CHECK_HEADERS([ \ grp.h \ libgen.h \ libintl.h \ + linux/capability.h \ linux/limits.h \ linux/magic.h \ linux/sched.h \ @@ -163,12 +189,16 @@ 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 \ sys/stat.h \ sys/sysmacros.h \ sys/types.h \ @@ -186,6 +216,7 @@ AC_CHECK_FUNCS([ \ epoll_ctl \ epoll_create1 \ epoll_wait \ + flock \ fnctl \ fts_close \ fts_open \ @@ -195,8 +226,10 @@ AC_CHECK_FUNCS([ \ nftw \ openlog \ personality \ + prctl \ remove \ secure_getenv \ + sendfile \ snprintf \ strcmp \ strdup \ @@ -209,22 +242,30 @@ AC_CHECK_FUNCS([ \ ]) # Python Stuff -AM_PATH_PYTHON([3.7]) +AM_PATH_PYTHON([3.6]) -AX_PYTHON_MODULE([systemd], - [AC_MSG_ERROR([*** systemd Python module not found])]) -AX_PYTHON_MODULE([tornado], - [AC_MSG_ERROR([*** tornado Python module not found])]) +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.3.3]) +PKG_CHECK_MODULES([ARCHIVE], [libarchive >= 3.4.0]) +PKG_CHECK_MODULES([CAP], [libcap]) PKG_CHECK_MODULES([CURL], [libcurl]) +PKG_CHECK_MODULES([ELF], [libelf]) +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]) +PKG_CHECK_MODULES([JSON_C], [json-c >= 0.15]) PKG_CHECK_MODULES([LZMA], [liblzma]) +PKG_CHECK_MODULES([MAGIC], [libmagic]) +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([SQLITE3], [sqlite3]) PKG_CHECK_MODULES([SYSTEMD], [libsystemd], @@ -232,22 +273,22 @@ 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])]) - AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) 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 @@ -260,9 +301,10 @@ AC_MSG_RESULT([ $PACKAGE_NAME $VERSION 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}