Changes between Version 29 and Version 30 of RpmHowToPackagers
- Timestamp:
- Jan 25, 2015, 9:19:07 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RpmHowToPackagers
v29 v30 28 28 29 29 Basic 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 42 For more information on tags, see [http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html this link]. 43 44 == Package groups == 45 46 Groups 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 71 If left empty, the group tag will be interpreted as "Unspecified" which may not be very helpful. 72 73 It 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. 37 74 38 75 == Prepare source code == … … 64 101 %patch001 -p1 -b .base 65 102 }}} 66 Note that rpmbuild defaults expect es to find source tarball and patches in the SOURCES directory.103 Note that rpmbuild defaults expects to find source tarball and patches in the SOURCES directory. 67 104 68 105 == Build source code == … … 124 161 * -bl check file list only and stop. 125 162 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.163 Since -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. 127 164 128 165 All output files will be written in the %HOME%\rpmbuild tree, regardless of current directory and drive. … … 131 168 While 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. 132 169 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.170 Many 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. 134 171 135 172 Another 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.173 Under OS/2 these requirements must be manually added using a '' !BuildRequires: '' or ''Requires:'' rule. 137 174 Example: 138 175 {{{ … … 142 179 143 180 === 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).181 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 someone needs that information). 145 182 146 183 1. Add the following to the .spec file (somewhere before the %install section):