User Tools

Site Tools


packman:buildtool

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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.
packman/buildtool.txt ยท Last modified: 2012/01/14 03:51 by 0.0.0.0