alibuild 1.17.30__py3-none-any.whl → 1.17.32__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alibuild
3
- Version: 1.17.30
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
- For developers
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
@@ -1,15 +1,15 @@
1
- alibuild-1.17.30.data/scripts/aliBuild,sha256=5g-apCjhc9cvtFvKSP0yr6IJtChNvtTAP-BtPL-91M8,4307
2
- alibuild-1.17.30.data/scripts/aliDeps,sha256=fhfPB2NpuLj8bZZPUjJW2e4VxA8ZkHlp5q76xAOzufI,219
3
- alibuild-1.17.30.data/scripts/aliDoctor,sha256=gQwLcNGAm7_QF7FFCtmtFXEoroKsRonNMA7UP4DS1y4,221
4
- alibuild-1.17.30.data/scripts/alienv,sha256=8QihJOzKue4oeuIM31MsoX8Fw7FNZ4zY7wyK6UYtgTE,12568
5
- alibuild-1.17.30.data/scripts/pb,sha256=LfkIUyX3xXxmaGSdtAbA-dS1Y1eEShEHpmto1tIEga0,211
6
- alibuild-1.17.30.dist-info/licenses/LICENSE.md,sha256=WJ7YI-moTFb-uVrFjnzzhGJrnL9P2iqQe8NuED3hutI,35141
1
+ alibuild-1.17.32.data/scripts/aliBuild,sha256=5g-apCjhc9cvtFvKSP0yr6IJtChNvtTAP-BtPL-91M8,4307
2
+ alibuild-1.17.32.data/scripts/aliDeps,sha256=fhfPB2NpuLj8bZZPUjJW2e4VxA8ZkHlp5q76xAOzufI,219
3
+ alibuild-1.17.32.data/scripts/aliDoctor,sha256=gQwLcNGAm7_QF7FFCtmtFXEoroKsRonNMA7UP4DS1y4,221
4
+ alibuild-1.17.32.data/scripts/alienv,sha256=8QihJOzKue4oeuIM31MsoX8Fw7FNZ4zY7wyK6UYtgTE,12568
5
+ alibuild-1.17.32.data/scripts/pb,sha256=LfkIUyX3xXxmaGSdtAbA-dS1Y1eEShEHpmto1tIEga0,211
6
+ alibuild-1.17.32.dist-info/licenses/LICENSE.md,sha256=WJ7YI-moTFb-uVrFjnzzhGJrnL9P2iqQe8NuED3hutI,35141
7
7
  alibuild_helpers/__init__.py,sha256=ZAhyhRxOkiTA1fMzwEKACY8Eo8MdWp1MawVicFlvQWk,736
8
- alibuild_helpers/_version.py,sha256=S3vMhcmKeZ1M1EPdc0HIDsBTTmXeeExv2qQ2rEwIH-E,708
8
+ alibuild_helpers/_version.py,sha256=koV-Zu5olmpIEVQa4bq1Ged-h54FCEJNkSDoD21jSqc,708
9
9
  alibuild_helpers/analytics.py,sha256=fuiOagDngFnodGo7upMWeY-RjTTncDRz5Kwz8zxUr9o,4579
10
10
  alibuild_helpers/args.py,sha256=T0nOOMCpJZdJkEPZENz7nOsaYIfeZ7qHfAR1Vx4-T2Y,31694
11
11
  alibuild_helpers/build.py,sha256=VJj0KwRkbPs5gCj-Ey2MWhl2NTLZWql6DGwp8AO3tTA,57055
12
- alibuild_helpers/build_template.sh,sha256=e7nh8ZhNH-z0LPkuETYVYlgM75EfhoCo__hn1QCIDak,13566
12
+ alibuild_helpers/build_template.sh,sha256=yx1YEQN5tdfQNmZfsEnn-FxbzBIpvYwYRQkQLKmm8uo,14011
13
13
  alibuild_helpers/clean.py,sha256=-LeQUYDwxihzGJi4rCiuALu051T44-0cV8S6-l_lCaQ,3250
