Subject: experiences with X11BASE as LOCALBASE under NetBSD
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 02/06/2004 11:52:40
The following are some notes on my experiences with setting X11BASE to
LOCALBASE (which is default /usr/pkg) using NetBSD/i386 1.6.2_RC3.

I am not using xpkgwedge. It is not needed.

I moved my /var/db/pkg out of the way. I moved /usr/X11R6 out of the way.
My /usr/pkg was already gone.

=-=-=-=
$ cat /etc/mk.conf
PACKAGES=
${_PKGSRCDIR}/packages/${OPSYS}/${OS_VERSION}/${MACHINE_ARCH}
WRKOBJDIR=             /tmp/pkgsrc   # build here instead of in pkgsrc
OBJHOSTNAME=           yes               # use work.`hostname`

SU_CMD=/usr/pkg/bin/sudo /bin/sh -c
#SU_CMD=/usr/bin/sudo /bin/sh -c

PYTHON_VERSION_DEFAULT=23pth

X11BASE=        ${LOCALBASE}

PKG_DBDIR=/var/db/pkg3

USE_PKGSRC_XFREE86=     YES
-=-=-=-=-

This is from cvs from yesterday. (I started yesterday.)

I installed sudo.

Here are the packages installed before X was installed:

digest-20021220     Message digest wrapper utility
sudo-1.6.7.5        Allow others to run commands as root
xdg-dirs-1.0        Shared XDG directories
gnome-dirs-1.2      Shared GTK/GNOME (v1 and v2) directories
gnome2-dirs-1.2nb1  Shared GTK/GNOME (v2) directories
gethost-0.03        Hostname and IP resolver for testing /etc/hosts and nsswitch.conf
perl-5.6.1nb10      Practical Extraction and Report Language
libtool-base-1.4.20010614nb19 Generic shared library support script (the script itself)
libiconv-1.9.1nb1   Character set conversion library
pth-2.0.0           GNU Portable Thread library
pkgconfig-0.15.0    System for managing library compile/link flags
gmake-3.80nb2       GNU version of 'make' utility
glib2-2.2.3nb1      Some useful routines for C programming
popt-1.7nb4         Command line option parsing library
libIDL-0.8.2nb1     CORBA Interface Definition Language parser
ORBit2-2.8.2        High-performance CORBA ORB with C language support
xmlcatmgr-2.0beta1  XML and SGML catalog manager
libxml2-2.6.5       XML parser library from the GNOME project
GConf2-2.4.0.1nb4   Configuration database system used by GNOME (v2)
libbonobo-2.4.2nb1  GNOME2 Object activation framework library
python23-pth-2.3.3nb1 Interpreted, interactive, object-oriented programming language
atk-1.4.1           Set of interfaces for accessibility
freetype2-2.1.5     Font rendering engine and library API
expat-1.95.6nb1     XML parser library written in C
fontconfig-2.2.1nb3 Library for configuring and customizing font access

Yesterday, I posted patch to this list for bsd.buildlink2.mk so I could
use same X11BASE as LOCALBASE. Then I posted another patch for
bsd.buildlink3.mk.

Xrender failed because needed x11-links which needed X headers.

I patched some of XFree86 packages to make them install to X11BASE (and
not define its own X11BASE as /usr/pkg/X11R6) so my imake is at
/usr/pkg/bin/imake and my libX11.so is at /usr/pkg/lib/libX11.so.

(I also patched the XFree86-libs to not have a conflict, even though it
probably does. And PLISTS for XFree86 packages are wrong too; they shuld
have some PLIST_SUBST to set the X11R6/ directory prefix; I started on
that.)

