1- # dk - A terribly uninteresting build system
1+ # dk - A build system
22
33Motivating problem: You have technical users, many of whom are not software engineers. They need to customize your software on their own PCs.
44
@@ -92,7 +92,7 @@ We'll start explaining the build system by unpackaging the popular zip compressi
9292
9393---
9494
95- - [ dk - A terribly uninteresting build system] ( #dk---a-terribly-uninteresting -build-system )
95+ - [ dk - A build system] ( #dk---a-build-system )
9696 - [ Introduction] ( #introduction )
9797 - [ Concepts and Theory] ( #concepts-and-theory )
9898 - [ Theory] ( #theory )
@@ -135,7 +135,33 @@ This is *not* a toy problem! We would need the 7zip executable if our second tas
135135For unpacking the 7zip executables, we'll submit a form several times (each time with different parameters):
136136
137137``` console
138- $ dksrc/dk0 get-object ' CommonsBase_Std.S7z@25.1.0' -s Release.Darwin_x86_64 -m ./7zz.exe -f target/Darwin_x86_64.7zz.exe
138+ $ dksrc/dk0 --trial get-object ' CommonsBase_Std.S7z@25.1.0' -s Release.Darwin_x86_64 -m ./7zz.exe -f target/Darwin_x86_64.7zz.exe
139+ [signify] New build key pair in t/k/build.pub and t/k/build.sec ...
140+ [signify] Distribute key pair among trusted coworkers only!
141+ [progress]: dla CommonsBase_Std:Release.Darwin_arm64.x1g6onv7a.tracestore ...
142+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
143+ [progress]: dla CommonsBase_Std:Release.Darwin_x86_64.x1g6onv7a.tracestore ...
144+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
145+ [progress]: dla CommonsBase_Std:Release.Linux_x86.x1g6onv7a.tracestore ...
146+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
147+ [progress]: dla CommonsBase_Std:Release.Linux_x86_64.x1g6onv7a.tracestore ...
148+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
149+ [progress]: dla CommonsBase_Std:Release.Windows_x86.x1g6onv7a.tracestore ...
150+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
151+ [progress]: dla CommonsBase_Std:Release.Windows_x86_64.x1g6onv7a.tracestore ...
152+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
153+ [progress]: dla CommonsBase_Std:Release.Darwin_arm64.valuestore.zip ...
154+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
155+ [progress]: dla CommonsBase_Std:Release.Darwin_x86_64.valuestore.zip ...
156+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
157+ [progress]: dla CommonsBase_Std:Release.Linux_x86.valuestore.zip ...
158+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
159+ [progress]: dla CommonsBase_Std:Release.Linux_x86_64.valuestore.zip ...
160+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
161+ [progress]: dla CommonsBase_Std:Release.Windows_x86.valuestore.zip ...
162+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
163+ [progress]: dla CommonsBase_Std:Release.Windows_x86_64.valuestore.zip ...
164+ [progress]: dlb https://github.com/diskuv/dk/releases/download/2.4.202512170003 ...
139165[up-to-date] CommonsBase_Std.S7z@25.1.0+bn-20250101000000 -s Release.Darwin_x86_64
140166```
141167
@@ -1028,7 +1054,7 @@ The use of `7zr.exe` means we can only run this step on Windows hardware, even t
10281054
10291055<!-- $MDX os_type=Win32 -->
10301056``` console
1031- $ dksrc/dk0 -I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z3.MacLinux7zTar@25.1.0' -s Release.Linux_arm64 -d target/7ztar-linuxarm64
1057+ $ dksrc/dk0 --trial - I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z3.MacLinux7zTar@25.1.0' -s Release.Linux_arm64 -d target/7ztar-linuxarm64
10321058[up-to-date] OurZip_Demo.S7z3.MacLinux7zTar@25.1.0+bn-20250101000000 -s Release.Linux_arm64
10331059```
10341060
@@ -1128,7 +1154,7 @@ The use of `7z.exe` means we can only run this step on Windows hardware, even th
11281154
11291155<!-- $MDX os_type=Win32 -->
11301156``` console
1131- $ dksrc/dk0 -I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z4.MacLinux7zExe@25.1.0' -s Release.Darwin_x86_64 -d target/7zexe-macintel
1157+ $ dksrc/dk0 --trial - I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z4.MacLinux7zExe@25.1.0' -s Release.Darwin_x86_64 -d target/7zexe-macintel
11321158[up-to-date] OurZip_Demo.S7z4.MacLinux7zExe@25.1.0+bn-20250101000000 -s Release.Darwin_x86_64
11331159```
11341160
@@ -1213,7 +1239,7 @@ We have not yet provided an overall interface for the 7zip package. Let's do thi
12131239With that our users can grab the ` 7zz.exe ` executable for any operating system and CPU architecture:
12141240
12151241``` console
1216- $ dksrc/dk0 -I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z5.S7zExe@25.1.0' -s Release.Linux_x86_64 -d target/7z-linux64
1242+ $ dksrc/dk0 --trial - I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z5.S7zExe@25.1.0' -s Release.Linux_x86_64 -d target/7z-linux64
12171243[up-to-date] OurZip_Demo.S7z5.S7zExe@25.1.0+bn-20250101000000 -s Release.Linux_x86_64
12181244```
12191245
@@ -1227,7 +1253,7 @@ target/7z-linux64/7zz.exe: ELF 64-bit LSB pie executable, x86-64, version 1 (SYS
12271253Since ` 7zz.exe ` is a standalone executable that doesn't need any DLLs or ` .so ` (except standard GLIBC system libraries on Linux), we can use the ` -m MEMBER ` option to directly fetch the ` 7zz.exe ` executable:
12281254
12291255``` console
1230- $ dksrc/dk0 -I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z5.S7zExe@25.1.0' -s Release.Linux_x86_64 -m ./7zz.exe -f target/7zz.exe
1256+ $ dksrc/dk0 --trial - I 7zip-project -x 7zip-org:subpath: get-object ' OurZip_Demo.S7z5.S7zExe@25.1.0' -s Release.Linux_x86_64 -m ./7zz.exe -f target/7zz.exe
12311257[up-to-date] OurZip_Demo.S7z5.S7zExe@25.1.0+bn-20250101000000 -s Release.Linux_x86_64
12321258$ file target/7zz.exe
12331259target/7zz.exe: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=7a6c7a136fc4e7df4ddcd80d2aae72bc658ef822, for GNU/Linux 3.2.0, stripped
0 commit comments