aboutsummaryrefslogtreecommitdiff
path: root/desktop/vwm
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2021-09-09 03:25:50 -0400
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2021-10-13 00:52:06 +0700
commite880350510cfb88e11c5bf6daafe24316a2acdf1 (patch)
tree086953a0d2a61c48c6375062c1caf8189933142d /desktop/vwm
parent751cd2ffa61ae0274c0728746d547bd65e12c25a (diff)
desktop/vwm: Updated for version 3.3.2+20200112_207d888.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'desktop/vwm')
-rw-r--r--desktop/vwm/README5
-rw-r--r--desktop/vwm/git2tarxz.sh54
-rw-r--r--desktop/vwm/patches/paths.diff90
-rw-r--r--desktop/vwm/patches/vterm_static.diff26
-rw-r--r--desktop/vwm/slack-desc4
-rw-r--r--desktop/vwm/vwm.SlackBuild165
-rw-r--r--desktop/vwm/vwm.info12
7 files changed, 159 insertions, 197 deletions
diff --git a/desktop/vwm/README b/desktop/vwm/README
index 557767fccf58..9040a52c8603 100644
--- a/desktop/vwm/README
+++ b/desktop/vwm/README
@@ -1,4 +1,4 @@
-vwm (console based window manager)
+vwm (console text-based window manager)
Viper Window Manager (VWM) is a lightweight, extensible window manager
for the console. Originally, VWM was designed to be the reference
@@ -15,5 +15,4 @@ a few simple API rules, anyone can create a "native application"
which will appear on the VWM Main Menu. The mechanism for this is very
similar to Mozilla-style plugins.
-See /usr/doc/vwm-2.0.2/samples/vwmrc for information on customising
-VWM.
+See /usr/doc/$VERSION/samples/vwmrc for information on customising VWM.
diff --git a/desktop/vwm/git2tarxz.sh b/desktop/vwm/git2tarxz.sh
new file mode 100644
index 000000000000..5dd951db3cdf
--- /dev/null
+++ b/desktop/vwm/git2tarxz.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# Create source tarball from git repo, with generated version
+# number.
+
+# Note that this script doesn't need to be run as root. It does
+# need to be able to write to the current directory it's run from.
+
+# This git2tarxz's output is a tarball with 2 separate projects.
+# Upstream doesn't use tags. The version number of the tarball is the
+# version of vwm, taken from vwm.h, plus the commit date and hash of
+# the vwm tree. The libvterm version isn't included in the version
+# number.
+
+PRGNAM=vwm
+PRGURL=https://github.com/TragicWarrior/vwm
+LIBURL1=https://github.com/TragicWarrior/libvterm
+LIBURL2=https://github.com/TragicWarrior/libviper
+
+set -e
+
+CWD="$( pwd )"
+
+GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX )
+rm -rf $GITDIR
+mkdir -p $GITDIR
+
+cd $GITDIR
+
+git clone $PRGURL
+git clone $LIBURL1
+git clone $LIBURL2
+
+cd $PRGNAM
+GIT_SHA=$( git rev-parse --short HEAD )
+
+DATE=$( git log --date=format:%Y%m%d --format=%cd | head -1 )
+
+RELVER="$( grep '#define *VWM_VERSION' vwm.h | cut -d'"' -f2 )"
+VERSION=$RELVER+${DATE}_${GIT_SHA}
+
+cd -
+
+rm -rf */.git
+find . -name .gitignore -print0 | xargs -0 rm -f
+
+cd "$CWD"
+rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz
+mv $GITDIR $PRGNAM-$VERSION
+tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION
+
+echo
+echo "Created tarball: $PRGNAM-$VERSION.tar.xz"
+echo "VERSION=$VERSION"
diff --git a/desktop/vwm/patches/paths.diff b/desktop/vwm/patches/paths.diff
deleted file mode 100644
index 486135ebffad..000000000000
--- a/desktop/vwm/patches/paths.diff
+++ /dev/null
@@ -1,90 +0,0 @@
-diff -Naur vwm.orig/Makefile vwm/Makefile
---- vwm.orig/Makefile 2009-10-20 15:57:55.000000000 -0400
-+++ vwm/Makefile 2017-08-25 17:11:58.787940216 -0400
-@@ -8,8 +8,8 @@
- headerdir = ${prefix}/include
- includedir = -I${headerdir} -I./
- bindir = ${prefix}/bin
--moddir = /usr/lib/vwm/modules
--moddir_wide = /usr/lib/vwm/modules_wide
-+moddir = ${libdir}/vwm/modules
-+moddir_wide = ${libdir}/vwm/modules_wide
-
- makefile: all
-
-@@ -24,7 +24,7 @@
- gcc $(CFLAGS) $(DEFS) $(WLIBS) $(PKG_CFG) $(includedir) -D_VIPER_WIDE *.c -o vwm_wide
-
- vwm:
-- gcc $(CFLAGS) $(DEFS) $(LIBS) $(PKG_CFG) $(includdir) *.c -o vwm
-+ gcc $(CFLAGS) $(DEFS) $(LIBS) $(PKG_CFG) $(includedir) *.c -o vwm
-
- vwmterm:
- cd modules/vwmterm3 && $(MAKE)
-@@ -45,9 +45,10 @@
- rm -f vwm_wide.h
-
- install:
-- mkdir -p $(moddir)
-+ mkdir -p $(moddir) $(bindir) $(headerdir) $(libdir)
- chmod 644 vwm.h
- cp -f vwm.h $(headerdir)
-+ strip vwm
- chmod 755 vwm
- cp -f vwm $(bindir)
- cd modules/vwmterm3 && $(MAKE) install
-diff -Naur vwm.orig/modules/sysmon/Makefile vwm/modules/sysmon/Makefile
---- vwm.orig/modules/sysmon/Makefile 2009-06-23 14:41:32.000000000 -0400
-+++ vwm/modules/sysmon/Makefile 2017-08-25 17:12:41.742937932 -0400
-@@ -4,8 +4,8 @@
- libdir = ${prefix}/lib
- includedir = ${prefix}/include -I../..
- bindir = ${prefix}/bin
--moddir = /usr/lib/vwm/modules
--moddir_wide = /usr/lib/vwm/modules_wide
-+moddir = ${libdir}/vwm/modules
-+moddir_wide = ${libdir}/vwm/modules_wide
-
- makefile: all
-
-diff -Naur vwm.orig/modules/vwmterm3/Makefile vwm/modules/vwmterm3/Makefile
---- vwm.orig/modules/vwmterm3/Makefile 2009-10-20 16:02:05.000000000 -0400
-+++ vwm/modules/vwmterm3/Makefile 2017-08-25 17:11:25.953941962 -0400
-@@ -2,11 +2,11 @@
- PKG_CFG = `pkg-config --cflags glib-2.0 gmodule-2.0`
- DEFS = -D_REENTRANT -D_GNU_SOURCE
- prefix = /usr/local
--libdir = ${prefix}/lib
-+libdir = ${prefix}/lib${arch}
- includedir = -I${prefix}/include -I../..
- bindir = ${prefix}/bin
--moddir = /usr/lib/vwm/modules
--moddir_wide = /usr/lib/vwm/modules_wide
-+moddir = ${libdir}/vwm/modules
-+moddir_wide = ${libdir}/vwm/modules_wide
-
- makefile: all
-
-diff -Naur vwm.orig/vwm.h vwm/vwm.h
---- vwm.orig/vwm.h 2009-11-04 17:10:01.000000000 -0500
-+++ vwm/vwm.h 2017-08-25 17:16:32.528925658 -0400
-@@ -22,11 +22,17 @@
- #define _VWM_SCREENSAVER_TIMEOUT 5
- #endif
-
-+#ifdef __amd64__
-+#define LIBDIRSUFFIX "64"
-+#else
-+#define LIBDIRSUFFIX ""
-+#endif
-+
- #ifndef _VWM_SHARED_MODULES
- #ifdef _VIPER_WIDE
--#define _VWM_SHARED_MODULES "/usr/lib/vwm/modules_wide/"
-+#define _VWM_SHARED_MODULES "/usr/lib" LIBDIRSUFFIX "/vwm/modules_wide/"
- #else
--#define _VWM_SHARED_MODULES "/usr/lib/vwm/modules/"
-+#define _VWM_SHARED_MODULES "/usr/lib" LIBDIRSUFFIX "/vwm/modules/"
- #endif
- #endif
-
diff --git a/desktop/vwm/patches/vterm_static.diff b/desktop/vwm/patches/vterm_static.diff
deleted file mode 100644
index b3356a17bcb2..000000000000
--- a/desktop/vwm/patches/vterm_static.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Naur vwm.orig/modules/vwmterm3/Makefile vwm/modules/vwmterm3/Makefile
---- vwm.orig/modules/vwmterm3/Makefile 2009-10-20 16:02:05.000000000 -0400
-+++ vwm/modules/vwmterm3/Makefile 2017-08-25 19:55:30.380418408 -0400
-@@ -20,7 +20,7 @@
-
- vwmterm3:
- gcc $(CFLAGS) $(DEFS) $(PKG_CFG) $(includedir) -c -fpic *.c
-- gcc $(CFLAGS) -shared -o vwmterm3.so *.o
-+ gcc $(CFLAGS) -shared -o vwmterm3.so *.o $(VTERM_A)
-
- vwmterm3_wide:
- gcc $(CFLAGS) $(DEFS) $(PKG_CFG) $(includedir) -D_VIPER_WIDE -c -fpic *.c
-diff -Naur vwm.orig/modules/vwmterm3/init.c vwm/modules/vwmterm3/init.c
---- vwm.orig/modules/vwmterm3/init.c 2009-10-30 17:31:44.000000000 -0400
-+++ vwm/modules/vwmterm3/init.c 2017-08-25 19:56:03.036416671 -0400
-@@ -36,10 +36,6 @@
- if(g_module_open("libutil.so",G_MODULE_BIND_LAZY)==NULL)
- return "\ncould not preload libutil.so";
-
-- // preload libvterm for use with this module
-- if(g_module_open("libvterm.so",G_MODULE_BIND_LAZY)==NULL)
-- return "\ncould not preload libvterm.so";
--
- /* register with vwm */
- libfilename=(gchar*)g_module_name(module);
- vwm_module_add("Tools","VTerm",vwmterm_init,NULL,libfilename);
diff --git a/desktop/vwm/slack-desc b/desktop/vwm/slack-desc
index f5da6433b6db..428b5afcc79c 100644
--- a/desktop/vwm/slack-desc
+++ b/desktop/vwm/slack-desc
@@ -6,7 +6,7 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-vwm: vwm (console based window manager)
+vwm: vwm (console text-based window manager)
vwm:
vwm: Viper Window Manager (VWM) is a lightweight, extensible window manager
vwm: for the console. Originally, VWM was designed to be the reference
@@ -16,4 +16,4 @@ vwm: From conception, VWM was designed to be both lightweight and ssh
vwm: friendly. Character based line-art compresses very well as do the
vwm: escape sequences which handle cursor manipulation. This makes VWM
vwm: quite suitable for low-bandwidth, remote connectivity over ssh.
-vwm: http://vwm.sourceforge.net/
+vwm:
diff --git a/desktop/vwm/vwm.SlackBuild b/desktop/vwm/vwm.SlackBuild
index ff1829de9647..eddd72444e1f 100644
--- a/desktop/vwm/vwm.SlackBuild
+++ b/desktop/vwm/vwm.SlackBuild
@@ -25,6 +25,17 @@
# Previously maintained by Gerardo Zamudio.
# Now maintained by B. Watson <yalhcru@gmail.com>.
+# 20210908 bkw:
+# - Update this stale build. It compiled on -current, but failed to
+# run properly. Upstream never updated the old sourceforge page to
+# let us know he moved to github, so I just now found it out...
+# Upstream doesn't use tags for releases, I used latest git for
+# all 3 projects (vwm, libviper, libvterm).
+# - Bundle libviper. The old libviper build is gone (nothing else used it).
+# - Bundled libs are now shared, not static, and are included in the
+# built package (along with their includes).
+# - Upstream switched to cmake, many changes because of that.
+
# 20170825 bkw:
# - Take over maintenance.
# - Update for v2.1.3.
@@ -41,8 +52,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=vwm
-VERSION=${VERSION:-2.1.3}
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-3.3.2+20200112_207d888}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -54,9 +65,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -80,76 +88,95 @@ else
LIBDIRSUFFIX=""
fi
-fixperms() {
- 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 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-}
set -e
-rm -rf $PKG
-mkdir -p $TMP/$PRGNAM $PKG $OUTPUT
-
-# First, the library. This is "libvterm", by the same author as vwm,
-# but it's completely unrelated to the libvterm on SBo. Two projects
-# happened to pick the same name. This one doesn't build a static lib
-# by default (which we need) so it's done here with 'ar'. None of this
-# stuff gets included in the package.
-# libvterm-20170804.tar.xz was created thus:
-# git clone https://github.com/TragicWarrior/libvterm.git libvterm-20170804
-# tar cvfJ libvterm-20170804.tar.xz libvterm-20170804
-LIBNAM=libvterm
-LIBVER=${LIBVER:-20170804}
-
-cd $TMP/$PRGNAM
-rm -rf $LIBNAM-$LIBVER
-tar xvf $CWD/$LIBNAM-$LIBVER.tar.xz
-cd $LIBNAM-$LIBVER
-fixperms
-
-# Build a static library. We need -fPIC even on 32-bit.
-make CFLAGS="$SLKCFLAGS -fPIC"
-rm -f *.so
-ar rcs $LIBNAM.a *.o
-
-# Now, the main program, which will link with the static lib we just built.
-cd $TMP/$PRGNAM
-rm -rf $PRGNAM
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM
-fixperms
-
-# Patch the relevant Makefiles to not use hardcoded paths.
-patch -p1 < $CWD/patches/paths.diff
-
-# Allows us to pass a full path to libvterm.a, avoids 'undefined symbol'
-# when starting vmterm3.
-patch -p1 < $CWD/patches/vterm_static.diff
-
-LIBDIR=$TMP/$PRGNAM/$LIBNAM-$LIBVER
-make CFLAGS="$SLKCFLAGS -I$LIBDIR" VTERM_A=$LIBDIR/libvterm.a
-make install prefix=$PKG/usr libdir=$PKG/usr/lib${LIBDIRSUFFIX}
-
-# Build and install the sysmon module (the vmwterm3 one is done with
-# the main installation).
-cd modules/sysmon
- make CFLAGS="$SLKCFLAGS -I$PKG/usr/include"
- make install prefix=$PKG/usr libdir=$PKG/usr/lib${LIBDIRSUFFIX}
+rm -rf $PKG $TMP/$PRGNAM-$VERSION
+mkdir -p $PKG $OUTPUT
+cd $TMP
+
+# The tarball includes all 3 projects (vwm, libviper, libvterm) and
+# was created by git2tarxz.sh.
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
+
+BASEDIR=$( pwd )
+
+# First, we build the two libraries vwm needs. These are by the same
+# author as vwm. The one called libvterm is *not* related to the
+# libvterm on SBo (two projects happened to pick the same name).
+# These have to be shared libs (or anyway, libvterm has to be, as
+# vwm's vwmterm module loads it via dlopen()).
+
+buildlib() {
+ cd $BASEDIR/lib$1
+ mkdir -p build
+ cd build
+
+ # Note: the cmake stuff here ignores any attempt to install to lib64.
+ # We'll fix it later.
+ cmake \
+ -DCMAKE_C_FLAGS_RELEASE="$SLKCFLAGS -DNDEBUG" \
+ -DCMAKE_CXX_FLAGS_RELEASE="$SLKCFLAGS -DNDEBUG" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make VERBOSE=1
+ make install/strip DESTDIR=$PKG
+}
+
+buildlib vterm
+buildlib viper
+
+# no way to disable static libs via cmake, so...
+rm -f $PKG/usr/lib/*.a
+
+# Finally, we can build vwm. Easier to force-override the autodetect
+# for the libs, than it would be to make the autodetect actually work.
+cd $BASEDIR/$PRGNAM
+
+ # why is this hardcoded?
+ sed -i "s,/usr/local/lib/vwm/,/usr/lib$LIBDIRSUFFIX/vwm/," vwm.h
+
+ mkdir -p build
+ cd build
+ cmake \
+ -DCMAKE_C_FLAGS_RELEASE="$SLKCFLAGS -DNDEBUG" \
+ -DCMAKE_CXX_FLAGS_RELEASE="$SLKCFLAGS -DNDEBUG" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DVTERM_LIBRARY=$PKG/usr/lib/libvterm.so \
+ -DVIPER_LIBRARY=$PKG/usr/lib/libviper.so \
+ -DVTERM_INCLUDE_DIR=$PKG/usr/include \
+ -DVIPER_INCLUDE_DIR=$PKG/usr/include \
+ -DCMAKE_BUILD_TYPE=Release ..
+ make VERBOSE=1
+ make install/strip DESTDIR=$PKG
cd -
+# *Now* we can fix the lib=>lib64 mess, if needed.
+[ "$LIBDIRSUFFIX" != "" ] && mv $PKG/usr/lib $PKG/usr/lib$LIBDIRSUFFIX
+
# Build and install the keycodes tool to determine codes for remapping
-# keystrokes in '~/.vwm/vwmrc'.
-make -j1 keycode_tool
-install -s -m0755 keycodes/keycodes $PKG/usr/bin/
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a CHANGELOG LICENSE NOTES samples $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README$TAG
+# keystrokes in '~/.vwm/vwmrc'. Don't think we need the non-wide version,
+# since the main program uses wide ncurses.
+make -j1 -C keycodes keycodes_wide
+install -s -m0755 keycodes/keycodes_wide $PKG/usr/bin/keycodes
+
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+
+# upstream's README.md is mostly install instructions.
+mkdir -p $PKGDOC
+cp -a BUGS CHANGELOG LICENSE NEWS* README* TODO samples $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+cat $CWD/README > $PKGDOC/README$TAG
+
+# include docs for the libraries too.
+cd $BASEDIR
+mkdir -p $PKGDOC/{libviper,libvterm}
+cp -a libviper/{CHANGELOG,LICENSE,README.md,TODO} $PKGDOC/libviper
+cp -a libvterm/{API,CHANGELOG,COPY*,LIC*,*.md} $PKGDOC/libvterm
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/desktop/vwm/vwm.info b/desktop/vwm/vwm.info
index 219693e7a2c3..e844ca171dc6 100644
--- a/desktop/vwm/vwm.info
+++ b/desktop/vwm/vwm.info
@@ -1,12 +1,10 @@
PRGNAM="vwm"
-VERSION="2.1.3"
-HOMEPAGE="http://vwm.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/vwm/vwm-2.1.3.tar.gz \
- https://slackware.uk/~urchlay/src/libvterm-20170804.tar.xz"
-MD5SUM="2a5c1ecba9db9a6f85f3e3b358136179 \
- d2d6344a67eb011ef7d0307bf3b267e3"
+VERSION="3.3.2+20200112_207d888"
+HOMEPAGE="https://github.com/TragicWarrior/vwm"
+DOWNLOAD="https://slackware.uk/~urchlay/src/vwm-3.3.2+20200112_207d888.tar.xz"
+MD5SUM="096673cc32536c0e170d02fb7aef5322"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libpseudo libviper"
+REQUIRES="libconfig"
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"