LinuxBuild

We are currently requesting that all contributions to the project are licenced under the MIT licence. Find out why?

WARNING: THIS GUIDE IS FOR ADVANCED USERS FOR USE IN BUILDING AND PORTING.

Before you compile, please check the status of your distribution/platform. It will save you a lot of hassle.

CDE on Linux is not yet to the point of being simple to package for distribution or a relatively simple to compile from the source archive.

1) Build Prerequisites

1.1) Supported Platforms

The initial Linux port is intended to be a minimal impact port, changing just what is required to make it build and run, so no warning fixes, refactoring, changing the build system or other niceties have been implemented as yet.

Check the supported platforms page for a complete list.

1.2) Known Issues with built components

  • dtcm/rpc.cmsd - calendar manager. There are a variety of problems with this.
  • dtmail - Desktop Mail. There are a variety of issues with this component, including a lack of support for SSL connections to IMAP or POP servers.

1.3) Install Dependencies

Compile-time and run-time requirements

On debian-like systems (including Ubuntu) install the following packages;

  • git (for downloading from source repository)
  • build-essentials or build-essential
  • libxp-dev (not available on latest linuxes, skip)
  • libxt-dev
  • libxmu-dev
  • libxft-dev
  • libxinerama-dev
  • libxpm-dev
  • libmotif or libmotif3 or libmotif4 or libxm4 (Openmotif, in non-free or restricted)
  • libmotif-dev (Openmotif, in non-free or restricted)
  • libxaw7-dev (used by dtinfo)
  • libx11-dev
  • libXSs-dev or libxss-dev
  • libtirpc-dev
  • x11-xserver-utils (for xset)
  • libjpeg62-turbo-dev or libjpeg62-dev
  • libfreetype6-dev
  • libssl-dev
  • tcl-dev
  • ksh (required for database to any script, and probably dtksh building)
  • m4 (required for nsgmls building)
  • ncompress (old style unix 'compress' needed when building help files)
  • xfonts-100dpi (for nicer looking fonts)
  • xfonts-100dpi-transcode or xfonts-100dpi-transcoded
  • rpcbind (or portmap) requires running in insecure mode (-i) see section 1.6 below
  • bison
  • xbitmaps

On Ubuntu you may use this slightly chunky single-line statement:

apt-get -y install git build-essential g++ lib{xt,xmu,xft,xinerama,xpm,motif,ssl,xaw7,x11,XSs,tirpc,jpeg,freetype6}-dev tcl-dev ksh m4 ncompress xfonts-{100,75}dpi{,-transcoded} rpcbind bison xbitmaps

Note For Ubuntu 16.04 libXSs-dev has a different spelling libxss-dev. Use this line instead:

apt-get -y install git build-essential g++ lib{xt,xmu,xft,xinerama,xpm,motif,ssl,xaw7,x11,xss,tirpc,jpeg,freetype6}-dev tcl-dev ksh m4 ncompress xfonts-{100,75}dpi{,-transcoded} rpcbind bison xbitmaps

On Red Hat and Fedora 17 see this page.

Archlinux [Currently broken]

See this page for additional notes.

Slackware 32/64 bit

See this page for additional notes

Do not install the following items

  • Lesstif
  • imake

1.4) Generate additional locale support

Generate system support for German, Spanish, French, and Italian locales:

On Ubuntu

  • sudo locale-gen de_DE
  • sudo locale-gen es_ES
  • sudo locale-gen fr_FR
  • sudo locale-gen it_IT

On Debian

Run dpkg-reconfigure locales and select the following off the list

  • de_DE ISO-8859-1
  • es_ES ISO-8859-1
  • fr_FR ISO-8859-1
  • it_IT ISO-8859-1

For generic Linux

Edit locale.gen, usually found in /etc</etc> and uncomment (remove the # space from the start of the line) the following lines;

  • de_DE.ISO-8859-1
  • es_ES.ISO-8859-1
  • fr_FR.ISO-8859-1
  • it_IT.ISO-8859-1

Then run the locale-gen to generate them

locale-gen

1.5) Modify rpcbind to run in insecure mode

Modify rpcbind to run in insecure mode (-i)

On older Ubuntu (pre 14.04) and Debian based systems, edit /etc/init.d/rpcbind:

On newer Ubuntu (>= 14.04) edit /etc/default/rpcbind:

and add the following line to it:

