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ć.