Cinnamon 2.x porting

Here is a place for your projects which are not officially supported by the Porteus Team. For example: your own kernel patched with extra features; desktops not included in the standard ISO like Gnome; base modules that are different than the standard ISO, etc...
User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: Cinnamon 2.x porting

Post#61 by brokenman » 03 Nov 2013, 20:30

I did look at these builds. I only do not see how I can take care that I have the right version.
Take a look in the .SlackBuild file somewhere near the top. You will find the version. I think the at-spi2-core is at 2.10.1.
I did not. I borrowed the pam slackbuilds of the mate desktop.
That's a pity. Dragging in PAM just for a screensaver sux. Gnome seems against modularity. Some power options may also be done through system.d so I wouldn't be surprised if hibernate and sleep don't work from the menu.
but more if you can set a language other then Englisch.
Ok. Can look at this after it is up and running.
How do i become super user?
Wear your underpants on the outside and put on a cape.

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#62 by roelof » 03 Nov 2013, 20:52

oke,

I have to look at at-spi2-core.
And I agree it a pity. But I think most users like to have a option to lock down the computer.

When I have Cinnamon ready tommorow evening. I will test it.

And if it works I think the next steps are to stay in sync with upstream and look how we can make Cinnamon work without dropline Gnome.
Otherwise we get a very big module. and as far as I know Cinnamon 2.x needs some parts just like xfce and other gnome based DE.

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#63 by roelof » 04 Nov 2013, 16:26

All the modules are ready for testing.

What is the slackware way to tell that it must start cinnamon-session-cinnamon instead of gnome-session ?

Roelof

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#64 by roelof » 04 Nov 2013, 19:33

Hello.

I changed .xinitrc to exec cinnamon-session but I see this mesage :

Code: Select all

*cinnamon-session : Unable to find required component ' nemo-autostart' 
So a lot of googling to do to solve this one.

Roelof

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: Cinnamon 2.x porting

Post#65 by brokenman » 05 Nov 2013, 00:48

/etc/X11/xinit/xinitrc is a symlink to /etc/X11/xinit/xinitrc.gnome

In xinitrc.gnome comment out the last line and change it to: exec cinnamon-session
Based on the error you received it looks like you need to recompile nemo and make sure it produces the missing component. Take a look at the compile options in nemo.
How do i become super user?
Wear your underpants on the outside and put on a cape.

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#66 by roelof » 05 Nov 2013, 15:42

Oke,

I will try the next few days to solve this.

Roelof

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#67 by roelof » 05 Nov 2013, 16:33

First problem where I need your help

I have this slackbuild for cinnamon :

Code: Select all

#!/bin/sh
# Generated by Alien's SlackBuild Toolkit: http://slackware.com/~alien/AST
# Copyright 2009, 2010, 2011, 2012, 2013  Eric Hameleers, Eindhoven, Netherlands
# Copyright 2013  Roelof Wobben <rwobben@hotmail.com>
# All rights reserved.
#
#   Permission to use, copy, modify, and distribute this software for
#   any purpose with or without fee is hereby granted, provided that
#   the above copyright notice and this permission notice appear in all
#   copies.
#
#   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
#   CONTRIBUTORS 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.
# -----------------------------------------------------------------------------
#
# Slackware SlackBuild script
# ===========================
# By:          Roelof Wobben <rwobben@hotmail.com>
# For:         cinnamon
# Descr:       Cinnamon is a Linux desktop which provides advanced innovat
# URL:         http://cinnamon.linuxmint.org
# Needs:
# Changelog:
# 2.8-1:     03/Nov/2013 by Roelof Wobben <rwobben@hotmail.com>
#              * Initial build.
# 2.10-1:    03/Nov/2013 by Roelof Wobben <rwobben@hotmail.com>
#              * Upgrade to 2.10.0
# Run 'sh cinnamon.SlackBuild' to build a Slackware package.
# The package (.tgz) and .txt file as well as build logs are created in /tmp .
# Install it using 'installpkg'.
#
# -----------------------------------------------------------------------------

# Set initial variables:

