Modularization development notes [was Re: RFA sent to the ArchWG]

Kevin E Martin kem at freedesktop.org
Wed Apr 13 21:45:03 PDT 2005


On Mon, Apr 11, 2005 at 04:57:15PM -0400, Kevin E Martin wrote:
> Module creation
> ---------------
> 
> Once the Architecture Working Group gives their approval, we can begin
> work, but before we jump in, we should make sure that we are all on the
> same page.  As I see it, there are two parts to this project.  The first
> involves dividing the tree into separate modules, which I describe next.
> The second involves autotooling those modules (see the next section).
> 
> Here are the steps that I see for creating the modules:
> 
> 1. Determine where each piece of code from the monolithic tree will go
>    in the modular tree.  I've started this process, but it's not quite
>    ready yet and I didn't want that list to hold up this message.  I'll
>    forward it to the list a little later.

I've attached the first cut at the list of components within each module
below.  I have again marked a few places with [***] where I specifically
would like to have feedback, but feel free to make suggestions on which
components should be moved to other modules.

Thanks,
Kevin

> 2. Create the top level modules (i.e., app, lib, proto, xserver, driver,
>    font, doc and util) as peers to xc.
> 3. Create the directory hierarchy for the modularization within each
>    module based on the breakdown determined in step #1.
> 4. Write a script that creates a symlink tree on the developer's local
>    system from a checked out monolithic CVS tree.
> 
> As I mentioned above, I'm working on #1.  Steps #2 and #3 should fall
> directly out of #1.  I've heard from another developer that they have
> starting working on #4.
-------------- next part --------------
app:
----
  - xc/programs/appres
  - xc/programs/bdftopcf
  - xc/programs/beforelight
  - xc/programs/bitmap
  - xc/programs/cxpm
  - xc/programs/dpsexec
  - xc/programs/dpsinfo
  - xc/programs/editres
  - xc/programs/fc-cache
  - xc/programs/fc-lang
  - xc/programs/fc-list
  - xc/programs/fonttosfnt
  - xc/programs/fslsfonts
  - xc/programs/fstobdf
  - xc/programs/iceauth
  - xc/programs/ico
  - xc/programs/lbxproxy
  - xc/programs/listres
  - xc/programs/luit
  - xc/programs/makepsres
  - xc/programs/mkcfm
  - xc/programs/mkfontdir
  - xc/programs/mkfontscale
  - xc/programs/oclock
  - xc/programs/proxymngr
  - xc/programs/rgb
  - xc/programs/rstart
  - xc/programs/scripts
  - xc/programs/setxkbmap
  - xc/programs/showfont
  - xc/programs/smproxy
  - xc/programs/sxpm
  - xc/programs/texteroids
  - xc/programs/twm
  - xc/programs/pclcomp
  - xc/programs/viewres
  - xc/programs/x11perf
  - xc/programs/xauth
  - xc/programs/xbiff
  - xc/programs/xcalc
  - xc/programs/xclipboard
  - xc/programs/xclock
  - xc/programs/xcmsdb
  - xc/programs/xconsole
  - xc/programs/xcursorgen
  - xc/programs/xditview
  - xc/programs/xdm
  - xc/programs/xdpyinfo
  - xc/programs/xdriinfo
  - xc/programs/xedit
  - xc/programs/xev
  - xc/programs/xeyes
  - xc/programs/xf86dga
  - xc/programs/xfd
  - xc/programs/xfindproxy
  - xc/programs/xfontsel
  - xc/programs/xfs
  - xc/programs/xfsinfo
  - xc/programs/xfwp
  - xc/programs/xgamma
  - xc/programs/xgc
  - xc/programs/xhost
  - xc/programs/xinit
  - xc/programs/xkbcomp
  - xc/programs/xkbevd
  - xc/programs/xkbprint
  - xc/programs/xkbutils
  - xc/programs/xkill
  - xc/programs/xload
  - xc/programs/xlogo
  - xc/programs/xlsatoms
  - xc/programs/xlsclients
  - xc/programs/xlsfonts
  - xc/programs/xmag
  - xc/programs/xman
  - xc/programs/xmessage
  - xc/programs/xmh
  - xc/programs/xmodmap
  - xc/programs/xmore
  - xc/programs/xphelloworld
  - xc/programs/xplsprinters
  - xc/programs/xprehashprinterlist
  - xc/programs/xprop
  - xc/programs/xrandr
  - xc/programs/xrdb
  - xc/programs/xrefresh
  - xc/programs/xrx
  - xc/programs/xset
  - xc/programs/xsetmode
  - xc/programs/xsetpointer
  - xc/programs/xsetroot
  - xc/programs/xsm
  - xc/programs/xstdcmap
  - xc/programs/xtrap
  - xc/programs/xvidtune
  - xc/programs/xvinfo
  - xc/programs/xwd
  - xc/programs/xwininfo
  - xc/programs/xwud
  - xc/programs/xdbedizzy
  - xc/programs/xpr

  [***] Are any of the programs above maintained outside of X?


