Meego Wiki
Views
From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
m (How to patch an i586 kernel for MeeGo with obslight?)
m (How to patch an i586 kernel for MeeGo with obslight?)
Line 22: Line 22:
Now you can work into your chroot.
Now you can work into your chroot.
*The directory '''~/OBSLight/MeeGo_1.2_oss/chrootTransfert/''' is mounted into the chroot in '''/chrootTransfert/'''.
*The directory '''~/OBSLight/MeeGo_1.2_oss/chrootTransfert/''' is mounted into the chroot in '''/chrootTransfert/'''.
-
*Every scripts execute in aChroot, are store in '''/chrootTransfert/''' as '''runMe_YYYY-MM-DD_HHhMMmSS.sh'''.
+
*Every scripts execute in aChroot, are stored in '''/chrootTransfert/''' as '''runMe_YYYY-MM-DD_HHhMMmSS.sh'''.
  obslight goToChRoot --projectLocalName MeeGo_1.2_oss --package kernel  
  obslight goToChRoot --projectLocalName MeeGo_1.2_oss --package kernel  
  # cp configs/kernel-x86.config .config  
  # cp configs/kernel-x86.config .config  

Revision as of 13:14, 26 October 2011

Contents

OBS Light Deliverable

How to patch an i586 kernel for MeeGo with obslight?

Create a connection with the OBS server.

obslight addObsServer --serverApi https://api.meego.com --serverRepo http://download.meego.com/live --user obsuser --password opensuse

Create a local project.

  • The projects are created in ~/OBSLight/MeeGo_1.2_oss/
obslight addProject --projectLocalName MeeGo_1.2_oss --projectObsName MeeGo:1.2:oss --obsServer https://api.meego.com --projectArch i586 --projectTarget standard

Add a package to your local project.

  • The packages are created in ~/OBSLight/MeeGo_1.2_oss/MeeGo:1.2:oss/kernel/
obslight addPackage --projectLocalName MeeGo_1.2_oss --package kernel

Create your chroot.

  • The chroot directory is ~/OBSLight/MeeGo_1.2_oss/aChroot/.
  • The chroot is created with zypper and your repositorie is automatically added.
obslight createChRoot --projectLocalName MeeGo_1.2_oss

Add a package into your chroot.

  • The packages are installed at directory /root/rpmbuild/BUILD/kernel-X.X.X/linux-X.X.X.
  • After the installation, a git repository is created at the packages's directory.
obslight addPackageSourceInChRoot --projectLocalName MeeGo_1.2_oss --package kernel

Now you can work into your chroot.

  • The directory ~/OBSLight/MeeGo_1.2_oss/chrootTransfert/ is mounted into the chroot in /chrootTransfert/.
  • Every scripts execute in aChroot, are stored in /chrootTransfert/ as runMe_YYYY-MM-DD_HHhMMmSS.sh.
obslight goToChRoot --projectLocalName MeeGo_1.2_oss --package kernel 
# cp configs/kernel-x86.config .config 
# make menuconfig
# cp .config config-x86

You have two solutions to upstream your work to the OBS server.

  • By making a patch
# exit
obslight makePatch --projectLocalName  $ProjectName  --package $Package --patch myKernelPatch.patch
vi ~/OBSLight/MeeGo_1.2_oss/MeeGo:1.2:oss/kernel/kernel.spec 

You must move your patch command %patchXXX -p1 after the command line cp $RPM_SOURCE_DIR/config-* .

  • By copying the new configuration file
# cp config-x86 /chrootTransfert/config-x86
# exit
cp /chrootTransfert/config-x86 ~/OBSLight/MeeGo_1.2_oss/MeeGo:1.2:oss/kernel/

Now you can commit.

  • The command addAndCommitChanges ckeck the add and the delete files, before commit the package.
obslight addAndCommitChanges --projectLocalName $ProjectName --package $Package -m "Patch kernel"

How to patch a kernel armv8 for MeeGo with obslight?

It's the same approach then the arch i586. You can't use the kernel package for armv8.

obslight addObsServer --serverAPI https://api.meego.com --serverRepos http://download.meego.com/live --user obsuser --passw opensuse
obslight addProject --projectLocalName MeeGo_1.2_oss --projectObsName MeeGo:1.2:oss --obsServer https://api.meego.com --projectArchitecture armv8el --projectTarget standard 
obslight addPackage --projectLocalName MeeGo_1.2_oss --package kernel
obslight createChRoot --projectLocalName MeeGo_1.2_oss
obslight addPackageSourceInChRoot --projectLocalName MeeGo_1.2_oss --package kernel 

Here You may have trouble with zypper.[Problem: nothing provides X needed by Y]

Here You may have trouble with the architecture.[error: Architecture is not included: armv8el]

obslight goToChRoot --projectLocalName MeeGo_1.2_oss --package kernel 

Here You may have trouble with the sh.[chroot: failed to run command `sh': No such file or directory]

#cp configs/kernel-adaptation-n900.config .config
#make menuconfig
#cp .config config-adaptation-n900
  • By making a patch
#exit
vi ~/OBSLight/MeeGo_1.2_oss/MeeGo:1.2:oss/kernel-adaptation-n900/kernel-adaptation-n900.spec

you must move your patch command %patchXXX -p1 after the command line cp $RPM_SOURCE_DIR/config-* .

obslight makePatch --projectLocalName  MeeGo_1.2_oss  --package $Package --patch myKernelPatch.patch
obslight addAndCommitChange --projectLocalName  MeeGo_1.2_oss  --package $Package -m "Patch kernel"

How install the dependency of a package into the chroot?

If the project on your OBS doesn’t provide the dependency you must add a repository to zypper, you have two choice.

obslight addRepoInChRoot --projectLocalName MeeGo_1.2_oss --url http://download.meego.com/live/MeeGo:/1.2:/non-oss/MeeGo_1.2/ --alias "MeeGo_non-oss"

Or

obslight addRepoInChRoot --projectLocalName MeeGo_1.2_oss --fromProject $ProjectName
Personal tools