Wiki source for MageiaWelcomeToRpmBuilding


Show raw source

ToDo

a few hints are:
1) check licensing carefully (on web AND on a source file);
2) no changelog in spec file, to migrate older changelog, there is a separate procedure; ...
3) check buildrequires by using the BuildSystem
4) remember, there are filetriggers; so no useless %post stuff
5) think about sources in URLs and try to think about other people who might upgrade your spec file (ie: use urls for sources)
5b) try not to repackage upstream stuff (sometimes upstream stuff is not in a tarball)
6) try to split if it's usefull by dependencies or size (or possibly architecture differences)
7) do check what type of macros exist, eg: there is %apply_patches
8) if you do lots of patches it might be helpful to you to use git-svn
and last but not least 9) check the licenses!

To check: OpenSuse Build System does dependancy checking for you, also can use mock

===Some useful links for Mageia RPM building===
http://pkgsubmit.mageia.org/ can help you to follow progress

https://wiki.mageia.org/en/Becoming_a_Mageia_Packager
~- https://wiki.mageia.org/en/Packagers_RPM_tutorial first installation
~- https://wiki.mageia.org/en/Packaging_for_beginners first use, examples on existing rpm and src.rpm
~- https://wiki.mageia.org/en/RPM_Specfile_policy policies for spec files

http://cia.vc/stats/project/Mageia follow svn commits (**service disontinued**) :/

http://pkgsubmit.mageia.org/data/src.mdv.txt bootstrap

http://tmb.mine.nu/Mageia/Cauldron/mdv-SRPMS-pre-rpm5/ backup of src.rpm before rpm5 is introduced in cooker (as src.rpm are compatible between rpm4 and rpm5, this should not be that much useful, only for drastic changes to spec file


===I'm a beginner and want to understand packaging first steps===
Well here's a proposal : just begin with an existing package on your current distribution (which can be Mandriva Linux 2010.2 for example). Let's take for example boa constructor which is a python IDE.

~- find the rpm package name
~~- either in rpmdrake (there's a search area)
~~~- you should find rapidly that the package name is boa-constructor
~~- or using urpmq (or rpm if you've already installed it)
~~~- urpmq -a boa # finds another package for a software with a related name :/
~~~- urpmq -a constructor # finds the correct package : boa-constructor, more precisely


=== update for procedure ===
install rpm-build and create a new user dedicated to rpmbuild in order to rebuild packages (for example, to backport them from cauldron to current stable release Mageia 6)
I'm mainly following https://wiki.mageia.org/en/Packagers_RPM_tutorial

%%
# urpmi rpm-build
# su - baud123
$ mkdir -p ~/rpmbuild/{SRPMS,SOURCES,SPECS,tmp}
$ vi .rpmmacros # create file with appropriate content (see above URL)
$ cd rpmbuild/SRPMS/
$ wget http://ftp.free.fr/mirrors/mageia.org/distrib/cauldron/SRPMS/core/release/glances-2.10-2.mga7.src.rpm
$ cd ..
$ rpm -i SRPMS/glances-2.10-2.mga7.src.rpm
attention : utilisateur iurt inexistant - utilisation de root
attention : groupe iurt inexistant - utilisation de root
attention : utilisateur iurt inexistant - utilisation de root
attention : groupe iurt inexistant - utilisation de root
$ cd SPECS
$ rpmbuild -ba glances.spec # display re-building operations
# urpme glances
# rpm -ivh /home/baud123/rpmbuild/RPMS/noarch/glances-2.10-2.mga6.noarch.rpm

%%


=== Check for links to existing packages in many distribution ===

https://distrowatch.com/table.php?distribution=mageia

https://repology.org/

Par exemple, je cherchais gpg2 aujourd'hui :

- https://repology.org/projects/?search=gnupg2 => rien
- http://madb.mageia.org/package/show/application/0/name/gnupg2 => il est packagé chez Mageia (et d'autres distributions)
- https://distrowatch.com/packages.php => il s'appelle aussi gnupg et la liste de distrowatch est par nature limitée


J'ai fini par le trouver sous le nom gnupg :

- https://repology.org/projects/?search=gnupg&maintainer=&category=&inrepo=&notinrepo=&repos=&families=&repos_newest=&families_newest=


quel est le nom pivot utilisé ? Il y a des différences de nommage entre les distribution...
~- visiblement utilisation de règles de nommage : https://github.com/repology/repology-rules/blob/master/800.renames-and-merges/g.yaml#L200


Il y a plusieurs parsers pour chaque distribution : https://github.com/repology/repology/tree/master/repology/parsers/parsers

Debian :
~- https://wiki.debian.org/qa.debian.org/distro-tracker
~- https://tracker.debian.org/

Fedora :
~- https://fedoraproject.org/wiki/Upstream_release_monitoring
~- Anitya https://release-monitoring.org/

http://koji.build/


https://unix.stackexchange.com/questions/62355/is-there-a-tool-website-to-compare-package-status-in-different-linux-distributio





Valid XHTML :: Valid CSS: :: Powered by WikkaWiki