Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
287 commits
Select commit Hold shift + click to select a range
36422d0
feat: Add `patchelf` in version `0.18.0.bcr.1`
wojciechormaniec-da Feb 18, 2026
496ad69
feat: Add `tar.bzl` in version `0.8.1` and `pigz` in version `2.8.bcr.1`
wojciechormaniec-da Feb 20, 2026
4afc077
feat: Add first haskell packages
wojciechormaniec-da Feb 20, 2026
864d649
feat: Add ghc `9.2.8` as main compiler for haskell
wojciechormaniec-da Feb 25, 2026
650d97b
feat: Enable `dpm_binary` for project
wojciechormaniec-da Feb 25, 2026
b9bc8fb
feat: Add `remotejdk_17` as main jdk for project
wojciechormaniec-da Feb 25, 2026
d49fe30
feat: Add scala in version `2.12.21` to bazel
wojciechormaniec-da Feb 25, 2026
79e37fe
feat: Enable packaging for canton
wojciechormaniec-da Feb 27, 2026
7d5967c
feat: Enable `//ledger-service/utils:utils`
wojciechormaniec-da Mar 2, 2026
61b8c02
feat: Add `org.jline:jline:3.27.1` to maven
wojciechormaniec-da Mar 2, 2026
237ae83
feat: Enable `//ledger-service/lf-value-json:lf-value-json`
wojciechormaniec-da Mar 3, 2026
1564df9
feat: Enable GHC in version `9.0.2`
wojciechormaniec-da Mar 6, 2026
ca50a73
feat: Enable `//libs-haskell/da-hs-base:da-hs-base`
wojciechormaniec-da Mar 6, 2026
b0682fc
feat: Enable `//libs-haskell/da-version-types:da-version-types`
wojciechormaniec-da Mar 6, 2026
bb156d2
feat: Enable `//daml-assistant:daml-project-config`
wojciechormaniec-da Mar 6, 2026
91c7e16
feat: Enable `lsp-types` with custom patches
wojciechormaniec-da Mar 6, 2026
e37c18e
feat: Enable `@da-ghc//:hadrian`
wojciechormaniec-da Mar 11, 2026
333a7c6
feat: Add `static_asset_d3plus` repo
wojciechormaniec-da Mar 12, 2026
67fe6b1
chore: Refactor file placement to be more clear and easy to find in t…
wojciechormaniec-da Mar 12, 2026
3f039b4
feat: Add `@proto3-suite` - BROKEN
wojciechormaniec-da Mar 16, 2026
31c2458
fix: Apply missing patch BUILD file
wojciechormaniec-da Mar 19, 2026
d3525db
feat: Enable `@stackage-exe//hpp`
wojciechormaniec-da Mar 19, 2026
71934d7
feat: Add `@go_googleapis`
wojciechormaniec-da Mar 20, 2026
927ec96
feat: Add `com_google_googleapis_imports`
wojciechormaniec-da Mar 20, 2026
1394cfb
feat: Add `@rules_proto`
wojciechormaniec-da Mar 20, 2026
2d06677
feat: Add `@rules_proto`
wojciechormaniec-da Mar 20, 2026
401d479
feat: Enable `@zip//:zip`
wojciechormaniec-da Mar 20, 2026
cc7028c
chore: Remove `packaging_extension.bzl`
wojciechormaniec-da Mar 20, 2026
36cde83
chore: Cleanup the structure and file names
wojciechormaniec-da Mar 20, 2026
86aa5f0
feat: Add `@ncurses//:libs` lib to replace `@nix_ghc_lib_deps//:libs`
wojciechormaniec-da Mar 25, 2026
99c5335
feat: Add `@m4//:m4` to project
wojciechormaniec-da Apr 1, 2026
11106ef
feat: Change name of genrule from `@m4//:m4` to `@m4//:m4_binary`, th…
wojciechormaniec-da Apr 7, 2026
d355d6d
feat: Up the bazel version to latest `7.x`
wojciechormaniec-da Apr 7, 2026
9f045b7
feat: Move ncurses setup to more fitting place
wojciechormaniec-da Apr 7, 2026
3c2c3b9
feat: Add automake and autoconf
wojciechormaniec-da Apr 7, 2026
0784855
feat: Reimplement `@autoconf//:autoconf` and `@automake//:automake` t…
wojciechormaniec-da Apr 7, 2026
63cf34b
fix: Enable standard ghc version setting
wojciechormaniec-da Apr 7, 2026
7fc2eb8
feat: Move old haskell deps to more fitting structure
wojciechormaniec-da Apr 7, 2026
f241bd0
fix: Move to shorter extension naming format
wojciechormaniec-da Apr 7, 2026
92bfbb5
feat: Add Cabal to project
wojciechormaniec-da Apr 7, 2026
39fe2ce
feat: Enable sdist for ghc-lib and ghc-lib-parser
wojciechormaniec-da Apr 7, 2026
489ae81
feat: Enable `@ghcide_lib//:ghcide`
wojciechormaniec-da Apr 8, 2026
fa59cd5
fix: Remove old and unnecessary files from `@ghc-lib`
wojciechormaniec-da Apr 8, 2026
df20c3c
feat: Move version to specific place, so it's easier to manage
wojciechormaniec-da Apr 8, 2026
befcd69
chore: Remove copyright headers - for now
wojciechormaniec-da Apr 8, 2026
c2ae1ed
chore: Extract all remaining versions from bazel
wojciechormaniec-da Apr 8, 2026
e20bee4
feat: Add missing stack packages
wojciechormaniec-da Apr 8, 2026
272bc07
chore: Reduce `//bazel/extensions` tree depth
wojciechormaniec-da Apr 8, 2026
d10853f
fix: Solve proto issue (for now)
wojciechormaniec-da Apr 8, 2026
5059f51
fix: Change `@ghcide_ghc_lib` name to correct `@ghcide_lib`
wojciechormaniec-da Apr 8, 2026
0d4d918
feat: Address missing maven deps
wojciechormaniec-da Apr 8, 2026
4ecdf63
feat: Partially enable `//compiler` targets
wojciechormaniec-da Apr 9, 2026
bd7a3dc
feat: Add `@protoc_bindist`, to support protoc in version `3.25.5`
wojciechormaniec-da Apr 9, 2026
18e552b
chore: Add `module` to the top of `MODULE.bazel`
wojciechormaniec-da Apr 9, 2026
b9ccc13
chore: Cleanup `bazel_dep`s
wojciechormaniec-da Apr 9, 2026
9611ea5
chore: Add reasonable comments to `MODULE.bazel`
wojciechormaniec-da Apr 9, 2026
f022f88
chore: Mark `buildifier_prebuild` as `dev_dependency`
wojciechormaniec-da Apr 9, 2026
c4dec5e
chore: Extract maven versions outside of definition
wojciechormaniec-da Apr 9, 2026
a4dbfd5
fix: Apply changes to buildifier
wojciechormaniec-da Apr 9, 2026
ecd8205
chore: Extract and document packages for haskell
wojciechormaniec-da Apr 9, 2026
d0d4c8d
chore: Move extensions to more fitting place
wojciechormaniec-da Apr 9, 2026
457ebc1
chore: Cleanup old files
wojciechormaniec-da Apr 13, 2026
53f05b5
fix: Add missing extension file
wojciechormaniec-da Apr 13, 2026
8dc9afe
feat: Migrate `@grpc` to 1.75.0
wojciechormaniec-da Apr 13, 2026
d3e1fe9
feat: Add ghc_pkg (to replace ghc_nix)
wojciechormaniec-da Apr 13, 2026
8f9df7c
feat: "Migrate" scalapb to module
wojciechormaniec-da Apr 13, 2026
d4264fa
tmp: save state for future reference
wojciechormaniec-da Apr 14, 2026
c442344
feat: Replace `@jq_dev_env` with `jq_bin`
wojciechormaniec-da Apr 14, 2026
99fb9a8
feat: Migrate @sysctl_nix to bzlmod as @sysctl (drop Nix dependency)
wojciechormaniec-da Apr 14, 2026
98c0e15
feat: Remove `script_nix` and replace it with simple python command
wojciechormaniec-da Apr 14, 2026
eadcdb2
feat: Add `@rules_python` to enable `generate-dar-hash`
wojciechormaniec-da Apr 15, 2026
6bb4c96
feat: Fix lingering `@local_jdk` references
wojciechormaniec-da Apr 16, 2026
dceb029
feat: Add pnpm and initial `@rules_js` for daml
wojciechormaniec-da Apr 16, 2026
1297149
feat: Enable `//compiler/daml-extension:vsix`
wojciechormaniec-da Apr 17, 2026
68abd47
feat: Attempt to move dev-tooling away from nix
wojciechormaniec-da Apr 17, 2026
ea6bd8a
fix: Apply version upgrade after rebase
wojciechormaniec-da Apr 23, 2026
3e56b33
fix: Change namespace to `daml-sdk`
wojciechormaniec-da Apr 23, 2026
0943be0
feat: Add missing Haskell packages
wojciechormaniec-da Apr 24, 2026
8a7576c
fix: Change `@hlint_nix` to `@stackage-exe//hlint`
wojciechormaniec-da Apr 24, 2026
70bf00f
feat: Remove test for nix/maven/bazel sync
wojciechormaniec-da Apr 24, 2026
18315e0
feat: Remove haskell nix from `.bazelrc`
wojciechormaniec-da Apr 24, 2026
7c94fed
feat: Fix the `pom_file.bzl` fail
wojciechormaniec-da Apr 24, 2026
56199ac
feat: Enable `@daml-finance`
wojciechormaniec-da Apr 24, 2026
add3b1e
fix: Add missing package for `//ci/cron:cron`
wojciechormaniec-da Apr 27, 2026
42cf07e
feat: Introduce `@damlc_legacy`
wojciechormaniec-da Apr 27, 2026
1b48d48
feat: Introduce `@openssl`
wojciechormaniec-da Apr 28, 2026
a434136
fix: Revert compatibility WORKSPACE change
wojciechormaniec-da Apr 28, 2026
46f2c3d
feat: Introduce back `@freefont` in version `20120503`
wojciechormaniec-da Apr 28, 2026
233b952
feat: Enable `@grpcurl`
wojciechormaniec-da Apr 28, 2026
72fdf1c
fix: Apply missing patches on `package-app.sh`
wojciechormaniec-da Apr 28, 2026
8d93cfe
feat: Add `libgmp` (`@gmp`)
wojciechormaniec-da Apr 29, 2026
c43b4b8
fix: Add missing packages
wojciechormaniec-da Apr 29, 2026
9f84bd4
feat: Add temporary `@zlib_shared`
wojciechormaniec-da Apr 30, 2026
070749c
fix: Add missing `@gmp//:libs` to hpp-dist
wojciechormaniec-da Apr 30, 2026
ec888a5
feat: Add `@bzip2`
wojciechormaniec-da Apr 30, 2026
37d24c9
fix: Add missing libs
wojciechormaniec-da Apr 30, 2026
276ed19
fix: Temporarily enable `--no-exit-code`
wojciechormaniec-da Apr 30, 2026
92c798e
feat: Add temporary `cc` implementation
wojciechormaniec-da May 6, 2026
dd07cf5
fix: some minor issues with c++ build
wojciechormaniec-da May 7, 2026
a0d177b
feat: Patch `rules_haskell` for hermetic CC toolchain
wojciechormaniec-da May 8, 2026
a0964c1
feat: Enable hermetic cc_toolchain for linux
wojciechormaniec-da May 12, 2026
af8cabf
feat: Add custom git repository rule
wojciechormaniec-da May 15, 2026
41fd9c7
chore: Suppress noisy warnings from c++ (and some java)
wojciechormaniec-da May 15, 2026
f66227d
chore: Remove dead code from 3rdparty
wojciechormaniec-da May 18, 2026
5b5f75b
chore: Fix fetch after rebase
wojciechormaniec-da May 19, 2026
457311b
fix: Apply partial fix for `IntegrationTests.hs`
wojciechormaniec-da May 19, 2026
a8c16db
fix: Build after rebase
wojciechormaniec-da May 19, 2026
d2ce73f
chore: Remove dangling changes/files
wojciechormaniec-da May 20, 2026
cd28fb6
ci: Initial breaking commit for `verify_docs_synchronized`
wojciechormaniec-da May 20, 2026
c498333
ci: Remove Linux/MacOs/Windows builds as preparation for CI integration
wojciechormaniec-da May 21, 2026
a149966
ci: Fix platform detection
wojciechormaniec-da May 21, 2026
1c91c9b
fix: Add hermetic `make`
wojciechormaniec-da May 21, 2026
26bbec1
ci: Fix `./configure` not seeing gcc
wojciechormaniec-da May 22, 2026
cbc8945
wip: Add temporary preview Containerfile
wojciechormaniec-da May 22, 2026
e058f53
feat: Move ncurses build to fetch time.
wojciechormaniec-da May 25, 2026
c99c8b4
feat: Realign sysroot path
wojciechormaniec-da May 25, 2026
c5798bc
feat: Fix `libtinfo.so.5` errors (warnings remain)
wojciechormaniec-da May 26, 2026
0b70418
feat: Add hermetic make to build
wojciechormaniec-da May 26, 2026
7b86069
feat: Temporary patchelf fix
wojciechormaniec-da May 26, 2026
340f0ee
feat: Add `zip` to avoid custom toolchain implementation
wojciechormaniec-da May 26, 2026
dca8147
fix: Apply temporary workaround for `/lib64/libm.so.6` and `/lib64/li…
wojciechormaniec-da May 27, 2026
84bbd56
chore: Init
ormaniec May 28, 2026
1bd8e9b
chore: Remove gcc toolchain
ormaniec May 28, 2026
cc84974
feat: Add llvm to the project
ormaniec May 28, 2026
4c00bc9
chore: Add improvement suggestion for `rules_haskell`
ormaniec May 28, 2026
1d58f4d
feat: Prepare make for multi-platform run
ormaniec May 28, 2026
e335cbd
feat: Add hermetic `@make//:make`
ormaniec May 29, 2026
60ed87f
fix: `@m4//:m4` build failures
ormaniec Jun 1, 2026
0cfc5f8
feat: Unify gnu tools building mechanism
ormaniec Jun 1, 2026
37f8fa4
fix: Remove dangling make reference from `@gmp`, `@zlib` and `@bzip2`
ormaniec Jun 1, 2026
828e6e6
tmp: Ignore base layer folder for ghc migration.
ormaniec Jun 10, 2026
7217cbe
chore: Cleanup the bazel folder structure
ormaniec Jun 12, 2026
445b6e3
feat: Add ghc fetch for linux amd64
ormaniec Jun 12, 2026
5c93ef7
feat: Setup action time install
ormaniec Jun 12, 2026
5452afe
feat: Implement initial pin system for haskell
ormaniec Jun 12, 2026
7e0ab0a
feat: Add full 35 dependencies to ghc
ormaniec Jun 12, 2026
04b066f
feat: Add check for stale packages and rename actions to `pin` and `c…
ormaniec Jun 12, 2026
8346220
feat: Add toolchain registration
ormaniec Jun 12, 2026
540073b
feat: Add `@gmp` in cc_library form
ormaniec Jun 12, 2026
26b0514
fix: Apply new launcher tools to rules_haskell
ormaniec Jun 15, 2026
1cf937d
feat: Register own toolchain for haskell
ormaniec Jun 15, 2026
8d5efac
feat: Apply toolchain scope for ncurses
ormaniec Jun 16, 2026
c843355
feat: Bundle libgmp
ormaniec Jun 17, 2026
384b675
wip: Grind the ghc build with `DefaultInfo`
ormaniec Jun 17, 2026
3904d5b
feat: Create simple ghc_toolchain declaration
ormaniec Jun 19, 2026
4f18a2a
feat: Refactor `ghc_bindist` to correctly align with new toolchain ap…
ormaniec Jun 19, 2026
8947205
fix: Move install step correctly to toolchain package
ormaniec Jun 19, 2026
127ba21
feat: Move gmp to ghc toolchain
ormaniec Jun 22, 2026
dfef39e
feat: Add gmp to rts
ormaniec Jun 22, 2026
7233d7b
feat: Move ncurses to rts for bundling
ormaniec Jun 22, 2026
b37f7e4
fix: Use correct version of `ncurses` (5.9) to avoid the link warnings
ormaniec Jun 22, 2026
c5705c5
wip: Unwire the launcher
ormaniec Jun 23, 2026
d8b00f3
fix: Incorrect path detected by ghc (and subs)
ormaniec Jun 23, 2026
fc25134
wip: Fix cc path failures
ormaniec Jun 24, 2026
4e957f6
wip: Wire in the `@zlib`
ormaniec Jun 24, 2026
18e8688
wip: Rewrite `fat_cc_library` to correctly wrap links
ormaniec Jun 24, 2026
b530b43
wip: Add temp cache patch to permanent implementation
ormaniec Jun 24, 2026
d9b53c5
fix: `@da-ghc//:ghc-lib` and `@da-ghc//:ghc-lib-parser` build
ormaniec Jun 24, 2026
50aeb38
fix: Add `@bzip2` explicitly to bindist
ormaniec Jun 24, 2026
63f6d44
wip: Fix lingering issues
ormaniec Jun 24, 2026
373c22b
feat: damlc fully migrated off the stock GHC bindist
ormaniec Jun 25, 2026
abc80fc
fix: Silence `-no-pie` spam
ormaniec Jun 25, 2026
fd18e47
tmp: Add short workaround for environ issue
ormaniec Jun 25, 2026
f61b7fc
fix: Silence old warning from gcc times
ormaniec Jun 25, 2026
ddc214f
fix: Long fetch time of da-ghc
ormaniec Jun 25, 2026
24e7798
fix: Remaining cold cache build issue
ormaniec Jun 25, 2026
a1933e0
wip: Patch out non-hermetic tool calls
ormaniec Jun 26, 2026
9ef17b1
fix: Force `rules_haskell` to accept hermetic python toolchain
ormaniec Jun 26, 2026
377d586
fix: Quick patch hermetic make build
ormaniec Jun 26, 2026
2144d9b
feat: Minor refactor of cc wrapping
ormaniec Jun 29, 2026
d6176a2
fix: Update stackage pin
ormaniec Jun 29, 2026
3f47de8
feat: Add compose for easier build start
ormaniec Jun 29, 2026
abaa331
fix: Hermeticity in `ghc_bindist`
ormaniec Jun 29, 2026
8f9fc6b
fix: Quick hack for ncurses detection
ormaniec Jun 29, 2026
61ab8a2
fix: Apply Cabal sysroot flag forward onto rules_haskell
ormaniec Jun 29, 2026
210ead6
fix: Container Cabal `string.h`/`crt`/`-lc` errors
ormaniec Jun 30, 2026
2876cfd
fix: Workaround environ issue
ormaniec Jun 30, 2026
9f2d69b
wip: Patch haskell cc_wrapper
ormaniec Jul 1, 2026
7172282
fix: Replaced the file-based text detection with `grep -Iq .`
ormaniec Jul 1, 2026
d3cb958
fix: Link libz correctly
ormaniec Jul 1, 2026
b864c83
fix: Add missing `-fuse-ld=lld`
ormaniec Jul 1, 2026
83f215b
wip: Fix RPath issues
ormaniec Jul 1, 2026
725ca84
wip: Container finished the build with `0`
ormaniec Jul 1, 2026
f6481a7
feat: Add generated `post-mortem.md`
ormaniec Jul 1, 2026
aed063b
feat: Rip the dev-env off
ormaniec Jul 1, 2026
5164243
fix: Local build should not latch on existing lld
ormaniec Jul 2, 2026
25577af
feat: Remove WORKSPACE era leftovers
ormaniec Jul 2, 2026
99971c3
feat: Introduce `REPO.bazel` and remove `.bazelignore`
ormaniec Jul 2, 2026
0834162
feat: Use modern bazel standard for `BUILD.bazel`
ormaniec Jul 2, 2026
e480835
fix: `host` is deprecated, changed to expected `exec`
ormaniec Jul 2, 2026
9b52863
fix: Apply delayed migration step
ormaniec Jul 2, 2026
c1d4e42
feat: Freeze llvm to 22.1.8
ormaniec Jul 6, 2026
87ef825
fix: Insert hot cheap fix for bazel randomly sourcing host root
ormaniec Jul 6, 2026
14fff34
fix: Align with main
ormaniec Jul 7, 2026
50c5762
fix: The buildifier teset
ormaniec Jul 9, 2026
6c15996
fix: Tools missing from `external-call-test-v2.dev`
ormaniec Jul 9, 2026
d3c4fa4
fix: Apply temporary (we all know how it ends) fix for environ
wojciechormaniec-da Jul 9, 2026
ab881e5
fix: Address most of `JAVA_HOME` issues
wojciechormaniec-da Jul 9, 2026
678e02d
fix: `pnpm` error during test
wojciechormaniec-da Jul 10, 2026
2c0b2e3
fix: Package test issue
wojciechormaniec-da Jul 10, 2026
0c05216
fix: enivron issue continuation
wojciechormaniec-da Jul 13, 2026
209db35
fix: Patch-out the sigsegv caused by bazel falling back to os libgmp
wojciechormaniec-da Jul 14, 2026
3464ea1
wip: environ issue continuation
wojciechormaniec-da Jul 14, 2026
d6a5408
wip: Add `gmp.so.10` to fix hermetic leakage
wojciechormaniec-da Jul 15, 2026
a25380c
fix: Correct the old path for python wrapper
wojciechormaniec-da Jul 15, 2026
c2908d4
fix: Read-only `$HOME/.cache/daml` in sandbox
wojciechormaniec-da Jul 15, 2026
1905778
fix: Stale dpm versions
wojciechormaniec-da Jul 15, 2026
2334676
fix: Apply safe guard for incorrect bundle (do not bundle things from…
wojciechormaniec-da Jul 16, 2026
1591c37
feat: Up the `@patchelf`
wojciechormaniec-da Jul 16, 2026
9a36b4d
fix: Add timeouts to tests to silence the moderate warnings
wojciechormaniec-da Jul 16, 2026
0448379
fix: `experimental_strict_action_env` -> `incompatible_strict_action_…
wojciechormaniec-da Jul 16, 2026
d1dfe77
fix: `bazelisk mod tidy`
wojciechormaniec-da Jul 16, 2026
502d843
fix: stray `\` warning in the output
wojciechormaniec-da Jul 16, 2026
28ebc70
fix: Added `cf_cv_gcc_inline=no` to `tinfo`'s `configure_flags`
wojciechormaniec-da Jul 16, 2026
b89b782
wip: Silence `-Wunused-command-line-argument` in the toolchain wrappers
wojciechormaniec-da Jul 17, 2026
4035ef6
feat: Up the packages
wojciechormaniec-da Jul 17, 2026
a48f849
feat: Up the protobuf to 32.1
wojciechormaniec-da Jul 17, 2026
ceeeb2e
fix: Silence not connected warnings from cpp
wojciechormaniec-da Jul 17, 2026
917076c
fix: `ghci binary is not available for`
wojciechormaniec-da Jul 17, 2026
5341f81
fix: libt/libtinfo issue
wojciechormaniec-da Jul 20, 2026
4c4260c
fix: Propagate java through rpath
wojciechormaniec-da Jul 21, 2026
81a5122
fix: rpath python
wojciechormaniec-da Jul 21, 2026
d0ebcb9
chore: Up the `dpm.version.bzl`
wojciechormaniec-da Aug 6, 2026
a450995
feat: Fix test failures after rebase by upping protobuf and grpc baze…
wojciechormaniec-da Aug 7, 2026
84bdbf7
feat: Apply some Unix alignments
wojciechormaniec-da Aug 7, 2026
1c1096d
fix: Apply buildifier requested fixes
wojciechormaniec-da Aug 7, 2026
f941a1b
fix: Split pins for each platform
wojciechormaniec-da Aug 7, 2026
e570c66
fix: Apply sed fix for MacOs
wojciechormaniec-da Aug 7, 2026
adea267
feat: Add LLVM 12 workaround for arm64
wojciechormaniec-da Aug 7, 2026
fc13cea
fix: `ld` issue on darwin
wojciechormaniec-da Aug 7, 2026
0e1e3b5
feat: Native Haskell now compiles+links on M1
wojciechormaniec-da Aug 8, 2026
d422c8d
feat: Enable `//libs-haskell/bazel-runfiles:bazel-runfiles` build
wojciechormaniec-da Aug 10, 2026
809ff0e
fix: `--gc-section` inference
wojciechormaniec-da Aug 10, 2026
84d78a2
fix: enable `libffi` for macos
wojciechormaniec-da Aug 10, 2026
004c3ac
fix: Portable job count and in-place sed in from-source build rules
wojciechormaniec-da Aug 11, 2026
2a0d6d9
wip: Acknowledge issues with job counter
wojciechormaniec-da Aug 11, 2026
e8a7d54
fix: Replace GNU-only coreutils flags in build rules
wojciechormaniec-da Aug 11, 2026
323e4bc
fix: Build daml-finance sample tarballs with hermetic tar
wojciechormaniec-da Aug 11, 2026
bd9ab76
fix: Remove python dependency from packaging scripts on macOS
wojciechormaniec-da Aug 11, 2026
c4087a8
fix: Skip dyld shared cache libraries when bundling on macOS
wojciechormaniec-da Aug 11, 2026
104cf03
feat: Use system ncurses on macOS in place of the deb9 libtinfo build
wojciechormaniec-da Aug 11, 2026
3c5c5c8
fix: Keep the linker's Mach-O signature intact on macOS
wojciechormaniec-da Aug 11, 2026
d40ed94
fix: Generate ghc-lib sdists on macOS
wojciechormaniec-da Aug 11, 2026
0083165
fix: Correct the macOS ghc-pkg path in damlc
wojciechormaniec-da Aug 11, 2026
a8717a8
chore: Load cc_common explicitly from rules_cc
wojciechormaniec-da Aug 11, 2026
e69260d
wip: Add generated git status
wojciechormaniec-da Aug 11, 2026
6a92719
wip: Add LLM generated notes to not forget remaining issues
wojciechormaniec-da Aug 11, 2026
e18e30d
fix: /Users/ormaniec/work/code/tms/digitalasset/daml/sdk issues in tests
wojciechormaniec-da Aug 12, 2026
e859a06
fix: Mac specific issues
wojciechormaniec-da Aug 12, 2026
609c1f2
fix: Add workaround for m1
wojciechormaniec-da Aug 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
501 changes: 251 additions & 250 deletions ci/build.yml

Large diffs are not rendered by default.

59 changes: 59 additions & 0 deletions ci/install-bazelisk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Copyright (c) 2026 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# Installs Bazelisk to $HOME/.local/bin and prepends that directory to PATH for
# the remaining steps of the job. The concrete Bazel version Bazelisk launches
# is selected by sdk/.bazelversion (`7.x` at the time of writing), so this
# template only pins Bazelisk itself.
#
# Bazelisk caches downloaded Bazel binaries under $HOME/.cache/bazelisk, which
# is preserved across runs on the persistent self-hosted agents but will need a
# cache strategy if/when these jobs move to ephemeral containers.

parameters:
- name: version
type: string
default: '1.29.0'
- name: sha256_linux_amd64
type: string
default: '5a408715e932c0250d28bd84555f12edbf70117de42f9181691c736eacc4a992'
- name: sha256_linux_arm64
type: string
default: 'e20e8b0f4f240091b7a55bf17b9398bd4f40ee70ae0208dff95dd4c445fb4010'

steps:
- bash: |
set -euo pipefail

VERSION='${{ parameters.version }}'
BIN_DIR="$HOME/.local/bin"
mkdir -p "$BIN_DIR"

arch="$(uname -m)"
case "$arch" in
x86_64|amd64)
asset='bazelisk-linux-amd64'
expected_sha='${{ parameters.sha256_linux_amd64 }}'
;;
aarch64|arm64)
asset='bazelisk-linux-arm64'
expected_sha='${{ parameters.sha256_linux_arm64 }}'
;;
*)
echo "Unsupported architecture: $arch" >&2
exit 1
;;
esac

