Differences between revisions 124 and 129 (spanning 5 versions)
Revision 124 as of 2009-05-19 21:47:00
Size: 30548
Comment: gdm
Revision 129 as of 2009-05-20 22:22:05
Size: 34495
Comment: use the right bugtracker for ptlib
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
[[TableOfContents]]
Line 8: Line 9:
See http://developers.sun.com/solaris/articles/build_sw_on_solaris.html for general advice.

PATH=/space/buildbot/bin:/space/buildbot/prefix/bin:/usr/local/bin:/usr/gnu/bin:/usr/sfw/bin:/opt/SUNWspro/bin:/ucs/ccs/bin:/usr/ucb:/usr/bin: (from .zshenv) - make sure /usr/ucb is after /usr/ccs.
See http://developers.sun.com/solaris/articles/build_sw_on_solaris.html and http://wikis.sun.com/display/SolarisDeveloper/Issues+When+Porting+Open+Source+Projects+to+Solaris for general advice.

PATH=/space/buildbot/bin:/space/buildbot/prefix/bin:/usr/local/bin:/usr/gnu/bin:/usr/sfw/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/usr/bin: (from .zshenv) - make sure /usr/ucb is after /usr/ccs.
Line 17: Line 18:
dvcs_mirror_dir = '/space/buildbot/checkout/sources'
tarballdir = '/space/buildbot/checkout/sources'
Line 39: Line 42:
As CSW packages (blastwave.org/opencsw.org) are not part of the running path, ~/bin contains a symlink to /opt/csw/bin/git (git is also from opencsw while all other CSW packages come from Blastwave. Potential for interestingness.) doxygen is installed from Blastwave for libsigc++2. As CSW packages (blastwave.org/opencsw.org) are not part of the running path, ~/bin contains a symlink to /opt/csw/bin/git (git is also from opencsw while all other CSW packages come from Blastwave. Potential for interestingness.) From Blastwave, doxygen is installed for libsigc++2.
Line 92: Line 95:
manduba: ~> jhbuild bootstrap manduba: ~> jhbuild bootstrap --ignore-system
Line 96: Line 99:
Line 197: Line 199:
 because unix.mak puts -xO3 in CFLAGS on Solaris even when using GCC ([http://sourceforge.net/tracker/?func=detail&aid=2793644&group_id=80674&atid=560614 bug 2793644]). It also needs environ declared: [http://sourceforge.net/tracker/?func=detail&aid=2793654&group_id=80674&atid=560614 bug 2793654].  because unix.mak puts -xO3 in CFLAGS on Solaris even when using GCC ([https://sourceforge.net/tracker/?func=detail&aid=2794207&group_id=204472&atid=989748 SourceForge bug 2794207]). It also needs environ declared: [https://sourceforge.net/tracker/?func=detail&aid=2794209&group_id=204472&atid=989748 SourceForge bug 2794209].
Line 290: Line 292:
 * pygtksourceview's autogen.sh has a GNU find predicate that's no longer needed since conversion from CVS ([http://bugzilla.gnome.org/show_bug.cgi?id=583217 bug 583217]).
 * system-tools-backends doesn't compile because Net-DBus' Makefile.PL unconditionally adds -Wall to CFLAGS which breaks because the system perl is compiled with Sun Studio. Reported as [https://rt.cpan.org/Ticket/Display.html?id=46218 CPAN ticket 46218] and will require system-tools-backends to then update its local copy of Net-DBus.
 * mousetweaks' autogen.sh uses test -e, which Solaris' /bin/sh doesn't support ([http://bugzilla.gnome.org/show_bug.cgi?id=583311 bug 583311]). It then dies with undefined symbols during linking:
{{{
Undefined first referenced
 symbol in file
XFree mousetweaks-mt-cursor-manager.o (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XOpenDisplay mousetweaks-mt-main.o (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XFlush mousetweaks-mt-main.o (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XCloseDisplay mousetweaks-mt-main.o (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XFreeCursor mousetweaks-mt-cursor-manager.o (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
ld: fatal: Symbol referencing errors. No output written to mousetweaks
}}}
 * seahorse-plugins needs gpgme - the version from Blastwave can't be used as it has its own libgpg-error that conflicts with the jhbuilt version.
Line 291: Line 307:

Latest build failures list (30% of total): PolicyKit-gnome gnome-disk-utility nautilus libgtop bug-buddy cheese pulseaudio libcanberra zenity metacity gnome-control-center opal ekiga telepathy-mission-control libnice farsight2 telepathy-farsight empathy WebKit epiphany mono samba4 libmapi evolution-mapi gcalctool gdm gnome-applets gtk-sharp gnome-desktop-sharp clutter clutter-cairo clutter-gtk gnome-games gnome-nettool gnome-mag gnome-power-manager gnome-screensaver gnome-session gnome-system-monitor liboobs gnome-system-tools gnome-terminal gnome-user-share gnome-utils seahorse-plugins swfdec swfdec-gnome gnome-sharp ndesk-dbus ndesk-dbus-glib mono-addins tomboy yelp meta-gnome-desktop-suite sabayon meta-gnome-admin devhelp anjuta meta-gnome-devtools-suite meta-gnome-desktop

= Compiling with Sun Studio =

[http://developers.sun.com/sunstudio/ Sun Studio 12] is preferentially used by Sun for compiling GNOME in Solaris, and provides another layer of error detection, e.g. void functions that return values. It's installed into /opt/SUNWspro and /opt/SUNWspro/bin is added to PATH. Setup is largely the same, with dvcs_mirror_dir and tarballdir used to share resources between the prefixes.

Copy .jhbuildrc to .jhbuildrc-suncc (include support for jhbuildrc is [http://bugzilla.gnome.org/show_bug.cgi?id=583227 bug 583227]) and add/change:
{{{
os.environ['MAKE'] = 'gmake'
os.environ['CC'] = 'cc'
os.environ['CXX'] = 'CC'
os.environ['F77'] = 'f77'
prefix = '/space/buildbot/prefix-suncc'
checkoutroot = os.path.expanduser('~/checkout/gnome2-suncc')
}}}

Skip guile in the bootstrap as it doesn't compile and isn't used by much; Sun don't even ship it:

{{{
manduba: ~> jhbuild -f .jhbuildrc-suncc bootstrap --skip guile --ignore-system
}}}

== Issues only affecting Sun Studio ==

 * glib fails becaues g_async_initable_init_async in gio/gasyncinitable.c is defined as void but returns a value ([http://bugzilla.gnome.org/show_bug.cgi?id=583229 bug 583229])

Manduba should run a GNOME buildbot slave in order to help tinderbox the GNOME code, linked to http://build.gnome.org/ TableOfContents

Running configuration

Manduba is running SunOS manduba 5.11 snv_101 sun4u sparc SUNW,Ultra-Enterprise Solaris

The buildbot runs as user 'buildbot' from /space/buildbot/

See http://developers.sun.com/solaris/articles/build_sw_on_solaris.html and http://wikis.sun.com/display/SolarisDeveloper/Issues+When+Porting+Open+Source+Projects+to+Solaris for general advice.

PATH=/space/buildbot/bin:/space/buildbot/prefix/bin:/usr/local/bin:/usr/gnu/bin:/usr/sfw/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/usr/bin: (from .zshenv) - make sure /usr/ucb is after /usr/ccs.

.jhbuildrc:

moduleset = 'gnome-suites-2.28'
checkoutroot = os.path.expanduser('~/checkout/gnome2')
dvcs_mirror_dir = '/space/buildbot/checkout/sources'
tarballdir = '/space/buildbot/checkout/sources'
prefix = '/space/buildbot/prefix'
module_autogenargs['gettext'] = autogenargs + ' LDFLAGS="-lsec"'
module_autogenargs['gst-plugins-base'] = autogenargs + ' CFLAGS=-I/usr/X11/include'
module_autogenargs['gtk+'] = autogenargs + ' --without-libjasper'
module_autogenargs['gmp'] = autogenargs + ' ABI=32'
module_autogenargs['libgda'] = autogenargs + ' --without-mysql'
module_autogenargs['libxml2'] = autogenargs + ' --with-python=/space/buildbot/prefix/bin/python'
module_autogenargs['mono'] = autogenargs + ' --disable-dtrace'
module_makeargs['nss'] = ''
module_autogenargs['nspr'] = autogenargs + ' --disable-64bit'
module_autogenargs['evolution-data-server'] = autogenargs + ' --with-sunldap=yes'
module_autogenargs['evolution-exchange'] = autogenargs + ' --with-sunldap=yes'
module_autogenargs['brasero'] = autogenargs + ' --disable-inotify'
module_autogenargs['gvfs'] = autogenargs + ' CFLAGS="-D_XPG4_2 -D__EXTENSIONS__"'
module_autogenargs['metacity'] = autogenargs + ' CFLAGS=-Wno-uninitialized'
module_autogenargs['gdm'] = autogenargs + ' CFLAGS=-Wno-uninitialized'
module_autogenargs['evolution'] = autogenargs + ' --with-cde-path=no'
makeargs = '-j4'
os.environ['INSTALL'] = os.path.expanduser('~/bin/install-check')
use_local_modulesets = True

As CSW packages (blastwave.org/opencsw.org) are not part of the running path, ~/bin contains a symlink to /opt/csw/bin/git (git is also from opencsw while all other CSW packages come from Blastwave. Potential for interestingness.) From Blastwave, doxygen is installed for libsigc++2.

mono needs --disable-dtrace added to the configure flags (as DTrace requires root permissions)

GNU MP (in the bootstrap moduleset) builds 64-bit libraries by default, which then cannot be linked against the 32-bit binaries that the toolchain produces for EVERYTHING ELSE. This makes guile fail to configure. There is a module_autogenargs setting to override this (module_extra_env didn't seem to work).

There are sometimes spurious warnings "'variable' might be used uninitialized in this function" which become fatal thanks to -Werror that some modules enable when being built from version control. This is because we're using gcc 3.4 which has poor logic compared to more recent versions, so rather than wasting maintainers' time, just silence the warnings by putting -Wno-uninitialized in CFLAGS.

use_local_modulesets allows us to use modifications to things like bootstrap.modulesets (e.g. autoconf-2.63 instead of 2.62):

--- bootstrap.modules   (revision 2732)
+++ bootstrap.modules   (working copy)
@@ -26,8 +26,8 @@

   <autotools id="autoconf" autogen-sh="configure">
     <branch repo="ftp.gnu.org"
-           module="autoconf/autoconf-2.62.tar.bz2" version="2.62"
-           size="1165951" md5sum="e1fb8fe0b22e651240afdfa2be537a3c" />
+           module="autoconf/autoconf-2.63.tar.bz2" version="2.63"
+           size="1195259" md5sum="7565809ed801bb5726da0631ceab3699" />
     <dependencies>
       <dep package="m4"/>
     </dependencies>

http://src.opensolaris.org/source/xref/jds/spec-files/trunk/ may contain useful patches that should be pushed upstream.

Configuration procedure

Part 1: Configure jhbuild

http://live.gnome.org/Jhbuild

manduba: ~> mkdir -p ~/checkout/gnome2
manduba: ~> cd ~/checkout/gnome2
manduba: ~/checkout/gnome2> svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild
manduba: ~/checkout/gnome2> cd jhbuild
manduba: ~/checkout/gnome2/jhbuild> gmake -f Makefile.plain install-check CFLAGS='-DWITH_INSTALL=\"/usr/ucb/install\"'

(see http://bugzilla.gnome.org/show_bug.cgi?id=364465)

manduba: ~/checkout/gnome2/jhbuild> gmake -f Makefile.plain
manduba: ~/checkout/gnome2/jhbuild> gmake -f Makefile.plain install

Create ~/.jhbuildrc as above.

To pick up standard version of gettext, libtool, automake-1.{4,7,8,9,10}, pkg-config, python, guile and waf,

manduba: ~> jhbuild bootstrap --ignore-system

Building gettext-0.17 on Solaris requires special arguments: http://savannah.gnu.org/bugs/?21604 which are added to jhbuild above. However, using the bootstrap version fixes errors on Solaris with "AM_NLS" Automake macros (the system gettext doesn't have them).

Part 2: Configure buildbot

http://live.gnome.org/BuildBrigade/DocsAndGuides

jhbuild bot --setup

(more to come)

Current Issues

/!\ Current issues:

  • No SSL CA certs for wget, meaning Mozilla packages have to be manually downloaded
  • PolicyKit doesn't configure because when checking for PAM it tries to pass -l,as-needed which isn't supported by Solaris' ld(1). It also assumes that if using GCC, you're using GNU ld, which is not the case. Search configure.in for 'as-needed' to see the check. Filed as https://bugs.freedesktop.org/show_bug.cgi?id=20060 (hacks are in place to work around this, but the make fails later. Needs more investigation.)

  • A bunch of modules fail to build with this error:

/usr/include/sys/feature_tests.h:353:2: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications"

checking for gdbm_open in -lgdbm... no
checking gdbm.h usability... no
checking gdbm.h presence... no
checking for gdbm.h... no
configure: error: gdbm.h not found
  • This is because gdbm is not available as a SUNW package or in buildbot (only by CSW). Filed as http://pulseaudio.org/ticket/493 - patching looks reasonably simple because use is confined to a single file.

  • libdaemon doesn't build because of a reference to _NSIG (instead of NSIG) in dfork.c - this is fixed in HEAD but not 0.13.
  • cairo 1.8.6 creates a messed up libtool:

/bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -I. -I/space/buildbot/prefix/include/pixman-1       -I/usr/include/freetype2   -I/space/buildbot/prefix//include   -I/usr/include/libpng12   -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/usr/X11/include   -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/usr/X11/include     -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold-style-definition -Wno-unused-parameter -Wno-long-long -Winline -fno-strict-aliasing -fno-common -Wp,-D_FORTIFY_SOURCE=2              -g -O2 -D_POSIX_PTHREAD_SEMANTICS -MT cairo-atomic.lo -MD -MP -MF .deps/cairo-atomic.Tpo -c -o cairo-atomic.lo cairo-atomic.c
../libtool: line 845: X--tag=CC: command not found
../libtool: line 878: libtool: ignoring unknown tag : command not found
../libtool: line 845: X--mode=compile: command not found
../libtool: line 1012: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1013: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 1156: Xgcc: command not found
../libtool: line 1156: X-DHAVE_CONFIG_H: command not found
../libtool: line 1156: X-I.: command not found
../libtool: line 1156: X-I..: command not found
...
  • each error occurs four times, and there's many more errors on line 1156. Copying the libtool from 1.8.4 works, but it'll be overwritten whenever autogen.sh is run. Needs futher investigation.
  • clutter-cairo could use a dependency on clutter, otherwise configure fails.
  • dbus 1.2.12 dies in configure ([https://bugs.freedesktop.org/show_bug.cgi?id=21545 freedesktop bug 21545]):

checking 32-bit integer type... configure: error: No 32-bit integer type found

gcc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"libglade\" -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/space/buildbot/prefix//include/libxml2 -I/space/buildbot/prefix/include/atk-1.0 -I/space/buildbot/prefix/include/glib-2.0 -I/space/buildbot/prefix/lib/glib-2.0/include -I/space/buildbot/prefix/include/gtk-2.0 -I/space/buildbot/prefix/lib/gtk-2.0/include -I/space/buildbot/prefix/include/cairo -I/space/buildbot/prefix/include/pango-1.0 -I/space/buildbot/prefix//include/pixman-1 -I/space/buildbot/prefix//include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/X11/include -DGLADE_LIBDIR=\"/space/buildbot/prefix/lib\" -DGLADE_PREFIX=\"/space/buildbot/prefix\" -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED -g -O2 -Wall -std=c9x -MT glade-init.lo -MD -MP -MF .deps/glade-init.Tpo -c glade-init.c  -fPIC -DPIC -o .libs/glade-init.o
In file included from /space/buildbot/prefix/include/glib-2.0/glib/gbacktrace.h:35,
                 from /space/buildbot/prefix/include/glib-2.0/glib.h:36,
                 from glade-init.c:27:
/usr/include/signal.h:219: error: syntax error before '*' token
  • gbacktrace.h including signal.h without also sys/select.h is the proximate cause. I suspect this is also fixable with the right -std= flag (ala the Compiler or options error above) or defining __XOPEN_OR_POSIX and (_XPG42 or _XPG6). Currently fixed with a local patch to gbacktrace.h in glib see http://bugzilla.gnome.org/show_bug.cgi?id=562334 .

gcc -std=gnu99 -g -O2 -o .libs/gnome-vfs-daemon dbus-utils.o vfs-daemon.o daemon-connection.o  -L/space/buildbot/prefix/lib -L/space/buildbot/prefix//lib -L/usr/sfw/lib ../libgnomevfs/.libs/libgnomevfsdaemon-2.a -lhal-storage -lhal /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so ../libgnomevfs/.libs/libgnomevfs-2.so /space/buildbot/prefix/lib/libgconf-2.so /space/buildbot/prefix/lib/libORBit-2.so /space/buildbot/prefix/lib/libgmodule-2.0.so /space/buildbot/prefix/lib/libgthread-2.0.so -lthread /space/buildbot/prefix/lib/libxml2.so -lpthread -lz -lm /space/buildbot/prefix//lib/libdbus-glib-1.so /space/buildbot/prefix//lib/libdbus-1.so -lbsm /space/buildbot/prefix/lib/libgobject-2.0.so -lssl -lcrypto -ldl -lavahi-glib /space/buildbot/prefix/lib/libglib-2.0.so -lavahi-common -lavahi-client -lresolv -lsocket -lnsl  -R/space/buildbot/prefix/lib -R/space/buildbot/prefix//lib -R/usr/sfw/lib
ld: warning: file ../libgnomevfs/.libs/libgnomevfs-2.so: linked to /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so: attempted multiple inclusion of file
Undefined                       first referenced
 symbol                             in file
SSL_write                           /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_get_error                       /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_get_fd                          /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_set_fd                          /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_free                            /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_read                            /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSLv23_client_method                /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_new                             /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_CTX_new                         /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_connect                         /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_shutdown                        /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_CTX_free                        /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
SSL_library_init                    /space/buildbot/checkout/gnome2/gnome-vfs/libgnomevfs/.libs/libgnomevfs-2.so
ld: fatal: Symbol referencing errors. No output written to .libs/gnome-vfs-daemon
collect2: ld returned 1 exit status
  • being unable to find libssl even though -L /usr/sfw/lib -R /usr/sfw/lib -l ssl is given to gcc.

{{{sysdeps.c:49: error: `GLIBTOP_SUID_PROC_WD' undeclared here (not in a function) sysdeps.c:50: error: `GLIBTOP_SUID_PROC_AFFINITY' undeclared here (not in a function)}}}

  • libsigc++ fails to build with

{{{SRCDIR=. TOP_SRCDIR=../.. doxygen Doxyfile /bin/bash: doxygen: command not found}}}

  • ptlib fails with

{{{g++ -DP_USE_PRAGMA -DPTRACING=1 -D_REENTRANT -I/usr/sfw/include -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -Wall -fPIC -DPIC -DNDEBUG -xO3 -I/space/buildbot/checkout/gnome2/ptlib-2.5.2/include -DSOLARIS -Dinline=inline -felide-constructors -Wreorder -c ptlib/common/pluginmgr.cxx -o /space/buildbot/checkout/gnome2/ptlib-2.5.2/lib_solaris_sparc/obj/pluginmgr.o g++: language O3 not recognized}}}

checking netinet/ip.h usability... no
checking netinet/ip.h presence... yes
configure: WARNING: netinet/ip.h: present but cannot be compiled
configure: WARNING: netinet/ip.h:     check for missing prerequisite headers?
configure: WARNING: netinet/ip.h: see the Autoconf documentation
configure: WARNING: netinet/ip.h:     section "Present But Cannot Be Compiled"
configure: WARNING: netinet/ip.h: proceeding with the preprocessor's result
configure: WARNING: netinet/ip.h: in the future, the compiler will take precedence
configure: WARNING:     ## ---------------------------------------- ##
configure: WARNING:     ## Report this to [email protected] ##
configure: WARNING:     ## ---------------------------------------- ##

Compiling heimdal/lib/roken/vis.c
In file included from heimdal/../heimdal_build/vis.h:3,
                 from heimdal/lib/roken/vis.c:83:
./heimdal/lib/roken/vis.hin:83:23: sys/cdefs.h: No such file or directory
In file included from heimdal/../heimdal_build/vis.h:3,
                 from heimdal/lib/roken/vis.c:83:
./heimdal/lib/roken/vis.hin:86: error: syntax error before "char"
heimdal/lib/roken/vis.c:103: error: syntax error before "static"
heimdal/lib/roken/vis.c: In function `do_svis':
heimdal/lib/roken/vis.c:229: error: `u_int32_t' undeclared (first use in this function)
heimdal/lib/roken/vis.c:229: error: (Each undeclared identifier is reported only once
heimdal/lib/roken/vis.c:229: error: for each function it appears in.)
heimdal/lib/roken/vis.c:229: error: syntax error before "u_char"
heimdal/lib/roken/vis.c:229: error: syntax error before ')' token
heimdal/lib/roken/vis.c:230: error: syntax error before "u_char"
heimdal/lib/roken/vis.c:230: error: syntax error before ')' token
The following command failed:
gcc -Iheimdal/../heimdal_build -Iheimdal/lib/roken -I../lib/socket_wrapper     -fPIC -I./include -I. -I./lib -I./../lib/replace -I./../lib/talloc -I./.. -D_SAMBA_BUILD_=4 -DHAVE_CONFIG_H  -c heimdal/lib/roken/vis.c -o heimdal/lib/roken/vis.o
  • system-tools-backends fails to compile:

cc -c  -Wall -I/space/buildbot/prefix//include/dbus-1.0 -I/space/buildbot/prefix//lib/dbus-1.0/include   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8 -D_TS_ERRNO -xO3 -xspace -xildoff   -DVERSION=\"0.33.5\" -DXS_VERSION=\"0.33.5\" -KPIC "-I/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE"  -DDBUS_API_SUBJECT_TO_CHANGE -DHAVE_CONN_DISCONNECT=0 -DNET_DBUS_DEBUG=1 DBus.c
cc: illegal option -Wall
  • cc is the Sun compiler; perhaps we need an extra flag to use gcc for all modules (although arguably the configure script should be checking all these flags for us, it spends the whole time checking GCC.)
  • clutter doesn't build - possibly lack of an OpenGL library? Best guess is it needs SUNWxorg-mesa, which is x86 only!

gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../.. -I../../../clutter -I../../../clutter/cogl -I../../../clutter/cogl/common -I../../../clutter/cogl/gl -I../../../clutter -I../../../clutter/cogl -D_REENTRANT -D_PTHREADS -D_POSIX_PTHREAD_SEMANTICS -I/space/buildbot/prefix/include/pango-1.0 -I/space/buildbot/prefix/include/cairo -I/space/buildbot/prefix/include/glib-2.0 -I/space/buildbot/prefix/lib/glib-2.0/include -I/space/buildbot/prefix//include/pixman-1 -I/space/buildbot/prefix//include -I/space/buildbot/prefix/include/gtk-2.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/X11/include -DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS -g -Wall -g -O2 -MT cogl-fbo.lo -MD -MP -MF .deps/cogl-fbo.Tpo -c cogl-fbo.c  -fPIC -DPIC -o .libs/cogl-fbo.o
cogl-fbo.c: In function `cogl_offscreen_new_to_texture':
cogl-fbo.c:100: error: `GL_RENDERBUFFER_EXT' undeclared (first use in this function)
cogl-fbo.c:100: error: (Each undeclared identifier is reported only once
cogl-fbo.c:100: error: for each function it appears in.)
cogl-fbo.c:101: error: `GL_STENCIL_INDEX8_EXT' undeclared (first use in this function)
cogl-fbo.c:108: error: `GL_FRAMEBUFFER_EXT' undeclared (first use in this function)
cogl-fbo.c:109: error: `GL_COLOR_ATTACHMENT0_EXT' undeclared (first use in this function)
cogl-fbo.c:111: error: `GL_STENCIL_ATTACHMENT_EXT' undeclared (first use in this function)
cogl-fbo.c:118: error: `GL_FRAMEBUFFER_COMPLETE_EXT' undeclared (first use in this function)
cogl-fbo.c: In function `cogl_draw_buffer':
cogl-fbo.c:293: error: `GL_FRAMEBUFFER_EXT' undeclared (first use in this function

gcc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Eel\" -I.. -D_REENTRANT -D_PTHREADS -DORBIT2=1 -D_POSIX_PTHREAD_SEMANTICS -I/space/buildbot/prefix/include/glib-2.0 -I/space/buildbot/prefix/lib/glib-2.0/include -I/space/buildbot/prefix/include/gnome-desktop-2.0 -I/space/buildbot/prefix/include/gtk-2.0 -I/space/buildbot/prefix/include/startup-notification-1.0 -I/space/buildbot/prefix/lib/gtk-2.0/include -I/space/buildbot/prefix/include/atk-1.0 -I/space/buildbot/prefix/include/cairo -I/space/buildbot/prefix/include/pango-1.0 -I/space/buildbot/prefix//include/pixman-1 -I/space/buildbot/prefix//include -I/space/buildbot/prefix/include/gio-unix-2.0/ -I/space/buildbot/prefix//include/unique-1.0 -I/space/buildbot/prefix//include/dbus-1.0 -I/space/buildbot/prefix//lib/dbus-1.0/include -I/space/buildbot/prefix/include/gail-1.0 -I/space/buildbot/prefix/include/gconf/2 -I/space/buildbot/prefix/include/orbit-2.0 -I/space/buildbot/prefix/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/X11/include -I/space/buildbot/prefix/include/pango-1.0 -I/space/buildbot/prefix/include/glib-2.0 -I/space/buildbot/prefix/lib/glib-2.0/include -Wall -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Werror -Wstrict-aliasing=0 -DDATADIR=\"/space/buildbot/prefix/share\" -DSOURCE_DATADIR=\"../data\" -DGNOMELOCALEDIR=\"/space/buildbot/prefix/share/locale\" -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGMENU_I_KNOW_THIS_IS_UNSTABLE -g -O2 -MT eel-background.lo -MD -MP -MF .deps/eel-background.Tpo -c eel-background.c  -fPIC -DPIC -o .libs/eel-background.o
eel-background.c: In function `eel_background_receive_dropped_color'
eel-background.c:1050: warning: cast increases required alignment of target type
make[2]: *** [eel-background.lo] Error 1
  • gstreamer has a .po file that segfaults /usr/bin/gmsgfmt, but works with the older /opt/csw/bin/gmsgfmt (now symlinked in ~/bin) which reports:

/opt/csw/bin/gmsgfmt -c --statistics -o eu.gmo eu.po
/opt/csw/bin/gmsgfmt: eu.po: warning: PO file header fuzzy
                             warning: older versions of msgfmt will give an error on this
  • however this older gmsgfmt fails on gtk+, so the symlink has been removed for the moment.
  • zenity fails with a linking error:

gcc -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/space/buildbot/prefix/include/gtk-2.0 -I/space/buildbot/prefix/lib/gtk-2.0/include -I/space/buildbot/prefix/include/atk-1.0 -I/space/buildbot/prefix/include/cairo -I/space/buildbot/prefix/include/pango-1.0 -I/space/buildbot/prefix/include/glib-2.0 -I/space/buildbot/prefix/lib/glib-2.0/include -I/space/buildbot/prefix//include/pixman-1 -I/space/buildbot/prefix//include -I/space/buildbot/prefix/include/libglade-2.0 -I/space/buildbot/prefix/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/X11/include   -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/space/buildbot/prefix/include/gtk-2.0 -I/space/buildbot/prefix/include/glib-2.0 -I/space/buildbot/prefix/lib/glib-2.0/include -I/space/buildbot/prefix//include/dbus-1.0 -I/space/buildbot/prefix//lib/dbus-1.0/include -I/space/buildbot/prefix/lib/gtk-2.0/include -I/space/buildbot/prefix/include/atk-1.0 -I/space/buildbot/prefix/include/cairo -I/space/buildbot/prefix/include/pango-1.0 -I/space/buildbot/prefix//include/pixman-1 -I/space/buildbot/prefix//include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/X11/include   -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare   -g -O2  -L/space/buildbot/prefix/lib  -o zenity zenity-about.o zenity-calendar.o zenity-entry.o zenity-fileselection.o zenity-main.o zenity-msg.o zenity-notification.o zenity-option.o zenity-progress.o zenity-scale.o zenity-text.o zenity-tree.o zenity-util.o -R/lib -L/space/buildbot/prefix/lib -L/space/buildbot/prefix//lib -L/lib -lglade-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -R/lib -L/space/buildbot/prefix/lib -L/space/buildbot/prefix//lib -L/lib -lnotify -lgtk-x11-2.0 -ldbus-glib-1 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgmodule-2.0 -ldbus-1 -lgobject-2.0 -lglib-2.0
Undefined                       first referenced
 symbol                             in file
XGetWindowAttributes                zenity-util.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XFree                               zenity-util.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XGetWMName                          zenity-util.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XQueryTree                          zenity-util.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
ld: fatal: Symbol referencing errors. No output written to zenity

Undefined                       first referenced
 symbol                             in file
XFree                               mousetweaks-mt-cursor-manager.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XOpenDisplay                        mousetweaks-mt-main.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XFlush                              mousetweaks-mt-main.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XCloseDisplay                       mousetweaks-mt-main.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
XFreeCursor                         mousetweaks-mt-cursor-manager.o  (symbol belongs to implicit dependency /usr/X11/lib/libX11.so.4)
ld: fatal: Symbol referencing errors. No output written to mousetweaks
  • seahorse-plugins needs gpgme - the version from Blastwave can't be used as it has its own libgpg-error that conflicts with the jhbuilt version.
  • Once things are building, it would be worth running tests with makecheck in .jhbuildrc.

Latest build failures list (30% of total): PolicyKit-gnome gnome-disk-utility nautilus libgtop bug-buddy cheese pulseaudio libcanberra zenity metacity gnome-control-center opal ekiga telepathy-mission-control libnice farsight2 telepathy-farsight empathy WebKit epiphany mono samba4 libmapi evolution-mapi gcalctool gdm gnome-applets gtk-sharp gnome-desktop-sharp clutter clutter-cairo clutter-gtk gnome-games gnome-nettool gnome-mag gnome-power-manager gnome-screensaver gnome-session gnome-system-monitor liboobs gnome-system-tools gnome-terminal gnome-user-share gnome-utils seahorse-plugins swfdec swfdec-gnome gnome-sharp ndesk-dbus ndesk-dbus-glib mono-addins tomboy yelp meta-gnome-desktop-suite sabayon meta-gnome-admin devhelp anjuta meta-gnome-devtools-suite meta-gnome-desktop

Compiling with Sun Studio

[http://developers.sun.com/sunstudio/ Sun Studio 12] is preferentially used by Sun for compiling GNOME in Solaris, and provides another layer of error detection, e.g. void functions that return values. It's installed into /opt/SUNWspro and /opt/SUNWspro/bin is added to PATH. Setup is largely the same, with dvcs_mirror_dir and tarballdir used to share resources between the prefixes.

Copy .jhbuildrc to .jhbuildrc-suncc (include support for jhbuildrc is [http://bugzilla.gnome.org/show_bug.cgi?id=583227 bug 583227]) and add/change:

os.environ['MAKE'] = 'gmake'
os.environ['CC'] = 'cc'
os.environ['CXX'] = 'CC'
os.environ['F77'] = 'f77'
prefix = '/space/buildbot/prefix-suncc'
checkoutroot = os.path.expanduser('~/checkout/gnome2-suncc')

Skip guile in the bootstrap as it doesn't compile and isn't used by much; Sun don't even ship it:

manduba: ~> jhbuild -f .jhbuildrc-suncc bootstrap --skip guile --ignore-system

Issues only affecting Sun Studio

Bugs fixed

We've reported a bunch of bugs, and some have been fixed: