Ostatni pakiet jaki poddam oglądowi w tym artykule to zgv. Zgv to bardzo
sympatyczna i dopracowana przeglądarka używająca svgalib. Jeśli nie używasz
framebuffera, to Zgv pewnie ci się spodoba.
1. Źródła od jakiegoś już czasu nie są aktualizowane. Ale Zgv jakoś
specjalnie tego nie potrzebuje, swoje zadania wypełnia dobrze i daje się
nadal kompilować coraz nowszymi wersjami gcc.
2. Próbna instalacja.
Zgv jest podobna do smartmontools - też używa tylko gotowego Makefile. Flagi
kompilatora da się tak samo przekazać w linii poleceń, przy czym trzeba
dodatkowo przekazać jedną opcję "-D..." wskazującą na bazę kolorów X-ów
- jest ona wykorzystywana przy pokazywaniu niektórych plików .xpm. Można
skompilować i bez tego, ale że mam X-y zainstalowane to nic mi nie szkodzi.
Zgv nie zna zmiennej $DESTDIR, ale instalację można przekierować
redefiniując po kompilacji zmienną PREFIX. Tyle, że Zgv tak samo jak
smartmontools próbuje zmieniać właściciela/grupę plików na root.root. Nawet
nie chce mi się zastanawiać, po prostu zrobię tak samo, jak w przypadku
smartmontools. Zainstaluję ręcznie. Tutaj Makefile jest ciekawszy, bo główny
Makefile tylko ,,zsyła'' proces instalacji do podkatalogów src i doc, Analizuję sobie tamte
Makefile i dochodzę do wniosku, że Zgv instaluje tylko binarkę i strony
info/man. Hej, tyle to i ja potrafię :) Będzie łatwo.
3. Plik .spec
Summary: Przeglądarka grafiki oparta na svgalib
Name: zgv
Version: 5.6
Release: 1
License: GPL
Group: Grafika
Source: %{name}-%{version}.tar.bz2
BuildRoot: /var/tmp/%{name}-%{version}
%description
Zgv potrafi szybko i sprawnie wyświetlać pliki graficzne na vt,
wykorzystując do tego celu bibliotekę svgalib. Może pokazywać miniaturki
itp. W ogóle to dobry kawałek softu.
%prep
%setup -q
%build
make CFLAGS="$CFLAGS -DRGB_DB_FILE=\\\"\${RGB_DB}\\\""
%install
rm -rf %{buildroot}
install -D %{_builddir}/%{buildsubdir}/src/zgv %{buildroot}%{_bindir}/zgv
install -D %{_builddir}/%{buildsubdir}/doc/zgv.1 %{buildroot}%{_mandir}/man1/zgv.1
install -d %{buildroot}%{_infodir}
makeinfo --no-split %{_builddir}/%{buildsubdir}/doc/zgv.texi -o %{buildroot}%{_infodir}/zgv.info
%files
%defattr(0644,root,root,0755)
%{_mandir}/man1/zgv.1.gz
%attr(0755,root,root)%{_bindir}/zgv
%{_infodir}/zgv.info.gz
%clean
rm -rf %{buildroot} %{_builddir}/%{buildsubdir}
%post
install-info %{_infodir}/zgv.info.gz %{_infodir}/dir
%preun
install-info --delete %{_infodir}/zgv.info.gz %{_infodir}/dir
Plik jest prosty. Przy kompilacji redefiniuję odpowiednio CFLAGS na potrzeby
make (przełącznik RGB_DB_FILE przekleiłem z oryginalnego pliku Makefile).
Instalacja też jest prosta, z katalogu src kopiuję
binarkę, z doc manual. Potem tylko generuję
pojedynczy dokument info i umieszczam go na właściwym miejscu. Zrezygnowałem
z podawania BuildReq:/PreReq: w preambule, bo mi się po prostu już nie
chciało wpisywać tam zależności od install-info i makeinfo :) Gdy robi się
pakiety dla siebie, to można sobie na to pozwolić. Sekcja %files jest
nieciekawa, a sekcje %post i %preun standardowe.
4. Budowanie pakietu.
Pakiet się buduje i jest po chwili gotowy do instalacji. Więcej naprawdę nie
można wymagać.