Connexion

Besoin d'aide ? Une question ? Un avis ? Rejoignez nous sur notre salon IRC pour clavarder

Forum

Packaging [Réglé] birt

pamputt Membre non connecté

Rang

Avatar

Inscrit le : 03/01/2010 à 18h27

Messages: 520

Le 17/06/2011 à 21h28
Bonjour, je m'exerce toujours au packaging. Afin d'aider à résoudre le bogue 1702, j'essaie de fournir un fichier spec fonctionnel. J'ai donc récupéré celui de Mandriva et j'essaie de l'adapter. Pour le moment, voici mon fichier .spec

Code :
Summary: BIRT - Batch Image Resizing Thing
Name: birt
Version: 2.1.0
Release: %mkrel 1
License: GPLv2+
Group: Graphics
Source: http://vrai.net/files/software_projects/birt/%{name}_2_1_0.tar.bz2
URL: http://vrai.net/project.php?project=birt
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
BuildRequires: qt4-devel
BuildRequires: imagemagick

%description
BIRT, the Batch Image Resizing Thing, is a simple application that
allows a large number of images to be resized in one go. Obviously
this is possible by scripting ImageMagick but it's usually somewhat
easier with a GUI. It was created in order to learn how to develop
using the Qt library, and to facilitate the maintenance of an online
photo album where each hi-res photo needs a low-res copy and a
thumbnail.

%prep
%setup -q -n %{name}_2_1_0

%build
sed -i -e 's,/usr/local/birt,/usr/share/birt,g' birt.pro
sed -i -e 's,$$INSTALL_PATH/,%{buildroot}%{_bindir},g' birt.pro
%{qt4bin}/qmake QMAKE_CXXFLAGS="%{optflags}"
make

%install
rm -rf %{buildroot}
install -d %{buildroot}%{_bindir}
%makeinstall INSTALL_ROOT=%{buildroot}

# install menu icon
mkdir -p %{buildroot}%{_iconsdir}/hicolor/{16x16,32x32,48x48,64x64,128x128,256x256}/apps
cp images/16x16/birt_icon_16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{name}.png
cp images/32x32/birt_icon_32x32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/%{name}.png
cp images/48x48/birt_icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{name}.png
cp images/64x64/birt_icon_64x64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/%{name}.png
cp images/128x128/birt_icon_128x128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/%{name}.png
cp images/256x256/birt_icon_256x256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/%{name}.png

# install menu entry
mkdir -p %{buildroot}%{_datadir}/applications/
cat << EOF > %{buildroot}%{_datadir}/applications/mandriva-%{name}.desktop
[Desktop Entry]
Type=Application
Categories=Qt;Graphics;2DGraphics;Viewer;
Name=BIRT - Batch Image Resizing Thing
Comment=GUI tool for easy resizing series of images
Exec=%{_bindir}/%{name}
Icon=%{name}
EOF

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc README.txt
%{_bindir}/*
%{_datadir}/applications/mandriva-%{name}.desktop
%{_iconsdir}/hicolor/*/apps/%{name}.png
%{_datadir}/%{name}

%changelog
* Fri Jun 17 2011 Toto <toto@mail.fr> 2.1.0-1.mga1
- Specfile adaptations for Mageia


Mon soucis pour le moment vient du fait que je voudrait récupérer les images contenues dans le dossier « images » de l'archive pour les placer in fine dans le répertoire usr/share/icons/hicolor/*/apps C'est ce que j'essaie de faire avec la ligne de la forme « cp images/48x48/birt_icon_48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/%{name}.png ». Cependant ça ne fonctionne pas car j'obtiens l'erreur suivante

Citation :
+ cp images/16x16/birt_icon_16x16.png /home/user/rpm/BUILDROOT/birt-2.1.0-1.mga1.x86_64/usr/share/icons/hicolor/16x16/apps/birt.png

cp: impossible d'évaluer « images/16x16/birt_icon_16x16.png »: Aucun fichier ou dossier de ce type

erreur: Mauvais status de sortie pour /home/pamputt/rpm/tmp/rpm-tmp.RusZ9r (%install)


Je pense que ce n'est pas très compliqué mais je ne suis pas encore très à l'aise avec ce langage.

Au passage, si vous voyez d'autres erreurs dans mon fichier, je suis à votre écoute (je le passerai dans rpmlint dès que j'aurai un rpm mais en attendant...)

Merci d'avance. Edité par pamputt Le 30/04/2012 à 18h45
   
DaaX Membre non connecté

Rang

Avatar

Administrateur

Inscrit le : 13/12/2007 à 14h16

Localisation : Montréal, Québec

Messages: 7592

Le 18/06/2011 à 03h28
Salut pamputt,

On s'est mis au packaging. Cool. ;)

Regarde ce code :

Code BASH :
mkdir -p %{buildroot}%{_iconsdir}/hicolor/{16x16,32x32,48x48,64x64,128x128,256x256}/apps


et regarde celui-là :

Code BASH :
cp images/16x16/birt_icon_16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{name}.png 


Où sont les dossiers images/16x16, etc ? S'ils existent, alors il faut peut-être faire :

cp /images/16x16/birt_icon_16x16.png


Site web    
pamputt Membre non connecté

Rang

Avatar

Inscrit le : 03/01/2010 à 18h27

Messages: 520

Le 18/06/2011 à 10h00
En fait le dossier « images » se trouve directement dans l'archive qui contient les sources. En gros dans le répertoire birt_2_1_0, il y a les fichiers sources ainsi que le dossier « images ». Je vais essayer de rajouter le / que tu m'as conseillé et voir ce que ça donne.
   
pamputt Membre non connecté

Rang

Avatar

Inscrit le : 03/01/2010 à 18h27

Messages: 520

Le 18/06/2011 à 10h44
Bon en fait j'ai trouvé la solution dans un autre fichier spec. D'une part le chemin /images/16x16/... n'était pas bon et d'autres part, j'ai remplacé la ligne
Code :
cp images/16x16/birt_icon_16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{name}.png

par celle-ci
Code :
install -D -m 644 images/birt_icon_16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/%{name}.png

Et maintenant mon fichier rpm est créé sans soucis. Je teste ça et j'envoie le spec sur le bugzilla.
   
DaaX Membre non connecté

Rang

Avatar

Administrateur

Inscrit le : 13/12/2007 à 14h16

Localisation : Montréal, Québec

Messages: 7592

Le 20/06/2011 à 23h15
Ah oui, ça fait drôlement plus propre.

On passe en résolu alors ?


Site web    
pamputt Membre non connecté

Rang

Avatar

Inscrit le : 03/01/2010 à 18h27

Messages: 520

Le 20/06/2011 à 23h33
Oui désolé pour le résolu je n'ai pas encore pris l'habitude. :gene5:
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie