Table of Contents

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 PackagingConventions policies wherever possible.

Naming Conventions

The package must follow the PackMan naming policies, as defined in Release_Tag

RPM Groups

The ”<tt>Group:</tt>” tags must comply with the 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»

  1. a special comment, e.g.: <tt># X-PackMan-NoUpdateConfig</tt>
  2. 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 Biarch/AMD64 for further details)

suse_update_desktop_file

The category tags used in <tt>%suse_update_desktop_file</tt> must comply with the 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:

 %if %{_lib} == lib64
    --enable-libsuffix=64 \
 %endif

(see 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>”:

 ./configure \
    ...
    --with-qt-dir=...

While this is not 100% accurate, it is necessary to be able to build QT/KDE packages on SUSE, and should be sufficient.