On Sat, Mar 21, 2009 at 6:06 PM, Mark Wright
<markwright at internode.on.net> wrote:
> Hi hajma,
>
> I do not understand the KDE4 Solaris build system. ?I do not know the
> correct way to build things. ?I have not been able to figure out
> how to build multiple packages in one command (like gmake).
> I do not know whether I should build in the subversion cvsdude
> Dude/SPECS/specs directory or in the Mercurial
> kde4-specs/kde4-specs-dev/specs directory.
>
> I have, by reading files and trial and error, come up with the
> following convoluted procedure to build one package. ?This procedure
> avoids having to download files from bionicmutton.
>
> The xstuff package should only be built on Solaris 10. ?You
> need to change xstuff and XSTUFF to the name of the package
> you are building.
>
> The subversion checkout of Dude is huge (GBs).
>
> goanna% cd /h/goanna/2/os_5.10/KDE
> goanna% svn co https://svn2.cvsdude.com/kdesolaris/trunk Dude
> ...
> goanna% cd /h/goanna/2/os_5.10/KDE/Dude
> goanna% gtar cf /h/goanna/2/os_5.10/kt/SOURCES/XSTUFF-X-src-nv_103.tar 
> --exclude=.svn XSTUFF/X-src-nv_103
> goanna% gzip /h/goanna/2/os_5.10/kt/SOURCES/XSTUFF-X-src-nv_103.tar
> goanna% cd /h/goanna/2/os_5.10/KDE/kde4-specs/kde4-specs-dev/specs
> goanna% pkgtool --topdir /h/goanna/2/os_5.10/kt --without-download 
> --with-dude build FOSSxstuff.spec
> INFO: Copying %use'd or %include'd spec files to SPECS directory
> INFO: Processing spec files
> NOTE: Couldn't lock the package database.
> NOTE: Couldn't lock the package database.
> INFO: Finding sources
> INFO: Running pkgbuild -ba [...] FOSSxstuff.spec (FOSSxstuff)
> INFO: FOSSxstuff PASSED
> INFO: Installing FOSSxstuff
>
> Summary:
>
> ? ? ? ? ? ? ? ? ? ? ? ? package | ? ? ?status | details
> ---------------------------------+-------------+-------------------------------
> ? ? ? ? ? ? ? ? ? ? ?FOSSxstuff | ? ? ?PASSED |
> goanna%
>
> goanna% cat .pkgtoolrc
> # tarballdirs [string]: colon (:) separated list of directories where source 
> tarballs are searched for
> tarballdirs: ? ?/h/goanna/2/os_5.10/kt/SOURCES
>
> download_to: ? ?/h/goanna/2/os_5.10/kt/SOURCES
>
> # logdir [string]: the directory for saving log files
> logdir: ? ? ? ? /h/goanna/2/os_5.10/kt/build-logs
>
> # patchdirs [string]: colon (:) separated list of directories where source 
> patches are searched for
> patchdirs: ? ? 
> ?/h/goanna/2/os_5.10/KDE/kde4-specs/kde4-specs-dev/specs/patches
>
> # specdirs [string]: colon (:) separated list of directories where spec files 
> are searched for
> specdirs: ? ? ? 
> /h/goanna/2/os_5.10/KDE/kde4-specs/kde4-specs-dev/specs/base-specs:/h/goanna/2/os_5.10/KDE/kde4-specs/kde4-specs-dev/specs/include
>
> # sourcedirs [string]: colon (:) separated list of directories where extra 
> sources (not tarballs) are searched for
> sourcedirs: ? ? 
> /h/goanna/2/os_5.10/KDE/Dude/SPECS/specs:/h/goanna/2/os_5.10/KDE/kde4-specs/kde4-specs-dev/specs/ext-sources
> goanna%


There are two sections.  Dude, which is the historical repo for most
of the "dependencies"
of KDE4, is an svn repo at cvsdude.com.   Adriaan decided to use
mercurial (hg) to manage
the KDE4 code, so as to start moving toward a more "pure-spec-file"
driven system.

However, in order to get the mercurial archive to use the existing
base of knowledge from
Dude, we are requuired to push around tarballs of source (which have
been modified, and
usually aren't available from the canonical sources), plus the Solaris
differences requierd
to make the package build.

The source is usually the source name in CAPS with the package
revision information.
The Solaris tarballs, which get laid down in the source tree under
~/Solaris, contain
the additional modification for patches, configuration, building and
installing of the
packages.

If you have a Dude checkout, you can set DUDE_DIR=/tank/src/kde/Dude (as
appropriate) and in the kde4-specs-dev/specs directory, invoke make
create-tarball-stdcxx,
which will appropriately copy the tarball and the Solaris tarball to the local
directory. At that point, you need to push it to your sources directory, if you
are having problems getting it from bionicmutton, or you are making changes
to the localized Dude directory to fix some problems.

In general, the procudure should be to copy the new tarball and Solaris tarball
to when a change is made to Dude.

That help?

Ben

Reply via email to