czyli rezygnuję z obsługi unikodu i języków azjatyckich, wyłączam gui
(niedawno przestałem używać gvima, bo doszedłem do wniosku, że zwykły vim
w xtermie mi wystarcza. Tak, wiem, dziwak ze mnie. Ale ja naprawdę nie
korzystałem z żadnej z funkcji GUI - nie klikałem na ikony na pasku
narzędzi, zamiast wybierać ,,File-<Save'' robiłem ,,:w'', itp. GUI było
mi i tak niepotrzebne, więc...
Wyłączam też obsługę acl-i (mam XFS, ale nie używam acl-i - więc dla
pewności nie pozwolę vim-owi nawet spróbować ich użyć (gdyby kiedyś,
omyłkowo zadecydował że jednak mu wolno))
Bibliotekę ncurses mam skompilowaną w dwóch częściach - jako właściwą
bibliotekę libncurses i bibliotekę odpytywania terminali libtinfo. Vim
domyślnie próbowałby się skompilować w oparciu o ,,pełną'' wersję
libncurses, ale tak naprawdę do szczęścia wystarczy mu sama libtinfo.
Dlatego też jako biblioteki operującej na terminalu każę mu użyć
libtinfo.
Potem jeszcze wyłączam wsparcie dla X-ów i gpm, wyłączam ,,lokale'', no
i oczywiście zaznaczam kto też tak okaleczył Vima ;) (to ostatnie będzie
widać np. po ,,vim --version'')
,,make install DESTDIR=/shm'' udaje się, widzę tam potem taką strukturę
katalogów (pliki pomijam, zbyt wiele by ich było):
Katalog usr/bin zawiera główne binarki i parę
symlinków do nich. Trzeba będzie tam dodać symlink vim->vi, ze względu na moje
lenistwo itd.
Dodatkowo usunąć będę musiał binarkę vimtutor,
bo tutorial mi już nie będzie potrzebny.
Strony manuala pozostaną nienaruszone. A, nie, moment - jest tutaj strona
manuala dla vimtutor, ją też będę musiał usunąć
(skoro usuwam vimtutor, to po co mi manual do
niego?)
Katalog usr/share/vim/vim62b/ zawiera różne luźne
pliki i podkatalogi. Praktycznie wszystko tutaj jest potrzebne vimowi do
pracy, ale widzę że będę mógł wywalić katalog lang,
bo zawiera tylko i wyłącznie pliki związane z menu w różnych językach (a ja
nie używam tak czy siak NLS). Taki sam los czeka katalog tutor. Oglądam też zawartość katalogu tools... nie, on zawiera tylko jakieś głupie dodatki, też
mi się nie przyda. Hmm, to samo chyba mogę powiedzieć i o katalogu keymap - on i tak nie będzie mi potrzebny do normalnego
pisania tekstów. Reszta katalogów musi pozostać - doc zawiera pliki dla ,,online help'' Vima, pozostałe
zawierają schematy kolorów, wtyczki dla poszczególnych typów plików, reguły
kolorowania składni itp. Jedyny katalog który można by jeszcze w miarę
bezpiecznie usunąć, to macros. Ale ja go sobie
zachowam, może mi się przydać jako zbiór przykładów gdy samemu zechcę
skrobnąć kilka poważniejszych makr.
3. Plik .spec
Summary: Edytor programisty "Vi Improved"
Name: vim
Version: %(date +%Y%m%d)
Release: 1
License: GPL
Group: Edytory
BuildRoot: /var/tmp/%{name}-%{version}
%description
Vim jest jednym z najlepszych edytorów na świecie (jeśli nie najlepszym).
Jest szybki, konfigurowalny, skryptowalny, i w dużej mierze kompatybilny
z najpopularniejszym w świecie Unices edytorem "Vi"
%prep
%setup -q -c -T
cp -a /home/grzegorz/CVS/vim/* .
%build
%configure --disable-multibyte --disable-hangulinput --enable-gui=no \
--without-gnome --disable-acl --with-tlib=tinfo --disable-gpm \
--disable-nls --without-x --with-compiledby=Hoppke
make
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
cd %{buildroot}%{_bindir}
ln -s vim vi
rm vimtutor
rm %{buildroot}%{_mandir}/man1/vimtutor.1
cd %{buildroot}%{_datadir}/vim/vim*
rm -rf lang tools tutor keymap
%files
%defattr(0644,root,root,0755)
%attr(0755,root,root)%{_bindir}/*
%{_mandir}/man*/*.gz
%{_datadir}/vim
%clean
rm -rf %{buildroot} %{_builddir}/%{buildsubdir}
Preambuły nie trzeba opisywać, tag z wersją jest generowany identycznie jak
w przypadku Midnight Commandera. Sekcja %prep też jest identyczna jak
i poprzednio. Jedyna ,,nowość'' dotyczy sekcji %install, gdzie po
zainstalowaniu plików najpierw wchodzę do katalogu bin, tworzę tam symlink od vi do
vim oraz usuwam vimtutor.
Potem usuwam jeszcze jego stronę manuala i te podkatalogi lang tools tutor keymap. Tutaj może tylko pokażę, w jaki
sposób wchodzę do katalogu usr/share/vim/vim62b/
- załatwia to linijka
cd %{buildroot}%{_datadir}/vim/vim*
Dzięki tej gwiazdce nie muszę używać numeru wersji vim-a. Bo prawdę mówiąc,
to ja tego numeru nie znam. Teraz gdy np. z wersji 6.2beta vim przeskoczy na
,,pełną'' 6.2, to ja nie będę musiał zmieniać pliku .spec. Ot, drobnostka,
ale takie właśnie drobnostki ułatwiają życie.
Sekcja %files jest banalna, standardowe linijki dla binarek i manuali.
I jedna dodatkowa załączająca /usr/share/vim wraz
z zawartością. W porównaniu z Midnight Commanderem tym razem poszło
wyjątkowo łatwo, a to dlatego, że nie trzeba było kombinować z prawami
dostępu.
4. Budowanie pakietu udaje się za pierwszym podejściem. Ha! :)