Project

General

Profile

Feature #22181

Packaging gibuu 2019

Added by Christopher Backhouse 8 months ago. Updated 7 months ago.

Status:
Assigned
Priority:
Normal
Target version:
-
Start date:
03/21/2019
Due date:
% Done:

0%

Estimated time:
Scope:
Internal
Experiment:
NOvA
SSI Package:
Co-Assignees:
Duration:

Description

Back in 2017 you created a ups product for the gibuu neutrino generator
that has been very helpful.

There is now a 2019 release available that we would like to update to.

I've experimented locally, and just grabbing all the tarballs here
(including RootTuple, which we'll want)
https://gibuu.hepforge.org/trac/wiki/download#Downloadastarballs
and typing 'make' in the release2019 directory seems to work.

Hopefully this is very similar to how the v2016 product was made, and so
should require minimal changes to the scripting. Unfortunately I don't
have access to my old emails anymore, so I can't check the details.

History

#1 Updated by Lynn Garren 8 months ago

gibuu was packaged for NOvA by Kanika Sachdev <>

These instructions are a useful starting point.

git clone ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework-gibuu-ssi-build  gibuu-ssi-build

#2 Updated by Christopher Backhouse 8 months ago

Could you add me as a developer of that project?

#3 Updated by Lynn Garren 8 months ago

Done. Can we also assign this issue to you?

#4 Updated by Christopher Backhouse 8 months ago

Hmm, I still can't clone...

#5 Updated by Lynn Garren 8 months ago

I think there is a wait time until permission changes take effect.

#6 Updated by Christopher Green 8 months ago

  • Assignee set to Christopher Backhouse
  • Status changed from New to Assigned

#7 Updated by Christopher Backhouse 7 months ago

OK, I have this packaged to my satisfaction and available at /cvmfs/nova.opensciencegrid.org/externals/gibuu/. It's not clear to me that the scripts in the repository (that I updated for v2019) are quite right - the ssibuildshims bootstrapping in particular doesn't seem to work.

#8 Updated by Lynn Garren 7 months ago

Please explain what you mean by "the bootstrap script does not seem to work". Did you then download the code by hand? I'm having a look and not seeing a problem.

#9 Updated by Christopher Backhouse 7 months ago

In fact, it looks like bootstrap.sh works fine.

In build_gibuu.sh, if I pass the same path I gave to bootstrap.sh then ssibuildshims sets up, but nothing else works. If I pass $THAT_DIR/gibuu/ then ssibuildshims fails but a manual setup ssibuildshims v0_16_00 gets past it, and then everything else works.

Do I need to append a /gibuu to %{pkgdir} (where?) or have bootstrap.sh somehow unpack things one level higher?

#10 Updated by Lynn Garren 7 months ago

First, I apologize for not realizing that you needed a modern ssibuildshims. It should be updated, but we also need to update some of the boilerplate in the scripts at the same time. I believe that updating ssibuildshims will resolve the path problem. But so that we can verify that, are you using a relative path from the build script or a full path starting with /?

#11 Updated by Christopher Backhouse 7 months ago

I'm using a full path, but only because a relative path seemed to cause problems.

#12 Updated by Lynn Garren 7 months ago

I've updated everything to use the latest ssibuildshims release. That involved editing the table file. I think the old ssibuildshims was causing unintended confusion.

The ssibuildshims scripts are designed to use a full path for the product directory. This is partly because ups needs the full path. That said, the use of readlink appears to translate a relative path into a working product_dir. However, the best way to get the proper path involves a cd to the directory followed by pwd. Where supported, you can use pwd -P to resolve symbolic links.

#13 Updated by Christopher Backhouse 7 months ago

Sorry, I need to make one more change: adding the withROOT=1 option to the build to get a feature we want. I committed that to git. But things still don't run properly for me.

At the end of bootstrap.sh I get

calling ssibuildshims/v1_04_13/bin/make_source_code_tarball
-bash: ssibuildshims/v1_04_13/bin/make_source_code_tarball: No such file or directory

Then running build_gibuu.sh I get

Error encountered when setting up product: ssibuildshims
ERROR: No instance matches were made between the 
version file (/var/tmp/gibuu/ssibuildshims/v1_04_13.version) and the 
table file (ssibuildshims.table) for flavor (NULL) and qualifiers ()
ERROR: Possible UPS database (/var/tmp/gibuu) corruption in product 'ssibuildshims'.
ERROR: Product 'ssibuildshims' (with qualifiers ''), has no v1_04_13 version (or may not exist)
ERROR: failed to setup ssibuildshims v1_04_13

It looks like it doesn't pick up the ssibuildshims the bootstrap put inside by product directory. I can't set up ssibuildshims v1_04_13 manually, since the latest version ups list can find for me is v0_16_00.

#14 Updated by Christopher Backhouse 7 months ago

How do you setup ups at the start of the whole process? That's the only point where I can possibly be doing something nonstandard.

#15 Updated by Lynn Garren 7 months ago

source <products>/setup

#16 Updated by Christopher Backhouse 7 months ago

I still get the same errors. This is my entire sequence of steps.

source /cvmfs/nova.opensciencegrid.org/externals/setup
mkdir /var/tmp/gibuu
./bootstrap.sh /var/tmp/gibuu/
./build_gibuu.sh /var/tmp/gibuu/ e15

#17 Updated by Lynn Garren 7 months ago

I see the problem. When you make a new products directory, you need to copy in a .upsfiles directory.

cp -pr /cvmfs/nova.opensciencegrid.org/externals/.upsfiles /var/tmp/gibuu/

#18 Updated by Christopher Backhouse 7 months ago

That did the trick!

Should bootstrap.sh create that directory itself? It doesn't look very complicated.

The scripts should at least refuse to continue without it.

#19 Updated by Lynn Garren 7 months ago

Actually, most of our work is done with existing local product directories. It could be somewhat disastrous to have any bootstrap script attempt to create the product directory. Also, we often work with sets of products that depend on each other. Having a single directory per product is counter productive. However, checking to see if .upsfiles exists is useful. We will consider that option. I should note that you can either copy in .upsfiles or install ups in the local products directory. If you install ups, you will automatically get a .upsfiles directory.

#20 Updated by Lynn Garren 7 months ago

The check for .upsfiles needs to be in each bootstrap script. I've added it to the gibuu bootstrap.sh.

There is another problem, however. If you are building against root, root needs to be setup by the gibuu ups table file.



Also available in: Atom PDF