opt/i3/Pkgfile

78 lines
2.5 KiB
Plaintext

# Description: A tiling window manager (depends only on ports from our ISO)
# URL: https://i3wm.org/
# Maintainer: Juergen Daubert, jue at crux dot nu
# Depends on: cmake pango xorg-xcb-util-cursor xorg-xcb-util-keysyms xorg-xcb-util-wm
name=i3
version=4.19
release=1
source=(http://i3wm.org/downloads/$name-$version.tar.xz
https://github.com/lloyd/yajl/archive/2.1.0/yajl-2.1.0.tar.gz
http://dist.schmorp.de/libev/Attic/libev-4.33.tar.gz
http://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.12.tar.gz
http://xkbcommon.org/download/libxkbcommon-1.0.1.tar.xz
https://github.com/Airblader/xcb-util-xrm/releases/download/v1.3/xcb-util-xrm-1.3.tar.bz2)
build() {
local LIBS=$SRC/$name-$version/libs
install -d $LIBS/{lib,include}
# xcb-util-xrm
cd $SRC/xcb-util-xrm-1.3
./configure --prefix=/ --disable-shared
make
make DESTDIR=$LIBS install
# libxkbcommon
cd $SRC/libxkbcommon-1.0.1
meson setup build . \
--prefix=/ \
--buildtype=plain \
--default-library=static \
-D enable-wayland=false \
-D enable-docs=false
meson compile -C build -j ${JOBS:-1}
DESTDIR=$LIBS meson install -C build
# yajl
cd $SRC/yajl-2.1.0
cmake -S . -B build \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_C_FLAGS_RELEASE="$CFLAGS -DNDEBUG" \
-Wno-dev
cmake --build build
cp -r build/yajl-2.1.0/include $LIBS
cp build/yajl-2.1.0/lib/libyajl_s.a $LIBS/lib/libyajl.a
cp build/yajl-2.1.0/share/pkgconfig/yajl.pc $LIBS/lib/pkgconfig
# libev
cd $SRC/libev-4.33
./configure --prefix=/ --disable-shared
make
make DESTDIR=$LIBS install
# startup-notification
cd $SRC/startup-notification-0.12
sed -i '/^Libs: /s/$/ -lX11-xcb/' libstartup-notification-1.0.pc.in
./configure --prefix=/ --disable-shared
make
make DESTDIR=$LIBS install
mv $LIBS/include/{startup-notification-1.0/libsn,libsn}
# i3
cd $SRC/$name-$version
export CFLAGS="$CFLAGS -I$LIBS/include"
export LDFLAGS="$LDFLAGS -L$LIBS/lib"
meson setup build . \
--prefix=/usr \
--sysconfdir=/usr/etc \
--buildtype=release \
--pkg-config-path="$LIBS/lib/pkgconfig"
meson compile -C build -j ${JOBS:-1}
DESTDIR=$PKG meson install -C build
install -d $PKG/usr/share/man/man1
install -m 0644 man/*.1 $PKG/usr/share/man/man1/
rm -r $PKG/usr/share/doc
}