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. |