Difference between revisions of "LEAP SOP"
(Created page with '= Introduction = This wiki page describes the SOP (Standard Operating Procedure) for releasing LEAP like packaging-related processes. It also includes packaging standards, common…') |
|||
Line 13: | Line 13: | ||
Source rpms can only be downloaded through yum or curl/wget, since there is no Rsync repository for Centos source rpms. | Source rpms can only be downloaded through yum or curl/wget, since there is no Rsync repository for Centos source rpms. | ||
− | == | + | == Determine problem == |
If a package fails to be built on Koji, there are several possibilities causing it: | If a package fails to be built on Koji, there are several possibilities causing it: | ||
* Package name is not added to the pkg list of the tag | * Package name is not added to the pkg list of the tag | ||
− | * Package only supports the architectures on <tt>ExclusiveArch</tt> list | + | * Package only supports the architectures on <tt>ExclusiveArch</tt> list in the spec file |
* Same version of the package already existed on Koji | * Same version of the package already existed on Koji | ||
* Repository of the build-tag is being regenerated or broken | * Repository of the build-tag is being regenerated or broken | ||
Line 24: | Line 24: | ||
* Package has to be patched in order to be built on AArch64 platform | * Package has to be patched in order to be built on AArch64 platform | ||
− | === Common | + | === Common errors and solutions === |
; build.log - Code compilation error | ; build.log - Code compilation error | ||
: <u>Reason</u>: Certain depended library is too old | : <u>Reason</u>: Certain depended library is too old | ||
Line 30: | Line 30: | ||
; build.log - Cannot detect system type | ; build.log - Cannot detect system type | ||
− | : <u>Reason</u>: The software uses outdated <tt>config.guess and < | + | : <u>Reason</u>: The software uses outdated <tt>config.guess</tt> and <tt>config.sub</tt> to autodetect system type |
: <u>Solution</u>: Replace both files in the source with the latest online version. See https://www.gnu.org/software/gettext/manual/html_node/config_002eguess.html | : <u>Solution</u>: Replace both files in the source with the latest online version. See https://www.gnu.org/software/gettext/manual/html_node/config_002eguess.html | ||
Line 36: | Line 36: | ||
: <u>Reason</u>: The software only allows it to be built with kernel 2.6/3.x | : <u>Reason</u>: The software only allows it to be built with kernel 2.6/3.x | ||
: <u>Solution</u>: Add 4.x support to the system checking script | : <u>Solution</u>: Add 4.x support to the system checking script | ||
+ | |||
+ | ; BuildError No matching arches were found | ||
+ | : <u>Reason</u>: Package only supports the architectures on <tt>ExclusiveArch</tt> list in the spec file | ||
+ | : <u>Solution</u>: Checkout the package on Fedora ARM Koji and CentOS AArch64 repo and determine whether the package is possible to support AArch64 or not | ||
=== Resources === | === Resources === | ||
# Previous build of the package | # Previous build of the package | ||
+ | # CentOS AArch64 repo: http://buildlogs.centos.org/centos/7 | ||
# Fedora ARM Koji: http://arm.koji.fedoraproject.org | # Fedora ARM Koji: http://arm.koji.fedoraproject.org | ||
# CentOS git repo (for reverting CentOS changes): http://git.centos.org | # CentOS git repo (for reverting CentOS changes): http://git.centos.org | ||
− | # GOOGLE | + | # GOOGLE! |
More coming ... | More coming ... |
Revision as of 22:42, 26 March 2016
Contents
Introduction
This wiki page describes the SOP (Standard Operating Procedure) for releasing LEAP like packaging-related processes. It also includes packaging standards, common fixes, patch resources, and debugging methods.
Package building
Fetching source
Source packages are located under 7.x folder on http://vault.centos.org/. There are several types of repository:
- os
- Base packages
- updates
- Package updates
- extra
- Extra packages such as docker, cockpit, golang, etc.
Source rpms can only be downloaded through yum or curl/wget, since there is no Rsync repository for Centos source rpms.
Determine problem
If a package fails to be built on Koji, there are several possibilities causing it:
- Package name is not added to the pkg list of the tag
- Package only supports the architectures on ExclusiveArch list in the spec file
- Same version of the package already existed on Koji
- Repository of the build-tag is being regenerated or broken
- Package spec contains RHEL or CentOS specific rpm macros
- Missing Dependency
- Package has to be patched in order to be built on AArch64 platform
Common errors and solutions
- build.log - Code compilation error
- Reason: Certain depended library is too old
- Solution: Try to build all other packages and then rebuild this one
- build.log - Cannot detect system type
- Reason: The software uses outdated config.guess and config.sub to autodetect system type
- Solution: Replace both files in the source with the latest online version. See https://www.gnu.org/software/gettext/manual/html_node/config_002eguess.html
- build.log - Unknown system type
- Reason: The software only allows it to be built with kernel 2.6/3.x
- Solution: Add 4.x support to the system checking script
- BuildError No matching arches were found
- Reason: Package only supports the architectures on ExclusiveArch list in the spec file
- Solution: Checkout the package on Fedora ARM Koji and CentOS AArch64 repo and determine whether the package is possible to support AArch64 or not
Resources
- Previous build of the package
- CentOS AArch64 repo: http://buildlogs.centos.org/centos/7
- Fedora ARM Koji: http://arm.koji.fedoraproject.org
- CentOS git repo (for reverting CentOS changes): http://git.centos.org
- GOOGLE!
More coming ...