Re:Show HN: Fast native RPM building from any distro, for an...
by alanfranzoni on Friday February 06, 2015 @02:04PM
(#9010853)
You could use fpm.
But the point is: can you pack every single dependency in your project? Usually you'll need something from the outside distro (libc usually). Then if you're building on a different host than your target, you may experience issues or different runtime behaviour.
Re:Show HN: Fast native RPM building from any distro, for an...
by twic on Saturday February 07, 2015 @10:43AM
(#9014256)
It depends what you're packaging. C/C++ code linked against dynamic libraries? Yes, you're going to struggle to package reliably without using the native tools. Java code packaged as a bundle of jars, with no dependency except a JVM? Go code compiled statically, with no dependency except libc? Simple portable packaging should do the job.
Re:Show HN: Fast native RPM building from any distro, for an...
by nailer on Friday February 06, 2015 @01:39PM
(#9010679)
Not automated, but quick and you could certainly automate it (alas I don't build many apps from source these days):
- Make a spec with / (actually the build root) in %files section
- Run the build
- List the resulting package contents (which is whatever was put into the build root)
- Manually remove any common dirs
- Update the %files section and rebuild
Re:Show HN: Fast native RPM building from any distro, for an...
by tpg on Friday February 06, 2015 @01:38PM
(#9010678)
I use FPM (https://github.com/jordansissel/fpm) for that and it works wonderfully. You can convert a tarball to RPM/deb pretty seamlessly most of the time.
Re:Show HN: Fast native RPM building from any distro, for an...
by alanfranzoni on Friday February 06, 2015 @02:16PM
(#9010943)
I use FPM for architecture independent projects as well. But if you're building for a different target you're out of luck.
I was thinking about a docker-fpm-builder myself by the way, so maybe we'll meet again :-)
I was putting something together like that a while ago for packaging up software for internal use, that we get from outside vendors. I can dig it up and throw it on Github if anyone is interested.