Changes between Version 29 and Version 30 of RpmHowToPackagers


Ignore:
Timestamp:
Jan 25, 2015, 9:19:07 PM (10 years ago)
Author:
Lewis Rosenthal
Comment:

Added group tag section, with references; added some additional basec tags; added descriptions for basic tags; cleaned up some minor WikiFormatting issues. - LGR

Legend:

Unmodified
Added
Removed
Modified
  • RpmHowToPackagers

    v29 v30  
    2828
    2929Basic RPM tags:
    30  * ''name:''
    31  * ''version:''
    32  * ''license:''
    33  * ''source:''
    34  * ''source1:''
    35  * ''patch0:''
    36  * ''patch1:''
     30 * ''summary:'' a brief (usually one line) description of the package
     31 * ''name:'' the name of the package
     32 * ''version:'' the package version
     33 * ''release:'' the release of the package, e.g., an initial release might be 1%{?dist}
     34 * ''license:'' the license under which the package is being released (GPLv3, etc.)
     35 * ''url:'' the main url to the original project or maintainer
     36 * ''group:'' see more on the group tag, below
     37 * ''source:'' the url (or filename) of the source package used
     38 * ''source1:'' the url (or filename) of additional source package, etc.
     39 * ''patch0:'' the url (or filename) of the first patch file applied
     40 * ''patch1:'' the url (or filename) of the next patch file applied, etc.
     41
     42For more information on tags, see [http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html this link].
     43
     44== Package groups ==
     45
     46Groups help to organize packages according to different functionality which they provide. In order to be useful, certain guidelines should be followed when specifying a group tag. In general, the following groups should be used (specified verbatim):
     47
     48 * !Applications/Archiving
     49 * !Applications/Databases
     50 * !Applications/File
     51 * !Applications/Internet
     52 * !Applications/Publishing
     53 * !Applications/System
     54 * !Applications/Text
     55 * Development/C
     56 * !Development/Languages
     57 * !Development/Libraries
     58 * !Development/Libraries/C and C++
     59 * !Development/Other
     60 * !Development/Tools
     61 * Documentation
     62 * Libraries
     63 * !Productivity/Archiving/Compression
     64 * System !Environment/Base
     65 * System !Environment/Daemons
     66 * System !Environment/Libraries
     67 * System !Environment/Shells
     68 * !System/Libraries
     69 * User Interface/X
     70
     71If left empty, the group tag will be interpreted as "Unspecified" which may not be very helpful.
     72
     73It is also interesting to note that while Fedora 18 has apparently done away with the requirement to utilize the group tag, we continue to use this for OS/2.
    3774
    3875== Prepare source code ==
     
    64101%patch001 -p1 -b .base
    65102}}}
    66 Note that rpmbuild defaults expectes to find source tarball and patches in the SOURCES directory.
     103Note that rpmbuild defaults expects to find source tarball and patches in the SOURCES directory.
    67104
    68105== Build source code ==
     
    124161 * -bl check file list only and stop.
    125162
    126 Since -bc, -bi, -bl are performing also previous steps, you can add the special option ''--short-circuit'': this will skip all previous steps (rpmbuild will assume they are already ok), and do only the selected task.
     163Since -bc, -bi, and -bl are also normally performing the previous steps, you can add the special option ''--short-circuit'' - this will skip all previous steps (rpmbuild will assume they are already okay), and do only the selected task.
    127164
    128165All output files will be written in the %HOME%\rpmbuild tree, regardless of current directory and drive.
     
    131168While the syntax of .spec files is the same used under Unix, not everything is currently working in the OS/2 port. Also many packages are already built and manually installed: this means RPM is not aware of their presence.
    132169
    133 Many Unix .spec files have a (or multiple) ''BuildRequire:'' rules: if the package is not already built with RPM, the line should be commented until the required package will have a RPM install. The same applies to ''Requires:'' rules.
     170Many Unix .spec files have a (or multiple) '' !BuildRequires: '' rules: if the package is not already built with RPM, the line should be commented until the required package will have a RPM install. The same applies to ''Requires:'' rules.
    134171
    135172Another missing feature is the automatic detection of required packages: while OS/2 rpm can analyze the LX binaries to detect the required DLLs on the fly, the same is not possible for python or perl scripts (unix rpm detects the required abi level by parsing scripts and querying python/perl modules).[[BR]]
    136 Under OS/2 these requirements must be manually added using a ''BuildRequires'' or ''Requires'' rule.
     173Under OS/2 these requirements must be manually added using a '' !BuildRequires: '' or ''Requires:'' rule.
    137174Example:
    138175{{{
     
    142179
    143180=== Repacking binary software archives ===
    144 When you create RPM packages for software that you don't build from sources (like old OS/2 programs or any other software that is only available in the binary form), you need to follow a special procedure in order to preserve the sizes and timestamps of the original files (which may be important for their identification in case if someone needs that).
     181When you create RPM packages for software that you don't build from sources (like old OS/2 programs or any other software that is only available in the binary form), you need to follow a special procedure in order to preserve the sizes and timestamps of the original files (which may be important for their identification in case someone needs that information).
    145182
    146183 1. Add the following to the .spec file (somewhere before the %install section):