SCIENTIFIC-LINUX-USERS Archives

August 2015

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Lamar Owen <[log in to unmask]>
Reply To:
Lamar Owen <[log in to unmask]>
Date:
Thu, 13 Aug 2015 09:44:15 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (42 lines)
On 08/13/2015 12:53 AM, Joseph Areeda wrote:
> If you remember how you learned to create RPMs, I'd appreciate some 
> advice on how to get going.  Good books, tutorials or websites. The 
> reference documentation is NOT a good place to start, necessary, but 
> not a good cover to cover read, at least not yet.
I still have my paper copy of Maximum RPM at home that I bought back in 
1999 or so prior to my starting building the PostgreSQL RPMs (which I 
built and maintained until 2004).  The basics of packaging have not 
changed since then; the specific guidelines and many features have 
changed a great deal since then, as have the mechanics of actually 
properly building packages (mock is the way to go these days).  You've 
already gotten a link to the online version of Maximum RPM, but if you 
can find a print copy it would be a bit more suited to airport/airplane 
reading, IMHO.  I had not seen the GuruLabs document before, but it 
looks like a good read, even though it's a bit dated on some of the 
building mechanics.

Be sure to look at the packages that comprise SL; set up your own build 
area and install some source RPMs in there and start reading the spec 
files.  Don't start with a complex package like the kernel, though; 
start with something relatively small and simple.  And then practice 
building some packages from the source RPM of the distribution itself 
(rebuild bash, for instance, or grab a Fedora source RPM for something 
that's not in EPEL and see if you can get it to build, and practice).

Above all, learn how to use mock to make repeatable builds.  The 'smock' 
wrapper is helpful in learning mock.  There are HOWTOs in several wikis 
out there, especially the CentOS wiki, that deal with these things, and 
everything you find in the CentOS wiki is almost 100% applicable to SL, 
if you change the details of the specific repos and similar things.

Virtually everything I learned from maintaining the PostgreSQL RPMs is 
still applicable, but I keep my knowledge current by building things for 
personal use even now, on EL7 (like kicad, among other things), and I 
even went through the exercise of rebuilding the whole OS for EL5 on 
IA64 for an SGI Altix we have here.

If you decide to distribute your build, learn how to properly sign the 
packages and how to set up a yum repository so that depsolving in yum 
isn't broken.  It's not hard to set up a proper repo, and it's not that 
hard to do the full signing bit, either.

ATOM RSS1 RSS2