Child pages
  • Old Instructions for Building JDS
Skip to end of metadata
Go to start of metadata

Building on a snv_134 system.

Dependencies for building JDS NEVADA_148 (recommend: SVN 21853+):

text/gnu-patch archiver/gnu-tar web/wget developer/build/ant \
developer/build/autoconf developer/build/gnu-make \
developer/parser/bison text/gnu-diffutils file/gnu-coreutils \
developer/lexer/flex text/gnu-gettext developer/build/libtool \
developer/macro/gnu-m4 system/header system/xopen/xcu4 \
x11/header x11/header/header-xorg system/header/header-audio \
developer/object-file system/library/math/header-math \
developer/build/automake-110 developer/gnome/gettext \
compatibility/ucb developer/gcc-3 developer/build/automake-19 \
text/auto_ef library/medialib image/imagemagick \
developer/build/cmake runtime/lua

(NB there's a claimed dependency on SUNWsfwhea, which is obsolete and apparently split up into the packages that delivered the various SFW libraries.)

Install the September 2009 build of SunStudio12:

pfexec mkdir -p /opt/SUNWspro
cd /opt/SUNWspro
bzcat sunstudio12-patched-ii-2009Sep-sol-x86.tar.bz2 | pfexec tar xf -
PATH=/opt/SUNWspro/bin:$PATH
MANPATH=/opt/SUNWspro/man:$MANPATH
export MANPATH

Get the current version of jds-cbe:

svn co svn+ssh://anon@svn.opensolaris.org/svn/jds/jds-cbe/trunk jds-cbe

Patch it with this:

Index: cbe-install
===================================================================
--- cbe-install	(revision 51)
+++ cbe-install	(working copy)
@@ -32,7 +32,7 @@

 # this is listed separately because we are using the spec file
 # included in the pkgbuild tarball
-PKGBUILD_VERSION=1.3.101
+PKGBUILD_VERSION=1.3.103

 # Modules needed for building GNOME:
 GNOME_MODULES="ant m4 autoconf automake libtool bison coreutils diff flex gettext make subversion"
@@ -1050,7 +1050,7 @@
 check_pkg_system () {

    if [ -x /usr/bin/pkg ]; then
- 	pkg -R $rootdir info entire > /dev/null 2>&1 && {
+ 	pkg -R $rootdir info SUNWcs > /dev/null 2>&1 && {
 	    PKG_SYSTEM=pkg
 	    return
 	}

You'll also need to edit the CBEant.spec file to change the source to archive.apache.org instead of www.apache.org.

Run cbe-install. Answer "no" to dependency checking. Answer no to gnome, kde, sfe and the optional tool installs. Use the default directory /opt/dtbld but change the packages folder to $HOME/packages (or a location your current user has write access to). This builds and installs the CBE environment.

To enter it, run what it tells you. eg

. /opt/dtbld/bin/env.sh

The remainder of the instructions assume you're in the environment.

You need to apply two patches to files under /opt/dtbld/lib/pkgbuild-1.3.103 to make pkgbuild work better with IPS. See the attachments to this document.

Then grab the spec-files repo and check out the tag we want to build:

BASEDIR=/data/builds/147/jds
cd $BASEDIR
hg clone http://pkgdev.openindiana.org/hg/spec-files
cd spec-files
hg update VERMILLION_147
#OLD: hg update NEVADA_145

Build the manpage tarballs.

cd $BASEDIR/spec-files/manpages
make

Solaris specific changes to translations are found in tarballs named module-po-sun-version.tar.bz2. These tarballs are generated from the .po files found in spec-files/po-sun. To generate the tarballs, use the following commands:

cd $BASEDIR/spec-files/po-sun
make

There are a bunch of specs that can't be built due to closedness:

cd $BASEDIR/spec-files/specs
mkdir ../extra
mv SUNWapoc-adapter-gconf.spec SUNWapoc.spec SUNWclutter-gst.spec SUNWclutter-gtk.spec SUNWclutter.spec SUNWevolution-bdb-devel.spec SUNWflash-player-plugin.spec SUNWseahorse-plugins.spec SUNWsun-gdm-themes.spec ../extra/

Apply two patches (specs.patch and base-specs.patch) (see attachments) which correct a lot of the upstream URLs first, and then download all the upstream sources.

cd $BASEDIR/spec-files/specs
pkgtool --download download -v *.spec

You will need to set up a local IPS repository, pkgtool needs to publish packages to it, and install them.

pfexec mkdir $BASEDIR/ips-depot
pfexec nohup /usr/lib/pkg.depotd -d $BASEDIR/ips-depot -p 12345 --set-property publisher.prefix=openindiana.org &
pfexec pkg set-publisher -O http://`hostname`:12345/ openindiana.org

Finally you should be able to go:

export PKGBUILD_IPS_SERVER=http://`hostname`:12345/
cd $BASEDIR/spec-files/specs
mkdir ../log
nohup pkgtool -v build --with-moz-nss-nspr --without-sun-branding --with-l10n --autodeps *.spec > ../log/build.log 2>&1 &

Note this build takes a very long time, up to half a day. It is more reliable to run it under nohup than screen.

Notes:

If the builds fail because of:

pkgbuild: Calling script /export/home/openindiana/packages/PKGMAPS/scripts/SFEswig_ips.sh
pkgbuild: pkgsend: 'open' failed for transaction ID 'None'; status '400':
pkgbuild: Illegal FMRI 'SFEswig@1.3.35,5.11-0.OpenIndiana_b145': Bad Version: 0.OpenIndiana_b145
pkgbuild: pkgsend: include: No transaction ID specified in $PKG_TRANS_ID

This is because uname -v is returning something that pkgbuild isn't parsing correctly - it expects a-zA-Z_0-9 to get the number. If you're building on an onnv different to the version of JDS you're building, you'll probably want to hardcode this anyway. Edit:

/opt/dtbld/lib/pkgbuild-1.3.103/rpm_package.pm

Search for 'uname -v' and alter it to look like:

    my $os_build = `uname -v`;
    chomp ($os_build);
    $os_build =~ s/^\S+_([0-9]+).*/$1/;
    $self->{_tags}->{ips_vendor_version} = "0.147";

Here you can see we're hardcoding ips_vendor_version at 0.147.

Archive for old information

There's one problem with the new SUNWgnome-common-devel package; you'll need to untar gnome-common-VERSION.tar.bz2 and install one file by hand:

Note: This is not necessary if you've installed gettext to build xnv

pfexec cp gnome-common-VERSION/gettext-0.16.1/gettext-runtime/m4/nls.m4 /usr/share/aclocal/
  • No labels