Re: Request assistance getting a package (usbrelay) into Fedora

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Darryl,

if you have all sources in single repository then only one source
package should exist for them. That means one spec file, which can
contain multiple sub-packages produced on build. But input should still
be single if they come from single repository.

You can build both python and native code from single spec file. It you
have never worked with RPM, I would recommend finding someone interested
as co-maintainer. You would have to create a package review and obtain a
sponsor to own your own package in Fedora.

To start RPM packaging, I would suggest reading [1]. Also packaging
guidelines [2] of course. Or just copy and modify existing spec. I think
my sep review [3] might be useful inspiration to you. It contains both
python and cmake builds. Your project uses just make, so %make_build and
%make_install would be used instead. Spec file is a recipe to build an
RPM package, it would need only source archive in addition.

1. https://rpm-packaging-guide.github.io/
2. https://docs.fedoraproject.org/en-US/packaging-guidelines/
3. https://bugzilla.redhat.com/show_bug.cgi?id=2029677

On 1/17/22 11:43, Darryl Bond wrote:
> Hello,
> I maintain a small application hosted on GitHub. (https://github.com/darrylb123/usbrelay)
> It allows control of USB connected electrical relays. Originally it was a simple command line application.
> Over the years, it has accumulated additional features such as a python interface, and an mqtt daemon.
> There is a debian package that has not been maintained for many years. We are endeavouring to fix that.
> As a long term Fedora user, I would love to get it into Fedora. However I have never attempted to create an rpm package. The more I read, the more confused I am. 
>
> Questions on Issues like:
> - How to clone the GitHub repository in the spec file
Spec file does not clone github repository in any way. Source rpm
package contains spec file and source code archive. In case of github,
it would be obtained from a release tag. Some smart url can be used from
github to download tar.gz source archive, from which the code would be
built. If you look on sep [3] example, %forgemeta macro with %forgeurl0
make it easy and it would choose correct %forgesource automagically.
> - should there be one package or a separate python package.
It makes sense to package python3-usbrelay and usbrelay separately. But
both would be built from single source.
> - what about the daemon/ systemd service...

If you do not have separate library and utilities, keep systemd service
together with utilities. If library with devel package exists, it should
be separate from utilities/daemons. If you have shared library, I think
you should have 4 subpackages in total.

- usbrelay (utility and daemon)
- usbrelay-libs (shared library)
- usbrelay-devel (header files and usbrelay.so)
- python3-usbrelay (python module)

>
> Any help greatly appreciated
>
> Darryl
Regards,
Petr

-- 
Petr Menšík
Software Engineer
Red Hat, http://www.redhat.com/
email: pemensik@xxxxxxxxxx
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux