1
1
Fork 0
mirror of https://github.com/goreleaser/nfpm synced 2024-06-08 04:16:24 +02:00
Commit Graph

175 Commits

Author SHA1 Message Date
Carlos Alexandro Becker c2fe69eec0
fix: modtime (#758)
closes #757
2023-12-26 08:51:38 -03:00
Carlos Alexandro Becker 99bf0d0cf9
test: testifylint fixes (#753)
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-12-17 15:46:28 -03:00
Carlos Alexandro Becker 9c4fc0e886
feat: reproducible packages (#748)
* feat: allow to set a build date

defaults to $SOURCE_DATE_EPOCH

closes #744
closes #734

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: rename to mtime

* docs: fix systemd note

closes #739

* fix: improve arch packager

* fix: arch test

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: improve apk packager

* fix: improve deb special files

* fix: reuse keys func

* fix: deps

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-12-07 13:58:36 -03:00
Ramunas Keliuotis 60cff806c9
fix: Ensure reproducable Deb package (#747)
Each time building exaclty from the same source,
ensure exaclty the same size deb package is generated.

Signed-off-by: keliramu <ramunas.keliuotis@nordsec.com>
2023-12-05 22:58:38 -03:00
Adam Bouqdib 3485ec3eda
fix(deb): blank line in package description (#742) 2023-11-25 14:16:32 -03:00
Jeremy Gill 3aded351f4
feat: add minimal support for Debian pre-dependencies (#696)
* feat: add minimal support for Debian pre-dependencies

Basic support for adding 'Pre-Depends:' to Debian packages added.

* Make Predefined a debian-specific modification

Based on feedback from @caarlos0.

* Add some coverage of pre-depend Debian field in unit tests

* Update the configuration example to include Debian-specific predepends reference
2023-08-15 15:18:58 -03:00
Andrew Lytvynov 24a43c5ad7
feat: add support for remote signing keys (#695)
* feat: Add support for remote signing keys

When used as a library, `nfpm.PackageSignature.SignFn` can be set as an
alternative to `KeyFile`. This allows arbitrary signing key
implementations, like a remote signing server.

Updates https://github.com/tailscale/tailscale/issues/1882

* Update rpm/rpm_test.go

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-08-03 09:36:30 -03:00
Carlos Alexandro Becker d309eb6015
fix: windows issues (#690)
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-07-12 22:09:28 -03:00
Carlos Alexandro Becker 6c46ec3bcb
chore: fmt deb.go 2023-07-12 19:09:12 +00:00
Carlos Alexandro Becker e7812cdaff
test: close temp file 2023-07-12 19:07:34 +00:00
Carlos Alexandro Becker b6798f6b03
fix: add filename to error log
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-26 14:31:34 +00:00
Carlos Alexandro Becker 7d6a77bee6
test: fix arch tests 2023-05-24 02:42:13 +00:00
Carlos Alexandro Becker 9524bb8a26
fix: mips softfloat/hardfloat handling 2023-05-24 02:34:03 +00:00
Carlos Alexandro Becker 9ac328846c
fix: deb arm64
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-22 00:36:55 +00:00
Carlos Alexandro Becker 6dc5db365b
test: fix deb/rpm tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2023-05-21 23:05:10 +00:00
Carlos Alexandro Becker 312fd85338
fix: improve goarch to pkg conversion
also added tests

refs https://github.com/goreleaser/goreleaser/issues/3998
2023-05-18 01:24:50 +00:00
Carlos Alexandro Becker c20618cdd3
fix: mips architecture
refs https://github.com/goreleaser/goreleaser/issues/3998
2023-05-18 01:16:50 +00:00
Stefan Schubert b1f3fef606
fix: md5sums entries and lintian errors/warnings (#656)
Missing trailing ./ in md5sums for changelog.Debian.gz caused
md5sums-lists-nonexistent-file and file-missing-in-md5sums
and is fixed using files.AsExplicitRelativePath.
Adding copyright file fixes no-copyright-file.
Set file_info fixes executable-is-not-world-readable,
non-standard-executable-perm, non-standard-file-perm.
Adding section fixes unknown-section, empty-field.
Using standard compress/gzip module fixes
package-contains-timestamped-gzip,
because klauspost/pgzip does not support empty mod time.
Adding urgency and distribution in changelog fixes
syntax-error-in-debian-changelog.
Adding mail address to maintainer fixes malformed-contact.
Correcting description fixes description-starts-with-package-name
and description-starts-with-leading-spaces.
2023-05-11 09:14:54 -03:00
Carlos Alexandro Becker 38f9376d59
refactor: stricter golangci-lint ruleset (#631)
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-03-09 10:02:20 -03:00
Erik G bc3e6973ea
feat: refactor contents handling and add tree content type (#618)
* feat: Refactor contents handling and add tree content type.

* fix:  Remove unnecessary deprecation warning.

* doc: Document tree type.

* fix: Remove superfluous error check.

* fix: Fix directory and symlink file info for tree content type.

* fix: Fix archlinux directories and file infos.

* fix: Early out in withChangelogIfRequested

* fix: Remove ExpandContentGlobs.
2023-02-19 10:16:51 -03:00
Erik G d56fbe2958
feat: add zstd compression support for deb and rpm (#611) 2023-01-30 00:24:27 -03:00
Carlos Alexandro Becker daae772558
fix: do not allow empty items in deb.provides (#606)
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-23 22:44:22 -03:00
Carlos Alexandro Becker c816571b14
test: improve test code (#602)
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-01-07 16:51:49 -03:00
Anders Björklund c195d93dfb
feat: expand variables in platform field (#601)
* feat: expand variables in platform field

Surprising that GOARCH was expanded, but GOOS was not.

More consistent to expand both of them the same way ?

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>

* fix: check platform for all packagers

Implement platform for deb packager, goes into Architecture.

Validate that the platform is "linux", for Alpine and Arch.

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2023-01-07 16:35:57 -03:00
Carlos Alexandro Becker f2e5d2a1e3
fix(deb): changelog fixes (#597)
* fix(deb): changelog fixes

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Andrei Belov <defanator@users.noreply.github.com>

* fix: test

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Andrei Belov <defanator@users.noreply.github.com>
2022-12-29 22:25:49 -03:00
Carlos Alexandro Becker dedee6d6b1
fix: do not encourage using /usr/local/bin (#596)
* fix: do not encourage using /usr/local/bin

Examples, tests and docs often refer to /usr/local/bin, which should
only be used for things compiled locally, which is not the case of
installed packages.

Changed that to /usr/bin, and also some usages of things like
/usr/something to /usr/share/something.

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: complex test

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-12-29 22:19:38 -03:00
Carlos Alexandro Becker 2918f99b60
fix: improve contents.type (#581)
* fix: improve contents.type

improved jsonschema and added validations

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: config|noreplace

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-24 10:12:29 -03:00
Carlos Alexandro Becker 5c3cc38943
fix: archlinux globs (#574)
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-11-12 00:50:16 -03:00
Carlos A Becker 46d2a44a13
test: improve coverage a bit 2022-10-15 14:58:33 -03:00
Arsen6331 a18661b627
feat: add support for Arch Linux packages (#543)
* feat: add support for Arch Linux packages

* test: Add initial tests

* test: Increase coverage by modifying example info

* test: Add test for ArchLinux.ConventionalFileName()

* docs: Return error if package name is invalid

* fix: Make empty name invalid

* fix: Add replaces field to .PKGINFO generator

* test: Add additional tests

* test: Test for added replaces field

* docs: Add more comments

* style: Run gofumpt

* fix: Handle errors as recommended by linter

* fix: Allow changing the pkgbase

* style: Resolve semgrep findings

* docs: Change docs to reflect new Arch Linux packager

* docs: Fix spelling mistake in comment

Co-authored-by: Dj Gilcrease <digitalxero@gmail.com>

* docs: use aspell to fix all spelling mistakes

* feat: Handle packaging formats with non-distinct file extensions as described in #546

* fix: Add newline to generated .INSTALL file

* fix: Take into account provided info for non-symlink files

* docs: Fix names for arch-specific scripts in documentation

* fix: Only consider files with the correct packager field

* fix: Use correct scripts field for post_remove script

* test: Implement archlinux acceptance tests

* test: Add archlinux to acceptance_test.go

* test: Add archlinux to github test matrix

* test: Use updated build.yml from main branch

* Fix ConventionalExtension() for apk

* fix: Take epoch value into account

* fix: Add arm5 and arm6 architectures

Co-authored-by: Dj Gilcrease <digitalxero@gmail.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2022-10-15 14:54:36 -03:00
Carlos Alexandro Becker 92d4dc23ce
fix: govulncheck, semgrep & ruleguard scan/fixes (#544)
* chore: added some scan jobs

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: version

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* chore: dispatch

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix: ruleguard and semgrep issues

* fix: syntax

* fix: skip-go-installation no longer a valid option

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-09-11 22:31:51 -03:00
Carlos Alexandro Becker 437d9ef31a
feat: upgrade to go 1.19 (#542)
* refactor: remove usage of ioutil

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* fix(ci): actually use go 1.19

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-08-22 09:39:40 -03:00
Carlos A Becker 47d15255b0
Revert "feat: removing changelog generation"
This reverts commit 816dd05151.
2022-08-10 00:46:47 -03:00
Carlos A Becker 816dd05151
feat: removing changelog generation
breaking change: removing changelog generation from nfpm... users will now have to provide a changelog file/data according to the format they are using

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2022-08-10 00:45:33 -03:00
Carlos Alexandro Becker d1c1066609
feat: implement dpkg-sig Package signing (#515)
* implement dpkg-sig Package signing

* Fix dpkgsig template syntax

* Fix dpkgsig template syntax

* Correctly handle template errors when reading dpkg-sig templates

* Fix dkpgsig signature templateing

* refactor: io.Copy

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* refactor: deb signature

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* feat: acceptance test

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* docs: document new option

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: acceptance

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* test: acceptance

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

* chore: typo

Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>

Co-authored-by: Sas Swart <sas.swart@xneelo.com>
2022-06-11 23:32:07 -03:00
Sas Swart 1eb3837edc
feat: implement dpkg-sig Package signing (#508)
* implement dpkg-sig Package signing

* Fix dpkgsig template syntax

* Fix dpkgsig template syntax

* Correctly handle template errors when reading dpkg-sig templates

* Fix dkpgsig signature templateing
2022-05-30 10:34:45 -03:00
Kyle Penfound 170bf81da5
fix: deb version order in control (#498) 2022-04-22 15:25:37 -03:00
Aaron Jacobs 98a59ec16d
feat: add support for additional fields in Debian control files (#491)
Debian control files (DCF) have a number of optional fields [0] --
including "Bugs" and "Tags" -- that are used by many existing packages.
The original fpm supports adding arbitrary fields to DCFs with the
--deb-field flag [1], but until now it was not possible to do so with
nfpm.

This commit introduces a new deb-specific override, "fields", that
simply translates key-value pairs from a map directly into the DCF.
Given the following nfpm config file entry:

    deb:
      fields:
        Bugs: https://github.com/goreleaser/nfpm/issues

The resulting DCF would contain the entry

    Bugs: https://github.com/goreleaser/nfpm/issues

To avoid generating malformed DCFs, we simply ignore empty entries.

This commit includes unit tests and updates to the website
documentation.

Closes #490.

[0]: https://man7.org/linux/man-pages/man5/deb-control.5.html
[1]: https://fpm.readthedocs.io/en/latest/packages/deb.html?highlight=changelog#deb-specific-command-line-flags

Signed-off-by: Aaron Jacobs <aaron.jacobs@rstudio.com>
2022-04-06 14:38:10 -03:00
Carlos A Becker 995fdacca3
chore: gofumpt
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-03-24 22:44:31 -03:00
Mikhail f. Shiryaev b953fee813
feat: replace compress/gzip by klauspost/pgzip (#457) 2022-02-13 14:31:37 -03:00
Mikhail f. Shiryaev c049e1c2f9
fix: processing symlinks in directories (#453)
* fix: proceed symlinks in contents as is

* Remove dead code

* fix: make OS independent test
2022-02-11 22:47:18 -03:00
Carlos Alexandro Becker 3ea7b84aa0
fix: vendor is not a recognized deb control field (#446)
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-02-03 09:19:44 -03:00
Carlos Alexandro Becker 72a4c47b15
fix: deb multilines should have 1 space prefix (#438)
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2022-02-02 22:39:25 -03:00
Carlos Alexandro Becker d16adac8c3
fix: create tree of dir content types (#431)
* fix(apk): create tree of dir types

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* fix: create tree of dir contents

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>

* test: fixes

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-28 14:24:49 -03:00
Carlos Alexandro Becker a261112a61
fix: deb on arm5 and arm6 (#412)
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
2021-12-04 15:52:16 -03:00
Erik Geiser e959f1d7c3
fix: prevent duplicate folders from being created (#411)
* fix: Prevent duplicate folders from being created.

* Fix apk filename convention.
2021-12-01 11:38:15 -03:00
Carlos A Becker 175e1757f1
fix(deb): normalize path
refs #403
2021-11-14 11:02:29 -03:00
Carlos A Becker 9f941b92a0
fix: deb and apk: s390 2021-11-13 21:19:11 -03:00
Carlos A Becker 1846234a11
fix: deb and rpm armv5 2021-11-13 21:06:51 -03:00
Carlos A Becker 743cd76600
fix: dep architectures 2021-11-13 18:21:18 -03:00