rfc: vim 5.3

Marcin Korzonek mkorz w shadow.eu.org
Nie, 4 Paź 1998, 19:49:47 CEST


Witam,
Ponieważ vim-athena z develu ma przykry błąd, zacząłem przygotowywać
nowego speca dla mojego ulubionego edytora. Aktualną wersję dołączam do 
tego listu do dyskusji.
Cechy w skrócie - generacja 6 pakietów:
vim -- zawiera statycznie linkowaną minimalną (ale i tak ważącą 600 KB) 
	wersję vim-a, kompilowaną bez optymalizacji i lądującą w /bin
	jako vi, linki do niej: ex, view, rview oraz xxd, co do którego
	nie jestem przekonany, czy powinien być w tym pakiecie. Słowem,
	jest to typowa wersja do instalacji i używania na wypadek
	awarii. IMHO powinna wchodzić w skład instalacji bazowej.

vim-slang i
vim-ncurses -- bogatsze w możliwości (ale bez wsparcia dla pythona, tcl
	i perla) wersje vim, kompilowane z RPM_OPT_FLAGS. Pakiet zawiera
	plik /usr/bin/vim.[slang,ncurses] i odpowiedniego linka
	/usr/bin/vim (tworzonego w %post). Pakiety wzajemnie się 
	wykluczają Uwaga: wersja skompilowana ze slangiem nie chce na moim 
	testowym komputerze działać poprawnie.

vim-athena i 
vim-lesstif -- wersje vim-a pod X11, konfiguracja taka jak w
	vim-[slang,ncurses] (z tym, że jako biblioteka konsolowa
	jest termcap). 

vim-rt -- makra, dokumentacja, strony manuala i pliki składni do vima.

Taki podział wynikł z wcześniejszej dyskusji na liście, ale jest tylko
moją propozycją. Chętnie przyjmę wszystkie uwagi i poprawki (dlatego
jest rfc a nie info) ;)

Pozdrawiam wszystkich Vi(m)owców i nie tylko ;)	
 Marcin

P.S.0 Zauważyłem, że pojawił się syntax highlighting do speców. Wygląda
     nieziemsko ;)

P.S.1 Nie mogę się dobić do ftp.vim.org, więc w Source? brakuje pełnych
      URLi.
-- 
   Marcin Korzonek
   mkorz w shadow.eu.org
-------------- następna część ---------
Summary: Vim 5.3 static
Summary(pl): Vim 5.3a skompilowany statycznie
Name: vim
Version: 5.3
Release: 1
Source: %{name}-%{version}-src.tar.gz
Source1: %{name}-%{version}-rt.tar.gz
Source2: gvim.wmconfig
Copyright: GPL
Group: Applications/Editors
URL: http://www.vim.org/
Buildroot: /var/tmp/%{name}-%{version}-%{release}-root

%description
The classic Unix text editor. This version is build with minimal
feature and is installed in /bin as a rescue tool. The installation of
this package is STRONGLY recommended.

%description -l pl
Pakiet zawiera vim - klasyczny (unixowy) edytor tekstowy skompilowany 
statycznie. Instalacja tego pakietu jest MOCNO zalecana, może on pomóc
Tobie uratować system w czasie awarii.

%package rt 
Summary: Vim 5.3 runtime files
Summary(pl): Pliki przydatne edytorowi vim 
Group: Applications/Editors

%description rt
This package contains macros, documentation, syntax configuration and
manual pages for vim. If you want to take advantage of vim more powerful
features, you should install this package.

%description rt -l pl
W tym pakiecie znajdziesz dokumentację, makra, pliki konfiguracyjne i strony
podręcznika edytora vim. Jeżeli zamierzasz korzystać z vim-a, powinieneś
zainstalować ten pakiet.

%package slang
Summary: Vim 5.3 built with slang
Summary(pl): Vim 5.3 korzystający z bibliotek Slang
Group: Applications/Editors
Obsoletes: vim-ncurses

%description slang
The classic Unix text editor build with slang library. It adds
multiple windows, multi-level undo, block highliting, and many other
features to the standard vi program.

