netzstaub

beatz & funkz

Saturday, February 26, 2005

Fedora Core Packaging

Ein weiteres Posting in der Antifrustkategorie, diesmal ueber das Bauen von Packages fuer Fedora Core. Damit das Deployen von unser Streamersoftware auf planetlab leichter wird, habe ich beschlossen, Fedore Core Packages fuer poc zu bauen. Als erstes musste ich Subversion auf einem der Planetlab Knoten installieren:

$ sudo yum install subversion

Dann noch diverse Software, darunter die fedora-rpmdevtools, das ich von Hand runtergeladen habe:

$ sudo yum install gcc make redhat-rpm-config unzip cpio gcc-c++ flex bison
$ wget http://ftp.sun.ac.za/ftp/mirrorsites/fedora/3/i386/RPMS.extras/fedora-rpmdevtools-0.3.1-1.noarch.rpm
$ sudo rpm -i fedora-rpmdevtools-0.3.1-1.noarch.rpm 

Dann ein paar Seiten lesen, um zu wissen, wie RPM package und Fedora RPM Package ueberhaupt geht:

Der erste Artikel passt nicht so wirklich, den heutzutage verwendet man rpmbuild anstatt rpm. Also, als erstes fedora-buildrpmtree aufrufen, um nicht das ganze als root ausfuehren zu muessen. Dann mit fedora-newrpmspec ein Template spec erzeugen, das wird dann ausgefuellt und sieht dann so aus:

Name:           poc
Version:        0.4.1
Release:        1
Summary:        POC mp3 streamer

Group:          Development/Audio
License:        BSD
URL:            http://www.bl0rg.net/software/poc
Source0:        http:/www.bl0rg.net/software/poc/poc-0.4.1.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  gcc

%description
Long description of POC

%prep
%setup -q

%build
make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT PREFIX=/usr

%check || :

%clean
rm -rf $RPM_BUILD_ROOT


%post

%files
%defattr(-,root,root,-)
%doc README
%{_bindir}/*
%{_mandir}/man[^3]/*

%changelog
* Sat Feb 26 2005 Manuel Odendahl  - 1109434658:0.4.1
- Initial RPM release.

Anschliessend poc-0.4.1.tar.gz in ~/rpmbuild/SOURCES kopieren, und das Paket bauen:

$ rpmbuild -ba poc.spec

Et voila, das fertige poc-Paket liegt in ~/rpmbuild/RPMS/i386. Schick!

posted by manuel at 5:27 pm  

1 Comment »

  1. Wenn das spec-File auch im tar.gz liegt, kann man das auch gleich mit

    $ rpmbuild -ta poc-0.4.1.tar.gz

    bauen. Praktisch, um das in ein Makefile in folgender Art einzubauen (aus dem Ged├Ąchtnis, sollte aber klar sein):

    rpm: clean
    cd ..
    tar cfzv foo.tar.gz foo/
    rpmbuild -ta foo.tar.gz

    (Es gibt hier kein pre-Tag, und die Tabreihenfolge ist auch verfriemelt)

    Comment by NEINGEIST — February 27, 2005 @ 7:23 am

RSS feed for comments on this post.

Leave a comment

Powered by WordPress