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