Ghid pentru impachetat rpm.

3 posts / 0 new
Last post
symbianflo
symbianflo's picture
Ghid pentru impachetat rpm.
      Dedic presentul ghid lui Gael Duval caruia ii multumesc
      ( din  motive personale trebuie sa incep asa...chiar daca stiu ca nu o sa-l citeasca niciodata)
      ##############################################
      Dupa cum am promis voi incerca , sa scriu un ghid pt a construi pachete rpm ptr. mandriva
      din surse.
      • Cuvint inainte
        Nu voi incepe sa descriu ce este un rpm sau src.rpm , sunt destule ghiduri facute da alti
        si nici nu incerc sa inlocuiesc alte ghiduri facute de altii cu prezentul ghid, incerc numai sa descriu
        ceea ce fac eu si daca respecta sau nu standardele impuse de anumite reguli mandriva
        nu folositi ghidul meu .Acestea fiind zise hai sa incepem

      #################################
      1.Prima parte: Ceea ce va trebuie pentru "rebuild"
      Voi descrie cum se ajunge la un pachet rpm pornind de la un pachet sursa.rpm
      adica src.rpm
      -Software necesar
      rpm-build
      rpm-helper
      rpm-mandriva-setup-build
      spec-helper
      -optional- ( le menzionez pt amorul artei eu nu le folosecsc)
      rpmlint
      java-rpmbuild
      rpmxdgtool
      perl-Youri-Package-RPM-Updater
      rpm-manbo-setup-build
      rpm-mandriva-setup
      perl-RPM4
      python-rpm
      * nu toate din cele optionale o sa le gasiti pe mediile oficiale
      #######################################
      PRIN PREZENTUL GHID VA CER  
      DE ANU  FOLOSI
      SUB NICI O FORMA
       ROOT SAU ADMIN
      USER,
      TOT SE FACE DIN USER
      ,PRIN URMARE  NIMIC:
      "SU"
      "SU -"
      "KDESU"
      "GTKSU"
      " SUDO"
      NU SE VOR FOLOSI

      ##########################################
      2.Rebuild din un src.rpm
      Acestea fiind zise  sa incepem cu metoda cea mai usoara  adica:
      -Incepem cu descarcatul pachetului "nume.src.rpm" si il descarcam in folderul
      /home/user/dowload ,
      -ne spostam in folderul  dowload si lansam rebuild cu

    [/*:m]

cd ~/download ; rpmbuild --rebuild nume.src.rpm
cu aceasta ocazie vi se va crea  folderul "rpmbuild" in /home/user
cu urmatorul continut:
BUILD,
BUILDROOT,
RPMS,
-noarch
-x86_64 (sau i586 in baza arhitecturi voastre)**(1)**
SOURCES,
SRPMS,
SPECS,
In urma rebuild-ului pachetele "nume.rpm, lib64nume.rpm, lib64nume-devel.rpm etc" se vor gasi in
/home/user/rpmbuild/RPMS/x86_64 ( sau i686 sau noarch sau altele da ajunge astea)

In cazul in care nu vi se creaza structura presenta lansati :
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS/$x86_64,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}
Daca doriti sa colaborati cu noi sau mandriva sau alte medii va trebui sa va creati
il file .rpmmacros si sa-l salvati in /home/user
pt a clarifica mai bine va copiez macrosurile mele pe care le veti adapta :

%_topdir                %(echo $HOME)/rpmbuild
%_tmppath               %(echo $HOME)/rpmbuild/tmp
%_signature             gpg
%_gpg_name              Mandrivalinux
%_gpg_path              ~/.gnupg
%packager               Falticska Florin
%distribution           Mandriva Linux
%vendor                 Mandrivausers Romania Backports
%distsuffix             mrb

(creati cu un txt editor un file de text cu acest continut si salvatil cu numele .rpmmacros)**(2)**

**(1)** va sfatuiesc ca in cazul in care aveti instalat un sistem pe 32 de biti sa folositi --target i686
deci comanda va fi :
rpmbuild --rebuild --target i686 nume.src.rpm
**(2)** eu nu fac asa , pe specurile mele vocile "Packager" si "Vendor" sunt hardcoded
(avind in vedere ca nu sunt sub papucul mdv imi pot permite   ;D da voi nu faceti ca si mine )

SFIRSIT PRIMUL EPISOD DIN TELEVELEHELENOVELA " Ghid pentru impachetat rpm."
( VA URMA)

[/]

symbianflo
symbianflo's picture
Re: Ghid pentru impachetat rpm.

2.Rebuild din un src.rpm
(continuare ....)

Deci revin , sansele ca sa vi se compileze un pachet src.rpm
din prima sunt zero ( sau aproape zero) 99% din errori
sunt de genul "libname-devel not found" astea sunt si cel mai usor de rezolvat :
urpmi libname-devel
dupa care relansati procedutra de rebuild ,( s-ar putea sa repetati citeva ori instalarile
de librari care va lipsesc  , daca dependentele sunt multe se poate intimpla ca rpmbuild
nu le citeste pina la capat si cind lansati rpmbuild -- nume.src.rpm sa va repete
ca nu gaseste o alta librarie , nici o problema , repetati instalarea cu urpmi  si relansati rebuild )
Restul de erori ca vi se pot intimpla le vom discuta una cite una ( eventual)
In cazul in care toate-s bune si frumoase , rpm-urile rezultate in urma compilari le veti gasi in .
/home/user/rpmbuild/RPMS/x86_64 ( sau noarch sau i686)
in  cazul in care nu vi se compileaza pachetul , in afara de mesajul de eroare din shell
aveti si logfile-ul corespunzator erori in /home/user/rpmbuild/tmp , il deschideti cu un editor de text
pentu a avea mai multe informatti  in legatura cu eroarea .**(1)**

Acum ajunge ptr astazi ca am de impachetat ceva  ;D

**(1)** Regula valabila pentriu orice fel de build , orice eroare va genereaza
un logfile in tmp deci amintizi-va ca din cind in cind sa goliti folderul tmp
va urma


http://www.mandrivausers.ro/ MRB aint no shit , :p Linux user number 507107 Nu dați banii pe prostii, puneți Linux pe PISI ![ARLUG]

Unix is user-friendly. It’s just very selective about who its friends are

symbianflo
symbianflo's picture
PRIMA PARTE : PACHET SCRIS IN QT COMPILAT CU QMAKE

# headerul specurilor il folosec numai cu caracter estetic 

######################################################
# SpecFile: minitube.spec 
# Generato: http://www.mandrivausers.ro/
# MRB-Falticska Florin
######################################################

# Folosesc ccache pentru a ajuta compilatorul se accelereze compilarea 
# econosind timpul alegere optionala , nu e un standard mdv faceti cum vreti
%define use_ccache	1
%define ccachedir	~/.ccache-OOo%{mdvsuffix}
%{?_with_ccache: %global use_ccache 1}
%{?_without_ccache: %global use_ccache 0}
#############################################################
# daca v-ati creat .rpmbuild-macros nu aveti nevoie de asta 
%define  distsuffix mrb
############################################################
# nu compilez cu debug pt ca nu am de gind sa fac debug si ptr ca 
# a compila un pachet in plus as pierde timp ,(debug  in general e greu si mare )
%define debug_package	%{nil}
###############################
# definire folderul "data" nu este un standard variaza de la pachet la pachet
# deci voi nu trebuie sa il flositi decit daca in documentatia pachetului
# este specificat necesitatea creeri $DATADIR
%define _datadir /usr/share
#######################################################
# NU FACETI CA MINE DACA AVETI RPMBUILD-MACROS IN HOME 
# NU TREBUIE SA IMPUNETI HARDCODING PE PACKAGER SI VENDOR

Vendor:		MandrivaUsers.Ro 
Packager:	Falticska Florin
############################################################
# aceste informatii sunt headerul sursei, in plus ttrebuie sa va alegeti un numar de release 
# am ales 69 pt ca imi place ying&yang (fara referinte sexuale ,please)
Name: 		minitube
Summary: 	Minitube is a native YouTube client
Version: 	0.8
Release: 	%mkrel 69.1
############################################################
# licenta este prevazuta in documentatia  sursei si specul vostru 
# va avea aceeasi licienta ( in acest caz ), toate versiunile de GPL
# prevad asta , alte tipuri de liciente tre sa vi le cititi si voi 
License: 	GPLv2+
##########################################################
# aici e o problema ptr ca mandriva schimba grupul de la o release la alta deci 
# in acest caz video este corect in 2009.1 si in 2010.0 devine :Application/video
Group: 		Video
#############################################################
#adresa de home page si sursa folosita , info obligatori daca e sub GPL
URL:		http://flavio.tordini.org/minitube
Source0:	http://flavio.tordini.org/files/minitube/minitube-src-0.8.tar.gz
################################################################
# dependinte ptr build , de obicei sunt toate headeruri adica numelib-devel
BuildRequires: 	phonon-devel
BuildRequires:	qt4-devel
#############################################################
# dependente ptr instalarea pachetului rpm de obicei sunt librarii adica numelib
Requires(post):	desktop-file-utils
Requires(postun):	desktop-file-utils
Requires:	qt4-common phonon-gstreamer ,gstreamer0.10-faad,xine-faad
##################################################################
# crearea folderului temporar ptr build 
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
######################################################
# obligatoriu , si nu depasiti 170 de caracter pe rind pauze incluse
%description
Minitube is a native YouTube client. 
With it you can watch YouTube videos in a new way: you type a 
keyword, Minitube gives you an endless video stream. 
Minitube does not require the Flash Player. 
Minitube is not about cloning the original 
Youtube web interface, it strives to create a new TV-like experience.
#########################################################
#dezarhiveaza sursa , quiet ,nume 
%prep
%setup -q -n %{name}
########################################
# in acest caz ca si compilator se foloseste qmake ,pachetul sursa  fiind scris in qt,
# compilatori se aleg in baza limbajului sursei, cititi documentatia 
# sursei ptr mai multe informatii, in qmake nu se va folosi 
# clasicul ./configure make && makeinstall 
%build
export QTDIR=%{qt4dir}
%qmake_qt4 minitube.pro 

%make 
##############################################################
# aici se instaleaza librariile din %{_tmppath} in $BUILDROOT
# si e partea cea mai delicata , ptr ca tre sa cunoasteti bine structura 
# sistemului vostru 
%install
# goleste $BUILDROOT *****OBLIGATORIU****
rm -rf $RPM_BUILD_ROOT


# menu
# INSTALEAZA SI DA PERMISURILE  NECESARE FILE-UL DESKTOP 
# (ala care il veti gasi in meniu dupa instalarea pachetului)
install -d -m 755 %{buildroot}%{_datadir}/applications/
install -m 644 %{name}.desktop %{buildroot}%{_datadir}/applications/


# icons
# creeaza folderele ptr icoane si da permisurile : 
install -d -m755 $RPM_BUILD_ROOT%{_liconsdir}
install -d -m755 $RPM_BUILD_ROOT%{_iconsdir}
install -d -m755 $RPM_BUILD_ROOT%{_miconsdir}
install -d -m755 $RPM_BUILD_ROOT%{_datadir}/pixmaps

# instaleaza icoanele  si da permisurile:
install -m 644 data/48x48/%{name}.png $RPM_BUILD_ROOT%{_liconsdir}/%{name}.png
install -m 644 data/32x32/%{name}.png $RPM_BUILD_ROOT%{_iconsdir}/%{name}.png
install -m 644 data/16x16/%{name}.png $RPM_BUILD_ROOT%{_miconsdir}/%{name}.png
install -m 644 data/%{name}.svg $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.svg


#binaries
# instaleaza binarele (executabilele) si da permisurile:
install -d -m 755 %{buildroot}%{_bindir}
install -m 755 build/target/minitube %{buildroot}%{_bindir}/

#lang
# instaleaza limbile si da permisurile:
install -d -m 755 %{buildroot}%{_datadir}/%{name}/locale
install -m 755  build/target/locale/*.qm %{buildroot}%{_datadir}/minitube/locale/
#########################################################################
# updateaza meniul dupa instalarea pachetului:
%if %mdkversion   minitube-08-69.1
- New release minitube.08 for http://www.mandrivausers.ro/
- HD video support
- Volume level and mute is restored accross sessions
- No icons in menus on Linux
- Croatian, Latvian, Galician, Hungarian and French translations
- MRB-Mandriva Users.Ro

* Sat Oct 24 2009 Falticska Florin  minitube-07-69.1
- First release  minitube.07 for http://www.mandrivausers.ro/
- first attempt for 2009.1 x86_64 build from scratch
- rpmlint's standard fixed paths ( mdv way not mine )
- MRB-Mandriva Users.Ro

Acum sa dezvoltam un pic  ;D
PRIMA PARTE : PACHET SCRIS  IN QT COMPILAT CU QMAKE
*************************************************************
Acum un pic mai pe larg fiecare parte a spec-ului

1:Headerul
--------------------------------------------------------------
# headerul specurilor il folosec numai cu caracter estetic

######################################################
# SpecFile: minitube.spec
# Generato: http://www.mandrivausers.ro/
# MRB-Falticska Florin
######################################################
-------------------------------------------
Cum am scris mai sus este pus numai ptr estetica , mie imi trebuie ptr ca
am "magazia" cu specuri si le indicizez in baza headerului , dar
voi nu trebuie sa-ol folositi nu influenteaza in nici un fel pachetul
fiind comentat tot.

2: Ccahe
-------------------------------------------------------
# Folosesc ccache pentru a ajuta compilatorul se accelereze compilarea
# econosind timpul alegere optionala , nu e un standard mdv faceti cum vreti
%define use_ccache 1
%define ccachedir ~/.ccache-OOo%{mdvsuffix}
%{?_with_ccache: %global use_ccache 1}
%{?_without_ccache: %global use_ccache 0}
----------------------------------------------------
daca aveti de gind sa folositi ccache tre sa-l instalati
#urpmi ccache
abilitind ccache se da posibilitate compilatorului
de a folosi si ccache si deci accelereaza
compilarea .
Mandriva nu-l foloseste dar nu-l interzice deci ramine la aprecierea voasta .

3:Distsufix
-----------------------------------------------------------
# daca v-ati creat .rpmbuild-macros nu aveti nevoie de asta
%define  distsuffix mrb
-------------------------------------------------------------
cum am scris deja mai sus nu trebuie daca aveti macrosurile
si aveti cheia voastra gpg deci NU FACETI CA MINE.

4:Debug
------------------------------------------------------
# nu compilez cu debug pt ca nu am de gind sa fac debug si ptr ca
# a compila un pachet in plus as pierde timp ,(debug  in general e greu si mare )
%define debug_package %{nil}
-----------------------------------------------------------
Voi trebuie sa va obisnuti sa faceti cum trebuie deci cu debug
daca int-un viitor ve-ti avea mediul vostru sa particpati in contrib/mdv
invatati sa le faceti cum trebuie .
Eu nu folosesc debug ptr ca :
-sunt grele si pierd prea mult timp
-debuging prefer sal fac discutind direct cu programatorul
( in cazul de fata me vorbesc cu Tondini cam lunar )
-stiu sa interpretez erorile si deci nu am nevoie de debug.

5:Vendor/Packager
---------------------------------------------------
# NU FACETI CA MINE DACA AVETI RPMBUILD-MACROS IN HOME
# NU TREBUIE SA IMPUNETI HARDCODING PE PACKAGER SI VENDOR

Vendor: MandrivaUsers.Ro
Packager: Falticska Florin
-------------------------------------------------------------
Deja am scris mai sus, nu faceti ca mine .

6:Headerul sursei impus si viitorului rpm
---------------------------------------------------------------
# aceste informatii sunt headerul sursei, in plus ttrebuie sa va alegeti un numar de release
# am ales 69 pt ca imi place ying&yang (fara aprpos-uri sexuale ,please)
Name: minitube
Summary: Minitube is a native YouTube client
Version: 0.8
Release: %mkrel 69.1
-----------------------------------------------------------
Nume,sumar si versiune sun cele ale sursei nu aveti voie sa le modificati (GPL)
release dati-va un numar de release care va place dar sa stiti ca daca e inferior
a numarului de release al unui alt vendor ( mdv ,mud, mcnl, etc) pachetul vostru
vine inlocuit de cel cu realease superior, care se pote sevita cu epoch da
despre epoch nu vorbim acum ptr ca e foarte periculos .

7:Licenta
---------------------------------------------------------------
# licenta este prevazuta in documentatia  sursei si specul vostru
# va avea aceeasi licienta ( in acest caz ), toate versiunile de GPL
# prevad asta , alte tipuri de liciente tre sa vi le cititi si voi
License: GPLv2+
---------------------------------------------------------------
Importanta si obligatorie , in general in pachtul sursa aveti su in file de text numit License
citi-l si vedeti imediat ce licenta are sursa .
Se poate intimpla ca licenta nu este prevazuta /recunoscuta de rpmlint in aceste cazuri
este cel mai bine sa va informati daca pachetul este opensource si daca aveti dreptul sa-l
distribuiti/modificati.

8:Group:
---------------------------------------------------------------------

# aici e o problema ptr ca mandriva schimba grupul de la o release la alta deci
# in acest caz video este corect in 2009.1 si in 2010.0 devine :Application/video
Group: Video
-----------------------------------------------------------------------
aici va trebui sa orientati in baza versiuni mdv ptr care compilati
si sa-l schimbati in functie de alternativele care vi le ofera
rpmlint.Exemplu in acest caz daca vreau sa il compilez si ptr 2009.1 si ptr 2010.0 :

%if %mdkversion = 201000
Group: Application/Video
%else
Group: Video
%endif
Cam asa ar fi correct , deci "daca -versiunea voastra atunci grupul e xxxxxxxxxxxxx
altfel xxxxxxxxxxxxxxxxxxx si inchideti conditia cu endif"

9:Adresa si sursa
-----------------------------------------------------------------------------
#adresa de home page si sursa folosita , info obligatori daca e sub GPL
URL: http://flavio.tordini.org/minitube
Source0: http://flavio.tordini.org/files/minitube/minitube-src-0.8.tar.gz
--------------------------------------------------------------------------------
In toate versiunile de GPL specul vostru ia licenta sursei deci e obligatoriu
sa mentionati home page si adresa sursei, daca nu este GPL tre sa scrieti ceea ce
va obliga respectiva licenta.
( insist su anumite chesti care par  fara importanta dar asta o sa ajute sa evitati
multe belele, credeti-ma pe cuvint)

10:Deps. ptr Build
--------------------------------------------------------------------------------
# dependinte ptr build , de obicei sunt toate headeruri adica numelib-devel
BuildRequires: phonon-devel
BuildRequires: qt4-devel
---------------------------------------------------------------------------------
ca sa puteti compila  dint-o sursa aveti nevoie de headerurile librariilor
pe care  le gasiti in README, HOWTO , INSTALL sau  altele  in sursa, pe care
trebuie sa  cunoasteti alias-ul in mandriva adica in cazul de fata librariile
scrise de autor sunt :
"headers for phonon & qt4 libs."
Ptr a afla alias-ul in mandriva incercati cu "rpm -q nume --provides"
Exemplu:
[symbianflo@symbianflo ~]$ rpm -q phonon-devel --provides
pkgconfig(phonon) = 4.3.0
devel(libphonon(64bit))
devel(libphononexperimental(64bit))
phonon-devel = 1:4.3.1-11mdv2009.1
phonon-devel(x86-64) = 1:4.3.1-11mdv2009.1
deci asta inseamna ca daca scriu "phonon-devel" va fi recunoscut chiar daca
va fi compilat pe alta masina cu alt --target/arhitectura
deci "phonon-devel" este recunoscut si de mdv32 si de mdv64 bit
-In cazul in care nu aveti nimic de acest tip descurcati-va XD

11:Deps ptr Install
--------------------------------------------------------------------------
# dependente ptr instalarea pachetului rpm de obicei sunt librarii adica numelib
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
Requires: qt4-common phonon-gstreamer ,gstreamer0.10-faad,xine-faad
-----------------------------------------------------------------------------
Cum zicea Duval sa faci un rpm e o joaca sa faci unul care functioneaza
este un un pic mai greu , deci aici trebue scrise toate librariile de care
are nevoie  rpm-ul ca sa se instaleze si sa functioneze.
In cazul in care in sursa nu aveti nici o informatie in legatura cu asta
sorry descurcati-va XD

12:Build's temp folder
--------------------------------------------------------------------------
# crearea folderului temporar ptr build
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-------------------------------------------------------------------------
Sunt multe moduri de al crea , nu este o regula , ceea ce conteaza
e sa-l creati si sa stiti unde .
Exemple :
%{_tmppath}/%{name}-%{version}-root
%{_tmppath}/%{name}-%{version}-build
%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%{_tmppath}/buildroot-%{name}-%{version}
etc

13:
------------------------------------------------------------------------------
# obligatoriu , si nu depasiti 170 de caracter pe rind pauze incluse
%description
Minitube is a native YouTube client.
With it you can watch YouTube videos in a new way: you type a
keyword, Minitube gives you an endless video stream.
Minitube does not require the Flash Player.
Minitube is not about cloning the original
Youtube web interface, it strives to create a new TV-like experience.
---------------------------------------------------------------------------------
informatii pe care le gasiti tot in pachetul sursa si daca GPL ,
( dupa cum am scris mai sus) obligatorii

14:Prep
-----------------------------------------------------------------
#dezarhiveaza sursa , quiet ,nume
%prep
%setup -q -n %{name}
---------------------------------------------------------------
este indicat folosirea flagurilor in acest caz :
-q = quiet scompacteaza fara sa va dea nici o informatie
in legatura cu tipul de arhiva , greutatea , nr de file etc.
-n = numele folderului aflat in arhiva sursa , ptr ca in sursa
pot fi mai multe foldere ptr mai multe arch sau OS etc
deci nu va intereseaza folderele ptr windows sau folderele ptr
alte arhictecturi decit a voastra.

15:
------------------------------------------------------------------------
# in acest caz ca si compilator se foloseste qmake ,pachetul sursa  fiind scris in qt,
# compilatori se aleg in baza limbajului sursei, cititi documentatia
# sursei ptr mai multe informatii, in qmake nu se va folosi
# clasicul ./configure make && makeinstall
%build
export QTDIR=%{qt4dir}
%qmake_qt4 minitube.pro

%make
----------------------------------------------------------------------------------
Alegerea compilatorului hmmm aici e la greu , te sa aveti notiuni de baza
in cele mai cunoscute limbaje de programare ptr a alege compilatorul, in
cazul in care in sursa nu aveti nici un ajutor, indicat ar fi sa recunoasteti
scripturile si atunci e mai usor .
Deci export "QTDIR=%{qt4dir}" exportind qtdir compilatorul stie unde sa
gaseasca folderul cu toate headerurile qt si lasind variabil macrosul
parcurs/qtdir vine ales in baza arhitecturi voastre ( in 586
qt sunt in /usr/lib/qt4 in schimb in x86_64 sunt in /usr/lib64/qt4
si pot fi si in /usr/lib/qt4 daca aveti instalate pachete  pe 32 de biti
care cer librariile qt )
%qmake_qt4 minitube.pro = cu ceasta variabila oblig qmake sa foloseasca qt4
( puteti sa aveti instalate si qt3 de exemplu) si tot aici ii spun ca
trebuie sa incarce scriptul nume.pro ptr a avea instructiunile de
compilat ( ptr mai multe info studiati manualele qmake si qt4)
Deci pina aici ar fi ceea ca face ./configure in sursele clasice
ptr linux.
%make = clasicul gnu make care controleaza generarea binarului/executabilului
( ptr alte info cititi-va manualul de make)
-intotdeauna in sectia %Build ve-ti avea un compilator si instructiile
care trebuie date compilatorului

16:Install
-------------------------------------------------------------------------------
# aici se instaleaza librariile din %{_tmppath} in $BUILDROOT
# si e partea cea mai delicata , ptr ca tre sa cunoasteti bine structura
# sistemului vostru
%install
# goleste $BUILDROOT *****OBLIGATORIU****
rm -rf $RPM_BUILD_ROOT

# menu
# INSTALEAZA SI DA PERMISURILE  NECESARE FILE-UL DESKTOP
# (ala care il veti gasi in meniu dupa instalarea pachetului)
install -d -m 755 %{buildroot}%{_datadir}/applications/
install -m 644 %{name}.desktop %{buildroot}%{_datadir}/applications/

# icons
# creeaza folderele ptr icoane si da permisurile :
install -d -m755 $RPM_BUILD_ROOT%{_liconsdir}
install -d -m755 $RPM_BUILD_ROOT%{_iconsdir}
install -d -m755 $RPM_BUILD_ROOT%{_miconsdir}
install -d -m755 $RPM_BUILD_ROOT%{_datadir}/pixmaps

# instaleaza icoanele  si da permisurile:
install -m 644 data/48x48/%{name}.png $RPM_BUILD_ROOT%{_liconsdir}/%{name}.png
install -m 644 data/32x32/%{name}.png $RPM_BUILD_ROOT%{_iconsdir}/%{name}.png
install -m 644 data/16x16/%{name}.png $RPM_BUILD_ROOT%{_miconsdir}/%{name}.png
install -m 644 data/%{name}.svg $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.svg

#binaries
# instaleaza binarele (executabilele) si da permisurile:
install -d -m 755 %{buildroot}%{_bindir}
install -m 755 build/target/minitube %{buildroot}%{_bindir}/

#lang
# instaleaza limbile si da permisurile:
install -d -m 755 %{buildroot}%{_datadir}/%{name}/locale
install -m 755  build/target/locale/*.qm %{buildroot}%{_datadir}/minitube/locale/
----------------------------------------------------------------------------------
aici nu prea am ce sa va zic fiecare pachet in parte vine studiat ce si cum genereaza
si pe urma  se instaleaza si se seteaza permisele , se poate intimpla in anumite cazuri
( cam putine ) sa va mearga bine si cu %makeinstall_std sa vi se instaleze
in mod corect tot ( mai ales cu pachetele vechi si consacrate , da ptr portinguri noi
nici o sansa....sorry)

17:Post&Postum
---------------------------------------------------------------------
# updateaza meniul dupa instalarea pachetului:
%if %mdkversion   minitube-08-69.1
- New release minitube.08 for http://www.mandrivausers.ro/
- HD video support
- Volume level and mute is restored accross sessions
- No icons in menus on Linux
- Croatian, Latvian, Galician, Hungarian and French translations
- MRB-Mandriva Users.Ro

* Sat Oct 24 2009 Falticska Florin minitube-07-69.1
- First release  minitube.07 for http://www.mandrivausers.ro/
- first attempt for 2009.1 x86_64 build from scratch
- rpmlint's standard fixed paths ( mdv way not mine )
- MRB-Mandriva Users.Ro
------------------------------------------------------------
In afara de schimbarile scrise de autor trebuie sa scrieti si ceea ce ati
facut voi

***********************************************************************
Citeva chichite care va vor da avertimente daca nu le respectati:
*****************************************************************
-Folositi ori pauza ori tab ( nu amindoua) , pe spec.
-Nu folositi macrosuri/variabile in changelog
-Inaite de a lansa rpmbuild --flag nume.spec controlati-l cu rpmlint
(cd folder_cu_specul_de_controlat ; rpmlint -i specul_de_controlat.spec)
-In descrierea pachetului ( %description) nu scrieti mai mult de
170 de caractere pe un rind ( evitati erori )
-intotdeauna verificati-va file-ul desktop cu desktop-file-validate
daca nu va da nici o eroare atunci e bine.
exemplu:
[symbianflo@symbianflo ~]$ desktop-file-validate /usr/share/applications/sopcast-player.desktop
/usr/share/applications/sopcast-player.desktop: warning: key "Encoding" in group "Desktop Entry" is deprecated
-Goliti intotdeauna buildroot inante de a incepe %istall , deci
obligatoriu sub %Install intotdeauna veti pune "rm -rf $RPM_BUILD_ROOT"
-In %Clean folsiti intotdeauna rm -rf $RPM_BUILD_ROOT evitati multe erori


http://www.mandrivausers.ro/ MRB aint no shit , :p Linux user number 507107 Nu dați banii pe prostii, puneți Linux pe PISI ![ARLUG]

Unix is user-friendly. It’s just very selective about who its friends are

Topic locked