Skip to content

Instantly share code, notes, and snippets.

@kode54
Last active August 24, 2016 19:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kode54/5616844 to your computer and use it in GitHub Desktop.
Save kode54/5616844 to your computer and use it in GitHub Desktop.
Arch Linux AUR PKGBUILD for mesa-git
# Maintainer: Kristian Klausen <klausenbusk@hotmail.com>
# Contributor: Egon Ashrafinia <e.ashrafinia@gmail.com>
# Contributor: Tavian Barnes <tavianator@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: Antti "Tera" Oja <antti.bofh@gmail.com>
# Contributor: Diego Jose <diegoxter1006@gmail.com>
# Credits to maintainers of mesa in extra!
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgbase=mesa-git
pkgname=mesa-git
# Dirty hack as AUR dont support split-packages
true && pkgname=('ati-dri-git' 'intel-dri-git' 'nouveau-dri-git' 'svga-dri-git' 'mesa-git' 'mesa-libgl-git')
pkgver=9.2_devel.56723
pkgrel=1
arch=('i686' 'x86_64')
_llvm=$(pacman -Qq | egrep --max-count=1 'llvm-amdgpu-git|llvm-amdgpu-svn|llvm-r600-svn' || echo llvm-amdgpu-snapshot)
makedepends=('python2' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'libxxf86vm' 'libxdamage'
'libvdpau' 'wayland' "$_llvm" 'systemd' 'git' 'pacman>=4.1' 'elfutils')
url="http://mesa3d.sourceforge.net"
license=('custom')
options=('!libtool')
source=('mesa::git+http://anongit.freedesktop.org/git/mesa/mesa.git#branch=master'
'LICENSE')
sha512sums=('SKIP'
'25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2')
pkgver() {
cd "mesa"
echo $(grep --max-count=1 "PACKAGE_VERSION=" Makefile.am | cut -f2 -d = | tr "-" "_").$(git rev-list --count HEAD)
}
build () {
cd "${srcdir}/mesa"
#################
# Apply patches
#################
msg "Applying patches..."
local i patches
for i in "${source[@]}"; do
i=${i##*/}
[[ $i =~ .*\.patch$ ]] && patches=("${patches[@]}" "$srcdir/$i")
[[ ${i%.*} =~ .*\.patch$ ]] && patches=("${patches[@]}" "$srcdir/${i%.*}")
done
shopt -s nullglob
for i in "${patches[@]}" "$startdir/patches/"*; do
msg2 "Applying ${i##*/}..."
patch -Np1 -i "$i" || (error "Applying ${i##*/} failed" && return 1)
done
shopt -u nullglob
# TODO: --enable-r600-llvm-compiler and --with-llvm-shared-libs maybe
COMMONOPTS="--prefix=/usr \
--sysconfdir=/etc \
--with-dri-driverdir=/usr/lib/xorg/modules/dri \
--with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast \
--with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \
--enable-gallium-llvm \
--enable-egl \
--enable-gallium-egl \
--with-egl-platforms=x11,drm,wayland \
--enable-shared-glapi \
--enable-gbm \
--enable-glx-tls \
--enable-dri \
--enable-glx \
--enable-osmesa \
--enable-gles1 \
--enable-gles2 \
--enable-texture-float \
--enable-xa \
--enable-vdpau "
./autogen.sh \
$COMMONOPTS
make
# fake installation
mkdir -p $srcdir/fakeinstall
make DESTDIR=${srcdir}/fakeinstall install
}
package_ati-dri-git () {
pkgdesc="Mesa drivers for AMD/ATI Radeon"
depends=("mesa-libgl=$(cut -f-2 -d . <<< ${pkgver/_/-})" 'elfutils')
conflicts=('ati-dri' 'xf86-video-ati<6.9.0-6')
provides=("ati-dri")
install -m755 -d ${pkgdir}/usr/lib/vdpau/
mv -v ${srcdir}/fakeinstall/usr/lib/vdpau/libvdpau_{r300,r600,radeonsi}.* ${pkgdir}/usr/lib/vdpau/
install -m755 -d ${pkgdir}/usr/lib/xorg/modules/dri
mv -v ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/{r200,r300,r600,radeon,radeonsi}_dri.so ${pkgdir}/usr/lib/xorg/modules/dri/
install -m755 -d ${pkgdir}/usr/lib/gallium-pipe
mv -v ${srcdir}/fakeinstall/usr/lib/gallium-pipe/pipe_{r300,r600,radeonsi}* ${pkgdir}/usr/lib/gallium-pipe/
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
}
package_intel-dri-git () {
pkgdesc="Mesa drivers for Intel"
depends=("mesa-libgl=$(cut -f-2 -d . <<< ${pkgver/_/-})")
conflicts=('intel-dri')
provides=("intel-dri")
install -m755 -d ${pkgdir}/usr/lib/xorg/modules/dri
mv -v ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/{i915,i965}_dri.so ${pkgdir}/usr/lib/xorg/modules/dri/
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
}
package_nouveau-dri-git () {
pkgdesc="Mesa drivers for Nouveau"
depends=("mesa-libgl=$(cut -f-2 -d . <<< ${pkgver/_/-})")
conflicts=('nouveau-dri')
provides=("nouveau-dri")
install -m755 -d ${pkgdir}/usr/lib/vdpau/
mv -v ${srcdir}/fakeinstall/usr/lib/vdpau/libvdpau_nouveau.* ${pkgdir}/usr/lib/vdpau/
install -m755 -d ${pkgdir}/usr/lib/xorg/modules/dri
mv -v ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/nouveau_{dri,vieux_dri}.so ${pkgdir}/usr/lib/xorg/modules/dri/
install -m755 -d ${pkgdir}/usr/lib/gallium-pipe
mv -v ${srcdir}/fakeinstall/usr/lib/gallium-pipe/pipe_nouveau* ${pkgdir}/usr/lib/gallium-pipe/
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
}
package_svga-dri-git () {
pkgdesc="Gallium3D VMware guest GL driver"
depends=('gcc-libs' 'libdrm' 'expat' 'libffi' 'zlib')
conflicts=('svga-dri')
provides=("svga-dri")
install -m755 -d ${pkgdir}/usr/lib/xorg/modules/dri
mv -v ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/vmwgfx_dri.so ${pkgdir}/usr/lib/xorg/modules/dri/
install -m755 -d ${pkgdir}/usr/lib/gallium-pipe
mv -v ${srcdir}/fakeinstall/usr/lib/gallium-pipe/pipe_vmwgfx* ${pkgdir}/usr/lib/gallium-pipe/
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
}
package_mesa-git () {
pkgdesc="an open-source implementation of the OpenGL specification"
depends=('libdrm' 'libvdpau' 'wayland' 'libxxf86vm' 'libxdamage' 'systemd' 'elfutils')
optdepends=('opengl-man-pages: for the OpenGL API man pages')
provides=("mesa=$(cut -f-2 -d . <<< ${pkgver/_/-})" 'libglapi' 'osmesa' 'libgbm' 'libgles' 'libegl' 'khrplatform-devel')
conflicts=('mesa' 'libglapi' 'osmesa' 'libgbm' 'libgles' 'libegl' 'khrplatform-devel')
replaces=('libglapi' 'osmesa' 'libgbm' 'libgles' 'libegl' 'khrplatform-devel')
mv -v ${srcdir}/fakeinstall/* ${pkgdir}
# rename libgl.so to not conflict with blobs - may break gl.pc ?
mv ${pkgdir}/usr/lib/libGL.so.1.2.0 ${pkgdir}/usr/lib/mesa-libGL.so.1.2.0
rm ${pkgdir}/usr/lib/libGL.so{,.1}
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
}
package_mesa-libgl-git () {
pkgdesc="Mesa 3-D graphics library"
depends=("mesa=$(cut -f-2 -d . <<< ${pkgver/_/-})")
conflicts=('mesa-libgl')
provides=("mesa-libgl=$(cut -f-2 -d . <<< ${pkgver/_/-})" "libgl=$(cut -f-2 -d . <<< ${pkgver/_/-})")
replaces=('libgl')
# See FS#26284
install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so
ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1
ln -s mesa-libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1.2.0
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment