@@ -53,45 +53,37 @@ PKG_FILES="$(dirname "$SCRIPT_DIR")"
5353ROOT_DIR=" $( dirname " $( dirname " $PKG_FILES " ) " ) "
5454PKG_CONFIG=" $PKG_FILES /config"
5555TEMP_BUILD_DIR=" ${SCRIPT_DIR} /TMP/build"
56+ UBUNTU_DEPS=" $ROOT_DIR /deps/finch-core/deps/ubuntu-deps.conf"
57+
58+ # load the ubuntu deps file
59+ source $UBUNTU_DEPS
5660
5761# finch daemon
5862FINCHD_PACKAGE=" github.com/runfinch/finch-daemon"
59- FINCHD_RELEASE=" 0.20.0"
60- FINCHD_COMMIT=" ef5d71ddf0a98f39f6ebcf0401b8706543c9f04e"
6163FINCHD_SRC=finch-daemon-" ${FINCHD_COMMIT} "
6264
6365# nerdctl
6466NERDCTL_PACKAGE=" github.com/containerd/nerdctl"
6567NERDCTL_MODULE=" github.com/containerd/nerdctl/v2"
66- NERDCTL_RELEASE=" 2.1.6"
67- NERDCTL_COMMIT=" 59253e9931873e79b92fe3400f14e69d6be34025"
6868NERDCTL_SRC=nerdctl-" ${NERDCTL_COMMIT} "
6969NERDCTL_VERSION=" v$( echo " $NERDCTL_RELEASE " | sed ' s/-.*//' ) "
7070
7171# buildkit
7272BUILDKIT_PACKAGE=" github.com/moby/buildkit"
73- BUILDKIT_RELEASE=" 0.24.0"
74- BUILDKIT_COMMIT=" b772c318368090fb2ffc9c0fed92e0a35bf82389"
7573BUILDKIT_SRC=buildkit-" ${BUILDKIT_COMMIT} "
7674BUILDKIT_VERSION=$( echo " $BUILDKIT_RELEASE " | sed ' s/-.*//' )
7775
7876# soci
7977SOCI_PACKAGE=" github.com/awslabs/soci-snapshotter"
80- SOCI_RELEASE=" 0.11.1"
81- SOCI_COMMIT=" 28781de6731978b2e2f0f43573a345e9fa14dbd1"
8278SOCI_SRC=soci-snapshotter-" ${SOCI_COMMIT} "
8379SOCI_GO_LDFLAGS=" -ldflags '-s -w -X ${SOCI_PACKAGE} /version.Version=v${SOCI_RELEASE} -X ${SOCI_PACKAGE} /version.Revision=${SOCI_COMMIT} '"
8480
8581# cni
8682CNI_PACKAGE=" github.com/containernetworking/plugins"
87- CNI_RELEASE=" 1.8.0"
88- CNI_COMMIT=" 0e648479e11c2c6d9109b14fc0c9ac64c677861b"
8983CNI_SRC=plugins-" ${CNI_COMMIT} "
9084
9185# cosign
9286COSIGN_PACKAGE=" github.com/sigstore/cosign"
93- COSIGN_RELEASE=" 2.2.3"
94- COSIGN_COMMIT=" 493e6e29e2ac830aaf05ec210b36d0a5a60c3b32"
9587COSIGN_SRC=cosign-" ${COSIGN_COMMIT} "
9688
9789# prep directories
@@ -152,71 +144,80 @@ popd
152144
153145# build dependencies and setup folder structure for each architecture
154146for arch in " ${BUILD_ARCHITECTURES[@]} " ; do
155- ARCH_DIR=" ${SCRIPT_DIR} /runfinch-finch_${VERSION} _${arch} "
156- mkdir -p $ARCH_DIR
157-
158- # setup finch directories
159- mkdir -p " $ARCH_DIR /bin"
160- mkdir -p " $ARCH_DIR /usr/bin"
161- mkdir -p " $ARCH_DIR /usr/local/bin"
162- mkdir -p " $ARCH_DIR /usr/libexec/finch"
163- mkdir -p " $ARCH_DIR /usr/libexec/finch/cni/bin"
164- mkdir -p " $ARCH_DIR /var/lib/finch/buildkit"
165- mkdir -p " $ARCH_DIR /var/lib/finch/soci"
166- mkdir -p " $ARCH_DIR /etc/finch/cni/net.d"
167- mkdir -p " $ARCH_DIR /etc/finch/nerdctl"
168- mkdir -p " $ARCH_DIR /etc/finch/buildkit"
169- mkdir -p " $ARCH_DIR /etc/finch/soci"
170- mkdir -p " $ARCH_DIR /etc/containerd"
171- mkdir -p " $ARCH_DIR /etc/systemd/system"
172-
173- # setup DEBIAN directory, control file, and cleanup scripts
174- mkdir -p " ${ARCH_DIR} /DEBIAN"
175- cp " $SCRIPT_DIR /control" " $ARCH_DIR /DEBIAN/control" && echo " Version: $VERSION " >> " $ARCH_DIR /DEBIAN/control"
176- sed " s/\$ {ARCH}/$arch /g" " $ARCH_DIR /DEBIAN/control" | sudo tee " $ARCH_DIR /DEBIAN/control" > /dev/null
177- cp " $SCRIPT_DIR /postrm" " $ARCH_DIR /DEBIAN/"
178- cp " $SCRIPT_DIR /prerm" " $ARCH_DIR /DEBIAN/"
179- chmod 755 " $ARCH_DIR /DEBIAN/prerm" " $ARCH_DIR /DEBIAN/postrm"
180-
181- # install finchd
182- sudo install -m 0755 " ${TEMP_BUILD_DIR} /${FINCHD_SRC} /bin/finch-daemon" " ${ARCH_DIR} /usr/libexec/finch/"
183- sudo install -m 0755 " ${TEMP_BUILD_DIR} /${FINCHD_SRC} /bin/docker-credential-finch" " ${ARCH_DIR} /usr/libexec/finch/"
184- sudo install -m 0644 " $PKG_CONFIG /finch.service" " $ARCH_DIR /etc/systemd/system/finch.service"
185- sudo install -m 0644 " $PKG_CONFIG /finch.yaml" " $ARCH_DIR /etc/finch"
186- sudo install -m 0644 " $PKG_CONFIG /finch.socket" " $ARCH_DIR /etc/systemd/system"
187-
188- # install nerdctl
189- sudo install -m 0755 -t " $ARCH_DIR /usr/libexec/finch" $TEMP_BUILD_DIR /$NERDCTL_SRC /_output/nerdctl*
190- sudo install -m 0644 " $PKG_CONFIG /nerdctl_ubuntu.toml" " $ARCH_DIR /etc/finch/nerdctl/nerdctl.toml"
191- sudo install -m 0644 " $PKG_CONFIG /nerdctl_ubuntu.toml" " $ARCH_DIR /etc/finch/finch.toml"
192-
193- # install buildkit
194- sudo install -m 0755 " $TEMP_BUILD_DIR /$BUILDKIT_SRC /_output/buildkitd" " $ARCH_DIR /usr/libexec/finch"
195- sudo install " $TEMP_BUILD_DIR /$BUILDKIT_SRC /_output/buildctl" " $ARCH_DIR /usr/libexec/finch"
196-
197- sudo install -m 0644 " $PKG_CONFIG /buildkitd.toml" " $ARCH_DIR /etc/finch/buildkit"
198- sudo install -m 0644 " $PKG_CONFIG /finch-buildkit.service" " $ARCH_DIR /etc/systemd/system"
199- sudo install -m 0644 " $PKG_CONFIG /finch-buildkit.socket" " $ARCH_DIR /etc/systemd/system"
200-
201- # install soci
202- sudo install " $TEMP_BUILD_DIR /$SOCI_SRC /out/soci" " $ARCH_DIR /usr/libexec/finch"
203- sudo install " $TEMP_BUILD_DIR /$SOCI_SRC /out/soci-snapshotter-grpc" " $ARCH_DIR /usr/libexec/finch"
204-
205- sudo install -m 0644 " $PKG_CONFIG /finch-soci.service" " $ARCH_DIR /etc/systemd/system"
206- sudo install -m 0644 " $PKG_CONFIG /finch-soci.socket" " $ARCH_DIR /etc/systemd/system"
207- sudo install -m 0644 " $PKG_CONFIG /soci-snapshotter-grpc.toml" " $ARCH_DIR /etc/finch/soci"
208-
209- # install cni
210- sudo install -t " $ARCH_DIR /usr/libexec/finch/cni/bin" $TEMP_BUILD_DIR /$CNI_SRC /bin/*
211-
212- # install cosign
213- sudo install -m 0755 " $TEMP_BUILD_DIR /$COSIGN_SRC /cosign" " $ARCH_DIR /usr/libexec/finch"
214-
215- # install finch cli
216- sudo install -m 0755 " $ROOT_DIR /_output/bin/finch" " $ARCH_DIR /usr/bin"
217-
218- # build deb
219- dpkg-deb --build --root-owner-group ${SCRIPT_DIR} /runfinch-finch_${VERSION} _${arch}
147+ ARCH_DIR=" ${SCRIPT_DIR} /runfinch-finch_${VERSION} _${arch} "
148+ mkdir -p $ARCH_DIR
149+
150+ # setup finch directories
151+ mkdir -p " $ARCH_DIR /bin"
152+ mkdir -p " $ARCH_DIR /usr/bin"
153+ mkdir -p " $ARCH_DIR /usr/local/bin"
154+ mkdir -p " $ARCH_DIR /usr/libexec/finch"
155+ mkdir -p " $ARCH_DIR /usr/libexec/finch/cni/bin"
156+ mkdir -p " $ARCH_DIR /var/lib/finch/buildkit"
157+ mkdir -p " $ARCH_DIR /var/lib/finch/soci"
158+ mkdir -p " $ARCH_DIR /etc/finch/cni/net.d"
159+ mkdir -p " $ARCH_DIR /etc/finch/nerdctl"
160+ mkdir -p " $ARCH_DIR /etc/finch/buildkit"
161+ mkdir -p " $ARCH_DIR /etc/finch/soci"
162+ mkdir -p " $ARCH_DIR /etc/containerd"
163+ mkdir -p " $ARCH_DIR /etc/systemd/system"
164+
165+ # setup DEBIAN directory, control file, and cleanup scripts
166+ mkdir -p " ${ARCH_DIR} /DEBIAN"
167+ cp " $SCRIPT_DIR /control" " $ARCH_DIR /DEBIAN/control" && echo " Version: $VERSION " >> " $ARCH_DIR /DEBIAN/control"
168+
169+ # replace ${ARCH} with the actual architecture
170+ sed " s/\$ {ARCH}/$arch /g" " $ARCH_DIR /DEBIAN/control" | sudo tee " $ARCH_DIR /DEBIAN/control" > /dev/null
171+ echo " Replaced arch value in control file with $arch "
172+
173+ # replace ${REQUIREMENTS} wit the actual requirements
174+ requirements=" containerd (>= $MIN_CONTAINERD_VERSION ), runc (>= $MIN_RUNC_VERSION )"
175+ sed " s/\$ {REQUIREMENTS}/$requirements /g" " $ARCH_DIR /DEBIAN/control" | sudo tee " $ARCH_DIR /DEBIAN/control" > /dev/null
176+ echo " Replaced requirements value in control file with $requirements "
177+
178+ cp " $SCRIPT_DIR /postrm" " $ARCH_DIR /DEBIAN/"
179+ cp " $SCRIPT_DIR /prerm" " $ARCH_DIR /DEBIAN/"
180+ chmod 755 " $ARCH_DIR /DEBIAN/prerm" " $ARCH_DIR /DEBIAN/postrm"
181+
182+ # install finchd
183+ sudo install -m 0755 " ${TEMP_BUILD_DIR} /${FINCHD_SRC} /bin/finch-daemon" " ${ARCH_DIR} /usr/libexec/finch/"
184+ sudo install -m 0755 " ${TEMP_BUILD_DIR} /${FINCHD_SRC} /bin/docker-credential-finch" " ${ARCH_DIR} /usr/libexec/finch/"
185+ sudo install -m 0644 " $PKG_CONFIG /finch.service" " $ARCH_DIR /etc/systemd/system/finch.service"
186+ sudo install -m 0644 " $PKG_CONFIG /finch.yaml" " $ARCH_DIR /etc/finch"
187+ sudo install -m 0644 " $PKG_CONFIG /finch.socket" " $ARCH_DIR /etc/systemd/system"
188+
189+ # install nerdctl
190+ sudo install -m 0755 -t " $ARCH_DIR /usr/libexec/finch" $TEMP_BUILD_DIR /$NERDCTL_SRC /_output/nerdctl*
191+ sudo install -m 0644 " $PKG_CONFIG /nerdctl_ubuntu.toml" " $ARCH_DIR /etc/finch/nerdctl/nerdctl.toml"
192+ sudo install -m 0644 " $PKG_CONFIG /nerdctl_ubuntu.toml" " $ARCH_DIR /etc/finch/finch.toml"
193+
194+ # install buildkit
195+ sudo install -m 0755 " $TEMP_BUILD_DIR /$BUILDKIT_SRC /_output/buildkitd" " $ARCH_DIR /usr/libexec/finch"
196+ sudo install " $TEMP_BUILD_DIR /$BUILDKIT_SRC /_output/buildctl" " $ARCH_DIR /usr/libexec/finch"
197+
198+ sudo install -m 0644 " $PKG_CONFIG /buildkitd.toml" " $ARCH_DIR /etc/finch/buildkit"
199+ sudo install -m 0644 " $PKG_CONFIG /finch-buildkit.service" " $ARCH_DIR /etc/systemd/system"
200+ sudo install -m 0644 " $PKG_CONFIG /finch-buildkit.socket" " $ARCH_DIR /etc/systemd/system"
201+
202+ # install soci
203+ sudo install " $TEMP_BUILD_DIR /$SOCI_SRC /out/soci" " $ARCH_DIR /usr/libexec/finch"
204+ sudo install " $TEMP_BUILD_DIR /$SOCI_SRC /out/soci-snapshotter-grpc" " $ARCH_DIR /usr/libexec/finch"
205+
206+ sudo install -m 0644 " $PKG_CONFIG /finch-soci.service" " $ARCH_DIR /etc/systemd/system"
207+ sudo install -m 0644 " $PKG_CONFIG /finch-soci.socket" " $ARCH_DIR /etc/systemd/system"
208+ sudo install -m 0644 " $PKG_CONFIG /soci-snapshotter-grpc.toml" " $ARCH_DIR /etc/finch/soci"
209+
210+ # install cni
211+ sudo install -t " $ARCH_DIR /usr/libexec/finch/cni/bin" $TEMP_BUILD_DIR /$CNI_SRC /bin/*
212+
213+ # install cosign
214+ sudo install -m 0755 " $TEMP_BUILD_DIR /$COSIGN_SRC /cosign" " $ARCH_DIR /usr/libexec/finch"
215+
216+ # install finch cli
217+ sudo install -m 0755 " $ROOT_DIR /_output/bin/finch" " $ARCH_DIR /usr/bin"
218+
219+ # build deb
220+ dpkg-deb --build --root-owner-group ${SCRIPT_DIR} /runfinch-finch_${VERSION} _${arch}
220221done
221222
222223# clean up
0 commit comments