Accepting request 1144628 from home:jfkw:branches:server:http

- 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

OBS-URL: https://build.opensuse.org/request/show/1144628
OBS-URL: https://build.opensuse.org/package/show/server:http/caddy?expand=0&rev=44
This commit is contained in:
Alexandre Vicenzi 2024-02-06 15:10:28 +00:00 committed by Git OBS Bridge
parent aee71f07fa
commit 75bea2c98f
2 changed files with 34 additions and 14 deletions

View File

@ -1,3 +1,27 @@
-------------------------------------------------------------------
Tue Feb 6 13:22:22 UTC 2024 - Jeff Kowalczyk <jkowalczyk@suse.com>
- 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 <dimstar@opensuse.org> Tue Feb 6 08:23:06 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -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-12 _sharedstatedir was /usr/com, _localstatedir is /var as expected
# SLE-15+ _sharedstatedir is /var/lib, _localstatedir is /var # SLE-15+ _sharedstatedir is /var/lib, _localstatedir is /var
# _sharedstatedir used here as home directory for newly created user caddy # _sharedstatedir used here as home directory for newly created user caddy
@ -43,7 +39,6 @@ Source4: index.html
Source5: bash-completion Source5: bash-completion
Source6: zsh-completion Source6: zsh-completion
Source7: caddy.sysusers Source7: caddy.sysusers
BuildRequires: golang-packaging
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
BuildRequires: sysuser-tools BuildRequires: sysuser-tools
BuildRequires: golang(API) >= 1.20 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. the OSI model, though it has the ability to work with other layers.
%prep %prep
%setup -q %autosetup -a 1
%build %build
%{goprep} %{project} # Build the binary.
%ifnarch ppc64
export GOFLAGS="-buildmode=pie"
%endif
go build ./cmd/%{name}
# tarball causes "inconsistent vendoring" %check
tar -xf %{SOURCE1} # execute the binary as a basic check
./%{name} --help
CGO_ENABLED=0
go build -v -buildmode=pie -mod=vendor -ldflags "-s -w" -o caddy cmd/caddy/main.go
%sysusers_generate_pre %{SOURCE7} %{name} %{name}.conf %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 %{_sysusersdir}/%{name}.conf
%dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/Caddyfile %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 # filesystem owns all the parent directories here
%{_datadir}/bash-completion/completions/%{name} %{_datadir}/bash-completion/completions/%{name}
# own parent directories in case zsh is not installed # own parent directories in case zsh is not installed