Then I installed x11-links. It created broken links when used with
buildlinking. This is caused by some symlink adjustment (I don't know why)
in pkg_install. I worked-around this with:

 cat work.bigfour/.PLIST | grep -v @ | less | cut -d '/' -f 3- | while
 read line ; do ln -fs /usr/pkg/$line /usr/pkg/share/x11-links/$line ; done

(I had some problems with missing Xt libraries and includes and others,
but it is because XFree86 built wrong, because of my wrong fix. I fixed
that and reinstalled and rebuilt the x11-links and all was well.)

So then I installed www/epiphany (new GNOME-based Mozilla in pkgsrc).

So then these other packages were installed (X11BASE is LOCALBASE is
/usr/pkg):

imake-4.3.0nb1      Imake and other utilities from XFree86
XFree86-libs-4.3.0nb1 XFree86 Libraries
x11-links-0.20      Shadow tree of links to ${X11BASE} headers and libraries
render-0.8          Headers for X11 render extension
Xrender-0.8.3nb1    Client library for the X Rendering Extension protocol
Xft2-2.1.2nb1       Library for configuring and customizing font access
pango-1.2.5nb1      Library for layout and rendering of text
jpeg-6bnb1          IJG's jpeg compression utilities
png-1.2.5nb2        Library for manipulating PNG images
tiff-3.6.1          Library and tools for reading and writing TIFF data files
gtk2+-2.2.4nb3      The GIMP Toolkit - libraries for building X11 user interfaces
libglade2-2.0.1nb14 Runtime interpreter for GLADE GUI files (v2)
unzip-5.50nb2       List, test and extract compressed files in a ZIP archive
iso8879-1986nb3     Character entity sets from ISO 8879:1986 (SGML)
docbook-4.2nb4      SGML DTD designed for computer documentation
libaudiofile-0.2.4  Sound library for SGI audio file
esound-0.2.32       The Enlightened sound daemon
cdparanoia-3.0.9.8  CDDA reading utility with extra data verification features
gnome-mime-data-2.4.0 MIME and Application database for GNOME2
gnome-vfs2-2.4.1nb2 GNOME Virtual File System (v2)
libxslt-1.1.2nb1    XSLT parser library from the GNOME project
libgnome-2.4.0nb2   Core GNOME2 library (non-graphical)
libart2-2.3.16      High-performance 2D graphics library
libgnomecanvas-2.4.0nb2 GNOME Canvas library
libbonoboui-2.4.1nb3 GNOME2 Object activation framework library (graphical version)
libgnomeui-2.4.0.1nb3 Core GNOME2 graphical libraries
docbook-xml-4.2nb5  XML DTD designed for computer documentation
p5-XML-Parser-2.31nb1 Perl extension interface to James Clark's XML parser, expat
intltool-0.28       Toolbox for internationalisation
scrollkeeper-0.3.14nb1 Open Document Cataloging Project
zip-2.3nb2          Create/update ZIP files compatible with pkzip
m4-1.4nb1           GNU version of Unix m4 macro-processor
autoconf213-2.13    Generates automatic source code configuration scripts (old version)
mozilla-gtk2-1.6nb1 Full featured gecko-based browser built on gtk2
epiphany-1.0.7      The web browser for the GNOME Desktop

epiphany would not run. No fonts. I ran fc-cache, but no fonts. So I
installed the 100dpi and Scalable fonts:

XFree86-clients-4.3.0nb1 XFree86 client programs and related files
XFree86-fontsEncodings-4.3.0nb1 XFree86 Encoding fonts
XFree86-fonts100dpi-4.3.0nb1 XFree86 bitmap 100dpi fonts
XFree86-fontsScalable-4.3.0nb1 XFree86 scalable fonts

And then fc-cache worked. And epiphany still wouldn't run:

 ** ERROR **: Couldn't mkdir /home/reed/.gnome2/epiphany/favicon_cache/

.gnome2/epiphany did exist, so I made that final directory. And epiphany
worked (with some minor WARNINGS). (If you're curious: I am running this
remotely using my local X server.)

Some file conflicts are:

 include/X11/extensions/render.h
 include/X11/extensions/renderproto.h
 lib/libXrender.a
 lib/libXrender.so*

Other conflicts could be MesaLibs, xcursor too.

I need to figure out how to get XFree86-libs to install latest versions
or not install at all. (Can anyone help?)

It would be good if the bsd.buildlink?.mk files would use the
XFree86-libs/buildlink?.mk instead of x11-links if USE_PKGSRC_XFREE86 (or
USE_PKGSRC_X=XFree86) is chosen. Any volunteers?

bigfour:/usr/pkgsrc/www/epiphany$ ls -l /usr/pkg/X11R6 /usr/X11R6
ls: /usr/X11R6: No such file or directory
ls: /usr/pkg/X11R6: No such file or directory
bigfour:/usr/pkgsrc/www/epiphany$ type imake epiphany gnome-open
imake is /usr/pkg/bin/imake
epiphany is hashed (/usr/pkg/bin/epiphany)
gnome-open is /usr/pkg/bin/gnome-open

I think my next experiment will be to set X11BASE to LOCALBASE (/usr/pkg)
and use freedesktop.org xlibs instead of XFree86 (and don't use
x11-links).

   Jeremy C. Reed
   http://bsd.reedmedia.net/

p.s. It seems like MozillaFirebird (running remotely too) is faster than
epiphany.