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!
Source modification
More coming ...