А спек писать - не так уж и сложно, фактически - это сценарий последовательности действий configure/make/make install. Возьмите любой спек, посмотрите.
А вы думаете я не интересовался? Взял, посмотрел. Ничего абсолютно не понял. SRC и бинарные пакеты animorph, mhgui, makehuman я нашёл только для Федоры и Сусе. Сусины rpm в Мандриву не стали, федорины стали. Поэтому объектом для изучения я попытался взять федорины src. Установил animorph-src, открыл spec. Сразу в глаза бросились какие-то патчи. Мама мия, откуда? Я в альте безо всяких патчей собрал же и работает. Ну, и какие тут слова заменяют сценарий ./configure, make & make install?
Name: animorph
Version: 0.3
Release: 3%{?dist}
Summary: 3D Animation and Morph Library
Group: System Environment/Libraries
License: GPLv3+
URL: http://www.dedalo-3d.com
Source0: http://downloads.sourceforge.net/makehuman/%{name}-%{version}.tar.gz
Patch0: animorph-0.2-pkgconfig.patch
Patch1: animorph-0.3-gcc43.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
3D Animation and Morph Library
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%setup -q
# We need to fix CRLF first
for f in animorph*.in AUTHORS COPYING TODO; do
sed -i 's/\r//' $f
touch -r README $f
done
%patch0 -p1 -b .pkgconfig
%patch1 -p1 -b .gcc43
# prevent timestramps changes from patch1
pushd include/animorph
for f in util.h BodySettings.h FaceGroup.h Hotspot.h;do
touch -r $f.gcc43 $f
done
popd
%build
%configure --disable-static
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p -c"
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
# Removes doc
rm -rf $RPM_BUILD_ROOT%{_prefix}/doc
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%doc AUTHORS TODO
%{_libdir}/*.so.*
%files devel
%defattr(-,root,root,-)
%{_includedir}/%{name}/
%{_libdir}/*.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Sat Feb 9 2008 kwizart < kwizart at gmail.com > - 0.3-3
- Rebuild for gcc43
* Fri Jan 4 2008 kwizart < kwizart at gmail.com > - 0.3-2
- Fix for gcc43
* Thu Jan 3 2008 kwizart < kwizart at gmail.com > - 0.3-1
- Update to 0.3
- License is now GPLv3+
* Wed Sep 12 2007 kwizart < kwizart at gmail.com > - 0.2-2
- Change license to GPLv2+ as said in the source code
- Remove BR glibc-headers
- Change summary (taken from animorph.pc)
* Fri Jul 20 2007 kwizart < kwizart at gmail.com > - 0.2-1
- Initial spec file for Fedora
Может, проще тот костыль до ума было довести тому, кто его создал, нежели каждому учиться разобраться в таком сложном тексте? Я собирал в бете Мандривы lmms-0.4.0 rc с помощью checkinstall. Нашлась проблема - после удаления этого пакета из системы домашний каталог стал собственностью рута и мне пришлось написать пару строчек в терминале:
chown lanuhum /home/lanuhum
chgrp lanuhum /home/lanuhum
Поверьте, это намного легче, чем составить spec. И, не стану утверждать, но уже в стабильной мандриве и сия чаша меня, по-моему, миновала. А разглядывать пакет в бинокль, выискивая отклонения от стандартов - это тоже не для меня. Для меня работает - хорошо, не работает - плохо. Уверен, что многие пакеты собраны не checkinstall, а не работают вообще. И какой смысл в их безупречной сборке, если они не работают? Я уже упоминал kompozer. Ругается на Мозиллу и всё, хоть ты на нём выспись...Во всех линуксах, и не у меня одного...