This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Preparing to make packages for Slackware 12.2

Tags: None
(comma "," separated)
User avatar
Drumar
Registered Member
Posts
87
Karma
0
G'day!

Currently I am trying to build packages for Slackware 12.2 while using the most recent unstable branch (as of now 4.1.87) While expecting some troubles with the workings there (it is unstable after all) some points I had not expected.

The situation from where I started is as follows: a "clean" Slackware 12.2 installation with some bonus multimedia libraries and the 4.1.3 KDE packages from "testing". (KDE misses some functionality in this version that I personally would like and which seems to be in KDE 4.2, so not going to make new requests for that ;-) )

1) Everything (seemed to) compile well eventually. Some extra libraries (not many, I was positively surprised on that) were required, for which I made a package, installed and it seemed to go well.
2) after installing the packages (instead of the "/usr" prefix I used "/opt/kde4" as prefix, as I think it's more clean that way) and altering some scripts and configuration files (for expected locations on files) KDE would start nicely (on 1st looks). Yet a few things went quite bad after that.
2a) The caption bar was missing on all windows, so minimizing, maximizing, moving and closing the window was not possible. The menu-bar was there, so eventually i could close most programs.
2b) The taskbar (sorry, I keep forgetting the new names for every part... just too many names to remember which is actually which) kept crashing with SIGSEGV lots.
2c) Input (typing) in windows did not seem possible. Starting a terminal for example was possible, but not typing in it.

I'm pretty sure this is due some path settings, which I'll have to do in a configuring install script. Yet I have no real clue which parts might be missing and where it is configured. I thought I had covered all, but clearly I haven't.

Now on whether or not to use 4.1.87 (or 4.1.85 for that matter): it's a non-discussion. Right now I am just trying to prepare a packaging method for as soon as 4.2 comes out. As soon as I have done so, I will somehow share the build scripts (which will download the sources) or -if I find a place where I won't be killed by the used bandwidth- the packages themselves along with some instructions on how to install.

Anyway, any ideas on how and where to continue? (if you need a peek at the scripts for that, I'll happily share them)

** EDIT: added point 2c, somehow I forgot to mention that **

Last edited by Drumar on Sat Jan 10, 2009 11:54 am, edited 1 time in total.
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
The caption bar is powered by KWin ( which probably also gives focus to a window ) so that would fix 2a + 2c. 2b - probably fixed by updating to latest trunk, or setting some environment variable.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
User avatar
Drumar
Registered Member
Posts
87
Karma
0
Thanks, I'll try to figure out why kwin was not used then, as I had it installed along with the other packages.
As (re)compiling will take quite some time and still working on the configuration scripts it may be a few days before I can give an update on the results ;-)

In order to get a working system back I had to do a full rollback, so now also going to set a strategy to see if I can keep running with the current setup while building a new environment for testing without breaking so much ;-)
User avatar
Drumar
Registered Member
Posts
87
Karma
0
while recompiling (tried to step back to 4.1.85 but got errors during compile, and got no time to dive in the code. So went back to 4.1.87) my eye fell on output from cmake. It stated it could not find some libraries, most notably among them bzip2 and openGL. I have to admit, I'm new to cmake, so obviously I must've missed a parameter. These 2 libraries are quite important I'd say (they're listed as optional, so the build continues, but I doubt the performance (esp with missing OpenGL). To clear things up I'll post the script I use to build kdelibs. For those familiar with scripting it should be fairly easy to read, I hope... at least that's what I had in mind ;-):

Any clues for other parameters I could/should add to cmake?

Code: Select all
#!/bin/sh

#############################################################################
## Name: kdelibs                                                           ##
## Version: 4.1.87                                                         ##
## Packager: Michiel Lange (xxxxxxxx@gmail.com)                            ##
## Homepage: http://www.kde.org                                            ##
#############################################################################
## WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ##
##                                                                         ##
## THIS PACKAGE USES THE unstable TREE, THIS IS ONLY FOR THE IMPATIENT     ##
## AMONG US, DO NOT USE FOR PRODUCTION!!!!!!!!                             ##
#############################################################################

PKGNAME=kdelibs
VERSION=4.1.87
LOC="ftp://ftp.kde.org/pub/kde/unstable/${VERSION}/src/${PKGNAME}-${VERSION}.tar.bz2"
ARCH=`uname -m`
   
START=`pwd`
PKG=${START}/pkg
SRC=${START}/work
BIN=${START}/bin
CONFIG_OPTIONS="-Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/kde4 -DCMAKE_SYSCONF_DIR=/etc -DCMAKE_LOCAL_STATE_DIR=/var
 -DCMAKE_BUILD_TYPE=release"

