Meego Wiki
Views

User:Stskeeps/MeeGo Hacker Guide

From MeeGo wiki
< User:Stskeeps(Difference between revisions)
Jump to: navigation, search
(IRC dumps of what could become part of documentation, even if somewhat explained in other places)
(IRC dumps of what could become part of documentation, even if somewhat explained in other places)
 
Line 82: Line 82:
12:13 < timoph> your own home project
12:13 < timoph> your own home project
12:13 < timoph> in obs
12:13 < timoph> in obs
 +
12:13 < sivang> so my sandbox in obs?
 +
12:13 < timoph> yep
 +
12:13 < sivang> nice, where I can play and break things? and I can link people to my home to install stuff from there?
 +
12:13 < timoph> easiest way to create it is through the www interface
 +
12:13 < sivang> either through apt/yum?
 +
12:14 < timoph> yep. it creates repositories for your packages automagically
 +
12:14 < sivang> oh nice!
 +
12:15 < sivang> but currently the cbuild only supports srpms, according to lbt
 +
12:15 < lbt> rpms
 +
12:15 < sivang> rpms, yes
 +
12:15  * sivang sets up a home project
 +
12:15 < timoph> :)
 +
12:15 < sivang> timoph: do I need a git repo for that , or does obs handles that as well?
 +
12:16 < timoph> no
 +
12:16 < sivang> that is, acts as a source repo?
 +
12:16 < sivang> ah
 +
12:16 < sivang> so I can have it "watch" an upstrea?
 +
12:16 < timoph> obs eats spec/dsc files and tar balls
 +
12:16 < lbt> yes, but the meego community OBS has no debian repo target
 +
12:16 < timoph> ah
 +
12:16 < lbt> for that you should use suse OBS if possible
 +
12:17 < timoph> good to know
 +
12:17 < sivang> lbt: what timoph just helped me do will most probably find its way to the guide you asked if I could put
 +
                online
 +
12:17 < lbt> eg https://build.opensuse.org/project/monitor?project=Maemo%3AMeeGo-Infra
 +
12:17 < sivang> lbt: it is mostly similar to the Mer one, I need to see if the tweakes you had in the Mer document apply here
 +
12:17 < sivang> lbt: e.g. http://wiki.maemo.org/Mer/Build/Install_OBS#Handle_OBS_using_.27:.27_in_filenames
 +
12:17 < sivang> for example
 +
12:18 < lbt> yeah... that's a beauty :)
 +
12:18 -!- sievi [~kasievi@gw.digia.com] has left #meego-qa-tools []
 +
12:18 < timoph> sivang: no as in you need version control for your source code :)
 +
12:19 < timoph> anyway. I need to go..
 +
12:19 < timoph> -->
 +
12:19 < sivang> timoph: thank you!
 +
12:23 < sivang> lbt: so for community .deb  apps, a'la maemo-extras, we use suse OBS at build.opensuse.org , and only for
 +
                core both .debs and .rpms we use build.meego.com ?
 +
12:23 < lbt> for now
 +
12:24 < sivang> sure, just need to get an understanding for the hacking guide's sake
 +
12:24 < lbt> mmm sec
 +
12:24 < lbt> http://wiki.meego.com/Build_Infrastructure first para
 +
12:31 < sivang> lbt: right, there's tons of stuff there
 +
12:31 < sivang> this seems be mostly catering for the mer page-
 +
                http://wiki.meego.com/Build_Infrastructure/Packagers_Developers/CLI_Part_1
</pre>
</pre>

Latest revision as of 11:40, 27 October 2010

DRAFT

Hands On: Setting up your workshop

You'll need:

  • An OBS account on either build.meego.com or cbuild.meego.com (use your meego.com login) or on your own OBS with MeeGo release(s) imported.
  • These tools installed on your development machine:
    • Spectacle, autospectacle (on gitorious)
    • MIC2
    • osc
    • Standard development tools (git, wget, svn, make, diff, patch, rsync, ssh, dd, gdb)
    • A graphical web browser (Firefox, Chrome, etc..)

You might need:

  • For local OBS builds, something supporting SSSE3 instructions (this applies for ARM builds too)
  • qemu-arm installed, vdso=0

.. tools to grab images/releases? .. zypper instructions .. proxy instructions, NAT wlan


Theory: Stuff which will make life easier, engage, and profit properly understood

  • Background of the user-space and middle ware stack:
    • The context of the current middle ware discussed.
    • What's beneath it (another layer, the bare metal?), What's on top of it?
    • Nature of inter-relationships: How does it communicate with other components if at all? How does it communicate with hardware?
  • Breakdown to subsystems:
    • Each component have a section with links or content to:
      • Read about the architecture.
      • Libraries and binaries it uses,
      • Current important bugs for triage and fixing, tagged with difficulty level.
      • Find out where offline development discussions happen.
      • Learn about low hanging fruits; not just bug fixing and feature implementation!
  • Background for the UI parts and perhaps follow the same breakdown as for (2) ??
  • Each component resulting in a binary should have links to the proper documentation for it, or a mention where docs are in the RPM packages itself.

IRC dumps of what could become part of documentation, even if somewhat explained in other places


11:57 < timoph> I'm using repo.meego.com to get the tools
11:57 < timoph> deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.04/ /
11:57 < timoph> in sources.list
11:58  * sivang adds
11:58 < timoph> the install osc osc-meego-plugins build
11:58 < timoph> s/the/then/
11:59 < timoph> (might need something else too)
12:00 < timoph> after installing osc do 'osc -A http://api.cbuild.meego.com ls' and add your credentials
12:01 < timoph> and edit ~/.oscrc (change su-wrapper to use sudo)
12:01 < sivang> where's the key for apt?
12:01 < sivang> it complains about unauthenticated sources
12:01 < timoph> http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.04/Release.key
12:01 < sivang> thanks
12:03 < sivang> timoph: key imported
12:03 < sivang> E: Couldn't find package osc-meego-plugins
12:03 -!- asinnela [~arsinnel@gw2.digia.com] has joined #meego-qa-tools
12:03 < timoph> you can also 'sudo visudo' and append '[your username] ALL=NOPASSWD: /usr/bin/build'
12:04 < timoph> hmmh. did you do run apt-get update ?
12:04 < sivang> I did, I'll rerun
12:05 < timoph> you can live without the meego-plugins if they're not available
12:05 < timoph> ahh. sorry
12:05 < timoph> it's 'meego-osc-plugins'
12:07 < timoph> have you created your home project?
12:07 -!- petrik [~chatzilla@nat/nokia/x-slqkpgymlbhyqzfn] has joined #meego-qa-tools
12:08 < timoph> after you have created your home project you can checkout it and start creating packages
12:09 < timoph> osc co home:[username]
12:09 < timoph> you'll need to add files to the project before building them e.g. 'osc add some.spec'
12:09 -!- dneary [~dneary@ALyon-152-1-57-212.w86-193.abo.wanadoo.fr] has joined #meego-qa-tools
12:09 -!- dneary [~dneary@ALyon-152-1-57-212.w86-193.abo.wanadoo.fr] has quit [Changing host]
12:09 -!- dneary [~dneary@Maemo/community/docmaster/dneary] has joined #meego-qa-tools
12:10 < timoph> to build locally do 'osc build --no-verify'
12:10 < timoph> easiest way to get started is to take some existing package and play with it
12:11 < timoph> you can copy packages from other user's projects to your home by 'osc copypac home:someuser package 
                home:yourusername'
12:12 < sivang> timoph: okay, pluging installed. Now that ':' notation, this is what you refer to all the time with 
                Trunk:Tools etc?
12:12 < sivang> timoph: what's a home project in that regard?
12:13 < timoph> your own home project
12:13 < timoph> in obs
12:13 < sivang> so my sandbox in obs?
12:13 < timoph> yep
12:13 < sivang> nice, where I can play and break things? and I can link people to my home to install stuff from there?
12:13 < timoph> easiest way to create it is through the www interface
12:13 < sivang> either through apt/yum?
12:14 < timoph> yep. it creates repositories for your packages automagically
12:14 < sivang> oh nice!
12:15 < sivang> but currently the cbuild only supports srpms, according to lbt 
12:15 < lbt> rpms
12:15 < sivang> rpms, yes
12:15  * sivang sets up a home project
12:15 < timoph> :)
12:15 < sivang> timoph: do I need a git repo for that , or does obs handles that as well?
12:16 < timoph> no
12:16 < sivang> that is, acts as a source repo?
12:16 < sivang> ah
12:16 < sivang> so I can have it "watch" an upstrea?
12:16 < timoph> obs eats spec/dsc files and tar balls
12:16 < lbt> yes, but the meego community OBS has no debian repo target
12:16 < timoph> ah
12:16 < lbt> for that you should use suse OBS if possible
12:17 < timoph> good to know
12:17 < sivang> lbt: what timoph just helped me do will most probably find its way to the guide you asked if I could put 
                online
12:17 < lbt> eg https://build.opensuse.org/project/monitor?project=Maemo%3AMeeGo-Infra
12:17 < sivang> lbt: it is mostly similar to the Mer one, I need to see if the tweakes you had in the Mer document apply here
12:17 < sivang> lbt: e.g. http://wiki.maemo.org/Mer/Build/Install_OBS#Handle_OBS_using_.27:.27_in_filenames
12:17 < sivang> for example
12:18 < lbt> yeah... that's a beauty :)
12:18 -!- sievi [~kasievi@gw.digia.com] has left #meego-qa-tools []
12:18 < timoph> sivang: no as in you need version control for your source code :)
12:19 < timoph> anyway. I need to go..
12:19 < timoph> -->
12:19 < sivang> timoph: thank you!
12:23 < sivang> lbt: so for community .deb  apps, a'la maemo-extras, we use suse OBS at build.opensuse.org , and only for 
                core both .debs and .rpms we use build.meego.com ?
12:23 < lbt> for now
12:24 < sivang> sure, just need to get an understanding for the hacking guide's sake
12:24 < lbt> mmm sec
12:24 < lbt> http://wiki.meego.com/Build_Infrastructure first para
12:31 < sivang> lbt: right, there's tons of stuff there
12:31 < sivang> this seems be mostly catering for the mer page- 
                http://wiki.meego.com/Build_Infrastructure/Packagers_Developers/CLI_Part_1

Personal tools