ELinks to ,,najlepsza, psiakrew, przeglądarka'' wśród przeglądarek
tekstowych. Zalety zaletami, mnie interesuje tylko spakietowanie tego
programu.
1. Źródła leżą w ~/CVS/elinks.
A przynajmniej tak tutaj zakładam :)
2. Próbna instalacja nie powinna być trudna. Co prawda po pobraniu
z CVS repozytorium ELinksa nie zawiera skryptu ./configure, ale załączony
./autogen.sh go wygeneruje. Czyli sytuacja podobna do MC, z tym że tutaj
nie uruchamia automatycznie . Po przejrzeniu dostępnych opcji mam już swój
zestaw:
Czyli: wyłączenie ustawicznego śledzenia zależności w źródłach (przydaje się
w sumie tylko gdy skompiluje się kod, uruchomi ./configure z innymi opcjami,
i jeszcze raz będzie kompilować źródła, bez ,,make clean''. W przypadku
budowania pakietu rpm do takich sytuacji nigdy nie dochodzi.
Potem wyłączam jeszcze obsługę ipv6 (nie używam), obsługę innych języków
interfejsu (nie używam, zresztą drastycznie zmniejszy to wynikową binarkę
ELinksa), wyłączam też wsparcie dla mechanizmu mailcap (ELinks ma swój
własny, bardziej rozbudowany mechanizm i to jego wolę używać - można co
prawda używać obydwu równolegle, ale hej, jeśli czegoś nie potrzebuję to po
co to wkompilowywać?). Włączam też ,,szybkie'' techniki operowania na
pamięci, wyłączam wsparcie dla zapisywania zakładek w plikach formatu XBEL
(taki standard pozwalający na wymianę zakładek między niektórymi
przeglądarkami), wyłączam też możliwość pisania skryptów pod ELinksa
w języku LUA (nie znam tego języka, więc...)
Kompilacja przechodzi bez większych oporów, ,,make install DESTDIR=/shm''
również. Otrzymuję takie drzewko plików:
Summary: Rozszerzona wersja Linksa
Name: elinks
Version: %(date +%Y%m%d)
Release: 1
License: GPL
Group: Internet
BuildRoot: /var/tmp/%{name}-%{version}
Obsoletes: links
%description
Rozszerzona wersja Linksa (tekstowej przeglądarki WWW), z dużo bardziej
liberalnymi założeniami dotyczącymi pożądanych cech czy stylu rozwijania.
ELinks w swoich założeniach ma być ulepszoną, bardziej rozbudowaną wersją
Linksa - zawierać więcej opcji, oferować większą konfigurowalność, a przy
tym mieć solidny, stabilny kod.
%prep
%setup -q -T -c
cp -a ~/CVS/elinks/* .
%build
./autogen.sh
%configure --disable-dependency-tracking --disable-ipv6 --disable-nls \
--disable-mailcap --enable-fastmem --without-xbel --without-lua
make
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
%files
%defattr(0644,root,root,0755)
%attr(0755,root,root)%{_bindir}/*
%{_mandir}/man*/*.gz
%clean
rm -rf %{buildroot} %{_builddir}/%{buildsubdir}
Preambuła jest prosta - automagiczny tag Version: itp. A, dodałem
Obsoletes: links
dzięki temu przy instalacji tego pakietu zostanie automatycznie usunięty
pakiet ,,links''. Nie ma raczej sensu posiadanie w systemie równolegle
linksa i elinksa, zwłaszcza że elinks jest w wielkiej mierze ,,kompatybilny
wstecz'' z linksem.
Sekcja %prep jest wzorowana na tych z Vima czy Midnight Commandera. Sekcja
%build to wywołanie skryptu ./autogen.sh
a następnie makra %configure z odpowiednimi opcjami.
Instalacja i sekcja %files są identyczne jak we wcześniej podanym szkielecie pliku .spec. Nie wymagały w ogóle zmieniania
na potrzeby tak prostego pakietu.
4. Budowanie pakietu sprowadza się do rpmbuild -bb
elinks.spec. I po krzyku.