14
14
  alibuild_helpers/cmd.py,sha256=5tdxtyrHDzmdSVIA0pzxBoici1GZDS0fUStbX85r6ao,5906
15
15
  alibuild_helpers/deps.py,sha256=nHLyNqVuTUfW5bqfzCDxAaVVsklv5wHMl4FMMfTQF-8,4909
@@ -19,7 +19,7 @@ alibuild_helpers/init.py,sha256=x7OAErHzn34ceNqg-0GuHudYigh18Mk-P3RhN2P5mEI,5088
19
19
  alibuild_helpers/log.py,sha256=OEflXNcGNgvVYLZbvVwd2Inyt12tnEw5RgkrsiAT2c0,4700
20
20
  alibuild_helpers/scm.py,sha256=pZfEnTgr_ILmtRT3BXeoYVJGq9rjigLXOLAGJMsnDko,1019
21
21
  alibuild_helpers/sl.py,sha256=Aw3-Lvq3bQ2s_KTw6PXgqcjSoY-s8_0A55GRPKks4x0,2915
22
- alibuild_helpers/sync.py,sha256=I7RTb0nzCiWN-n4o8ZWXuCwObcKN6laWPkb7A2H1XVY,31375
22
+ alibuild_helpers/sync.py,sha256=vfny1ZF_YahzlSSEtYOq1KFvQLj_ce7MZlV2KDk1-xg,32296
23
23
  alibuild_helpers/templating_plugin.py,sha256=TWHdMQtDfX6Vqp5w9Huyh4ZEgLv5vYxAtPtX68xTOlk,662
24
24
  alibuild_helpers/utilities.py,sha256=nb0UC0qn2_rIJ-5GDnx-GoRAbF8tn1ELjZS-prUz9eo,26131
25
25
  alibuild_helpers/workarea.py,sha256=dYGZ7OOCg87W-njZMqX7Yu72800KZjx9v5Hg-T43juY,7442
@@ -29,21 +29,20 @@ debian/control,sha256=UL8ZCLiCnNH75oVtldYPfrBO8DH7VxvjXPIdTCvXgPc,476
29
29
  debian/copyright,sha256=wOLKnTq7-L1OZZoXu-FOojSdqt2nb9aEwVqVZGAxanE,470
30
30
  debian/files,sha256=u9Y63SK26643_rgHm6lvcr4OtZKlCM-FcW4wwiJ4FMY,55
31
31
  debian/rules,sha256=V4agtbpfdaM9h7oNrgNzEShthUASwMfhgTmFvZKLNMI,131
32
- docs/README.md,sha256=-2EVG9RlHchf-TYJIxwZf8zSHc49ujCdTzZmWrxj4aQ,64
33
32
  docs/SUPPORT,sha256=j8Ikz-9B8OkoZwtd7WU5fc_qRQ_MWy2qjWcgsXY3XyQ,150
34
33
  docs/mkdocs.yml,sha256=FQWSVZC75WnuCs6icnSRauBgIJ4hrVut5Rt9X4zxy-w,931
35
34
  docs/docs/alice_logo.png,sha256=w8Jpk9mHdGF5sN0pO0i6PuVyI-ntDNsvbx7DChVIZQQ,65824
36
35
  docs/docs/deps.png,sha256=VY_WJOzWOm_JqAwuzFBd6C7NhrzTDDireNh739NwAow,261802
37
36
  docs/docs/index.md,sha256=pU3PRsZvV5M_W1-GEZ169ECAD4C5eQc0l2V_kN_j7yU,3571
38
37
  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
