Difference between revisions of "LEAP SOP"

From CDOT Wiki
Jump to: navigation, search
(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.
  
== Fixing build ==
+
== 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 build failure ===
+
=== 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 </tt>config.sub to autodetect system type
+
: <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 23:42, 26 March 2016

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

  1. Previous build of the package
  2. CentOS AArch64 repo: http://buildlogs.centos.org/centos/7
  3. Fedora ARM Koji: http://arm.koji.fedoraproject.org
  4. CentOS git repo (for reverting CentOS changes): http://git.centos.org
  5. GOOGLE!

More coming ...