Hacker News new | ask | show | jobs
by snuxoll 3430 days ago
And it took me all of 60 minutes to learn, packaging isn't anywhere near as hard as people make it out to be. If you can use a build system of your choosing to build and test your project, you can learn how to write an rpmspec or debian control file in under an hour.
1 comments

It took me months to learn the best practices to create a clean Python package. And nothing is particularly difficult. Just information to gather and sort out. Given deb/rpm are old systems with a lot of legacy, I seriously doubt your 60 minutes claim, even if it's infinity better than Python status quo. Which I doubt as well since all GNU standard are usually a spaghetti of past requirements mixed with FOSS politics.
Making a typical python package for Fedora or EL:

Do you have a setup.py? No, then it's not going to be on PyPi anyway so ignore the rest of this since you'll need to figure out how to package this special snowflake.

0. Run `yum install -y rpmdevtools mock`

1. Run `rpmdev-newspec python-mypackage`.

2. Run `python setup.py sdist`

3. Modify the .spec as appropriate to add dependencies the package requires as well as set the version correctly.

4. Run `mock -r fedora-25-x86_64 --buildsprm python-mypackage.spec`

5. Run `mock -r fedora-25-x86_64 --rebuild python-mypackage.f25.src.rpm`

Done, there's your RPM, debian packaging is roughly as simple (I'm less a fan because of how they try to fudge a Makefile into an adequate tool for package building, but hey, most everything can be built automatically by dh so the average makefile is ~3 lines).

The biggest problem with learning this is simply finding the right documentation, Fedora has some pretty great guides for new packagers on the wiki.