11# ***************************************************************
22#
3- # Copyright (C) 2024 , Pelican Project, Morgridge Institute for Research
3+ # Copyright (C) 2025 , Pelican Project, Morgridge Institute for Research
44#
55# Licensed under the Apache License, Version 2.0 (the "License"); you
66# may not use this file except in compliance with the License. You may
@@ -21,13 +21,16 @@ version: 2
2121
2222release :
2323 prerelease : true
24+
2425before :
2526 hooks :
2627 - go mod tidy
2728 - go generate ./...
2829 - make web-build
2930builds :
30- - env :
31+ - &build-pelican
32+ id : pelican
33+ env :
3134 - CGO_ENABLED=0
3235 goos :
3336 - linux
@@ -37,37 +40,51 @@ builds:
3740 - " amd64"
3841 - " arm64"
3942 - " ppc64le"
40- id : " pelican"
4143 dir : ./cmd
4244 binary : pelican
4345 tags :
4446 - forceposix
4547 ldflags :
46- - -s -w -X github.com/pelicanplatform/pelican/version.commit={{.Commit}} -X github.com/pelicanplatform/pelican/version.date={{.Date}} -X github.com/pelicanplatform/pelican/version.builtBy=goreleaser -X github.com/pelicanplatform/pelican/version.version={{.Version}}
48+ - &ldflags-metadata
49+ -X github.com/pelicanplatform/pelican/version.commit={{.Commit}} -X github.com/pelicanplatform/pelican/version.date={{.Date}} -X github.com/pelicanplatform/pelican/version.builtBy=goreleaser -X github.com/pelicanplatform/pelican/version.version={{.Version}}
50+ - &ldflags-strip-symbols
51+ -s -w
4752 ignore :
4853 - goos : windows
4954 goarch : arm64
5055 - goos : windows
5156 goarch : ppc64le
5257 - goos : darwin
5358 goarch : ppc64le
54- # Set things up to build a second server binary that enables Lotman. Eventually
55- # we'll also use this to filter which modules are built into the binary.
56- - env :
59+
60+ # Build a `pelican` binary that includes debugging symbols.
61+ - << : *build-pelican
62+ id : pelican-debug
63+ gcflags :
64+ # From https://go.dev/doc/gdb: Disable inlining of function invocations.
65+ - all="-N"
66+ ldflags :
67+ - *ldflags-metadata
68+
69+ # Build a second, server binary that enables Lotman. Eventually, we'll
70+ # also use this to filter which modules are built into the binary.
71+ - id : pelican-server
72+ env :
5773 - CGO_ENABLED=0
5874 goos :
5975 - linux
6076 goarch :
6177 - " amd64"
6278 - " arm64"
63- id : " pelican-server"
6479 dir : ./cmd
6580 binary : pelican-server
6681 tags :
6782 - forceposix
6883 - lotman
6984 ldflags :
70- - -s -w -X github.com/pelicanplatform/pelican/version.commit={{.Commit}} -X github.com/pelicanplatform/pelican/version.date={{.Date}} -X github.com/pelicanplatform/pelican/version.builtBy=goreleaser -X github.com/pelicanplatform/pelican/version.version={{.Version}}
85+ - *ldflags-metadata
86+ - *ldflags-strip-symbols
87+
7188# Goreleaser complains if there's a different number of binaries built for different architectures
7289# in the same archive. Instead of plopping pelican-server in the same archive as pelican, split the
7390# builds into separate archives.
@@ -107,15 +124,16 @@ changelog:
107124 - Merge branch
108125
109126nfpms :
110- - package_name : pelican
127+ - &package-pelican
128+ id : pelican
129+ package_name : pelican
111130 builds :
112131 - pelican
113132 # Note that git tags like v7.0.0-rc.1 will be modified by goreleaser when building
114133 # rpms to be v7.0.0~rc.1-1. The tilde is a special character in RPM versioning that
115134 # signifies some version substring should be sorted as less than the rest of the version,
116135 # so that v7.0.0~rc.1-1 < v7.0.0-1.
117136 file_name_template : " {{ .ConventionalFileName }}"
118- id : pelican
119137 vendor : OSG Consortium
120138 homepage : https://pelicanplatform.org
121139 maintainer : Pelican Team <help@pelicanplatform.org>
@@ -256,10 +274,25 @@ nfpms:
256274 preinstall : " scripts/preinstall-alpine.sh"
257275 # end package pelican
258276
259- - package_name : pelican-osdf-compat
277+ - << : *package-pelican
278+ id : pelican-debug
279+ package_name : pelican-debug
280+ builds :
281+ - pelican-debug
282+ description : Command-line copy tool for the Open Science Data Federation (includes debug symbols)
283+ formats :
284+ - rpm
285+ provides :
286+ # brianaydemir 2025-05-15: Because some software, e.g., HTCSS, has
287+ # a version constraint on `pelican`, we need to include some version
288+ # here. However, I have found no way to refer to {{ .Version }}.
289+ - pelican = 7.16.1
290+ # end package pelican-debug
291+
292+ - id : pelican-osdf-compat
293+ package_name : pelican-osdf-compat
260294 builds : []
261295 file_name_template : " {{ .ConventionalFileName }}"
262- id : pelican-osdf-compat
263296 vendor : OSG Consortium
264297 homepage : https://pelicanplatform.org
265298 maintainer : Pelican Team <help@pelicanplatform.org>
@@ -344,13 +377,13 @@ nfpms:
344377 - " osdf-client (<< 7)"
345378 - " stashcp (<< 7)"
346379 - " condor-stash-plugin (<< 7)"
347- # end package pelican-osdf-compet
380+ # end package pelican-osdf-compat
348381
349- - package_name : pelican-server
382+ - id : pelican-server
383+ package_name : pelican-server
350384 builds :
351385 - pelican-server
352386 file_name_template : " {{ .ConventionalFileName }}"
353- id : pelican-server
354387 vendor : OSG Consortium
355388 homepage : https://pelicanplatform.org
356389 maintainer : Pelican Team <help@pelicanplatform.org>
@@ -419,7 +452,6 @@ nfpms:
419452 owner : root
420453 group : root
421454 mode : 0700
422-
423455 overrides :
424456 rpm :
425457 provides :
0 commit comments