nim reported a new issue against the project: `go-rpm-macros` that you are following:
``
The macro code needs massaging to also work on EPEL.
Most of the work is spec side since some of the macros are going to collide with the ones provided by previous iterations of Go macro packages
``
To reply, visit the link below or just reply to this email
https://pagure.io/go-rpm-macros/issue/2
nim reported a new issue against the project: `go-rpm-macros` that you are following:
``
`%goprep` should apply patches automatically, so there is no convenience gap with `%autosetup`.
This is generic work that should be done *redhat-rpm-config* side in forge macros and then reused in`%goprep`. Basically:
1. define a `patch_flags<suffix>` rpm variable holding the parameters that should be passed to `%patch<suffix>`
2. define a `default_flags<suffix>` fallback
3. define a `source_patches<suffix>` holding an ordered space separated list of patch suffixes associated with a particular forge/go source.
And then write the usual lua loops to apply it all at the right moment in the spec.
``
To reply, visit the link below or just reply to this email
https://pagure.io/go-rpm-macros/issue/3
mooz reported a new issue against the project: `go-rpm-macros` that you are following:
``
I'm trying to build a golang package for EL7 but I'm unable to create a SRPM from a spec file after installing the go RPM macros. I'm receiving the below error:
```
rpmbuild -bs golang-github-jedisct1-clocksmith.spec
error: Bad file: /home/test/rpmbuild/SOURCES/%{archivename}.%{archiveext}: No such file or directory
RPM build errors:
Bad file: /home/test/rpmbuild/SOURCES/%{archivename}.%{archiveext}: No such file or directory
```
I thought maybe the issue was caused by the macros.forge file not being included in the latest EL7 build of redhat-rpm-config (as mentioned at https://fedoraproject.org/wiki/More_Go_packaging#Testing_the_proposal) but trying to copy the file over from a later Fedora release didn't change the behavior.
Not too familiar with the entire process on Go packaging, is there something I'm missing?
``
To reply, visit the link below or just reply to this email
https://pagure.io/go-rpm-macros/issue/4
nim reported a new issue against the project: `go-rpm-macros` that you are following:
``
This is a clone of
https://github.com/gofed/go-macros/issues/56
The problem is actually in golist, not in the macros themselves. Sticking it in the macro project for now as they need to be switched to deploy in libdir if this is not fixed
According to @jcajka this needs fixing in any case, because other build options are handled the same way by the Go compiler, so deploying only the files corresponding to a particular set of options means sources can not be used with another one later. And we have some of those in Fedora, for example, optional selinux support in some container projects.
``
To reply, visit the link below or just reply to this email
https://pagure.io/go-rpm-macros/issue/1
nim reported a new issue against the project: `go-rpm-macros` that you are following:
``
To workaround https://pagure.io/golist/issue/7, the shell wrapper should switch to another directory (for example /usr/bin) before running `golist`, and switch back to the correct dir afterwards (so add strategic pushds popds to keep track of where the user, golist and the tests want to be)
``
To reply, visit the link below or just reply to this email
https://pagure.io/go-rpm-macros/issue/6
nim reported a new issue against the project: `golist` that you are following:
``
Right now `golist` does not permit querying the imports of a project and its tests in a single pass. You can emulate most of it with two separate commands:
```sh
golist --imported --package-path github.com/sirupsen/logrus --skip-self
golist --imported --package-path github.com/sirupsen/logrus --skip-self --tests
```
However the second line can request things the first line decided to filter out, because they are provided by the project itself. And that will probably break some builds once
https://github.com/rpm-software-management/rpm/pull/593 or
https://pagure.io/fesco/issue/2004 are done.
For dynamic BuildRequires to work reliably, we really need a single codebase+tests call (we can still use the codebase-only line when a packager disables tests in its specs).
``
To reply, visit the link below or just reply to this email
https://pagure.io/golist/issue/3
nim reported a new issue against the project: `golist` that you are following:
``
This is the root cause behind
https://pagure.io/go-rpm-macros/issue/1
When asked to list the files to deploy, golist only answers for the current tags (arch and build options)
https://pagure.io/go-rpm-macros/blob/master/f/bin/go-rpm-integration#_386
Being arch-specific is annoying but not a blocker¹
However @jcajka thinks this will also remove installation of files not covered by current build tags. And that is a huge problem because that makes the result unusable, by any consumer, that needs a different tag combination than the one passed by the source code packager.
¹ The migration of Fedora’s go -devel packages to an arch-specific root can be kludged as evidenced by https://copr.fedorainfracloud.org/coprs/nim/go-rpm-macros/builds/ because they are only installed transiently
``
To reply, visit the link below or just reply to this email
https://pagure.io/golist/issue/2
nim reported a new issue against the project: `golist` that you are following:
``
This is a similar issue to https://pagure.io/golist/issue/3 this time for packagers that try to package several import paths in a single spec (I’m told the practice is common RHEL-side).
For this use pattern to work reliably, you need to compute the codebase requirements in a single pass. Otherwise `golist` will forget to filter out imports of code, already available on-system under another import path. And that will break BuildRequires computation.
So we need something like
```sh
$ golist --imported --skip-self --with-tests --package-path %{goipath0} --package-path %{goipath1} --package-path %{goipath2}
```
``
To reply, visit the link below or just reply to this email
https://pagure.io/golist/issue/4
nim reported a new issue against the project: `golist` that you are following:
``
`golist` only implements a single output format, which means this output needs to be reprocessed in shell before being fed to other software, like rpm¹.
This shell reprocessing is brittle and adds noise to Go package build logs.
Mature utilities allow specifying an output format template, which simplifies their integration with other software. This can be done:
* either by defining a custom format string using predefined variables (as [done](http://man7.org/linux/man-pages/man1/time.1.html) by the `time -f`command),
* or by specifying a specific package dep format built-in (as done by the `fcquery --format '%{=pkgkit}'` command, that allowed direct integration [within rpm](https://github.com/rpm-software-management/rpm/blob/ff4b9111aeba01dd02… in [2009](https://bugs.freedesktop.org/show_bug.cgi?id=17107))
`golist` should implement something similar.
¹ Typically to [add `golang()`](https://pagure.io/go-rpm-macros/blob/master/f/rpm/macros.d/macros.go-rpm#_228) around dependencies, would need more processing if it ever evolves to list version constrains
``
To reply, visit the link below or just reply to this email
https://pagure.io/golist/issue/13