url="https://github.com/bazelbuild/bazelisk/releases/download/v${VERSION}/${asset}"
tmp="$(mktemp)"
trap 'rm -f "$tmp"' EXIT

curl -sSfL "$url" -o "$tmp"
echo "${expected_sha} ${tmp}" | sha256sum -c -

install -m 0755 "$tmp" "$BIN_DIR/bazel"
ln -sf "$BIN_DIR/bazel" "$BIN_DIR/bazelisk"

echo "##vso[task.prependpath]$BIN_DIR"
displayName: 'Install Bazelisk ${{ parameters.version }}'
9 changes: 4 additions & 5 deletions ci/prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
# required for collect_build_data
- job: release
condition: false

- job: notify_release_pr
displayName: "Notify Slack about release PR"
condition: and(not(canceled()),
Expand All @@ -49,9 +49,9 @@ jobs:
eq(dependencies.check_for_release.outputs['out.is_release'], 'true'))
dependsOn:
- git_sha
- collect_build_data
# - collect_build_data
- check_for_release
- platform_independence_test
# - platform_independence_test
pool:
name: 'ubuntu_20_04'
demands: assignment -equals default
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
eq(variables['System.PullRequest.IsFork'], 'False'))
dependsOn:
- git_sha
- collect_build_data
# - collect_build_data
- check_for_release
pool:
name: 'ubuntu_20_04'
Expand Down Expand Up @@ -160,4 +160,3 @@ jobs:
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: "Trigger self-service compatibility test"

