Sweethome3d
RPM pour Sweethome3d sous Mageia 10
Logiciels / Graphisme photo et vidéo
Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Reprise du message précédent
Bonjour,Pour télécharger la source, j'ai modifié le fichier ~/.rpmmacros pour y ajouter:
%_disable_source_fetch %nil
Puis, j'utilise la commande "bm -ls", ce qui déclenche le téléchargement de la source si le fichier n'existe pas encore dans SOURCES.
rpmbuild doit faire la même chose, mais il impose d'utiliser ses répertoires.
Yves
jjska Membre non connecté
-
- Voir le profil du membre jjska
- Inscrit le : 21/07/2019
- Groupes :
seule la ligne ant doit être dans le build.
Si je place cd %{_builddir}/%{nom_minus}/%{name}-%{version}-src juste avant ant dans la section %build, Ant démarre la compilation
Si je place cd %{_builddir}/%{nom_minus}/%{name}-%{version}-src en fin de section %prep ant ne compile pas, j'ai le message suivant ; Buildfile: build.xml does not exist!
Toutefois si je supprime cd %{_builddir}/%{nom_minus}/%{name}-%{version}-src, et que j'écris :
%build
%ant -f "%{_builddir}/%{nom_minus}/%{name}-%{version}-src/build.xml"
cela fonctionne.
on ne fait pas de wget pendant la construction
Les sources sont récupérées manuellement avant de lancer le build.
... tandis que les sources de Firefox sont récupérées à la main avec wget.
Je pensais qu'il fallait récupérer les sources à partir du fichier spec et non manuellement
Ce qui m'étonne c'est qu'il n'y ait pas besoin de java pour exécuter le logiciel.
il faut bien java, voir ligne : Requires: java >= 17
Bonjour Papoteur
j'utilise la commande "bm -ls"
dans un terminal j'obtiens : bash: bm: commande introuvable
jjska
nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
La commande bm doit être fournie par un paquet, mais je ne peux pas voir s' il existe un paquet bm (pas de pc et madb.mageia.org ne veut pas que je consulte le site (en tout cas avec le navigateur que j' utilise (une histoite de cookie ou de referrer).
Edit: j' ai utilisé un autre navigateur et je n' ai pas de problème lors de la redirection madb.mageia.org -> madb.mageialinux-online.org...
Du coup il existe un paquet bm (et un paquet bmake). Je suppose que ç' est ceux là qu' il manquent.
Mais je suppose que Papoteur a installé un environnement de construction (avec mock/rpmbuild) qui a du procéder à l' installation de ces paquets.
Édité par nic80 Le 20/09/2026 à 19h59
Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
jjska :Je pensais qu'il fallait récupérer les sources à partir du fichier spec et non manuellement
Ce n'est pas ce que l'on fait en général. Il me semble que sur le système de build de Mageia, c'est totalement bloqué et ça ne fonctionnera pas. Et c'est quand même assez dangereux. Vu que tu ne vérifies pas l'intégrité de ce que tu récupère, tu pourrais te retrouver avec un malware et lancer sa construction.
jjska :il faut bien java, voir ligne : Requires: java >= 17
Je l'avais zappé

