alibuild 1.17.30__tar.gz → 1.17.32__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.30 → alibuild-1.17.32}/.github/workflows/pr-check.yml +2 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/PKG-INFO +18 -3
- {alibuild-1.17.30 → alibuild-1.17.32}/README.rst +17 -2
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild.egg-info/PKG-INFO +18 -3
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild.egg-info/SOURCES.txt +0 -1
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/_version.py +3 -3
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/build_template.sh +12 -1
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/sync.py +37 -11
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/reference.md +11 -1
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/troubleshooting.md +5 -4
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/user.md +80 -40
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_build.py +41 -30
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_sync.py +3 -3
- {alibuild-1.17.30 → alibuild-1.17.32}/tox.ini +3 -2
- alibuild-1.17.30/docs/README.md +0 -1
- {alibuild-1.17.30 → alibuild-1.17.32}/.flake8 +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/.github/workflows/documentation.yml +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/.github/workflows/release.yml +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/.gitignore +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/.pylintrc +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/ANALYTICS.md +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/DESIGN.md +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/LICENSE.md +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/PACKAGING.md +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alfaBuild +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/aliBuild +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/aliDeps +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/aliDoctor +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild.egg-info/dependency_links.txt +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild.egg-info/requires.txt +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild.egg-info/top_level.txt +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/__init__.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/analytics.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/args.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/build.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/clean.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/cmd.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/deps.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/doctor.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/git.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/init.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/log.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/scm.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/sl.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/templating_plugin.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/utilities.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alibuild_helpers/workarea.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/alienv +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/codecov.yml +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/debian/changelog +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/debian/compat +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/debian/control +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/debian/copyright +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/debian/files +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/debian/rules +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/SUPPORT +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/alice_logo.png +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/deps.png +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/index.md +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/quick.md +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/docs/stylesheets/extra.css +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/docs/mkdocs.yml +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/pb +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/pyproject.toml +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/requirements.txt +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/setup.cfg +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/setup.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/templates/alibuild_to_please.jnj +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_analytics.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_args.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_clean.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_cmd.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_deps.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_doctor.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_git.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_hashing.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_init.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_log.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_packagelist.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_parseRecipe.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_utilities.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/test_workarea.py +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/broken1.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/broken2.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/broken3.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/broken4.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/broken5.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/broken6.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/broken7.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/clobber-initdotsh.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/defaults-o2.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/delete-etc.sh +0 -0
- {alibuild-1.17.30 → alibuild-1.17.32}/tests/testdist/tracking-env.sh +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alibuild
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.32
|
|
4
4
|
Summary: ALICE Build Tool
|
|
5
5
|
Home-page: https://alisw.github.io/alibuild
|
|
6
6
|
Author: Giulio Eulisse
|
|
@@ -56,14 +56,22 @@ Pre-requisites
|
|
|
56
56
|
If you are using aliBuild directly from git clone, you should make sure
|
|
57
57
|
you have the dependencies installed. The easiest way to do this is to run::
|
|
58
58
|
|
|
59
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
60
|
+
python -m venv .venv
|
|
61
|
+
source .venv/bin/activate
|
|
59
62
|
pip install -e .
|
|
60
63
|
|
|
61
64
|
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
Contributing
|
|
66
|
+
============
|
|
67
|
+
|
|
64
68
|
|
|
65
69
|
If you want to contribute to aliBuild, you can run the tests with::
|
|
66
70
|
|
|
71
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
72
|
+
python -m venv .venv
|
|
73
|
+
source .venv/bin/activate
|
|
74
|
+
|
|
67
75
|
pip install -e .[test] # Only needed once
|
|
68
76
|
tox
|
|
69
77
|
|
|
@@ -77,6 +85,13 @@ You can also run only the unit tests (it's a lot faster than the full suite) wit
|
|
|
77
85
|
|
|
78
86
|
To run the documentation locally, you can use::
|
|
79
87
|
|
|
88
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
89
|
+
python -m venv .venv
|
|
90
|
+
source .venv/bin/activate
|
|
91
|
+
|
|
92
|
+
# Install dependencies for the docs, check pyproject.toml for more info
|
|
80
93
|
pip install -e .[docs]
|
|
94
|
+
|
|
95
|
+
# Run the docs
|
|
81
96
|
cd docs
|
|
82
97
|
mkdocs serve
|
|
@@ -26,14 +26,22 @@ Pre-requisites
|
|
|
26
26
|
If you are using aliBuild directly from git clone, you should make sure
|
|
27
27
|
you have the dependencies installed. The easiest way to do this is to run::
|
|
28
28
|
|
|
29
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
30
|
+
python -m venv .venv
|
|
31
|
+
source .venv/bin/activate
|
|
29
32
|
pip install -e .
|
|
30
33
|
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
Contributing
|
|
36
|
+
============
|
|
37
|
+
|
|
34
38
|
|
|
35
39
|
If you want to contribute to aliBuild, you can run the tests with::
|
|
36
40
|
|
|
41
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
42
|
+
python -m venv .venv
|
|
43
|
+
source .venv/bin/activate
|
|
44
|
+
|
|
37
45
|
pip install -e .[test] # Only needed once
|
|
38
46
|
tox
|
|
39
47
|
|
|
@@ -47,6 +55,13 @@ You can also run only the unit tests (it's a lot faster than the full suite) wit
|
|
|
47
55
|
|
|
48
56
|
To run the documentation locally, you can use::
|
|
49
57
|
|
|
58
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
59
|
+
python -m venv .venv
|
|
60
|
+
source .venv/bin/activate
|
|
61
|
+
|
|
62
|
+
# Install dependencies for the docs, check pyproject.toml for more info
|
|
50
63
|
pip install -e .[docs]
|
|
64
|
+
|
|
65
|
+
# Run the docs
|
|
51
66
|
cd docs
|
|
52
67
|
mkdocs serve
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alibuild
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.32
|
|
4
4
|
Summary: ALICE Build Tool
|
|
5
5
|
Home-page: https://alisw.github.io/alibuild
|
|
6
6
|
Author: Giulio Eulisse
|
|
@@ -56,14 +56,22 @@ Pre-requisites
|
|
|
56
56
|
If you are using aliBuild directly from git clone, you should make sure
|
|
57
57
|
you have the dependencies installed. The easiest way to do this is to run::
|
|
58
58
|
|
|
59
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
60
|
+
python -m venv .venv
|
|
61
|
+
source .venv/bin/activate
|
|
59
62
|
pip install -e .
|
|
60
63
|
|
|
61
64
|
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
Contributing
|
|
66
|
+
============
|
|
67
|
+
|
|
64
68
|
|
|
65
69
|
If you want to contribute to aliBuild, you can run the tests with::
|
|
66
70
|
|
|
71
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
72
|
+
python -m venv .venv
|
|
73
|
+
source .venv/bin/activate
|
|
74
|
+
|
|
67
75
|
pip install -e .[test] # Only needed once
|
|
68
76
|
tox
|
|
69
77
|
|
|
@@ -77,6 +85,13 @@ You can also run only the unit tests (it's a lot faster than the full suite) wit
|
|
|
77
85
|
|
|
78
86
|
To run the documentation locally, you can use::
|
|
79
87
|
|
|
88
|
+
# Optional, make a venv so the dependencies are not installed globally
|
|
89
|
+
python -m venv .venv
|
|
90
|
+
source .venv/bin/activate
|
|
91
|
+
|
|
92
|
+
# Install dependencies for the docs, check pyproject.toml for more info
|
|
80
93
|
pip install -e .[docs]
|
|
94
|
+
|
|
95
|
+
# Run the docs
|
|
81
96
|
cd docs
|
|
82
97
|
mkdocs serve
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.17.
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 17,
|
|
31
|
+
__version__ = version = '1.17.32'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 17, 32)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g8fe3979a7'
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
|
|
2
|
+
ALIBUILD_START_TIMESTAMP=$(date +%%s)
|
|
3
3
|
# Automatically generated build script
|
|
4
4
|
unset DYLD_LIBRARY_PATH
|
|
5
|
+
echo "aliBuild: start building $PKGNAME-$PKGVERSION-$PKGREVISION at $ALIBUILD_START_TIMESTAMP"
|
|
6
|
+
|
|
7
|
+
cleanup() {
|
|
8
|
+
local exit_code=$?
|
|
9
|
+
ALIBUILD_END_TIMESTAMP=$(date +%%s)
|
|
10
|
+
ALIBUILD_DELTA_TIME=$(($ALIBUILD_END_TIMESTAMP - $ALIBUILD_START_TIMESTAMP))
|
|
11
|
+
echo "aliBuild: done building $PKGNAME-$PKGVERSION-$PKGREVISION at $ALIBUILD_START_TIMESTAMP (${ALIBUILD_DELTA_TIME} s)"
|
|
12
|
+
exit $exit_code
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
trap cleanup EXIT
|
|
5
16
|
|
|
6
17
|
# Cleanup variables which should not be exposed to user code
|
|
7
18
|
unset AWS_ACCESS_KEY_ID
|
|
@@ -7,6 +7,7 @@ import re
|
|
|
7
7
|
import sys
|
|
8
8
|
import time
|
|
9
9
|
import requests
|
|
10
|
+
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
10
11
|
from requests.exceptions import RequestException
|
|
11
12
|
from urllib.parse import quote
|
|
12
13
|
|
|
@@ -682,19 +683,44 @@ class Boto3RemoteSync:
|
|
|
682
683
|
# Second, upload dist symlinks. These should be in place before the main
|
|
683
684
|
# tarball, to avoid races in the publisher.
|
|
684
685
|
start_time = time.time()
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
686
|
+
total_symlinks = 0
|
|
687
|
+
|
|
688
|
+
# Limit concurrency to avoid overwhelming S3 with too many simultaneous requests
|
|
689
|
+
max_workers = min(32, (len(dist_symlinks) * 10) or 1)
|
|
690
|
+
|
|
691
|
+
def _upload_single_symlink(link_key, hash_path):
|
|
692
|
+
self.s3.put_object(Bucket=self.writeStore,
|
|
693
|
+
Key=link_key,
|
|
694
|
+
Body=os.fsencode(hash_path),
|
|
695
|
+
ACL="public-read",
|
|
696
|
+
WebsiteRedirectLocation=hash_path)
|
|
697
|
+
return link_key
|
|
698
|
+
|
|
699
|
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
|
700
|
+
future_to_info = {}
|
|
701
|
+
for link_dir, symlinks in dist_symlinks.items():
|
|
702
|
+
for link_key, hash_path in symlinks:
|
|
703
|
+
future = executor.submit(_upload_single_symlink, link_key, hash_path)
|
|
704
|
+
future_to_info[future] = (link_dir, link_key)
|
|
705
|
+
total_symlinks += 1
|
|
706
|
+
|
|
707
|
+
dir_counts = {link_dir: 0 for link_dir in dist_symlinks.keys()}
|
|
708
|
+
for future in as_completed(future_to_info):
|
|
709
|
+
link_dir, link_key = future_to_info[future]
|
|
710
|
+
try:
|
|
711
|
+
future.result()
|
|
712
|
+
dir_counts[link_dir] += 1
|
|
713
|
+
except Exception as e:
|
|
714
|
+
error("Failed to upload symlink %s: %s", link_key, e)
|
|
715
|
+
raise
|
|
716
|
+
|
|
717
|
+
for link_dir, count in dir_counts.items():
|
|
718
|
+
if count > 0:
|
|
719
|
+
debug("Uploaded %d dist symlinks to S3 from %s", count, link_dir)
|
|
720
|
+
|
|
694
721
|
end_time = time.time()
|
|
695
722
|
debug("Uploaded %d dist symlinks in %.2f seconds",
|
|
696
|
-
|
|
697
|
-
end_time - start_time)
|
|
723
|
+
total_symlinks, end_time - start_time)
|
|
698
724
|
|
|
699
725
|
self.s3.upload_file(Bucket=self.writeStore, Key=tar_path,
|
|
700
726
|
Filename=os.path.join(self.workdir, tar_path))
|
|
@@ -79,13 +79,16 @@ The following entries are optional in the header:
|
|
|
79
79
|
- `source`: URL of a Git repository from which the source is downloaded.
|
|
80
80
|
It's good practice to make sure that they are already patched, so that you
|
|
81
81
|
can easily point to the actual sources used by the software.
|
|
82
|
+
|
|
82
83
|
- `write_repo`: in case the repository URL to be used for developing is
|
|
83
84
|
different from the `source`, set this key. It is used by `aliBuild init`,
|
|
84
85
|
which will initialise your local repository with the `upstream` remote
|
|
85
86
|
pointing at this URL instead of the one in `source`.
|
|
87
|
+
|
|
86
88
|
- `tag`: git reference in the above mentioned repository which points to the
|
|
87
89
|
software to be built. This can be a tag name, a branch name or a commit
|
|
88
90
|
hash.
|
|
91
|
+
|
|
89
92
|
- `env`: dictionary whose key-value pairs are environment variables to be set
|
|
90
93
|
after the recipe is built. The values are interpreted as the contents of a
|
|
91
94
|
double-quoted shell string, so you can reference other environment variables
|
|
@@ -101,6 +104,7 @@ The following entries are optional in the header:
|
|
|
101
104
|
intended to be used to point to build products of the current recipe. If you
|
|
102
105
|
need to set an environment variable for use in the recipe, use
|
|
103
106
|
`export VARIABLE=value` in the recipe body.
|
|
107
|
+
|
|
104
108
|
- `prepend_path`: dictionary whose key-value pairs are an environment variable
|
|
105
109
|
name and a path to be prepended to it, as it happens in `LD_LIBRARY_PATH`.
|
|
106
110
|
This happens only after the package declaring the `prepend_path` in question
|
|
@@ -116,9 +120,11 @@ The following entries are optional in the header:
|
|
|
116
120
|
|
|
117
121
|
will result in prepending `$FOO_ROOT/binexec/foobar` to `$PATH`, and both
|
|
118
122
|
`$FOO_ROOT/sub/lib` and `lib64` to `LD_LIBRARY_PATH`.
|
|
123
|
+
|
|
119
124
|
- `append_path`: same as `prepend_path` but paths are appended rather than
|
|
120
125
|
prepended. Like `append_path` and `env`, this **does not** affect the
|
|
121
126
|
environment of the current recipe.
|
|
127
|
+
|
|
122
128
|
- `requires`: a list of run-time dependencies for the package, *e.g.*:
|
|
123
129
|
|
|
124
130
|
```yaml
|
|
@@ -145,17 +151,20 @@ The following entries are optional in the header:
|
|
|
145
151
|
|
|
146
152
|
will make sure that `IgProf` is only built on platforms whose name does not
|
|
147
153
|
begin with `osx`.
|
|
154
|
+
|
|
148
155
|
- `build_requires`: a list of build-time dependencies for the package. Like
|
|
149
156
|
`requires`, these packages will be built before the current package is
|
|
150
157
|
built.
|
|
151
158
|
|
|
152
159
|
Packages in this list are marked specially in the dependency graph
|
|
153
|
-
produced by `
|
|
160
|
+
produced by `aliBuild deps`. Other tools treat these packages differently from
|
|
154
161
|
`requires`: for instance, RPMs produced for a package won't depend on its
|
|
155
162
|
`build_requires`, and `alibuild-generate-module` won't pull in build
|
|
156
163
|
requirements' modulefiles.
|
|
164
|
+
|
|
157
165
|
- `force_rebuild`: set it to `true` to force re-running the build recipe every
|
|
158
166
|
time you invoke alibuild on it.
|
|
167
|
+
|
|
159
168
|
- `prefer_system_check`: a script which is used to determine whether
|
|
160
169
|
or not the system equivalent of the package can be used. See also
|
|
161
170
|
`prefer_system`. If the `--no-system` option is specified, this key is not
|
|
@@ -170,6 +179,7 @@ The following entries are optional in the header:
|
|
|
170
179
|
does not match, the check is skipped and the recipe is run. Using the switch
|
|
171
180
|
`--always-prefer-system` runs the check always (even when the regular
|
|
172
181
|
expression for the architecture does not match).
|
|
182
|
+
|
|
173
183
|
- `relocate_paths`: a list of toplevel paths scanned recursively to perform
|
|
174
184
|
relocation of executables and dynamic libraries **on macOS only**. If not
|
|
175
185
|
specified, defaults to `bin`, `lib` and `lib64`.
|
|
@@ -76,8 +76,9 @@ will tell you something like:
|
|
|
76
76
|
We will build packages in the following order: defaults-release AliEn-CAs GMP UUID gSOAP ApMon-CPP GEANT4 boost MPFR MonALISA-gSOAP-client cgal XRootD fastjet xalienfs AliEn-Runtime ROOT vgm GEANT3 GEANT4_VMC AliRoot
|
|
77
77
|
|
|
78
78
|
If you have a system package which you think should be used but it's not, you
|
|
79
|
-
can run `
|
|
80
|
-
(or you can [open a bug report](https://github.com/alisw/alidist/issues)
|
|
79
|
+
can run `aliBuild doctor <package-name>` to try to understand why that was the
|
|
80
|
+
case (or you can [open a bug report](https://github.com/alisw/alidist/issues)
|
|
81
|
+
with its output and we will look at it).
|
|
81
82
|
|
|
82
83
|
### What is PIP ? How do I install it?
|
|
83
84
|
|
|
@@ -155,7 +156,7 @@ it means that aliBuild does not consider you system tool good enough to
|
|
|
155
156
|
be compatible with the one provided by the recipe. You can verify what
|
|
156
157
|
happens during the system tool detection by running:
|
|
157
158
|
|
|
158
|
-
|
|
159
|
+
aliBuild doctor <package name>
|
|
159
160
|
|
|
160
161
|
|
|
161
162
|
### AliBuild fails with `cannot open file "AvailabilityMacros.h`
|
|
@@ -236,7 +237,7 @@ building unless one of the system dependencies is absolutely required
|
|
|
236
237
|
tool, where simply installing them might be a better option. For this
|
|
237
238
|
reason we suggest that users run:
|
|
238
239
|
|
|
239
|
-
|
|
240
|
+
aliBuild doctor AliPhysics
|
|
240
241
|
|
|
241
242
|
in the same path where their `alidist` folder is, before actually
|
|
242
243
|
starting to build, so that they can get an overview of what will be
|
|
@@ -11,7 +11,9 @@ For a quick start introduction, please look [here](quick.md).
|
|
|
11
11
|
aliBuild build [-h] [--defaults DEFAULT]
|
|
12
12
|
[-a ARCH] [--force-unknown-architecture]
|
|
13
13
|
[-z [DEVELPREFIX]] [-e ENVIRONMENT] [-j JOBS] [-u]
|
|
14
|
-
[--no-local PKGLIST] [--disable PACKAGE]
|
|
14
|
+
[--no-local PKGLIST] [--force-tracked] [--disable PACKAGE]
|
|
15
|
+
[--force-rebuild PACKAGE] [--annotate PACKAGE=COMMENT]
|
|
16
|
+
[--only-deps] [--plugin PLUGIN]
|
|
15
17
|
[--always-prefer-system | --no-system]
|
|
16
18
|
[--docker] [--docker-image IMAGE] [--docker-extra-args ARGLIST] [-v VOLUMES]
|
|
17
19
|
[--no-remote-store] [--remote-store STORE] [--write-store STORE] [--insecure]
|
|
@@ -39,7 +41,18 @@ aliBuild build [-h] [--defaults DEFAULT]
|
|
|
39
41
|
given.
|
|
40
42
|
- `--no-local PKGLIST`: Do not pick up the following packages from a local
|
|
41
43
|
checkout. `PKGLIST` is a comma-separated list.
|
|
44
|
+
- `--force-tracked`: Do not pick up any packages from a local checkout.
|
|
42
45
|
- `--disable PACKAGE`: Do not build `PACKAGE` and all its (unique) dependencies.
|
|
46
|
+
- `--force-rebuild PACKAGE`: Always rebuild the specified packages from scratch,
|
|
47
|
+
even if they were built before. Has the same effect as adding
|
|
48
|
+
`force_rebuild: true` to the recipe. May be specified multiple times or
|
|
49
|
+
separate multiple arguments with commas.
|
|
50
|
+
- `--annotate PACKAGE=COMMENT`: Store `COMMENT` in the build metadata for
|
|
51
|
+
`PACKAGE`. The comment will only be stored if the package is compiled or
|
|
52
|
+
downloaded during this run. May be specified multiple times.
|
|
53
|
+
- `--only-deps`: Only build dependencies, not the main package. Useful for
|
|
54
|
+
populating a build cache.
|
|
55
|
+
- `--plugin PLUGIN`: Plugin to use for the build. Default is `legacy`.
|
|
43
56
|
- `--always-prefer-system`: Always use system packages when compatible.
|
|
44
57
|
- `--no-system`: Never use system packages, even if compatible.
|
|
45
58
|
|
|
@@ -102,8 +115,8 @@ provides tarballs for the most common supported architectures.
|
|
|
102
115
|
|
|
103
116
|
## Using precompiled packages
|
|
104
117
|
|
|
105
|
-
By running aliBuild with no special option on CentOS/Alma 7, 8 or 9
|
|
106
|
-
Ubuntu 20.04, 22.04 or 24.04, it will automatically try to
|
|
118
|
+
By running aliBuild with no special option on CentOS/Alma 7, 8 or 9 (x86-64 or ARM),
|
|
119
|
+
or on Ubuntu 20.04, 22.04 or 24.04 (x86-64), it will automatically try to
|
|
107
120
|
use as many precompiled packages as possible by downloading them from a default
|
|
108
121
|
central server. By using precompiled packages you lose the ability to pick some
|
|
109
122
|
of them from your system. If you do not want to use precompiled packages and you
|
|
@@ -199,16 +212,30 @@ case the incremental recipe will always be executed.
|
|
|
199
212
|
|
|
200
213
|
While alibuild does its best to find out which OS / distribution you are
|
|
201
214
|
using, sometimes it might fail to do so, for example in the case you
|
|
202
|
-
start using a new *buntu flavour or a bleeding edge version of
|
|
203
|
-
In order to force the
|
|
215
|
+
start using a new *buntu flavour or a bleeding edge version of a distribution.
|
|
216
|
+
In order to force the correct architecture for the build you can use
|
|
204
217
|
the `--architecture` (`-a`) flag with one of the supported options:
|
|
205
218
|
|
|
206
|
-
|
|
207
|
-
- `slc6_x86-64`:
|
|
208
|
-
- `slc7_x86-64`:
|
|
209
|
-
- `
|
|
210
|
-
- `
|
|
211
|
-
- `
|
|
219
|
+
On Linux, x86-64:
|
|
220
|
+
- `slc6_x86-64`: RHEL6 / SLC6 compatible
|
|
221
|
+
- `slc7_x86-64`: RHEL7 / CC7 compatible
|
|
222
|
+
- `slc8_x86-64`: RHEL8 / CC8 compatible
|
|
223
|
+
- `slc9_x86-64`: RHEL9 / ALMA9 compatible
|
|
224
|
+
- `ubuntu2004_x86-64`: Ubuntu 20.04 compatible
|
|
225
|
+
- `ubuntu2204_x86-64`: Ubuntu 22.04 compatible
|
|
226
|
+
- `ubuntu2404_x86-64`: Ubuntu 24.04 compatible
|
|
227
|
+
- `fedora33_x86-64`: Fedora 33 compatible
|
|
228
|
+
- `fedora34_x86-64`: Fedora 34 compatible
|
|
229
|
+
|
|
230
|
+
On Linux, ARM:
|
|
231
|
+
- `slc9_aarch64`: RHEL9 / ALMA9 compatible
|
|
232
|
+
|
|
233
|
+
On Linux, POWER8 / PPC64 (little endian):
|
|
234
|
+
- `slc7_ppc64`: RHEL7 / CC7 compatible
|
|
235
|
+
|
|
236
|
+
On Mac:
|
|
237
|
+
- `osx_x86-64`: Intel
|
|
238
|
+
- `osx_arm64`: Apple Silicon
|
|
212
239
|
|
|
213
240
|
### Running in Docker
|
|
214
241
|
|
|
@@ -234,27 +261,33 @@ option using the same syntax used by Docker.
|
|
|
234
261
|
|
|
235
262
|
## Defaults
|
|
236
263
|
|
|
237
|
-
By default `aliBuild`
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
264
|
+
By default, `aliBuild` uses the `o2` defaults (`--defaults o2`), which are
|
|
265
|
+
optimized for building the ALICE O2 software stack. The defaults system
|
|
266
|
+
allows you to specify different sets of build configurations, compiler
|
|
267
|
+
flags, and package versions through the `--defaults` option.
|
|
268
|
+
|
|
269
|
+
Different defaults can be used to:
|
|
270
|
+
- Use different package versions (e.g., different ROOT versions)
|
|
271
|
+
- Apply specific compiler flags (e.g., debug builds, optimization levels)
|
|
272
|
+
- Enable or disable certain features or packages
|
|
273
|
+
|
|
274
|
+
To use a different set of defaults, use the `--defaults <name>` option,
|
|
275
|
+
which will load settings from `CONFIGDIR/defaults-<name>.sh`. For example,
|
|
276
|
+
`--defaults o2-epn` would use the `defaults-o2-epn.sh` file.
|
|
277
|
+
|
|
278
|
+
For a more complete description of how the defaults system works and how to
|
|
279
|
+
create custom defaults, please look at [the reference manual](reference.md#defaults).
|
|
246
280
|
|
|
247
281
|
## Disabling packages
|
|
248
282
|
|
|
249
283
|
You can optionally disable certain packages by specifying them as a comma
|
|
250
284
|
separated list with the `--disable` option.
|
|
251
285
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
keyword of your defaults file (see previous paragraph). See the
|
|
286
|
+
It's also possible to disable packages by adding them to the `disable` keyword
|
|
287
|
+
of your defaults file (see previous paragraph). See the
|
|
255
288
|
[defaults-o2.sh](https://github.com/alisw/alidist/blob/master/defaults-o2.sh)
|
|
256
|
-
file for an example of how to disable `
|
|
257
|
-
|
|
289
|
+
file for an example of how to disable `mesos` and `MySQL` when
|
|
290
|
+
passing `--defaults o2`.
|
|
258
291
|
|
|
259
292
|
## Controlling which system packages are picked up
|
|
260
293
|
|
|
@@ -294,15 +327,12 @@ installation area.
|
|
|
294
327
|
|
|
295
328
|
## Upgrading aliBuild
|
|
296
329
|
|
|
297
|
-
aliBuild
|
|
298
|
-
particular Macs) do:
|
|
330
|
+
aliBuild can be installed either via `pip`, or by your OS package manager (more info [here](https://alice-doc.github.io/alice-analysis-tutorial/building/custom.html).
|
|
299
331
|
|
|
300
|
-
|
|
332
|
+
The way to upgrade it depends on your installation method. If you installed it
|
|
333
|
+
via `pip`, you can upgrade it by running:
|
|
301
334
|
|
|
302
|
-
|
|
303
|
-
for convenience):
|
|
304
|
-
|
|
305
|
-
sudo pip install --upgrade alibuild
|
|
335
|
+
pip install --upgrade alibuild
|
|
306
336
|
|
|
307
337
|
In general updating aliBuild is safe and it should never trigger a rebuild or
|
|
308
338
|
break compilation of older versions of alidist (i.e. we do try to guarantee
|
|
@@ -315,10 +345,8 @@ when running the command.
|
|
|
315
345
|
You can also upgrade / install a specific version of alibuild by specifying it on the
|
|
316
346
|
command line. E.g.:
|
|
317
347
|
|
|
318
|
-
pip install alibuild=1.
|
|
348
|
+
pip install alibuild=1.17.23
|
|
319
349
|
|
|
320
|
-
this is in particular required when you want to try out release candidates (rc) builds which
|
|
321
|
-
are masked out by default.
|
|
322
350
|
|
|
323
351
|
## Rebuilding packages from branches instead of tags
|
|
324
352
|
|
|
@@ -339,11 +367,11 @@ server-side pull request checks).
|
|
|
339
367
|
|
|
340
368
|
## Generating a dependency graph
|
|
341
369
|
|
|
342
|
-
It is possible to generating a PDF with a dependency graph using the `
|
|
370
|
+
It is possible to generating a PDF with a dependency graph using the `aliBuild deps`
|
|
343
371
|
tool. Assuming you run it from a directory containing `alidist`, and you have
|
|
344
372
|
Graphviz installed on your system, you can simply run:
|
|
345
373
|
|
|
346
|
-
|
|
374
|
+
aliBuild deps O2 --outgraph graph.pdf
|
|
347
375
|
|
|
348
376
|
The example above generates a dependency graph for the package `O2`, and saving
|
|
349
377
|
the results to a PDF file named `graph.pdf`. This is what the graph looks like:
|
|
@@ -357,13 +385,25 @@ others (this can indicate an error in the recipes).
|
|
|
357
385
|
Connections are color-coded as well: blue connections indicate a runtime
|
|
358
386
|
dependency whereas a grey connection indicate a build dependency.
|
|
359
387
|
|
|
360
|
-
By default, `
|
|
388
|
+
By default, `aliBuild deps` runs the usual system checks to exclude packages that can
|
|
361
389
|
be taken from the system. If you want to display the full list of dependencies,
|
|
362
390
|
you may want to use:
|
|
363
391
|
|
|
364
|
-
|
|
392
|
+
aliBuild deps O2 --no-system --outgraph graph.pdf
|
|
393
|
+
|
|
394
|
+
Additional useful options for `aliBuild deps` include:
|
|
395
|
+
|
|
396
|
+
- `--neat`: Produce a graph with transitive reduction, removing edges that are
|
|
397
|
+
implied by other paths in the graph. This can make complex dependency graphs
|
|
398
|
+
easier to read.
|
|
399
|
+
- `--outdot FILE`: Keep the intermediate Graphviz dot file in `FILE`. Useful if
|
|
400
|
+
you want to manually modify the graph or generate output in different formats.
|
|
401
|
+
|
|
402
|
+
For example, to generate a simplified graph and keep the dot file:
|
|
403
|
+
|
|
404
|
+
aliBuild deps O2 --neat --outdot graph.dot --outgraph graph.pdf
|
|
365
405
|
|
|
366
|
-
Please run `
|
|
406
|
+
Please run `aliBuild deps --help` for further information.
|
|
367
407
|
|
|
368
408
|
## Using the packages you have built
|
|
369
409
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from argparse import Namespace
|
|
2
2
|
import os
|
|
3
3
|
import os.path
|
|
4
|
+
import platform
|
|
4
5
|
import re
|
|
5
6
|
import sys
|
|
6
7
|
import unittest
|
|
@@ -12,6 +13,19 @@ from collections import OrderedDict
|
|
|
12
13
|
from alibuild_helpers.utilities import parseRecipe, resolve_tag
|
|
13
14
|
from alibuild_helpers.build import doBuild, storeHashes, generate_initdotsh
|
|
14
15
|
|
|
16
|
+
# Determine architecture based on platform
|
|
17
|
+
def get_test_architecture():
|
|
18
|
+
if sys.platform == 'darwin':
|
|
19
|
+
machine = platform.machine()
|
|
20
|
+
if machine == 'arm64':
|
|
21
|
+
return 'osx_arm64'
|
|
22
|
+
else:
|
|
23
|
+
return 'osx_x86-64'
|
|
24
|
+
else:
|
|
25
|
+
return 'slc7_x86-64'
|
|
26
|
+
|
|
27
|
+
TEST_ARCHITECTURE = os.environ.get('ARCHITECTURE', get_test_architecture())
|
|
28
|
+
|
|
15
29
|
|
|
16
30
|
TEST_DEFAULT_RELEASE = """\
|
|
17
31
|
package: defaults-release
|
|
@@ -23,7 +37,7 @@ TEST_DEFAULT_RELEASE_BUILD_HASH = "27ce49698e818e8efb56b6eff6dd785e503df341"
|
|
|
23
37
|
|
|
24
38
|
TEST_ZLIB_RECIPE = """\
|
|
25
39
|
package: zlib
|
|
26
|
-
version: v1.
|
|
40
|
+
version: v1.3.1
|
|
27
41
|
source: https://github.com/madler/zlib
|
|
28
42
|
tag: master
|
|
29
43
|
---
|
|
@@ -32,7 +46,7 @@ make
|
|
|
32
46
|
make install
|
|
33
47
|
"""
|
|
34
48
|
TEST_ZLIB_GIT_REFS = "8822efa61f2a385e0bc83ca5819d608111b2168a\trefs/heads/master"
|
|
35
|
-
TEST_ZLIB_BUILD_HASH = "
|
|
49
|
+
TEST_ZLIB_BUILD_HASH = "4d6a75f214dc7931a2a7d5ba82ea0568e652cd84"
|
|
36
50
|
|
|
37
51
|
TEST_ROOT_RECIPE = """\
|
|
38
52
|
package: ROOT
|
|
@@ -71,7 +85,7 @@ TEST_ROOT_GIT_REFS = """\
|
|
|
71
85
|
87b87c4322d2a3fad315c919cb2e2dd73f2154dc\trefs/heads/master
|
|
72
86
|
f7b336611753f1f4aaa94222b0d620748ae230c0\trefs/heads/v6-08-00-patches
|
|
73
87
|
f7b336611753f1f4aaa94222b0d620748ae230c0\trefs/tags/test-tag"""
|
|
74
|
-
TEST_ROOT_BUILD_HASH = ("
|
|
88
|
+
TEST_ROOT_BUILD_HASH = ("1f3c771080f71b6c0d2e3d7a285698a20035da12")
|
|
75
89
|
|
|
76
90
|
|
|
77
91
|
TEST_EXTRA_RECIPE = """\
|
|
@@ -88,18 +102,18 @@ f000\trefs/heads/master
|
|
|
88
102
|
ba22\trefs/tags/v1
|
|
89
103
|
ba22\trefs/tags/v2
|
|
90
104
|
baad\trefs/tags/v3"""
|
|
91
|
-
TEST_EXTRA_BUILD_HASH = ("
|
|
105
|
+
TEST_EXTRA_BUILD_HASH = ("6e7bc4976abf77b558cf7faf575ec51670f8d0e5")
|
|
92
106
|
|
|
93
107
|
|
|
94
108
|
GIT_CLONE_REF_ZLIB_ARGS = ("clone", "--bare", "https://github.com/madler/zlib",
|
|
95
109
|
"/sw/MIRROR/zlib", "--filter=blob:none"), ".", False
|
|
96
110
|
GIT_CLONE_SRC_ZLIB_ARGS = ("clone", "-n", "https://github.com/madler/zlib",
|
|
97
|
-
"/sw/SOURCES/zlib/v1.
|
|
111
|
+
"/sw/SOURCES/zlib/v1.3.1/8822efa61f",
|
|
98
112
|
"--dissociate", "--reference", "/sw/MIRROR/zlib", "--filter=blob:none"), ".", False
|
|
99
113
|
GIT_SET_URL_ZLIB_ARGS = ("remote", "set-url", "--push", "origin", "https://github.com/madler/zlib"), \
|
|
100
|
-
"/sw/SOURCES/zlib/v1.
|
|
114
|
+
"/sw/SOURCES/zlib/v1.3.1/8822efa61f", False
|
|
101
115
|
GIT_CHECKOUT_ZLIB_ARGS = ("checkout", "-f", "master"), \
|
|
102
|
-
"/sw/SOURCES/zlib/v1.
|
|
116
|
+
"/sw/SOURCES/zlib/v1.3.1/8822efa61f", False
|
|
103
117
|
|
|
104
118
|
GIT_FETCH_REF_ROOT_ARGS = ("fetch", "-f", "--prune", "--filter=blob:none", "https://github.com/root-mirror/root", "+refs/tags/*:refs/tags/*",
|
|
105
119
|
"+refs/heads/*:refs/heads/*"), "/sw/MIRROR/root", False
|
|
@@ -143,9 +157,9 @@ def dummy_open(x, mode="r", encoding=None, errors=None):
|
|
|
143
157
|
"/sw/BUILD/%s/defaults-release/.build_succeeded" % TEST_DEFAULT_RELEASE_BUILD_HASH: (0, StringIO("0")),
|
|
144
158
|
"/sw/BUILD/%s/zlib/.build_succeeded" % TEST_ZLIB_BUILD_HASH: (0, StringIO("0")),
|
|
145
159
|
"/sw/BUILD/%s/ROOT/.build_succeeded" % TEST_ROOT_BUILD_HASH: (0, StringIO("0")),
|
|
146
|
-
"/sw/
|
|
147
|
-
"/sw/
|
|
148
|
-
"/sw/
|
|
160
|
+
f"/sw/{TEST_ARCHITECTURE}/defaults-release/v1-1/.build-hash": (1, StringIO(TEST_DEFAULT_RELEASE_BUILD_HASH)),
|
|
161
|
+
f"/sw/{TEST_ARCHITECTURE}/zlib/v1.3.1-local1/.build-hash": (1, StringIO(TEST_ZLIB_BUILD_HASH)),
|
|
162
|
+
f"/sw/{TEST_ARCHITECTURE}/ROOT/v6-08-30-local1/.build-hash": (1, StringIO(TEST_ROOT_BUILD_HASH))
|
|
149
163
|
}[x]
|
|
150
164
|
except KeyError:
|
|
151
165
|
return DEFAULT
|
|
@@ -163,17 +177,16 @@ def dummy_execute(x, **kwds):
|
|
|
163
177
|
if re.match(".*ln -sfn.*TARS", s):
|
|
164
178
|
return 0
|
|
165
179
|
return {
|
|
166
|
-
"/bin/bash -e -x /sw/SPECS/
|
|
167
|
-
'/bin/bash -e -x /sw/SPECS/
|
|
168
|
-
'/bin/bash -e -x /sw/SPECS/
|
|
180
|
+
f"/bin/bash -e -x /sw/SPECS/{TEST_ARCHITECTURE}/defaults-release/v1-1/build.sh 2>&1": 0,
|
|
181
|
+
f'/bin/bash -e -x /sw/SPECS/{TEST_ARCHITECTURE}/zlib/v1.3.1-local1/build.sh 2>&1': 0,
|
|
182
|
+
f'/bin/bash -e -x /sw/SPECS/{TEST_ARCHITECTURE}/ROOT/v6-08-30-local1/build.sh 2>&1': 0,
|
|
169
183
|
}[s]
|
|
170
184
|
|
|
171
185
|
|
|
172
186
|
def dummy_readlink(x):
|
|
173
187
|
return {
|
|
174
|
-
"/sw/TARS/
|
|
175
|
-
"../../
|
|
176
|
-
(TEST_DEFAULT_RELEASE_BUILD_HASH[:2], TEST_DEFAULT_RELEASE_BUILD_HASH)
|
|
188
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/defaults-release/defaults-release-v1-1.{TEST_ARCHITECTURE}.tar.gz":
|
|
189
|
+
f"../../{TEST_ARCHITECTURE}/store/{TEST_DEFAULT_RELEASE_BUILD_HASH[:2]}/{TEST_DEFAULT_RELEASE_BUILD_HASH}/defaults-release-v1-1.{TEST_ARCHITECTURE}.tar.gz"
|
|
177
190
|
}[x]
|
|
178
191
|
|
|
179
192
|
|
|
@@ -224,13 +237,11 @@ class BuildTestCase(unittest.TestCase):
|
|
|
224
237
|
@patch("os.listdir")
|
|
225
238
|
@patch("alibuild_helpers.build.glob", new=lambda pattern: {
|
|
226
239
|
"*": ["zlib"],
|
|
227
|
-
"/sw/TARS/
|
|
228
|
-
|
|
229
|
-
"/sw/TARS/
|
|
230
|
-
"/sw/TARS/
|
|
231
|
-
"/
|
|
232
|
-
["../../osx_x86-64/store/%s/%s/defaults-release-v1-1.osx_x86-64.tar.gz" %
|
|
233
|
-
(TEST_DEFAULT_RELEASE_BUILD_HASH[:2], TEST_DEFAULT_RELEASE_BUILD_HASH)],
|
|
240
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/store/{TEST_DEFAULT_RELEASE_BUILD_HASH[:2]}/{TEST_DEFAULT_RELEASE_BUILD_HASH}/*gz": [],
|
|
241
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/store/{TEST_ZLIB_BUILD_HASH[:2]}/{TEST_ZLIB_BUILD_HASH}/*gz": [],
|
|
242
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/store/{TEST_ROOT_BUILD_HASH[:2]}/{TEST_ROOT_BUILD_HASH}/*gz": [],
|
|
243
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/defaults-release/defaults-release-v1-1.{TEST_ARCHITECTURE}.tar.gz":
|
|
244
|
+
[f"../../{TEST_ARCHITECTURE}/store/{TEST_DEFAULT_RELEASE_BUILD_HASH[:2]}/{TEST_DEFAULT_RELEASE_BUILD_HASH}/defaults-release-v1-1.{TEST_ARCHITECTURE}.tar.gz"],
|
|
234
245
|
}[pattern])
|
|
235
246
|
@patch("alibuild_helpers.build.readlink", new=dummy_readlink)
|
|
236
247
|
@patch("alibuild_helpers.build.banner", new=MagicMock(return_value=None))
|
|
@@ -243,9 +254,9 @@ class BuildTestCase(unittest.TestCase):
|
|
|
243
254
|
mock_debug.side_effect = lambda *args: None
|
|
244
255
|
mock_warning.side_effect = lambda *args: None
|
|
245
256
|
mock_listdir.side_effect = lambda directory: {
|
|
246
|
-
"/sw/TARS/
|
|
247
|
-
"/sw/TARS/
|
|
248
|
-
"/sw/TARS/
|
|
257
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/defaults-release": [f"defaults-release-v1-1.{TEST_ARCHITECTURE}.tar.gz"],
|
|
258
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/zlib": [],
|
|
259
|
+
f"/sw/TARS/{TEST_ARCHITECTURE}/ROOT": [],
|
|
249
260
|
}.get(directory, DEFAULT)
|
|
250
261
|
os.environ["ALIBUILD_NO_ANALYTICS"] = "1"
|
|
251
262
|
|
|
@@ -257,7 +268,7 @@ class BuildTestCase(unittest.TestCase):
|
|
|
257
268
|
docker=False,
|
|
258
269
|
dockerImage=None,
|
|
259
270
|
docker_extra_args=["--network=host"],
|
|
260
|
-
architecture=
|
|
271
|
+
architecture=TEST_ARCHITECTURE,
|
|
261
272
|
workDir="/sw",
|
|
262
273
|
pkgname=["root"],
|
|
263
274
|
configDir="/alidist",
|
|
@@ -319,7 +330,7 @@ class BuildTestCase(unittest.TestCase):
|
|
|
319
330
|
doBuild(args, mock_parser)
|
|
320
331
|
mock_warning.assert_called_with("%s.sh contains a recipe, which will be ignored", "defaults-release")
|
|
321
332
|
mock_debug.assert_called_with("Everything done")
|
|
322
|
-
mock_listdir.assert_called_with("/sw/TARS/
|
|
333
|
+
mock_listdir.assert_called_with(f"/sw/TARS/{TEST_ARCHITECTURE}/ROOT")
|
|
323
334
|
# We can't compare directly against the list of calls here as they
|
|
324
335
|
# might happen in any order.
|
|
325
336
|
mock_git_git.assert_has_calls(common_calls + [
|
|
@@ -406,8 +417,8 @@ class BuildTestCase(unittest.TestCase):
|
|
|
406
417
|
self.assertNotIn("Extra", complete_initdotsh)
|
|
407
418
|
|
|
408
419
|
# Dependencies must be loaded both for this build and for subsequent ones.
|
|
409
|
-
self.assertIn('. "$WORK_DIR/$ALIBUILD_ARCH_PREFIX"/zlib/v1.
|
|
410
|
-
self.assertIn('. "$WORK_DIR/$ALIBUILD_ARCH_PREFIX"/zlib/v1.
|
|
420
|
+
self.assertIn('. "$WORK_DIR/$ALIBUILD_ARCH_PREFIX"/zlib/v1.3.1-1/etc/profile.d/init.sh', setup_initdotsh)
|
|
421
|
+
self.assertIn('. "$WORK_DIR/$ALIBUILD_ARCH_PREFIX"/zlib/v1.3.1-1/etc/profile.d/init.sh', complete_initdotsh)
|
|
411
422
|
|
|
412
423
|
# ROOT-specific variables must not be set during ROOT's build yet...
|
|
413
424
|
self.assertNotIn("export ROOT_VERSION=", setup_initdotsh)
|
|
@@ -16,19 +16,19 @@ GOOD_HASH = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
|
|
|
16
16
|
BAD_HASH = "baadf00dbaadf00dbaadf00dbaadf00dbaadf00d"
|
|
17
17
|
NONEXISTENT_HASH = "TRIGGERS_A_404"
|
|
18
18
|
GOOD_SPEC = { # fully present on the remote store
|
|
19
|
-
"package": PACKAGE, "version": "v1.
|
|
19
|
+
"package": PACKAGE, "version": "v1.3.1", "revision": "1",
|
|
20
20
|
"hash": GOOD_HASH,
|
|
21
21
|
"remote_revision_hash": GOOD_HASH,
|
|
22
22
|
"remote_hashes": [GOOD_HASH],
|
|
23
23
|
}
|
|
24
24
|
BAD_SPEC = { # partially present on the remote store
|
|
25
|
-
"package": PACKAGE, "version": "v1.
|
|
25
|
+
"package": PACKAGE, "version": "v1.3.1", "revision": "2",
|
|
26
26
|
"hash": BAD_HASH,
|
|
27
27
|
"remote_revision_hash": BAD_HASH,
|
|
28
28
|
"remote_hashes": [BAD_HASH],
|
|
29
29
|
}
|
|
30
30
|
MISSING_SPEC = { # completely absent from the remote store
|
|
31
|
-
"package": PACKAGE, "version": "v1.
|
|
31
|
+
"package": PACKAGE, "version": "v1.3.1", "revision": "3",
|
|
32
32
|
"hash": NONEXISTENT_HASH,
|
|
33
33
|
"remote_revision_hash": NONEXISTENT_HASH,
|
|
34
34
|
"remote_hashes": [NONEXISTENT_HASH],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tox]
|
|
2
2
|
minversion = 3.20
|
|
3
|
-
envlist = lint, py{37, 38, 39, 310, 311, 312, 313}, darwin
|
|
3
|
+
envlist = lint, py{37, 38, 39, 310, 311, 312, 313, 314}, darwin
|
|
4
4
|
|
|
5
5
|
[gh-actions]
|
|
6
6
|
# The "lint" job is run separately.
|
|
@@ -12,6 +12,7 @@ python =
|
|
|
12
12
|
3.11: py311
|
|
13
13
|
3.12: py312
|
|
14
14
|
3.13: py313
|
|
15
|
+
3.14: py314
|
|
15
16
|
|
|
16
17
|
; [testenv:lint]
|
|
17
18
|
; # Warning: This environment inherits settings from the main [testenv] section.
|
|
@@ -121,7 +122,7 @@ commands =
|
|
|
121
122
|
darwin: sl clone https://github.com/alisw/alidist alidist-sapling
|
|
122
123
|
darwin: coverage run --source={toxinidir} -a {toxinidir}/aliBuild -a {env:ARCHITECTURE} -c alidist-sapling --no-system --disable GCC-Toolchain build zlib
|
|
123
124
|
darwin: rm -fr zlib
|
|
124
|
-
darwin: sl clone https://github.com/
|
|
125
|
+
darwin: sl clone https://github.com/madler/zlib
|
|
125
126
|
darwin: coverage run --source={toxinidir} -a {toxinidir}/aliBuild -a {env:ARCHITECTURE} --no-system --disable GCC-Toolchain build zlib
|
|
126
127
|
touch zlib/foo
|
|
127
128
|
darwin: coverage run --source={toxinidir} -a {toxinidir}/aliBuild -a {env:ARCHITECTURE} --no-system --disable GCC-Toolchain build zlib
|
alibuild-1.17.30/docs/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Read the documentation here: <http://alisw.github.io/alibuild/>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|