9 changes: 0 additions & 9 deletions sdk/.bazelignore

This file was deleted.

1 change: 0 additions & 1 deletion sdk/.bazeliskrc

This file was deleted.

119 changes: 96 additions & 23 deletions sdk/.bazelrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
common --noenable_bzlmod
common --enable_bzlmod
common --noenable_workspace
# Apply build:linux / build:darwin / build:windows automatically based on host OS,
# so platform-specific flags (including BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1) take
# effect even when --config=linux is not passed explicitly.
common --enable_platform_specific_config

# Bazel distributed cache, can be temporarily disabled by passing the following
# flag: --noremote_accept_cached
Expand All @@ -7,7 +12,6 @@ build:linux --remote_cache=https://bazel-cache.da-ext.net/202405/ubuntu
# Don't push local build results to the remote cache.
build --remote_upload_local_results=false
# Do still push local build results to the local disk cache.
build --incompatible_remote_results_ignore_disk=true
# Enable the disk cache in addition to the http cache.
build:linux --disk_cache=.bazel-cache/disk
build:darwin --disk_cache=.bazel-cache/disk
Expand All @@ -23,28 +27,25 @@ sync:darwin --repository_cache=.bazel-cache/repo

test:oracle --repo_env DAML_ORACLE_TESTING=true --test_env ORACLE_USERNAME --test_env ORACLE_PORT --test_env ORACLE_PWD

