Line 47: | Line 47: | ||
well with this theme, as well as with the high-contrast theme that is used for accessibility. The theme will include a dark variant that applications | well with this theme, as well as with the high-contrast theme that is used for accessibility. The theme will include a dark variant that applications | ||
can opt into using (this is most suitable for certain content-focused applications). The theme also includes an icon theme that provides named icons according to the icon-naming spec, plus symbolic variants. | can opt into using (this is most suitable for certain content-focused applications). The theme also includes an icon theme that provides named icons according to the icon-naming spec, plus symbolic variants. | ||
=== Application Integration === | |||
Installed applications are expected to install a desktop file in /usr/share/applications and an application icon in the hicolor icon theme. | |||
=== Firewall === | === Firewall === |
Revision as of 22:43, 10 February 2014
Fedora Workstation Technical Specification
Core Services and Features
This section should describe the core services of the platform and their intended use. The items here should refer back to the PRD for a functional justification.
Service management
Systemd provides ways to control and monitor the activity and status of system services, resources they require, etc. System services are expected to provide systemd units.
Logging
The systemd journal will be used as the local storage backend for system logs. For 'managed' scenarios (e.g the 'developer in a large organization' use case of the PRD), it will be possible to collect the logs in a centralized location, off the local machine.
Applications and services can either use the syslog API or the journal APIs for their logging.
Session tracking
Logind will be used as the session tracking facility.
Account handling
SSSD is providing the backing storage for identity management. For 'managed' scenarios (e.g. the 'developer in a large organization' use case of the PRD), it will be possible to configure it to rely on a directory service for this information. The accountsservice is providing a D-Bus interface for user account information; this may be integrated into SSSD at some point.
Depending on their needs, application and services can either use the POSIX APIs (getpwent(), etc) or the accountsservice D-Bus interface to obtain user information.
Miscellaneous system information
System locale, timezone, hostname, etc. will be managed through the services provided by systemd for this purpose.
Display manager
gdm will be used as the display manager. It is responsible for showing a login screen on each seat. It will be able to launch both X-based sessions and Wayland sessions.
Desktop environments are expected to make themselves known as an available session option on the login screen by dropping a .desktop file into /usr/share/xsessions (or its wayland equivalent).
Other facilities provided by the display manager include screen unlock authentication and user switching.
Accessibility
The accessibility support in the workstation includes a screen reader, a high-contrast theme and a zoom capability, amongst others. The screen reading is provided through orca, which runs as a session service and requires the at-spi infrastructure. Applications are expected to provide suitable information to the screen reader via the toolkit's accessibility support. Applications are also expected to work acceptably in the high-contrast theme. The zoom is implemented in the desktop shell and does not need any application support.
Appearance
The workstation will ship with a single theme, which will have support for the included toolkits: gtk3, qt and gtk2. Applications are expected to work well with this theme, as well as with the high-contrast theme that is used for accessibility. The theme will include a dark variant that applications can opt into using (this is most suitable for certain content-focused applications). The theme also includes an icon theme that provides named icons according to the icon-naming spec, plus symbolic variants.
Application Integration
Installed applications are expected to install a desktop file in /usr/share/applications and an application icon in the hicolor icon theme.
Firewall
TBD
Core Package list
List the core packages of the product. This list includes all packages that will be shipping on the core media. This is the mandatory minimal list of packages that needs to be installed on a system at all times for it to qualify as a Fedora workstation install. This package list will be the priority focus for QA and bug fixing.
Package list
systemd, gdm, gnome-shell, gtk3, qt plus their dependencies
Here is the full list of packages that are installed as dependencies of systemd, gdm, gnome-shell, gtk3, orca, control-center: (FIXME: figure out what qt packages need to added)
at-spi2-atk setup libgusb telepathy-filesystem libcanberra-gtk3 heisenbug-backgrounds-gnome gnome-keyring linux-firmware libnm-gtk nss-softokn-freebl gnome-themes-standard ncurses-libs pyatspi pcre caribou libxml2 gnome-session-xsession libcom_err realmd shared-mime-info libsoup p11-kit geoclue libICE upower libgcrypt xorg-x11-server-utils freetype kernel libuuid libvisual libevdev libgdata popt mutter-wayland libsecret gnome-settings-daemon hunspell-en-US libtalloc libXau brltty libXfixes festival-speechtools-libs libXdamage festival libXinerama python3-gobject libplist libwbclient libtool-ltdl libunistring libtasn1 libwnck3 nss-softokn libgomp mozjs24 cups-pk-helper orc sox harfbuzz flite harfbuzz-icu libgnomekbd ca-certificates orca libXxf86misc startup-notification acl libdb-utils desktop-file-utils diffutils mozjs17 avahi-libs abattis-cantarell-fonts libproxy libverto libsamplerate libxshmfence libthai libXdmcp openssl-libs cracklib-dicts libmount shadow-utils util-linux libusbx cups-libs fedora-logos curl newt-python openssl fipscheck-lib cryptsetup-libs polkit mesa-libEGL pango librsvg2 libgcc dbus-x11 fontpackages-filesystem gtk2 filesystem accountsservice-libs basesystem colord-libs libX11-common gcr heisenbug-backgrounds-base clutter libwacom-data dconf mobile-broadband-provider-info gnome-keyring-pam hwdata gnome-bluetooth-libs ncurses-base gjs glibc-common adwaita-gtk2-theme libstdc++ gnome-desktop3 bash pygobject3 libsepol caribou-gtk3-module libselinux python-caribou dbus-libs rtkit nspr gnome-session info libwacom libffi PackageKit-glib glib2 trousers atk glib-networking libwayland-client libgweather json-glib geocode-glib audit-libs rest libogg libimobiledevice libgpg-error kpartx libwayland-cursor mcpp libpng xorg-x11-xinit mesa-libwayland-egl dracut libxkbcommon pulseaudio libSM gnome-bluetooth sqlite gstreamer1-plugins-base libattr gnome-online-accounts libacl evolution-data-server chkconfig mutter sed gdm-libs libvorbis libnotify grep gdm hunspell hunspell-en bzip2-libs libtevent libxcb python3 libXext brlapi libXrender gupnp libXi clutter-gtk libXcomposite festvox-slt-arctic-hts libXcursor gupnp-av libxkbfile python3-cairo telepathy-glib python3-pyatspi mesa-libglapi pytalloc libicu samba-libs libcap-ng libsmbclient libtdb wavpack libical libXres libXxf86vm avahi-glib lua nm-connection-editor libidn dotconf kmod-libs rygel redhat-menus libgtop2 tcp_wrappers-libs libao graphite2 festival-freebsoft-utils pixman cheese-libs newt espeak gnome-menus python3-speechd p11-kit-trust control-center nettle xorg-x11-xkb-utils libXevie xcb-util jasper-libs enchant libmetalink libxslt cyrus-sasl-lib libtheora libgee cpio make findutils xml-common libxklavier psmisc lyx-fonts ncurses libmodman libpciaccess json-c gdbm libsndfile qrencode-libs speex jbigkit-libs gdk-pixbuf2 sbc cdparanoia-libs ustr krb5-libs nss-tools cracklib openldap libpwquality libuser coreutils pam libutempter nss-sysinit pulseaudio-libs alsa-lib gnome-icon-theme pulseaudio-libs-glib2 python libssh2 liboauth rpm-libs color-filesystem pygobject3-base libXft authconfig procps-ng fipscheck device-mapper-libs systemd libgudev1 polkit-pkla-compat mesa-libgbm libcanberra cairo cairo-gobject NetworkManager-glib liblouis-python3 at-spi2-core control-center-filesystem accountsservice tzdata gtk3 adwaita-cursor-theme bluez mozilla-filesystem adwaita-gtk3-theme emacs-filesystem colord glibc pycairo xz-libs caribou-gtk2-module zlib GConf2 nss-util ibus-libs pkgconfig gnutls gobject-introspection geoclue2 libwayland-server usbmuxd libdb libmcpp gsettings-desktop-schemas hardlink expat pulseaudio-module-bluetooth readline webkitgtk3 libcap zenity dbus-glib gnome-shell gstreamer1 pulseaudio-gdm-hooks libjpeg-turbo python3-libs libX11 gssdp libXrandr festival-lib libXtst python3-brlapi libXt libldb gmp samba-common lcms2 glx-utils libXmu vino libcroco gupnp-dlna kmod colord-gtk elfutils-libelf clutter-gst2 slang speech-dispatcher xorg-x11-xauth liblouis telepathy-logger libXv hunspell-en-GB desktop-backgrounds-gnome flac-libs ModemManager-glib gawk iso-codes xz webrtc-audio-processing libasyncns gsm keyutils-libs libtiff libwebp libsemanage gzip systemd-libs nss libblkid fontconfig hicolor-icon-theme python-libs libcurl rpm gnome-icon-theme-symbolic sound-theme-freedesktop device-mapper dbus libdrm mesa-libGL cogl
Policies for software add-ons
General rules and policies for how extra software is installed and what requirements are put on that software.
Engineering Roadmap
Not sure if we want this section here or if we should just make this a pure description document and put the implementation roadmap in a separate document.