lib:
----
  - xc/doc/man
  - xc/lib/FS
  - xc/lib/GL
  - xc/lib/GLU
  - xc/lib/GLw
  - xc/lib/ICE
  - xc/lib/Xaw7
  - xc/lib/SM
  - xc/lib/X11
  - xc/lib/XRes
  - xc/lib/XTrap
  - xc/lib/Xau
  - xc/lib/Xaw
  - xc/lib/Xaw6
  - xc/lib/Xbsd
  - xc/lib/Xcomposite
  - xc/lib/Xcursor
  - xc/lib/Xdamage
  - xc/lib/Xdmcp
  - xc/lib/Xevie
  - xc/lib/Xext
  - xc/lib/Xfixes
  - xc/lib/Xfontcache
  - xc/lib/Xft
  - xc/lib/Xft1
  - xc/lib/Xi
  - xc/lib/Xinerama
  - xc/lib/Xmu
  - xc/lib/Xmuu
  - xc/lib/Xp
  - xc/lib/Xpm
  - xc/lib/XprintAppUtil
  - xc/lib/XprintUtil
  - xc/lib/Xrandr
  - xc/lib/Xrender
  - xc/lib/Xss
  - xc/lib/Xt
  - xc/lib/Xtst
  - xc/lib/Xv
  - xc/lib/XvMC
  - xc/lib/Xxf86dga
  - xc/lib/Xxf86misc
  - xc/lib/Xxf86rush
  - xc/lib/Xxf86vm
  - xc/lib/apple
  - xc/lib/dmx
  - xc/lib/dps
  - xc/lib/dpstk
  - xc/lib/expat
  - xc/lib/font
  - xc/lib/fontconfig
  - xc/lib/fontenc
  - xc/lib/freetype2
  - xc/lib/lbxutil
  - xc/lib/misc
  - xc/lib/oldX
  - xc/lib/psres
  - xc/lib/regex
  - xc/lib/windows
  - xc/lib/xkbfile
  - xc/lib/xkbui
  - xc/lib/xtrans
  - xc/lib/zlib


proto:
------
  - xc/include
  - xc/include/DPS
  - xc/include/GL
  - xc/include/bitmaps
  - xc/include/extensions
  - xc/include/fonts

  Note that some of the headers will be moved to the appropriate library
  component.  Only the protocol headers should remain.


xserver:
--------
  - xc/programs/Xserver

  [***] I'm not sure about the following as they are configuration
  files, utilities, example programs, etc.  My current thought is that
  they should remain with the rest of the X server code:

  - xc/programs/Xserver/XpConfig
  - xc/programs/Xserver/hw/darwin/utils
  - xc/programs/Xserver/hw/dmx/config
  - xc/programs/Xserver/hw/dmx/examples
  - xc/programs/Xserver/hw/xfree86/etc
  - xc/programs/Xserver/hw/xfree86/reconfig
  - xc/programs/Xserver/hw/xfree86/xf86cfg
  - xc/programs/Xserver/hw/xfree86/xf86config


