diff --git a/.gitmodules b/.gitmodules index 04f0cfdf2c47..a8d55aad0a80 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "src/lib/snarky"] path = src/lib/snarky - url = https://github.com/o1-labs/snarky + url = https://github.com/glyh/snarky [submodule "src/lib/crypto/proof-systems"] path = src/lib/crypto/proof-systems url = https://github.com/o1-labs/proof-systems.git diff --git a/buildkite/src/Constants/DebianVersions.dhall b/buildkite/src/Constants/DebianVersions.dhall index e983ddf9eb38..b6d117cb26b0 100644 --- a/buildkite/src/Constants/DebianVersions.dhall +++ b/buildkite/src/Constants/DebianVersions.dhall @@ -10,7 +10,7 @@ let BuildFlags = ./BuildFlags.dhall let S = ../Lib/SelectFiles.dhall -let DebVersion = < Bookworm | Bullseye | Jammy | Focal > +let DebVersion = < Bookworm | Bullseye | Jammy | Focal | Noble > let capitalName = \(debVersion : DebVersion) @@ -19,6 +19,7 @@ let capitalName = , Bullseye = "Bullseye" , Jammy = "Jammy" , Focal = "Focal" + , Noble = "Noble" } debVersion @@ -29,6 +30,7 @@ let lowerName = , Bullseye = "bullseye" , Jammy = "jammy" , Focal = "focal" + , Noble = "noble" } debVersion @@ -49,13 +51,7 @@ let dependsOnStep = network}${profileSuffix}${BuildFlags.toSuffixUppercase buildFlag}" - in merge - { Bookworm = [ { name = name, key = "${step}-deb-pkg" } ] - , Bullseye = [ { name = name, key = "${step}-deb-pkg" } ] - , Jammy = [ { name = name, key = "${step}-deb-pkg" } ] - , Focal = [ { name = name, key = "${step}-deb-pkg" } ] - } - debVersion + in [ { name = name, key = "${step}-deb-pkg" } ] let dependsOn = \(debVersion : DebVersion) @@ -113,6 +109,7 @@ let dirtyWhen = , Bullseye = bullseyeDirtyWhen , Jammy = minimalDirtyWhen , Focal = minimalDirtyWhen + , Noble = minimalDirtyWhen } debVersion diff --git a/buildkite/src/Constants/DockerVersions.dhall b/buildkite/src/Constants/DockerVersions.dhall index eb2dfeb9600a..93bc99ca6914 100644 --- a/buildkite/src/Constants/DockerVersions.dhall +++ b/buildkite/src/Constants/DockerVersions.dhall @@ -6,7 +6,7 @@ let Network = ./Network.dhall let Docker : Type - = < Bookworm | Bullseye | Jammy | Focal > + = < Bookworm | Bullseye | Jammy | Focal | Noble > let capitalName = \(docker : Docker) @@ -15,6 +15,7 @@ let capitalName = , Bullseye = "Bullseye" , Jammy = "Jammy" , Focal = "Focal" + , Noble = "Noble" } docker @@ -25,6 +26,7 @@ let lowerName = , Bullseye = "bullseye" , Jammy = "jammy" , Focal = "focal" + , Noble = "noble" } docker @@ -42,39 +44,11 @@ let dependsOnStep = let key = "${Artifacts.lowerName binary}-${suffix}" - in merge - { Bookworm = - [ { name = - "${prefix}${capitalName - docker}${network}${profileSuffix}" - , key = key - } - ] - , Bullseye = - [ { name = - "${prefix}${capitalName - docker}${network}${profileSuffix}" - , key = key - } - ] - , Jammy = - [ { name = - "${prefix}${capitalName - docker}${network}${capitalName - docker}${profileSuffix}" - , key = key - } - ] - , Focal = - [ { name = - "${prefix}${capitalName - docker}${network}${capitalName - docker}${profileSuffix}" - , key = key - } - ] + in [ { name = + "${prefix}${capitalName docker}${network}${profileSuffix}" + , key = key } - docker + ] let dependsOn = \(docker : Docker) diff --git a/buildkite/src/Constants/Toolchain.dhall b/buildkite/src/Constants/Toolchain.dhall index 21cbde37fe56..4ea9c4c138ed 100644 --- a/buildkite/src/Constants/Toolchain.dhall +++ b/buildkite/src/Constants/Toolchain.dhall @@ -15,6 +15,7 @@ let runner = , Bullseye = RunInToolchain.runInToolchainBullseye , Jammy = RunInToolchain.runInToolchainBookworm , Focal = RunInToolchain.runInToolchainBullseye + , Noble = RunInToolchain.runInToolchainBullseye } debVersion @@ -35,6 +36,7 @@ let image = , Bullseye = ContainerImages.minaToolchainBullseye , Jammy = ContainerImages.minaToolchainBookworm , Focal = ContainerImages.minaToolchainBullseye + , Noble = ContainerImages.minaToolchainBullseye } debVersion diff --git a/buildkite/src/Jobs/Release/MinaArtifactNobleDevnet.dhall b/buildkite/src/Jobs/Release/MinaArtifactNobleDevnet.dhall new file mode 100644 index 000000000000..0bec41ca31ac --- /dev/null +++ b/buildkite/src/Jobs/Release/MinaArtifactNobleDevnet.dhall @@ -0,0 +1,27 @@ +let ArtifactPipelines = ../../Command/MinaArtifact.dhall + +let DebianVersions = ../../Constants/DebianVersions.dhall + +let Artifacts = ../../Constants/Artifacts.dhall + +let Pipeline = ../../Pipeline/Dsl.dhall + +let PipelineTag = ../../Pipeline/Tag.dhall + +let Network = ../../Constants/Network.dhall + +in Pipeline.build + ( ArtifactPipelines.pipeline + ArtifactPipelines.MinaBuildSpec::{ + , artifacts = + [ Artifacts.Type.Daemon + , Artifacts.Type.LogProc + , Artifacts.Type.Archive + , Artifacts.Type.Rosetta + , Artifacts.Type.ZkappTestTransaction + ] + , network = Network.Type.Devnet + , tags = [ PipelineTag.Type.Docker ] + , debVersion = DebianVersions.DebVersion.Noble + } + ) diff --git a/buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeBerkeley.dhall b/buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeBerkeley.dhall index c4ab6dc76a77..cce259093ad6 100644 --- a/buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeBerkeley.dhall +++ b/buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeBerkeley.dhall @@ -19,7 +19,7 @@ in Pipeline.build , Artifacts.Type.TestExecutive , Artifacts.Type.Rosetta ] - , tags = [ PipelineTag.Type.Debian ] + , tags = [ PipelineTag.Type.Docker ] , channel = DebianChannel.Type.Experimental , prefix = "MinaArtifactOnlyDebian" } diff --git a/changes/17267.md b/changes/17267.md new file mode 100644 index 000000000000..1bfdc8e0db39 --- /dev/null +++ b/changes/17267.md @@ -0,0 +1 @@ +This PR introduce Ubuntu Noble Docker build & Debian package build diff --git a/dockerfiles/Dockerfile-mina-archive b/dockerfiles/Dockerfile-mina-archive index f340607992f6..1387f23de2ec 100644 --- a/dockerfiles/Dockerfile-mina-archive +++ b/dockerfiles/Dockerfile-mina-archive @@ -31,7 +31,6 @@ RUN apt-get update --quiet --yes \ curl \ jq \ dumb-init \ - libssl1.1 \ libgomp1 \ libpq-dev \ gnupg2 \ diff --git a/dockerfiles/Dockerfile-mina-daemon b/dockerfiles/Dockerfile-mina-daemon index 6288928a149d..c7edf5f0bd99 100644 --- a/dockerfiles/Dockerfile-mina-daemon +++ b/dockerfiles/Dockerfile-mina-daemon @@ -26,6 +26,7 @@ ENV DEBIAN_FRONTEND noninteractive # libffi7 # libprocps8 # libjemalloc2 +# libssl # Dependencies RUN apt-get update --quiet --yes \ @@ -41,7 +42,6 @@ RUN apt-get update --quiet --yes \ jq \ libgmp10 \ libgomp1 \ - libssl1.1 \ libpq-dev \ procps \ python3 \ @@ -63,8 +63,8 @@ RUN echo "Building image with version $deb_version from repo $deb_release $deb_c && echo "deb [trusted=yes] ${deb_repo} $deb_codename $deb_release" > /etc/apt/sources.list.d/o1.list \ && apt-get update --quiet --yes \ && apt-get install --quiet --yes --allow-downgrades "${MINA_DEB}=$deb_version" \ - && apt-get install --quiet --yes --allow-downgrades "mina-create-legacy-genesis=1.4.0beta2-compatible-97f7d8c" \ && rm -rf /var/lib/apt/lists/* + # && apt-get install --quiet --yes --allow-downgrades "mina-create-legacy-genesis=1.4.0beta2-compatible-97f7d8c" \ # Move to a non-root UID in the future (specifically 50000, as it is memorable and safely within the bounds of most systems) diff --git a/dockerfiles/Dockerfile-mina-rosetta b/dockerfiles/Dockerfile-mina-rosetta index f2aa2350b1ea..54d91fee755d 100644 --- a/dockerfiles/Dockerfile-mina-rosetta +++ b/dockerfiles/Dockerfile-mina-rosetta @@ -26,6 +26,7 @@ ENV DEBIAN_FRONTEND noninteractive # libffi7 # libprocps8 # libjemalloc2 +# libssl # --- Dependencies across many platforms @@ -43,7 +44,6 @@ RUN apt-get update --quiet --yes \ gnupg2 \ libgmp10 \ libgomp1 \ - libssl1.1 \ tzdata \ jq \ git \ diff --git a/dockerfiles/Dockerfile-zkapp-test-transaction b/dockerfiles/Dockerfile-zkapp-test-transaction index 2f34bac8333e..f80bdd417f16 100644 --- a/dockerfiles/Dockerfile-zkapp-test-transaction +++ b/dockerfiles/Dockerfile-zkapp-test-transaction @@ -18,7 +18,6 @@ RUN apt-get -y update \ curl \ jq \ dumb-init \ - libssl1.1 \ apt-transport-https \ ca-certificates \ dnsutils \ diff --git a/opam.export b/opam.export index c87564a4390b..cc78051a6c86 100644 --- a/opam.export +++ b/opam.export @@ -88,7 +88,7 @@ installed: [ "conf-g++.1.0" "conf-gmp.2" "conf-libffi.2.0.0" - "conf-libssl.2" + "conf-libssl.3" "conf-m4.1" "conf-perl.1" "conf-pkg-config.1.1" diff --git a/scripts/debian/builder-helpers.sh b/scripts/debian/builder-helpers.sh index a11a1aac9020..ff8452ee0951 100755 --- a/scripts/debian/builder-helpers.sh +++ b/scripts/debian/builder-helpers.sh @@ -18,23 +18,28 @@ cd "${SCRIPTPATH}/../../_build" GITHASH=$(git rev-parse --short=7 HEAD) GITHASH_CONFIG=$(git rev-parse --short=8 --verify HEAD) -# Set dependencies based on debian release -SHARED_DEPS="libssl1.1, libgmp10, libgomp1, tzdata, rocksdb-tools" - SUGGESTED_DEPS="jq, curl, wget" TEST_EXECUTIVE_DEPS=", mina-logproc, python3, docker" case "${MINA_DEB_CODENAME}" in + noble) + SHARED_DEPS="libssl3t64, libgmp10, libgomp1, tzdata, rocksdb-tools" + DAEMON_DEPS=", libffi8, libjemalloc2, libpq-dev, libproc2-0 , mina-logproc" + ARCHIVE_DEPS="libssl3t64, libgomp1, libpq-dev, libjemalloc2" + ;; bookworm|jammy) + SHARED_DEPS="libssl1.1, libgmp10, libgomp1, tzdata, rocksdb-tools" DAEMON_DEPS=", libffi8, libjemalloc2, libpq-dev, libprocps8, mina-logproc" ARCHIVE_DEPS="libssl1.1, libgomp1, libpq-dev, libjemalloc2" ;; bullseye|focal) + SHARED_DEPS="libssl1.1, libgmp10, libgomp1, tzdata, rocksdb-tools" DAEMON_DEPS=", libffi7, libjemalloc2, libpq-dev, libprocps8, mina-logproc" ARCHIVE_DEPS="libssl1.1, libgomp1, libpq-dev, libjemalloc2" ;; stretch|bionic) + SHARED_DEPS="libssl1.1, libgmp10, libgomp1, tzdata, rocksdb-tools" DAEMON_DEPS=", libffi6, libjemalloc1, libpq-dev, libprocps6, mina-logproc" ARCHIVE_DEPS="libssl1.1, libgomp1, libpq-dev, libjemalloc1" ;; diff --git a/scripts/debian/verify.sh b/scripts/debian/verify.sh index 2da013fffbb6..5bfe2a19d13c 100755 --- a/scripts/debian/verify.sh +++ b/scripts/debian/verify.sh @@ -52,8 +52,8 @@ SCRIPT=' export DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC \ ' case $CODENAME in - bullseye) DOCKER_IMAGE="debian:bullseye" ;; - focal) DOCKER_IMAGE="ubuntu:focal" ;; + bullseye) DOCKER_IMAGE="debian:$CODENAME" ;; + focal|noble) DOCKER_IMAGE="ubuntu:$CODENAME" ;; *) echo "❌ Unknown codename passed: $CODENAME"; exit 1;; esac diff --git a/scripts/docker/helper.sh b/scripts/docker/helper.sh index 0e85d32f4c43..cab8dd815536 100644 --- a/scripts/docker/helper.sh +++ b/scripts/docker/helper.sh @@ -6,7 +6,7 @@ export VALID_SERVICES=('mina-archive' 'mina-daemon' 'mina-rosetta' 'mina-test-su function export_base_image () { # Determine the proper image for ubuntu or debian case "${DEB_CODENAME##*=}" in - bionic|focal|impish|jammy) + bionic|focal|impish|jammy|noble) IMAGE="ubuntu:${DEB_CODENAME##*=}" ;; stretch|buster|bullseye|bookworm|sid) diff --git a/src/lib/snarky b/src/lib/snarky index a608ed9e5375..7f75faab380f 160000 --- a/src/lib/snarky +++ b/src/lib/snarky @@ -1 +1 @@ -Subproject commit a608ed9e5375f130a4c786f8e00b00b7ab7fd90f +Subproject commit 7f75faab380f63047e1cf9339a5264c89e521ba0