# #
###############################################################################
-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])
# 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],
CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [-fanalyzer])
)
-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])])
-
-CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
- -Wl,--as-needed \
- -Wl,--no-undefined \
- -Wl,--gc-sections \
- -Wl,-z,relro \
- -Wl,-z,now])
-
# 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])
+CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [-fno-semantic-interposition])
+CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [-fno-semantic-interposition])
AC_SUBST([OUR_CPPFLAGS], $with_cppflags)
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
grp.h \
libgen.h \
libintl.h \
+ linux/bpf.h \
+ linux/capability.h \
linux/limits.h \
linux/magic.h \
linux/sched.h \
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 \
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 \
# 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([MOUNT], [mount])
+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([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])])
+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]),
[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([
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}