* fix: ensure nfpm can run on windows and still build correct rpm, deb, and apk packages
fix: add windows test job
* fix: ensure file close happens in the correct order on windows
* fix: ensure eol is set to lf
* chore: update the go version to be consistent between windows and ubuntu
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* chore: update comments
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* chore: rerun make deps
* chore: fix .gitattributes to ensure images are not touched
* chore: run make fmt
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Bump github.com/google/rpmpack to integrate the ghost file handling
fix [google/rpmpack 52].
Updated the TestRPMGhostFiles fix to test the updated
functionality. Now, we expect that the files are listed in the RPM
header, but without any cpio content.
This is an extension of PR #246.
[google/rpmpack 52]: https://github.com/google/rpmpack/pull/52
Co-authored-by: wwade <wwade@users.noreply.github.com>
* chore(deps): bump github.com/golangci/golangci-lint from 1.31.0 to 1.32.2
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: errors.is
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: typo
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: typo
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: fix
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
From the [Maximum RPM] guide:
The %ghost Directive
As we mentioned in the Section called The %files List, if a file
is specified in the %files list, that file will automatically be
included in the package. There are times when a file should be
owned by the package but not installed - log files and state files
are good examples of cases you might desire this to happen.
The way to achieve this, is to use the %ghost directive. By adding
this directive to the line containing a file, RPM will know about
the ghosted file, but will not add it to the package.
Ghost files are specified using `Type: rpmpack.GhostFile` when
constructing the output package.
The test ensures that we have:
- The target file present in the RPM.
- The specified mode attributes (although not really important,
either).
- An empty file *[1]* in the RPM for the named ghost,
see [google/rpmpack #51].
*[1] Instead of an empty file, no file should be created, but this is
not possible until the upstream issue is resolved.*
[Maximum RPM]:
http://ftp.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html
[google/rpmpack #51]: https://github.com/google/rpmpack/issues/51
Co-authored-by: wwade <wwade@users.noreply.github.com>
* feat: replace glob library
BREAKING CHANGE: may have unintended side-effects.
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: delimiter and patterns starting with ./
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: use fileglob
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: fixed some wrong tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
The previous behaviour was to use only the first line of the
description as the summary. In some cases, it is desirable to have a
separate summary. Since only RPM packages have a summary field, I've
put this inside the RPM configuration.
description: This is my description
rpm:
summary: This is my summary
By default, just use the first line of the description.
Co-authored-by: wwade <wwade@users.noreply.github.com>
* refactor: remove pkg/errors
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: lint
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: Reflect (pre)release in conventional file names.
* test: Add tests for conventional file names.
* test: Make test case variables consistent.
Co-authored-by: Erik Geiser <erik.geiser@redteam-pentesting.de>
Co-authored-by: Dj Gilcrease <d.gilcrease@f5.com>
Co-authored-by: Dj Gilcrease <d.gilcrease@f5.com>
Co-authored-by: Erik Geiser <erik.geiser@redteam-pentesting.de>
* fix(rpm): replace - with _ on version
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix(rpm): version
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix(rpm): desc, summary and group
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* test: added test cases
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: remove rpm.Prefix
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: remove rpm.Release
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: broken test
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* add stricter linting
* As part of this it changes the API slightly changing all uses of the `nfpm.Info` object to accept a pointer to reduce memory usage as pointed out by `hugeParam: info is heavy (568 bytes); consider passing it by pointer (gocritic)`
* fix: rules tests, overridables
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* doc: gogoc
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: rpm template
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: rpm template
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: improve rpm release config
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: template
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
* fix: Define sourcedir and rpmfilename macros for rpmbuild
Our build system has a complex rmpbuld environment set up where
macros don't match with the defaults that nfpm exepcts. This
change will enforce those defaults which makes nfpm less
dependant on the build environment.
* feat: Add Group and Prefix tags for RPMs
These tags are only implemented for RPMs because there is
no good parallel to draw to deb tags.
See #57
* fix: moved rpm only tags into their own block
* test: added test for RPM block
* fix: fixed rpm only tags test
* test: Testing spec file for RPM specific tags
See: #57
* add support for build rpm packages for aarch64
Signed-off-by: Christoph Hartmann <chris@lollyrock.com>
* add unit test to verify the manipulation of the arch field
Signed-off-by: Christoph Hartmann <chris@lollyrock.com>
* add acceptance test for arm64 builds
Signed-off-by: Christoph Hartmann <chris@lollyrock.com>
* use newer travis ubuntu distro
Signed-off-by: Christoph Hartmann <chris@lollyrock.com>
* enable binfmt in docker
Signed-off-by: Christoph Hartmann <chris@lollyrock.com>