skx / kpie

Simple devilspie-like program for window manipulation, with Lua.
GNU General Public License v2.0
80 stars 13 forks source link

Availability on Arch Linux #23

Closed flaketill closed 5 years ago

flaketill commented 5 years ago

I tried to install it but make fail, my OS are Arch Linux with OpenBox, could you help me?

Thanks!

skx commented 5 years ago

Please show me the commands you ran, and the error(s) you see.

flaketill commented 5 years ago

Thank you for taking the time to answer, I could install the package and works very good!

skx commented 5 years ago

Then I'll close this, thanks for the update.

sogaiu commented 5 years ago

To provide some specifics for what worked here (actually for an Arch-derivative, Manjaro)...

I didn't figure out the exact dependencies needed in Arch-land, but assuming they are installed, one modification to the Makefile lead to a successful build here:

diff --git a/Makefile b/Makefile
index fb9eec2..e69b68b 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@ BASE=kpie
 #
 # The version of Lua we build against.
 #
-LUA_VERSION=5.1
+LUA_VERSION=52

 #
 # Magic to guess the Lua library versions.

Yes, the variable's name then becomes misleading...

Arch seems to name the pkg-config files like:

  lua51.pc
  lua52.pc

instead of:

  lua5.1.pc
  lua5.2.pc

Also, for some reason, compilation using lua 5.2 worked here while 5.1 didn't seem to.

sogaiu commented 5 years ago

Something like the following PKGBUILD seems to work to build an Arch package:

_pkgname=kpie
pkgname=${_pkgname}-git
pkgver=release.0.7.r32.g70adbde
pkgrel=1
pkgdesc='Simple devilspie-like program for window manipulation, with Lua'
arch=('i686' 'x86_64')
url='https://github.com/skx/kpie'
license=('GPL2')
depends=('glib2' 'gtk2' 'lua52' 'libwnck' 'libx11' 'xorgproto')
makedepends=('git')
provides=('kpie')
conflicts=('kpie')
source=("$pkgname::git+https://github.com/skx/kpie.git")
md5sums=('SKIP')

# https://wiki.archlinux.org/index.php/VCS_package_guidelines
pkgver() {
  cd "$srcdir/$pkgname"
  git describe --long --tags | sed -E 's/([^-]*-g)/r\1/;s/-/./g'
}

prepare() {
  cd "$srcdir/$pkgname"
  # tweak Makefile
  sed -i 's/^LUA_VERSION=5.1/LUA_VERSION=52/' Makefile
  sed -i 's/^LDFLAGS.*dpkg-buildflags.*//' Makefile
}

build() {
  cd "$srcdir/$pkgname"
  make
}

package() {
  cd "$srcdir/$pkgname"

  mkdir -p "$pkgdir/usr/bin/"
  mkdir -p "$pkgdir/usr/share/$_pkgname/samples"

  install -m755 "$srcdir/$pkgname"/kpie "$pkgdir/usr/bin"
  install -m644 "$srcdir/$pkgname"/{README,FAQ}.md "$pkgdir/usr/share/$_pkgname"
  install -m644 "$srcdir/$pkgname/samples"/* "$pkgdir/usr/share/$_pkgname/samples"
}