[MERGED] osmo-ci[master]: Use stow for dependency management
Alexander Huemer has submitted this change and it was merged. Change subject: Use stow for dependency management .. 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(-) Approvals: Alexander Huemer: Verified Neels Hofmeyr: Looks good to me, approved Harald Welte: Looks good to me, approved diff --git a/scripts/osmo-build-dep.sh b/scripts/osmo-build-dep.sh index 6e9ef86..35cb373 100755 --- a/scripts/osmo-build-dep.sh +++ b/scripts/osmo-build-dep.sh @@ -43,6 +43,14 @@ osmo-deps.sh "$project" "$branch" cd "$project" +# 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: merged Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 5 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels
osmo-ci[master]: Use stow for dependency management
Patch Set 4: Verified+1 -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 4 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 4: > yes, we need a +V vote that someone verifies that the patch works > when applied to current master. In the lack of an automatic test on > jenkins, someone should run this manually and add V+1 bump: Alexander, I assumed you could verify and add your V+1 vote? -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 4 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: yes, we need a +V vote that someone verifies that the patch works when applied to current master. In the lack of an automatic test on jenkins, someone should run this manually and add V+1 -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: > stow is now installed on all build slaves, wiki also lists stow > now. Is there anything I can do to move forward with change? -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: stow is now installed on all build slaves, wiki also lists stow now. -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: Code-Review+2 We need someone to add a +V vote, I'd be fine with doing the installation of stow and editing the osmocom servers wiki -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: what holds me back now is that we need to install stow on the build slaves, right? If I merge this, all our builds will fall on their faces otherwise. -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: hmm, can we get someone else to approve as well? -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: > (1 comment) Abstract the fact away whether the dependency was provided by compilation from source or by extraction of an artifact tar-ball. One artifact tar-ball should contain the result of a make install run of a single library to an empty directory. >From a dependency consummation perspective the rest does not change. You extract the content of an artifact tar file (or make install) to a distinct directory and do that for all artifacts. Those directories are then stowed to a final destination directory which is then the sole directory where the package to be built searches for its dependencies. -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/2691/3/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: PS3, Line 60: # Make the dependencies available through symlinks in $deps ($PWD/..). : STOW_DIR="$inst/stow" stow --restow $project Currently we are working on a script[1] to reuse dependency artifacts to speed up builds. How could we make the dependencies available through symlinks, in case we just fetched the dependencies as tar and simple untar them (tar basically holds the deps folder). Right now that's possible by simply setting LD_LIBRARY_PATH and PKG_CONFIG_PATH, but I didn't figure out how to "restow" such dependencies deployed by untaring "artifacts.tar.gz" [1] https://gerrit.osmocom.org/#/c/2465/ -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 3 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: André Boddenberg Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: blobb Gerrit-Reviewer: neels Gerrit-HasComments: Yes
osmo-ci[master]: Use stow for dependency management
Patch Set 3: Clean/good AM_CFLAGS is a nice goal. @blobb: Does this interfere with how we will save artifacts with your scripts? -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment 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: blobb Gerrit-Reviewer: neels Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 3: Code-Review+1 (1 comment) I'd accept this, can someone else also approve please? https://gerrit.osmocom.org/#/c/2691/3/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: Line 54: mkdir -p "$inst/stow" > Yes, it does. ah ok, that explains it. -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment 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 Gerrit-HasComments: Yes
osmo-ci[master]: Use stow for dependency management
Patch Set 3: (1 comment) > (1 comment) > > When I read this, I still have a question. So we install to > separate dirs, then stow creates symlinks to combine the installed > files in one dir again? But then we need to pass only one > LD_LIBRARY_PATH and one PKG_CONFIG_PATH with the symlinks? So how > then does it make us find errors like forgotten dep dirs? Or > otherwise, why the symlinks? The reason is that the .pc files point to the original install locations, not to the one where stow aggregates the installations. That makes the difference during the build. Just give it a try with the openbsc repository. Revert commit 5265bea76c90427d70257b7fac0f0b7d40a015cb and run contrib/jenkins.sh without this changeset applied to osmo-ci. https://gerrit.osmocom.org/#/c/2691/3/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: Line 54: mkdir -p "$inst/stow" > I still don't understand why a separate 'stow' subdir is needed. $inst is a Yes, it does. >From the manpage: > the target directory is assumed to be the parent of the current directory -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment 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 Gerrit-HasComments: Yes
osmo-ci[master]: Use stow for dependency management
Patch Set 3: (1 comment) When I read this, I still have a question. So we install to separate dirs, then stow creates symlinks to combine the installed files in one dir again? But then we need to pass only one LD_LIBRARY_PATH and one PKG_CONFIG_PATH with the symlinks? So how then does it make us find errors like forgotten dep dirs? Or otherwise, why the symlinks? https://gerrit.osmocom.org/#/c/2691/3/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: Line 54: mkdir -p "$inst/stow" I still don't understand why a separate 'stow' subdir is needed. $inst is an empty directory intended for storing installation files. Does stow put things in "$STOW_DIR/.." or why the extra path element? -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment 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 Gerrit-HasComments: Yes
osmo-ci[master]: Use stow for dependency management
Patch Set 2: (4 comments) https://gerrit.osmocom.org/#/c/2691/2//COMMIT_MSG Commit Message: Line 12: has the advantage of letting the build fail if not all location listings > I find this really hard to read. "Installing dependent libraries in..."? Ra Done Line 18: building when dependencies are installed in distinct directories > what so forth? AFAIK those two are all that is needed? Does it also manage Correct, those two are all that is needed. Commit message corrected. AM_CFLAGS is handled via pkg-config. https://gerrit.osmocom.org/#/c/2691/2/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: Line 51: mkdir -p "$inst/stow" > $inst is already an empty folder intended as prefix target. Do you really n I added a comment in the script as justification. Line 56: STOW_DIR="$inst/stow" stow --restow $project > I'm curious what this does. Could it get a single line comment? Done -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 2 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 Gerrit-HasComments: Yes
[PATCH] osmo-ci[master]: Use stow for dependency management
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
osmo-ci[master]: Use stow for dependency management
Patch Set 2: Code-Review-1 (4 comments) adding stow seems to be really simple. I'm generally in favor, because this finds errors in our installation targets. Let's resolve the questions though (marking -1 for that). Generally it could be helpful to put explanations as a comment in the build script instead of / in addition to the commit log, so future readers of the code can benefit. https://gerrit.osmocom.org/#/c/2691/2//COMMIT_MSG Commit Message: Line 12: has the advantage of letting the build fail if not all location listings I find this really hard to read. "Installing dependent libraries in..."? Rather write more and shorter sentences? Line 18: building when dependencies are installed in distinct directories what so forth? AFAIK those two are all that is needed? Does it also manage CFLAGS=$include_dir somehow? https://gerrit.osmocom.org/#/c/2691/2/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: Line 51: mkdir -p "$inst/stow" $inst is already an empty folder intended as prefix target. Do you really need another subfolder? Line 56: STOW_DIR="$inst/stow" stow --restow $project I'm curious what this does. Could it get a single line comment? -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 2 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 Gerrit-HasComments: Yes
osmo-ci[master]: Use stow for dependency management
Patch Set 2: I think it's up to the developers maintaininig our jenkins setup to decide here -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 2 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 Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 2: I independently found the mailing list thread now (I had flagged it as something to read later but only got around doing that now), sorry for missing it. In any case, it's good to have a verbose change log and the link in the message. Thanks -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 2 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: Harald Welte Gerrit-HasComments: No
osmo-ci[master]: Use stow for dependency management
Patch Set 2: > What I'm missing here is some more background. Call me old, but I > didn't even know what stow was prior to doing a search after seeing > this commit. Unless I'm the only one on the planet not knowing > stow, it deserves some description in the commitlog, with a pointer > to more information. Most importantly, it should explain what the > benefit is, and also what kind of implications it has (e.g. people > have to unconditionally install it, ...?) The commit message was indeed quite sparse, I amended it. Please also see [1] and the following short thread for additional reasoning behind the change. [1] http://lists.osmocom.org/pipermail/openbsc/2017-May/010690.html -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 2 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Alexander Huemer Gerrit-Reviewer: Harald Welte Gerrit-HasComments: No
[PATCH] osmo-ci[master]: Use stow for dependency management
Hello Harald Welte, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/2691 to look at the new patch set (#2). Use stow for dependency management This commit introduces the usage of GNU stow[1] for dependency management. Having libraries a build depends on installed in distinct directories has the advantage of letting the build fail if not all location listings in AM_CFLAGS and LDADD listings contain all correcponding entries to used dependencies since then those dependencies (header files and libraries) won't be found by coincidence. 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, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/91/2691/2 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: newpatchset Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 2 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Harald Welte
osmo-ci[master]: Use stow for dependency management
Patch Set 1: Code-Review-1 What I'm missing here is some more background. Call me old, but I didn't even know what stow was prior to doing a search after seeing this commit. Unless I'm the only one on the planet not knowing stow, it deserves some description in the commitlog, with a pointer to more information. Most importantly, it should explain what the benefit is, and also what kind of implications it has (e.g. people have to unconditionally install it, ...?) -- To view, visit https://gerrit.osmocom.org/2691 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a Gerrit-PatchSet: 1 Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Harald Welte Gerrit-HasComments: No
[PATCH] osmo-ci[master]: Use stow for dependency management
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