# set c++ compilation version to 14 (requiered for abseil)
build --cxxopt=-std=c++14
build --host_cxxopt=-std=c++14
# set c++ compilation version to 14 (requiered for abseil) -> 17 for new version
build --cxxopt=-std=c++17
build --host_cxxopt=-std=c++17

# Improve remote cache hit rate by exluding environment variables from the
# sandbox that are not whitelisted using --action_env.
# This will become the default in a future Bazel release.
build --experimental_strict_action_env
build --incompatible_strict_action_env

# Drop the heap size of Bazel to 3 GB and force TLS 1.2.
# With TLS 1.3, we run into the following error on Darwin.
# > No subject alternative DNS name matching github-releases.githubusercontent.com found.
# It looks like this is a result of SNI being broken on TLS 1.3 which results
# in us getting a certificate for githubassets.com instead.
startup --host_jvm_args=-Xms3g --host_jvm_args=-Xmx3g --host_jvm_args=-Djdk.tls.client.protocols=TLSv1.2
# Heap bumped to 8 GB max (from 3 GB) to avoid OOM during full //... builds (~23k actions) under bzlmod.
startup --host_jvm_args=-Xms4g --host_jvm_args=-Xmx8g --host_jvm_args=-Djdk.tls.client.protocols=TLSv1.2

# Limit the number of parallel actions spawned by Bazel to the number of
# physical CPUs. (Assuming a CPU with hyperthreading enabled)
build --loading_phase_threads="HOST_CPUS*.5"
fetch --loading_phase_threads="HOST_CPUS*.5"
query --loading_phase_threads="HOST_CPUS*.5"
sync --loading_phase_threads="HOST_CPUS*.5"
# physical CPUs. (Assuming a CPU with hyp,5"
build --local_resources=cpu="HOST_CPUS*.5"

# Enable sandboxing and caching for exclusive tests
Expand All @@ -68,17 +69,23 @@ test --strategy=Scalac=worker
# https://github.com/grpc/grpc/pull/13929/files
build --copt -DGRPC_BAZEL_BUILD

# build --java_language_version=17
# build:linux --java_runtime_version=nixpkgs_java_17
# build:linux --tool_java_runtime_version=nixpkgs_java_17
# build:darwin --java_runtime_version=nixpkgs_java_17
# build:darwin --tool_java_runtime_version=nixpkgs_java_17
# build:windows --java_runtime_version=17
# build:windows --tool_java_runtime_version=17
# build --tool_java_language_version=17

build --java_language_version=17
build:linux --java_runtime_version=nixpkgs_java_17
build:linux --tool_java_runtime_version=nixpkgs_java_17
build:darwin --java_runtime_version=nixpkgs_java_17
build:darwin --tool_java_runtime_version=nixpkgs_java_17
build:windows --java_runtime_version=17
build:windows --tool_java_runtime_version=17
build --tool_java_language_version=17

build --java_runtime_version=remotejdk_17
build --tool_java_runtime_version=remotejdk_17

# Propagate locales and the java home to the test environment.
build --test_env=LANG=en_US.utf8 --test_env=LOCALE_ARCHIVE --test_env=JAVA_HOME
build --test_env=LANG=C.UTF-8 --test_env=LOCALE_ARCHIVE --test_env=JAVA_HOME

# Disable c-ares support in grpc. We don't need a faster DNS library
# since we're only connecting to localhost.
Expand All @@ -96,14 +103,25 @@ build --action_env=GIT_SSL_CAINFO
build:linux --action_env=LOCALE_ARCHIVE
build:windows --action_env=JAVA_HOME

# Tell bazel to use the nixpkgs Haskell toolchain on Linux and Darwin
build:linux --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
build:darwin --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
# and GHC's gcc on Windows
# GHC's gcc on Windows
build:windows --crosstool_top=@rules_haskell_ghc_windows_amd64//:cc_toolchain
build:windows --remote_accept_cached=true
build:windows --jobs=4

# Tell @local_config_cc to skip host compiler detection. Our hermetic GCC
# toolchain registered in MODULE.bazel wins toolchain resolution for all
# modern C/C++ rules. @local_config_cc becomes a dummy repo; any target
# still referencing it directly will need to migrate to toolchain resolution.
build:linux --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1

# rules_haskell 1.0 still calls ctx.resolve_tools (disallowed by default on
# Bazel 8); re-enable until the proper patch lands (see migration plan, Phase 7).
build --noincompatible_disallow_ctx_resolve_tools

# `script` bootstrap = bash py_binary launchers that exec the hermetic
# interpreter from runfiles; the default `system_python` stub needs host python3.
build --@rules_python//python/config_settings:bootstrap_impl=script

# Instruct bazel to globally use this flag for compiling protobuf files.
# We need the source info for generating proto docs. By default proto_library strips
# source information and doesn't provide an option to turn this flag on.
Expand All @@ -124,4 +142,59 @@ test:windows --test_env=ComSpec
# to not compile them with optimizations.
build -c opt

# ----------------------------------------------------------------------------
# Silence noisy diagnostics from third-party dependencies.
#
# These are all upstream issues in grpc/protobuf/pigz; without these flags a
# full //... build emits ~4000 warning lines that drown out anything from our
# own code. Suppressing here keeps build logs readable without hiding warnings
# that would surface in first-party code (per_file_copt is scoped by regex,
# host_copt only affects exec-config compiles which build third-party tools).
#
# Why two flag families per warning:
# --per_file_copt -> applied to compiles in the *target* configuration
# --host_copt -> applied to compiles in the *exec/host* configuration
# (the "[for tool]" actions). --per_file_copt does NOT
# cover those, so without --host_copt about half the
# warnings still come through.
#
# What each suppression covers (counts from a sample full build):
# -Wattributes ~3258 lines, gRPC promise headers (loop.h,
# promise_factory.h, try_seq.h, call_state.h)
# -Wtrigraphs ~528 lines, gRPC function_signature.h macro
# "???()" interpreted as a trigraph
# -Wreturn-type ~62 lines, gRPC channelz.h non-exhaustive
# switch with no terminal return
# -Wdeprecated-declarations ~117 lines, protobuf calling its own deprecated
# FieldOptions::weak() accessor (mostly via
# generated _virtual_includes/.../helpers.h)
# -Wunused-variable / -Wunused-but-set-variable ~42 lines, vendored pigz
# try.h macros and pigz.c locals
# javac -Xlint:-options,-path ~14 lines, rules_scala bootstrap actions:
# obsolete --source/--target 8 and a missing
# scala-{library,reflect}.jar entry on the
# classpath of the rules_scala helper jars
#
# Intentionally NOT suppressed:
# javac [removal] in protobuf~/UnsafeUtil.java (AccessController) — this
# is a JDK 17+ deprecation-for-removal warning we want to keep visible so
# we get advance notice when the JDK actually drops the API. Add ",-removal"
# to the javacopt lines below to silence it if needed.
# ----------------------------------------------------------------------------
build --per_file_copt=external/grpc.*\.(cc|cpp|cxx|c)$@-Wno-attributes,-Wno-trigraphs,-Wno-return-type
build --per_file_copt=external/pigz.*\.(c|cc)$@-Wno-unused-variable,-Wno-unused-but-set-variable
build --per_file_copt=external/protobuf.*\.(cc|cpp|cxx|c)$@-Wno-deprecated-declarations
build --javacopt=-Xlint:-options,-path

