summaryrefslogtreecommitdiff
path: root/libre/glib2-static/PKGBUILD
blob: 585082103c9e4519f9d09f508e69fc603761af95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# Maintainer (Arch:glib2) Jan de Groot <jgc@archlinux.org>
# Maintainer: Luke Shumaker <lukeshu@parabola.nu>
# Contributor: Márcio Silva <coadde@hyperbola.info>

# glib 2.54 added meson as the preferred build system, and core/glib2
# switched to that.  However, the meson build doesn't support static
# linkage, so we're stuck with the old autotools build system.

pkgname=glib2-static
pkgver=2.54.2
pkgrel=2.parabola2
pkgdesc="Low level core library"
url="https://wiki.gnome.org/Projects/GLib"
license=(LGPL2.1)
arch=(x86_64)
arch+=(i686 armv7h)
depends=(pcre libffi libutil-linux zlib)
_depends=(pcre-static libffi-static libutil-linux-static zlib)
makedepends=(gettext gtk-doc shared-mime-info python libelf git util-linux meson dbus)
makedepends+=("${_depends[@]}")
checkdepends=(desktop-file-utils)
optdepends=('python: for gdbus-codegen and gtester-report'
            'libelf: gresource inspection tool')
options=(!emptydirs)
_commit=52b3e434d849e2b0233d6d3d663b5dda82ab263e  # tags/2.54.2^0
source=("git+https://git.gnome.org/browse/glib#commit=$_commit"
        0001-docs-Fix-building-with-meson.patch
        0001-meson-Fix-permissions-of-installed-scripts.patch
        0001-meson-Fix-GDB-scripts-install_dir-for-nix.patch
        0001-meson-Fix-libmount-support.patch
        libs.diff
        noisy-glib-compile-schemas.diff
        glib-compile-schemas.hook gio-querymodules.hook)
sha256sums=('SKIP'
            '8b289f3e1a5a3b29d310d45610468199acfe6f2b38a0d1be38c9224437a0e40c'
            '12b1a2f4e304e4c03e48ae9564d73ae38619bbb7711a013138939ff8e5cc2327'
            'f53d5acfda4b7141a4813f1e49610e9176dc5bdf8e867d88290e34d91a40ebcb'
            '14c0dcfb4efb690f7cb44673faf31f5eb40ac68c01974eddb53d5aa7ae366629'
            '2fb828f51727bd9c8b48cfd9d6833c8b4ff82803331f6e2340b0ec8edfe57c52'
            '81a4df0b638730cffb7fa263c04841f7ca6b9c9578ee5045db6f30ff0c3fc531'
            'e1123a5d85d2445faac33f6dae1085fdd620d83279a4e130a83fe38db52b62b3'
            '5ba204a2686304b1454d401a39a9d27d09dd25e4529664e3fd565be3d439f8b6')

pkgver() {
  cd glib
  git describe --tags | sed 's/-/+/g'
}

prepare() {
  mkdir -p build glib2-docs/usr/share
  cd glib

  # https://bugzilla.gnome.org/show_bug.cgi?id=786796
  patch -Np1 -i ../0001-docs-Fix-building-with-meson.patch

  # https://bugzilla.gnome.org/show_bug.cgi?id=787671
  patch -Np1 -i ../0001-meson-Fix-permissions-of-installed-scripts.patch

  # https://bugzilla.gnome.org/show_bug.cgi?id=788772
  patch -Np1 -i ../0001-meson-Fix-GDB-scripts-install_dir-for-nix.patch

  # https://bugzilla.gnome.org/show_bug.cgi?id=789681
  patch -Np1 -i ../0001-meson-Fix-libmount-support.patch

  # https://bugzilla.gnome.org/show_bug.cgi?id=788773
  patch -Np1 -i ../libs.diff

  # Suppress noise from glib-compile-schemas.hook
  patch -Np1 -i ../noisy-glib-compile-schemas.diff

  NOCONFIGURE=1 ./autogen.sh
}

build() {
  cd build
  ../glib/configure --prefix=/usr --libdir=/usr/lib \
      --sysconfdir=/etc \
      --with-pcre=system \
      --disable-fam \
      --disable-gtk-doc \
      --disable-shared --enable-static \
      $(check_option debug y && echo --enable-debug=yes)
  make
}

_check() {
  cd build
  rm -rf "$srcdir/test-home"
  mkdir "$srcdir/test-home"
  HOME="$srcdir/test-home" make -j1 check
}

package() {
  pkgdesc+=" (static libraries)"
  depends=(glib2)
  optdepends=()
  options=(staticlibs)

  cd build
  make DESTDIR="$pkgdir" install

  rm -vr -- \
     "$pkgdir"/usr/bin/ \
     "$pkgdir"/usr/include/ \
     "$pkgdir"/usr/lib/glib-*/ \
     "$pkgdir"/usr/lib/pkgconfig/ \
     "$pkgdir"/usr/share/
}

package_glib2-docs() {
  pkgdesc="Documentation for GLib"
  depends=()
  optdepends=()
  license+=(custom)

  mv glib2-docs/* "$pkgdir"
  install -Dt "$pkgdir/usr/share/licenses/glib2-docs" -m644 glib/docs/reference/COPYING
}