alibuild 1.17.6__tar.gz → 1.17.8__tar.gz
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.8/.github/workflows/documentation.yml +30 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/.github/workflows/pr-check.yml +0 -15
- {alibuild-1.17.6/alibuild.egg-info → alibuild-1.17.8}/PKG-INFO +1 -1
- {alibuild-1.17.6 → alibuild-1.17.8/alibuild.egg-info}/PKG-INFO +1 -1
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild.egg-info/SOURCES.txt +10 -22
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/_version.py +2 -2
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/args.py +4 -1
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/build.py +12 -6
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/build_template.sh +13 -3
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/git.py +7 -2
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/sync.py +70 -0
- alibuild-1.17.8/docs/README.md +1 -0
- alibuild-1.17.8/docs/docs/alice_logo.png +0 -0
- alibuild-1.17.6/docs/index.markdown → alibuild-1.17.8/docs/docs/index.md +15 -13
- alibuild-1.17.6/docs/quick.markdown → alibuild-1.17.8/docs/docs/quick.md +2 -4
- alibuild-1.17.6/docs/reference.markdown → alibuild-1.17.8/docs/docs/reference.md +0 -1
- alibuild-1.17.8/docs/docs/stylesheets/extra.css +7 -0
- alibuild-1.17.6/docs/troubleshooting.markdown → alibuild-1.17.8/docs/docs/troubleshooting.md +15 -2
- alibuild-1.17.6/docs/user.markdown → alibuild-1.17.8/docs/docs/user.md +2 -3
- alibuild-1.17.8/docs/mkdocs.yml +36 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/setup.py +1 -1
- alibuild-1.17.6/docs/README.md +0 -1
- alibuild-1.17.6/docs/_config.yml +0 -27
- alibuild-1.17.6/docs/_includes/section_toc.html +0 -9
- alibuild-1.17.6/docs/_layouts/main.html +0 -57
- alibuild-1.17.6/docs/_layouts/redirect.html +0 -7
- alibuild-1.17.6/docs/css/bootstrap-theme.min.css +0 -14
- alibuild-1.17.6/docs/css/bootstrap.min.css +0 -14
- alibuild-1.17.6/docs/css/pure-min.css +0 -11
- alibuild-1.17.6/docs/js/highlight.pack.js +0 -1
- alibuild-1.17.6/docs/main.css +0 -2
- alibuild-1.17.6/docs/o2-dataflow-tutorial.markdown +0 -6
- alibuild-1.17.6/docs/o2-tutorial.markdown +0 -6
- alibuild-1.17.6/docs/side-menu.css +0 -254
- alibuild-1.17.6/docs/syntax.css +0 -118
- alibuild-1.17.6/docs/tutorial.markdown +0 -6
- alibuild-1.17.6/docs/ui.js +0 -35
- alibuild-1.17.6/script/custom_htmlproofer.rb +0 -9
- {alibuild-1.17.6 → alibuild-1.17.8}/.flake8 +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/.github/workflows/release.yml +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/.gitignore +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/.pylintrc +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/ANALYTICS.md +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/DESIGN.md +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/Jenkinsfile +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/LICENSE.md +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/MANIFEST.in +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/PACKAGING.md +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/README.rst +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alfaBuild +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/aliBuild +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/aliDeps +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/aliDoctor +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild.egg-info/dependency_links.txt +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild.egg-info/requires.txt +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild.egg-info/top_level.txt +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/__init__.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/analytics.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/clean.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/cmd.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/deps.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/doctor.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/init.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/log.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/scm.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/sl.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/templating_plugin.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/utilities.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alibuild_helpers/workarea.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/alienv +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/codecov.yml +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/debian/changelog +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/debian/compat +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/debian/control +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/debian/copyright +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/debian/files +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/debian/rules +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/docs/SUPPORT +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8/docs}/docs/deps.png +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/pb +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/pyproject.toml +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/requirements.txt +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/setup.cfg +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_analytics.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_args.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_build.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_clean.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_cmd.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_deps.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_doctor.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_git.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_hashing.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_init.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_log.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_packagelist.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_parseRecipe.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_sync.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_utilities.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/test_workarea.py +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/broken1.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/broken2.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/broken3.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/broken4.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/broken5.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/broken6.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/broken7.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/clobber-initdotsh.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/defaults-o2.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tests/testdist/delete-etc.sh +0 -0
- {alibuild-1.17.6 → alibuild-1.17.8}/tox.ini +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- master
|
|
6
|
+
permissions:
|
|
7
|
+
contents: write
|
|
8
|
+
jobs:
|
|
9
|
+
deploy:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- name: Configure Git Credentials
|
|
14
|
+
run: |
|
|
15
|
+
git config user.name github-actions[bot]
|
|
16
|
+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
17
|
+
- uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: 3.x
|
|
20
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
21
|
+
- uses: actions/cache@v4
|
|
22
|
+
with:
|
|
23
|
+
key: mkdocs-material-${{ env.cache_id }}
|
|
24
|
+
path: .cache
|
|
25
|
+
restore-keys: |
|
|
26
|
+
mkdocs-material-
|
|
27
|
+
- run: |
|
|
28
|
+
pip install mkdocs-material mkdocs-redirects
|
|
29
|
+
cd docs
|
|
30
|
+
mkdocs gh-deploy --force # Always keep in sync with master branch
|
|
@@ -123,18 +123,3 @@ jobs:
|
|
|
123
123
|
|
|
124
124
|
- name: Run linters
|
|
125
125
|
run: tox -e lint
|
|
126
|
-
|
|
127
|
-
documentation:
|
|
128
|
-
name: documentation
|
|
129
|
-
runs-on: ubuntu-latest
|
|
130
|
-
container:
|
|
131
|
-
image: jekyll/jekyll
|
|
132
|
-
|
|
133
|
-
steps:
|
|
134
|
-
- uses: actions/checkout@v3
|
|
135
|
-
|
|
136
|
-
- name: Test documentation
|
|
137
|
-
run: |
|
|
138
|
-
chmod -R a+rwX .
|
|
139
|
-
jekyll build -s docs -d _site --baseurl .
|
|
140
|
-
script/custom_htmlproofer.rb
|
|
@@ -19,6 +19,7 @@ pyproject.toml
|
|
|
19
19
|
requirements.txt
|
|
20
20
|
setup.py
|
|
21
21
|
tox.ini
|
|
22
|
+
.github/workflows/documentation.yml
|
|
22
23
|
.github/workflows/pr-check.yml
|
|
23
24
|
.github/workflows/release.yml
|
|
24
25
|
alibuild.egg-info/PKG-INFO
|
|
@@ -53,28 +54,15 @@ debian/files
|
|
|
53
54
|
debian/rules
|
|
54
55
|
docs/README.md
|
|
55
56
|
docs/SUPPORT
|
|
56
|
-
docs/
|
|
57
|
-
docs/
|
|
58
|
-
docs/
|
|
59
|
-
docs/
|
|
60
|
-
docs/
|
|
61
|
-
docs/
|
|
62
|
-
docs/
|
|
63
|
-
docs/
|
|
64
|
-
docs/
|
|
65
|
-
docs/syntax.css
|
|
66
|
-
docs/troubleshooting.markdown
|
|
67
|
-
docs/tutorial.markdown
|
|
68
|
-
docs/ui.js
|
|
69
|
-
docs/user.markdown
|
|
70
|
-
docs/_includes/section_toc.html
|
|
71
|
-
docs/_layouts/main.html
|
|
72
|
-
docs/_layouts/redirect.html
|
|
73
|
-
docs/css/bootstrap-theme.min.css
|
|
74
|
-
docs/css/bootstrap.min.css
|
|
75
|
-
docs/css/pure-min.css
|
|
76
|
-
docs/js/highlight.pack.js
|
|
77
|
-
script/custom_htmlproofer.rb
|
|
57
|
+
docs/mkdocs.yml
|
|
58
|
+
docs/docs/alice_logo.png
|
|
59
|
+
docs/docs/deps.png
|
|
60
|
+
docs/docs/index.md
|
|
61
|
+
docs/docs/quick.md
|
|
62
|
+
docs/docs/reference.md
|
|
63
|
+
docs/docs/troubleshooting.md
|
|
64
|
+
docs/docs/user.md
|
|
65
|
+
docs/docs/stylesheets/extra.css
|
|
78
66
|
tests/test_analytics.py
|
|
79
67
|
tests/test_args.py
|
|
80
68
|
tests/test_build.py
|
|
@@ -380,6 +380,9 @@ On Linux, x86-64:
|
|
|
380
380
|
Fedora 33 compatible: fedora33_x86-64
|
|
381
381
|
Fedora 34 compatible: fedora34_x86-64
|
|
382
382
|
|
|
383
|
+
On Linux, ARM:
|
|
384
|
+
RHEL9 / ALMA9 compatible: slc9_aarch64
|
|
385
|
+
|
|
383
386
|
On Linux, POWER8 / PPC64 (little endian):
|
|
384
387
|
RHEL7 / CC7 compatible: slc7_ppc64
|
|
385
388
|
|
|
@@ -389,7 +392,7 @@ On Mac, 1-2 latest supported OSX versions:
|
|
|
389
392
|
"""
|
|
390
393
|
|
|
391
394
|
# When updating this variable, also update docs/user.markdown!
|
|
392
|
-
S3_SUPPORTED_ARCHS = "slc7_x86-64", "slc8_x86-64", "ubuntu2004_x86-64", "ubuntu2204_x86-64", "slc9_x86-64"
|
|
395
|
+
S3_SUPPORTED_ARCHS = "slc7_x86-64", "slc8_x86-64", "ubuntu2004_x86-64", "ubuntu2204_x86-64", "slc9_x86-64", "slc9_aarch64"
|
|
393
396
|
|
|
394
397
|
def finaliseArgs(args, parser):
|
|
395
398
|
|
|
@@ -899,12 +899,18 @@ def doBuild(args, parser):
|
|
|
899
899
|
|
|
900
900
|
# Now that we have all the information about the package we want to build, let's
|
|
901
901
|
# check if it wasn't built / unpacked already.
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
902
|
+
hashPath= "%s/%s/%s/%s-%s" % (workDir,
|
|
903
|
+
args.architecture,
|
|
904
|
+
spec["package"],
|
|
905
|
+
spec["version"],
|
|
906
|
+
spec["revision"])
|
|
907
|
+
hashFile = hashPath + "/.build-hash"
|
|
908
|
+
# If the folder is a symlink, we consider it to be to CVMFS and
|
|
909
|
+
# take the hash for good.
|
|
910
|
+
if os.path.islink(hashPath):
|
|
911
|
+
fileHash = spec["hash"]
|
|
912
|
+
else:
|
|
913
|
+
fileHash = readHashFile(hashFile)
|
|
908
914
|
# Development packages have their own rebuild-detection logic above.
|
|
909
915
|
# spec["hash"] is only useful here for regular packages.
|
|
910
916
|
if fileHash == spec["hash"] and not spec["is_devel_pkg"]:
|
|
@@ -139,7 +139,9 @@ else
|
|
|
139
139
|
rm -rf $INSTALLROOT
|
|
140
140
|
mv $WORK_DIR/TMP/$PKGHASH/$ARCHITECTURE/$PKGNAME/$PKGVERSION-* $INSTALLROOT
|
|
141
141
|
pushd $WORK_DIR/INSTALLROOT/$PKGHASH
|
|
142
|
-
|
|
142
|
+
if [ -w "$INSTALLROOT" ]; then
|
|
143
|
+
WORK_DIR=$WORK_DIR/INSTALLROOT/$PKGHASH bash -ex $INSTALLROOT/relocate-me.sh
|
|
144
|
+
fi
|
|
143
145
|
popd
|
|
144
146
|
find $INSTALLROOT -name "*.unrelocated" -delete
|
|
145
147
|
rm -rf $WORK_DIR/TMP/$PKGHASH
|
|
@@ -148,6 +150,9 @@ fi
|
|
|
148
150
|
# Regenerate init.sh, in case the package build clobbered it. This
|
|
149
151
|
# particularly happens in the AliEn-Runtime package, since it copies other
|
|
150
152
|
# packages into its installroot wholesale.
|
|
153
|
+
# Notice how we only do it if $INSTALLROOT is writeable. If it is
|
|
154
|
+
# not, we assume it points to a CVMFS store which should be left untouched.
|
|
155
|
+
if [ -w $INSTALLROOT ]; then
|
|
151
156
|
mkdir -p "$INSTALLROOT/etc/profile.d"
|
|
152
157
|
rm -f "$INSTALLROOT/etc/profile.d/init.sh"
|
|
153
158
|
cat <<\EOF > "$INSTALLROOT/etc/profile.d/init.sh"
|
|
@@ -251,6 +256,7 @@ fi
|
|
|
251
256
|
|
|
252
257
|
cat "$INSTALLROOT/relocate-me.sh"
|
|
253
258
|
cat "$INSTALLROOT/.original-unrelocated" | xargs -n1 -I{} cp '{}' '{}'.unrelocated
|
|
259
|
+
fi
|
|
254
260
|
cd "$WORK_DIR/INSTALLROOT/$PKGHASH"
|
|
255
261
|
|
|
256
262
|
# Archive creation
|
|
@@ -283,7 +289,9 @@ wait "$rsync_pid"
|
|
|
283
289
|
|
|
284
290
|
# We've copied files into their final place; now relocate.
|
|
285
291
|
cd "$WORK_DIR"
|
|
286
|
-
|
|
292
|
+
if [ -w "$WORK_DIR/$ARCHITECTURE/$PKGNAME/$PKGVERSION-$PKGREVISION" ]; then
|
|
293
|
+
bash -ex "$ARCHITECTURE/$PKGNAME/$PKGVERSION-$PKGREVISION/relocate-me.sh"
|
|
294
|
+
fi
|
|
287
295
|
# Last package built gets a "latest" mark.
|
|
288
296
|
ln -snf $PKGVERSION-$PKGREVISION $ARCHITECTURE/$PKGNAME/latest
|
|
289
297
|
|
|
@@ -294,7 +302,9 @@ fi
|
|
|
294
302
|
|
|
295
303
|
# When the package is definitely fully installed, install the file that marks
|
|
296
304
|
# the package as successful.
|
|
297
|
-
|
|
305
|
+
if [ -w "$WORK_DIR/$PKGPATH" ]; then
|
|
306
|
+
echo "$PKGHASH" > "$WORK_DIR/$PKGPATH/.build-hash"
|
|
307
|
+
fi
|
|
298
308
|
# Mark the build as successful with a placeholder. Allows running incremental
|
|
299
309
|
# recipe in case the package is in development mode.
|
|
300
310
|
echo "${DEVEL_HASH}${DEPS_HASH}" > "$BUILDDIR/.build_succeeded"
|
|
@@ -5,8 +5,13 @@ from alibuild_helpers.scm import SCM, SCMError
|
|
|
5
5
|
import os
|
|
6
6
|
|
|
7
7
|
GIT_COMMAND_TIMEOUT_SEC = 120
|
|
8
|
-
"""
|
|
8
|
+
"""Default value for how many seconds to let any git command execute before being terminated."""
|
|
9
9
|
|
|
10
|
+
GIT_CMD_TIMEOUTS = {
|
|
11
|
+
"clone": 600,
|
|
12
|
+
"checkout": 600
|
|
13
|
+
}
|
|
14
|
+
"""Customised timeout for some commands."""
|
|
10
15
|
|
|
11
16
|
def clone_speedup_options():
|
|
12
17
|
"""Return a list of options supported by the system git which speed up cloning."""
|
|
@@ -93,7 +98,7 @@ def git(args, directory=".", check=True, prompt=True):
|
|
|
93
98
|
# GIT_TERMINAL_PROMPT is only supported in git 2.3+.
|
|
94
99
|
prompt_var=f"GIT_TERMINAL_PROMPT=0" if not prompt else "",
|
|
95
100
|
directory_safe_var=f"GIT_CONFIG_COUNT={lastGitOverride+2} GIT_CONFIG_KEY_{lastGitOverride}=safe.directory GIT_CONFIG_VALUE_{lastGitOverride}=$PWD GIT_CONFIG_KEY_{lastGitOverride+1}=gc.auto GIT_CONFIG_VALUE_{lastGitOverride+1}=0" if directory else "",
|
|
96
|
-
), timeout=GIT_COMMAND_TIMEOUT_SEC)
|
|
101
|
+
), timeout=GIT_CMD_TIMEOUTS.get(args[0] if len(args) else "*", GIT_COMMAND_TIMEOUT_SEC))
|
|
97
102
|
if check and err != 0:
|
|
98
103
|
raise SCMError("Error {} from git {}: {}".format(err, " ".join(args), output))
|
|
99
104
|
return output if check else (err, output)
|
|
@@ -22,6 +22,8 @@ def remote_from_url(read_url, write_url, architecture, work_dir, insecure=False)
|
|
|
22
22
|
return S3RemoteSync(read_url, write_url, architecture, work_dir)
|
|
23
23
|
if read_url.startswith("b3://"):
|
|
24
24
|
return Boto3RemoteSync(read_url, write_url, architecture, work_dir)
|
|
25
|
+
if read_url.startswith("cvmfs://"):
|
|
26
|
+
return CVMFSRemoteSync(read_url, None, architecture, work_dir)
|
|
25
27
|
if read_url:
|
|
26
28
|
return RsyncRemoteSync(read_url, write_url, architecture, work_dir)
|
|
27
29
|
return NoRemoteSync()
|
|
@@ -304,6 +306,74 @@ class RsyncRemoteSync:
|
|
|
304
306
|
revision=spec["revision"],
|
|
305
307
|
)), "Unable to upload tarball.")
|
|
306
308
|
|
|
309
|
+
class CVMFSRemoteSync:
|
|
310
|
+
""" Sync packages build directory from CVMFS or similar
|
|
311
|
+
FS based deployment. The tarball will be created on the fly with a single
|
|
312
|
+
symlink to the remote store in it, so that unpacking really
|
|
313
|
+
means unpacking the symlink to the wanted package.
|
|
314
|
+
"""
|
|
315
|
+
|
|
316
|
+
def __init__(self, remoteStore, writeStore, architecture, workdir):
|
|
317
|
+
self.remoteStore = re.sub("^cvmfs://", "", remoteStore)
|
|
318
|
+
# We do not support uploading directly to CVMFS, for obvious
|
|
319
|
+
# reasons.
|
|
320
|
+
assert(writeStore == None)
|
|
321
|
+
self.writeStore = None
|
|
322
|
+
self.architecture = architecture
|
|
323
|
+
self.workdir = workdir
|
|
324
|
+
|
|
325
|
+
def fetch_tarball(self, spec):
|
|
326
|
+
info("Downloading tarball for %s@%s-%s, if available", spec["package"], spec["version"], spec["revision"])
|
|
327
|
+
# If we already have a tarball with any equivalent hash, don't check S3.
|
|
328
|
+
for pkg_hash in spec["remote_hashes"] + spec["local_hashes"]:
|
|
329
|
+
store_path = resolve_store_path(self.architecture, pkg_hash)
|
|
330
|
+
pattern = os.path.join(self.workdir, store_path, "%s-*.tar.gz" % spec["package"])
|
|
331
|
+
if glob.glob(pattern):
|
|
332
|
+
info("Reusing existing tarball for %s@%s", spec["package"], pkg_hash)
|
|
333
|
+
return
|
|
334
|
+
info("Could not find prebuilt tarball for %s@%s-%s, will be rebuilt",
|
|
335
|
+
spec["package"], spec["version"], spec["revision"])
|
|
336
|
+
|
|
337
|
+
def fetch_symlinks(self, spec):
|
|
338
|
+
# When using CVMFS, we create the symlinks grass by reading the .
|
|
339
|
+
info("Fetching available build hashes for %s, from %s", spec["package"], self.remoteStore)
|
|
340
|
+
links_path = resolve_links_path(self.architecture, spec["package"])
|
|
341
|
+
os.makedirs(os.path.join(self.workdir, links_path), exist_ok=True)
|
|
342
|
+
|
|
343
|
+
cvmfs_architecture = re.sub(r"slc(\d+)_x86-64", r"el\1-x86_64", self.architecture)
|
|
344
|
+
err = execute("""\
|
|
345
|
+
set -x
|
|
346
|
+
# Exit without error in case we do not have any package published
|
|
347
|
+
test -d "{remote_store}/{cvmfs_architecture}/Packages/{package}" || exit 0
|
|
348
|
+
mkdir -p "{workDir}/{links_path}"
|
|
349
|
+
for install_path in $(find "{remote_store}/{cvmfs_architecture}/Packages/{package}" -type d -mindepth 1 -maxdepth 1); do
|
|
350
|
+
full_version="${{install_path##*/}}"
|
|
351
|
+
tarball={package}-$full_version.{architecture}.tar.gz
|
|
352
|
+
pkg_hash=$(cat "${{install_path}}/.build-hash" || jq -r '.package.hash' <${{install_path}}/.meta.json)
|
|
353
|
+
if [ "X$pkg_hash" = X ]; then
|
|
354
|
+
continue
|
|
355
|
+
fi
|
|
356
|
+
ln -sf ../../{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash/$tarball "{workDir}/{links_path}/$tarball"
|
|
357
|
+
# Create the dummy tarball, if it does not exists
|
|
358
|
+
test -f "{workDir}/{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash/$tarball" && continue
|
|
359
|
+
mkdir -p "{workDir}/INSTALLROOT/$pkg_hash/{architecture}/{package}"
|
|
360
|
+
ln -sf "{remote_store}/{cvmfs_architecture}/Packages/{package}/$full_version" "{workDir}/INSTALLROOT/$pkg_hash/{architecture}/{package}"
|
|
361
|
+
mkdir -p "{workDir}/TARS/{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash"
|
|
362
|
+
tar -C "{workDir}/INSTALLROOT/$pkg_hash" -czf "{workDir}/TARS/{architecture}/store/${{pkg_hash:0:2}}/$pkg_hash/$tarball" .
|
|
363
|
+
rm -rf "{workDir}/INSTALLROOT/$pkg_hash"
|
|
364
|
+
done
|
|
365
|
+
""".format(
|
|
366
|
+
workDir=self.workdir,
|
|
367
|
+
b=self.remoteStore,
|
|
368
|
+
architecture=self.architecture,
|
|
369
|
+
cvmfs_architecture=cvmfs_architecture,
|
|
370
|
+
package=spec["package"],
|
|
371
|
+
remote_store=self.remoteStore,
|
|
372
|
+
links_path=links_path,
|
|
373
|
+
))
|
|
374
|
+
|
|
375
|
+
def upload_symlinks_and_tarball(self, spec):
|
|
376
|
+
dieOnError(self.writeStore, "CVMFS backend does not support uploading directly")
|
|
307
377
|
|
|
308
378
|
class S3RemoteSync:
|
|
309
379
|
"""Sync package build directory from and to S3 using s3cmd.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read the documentation here: <http://alisw.github.io/alibuild/>
|
|
Binary file
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: ALIBUILD
|
|
3
2
|
subtile: About this tool
|
|
4
3
|
layout: main
|
|
5
4
|
---
|
|
@@ -28,44 +27,47 @@ Then, build ALICE's software with:
|
|
|
28
27
|
aliBuild build O2Physics
|
|
29
28
|
|
|
30
29
|
For a more verbose documentation of what is happening have a look at
|
|
31
|
-
the [quickstart guide](quick.
|
|
30
|
+
the [quickstart guide](quick.md). See the [user guide](user.md)
|
|
32
31
|
for more command line options or have a look at the [troubleshooting
|
|
33
|
-
pages](troubleshooting.
|
|
34
|
-
Have a look at the [reference guide](reference.
|
|
32
|
+
pages](troubleshooting.md) for hints on how to debug build errors.
|
|
33
|
+
Have a look at the [reference guide](reference.md) if you want to
|
|
35
34
|
package your own software.
|
|
36
35
|
|
|
37
|
-
<div
|
|
38
|
-
|
|
36
|
+
<div style="display:grid;
|
|
37
|
+
grid-template-columns: repeat(3,1fr); /* 3 columns */
|
|
38
|
+
grid-template-rows: repeat(2,1fr); /* 2 rows */
|
|
39
|
+
grid-gap:50px 30px;
|
|
40
|
+
|
|
41
|
+
">
|
|
42
|
+
<div><h2>Simple build recipes</h2>
|
|
39
43
|
Build recipes are simple bash scripts with a YAML header. Whenever
|
|
40
44
|
a dependency or a package changes only what is affected by the
|
|
41
45
|
change is rebuilt.
|
|
42
46
|
<br/><a href="reference.html">Read more</a>
|
|
43
47
|
</div>
|
|
44
|
-
<div
|
|
48
|
+
<div><h2>Reuses system tools</h2>
|
|
45
49
|
If desired, aliBuild will do its best to reuse what is available
|
|
46
50
|
on the system, if compatible to what is found in the recipe.
|
|
47
51
|
<br/><a href="user.html#controlling-which-system-packages-are-picked-up">Read more</a>
|
|
48
52
|
</div>
|
|
49
|
-
<div
|
|
53
|
+
<div><h2>Docker support</h2>
|
|
50
54
|
aliBuild allows builds to happen inside a docker container, so
|
|
51
55
|
that you can develop on Mac and build on your production Linux
|
|
52
56
|
platform.
|
|
53
57
|
<br/><a href="user.html#running-in-docker">Read more</a>
|
|
54
58
|
</div>
|
|
55
|
-
|
|
56
|
-
<div class="pure-g">
|
|
57
|
-
<div class="pure-u-1-3"><h3>Binary packages</h3>
|
|
59
|
+
<div><h2>Binary packages</h2>
|
|
58
60
|
aliBuild provides the ability to reuse binary packages which were
|
|
59
61
|
previously centrally built, when they match the one that would be
|
|
60
62
|
built locally.
|
|
61
63
|
<br/><a href="user.html#using-precompiled-packages">Read more</a>
|
|
62
64
|
</div>
|
|
63
|
-
<div
|
|
65
|
+
<div><h2>Developer mode</h2>
|
|
64
66
|
Besides building and packaging your dependencies, aliBuild
|
|
65
67
|
provides you the ability to develop those via a simple git clone.
|
|
66
68
|
<br/><a href="user.html#developing-packages-locally">Read more</a>
|
|
67
69
|
</div>
|
|
68
|
-
<div
|
|
70
|
+
<div><h2>Integrates with modules</h2>
|
|
69
71
|
Easily setup your work environment using `alienv`, which is based on
|
|
70
72
|
standard <a href="http://modules.sourceforge.net">modulefiles</a>.
|
|
71
73
|
<br/><a href="quick.html#loading-the-package-environment">Read more</a>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: ALIBUILD
|
|
3
2
|
subtitle: Quick Start
|
|
4
3
|
layout: main
|
|
5
4
|
---
|
|
@@ -7,7 +6,7 @@ layout: main
|
|
|
7
6
|
aliBuild is a tool to simplify building and installing ALICE / ALFA
|
|
8
7
|
software. This is a quickstart Guide which will show you how to build
|
|
9
8
|
and use a package, for extended documentation please have a look at the
|
|
10
|
-
[user guide](user.
|
|
9
|
+
[user guide](user.md).
|
|
11
10
|
|
|
12
11
|
## Setting up
|
|
13
12
|
|
|
@@ -71,7 +70,6 @@ For example, on Centos7:
|
|
|
71
70
|
sw/slc7_x86-64/AliRoot/v6-16-01-1
|
|
72
71
|
|
|
73
72
|
## Using the built package
|
|
74
|
-
{: #loading-the-package-environment}
|
|
75
73
|
|
|
76
74
|
Environment for packages built using aliBuild is managed by [Environment
|
|
77
75
|
Modules](http://modules.sourceforge.net) and a wrapper script called alienv.
|
|
@@ -88,4 +86,4 @@ to list the available packages, and:
|
|
|
88
86
|
alienv enter VO_ALICE@PackageA::VersionA[,VO_ALICE@PackageB::VersionB...]
|
|
89
87
|
|
|
90
88
|
to enter a shell with the appropriate environment set. To learn more about alienv you
|
|
91
|
-
can also look at the [user guide](user.
|
|
89
|
+
can also look at the [user guide](user.md#using-the-packages-you-have-built).
|
alibuild-1.17.6/docs/troubleshooting.markdown → alibuild-1.17.8/docs/docs/troubleshooting.md
RENAMED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: ALIBUILD
|
|
3
2
|
subtitle: Troubleshooting
|
|
4
3
|
layout: main
|
|
5
4
|
---
|
|
@@ -223,7 +222,7 @@ or as a matter of fact any packages you have two options:
|
|
|
223
222
|
and add the options there.
|
|
224
223
|
|
|
225
224
|
Finally, for certain common options, e.g. debug flags, we provide a
|
|
226
|
-
precooked configuration using so called [defaults](user.
|
|
225
|
+
precooked configuration using so called [defaults](user.md#defaults).
|
|
227
226
|
Simply add `--defaults debug` to your aliBuild flags and it will add
|
|
228
227
|
debug flags to all your packages.
|
|
229
228
|
|
|
@@ -331,3 +330,17 @@ git config --global credential.helper 'cache --timeout 3600'
|
|
|
331
330
|
```
|
|
332
331
|
|
|
333
332
|
You can adjust the timeout (3600 seconds, above) to your liking, if you would prefer git to remember your passwords for longer.
|
|
333
|
+
|
|
334
|
+
#### I get an HTTP/2 related error
|
|
335
|
+
|
|
336
|
+
Some network provider do not support HTTP/2 apparently. If you get:
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
or similar message, try to disable HTTP/2 with something like:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
git config --global http.version HTTP/1.1
|
|
346
|
+
```
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: ALIBUILD
|
|
3
2
|
subtitle: User command line reference manual
|
|
4
3
|
layout: main
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
## SYNOPSIS
|
|
8
7
|
|
|
9
|
-
For a quick start introduction, please look [here](
|
|
8
|
+
For a quick start introduction, please look [here](quick.md).
|
|
10
9
|
|
|
11
10
|
```
|
|
12
11
|
aliBuild build [-h] [--defaults DEFAULT]
|
|
@@ -243,7 +242,7 @@ validated for datataking and the choice will not change until the end of
|
|
|
243
242
|
RUN2 of LHC. In order to change that and use, for example, a more recent
|
|
244
243
|
version of ROOT you can use the `--default root6` option which will
|
|
245
244
|
enable ROOT6 based builds. For a more complete description of how defaults
|
|
246
|
-
works please look at [the reference manual](reference.
|
|
245
|
+
works please look at [the reference manual](reference.md#defaults).
|
|
247
246
|
|
|
248
247
|
## Disabling packages
|
|
249
248
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
site_name: "aliBuild: ALICE software builder"
|
|
2
|
+
repo_name: View source code
|
|
3
|
+
repo_url: https://github.com/alisw/alibuild
|
|
4
|
+
|
|
5
|
+
theme:
|
|
6
|
+
name: material
|
|
7
|
+
logo: alice_logo.png
|
|
8
|
+
|
|
9
|
+
extra_css: [stylesheets/extra.css]
|
|
10
|
+
|
|
11
|
+
use_directory_urls: false
|
|
12
|
+
|
|
13
|
+
nav:
|
|
14
|
+
- Home: index.md
|
|
15
|
+
- Quickstart: quick.md
|
|
16
|
+
- User manual: user.md
|
|
17
|
+
- Reference: reference.md
|
|
18
|
+
- Troubleshooting: troubleshooting.md
|
|
19
|
+
- ALICE/O2 tutorial: "https://alice-doc.github.io/alice-analysis-tutorial/building/"
|
|
20
|
+
|
|
21
|
+
markdown_extensions:
|
|
22
|
+
- pymdownx.highlight:
|
|
23
|
+
anchor_linenums: true
|
|
24
|
+
line_spans: __span
|
|
25
|
+
pygments_lang_class: true
|
|
26
|
+
- pymdownx.inlinehilite
|
|
27
|
+
- pymdownx.snippets
|
|
28
|
+
- pymdownx.superfences
|
|
29
|
+
- toc:
|
|
30
|
+
permalink: "#"
|
|
31
|
+
|
|
32
|
+
plugins:
|
|
33
|
+
- redirects:
|
|
34
|
+
redirect_maps:
|
|
35
|
+
'o2-tutorial.html': 'https://alice-doc.github.io/alice-analysis-tutorial/building/'
|
|
36
|
+
'tutorial.html': 'https://alice-doc.github.io/alice-analysis-tutorial/building/'
|
|
@@ -58,7 +58,7 @@ setup(
|
|
|
58
58
|
'Programming Language :: Python :: 3.10', # ubuntu2204
|
|
59
59
|
'Programming Language :: Python :: 3.11', # MacOS
|
|
60
60
|
'Programming Language :: Python :: 3.12', # MacOS
|
|
61
|
-
],
|
|
61
|
+
] + ['packaging<=23'] if sys.version_info <(3, 7) else [],
|
|
62
62
|
|
|
63
63
|
# What does your project relate to?
|
|
64
64
|
keywords='HEP ALICE',
|
alibuild-1.17.6/docs/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Documentation migrated to <http://alisw.github.io/alibuild/>
|
alibuild-1.17.6/docs/_config.yml
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
highlighter: rouge
|
|
2
|
-
baseurl: /alibuild
|
|
3
|
-
menu_header: ALIBUILD
|
|
4
|
-
menu:
|
|
5
|
-
-
|
|
6
|
-
name: quick.html
|
|
7
|
-
label: QUICKSTART
|
|
8
|
-
-
|
|
9
|
-
name: user.html
|
|
10
|
-
label: USER MANUAL
|
|
11
|
-
-
|
|
12
|
-
name: reference.html
|
|
13
|
-
label: REFERENCE
|
|
14
|
-
-
|
|
15
|
-
name: troubleshooting.html
|
|
16
|
-
label: TROUBLESHOOTING
|
|
17
|
-
-
|
|
18
|
-
name: https://alice-doc.github.io/alice-analysis-tutorial/building/
|
|
19
|
-
label: ALICE TUTORIAL
|
|
20
|
-
defaults:
|
|
21
|
-
-
|
|
22
|
-
scope:
|
|
23
|
-
path: "basic/"
|
|
24
|
-
type: "posts"
|
|
25
|
-
values:
|
|
26
|
-
category: "basic"
|
|
27
|
-
layout: "main"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
[Exercise material for this section](https://github.com/infn-esc/esc15/exercises/{{ page.section }}).
|
|
2
|
-
|
|
3
|
-
{% for toplevel in site.menu %}
|
|
4
|
-
{% if toplevel.name == page.section %}
|
|
5
|
-
{% for item in toplevel.items %}
|
|
6
|
-
- <a href="{{site.baseurl}}/{{page.section}}/{{item.name}}.html">{{ item.label }}</a>
|
|
7
|
-
{% endfor %}
|
|
8
|
-
{% endif %}
|
|
9
|
-
{% endfor %}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
|
|
7
|
-
<link rel="stylesheet" href="{{site.baseurl}}/css/bootstrap.min.css">
|
|
8
|
-
<link rel="stylesheet" href="{{site.baseurl}}/css/bootstrap-theme.min.css">
|
|
9
|
-
<link rel="stylesheet" href="{{site.baseurl}}/css/pure-min.css">
|
|
10
|
-
<link rel="stylesheet" href="{{site.baseurl}}/side-menu.css">
|
|
11
|
-
<link rel="stylesheet" href="{{site.baseurl}}/syntax.css">
|
|
12
|
-
<link rel="stylesheet" href="{{site.baseurl}}/main.css">
|
|
13
|
-
<script src="{{site.baseurl}}/js/highlight.pack.js"></script>
|
|
14
|
-
<script>hljs.initHighlightingOnLoad();</script>
|
|
15
|
-
|
|
16
|
-
</head>
|
|
17
|
-
<body>
|
|
18
|
-
<div id="layout">
|
|
19
|
-
<a href="#menu" id="menuLink" class="menu-link">
|
|
20
|
-
<!-- Hamburger icon -->
|
|
21
|
-
<span></span>
|
|
22
|
-
</a>
|
|
23
|
-
<div id="menu">
|
|
24
|
-
<div class="pure-menu custom-restricted-width custom-restricted-height">
|
|
25
|
-
<a class="pure-menu-heading pure-menu-link" href="{{site.baseurl}}/">{{site.menu_header}}</a>
|
|
26
|
-
<ul class="pure-menu-list">
|
|
27
|
-
{% for cat in site.menu %}
|
|
28
|
-
<li class="pure-menu-item menu-item-section menu-item-devided">
|
|
29
|
-
{% assign proto = cat.name|slice: 0,4 %}
|
|
30
|
-
{% if proto == "http" %}
|
|
31
|
-
<a href="{{cat.name}}" class="pure-menu-link">{{ cat.label }}</a>
|
|
32
|
-
{% else %}
|
|
33
|
-
<a href="{{site.baseurl}}/{{cat.name}}" class="pure-menu-link">{{ cat.label }}</a>
|
|
34
|
-
{% endif %}
|
|
35
|
-
</li>
|
|
36
|
-
{% for sub in cat.items %}
|
|
37
|
-
<li>
|
|
38
|
-
<a href="{{site.baseurl}}/{{cat.name}}/{{sub.name}}.html" class="pure-menu-link">{{ sub.label }}</a>
|
|
39
|
-
</li>
|
|
40
|
-
{% endfor %}
|
|
41
|
-
{% endfor %}
|
|
42
|
-
</ul>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
<div id="main">
|
|
46
|
-
<div class="header">
|
|
47
|
-
<h1>{{page.title}}</h1>
|
|
48
|
-
<h2>{{page.subtitle}}</h2>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="content">
|
|
51
|
-
{{content}}
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
<script src="{{site.baseurl}}/ui.js"></script>
|
|
56
|
-
</body>
|
|
57
|
-
</html>
|