tlenlinux.spec
Patryk Zawadzki
patrys w pld-linux.org
Nie, 5 Kwi 2009, 15:39:01 CEST
2009/4/5 Daniel Dawid Majewski <light-i w o2.pl>:
>>> #%#bcond_with wla # with licence agreement
> Wstawiłem, bo docelowo ma być coś w rodzaju jak w adobe-flash
Wstawiłeś, ale do niczego nie służy. Ergo wstawiłeś śmieci.
>>> License: Commercial, redistributable (see TLEN.PL-LICENSE.txt)
Dlaczego zmieniasz nazwę pliku z licencją?
>>> %ifarch %{ix86} Source0: http://j.o2.pl/idi/%{name}-%{version}.bin
>>> # NoSource#0-md5: 5b75ce3c4b04feada51f84d457b6b9df %endif %ifarch
>>> %{x8664} Source0: http://j.o2.pl/idi/%{name}64-%{version}.bin #
>>> NoSource#0-md5: 0536702ab1c7f5e0b9939546974e3ae8 %endif NoSource: 0
> No niestety inaczej tego nie widzę, są tylko 2 wspierane architektury
Źródła nie mogą być dodawane warunkowo. src.rpm musi zawierać
wszystko, co jest potrzebne na wszystkich architekturach (hint:
excludearch, buildarch)
>>> Provides: tlenlinux
Po co to?
>>> %define _bindir /usr/bin %ifarch %{ix86} %define _libdir
>>> /usr/lib %endif %ifarch %{x8664} %define _libdir /usr/lib64
>>> %endif %define _datadir %{_libdir}/%{name} %define _sharedir
>>> /usr/share/%{name} %define _icondir
>>> /usr/share/icons/hicolor/64x64/apps %define _appldir
>>> /usr/share/applications
Po co to? To są domyślne wartości (z wyjątkiem _icondir, zamiast
którego powinno być %{_iconsdir}/hicolor/*/apps).
>>> mv data/license.txt ./TLEN.PL-LICENSE.txt cp -rf data/tlen_libs/*
Jak na początku... ("jesteśmy tylko... awangardą")
>>> ${RPM_BUILD_ROOT}%{_libdir} cp -f data/tlen-bin data/tlenqttest
>>> data/chrpath data/updater data/chrpath data/fix.sh
>>> ${RPM_BUILD_ROOT}%{_datadir} cp -rf data/plugins/*
>>> ${RPM_BUILD_ROOT}%{_datadir}/plugins cp -rf data/imageformats/*
>>> ${RPM_BUILD_ROOT}%{_datadir}/imageformats ln -sf
>>> %{_libdir}/libscreen_sender_widgets.so
>>> ${RPM_BUILD_ROOT}%{_datadir}/designer/libscreen_sender_widgets.so
Co to za metoda instalacji? Jak coś kopiujesz do katalogów
systemowych, to explicite, a nie globem.
>>> cp -f data/tlen ${RPM_BUILD_ROOT}%{_bindir} ln -s
>>> %{_datadir}/updater ${RPM_BUILD_ROOT}%{_bindir}/tlen-updater
Jak wyżej.
>>> cp -f data/icon.png ${RPM_BUILD_ROOT}%{_icondir}/%{name}.png cp -f
>>> tlen.desktop ${RPM_BUILD_ROOT}%{_appldir}/%{name}.desktop
> No niestety, tego nie buduje się ze źródeł, a wolałbym jakoś sensownie
> porozmieszczać pliki ( The PLD Way ? ;) )
Huh? desktop-file-utils
>>> %post %{_datadir}/chrpath -r %{_libdir} %{_datadir}/plugins/* >
>>> /dev/null %{_datadir}/chrpath -r %{_libdir} %{_libdir}/libtlen_*.so
>>> > /dev/null %{_datadir}/chrpath -r %{_libdir}
>>> %{_libdir}/libscreen_sender_widgets.so > /dev/null
>>> %{_datadir}/chrpath -r %{_libdir} %{_libdir}/libarchive_module.so >
>>> /dev/null %{_datadir}/chrpath -r %{_libdir}
>>> %{_libdir}/libdb_module.so > /dev/null %{_datadir}/chrpath -r
>>> %{_libdir} %{_libdir}/libgg.so > /dev/null %{_datadir}/chrpath -r
>>> %{_libdir} %{_datadir}/tlen-bin > /dev/null %{_datadir}/chrpath -r
>>> %{_libdir} %{_datadir}/updater > /dev/null
> To akurat jest związane z zawartoście skryptu install i wynikiem
> 'chrpath --help'
rpm-build sam nie zmienia rpath?
>>> %postun
Puste?
>>> %{_libdir}/*
%attr, nie używaj glob *.
>>> #%{_sharedir}/*
Co to?
>>> %attr(755,root,root) %{_datadir}/*
> Inaczej pliki nie wchodziły do paczki, albo nie były wykonywalne
Jeśli coś ma być wykonywalne, to wylistuj osobno, nie może być tak, że
nagle wykonywalne stają się pliki z danymi.
>> Pewnie parę wywaliłem których nie powinienem, poza tym brakuje BR: i
>> R:
> Requires tworzone są automatycznie z ldd, a BR to unpaker praktyczne
> obecny w każdym systemie Linux...
Praktycznie obecne to są tylko rpm i gcc.
--
Patryk Zawadzki
Więcej informacji o liście dyskusyjnej pld-devel-pl