[maemo-developers] Clean build environment

From: Ed Bartosh bartosh at gmail.com
Date: Wed Jul 8 22:11:56 EEST 2009
2009/7/8 Graham Cobb <g+770 at cobb.uk.net>:
> On Wednesday 08 July 2009 18:07:03 Ed Bartosh wrote:
>> 2009/7/8 Graham Cobb <g+770 at cobb.uk.net>:
>> > Is there somewhere to discuss sbdmock?  Or, at least, to find out more
>> > about it?
>>
>> Unfortunately not. We can discuss it here.
>
> OK.  Is there any documentation or even a usage page?
>
I'm afraid there is no documentation.
usage is this:
$ sbdmock --help
usage:
    usage: sbdmock [options] /path/to/dsc
    optional commands:
        clean - clean out the specified chroot
        init - initialize the chroot, do not build anything

options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -r TARGET             compilation target name/config file name default:
                        default
  --no-clean            do not clean chroot before building
  --debug               Output copious debugging information
  --resultdir=RESULTDIR
                        path for resulting files to be put
  --statedir=STATEDIR   path for state dirresulting files to be put
  --sbtarget=SBTARGET   Overrides scratchbox target name from configuration
                        file
  --addrepo=ADDREPO     Additional repository to sources.list
  --insertrepo=INSERTREPO
                        Additional repository to sources.list. Will be added
                        on first place
  --uniqueext=UNIQUEEXT
                        Arbitrary, unique extension to append to target name
  -u                    Generate unique extension (based on package name)
  -b                    indicates that no source files are to be built
  -B                    same as '-b', but no architecture-independent binary
                        package files are to be build either
  -S                    only the source should be build and no binary packages
                        need to be made
  --dbo=DBO             Modifiers for DEB_BUILD_OPTIONS (e.g.
                        '+debug,-parallel')



>> > I thought it was just a build tool -- can it also be used to provide an
>> > environment where the developer can sit in a scratchbox target which has
>> > been cleanly created and test things out from a command line (e.g. try a
>> > build, then look for the missing files configure is complaining about,
>> > try manually installing something and see if that fixes the problem, etc,
>> > etc?).
>>
>> It is a build tool. Environment is provided by scratchbox. sbdmock
>> creates scratchbox target(or uses already created target), unpacks SDK
>> rootstrap and build package. build logs and build directory are also
>> available for the users, so it's quite convenient to debug build
>> problems. If build files user can go to the build directory, fix the
>> problem and restart or continue the build by running dpkg-buildpackage
>> or even debian/rules build.
>
> Presumably sbdmock handles installing build-essential.  Can we create a
> community rootstrap (or a devkit or something -- I don't know much about
> scratchbox) which has build-essential already installed so that sbdmock
> doesn't end up re-downloading and re-installing those packages every time we
> want to create a clean target?
It doesn't download packages if not needed. And it doesn't care about
build-essentials. After creating target it unpacks rootstrap, which is
specified in the configuration file. If you put build-essentials into
rootstrap you'll have build-essentials installed. If you prepare
rootstrap with all libraries and packages - you'll have them installed
before actual build is started. Autobuilder infrastructure uses
official Maemo SDK rootstraps.

> Can I use sbdmock to create the new target and then do nothing (so I have a
> clean SB target in which I can try out various things before I actually have
> a buildable package to build)?
As I can see it's not possible, but it's trivial to implement.
building part needs to be skipped in this case.

> Can I use sbdmock to create the new target and then run a script instead of
> trying to build a package (my build environment runs a script which does a
> lot of stuff specific to my daily builds and also uses MUD to create the
> buildable package)?
>
No, it's not possible in current implementation. I like the idea,
though. You can create an issue in  sbdmock issue tracker and propose
both ideas there.

>> > It may be that all we need to do is to create a Wiki page telling people
>> > how to install and use sbdmock for testing and debugging their build
>> > problems. Or it may be that some additional scripts and packaging would
>> > be useful.
>>
>> Wiki page would be good to have. I'm not sure about additional
>> scripts. Let's start with wiki page and then will see.
>
> OK.  I might try sbdmock out when I have more time at the weekend.  If I
> succeed I will create a Wiki page.
>
That would be great!

-- 
BR,
Ed
More information about the maemo-developers mailing list