The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)


Contribution in detail

From Mer Wiki
(Difference between revisions)
Jump to: navigation, search
(Branch the package to work on it)
(summary)
Line 2: Line 2:
  
 
Need prerequisites for osc and build
 
Need prerequisites for osc and build
 +
 +
== Summary ==
 +
# branch OBS package
 +
# clone mer/git package from Mer master repo
 +
# checkout OBS package into git repo (how to avoid duplicate download?) OBS and mer/git package should be identical (osc diff / git diff)
 +
# unpack source and apply patches into local build root
 +
## now have 3 copies of source: obs co as tarball, git co as tarball, local unpack in chroot
 +
# take snapshot of chroot (for later diff)
 +
# hack in chroot until ready (potentially needing to install new pkgs for new BRs)
 +
# Create patch
 +
# Modify packaging
 +
# Submit to cobs
  
 
== Branch the package to work on it ==
 
== Branch the package to work on it ==

Revision as of 23:13, 7 January 2012

Contents

Local build of current version

Need prerequisites for osc and build

Summary

  1. branch OBS package
  2. clone mer/git package from Mer master repo
  3. checkout OBS package into git repo (how to avoid duplicate download?) OBS and mer/git package should be identical (osc diff / git diff)
  4. unpack source and apply patches into local build root
    1. now have 3 copies of source: obs co as tarball, git co as tarball, local unpack in chroot
  5. take snapshot of chroot (for later diff)
  6. hack in chroot until ready (potentially needing to install new pkgs for new BRs)
  7. Create patch
  8. Modify packaging
  9. Submit to cobs

Branch the package to work on it

osc -A https://obs branch Mer.org:Core:i586 systemd

A bug in the OBS means that the new branch project will not have the correct repos so add them manually. Even if you add them through the OBS web interface they will miss the arch field.

osc -A https://obs meta prj home:YOURNAME -e
  <repository name="Mer_Core_i586">
   <path repository="Core_i586" project="Mer.org:Core:i586"/>
   <arch>i586</arch>
  </repository>

The repository needs to be set to publish too.

Checkout:

  osc -A https://obs co home:Admin:branches:Mer.org:Core:i586/systemd
  cd home:Admin:branches:Mer.org:Core:i586/systemd
  osc build i586

Pull the latest Mer version from the gerrit git repo

Clone the git repo metadata besides your OSC checkout:

  cd home:Admin:branches:Mer.org:Core:i586/systemd
  git clone --bare ssh://your_username@review.merproject.org:29418/mer-core/systemd .git
  git config -f .git/config core.bare false

Check out the latest content from git:

  git reset --hard

Hack

You can now edit the code and packaging.

Build

Of course you'll need to do one or more builds to verify the code.

  osc ar
  osc ci
  osc chroot
  osc build

Create image

Use a suitable .ks

IMG supports a feature called "Extra repositories and packages" This allows you to use a standard kickstart and add a specific repository to use for overrides.

Select the OBS and enter the repository/repo eg:

 home:Admin:branches:Mer.org:Core:i586/Mer_Core_i586

Build a suitable image, install and test

 DEVICE=/dev/sdh
 curl http://imgw1/images/web/root/1-20111110-090037/meego-nemo-trial-1.2.90.20111110.1000.iso | sudo dd of=$DEVICE bs=4M oflag=direct && sudo eject $DEVICE

Diagnostic note:

Package SOMETHING.rpm is damaged:

 /var/tmp/cache/packages/mer-core-i586/noarch/filesystem-2.4.31-1.1.noarch.rpm

This means a checksum mismatch was seen and the package was re-downloaded.

Push for review

In the obs/mer build directory:

  cd home:Admin:branches:Mer.org:Core:i586
  git commit -s --amend
  git push origin HEAD:refs/for/master
Personal tools