LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   CDE on Slackware 14.2 (https://www.linuxquestions.org/questions/slackware-14/cde-on-slackware-14-2-a-4175661279/)

burning 02-29-2020 12:44 PM

Seeking guidance on installing CDE on slackware current 32-bit
 
Hello there;
I'm fairly new to slackware and linux in general, I've slowly been setting up an old thinkpad at a leisurely pace over these past few weeks and I've been experimenting with a few Desktop Environments. I've tried ICEwm, FVWM2 and XFCE so far but I think now I'd like to try CDE; but there doesn't seem to be a slackbuild for it on slackbuilds.org.

Roaming through some threads here, I came across a thread that mentioned http://ponce.cc/slackware/testing/CDE/

Being someone who hasn't yet attempted to write their own slackbuild script, what exactly am I meant to do here?
As in, how do the files linked on that site relate to instructions on slackbuilds.org on writing your own slackbuild script? What gaps does it fill? what do I not have to do anymore that I would've had to do if I was writing a script from scratch? etc

edorig 03-07-2020 03:32 AM

The Slackbuild on ponce.cc will simply generate a .tgz package that you will be able to install with installpkg or pgktool.
I think that it is not on slackbuilds.org just because CDE wants to be in its own directory /usr/dt while slackbuilds.org prefers to place applications in standard Linux directories /usr/ or /usr/local/.
In practice, you need to download the most recent stable CDE release from http://www.sourceforge.net/p/cdesktopenv (2.3.2) and the material coming with the script on ponce.cc in the same directory, edit the version number in the Slackbuild script to match the release, make the script executable and run it. If everything works fine, you will see the compile proceed, and you will have the installable package.
Of course, you can directly compile from the source using the instructions on Sourceforge, and follow the CDE install procedure. The only downside is that you will have to remove CDE with rm -rf /usr/dt ; rm -rf /etc/dt; rm -rf /var/dt when you are fed up with it, instead of using removepkg.

burning 04-12-2020 04:10 PM

Quote:

Originally Posted by edorig (Post 6097997)
The Slackbuild on ponce.cc will simply generate a .tgz package that you will be able to install with installpkg or pgktool.
I think that it is not on slackbuilds.org just because CDE wants to be in its own directory /usr/dt while slackbuilds.org prefers to place applications in standard Linux directories /usr/ or /usr/local/.
In practice, you need to download the most recent stable CDE release from http://www.sourceforge.net/p/cdesktopenv (2.3.2) and the material coming with the script on ponce.cc in the same directory, edit the version number in the Slackbuild script to match the release, make the script executable and run it. If everything works fine, you will see the compile proceed, and you will have the installable package.
Of course, you can directly compile from the source using the instructions on Sourceforge, and follow the CDE install procedure. The only downside is that you will have to remove CDE with rm -rf /usr/dt ; rm -rf /etc/dt; rm -rf /var/dt when you are fed up with it, instead of using removepkg.

Thank you for your reply. I've only recently had time to get back to setting up my laptop again. Now that I have some more free time, is there a way I can download the slackbuild from ponce.cc as one directory? Forgive my inexperience but it seems as if I can only download individual files from that link, not complete directories so I was wondering if there was an alternative to individually downloading each file in each directory on it's own and then grouping them together appropriately.

Jeebizz 04-12-2020 04:22 PM

Quote:

Originally Posted by burning (Post 6110847)
Thank you for your reply. I've only recently had time to get back to setting up my laptop again. Now that I have some more free time, is there a way I can download the slackbuild from ponce.cc as one directory? Forgive my inexperience but it seems as if I can only download individual files from that link, not complete directories so I was wondering if there was an alternative to individually downloading each file in each directory on it's own and then grouping them together appropriately.

Try a browser extension like "downthemall", you should be able to filter by file types and the like with it.

dchmelik 05-10-2020 07:48 AM

Tried CDE again last several months or 2019... nice to see multiple monitor support... and most--not all--GUI features I'd like. For now I'll have to stay on KDE5 I guess (still miss some things about KDE3.5 and people on ##slackware miss things about all older versions.) I really wish one or the other would allow both Windows 3 & 95/98/ME-style features. Originally I liked program groups in their own windows (never liked start menu as much, to this day) but also like taskbar... which became more important to me than program groups. I felt more productive when I could switch between program groups and see everything else I might use, which of course, you can in CDE. However I also need to see what I have running, preferably (like KDE4+) on a taskbar with launchers that disappear when you start their programs. Nevertheless, I'll keep watching/trying CDE, and if possible I'd donate to the project but unsure they accept... (already did for KDE, TDE...)

burning 05-20-2020 05:15 AM

Quote:

Originally Posted by edorig (Post 6097997)
The Slackbuild on ponce.cc will simply generate a .tgz package that you will be able to install with installpkg or pgktool.
I think that it is not on slackbuilds.org just because CDE wants to be in its own directory /usr/dt while slackbuilds.org prefers to place applications in standard Linux directories /usr/ or /usr/local/.
In practice, you need to download the most recent stable CDE release from http://www.sourceforge.net/p/cdesktopenv (2.3.2) and the material coming with the script on ponce.cc in the same directory, edit the version number in the Slackbuild script to match the release, make the script executable and run it. If everything works fine, you will see the compile proceed, and you will have the installable package.
Of course, you can directly compile from the source using the instructions on Sourceforge, and follow the CDE install procedure. The only downside is that you will have to remove CDE with rm -rf /usr/dt ; rm -rf /etc/dt; rm -rf /var/dt when you are fed up with it, instead of using removepkg.


Thanks. I'm finally getting around to installing it now. I've downloaded all of the necessary files from ponce and the source. Though, As I'd like to better understand what I'm doing in each step before executing it just to make sure I'm learning as I go, do you think you could answer a few questions I have on the README.slackware file?
In the README.slackware files, it lists multiple steps I need to take before running the slackbuild script.

Quote:

1) Add some additional locales symlinks:

cd /usr/lib@LIBDIRSUFFIX@/locale/
ln -s de_DE de_DE.ISO-8859-1
ln -s es_ES es_ES.ISO-8859-1
ln -s fr_FR fr_FR.ISO-8859-1
ln -s it_IT it_IT.ISO-8859-1

2) Get rpcbind to run into insecure mode:

