Mer/Build/Install OBS
(→Ubuntu) |
|||
(6 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
+ | {{Mer}} | ||
- | OBS stands for [https://build.opensuse.org/ | + | [[OBS]] stands for [https://build.opensuse.org/ OpenSuse Build Service]. You can find out more about it from the OpenSuse webpage. |
== Installing OBS tools locally == | == Installing OBS tools locally == | ||
Line 6: | Line 7: | ||
You'll need an [https://secure-www.novell.com/selfreg/jsp/createOpenSuseAccount.jsp?target=http://www.opensuse.org account with Novell] | You'll need an [https://secure-www.novell.com/selfreg/jsp/createOpenSuseAccount.jsp?target=http://www.opensuse.org account with Novell] | ||
- | You must then visit your [https://build.opensuse.org/project/list_my project list] and click : "Let me build my packages" | + | You must then visit your [https://build.opensuse.org/project/list_my project list] and click : "Let me build my packages!" |
- | |||
=== Debian === | === Debian === | ||
Line 36: | Line 36: | ||
Then | Then | ||
+ | # add the key in the apt keyring | ||
+ | wget -q http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/Release.key -O- | apt-key add - | ||
+ | # refresh your package source | ||
apt-get update | apt-get update | ||
apt-get install osc build | apt-get install osc build | ||
Line 73: | Line 76: | ||
=== RedHat Enterprise Linux 5 === | === RedHat Enterprise Linux 5 === | ||
Assuming a RHEL 5 box locally: | Assuming a RHEL 5 box locally: | ||
+ | |||
+ | The M2Crypto package that comes w/ RHEL5 is too old. I retrieved the 0.19.1 source rpm from Fedora 10 and built it for my architecture. But you will need to update this package to at least version 0.19 before installing the OBS packages. | ||
+ | |||
+ | Install the public key for the OBS RPM repository: | ||
+ | rpm --import http://download.opensuse.org/repositories/openSUSE:/Tools/RHEL_5/repodata/repomd.xml.key | ||
To get the OBS tools repository recognized by yum: | To get the OBS tools repository recognized by yum: | ||
Line 84: | Line 92: | ||
This technique is likely to work with RHEL derivatives like CentOS. | This technique is likely to work with RHEL derivatives like CentOS. | ||
- | + | ||
=== Other distributions === | === Other distributions === | ||
You can find openSuse build tools for various distributions at | You can find openSuse build tools for various distributions at | ||
Line 119: | Line 127: | ||
=== Local osc setup === | === Local osc setup === | ||
- | Create a local build path. | + | Create a local build path. E.g., |
mkdir -p ~/maemo/Mer/obs | mkdir -p ~/maemo/Mer/obs | ||
- | + | In the following instructions, references to ''local-username'' should be replaced with the username used to login on your local machine while ''build-username'' (resp. ''build-password'') should be replaced with your OBS account name (resp. OBS account password). | |
- | + | Run <code>osc</code> without arguments. It will basically ask you to enter your OBS account username and password and create a default configuration in <code>~/.oscrc</code>. Edit it to match your needs. Here are a few interesting parameters mainly found in the <code><nowiki>[general]</nowiki></code> section: | |
- | + | * the <code>apiurl</code> parameter should be set to the following URL: https://api.opensuse.org. | |
- | + | ||
- | + | * the <code>packagecachedir</code> parameter specifies where all the cached binary packages are held to create a chroot build environment. Around 300MB are needed. E.g., | |
- | packagecachedir = /home/ | + | packagecachedir = /home/''local-username''/maemo/Mer/obs/.pkg-cache/ |
- | + | * the <code>build-root</code> parameter specifies the default location where a complete chroot build will be installed. This will be a minimal OS install: 400MB minimum. E.g., | |
- | build-root = /home/ | + | build-root = /home/''local-username''/maemo/Mer/obs/build-%(repo)s-%(arch)s |
- | + | * in the section <code><nowiki>[https://api.opensuse.org]</nowiki></code>, set your credentials as follow: | |
- | + | user = ''build-username'' | |
- | user = | + | pass = ''build-password'' |
- | pass = | + | |
=== Next Steps === | === Next Steps === | ||
- | Go back | + | Go back to [[Mer/Build]] and then onto [[Mer/Build/Application Building|Application Building]] |
- | + |
Latest revision as of 11:37, 13 October 2010
Mer is back : Please visit http://www.merproject.org to learn more about this news. |
Contents |
[edit] Installing OBS tools locally
You'll need an account with Novell
You must then visit your project list and click : "Let me build my packages!"
[edit] Debian
Assuming a Debian Testing development box locally:
To get the OBS tools repository add an entry to the sources.lists:
echo "deb http://download.opensuse.org/repositories/openSUSE:/Tools/Debian_5.0/ /" > /etc/apt/sources.list.d/obs.list
Then
apt-get update apt-get install osc build qemu
OBS uses 403 redirects which hits a bug in apt in Lenny.
You can workaround using:
wget http://download.opensuse.org/repositories/openSUSE:/Tools/Debian_5.0/./all/build_2009.09.23-1_all.deb apt-get -f install
[edit] Ubuntu
Assuming an Ubuntu9.04 development box locally:
To get the OBS tools repository add the following line:
deb http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/ /
to a new file called:
/etc/apt/sources.list.d/obs.list
Then
# add the key in the apt keyring wget -q http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/Release.key -O- | apt-key add - # refresh your package source apt-get update apt-get install osc build
Now edit /etc/apt/sources.list.d/obs.list
and comment that line out.
Note there is a problem in Ubuntu9.04 osc as of 25 May '09... to fix it, do this as root:
cd /usr/lib/python2.6/dist-packages/ ln -s ../site-packages/osc* .
Suse don't have an Ubuntu qemu yet so we use the one they make for Debian (bug raised):
Add the following lines:
deb http://download.opensuse.org/repositories/openSUSE:/Tools/Debian_5.0/ /
to a new file called:
/etc/apt/sources.list.d/debian5_qemu.list
Then
apt-get update apt-get install qemu
now remove that file:
rm /etc/apt/sources.list.d/debian5_qemu.list
and run
apt-get update
[edit] Troubleshooting
If you get the following error when adding one of these repos
W: GPG error: http://ftp.debian.org stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY SOMEKEY
Then run the command
gpg --keyserver pgpkeys.mit.edu --recv-key SOMEKEY && gpg -a --export SOMEKEY | sudo apt-key add -
replacing SOMEKEY with the complained about key
[edit] RedHat Enterprise Linux 5
Assuming a RHEL 5 box locally:
The M2Crypto package that comes w/ RHEL5 is too old. I retrieved the 0.19.1 source rpm from Fedora 10 and built it for my architecture. But you will need to update this package to at least version 0.19 before installing the OBS packages.
Install the public key for the OBS RPM repository:
rpm --import http://download.opensuse.org/repositories/openSUSE:/Tools/RHEL_5/repodata/repomd.xml.key
To get the OBS tools repository recognized by yum:
echo "[obs]" > /etc/yum.repos.d/obs.repo echo "name=OpenSUSE Build System" >> /etc/yum.repos.d/obs.repo echo "baseurl=http://download.opensuse.org/repositories/openSUSE:/Tools/RHEL_5" >> /etc/yum.repos.d/obs.repo
Then:
yum makecache yum install osc build qemu-svn
This technique is likely to work with RHEL derivatives like CentOS.
[edit] Other distributions
You can find openSuse build tools for various distributions at http://download.opensuse.org/repositories/openSUSE:/Tools/
[edit] All OSes
NAME=<username> cat <<EOF >> /etc/sudoers $NAME ALL=NOPASSWD: /usr/bin/build $NAME ALL=NOPASSWD: /usr/sbin/chroot EOF
Now, as a normal user, run
osc
and enter novell.com username/passwd when prompted (note these are stored in cleartext in the config file). Note this isn't supposed to do anything (it prints out the osc help) but it stores your name/pw for future use.
Go and login.
Make sure you click the "let me build packages" button.
There is a link to 'Home Project' on the left, follow this and enter a description.
Note that if, in the future, qemu fails to work you may need to setup the associations for arm binaries by running:
qemu-binfmt-conf.sh
[edit] Handle OBS using ':' in filenames
To help bash completion etc:
export COMP_WORDBREAKS=" > "\""'><=;|&("
or
COMP_WORDBREAKS=${COMP_WORDBREAKS//:/}
[edit] Local osc setup
Create a local build path. E.g.,
mkdir -p ~/maemo/Mer/obs
In the following instructions, references to local-username should be replaced with the username used to login on your local machine while build-username (resp. build-password) should be replaced with your OBS account name (resp. OBS account password).
Run osc
without arguments. It will basically ask you to enter your OBS account username and password and create a default configuration in ~/.oscrc
. Edit it to match your needs. Here are a few interesting parameters mainly found in the [general]
section:
- the
apiurl
parameter should be set to the following URL: https://api.opensuse.org.
- the
packagecachedir
parameter specifies where all the cached binary packages are held to create a chroot build environment. Around 300MB are needed. E.g.,
packagecachedir = /home/local-username/maemo/Mer/obs/.pkg-cache/
- the
build-root
parameter specifies the default location where a complete chroot build will be installed. This will be a minimal OS install: 400MB minimum. E.g.,
build-root = /home/local-username/maemo/Mer/obs/build-%(repo)s-%(arch)s
- in the section
[https://api.opensuse.org]
, set your credentials as follow:
user = build-username pass = build-password
[edit] Next Steps
Go back to Mer/Build and then onto Application Building
- This page was last modified on 13 October 2010, at 11:37.
- This page has been accessed 31,092 times.