C'est étrange que tu sois obligé de spécifier le chemin alors que les autres spec lancent juste :
Code BASH :
%ant applicationAprès validation de papoteur et/ou Jybz ça devrait être ok de le mettre sur MLO, dans le dépôt Free. Même si en vrai il faudrait vérifier que des codecs propriétaires ne sont pas utilisés par certaines fonctionnalités. J'ai vu que Debian semblait désactiver une fonction vidéo car cela ne respectait pas les guides de Debian en matière de logiciel libre. Mais on n'est pas aussi strict.
Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Voici une version revue, dont la compilation passe.
Code TEXT :
#Le nom du logiciel en amont contient des lettres majuscules
#mais les directives d'emballage Linux demande des noms de paquets en minuscules
#La définition de cette macro permet de réutiliser le nom minuscule dans le fichier de spec
%define nom_minus sweethome3d
#désactiver la génération automatique des paquets de débogage
#pour supprimer le message suivant en fin de compilation du rpm
#Erreurs de compilation RPM :
#Fichier %files vide ~/rpmbuild/BUILD/SweetHome3D-7.5-build/sweethome3d/debugsourcefiles.list
%global debug_package %{nil}
Name: SweetHome3D
Version: 7.5
Release: %mkrel 1
Group: Graphics/3D
License: GPLv2
URL: https://www.%{nom_minus}.com/
Source: https://sourceforge.net/projects/%{nom_minus}/files/%{name}-source/%{name}-%{version}-src/%{name}-%{version}-src.zip
BuildArch: x86_64
#utilisation de ant pour creer le rpm sans re-empaquetage
BuildRequires: ant
Requires: java >= 17
Summary: Sweet Home 3D is a free interior design application
%description
Sweet Home 3D is a free interior design application,
which helps you draw the plan of your house,
arrange furniture on it and visit the results in 3D
%prep
%autosetup -n %{name}-%{version}-src
#suppression des fichiers non destinés à Linux
rm -rf install/macosx/
rm -rf install/portable/
rm -rf install/viewer/
rm -rf install/windows/
rm -rf lib/macosx/
rm -rf lib/windows/
rm -rf lib/yafaray/macosx/
rm -rf lib/yafaray/windows/
rm -rf lib/java3d-1.6/macosx/
rm -rf lib/java3d-1.6/windows/
%build
%ant -buildfile build.xml
%install
mkdir -p %{buildroot}/%{_datadir}/%{nom_minus}
cp install/%{name}-%{version}.jar %{buildroot}/%{_datadir}/%{nom_minus}
cp THIRDPARTY-LICENSE-*.TXT %{buildroot}/%{_datadir}/%{nom_minus}
cp COPYING.TXT %{buildroot}/%{_datadir}/%{nom_minus}
cp LICENSE.TXT %{buildroot}/%{_datadir}/%{nom_minus}
mkdir -p %{buildroot}%{_datadir}/icons/
cp -r src/com/eteks/%{nom_minus}/resources/frameIcon32x32.png %{buildroot}%{_datadir}/icons/%{nom_minus}.png
#création du fichier .deskop DEBUT
mkdir -p %{buildroot}%{_datadir}/applications/
cat > %{buildroot}%{_datadir}/applications/%{nom_minus}.desktop << EOF
[Desktop Entry]
Categories=Graphics
Comment[fr_FR]=Amenagement d'interieur et visualisation en 3D
Comment=Amenagement d'interieur et visualisation en 3D
Exec=/usr/bin/%{nom_minus}
GenericName[fr_FR]=
GenericName=%{name}
Icon=%{nom_minus}
MimeType=
Name[fr_FR]=%{name}
Name=%{name}
StartupNotify=true
Terminal=false
Type=Application
X-Desktop-File-Install-Version=0.26
X-KDE-SubstituteUID=false
X-KDE-Username=
EOF
#création du fichier .deskop FIN
#création du lanceur
mkdir -p %{buildroot}%{_bindir}/
cat > %{buildroot}%{_bindir}/%{nom_minus} << EOF
#!/bin/bash
java -jar %{_datadir}/%{nom_minus}/%{name}-%{version}.jar
EOF
#ajoute la permission d'exécution
chmod +x %{buildroot}%{_bindir}/%{nom_minus}
mkdir -p %{buildroot}%{_datadir}/license/%{nom_minus}
cp LICENSE.TXT %{buildroot}%{_datadir}/license/%{nom_minus}
rm -rf ~/.gradle/
%files
%doc LICENSE.TXT
%license LICENSE.TXT
%{_bindir}/%{nom_minus}
%{_datadir}
%changelog
* Sun Aug 30 2026 Jean-Jacques Skapski <mjjwe6@gmail.com>
premier rpm de la version 7.5 pour Mageia 10
La première difficulté venait de la manière dont l'archive était extraite, de manière non conventionnelle.
Je pense qu'ensuite, la position des instructions dans les mauvaises sections n'aidaient pas.
Je reconnais à Yuusha le fait que la méthode encapsule des librairies précompilées. C'est donc vers une section "external qu'il faudra orienter le soft. Et il ne pourra pas arriver dans l'état dans les dépôts de Mageia.
Yves
jjska Membre non connecté
-
- Voir le profil du membre jjska
- Inscrit le : 21/07/2019
- Groupes :
Je constate la suppression des lignes
# désactiver téléchargement automatique des sources pour pouvoir utiliser wget
#BuildRequires: wget
%global _disable_source_fetch 1
ce que je comprends si les sources sont chargées manuellement avant de lancer la création du RPM à partir du fichier spec
et la simplification de
%build
%ant -f "%{_builddir}/%{nom_minus}/%{name}-%{version}-src/build.xml"
et de
%install
mkdir -p %{buildroot}/%{_datadir}/%{nom_minus}
cp %{_builddir}/%{nom_minus}/%{name}-%{version}-src/install/%{name}-%{version}.jar %{buildroot}/%{_datadir}/%{nom_minus}
cp %{_builddir}/%{nom_minus}/%{name}-%{version}-src/THIRDPARTY-LICENSE-*.TXT %{buildroot}/%{_datadir}/%{nom_minus}
cp %{_builddir}/%{nom_minus}/%{name}-%{version}-src/COPYING.TXT %{buildroot}/%{_datadir}/%{nom_minus}
cp %{_builddir}/%{nom_minus}/%{name}-%{version}-src/LICENSE.TXT %{buildroot}/%{_datadir}/%{nom_minus}
mkdir -p %{buildroot}%{_datadir}/icons/
cp -r %{_builddir}/%{nom_minus}/%{name}-%{version}-src/src/com/eteks/%{nom_minus}/resources/frameIcon32x32.png %{buildroot}%{_datadir}/icons/%{nom_minus}.png
la modification aussi de
mkdir -p %{buildroot}%{_datadir}/doc/%{nom_minus}
cp %{_builddir}/%{nom_minus}/%{name}-%{version}-src/LICENSE.TXT %{buildroot}%{_datadir}/doc/%{nom_minus}
pour mettre la licence dans licence et non dans doc
mais alors pourquoi la licence est elle écrite à deux endroits
%files
%doc LICENSE.TXT
%license LICENSE.TXT
surtout que lorsque l'on ouvre le rpm avec ark on a 3 fois le fichier de licence
la licence dans share/doc/SweetyHome3D
dans share/licence/sweethome3d
et dans share/licences/SweetHome3D
(et même une quatrième fois dans share/sweethome3d)
La première difficulté venait de la manière dont l'archive était extraite, de manière non conventionnelle.
Je pense qu'ensuite, la position des instructions dans les mauvaises sections n'aidaient pas.
Pour moi la difficulté venait que le nom du programme utilise majuscule et minuscule, j'avais cru lire qu'il fallait uniquement des minuscules, et
je reconnais qu'à force de bidouiller j'en avait perdu mon latin, un regard extérieur est souvent bénéfique
Je reconnais à Yuusha le fait que la méthode encapsule des librairies précompilées
la liste des bibliothèques et des licences se trouvent ici : https://www.sweethome3d.com/fr/licence/
Vu que tu ne vérifies pas l'intégrité de ce que tu récupères, tu pourrais te retrouver avec un malware et lancer sa construction
je ne comprends pas que l'on puisse récupérer un malware en téléchargeant depuis le spec et que l'on ne récupérera pas ce même malware avec un téléchargeant manuel, dés lors que les deux téléchargements se font à partir d'une même adresse.
Et il ne pourra pas arriver dans l'état dans les dépôts de Mageia.
Pas de problème je n'ai pas l'ambition de devenir un paquageur breveté de Mageia, bien que cela soit ma seule et unique distribution (après Mandrake
)En conclusion ce spec me convient, si c'est bon pour vous qu'elle est la suite ?
PS grands mercis pour le temps que vous avez passé sur ce spec.
jjska
jjska Membre non connecté
-
- Voir le profil du membre jjska
- Inscrit le : 21/07/2019
- Groupes :
bm : Ses fonctionnalités permettent de traiter par lots des milliers de RPM à la fois
je n'ai pas la prétention de faire autant de RPM
jjska
Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
jjska :Je reconnais à Yuusha le fait que la méthode encapsule des librairies précompilées[/i]
la liste des bibliothèques et des licences se trouvent ici : https://www.sweethome3d.com/fr/licence/
Vu que tu tu utilises des binaires pré compilés, qu'est-ce qui te garanti que les logiciels sont bien ce annoncés ? Ce n'est pas un soucis de licence, mais de sécurité pour l'utilisateur final. Dans external, on lui dit Attention, j'ai des binaires dont je ne sais pas comment ils ont été construits, je ne peux donc rien garantir
Si tu veux éviter ça, tout en gardant des bibliothèques en bundle, tu peux faire ce que je fais avec Firefox : empaqueter certaines bibliothèques dont tu as besoin, mais en les recompilant toi-même, soit dans le spec (le mieux, soit avant). C'est interdit par Mageia, mais reste ok pour aller dans le free de MLO.
jjska :Vu que tu ne vérifies pas l'intégrité de ce que tu récupères, tu pourrais te retrouver avec un malware et lancer sa construction
je ne comprends pas que l'on puisse récupérer un malware en téléchargeant depuis le spec et que l'on ne récupérera pas ce même malware avec un téléchargeant manuel, dés lors que les deux téléchargements se font à partir d'une même adresse.
[i]
Il peut y avoir plusieurs raisons. Normalement, si tu télécharges les sources, tu es censé a minima, vérifier la somme MD5. Je dis normalement, parce qu’on ne le fait pas à chaque fois, même si ce n'est pas fou. Ensuite avec un wget dans le spec, ton build n'est pas forcément reproductible. Si tu as construit ton src.rpm à la date X et que je veux reprendre ton .src.rpm à la date Y, si le fichier en ligne a été modifié, vu que le spec fait un wget, je ne reproduirais pas ton build. Je builderai les nouvelles sources. S'il n'y a pas de wget, pas de soucis, je referais exactement ce que tu as fait.
Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
jjska :
cp %{_builddir}/%{nom_minus}/%{name}-%{version}-src/LICENSE.TXT %{buildroot}/%{_datadir}/%{nom_minus}
mkdir -p %{buildroot}%{_datadir}/doc/%{nom_minus}
cp %{_builddir}/%{nom_minus}/%{name}-%{version}-src/LICENSE.TXT %{buildroot}%{_datadir}/doc/%{nom_minus}
pour mettre la licence dans licence et non dans doc
mais alors pourquoi la licence est elle écrite à deux endroits
%files
%doc LICENSE.TXT
%license LICENSE.TXT
surtout que lorsque l'on ouvre le rpm avec ark on a 3 fois le fichier de licence
la licence dans share/doc/SweetyHome3D
dans share/licence/sweethome3d
et dans share/licences/SweetHome3D
(et même une quatrième fois dans share/sweethome3d)
Bien vu, il reste des scories.
On peut supprimer les deux "cp" de LICENCE.TXT et la ligne %doc. Pas testé.
"bm" n'est pas un truc lourd. Il permet de lancer rpmbuild, non pas en travaillant sur des répertoire fixes, tels que ~/SPECS, mais sur des répertoires dédiés, par exemple ~/sweethome3d/SPECS, et ainsi ne pas mélanger les fichiers. L'intérêt commence déjà au deuxième paquet à faire.
Citation :
En conclusion ce spec me convient, si c'est bon pour vous qu'elle est la suite ?
PS grands mercis pour le temps que vous avez passé sur ce spec.
Je vois avec jybz
Yves
jjska Membre non connecté
-
- Voir le profil du membre jjska
- Inscrit le : 21/07/2019
- Groupes :
Merci Yuusha pour tes explications
Pour Papoteur, si on supprime les lignes :
cp LICENSE.TXT %{buildroot}/%{_datadir}/%{nom_minus}
#mkdir -p %{buildroot}%{_datadir}/license/%{nom_minus}
#cp LICENSE.TXT %{buildroot}%{_datadir}/license/%{nom_minus}
#doc LICENSE.TXT
le fichier LICENSE.txt ne figure plus qu'une seul fois dans le rpm dans /usr/share/licenses/SweetHome3D
jjska
jjska Membre non connecté
-
- Voir le profil du membre jjska
- Inscrit le : 21/07/2019
- Groupes :
%prep
#suppression des licences relatives aux modèles supplémentaires qui ne sont pas chargés avec ce RPM
rm -rf THIRDPARTY-LICENSE-CONTRIBUTIONS.TXT
rm -rf THIRDPARTY-LICENSE-SCOPIA.TXT
rm -rf THIRDPARTY-LICENSE-KATORLEGAZ.TXT
rm -rf THIRDPARTY-LICENSE-BLENDSWAP.TXT
rm -rf THIRDPARTY-LICENSE-REALLUSION.TXT
jjska
jjska Membre non connecté
-
- Voir le profil du membre jjska
- Inscrit le : 21/07/2019
- Groupes :
Pour celles et ceux qui seraient intéressés, voici un fichier RPM mise à jour pour Mageia10 avec son fichier spec de création et leur fichier de hachage
sweethome3d_7.5.rpm
https://mega.nz/file/RjwUiBzD#88peq75ZBq0A5n-02gj4JbPveE64__4UmQf28d4rE58
sweethome3d_7.5.spec
https://mega.nz/file/1rogTbqY#A8mNMUcN5Ga83i1tOLav2eKmAuQ7GSeTLD4xz01u1u4
sweethome3d_7.5.hachage_rpm_et_spec
https://mega.nz/file/ZvAVhYiK#nlPGw5_15RB6Dulm_Dg_o6qQkm4ax55Hjn3d95IqB0M
jjska
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie