summaryrefslogtreecommitdiff
path: root/libre/min
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2017-02-06 00:33:49 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2017-02-06 00:33:49 -0300
commitb59db208b79a19ff4f566335d0d8bb1b3dae69c8 (patch)
treef5623219793fb021506b1e2a0769173c812863d1 /libre/min
parentab0531d59e13e7d170ddaa0039c84b246162c574 (diff)
downloadabslibre-b59db208b79a19ff4f566335d0d8bb1b3dae69c8.tar.gz
abslibre-b59db208b79a19ff4f566335d0d8bb1b3dae69c8.tar.bz2
abslibre-b59db208b79a19ff4f566335d0d8bb1b3dae69c8.zip
min: add new package to [libre] - Privacy issue #1204 -> https://labs.parabola.nu/issues/1204
Diffstat (limited to 'libre/min')
-rw-r--r--libre/min/PKGBUILD76
-rw-r--r--libre/min/icon.patch12
-rw-r--r--libre/min/min.desktop9
-rw-r--r--libre/min/min.js29
-rw-r--r--libre/min/remove_nonprivacy_options.patch107
5 files changed, 233 insertions, 0 deletions
diff --git a/libre/min/PKGBUILD b/libre/min/PKGBUILD
new file mode 100644
index 000000000..164c56260
--- /dev/null
+++ b/libre/min/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 199506 2016-12-15 13:30:22Z tensor5 $
+# Maintainer (Arch): Nicola Squartini <tensor5@gmail.com>
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+pkgname=min
+pkgver=1.5.1
+pkgrel=1.parabola1
+pkgdesc='A smarter, faster web browser, without non-privacy search engines'
+arch=('any')
+url='https://minbrowser.github.io/min'
+license=('Apache')
+depends=('electron')
+makedepends=('nodejs-grunt-cli' 'npm')
+source=("${pkgname}-${pkgver}.tar.gz::https://github.com/minbrowser/min/archive/v${pkgver}.tar.gz"
+ 'min.desktop'
+ 'min.js'
+ 'icon.patch'
+ 'remove_nonprivacy_options.patch')
+sha256sums=('7ccaf8fbcc5b72093b4077b184fef68262b1a4d7d94c4b8cfae2a01b5bdefbd4'
+ 'a779a8daff1d684779ebc6d13ea4c2f09e838df018de41fa19fa3f25aa12e32f'
+ 'c22324184b72b3fad5a0aadb4e18182414e0294c5596c26426adc204fd473258'
+ 'f73d138d68f90e11a60128099b57eecb84a7d067e7f6883ff98924c5f4a61ea8'
+ '2bf4bc0e4eab3adaeca1e5c12f83340f4437024a5d15183304a729ba6cfd52a7')
+
+prepare() {
+ cd ${pkgname}-${pkgver}
+
+ patch -Np1 -i "${srcdir}"/icon.patch
+ patch -Np1 -i "${srcdir}"/remove_nonprivacy_options.patch
+}
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ npm install grunt grunt-contrib-concat grunt-contrib-uglify
+ grunt
+ npm uninstall grunt grunt-contrib-concat grunt-contrib-uglify
+
+ npm install --production
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ appdir=/usr/lib/${pkgname}
+
+ install -dm755 "${pkgdir}"${appdir}
+ cp -r * "${pkgdir}"${appdir}
+
+ install -dm755 "${pkgdir}"/usr/share/icons/hicolor/256x256/apps
+ mv icons/icon256.png \
+ "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/${pkgname}.png
+
+ install -Dm755 "${srcdir}"/${pkgname}.js "${pkgdir}"/usr/bin/${pkgname}
+ install -Dm644 "${srcdir}"/${pkgname}.desktop \
+ "${pkgdir}"/usr/share/applications/${pkgname}.desktop
+
+ # Clean up
+ rm "${pkgdir}"${appdir}/dist/{build,webview}.js
+ rm -r "${pkgdir}"${appdir}/icons
+ rm -r "${pkgdir}"${appdir}/main
+ find "${pkgdir}"${appdir} \
+ -name "package.json" \
+ -exec sed -e "s|${srcdir}/${pkgname}-${pkgver}|${appdir}|" \
+ -i {} \; \
+ -or -name ".*" -prune -exec rm -r '{}' \; \
+ -or -name "Gruntfile.js" -exec rm '{}' \; \
+ -or -name "Makefile" -exec rm '{}' \; \
+ -or -name "bower.json" -exec rm '{}' \; \
+ -or -name "cmd.js" -exec rm '{}' \; \
+ -or -name "coffee" -prune -exec rm -r '{}' \; \
+ -or -name "example" -prune -exec rm -r '{}' \; \
+ -or -name "gulpfile.js" -exec rm '{}' \; \
+ -or -name "test" -prune -exec rm -r '{}' \; \
+ -or -name "tests" -prune -exec rm -r '{}' \;
+}
diff --git a/libre/min/icon.patch b/libre/min/icon.patch
new file mode 100644
index 000000000..5b85742fb
--- /dev/null
+++ b/libre/min/icon.patch
@@ -0,0 +1,12 @@
+--- a/main/main.js
++++ b/main/main.js
+@@ -78,8 +78,7 @@
+ y: bounds.y,
+ minWidth: 320,
+ minHeight: 500,
+- titleBarStyle: 'hidden-inset',
+- icon: __dirname + '/icons/icon256.png'
++ titleBarStyle: 'hidden-inset'
+ })
+
+ // and load the index.html of the app.
diff --git a/libre/min/min.desktop b/libre/min/min.desktop
new file mode 100644
index 000000000..dbf9ca61f
--- /dev/null
+++ b/libre/min/min.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Min
+GenericName=Web Browser
+Comment=A smarter, faster web browser
+Icon=min
+Exec=min
+Categories=GTK;Network;WebBrowser;
+StartupNotify=true
diff --git a/libre/min/min.js b/libre/min/min.js
new file mode 100644
index 000000000..e3bfeba0f
--- /dev/null
+++ b/libre/min/min.js
@@ -0,0 +1,29 @@
+#!/usr/bin/electron
+
+const name = 'min';
+
+const {app} = require('electron');
+const fs = require('fs');
+const path = require('path');
+
+// Change command name.
+const fd = fs.openSync('/proc/self/comm', fs.constants.O_WRONLY);
+fs.writeSync(fd, name);
+fs.closeSync(fd);
+
+// Remove first command line argument (/usr/bin/electron).
+process.argv.splice(0, 1);
+
+// Set application paths.
+const appPath = path.join(path.dirname(__dirname), 'lib', name);
+const packageJson = require(path.join(appPath, 'package.json'));
+const productName = packageJson.productName;
+app.setAppPath(appPath);
+app.setDesktopName(name + '.desktop');
+app.setName(productName);
+app.setPath('userCache', path.join(app.getPath('cache'), productName));
+app.setPath('userData', path.join(app.getPath('appData'), productName));
+app.setVersion(packageJson.version);
+
+// Run the application.
+require('module')._load(appPath, module, true);
diff --git a/libre/min/remove_nonprivacy_options.patch b/libre/min/remove_nonprivacy_options.patch
new file mode 100644
index 000000000..de34ccd69
--- /dev/null
+++ b/libre/min/remove_nonprivacy_options.patch
@@ -0,0 +1,107 @@
+diff --git a/js/searchbar/bangsPlugin.js b/js/searchbar/bangsPlugin.js
+index 176c3c8f5..016c11229 100644
+--- a/js/searchbar/bangsPlugin.js
++++ b/js/searchbar/bangsPlugin.js
+@@ -105,7 +105,18 @@ function showBangSearchResults (results, input, event, container) {
+ function getBangSearchResults (text, input, event, container) {
+
+ // get results from DuckDuckGo if it is a search engine, and the current tab is not a private tab
+- if (currentSearchEngine.name === 'DuckDuckGo' && !tabs.get(tabs.getSelected()).private) {
++ if (currentSearchEngine.name === 'DuckDuckGo HTML' && !tabs.get(tabs.getSelected()).private) {
++ fetch('https://ac.duckduckgo.com/ac/?t=min&q=' + encodeURIComponent(text), {
++ cache: 'force-cache'
++ })
++ .then(function (response) {
++ return response.json()
++ })
++ .then(function (results) {
++ // show the DuckDuckGo results, combined with the custom !bangs
++ showBangSearchResults(results.concat(searchCustomBangs(text)), input, event, container)
++ })
++ } else if (currentSearchEngine.name === 'DuckDuckGo Lite' && !tabs.get(tabs.getSelected()).private) {
+ fetch('https://ac.duckduckgo.com/ac/?t=min&q=' + encodeURIComponent(text), {
+ cache: 'force-cache'
+ })
+diff --git a/js/searchbar/instantAnswerPlugin.js b/js/searchbar/instantAnswerPlugin.js
+index 22ab0da84..ea385692d 100644
+--- a/js/searchbar/instantAnswerPlugin.js
++++ b/js/searchbar/instantAnswerPlugin.js
+@@ -1,6 +1,8 @@
+ function showSearchbarInstantAnswers (text, input, event, container) {
+ // only make requests to the DDG api if DDG is set as the search engine
+- if (currentSearchEngine.name !== 'DuckDuckGo') {
++ if (currentSearchEngine.name !== 'DuckDuckGo HTML') {
++ return
++ } else if (currentSearchEngine.name !== 'DuckDuckGo Lite') {
+ return
+ }
+
+diff --git a/js/searchbar/searchSuggestionsPlugin.js b/js/searchbar/searchSuggestionsPlugin.js
+index 7c3dc5e91..fcd2d544c 100644
+--- a/js/searchbar/searchSuggestionsPlugin.js
++++ b/js/searchbar/searchSuggestionsPlugin.js
+@@ -2,7 +2,9 @@ var ddgAttribution = 'Results from DuckDuckGo'
+
+ function showSearchSuggestions (text, input, event, container) {
+ // TODO support search suggestions for other search engines
+- if (currentSearchEngine.name !== 'DuckDuckGo') {
++ if (currentSearchEngine.name !== 'DuckDuckGo HTML') {
++ return
++ } else if (currentSearchEngine.name !== 'DuckDuckGo Lite') {
+ return
+ }
+
+diff --git a/js/util/searchEngine.js b/js/util/searchEngine.js
+index 18ff46e20..1353aa855 100644
+--- a/js/util/searchEngine.js
++++ b/js/util/searchEngine.js
+@@ -3,28 +3,20 @@ var currentSearchEngine = {
+ searchURL: '%s'
+ }
+
+-var defaultSearchEngine = 'DuckDuckGo'
++var defaultSearchEngine = 'DuckDuckGo HTML'
+
+ var searchEngines = {
+- DuckDuckGo: {
+- name: 'DuckDuckGo',
+- searchURL: 'https://duckduckgo.com/?q=%s&t=min'
++ DuckDuckGoHTML: {
++ name: 'DuckDuckGo HTML',
++ searchURL: 'https://duckduckgo.com/html/?q=%s&t=min'
+ },
+- Google: {
+- name: 'Google',
+- searchURL: 'https://google.com/search?q=%s'
++ DuckDuckGoLite: {
++ name: 'DuckDuckGo Lite',
++ searchURL: 'https://duckduckgo.com/lite/?q=%s&t=min'
+ },
+- Bing: {
+- name: 'Bing',
+- searchURL: 'https://www.bing.com/search?q=%s'
+- },
+- Yahoo: {
+- name: 'Yahoo',
+- searchURL: 'https://search.yahoo.com/yhs/search?p=%s'
+- },
+- Baidu: {
+- name: 'Baidu',
+- searchURL: 'https://www.baidu.com/s?wd=%s'
++ searx: {
++ name: 'searx',
++ searchURL: 'https://searx.laquadrature.net/search?q=%s'
+ },
+ StartPage: {
+ name: 'StartPage',
+@@ -34,10 +26,6 @@ var searchEngines = {
+ name: 'Wikipedia',
+ searchURL: 'https://wikipedia.org/w/index.php?search=%s'
+ },
+- Yandex: {
+- name: 'Yandex',
+- searchURL: 'https://yandex.com/search/?text=%s'
+- },
+ none: {
+ name: 'none',
+ searchURL: 'http://%s'