[PATCH] osmo-ci[master]: Use stow for dependency management

2017-06-13 Thread Alexander Huemer
Hello Neels Hofmeyr, Harald Welte,

I'd like you to reexamine a change.  Please visit

https://gerrit.osmocom.org/2691

to look at the new patch set (#3).

Use stow for dependency management

This commit introduces the usage of GNU stow[1] for dependency
management.
Stow uses symlinks to make dependencies available in a single directory
althoguh they were installed in distinct directories.
Keeping installation directories seperate has the advantage of letting the
build fail if AM_CFLAGS and LDADD do not contain all dependencies which are
actually used.
Installing multiple dependencies into a single directory causes x_CFLAGS
and x_LIBS variables to magically point where other dependencies are
found as well, therefore missing entries can be overlooked.

Stow acts as a convenience layer here, making it unnecessary to supply a
list of locations in LD_LIBRARY_PATH, PKG_CONFIG_PATH and so forth for
building when dependencies are installed in distinct directories
manually.
Stow has to be present on the jenkins build nodes for successful executing of
osmo-build-dep.sh.

[1] https://www.gnu.org/software/stow/

Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a
---
M scripts/osmo-build-dep.sh
1 file changed, 9 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/91/2691/3

diff --git a/scripts/osmo-build-dep.sh b/scripts/osmo-build-dep.sh
index 2a107ed..9c55498 100755
--- a/scripts/osmo-build-dep.sh
+++ b/scripts/osmo-build-dep.sh
@@ -48,6 +48,14 @@
 fi
 git rev-parse HEAD # log current HEAD
 
+# Keep the installation targets of the dependencies in a seperate directory
+# hierarchy before stowing them to avoid wrongly suggesting that they are part
+# of the -I and -L search paths
+mkdir -p "$inst/stow"
+
 autoreconf --install --force
-./configure --prefix="$inst" $cfg
+./configure --prefix="$inst/stow/$project" $cfg
 $MAKE $PARALLEL_MAKE install
+
+# Make the dependencies available through symlinks in $deps ($PWD/..).
+STOW_DIR="$inst/stow" stow --restow $project

-- 
To view, visit https://gerrit.osmocom.org/2691
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a
Gerrit-PatchSet: 3
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Owner: Alexander Huemer 
Gerrit-Reviewer: Alexander Huemer 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Holger Freyther 
Gerrit-Reviewer: Neels Hofmeyr 
Gerrit-Reviewer: neels 


[PATCH] osmo-ci[master]: Use stow for dependency management

2017-05-20 Thread Alexander Huemer

Review at  https://gerrit.osmocom.org/2691

Use stow for dependency management

Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a
---
M scripts/osmo-build-dep.sh
1 file changed, 4 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/91/2691/1

diff --git a/scripts/osmo-build-dep.sh b/scripts/osmo-build-dep.sh
index 2a107ed..cdfbc45 100755
--- a/scripts/osmo-build-dep.sh
+++ b/scripts/osmo-build-dep.sh
@@ -48,6 +48,9 @@
 fi
 git rev-parse HEAD # log current HEAD
 
+mkdir -p "$inst/stow"
+
 autoreconf --install --force
-./configure --prefix="$inst" $cfg
+./configure --prefix="$inst/stow/$project" $cfg
 $MAKE $PARALLEL_MAKE install
+STOW_DIR="$inst/stow" stow --restow $project

-- 
To view, visit https://gerrit.osmocom.org/2691
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Owner: Alexander Huemer