Switching g-i from DirectFB to X11
Cyril Brulebois
kibi at debian.org
Mon Feb 8 16:33:55 UTC 2010
Hi,
this is a summary of the needed steps to switch from DirectFB to X11.
After some time hacking in the wild, I then looked into providing
(possibly) clean patches for each package, which I've just finished.
I'd like to once again thank Josselin Mouette for the initial idea,
Julien Cristau for his support, especially for the dark X side, as
well as Otavio for his quick answers on IRC.
There's a bunch of pkg-xorg packages that need tweaking, so that they
ship udebs, namely:
libdrm
libfontenc
libpciaccess
libx11
libxau
libxcb
libxcomposite
libxcursor
libxdamage
libxdmcp
libxext
libxfixes
libxfont
libxi
libxinerama
libxkbfile
libxrandr
libxrender
x11-xkb-utils
xft
xkeyboard-config
xorg-server
xserver-xorg-input-evdev
xserver-xorg-video-fbdev
All of them have a pu/udeb branch in their respective git repositories
with the needed tweaks. With some fixes Julien and I are still working
on, some of those go away (libdrm for example is no longer needed with
the new xserver-xorg-core-udeb).
Another round of packages, not maintained by pkg-xorg:
cairo
dmz-cursor-theme (2 patches, tried to save up some space)
gtk+2.0
gtk2-engines
libgcrypt11
libgpg-error
pango1.0
udev (maybe a single udeb could be sufficient)
vte
All of them have patches available there:
http://people.debian.org/~kibi/patches-udebs-v1/
From a d-i point of view, some tweaks are needed below the packages/
directory:
cdebconf (probably worth squashing everything)
cdebconf-entropy
cdebconf-terminal
rootskel-gtk
All of them have patches available there (packages+$foo directories):
http://people.debian.org/~kibi/patches-di-v1/
I shall note versions in Build-Depends might need tweaking, depending
on which actual versions the added/reworked udebs appear (I think at
least one package got a new revision uploaded while I was working on
my patches).
To build my test image, I had to patch slightly config/amd64.cfg
(partial revert of r61645) and pkg-lists/gtk-common, to enable the
netboot-gtk again, and to add the needed X packages. Since there are
some modules, mklibs can't really figure out where some symbols should
come from, so I've used mklibs-copy thanks to the MKLIBS variable in
config/common, then:
make (re)build_netboot-gtk
If you were to build a netboot-gtk image using DirectFB, and to
compare with one using X11, one gets:
DirectFB: 9191 extents written (17 MB)
X11 : 11239 extents written (21 MB)
Two test images for amd64 are available (with checksums and GPG
signatures, same directory; the last one also has the full output of ):
http://people.debian.org/~kibi/di-x11/2010-02-06/mini.iso
http://people.debian.org/~kibi/di-x11/2010-02-08/mini.iso
The first one was built using the udebs generated in my first wild
run, and includes an additional tweak for console-setup, so that
keymap selection also works within the installer.
The second one was built using the udebs generated during the “clean”
run, and doesn't include that tweak, since it seems we will have to
discuss separately the kbd-chooser vs. console-setup issue. There's
also the output of “make stats_netboot-gtk” in the same directory for
that one. (Please keep in mind libraries weren't reduced for that one;
IIRC we would go down from 4.7M libs to 3.3M libs.)
Otavio expressed his concerns about memory usage, I've just finished
an installation in Dzongkha successfully, with a VM limited to approx
128MB. It looks like 96MB weren't sufficient, but we should be able to
tweak some more bits, like using a lower BPP setting for lowmem.
Some things that might need thinking about:
- Maybe gtk could benefit from a stripped-down flavour instead of
using the 'shared' one; that might lead to depending on fewer X
libraries; other patches (gtk2-engines, rootskel-gtk come to mind)
might need tweaking in this case, so as to use the proper .pc
file.
- Maybe libgpg-error and libgcrypt11 could be replaced by
libcrypto0.9.8-udeb (already used by openssh). One downside is that
libcrypto0.9.8-udeb is bigger.
- Maybe think of switching over from kbd-chooser to console-setup. It
should work (almost) out of the box for X11 (that was at least OK
with my very first image, before cleaning up my patches), while
kbd-chooser would mean patching some more. And AFAICT console-setup
should be able to handle both X and non-X cases.
Why?
- Josselin explained DirectFB was basically unmaintained, and even if
he looked around for interested people, he didn't find any. And the
gtk frontend was even disabled because it was too buggy (r61645).
- Even if someone steps in to fix some bugs (I heard somebody has
started to publish some patches recently), it might lead to a
dependency on a very single person, who might vanish at any
time. Going the X11 way ensures that we have a few more folks
working on it on the long run.
- Using X11 means using something which is daily used by mostly
everyone out there. Meaning any breakage will be noticed
immediately.
- It just works.
Mraw,
KiBi.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20100208/c1a63dc8/attachment-0001.pgp>
More information about the pkg-gnome-maintainers
mailing list