%description slang -l pl
Wersja edytora vim skompilowana z biblioteką slang. W porownaniu z
edytorem vi, ta wersja oferuje dodatkowo pracę z wieloma plikami,
wielopoziomowe operacje cofnij, bloki, podświetlanie składni i wiele
innych usprawnień.

%package ncurses 
Summary: Vim 5.3 built with ncurses
Summary(pl): Vim 5.3 korzystający z bibliotek ncurses
Group: Applications/Editors
Obsoletes: vim-slang

%description ncurses
The classic Unix text editor build with ncurses library. It adds
multiple windows, multi-level undo, block highliting, and many other
features to the standard vi program.

%description ncurses -l pl
Wersja edytora vim skompilowana z biblioteką ncurses. W porownaniu z
edytorem vi, ta wersja oferuje dodatkowo pracę z wieloma plikami,
wielopoziomowe operacje cofnij, bloki, podświetlanie składni i wiele
innych usprawnień.

%package athena
Summary: Vim 5.3 built with X11 and athena support
Summary(pl): Vim 5.3 pod X-Window korzystający z Athena Widget Set
Group: Applications/Editors
Obsoletes: vim-lesstif

%description athena 
The classic Unix text editor now also under X Window System! 
This version is build with Athena Widget Set. 

%description athena -l pl
Wersja edytora vim pracująca w graficznym środowisku X Window
z wykorzystaniem Athena Widget Set.

%package lesstif
Summary: Vim 5.3 built with X11 and LessTif support
Summary(pl): Vim 5.3 pod X-Window korzystający z bibliotek LessTif
Group: Applications/Editors
Obsoletes: vim-athena

%description lesstif
The classic Unix text editor now also under X Window System! 
This version is build with LessTiff.

%description lesstif -l pl
Wersja edytora vim pracująca w graficznym środowisku X Window
z wykorzystaniem LessTif.

#####################################################################

%prep
%setup -q  -b 1
#%patch -p1

%build
LDFLAGS=-static CFLAGS=-O ./configure --disable-gui --without-x \
--disable-perlinterp --disable-pythoninterp --disable-tclinterp \
--disable-cscope --enable-min-features --with-tlib=termcap --prefix=/usr
make
mv src/vim src/vim.termcap
mv src/xxd/xxd src/xxd.termcap

make distclean
LDFLAGS=-s CFLAGS="$RPM_OPT_FLAGS" ./configure --disable-gui --without-x \
--disable-perlinterp --disable-pythoninterp --disable-tclinterp \
--disable-cscope --with-tlib=slang --prefix=/usr
make
mv src/vim src/vim.slang

make distclean
LDFLAGS=-s CFLAGS="$RPM_OPT_FLAGS" ./configure --disable-gui --without-x \
--disable-perlinterp --disable-pythoninterp --disable-tclinterp \
--disable-cscope --with-tlib=ncurses --prefix=/usr
make
mv src/vim src/vim.ncurses

make distclean
LDFLAGS=-s CFLAGS="$RPM_OPT_FLAGS" ./configure --enable-gui=athena --with-x \
--disable-perlinterp --disable-pythoninterp --disable-tclinterp \
--disable-cscope --with-tlib=termcap --prefix=/usr
make
mv src/vim src/vim.athena

make distclean
LDFLAGS=-s CFLAGS="$RPM_OPT_FLAGS" ./configure --enable-gui=motif --with-x \
--disable-perlinterp --disable-pythoninterp --disable-tclinterp \
--disable-cscope --with-tlib=termcap --prefix=/usr
make
mv src/vim src/vim.lesstif

%install
rm -rf $RPM_BUILD_ROOT

install -d $RPM_BUILD_ROOT/etc/X11/wmconfig
install -d $RPM_BUILD_ROOT/bin
install -d $RPM_BUILD_ROOT/usr/{bin,X11R6/bin,share/vim,man/man1}

#make prefix=$RPM_BUILD_ROOT/usr install

install -s src/vim.termcap $RPM_BUILD_ROOT/bin/vi
install -s src/xxd.termcap $RPM_BUILD_ROOT/bin/xxd
install -s src/vim.slang $RPM_BUILD_ROOT/usr/bin/vim.slang
install -s src/vim.ncurses $RPM_BUILD_ROOT/usr/bin/vim.ncurses
install -s src/vim.athena $RPM_BUILD_ROOT/usr/X11R6/bin/gvim.athena
install -s src/vim.lesstif $RPM_BUILD_ROOT/usr/X11R6/bin/gvim.lesstif

