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