PRGNAM=Cinnamon
VERSION=${VERSION:-2.0.10}
BUILD=${BUILD:-1}
# 'make' can run jobs in parallel for added speed. The number should be higher
# than the number of cores/virtual CPU's in your system:
NUMJOBS=${NUMJOBS:" -j4 "}
# The TAG is a unique identifier for all your Slackware packages.
# Use your initials as the value for TAG for instance.
TAG=${TAG:-_rw}

# This covers most filenames you'd want as documentation. Change if needed.
DOCS="ABOUT* AUTHORS BUGS ChangeLog* COPYING CREDITS FAQ GPL* HACKING \
      LICENSE MAINTAINERS NEWS README* TODO"

# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)

# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

# Input URL: https://github.com/linuxmint/Cinnamon/archive/2.0.8.tar.gz
SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz"
SRCURL="https://github.com/linuxmint/Cinnamon/archive/2.0.10.tar.gz"


##
## --- with a little luck, you won't have to edit below this point --- ##
##

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) export ARCH=i486 ;;
    arm*) export ARCH=arm ;;
    # Unless $ARCH is already set, use uname -m for all other archs:
       *) export ARCH=$( uname -m ) ;;
  esac
fi

case "$ARCH" in
  i486)   SLKCFLAGS="-O2 -march=i486 -mtune=i686"
          SLKLDFLAGS=""; LIBDIRSUFFIX=""
          ;;
  x86_64) SLKCFLAGS="-O2 -fPIC"
          SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
          ;;
  *)      SLKCFLAGS="-O2"
          SLKLDFLAGS=""; LIBDIRSUFFIX=""
          ;;
esac

# Exit the script on errors:
set -e
trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR
# Catch unitialized variables:
set -u
P1=${1:-1}

# Save old umask and set to 0022:
_UMASK_=$(umask)
umask 0022

