Page 3 of 8

Re: Cinnamon 2.x porting

Posted: 29 Oct 2013, 18:12
by roelof
second question :

How can I do this in porteus :

Code: Select all

%install
install -m 0755 -d $RPM_BUILD_ROOT%{_datadir}/cinnamon/locale/ 
cp -Rp mo-export/* $RPM_BUILD_ROOT%{_datadir}/cinnamon/locale/
I tried to make a module of cinnamon-translations.

Roelof

Re: Cinnamon 2.x porting

Posted: 29 Oct 2013, 22:50
by wread
@Roleof
That remains me of a film where the pilots were dead and an experienced pilot on earth had to train sombody on board of the plane to get it landed....

I bet brokenman has it up and running meanwhile...(It is not your project anymore, it is Jays and yours) 8)

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 06:17
by roelof
@wread

That is not my own project anymore it's no problem.
I''m not a totally inexperienced user for this work. I did this for a few other distro's.

The only thing I have to learn is what is the porteus way of doing this.
So how can I solve the above problem with install and do the developers of porteus find the error message a problem or not.

Roelof

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 08:17
by roelof
hello,

Another problem where I need advise how to it the porteus way.

Cinnamon does install the .pc files into /usr/lib/pkgconfig directory.
But according to the config.log Porteus uses one of these directories : PKG_CONFIG_PATH='/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib64/pkgconfig'

Is it the right way to make a patch s Cinnamon also uses one of these directories and if so, which can I use the best ?

Roelof

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 12:17
by brokenman
Yes porteus uses /usr/lib64/pkgconfig or /usr/lib/pkgconfig. If the build scripts are not using this path (they should include it) then a patch is necessary.

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 12:48
by roelof
Oke, then I have to patch a lot of Cinnanon files so back to the beginning :(

Do I also have to make Slackbuilds files or can I place the modules when Cinnamon is ready on for example github.
And can you help me with how to install cinnamon-translations and say if the glib-schemas error message is a problem which need to be solved.

Roelof

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 15:08
by roelof
I made my first Slackbuild and it looks like this :

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

# Slackware build script for gnome-common

# Written by rwobben@hotmail.com

# Based on http://slackbuilds.org/template.SlackBuild

PRGNAM=gnome-common	# replace with name of program
VERSION=${VERSION:-3.10.0}
BUILD=${BUILD:-1}

# 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

CWD=$(pwd)
PKG=$TMP/$PRGNAM-$VERSION
TMP=${TMP:-/tmp/$PKG}
OUTPUT=${OUTPUT:-/tmp}	# Drop the package in /tmp

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -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.

echo " Downloading the package"
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
rm -rf /tmp/$PRGNAM-$VERSION
wget http://ftp.acc.umu.se/pub/GNOME/sources/gnome-common/3.10/$PRGNAM-$VERSION.tar.xz
tar xvf $PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
chown -R root:root .
find . \
 \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
 -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
 -exec chmod 644 {} \;

# Your application will probably need different configure flags;
# these are provided as an example only.
# Be sure to build only shared libraries unless there's some need for
# static.
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
sh autogen.sh --prefix=/usr/

# Compile the application and install it into the $PKG directory
make
make install-strip DESTDIR=$TMP || make install DESTDIR=$TMP

# 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:
echo "Now we are stripping the package"
pushd $TMP
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null


# Make the package; be sure to leave it in $OUTPUT
# If package symlinks need to be created during install *before*
# your custom contents of doinst.sh runs, then add the -p switch to
# the makepkg command below -- see makepkg(8) for details
echo "Now we are making the module"
echo 
popd
dir2xzm $TMP $PKG.xzm
But it seems that the module making never works. The last output is "now we are stripping the package"

Can anyone tell me what I did wrong ?

Roelof

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 15:30
by brokenman
Firstly, a slackbuild should produce a slackware package. All slackbuilds make a package using: makepkg which creates some important files such as /var/log/packages/gnome-common*

You should create a slackware package (there is probably already a slackbuild written for this) then convert the package into a porteus module.

I see in your code that you: pushd $TMP and then try to create a module from the directory that you are in. You should exit the directory first.This may be your problem.

For the record I just spent 30 minutes compiling cinnamon in gnome-3.8 and mostly it goes well. A few packages missing but no major errors. I've already said it but I want to say it again ... compiling cinnamon against mate is a bad idea. What will you do when cinnamon requires a gnome dependency (like libgnomekbd) and this doesn't exist in mate because they have changed all the libraries to things like libmatekbd? You'll learn a lot about how to compile stuff but I think there are easier ways.

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 15:37
by roelof
oke,

So I have to make a pbuild file then ?
If I made a pbuild how can I check if im on a i586 or a x86_64 machine ?
And can I change my mate into a gnome-enviroment without any problems by downloading the gnome-3.8 module and deactivate the mate desktop-module.
Are you building cinnamon-2.x or cinnamon 1.8.8.1 ?

Roelof

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 16:04
by brokenman
So I have to make a pbuild file then ?
As I said you should make a slackware package and then convert it into a porteus module. txz2xzm package.txz module.xzm
You can script this and call it a pBuild if you want.
If I made a pbuild how can I check if im on a i586 or a x86_64 machine ?

Code: Select all

[ `uname -m|grep 64` ]  && arch=x86_64 || arch=i486
And can I change my mate into a gnome-enviroment without any problems by downloading the gnome-3.8 module and deactivate the mate desktop-module.
No. There is no gnome-3.8 module. I've made an ISO which has core packages updated. You can get it here and then open the 'bundles' program and download the devpack. You will also need to recompile: fontconfig, cjs and some others as slackbuilds usually remove the .la files.

I compiled the latest git packages. It isn't running yet. cinnamon-settings-something complains about not having libgnomekbdui which I am working on. Everything else compiles.

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 16:58
by roelof
pity,

I begin this to learn to become a good module maker so maybe later I could become the maintainer of Cinnamon.

Roelof

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 17:56
by brokenman
Carry on. You will certainly learn a lot about compiling by doing this. I am here to answer any questions you may have and try to help make it a little easier. You could probably compile this and get it working with mate, but it is not going to be 'a walk in the park' because of how mate changes the libraries, and that cinnamon on git probably requires later versions of some packages. You can always install those. For example I think you will need libgnomekbd because mate ships libmatekbd which cinnamon is not going to look for.

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 18:01
by roelof
Oke,

I will carry on.
Can you answer then my questions about the errors with glib-schemas and how can I make a module about cinnamon-translations.

If I understand you right I have to make a slackbuild make it with makepkg and then convert it into a module ?
Does makepkg work on porteus ?

Roelof

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 20:08
by brokenman
Don't worry about the schema deprecated output just yet. You should focus on getting cinnamon running. This won't effect the functionality.
Don't worry about translations until you get cinnamon running. If it doesn't run, there is no use for translations.
If I understand you right I have to make a slackbuild make it with makepkg and then convert it into a module ?
Yes. Look in any existing slackbuild.
makepkg -l y -c n /tmp/mypackage-1.2.3-x86_64-1.txz

I recommend searching for and cloning phantomx slackbuilds. These will contain many of the required packages.

Re: Cinnamon 2.x porting

Posted: 30 Oct 2013, 21:04
by roelof
Thanks for the tip.

Roelof