Откапываем и оживляем CDE
Сеанс практической некромантии, если вам вдруг стало скучно.
CDE (Common Desktop Environment) это такое графическое окружение, с кнопочками и панелями. Очень старое, скорее всего оно старше большинства читателей этого поста.
Это был очень дорогой, профессиональный софт, естественно закрытый, работающий на дорогом же профессиональном оборудовании «уважаемых вендоров».
Применялись такие станции например как платформа для CAD систем:
Но все меняется к лучшему а на дворе весна.
А что может быть лучше по весне, чем оживить древний кусок компьютерного говна ради красивой истории:
In February 1997, the Open Group released their last major version of CDE, version 2.1.[10]
Да да, разработка была фактически заморожена еще в далеком 1997м, а исходники CDE в публичный доступ выложили в 2012м:
On August 6, 2012, CDE was released under the LGPL-2.0-or-later license.[4][21] The CDE source code was then released to SourceForge.
На момент выкладывания оно даже не собиралось, а то что собиралось — толком не работало.
Прошло 11 лет и все уже стало несколько лучше — собирается практически везде и уже более-менее работает.
После открытия исходников, разработка CDE ведется вот тут.
Ниже опишу последовательность для самого хардкорного варианта: сборки из исходников текущей версии.
Если вам это не надо — ставьте из пакетов, благо оно уже много где есть.
Во FreeBSD все заводится с полпинка одной командой:
pkg install cde
и последующим чтением иструкции, показываемой сразу после установки.
Шаг первый: Motif
CDE сильно зависит от другой «древней дряни из проперженного космоса»: Motif, его придется также собирать из исходников, поскольку в системе он будет либо урезанным либо не той версии либо в виде форка LessTif.
git clone https://git.code.sf.net/p/motif/code motif-code
./configure --prefix=/opt/motif
Тут надо заметить что я ставлю Motif в отдельный каталог /opt/motif, чтобы избежать проблем с системной версией (если она стоит).
Каких-то особых зависимостей у Motif нет, поэтому причин по которой он может не собраться исчезающе мало.
make && make install
В результате у вас должно появиться что-то такое:
ls /opt/motif/lib libMrm.a libMrm.so.4.0.4* libUil.so.4@ libXm.so@ libMrm.la* libUil.a libUil.so.4.0.4* libXm.so.4@ libMrm.so@ libUil.la* libXm.a libXm.so.4.0.4* libMrm.so.4@ libUil.so@ libXm.la* X11/
Шаг второй: сборка CDE
git clone https://git.code.sf.net/p/cdesktopenv/code cdesktopenv-code
Вот тут уже нужно ставить библиотеки, которых довольно много:
On debian-like systems (including Ubuntu) install the following packages:
- autoconf
- automake
- libtool
- git (for downloading from source repository)
- build-essentials or build-essential
- libpam-dev
- libutempter-dev
- 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)
- patch (needed for new ksh93)
- xfonts-100dpi (for nicer looking fonts)
- xfonts-100dpi-transcode or xfonts-100dpi-transcoded
- rpcbind (or portmap) may require running in insecure mode (-i) see section 1.5 below
- bison
- xbitmaps
- x11proto-fonts-dev
- flex
- opensp
- libxrender-dev
- xrdb
- sessreg
Motif мы собираем вручную, поэтому его ставить не надо.
Я собирал на Mageia 9, которая вроде как не поддерживается но работает.
Для Mageia у пакетов для разработки будет не -dev а -devel постфикс.
./autogen.sh
./configure --prefix=/opt/cde LDFLAGS="-L/opt/motif/lib" CFLAGS="-I/opt/motif/include" CXXFLAGS="-I/opt/motif/include"
Тут указание на собранный выше вручную Motif .
make -j 8
Сборка идет достаточно долго даже на современной машине и с указанием использования 8 потоков для сборки ( -j 8).
После окончания сборки, нужно будет выполнить из-под root:
make install
Часть CDE обязательно установится в /usr/dt, создав симлинки на указанный /opt/cde — так надо. По другому не заработает.
Шаг третий: настройка
В CDE есть свой собственный login manager: dtlogin, выглядит вот так:
Но поднимать еще и его мне было откровенно лень жаль, поскольку все делалось на рабочей машине.
Поэтому я выбрал вариант запуска CDE из Xsession, подхватываемый современными менеджерами вроде SDDM:
cp /path/to/cdesktopenv-code/cde/contrib/desktopentry/cde.desktop /usr/share/xsessions/
В нем нужно заменить путь до запускаемого бинарника:
cat /usr/share/xsessions/cde.desktop [Desktop Entry] Name=CDE DesktopNames=CDE Comment=Use this session to boot into the Common Desktop Environment Keywords=Common Desktop Environment Exec=/opt/cde/bin/Xsession Icon=Dtlogo.pm Type=Application
После этого, в меню выбора окружения должен появитьс пункт CDE.
Дальше, при первом запуске вас будет ожидать вот такое сообщение:
По нажатию OK произойдет волшебство завершение сеанса. Чтобы это исправить - нужно запустить rpcbind:
service rpcbind start
Держать этот сервис включенным — опасно, это та еще дыра в безопасности, поэтому включать просто так не советую. Вы должны быть абсолютно уверены что оно закрыто файрволом снаружи.
Локализация и реальное использование
Оказалось что CDE очень даже возможно локализовать, настроить и использовать в ежедневной работе:
Если вам очень надо - вот тут лежит подробный гайд как сие реализовать. У меня к сожалению особого интереса к его ежедневному использованию нет.
Итого
В очередной раз убеждаюсь что софт это в первую очередь идея а не реализация. Поэтому легенды не умирают.
Вы сколько угодно можете рассказывать про "моральное устаревание" и "нинужность" но а оно все также живет.
Удивительное дело но этот софт практически в два раза старше современных быдлокодеров.