Project

General

Profile

Bug #15859

MRB issue with non-cetbuildtools packages marked only_for_build

Added by Eric Flumerfelt over 2 years ago. Updated over 2 years ago.

Status:
Assigned
Priority:
Low
Assignee:
Target version:
-
Start date:
03/14/2017
Due date:
% Done:

0%

Estimated time:
8.00 h
Duration:

Description

I'm trying to make TRACE a build-only dependency for artdaq_core. I have the following in my product_deps:

product         version         optional
canvas          v1_06_02        s46
canvas          v1_05_01        s43
canvas          v1_05_00        s44
canvas          v1_05_00        s42
canvas          v1_04_06        s41
TRACE           v3_07_02        -       only_for_build
cetbuildtools   v5_06_06        -       only_for_build
end_product_list

qualifier               canvas          TRACE   notes
e14:s46:debug           e14:debug       -nq-    -std=c++14
e14:s46:prof            e14:prof        -nq-    -std=c++14
...

But when I mrbsetenv, I get this error:

The working build directory is /home/eflumerf/Desktop/artdaq-demo-v2_02_01-base/build_slf7.x86_64
The source code directory is /home/eflumerf/Desktop/artdaq-demo-v2_02_01-base/srcs
----------- check this block for errors -----------------------
ERROR: Product 'TRACE' (with qualifiers ''), has no current chain (or may not exist)
ERROR: setup -B TRACE  failed
ERROR: For more information, type "ups depend TRACE " 
                             or "ups list -aK+ TRACE " 
ERROR: setup of required products has failed

Looking at build_slf7.x86_64/artdaq_demo-v2_09_02, I see:

# Configuring artdaq_core
set_ setup_fail="false" 
setup -B TRACE 
test "$?" = 0 || set_ setup_fail="true" 
test "$setup_fail" =  "true" && echo "ERROR: setup -B TRACE  failed" 
test "$setup_fail" =  "true" && echo "ERROR: For more information, type \"ups depend TRACE \"" 
test "$setup_fail" =  "true" && echo "                             or \"ups list -aK+ TRACE \"" 
test "$setup_fail" =  "true" && return 1
set_ setup_fail="false" 
setup -B canvas v1_04_06 -q +e10:+prof
test "$?" = 0 || set_ setup_fail="true" 
test "$setup_fail" =  "true" && echo "ERROR: setup -B canvas v1_04_06 -q +e10:+prof failed" 
test "$setup_fail" =  "true" && echo "ERROR: For more information, type \"ups depend canvas v1_04_06 -q +e10:+prof\"" 
test "$setup_fail" =  "true" && echo "                             or \"ups list -aK+ canvas v1_04_06\"" 
test "$setup_fail" =  "true" && return 1
set_ setup_fail="false" 
setup -B TRACE v3_07_02 
test "$?" = 0 || set_ setup_fail="true" 
test "$setup_fail" =  "true" && echo "ERROR: setup -B TRACE v3_07_02 failed" 
test "$setup_fail" =  "true" && echo "ERROR: For more information, type \"ups depend TRACE v3_07_02\"" 
test "$setup_fail" =  "true" && echo "                             or \"ups list -aK+ TRACE v3_07_02\"" 
test "$setup_fail" =  "true" && return 1

History

#1 Updated by Eric Flumerfelt over 2 years ago

I should note that doing a buildtool-based build of just the artdaq_core package works fine with this product_deps file, I only see this issue in MRB environments.

#2 Updated by Lynn Garren over 2 years ago

  • Status changed from New to Assigned
  • Assignee set to Lynn Garren
  • Estimated time set to 4.00 h

This should be a straightforward fix.

#3 Updated by Lynn Garren over 2 years ago

  • Status changed from Assigned to Feedback

If TRACE is only used for the build and has no qualifiers, do both builds work if you remove TRACE from the qualifier matrix?

#4 Updated by Eric Flumerfelt over 2 years ago

TRACE was also explicitly listed in artdaq_utilities' product_deps. Removing it entirely does not resolve the issue in MRB, both with and without TRACE in the qualifier matrix.
The buildtool-based build works correctly with only_for_build and TRACE not in the qualifier matrix.

With no TRACE in artdaq_utilities and TRACE removed from the qualifier matrix, artdaq_demo-v2_09_02 contains this:


# setup products
# Configuring artdaq_core
set_ setup_fail="false" 
setup -B TRACE 
test "$?" = 0 || set_ setup_fail="true" 
test "$setup_fail" =  "true" && echo "ERROR: setup -B TRACE  failed" 
test "$setup_fail" =  "true" && echo "ERROR: For more information, type \"ups depend TRACE \"" 
test "$setup_fail" =  "true" && echo "                             or \"ups list -aK+ TRACE \"" 
test "$setup_fail" =  "true" && return 1
set_ setup_fail="false" 
setup -B canvas v1_04_06 -q +e10:+prof
test "$?" = 0 || set_ setup_fail="true" 
test "$setup_fail" =  "true" && echo "ERROR: setup -B canvas v1_04_06 -q +e10:+prof failed" 
test "$setup_fail" =  "true" && echo "ERROR: For more information, type \"ups depend canvas v1_04_06 -q +e10:+prof\"" 
test "$setup_fail" =  "true" && echo "                             or \"ups list -aK+ canvas v1_04_06\"" 
test "$setup_fail" =  "true" && return 1
# Configuring artdaq_utilities
set_ setup_fail="false" 
setup -B messagefacility v1_17_01 -q +e10:+prof
test "$?" = 0 || set_ setup_fail="true" 
test "$setup_fail" =  "true" && echo "ERROR: setup -B messagefacility v1_17_01 -q +e10:+prof failed" 
test "$setup_fail" =  "true" && echo "ERROR: For more information, type \"ups depend messagefacility v1_17_01 -q +e10:+prof\"" 
test "$setup_fail" =  "true" && echo "                             or \"ups list -aK+ messagefacility v1_17_01\"" 
test "$setup_fail" =  "true" && return 1
# Configuring artdaq

With TRACE in the qualifier matrix, I get the same as posted in the original issue, regardless of whether TRACE is in artdaq_utilities' product_deps or not.

#5 Updated by Lynn Garren over 2 years ago

Um. You are building a product which depends normally on TRACE, and a product which only uses TRACE in the build? This is more complex than your original description.

#6 Updated by Eric Flumerfelt over 2 years ago

I looked at artdaq's product_deps, and it has something similar for smc_compiler.

Doing
TRACE v3_07_02 nq only_for_build
worked, even with it fully-included in artdaq_utilities.

#7 Updated by Lynn Garren over 2 years ago

  • Status changed from Feedback to Assigned
  • Priority changed from Normal to Low
  • Estimated time changed from 4.00 h to 8.00 h

Making this low priority since you found a solution that is supported by cetbuildtools.



Also available in: Atom PDF