[maemo-developers] Maemo-Optify & Builder Bots = Broken?
From: Nathan Anderson nathan at andersonsplace.netDate: Wed Oct 21 22:12:42 EEST 2009
- Previous message: Maemo-Optify & Builder Bots = Broken?
- Next message: Maemo-Optify & Builder Bots = Broken?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Ed,
I have actually installed all the packages I have built and
submitted to extras _inside_ my scratchbox from extras(-devel/testing)
without any issues; in fact I needed install a dozen or so packages (some
mine, some not) to make up all the dependancies on the one I was actually
having the issues with and reported. This is the first package I've built
that has relied upon a optified deb library. I had to actually "wait" to
package this package up until I could get the optified ICU4.21 into the
extras because I wanted to make sure that my scratchbox environment would
match what the autobuilder would get. I never did a local install from the
sources, I only did a "apt-get install <package>" to get my newly build
packages back from the extras(-devel/testing) repositories.
I can also build the source, armel and x86 of this package in my
scratchbox using the dependancies I got from extra(dev/test). However,
when I submit my nice source.deb to the autobuilder it fails with the /opt
error I listed below. So even it their was some issue with scratchbox;
there is still an serious issue with the autobuilder since it is not able to
install optified deb packages it built using the "maemo-optify" program.
Now as to if there is also a issue with scratchbox -- I can't see
how; as I stated above I can (& have) installed the packages that the
autobulder built and stuck into extras-develop for me. I have no issues
inside my scratchbox.
I do not have access to a n900 to test to see what happens on a real
n900. Anyone who has a n900 want to try "apt-get install clucene-core" (you
will need extras-devel enabled) and see if you get pretty much everything in
/opt/maemo/usr/lib)
Please remember the autobuilder built and optified all the .deb
packages I am depending on. If I skipped the maemo-optify step in all my
packages; we would not be having this discussion. ;-)
So right now my choice is to rebuild and turn off the optifing step and
theirby putting about _20_ megs of libraries into the /usr/lib folder or not
do anything until a solution is found on why the autobuilder is having
issues with .deb packages it built and optified. I'm not particlarly
happy, having to wait, but having these packages optified makes a lot more
sense to me. ;-) So I'm currently blocked. (Please note I am note the
only person who has had this issue. I know of at least two others as of
this moment.)
If I do need to change something in my packages, I will! But I
need to know what. Afaik, the only "weirdity" to these packages is adding
the "maemo-optify" before the md5 generation step.
Nathan.
-----Original Message-----
From: Ed Bartosh [mailto:bartosh at gmail.com]
Sent: Wednesday, October 21, 2009 1:26 PM
To: Nathan Anderson
Cc: maemo-developers at maemo.org
Subject: Re: Maemo-Optify & Builder Bots = Broken?
2009/10/21 Nathan Anderson <nathan at andersonsplace.net>:
...
> Selecting previously deselected package clucene-core.
> Unpacking clucene-core (from .../clucene-core_0.9.21b-0maemo1_armel.deb)
...
> dpkg: error processing
> /var/cache/apt/archives/clucene-core_0.9.21b-0maemo1_armel.deb (--unpack):
> trying to overwrite `/opt', which is also in package base-files
> ^^^^
> Uhm, this is not good. Each of my "optified" packages throws this error.
> That kinda makes optifing the libraries a pointless exercise if I
> can't use them later in the buildbot. And Lib-icu is about 16 MEGS of
libraries, so I
> would think it would be a great canidate for optification. Do I need
to
> resubmit everything w/o optification, or are the build bots broken?
>
Have you tried to reproduce this issue in your build environment by
installing your library and base-files locally inside scratchbox?
Below are my attempts to reproduce and fix the problem:
This is what I see in autobulder environment:
> grep /opt$ /var/lib/dpkg/info/base-files.list
/opt
It means that /opt belongs to base-files package.
And I can easily reproduce the error if I try to install any package with
/opt directory inside it:
> fakeroot apt-get install clucene-core Reading package lists... Done
Building dependency tree... Done The following NEW packages will be
installed:
clucene-core
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 319kB of archives.
After unpacking 1085kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
clucene-core
Install these packages without verification [y/N]? y
Get:1 http://osso.stage.dmz fremantle/free clucene-core 0.9.21b-0maemo1
[319kB] Fetched 319kB in 0s (329kB/s)
/scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file
or directory Selecting previously deselected package clucene-core.
(Reading database ... 6395 files and directories currently installed.)
Unpacking clucene-core (from .../clucene-core_0.9.21b-0maemo1_armel.deb) ...
dpkg: error processing
/var/cache/apt/archives/clucene-core_0.9.21b-0maemo1_armel.deb
(--unpack):
trying to overwrite `/opt', which is also in package base-files
dpkg-deb: subprocess paste killed by signal (Broken pipe) Errors were
encountered while processing:
/var/cache/apt/archives/clucene-core_0.9.21b-0maemo1_armel.deb
E: Sub-process /scratchbox/devkits/debian-etch/bin/dpkg returned an error
code (1)
Hmm. Let's remove /opt from base-files.list and see what happens:
Unpacking clucene-core (from .../clucene-core_0.9.21b-0maemo1_armel.deb) ...
dpkg: error processing
/var/cache/apt/archives/clucene-core_0.9.21b-0maemo1_armel.deb
(--unpack):
error creating directory `./opt': Permission denied
dpkg-deb: subprocess paste killed by signal (Broken pipe) Errors were
encountered while processing:
/var/cache/apt/archives/clucene-core_0.9.21b-0maemo1_armel.deb
It didn't help, but we can see that dpkg tries to create directory /opt and
fails because symlink /opt already exists.
OK, then. Let's put /opt back to base-files.list and create directory /opt
instead of symlink:
$ sudo rm /scratchbox/users/ed/opt
$ sudo mkdir /scratchbox/users/ed/opt
$ sudo chown ed /scratchbox/users/ed/opt And try again:
> fakeroot apt-get install clucene-core
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
clucene-core
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 0B/319kB of archives.
After unpacking 1085kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
clucene-core
Install these packages without verification [y/N]? y
/scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file
or directory (Reading database ... 6395 files and directories currently
installed.) Unpacking clucene-core (from
.../clucene-core_0.9.21b-0maemo1_armel.deb) ...
Setting up clucene-core (0.9.21b-0maemo1) ...
It works! Hurray! :)
So, my conclusion is this is scratchbox problem, not autobuilder one.
It's not autobuilder, who creates /opt symlinks. They're created by
scratchbox for each user.
May be scratchbox guys can explain how to fix it properly. Of course I can
remove symlinks and create directories instead for all builders, but may be
there is better way to solve the problem?
--
BR,
Ed
- Previous message: Maemo-Optify & Builder Bots = Broken?
- Next message: Maemo-Optify & Builder Bots = Broken?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