OPTIONS="${OPTIONS} -i"

Restart the service with:

service rpcbind restart

or reboot the machine.

2) Compiling

2.1) Get a copy of the repository

Use the git clone command here
https://sourceforge.net/p/cdesktopenv/code/

Or get a copy of the source from a the Download Page. Extract the archive into a directory called 'cdesktopenv-code' (this isn't a strict requirement, but will make the rest of the instructions easier to follow)

Note: The source archive can become out of date rapidly. When in doubt, use the git repository

2.2) Attempt to build

cd cdesktopenv-code/cde
make World

The build will terminate with a successfully built message.

After you've built World, it should have compiled up the libraries and quite a few of the apps.

To check look in cdesktopenv-code/cde/exports/lib there should be 10 different CDE libraries.

2.3) Test running some applications

(Replace /path/to/ with the path to the location of your source tree.)

export LD_LIBRARY_PATH=/path/to/cdesktopenv/cde/exports/lib 
cd cdesktopenv-code/cde/programs/dtcalc
./dtcalc

3) Installing

The install actions should only need to be done once on install, or on reinstall of later versions.

(Replace /path/to/ with the path to the location of your source tree.)

# Install CDE
cd cdesktopenv-code/cde/admin/IntegTools/dbTools
sudo ./installCDE -s /path/to/cdesktopenv-code/cde/

# Run the linux post install script (this does have a couple of errors reported)
cd cdesktopenv-code/cde/admin/IntegTools/post_install/linux
sudo ./configRun -e

Note: This may terminate with inetd errors. These are harmless and can be ignored.

# It seems this dir needs to be writable by every user of CDE
sudo chmod -R a+rwx /var/dt

# Directory required for calendar service
sudo mkdir -p /usr/spool/calendar

4) Running

4.1) Running (Single User)

Switch to virtual terminal and log in as root

# kill off xserver.  For example, if you are running lightdm:
service lightdm stop

# note, you do not need to run rpc.ttdbserver.  If you *really* want to, 
# then start it with /usr/dt/bin/rpc.ttdbserver and confirm its running
# rpcinfo -p

You can log off root and into your regular user here

# add /usr/dt/bin to your PATH
export PATH=$PATH:/usr/dt/bin
export LANG=C
# Start CDE
startx /usr/dt/bin/Xsession

This should boot into the CDE desktop

(You can change the export LANG=C to LANG="fr_FR.ISO8859-1", LANG="de_DE.ISO8859-1", LANG="es_ES.ISO8859-1" or LANG="it_IT.ISO8859-1", for non English languages.)

4.2) Running (Login Manager - dtlogin)

Switch to virtual terminal and log in as root

# kill off xserver.  For example, if you are running lightdm:
service lightdm stop

# note, you do not need to run rpc.ttdbserver.  If you *really* want to, 
# then start it with /usr/dt/bin/rpc.ttdbserver and confirm its running
# rpcinfo -p

export PATH=$PATH:/usr/dt/bin
export LANG=C
cd /usr/dt/bin
./dtlogin

This should start the login screen.

(You can change the export LANG=C to LANG="fr_FR.ISO8859-1", LANG="de_DE.ISO8859-1", LANG="es_ES.ISO8859-1" or LANG="it_IT.ISO8859-1", for non English languages. Or choose a language from the dtlogin UI.)

Note: The sound and video devices may not have the correct access rights after a user logs in through dtlogin. If the sound and video do not work, check this.

4.3) Running (Using lightdm/gdm/kdm login manager)

Follow the instructions on this sub page to create a xsession file to allow a CDE session to be chosen from lightdm/gdm/kdm list of login sessions.

Screenshot thumbnail
1 - Applications
Screenshot thumbnail
2 - More Applications
Screenshot thumbnail
3 - Help Systems
Screenshot thumbnail
4 - The Style Manager
Screenshot thumbnail
5 - The File Manager
Screenshot thumbnail
6 - Just Another Window Manager


Related

Wiki: Createxsession
Wiki: Home

Discussion

  • dank101

    dank101 - 2014-09-14

    Installing openbsd-inetd fixes some rpc.cmsd issues

     
  • Seudo

    Seudo - 2016-05-25

    I'd like to correct the current command for downloading the source from Git to:
    git clone git://git.code.sf.net/p/cdesktopenv/code cdesktopenv-code

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks