summaryrefslogtreecommitdiff
path: root/libre/netsurf/PKGBUILD
blob: 1cc1b8383130ed12e188aeab03d9c99a59e03a46 (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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# Maintainer (Arch): Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor (Arch): Paulo Matias <matiasΘarchlinux-br·org>
# Contributor (Arch): Georgij Kondratjev <smpuj@bk.ru>
# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
# Maintainer (Hyperbola): André Silva <emulatorman@hyperbola.info>
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>

pkgname=netsurf
pkgver=3.9
pkgrel=2
pkgrel+=.par1
pkgdesc='Lightweight and fast web browser'
pkgdesc+=', without non-privacy search engines'
arch=(x86_64)
arch+=(i686 armv7h)
url='https://www.netsurf-browser.org/'
license=(MIT GPL2)
replaces=(${pkgname}-libre)
conflicts=(${pkgname}-libre)
depends=(curl gtk3 'libhubbub=0.3.6' libjpeg-turbo 'libnsutils=0.0.5-4'
         'libutf8proc>=2.4.0' 'libwapcaplet>=0.4.2' 'libdom>=0.4.0')
# vim is needed only for xxd when building
makedepends=(check inetutils 'libcss>=0.9.0' 'libnsbmp>=0.1.5'
             'libnsgif>=0.2.1' 'nsgenbind>=0.7' perl-html-parser setconf vim)
source=("https://download.netsurf-browser.org/netsurf/releases/source-full/netsurf-all-$pkgver.tar.gz"
        netsurf.sh
        remove_nonprivacy_options.patch)
sha256sums=('11e384eaf47e65c186da5001f1055a02f2d72ff17b50f403b8392546a2cf65ff'
            '34c1f41c02ff3791a1b734197d99ec7f58c403dee05f0f9b7b9b3509d32b51ac'
            '61bec340c47a089b1b5c33d3ae330a340999a1e40be7fc8768fa572c6ca3b617')

prepare() {
  cd "$pkgname-all-$pkgver/$pkgname"

  # Fix compilation issues
  sed -i 's:libutf8proc/::;s:UTF8PROC_CCC_VIRAMA:UTF8PROC_BIDI_CLASS_EN:' \
    utils/idna.c

  # Use "netsurf" as the name of the executable in /usr/bin
  setconf frontends/gtk/res/netsurf-gtk.desktop 'Exec=netsurf %u'

  # Set build configuration in Makefile.defaults
  for opt in \
    NETSURF_UA_FORMAT_STRING='"NetSurf/%d.%d (%s; Arch Linux)"' \
    NETSURF_USE_DUKTAPE=YES
  do
    setconf Makefile.defaults "$opt"
  done

  # remove non-privacy search engines
  sed -i '\|Google|d
          \|Yahoo|d
          \|Bing|d
          \|Business.com|d
          \|Omgili|d
          \|BBC News|d
          \|Ubuntu Packages|d
          \|Ask[.]com|d
          \|Answers.com|d
          \|Youtube|d
          \|AeroMp3|d
          \|AOL|d
          \|Baidu|d
          \|Amazon|d
          \|Ebay|d
          \|IMDB|d
          \|ESPN|d
          s|DuckDuckGo|DuckDuckGo HTML|
          s|duckduckgo[.]com|duckduckgo.com/html|
          s|duckduckgo[.]com/html/favicon.ico|duckduckgo.com/favicon.ico|
          s|seeks-project.info|seeks.fr|g
         ' frontends/riscos/appdir/Resources/SearchEngines \
           resources/SearchEngines
  sed -i '\|readable name such as| s|google|duckduckgo|
          \|readable name such as| s|yahoo|seeks|
          \|host address such as www[.]google[.]com| s|google[.]com|duckduckgo.com/html|
          s|google[.]com?search=%s|duckduckgo.com/html/?q=%s|
          \|return strdup| s|google[.]com|duckduckgo.com/html|
          \|return strdup| s|google|duckduckgo|
          \|return strdup| s|duckduckgo[.]com/html/favicon[.]ico|duckduckgo.com/favicon.ico|
          s|www[.]google[.]com/search?q=%s|duckduckgo.com/html/?q=%s|
         ' desktop/searchweb.c
  sed -i 's|google[.][.a-z]\{0,6\}/search|duckduckgo.com/html/search|
          s|Google-Suche|DuckDuckGo HTML|
          s|Google Search|DuckDuckGo HTML|
          s|Ricerca Google|DuckDuckGo HTML|
          s|Google検索|DuckDuckGo HTML|
          \|BBC News|d
          \|Reuters|d
          \|CNN|d
          \|Slashdot|d
          \|Ars Technica|d
          \|The Register|d
          \|W3C|d
          s|google[.][.a-z]\{0,6\}|duckduckgo.com/html|
          s|Google|DuckDuckGo HTML|
          s|[.a-z]\{0,4\}yahoo[.]co[.a-z]\{0,4\}|www.seeks.fr|
          s|Yahoo!|Seeks|
          \|IMDB|d
          s|The Icon Bar|Creative Commons|
          s|www[.]iconbar[.]com|creativecommons.org|
          s|ROOL|Dictionary.com|
          s|www[.]riscosopen[.]org|dictionary.reference.com|
          \|riscos.info|d
         ' frontends/riscos/appdir/Resources/de/welcome.html\,faf \
           frontends/riscos/appdir/Resources/en/welcome.html\,faf \
           frontends/riscos/appdir/Resources/it/welcome.html\,faf \
           frontends/riscos/appdir/Resources/ja/welcome.html\,faf \
           frontends/riscos/appdir/Resources/nl/welcome.html\,faf
  sed -i 's|Google|DuckDuckGo HTML|
         ' frontends/amiga/dist/NetSurf.guide
  # patch and remove anything that's left
  patch -p1 -i ../../remove_nonprivacy_options.patch
}

build() {
  CFLAGS="$CFLAGS -w -Os -funroll-loops" make \
    -C "$pkgname-all-$pkgver/$pkgname" \
    NETSURF_GTK_MAJOR=3 \
    TARGET=gtk \
    LIBDIR=lib \
    INCLUDEDIR=include \
    PREFIX=/usr
}

package() {
  make -C "$pkgname-all-$pkgver/$pkgname" \
    TARGET=gtk \
    NETSURF_GTK_MAJOR=3 \
    LIBDIR=lib \
    INCLUDEDIR=include \
    DESTDIR="$pkgdir" \
    PREFIX=/usr \
    install

  # Launch script
  install -Dm755 $pkgname.sh "$pkgdir/usr/bin/$pkgname"

  cd "$pkgname-all-$pkgver/$pkgname"

  # Desktop icon and shortcut
  install -Dm644 frontends/gtk/res/$pkgname.xpm \
    "$pkgdir/usr/share/pixmaps/$pkgname.xpm"
  install -Dm644 frontends/gtk/res/$pkgname-gtk.desktop \
    "$pkgdir/usr/share/applications/$pkgname.desktop"

  # License
  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}

# vim: ts=2 sw=2 et: