Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
06c7147
feat(core): Add support for musllinux_1_2
jackluo923 Jun 30, 2025
e4adcf6
Add docs.
jackluo923 Jun 30, 2025
889f97d
Update tag for arm64
jackluo923 Jul 1, 2025
4998cd6
Rename directory to match other platforms
jackluo923 Jul 1, 2025
9b14097
Merge branch 'main' into musllinux_1_2
jackluo923 Jul 3, 2025
4edace6
Addressed code-rabbit review points.
jackluo923 Jul 3, 2025
fb47ca2
Addressed code-rabbit review points.
jackluo923 Jul 6, 2025
55dc329
Merge branch 'main' into musllinux_1_2
jackluo923 Jul 6, 2025
6be8932
Update components/core/tools/scripts/lib_install/musllinux_1_2/instal…
jackluo923 Jul 7, 2025
1112b85
Update components/core/tools/scripts/lib_install/musllinux_1_2/instal…
jackluo923 Jul 7, 2025
3c06cbf
Update docs/src/dev-guide/tooling-containers.md
jackluo923 Jul 7, 2025
56d3b92
Update components/core/tools/docker-images/clp-env-base-musllinux_1_2…
jackluo923 Jul 7, 2025
bedf84e
Removed comment regarding image flattening warning.
jackluo923 Jul 7, 2025
7b29331
Updated the docs related to the version of dependency task is install…
jackluo923 Jul 7, 2025
d34b315
Typo in comments in install-package-from-source.sh
jackluo923 Jul 7, 2025
c2c4a31
Update components/core/tools/docker-images/clp-env-base-musllinux_1_2…
jackluo923 Jul 7, 2025
5eea5f1
Merge branch 'main' into musllinux_1_2
jackluo923 Jul 9, 2025
987104c
Upgraded spdlog to 1.14.1, the latest version
jackluo923 Jul 11, 2025
8d2ed5d
Merge branch 'main' into musllinux_1_2
jackluo923 Jul 11, 2025
873b9dc
Update doc.
jackluo923 Jul 11, 2025
33d85e5
Resolve more code review issues.
jackluo923 Jul 12, 2025
2980a94
Merge branch 'main' into musllinux_1_2
jackluo923 Jul 14, 2025
6d9286b
Merge branch 'main' into musllinux_1_2
LinZhihao-723 Jul 14, 2025
d3a7817
Merge branch 'main' into musllinux_1_2
jackluo923 Jul 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions components/core/src/clp/SQLitePreparedStatement.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef CLP_SQLITEPREPAREDSTATEMENT_HPP
#define CLP_SQLITEPREPAREDSTATEMENT_HPP

#include <cstdint>
Comment thread
jackluo923 marked this conversation as resolved.
#include <string>

#include <sqlite3/sqlite3.h>
Expand Down
1 change: 1 addition & 0 deletions components/core/src/clp_s/Utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include <array>
#include <charconv>
#include <cstdint>
Comment thread
jackluo923 marked this conversation as resolved.
#include <cstring>
#include <sstream>
#include <string>
Expand Down
1 change: 1 addition & 0 deletions components/core/src/glt/SQLitePreparedStatement.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef GLT_SQLITEPREPAREDSTATEMENT_HPP
#define GLT_SQLITEPREPAREDSTATEMENT_HPP

#include <cstdint>
Comment thread
jackluo923 marked this conversation as resolved.
#include <string>

#include <sqlite3/sqlite3.h>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM quay.io/pypa/musllinux_1_2_aarch64
Comment thread
jackluo923 marked this conversation as resolved.

WORKDIR /root

RUN mkdir -p ./tools/scripts/lib_install
COPY ./tools/scripts/lib_install ./tools/scripts/lib_install

RUN ./tools/scripts/lib_install/musllinux_1_2/install-all.sh

# Remove cached files
RUN apk cache clean --all && rm -rf /var/cache/apk/* /tmp/* /var/tmp/*
Comment thread
jackluo923 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash

set -eu
set -o pipefail

Comment thread
jackluo923 marked this conversation as resolved.
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
component_root="${script_dir}/../../../"

build_cmd=(
docker buildx build
--platform linux/arm64
--tag clp-core-dependencies-aarch64-musllinux_1_2:dev
"$component_root"
--file "${script_dir}/Dockerfile"
--load
)
Comment thread
coderabbitai[bot] marked this conversation as resolved.

if command -v git >/dev/null && git -C "$script_dir" rev-parse --is-inside-work-tree >/dev/null ;
then
build_cmd+=(
--label "org.opencontainers.image.revision=$(git -C "$script_dir" rev-parse HEAD)"
--label "org.opencontainers.image.source=$(git -C "$script_dir" remote get-url origin)"
)
fi
Comment thread
coderabbitai[bot] marked this conversation as resolved.

echo "Running: ${build_cmd[*]}"
"${build_cmd[@]}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM quay.io/pypa/musllinux_1_2_x86_64 AS base

WORKDIR /root

RUN mkdir -p ./tools/scripts/lib_install
COPY ./tools/scripts/lib_install ./tools/scripts/lib_install
Comment thread
jackluo923 marked this conversation as resolved.

RUN ./tools/scripts/lib_install/musllinux_1_2/install-all.sh

# Remove cached files
RUN apk cache clean --all && rm -rf /var/cache/apk/* /tmp/* /var/tmp/*
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash

set -eu
set -o pipefail

script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
component_root="${script_dir}/../../../"

build_cmd=(
docker buildx build
--platform linux/amd64
--tag clp-core-dependencies-x86-musllinux_1_2:dev
"$component_root"
--file "${script_dir}/Dockerfile"
--load
)
Comment thread
coderabbitai[bot] marked this conversation as resolved.

if command -v git >/dev/null && git -C "$script_dir" rev-parse --is-inside-work-tree >/dev/null ;
then
build_cmd+=(
--label "org.opencontainers.image.revision=$(git -C "$script_dir" rev-parse HEAD)"
--label "org.opencontainers.image.source=$(git -C "$script_dir" remote get-url origin)"
)
fi
Comment thread
coderabbitai[bot] marked this conversation as resolved.

echo "Running: ${build_cmd[*]}"
"${build_cmd[@]}"
Comment thread
jackluo923 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash

set -eu
set -o pipefail

script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"

"${script_dir}/install-prebuilt-packages.sh"
"${script_dir}/install-packages-from-source.sh"

# TODO: https://github.com/y-scope/clp/issues/795
"${script_dir}/../check-cmake-version.sh"
Comment thread
jackluo923 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash

set -eu
set -o pipefail

script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
lib_install_scripts_dir="${script_dir}/.."

Comment thread
jackluo923 marked this conversation as resolved.
# NOTE: The remaining installation scripts depend on boost, so we install it beforehand.
"${lib_install_scripts_dir}/install-boost.sh" 1.87.0

# NOTE:
# 1. libarchive may statically link with LZMA, LZ4, and Zstandard, so we install them beforehand.
# 2. The versions of libarchive, LZMA, LZ4, and Zstandard available in musllinux_1_2's package
# repositories are either dated or don't include static libraries, so we install more recent
# versions from source.
"${lib_install_scripts_dir}/liblzma.sh" 5.8.1
"${lib_install_scripts_dir}/lz4.sh" 1.10.0
"${lib_install_scripts_dir}/zstandard.sh" 1.5.7
"${lib_install_scripts_dir}/libarchive.sh" 3.8.0

"${lib_install_scripts_dir}/msgpack.sh" 7.0.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env bash

set -eu
set -o pipefail

apk update && apk add --no-cache \
bzip2-dev \
bzip2-static \
curl-dev \
jq \
mariadb-connector-c-dev \
openjdk11-jdk \
openssl-dev \
zlib-dev \
zlib-static
Comment thread
jackluo923 marked this conversation as resolved.

# Determine architecture for `task` release to install
arch=$(uname -m)
case "$arch" in
"x86_64")
task_pkg_arch="amd64"
;;
"aarch64")
task_pkg_arch="arm64"
;;
*)
echo "Error: Unsupported architecture - $arch"
exit 1
;;
esac

# Install `task`
# NOTE: We lock `task` to a version < 3.43 to avoid https://github.com/y-scope/clp/issues/872
task_pkg_path=$(mktemp -t task-pkg.XXXXXXXXXX).tar.gz || exit 1
curl \
--fail \
--location \
--output "$task_pkg_path" \
Comment thread
jackluo923 marked this conversation as resolved.
--show-error \
"https://github.com/go-task/task/releases/download/v3.42.1/task_linux_${task_pkg_arch}.tar.gz"
tar -C /usr/local/bin -xzf "$task_pkg_path" task
chmod +x /usr/local/bin/task
rm "$task_pkg_path"

# Downgrade to CMake v3 to work around https://github.com/y-scope/clp/issues/795
pipx uninstall cmake
pipx install cmake~=3.31
Comment thread
jackluo923 marked this conversation as resolved.
4 changes: 2 additions & 2 deletions docs/src/dev-guide/components-core/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ The task will download, build, and install (within the build directory) the foll
| [ANTLR](https://www.antlr.org) | v4.13.2 |
| [Catch2](https://github.com/catchorg/Catch2.git) | v2.13.7 |
| [date](https://github.com/HowardHinnant/date.git) | v3.0.1 |
| [fmt](https://github.com/fmtlib/fmt) | v8.0.1 |
| [fmt](https://github.com/fmtlib/fmt) | v10.2.1 |
| [json](https://github.com/nlohmann/json.git) | v3.11.3 |
| [log-surgeon](https://github.com/y-scope/log-surgeon) | f801a3f |
| [mongo-cxx-driver](https://github.com/mongodb/mongo-cxx-driver) | r3.10.2 |
| [simdjson](https://github.com/simdjson/simdjson) | v3.13.0 |
| [spdlog](https://github.com/gabime/spdlog) | v1.9.2 |
| [spdlog](https://github.com/gabime/spdlog) | v1.14.1 |
Comment thread
jackluo923 marked this conversation as resolved.
| [SQLite3](https://www.sqlite.org/download.html) | v3.36.0 |
| [uftcpp](https://github.com/nemtrif/utfcpp.git) | v4.0.6 |
| [yaml-cpp](https://github.com/jbeder/yaml-cpp.git) | v0.7.0 |
Expand Down
27 changes: 27 additions & 0 deletions docs/src/dev-guide/tooling-containers.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,32 @@ distros using glibc 2.28+, including:
components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64
```

## clp-core-dependencies-&lt;arch&gt;-musllinux_1_2

Images containing the dependencies necessary to build CLP core in a [musllinux_1_2][musllinux_1_2]
environment (aarch64 or x86).

Binaries built on musllinux_1_2 (based on Alpine Linux 3.22) are expected to be compatible with
other distros using musl 1.2, including:

* Alpine Linux 3.13+

### clp-core-dependencies-aarch64-musllinux_1_2

* Path:

```text
components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64
```

### clp-core-dependencies-x86-musllinux_1_2

* Path:

```text
components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64
```

## clp-core-dependencies-x86-centos-stream-9

An image containing the dependencies necessary to build CLP core in a CentOS Stream 9 x86
Expand Down Expand Up @@ -113,3 +139,4 @@ environment.
[exe-ubuntu-jammy]: https://github.com/y-scope/clp/pkgs/container/clp%2Fclp-execution-x86-ubuntu-jammy
[gh-packages]: https://github.com/orgs/y-scope/packages?repo_name=clp
[manylinux_2_28]: https://github.com/pypa/manylinux?tab=readme-ov-file#manylinux_2_28-almalinux-8-based
[musllinux_1_2]: https://github.com/pypa/manylinux?tab=readme-ov-file#musllinux_1_2-alpine-linux-322-based-313-compatible
8 changes: 4 additions & 4 deletions taskfiles/deps/main.yaml
Comment thread
jackluo923 marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,8 @@ tasks:
- "-DFMT_DOC=OFF"
- "-DFMT_TEST=OFF"
LIB_NAME: "{{.G_FMT_LIB_NAME}}"
TARBALL_SHA256: "b06ca3130158c625848f3fb7418f235155a4d389b2abc3a6245fb01cb0eb1e01"
TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/8.0.1.tar.gz"
TARBALL_SHA256: "1250e4cc58bf06ee631567523f48848dc4596133e163f02615c97f78bab6c811"
TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/10.2.1.tar.gz"

log-surgeon:
internal: true
Expand Down Expand Up @@ -302,11 +302,11 @@ tasks:
- "-DSPDLOG_BUILD_EXAMPLE_HO=OFF"
- "-DSPDLOG_FMT_EXTERNAL=ON"
LIB_NAME: "spdlog"
TARBALL_SHA256: "6fff9215f5cb81760be4cc16d033526d1080427d236e86d70bb02994f85e3d38"
TARBALL_SHA256: "1586508029a7d0670dfcb2d97575dcdc242d3868a259742b69f100801ab4e16b"

# NOTE: Since spdlog depends on fmt, we need to choose a version of spdlog that's
# compatible with the version of fmt we use.
TARBALL_URL: "https://github.com/gabime/spdlog/archive/refs/tags/v1.9.2.tar.gz"
TARBALL_URL: "https://github.com/gabime/spdlog/archive/refs/tags/v1.14.1.tar.gz"

sqlite3:
internal: true
Expand Down