RPM Oluşturmak
Tarball'dan RPM - gerbv Mandrake İçin RPM Oluşturmak Diğer Yöntemler

RPM Oluşturmak - 050112
Tanju Taşçılar - tanju@elektronist.com
Registered Linux User #283274

Tarball'dan RPM - muhasebeci

RPM oluşturmak için ele alacağımız sıradaki program bizden biri, muhasebeci. Hızla gelişimini sürdüren muhasebeci programı ülkemizde Linux kullanımının yaygınlaşmasında büyük öneme sahip. Muhasebeci geliştirme ekibine başarılar dileriz. Bu programdan RPM oluşturma sırasında karşılaşacağımız sorunlar ve eksiklikler programın gelişmesinin tamamlanmamış olmasından kaynaklanıyor.

Kullanacağımız paket muhasebeci-0.5-YTL.tar.gz. Bu paketi açıyoruz. Açtığımız tar.gz dosyasına kaynaktan kurulum işlemini uygulamaya başladığımızda automake ile ilgili dosyaların link'ler olarak kaldığını görüyoruz. (sonu @ olan dosyalar)

[tanju@gezgin muhasebeci-0.5-YTL]$ ls
ABOUT-NLS*       config.status*  Makefile                news*
acconfig.h*      config.sub*     Makefile.am*            NEWS
acinclude.m4*    configure*      Makefile.in             pixmaps/
aclocal.m4*      configure.in*   missing@                po/
authors*         COPYING@        mkinstalldirs*          readme*
AUTHORS          data/           muhasebeci.desktop      README
autogen.sh*      depcomp@        muhasebeci.desktop.in*  setup-gettext*
autom4te.cache/  INSTALL@        muhasebeci.glade        SQLChangeLog
cachegrind.cmd*  install*        muhasebeci.gladep       src/
ChangeLog*       install-sh@     muhasebeci.prj          stamp-h1
compile@         intl/           muhasebeci.pws*         stamp-h.in*
config.guess*    libtool*        muhasebeci.rapor        todo*
config.h         ltmain.sh       muhasebeci.spec*        TODO
config.h.in      m4/             muhasebeci.spec.in*
config.log       macros/         muhasebeci.sql*

Bu durumda eğer sisteminizde ilgili sürüm yoksa ./configure adımını bile geçemezsiniz. RPM oluşturacağımız sistemde olan automake-1.8 sürümünün dosyalarını bu linklerin üzerine kopyalayarak sabit hale gelmelerini sağlıyoruz. Bunun dışında bir gariplik daha var ama bu bizim işimizi engellemiyor. Paketi açtığımız yerde muhasebeci-0.5-YTL dizini oluşuyor ama ayrıca bir de mkinstalldirs dosyası da açılan paketten çıkıyor.

[tanju@gezgin muhasebeci]$ ls
mkinstalldirs*     muhasebeci-0.5-YTL/  muhasebeci-0.5-YTL.tar.gz

Ayrıca authors, install, news, readme, todo adlı dosyalar hem büyük hem de küçük harfler ile bulunuyor. Bunların küçük harfle olanlarını siliyoruz.

Açtığımız dizinin ismini karşılaştırma için muhasebeci-0.5.5 olarak değiştirip kullanacağız. İkon olarak muhasebeci-0.5.5/pixmaps/muhasebeci-icon.png dosyasını kullanarak gerbv örneğinde olduğu gibi muhasebeci-icons.tar.bz2 dosyasını oluşturup SOURCES alanına kopyalıyoruz. mkinstalldirs dosyasının garip yerinden dolayı muhasebeci-0.5.5 dizini ve mkinstalldirs dosyalarından muhasebeci-0.5.5.tar.bz2 paketini oluşturuyoruz ve bunu da SOURCES alanına kopyalıyoruz.

Aslında paket içinde bir muhasebeci.spec dosyası bulunuyor. Ancak bunu incelediğimizde Mandrake Linux gereklerini yerine getirmediğini görebiliriz. Linkler yerine dosyaları koyduktan sonra bu spec dosyasını kullanarak Mandrake Linux için de RPM oluşturabilirsiniz. Ancak bu Mandrake Linux RPM'leri ile uyumlu olmayacaktır. Mandrake Linux için hiçbir önemi olmayan dosyaları oluşturduğu halde gerekli olan menü dosyalarını ve ikonları oluşturmayacaktır. Bu nedenle kendi spec dosyamızı oluşturacağız.

%define name    muhasebeci
%define version 0.5.5
%define release YTLmdk

# Macros for in the menu-file.
%define section More applications/Finances
%define title   Muhasebeci
%define Summary Open Source Financial Application

Summary:        %Summary
Name:           %name
Version:        %version
Release:        %release
License:        GPL
Group:          Office
URL:            http://muhasebeci.sf.net
Packager:       Tanju TASCILAR <tanju@elektronist.com>

# Please add comment with the right url/downloadpage.
Source0:        %name-%version.tar.bz2

Source1:        %name-icons.tar.bz2

BuildRoot:      %_tmppath/%name-buildroot

# Buildrequires:
# Requires:  

%description
Muhasebeci uygulaması, Linux altında GPL olarak yazılan bir muhasebe programıdır. Uygulama MySQL veritabanini kullanir

%prep
%setup -q
%setup -q -T -D -a1 # unpack icons

%build
%configure
%make

%install
rm -rf %buildroot
%makeinstall

# Menu
mkdir -p %buildroot/%_menudir
cat > %buildroot/%_menudir/%name << EOF
?package(%name): \
command="%_bindir/%name" \
needs="X11" \
icon="%name.png" \
section="%section" \
title="%title" \
longtitle="%Summary"
EOF

# icon
%__install -D -m 644 %{name}-48.png %buildroot/%_liconsdir/%name.png
%__install -D -m 644 %{name}-32.png %buildroot/%_iconsdir/%name.png
%__install -D -m 644 %{name}-16.png %buildroot/%_miconsdir/%name.png

# Macro for locales
%find_lang %name

%post
%update_menus

%postun
%clean_menus

%clean
rm -rf %buildroot

%files -f %name.lang
%defattr(0755, root, root, 0755)
%_bindir/*
%defattr(0644, root, root, 0755)

%doc COPYING README INSTALL AUTHORS

%_menudir/*
%_miconsdir/*
%_iconsdir/*
%_liconsdir/*

%changelog

RPM oluşturmaya çalıştığımızda aşağıdaki hataları elde ediyoruz.

RP