summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 8c53bb2937f0b27983e23d0327cb38d17cec4986 (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
119
120
121
122
123
124
125
126
127
128
# $Id: PKGBUILD 312979 2018-03-27 23:00:59Z foutrelis $
# Maintainer: Connor Behan <connor.behan@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>

pkgname=xulrunner
pkgver=41.0.2
pkgrel=18
pkgdesc="Mozilla Runtime Environment"
arch=('x86_64')
license=('MPL' 'GPL' 'LGPL')
depends=('gtk2' 'mozilla-common' 'nss>3.18' 'libxt' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'libpulse' 'libevent' 'libvpx' 'icu' 'python2' 'libpng-apng' 'alsa-lib')
makedepends=('gcc6' 'zip' 'unzip' 'pkg-config' 'diffutils' 'yasm' 'mesa' 'gconf' 'autoconf2.13' 'gst-plugins-base-libs')
url="http://wiki.mozilla.org/XUL:Xul_Runner"
source=(https://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/$pkgver/source/xulrunner-$pkgver.source.tar.xz
        mozconfig
        freetype261.patch
        0001-Bug-1233963-Work-around-recent-GNU-gold-behavior-wit.patch
        0001-Bug-1329798-Include-sys-sysmacros.h-for-major-minor-on-Linux.patch
	Bug-1269171.patch
        LFS_graphite2_harfbuzz.patch
        mozilla-pkgconfig.patch
        shared-libs.patch
        sed43.patch
        gcc6.diff
        sysctl.patch
        gettid.patch)
options=('!emptydirs' '!makeflags' 'staticlibs')
replaces=('xulrunner-oss')
sha256sums=('f7abb2e2989779305ab1f80d30caf9fc55d96c7e66d1394e2cc9639442e2b864'
            '8ab57ae3ba4660a721cdb210babee02488b670d9af9fdecf5da3b832d77e342b'
            '3aea9a83bf304da5525f34a911712cf42f8ded1c8b6becf0a2cf8a4b4f7facd6'
            '13a27a385fab88938ac7417f1e7ca7225ec6b88840bafe67e0f5642e5446554a'
            '815cf186cd697ee3277d7b661285f13b5db65a582379df78696d7502fb09b520'
            'bd78da5d5319c8eb6a9195c3bd35bf919f9a9c030d69890f42e96171e32be60f'
            'afcd7d3f6113b0f9ead0cb1b47b3fccedadce56a16b4406c439411864bd11863'
            '1aa9ebe67542a2b8c28905d070829ada5b29438c6a7961f2b0cdd6b92d8b9f5c'
            '59d9fc421bc10a5515b73e159f44a72365bf7b7e8b3fc8a8c46043ef40bd3a40'
            'e9b7199b57fa07e440d37db0cc3cf52aa1c1fd7d5e8b31db14e511d77b5ce327'
            '0992d5dce883de760ff0445448466f096d0baa75fe5fd1e60bfd3cc13cb4d098'
            'ef0571447499fbf64e5c4723760c73f86b9e10b80df33e6a2979b6b02e3ae68e'
            'b5d5f8a94ff490fe3e9d26f339e2a40d2e4c349d03e9d38f08ae16eddc7f45fe')
prepare() {
  cd "$srcdir/mozilla-release"
  cp "$srcdir/mozconfig" .mozconfig

  # https://bugzilla.mozilla.org/show_bug.cgi?id=1329272
  patch -Np1 -i ../sed43.patch

  # https://bugzilla.mozilla.org/show_bug.cgi?id=1194520
  patch -Np1 -i ../freetype261.patch

  # https://bugzilla.mozilla.org/show_bug.cgi?id=1233963
  patch -Np1 -i ../0001-Bug-1233963-Work-around-recent-GNU-gold-behavior-wit.patch

  # It would be great to track down all the gcc7 fixes
  # https://bugzilla.mozilla.org/show_bug.cgi?id=1269171
  patch -Np1 -i ../gcc6.diff
  patch -Np1 -i ../Bug-1269171.patch

  # Fix for Bug 1329798 "Use of major & minor macros without including sys/sysmacros.h"
  patch -Np1 -i ../0001-Bug-1329798-Include-sys-sysmacros.h-for-major-minor-on-Linux.patch

  # Fix for removing sys/sysctl.h and declaration of gettid
  patch -Np1 -i ../sysctl.patch
  patch -Np1 -i ../gettid.patch

  # https://bugzilla.mozilla.org/show_bug.cgi?id=847568
  patch -Np1 -i ../LFS_graphite2_harfbuzz.patch
  sed -i -e "s|lcrmf|lm|g" configure.in
  sed -i -e "/lcrmf/d" config/external/nss/crmf/moz.build
  rm configure
  autoconf-2.13

  # fix libdir/sdkdir - fedora
  patch -Np1 -i ../mozilla-pkgconfig.patch
  patch -Np1 -i ../shared-libs.patch

  # WebRTC build tries to execute "python" and expects Python 2
  # Workaround taken from chromium PKGBUILD
  mkdir -p "$srcdir/python2-path"
  ln -sf /usr/bin/python2 "$srcdir/python2-path/python"

  # configure script misdetects the preprocessor without an optimization level
  # https://bugs.archlinux.org/task/34644
  sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure
}

build() {
  cd "$srcdir/mozilla-release"

  export PATH="$srcdir/python2-path:$PATH"
  export LDFLAGS="$LDFALGS -Wl,-rpath,/usr/lib/xulrunner-$pkgver"
  export PYTHON="/usr/bin/python2"

  export CFLAGS="${CFLAGS/-fstack-clash-protection/}"
  export CFLAGS="${CFLAGS/-fcf-protection/}"
  export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/}"
  export CXXFLAGS="${CXXFLAGS/-fcf-protection/}"

  make -j1 -f client.mk build
}

package() {
  cd "$srcdir/mozilla-release"
  
  export CFLAGS="${CFLAGS/-fstack-clash-protection/}"
  export CFLAGS="${CFLAGS/-fcf-protection/}"
  export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/}"
  export CXXFLAGS="${CXXFLAGS/-fcf-protection/}"

  make -j1 -f client.mk DESTDIR="$pkgdir" install

  # Use system-provided dictionaries
  rm -rf "$pkgdir"/usr/lib/xulrunner-$pkgver/{dictionaries,hyphenation}
  ln -sf /usr/share/hunspell "$pkgdir/usr/lib/xulrunner-$pkgver/dictionaries"
  ln -sf /usr/share/hyphen "$pkgdir/usr/lib/xulrunner-$pkgver/hyphenation"

  # add xulrunner library path to ld.so.conf
  install -d $pkgdir/etc/ld.so.conf.d
  echo "/usr/lib/xulrunner-$pkgver" > $pkgdir/etc/ld.so.conf.d/xulrunner.conf

  chmod +x "${pkgdir}/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpt.py"
  chmod +x "${pkgdir}/usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpcshell"
  ln -s /usr/lib/xulrunner-devel-$pkgver/sdk/bin/xpcshell "${pkgdir}/usr/lib/xulrunner-$pkgver/xpcshell"
  sed -i 's|!/usr/bin/env python$|!/usr/bin/env python2|' \
    "$pkgdir"/usr/lib/xulrunner-devel-$pkgver/sdk/bin/{xpt,header,typelib,xpidl}.py
}