Hi Fabio, Robert-André,

Thank you for the explanation. It makes sense.
Golang has this uniqueness about libs that removes some of the shared
objects pros but I see there are other things at play.

Thank you,
Carlos.

On Thu, Jul 20, 2023 at 1:44 PM <zebo...@gmail.com> wrote:

> On 7/20/23 8:20 PM, Carlos Rodriguez Fernandez <
> carlosrodrifernan...@gmail.com> wrote:
> > Hi all,
> >
> > I am interested in packaging some golang programs for Fedora (and EPEL),
> and I read through
> > the guidelines:
> > https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/
> > <https://docs.fedoraproject.org/en-US/packaging-guidelines/Golang/>
> >
> > My question is more about the reasoning for the recommended handling of
> dependencies.
> >
> > Other language platforms have shared runtime objects, and devel packages
> provide the
> > interface to link to them when necessary; however golang compiles it all
> statically. It is
> > very easy to bring all the dependencies locally for compilation directly
> from git repos and
> > then nothing is necessary at runtime.
> >
> > Creating rpm packages for each golang dependency seems counterproductive
> as it adds an
> > additional burden to maintain without the benefits of shared runtime
> objects.
> >
> > I have the feeling I am missing something. What is the benefit of having
> each golang build
> > dependency as rpms?
> > Is it a requirement for golang programs rpm contributions or it is
> optional? (e.g.
> > prometheus in EPEL9 does not follow the deps handling guidelines but not
> sure if it is a
> > tech debt or an option).
> >
> >
> > Thank you,
> > Carlos
> >
>
> We need to build into Koji, there is no "local build". As such we have two
> options :
>  - bundle the dependencies in the package
>  - package all the libraries separately
>
> The Fedora guidelines is to package library separately, per
> https://docs.fedoraproject.org/en-US/fesco/Bundled_Software_policy/ :
>
>
>
> All packages whose upstreams allow them to be built against system
> libraries must be built against system libraries.
>
> All packages whose upstreams have no mechanism to build against system
> libraries must be contacted publicly about a path to supporting system
> libraries. If upstream refuses, this must be recorded in the spec file
> using a persistent mechanism to be clarified in the packaging guidelines.
>
> All packages whose upstreams have no mechanism to build against system
> libraries may opt to carry bundled libraries, but if they do, they must
> include Provides: bundled() = in their RPM spec file.
>
>
> This policy only applies to Fedora. In EPEL we bundle because we don't
> have our macros and the Go ecosystem is not bootstrapped.
>
> Best regards,
>
> Robert-André
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> Do not reply to spam, report it:
> https://pagure.io/fedora-infrastructure/new_issue
>
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to