It seems to me that this page would either work better as something that
can be checked by script (ie does that version of whatever it is really
exist on the web page at this time? or does a libpnag file really
exist?) or, perhaps it can actually be a script. Then it could work with
systems, for example, that take the j parameter on tar and those that do
not. As a textual resource, this is a bit of a bother to deal with, but
having a script find the right version of the thing it needs to run is
something that Mozilla is used to.
Right now, a bunch of the files are available at different versions.
Some of them are available at the versions named on this page, but some
are not. When the early ones and later ones are available, should one
take later versions? I could just keep trying different versions and see
what breaks, but sticking that pencil in my eye over and over again gets
tiresome.
Also, there seems to be dependency issues. For example, the page says to
build pango-0.9.6, but the version of cario named wants pango-0.10.0.
So, how should these kinds of issues best be dealt with? And I am sure
there are things I am seeing that are specific to the version of Linus I
am on, but I cannot tell which issues are which, given the staleness of
some of the information. Yes, I can correct the page, but then it would
just go stale again, or it might be wrong for another distro.
Well, should I just go ahead and edit the page, or is there another way
this information can get packaged?
cheers - ray
FYI, that was pixman-0.10.0 being depended on. Too many of these names
sound alike....
- ray
Yes, this page has become really stale over last few months. We were planning to update this page once we get DFB stable on some version of gtk. But I'm going to fix it early next week since now I now others are using it too; from now on we'll try to keep it as up-to-date as possible.
Not just the gtk package information, even parts of porting approach has been changed (especially the surface part) after Vlad, roc and Stuart reviewed the code. So, we need to update it too.
So far we have got firefox-dfb working with some display issues on gtk+-2.13.x. This was possible because of help from Vlad and Stuart. We are trying to get this working on gtk+-2.12.9 as our platform depends on that. Stuart has kindly created an hg repo for firefox-dfb which contains all the DFB patches. Vlad fixed couple of bugs in cairo-1.6.4. Denis Oliver Kropp (DirectFB developer) is trying make gdk-directfb backend stable for gtk+-2.12.9 and he also has a patch for gtk.
I have a script that automates downloading, patching and building of gtk packages. We will update this page with all the up-to-date info (hg repo info, updated porting approach, cairo & gtk patches, script, bugs filed so far, etc).
Thanks,
Mohan.
- ray
_______________________________________________
dev-platforms-mobile mailing list
dev-platfo...@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platforms-mobile
Well, thanks for the info. FYI, the script I used is below. I found
these few issues with building:
1) my scratchbox does not have apt-get, so I fetched and built
flex-2.5.35 and bison-2.3 and this was easy to do.
2) I think we are not using SDL, so I did not include that.
3) The project page for libpng says that there is a security problem
with versions of libpng that include the one being referenced in the
DFBPorting document. I used libpng-1.2.29 and this seemed to build fine.
4) As I mentioned earlier, cairo demands pixman-0.10.0 instead of the
pixman-0.9.6 that the DFBPorting document references.
5) The DFBPorting points to versions of these and I was able to use
later versions:
pkg-config-0.22 -> pkg-config-0.23
fontconfig-2.4.91 -> fontconfig-2.4.92
cairo-1.5.10 -> cairo-1.5.20
pango-1.16.4 -> pango-1.16.5
gtk+-2.10.1 -> gtk+-2.10.14
If you all are going to update some of the documentation, there are lots
of documents in the 'Build Documentation' category on MDC that would
definitely benefit from some TLC and some updating for the mobile
product and for hg repository references. I know you guys probably know
everything well enough that you do not have to refer to MDC, but some of
us really rely on it.
cheers - ray
-----
#!/bin/sh
XFER=../xfer
export LD_LIBRARY_PATH=/usr/local/dfb/lib
export PATH=/usr/local/dfb/bin/:$PATH
export PKG_CONFIG=/usr/local/dfb/bin/pkg-config
export PKG_CONFIG_PATH=/usr/local/dfb/lib/pkgconfig
export CPPFLAGS=-I/usr/local/dfb/include
export LDFLAGS=-L/usr/local/dfb/lib
# ok
if [ ! -d jpeg-6b ]; then
if [ ! -f $XFER/jpegsrc.v6b.tar.gz ]; then
( cd $XFER ; wget
ftp://ftp.gtk.org/pub/gtk/v2.10/dependencies/jpegsrc.v6b.tar.gz )
fi
tar -xzvf $XFER/jpegsrc.v6b.tar.gz
cd jpeg-6b
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --without-x --enable-shared
--without-libjasper
make
make install
cd ..
fi
# ok
if [ ! -d tiff-3.7.4 ]; then
if [ ! -f $XFER/tiff-3.7.4.tar.gz ]; then
( cd $XFER ; wget
ftp://ftp.gtk.org/pub/gtk/v2.10/dependencies/tiff-3.7.4.tar.gz )
fi
tar xfvz $XFER/tiff-3.7.4.tar.gz
cd tiff-3.7.4
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --without-x
make
make install
cd ..
fi
# libpng depended on zlib.
#
# ok
if [ ! -d zlib-1.2.3 ]; then
if [ ! -f $XFER/zlib-1.2.3.tar.gz ]; then
( cd $XFER ; wget
'http://prdownloads.sourceforge.net/libpng/zlib-1.2.3.tar.gz?download' )
fi
tar xfvz $XFER/zlib-1.2.3.tar.gz
cd zlib-1.2.3
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# the libpng reports a security vulnerability in versions including
1.0.6 through 1.2.26.
# The DFBPorting page points to libpng-1.2.22
#
# ok
if [ ! -d libpng-1.2.29 ]; then
if [ ! -f $XFER/libpng-1.2.29.tar.gz ]; then
( cd $XFER ; wget
'http://prdownloads.sourceforge.net/libpng/libpng-1.2.29.tar.gz?download' )
fi
tar xfvz $XFER/libpng-1.2.29.tar.gz
cd libpng-1.2.29
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# pkg-config is currently up to version 0.23.
#
# ok
if [ ! -d pkg-config-0.23 ]; then
if [ ! -f $XFER/pkg-config-0.23.tar.gz ]; then
( cd $XFER ; wget
http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz )
fi
tar xfvz $XFER/pkg-config-0.23.tar.gz
cd pkg-config-0.23
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --without-x
make
make install
cd ..
fi
# ok
if [ ! -d gettext-0.17 ]; then
if [ ! -f $XFER/gettext-0.17.tar.gz ]; then
( cd $XFER ; wget
http://ftp.gnu.org/gnu/gettext/gettext-0.17.tar.gz )
fi
tar xfvz $XFER/gettext-0.17.tar.gz
cd gettext-0.17
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# ok
if [ ! -d glib-2.12.9 ]; then
if [ ! -f $XFER/glib-2.12.9.tar.gz ]; then
( cd $XFER ; wget
ftp://ftp.gtk.org/pub/glib/2.12/glib-2.12.9.tar.gz )
fi
tar xfvz $XFER/glib-2.12.9.tar.gz
cd glib-2.12.9
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# ok
if [ ! -d atk-1.9.1 ]; then
if [ ! -f $XFER/atk-1.9.1.tar.bz2 ]; then
( cd $XFER ; wget
ftp://ftp.gtk.org/pub/gtk/v2.10/dependencies/atk-1.9.1.tar.bz2 )
fi
cp $XFER/atk-1.9.1.tar.bz2 .
bunzip2 ./atk-1.9.1.tar.bz2
tar xfv atk-1.9.1.tar
/bin/rm atk-1.9.1.tar
cd atk-1.9.1
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# We are not needing this.
#
# apt-get install libsdl1.2-dev
# ok
if [ ! -d DirectFB-1.0.1 ]; then
if [ ! -f $XFER/DirectFB-1.0.1.tar.gz ]; then
( cd $XFER ; wget
http://www.directfb.org/downloads/Core/DirectFB-1.0.1.tar.gz )
fi
tar xfvz $XFER/DirectFB-1.0.1.tar.gz
cd DirectFB-1.0.1
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --libdir=/usr/local/dfb/lib
--include=/usr/local/dfb/include --disable-x11 --enable-debug
--disable-voodoo --disable-mmx --disable-see --disable-sdl --enable-jpeg
--enable-zlib --enable-png --disable-video4linux2 --with-gfxdrivers=none
--with-inputdrivers=none
make
make install
cd ..
fi
# ok
if [ ! -d freetype-2.3.5 ]; then
if [ ! -f $XFER/freetype-2.3.5.tar.gz ]; then
( cd $XFER ; wget
http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz )
fi
tar xfvz $XFER/freetype-2.3.5.tar.gz
cd freetype-2.3.5
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --without-x --enable-directfb
--disable-xlib --disable-win32
make
make install
cd ..
fi
# there is now a 2.5.92 version available.
# wget http://fontconfig.org/release/fontconfig-2.5.91.tar.gz
#
#
if [ ! -d fontconfig-2.4.92 ]; then
if [ ! -f $XFER/fontconfig-2.5.92.tar.gz ]; then
( cd $XFER ; wget
http://fontconfig.org/release/fontconfig-2.5.92.tar.gz )
fi
tar xfvz $XFER/fontconfig-2.4.92.tar.gz
cd fontconfig-2.4.92
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --without-x --enable-directfb
--disable-xlib --disable-win32
make
make install
cd ..
fi
# wget http://cairographics.org/snapshots/LATEST-pixman-0.9.6
# ... but this version is not current enough for a cairo requirement...
#
# ok
if [ ! -d pixman-0.10.0 ]; then
if [ ! -f $XFER/pixman-0.10.0.tar.gz ]; then
( cd $XFER ; wget
http://cairographics.org/releases/pixman-0.10.0.tar.gz )
fi
tar xfvz $XFER/pixman-0.10.0.tar.gz
cd pixman-0.10.0
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# ok
if [ ! -d cairo-1.5.20 ]; then
if [ ! -f $XFER/LATEST-cairo-1.5.20 ]; then
( cd $XFER ; wget
http://cairographics.org/snapshots/LATEST-cairo-1.5.20 )
fi
tar xvfz $XFER/LATEST-cairo-1.5.20
cd cairo-1.5.20
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --enable-directfb=yes
--enable-xlib=no --enable-xlib-xrender=no --enable-xcb=no --without-x
--disable-win32
make
make install
cd ..
fi
# DFBPorting lists pango-1.16.4, but 1.16.5 exists.
#
if [ ! -d pango-1.16.5 ]; then
if [ ! -f $XFER/pango-1.16.5.tar.gz ]; then
( cd $XFER ; wget
ftp://ftp.gtk.org/pub/pango/1.16/pango-1.16.5.tar.gz )
fi
tar xfvz $XFER/pango-1.16.5.tar.gz
cd pango-1.16.5
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --enable-cairo --without-x
--disable-xlib --disable-win32
make
make install
cd ..
fi
# ok
if [ ! -d gtk+-2.10.14 ]; then
if [ ! -f $XFER/gtk+-2.10.14.tar.bz2 ]; then
( cd $XFER ; wget
ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-2.10.14.tar.bz2 )
fi
cp $XFER/gtk+-2.10.14.tar.bz2 .
bunzip2 ./gtk+-2.10.14.tar.bz2
tar xvf ./gtk+-2.10.14.tar
/bin/rm ./gtk+-2.10.14.tar
cd gtk+-2.10.14
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb --with-gdktarget=directfb
--without-x
make
make install
cd ..
fi
# apt-get install flex - or fetch it and build...
#
# ok
if [ ! -d flex-2.5.35 ]; then
if [ ! -f $XFER/flex-2.5.35.tar.gz ]; then
( cd $XFER ; wget
http://internap.dl.sourceforge.net/sourceforge/flex/flex-2.5.35.tar.gz )
fi
tar xfvz $XFER/flex-2.5.35.tar.gz
cd flex-2.5.35
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# apt-get install bison - or fetch it and build...
#
# ok
if [ ! -d bison-2.3 ]; then
if [ ! -f $XFER/bison-2.3.tar.gz ]; then
( cd $XFER ; wget http://ftp.gnu.org/gnu/bison/bison-2.3.tar.gz )
fi
tar xfvz $XFER/bison-2.3.tar.gz
cd bison-2.3
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# ok
if [ ! -d libIDL-0.8.5 ]; then
if [ ! -f $XFER/libIDL-0.8.5.tar.bz2 ]; then
( cd $XFER ; wget
http://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/libIDL-0.8.5.tar.bz2 )
fi
cp $XFER/libIDL-0.8.5.tar.bz2 .
bunzip2 ./libIDL-0.8.5.tar.bz2
tar xfv ./libIDL-0.8.5.tar
/bin/rm ./libIDL-0.8.5.tar
cd libIDL-0.8.5
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
# ok
if [ ! -d expat-2.0.1 ]; then
if [ ! -f $XFER/expat-2.0.1.tar.gz ]; then
( cd $XFER ; wget
'http://sourceforge.net/project/showfiles.php?group_id=10127&package_id=10780&release_id=513851'
)
fi
tar zxvf $XFER/expat-2.0.1.tar.gz
cd expat-2.0.1
if [ $? -ne 0 ]; then echo "ERROR"; exit 1; fi
./configure --prefix=/usr/local/dfb
make
make install
cd ..
fi
We have tested the setup on Fedora 8 and Ubuntu 7.10.
Thanks,
-Niranjan
-----Original Message-----
From: dev-platforms-...@lists.mozilla.org
[mailto:dev-platforms-...@lists.mozilla.org] On Behalf Of Ray
Kiddy
Sent: Sunday, May 25, 2008 4:21 PM
To: dev-platfo...@lists.mozilla.org
Subject: Re: updates to Mobile/DFBPorting doc?
cheers - ray
-----
#!/bin/sh
XFER=../xfer
--enable-zlib --enable-png --disable-video4linux2 --with-gfxdrivers=none
Looking at the directfbrc file, I see:
wm=default
mode=480x800
depth=32
system=x11
Is this supposed to say system=x11? DFB != X11, yes? Or does this have
no effect? Or some other effect?
- ray
>>no effect? Or some other effect?
DirectFB needs a "system" (an underlying HW abstraction) to run on.
Following are the "systems" I'm aware of:
* fbdev (Linux Framebuffer -- Doesn't require X11)
* SDL (which in turn could run on top of X11)
* X11
DirectFB could be compiled with more than one system
* fbdev --> Default
* SDL (compiled if --enable-sdl is given to configure. SDL itself runs
on top of X11)
* X11 (If configure finds X11 it will compile X11 system automatically.
To disable this, give --enable-x11=no to configure)
During run time, one of the compiled systems could be selected either
through a command line option or by setting "system=<system name>" in
.directfbrc.
In a typical embedded system, DirectFB runs on fbdev. However, when we
test our DirectFB apps on a PC with X11 already running, we should use
either SDL or X11.
Of course, it is also possible to test DirectFB apps in fbdev mode by
doing following:
* While compiling DirectFB, configure it with --enable-x11=no
* pass "vga=791" as a kernel option in grub.conf
* Edit /etc/inittab to start in run level 3 (multi-user, no-X mode)
* Comment out "system=x11" in .directfbrc (by default system is set to
fbdev)
* Restart the PC and now you can launch DirectFB apps from the console
itself.
Thanks,
Mohan.
-----Original Message-----
From:
dev-platforms-mobile-bounces+mreddy=sta.sam...@lists.mozilla.org
[mailto:dev-platforms-mobile-bounces+mreddy=sta.sam...@lists.mozill
a.org] On Behalf Of Ray Kiddy
Sent: Tuesday, May 27, 2008 3:19 PM
To: dev-platfo...@lists.mozilla.org
Subject: Re: updates to Mobile/DFBPorting doc?
wm=default
mode=480x800
depth=32
system=x11
- ray
Thanks,
-Niranjan
-----Original Message-----
From:
dev-platforms-mobile-bounces+niranjan=sta.sam...@lists.mozilla.org
[mailto:dev-platforms-mobile-bounces+niranjan=sta.sam...@lists.mozi
lla.org] On Behalf Of Ray Kiddy
Sent: Tuesday, May 27, 2008 3:19 PM
To: dev-platfo...@lists.mozilla.org
Subject: Re: updates to Mobile/DFBPorting doc?
wm=default
mode=480x800
depth=32
system=x11
- ray
Well, it looks as though the link on
http://wiki.mozilla.org/Mobile/DFBPorting that points to the
DirectFB-1.1.1 (
http://www.directfb.org/downloads/Core/DirectFB-1.1.1.tar.gz) is giving
a 404.
I guess that, when things actually work, we are going to have to store
our own copies of these things in case the public copies become unavailable.
Does anyone know a better source for DirectFB-1.1.1? I searched and keep
finding sites that link back to the same location.
thanx - ray