This shows you the differences between two versions of the page.
| — |
packman:buildtool [2012/01/14 03:51] (current) 0.0.0.0 created |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | This is a draft document to collect ideas, suggestions and directions for implementing a new build tool/environment for building and submitting Packman packages. | ||
| + | ====== Guidelines ====== | ||
| + | TODO | ||
| + | |||
| + | ====== Consistency Checking ====== | ||
| + | This part describes the various checks that have to be performed to validate a package before submission. | ||
| + | It should also enforce the [[PackMan:PackagingConventions]] policies wherever possible. | ||
| + | |||
| + | ===== Naming Conventions ===== | ||
| + | The package must follow the PackMan naming policies, as defined in [[PackMan:PackagingConventions#Release_Tag]] | ||
| + | |||
| + | ===== RPM Groups ===== | ||
| + | The "<tt>Group:</tt>" tags must comply with the [[http://ftp.novell.com/pub/forge/library/SUSE%20Package%20Conventions/spc_rpm_groups.html|list of groups used by SUSE]]. | ||
| + | |||
| + | ===== suse_update_config ===== | ||
| + | The <tt>%suse_update_config</tt> macro must be used before <tt>./configure</tt>, e.g. in the following form: | ||
| + | <tt>%{?suse_update_config:%{suse_update_config -f}}</tt> | ||
| + | unless specifically indicated. | ||
| + | Two options to tag spec files as explicitly not using <tt>%suse_update_config</tt>> | ||
| + | - a special comment, e.g.: <tt># X-PackMan-NoUpdateConfig</tt> | ||
| + | - a specific <tt>%define</tt>, e.g.: <tt>%define no_suse_update_config 1</tt> | ||
| + | (those are just examples, complete with other/better ideas) | ||
| + | (see [[PackMan:PackagingConventions#Biarch/AMD64]] for further details) | ||
| + | |||
| + | ===== suse_update_desktop_file ===== | ||
| + | The category tags used in <tt>%suse_update_desktop_file</tt> must comply with the [[http://ftp.novell.com/pub/forge/library/SUSE%20Package%20Conventions/spc_desktop_menu.html#spc_dm_category_list|list of allowed tags, as used by SUSE]], if that macro is used. | ||
| + | |||
| + | ===== libsuffix ===== | ||
| + | The <tt>--libsuffix</tt> option must be passed to <tt>./configure</tt> when building a QT or KDE package, like this: | ||
| + | <code> | ||
| + | %if %{_lib} == lib64 | ||
| + | --enable-libsuffix=64 \ | ||
| + | %endif</code> | ||
| + | (see [[PackMan:PackagingConventions#Biarch/AMD64]] for further details) | ||
| + | |||
| + | Note that it only applies to packages built against QT/KDE (unless there are other situations where the use of the above mentioned is required). | ||
| + | The build validation needs to determine whether it's built against QT. | ||
| + | To do so, it may check for the presence of "<tt>--with-qt-dir=</tt>": | ||
| + | <code> | ||
| + | ./configure \ | ||
| + | ... | ||
| + | --with-qt-dir=...</code> | ||
| + | While this is not 100% accurate, it is necessary to be able to build QT/KDE packages on SUSE, and should be sufficient. | ||