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