build --host_copt=-Wno-unknown-warning-option
build --host_copt=-Wno-attributes
build --host_copt=-Wno-trigraphs
build --host_copt=-Wno-return-type
build --host_copt=-Wno-unused-variable
build --host_copt=-Wno-unused-but-set-variable
build --host_copt=-Wno-deprecated-declarations
build --host_javacopt=-Xlint:-options,-path

build:linux --linkopt=-no-pie

try-import %workspace%/.bazelrc.local
1 change: 1 addition & 0 deletions sdk/.bazelversion
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8.x
59 changes: 59 additions & 0 deletions sdk/.bzlregression/issues/001_libm_libmvec_sysroot_divergence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# 001 - libm/libmvec sysroot divergence (local vs container)

## Summary

Container builds fail during C/C++ link steps with:

- `ld: cannot find /lib64/libm.so.6`
- `ld: cannot find /lib64/libmvec.so.1`

while equivalent local builds can pass.

The issue reproduces in tool-link targets (for example, protobuf and pigz link actions) and is not tied to one user target.

## What we found

1. The toolchain is Bootlin-based and includes glibc linker scripts in sysroot.
2. Some linker scripts reference absolute paths such as `/lib64/libm.so.6` and `/lib64/libmvec.so.1`.
3. In sandboxed/container execution, these absolute paths may resolve against host/container root instead of the intended sysroot, depending on linker/script resolution context.
4. Local environment can mask the problem if host paths happen to exist; container environment exposes it.
5. This creates local/container divergence and violates hermeticity expectations.

## Why this is a regression risk

- Any fix that depends on host filesystem presence (`/lib64/...`) is environment-sensitive.
- Environment-sensitive behavior can pass on one machine and fail on another.
- The failure appears in external/tool actions, so target-by-target fixes are fragile.

## Recommended fix approach (when resuming)

### 1) Establish a minimal reproducible failing link action

- Use one stable container-scoped target that triggers the link failure.
- Capture exact linker argv with `--verbose_failures` and sandbox diagnostics.

### 2) Make toolchain linker script handling deterministic

- Normalize relevant glibc linker scripts in the fetched toolchain sysroot so absolute references are sysroot-aware (for example `=/...` semantics), implemented idempotently.
- Ensure rewrite is deterministic and does not double-prefix on repeated fetches.

### 3) Force consistent sysroot injection on all linker paths

- Ensure both `gcc`-driven and direct `ld`-driven paths get the same absolute sysroot.
- Keep this in the toolchain layer (wrappers/tool paths), not in individual targets.

### 4) Remove host-conditional behavior

- Avoid logic that changes behavior based on host path existence.
- A hermetic toolchain should behave the same in local and container contexts.

### 5) Add a regression guard

- Add a small validation check that fails if unresolved absolute `libm/libmvec` linker-script paths reappear.

### 6) Validate with 4-step gate

1. Local scoped build (green)
2. Local full build (green)
3. Container scoped build (no `libm/libmvec` missing signature)
4. Container full build (no `libm/libmvec` missing signature)
Loading
Loading