diff --git a/caddy.changes b/caddy.changes index 474fdd7..7947dbc 100644 --- a/caddy.changes +++ b/caddy.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Tue Feb 6 13:22:22 UTC 2024 - Jeff Kowalczyk + +- Packaging improvements: + * Remove define github project name components no longer needed + * Remove define gname and uname for user and group creation, use + package name macro with identical value + * Drop BuildRequires: golang-packaging. The original macros for + file movements into GOPATH are obsolete with Go modules. Macro + go_nostrip is no longer needed with current binutils and Go. + * Use autosetup -a 1 to unpack source and vendored dependencies + * Drop export CGO_ENABLED="0". Use the default unless there is a + defined requirement or benefit. + * Build PIE with pattern that may become recommended procedure: + %%ifnarch ppc64 GOFLAGS="-buildmode=pie" %%endif go build + A go toolchain buildmode default config would be preferable + but none exist at this time. + * Drop mod=vendor, go1.14+ will detect vendor dir and auto-enable + * Remove ldflags -s (Omit symbol table and debug info) and -w + (Omit DWARF symbol table). This information is used to produce + separate debuginfo packages and binaries are stripped for + reduced size by GNU strip during RPM build. + * Add basic %check to execute binary --help + ------------------------------------------------------------------- Tue Feb 6 08:23:06 UTC 2024 - Dominique Leuenberger diff --git a/caddy.spec b/caddy.spec index 517f9ac..a9ca918 100644 --- a/caddy.spec +++ b/caddy.spec @@ -16,10 +16,6 @@ # -%define project github.com/caddyserver/caddy -%define gname caddy -%define uname caddy - # SLE-12 _sharedstatedir was /usr/com, _localstatedir is /var as expected # SLE-15+ _sharedstatedir is /var/lib, _localstatedir is /var # _sharedstatedir used here as home directory for newly created user caddy @@ -43,7 +39,6 @@ Source4: index.html Source5: bash-completion Source6: zsh-completion Source7: caddy.sysusers -BuildRequires: golang-packaging BuildRequires: systemd-rpm-macros BuildRequires: sysuser-tools BuildRequires: golang(API) >= 1.20 @@ -58,17 +53,18 @@ It operates primarily at L4 (transport layer) and L7 (application layer) of the OSI model, though it has the ability to work with other layers. %prep -%setup -q +%autosetup -a 1 %build -%{goprep} %{project} +# Build the binary. +%ifnarch ppc64 +export GOFLAGS="-buildmode=pie" +%endif +go build ./cmd/%{name} -# tarball causes "inconsistent vendoring" -tar -xf %{SOURCE1} - -CGO_ENABLED=0 - -go build -v -buildmode=pie -mod=vendor -ldflags "-s -w" -o caddy cmd/caddy/main.go +%check +# execute the binary as a basic check +./%{name} --help %sysusers_generate_pre %{SOURCE7} %{name} %{name}.conf @@ -117,7 +113,7 @@ install -D -p -m 0644 %{SOURCE6} %{buildroot}%{_datadir}/zsh/site-functions/_%{n %{_sysusersdir}/%{name}.conf %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/Caddyfile -%dir %attr(0750, %{uname}, %{gname}) %{_sharedstatedir}/%{name} +%dir %attr(0750, %{name}, %{name}) %{_sharedstatedir}/%{name} # filesystem owns all the parent directories here %{_datadir}/bash-completion/completions/%{name} # own parent directories in case zsh is not installed