build() {
        mkdir -p ${PKG} ${SRC} ${BIN}
        cd ${SRC}
   echo "Downloading ${PKGNAME}-${VERSION}"
        wget ${LOC}
   echo -n "Extracting"
        tar -jxf ${PKGNAME}-${VERSION}.tar.bz2 || exit 1
   echo "."
        cd ${PKGNAME}-${VERSION}
   echo "Compiling..."
   cd ${BIN}
        cmake ${SRC}/${PKGNAME}-${VERSION} -G "Unix Makefiles" ${CONFIG_OPTIONS} || exit 1

# No patches yet - Michiel
#        patch -p0  /dev/null
        find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d :
        | xargs strip --strip-unneeded 2> /dev/null
        find . | xargs file | grep "current ar archive" | cut -f 1 -d : |
        xargs strip --strip-debug 2> /dev/null
        chown -R root:root usr/bin
        gzip -p ${PKG}/usr/man/man*/*
#        mkdir ${PKG}/install
#        cp ${START}/slack-desc $PKG/install/slack-desc
   cp -R ${START}/etc ${PKG}
   cp -R ${START}/install ${PKG}
        cd ${PKG}
        makepkg -l y -c n ${START}/${PKGNAME}-${VERSION}-${ARCH}-1.tgz
}

cleanup(){
   echo -n "Cleaning up..."
   rm -rf ${WORK}/${PKGNAME}-${VERSION}/
   rm -rf ${BIN}/*
   echo
}   
build
package
cleanup
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Where are the development headers for OpenGL + bzip installed? If it is /usr/include, then there should be no problem. If for example they are under /usr/opengl/include, then you will need to set the enivronment variable CMAKE_PREFIX_PATH to the installation prefix for the affected package ( which would be /usr/opengl in this case )

Your CMake options look fine.

Last edited by bcooksley on Mon Jan 12, 2009 12:47 am, edited 1 time in total.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
robert
Registered Member
Posts
3
Karma
0
I also want to build KDE 4.2, but I will just be using the standard scripts from the Slackware 12.2 in testing. However I am not sure which dependencies need updating, so I would be very interested to see your scripts.
One thing I did notice is this line about cmake

At least version 2.6.2 of CMake is required now. With KDE 4.0 and 4.1 version 2.4.5 was required.
Robert
User avatar
Drumar
Registered Member
Posts
87
Karma
0
robert wrote:I also want to build KDE 4.2, but I will just be using the standard scripts from the Slackware 12.2 in testing. However I am not sure which dependencies need updating, so I would be very interested to see your scripts.
One thing I did notice is this line about cmake

At least version 2.6.2 of CMake is required now. With KDE 4.0 and 4.1 version 2.4.5 was required.
Robert

The "problem" I had with the Slackware 12.2 testing packages is that they install with the "/usr" directory as prefix. Good Slackware practice used to be /opt/kde or even /opt/kde4 as prefix. But that's beside the point, everyone his own good practices ;-)

I made all the scripts pretty much as above, where the order in which they are compiled matters much. On the package browser you can see which dependencies were taken: http://packages.slackware.it/browse.php ... /kde4/deps

I know boost (www.boost.org) is an important dependency as well as akonadi, soprano, eigen2 and a few more, or your build will fail. I made life a bit more simple for myself and checked out the "support" branch from SVN and compiled that one 1st. After that I started with kdelibs then kdepimlibs. After that a more-or-less simultaneous build of all the other packages, with an exception for kdeplasma-addons, which failed to build without at least kdebase-runtime and kdebase-workspace.

I'm working on my install scripts atm, as one of my packages is not building due "missing" one of the libraries. (it is compiled, gets recognized but the "-l" flag for linking seems to fail. I redid some of the install scripts that came from the packages, so I think the numbering of some libraries (e.g. libfoolib.so.6 instead of libfoolib.so.7, I noticed some broken links here and there, so that's probably the issue. I haven't had much spare time to redo the new build.

As you may have noticed I don't have my scripts over here at the moment, I'll give some more explicit information when I get home and a chance to upload them. Till then, you'll have to do with this mail ;-)
User avatar
Drumar
Registered Member
Posts
87
Karma
0
Ok here goes the more elaborate answer, it can get a bit lengthy... I have that today...

First of all the package kdesupport:
The tarball contains the following subdirs in the dir kdesupport-4.1.87, gotten via svn: admin, akode, akonadi, automoc, cpptoxml, decibel, eigen2, emerge, kdewin-installer, kdewin32, phonon, qca, qimageblitz, soprano, strigi, taglib, tapioca, tapioca-qt, telepathy-eq, twine

Here's the build script kdesupport.Slackbuild (the tarball is kept safe here :p):
Code: Select all
#!/bin/sh

#############################################################################
## Name: kdesupport                                                        ##
## Version: 4.1.87                                                         ##
## Packager: Michiel Lange (xxxxxxxx@gmail.com)                            ##
## Homepage: http://www.kde.org                                            ##
#############################################################################
## WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ##
##                                                                         ##
## THIS PACKAGE USES THE unstable TREE, THIS IS ONLY FOR THE IMPATIENT     ##
## AMONG US, DO NOT USE FOR PRODUCTION!!!!!!!!                             ##
#############################################################################
PKGNAME=kdesupport
VERSION=4.1.87
ARCH=`uname -m`
   
START=`pwd`
PKG=${START}/pkg
SRC=${START}/work
BIN=${START}/bin
CONFIG_OPTIONS="-Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/kde4 -DCMAKE_SYSCONF_DIR=/etc -DCMAKE_LOCAL_STATE_DIR=/var
 -DCMAKE_BUILD_TYPE=release"

build() {
        mkdir -p ${PKG} ${SRC} ${BIN}
        cd ${SRC}
   cp ../${PKGNAME}-${VERSION}.tar.bz2 ./
   echo -n "Extracting"
        tar -jxf ${PKGNAME}-${VERSION}.tar.bz2 || exit 1
   echo "."
        cd ${PKGNAME}-${VERSION}
   echo "Compiling..."
   cd ${BIN}
        cmake ${SRC}/${PKGNAME}-${VERSION} -G "Unix Makefiles" ${CONFIG_OPTIONS} || exit 1

# No patches yet - Michiel
#        patch -p0  /dev/null
        find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d :
        | xargs strip --strip-unneeded 2> /dev/null
        find . | xargs file | grep "current ar archive" | cut -f 1 -d : |
        xargs strip --strip-debug 2> /dev/null
        chown -R root:root usr/bin
        gzip -p ${PKG}/usr/man/man*/*
        mkdir ${PKG}/install
        cp ${START}/install/* ${PKG}/install/
        cd ${PKG}
        makepkg -l y -c n ${START}/${PKGNAME}-${VERSION}-${ARCH}-1.tgz
}

cleanup(){
   echo -n "Cleaning up..."
   rm -rf ${WORK}/${PKGNAME}-${VERSION}/
   rm -rf ${BIN}/*
   echo
}   
build
package
cleanup


Next is kdelibs.Slackbuild:
Code: Select all
#!/bin/sh

#############################################################################
## Name: kdesupport                                                        ##
## Version: 4.1.87                                                         ##
## Packager: Michiel Lange (xxxxxxxx@gmail.com)                            ##
## Homepage: http://www.kde.org                                            ##
#############################################################################
## WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ##
##                                                                         ##
## THIS PACKAGE USES THE unstable TREE, THIS IS ONLY FOR THE IMPATIENT     ##
## AMONG US, DO NOT USE FOR PRODUCTION!!!!!!!!                             ##
#############################################################################
PKGNAME=kdesupport
VERSION=4.1.87
LOC="ftp://ftp.kde.org/pub/kde/unstable/${VERSION}/src/${PKGNAME}-${VERSION}.tar.bz2"
ARCH=`uname -m`
   
START=`pwd`
PKG=${START}/pkg
SRC=${START}/work
BIN=${START}/bin
CONFIG_OPTIONS="-Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/kde4 -DCMAKE_SYSCONF_DIR=/etc -DCMAKE_LOCAL_STATE_DIR=/var
 -DCMAKE_BUILD_TYPE=release"

build() {
        mkdir -p ${PKG} ${SRC} ${BIN}
        cd ${SRC}
   echo "Downloading ${PKGNAME}-${VERSION}"
        wget ${LOC}
   cp ../${PKGNAME}-${VERSION}.tar.bz2 ./
   echo -n "Extracting"
        tar -jxf ${PKGNAME}-${VERSION}.tar.bz2 || exit 1
   echo "."
        cd ${PKGNAME}-${VERSION}
   echo "Compiling..."
   cd ${BIN}
        cmake ${SRC}/${PKGNAME}-${VERSION} -G "Unix Makefiles" ${CONFIG_OPTIONS} || exit 1

# No patches yet - Michiel
#        patch -p0  /dev/null
        find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d :
        | xargs strip --strip-unneeded 2> /dev/null
        find . | xargs file | grep "current ar archive" | cut -f 1 -d : |
        xargs strip --strip-debug 2> /dev/null
        chown -R root:root usr/bin
        gzip -p ${PKG}/usr/man/man*/*
        mkdir ${PKG}/install
        cp ${START}/install/* ${PKG}/install/
        cd ${PKG}
        makepkg -l y -c n ${START}/${PKGNAME}-${VERSION}-${ARCH}-1.tgz
}

cleanup(){
   echo -n "Cleaning up..."
   rm -rf ${WORK}/${PKGNAME}-${VERSION}/
   rm -rf ${BIN}/*
   echo
}   
build
package
cleanup


then kdepimlibs.Slackbuild:
Code: Select all
#!/bin/sh

#############################################################################
## Name: kdelibs                                                           ##
## Version: 4.1.87                                                         ##
## Packager: Michiel Lange (xxxxxxxx@gmail.com)                            ##
## Homepage: http://www.kde.org                                            ##
#############################################################################
## WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ##
##                                                                         ##
## THIS PACKAGE USES THE unstable TREE, THIS IS ONLY FOR THE IMPATIENT     ##
## AMONG US, DO NOT USE FOR PRODUCTION!!!!!!!!                             ##
#############################################################################
PKGNAME=kdepimlibs
VERSION=4.1.87
LOC="ftp://ftp.kde.org/pub/kde/unstable/${VERSION}/src/${PKGNAME}-${VERSION}.tar.bz2"
ARCH=`uname -m`
   
START=`pwd`
PKG=${START}/pkg
SRC=${START}/work
BIN=${START}/bin
CONFIG_OPTIONS="-Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/kde4 -DCMAKE_SYSCONF_DIR=/etc -DCMAKE_LOCAL_STATE_DIR=/var
 -DCMAKE_BUILD_TYPE=release"

build() {
        mkdir -p ${PKG} ${SRC} ${BIN}
        cd ${SRC}
   echo "Downloading ${PKGNAME}-${VERSION}"
        wget ${LOC}
   echo -n "Extracting"
        tar -jxf ${PKGNAME}-${VERSION}.tar.bz2 || exit 1
   echo "."
        cd ${PKGNAME}-${VERSION}
   echo "Compiling..."
   cd ${BIN}
        cmake ${SRC}/${PKGNAME}-${VERSION} -G "Unix Makefiles" ${CONFIG_OPTIONS} || exit 1

# No patches yet - Michiel
#        patch -p0  /dev/null
        find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d :
        | xargs strip --strip-unneeded 2> /dev/null
        find . | xargs file | grep "current ar archive" | cut -f 1 -d : |
        xargs strip --strip-debug 2> /dev/null
        chown -R root:root usr/bin
        gzip -p ${PKG}/usr/man/man*/*
        mkdir ${PKG}/install
        cp ${START}/slack-desc $PKG/install/slack-desc
        cd ${PKG}
        makepkg -l y -c n ${START}/${PKGNAME}-${VERSION}-${ARCH}-1.tgz
}

