cmocka: use relative paths
PATCH 1/1 cmocka: use relative paths
Simplifies the build scripts, and fixes my CI, where paths on the test slave can be different from paths on the build slave.
--- configure.ac | 11 ++--------- vendor/Makefile.am | 15 +++++++-------- 2 files changed, 9 insertions(+), 17 deletions(-)
configure.ac +2 -9
@@ -1381,15 +1381,8 @@ AC_SUBST([sampledir]) AC_SUBST([systemdunitdir]) AC_SUBST([tmpfilesdir]) -VENDOR_SRC_ROOT="\$(abs_top_srcdir)/vendor/" -VENDOR_DIST_ROOT="\$(abs_top_builddir)/vendor/dist" -VENDOR_BUILD_ROOT="\$(abs_top_builddir)/vendor/.build" -AC_SUBST([VENDOR_SRC_ROOT]) -AC_SUBST([VENDOR_BUILD_ROOT]) -AC_SUBST([VENDOR_DIST_ROOT]) - -TEST_LDFLAGS="-lcmocka -L\$(abs_top_builddir)/vendor/dist/lib -Wl,-rpath,\$(abs_top_builddir)/vendor/dist/lib" -TEST_CFLAGS="-I\$(top_srcdir)/include -I\$(abs_top_builddir)/vendor/dist/include" +TEST_LDFLAGS="-lcmocka -L\$(top_builddir)/vendor/dist/lib -Wl,-rpath,\$(top_builddir)/vendor/dist/lib" +TEST_CFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/vendor/dist/include" AC_SUBST([TEST_LDFLAGS]) AC_SUBST([TEST_CFLAGS])
vendor/Makefile.am +7 -8
@@ -1,18 +1,17 @@ -# needs an absolute path bc. of the cmake invocation -cmockasrc = "@VENDOR_SRC_ROOT@/cmocka" -cmockabuild = "@VENDOR_BUILD_ROOT@/cmocka" -cmockainstall = "@VENDOR_DIST_ROOT@" +cmockasrc = $(srcdir)/cmocka +cmockabuild = $(builddir)/cmocka +cmockadist = $(builddir)/dist MAINTAINERCLEANFILES = \ $(srcdir)/Makefile.in \ "$(cmockabuild)" \ - "$(cmockainstall)" \ - "@VENDOR_BUILD_ROOT@" + "$(cmockadist)" libcmocka: if CMOCKA_INITIALIZED - mkdir -p $(cmockabuild) $(cmockainstall) - (cd $(cmockabuild) && cmake -DCMAKE_INSTALL_PREFIX=$(cmockainstall) $(cmockasrc) && make && make install) + mkdir -p $(cmockabuild) $(cmockadist) + ## Compensate for the cd in the paths + (cd cmocka && cmake -DCMAKE_INSTALL_PREFIX=../$(cmockadist) ../$(cmockasrc) && make && make install) endif check: libcmocka
Signature · 1 line
2.17.1
Quoted 8 lines · Steffan Karger
Simplifies the build scripts, and fixes my CI, where paths on the test slave can be different from paths on the build slave.
Signed-off-by Steffan Karger <[email protected]...>--- configure.ac | 11 ++--------- vendor/Makefile.am | 15 +++++++-------- 2 files changed, 9 insertions(+), 17 deletions(-)
This fails on my system ...
---------------------------------------------------
$ rm -rf vendor/cmocka/ $ mkdir vendor/cmocka/ $ git submodule init $ git submodule update Submodule path 'vendor/cmocka': checked out 'b2732b52202ae48f866a024c633466efdbb8e85a' $ autoreconf -vi [....] $ ./configure [....] $ make check [....] mkdir -p ./cmocka ./dist (cd cmocka && cmake -DCMAKE_INSTALL_PREFIX=.././dist .././cmocka && make && make install) -- The C compiler identification is GNU 4.8.5 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Performing Test WITH_FPIC -- Performing Test WITH_FPIC - Success -- Performing Test WITH_STACK_PROTECTOR -- Performing Test WITH_STACK_PROTECTOR - Success CMake Error at cmake/Modules/MacroEnsureOutOfSourceBuild.cmake:13 (message): cmocka requires an out of source build. Please create a separate build directory and run 'cmake /path/to/cmocka [options]' there. Call Stack (most recent call first): CMakeLists.txt:41 (macro_ensure_out_of_source_build)
CMake Error at cmake/Modules/MacroEnsureOutOfSourceBuild.cmake:14 (message):
Remove the file CMakeCache.txt in /home/davids/devel/OpenVPN/openvpn/vendor/cmocka first.
Call Stack (most recent call first):
CMakeLists.txt:41 (macro_ensure_out_of_source_build)
-- Configuring incomplete, errors occurred!
---------------------------------------------------
This patch had to be rebased on top of the latest git master, where the merge conflict had the additional ${OPTIONAL_CRYPTO/PKCS11..} variables in TEST_LDFLAGS and TEST_FLAGS which commit b081038c7464f7a916560b4 had brought in. So that shouldn't really be the cause of this error.
And for reference:
$ rpm -q cmake cmake-2.8.12.2-2.el7.x86_64
--
kind regards,
David Sommerseth
OpenVPN Inc
PATCH v2 1/1 cmocka: use relative paths
Simplifies the build scripts, and fixes my CI, where paths on the test slave can be different from paths on the build slave.
---
v2: rebase on master, fix in-source builds (thanks dazo for spotting)
.gitignore | 2 +- configure.ac | 11 ++--------- vendor/Makefile.am | 16 ++++++++-------- 3 files changed, 11 insertions(+), 18 deletions(-)
.gitignore +1 -1
@@ -56,7 +56,7 @@ doc/openvpn.8.html distro/rpm/openvpn.spec distro/systemd/*.service sample/sample-keys/sample-ca/ -vendor/.build +vendor/cmocka_build vendor/dist build/msvc/msvc-generate/version.m4
configure.ac +2 -9
@@ -1353,15 +1353,8 @@ AC_SUBST([sampledir]) AC_SUBST([systemdunitdir]) AC_SUBST([tmpfilesdir]) -VENDOR_SRC_ROOT="\$(abs_top_srcdir)/vendor/" -VENDOR_DIST_ROOT="\$(abs_top_builddir)/vendor/dist" -VENDOR_BUILD_ROOT="\$(abs_top_builddir)/vendor/.build" -AC_SUBST([VENDOR_SRC_ROOT]) -AC_SUBST([VENDOR_BUILD_ROOT]) -AC_SUBST([VENDOR_DIST_ROOT]) - -TEST_LDFLAGS="${OPTIONAL_CRYPTO_LIBS} ${OPTIONAL_PKCS11_LIBS} -lcmocka -L\$(abs_top_builddir)/vendor/dist/lib -Wl,-rpath,\$(abs_top_builddir)/vendor/dist/lib" -TEST_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${OPTIONAL_PKCS11_CFLAGS} -I\$(top_srcdir)/include -I\$(abs_top_builddir)/vendor/dist/include" +TEST_LDFLAGS="${OPTIONAL_CRYPTO_LIBS} ${OPTIONAL_PKCS11_HELPER_LIBS} -lcmocka -L\$(top_builddir)/vendor/dist/lib -Wl,-rpath,\$(top_builddir)/vendor/dist/lib" +TEST_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${OPTIONAL_PKCS11_HELPER_CFLAGS} -I\$(top_srcdir)/include -I\$(top_builddir)/vendor/dist/include" AC_SUBST([TEST_LDFLAGS]) AC_SUBST([TEST_CFLAGS])
vendor/Makefile.am +8 -8
@@ -1,18 +1,18 @@ -# needs an absolute path bc. of the cmake invocation -cmockasrc = "@VENDOR_SRC_ROOT@/cmocka" -cmockabuild = "@VENDOR_BUILD_ROOT@/cmocka" -cmockainstall = "@VENDOR_DIST_ROOT@" +cmockasrc = $(srcdir)/cmocka +# Not just '$(builddir)/cmocka', because cmocka requires an out-of-source build +cmockabuild = $(builddir)/cmocka_build +cmockadist = $(builddir)/dist MAINTAINERCLEANFILES = \ $(srcdir)/Makefile.in \ "$(cmockabuild)" \ - "$(cmockainstall)" \ - "@VENDOR_BUILD_ROOT@" + "$(cmockadist)" libcmocka: if CMOCKA_INITIALIZED - mkdir -p $(cmockabuild) $(cmockainstall) - (cd $(cmockabuild) && cmake -DCMAKE_INSTALL_PREFIX=$(cmockainstall) $(cmockasrc) && make && make install) + mkdir -p $(cmockabuild) $(cmockadist) + ## Compensate for the cd in the paths + (cd $(cmockabuild) && cmake -DCMAKE_INSTALL_PREFIX=../$(cmockadist) ../$(cmockasrc) && make && make install) endif check: libcmocka
Signature · 1 line
2.17.1
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
This didn't break anything on my systems, and changes makes sense. I spotted another fix also sneaked in, replacing the incorrect OPTIONAL_PKCS11_{LIBS,CFLAGS} with the correct OPTIONAL_PKCS11_HELPER_{LIBS,CFLAGS}.
Your patch has been applied to the following branches
commit 4ded2deda0d6d33d38fbbd1f4cd4e9acc0836a89 (master) commit 84a649bee961947343be2c47041a8ec9b37e29d1 (release/2.4)
Author: Steffan Karger Date: Sun Oct 28 15:54:49 2018 +0100
cmocka: use relative paths
Signed-off-by: Steffan Karger <[email protected]...>
Acked-by: David Sommerseth <[email protected]...>
Message-Id: <[email protected]...>
URL: https://www.mail-archive.com/[email protected]/msg17849.html
Signed-off-by: David Sommerseth <[email protected]...>- --
kind regards,
David Sommerseth
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQIcBAEBCgAGBQJct4ghAAoJEIbPlEyWcf3yDboP/j6hYYlcbAibt8VYCaW9fCdo MUteapG0gP+aLsgfcLf5MAj3ArY1hWN1E2QRMaHbimyzjHG7HvoZZRbZ0TXH+adJ 7euIRQbngG/eGUozrxaYc4rVDANlY578K7rKsfsJTbl0U5JmMckmMfrN9o3dvTaY x1mtoU/9tzrKKiBUNRRF4y6IIAnGl5ll3MAA5J05i6ffoD0EekDOgOHHVwOut2un Uah1DmpKrZzL6MWuuwFG0i5x1yh6THql+usLvoVXWmzY8AUSOgfHyPNg7g0hgqx5 K2jJhuc26aLfgxwSEPOc6z41xt7lHGpjOTwfLyGx8Z0OGCykEDLwtnnea429gC48 8MvQYTefpPX7OoTJ81KLg6By1fVv9j/aGL83/PEtm8YqxZnypZRk53kj5wXNn4fJ ovs3nmQwSuwvDPIsfa636e+ZzKc9wAMI7O6BIx/JJ4DfVFe7dIuChGMnbJsDJ3dq J063yXqwleeoNUfXrDBHgrMdvXJe40nEjqAJQ5nzcxA6diu9gvJeSzD+ZaEpfQ6o ZS8lXlHeREqNaLepx+HXQGVu69SlGNb8nZhGUH5qC6Q+eghfGTmoqai25cJJzeJV 3xYBOea4k5euvLn850bf6dGvzuD8kdgmaxyd1vOJlEG1bpvz2Dy7l+rRF0tiF+FC K92L6CRrNdjMEVYnMXjy
=ogEA
-----END PGP SIGNATURE-----