chmod +x /etc/rc.d/rc.rpc
/etc/rc.d/rc.rpc start

3) Build/install the dependency xlt
( https://slackbuilds.org/repository/14.2/libraries/xlt/ )

4) You will need a cde group on the system to run this script:
create one with a command like

groupadd -g 310 cde

Don't forget to add the user that you want to run CDE to this
group: you can use a command like

gpasswd -a myuser cde

5) Build using this SlackBuild.

VARIOUS IMPORTANT NOTES - *MUST* READ

- The build process will install stuff into your /usr, /etc/ and /var,
spamming everywhere, so if you have already installed CDE, you
should remove its stuff prior to building this: this is because CDE
devs have hardcoded building/installing thingies and we can't do
anything about it.

- The LANG environment variable of your user *must* have one of the
following values:

C
fr_FR.ISO8859-1
de_DE.ISO8859-1
es_ES.ISO8859-1
it_IT.ISO8859-1

It will be set to LANG=C by default in your
/etc/profile.d/CDE.{sh,csh} but your enviroment could override it:
be warned.
You can change this default also in /etc/rc.d/rc.4 and
/usr/dt/bin/startxsession.sh.

- When you first run CDE and try to run an application from the
front panel, it may fail with a TT error.
Log out and log back in and it will run without errors.

- If you prefer to run its internal login manager, add this on
top of /etc/rc.d/rc.4, before the gdm lines

# Regardless of the comments below, let's check for dtlogin first:
if [ -x /usr/dt/bin/dtlogin ]; then
export PATH="/usr/dt/bin:$PATH"
export LANG=C
cd /usr/dt/bin
exec ./dtlogin
fi

(these notes have been written originally by notKlatuu and Christopher
Turkel for the cde wikii and has been modified by Matteo Bernardini))
1. What exactly are those symlinks connecting? What's the purpose of making those symlinks?
2. What is rcpbind? and why does is need to be run in insecure mode?
3. why do I need to make a new usergroup to run this script specifically?
4. And what exactly is a LANG environment variable? Is it just what determines what language the DE uses? If so, I'd assume C is English? or is it something else?

dchmelik 05-20-2020 09:11 PM

what about NsCDE?

burning 05-21-2020 06:39 AM

Quote:

Originally Posted by dchmelik (Post 6125522)
what about NsCDE?

Looks interesting. Would I need to make my own SlackBuild from the ground up in order to install it?

ehartman 05-21-2020 08:32 AM

Quote:

Originally Posted by burning (Post 6125259)
4. And what exactly is a LANG environment variable? Is it just what determines what language the DE uses? If so, I'd assume C is English? or is it something else?

Not just the DE: LANG is a setting (global environment variable) that termines language, character coding etc for the whole system. Nowadays it is often set to
Code:

$ echo $LANG
en_US.UTF-8

that is: ENglish, in the US variant, using the UTF-8 characterset.

LANG=C is the original C charset, pure 7-bits ASCII, no national or international extensions. A lot of older programs still need this setting as they cannot handle multi-byte chars like UTF-8 can use.

edorig 05-21-2020 09:56 AM

Quote:

Originally Posted by burning (Post 6125259)
1. What exactly are those symlinks connecting? What's the purpose of making those symlinks?

The CDE build process is expecting the locales in the format de_CH.ISO8859-1 (de=language=German, CH=country=switzerland, ISO8859-1=encoding). On Slackware, this would be simply de_CH. The locales fr_FR,de_DE,it_IT,es_ES are required for the build process. They are already on Slackware, but the build process would not find them without the symlinks.
Quote:

Originally Posted by burning (Post 6125259)
2. What is rcpbind? and why does is need to be run in insecure mode?