cleanup(){
   echo -n "Cleaning up..."
   rm -rf ${WORK}/${PKGNAME}-${VERSION}/
   rm -rf ${BIN}/*
   echo
}   
build
package
cleanup

By now I think you get the drift, I download each part and build this way, quite positively sure that you'll have to end with kdeplasma-addons. If you want a look at the other scripts, I'm not ashamed to share them, however I think the post gets really lenghty ;-) Besides, I'm a lazy man and I used the same script each time only changed some variables. Be aware that you'll have to work on your install scripts (and slack-desc files to finish things up)

Additionally, since I use the same script each time, I copy in files that don't exist. During the build I get error messages about those... they can be safely ignored.

Hope this answers your question, please let me know.

Last edited by Drumar on Tue Jan 20, 2009 11:39 pm, edited 1 time in total.
User avatar
Drumar
Registered Member
Posts
87
Karma
0
Apologies for the double, I know I can edit my post, but this I see as a quite important part:
- newest version in the unstable branch is 4.1.96
- there seem to be new source tarballs added to the list, compared to 4.1.87. Among which phonon which you'll need to install prior to anything I think
- phonon is now delivered as a separate package; the version number is 4.2.96
robert
Registered Member
Posts
3
Karma
0
Drumar wrote:Apologies for the double, I know I can edit my post, but this I see as a quite important part:
- newest version in the unstable branch is 4.1.96
- there seem to be new source tarballs added to the list, compared to 4.1.87. Among which phonon which you'll need to install prior to anything I think
- phonon is now delivered as a separate package; the version number is 4.2.96


Hi, thanks a lot, your build scripts are clear enough, and give me a good cross-reference to the slackware build scripts in testing (btw, these have been recently updated to kde-4.1.96)
One thing that is not clear to me is where to obtain kdesupport-4.1.87 (or kdesupport-4.1.96 for that matter).
I can only see
http://websvn.kde.org/tags/kdesupport-for-4.2/
so I will try that.
Robert
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
The Tag kdesupport-for-4.2 is correct.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]


Bookmarks



Who is online

Registered users: Bing [Bot], claydoh, Google [Bot], rblackwell