README for Gtk+/GIMP under SINIX/Reliant UNIX ============================================= 1. Introduction =============== I've prepared two PKG packages to simplify the installation of gtk and the gimp under SINIX/Reliant UNIX. I you want to build this package from scratch, there is quite some compilation required, since you also need the libraries libjpeg-60a, libtiff, libpng and libz for the GIMP to be really useful. All these libraries are included in the package as dynamic shared objects (shared libraries). The GIMP, which is short for 'GNU Image Manipulation Program' is one of the hottest packages of the open source movement. There are already people, who are abandoning Adobe Photoshop for the GIMP. To learn more about about either Gtk or GIMP surf to http://www.gimp.org or http://www.gtk.org The packages are based on Gtk v1.0.0 and GIMP 0.99.27. 2. Building =========== Running the configure script is not quite enough to build both packages, although the required changes are pretty trivial. You should install the most recent GCC from ftp://ftp.mch.sni.de/sni/mr/pd/gnu/gcc however. I tried to compile with the system cc, however I ran into problems. Gtk build fine with the system cc, also the testprograms worked fine, as far as I can tell. However the GIMP seems to contain some GCCisms. I was to lazy to investigate this further. And a cc compiled Gtk linked against a gcc compiled GIMP linked ok, however some widget had problems. Therefore I rebuild everything with GCC. 2.1. Building Gtk ----------------- The following steps are needed to build Gtk (replace /home/tools with your favourite prefix): o Patch ltconfig with supplied patch (see below) o same for ltconfig in directory glib o Run configure with the following arguments: CC='cc -W0' LIBS='-lsocket -lnsl -lc' CFLAGS=-O2 ./configure \ --prefix=/home/tools --enable-shared o Run this perl onliner: perl -i.bak -p -e 's{SHELL.*bin/sh}{SHELL=/home/tools/bin/bash}' \ `find . -name Makefile -print` This explicitly sets all SHELL variables in the makefiles to /home/tools/bin/bash (replace this with your specific path). This is not strictly necessary, however the libtool script, which is used to compile Gtk, runs somewhat faster, when run though bash. I guess, you can just as well use the ksh, since both shells are known to be running faster than the original /bin/sh o Edit gtk-config to include -lsocket -lnsl o Execute make. Alternativly you might want to execute make MAKE='make -j 4' This starts four parallel compilation processes. After compilation try the testprograms in the gtk subdirectory. If this is successful run 'make install' There are no other sources changes necessary. 2.2. Building GIMP ------------------ The following steps are needed to build GIMP (replace /home/tools with your favourite prefix): o Patch ltconfig with supplied patch (see below) o Execute configure: env CFLAGS='-O2' CPPFLAGS='-I/home/tools/include/jpeg-6.0a \ -I/home/tools/include/tiff \ -I/src/mpeg_lib \ -I/home/tools/include' \ ./configure --prefix=/home/tools --enable-shared Concering the CPPFLAGS your milage may vary, depending on where you installed the various libraries. o Run this perl onliner: perl -i.bak -p -e 's{SHELL.*bin/sh}{SHELL=/home/tools/bin/bash}' \ `find . -name Makefile -print` Same reason as for Gtk. o Run this perl onliner: perl -i.bak -p -e 's{-lc}{-lc -L/usr/ucblib -lucb}' \ `find . -name Makefile -print` I think, this was necessary because on an undefined symbol strcasecmp, which is available through the libucb.a o Run make After checking, that app/gimp works fine, you can execute 'make install'. Again, no other source changes were necessary. As you have already seen from the configure invocations, Gtk and GIMP are compiled and packaged to reside below /home/tools. This is the standard place in my environment, where all my compiled stuff goes. Unfortunately I can't put my stuff in the usual place /usr/local. I'm afraid, you have to live with it, if you want to use this package. 3. Installation =============== These packages have to be installed with the standard pkg facilities. You need gzip to decompress the package. If you don't already have gzip you can find a ready to run version under the URL ftp://ftp.mch.sni.de/sni/mr/pg/gnu/gzip To install, execute the following steps as root. # gzip -d gtk-1.0.0.pkg.gz # pkgadd -d /gtk-1.0.0.pkg And see things happening. Alternatively you can execute these steps. Saves a lot of disk space. # mkfifo /tmp/install # gzip -dc gtk-1.0.0.pkg.gz >/tmp/install & # pkgadd -d /tmp/install pkgadd reads it input from a named pipe into which gzip writes the decompressed output. Do the same for gimp-0.99.27.pkg.gz. 4. Using GIMP ============= I've used the GIMP on a RM600-xx running SINIX V5.42A10, a RM200 running Reliant UNIX 5.43C10 and a RM600-E20 running 5.44B00. No problems. However keep in mind, that if X-server and X-client are running on different machines, you need to invoke gimp --no-xshm This is not necessary on a RM200. I've exercised most scripts, which create some logos. You should obtain these additional packages, which provides lots of fonts, which are required to run most of the logo scripts either from ftp://ftp.mch.sni.de or any other sunsite mirror. /pub/os/Linux/mirror.sunsite/X11/fonts/freefonts-0.10.tar.gz /pub/os/Linux/mirror.sunsite/X11/fonts/sharefonts-0.10.tar.gz 5. Creator of the package ========================= /==== Siemens Nixdorf Informationssysteme AG / Ridderbusch / , Abt.: OEC XS QM4 / /./ Heinz Nixdorf Ring /=== /,== ,===/ /,==, // 33106 Paderborn, Germany / // / / // / / \ Tel.: (49) 5251-8-15211 / / `==/\ / / / \ Email: ridderbusch.pad@sni.de Since I have taken all the Gates out of my computer, it finally works!! 6. Patches ========== RCS file: /src/gtk+-0.99.7/ltconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /src/gtk+-0.99.7/ltconfig 1998/03/16 11:51:18 1.1 +++ /src/gtk+-0.99.7/ltconfig 1998/03/20 09:35:34 1.2 @@ -1,4 +1,4 @@ -#! /bin/sh +#! /home/tools/bin/bash # ltconfig - Create a system-specific libtool. # Copyright (C) 1996-1998 Free Software Foundation, Inc. @@ -466,8 +466,15 @@ pic_flag='-m68020 -resident32 -malways-restore-a4' ;; *) - pic_flag='-fPIC' - ;; + case "$host_vendor" in + sni*) + # gcc on Siemens Nixdorf RM systems produces PIC by default + pic_flag= + ;; + *) + pic_flag='-fPIC' + ;; + esac esac else # PORTME Check for PIC flags for the system compiler. @@ -518,6 +525,14 @@ wl='-Qoption ld ' ;; + sysv4*) + link_static_flag='-Bstatic' + if test "$host_vendor" = sni; then + pic_flag= + wl='-LD' + fi + ;; + sysv4.2uw2*) pic_flag='-KPIC' link_static_flag='-Bstatic' @@ -854,6 +869,16 @@ esac ;; + sysv4*) + archive_cmds='cc -G -z text -h $soname -o $lib$libobjs$deplibs' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=yes + runpath_var=LD_RUN_PATH + if test "$host_vendor" = sni; then + export_dynamic_flag='${wl}-Blargedynsym' + fi + ;; + sunos4*) if test "$with_gcc" = yes; then archive_cmds='$CC -shared -o $lib$libobjs' @@ -1206,7 +1231,7 @@ shlibpath_var=LD_LIBRARY_PATH ;; -solaris2*) +solaris2*|sysv4*) version_type=linux library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' soname_spec='${libname}${release}.so.$major' @@ -1217,6 +1242,13 @@ version_type=sunos library_names_spec='${libname}${release}.so.$versuffix' finish_cmds='PATH="$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + ;; + +sysv4*) + version_type=linux + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' + soname_spec='${libname}${release}.so.$major' shlibpath_var=LD_LIBRARY_PATH ;;