• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Frage] wie RPMs richtig bauen

taki

Advanced Hacker
http://www.linux-club.de/viewtopic.php?p=157537#157537

Dass man mit apt Sourcepakete neu bauen kann, kannte ich noch nicht. Ist genial.

Dabei frage ich mich, ob es Sinn macht, so ein Paket ins Netz hochzuladen? Können andere damit etwas anfangen, oder bringe ich den Anwender damit nur in die Abhängigkeitskriese? Ich könnte mir vorstellen, dass ein bei mir gebautes Paket bei anderen Anwendern Probleme macht, weil mein System längst kaum noch Ähnlichkeit mit der Boxversion hat. Um ein Paket z.B. für Packman zu bauen, braucht es doch sicher noch einiges mehr als den in oben verlinktem Posting beschriebenen rebuild?

Gibt es eigentlich eine gut verständliche Anleitung, worauf man achten muss, wenn man ein Paket für packman bauen möchte? Spezielle Build-Umgebung nötig? Was muss zwingend ins Spec?

Für SuSE 9.1 wird von mir wohl nix mehr kommen, da die 9.3 schon bestellt ist und ich vor dem Distributionsupgrade bestimmt noch nicht so weit bin brauchbare RPMs zu bauen. Aber für die Zukunft habe ich mir vorgenommen, mich da einzuarbeiten, um hoffentlich auch mal etwas an die Comunity zurückgeben zu können.
 

oc2pus

Ultimate Guru
taki schrieb:
Dass man mit apt Sourcepakete neu bauen kann, kannte ich noch nicht. Ist genial.
ja dann solltest du mal das man apt-get lesen ...
die Optionen lauten:
apt-get source <paket> (nur holen des src.rpm)
apt-get source --build <paket> (holen und compilieren des paketes)

taki schrieb:
Um ein Paket z.B. für Packman zu bauen, braucht es doch sicher noch einiges mehr als den in oben verlinktem Posting beschriebenen rebuild?
nein, in dem src.rpm stecken alle Patches, das spec-file und die Sourcen drin ... du baust es ja nach dem Bauplan des Packagers für dein System.

taki schrieb:
Gibt es eigentlich eine gut verständliche Anleitung, worauf man achten muss, wenn man ein Paket für packman bauen möchte? Spezielle Build-Umgebung nötig? Was muss zwingend ins Spec?
hier nachlesen:
1.) allgemeine Einleitung, deutsch
http://www.tu-chemnitz.de/docs/lindocs/RPM/node12.html
2.) die "Bibel" von Red-hat
http://www.rpm.org/max-rpm/index.html
3.) Einführung in deutsch
http://www.linuxhaven.de/dlhp/HOWTO/DE-RPM-HOWTO-7.html
4.) SuSE Spezialitäten für RPMs
http://ftp.novell.com/pub/forge/library/SUSE%20Package%20Conventions/spc.html

ansonsten google ...

und hier noch ein Beispiel für ein SPEC-File:
Code:
# norootforbuild
# neededforbuild update-desktop-files libogg libogg-devel libvorbis libvorbis-devel gtk2-devel gtk2 libid3tag-devel libid3tag libglade2-devel libglade2 mad-devel mad atk-devel atk pango-devel pango flac-devel flac zlib-devel zlib

%define _prefix /usr

Name:          graveman
License:       GPL
Group:         Productivity/Multimedia/Video/Utilities
URL:           http://scresto.site.voila.fr
Summary:       Frontend for cdrtools (cdrecord, readcd, mkisofs), sox and ogginfo
Version:       0.3.9
Release:       0.oc2pus.1
Source:        %{name}-%{version}.tar.bz2
BuildRoot:     %{_tmppath}/%{name}-%{version}-build
Packager:      oc2pus <oc2pus@irgendwo.de>
BuildRequires: libogg-devel >= 1.0 
BuildRequires: libvorbis-devel >= 1.0 
BuildRequires: gtk2-devel >= 2.4.0
BuildRequires: libid3tag-devel > 0.15 
BuildRequires: libglade2-devel >= 2.0 
BuildRequires: mad-devel >= 0.15
BuildRequires: atk-devel >= 1.0
BuildRequires: pango-devel >= 1.0
BuildRequires: flac-devel >= 1.1.0
BuildRequires: zlib-devel >= 1.1.4
Requires:      gtk+ >= 2.4.0 
Requires:      glib2 >= 2.4.0 
Requires:      libid3tag >= 0.15 
Requires:      libogg >= 1.0 
Requires:      libvorbis >= 1.0 
Requires:      libglade2 >= 2.0 
Requires:      mad >= 0.15
Requires:      cdrecord >= 2.0 
Requires:      cdrdao
Requires:      mkisofs >= 2.0 
Requires:      sox >= 12.17.0 
Requires:      dvd+rw-tools >= 5.10
Requires:      atk >= 1.0
Requires:      pango >= 1.0
Requires:      flac >= 1.1.0
Requires:      sox >= 12.17.0
Requires:      zlib >= 1.1.4

%description
Graveman! is a GPL frontend for :
    * cdrecord
    * mkisofs
    * readcd
    * sox
    * dvd+rw-format/dvd+rw-tools

Graveman! can burn audio cd (wav, ogg, mp3), data cd and dvd, duplicate cd, and
clean rewritable cd and dvd.

This software use GTK2 library.

Authors: Sylvain Cresto <sylvain.cresto@tiscali.fr>

%prep
%setup -n %{name}-%{version}
%{?suse_update_config:%{suse_update_config -f}}

%build
CFLAGS="$RPM_OPT_FLAGS" \
CXXFLAGS="$RPM_OPT_FLAGS" \
./configure \
	--prefix=%{_prefix} \
	--enable-linux-ide
make

%install
make DESTDIR=%{buildroot} install
%suse_update_desktop_file %{name} AudioVideo DiscBurning
%find_lang %{name}

%clean
[ -d %{buildroot} -a "%{buildroot}" != "" ] && rm -rf %{buildroot}

%files -f %{name}.lang
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README* THANKS 
%{_bindir}/%{name}
#%{_datadir}/locale/*/LC_MESSAGES/%{name}.mo
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}48.png
%{_datadir}/%{name}/*

%changelog -n graveman
* Fri Apr 01 2005 - oc2pus@irgendwo.de 0.3.9-0.oc2pus.1
- little modifications in spec-file
- added configure option: --enable-linux-ide
- update to 0.3.9
* Wed Feb 16 2005 - oc2pus@irgendwo.de 0.3.8-0.oc2pus.1
- update to 0.3.8
* Sun Feb 13 2005 - oc2pus@irgendwo.de 0.3.7-0.oc2pus.1
- update to 0.3.7
* Wed Feb 09 2005 - oc2pus@irgendwo.de 0.3.6-0.oc2pus.1
- update to 0.3.6
* Thu Feb 01 2005 - oc2pus@irgendwo.de 0.3.5-0.oc2pus.1
- update to 0.3.5
 
Oben