summaryrefslogtreecommitdiffstats
path: root/lxqt
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2017-06-26 13:37:22 +0000
committer Eric Hameleers <alien@slackware.com>2017-06-26 13:37:22 +0000
commitf7302c671bb8dddadbe870e0e8f5f107d8650e75 (patch)
tree84aceb8c5610279484c5fd445eaced63a59aeebd /lxqt
parent6997606e4340232bd11c112733d1ca22a06c6d41 (diff)
downloadasb-f7302c671bb8dddadbe870e0e8f5f107d8650e75.tar.gz
asb-f7302c671bb8dddadbe870e0e8f5f107d8650e75.tar.xz
Initial revision
Diffstat (limited to 'lxqt')
-rw-r--r--lxqt/build/DOWNLOAD.sh77
-rw-r--r--lxqt/build/README.Slackware126
-rwxr-xr-xlxqt/build/lxqt.SlackBuild575
-rw-r--r--lxqt/build/lxqt.options60
-rw-r--r--lxqt/build/modularize66
-rw-r--r--lxqt/build/noarch7
-rw-r--r--lxqt/build/nomake0
-rw-r--r--lxqt/build/package-blacklist5
8 files changed, 916 insertions, 0 deletions
diff --git a/lxqt/build/DOWNLOAD.sh b/lxqt/build/DOWNLOAD.sh
new file mode 100644
index 00000000..0b448be9
--- /dev/null
+++ b/lxqt/build/DOWNLOAD.sh
@@ -0,0 +1,77 @@
+#
+# http://wiki.lxde.org/en/Build_LXQt_From_Source
+#
+
+LXQT=0.11.0
+
+# base
+DL_BASE=(
+ https://downloads.lxqt.org/libfm-qt/0.11.1/libfm-qt-0.11.1.tar.xz
+ https://downloads.lxqt.org/obconf-qt/0.11.0/obconf-qt-0.11.0.tar.xz
+ https://downloads.lxqt.org/lximage-qt/0.5.0/lximage-qt-0.5.0.tar.xz
+ https://downloads.lxqt.org/libqtxdg/2.0.0/libqtxdg-2.0.0.tar.xz
+ https://downloads.lxqt.org/libsysstat/0.3.2/libsysstat-0.3.2.tar.xz
+ https://downloads.sourceforge.net/pcmanfm/libfm-1.2.4.tar.xz
+ https://downloads.sourceforge.net/lxde/menu-cache-1.0.2.tar.xz
+ https://downloads.sourceforge.net/lxde/lxmenu-data-0.1.5.tar.xz
+)
+
+# lxqt
+DL_LXQT=(
+ https://downloads.lxqt.org/lxqt/${LXQT}/liblxqt-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-about-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-admin-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-common-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-config-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-globalkeys-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-notificationd-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-openssh-askpass-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-panel-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-policykit-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-powermanagement-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-qtplugin-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-runner-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-session-${LXQT}.tar.xz
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-sudo-${LXQT}.tar.xz
+ https://downloads.lxqt.org/pcmanfm-qt/0.11.1/pcmanfm-qt-0.11.1.tar.xz
+)
+
+# extra
+# See http://git.lxde.org/gitweb/?a=project_list;pf=lxde
+# Deprecated:
+#https://github.com/zjes/lxqt-appswitcher/archive/master.zip
+DL_EXTRA=(
+ https://downloads.lxqt.org/compton-conf/0.2.0/compton-conf-0.2.0.tar.xz
+ https://downloads.lxqt.org/pavucontrol-qt/0.1.0/pavucontrol-qt-0.1.0.tar.xz
+ https://downloads.lxqt.org/qtermwidget/0.7.0/qtermwidget-0.7.0.tar.xz
+ https://downloads.lxqt.org/qterminal/0.7.0/qterminal-0.7.0.tar.xz
+ https://github.com/hyperrealm/libconfig/archive/v1.6.tar.gz
+)
+
+#l10n
+DL_L10N=(
+ https://downloads.lxqt.org/lxqt/${LXQT}/lxqt-l10n-${LXQT}.tar.xz
+)
+
+cd $(dirname $0)
+mkdir -p src/{base,lxqt,extra,l10n}
+cd src/base
+ for DLURL in ${DL_BASE[*]} ; do
+ wget -nv -T 20 --no-clobber --content-disposition $DLURL
+ done
+cd - 1>/dev/null
+cd src/lxqt
+ for DLURL in ${DL_LXQT[*]} ; do
+ wget -nv -T 20 --no-clobber --content-disposition $DLURL
+ done
+cd - 1>/dev/null
+cd src/extra
+ for DLURL in ${DL_EXTRA[*]} ; do
+ wget -nv -T 20 --no-clobber --content-disposition $DLURL
+ done
+cd - 1>/dev/null
+cd src/l10n
+ for DLURL in ${DL_L10N[*]} ; do
+ wget -nv -T 20 --no-clobber --content-disposition $DLURL
+ done
+cd - 1>/dev/null
diff --git a/lxqt/build/README.Slackware b/lxqt/build/README.Slackware
new file mode 100644
index 00000000..19a212ae
--- /dev/null
+++ b/lxqt/build/README.Slackware
@@ -0,0 +1,126 @@
+LXQT On Slackware
+=================
+
+If you want to install and use LXQT on Slackware, you need more than just
+the packages in the lxqt package directory for Slackware 14.2 or -current.
+All of the below are also required if you want to compile LXQT yourself.
+
+Openbox
+-------
+
+LXQT needs a Window Manager, it does not have one itself. LXQT will offer
+you a choice of fvwm2, xfwm4, fluxbox on its first start but you can also
+install openbox. If you do prefer openbox, get these two packages from my
+'slackbuilds' repository,
+http://bear.alienbase.nl/mirrors/people/alien/slackbuilds/ :
+
+obconf
+openbox
+
+Dependencies
+------------
+
+Openbox is a dependency for compiling obconf-qt but if you are not interested
+in using openbox you can skip installing openbox and compiling obconf-qt.
+
+The real mandatory dependencies are related to Qt5 and the KDE Frameworks,
+upon which LXQT was built.
+Therefore the following packages should be obtained from my 'ktown'repository,
+http://bear.alienbase.nl/mirrors/alien-kde/ below the directory specific to
+your Slackware release and architecture.
+More specifically from its subdirectories 'deps', 'kde/frameworks',
+'kde/plasma' and 'kde/plasma-extra':
+
+# deps:
+libdbusmenu-qt5
+libinput
+libxkbcommon
+polkit-qt5-1
+qt5
+qt5-webkit
+wayland
+
+# kde/frameworks:
+attica-framework
+baloo5
+bluez-qt
+breeze-icons
+extra-cmake-modules
+frameworkintegration
+kactivities-framework
+kactivities-stats
+kapidox
+karchive
+kauth
+kbookmarks
+kcmutils
+kcodecs
+kcompletion
+kconfig
+kconfigwidgets
+kcoreaddons
+kcrash
+kdbusaddons
+kdeclarative
+kded
+kdelibs4support
+kdesignerplugin
+kdesu
+kdewebkit
+kdnssd
+kdoctools
+kemoticons
+kfilemetadata5
+kglobalaccel
+kguiaddons
+khtml
+ki18n
+kiconthemes
+kidletime
+kimageformats
+kinit
+kio
+kitemmodels
+kitemviews
+kjobwidgets
+kjs
+kjsembed
+kmediaplayer
+knewstuff
+knotifications
+knotifyconfig
+kpackage
+kparts
+kpeople
+kplotting
+kpty
+kross
+krunner
+kservice
+ktexteditor
+ktextwidgets
+kunitconversion
+kwallet
+kwidgetsaddons
+kwindowsystem
+kxmlgui
+kxmlrpcclient
+modemmanager-qt
+networkmanager-qt
+oxygen-icons5
+plasma-framework
+solid
+sonnet
+threadweaver
+
+# plasma:
+libkscreen2
+
+# plasma-extra:
+sddm-qt5
+
+Finally, you need the following packages from my main slackbuilds repository
+at http://bear.alienbase.nl/mirrors/people/alien/slackbuilds/ :
+
+libstatgrab
+muparser
diff --git a/lxqt/build/lxqt.SlackBuild b/lxqt/build/lxqt.SlackBuild
new file mode 100755
index 00000000..e965c72c
--- /dev/null
+++ b/lxqt/build/lxqt.SlackBuild
@@ -0,0 +1,575 @@
+#!/bin/sh
+# Copyright 2014 Eric Hameleers, Eindhoven, NL
+# 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.
+
+# Adapted by Eric Hameleers <alien@slackware.com> from the modular KDE build.
+
+# To build only a single package group, specify it as $1, like:
+# ./lxqt.SlackBuild base
+# To build only a single package, specify both the group name
+# and the name of the package, like:
+# ./lxqt.SlackBuild base:menu-cache
+# ./lxqt.SlackBuild lxqt:pcmanfm,lxqt-session
+
+CLEANUP=${CLEANUP:-"yes"} # clean up build directory after successful build.
+PRECHECK=${PRECHECK:-"no"} # don't let the script check the available sources.
+CHECKOUT=${CHECKOUT:-"no"} # don't let the script checkout missing sources.
+
+LXQTGITURI="https://github.com/lxde/lxde-qt"
+
+pkgbase() {
+ PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
+ case $PKGEXT in
+ 'gz' )
+ PKGRETURN=$(basename $1 .tar.gz)
+ ;;
+ 'bz2' )
+ PKGRETURN=$(basename $1 .tar.bz2)
+ ;;
+ 'lzma' )
+ PKGRETURN=$(basename $1 .tar.lzma)
+ ;;
+ 'xz' )
+ PKGRETURN=$(basename $1 .tar.xz)
+ ;;
+ *)
+ PKGRETURN=$(basename $1)
+ ;;
+ esac
+ echo $PKGRETURN
+}
+
+# Set initial variables:
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+
+# Set up a few useful functions:
+
+extract_archive() {
+ # Find the archive first:
+ local src_archive=$(find $CWD/src -name ${1})
+ if [ $(tar -tf $src_archive | grep -o '^[^/]\+' | sort -u | wc -l) -eq 1 ];
+ then
+ # Archive contains one toplevel directory, good. Make sure that
+ # this directory ends up as '$(pkgbase $1)':
+ tar -xf $src_archive || return 1
+ local topdir="$(tar -tf $src_archive |grep -o '^[^/]\+' |sort -u)"
+ if [ "${topdir}" != "$(pkgbase $1)" ]; then
+ mv ${topdir} $(pkgbase $1)
+ fi
+ else
+ # No toplevel directory found, so we create one first:
+ mkdir -p $(pkgbase $1)
+ tar -C $(pkgbase $1) -xf $src_archive || return 1
+ fi
+}
+
+fix_perms() {
+ target_dir=$1
+ [ -z "$target_dir" ] && target_dir='.'
+
+ chown -R root:root $target_dir
+ find $target_dir \
+ \( -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 {} \;
+}
+
+strip_binaries() {
+ target_dir=$1
+ [ -z "$target_dir" ] && target_dir='.'
+
+ find $target_dir | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find $target_dir | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find $target_dir | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null
+}
+
+process_man_pages() {
+ # Compress and if needed symlink the man pages:
+ if [ -d usr/man ]; then
+ ( cd usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+ fi
+}
+
+process_info_pages() {
+ # Compress info pages and purge "dir" file from the package:
+ if [ -d usr/info ]; then
+ ( cd usr/info
+ rm -f dir
+ gzip -9 *
+ )
+ fi
+}
+
+no_usr_share_doc() {
+ # If there are docs, move them:
+ if [ -d usr/share/doc ]; then
+ mkdir -p usr/doc
+ mv usr/share/doc/* usr/doc
+ rmdir usr/share/doc
+ fi
+}
+
+precheck() {
+ # See if the sources we have match the module components we want to build:
+ RETVAL=0
+
+ for SRCFILE in $(find $CWD/src -name "*.tar.?z*" |grep -vE ".asc$|.sig$") ; do
+ # Check if the source tarball is mentioned in pkgsrc/
+ # meaning its package will get a different name:
+ PKGSRC=$(echo $SRCFILE |rev |cut -f2- -d- |cut -f1,2 -d/ |rev)
+ PKGBASE=$(basename $(grep -lw $PKGSRC $CWD/pkgsrc/*) 2>/dev/null)
+ if [ -z "$PKGBASE" ]; then
+ PKGBASE=$(echo $(basename $SRCFILE) |rev |cut -f2- -d- |rev)
+ fi
+ # We now have the package base name and we can start looking:
+ PKGTGT=$(grep -w ${PKGBASE}$ modules/*)
+ if [ -n "$(echo $PKGTGT |cut -d: -f2- |grep "^ *#")" ]; then
+ echo "Source file '$(basename $SRCFILE)' is commented out: ($PKGTGT) !"
+ elif cat package-blacklist |grep -v "^ *#" |grep -wq ${PKGBASE}$ ; then
+ echo "Source file '$(basename $SRCFILE)' is on the package-blacklist ($PKGBASE) !"
+ elif ! cat modules/* |grep -v "^ *#" |grep -wq ${PKGBASE}$ ; then
+ echo "Source file '$(basename $SRCFILE)' is not mentioned in 'modules' ($PKGBASE) !"
+ RETVAL=1
+ fi
+ done
+
+ # Do we have duplicate package names?
+ PKGDUP="$(cat $CWD/modules/* |grep -v "^ *#" |grep -v "^$" |sort |uniq -d)"
+ if [ -n "$PKGDUP" ] ; then
+ echo "Multiply-defined package names: '$(echo $PKGDUP)'"
+ RETVAL=1
+ fi
+ unset PKGDUP
+
+ # Any source not being built modular (i.e. forgotten to add to modularize)?
+ for PSRC in $(cat modules/* | grep -v "^ *#" | grep -v "^$"); do
+ if ! grep -wq "^${PSRC}$" modularize ; then
+ echo "Not built modular: $PSRC"
+ RETVAL=1
+ fi
+ done
+ unset PSRC
+
+ for MODULE in $(cat $CWD/modules/* | grep -v "^ *#") ; do
+ # First find out if the pkg source is different from the actual pkg name:
+ if [ -f $CWD/pkgsrc/$MODULE ]; then
+ MODBASE=$(basename $(cat $CWD/pkgsrc/$MODULE))
+ MODLOC=$(dirname $(cat $CWD/pkgsrc/$MODULE))/
+ else
+ MODBASE=$MODULE
+ MODLOC=""
+ fi
+ MODSRC="$(find $CWD/src/$MODLOC -name $MODBASE-*.tar.* |grep -vE ".asc$|.sig$" |grep -E "$MODBASE-[^-]+.tar.*$|$MODBASE-[0-9].+.tar.*$")"
+ if [ -z "$MODSRC" ] ; then
+ echo "Module '$MODULE' does not have a matching source tarball ($MODLOC$MODBASE)!"
+ if [ "$CHECKOUT" = "yes" -o "$CHECKOUT" = "YES" ]; then
+ echo "Checking out LXQT component at branch '$VERSION'."
+ git archive --format=tar --prefix {$MODULE}-${VERSION}/ --remote ${LXQTGITURI}/${MODULE}.git v${VERSION} | xz -c > $CWD/src/${MODULE}-${VERSION}.tar.xz
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ echo "Error while checking out '$MODULE' !"
+ mv $CWD/src/${MODULE}-${VERSION}.tar.xz $CWD/src/${MODULE}-${VERSION}.tar.xz.failed
+ fi
+ else
+ RETVAL=1
+ fi
+ fi
+ # A missing slack-desc counts as fatal even if the program may end up
+ # inside the big meta-package.
+ if [ -z "$(find $CWD/slack-desc -name ${MODULE})" ] ; then
+ echo "Module '$MODULE' does not have a slack-desc file !"
+ RETVAL=1
+ fi
+ done
+
+ if [ $RETVAL -eq 0 ]; then
+ echo "Check complete, build starts in 5 seconds"
+ sleep 5
+ else
+ exit 1
+ fi
+}
+
+# Support function builds one complete module (like 'lxqt'), or
+# exactly one package which is part of a module (like 'pcmanfm'):
+build_mod_pkg () {
+ lxqt_module=$1
+ lxqt_pkg=$2
+
+ cd $CWD/modules
+
+ # See if $lxqt_module is a module name like "base":
+ if [ ! -z "$lxqt_module" ]; then
+ if [ ! -f "$lxqt_module" ]; then
+ return
+ fi
+ fi
+ PKG=${SLACK_LXQT_BUILD_DIR}/${lxqt_module}/package-${lxqt_module}
+ rm -rf $PKG
+ mkdir -p $PKG
+ ( for PKGNAME in $(cat $lxqt_module |grep -v "^$" |grep -v "^ *#") ; do
+ if grep -wq "^${PKGNAME}$" ${CWD}/package-blacklist ; then
+ continue
+ fi
+ # Find the full source filename - yeah ugly, but I had two goals:
+ # 1- source tarball can be in a random subdirectory of src/
+ # 2- differentiate between e.g. 'lxqt-config' and 'lxqt-config-randr'
+ if [ -f $CWD/pkgsrc/$PKGNAME ]; then
+ PKGSRC=$(basename $(cat $CWD/pkgsrc/$PKGNAME))
+ PKGLOC=$(dirname $(cat $CWD/pkgsrc/$PKGNAME))
+ else
+ PKGSRC=$PKGNAME
+ PKGLOC=""
+ fi
+ lxqt_src=$(basename $(find $CWD/src/$PKGLOC -name "$PKGSRC-*.tar.?z*" |grep -vE ".asc$|.sig$" |grep -E "$PKGSRC-[^-]+.tar.*$|$PKGSRC-[0-9].+.tar.*$") 2>/dev/null)
+ if [ "x$lxqt_src" = "x" ]; then
+ echo "** Did not find '$PKGSRC' in src"
+ continue
+ fi
+ # Reset $PKGARCH to its initial value:
+ PKGARCH=$ARCH
+ # Perhaps $PKGARCH should be something different:
+ if grep -wq "^${PKGNAME}$" ${CWD}/noarch ; then
+ PKGARCH=noarch
+ fi
+ cd $SLACK_LXQT_BUILD_DIR/${lxqt_module}
+ # If $lxqt_pkg is set, we only want to build one package:
+ if [ ! -z "$lxqt_pkg" ]; then
+ if [ "$lxqt_pkg" = "$PKGNAME" ]; then
+ # Set $PKG to a private dir for the modular package build:
+ PKG=$SLACK_LXQT_BUILD_DIR/${lxqt_module}/package-$PKGNAME
+ rm -rf $PKG
+ mkdir -p $PKG
+ else
+ continue
+ fi
+ else
+ echo
+ echo "Building from source ${lxqt_src}"
+ echo
+ fi
+ if grep -wq "^${PKGNAME}$" ${CWD}/modularize ; then
+ # Set $PKG to a private dir for the modular package build:
+ PKG=$SLACK_LXQT_BUILD_DIR/${lxqt_module}/package-$PKGNAME
+ rm -rf $PKG
+ mkdir -p $PKG
+ fi
+
+ # Let's figure out the version number on the modular package:
+ MODULAR_PACKAGE_VERSION=$(echo $lxqt_src | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+
+ rm -rf $(pkgbase $lxqt_src)
+ extract_archive $lxqt_src || exit 1
+ cd $(pkgbase $lxqt_src) || exit 1
+
+ fix_perms
+
+ # If any patches are needed, call this script to apply them:
+ if [ -r $CWD/patch/${PKGNAME}.patch ]; then
+ . $CWD/patch/${PKGNAME}.patch || exit 1
+ fi
+
+ # If there's any pre-install things to do, do them:
+ if [ -r $CWD/pre-install/${PKGNAME}.pre-install ]; then
+ . $CWD/pre-install/${PKGNAME}.pre-install
+ fi
+
+ if ! grep -wq "^${PKGNAME}$" ${CWD}/nomake ; then
+ # Run cmake by default, using custom cmake/autoconf script if needed:
+ if [ -r $CWD/cmake/${PKGNAME} ]; then
+ . $CWD/cmake/${PKGNAME}
+ elif [ -r $CWD/cmake/${lxqt_module} ]; then
+ . $CWD/cmake/${lxqt_module}
+ elif [ -r $CWD/autoconf/${PKGNAME} ]; then
+ . $CWD/autoconf/${PKGNAME}
+ elif [ -r $CWD/autoconf/${lxqt_module} ]; then
+ . $CWD/autoconf/${lxqt_module}
+ else
+ # This is the default configure script:
+ . $CWD/cmake/cmake
+ fi
+
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+ fi
+
+ # Back to source toplevel builddir, since cmake may have run in a subdir:
+ cd $SLACK_LXQT_BUILD_DIR/${lxqt_module}/$(pkgbase $lxqt_src)
+
+ mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION}
+ # Use specific documentation files if available, else use a default set:
+ if [ -r $CWD/docs/${PKGNAME} ]; then
+ cp -a $(cat $CWD/docs/${PKGNAME}) \
+ $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION}
+ else
+ cp -a \
+ AUTHORS* CONTRIBUTING* COPYING* HACKING* \
+ INSTALL* MAINTAINERS README* NEWS* TODO* \
+ $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION}
+ # If there's a ChangeLog, installing at least part of the recent
+ # history is useful, but don't let it get totally out of control:
+ if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+ fi
+ fi
+
+ # Get rid of zero-length junk files:
+ find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \;
+ rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null
+
+ # Strip binaries:
+ strip_binaries $PKG
+
+ # If there's any special post-install things to do, do them:
+ if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then
+ . $CWD/post-install/${PKGNAME}.post-install
+ fi
+
+ # If this package requires some doinst.sh material, add it here:
+ if [ -r $CWD/doinst.sh/${PKGNAME} ]; then
+ mkdir -p $PKG/install
+ cat $CWD/doinst.sh/${PKGNAME} \
+ | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \
+ >> $PKG/install/doinst.sh
+ fi
+
+ # If this is a modular package, build it here:
+ if [ -d $SLACK_LXQT_BUILD_DIR/${lxqt_module}/package-$PKGNAME ]; then
+ cd $PKG
+ process_man_pages
+ process_info_pages
+ no_usr_share_doc
+ mkdir -p $PKG/install
+ if [ -r $CWD/slack-desc/${PKGNAME} ]; then
+ cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc
+ else
+ touch $PKG/install/slack-desc-missing
+ fi
+ if [ -r $CWD/build/${PKGNAME} ]; then
+ MODBUILD=$(cat $CWD/build/${PKGNAME})
+ else
+ MODBUILD=$BUILD
+ fi
+ if [ -r $CWD/makepkg/${PKGNAME} ]; then
+ BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME}
+ else
+ /sbin/makepkg -l y -c n ${SLACK_LXQT_BUILD_DIR}/${lxqt_module}/${PKGNAME}-$(echo $MODULAR_PACKAGE_VERSION |tr - _)-${PKGARCH}-${MODBUILD}${TAG}.txz
+ fi
+ # We will continue with the fresh packages installed:
+ upgradepkg --install-new --reinstall ${SLACK_LXQT_BUILD_DIR}/${lxqt_module}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}${TAG}.txz
+ # Keep MIME database current:
+ /usr/bin/update-mime-database /usr/share/mime 1>/dev/null 2>/dev/null &
+ fi
+
+ # Reset $PKG to assume we're building the whole source dir:
+ PKG=${SLACK_LXQT_BUILD_DIR}/${lxqt_module}/package-${lxqt_module}
+
+ done
+
+ # At this point, we have left the loop to build modular packages.
+ # We might need to build a package for the "<lxqt_module>", but to
+ # avoid needlessly repacking if there happens to be a package with
+ # the same name as "<lxqt_module>", we'll do some checks first.
+
+ # If every package listed in modules/"<lxqt_module>" is also listed
+ # in the modularize file, then there's no need to make a package
+ # for "<lxqt_module>":
+ echo
+ echo "Searching for packages in ${lxqt_module} that were not built modular:"
+ cat $CWD/modules/${lxqt_module} | grep -v "^ *#" | grep -v -w "^" | while read checkpackage ; do
+ if ! grep -wq "^${checkpackage}$" ${CWD}/modularize ; then
+ # Non-modular package found, so we'll have to build the package below.
+ # It might already have been built once, but in that case it is likely
+ # that more things have been added to the package directory since then.
+ echo "Found non-modular package $checkpackage."
+ exit 99
+ fi
+ done
+
+ # Exit if everything in "<lxqt_module>" was built modular:
+ if [ ! $? = 99 ]; then
+ echo "No non-modular components found in ${lxqt_module}."
+ echo "Not building catch-all package for ${lxqt_module}."
+ echo
+ return
+ fi
+
+ # If there's no /usr directory in the "<lxqt_module>" package directory,
+ # then skip it. There's nothing present worth packing up.
+ if [ ! -d ${SLACK_LXQT_BUILD_DIR}/${lxqt_module}/package-${lxqt_module}/usr ]; then
+ echo "No /usr directory found in package-${lxqt_module}."
+ echo "Not building catch-all package for ${lxqt_module}."
+ echo
+ return
+ fi
+
+ # Build a "<lxqt_module>" package for anything that wasn't built modular:
+ # It's safer to consider these to have binaries in them. ;-)
+
+ # Put up a bit of a black-box warning, in case this was a mistake where
+ # something was meant to be listed in the modularize file and wasn't:
+ echo
+ echo "**************************************************************************"
+ echo "* Building combined package for non-modular parts of ${lxqt_module}"
+ echo "**************************************************************************"
+ echo
+
+ PKGARCH=$ARCH
+ cd $PKG
+
+ process_man_pages
+ process_info_pages
+ no_usr_share_doc
+
+ # If there are post-install things to do for the combined package,
+ # we do them here. This could be used for things like making a
+ # VERSION number for a combined package. :-)
+ if [ -r $CWD/post-install/${lxqt_module}.post-install ]; then
+ . $CWD/post-install/${lxqt_module}.post-install
+ fi
+ mkdir -p $PKG/install
+ if [ -r $CWD/slack-desc/${lxqt_module} ]; then
+ cat $CWD/slack-desc/${lxqt_module} > $PKG/install/slack-desc
+ else
+ touch $PKG/install/slack-desc-missing
+ fi
+ if [ -r $CWD/doinst.sh/${lxqt_module} ]; then
+ cat $CWD/doinst.sh/${lxqt_module} \
+ | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \
+ >> $PKG/install/doinst.sh
+ fi
+ if [ -r $CWD/build/${lxqt_module} ]; then
+ SRCDIRBUILD=$(cat $CWD/build/${lxqt_module})
+ else
+ SRCDIRBUILD=$BUILD
+ fi
+ if [ -r $CWD/makepkg/${lxqt_module} ]; then
+ BUILD=$SRCDIRBUILD . $CWD/makepkg/${lxqt_module}
+ else
+ /sbin/makepkg -l y -c n ${SLACK_LXQT_BUILD_DIR}/${lxqt_module}/${lxqt_module}-$(echo $VERSION |tr - _)-${PKGARCH}-${SRCDIRBUILD}${TAG}.txz
+ fi
+ # We will continue with the fresh packages installed:
+ upgradepkg --install-new --reinstall ${SLACK_LXQT_BUILD_DIR}/${lxqt_module}/${lxqt_module}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}${TAG}.txz
+ # Keep MIME database current:
+ /usr/bin/update-mime-database /usr/share/mime 1>/dev/null 2>/dev/null &
+ )
+}
+
+# Process the module queue. Format is:
+# module[:subpackage[,subpackage]] [module...]
+deterministic_build() {
+ RET=0
+ for ENTRY in $1 ; do
+ LXQT_MOD=$(echo "$ENTRY": | cut -f1 -d:)
+ LXQT_PKGS=$(echo "$ENTRY": | cut -f2 -d:)
+ if [ -z "$LXQT_PKGS" ]; then
+ echo "** SlackBuild building '$LXQT_MOD'"
+ build_mod_pkg $LXQT_MOD
+ let RET=$RET+$?
+ else
+ if [ "${LXQT_PKGS: -1}" = "," ]; then
+ # Last character is a ','. Expand the list with all subsequent packages.
+ START_PKG=$(echo $LXQT_PKGS |rev |cut -d, -f2 |rev)
+ MOD_LIST=$(cat modules/$LXQT_MOD |grep -v "^ *#" |grep -v "^$" |tr '\n' ',')
+ LXQT_PKGS="${LXQT_PKGS}${MOD_LIST/#?*,${START_PKG},/}"
+ echo "** SlackBuild expanding '$ENTRY' to '$LXQT_MOD:$LXQT_PKGS'"
+ fi
+ for LXQT_PKG in $(echo $LXQT_PKGS |tr ',' ' ') ; do
+ echo "** SlackBuild building '$LXQT_MOD:$LXQT_PKG'"
+ build_mod_pkg $LXQT_MOD $LXQT_PKG
+ let RET=$RET+$?
+ done
+ fi
+ done
+
+ return $RET
+}
+
+# MAIN PART #
+
+# Import the build configuration options for as far as they are not already set:
+[ -r ./lxqt.options ] && . ./lxqt.options
+
+# This avoids compiling a version number into LXQT's .la files:
+QTDIR=/usr/lib${LIBDIRSUFFIX}/qt ; export QTDIR
+
+# Where we are going to do all the hard labour:
+SLACK_LXQT_BUILD_DIR=$TMP/lxqt-build
+mkdir -p $SLACK_LXQT_BUILD_DIR
+
+# LXQT build order:
+LXQTMODS=" \
+ base \
+ main \
+ data \
+ extra \
+ l10n \
+ "
+
+# Allow for specification of individual packages to be built:
+if [ -z "$1" ]; then
+ MODQUEUE=$LXQTMODS
+else
+ MODQUEUE="$*"
+fi
+
+# If requested, check if
+# sources, module definitions and slack-desc are complete and matching:
+if [ "$PRECHECK" = "yes" -o "$PRECHECK" = "YES" ]; then
+ precheck
+fi
+
+# And finally, start working!
+for module in \
+ $MODQUEUE ;
+do
+ echo "** SlackBuild processing module '$module'"
+ deterministic_build $module
+ if [ $? = 0 ]; then
+ # Move the created packages up into the LXQT build directory:
+ mv ${SLACK_LXQT_BUILD_DIR}/$(echo $module |cut -f1 -d:)/*.t?z ${SLACK_LXQT_BUILD_DIR}/
+ if [ "$CLEANUP" = "yes" -o "$CLEANUP" = "YES" ]; then
+ # Clean out package and build directories:
+ rm -rf ${SLACK_LXQT_BUILD_DIR}/$(echo $module |cut -f1 -d:)
+ fi
+ else
+ echo "${module} failed to build."
+ exit 1
+ fi
+ cd - ;
+done
+
+exit 0
+
+
diff --git a/lxqt/build/lxqt.options b/lxqt/build/lxqt.options
new file mode 100644
index 00000000..bd321758
--- /dev/null
+++ b/lxqt/build/lxqt.options
@@ -0,0 +1,60 @@
+# Set default version/arch/build. Source tarballs with a different
+# version will override the default VERSION. You can override BUILD
+# by creating a file 'packagename' in the build/ directory, containing
+# the desired build number.
+
+[ -z $VERSION ] && export VERSION=0.11.0
+[ -z $BUILD ] && export BUILD=1
+
+[ -z $TAG ] && export TAG=alien
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+[ -z $PKGARCH ] && export PKGARCH=$ARCH
+
+# Use this as CFLAGS and CXXFLAGS:
+if [ -z "$SLKCFLAGS" ]; then
+ if [ "$ARCH" = "i486" ]; then
+ export SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "s390" ]; then
+ export SLKCFLAGS="-O2"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "x86_64" ]; then
+ export SLKCFLAGS="-O2 -fPIC"
+ export LIBDIRSUFFIX="64"
+ elif [ "$ARCH" = "arm" ]; then
+ export SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "armel" ]; then
+ export SLKCFLAGS="-O2 -march=armv4t"
+ export LIBDIRSUFFIX=""
+ elif [ "$ARCH" = "armv7hl" ]; then
+ export SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ export LIBDIRSUFFIX=""
+ else
+ export SLKCFLAGS="-O2"
+ export LIBDIRSUFFIX=""
+ fi
+fi
+
+# Use this to set the number of parallel make jobs:
+if [ -z "$NUMJOBS" ]; then
+ export NUMJOBS="-j7"
+fi
+
+case "$ARCH" in
+ arm*) export TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) export TARGET=$ARCH-slackware-linux ;;
+esac
+
diff --git a/lxqt/build/modularize b/lxqt/build/modularize
new file mode 100644
index 00000000..fc0c495c
--- /dev/null
+++ b/lxqt/build/modularize
@@ -0,0 +1,66 @@
+# If a package is listed here, it will be built apart from the
+# usual "grab bag" package that's made from each source directory.
+#
+# Things to note:
+#
+# Listing a package here will not cause it to be built. To do that,
+# make sure it is added to one of the files in the modules/ directory
+# that is built by the main lxqt.SlackBuild script.
+#
+# If a subpackage name happens to be the same as the "grab bag" package
+# that contains it, you need to be a bit careful. Unless everything
+# in that collection will be built modular, *do not* list that name
+# here! If you do, first the module by that name will be built, and
+# then everything that's not modular in that collection will be built
+# into a "grab bag" that will replace that first package.
+#
+# If the goal is to build the most combined packages possible, the
+# easiest way to accomplish that is just to move this file out of the
+# way and replace it with an empty one before building.
+
+# base
+libqtxdg
+liblxqt
+lxqt-globalkeys
+lxqt-notificationd
+libsysstat
+libfm-extra
+menu-cache
+libfm
+libfm-qt
+
+# main
+lxqt-panel
+pcmanfm-qt
+lxqt-session
+lxqt-runner
+lxqt-qtplugin
+lxqt-policykit
+lxqt-openssh-askpass
+lxqt-power
+lxqt-powermanagement
+lximage-qt
+lxqt-config
+lxinput-qt
+lxqt-config-randr
+lxqt-about
+obconf-qt
+lxqt-lightdm-greeter
+lxqt-sudo
+lxqt-admin
+
+# data
+lxqt-common
+lxmenu-data
+
+# extra
+libconfig
+compton-conf
+pavucontrol-qt
+qtermwidget
+qterminal
+lxqt-appswitcher
+
+# l10n
+lxqt-l10n
+
diff --git a/lxqt/build/noarch b/lxqt/build/noarch
new file mode 100644
index 00000000..b7a6de16
--- /dev/null
+++ b/lxqt/build/noarch
@@ -0,0 +1,7 @@
+# List packages with an $ARCH of "noarch" (i.e. packages
+# that contain no binaries) here:
+
+lxqt-common
+lxmenu-data
+
+
diff --git a/lxqt/build/nomake b/lxqt/build/nomake
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/lxqt/build/nomake
diff --git a/lxqt/build/package-blacklist b/lxqt/build/package-blacklist
new file mode 100644
index 00000000..717e6451
--- /dev/null
+++ b/lxqt/build/package-blacklist
@@ -0,0 +1,5 @@
+# Enter packages to skip (perhaps because they aren't used on
+# this platform) below. Just the package name -- no version
+# number is needed.
+
+lxqt-lightdm-greeter