38
+ docs/docs/reference.md,sha256=sBH8diOwyOFkgDsAhWexvtpuAwZaNzJaE-dplEnOXdU,18049
39
+ docs/docs/troubleshooting.md,sha256=fcAoLyi46yxMztqbYMY-5Z4_mwLZOJW8Q3M3jEb-Zdc,15458
40
+ docs/docs/user.md,sha256=5o150ssZnN1Tow35OWA6Gfw3PjlhJb27ip1740hasV8,20476
42
41
  docs/docs/stylesheets/extra.css,sha256=NAFcBZQe8gh2CTpJFwyv93FvblnF5RaEjtsHxtlFD-w,215
43
42
  templates/alibuild_to_please.jnj,sha256=48SfIwq55zlb5_5lu6WAHSznXE0EfUNcHmFrmzMUSns,1723
44
43
  tests/test_analytics.py,sha256=IlxATGj-MU0sTVqpi2-EKrIhyV9C48K5IZ39kWFz-Os,1942
45
44
  tests/test_args.py,sha256=8d8BybESxbIDvEOOSHmmd2rCTgNxI_vF-sgbDojI-Fg,8867
46
- tests/test_build.py,sha256=d8R3OlZXwBguZzJ6jmo_TEBGBMq6-N3MAytW1t3hl3U,18514
45
+ tests/test_build.py,sha256=5WtCmrvcG7U2i5jwBdPhMJzINsYQ6WaySEFu-TNnZHc,19017
47
46
  tests/test_clean.py,sha256=Zm3gjtO8Pgl27xUzQIHeGqpe05YMVXZp6Sua59prvcE,7492
48
47
  tests/test_cmd.py,sha256=SsWWasMrhbIu9Lqyr_wpuvDjg72ACJ1H_zDlTnybBuE,5049
49
48
  tests/test_deps.py,sha256=bLDFuqLRJiCW4U71dzXYM0Niv-skQXSsKGb6LXGVsZ0,2113
@@ -54,7 +53,7 @@ tests/test_init.py,sha256=y1n16H5JoYAyIihqQglVmPrIsz7VVqyjRz_XdDs4XZM,4281
54
53
  tests/test_log.py,sha256=5eA0lfFHyX4KOMkfQSsbNw9wAbh7t-KuOfvaFMaM0qg,1884
55
54
  tests/test_packagelist.py,sha256=MlVParqXn7zQXX3OTjHhY7sFvfgAoH-jWBMJlmsB5ls,8755
56
55
  tests/test_parseRecipe.py,sha256=Ar1SWWd-NLC6ZAs180RcHC3UPyWc1ItzIP9S57ADNM4,4982
57
- tests/test_sync.py,sha256=2CyZcC4gKCFo85pfJYn4r196eet0TG5bolL8EofGqFQ,14014
56
+ tests/test_sync.py,sha256=ispdYLvTIvoG_EnsNZWb-gI-hzt7cgjxns3ghpraepE,14014
58
57
  tests/test_utilities.py,sha256=VfAu0oEWkO6YmOG4nZxA4YC3KViLGJZ79EJiapk88Rg,20497
59
58
  tests/test_workarea.py,sha256=RIbo9b4hckkf9jmsS2NwfdcRU20QRUF_Kjjc-IlK2GU,4897
60
59
  tests/testdist/broken1.sh,sha256=zdbBCVA9ThnK14Lu9Nm6Firw2EcnRF7budMA3xrcYEg,7
@@ -68,7 +67,7 @@ tests/testdist/clobber-initdotsh.sh,sha256=K4L8hiEgNg0hI2WAiEA65rWU5sp-fwOYkubpV
68
67
  tests/testdist/defaults-o2.sh,sha256=IJWVMYjQYz876twos1bj-5VnPv7WTdM0X-fd09j4xxM,325
69
68
  tests/testdist/delete-etc.sh,sha256=NFMApyWMLQu3HJMsx0x8ZEveCaXbosO6XzJk8KDRJdg,63
70
69
  tests/testdist/tracking-env.sh,sha256=3cJszuzJ5dxNYvHO4ydUOWIXwmMS7wfeb-JBCDK21O4,119
