[ale] OBS howto for your first project

Greg Freemyer greg.freemyer at gmail.com
Fri Apr 24 15:26:08 EDT 2009


FYI:

Ubuntu 9.04 support via the OBS is supposed to show up soon.  They
said 32-bit is working now via CLI tools, and they are still pushing
out the 64-bit and Arm stuff.  Once it is all pushed they will enable
it on the web-gui.

Greg

On Fri, Apr 17, 2009 at 5:18 PM, Jim Lynch
<ale_nospam at fayettedigital.com> wrote:
> Greg Freemyer wrote:
>> On Fri, Apr 17, 2009 at 2:11 PM, Michael B. Trausch <mbt at zest.trausch.us> wrote:
>>
>>> On Fri, 17 Apr 2009 13:30:07 -0400
>>> Greg Freemyer <greg.freemyer at gmail.com> wrote:
>>>
>>>
>>>> At least for now you still have to know how to package.  The build
>>>> service just keeps you from having to have your own farm of different
>>>> distros.  It also will build all the various versions automatically
>>>> each time you update a file.
>>>>
>>> Ahh.  Well, someone will have to probably come along and RPM-ize my
>>> stuff later when it is ready, then, or I'll have to spend a lot of time
>>> reading or something.  I only know how to work with Debian packages at
>>> present; I think that the Debian system for building packages is
>>> (mostly) intuitive, though I think it could be better...
>>>
>>
>> If you can get a debian.rules file to work. You can guess your way
>> through a spec file pretty quickly.
>>
>> I did it the other way around.  ie. Spent several iterations going
>> back and forth getting the spec file right, then simply copied the
>> chunks from there into the right slots in the various debian control
>> files.
>>
>> Basically they both need the same info. just different syntax.
>>
>>
>>>> If you look at my open2300 project you'll see about 6 files I think:
>>>>
>>>> ....tar.gz     tarball like you're used to
>>>> ....dsc        simple debian description file
>>>> debian.control   simple debian control file
>>>> debian.changlog simple changelog file
>>>> debian.rules     this is the complex file that really controls a
>>>> debian build
>>>>
>>>> ...spec   the single control file for rpm based builds
>>>>
>>>> For my simple project, a single set of 4 debian control files allowed
>>>> debs to be built for all the obs supported deb environments.
>>>>
>>> So those files are in the root, or do you put them in the debian/
>>> directory like you would in a Debian source package?
>>>
>>>
>>
>> They get automatically popped into the build root I believe.  It sort
>> of all happens magically.
>>
>> ie. When the obs build starts it creates a xen environment for debian
>> lenny as an example and installs a basic set of packages.
>>
>> Then alltray.....tar.gz file gets expanded into a temp build directory
>> for you.
>>
>> If you look at my debian.rules file you'll see:
>>
>> build: build-stamp
>> build-stamp:
>>     dh_testdir
>>
>>     # Add here commands to compile the package.
>>     make
>>     # --- end custom part for compiling
>>
>>     touch build-stamp
>>
>> The dh_testdir command I assume is causing the build dir to get
>> created and the tarball to be extracted into it.
>>
>> My package is compiled by a simple make as shown above.  You will
>> replace that with whatever your equivalent is.
>>
>>
>>>> Alternatively, my spec file is working for "most" of the rpm based
>>>> environments.  The exception for now is the 64-bit version of fedora
>>>> requires an extra flag that I have not tried to set yet.
>>>>
>>> Would that be that silly -fPIC?
>>>
>>>
>>>> I have only really looked in any detail at the spec file for building
>>>> rpms.  It allows if / then logic.  Thus if you need a slightly
>>>> different setup for a fedora build than for a opensuse build, you
>>>> still have a single spec file, but it contains logic to do slightly
>>>> different things on different distros.
>>>>
>>> I am guessing that it doesn't use a simple Makefile like Debian's
>>> "rules" does, then?  Is it a DSL or shell type thing or something?
>>>
>>
>> Both use a Makefile.  That should be in your tarball which is used by
>> all the distros.
>>
>> The issue that I found was the dependencies.  Different distros name
>> their packages differently.
>>
>> Thus one distro may have mysqlclient-devel vs. mysql-devel for
>> another.  I think debian calls this package libmysqlclient15-dev.  I
>> need it installed prior to calling make because it provides mysql.h.
>>
>> If you have issues like that then, you have to have if / then logic
>> based on the distro.
>>
>> Greg
>>
> This may not be of any help, but checkinstall does a pretty good job of
> taking a normal "make install" and turning it into a .rpm or .deb.   You
> can stop it and inspect the .spec file and other intermediate files.
> I've used it to get a feel for how .spec files are created and I'm sure
> the same holds for deb equivalents.    I've used it to create .deb files
> too, but never had a need to inspect/modify the configuration file.
>
> Jim.
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
>



-- 
Greg Freemyer
Head of EDD Tape Extraction and Processing team
Litigation Triage Solutions Specialist
http://www.linkedin.com/in/gregfreemyer
First 99 Days Litigation White Paper -
http://www.norcrossgroup.com/forms/whitepapers/99%20Days%20whitepaper.pdf

The Norcross Group
The Intersection of Evidence & Technology
http://www.norcrossgroup.com



More information about the Ale mailing list