Skip to content

Commit ed43da1

Browse files
committed
Add support for zlib-ng
1 parent 238f8c5 commit ed43da1

File tree

5 files changed

+48
-0
lines changed

5 files changed

+48
-0
lines changed

builder/builder.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ func (builder *Builder) name() string {
6161
}
6262
case ComponentZlib:
6363
name = "zlib"
64+
case ComponentZlibNG:
65+
name = "zlib-ng"
6466
case ComponentOpenResty:
6567
name = openresty.Name(builder.Version)
6668
case ComponentFreenginx:
@@ -89,6 +91,11 @@ func (builder *Builder) option() string {
8991
name = "pcre"
9092
}
9193

94+
// zlib-ng does not match option name
95+
if name == "zlib-ng" {
96+
name = "zlib"
97+
}
98+
9299
return fmt.Sprintf("--with-%s", name)
93100
}
94101

@@ -106,6 +113,8 @@ func (builder *Builder) DownloadURL() string {
106113
return builder.CustomURL
107114
case ComponentZlib:
108115
return fmt.Sprintf("%s/zlib-%s.tar.gz", ZlibDownloadURLPrefix, builder.Version)
116+
case ComponentZlibNG:
117+
return fmt.Sprintf("%s/%s.tar.gz", ZlibNGDownloadURLPrefix, builder.Version)
109118
case ComponentOpenResty:
110119
return fmt.Sprintf("%s/openresty-%s.tar.gz", OpenRestyDownloadURLPrefix, builder.Version)
111120
case ComponentFreenginx:
@@ -116,6 +125,9 @@ func (builder *Builder) DownloadURL() string {
116125
}
117126

118127
func (builder *Builder) SourcePath() string {
128+
if builder.name() == "" {
129+
return fmt.Sprintf("%s", builder.Version)
130+
}
119131
return fmt.Sprintf("%s-%s", builder.name(), builder.Version)
120132
}
121133

@@ -194,6 +206,8 @@ func MakeBuilder(component int, version string) Builder {
194206
builder.DownloadURLPrefix = LibreSSLDownloadURLPrefix
195207
case ComponentZlib:
196208
builder.DownloadURLPrefix = ZlibDownloadURLPrefix
209+
case ComponentZlibNG:
210+
builder.DownloadURLPrefix = ZlibNGDownloadURLPrefix
197211
case ComponentOpenResty:
198212
builder.DownloadURLPrefix = OpenRestyDownloadURLPrefix
199213
case ComponentFreenginx:

builder/builder_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ func setupBuilders(t *testing.T) []Builder {
1212
builders[ComponentOpenSSL] = MakeLibraryBuilder(ComponentOpenSSL, OpenSSLVersion, true)
1313
builders[ComponentLibreSSL] = MakeLibraryBuilder(ComponentLibreSSL, LibreSSLVersion, true)
1414
builders[ComponentZlib] = MakeLibraryBuilder(ComponentZlib, ZlibVersion, false)
15+
builders[ComponentZlibNG] = MakeLibraryBuilder(ComponentZlibNG, ZlibNGVersion, false)
1516
builders[ComponentOpenResty] = MakeBuilder(ComponentOpenResty, OpenRestyVersion)
1617
builders[ComponentFreenginx] = MakeBuilder(ComponentFreenginx, FreenginxVersion)
1718
// Add custom SSL builder
@@ -52,6 +53,10 @@ func TestName(t *testing.T) {
5253
got: builders[ComponentZlib].name(),
5354
want: "zlib",
5455
},
56+
{
57+
got: builders[ComponentZlibNG].name(),
58+
want: "zlib-ng",
59+
},
5560
{
5661
got: builders[ComponentOpenResty].name(),
5762
want: "openresty",

builder/const.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ const (
3030
ZlibDownloadURLPrefix = "https://zlib.net"
3131
)
3232

33+
// zlib-ng
34+
const (
35+
ZlibNGVersion = "2.3.1"
36+
ZlibNGDownloadURLPrefix = "https://github.com/zlib-ng/zlib-ng/archive/refs/tags"
37+
)
38+
3339
// openResty
3440
const (
3541
OpenRestyVersion = "1.27.1.2"
@@ -52,5 +58,6 @@ const (
5258
ComponentLibreSSL
5359
ComponentCustomSSL
5460
ComponentZlib
61+
ComponentZlibNG
5562
ComponentMax
5663
)

nginx-build.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ func main() {
124124
openSSLStatic := nginxBuildOptions.Bools["openssl"].Enabled
125125
libreSSLStatic := nginxBuildOptions.Bools["libressl"].Enabled
126126
zlibStatic := nginxBuildOptions.Bools["zlib"].Enabled
127+
zlibNGStatic := nginxBuildOptions.Bools["zlib-ng"].Enabled
127128
clear := nginxBuildOptions.Bools["clear"].Enabled
128129
versionPrint := nginxBuildOptions.Bools["version"].Enabled
129130
versionsPrint := nginxBuildOptions.Bools["versions"].Enabled
@@ -141,6 +142,7 @@ func main() {
141142
openSSLVersion := nginxBuildOptions.Values["opensslversion"].Value
142143
libreSSLVersion := nginxBuildOptions.Values["libresslversion"].Value
143144
zlibVersion := nginxBuildOptions.Values["zlibversion"].Value
145+
zlibNGVersion := nginxBuildOptions.Values["zlibngversion"].Value
144146
openRestyVersion := nginxBuildOptions.Values["openrestyversion"].Value
145147
freenginxVersion := nginxBuildOptions.Values["freenginxversion"].Value
146148
patchOption := nginxBuildOptions.Values["patch-opt"].Value
@@ -243,6 +245,7 @@ func main() {
243245
}
244246

245247
zlibBuilder := builder.MakeLibraryBuilder(builder.ComponentZlib, *zlibVersion, *zlibStatic)
248+
zlibNGBuilder := builder.MakeLibraryBuilder(builder.ComponentZlibNG, *zlibNGVersion, *zlibNGStatic)
246249

247250
if *idempotent {
248251
builders := []builder.Builder{
@@ -417,6 +420,14 @@ func main() {
417420
}()
418421
}
419422

423+
if *zlibNGStatic {
424+
wg.Add(1)
425+
go func() {
426+
downloadAndExtractParallel(&zlibNGBuilder)
427+
wg.Done()
428+
}()
429+
}
430+
420431
wg.Add(1)
421432
go func() {
422433
downloadAndExtractParallel(&nginxBuilder)
@@ -471,6 +482,10 @@ func main() {
471482
dependencies = append(dependencies, builder.MakeStaticLibrary(&zlibBuilder))
472483
}
473484

485+
if *zlibNGStatic {
486+
dependencies = append(dependencies, builder.MakeStaticLibrary(&zlibNGBuilder))
487+
}
488+
474489
log.Printf("Generate configure script for %s.....", nginxBuilder.SourcePath())
475490

476491
if *pcreStatic && pcreBuilder.IsIncludeWithOption(nginxConfigure) {

option.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ func makeNginxBuildOptions() Options {
5858
argsBool["zlib"] = OptionBool{
5959
Desc: "embedded zlib staticlibrary",
6060
}
61+
argsBool["zlib-ng"] = OptionBool{
62+
Desc: "embedded zlib-ng staticlibrary",
63+
}
6164
argsBool["clear"] = OptionBool{
6265
Desc: "remove entries in working directory",
6366
}
@@ -115,6 +118,10 @@ func makeNginxBuildOptions() Options {
115118
Desc: "zlib version",
116119
Default: builder.ZlibVersion,
117120
}
121+
argsString["zlibngversion"] = OptionValue{
122+
Desc: "zlib-ng version",
123+
Default: builder.ZlibNGVersion,
124+
}
118125
argsString["openrestyversion"] = OptionValue{
119126
Desc: "openresty version",
120127
Default: builder.OpenRestyVersion,

0 commit comments

Comments
 (0)