71
- alibuild-1.17.30.dist-info/METADATA,sha256=5cbv4OAQNWwaOcbtyYPlsh8eqqiWCYZJvc1E0WgjSuI,2231
72
- alibuild-1.17.30.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
73
- alibuild-1.17.30.dist-info/top_level.txt,sha256=WjKmc89Vn0WlbEp9a9VmhwqRkeKxjUX_6NT3T8K3Hv0,45
74
- alibuild-1.17.30.dist-info/RECORD,,
70
+ alibuild-1.17.32.dist-info/METADATA,sha256=G3ok6rHfk97SXxV8AtBo5niw6HSEERtYuR--7l351XE,2716
71
+ alibuild-1.17.32.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
72
+ alibuild-1.17.32.dist-info/top_level.txt,sha256=WjKmc89Vn0WlbEp9a9VmhwqRkeKxjUX_6NT3T8K3Hv0,45
73
+ alibuild-1.17.32.dist-info/RECORD,,
@@ -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.30'
32
- __version_tuple__ = version_tuple = (1, 17, 30)
31
+ __version__ = version = '1.17.32'
32
+ __version_tuple__ = version_tuple = (1, 17, 32)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -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
alibuild_helpers/sync.py CHANGED
@@ -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
- for link_dir, symlinks in dist_symlinks.items():
686
- for link_key, hash_path in symlinks:
687
- self.s3.put_object(Bucket=self.writeStore,
688
- Key=link_key,
689
- Body=os.fsencode(hash_path),
690
- ACL="public-read",
691
- WebsiteRedirectLocation=hash_path)
692
- debug("Uploaded %d dist symlinks to S3 from %s",
693
- len(symlinks), link_dir)
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
- sum(len(symlinks) for _, symlinks in dist_symlinks.items()),
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))
docs/docs/reference.md CHANGED
@@ -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 `aliDeps`. Other tools treat these packages differently from
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 `aliDoctor <package-name>` to try to understand why that was the case
80
- (or you can [open a bug report](https://github.com/alisw/alidist/issues) with its output and we will look at it).
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
- aliDoctor <package name>
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
- aliDoctor AliPhysics
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
docs/docs/user.md CHANGED
@@ -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, or on
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 Centos.
203
- In order to force the the correct architecture for the build you can use
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
- - `slc5_x86-64`: Scientific Linux 5 and compatibles, on Intel / AMD x86-64.
207
- - `slc6_x86-64`: Scientific Linux 6 and compatibles, on Intel / AMD x86-64.
208
- - `slc7_x86-64`: CERN Centos 7 and compatibles, on Intel / AMD x86-64.
209
- - `ubuntu1404_x86-64`: Ubuntu 1404 and compatibles, on Intel / AMD x86-64.
210
- - `osx_x86-64`: OSX, on Intel / AMD x86-64.
211
- - `slc7_ppc64`: RHEL7 on POWER8 (LE only for now).
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` is tuned to build the production version of ALICE
238
- Offline software, as deployed on the Grid, so some of the choices in
239
- terms of version of the packages and compilation flags are tweaked for
240
- that. For example, ROOT5 is used because that's what is what has been
241
- validated for datataking and the choice will not change until the end of
242
- RUN2 of LHC. In order to change that and use, for example, a more recent
243
- version of ROOT you can use the `--default root6` option which will
244
- enable ROOT6 based builds. For a more complete description of how defaults
245
- works please look at [the reference manual](reference.md#defaults).
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
- Moreover, starting from aliBuild 1.4.0, it will also be
253
- possible to disable packages by adding them to the `disable`
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 `AliEn-Runtime` and `AliRoot`
257
- when passing `--defaults o2`.
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 is installed via `pip`. In order to upgrade it on most laptops (in
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
- pip install --upgrade alibuild
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
- or in case you need to be root (_e.g._ on Ubuntu and most Linux distributions
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.5.5.rc1
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 `aliDeps`
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
- aliDeps O2 --outgraph graph.pdf
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, `aliDeps` runs the usual system checks to exclude packages that can
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
- aliDeps O2 --no-system --outgraph graph.pdf
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 `aliDeps --help` for further information.
406
+ Please run `aliBuild deps --help` for further information.
367
407
 
368
408
  ## Using the packages you have built
369
409
 
tests/test_build.py CHANGED
@@ -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.2.3
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 = "8cd1f56c450f05ffbba3276bad08eae30f814999"
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 = ("8ec3f41b6b585ef86a02e9c595eed67f34d63f08")
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 = ("5afae57bfc6a374e74c1c4427698ab5edebce0bc")
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.2.3/8822efa61f",
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.2.3/8822efa61f", False
114
+ "/sw/SOURCES/zlib/v1.3.1/8822efa61f", False
101
115
  GIT_CHECKOUT_ZLIB_ARGS = ("checkout", "-f", "master"), \
102
- "/sw/SOURCES/zlib/v1.2.3/8822efa61f", False
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/osx_x86-64/defaults-release/v1-1/.build-hash": (1, StringIO(TEST_DEFAULT_RELEASE_BUILD_HASH)),
147
- "/sw/osx_x86-64/zlib/v1.2.3-local1/.build-hash": (1, StringIO(TEST_ZLIB_BUILD_HASH)),
148
- "/sw/osx_x86-64/ROOT/v6-08-30-local1/.build-hash": (1, StringIO(TEST_ROOT_BUILD_HASH))
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/osx_x86-64/defaults-release/v1-1/build.sh 2>&1": 0,
167
- '/bin/bash -e -x /sw/SPECS/osx_x86-64/zlib/v1.2.3-local1/build.sh 2>&1': 0,
168
- '/bin/bash -e -x /sw/SPECS/osx_x86-64/ROOT/v6-08-30-local1/build.sh 2>&1': 0,
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/osx_x86-64/defaults-release/defaults-release-v1-1.osx_x86-64.tar.gz":
175
- "../../osx_x86-64/store/%s/%s/defaults-release-v1-1.osx_x86-64.tar.gz" %
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/osx_x86-64/store/%s/%s/*gz" % (TEST_DEFAULT_RELEASE_BUILD_HASH[:2],
228
- TEST_DEFAULT_RELEASE_BUILD_HASH): [],
229
- "/sw/TARS/osx_x86-64/store/%s/%s/*gz" % (TEST_ZLIB_BUILD_HASH[:2], TEST_ZLIB_BUILD_HASH): [],
230
- "/sw/TARS/osx_x86-64/store/%s/%s/*gz" % (TEST_ROOT_BUILD_HASH[:2], TEST_ROOT_BUILD_HASH): [],
231
- "/sw/TARS/osx_x86-64/defaults-release/defaults-release-v1-1.osx_x86-64.tar.gz":
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/osx_x86-64/defaults-release": ["defaults-release-v1-1.osx_x86-64.tar.gz"],
247
- "/sw/TARS/osx_x86-64/zlib": [],
248
- "/sw/TARS/osx_x86-64/ROOT": [],
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="osx_x86-64",
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/osx_x86-64/ROOT")
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.2.3-1/etc/profile.d/init.sh', setup_initdotsh)
410
- self.assertIn('. "$WORK_DIR/$ALIBUILD_ARCH_PREFIX"/zlib/v1.2.3-1/etc/profile.d/init.sh', complete_initdotsh)
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)
tests/test_sync.py CHANGED
@@ -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.2.3", "revision": "1",
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.2.3", "revision": "2",
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.2.3", "revision": "3",
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],
docs/README.md DELETED
@@ -1 +0,0 @@
1
- Read the documentation here: <http://alisw.github.io/alibuild/>