Skip to content

Commit 3a4fa50

Browse files
Merge pull request #2317 from brianaydemir/debug-rpm
Build a "debug" RPM for the Pelican client
2 parents 5fc0ad5 + 25f4389 commit 3a4fa50

2 files changed

Lines changed: 50 additions & 17 deletions

File tree

.goreleaser.yml

Lines changed: 49 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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

2222
release:
2323
prerelease: true
24+
2425
before:
2526
hooks:
2627
- go mod tidy
2728
- go generate ./...
2829
- make web-build
2930
builds:
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

109126
nfpms:
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:

images/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,7 @@ RUN /usr/bin/crb enable
634634
RUN --mount=type=cache,id=dnf-${TARGETPLATFORM},target=/var/cache/dnf,sharing=locked \
635635
dnf install -y --enablerepo=osg-contrib \
636636
cmake3 \
637+
delve \
637638
docker \
638639
gdb \
639640
gcc-c++ \

0 commit comments

Comments
 (0)