install doc/vim.1 $RPM_BUILD_ROOT/usr/man/man1
install doc/xxd.1 $RPM_BUILD_ROOT/usr/man/man1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/vi.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/ex.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/view.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/gvim.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/gview.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/rvim.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/rview.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/rgvim.1
echo "so vim.1" >$RPM_BUILD_ROOT/usr/man/man1/rgview.1

cp -a macros $RPM_BUILD_ROOT/usr/share/vim/macros
cp -a syntax $RPM_BUILD_ROOT/usr/share/vim/syntax
cp -a tutor $RPM_BUILD_ROOT/usr/share/vim/tutor

install bugreport.vim menu.vim $RPM_BUILD_ROOT/usr/share/vim
install vimrc_example $RPM_BUILD_ROOT/usr/share/vim/vimrc
install %{SOURCE2} $RPM_BUILD_ROOT/etc/X11/wmconfig/gvim
touch $RPM_BUILD_ROOT/usr/bin/vim $RPM_BUILD_ROOT/usr/X11R6/bin/gvim

cd $RPM_BUILD_ROOT/bin
ln -sf vi ex
ln -sf vi view
ln -sf vi rview
cd ../usr/bin
ln -sf vim rvim
cd ../X11R6/bin
ln -sf gvim rgvim
ln -sf gvim gview
ln -sf gvim rgview

%clean
rm -rf $RPM_BUILD_ROOT

%post slang
ln -sf /usr/bin/vim.slang /usr/bin/vim

%post ncurses
ln -sf /usr/bin/vim.ncurses /usr/bin/vim

%post athena
ln -sf /usr/X11R6/bin/gvim.athena /usr/X11R6/bin/gvim

%post lesstif 
ln -sf /usr/X11R6/bin/gvim.lesstif /usr/X11R6/bin/gvim


%files
%defattr(0644, root, root, 755)
%attr(0711, root, root) /bin/*

%files slang
%attr(0711, root, root) /usr/bin/vim.slang
%attr(0711, root, root) /usr/bin/rvim
%attr(0711, root, root) %ghost /usr/bin/vim

%files ncurses
%attr(0711, root, root) /usr/bin/vim.ncurses
%attr(0711, root, root) /usr/bin/rvim
%attr(0711, root, root) %ghost /usr/bin/vim

%files athena
%attr(0711, root, root) /usr/X11R6/bin/gvim.athena
%attr(0711, root, root) /usr/X11R6/bin/rgvim
%attr(0711, root, root) /usr/X11R6/bin/rgview
%attr(0644, root, root) /etc/X11/wmconfig/gvim
%attr(0711, root, root) %ghost /usr/X11R6/bin/gvim

%files lesstif 
%attr(0711, root, root) /usr/X11R6/bin/gvim.lesstif
%attr(0711, root, root) /usr/X11R6/bin/rgvim
%attr(0711, root, root) /usr/X11R6/bin/rgview
%attr(0644, root, root) /etc/X11/wmconfig/gvim
%attr(0711, root, root) %ghost /usr/X11R6/bin/gvim

%files rt
%defattr(0644, root, root, 755)
%doc doc/*.txt
%dir /usr/share/vim
%attr(0644, root, man) /usr/man/man1/*
/usr/share/vim/macros
/usr/share/vim/syntax
/usr/share/vim/tutor
/usr/share/vim/bugreport.vim
%config %verify(not size mtime md5) /usr/share/vim/menu.vim
%config %verify(not size mtime md5) /usr/share/vim/vimrc

%changelog
* Sun Oct 04 1998 Marcin Korzonek <mkorz w shadow.eu.org>
[5.3-1]
- completely rewritten spec, added 5 subpackages

* Thu Aug 13 1998 Wojtek Slusarczyk <wojtek w shadow.eu.org>
[5.0-1d]
- build against glibc-2.1,
- translation modified for pl,
- added build-root support,
- added %changelog,
- fixed permissions fo ELF binaries.


Więcej informacji o liście dyskusyjnej pld-devel-pl