Hi all,

As some know, I've been working a while on how we can auto-document
and explain the Mer architecture and as part of that I'll be sending a
bunch of .spec/.yaml changes for each of the source packages, changing
their Group: fields

To understand the reasoning behind the architecture, I'd like to note
a few points:

* A group covers all binary packages a source package produces
* The goal is to document run-time architecture, not build-time
architecture -- that is, there is a lot of packages that will be not
in these groups, which are used for compilation/build phases only or
are debugging only tools
* The goal is to enable vendors with tools and understanding of how to
fit their components into Mer from an architectural point of view
* If a dependency is only used by one group's components only, the
dependency ends up within that group.
* The grouping and dependencies of a source package is bound to change
over time, due to the evolution of components
* The goal is to encourage sane Group: settings of vendor components as well.
* Mer is meant to be easy to re-architect and change into new exciting
types of stacks, so the decisions made in here are not ones you
absolutely have to follow in your product, but they provide a solid
basis for more people to understand and work with distribution/product
architecture than previously.

You can see the output of part of this work at
http://wiki.merproject.org/wiki/Architecture and examples like
http://releases.merproject.org/~carsten/GraphicsX11.png -  These are
created with a architectural browser, AgileBrowser
(http://wiki.meego.com/AgileBrowser), which the intent is that we can
automatically generate data files for this at image creation time, for
architects in Mer Core and the vendors that use it, to develop and aid
their product architecture development.

Let me know if there's any problems with the suggested groupings and
let us have a discussion about these. The architecture should
naturally be seen in collaboration with full products (Core + hardware
adaptation + UI) and hence groupings should be able to scale to that.

Future work can be declaration of D-Bus interfaces and other types of
interfaces, to understand the true dependencies and automatic
understanding of API/ABI changes -- for example being able to check if
a D-Bus API change will be backwards compatible.

The proposed list of changes, so far - this is per source package in Mer Core:

bluez   /Communications/Bluetooth
ofono   /Communications/Cellular Framework
connman /Communications/ConnMan
crda    /Communications/ConnMan
iw      /Communications/ConnMan
libnl   /Communications/ConnMan
mobile-broadband-provider-info  /Communications/ConnMan
wireless-regdb  /Communications/ConnMan
wireless-tools  /Communications/ConnMan
wpa_supplicant  /Communications/ConnMan
pacrunner       /Communications/Proxy Management
v8      /Communications/Proxy Management
acl     /Essentials/Base Essentials
basesystem      /Essentials/Base Essentials
boardname       /Essentials/Base Essentials
bzip2   /Essentials/Base Essentials
curl    /Essentials/Base Essentials
db4     /Essentials/Base Essentials
desktop-file-utils      /Essentials/Base Essentials
elfutils        /Essentials/Base Essentials
expat   /Essentials/Base Essentials
filesystem      /Essentials/Base Essentials
gconf   /Essentials/Base Essentials
glib2   /Essentials/Base Essentials
hwdata  /Essentials/Base Essentials
icu     /Essentials/Base Essentials
kmod    /Essentials/Base Essentials
libcap  /Essentials/Base Essentials
libedit /Essentials/Base Essentials
libffi  /Essentials/Base Essentials
libidn  /Essentials/Base Essentials
libusb  /Essentials/Base Essentials
libusb1 /Essentials/Base Essentials
libuser /Essentials/Base Essentials
libxml2 /Essentials/Base Essentials
lua     /Essentials/Base Essentials
MAKEDEV /Essentials/Base Essentials
meego-lsb       /Essentials/Base Essentials
meego-rpm-config        /Essentials/Base Essentials
mer-release     /Essentials/Base Essentials
mkdevnodes      /Essentials/Base Essentials
module-init-tools       /Essentials/Base Essentials
nspr    /Essentials/Base Essentials
nss     /Essentials/Base Essentials
ntp     /Essentials/Base Essentials
openssl /Essentials/Base Essentials
pam     /Essentials/Base Essentials
passwd  /Essentials/Base Essentials
pcre    /Essentials/Base Essentials
polkit  /Essentials/Base Essentials
popt    /Essentials/Base Essentials
prelink /Essentials/Base Essentials
rootfiles       /Essentials/Base Essentials
setup   /Essentials/Base Essentials
shadow-utils    /Essentials/Base Essentials
shared-mime-info        /Essentials/Base Essentials
sqlite  /Essentials/Base Essentials
tzdata  /Essentials/Base Essentials
usbutils        /Essentials/Base Essentials
util-linux      /Essentials/Base Essentials
xdg-user-dirs   /Essentials/Base Essentials
xdg-utils       /Essentials/Base Essentials
xz      /Essentials/Base Essentials
zlib    /Essentials/Base Essentials
gcc     /Essentials/Central Libraries
glibc   /Essentials/Central Libraries
dbus    /Essentials/D-Bus
dbus-glib       /Essentials/D-Bus
dbus-python     /Essentials/D-Bus
bash    /Essentials/GNU utilities
coreutils       /Essentials/GNU utilities
cpio    /Essentials/GNU utilities
ed      /Essentials/GNU utilities
findutils       /Essentials/GNU utilities
gawk    /Essentials/GNU utilities
gnupg2  /Essentials/GNU utilities
grep    /Essentials/GNU utilities
gzip    /Essentials/GNU utilities
libgcrypt       /Essentials/GNU utilities
libgpg-error    /Essentials/GNU utilities
libksba /Essentials/GNU utilities
libtool /Essentials/GNU utilities
ncurses /Essentials/GNU utilities
pth     /Essentials/GNU utilities
readline        /Essentials/GNU utilities
sed     /Essentials/GNU utilities
tar     /Essentials/GNU utilities
time    /Essentials/GNU utilities
attr    /Essentials/Linux utilities
e2fsprogs       /Essentials/Linux utilities
file    /Essentials/Linux utilities
iproute /Essentials/Linux utilities
iptables        /Essentials/Linux utilities
iputils /Essentials/Linux utilities
kbd     /Essentials/Linux utilities
net-tools       /Essentials/Linux utilities
procps  /Essentials/Linux utilities
psmisc  /Essentials/Linux utilities
libdrm  /Graphics/Display \& Graphics Adaptation
xorg-x11-drv-fbdev      /Graphics/Display \& Graphics Adaptation
xorg-x11-drv-vesa       /Graphics/Display \& Graphics Adaptation
fontconfig      /Graphics/Font Management
fontpackages    /Graphics/Font Management
freetype        /Graphics/Font Management
libfontenc      /Graphics/Font Management
cjkuni-fonts    /Graphics/Fonts
droid-fonts     /Graphics/Fonts
liberation-fonts        /Graphics/Fonts
lcms    /Graphics/Imaging
libexif /Graphics/Imaging
libjpeg /Graphics/Imaging
libmng  /Graphics/Imaging
libpng  /Graphics/Imaging
libtiff /Graphics/Imaging
xorg-x11-drv-evdev      /Graphics/Input Adaptation
xorg-x11-drv-keyboard   /Graphics/Input Adaptation
xorg-x11-drv-mouse      /Graphics/Input Adaptation
llvm    /Graphics/OpenGL ES
mesa    /Graphics/OpenGL ES
libICE  /Graphics/X11
libpciaccess    /Graphics/X11
libSM   /Graphics/X11
libX11  /Graphics/X11
libXau  /Graphics/X11
libXaw  /Graphics/X11
libxcb  /Graphics/X11
libXcomposite   /Graphics/X11
libXcursor      /Graphics/X11
libXdamage      /Graphics/X11
libXdmcp        /Graphics/X11
libXevie        /Graphics/X11
libXext /Graphics/X11
libXfixes       /Graphics/X11
libXfont        /Graphics/X11
libXfontcache   /Graphics/X11
libXft  /Graphics/X11
libXi   /Graphics/X11
libXinerama     /Graphics/X11
libxkbfile      /Graphics/X11
libXmu  /Graphics/X11
libXpm  /Graphics/X11
libXrandr       /Graphics/X11
libXrender      /Graphics/X11
libXres /Graphics/X11
libXScrnSaver   /Graphics/X11
libXt   /Graphics/X11
libXTrap        /Graphics/X11
libXtst /Graphics/X11
libXv   /Graphics/X11
libXvMC /Graphics/X11
libXxf86dga     /Graphics/X11
libXxf86misc    /Graphics/X11
libXxf86vm      /Graphics/X11
pixman  /Graphics/X11
xcb-util        /Graphics/X11
xkeyboard-config        /Graphics/X11
xorg-x11-filesystem     /Graphics/X11
xorg-x11-server /Graphics/X11
xorg-x11-utils-xhost    /Graphics/X11
xorg-x11-xauth  /Graphics/X11
xorg-x11-xkb-utils      /Graphics/X11
alsa-lib        /Multimedia/ALSA
alsa-utils      /Multimedia/ALSA
flac    /Multimedia/Codecs
libogg  /Multimedia/Codecs
libsndfile      /Multimedia/Codecs
libtheora       /Multimedia/Codecs
libvorbis       /Multimedia/Codecs
speex   /Multimedia/Codecs
cairo   /Multimedia/GStreamer
gst-plugins-bad-free    /Multimedia/GStreamer
gst-plugins-base        /Multimedia/GStreamer
gstreamer       /Multimedia/GStreamer
libvisual       /Multimedia/GStreamer
pango   /Multimedia/GStreamer
libasyncns      /Multimedia/PulseAudio
orc     /Multimedia/PulseAudio
pulseaudio      /Multimedia/PulseAudio
qmf     /Qt/QMF
qt      /Qt/Qt
qt-mobility     /Qt/Qt Mobility
qtwebkit        /Qt/Qt WebKit
augeas  /Software Management/Package Manager
deltarpm        /Software Management/Package Manager
libsatsolver    /Software Management/Package Manager
libsolv /Software Management/Package Manager
libzypp /Software Management/Package Manager
rpm     /Software Management/Package Manager
zypper  /Software Management/Package Manager
contextkit      /System/Context Framework
qjson   /System/Context Framework
tinycdb /System/Context Framework
sensorfw        /System/Sensor Framework
udev    /System/Startup Services
uxlaunch        /System/Startup Services
systemd /System/System Control

BR
Carsten Munk


Reply via email to