Desktop Factory Host Requirements

To successfully build a customized Linux distribution using the Timesys Desktop Factory, your host machine must be running a modern GNU/Linux Operating System. Timesys recommends one of the following distributions:

  • Ubuntu - Most recent release or LTS (currently 16.04, 32/64-bit)
  • Fedora - Most recent release
  • RHEL - RHEL 7, CentOS 7, RHEL 6.7, CentOS 6.5

Timesys testing and support is focused on these newest versions of Ubuntu or Fedora. For additional distribution support, please contact for a professional services agreement.

The factory engine's "checksystem" target is available to detect whether all required host tools are present on your system. After installing the tools listed below, please run "make checksystem" from your Desktop Factory directory to see if any required tools are missed or not detected by Factory.

The following sections provide the requirements and commands that will fulfill most of your host requirements for given distributions

Basic Requirements

  • 10GB+ of free disk space
  • working toolchain
    • gcc
    • gnu make
    • c library with development headers
  • bison
  • sed and awk (gawk, not mawk for ubuntu users)
  • flex
  • gmp
  • mpfr
  • perl
    • XML::Parser
  • tetex (optional, CodeSourcery toolchain does not prebuild docs)
  • libxslt (optional for some desktop/X apps)
  • wget
  • ncurses
  • bzip2, gzip, and xz
  • module-init-tools / kmod (for depmod)
  • bc (to build modern kernels)

Distribution Specific Requirements

Debian Wheezy/Jessie and Ubuntu 12.04/14.04/15.10/16.04

  • For 64-bit Debian Wheezy, Jessie, or newer versions, enable multiarch:
    • $ sudo dpkg --add-architecture i386
    • $ sudo apt-get update
  • For all Debian/Ubuntu versions, reconfigure dash and install required packages:
    • $ sudo dpkg-reconfigure dash
      respond "No" to the prompt asking "Install dash as /bin/sh?"
    • $ sudo apt-get update
    • $ sudo apt-get install automake binutils-dev bison build-essential bzip2 ecj fastjar flex gawk gconf2 gettext gperf groff gtk-doc-tools guile-1.8 icon-naming-utils indent libc6-dev libdbus-glib-1-dev libexpat1-dev libglade2-dev libgmp3-dev libgtk2.0-bin libgtk2.0-dev libmpfr-dev libncurses5-dev libperl-dev libsdl1.2-dev libtool libusb-dev libxml-parser-perl lzop python-dev python-libxml2 ruby scons sharutils swig texinfo texlive-extra-utils texlive-latex3 unzip wget x11-xkb-utils xfonts-utils zip zlib1g
  • For all 32-bit Debian/Ubuntu versions:
    • $ sudo apt-get install libc6-dev-amd64
  • For all 64-bit Debian/Ubuntu versions:
    • $ sudo apt-get install lib32ncurses5 lib32z1 lib32z1-dev libc6-dev-i386
  • For 64-bit Ubuntu 14.04 only:
    • $ sudo apt-get install lib32bz2-1.0
  • For 64-bit Debian Wheezy, Ubuntu 12.04, or older versions:
    • $ sudo apt-get install ia32-libs

Fedora

  • Fedora 25:
    • dnf install texinfo gtk2-devel SDL-devel swig perl-XML-Parser icon-naming-utils dbus-glib guile binutils-devel gtk-doc wget zip unzip glibc-static xorg-x11-xkb-utils libglade2-devel perl-devel ncurses-devel ncurses-static zlib-static xorg-x11-font-utils perl-XML-Simple libxml2-python expat-devel GConf2 groff python-devel ecj ruby
    • dnf groupinstall "C Development Tools and Libraries"
    • dnf install patch libstdc++-static
    • create a repository config file /etc/yum.repos.d/rpm-sphere.repo:
      [rpm-sphere]
      name=RPM Sphere
      baseurl=http://download.opensuse.org/repositories/home:/zhonghuaren/Fedora_25/
      gpgkey=http://download.opensuse.org/repositories/home:/zhonghuaren/Fedora_25/repodata/repomd.xml.key
      enabled=1
      gpgcheck=1
      
    • dnf install fastjar
  • Older versions:
    • yum install texinfo gtk2-devel SDL-devel swig perl-XML-Parser icon-naming-utils dbus-glib guile binutils-devel gtk-doc wget zip unzip glibc-static xorg-x11-xkb-utils libglade2-devel perl-devel ncurses-devel ncurses-static zlib-static xorg-x11-font-utils perl-XML-Simple libxml2-python expat-devel GConf2 groff
    • yum groupinstall "C Development Tools and Libraries"
    • Fedora 20:
      • yum install patch libstdc++-static
    • Fedora <19:
      • yum groupinstall "Development Tools" "Development Libraries"

Red Hat Enterprise Linux

RHEL Workstation Repos require a Red Hat Enterprise Linux Workstation Subscription (purchased from Red Hat).
Installations under RHEL/CentOS 5 or older, please contact

In RHEL only, register the subscription manager:

# subscription-manager register

Log in at the prompt with your RHEL credentials.

  • RHEL 6.7:

Enable rhel-6-workstation-optional-rpms:

subscription-manager repos --enable=rhel-6-workstation-optional-rpms
  • yum install gcc gcc-c++ bison flex patch ruby texinfo automake binutils-devel zlib-devel zlib-static ncurses-devel glibc-static expat-devel perl-XML-Parser swig guile ncurses-static guile gtk2-devel SDL-devel python-devel icon-naming-utils ecj libtool libglade2-devel
  • RHEL 7:

Enable rhel-7-workstation-optional-rpms: (Not necessary on CentOS 7)

subscription-manager repos --enable=rhel-7-workstation-optional-rpms
  • yum install gcc gcc-c++ bison flex patch ruby texinfo automake binutils-devel zlib-devel zlib-static ncurses-devel glibc-static expat-devel perl-XML-Parser swig guile ncurses-static guile gtk2-devel SDL-devel python-devel icon-naming-utils ecj libtool libglade2-devel libstdc++-static GConf2
  • CentOS 7:
    • sudo yum install gcc gcc-c++ bison flex patch ruby texinfo automake binutils-devel zlib-devel zlib-static ncurses-devel glibc-static expat-devel perl-XML-Parser swig guile ncurses-static guile gtk2-devel SDL-devel python-devel icon-naming-utils ecj libtool libglade2-devel libstdc++-static GConf2 glibc.i686 zlib.i686
  • Create a repository config file /etc/yum.repos.d/rpm-sphere.repo:
    [rpm-sphere]
    name=RPM Sphere
    baseurl=http://download.opensuse.org/repositories/home:/zhonghuaren/Fedora_22/
    gpgkey=http://download.opensuse.org/repositories/home:/zhonghuaren/Fedora_22/repodata/repomd.xml.key
    enabled=1
    gpgcheck=1
    
  • yum install fastjar

Arch Linux

  • Enable multilib sources by uncommenting the [multilib] section in /etc/pacman.conf
    [multilib]
    Include = /etc/pacman.d/mirrorlist
    
  • Update the package manager:
    pacman -Syu
    
  • For all versions of Arch Linux:
    sudo pacman -S base-devel bc bison bzip2 eclipse-ecj expat fastjar flex gawk \
    gconf glibc gmp gperf groff gtk2 gtk-doc guile1.8 icon-naming-utils indent \
    libdbus libglade libtool libusb libxml2 lzop mpfr ncurses perl perl-xml-parser \
    python python2-lxml ruby scons sdl sharutils swig texinfo texlive-latex3 unzip \
    wget xorg-font-utils xorg-xkbutils zip zlib
    
  • For 64 bit Arch Linux:
    sudo pacman -S lib32-glibc lib32-ncurses lib32-zlib
    
  • Make make checksystem checksystem.sh happy:
    sudo touch /usr/lib/libncurses.a
    

Additional Notes