inteltool.spec

Bartosz Świątek shadzik w gmail.com
Czw, 11 Cze 2009, 12:04:22 CEST


W dniu 11 czerwca 2009 11:43 użytkownik Daniel Dawid Majewski
<light-i w o2.pl> napisał:
> Pewnego dnia wpadła wieść od Bartosz Świątek i powiedziała :
>>> W załączniku spec do inteltool, buduje się z svn-a, wystarczy polecenie :
>>> $ rpmbuild -bb inteltool.spec
>>> Jeśli ktoś uzna to za stosowne, to niech przerobi na wersję "dropin".
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>> Version:        r4190.svn
>>
>> To na pewno nie jest prawda. Jesli nie znamy wersji bo nie jest
>> jednoznacznie udokumentowana uznajemy ze jest to wersja 0. Jest to
>> bezpieczne zalozenie bo jakakolwiek by potem wersje nie zalozyli, to
>> bedzie ona wieksza niz 0 i pozwoli na bezproblemowy upgrade (bez
>> stosowania Epoch)
>>
>>> Release:        1
>>
>> W zwiazku z powyzszym to tez jest oczywiscie zle.
>> Poprawnie powinienes na gorze gdzies zdefiniowac rewizje svnu i
>> release dac ulamkowy uwzgledniajac rewizje np. 0.%{_svn}.1
> OK, wersja/wypust w/g powyższych uwag w załączniku.
> Odnalazłem w źródłach oficjalnie zdefiniowaną wersję (inteltool.h:31):
> #define INTELTOOL_VERSION "1.0"
>
> Pytanie dodatkowe - czy dorzucenie '_svn' do wypustu (jak w załączniku) czemuś by zaszkodziło ? W ten sposób
> czytelniejsze jest pochodzenie źródeł.
>>
>>> License:        GPL v2
>>> Group:          Applications/System
>>> URL:            http://www.coreboot.org/Inteltool
>>> BuildRequires:  pciutils-devel
>>> BuildRequires:  rpm-build >= 4.3-0.20030610.21
>>> BuildRequires:  subversion
>>
>> Ekhem... To to chyba jasne ze jest bzdura. Nie?
> W związku z tym, że nie znalazłem na chwilę obecną żadnego oficjalnego archiwum (brak Source0) to niekoniecznie...
> Jest to wiec jedyna metoda aby zbudować sprawną paczkę, co więcej, do tego nie trzeba skryptu 'builder', wystarczy
> 'rpmbuild'. Sprawdziłem, to działa, dysponuję buildlogiem...
>>
>>> BuildRequires:  zlib-devel
>>> BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
>>>
>>> %define         _sbindir                /sbin
>>> %define         _svn_url                svn://coreboot.org/repos/trunk/util/inteltool
>>
>> Do wywalenie   ^^^^^^^^^^^^^
> A skąd źródła ?
>>
>>> %define         _revision       %(echo %{version} | sed -e 's/^r\\([[:digit:]]\\+\\)\\..*/\\1/')
>>
>> Uhm... Po co?
> Ok, wystarczy definicja na początku. Poprawione.
>>
>>> %description
>>> Inteltool is a small utility that provides some information about the
>>> Intel CPU/chipset hardware configuration (register contents, MSRs
>>> (need loading 'msr' kernel module), etc).
>>>
>>> %description -l pl.UTF-8
>>> Inteltool to podręczne narzędzie dostarczajace informacji o
>>> konfiguracji sprzętowej chipsetu/CPU Intela (zawartość rejestrów,
>>> MSR-y (potrzebne załadowanie modułu jądra 'msr') itp.).
>>>
>>> %prep
>>> %setup -q -c -T
>>> _REV=%{_revision}
> Tu skorygowałem (załącznik).
>>> _SVN_LL=`svn log -l 1 %{_svn_url} | sed -n -e '2p'`
>>> _LASTREV=`echo "$_SVN_LL" | sed -e 's/^r\\([[:digit:]]\\+\\)\\ .*/\\1/'`
>>> _LASTREVD=`echo "$_SVN_LL" | awk '{print $5}'`
>>> [ $_LASTREV -gt $_REV ] && echo "Newer revision found : r$_LASTREV from $_LASTREVD, notice to this spec !!!"
> Prosta metoda na sprawdzenie update od razu w specu.
>>> svn export --force -r $_REV %{_svn_url} ${PWD}
>>
>> Fuj fuj fuj. Po co?
> A z czego mam zbudować w obecnym stanie ?
> --
> Pozdrawiam,
> Daniel Dawid Majewski
> jabber:light-i/jid.pl
>
> # $Revision:$, $Date:$
> %define         _svn_rev                4190
> Summary:        Utility for recognize Intel HW (chipset/CPU) configuration information
> Summary(pl.UTF-8):      Narzędzie do rozpoznawania informacji konfiguracyjnych w sprzęcie Intela (chipset/CPU)
> Name:           inteltool
> Version:        1.0
> Release:        0.%{_svn_rev}_svn.1
> License:        GPL v2
> Group:          Applications/System
> URL:            http://www.coreboot.org/Inteltool
> BuildRequires:  pciutils-devel
> BuildRequires:  rpm-build >= 4.3-0.20030610.21
> BuildRequires:  subversion
> BuildRequires:  zlib-devel
> BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
>
> %define         _sbindir                /sbin
> %define         _svn_url                svn://coreboot.org/repos/trunk/util/inteltool
>
> %description
> Inteltool is a small utility that provides some information about the
> Intel CPU/chipset hardware configuration (register contents, MSRs
> (need loading 'msr' kernel module), etc).
>
> %description -l pl.UTF-8
> Inteltool to podręczne narzędzie dostarczajace informacji o
> konfiguracji sprzętowej chipsetu/CPU Intela (zawartość rejestrów,
> MSR-y (potrzebne załadowanie modułu jądra 'msr') itp.).
>
> %prep
> %setup -q -c -T
> _SVN_LL=`svn log -l 1 %{_svn_url} | sed -n -e '2p'`
> _LASTREV=`echo "$_SVN_LL" | sed -e 's/^r\\([[:digit:]]\\+\\)\\ .*/\\1/'`
> _LASTREVD=`echo "$_SVN_LL" | awk '{print $5}'`
> [ $_LASTREV -gt %{_svn_rev} ] && echo "Newer revision found : r$_LASTREV from $_LASTREVD, notice to this spec !!!"
> svn export --force -r %{_svn_rev} %{_svn_url} ${PWD}
>
> %build
> %{__make} \
>        CC='%{__cc}' \
>        CFLAGS='%{rpmcflags}' \
>        LDFLAGS='%{rpmldflags} -lpci -lz'
>
> %install
> rm -rf $RPM_BUILD_ROOT
> install -d $RPM_BUILD_ROOT{%{_sbindir},%{_mandir}/man8}
> install %{name} $RPM_BUILD_ROOT%{_sbindir}
> install %{name}.8 $RPM_BUILD_ROOT%{_mandir}/man8
>
> %clean
> rm -rf $RPM_BUILD_ROOT
>
> %files
> %defattr(644,root,root,755)
> %attr(755,root,root) %{_sbindir}/%{name}
> %{_mandir}/man8/%{name}.8*
>
> %define date    %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
> %changelog
> * %{date} PLD Team <feedback w pld-linux.org>
> All persons listed below can be reached at <cvs_login>@pld-linux.org
>
> $Log:$

Skomentuje to wszystko tak.

Ty robisz speca dla siebie, nie dla PLD. OK ja z tym problemu nie mam,
ale takiego speca zachowaj sobie prywatnie dla siebie.

Jak zwracam Ci uwage co do speca ktorego przesylasz na liste, to
zakladam ze chcesz zeby to byl spec dla PLD i znalazl sie w repo. Stad
mowie Ci jak powinno byc poprawnie. Spece same sobie zrodel nie
checkoutuja - to nie jest ich zadanie, od tego mamy distfiles i
developerow ktorzy zrodlo zcheckoutuja, zrobia tarballa, wysla na
dropin, distfiles pobierze i wszyscy sa szczesliwi bo nie trzeba w
specu wypisywac jakis svn exporotow i innych cudow.

Decyzja ostateczna nalezy jednak do Ciebie. Poprawiasz to tak jak (w
tym wypadku ja) PLD to chce i spec trafia do repo, albo olewasz (w tym
wypadku mnie) PLD i zostawiasz sobie tego speca lokalnie bo tak ci
pasuje.

-- 
"I'm living proof if you do one thing right in your career, you can
coast for a long time. A LOOOOONG time." -Guy Kawasaki


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