Skip to content

Commit

Permalink
app-admin/setools: fix cross-compiling
Browse files Browse the repository at this point in the history
  • Loading branch information
vapier committed Feb 17, 2016
1 parent fc3a6a5 commit 0467b30
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
15 changes: 15 additions & 0 deletions app-admin/setools/files/setools-3.3.8-no-check-file.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
there's no real need to run AC_CHECK_FILE to see if a file exists. if the
static link fails later on, then the static lib didn't exist. this also
breaks cross-compiling.

--- a/configure.ac
+++ b/configure.ac
@@ -448,8 +448,6 @@
sepol_srcdir="")
if test "x${sepol_srcdir}" = "x"; then
sepol_srcdir=${sepol_devel_libdir}
- AC_CHECK_FILE([${sepol_srcdir}/libsepol.a],,
- AC_MSG_ERROR([make sure libsepol-static is installed]))
else
AC_MSG_CHECKING([for compatible sepol source tree])
sepol_version=${sepol_srcdir}/VERSION
29 changes: 29 additions & 0 deletions app-admin/setools/files/setools-3.3.8-policy-max.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
trying to run compiled code fails when cross-compiling.
probe the value using the preprocessor instead.

--- a/configure.ac
+++ b/configure.ac
@@ -621,21 +621,8 @@
sepol_new_errcodes="yes",
sepol_new_errcodes="no")

-AC_RUN_IFELSE(
- [AC_LANG_SOURCE([
-#include <sepol/policydb/policydb.h>
-#include <stdio.h>
-#include <stdlib.h>
-int main(void) {
- FILE *f = fopen("conftest.data", "w");
- if (f != NULL && fprintf(f, "%d", POLICYDB_VERSION_MAX) > 0) {
- fclose(f);
- exit(EXIT_SUCCESS);
- }
- exit(EXIT_FAILURE);
-}])],
- sepol_policy_version_max=`cat conftest.data`,
- AC_MSG_FAILURE([could not determine maximum libsepol policy version]))
+printf "#include <sepol/policydb/policydb.h>\nPOLICYDB_VERSION_MAX\n" > conftest.c
+sepol_policy_version_max=`${CPP} -E -P ${CPPFLAGS} conftest.c | tail -1`
AC_DEFINE_UNQUOTED(SEPOL_POLICY_VERSION_MAX, ${sepol_policy_version_max}, [maximum policy version supported by libsepol])
CFLAGS="${sepol_save_CFLAGS}"
CPPFLAGS="${sepol_save_CPPFLAGS}"
3 changes: 3 additions & 0 deletions app-admin/setools/setools-3.3.8-r7.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ src_prepare() {
EPATCH_FORCE="yes" \
epatch

epatch "${FILESDIR}"/${PN}-3.3.8-no-check-file.patch
epatch "${FILESDIR}"/${PN}-3.3.8-policy-max.patch

# Fix build failure due to double __init__.py installation
sed -e "s/^wrappedpy_DATA = qpol.py \$(pkgpython_PYTHON)/wrappedpy_DATA = qpol.py/" -i libqpol/swig/python/Makefile.am || die
# Disable broken check for SWIG version. Bug #542032
Expand Down

0 comments on commit 0467b30

Please sign in to comment.