# Create working directories:
mkdir -p $OUTPUT          # place for the package to be saved
mkdir -p $TMP/tmp-$PRGNAM # location to build the source
mkdir -p $PKG             # place for the package to be built
rm -rf $PKG/*             # always erase old package's contents
rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log
                          # remove old log files

# Source file availability:
if ! [ -f ${SOURCE} ]; then
  echo "Source '$(basename ${SOURCE})' not available yet..."
  # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
  [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
  if [ -f ${SOURCE} ]; then echo "Ah, found it!"; continue; fi
  if ! [ "x${SRCURL}" == "x" ]; then
    echo "Will download file to $(dirname $SOURCE)"
    wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true
    if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
      echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
      mv -f "${SOURCE}" "${SOURCE}".FAIL
      exit 1
    fi
  else
    echo "File '$(basename ${SOURCE})' not available... aborting the build."
    exit 1
  fi
fi

if [ "$P1" == "--download" ]; then
  echo "Download complete."
  exit 0
fi

# --- PACKAGE BUILDING ---

echo "++"
echo "|| $PRGNAM-$VERSION"
echo "++"

# Explode the package framework:
if [ -f $SRCDIR/_$PRGNAM.tar.gz ]; then
  cd $PKG
  explodepkg $SRCDIR/_$PRGNAM.tar.gz
  cd -
fi

cd $TMP/tmp-$PRGNAM
echo "Extracting the source archive(s) for $PRGNAM..."
if $(file ${SOURCE} | grep -qi ": 7-zip"); then
  7za x ${SOURCE}
elif $(file ${SOURCE} | grep -qi ": zip"); then
  unzip ${SOURCE}
else
  tar -xvf ${SOURCE}
fi
cd ${PRGNAM}-${VERSION}
chown -R root:root .
chmod -R u+w,go+r-w,a+X-s .

echo Building ...
LDFLAGS="$SLKLDFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
CFLAGS="$SLKCFLAGS" \
./autogen.sh \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --localstatedir=/var \
  --sysconfdir=/etc \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --enable-shared \
  --disable-static \
  --program-prefix= \
  --program-suffix= \
  --build=$ARCH-slackware-linux \
   --enable-compile-warnings=no
  2>&1 || exit

make $NUMJOBS 2>&1 || exit
make DESTDIR=$PKG install 2>&1 || exit

# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION
find $PKG/usr/doc -type f -exec chmod 644 {} \;

# Compress the man page(s):
if [ -d $PKG/usr/man ]; then
  find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
  for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
fi

# Compress info pages and remove the package's dir file:
if [ -d $PKG/usr/info ]; then
  rm -f $PKG/usr/info/dir
  gzip -9f $PKG/usr/info/*.info*
  # If any info files are present, consider adding this to a doinst.sh:
  # chroot . install-info /usr/info/XXXXX.info.gz /usr/info/dir 2> /dev/null
fi

# Strip binaries (if any):
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
if [ -f $SRCDIR/doinst.sh ]; then
  cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
fi

# Build the package:
cd $PKG
makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
cd $OUTPUT
md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz}.md5
cd -
cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt

# Restore the original umask:
umask ${_UMASK_}
But when I do sh cinnamon.Slackbuild I see this output at the end

Code: Select all

tc/
etc/xdg/
etc/xdg/menus/
etc/xdg/menus/cinnamon-applications.menu
WARNING:  zero length file usr/lib/cinnamon-menu-editor/cme/__init__.py

Slackware package /tmp/Cinnamon-2.0.10-x86_64-1_rw.tgz created.

/tmp/build/package-Cinnamon
cinnamon.Slackbuild FAILED at line 230
Can you help me finding out why this happens.

Roelof

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: Cinnamon 2.x porting

Post#68 by brokenman » 05 Nov 2013, 21:48

First problem where I need your help
Really?
Can you help me finding out why this happens.

cinnamon.Slackbuild FAILED at line 230
Sure. Scroll down to this line and try to recreate the problem manually. In any case ... at line 230 your package has already been built and is waiting in /tmp. What's the problem?
How do i become super user?
Wear your underpants on the outside and put on a cape.

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#69 by roelof » 06 Nov 2013, 06:29

I did all these steps manually on the just created tarball

Code: Select all

# Build the package:
cd $PKG
makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
cd $OUTPUT
md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz}.md5
cd -
cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt

# Restore the original umask:
umask ${_UMASK_}
But then I do not see any error messages.
And like I said use the same slackbuild on every package of Cinnamon and only this one fails.

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#70 by roelof » 06 Nov 2013, 13:37

I have this as xinitrc.cinnamon

Code: Select all

unset DBUS_SESSION_BUS_ADDRESS
eval 'dbus-launch --exit-with-session --sh-syntax' 
exec /usr/bin/cklaunch-session cinnamon-session
But when I start up as a normal user (guest) I see this message

Code: Select all

could not acquire name on session bus
Any tips ?

Roelof

Edit 1: I cannot use the xinitrc of gnome because then nautilus is working and Cinnamon has Muffin for it.
I hope you can help me with this or else I have to stop and no cinnamon for porteus. I have asked the slackware people for help but no help.
Nobody wants Cinnamon.

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: Cinnamon 2.x porting

Post#71 by brokenman » 06 Nov 2013, 19:02

Give a man a fish.

You need to learn how to go about troubleshooting error messages.
How do i become super user?
Wear your underpants on the outside and put on a cape.

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#72 by roelof » 06 Nov 2013, 19:06

I did google a lot and most of the links said I need to unset the dbus adress.

But that is not working. I still see the error message.
I think the problem is that gnome is already dbus running.

Roelof

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: Cinnamon 2.x porting

Post#73 by brokenman » 06 Nov 2013, 20:17

I think the problem is that gnome is already dbus running.
So what have you done about this suspicion? I would boot into text mode and check the environment variables to see if it is already set. Also check the permissions on your new xinitrc.

Here is what came up for me.
http://www.starnet.com/xwin32kb/Could_n ... ession_bus
How do i become super user?
Wear your underpants on the outside and put on a cape.

roelof
Samurai
Samurai
Posts: 112
Joined: 06 Aug 2013, 15:32
Distribution: Porteus 2.1 Gnome
Location: Netherlands

Re: Cinnamon 2.x porting

Post#74 by roelof » 06 Nov 2013, 20:36

I have tried it see my xinitrc.cinnamon.
And when I do the unset rule with gnome-session.
Gnome starts up and cinnamon has still no menu.

Roelof

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: Cinnamon 2.x porting

Post#75 by brokenman » 06 Nov 2013, 22:18

Please upload your module somewhere so I can test it.
How do i become super user?
Wear your underpants on the outside and put on a cape.

Post Reply