PKGBUILD 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # Maintainer (arch): Alexander F. Rødseth <xyproto@archlinux.org>
  2. # Contributor: Paulo Matias <matiasΘarchlinux-br·org>
  3. # Contributor: Georgij Kondratjev <smpuj@bk.ru>
  4. # Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
  5. # Contributor: André Silva <emulatorman@hyperbola.info>
  6. # Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
  7. # Contributor: bill-auger <bill-auger@programmer.net>
  8. # parabola changes and rationale:
  9. # - remove/replace non-privacy remote services
  10. pkgname=netsurf
  11. pkgver=3.11
  12. pkgrel=1
  13. pkgrel+=.parabola1
  14. pkgdesc='Lightweight and fast web browser'
  15. pkgdesc+=', without non-privacy remote services'
  16. arch=(x86_64)
  17. arch+=(armv7h i686)
  18. url='https://www.netsurf-browser.org/'
  19. license=(GPL2 MIT)
  20. depends=(curl gtk3 'libcss>=0.9.2' 'libdom>=0.4.2' 'libhubbub=0.3.8'
  21. libjpeg-turbo 'libnsbmp>=0.1.7' 'libnsgif>=1.0.0' 'libnsutils=0.1.1'
  22. 'libutf8proc>=2.9.0' 'libwapcaplet>=0.4.3' libwebp)
  23. # vim is needed only for xxd when building
  24. makedepends=(check inetutils 'nsgenbind>=0.9' perl-html-parser setconf vim)
  25. source=("https://git.netsurf-browser.org/netsurf.git/snapshot/netsurf-release/$pkgver.tar.bz2"
  26. netsurf.sh)
  27. source+=(remove_nonprivacy_options.patch)
  28. b2sums=('9714735389aa752b5e11a13c3e6e4fc456589517e98fe55025725e05e38a52afea377d53703553ec9d94e492c58f7e1b5ed04c7a0c4fb5158c3053eeedfddcdc'
  29. 'f0220a0c2c03d567434deeed20f821dc110947e16889aa78e12e3f468a431d2f721b9cff23bd6ed3545323f3ed975ea0941f0ee61c4b09938b8bfb99764f8bc8')
  30. b2sums+=('5e0dfb2e3f7fae9a9f346d825480c0cda397444e7ec7e1ae0f41ae0cf31aabff8825ec893cd0e2b940dc21e1599b52454f46e9d53a2b0990f53a7b6ceb382af0')
  31. prepare() {
  32. cd $pkgname-release/$pkgver
  33. # Fix compilation issues
  34. sed -i 's:libutf8proc/::;s:UTF8PROC_CCC_VIRAMA:UTF8PROC_BIDI_CLASS_EN:' utils/idna.c
  35. # Use "netsurf" as the name of the executable in /usr/bin
  36. setconf frontends/gtk/res/netsurf-gtk.desktop 'Exec=netsurf %u'
  37. ## parabola patching ##
  38. # remove/replace non-privacy remote services
  39. cd "${srcdir}"/$pkgname-release/$pkgver
  40. echo "applying remove_nonprivacy_options.patch"
  41. patch -p1 -i "${srcdir}"/remove_nonprivacy_options.patch
  42. # replace search form URL and "quick links" on the welcome page
  43. local welcome_pages=( $(find -name welcome.html) )
  44. local search_repl='
  45. <form method="get" id="search" action="https://html.duckduckgo.com/html/">
  46. <div class="websearch">
  47. <input type="text" name="q" maxlength="255" placeholder="Search" />
  48. <input type="hidden" name="k9" value="b" />
  49. <input type="submit" value="Search" name="btnG" />
  50. </div>
  51. </form>'
  52. local links_repl='
  53. <h4 style="text-align: center">Quick links:</h4>
  54. <div class="links">
  55. <ul>
  56. <li><a href="https://www.parabola.nu/">Parabola</a></li>
  57. <li><a href="https://www.fsf.org/">FSF</a></li>
  58. <li><a href="https://www.gnu.org/">GNU</a></li>
  59. </ul>
  60. <ul>
  61. <li><a href="https://html.duckduckgo.com/html/">DuckDuckGo</a></li>
  62. <li><a href="https://www.wikipedia.org/">Wikipedia</a></li>
  63. </ul>
  64. <ul>
  65. <li><a href="https://creativecommons.org/">Creative Commons</a></li>
  66. <li><a href="https://www.dictionary.com/">Dictionary.com</a></li>
  67. </ul>
  68. </div>'
  69. local search_awk_prog='BEGIN { RS=SUBSEP } { gsub(/<form method="get".*<\/form>/ , repl) ; } 1'
  70. local links_awk_prog=' BEGIN { RS=SUBSEP } { gsub(/<div class="links">.*<\/div>/ , repl) ; } 1'
  71. local welcome_page
  72. for welcome_page in ${welcome_pages[*]}
  73. do sed -i '/Download latest NetSurf/d' ${welcome_page}
  74. awk -i inplace -v repl="${search_repl}" "${search_awk_prog}" ${welcome_page}
  75. awk -i inplace -v repl="${links_repl}" "${links_awk_prog}" ${welcome_page}
  76. case "${welcome_page}" in
  77. */en/welcome.html ) sed -i 's|www.wikipedia.org|en.wikipedia.org|' ${welcome_page} ;;
  78. */de/welcome.html ) sed -i 's|www.wikipedia.org|de.wikipedia.org|' ${welcome_page} ;;
  79. */it/welcome.html ) sed -i 's|www.wikipedia.org|it.wikipedia.org|' ${welcome_page} ;;
  80. */ja/welcome.html ) sed -i 's|www.wikipedia.org|ja.wikipedia.org|' ${welcome_page} ;;
  81. */nl/welcome.html ) sed -i 's|www.wikipedia.org|nl.wikipedia.org|' ${welcome_page} ;;
  82. */zh_CN/welcome.html) sed -i 's|www.wikipedia.org|zh.wikipedia.org|' ${welcome_page} ;;
  83. esac
  84. done
  85. # patching checks
  86. local err_msg="ERROR: search engines patching needs re-working"
  87. ! grep -i google ${welcome_pages[*]} || ! echo "$err_msg" || return 1
  88. }
  89. build() {
  90. export CFLAGS+=' -Os -funroll-loops -w'
  91. make -C $pkgname-release/$pkgver INCLUDEDIR=include LIBDIR=lib \
  92. NETSURF_UA_FORMAT_STRING='"Mozilla/5.0 (Arch Linux; %s) NetSurf/%d.%d"' \
  93. PREFIX=/usr TARGET=gtk3
  94. }
  95. package() {
  96. make -C $pkgname-release/$pkgver DESTDIR="$pkgdir" INCLUDEDIR=include LIBDIR=lib PREFIX=/usr TARGET=gtk3 install
  97. install -Dm755 $pkgname.sh "$pkgdir/usr/bin/$pkgname"
  98. cd $pkgname-release/$pkgver
  99. install -Dm644 frontends/gtk/res/$pkgname.xpm "$pkgdir/usr/share/pixmaps/$pkgname.xpm"
  100. install -Dm644 frontends/gtk/res/$pkgname-gtk.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
  101. install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
  102. }