OpenSUSE Build service howto: различия между версиями

Материал из Toshiba AC100 wiki
Перейти к навигации Перейти к поиску
Нет описания правки
 
 
(не показаны 4 промежуточные версии этого же участника)
Строка 3: Строка 3:
==Some general things==
==Some general things==
openSUSE ARM board rootfs images are made by KIWI image system (JeOS = Just Enough Operating System)
openSUSE ARM board rootfs images are made by KIWI image system (JeOS = Just Enough Operating System)
[[@https://en.opensuse.org/Portal:KIWI]]
https://en.opensuse.org/Portal:KIWI


openSUSE use OBS (Open Build Service) system for continous integration of packages and images.  
openSUSE use OBS (Open Build Service) system for continous integration of packages and images.  
[[@https://en.opensuse.org/OBS]]
https://en.opensuse.org/OBS
OBS look very similar to git but also include build functions, requests and etc.
OBS look very similar to git but also include build functions, requests and etc.


openSUSE OBS lives here [[@https://build.opensuse.org/]]
openSUSE OBS lives here https://build.opensuse.org/


OBS have console tool '''osc'''
OBS have console tool '''osc'''
Строка 39: Строка 39:
==Create obs packages==
==Create obs packages==
* Init new package
* Init new package
<div class="shell">$ osc meta pkg -e home:<username> <packagename></div>
<div class="shell">$ osc up home:<username></div>
* Create .spec file and .changes file
* Create .spec file and .changes file
* Test build localy
* Test build localy
Строка 44: Строка 46:
** osc build --alternative-project=openSUSE:Factory:ARM qemu armv7l <.spec file name>
** osc build --alternative-project=openSUSE:Factory:ARM qemu armv7l <.spec file name>
* If it builds fine commit to obs and request to include to upstream
* If it builds fine commit to obs and request to include to upstream
==Copy specific revision of package to new package==
* Create new project
<div class="shell">$ osc meta prj -e home:zombah:test</div>
* Use copypac to copy package to another package
<div class="shell">$ osc copypac -d -r f05d4987cefd8870ecbfcde9bdc554bd security:logging elasticsearch home:zombah:test elasticsearch2</div>

Текущая версия от 20:25, 30 марта 2017

Small openSUSE ac100 howto

Some general things

openSUSE ARM board rootfs images are made by KIWI image system (JeOS = Just Enough Operating System) https://en.opensuse.org/Portal:KIWI

openSUSE use OBS (Open Build Service) system for continous integration of packages and images. https://en.opensuse.org/OBS OBS look very similar to git but also include build functions, requests and etc.

openSUSE OBS lives here https://build.opensuse.org/

OBS have console tool osc

To include some programm or files into future rootfs image you need to create obs package for it.


Create custom JeOS package

  • JeOS custom package must contain _link to main JeOS package.
    • If you create package for new board, branch openSUSE:Factory:ARM JeOS to your home and init new package inside it
  • .kiwi scipts inside JeOS package are autogenerated using script pre_checkin.sh
  • Board specific configs inside JeOS package live in:
    • config.sh
      • Board name and which JeOS flavour will be builded simple or with x and wdm.
    • Images.kiwi.in
      • Here you define additional repos for board, kernel cmdline, u-boot and dtb.
    • uboot-image-setup.in
      • U-Boot kernel loading parameters
    • uboot-image-install.in
      • bootloader update script
  • Build localy obs custom jeos package
    • osc build images armv7l
    • may with various binaries not found, check osc meta prjconf it must be same as originate project config.


Create obs packages

  • Init new package
$ osc meta pkg -e home:<username> <packagename>
$ osc up home:<username>
  • Create .spec file and .changes file
  • Test build localy
    • example
    • osc build --alternative-project=openSUSE:Factory:ARM qemu armv7l <.spec file name>
  • If it builds fine commit to obs and request to include to upstream

Copy specific revision of package to new package

  • Create new project
$ osc meta prj -e home:zombah:test
  • Use copypac to copy package to another package
$ osc copypac -d -r f05d4987cefd8870ecbfcde9bdc554bd security:logging elasticsearch home:zombah:test elasticsearch2