driver:
-------
  - xc/programs/Xserver/hw/xfree86/drivers/apm
  - xc/programs/Xserver/hw/xfree86/drivers/ark
  - xc/programs/Xserver/hw/xfree86/drivers/ati
  - xc/programs/Xserver/hw/xfree86/drivers/chips
  - xc/programs/Xserver/hw/xfree86/drivers/chips/util [*** keep here?]
  - xc/programs/Xserver/hw/xfree86/drivers/cirrus
  - xc/programs/Xserver/hw/xfree86/drivers/cyrix
  - xc/programs/Xserver/hw/xfree86/drivers/dummy
  - xc/programs/Xserver/hw/xfree86/drivers/fbdev
  - xc/programs/Xserver/hw/xfree86/drivers/glide
  - xc/programs/Xserver/hw/xfree86/drivers/glint
  - xc/programs/Xserver/hw/xfree86/drivers/i128
  - xc/programs/Xserver/hw/xfree86/drivers/i740
  - xc/programs/Xserver/hw/xfree86/drivers/i810
  - xc/programs/Xserver/hw/xfree86/drivers/i2c
  - xc/programs/Xserver/hw/xfree86/drivers/imstt
  - xc/programs/Xserver/hw/xfree86/drivers/mga
  - xc/programs/Xserver/hw/xfree86/drivers/neomagic
  - xc/programs/Xserver/hw/xfree86/drivers/newport
  - xc/programs/Xserver/hw/xfree86/drivers/nsc
  - xc/programs/Xserver/hw/xfree86/drivers/nv
  - xc/programs/Xserver/hw/xfree86/drivers/rendition
  - xc/programs/Xserver/hw/xfree86/drivers/s3
  - xc/programs/Xserver/hw/xfree86/drivers/s3virge
  - xc/programs/Xserver/hw/xfree86/drivers/savage
  - xc/programs/Xserver/hw/xfree86/drivers/siliconmotion
  - xc/programs/Xserver/hw/xfree86/drivers/sis
  - xc/programs/Xserver/hw/xfree86/drivers/sunbw2
  - xc/programs/Xserver/hw/xfree86/drivers/suncg14
  - xc/programs/Xserver/hw/xfree86/drivers/suncg3
  - xc/programs/Xserver/hw/xfree86/drivers/suncg6
  - xc/programs/Xserver/hw/xfree86/drivers/sunffb
  - xc/programs/Xserver/hw/xfree86/drivers/sunleo
  - xc/programs/Xserver/hw/xfree86/drivers/suntcx
  - xc/programs/Xserver/hw/xfree86/drivers/tdfx
  - xc/programs/Xserver/hw/xfree86/drivers/tga
  - xc/programs/Xserver/hw/xfree86/drivers/trident
  - xc/programs/Xserver/hw/xfree86/drivers/tseng
  - xc/programs/Xserver/hw/xfree86/drivers/v4l
  - xc/programs/Xserver/hw/xfree86/drivers/vesa
  - xc/programs/Xserver/hw/xfree86/drivers/vga
  - xc/programs/Xserver/hw/xfree86/drivers/via
  - xc/programs/Xserver/hw/xfree86/drivers/sisusb
  - xc/programs/Xserver/hw/xfree86/drivers/vmware
  - xc/programs/Xserver/hw/xfree86/drivers/voodoo
  - xc/programs/Xserver/hw/xfree86/drivers/wsfb
  - xc/programs/Xserver/hw/xfree86/input/acecad
  - xc/programs/Xserver/hw/xfree86/input/aiptek
  - xc/programs/Xserver/hw/xfree86/input/calcomp
  - xc/programs/Xserver/hw/xfree86/input/citron
  - xc/programs/Xserver/hw/xfree86/input/digitaledge
  - xc/programs/Xserver/hw/xfree86/input/dmc
  - xc/programs/Xserver/hw/xfree86/input/dynapro
  - xc/programs/Xserver/hw/xfree86/input/elo2300
  - xc/programs/Xserver/hw/xfree86/input/elographics
  - xc/programs/Xserver/hw/xfree86/input/fpit
  - xc/programs/Xserver/hw/xfree86/input/hyperpen
  - xc/programs/Xserver/hw/xfree86/input/jamstudio
  - xc/programs/Xserver/hw/xfree86/input/joystick
  - xc/programs/Xserver/hw/xfree86/input/keyboard
  - xc/programs/Xserver/hw/xfree86/input/magellan
  - xc/programs/Xserver/hw/xfree86/input/magictouch
  - xc/programs/Xserver/hw/xfree86/input/microtouch
  - xc/programs/Xserver/hw/xfree86/input/mouse
  - xc/programs/Xserver/hw/xfree86/input/mutouch
  - xc/programs/Xserver/hw/xfree86/input/palmax
  - xc/programs/Xserver/hw/xfree86/input/penmount
  - xc/programs/Xserver/hw/xfree86/input/sample
  - xc/programs/Xserver/hw/xfree86/input/spaceorb
  - xc/programs/Xserver/hw/xfree86/input/summa
  - xc/programs/Xserver/hw/xfree86/input/evdev
  - xc/programs/Xserver/hw/xfree86/input/tek4957
  - xc/programs/Xserver/hw/xfree86/input/ur98
  - xc/programs/Xserver/hw/xfree86/input/void
  - xc/programs/Xserver/hw/xfree86/input/wacom


font:
-----
  - xc/fonts/bdf
  - xc/fonts/bdf/100dpi
  - xc/fonts/bdf/75dpi
  - xc/fonts/bdf/cyrillic
  - xc/fonts/bdf/misc
  - xc/fonts/encodings
  - xc/fonts/encodings/large
  - xc/fonts/scaled
  - xc/fonts/scaled/CID
  - xc/fonts/scaled/TTF
  - xc/fonts/scaled/Ethiopic
  - xc/fonts/scaled/Meltho
  - xc/fonts/scaled/Speedo
  - xc/fonts/scaled/Type1
  - xc/fonts/util [*** moved to app?]


doc:
----
  - xc/doc/misc
  - xc/doc/util
  - xc/doc/hardcopy
  - xc/doc/specs

  [***] Can we go ahead and move the protocol specs to the proto module
  or do they need to remain here in the doc module until they can be
  converted to a format that will allow them to be built independently
  from the rest of the docs?


util:
-----
  - xc/config/cf
  - xc/config/util
  - xc/config/util/mkshadow
  - xc/config/docbook
  - xc/config/imake
  - xc/config/makedepend
  - xc/config/pswrap
  - xc/util/memleak
  - xc/util/misc


Unknown:
--------
  - xc/nls [*** not sure where this goes]


Maintained outside of X:
-------------------------
  - xc/programs/glxgears
  - xc/programs/glxinfo
  - xc/programs/xterm


Tarballs of the following will be needed:
-----------------------------------------
  - xc/extras/Mesa
  - xc/extras/Xpm
  - xc/extras/drm
  - xc/extras/expat
  - xc/extras/fontconfig
  - xc/extras/fonts
  - xc/extras/freetype2
  - xc/extras/ogl-sample
  - xc/extras/regex
  - xc/extras/rman
  - xc/extras/ttf2pt1
  - xc/extras/x86emu
  - xc/extras/zlib


More information about the xorg-modular mailing list