alibuild 1.17.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- alibuild-1.17.19.data/scripts/aliBuild +137 -0
- alibuild-1.17.19.data/scripts/aliDeps +7 -0
- alibuild-1.17.19.data/scripts/aliDoctor +7 -0
- alibuild-1.17.19.data/scripts/alienv +344 -0
- alibuild-1.17.19.data/scripts/pb +7 -0
- alibuild-1.17.19.dist-info/METADATA +78 -0
- alibuild-1.17.19.dist-info/RECORD +74 -0
- alibuild-1.17.19.dist-info/WHEEL +5 -0
- alibuild-1.17.19.dist-info/licenses/LICENSE.md +674 -0
- alibuild-1.17.19.dist-info/top_level.txt +5 -0
- alibuild_helpers/__init__.py +21 -0
- alibuild_helpers/_version.py +21 -0
- alibuild_helpers/analytics.py +120 -0
- alibuild_helpers/args.py +493 -0
- alibuild_helpers/build.py +1209 -0
- alibuild_helpers/build_template.sh +314 -0
- alibuild_helpers/clean.py +83 -0
- alibuild_helpers/cmd.py +154 -0
- alibuild_helpers/deps.py +116 -0
- alibuild_helpers/doctor.py +195 -0
- alibuild_helpers/git.py +104 -0
- alibuild_helpers/init.py +103 -0
- alibuild_helpers/log.py +132 -0
- alibuild_helpers/scm.py +31 -0
- alibuild_helpers/sl.py +62 -0
- alibuild_helpers/sync.py +693 -0
- alibuild_helpers/templating_plugin.py +18 -0
- alibuild_helpers/utilities.py +662 -0
- alibuild_helpers/workarea.py +179 -0
- debian/changelog +11 -0
- debian/compat +1 -0
- debian/control +14 -0
- debian/copyright +10 -0
- debian/files +1 -0
- debian/rules +7 -0
- docs/README.md +1 -0
- docs/SUPPORT +3 -0
- docs/docs/alice_logo.png +0 -0
- docs/docs/deps.png +0 -0
- docs/docs/index.md +75 -0
- docs/docs/quick.md +89 -0
- docs/docs/reference.md +430 -0
- docs/docs/stylesheets/extra.css +9 -0
- docs/docs/troubleshooting.md +346 -0
- docs/docs/user.md +413 -0
- docs/mkdocs.yml +37 -0
- templates/alibuild_to_please.jnj +63 -0
- tests/test_analytics.py +42 -0
- tests/test_args.py +119 -0
- tests/test_build.py +426 -0
- tests/test_clean.py +154 -0
- tests/test_cmd.py +73 -0
- tests/test_deps.py +79 -0
- tests/test_doctor.py +128 -0
- tests/test_git.py +48 -0
- tests/test_hashing.py +67 -0
- tests/test_init.py +103 -0
- tests/test_log.py +50 -0
- tests/test_packagelist.py +235 -0
- tests/test_parseRecipe.py +132 -0
- tests/test_sync.py +332 -0
- tests/test_utilities.py +383 -0
- tests/test_workarea.py +101 -0
- tests/testdist/broken1.sh +1 -0
- tests/testdist/broken2.sh +1 -0
- tests/testdist/broken3.sh +3 -0
- tests/testdist/broken4.sh +2 -0
- tests/testdist/broken5.sh +2 -0
- tests/testdist/broken6.sh +2 -0
- tests/testdist/broken7.sh +5 -0
- tests/testdist/clobber-initdotsh.sh +4 -0
- tests/testdist/defaults-o2.sh +10 -0
- tests/testdist/delete-etc.sh +4 -0
- tests/testdist/tracking-env.sh +6 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
#!python
|
|
2
|
+
import os
|
|
3
|
+
import sys
|
|
4
|
+
import atexit
|
|
5
|
+
import logging
|
|
6
|
+
import traceback
|
|
7
|
+
|
|
8
|
+
from os.path import exists, expanduser
|
|
9
|
+
from alibuild_helpers import __version__
|
|
10
|
+
from alibuild_helpers.analytics import decideAnalytics, askForAnalytics, report_screenview, report_exception, report_event
|
|
11
|
+
from alibuild_helpers.analytics import enable_analytics, disable_analytics
|
|
12
|
+
from alibuild_helpers.args import doParseArgs
|
|
13
|
+
from alibuild_helpers.init import doInit
|
|
14
|
+
from alibuild_helpers.clean import doClean
|
|
15
|
+
from alibuild_helpers.doctor import doDoctor
|
|
16
|
+
from alibuild_helpers.deps import doDeps
|
|
17
|
+
from alibuild_helpers.log import info, debug, logger, error
|
|
18
|
+
from alibuild_helpers.utilities import detectArch
|
|
19
|
+
from alibuild_helpers.build import doBuild
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def doMain(args, parser):
|
|
23
|
+
# We need to unset BASH_ENV because in certain environments (e.g.
|
|
24
|
+
# NERSC) this is used to source a (non -e safe) bashrc, effectively
|
|
25
|
+
# breaking aliBuild.
|
|
26
|
+
# We set all the locale related environment to C to make sure
|
|
27
|
+
# do not get fooled when parsing localized messages.
|
|
28
|
+
# We set ALIBUILD_ARCHITECTURE so that it's picked up by the external
|
|
29
|
+
# command which does the reporting.
|
|
30
|
+
if not "architecture" in args:
|
|
31
|
+
args.architecture = detectArch()
|
|
32
|
+
ENVIRONMENT_OVERRIDES = {
|
|
33
|
+
"LANG": "C",
|
|
34
|
+
"LANGUAGE": "C",
|
|
35
|
+
"LC_ALL": "C",
|
|
36
|
+
"LC_COLLATE": "C",
|
|
37
|
+
"LC_CTYPE": "C",
|
|
38
|
+
"LC_MESSAGES": "C",
|
|
39
|
+
"LC_MONETARY": "C",
|
|
40
|
+
"LC_NUMERIC": "C",
|
|
41
|
+
"LC_TIME": "C",
|
|
42
|
+
"GREP_OPTIONS": "",
|
|
43
|
+
"BASH_ENV": "",
|
|
44
|
+
"ALIBUILD_ARCHITECTURE": args.architecture
|
|
45
|
+
}
|
|
46
|
+
os.environ.update(ENVIRONMENT_OVERRIDES)
|
|
47
|
+
report_screenview(args.action)
|
|
48
|
+
|
|
49
|
+
# Move to the specified working directory before doing anything else
|
|
50
|
+
if "chdir" in args:
|
|
51
|
+
try:
|
|
52
|
+
os.chdir(os.path.expanduser(args.chdir))
|
|
53
|
+
debug("Current working directory is %s" % os.getcwd())
|
|
54
|
+
except Exception as e:
|
|
55
|
+
error("Cannot change to directory \"%s\"." % args.chdir)
|
|
56
|
+
error(e.message)
|
|
57
|
+
exit(1)
|
|
58
|
+
|
|
59
|
+
if args.action == "version" or args.action is None:
|
|
60
|
+
print("aliBuild version: {version} ({arch})".format(
|
|
61
|
+
version=__version__ or "unknown", arch=args.architecture or "unknown"))
|
|
62
|
+
sys.exit(0)
|
|
63
|
+
|
|
64
|
+
if args.action == "doctor":
|
|
65
|
+
doDoctor(args, parser)
|
|
66
|
+
|
|
67
|
+
logger.setLevel(logging.DEBUG if args.debug else logging.INFO)
|
|
68
|
+
|
|
69
|
+
if args.action == "deps":
|
|
70
|
+
sys.exit(0 if doDeps(args, parser) else 1)
|
|
71
|
+
|
|
72
|
+
if args.action == "clean":
|
|
73
|
+
doClean(workDir=args.workDir, architecture=args.architecture, aggressiveCleanup=args.aggressiveCleanup, dryRun=args.dryRun)
|
|
74
|
+
exit(0)
|
|
75
|
+
|
|
76
|
+
# Setup build environment.
|
|
77
|
+
if args.action == "init":
|
|
78
|
+
doInit(args)
|
|
79
|
+
exit(0)
|
|
80
|
+
|
|
81
|
+
if args.action == "build":
|
|
82
|
+
doBuild(args, parser)
|
|
83
|
+
sys.exit(0)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
if __name__ == "__main__":
|
|
87
|
+
args, parser = doParseArgs()
|
|
88
|
+
|
|
89
|
+
# This is valid for everything
|
|
90
|
+
logger.setLevel(logging.DEBUG if args.debug else logging.INFO)
|
|
91
|
+
|
|
92
|
+
os.environ["ALIBUILD_ANALYTICS_ID"] = "UA-77346950-1"
|
|
93
|
+
os.environ["ALIBUILD_VERSION"] = __version__ or ""
|
|
94
|
+
if args.action == "analytics":
|
|
95
|
+
if args.state == "off":
|
|
96
|
+
disable_analytics()
|
|
97
|
+
else:
|
|
98
|
+
enable_analytics()
|
|
99
|
+
exit(0)
|
|
100
|
+
elif args.action == "architecture":
|
|
101
|
+
arch = detectArch()
|
|
102
|
+
print(arch if arch else "<unknown>")
|
|
103
|
+
exit(0)
|
|
104
|
+
|
|
105
|
+
if not decideAnalytics(exists(expanduser("~/.config/alibuild/disable-analytics")),
|
|
106
|
+
exists(expanduser("~/.config/alibuild/analytics-uuid")),
|
|
107
|
+
sys.stdin.isatty(),
|
|
108
|
+
askForAnalytics):
|
|
109
|
+
os.environ["ALIBUILD_NO_ANALYTICS"] = "1"
|
|
110
|
+
else:
|
|
111
|
+
os.environ["ALIBUILD_ANALYTICS_USER_UUID"] = open(expanduser("~/.config/alibuild/analytics-uuid")).read().strip()
|
|
112
|
+
try:
|
|
113
|
+
useProfiler = "--profile" in sys.argv
|
|
114
|
+
if useProfiler:
|
|
115
|
+
print("profiler started")
|
|
116
|
+
import cProfile, pstats
|
|
117
|
+
from io import StringIO
|
|
118
|
+
pr = cProfile.Profile()
|
|
119
|
+
pr.enable()
|
|
120
|
+
def profiler():
|
|
121
|
+
pr.disable()
|
|
122
|
+
print("profiler stopped")
|
|
123
|
+
s = StringIO()
|
|
124
|
+
sortby = 'time'
|
|
125
|
+
ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
|
|
126
|
+
ps.print_stats()
|
|
127
|
+
print(s.getvalue())
|
|
128
|
+
atexit.register(profiler)
|
|
129
|
+
doMain(args, parser)
|
|
130
|
+
except KeyboardInterrupt as e:
|
|
131
|
+
info(str(e))
|
|
132
|
+
report_event("user", "ctrlc")
|
|
133
|
+
exit(1)
|
|
134
|
+
except Exception as e:
|
|
135
|
+
traceback.print_exc()
|
|
136
|
+
report_exception(e)
|
|
137
|
+
exit(1)
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
#!/bin/bash -e
|
|
2
|
+
|
|
3
|
+
# Load and test Modulefiles created by recipes.
|
|
4
|
+
PROG=$(basename "$0")
|
|
5
|
+
|
|
6
|
+
# If we are on a TTY, enable colors
|
|
7
|
+
if test -t 1; then
|
|
8
|
+
EM=`printf '\033[35m'` # magenta
|
|
9
|
+
ET=`printf '\033[36m'` # cyan
|
|
10
|
+
ER=`printf '\033[31m'` # red
|
|
11
|
+
EY=`printf '\033[33m'` # yellow
|
|
12
|
+
EZ=`printf '\033[m'` # reset
|
|
13
|
+
else
|
|
14
|
+
EM=
|
|
15
|
+
ET=
|
|
16
|
+
ER=
|
|
17
|
+
EY=
|
|
18
|
+
EZ=
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# My operating system
|
|
22
|
+
UNAME=$(uname)
|
|
23
|
+
|
|
24
|
+
function printHelp() {
|
|
25
|
+
cat >&2 <<EoF
|
|
26
|
+
$PROG -- load environment for aliBuild packages through modulefiles
|
|
27
|
+
|
|
28
|
+
Usage: $0 \\
|
|
29
|
+
[--architecture|-a ${ET}ARCHITECTURE${EZ}] \\
|
|
30
|
+
[--work-dir|-w ${ET}WORKDIR${EZ}] \\
|
|
31
|
+
[--no-refresh] \\
|
|
32
|
+
${ET}COMMAND...${EZ}
|
|
33
|
+
|
|
34
|
+
${EM}--no-refresh${EZ} skips refreshing the modules directory.
|
|
35
|
+
|
|
36
|
+
${ET}WORKDIR${EZ} defaults to sw.
|
|
37
|
+
${ET}ARCHITECTURE${EZ} is automatically detected in most cases.
|
|
38
|
+
|
|
39
|
+
${ET}COMMAND...${EZ} might be:
|
|
40
|
+
|
|
41
|
+
${EM}help${EZ}
|
|
42
|
+
This help screen.
|
|
43
|
+
|
|
44
|
+
${EM}enter${EZ} [${ET}--shellrc${EZ}] [${ET}--dev${EZ}] MODULE1[,MODULE2...]
|
|
45
|
+
Enters a new shell with the given modules loaded.
|
|
46
|
+
Return to the clean environment by exiting the shell with ${ET}exit${EZ}.
|
|
47
|
+
Inside the environment you can use the native ${ET}modulecmd${EZ}.
|
|
48
|
+
By default you enter the same shell type you are in. Override with environment variable ${ET}MODULES_SHELL${EZ}.
|
|
49
|
+
The new shell will not load your shell startup file by default (e.g. ~/.bashrc) to avoid environment conflicts.
|
|
50
|
+
If you want to retain your shell startup files use ${ET}--shellrc${EZ}.
|
|
51
|
+
If you want to add environment variables for development use ${ET}--dev${EZ}
|
|
52
|
+
Alternatively you can use the ${EM}load${EZ} command in the current shell.
|
|
53
|
+
|
|
54
|
+
${EM}setenv${EZ} MODULE1[,MODULE2...] ${ET}-c${EZ} cmdInEnvironment [PARAM1 [PARAM2...]]
|
|
55
|
+
Executes the given command with environment defined by the given modules.
|
|
56
|
+
Everything after ${ET}-c${EZ} is executed as-is.
|
|
57
|
+
Exit code is preserved.
|
|
58
|
+
Example: $ET$0 setenv AliRoot/v5-08-02-1 -c aliroot -b$EZ
|
|
59
|
+
|
|
60
|
+
${EM}printenv${EZ} or ${EM}load${EZ} [${ET}-q${EZ}] MODULE1[,MODULE2...]
|
|
61
|
+
Prints the environment in the current shell for the given modules (${ET}-q${EZ} for quiet).
|
|
62
|
+
This command does not set any environment and it must be executed through ${ET}eval${EZ} to be effective.
|
|
63
|
+
Override shell with the environment variable ${ET}MODULES_SHELL${EZ}.
|
|
64
|
+
Example: ${ET}eval \`$0 load AliRoot/latest\`$EZ (those are backquotes!)
|
|
65
|
+
|
|
66
|
+
${EM}unload${EZ} [${ET}-q${EZ}] MODULE1[,MODULE2...]
|
|
67
|
+
Prints the environment in the current shell for unloading the given modules (${ET}-q${EZ} for quiet).
|
|
68
|
+
This command does not set any environment and it must be executed through ${ET}eval${EZ} to be effective.
|
|
69
|
+
Override shell with the environment variable ${ET}MODULES_SHELL${EZ}.
|
|
70
|
+
Example: ${ET}eval \`$0 unload AliRoot\`$EZ (version can be omitted)
|
|
71
|
+
|
|
72
|
+
${EM}q${EZ} or ${EM}query${EZ} [REGEXP]
|
|
73
|
+
List all available modules, or the ones matching ${ET}REGEXP${EZ} if provided.
|
|
74
|
+
|
|
75
|
+
${EM}list${EZ}
|
|
76
|
+
List loaded modules.
|
|
77
|
+
|
|
78
|
+
${EM}modulecmd${EZ} [PARAM1 [PARAM2...]]]
|
|
79
|
+
Pass all arguments as-is to the ${ET}modulecmd${EZ} command.
|
|
80
|
+
Example: print AliRoot env for zsh: $ET$0 modulecmd zsh load AliRoot/v5-08-02-1$EZ
|
|
81
|
+
Consult ${ET}man modulecmd${EZ} for more information.
|
|
82
|
+
|
|
83
|
+
${EM}shell-helper${EZ}
|
|
84
|
+
Returns a script to be ${ET}eval${EZ}d in your shell rc file to allow easier loading/unloading.
|
|
85
|
+
In your shell rc put:
|
|
86
|
+
${ET}ALIBUILD_WORK_DIR=<path_to_alibuild_sw_dir>${EZ}
|
|
87
|
+
${ET}eval "\`alienv shell-helper\`"${EZ}
|
|
88
|
+
|
|
89
|
+
EoF
|
|
90
|
+
[[ -z "$1" ]] || printf "${ER}ERROR: $*${EZ}\n" >&2
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function installHint() {
|
|
94
|
+
if [[ $UNAME == Darwin ]]; then
|
|
95
|
+
CMD='brew install modules'
|
|
96
|
+
elif command -v apt-get > /dev/null 2>&1; then
|
|
97
|
+
CMD='apt-get install environment-modules'
|
|
98
|
+
elif command -v yum > /dev/null 2>&1; then
|
|
99
|
+
CMD='yum install environment-modules'
|
|
100
|
+
fi
|
|
101
|
+
printf "${ER}ERROR: Environment Modules was not found on your system.\n" >&2
|
|
102
|
+
if [[ -z "$CMD" ]]; then
|
|
103
|
+
printf " The package is usually called ${EM}environment-modules${ER}.\n" >&2
|
|
104
|
+
else
|
|
105
|
+
printf " Get it with: ${EM}${CMD}\n" >&2
|
|
106
|
+
fi
|
|
107
|
+
printf "${EZ}"
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function detectShell() {
|
|
111
|
+
# Detect parent shell (fall back to bash)
|
|
112
|
+
[[ -z "$MODULES_SHELL" ]] && MODULES_SHELL=$(ps -e -o pid,command | grep -E "^\s*$PPID\s+" | awk '{print $2}' | sed -e 's/^-\{0,1\}\(.*\)$/\1/')
|
|
113
|
+
case "$MODULES_SHELL" in
|
|
114
|
+
sh) ;;
|
|
115
|
+
csh|tcsh) SHELL_NORC_PARAM=-f ;;
|
|
116
|
+
ksh) SHELL_NORC_ENV="ENV=/dev/null" ;;
|
|
117
|
+
zsh) SHELL_NORC_PARAM=--no-rcs ;;
|
|
118
|
+
*) MODULES_SHELL=bash
|
|
119
|
+
SHELL_NORC_PARAM=--norc ;;
|
|
120
|
+
esac
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function collectModules() {
|
|
124
|
+
if [[ -z "$NO_REFRESH" ]]; then
|
|
125
|
+
# Collect all modulefiles in one place
|
|
126
|
+
rm -rf $WORK_DIR/MODULES/$ARCHITECTURE
|
|
127
|
+
mkdir -p $WORK_DIR/MODULES/$ARCHITECTURE/BASE
|
|
128
|
+
cat > $WORK_DIR/MODULES/$ARCHITECTURE/BASE/1.0 <<EOF
|
|
129
|
+
#%Module1.0
|
|
130
|
+
set base_path $WORK_DIR/$ARCHITECTURE
|
|
131
|
+
setenv BASEDIR \$base_path
|
|
132
|
+
set osname [uname sysname]
|
|
133
|
+
set osarchitecture [uname machine]
|
|
134
|
+
EOF
|
|
135
|
+
while read PKG; do
|
|
136
|
+
PKGVER=${PKG##*/}
|
|
137
|
+
PKGNAME=${PKG%/*}
|
|
138
|
+
PKGNAME=${PKGNAME##*/}
|
|
139
|
+
[[ ! -e "$PKG/etc/modulefiles/$PKGNAME" ]] && continue
|
|
140
|
+
mkdir -p "$WORK_DIR/MODULES/$ARCHITECTURE/$PKGNAME"
|
|
141
|
+
cp "$PKG/etc/modulefiles/$PKGNAME" "$WORK_DIR/MODULES/$ARCHITECTURE/$PKGNAME/$PKGVER"
|
|
142
|
+
done < <(find $WORK_DIR/$ARCHITECTURE -maxdepth 2 -mindepth 2 2> /dev/null)
|
|
143
|
+
else
|
|
144
|
+
printf "${EY}WARNING: not updating modulefiles${EZ}\n" >&2
|
|
145
|
+
fi
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function normModules() {
|
|
149
|
+
echo "$@" | sed -e 's/,/ /g; s/VO_ALICE@//g; s!::!/!g'
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function existModules() {
|
|
153
|
+
local MODULE
|
|
154
|
+
for MODULE in "$@"; do
|
|
155
|
+
$MODULECMD bash -t avail 2>&1 | grep -qFx "$MODULE" || \
|
|
156
|
+
{ printf "${ER}ERROR: $MODULE was not found${EZ}\n" >&2; return 1; }
|
|
157
|
+
done
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function stripDyld() {
|
|
161
|
+
TO_STRIP=$( (typeset | grep ^DYLD | cut -d= -f1 | grep '_modshare$' | xargs echo ) 2> /dev/null )
|
|
162
|
+
[ ! "X$TO_STRIP" = X ] && echo unset $TO_STRIP && echo ';'
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
ARCHITECTURE=
|
|
166
|
+
WORK_DIR=
|
|
167
|
+
NO_REFRESH=
|
|
168
|
+
DEFAULT_WORK_DIRS=("$ALIBUILD_WORK_DIR" "$ALICE_WORK_DIR" ${ALIBUILD_CHDIR:+"$ALIBUILD_CHDIR/sw"} sw ../sw)
|
|
169
|
+
ARGS=()
|
|
170
|
+
COMMAND_IN_ENV=()
|
|
171
|
+
CLEAN_ENV=1
|
|
172
|
+
DEVOPT=0
|
|
173
|
+
VERBOSE=1
|
|
174
|
+
|
|
175
|
+
while [[ $# -gt 0 ]]; do
|
|
176
|
+
case "$1" in
|
|
177
|
+
--architecture|-a) ARCHITECTURE="$2"; shift 2 ;;
|
|
178
|
+
--work-dir|-w) WORK_DIR="$2"; shift 2 ;;
|
|
179
|
+
--no-refresh) NO_REFRESH=1; shift ;;
|
|
180
|
+
-q) unset VERBOSE; shift ;;
|
|
181
|
+
--shellrc) unset CLEAN_ENV; shift ;;
|
|
182
|
+
--dev) DEVOPT=1; shift ;;
|
|
183
|
+
--help|help) printHelp; exit 0 ;;
|
|
184
|
+
-c) shift; COMMAND_IN_ENV=("$@"); break ;;
|
|
185
|
+
*) ARGS+=("$1"); shift ;;
|
|
186
|
+
esac
|
|
187
|
+
done
|
|
188
|
+
|
|
189
|
+
ACTION="${ARGS[0]}"
|
|
190
|
+
ARGS=("${ARGS[@]:1}")
|
|
191
|
+
export ALIENVLVL=$((ALIENVLVL+1))
|
|
192
|
+
|
|
193
|
+
if [[ "$ACTION" == "shell-helper" ]]; then
|
|
194
|
+
cat <<\EOF
|
|
195
|
+
# Source this file from your .bashrc, .zshrc or .kshrc.
|
|
196
|
+
ALIBUILD_ALIENV__="$ALIBUILD_ALIENV"
|
|
197
|
+
if test -z "$ALIBUILD_ALIENV__"; then
|
|
198
|
+
ALIBUILD_ALIENV__=`unset alienv; export LC_ALL=C; export LANG=C; type -p alienv | sed -e 's/^alienv is //g' 2> /dev/null`
|
|
199
|
+
fi
|
|
200
|
+
alienv() {
|
|
201
|
+
if test -z "$ALIBUILD_ALIENV__"; then
|
|
202
|
+
echo "alienv not found"
|
|
203
|
+
return 1
|
|
204
|
+
fi
|
|
205
|
+
for A in "$@"; do
|
|
206
|
+
if ! test `echo "$A" | cut -b1` = -; then
|
|
207
|
+
if test "$A" = load || test "$A" = unload; then
|
|
208
|
+
unset A
|
|
209
|
+
eval `"$ALIBUILD_ALIENV__" "$@"`
|
|
210
|
+
return $?
|
|
211
|
+
else
|
|
212
|
+
break
|
|
213
|
+
fi
|
|
214
|
+
elif test "$A" = -c; then
|
|
215
|
+
break
|
|
216
|
+
fi
|
|
217
|
+
done
|
|
218
|
+
unset A
|
|
219
|
+
"$ALIBUILD_ALIENV__" "$@"
|
|
220
|
+
}
|
|
221
|
+
EOF
|
|
222
|
+
exit 0
|
|
223
|
+
fi
|
|
224
|
+
|
|
225
|
+
if [[ -z "$WORK_DIR" ]]; then
|
|
226
|
+
for WORK_DIR in "${DEFAULT_WORK_DIRS[@]}"; do
|
|
227
|
+
[[ -d "$WORK_DIR" ]] && break || WORK_DIR=
|
|
228
|
+
done
|
|
229
|
+
[[ -z "$WORK_DIR" ]] && { printHelp "No default work dir can be accessed:" \
|
|
230
|
+
"export \$ALIBUILD_WORK_DIR or run alienv from a directory" \
|
|
231
|
+
"containing the \"sw\" dir"; false; }
|
|
232
|
+
fi
|
|
233
|
+
[[ ! -d "$WORK_DIR" ]] && { printHelp "Work dir $WORK_DIR cannot be accessed"; false; }
|
|
234
|
+
WORK_DIR=$(cd "$WORK_DIR"; pwd)
|
|
235
|
+
[[ -z "$ARCHITECTURE" ]] && ARCHITECTURE="$("aliBuild" architecture 2> /dev/null || true)"
|
|
236
|
+
[[ -z "$ARCHITECTURE" ]] && ARCHITECTURE="$("$(dirname "$0")/aliBuild" architecture 2> /dev/null || true)"
|
|
237
|
+
[[ -z "$ARCHITECTURE" || "$ARCHITECTURE" == "<unknown>" ]] && ARCHITECTURE=$(ls -1t $WORK_DIR | grep -vE '^[A-Z]+$' | head -n1)
|
|
238
|
+
[[ -z "$ARCHITECTURE" ]] && { printHelp "Cannot autodetect architecture"; false; }
|
|
239
|
+
|
|
240
|
+
# Look for modulecmd (v3) or modulecmd-compat (>= v4)
|
|
241
|
+
MODULECMD=$(command -v modulecmd 2> /dev/null || true)
|
|
242
|
+
[[ -x "$MODULECMD" ]] || MODULECMD="$(dirname $(command -v envml 2> /dev/null || true) 2> /dev/null || true)/../libexec/modulecmd-compat"
|
|
243
|
+
[[ -x "$MODULECMD" ]] || MODULECMD="$(brew --prefix modules 2> /dev/null || true)/libexec/modulecmd-compat"
|
|
244
|
+
[[ -x "$MODULECMD" ]] || { installHint; false; }
|
|
245
|
+
|
|
246
|
+
if [[ -d $WORK_DIR/MODULES/$ARCHITECTURE ]]; then
|
|
247
|
+
touch $WORK_DIR/MODULES/$ARCHITECTURE/.testwrite 2> /dev/null || NO_REFRESH=1
|
|
248
|
+
rm -f $WORK_DIR/MODULES/$ARCHITECTURE/.testwrite 2> /dev/null || true
|
|
249
|
+
fi
|
|
250
|
+
|
|
251
|
+
export MODULEPATH="$WORK_DIR/MODULES/$ARCHITECTURE${MODULEPATH:+":$MODULEPATH"}"
|
|
252
|
+
MODULEPATH=$(echo "$MODULEPATH" | sed -e 's/::*/:/g; s/^://; s/:$//')
|
|
253
|
+
IGNORE_ERR="Unable to locate a modulefile for 'Toolchain/"
|
|
254
|
+
case "$ACTION" in
|
|
255
|
+
enter)
|
|
256
|
+
[[ $ALIENVLVL == 1 ]] || \
|
|
257
|
+
{ printf "${ER}ERROR: already in an alienv environment${EZ}\n" >&2; exit 1; }
|
|
258
|
+
MODULES=$(normModules "${ARGS[@]}")
|
|
259
|
+
collectModules
|
|
260
|
+
existModules $MODULES
|
|
261
|
+
PS1DEV=
|
|
262
|
+
if [[ $DEVOPT == 1 ]];then
|
|
263
|
+
PS1DEV=" (dev)"
|
|
264
|
+
for MODULE in $MODULES; do
|
|
265
|
+
. "$WORK_DIR/$ARCHITECTURE/$MODULE/etc/profile.d/init.sh"
|
|
266
|
+
done
|
|
267
|
+
else
|
|
268
|
+
eval $($MODULECMD bash add $MODULES 2> >(grep -v "$IGNORE_ERR" >&2))
|
|
269
|
+
fi
|
|
270
|
+
[[ $UNAME == Darwin ]] && eval $(stripDyld)
|
|
271
|
+
detectShell
|
|
272
|
+
if [[ ! -z "$CLEAN_ENV" ]]; then
|
|
273
|
+
case $MODULES_SHELL in
|
|
274
|
+
sh|bash) export PS1="[$MODULES]$PS1DEV"' \w $> ' ;;
|
|
275
|
+
ksh) export PS1="[$MODULES]$PS1DEV"' $PWD $> ' ;;
|
|
276
|
+
zsh) export PS1="[$MODULES]$PS1DEV"' %~ %#> ' ;;
|
|
277
|
+
esac
|
|
278
|
+
fi
|
|
279
|
+
$MODULECMD bash list
|
|
280
|
+
if [[ $DEVOPT == 1 ]];then
|
|
281
|
+
echo "*** Development env loaded for '$MODULES' ***" >&2
|
|
282
|
+
else
|
|
283
|
+
printf "${ET}Use ${EM}alienv list${ET} to list loaded modules. " >&2
|
|
284
|
+
fi
|
|
285
|
+
printf "Use ${EM}exit${ET} to exit this environment.${EZ}\n" >&2
|
|
286
|
+
exec ${CLEAN_ENV:+env $SHELL_NORC_ENV} $MODULES_SHELL ${CLEAN_ENV:+$SHELL_NORC_PARAM} -i
|
|
287
|
+
;;
|
|
288
|
+
printenv|load|unload)
|
|
289
|
+
[[ $ACTION == printenv ]] && ACTION=load
|
|
290
|
+
MODULES=$(normModules "${ARGS[@]}")
|
|
291
|
+
[[ $ACTION == load ]] && { collectModules; existModules $MODULES; }
|
|
292
|
+
[[ $VERBOSE == 1 ]] && printf "${ET}Use ${EM}alienv list${ET} to list loaded modules.${EZ}\n" >&2
|
|
293
|
+
if [[ $DEVOPT == 1 ]];then
|
|
294
|
+
echo "Warning: Development mode for '$ACTION' is not supported via alienv. Please remove '--dev' or run manually shown below" >&2
|
|
295
|
+
echo "*** Please run following commands manually to load dev environment for '$MODULES' ***" >&2
|
|
296
|
+
echo "" >&2
|
|
297
|
+
echo "export WORK_DIR=$WORK_DIR" >&2
|
|
298
|
+
for MODULE in $MODULES; do
|
|
299
|
+
echo ". $WORK_DIR/$ARCHITECTURE/$MODULE/etc/profile.d/init.sh" >&2
|
|
300
|
+
done
|
|
301
|
+
echo "" >&2
|
|
302
|
+
exit 0
|
|
303
|
+
fi
|
|
304
|
+
detectShell
|
|
305
|
+
$MODULECMD $MODULES_SHELL $ACTION $MODULES 2> >(grep -v "$IGNORE_ERR" >&2)
|
|
306
|
+
[[ $UNAME == Darwin ]] && ( eval $($MODULECMD $MODULES_SHELL $ACTION $MODULES 2> /dev/null) &> /dev/null; stripDyld )
|
|
307
|
+
exit 0
|
|
308
|
+
;;
|
|
309
|
+
setenv)
|
|
310
|
+
[[ $DEVOPT == 1 ]] && echo "Warning: Development mode for '$ACTION' is not supported. Please remove '--dev'" >&2
|
|
311
|
+
[[ -z "${COMMAND_IN_ENV[*]}" ]] && { printHelp "No command specified with -c"; false; }
|
|
312
|
+
MODULES=$(normModules "${ARGS[@]}")
|
|
313
|
+
collectModules
|
|
314
|
+
existModules $MODULES
|
|
315
|
+
eval $($MODULECMD bash add $MODULES 2> >(grep -v "$IGNORE_ERR" >&2))
|
|
316
|
+
[[ $UNAME == Darwin ]] && eval $(stripDyld)
|
|
317
|
+
exec "${COMMAND_IN_ENV[@]}"
|
|
318
|
+
;;
|
|
319
|
+
q|query)
|
|
320
|
+
[[ -z "${ARGS[0]}" ]] && SEARCH_CMD=cat || SEARCH_CMD=( grep -iE "${ARGS[0]}" )
|
|
321
|
+
collectModules
|
|
322
|
+
$MODULECMD bash -t avail 2>&1 | grep -E '^[^/]+/[^/]+$' | grep -vE ':$' | \
|
|
323
|
+
"${SEARCH_CMD[@]}" | sed -e 's!^\([^/]*\)/\(.*\)$!VO_ALICE@\1::\2!'
|
|
324
|
+
exit ${PIPESTATUS[3]} # grep
|
|
325
|
+
;;
|
|
326
|
+
avail)
|
|
327
|
+
collectModules
|
|
328
|
+
exec $MODULECMD bash avail
|
|
329
|
+
;;
|
|
330
|
+
list)
|
|
331
|
+
exec $MODULECMD bash list
|
|
332
|
+
;;
|
|
333
|
+
modulecmd)
|
|
334
|
+
collectModules
|
|
335
|
+
exec $MODULECMD "${ARGS[@]}"
|
|
336
|
+
;;
|
|
337
|
+
'')
|
|
338
|
+
printHelp "What do you want to do?"
|
|
339
|
+
;;
|
|
340
|
+
*)
|
|
341
|
+
printHelp "Unknown command: $1"
|
|
342
|
+
;;
|
|
343
|
+
esac
|
|
344
|
+
false
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: alibuild
|
|
3
|
+
Version: 1.17.19
|
|
4
|
+
Summary: ALICE Build Tool
|
|
5
|
+
Author-email: Giulio Eulisse <giulio.eulisse@cern.ch>, Timo Wilken <timo.wilken@cern.ch>, Sergio Garcia <sergio.garcia@cern.ch>
|
|
6
|
+
Project-URL: homepage, https://alisw.github.io/alibuild
|
|
7
|
+
Keywords: HEP,ALICE
|
|
8
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
11
|
+
Requires-Python: >=3.6
|
|
12
|
+
Description-Content-Type: text/x-rst
|
|
13
|
+
License-File: LICENSE.md
|
|
14
|
+
Requires-Dist: pyyaml
|
|
15
|
+
Requires-Dist: requests
|
|
16
|
+
Requires-Dist: distro
|
|
17
|
+
Requires-Dist: jinja2
|
|
18
|
+
Requires-Dist: boto3<1.36.0
|
|
19
|
+
Provides-Extra: test
|
|
20
|
+
Requires-Dist: tox; extra == "test"
|
|
21
|
+
Provides-Extra: docs
|
|
22
|
+
Requires-Dist: mkdocs; extra == "docs"
|
|
23
|
+
Requires-Dist: mkdocs-material; extra == "docs"
|
|
24
|
+
Requires-Dist: mkdocs-redirects; extra == "docs"
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
|
|
27
|
+
.. image:: https://badge.fury.io/py/alibuild.svg
|
|
28
|
+
.. image:: https://github.com/alisw/alibuild/actions/workflows/pr-check.yml/badge.svg?branch=master&event=push
|
|
29
|
+
|
|
30
|
+
aliBuild
|
|
31
|
+
========
|
|
32
|
+
|
|
33
|
+
A simple build tool for ALICE experiment software and its externals. Recipes
|
|
34
|
+
for the externals and ALICE software are stored in
|
|
35
|
+
`alidist <https://github.com/alisw/alidist>`_.
|
|
36
|
+
|
|
37
|
+
Instant gratification with::
|
|
38
|
+
|
|
39
|
+
pip install alibuild
|
|
40
|
+
aliBuild init
|
|
41
|
+
aliBuild build AliRoot
|
|
42
|
+
alienv enter AliRoot/latest
|
|
43
|
+
aliroot -b
|
|
44
|
+
|
|
45
|
+
Full documentation at:
|
|
46
|
+
|
|
47
|
+
https://alisw.github.io/alibuild
|
|
48
|
+
|
|
49
|
+
Pre-requisites
|
|
50
|
+
==============
|
|
51
|
+
|
|
52
|
+
If you are using aliBuild directly from git clone, you should make sure
|
|
53
|
+
you have the dependencies installed. The easiest way to do this is to run::
|
|
54
|
+
|
|
55
|
+
pip install -e .
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
For developers
|
|
59
|
+
==============
|
|
60
|
+
|
|
61
|
+
If you want to contribute to aliBuild, you can run the tests with::
|
|
62
|
+
|
|
63
|
+
pip install -e .[test] # Only needed once
|
|
64
|
+
tox
|
|
65
|
+
|
|
66
|
+
The test suite only runs fully on a Linux system, but there is a reduced suite for macOS, runnable with::
|
|
67
|
+
|
|
68
|
+
tox -e darwin
|
|
69
|
+
|
|
70
|
+
You can also run only the unit tests (it's a lot faster than the full suite) with::
|
|
71
|
+
|
|
72
|
+
pytest
|
|
73
|
+
|
|
74
|
+
To run the documentation locally, you can use::
|
|
75
|
+
|
|
76
|
+
pip install -e .[docs]
|
|
77
|
+
cd docs
|
|
78
|
+
mkdocs serve
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
alibuild-1.17.19.data/scripts/aliBuild,sha256=5g-apCjhc9cvtFvKSP0yr6IJtChNvtTAP-BtPL-91M8,4307
|
|
2
|
+
alibuild-1.17.19.data/scripts/aliDeps,sha256=fhfPB2NpuLj8bZZPUjJW2e4VxA8ZkHlp5q76xAOzufI,219
|
|
3
|
+
alibuild-1.17.19.data/scripts/aliDoctor,sha256=gQwLcNGAm7_QF7FFCtmtFXEoroKsRonNMA7UP4DS1y4,221
|
|
4
|
+
alibuild-1.17.19.data/scripts/alienv,sha256=8QihJOzKue4oeuIM31MsoX8Fw7FNZ4zY7wyK6UYtgTE,12568
|
|
5
|
+
alibuild-1.17.19.data/scripts/pb,sha256=LfkIUyX3xXxmaGSdtAbA-dS1Y1eEShEHpmto1tIEga0,211
|
|
6
|
+
alibuild-1.17.19.dist-info/licenses/LICENSE.md,sha256=WJ7YI-moTFb-uVrFjnzzhGJrnL9P2iqQe8NuED3hutI,35141
|
|
7
|
+
alibuild_helpers/__init__.py,sha256=ZAhyhRxOkiTA1fMzwEKACY8Eo8MdWp1MawVicFlvQWk,736
|
|
8
|
+
alibuild_helpers/_version.py,sha256=DlzvboYmrZFVgEwyvqyRPPIN-bpatfcSZy5avk6c45Q,515
|
|
9
|
+
alibuild_helpers/analytics.py,sha256=fuiOagDngFnodGo7upMWeY-RjTTncDRz5Kwz8zxUr9o,4579
|
|
10
|
+
alibuild_helpers/args.py,sha256=LrZ85hH6dhOt-UCK41BVpjDfcOnD-4PWC1oCFJfzRh8,31490
|
|
11
|
+
alibuild_helpers/build.py,sha256=1Ue4iWOhPFWFkj6ARVqR3mY8XwJJYmBRkMXOTfaf1mw,56893
|
|
12
|
+
alibuild_helpers/build_template.sh,sha256=irbJFYEFn5KKy5wMK0WaUQOPfTzA6MJnbWxRj3cpIXQ,13508
|
|
13
|
+
alibuild_helpers/clean.py,sha256=-LeQUYDwxihzGJi4rCiuALu051T44-0cV8S6-l_lCaQ,3250
|
|
14
|
+
alibuild_helpers/cmd.py,sha256=cK33xiBI2ENAWSueW_yqj3Y9aOhTOdKkzsLdNUx9KdU,5899
|
|
15
|
+
alibuild_helpers/deps.py,sha256=L1NrXSmuZE2fpVvUn_t19SrFLPu6rvJd5GG3MPiiJ0w,4805
|
|
16
|
+
alibuild_helpers/doctor.py,sha256=s3IHGilf5iRSs3GOQgvZdws7SoXtLYp_ynCnCnTSbPI,9327
|
|
17
|
+
alibuild_helpers/git.py,sha256=_GjLIxprHnCfUdQ908xfza1rwhqag1_df7_gcC_8sgw,4004
|
|
18
|
+
alibuild_helpers/init.py,sha256=GmVLXqMS-aXqPnCk5dgAONMQFe7MqjlEtXtcQ1a-0qY,5009
|
|
19
|
+
alibuild_helpers/log.py,sha256=C6nneUPrPrqxIqzqsHMWkqZ_Tks2e4RIMn5sZaQwSE0,4505
|
|
20
|
+
alibuild_helpers/scm.py,sha256=pZfEnTgr_ILmtRT3BXeoYVJGq9rjigLXOLAGJMsnDko,1019
|
|
21
|
+
alibuild_helpers/sl.py,sha256=EdHs5Se6xpR9rhmhSJd_6f3Rfkxc8jl-97ZT1lG2T28,2356
|
|
22
|
+
alibuild_helpers/sync.py,sha256=g93S_eXmD1Zb9HptX3lICo5hWYH0cl0YQ-yr7wyliGQ,31060
|
|
23
|
+
alibuild_helpers/templating_plugin.py,sha256=TWHdMQtDfX6Vqp5w9Huyh4ZEgLv5vYxAtPtX68xTOlk,662
|
|
24
|
+
alibuild_helpers/utilities.py,sha256=NFNoaed0i7VIC6r2s7So6UhMJG5kUbVWolML9AyD26s,26129
|
|
25
|
+
alibuild_helpers/workarea.py,sha256=dYGZ7OOCg87W-njZMqX7Yu72800KZjx9v5Hg-T43juY,7442
|
|
26
|
+
debian/changelog,sha256=N-9FA5VD4VmD_tAwFfgqPqG7KUw1Jktyz14zP6aLxZs,300
|
|
27
|
+
debian/compat,sha256=kX3zMg13jduqXFx3QrxARr-APDbtKwUPMIRO0gZ4NGk,3
|
|
28
|
+
debian/control,sha256=UL8ZCLiCnNH75oVtldYPfrBO8DH7VxvjXPIdTCvXgPc,476
|
|
29
|
+
debian/copyright,sha256=wOLKnTq7-L1OZZoXu-FOojSdqt2nb9aEwVqVZGAxanE,470
|
|
30
|
+
debian/files,sha256=u9Y63SK26643_rgHm6lvcr4OtZKlCM-FcW4wwiJ4FMY,55
|
|
31
|
+
debian/rules,sha256=V4agtbpfdaM9h7oNrgNzEShthUASwMfhgTmFvZKLNMI,131
|
|
32
|
+
docs/README.md,sha256=-2EVG9RlHchf-TYJIxwZf8zSHc49ujCdTzZmWrxj4aQ,64
|
|
33
|
+
docs/SUPPORT,sha256=j8Ikz-9B8OkoZwtd7WU5fc_qRQ_MWy2qjWcgsXY3XyQ,150
|
|
34
|
+
docs/mkdocs.yml,sha256=FQWSVZC75WnuCs6icnSRauBgIJ4hrVut5Rt9X4zxy-w,931
|
|
35
|
+
docs/docs/alice_logo.png,sha256=w8Jpk9mHdGF5sN0pO0i6PuVyI-ntDNsvbx7DChVIZQQ,65824
|
|
36
|
+
docs/docs/deps.png,sha256=VY_WJOzWOm_JqAwuzFBd6C7NhrzTDDireNh739NwAow,261802
|
|
37
|
+
docs/docs/index.md,sha256=pU3PRsZvV5M_W1-GEZ169ECAD4C5eQc0l2V_kN_j7yU,3571
|
|
38
|
+
docs/docs/quick.md,sha256=PTKHAmt6vrEc3QbaRAS7rZICZ-LcvdqLxgaNcXo63Sw,2967
|
|
39
|
+
docs/docs/reference.md,sha256=g516_jCRnFOFy1kgw4d7Bin7OH1UBT4V34JVeDf_kBA,18033
|
|
40
|
+
docs/docs/troubleshooting.md,sha256=SvNT68iCVXFu3RMKjLQZrMwxBxaOSJ-QeSJe8Q3N4Oc,15440
|
|
41
|
+
docs/docs/user.md,sha256=3Ys1cwNuDTBQl7zZZisChZ4mt9KrLduH1bLUHXK5Jws,18704
|
|
42
|
+
docs/docs/stylesheets/extra.css,sha256=NAFcBZQe8gh2CTpJFwyv93FvblnF5RaEjtsHxtlFD-w,215
|
|
43
|
+
templates/alibuild_to_please.jnj,sha256=48SfIwq55zlb5_5lu6WAHSznXE0EfUNcHmFrmzMUSns,1723
|
|
44
|
+
tests/test_analytics.py,sha256=IlxATGj-MU0sTVqpi2-EKrIhyV9C48K5IZ39kWFz-Os,1942
|
|
45
|
+
tests/test_args.py,sha256=8d8BybESxbIDvEOOSHmmd2rCTgNxI_vF-sgbDojI-Fg,8867
|
|
46
|
+
tests/test_build.py,sha256=m8PXSRpejJYTeabTOgvu6C77_jqGWq11Ko4uO74ybJw,18503
|
|
47
|
+
tests/test_clean.py,sha256=Zm3gjtO8Pgl27xUzQIHeGqpe05YMVXZp6Sua59prvcE,7492
|
|
48
|
+
tests/test_cmd.py,sha256=iMpfLKqvi-qaSP6EM7PoJnGSZ9Qf4sj5669o2kcD8_I,3820
|
|
49
|
+
tests/test_deps.py,sha256=Ae7YPZ6jrWTeXeLaIj0C7J1Lt5fwdsRzMsiHv6GF1fE,2072
|
|
50
|
+
tests/test_doctor.py,sha256=LnNijwCtTN2ltX-FMSYRuLEgbCMfG0VpkqSJe3Wh1X4,4233
|
|
51
|
+
tests/test_git.py,sha256=fh3sBkW7FwFQQZ3x6Rp3C4wBqM7I9CcX75e6u2oaSKg,1963
|
|
52
|
+
tests/test_hashing.py,sha256=oAggZlZp-rZz5MRj4RBD5UZUxV0uNQOtVw47y-LHwt4,2941
|
|
53
|
+
tests/test_init.py,sha256=Mpj_IB9UNYQgekjLS4c0yBHQe5M3J7-YOHlwMHxSu_8,4227
|
|
54
|
+
tests/test_log.py,sha256=5eA0lfFHyX4KOMkfQSsbNw9wAbh7t-KuOfvaFMaM0qg,1884
|
|
55
|
+
tests/test_packagelist.py,sha256=MlVParqXn7zQXX3OTjHhY7sFvfgAoH-jWBMJlmsB5ls,8755
|
|
56
|
+
tests/test_parseRecipe.py,sha256=Ar1SWWd-NLC6ZAs180RcHC3UPyWc1ItzIP9S57ADNM4,4982
|
|
57
|
+
tests/test_sync.py,sha256=2CyZcC4gKCFo85pfJYn4r196eet0TG5bolL8EofGqFQ,14014
|
|
58
|
+
tests/test_utilities.py,sha256=mg0AlBT-hr74jVJwDAGzBscBvoYULyXTA0mgD7tSors,17688
|
|
59
|
+
tests/test_workarea.py,sha256=iFA1vv6Kdyd4BPk_nrNk11YUZOrAyYYYA-L0f5-As3o,4886
|
|
60
|
+
tests/testdist/broken1.sh,sha256=zdbBCVA9ThnK14Lu9Nm6Firw2EcnRF7budMA3xrcYEg,7
|
|
61
|
+
tests/testdist/broken2.sh,sha256=9S1xEQPVCkN4MMb7zQT7S6tJoPgvbSbRx5HG6EiN0JA,4
|
|
62
|
+
tests/testdist/broken3.sh,sha256=1Zs7ajCIndFPYCQdSjg913x5gNBYakUehTUXLpMQSEU,18
|
|
63
|
+
tests/testdist/broken4.sh,sha256=C-3SDwxPiaRCt2Swo3qO0n_Z60KKhUTcnS0F0EukfZc,11
|
|
64
|
+
tests/testdist/broken5.sh,sha256=LiYKTmohy3CzB7b8hk157OcDSs_QzD8YskbDQUYym7M,13
|
|
65
|
+
tests/testdist/broken6.sh,sha256=6beB4yV4Wv4sFmDaGjIHiPOmXXFbyRNWz1UA3ve9oUA,14
|
|
66
|
+
tests/testdist/broken7.sh,sha256=_2To-XB1XmUUtNwJ0FEwJTm9Jj9yrl5dOymToqOa3S0,54
|
|
67
|
+
tests/testdist/clobber-initdotsh.sh,sha256=K4L8hiEgNg0hI2WAiEA65rWU5sp-fwOYkubpVhtwyVM,95
|
|
68
|
+
tests/testdist/defaults-o2.sh,sha256=IJWVMYjQYz876twos1bj-5VnPv7WTdM0X-fd09j4xxM,325
|
|
69
|
+
tests/testdist/delete-etc.sh,sha256=NFMApyWMLQu3HJMsx0x8ZEveCaXbosO6XzJk8KDRJdg,63
|
|
70
|
+
tests/testdist/tracking-env.sh,sha256=3cJszuzJ5dxNYvHO4ydUOWIXwmMS7wfeb-JBCDK21O4,119
|
|
71
|
+
alibuild-1.17.19.dist-info/METADATA,sha256=ogbnT-bNVLWBSCytmXY7KLfI70wdBM3DlxoqT7WlM2o,2129
|
|
72
|
+
alibuild-1.17.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
73
|
+
alibuild-1.17.19.dist-info/top_level.txt,sha256=WjKmc89Vn0WlbEp9a9VmhwqRkeKxjUX_6NT3T8K3Hv0,45
|
|
74
|
+
alibuild-1.17.19.dist-info/RECORD,,
|