From 0e32bc994a9357167fe2a8a9a9b7040d6b4616e1 Mon Sep 17 00:00:00 2001 From: xgopilot Date: Thu, 26 Feb 2026 02:35:25 +0000 Subject: [PATCH 1/2] feat(pigz): add madler/pigz llar formula Add build formula for pigz (parallel implementation of gzip). - Uses plain Makefile build system with zlib dependency - Installs pigz and unpigz binaries to bin/ - Uses semver version comparator for v2.x tags Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: MeteorsLiu <17515813+MeteorsLiu@users.noreply.github.com> --- madler/pigz/pigz_cmp.gox | 3 ++ madler/pigz/v2.4/pigz_llar.gox | 57 ++++++++++++++++++++++++++++++++++ madler/pigz/versions.json | 4 +++ 3 files changed, 64 insertions(+) create mode 100644 madler/pigz/pigz_cmp.gox create mode 100644 madler/pigz/v2.4/pigz_llar.gox create mode 100644 madler/pigz/versions.json diff --git a/madler/pigz/pigz_cmp.gox b/madler/pigz/pigz_cmp.gox new file mode 100644 index 0000000..a5c24cc --- /dev/null +++ b/madler/pigz/pigz_cmp.gox @@ -0,0 +1,3 @@ +compareVer (a, b) => { + return semver.Compare(a.Version, b.Version) +} diff --git a/madler/pigz/v2.4/pigz_llar.gox b/madler/pigz/v2.4/pigz_llar.gox new file mode 100644 index 0000000..d6c150c --- /dev/null +++ b/madler/pigz/v2.4/pigz_llar.gox @@ -0,0 +1,57 @@ +import "os" +import "path/filepath" + +id "madler/pigz" +fromVer "v2.4" + +onRequire (proj, deps) => { + deps.require "madler/zlib", "v1.2.11" +} + +onBuild (ctx, proj, out) => { + installDir, err := ctx.outputDir() + if err != nil { + out.addErr err + return + } + + zlibDir := "" + for _, dep := range proj.Deps { + depDir, err := ctx.outputDir(dep) + if err != nil { + out.addErr err + return + } + zlibDir = depDir + } + + src := ctx.SourceDir + cflags := "-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual -I" + filepath.Join(zlibDir, "include") + libs := "-L" + filepath.Join(zlibDir, "lib") + " -lm -lpthread -lz" + + exec "make", "-C", src, "pigz", "CFLAGS="+cflags, "LIBS="+libs + if lastErr != nil { + out.addErr lastErr + return + } + + // Install binaries manually (no make install target) + binDir := filepath.Join(installDir, "bin") + err = os.MkdirAll(binDir, 0755) + if err != nil { + out.addErr err + return + } + + exec "cp", filepath.Join(src, "pigz"), filepath.Join(binDir, "pigz") + if lastErr != nil { + out.addErr lastErr + return + } + + exec "ln", "-sf", "pigz", filepath.Join(binDir, "unpigz") + if lastErr != nil { + out.addErr lastErr + return + } +} diff --git a/madler/pigz/versions.json b/madler/pigz/versions.json new file mode 100644 index 0000000..3e4b043 --- /dev/null +++ b/madler/pigz/versions.json @@ -0,0 +1,4 @@ +{ + "path": "madler/pigz", + "deps": {} +} From 578eb376bd790bbfa7b920b9d4633f4eeb5e3467 Mon Sep 17 00:00:00 2001 From: xgopilot Date: Thu, 26 Feb 2026 02:39:26 +0000 Subject: [PATCH 2/2] refactor(pigz): use autotools instead of exec make Replace manual CFLAGS/LIBS injection via exec make with autotools.new() and a.use() to properly inject zlib dependency paths through CPPFLAGS/LDFLAGS. Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: MeteorsLiu <17515813+MeteorsLiu@users.noreply.github.com> --- madler/pigz/v2.4/pigz_llar.gox | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/madler/pigz/v2.4/pigz_llar.gox b/madler/pigz/v2.4/pigz_llar.gox index d6c150c..ad26f69 100644 --- a/madler/pigz/v2.4/pigz_llar.gox +++ b/madler/pigz/v2.4/pigz_llar.gox @@ -15,23 +15,20 @@ onBuild (ctx, proj, out) => { return } - zlibDir := "" + src := ctx.SourceDir + a := autotools.new(src, src+"/_build", installDir) for _, dep := range proj.Deps { depDir, err := ctx.outputDir(dep) if err != nil { out.addErr err return } - zlibDir = depDir + a.use depDir } - src := ctx.SourceDir - cflags := "-O3 -Wall -Wextra -Wno-unknown-pragmas -Wcast-qual -I" + filepath.Join(zlibDir, "include") - libs := "-L" + filepath.Join(zlibDir, "lib") + " -lm -lpthread -lz" - - exec "make", "-C", src, "pigz", "CFLAGS="+cflags, "LIBS="+libs - if lastErr != nil { - out.addErr lastErr + err = a.build() + if err != nil { + out.addErr err return }