rpcpbind is described in the manual page (man rpcbind) . It is used to connect programs that
make RPC calls to the right RPC service.
The Tooltalk RPC service allows CDE programs to communicate with each other, and the cmsd RPC service is needed by the CDE calendar. Runnning rpcbind in insecure mode is unnecessary with recent versions of CDE since they use tirpc by default.

burning 05-21-2020 04:52 PM

Quote:

Originally Posted by edorig (Post 6125710)
The CDE build process is expecting the locales in the format de_CH.ISO8859-1 (de=language=German, CH=country=switzerland, ISO8859-1=encoding). On Slackware, this would be simply de_CH. The locales fr_FR,de_DE,it_IT,es_ES are required for the build process. They are already on Slackware, but the build process would not find them without the symlinks.

rpcpbind is described in the manual page (man rpcbind) . It is used to connect programs that
make RPC calls to the right RPC service.
The Tooltalk RPC service allows CDE programs to communicate with each other, and the cmsd RPC service is needed by the CDE calendar. Runnning rpcbind in insecure mode is unnecessary with recent versions of CDE since they use tirpc by default.

Thanks for the explanation!

burning 06-21-2020 03:58 AM

Actually, after looking into it some more, I think I might try NsCDE. Anyone know if there's a slackbuild for it?

dchmelik 06-23-2020 02:28 AM

Quote:

Originally Posted by burning (Post 6125641)
Looks interesting. Would I need to make my own SlackBuild from the ground up in order to install it?

No, but you should and release it.

burning 06-24-2020 04:35 PM

So I'm trying to write a SlackBuild script for NsCDE using the file available here as a template.
This is my first time attempting to write a SlackBuild script so I am sure that I've made many errors in making this rough draft.

This is what I have so far:

Code:

#!/bin/sh -e

# Slackware build script for NsCDE

# last revised on: 2020/06/24



# NsCDE  Copyright (C) 2020 burning
# ----------------------------------
All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



PRGNAM=NsCDE
VERSION=${VERSION:-1.0rc21}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

# Automatically determines the architecture being built on:
# ----------------------------------------------------------
if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=1586 ;;
    arm*) ARCH=arm ;;
    # Unless $ARCH is already set, use uname -m for all other archs:
      *) ARCH=$( uname -m ) ;;
  esac
fi

# Setting initial variables:
# ---------------------------

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}  #for consistency's sake, use this
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp} # Drop the package in /tmp
fi

if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

set -e # Exit on most errors
# If you prefer to do selective error checking with
# command || exit 1
# Then that's also acceptable.

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Instructions from the INSTALL file
# -----------------------------------
umask 0022
cd /tmp
wget https://github.com/NsCDE/NsCDE/archive/1.0rc21.tar.gz
tar xpzf 1.0rc21.tar.gz
cd NsCDE-1.0rc21
./Installer.ksh -w -i
cd /usr/local/bin
ln -s /opt/NsCDE/bin/nscde


# Compile the application and install it into the $PKG directory
make || exit
make install DESTDIR=$PKG || exit

# Strip binaries and libraries - this can be done with 'make install-strip'
# in many source trees, and that's usually acceptable if so, but if not,
# use this:
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 2 -d : | xargs strip --strip-unneeded 2> /dev/null || true

# Compress man pages
# If the man pages are installed to /usr/share/man instead, you'll need to either
# add the --mandir=/usr/man flag to configure or move them manually after the
# make install process is run.
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done

# Compress info pages and remove the package's dir file
# if no info pages are installed by the software, don't leave this in the script
rm -f $PKG/usr/info/dir
gzip -9 $PKG/usr/info/*.info*

# Remove perllocal.pod and other special files that don't need to be installed,
# as they will overwrite what's already on the system. If this is not needed,
# remove it from the script.
# Remove 'special' files
find $PKG -name perllocal.pod \
  -o -name ".packlist" \
  -o -name "*.bs" \
  | xargs rm -f

# Copy program documentation into the package
# The included documentation varies from one application to another, so be sure
# To adjust your script as needed
# Also, include the SlackBuild script in the documentation directory
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
  <documentation> \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

# Copy the slack-desc (and a custom doinst.sh if necessary) into ./install
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

# Make the package; be sure to leave it in $OUTPUT
# If package symlinks need to be created during install *before*
# your custom contetns of doinst.sh runs, then add the -p switch to
# the makepkg command below -- see makepkg(8) for details
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

I am aware at the lack of a ./configure section. This was because the source did not include a ./configure file.
I also got the instructions from the INSTALL file here

Are there any recommended/necessary amendments I should make? Please let me know.

demifiend 06-29-2020 05:41 PM

Quote:

Originally Posted by burning (Post 6137678)
Are there any recommended/necessary amendments I should make? Please let me know.

Hi. If you're planning to submit this to slackbuilds.org, you should be aware that they'll probably ask you to remove the wget commands because all of the dependencies should be locally available (verified as valid using MD5 checks) before the slackbuild script starts.


All times are GMT -5. The time now is 01:46 PM.