summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/calibre-libre/PKGBUILD8
-rw-r--r--libre/cups-filters-libre/PKGBUILD8
-rw-r--r--libre/iceweasel-libre/PKGBUILD6
-rw-r--r--libre/iceweasel-libre/gnu_headshadow.pngbin0 -> 6785 bytes
-rw-r--r--libre/iceweasel-libre/libre.patch697
-rw-r--r--libre/iceweasel-libre/libre.patch.goal935
-rw-r--r--libre/kdebase-konqueror-libre/PKGBUILD6
-rw-r--r--libre/kdebase-runtime-libre/PKGBUILD8
-rw-r--r--libre/kdelibs-libre/PKGBUILD8
-rw-r--r--libre/kdenetwork-kopete-libre/PKGBUILD19
-rw-r--r--libre/kdenetwork-kopete-libre/libotr3.patch71
-rw-r--r--libre/kdenetwork-kopete-libre/mediastreamer29.patch22
-rw-r--r--libre/kdepim-libre/PKGBUILD79
-rw-r--r--libre/kdeutils-ark-libre/PKGBUILD6
-rw-r--r--libre/lirc-libre/PKGBUILD12
-rw-r--r--libre/qupzilla-libre/PKGBUILD72
-rw-r--r--libre/reflector/PKGBUILD16
-rw-r--r--libre/reflector/rebranding.patch59
-rw-r--r--libre/vhba-module-libre/PKGBUILD6
-rw-r--r--nonprism/kdenetwork-kopete-libre-nonprism/PKGBUILD18
-rw-r--r--nonprism/kdenetwork-kopete-libre-nonprism/libotr3.patch71
-rw-r--r--nonprism/kdenetwork-kopete-libre-nonprism/mediastreamer29.patch22
-rw-r--r--nonprism/kdepim-runtime-nonprism/PKGBUILD6
-rw-r--r--pcr/mathjax/PKGBUILD23
-rw-r--r--pcr/twinkle/PKGBUILD2
-rw-r--r--pcr/youtube-dl-current/PKGBUILD4
-rw-r--r--~drtan/parabola-gnome/PKGBUILD4
27 files changed, 1706 insertions, 482 deletions
diff --git a/libre/calibre-libre/PKGBUILD b/libre/calibre-libre/PKGBUILD
index 5da84aa34..d1a2acc20 100644
--- a/libre/calibre-libre/PKGBUILD
+++ b/libre/calibre-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 102730 2013-12-17 20:47:06Z jelle $
+# $Id: PKGBUILD 102801 2013-12-20 12:03:53Z jelle $
# Maintainer: jelle van der Waa <jelle@vdwaa.nl>
# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
@@ -9,8 +9,8 @@
_pkgname=calibre
pkgname=calibre-libre
-pkgver=1.15.0
-pkgrel=2
+pkgver=1.16.0
+pkgrel=1
pkgdesc="Ebook management application, with unar support"
arch=('i686' 'x86_64' 'mips64el')
url="http://calibre-ebook.com/"
@@ -30,7 +30,7 @@ install=calibre.install
source=("http://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz"
'desktop_integration.patch'
'calibre-mount-helper')
-md5sums=('ee72ec13e501b51f22916ea94d26c610'
+md5sums=('3a7363d6cceedad5c3253d03273ee7d8'
'95ca4eb3afa7c737c8371708a23bdad9'
'675cd87d41342119827ef706055491e7')
diff --git a/libre/cups-filters-libre/PKGBUILD b/libre/cups-filters-libre/PKGBUILD
index ce0e7f84c..528649cb4 100644
--- a/libre/cups-filters-libre/PKGBUILD
+++ b/libre/cups-filters-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 200666 2013-12-01 12:55:13Z andyrtr $
+# $Id: PKGBUILD 202372 2013-12-21 13:31:03Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=cups-filters-libre
_pkgname=cups-filters
-pkgver=1.0.42
-pkgrel=2
+pkgver=1.0.43
+pkgrel=1
pkgdesc="OpenPrinting CUPS Filters, without foomatic-db-nonfree recommendation"
arch=('i686' 'x86_64')
url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting"
@@ -20,7 +20,7 @@ source=(http://www.openprinting.org/download/cups-filters/$_pkgname-$pkgver.tar.
provides=("${_pkgname}=${pkgver}" 'foomatic-filters')
replaces=("${_pkgname}" 'foomatic-filters')
conflicts=("${_pkgname}" 'foomatic-filters')
-md5sums=('e1282d50efca7606a80dbd4a3355267b')
+md5sums=('d1dbd200845db729bf18817f3a49c2c1')
build() {
cd $_pkgname-$pkgver
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 69abce460..043e68da8 100644
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -53,6 +53,7 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2"
mozconfig
mozconfig.pgo
libre.patch
+ gnu_headshadow.png
iceweasel.desktop
iceweasel-install-dir.patch
vendor.js
@@ -63,7 +64,8 @@ md5sums=('219cf21e0642e8a364365286f23d0624'
'2001d0477bcefd0eeaab584402133691'
'023120a970670dc85cea19393f0b94b6'
'df08eaa1ac3bc6c2356be4fbf8ec8932'
- '74b5e9d9d16cfe9dc7d08fabf1f52c7c'
+ '6df26fc131b88c9ec894757681e7f6a6'
+ 'b03a979a78484503ba8dddad4f2c96d1'
'7b9e5996dd9fe0b186a43a297db1c6b5'
'6620e724ec9a1be74e65089d81d802f7'
'816013881cfc9a1f4f0ede72b014f8b3'
@@ -92,6 +94,8 @@ prepare() {
quilt push -av
+ install -m644 "$srcdir/gnu_headshadow.png" browser/base/content/abouthome # Put gnu_headshadow.png on the source code
+
patch -Np1 -i "$srcdir/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch" # Adding fixed Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
patch -Np1 -i "$srcdir/Fixup-Reset-Firefox-after-bad-merge.patch"
patch -Np1 -i "$srcdir/iceweasel-install-dir.patch" # install to /usr/lib/$_pkgname
diff --git a/libre/iceweasel-libre/gnu_headshadow.png b/libre/iceweasel-libre/gnu_headshadow.png
new file mode 100644
index 000000000..e0f73a3bf
--- /dev/null
+++ b/libre/iceweasel-libre/gnu_headshadow.png
Binary files differ
diff --git a/libre/iceweasel-libre/libre.patch b/libre/iceweasel-libre/libre.patch
index a4eb23831..ced25fcc5 100644
--- a/libre/iceweasel-libre/libre.patch
+++ b/libre/iceweasel-libre/libre.patch
@@ -1,8 +1,20 @@
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
-index 331edc8..e18bd20 100644
+index 331edc8..226508d 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
-@@ -1283,14 +1283,6 @@ pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
+@@ -242,11 +242,6 @@ pref("browser.slowStartup.notificationDisabled", false);
+ pref("browser.slowStartup.timeThreshold", 60000);
+ pref("browser.slowStartup.maxSamples", 5);
+
+-// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into
+-// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream
+-// repackager of this code using an alternate snippet url, please keep your users safe
+-pref("browser.aboutHomeSnippets.updateUrl", "https://snippets.mozilla.com/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/");
+-
+ pref("browser.enable_automatic_image_resizing", true);
+ pref("browser.chrome.site_icons", true);
+ pref("browser.chrome.favicons", true);
+@@ -1283,11 +1278,7 @@ pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
// (This is intentionally on the high side; see bug 746055.)
pref("image.mem.max_decoded_image_kb", 256000);
@@ -11,17 +23,15 @@ index 331edc8..e18bd20 100644
-
-pref("social.sidebar.open", true);
-pref("social.sidebar.unload_timeout_ms", 10000);
--
--pref("dom.identity.enabled", false);
--
- // Turn on the CSP 1.0 parser for Content Security Policy headers
- pref("security.csp.speccompliant", true);
++// removed facebook sidebar with Iceweasel.
+
+ pref("dom.identity.enabled", false);
diff --git a/browser/base/content/abouthome/aboutHome.css b/browser/base/content/abouthome/aboutHome.css
-index c270318..8a647c7 100644
+index c270318..d4ecde0 100644
--- a/browser/base/content/abouthome/aboutHome.css
+++ b/browser/base/content/abouthome/aboutHome.css
-@@ -49,11 +49,6 @@ a {
+@@ -49,15 +49,6 @@ a {
background-repeat: no-repeat;
}
@@ -30,10 +40,14 @@ index c270318..8a647c7 100644
- width: 470px;
-}
-
- #searchForm {
+-#searchForm {
+- display: -moz-box;
+-}
+-
+ #searchLogoContainer {
display: -moz-box;
- }
-@@ -72,8 +67,7 @@ a {
+ -moz-box-align: center;
+@@ -72,8 +63,7 @@ a {
#searchEngineLogo {
display: inline-block;
height: 28px;
@@ -43,7 +57,7 @@ index c270318..8a647c7 100644
}
#searchText {
-@@ -145,48 +139,6 @@ a {
+@@ -145,48 +135,6 @@ a {
transition-duration: 0ms;
}
@@ -92,7 +106,40 @@ index c270318..8a647c7 100644
#launcher {
display: -moz-box;
-moz-box-align: center;
-@@ -366,20 +318,6 @@ body[narrow] #restorePreviousSession::before {
+@@ -335,26 +283,25 @@ body[narrow] #restorePreviousSession::before {
+ width: 32px;
+ }
+
+-#aboutMozilla {
++#aboutGNU {
+ display: block;
+- position: relative; /* pin wordmark to edge of document, not of viewport */
+ -moz-box-ordinal-group: 0;
+ opacity: .5;
+ transition: opacity 150ms;
+ }
+
+-#aboutMozilla:hover {
++#aboutGNU:hover {
+ opacity: 1;
+ }
+
+-#aboutMozilla::before {
+- content: url("chrome://browser/content/abouthome/mozilla.png");
++#aboutGNU::before {
++ content: url("chrome://browser/content/abouthome/gnu_headshadow.png");
+ display: block;
+ position: absolute;
+ top: 12px;
+ right: 12px;
+- width: 69px;
+- height: 19px;
++ width: 200px;
++ height: 110px;
+ }
+
+ /* [HiDPI]
+@@ -366,26 +313,6 @@ body[narrow] #restorePreviousSession::before {
background-image: url("chrome://branding/content/about-logo@2x.png");
}
@@ -110,14 +157,30 @@ index c270318..8a647c7 100644
- background-image: url("chrome://browser/content/abouthome/snippet2@2x.png");
- }
-
- .launchButton::before,
- #aboutMozilla::before {
- transform: scale(.5);
+- .launchButton::before,
+- #aboutMozilla::before {
+- transform: scale(.5);
+- transform-origin: 0 0;
+- }
+-
+ #downloads::before {
+ content: url("chrome://browser/content/abouthome/downloads@2x.png");
+ }
+@@ -421,9 +348,5 @@ body[narrow] #restorePreviousSession::before {
+ body[narrow] #restorePreviousSession::before {
+ content: url("chrome://browser/content/abouthome/restore@2x.png");
+ }
+-
+- #aboutMozilla::before {
+- content: url("chrome://browser/content/abouthome/mozilla@2x.png");
+- }
+ }
+
diff --git a/browser/base/content/abouthome/aboutHome.js b/browser/base/content/abouthome/aboutHome.js
-index 432fcdc..0d81017 100644
+index 432fcdc..8e85f1f 100644
--- a/browser/base/content/abouthome/aboutHome.js
+++ b/browser/base/content/abouthome/aboutHome.js
-@@ -3,152 +3,44 @@
+@@ -3,317 +3,99 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
const SEARCH_ENGINES = {
@@ -293,46 +356,59 @@ index 432fcdc..0d81017 100644
- "https://www.mozilla.org/firefox/features/?utm_source=snippet&utm_medium=snippet&utm_campaign=default+feature+snippet"
-, "https://addons.mozilla.org/firefox/?utm_source=snippet&utm_medium=snippet&utm_campaign=addons"
-];
--
+
-const SNIPPETS_UPDATE_INTERVAL_MS = 86400000; // 1 Day.
--
++// Bug with dom.storage.enabled set as false
++// We are using DDG as a default in this case.
++let gSearchEngine = {"name": "DuckDuckGo HTML", "searchUrl": "https://duckduckgo.com/html/?t=iceweasel&q=_searchTerms_"};
+
-// IndexedDB storage constants.
-const DATABASE_NAME = "abouthome";
-const DATABASE_VERSION = 1;
-const SNIPPETS_OBJECTSTORE_NAME = "snippets";
-
- // This global tracks if the page has been set up before, to prevent double inits
- let gInitialized = false;
- let gObserver = new MutationObserver(function (mutations) {
-@@ -156,7 +48,6 @@ let gObserver = new MutationObserver(function (mutations) {
- if (mutation.attributeName == "searchEngineName") {
- setupSearchEngine();
- if (!gInitialized) {
+-// This global tracks if the page has been set up before, to prevent double inits
+-let gInitialized = false;
+-let gObserver = new MutationObserver(function (mutations) {
+- for (let mutation of mutations) {
+- if (mutation.attributeName == "searchEngineName") {
+- setupSearchEngine();
+- if (!gInitialized) {
- ensureSnippetsMapThen(loadSnippets);
- gInitialized = true;
- }
- return;
-@@ -170,10 +61,6 @@ window.addEventListener("pageshow", function () {
- window.gObserver.observe(document.documentElement, { attributes: true });
- fitToWidth();
- window.addEventListener("resize", fitToWidth);
+- gInitialized = true;
+- }
+- return;
+- }
+- }
+-});
+-
+-window.addEventListener("pageshow", function () {
+- // Delay search engine setup, cause browser.js::BrowserOnAboutPageLoad runs
+- // later and may use asynchronous getters.
+- window.gObserver.observe(document.documentElement, { attributes: true });
+- fitToWidth();
+- window.addEventListener("resize", fitToWidth);
-
- // Ask chrome to update snippets.
- var event = new CustomEvent("AboutHomeLoad", {bubbles:true});
- document.dispatchEvent(event);
+-});
+-
+-window.addEventListener("pagehide", function() {
+- window.gObserver.disconnect();
+- window.removeEventListener("resize", fitToWidth);
++document.addEventListener("DOMContentLoaded", function init() {
++ setupSearchEngine();
});
-
- window.addEventListener("pagehide", function() {
-@@ -181,117 +68,6 @@ window.addEventListener("pagehide", function() {
- window.removeEventListener("resize", fitToWidth);
- });
++window.addEventListener("load", fitToWidth);
++window.addEventListener("resize", fitToWidth);
-// This object has the same interface as Map and is used to store and retrieve
-// the snippets data. It is lazily initialized by ensureSnippetsMapThen(), so
-// be sure its callback returned before trying to use it.
-let gSnippetsMap;
-let gSnippetsMapCallbacks = [];
--
+
-/**
- * Ensure the snippets map is properly initialized.
- *
@@ -342,7 +418,8 @@ index 432fcdc..0d81017 100644
- * it may change inadvertently.
- */
-function ensureSnippetsMapThen(aCallback)
--{
++function onSearchSubmit(aEvent)
+ {
- if (gSnippetsMap) {
- aCallback(gSnippetsMap);
- return;
@@ -358,30 +435,44 @@ index 432fcdc..0d81017 100644
- let invokeCallbacks = function () {
- if (!gSnippetsMap) {
- gSnippetsMap = Object.freeze(new Map());
-- }
++ let searchTerms = document.getElementById("searchText").value;
++ if (gSearchEngine && searchTerms.length > 0) {
++ const SEARCH_TOKENS = {
++ "_searchTerms_": encodeURIComponent(searchTerms)
+ }
-
- for (let callback of gSnippetsMapCallbacks) {
- callback(gSnippetsMap);
-- }
++ let url = gSearchEngine.searchUrl;
++ for (let key in SEARCH_TOKENS) {
++ url = url.replace(key, SEARCH_TOKENS[key]);
+ }
- gSnippetsMapCallbacks.length = 0;
-- }
--
++ window.location.href = url;
+ }
+
- let openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
--
++ aEvent.preventDefault();
++}
+
- openRequest.onerror = function (event) {
- // Try to delete the old database so that we can start this process over
- // next time.
- indexedDB.deleteDatabase(DATABASE_NAME);
- invokeCallbacks();
- };
--
+
- openRequest.onupgradeneeded = function (event) {
- let db = event.target.result;
- if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {
- db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);
- }
-- }
--
++function setupSearchEngine()
++{
++ if (localStorage && localStorage["search-engine"]) {
++ gSearchEngine = JSON.parse(localStorage["search-engine"]);
+ }
+
- openRequest.onsuccess = function (event) {
- let db = event.target.result;
-
@@ -435,16 +526,71 @@ index 432fcdc..0d81017 100644
-
- setTimeout(invokeCallbacks, 0);
- }
-- }
++
++ // Look for extended information, like logo and links.
++ var searchEngineInfo = SEARCH_ENGINES[gSearchEngine.name];
++ if (searchEngineInfo) {
++ for (let prop in searchEngineInfo)
++ gSearchEngine[prop] = searchEngineInfo[prop];
+ }
-}
--
- function onSearchSubmit(aEvent)
- {
- let searchTerms = document.getElementById("searchText").value;
-@@ -341,156 +117,6 @@ function setupSearchEngine()
- }
+-function onSearchSubmit(aEvent)
+-{
+- let searchTerms = document.getElementById("searchText").value;
+- let engineName = document.documentElement.getAttribute("searchEngineName");
++ // Enqueue additional params if required by the engine definition.
++ if (gSearchEngine.params)
++ gSearchEngine.searchUrl += "&" + gSearchEngine.params;
+
+- if (engineName && searchTerms.length > 0) {
+- // Send an event that will perform a search and Firefox Health Report will
+- // record that a search from about:home has occurred.
+- let eventData = JSON.stringify({
+- engineName: engineName,
+- searchTerms: searchTerms
+- });
+- let event = new CustomEvent("AboutHomeSearchEvent", {detail: eventData});
+- document.dispatchEvent(event);
++ // Add search engine logo.
++ if (gSearchEngine.image) {
++ let logoElt = document.getElementById("searchEngineLogo");
++ logoElt.src = gSearchEngine.image;
++ logoElt.alt = gSearchEngine.name;
+ }
+- aEvent.preventDefault();
+-}
+-
+-
+-function setupSearchEngine()
+-{
+ // The "autofocus" attribute doesn't focus the form element
+ // immediately when the element is first drawn, so the
+ // attribute is also used for styling when the page first loads.
+@@ -322,173 +104,6 @@ function setupSearchEngine()
+ searchText.removeEventListener("blur", searchText_onBlur);
+ searchText.removeAttribute("autofocus");
+ });
+-
+- let searchEngineName = document.documentElement.getAttribute("searchEngineName");
+- let searchEngineInfo = SEARCH_ENGINES[searchEngineName];
+- let logoElt = document.getElementById("searchEngineLogo");
+-
+- // Add search engine logo.
+- if (searchEngineInfo && searchEngineInfo.image) {
+- logoElt.parentNode.hidden = false;
+- logoElt.src = searchEngineInfo.image;
+- logoElt.alt = searchEngineName;
+- searchText.placeholder = "";
+- }
+- else {
+- logoElt.parentNode.hidden = true;
+- searchText.placeholder = searchEngineName;
+- }
+-
+-}
+-
-/**
- * Inform the test harness that we're done loading the page.
- */
@@ -593,16 +739,14 @@ index 432fcdc..0d81017 100644
- }
- // Move the default snippet to the snippets element.
- snippetsElt.appendChild(entry);
--}
--
+ }
+
function fitToWidth() {
- if (window.scrollMaxX) {
- document.body.setAttribute("narrow", "true");
diff --git a/browser/base/content/abouthome/aboutHome.xhtml b/browser/base/content/abouthome/aboutHome.xhtml
-index 1d03d38..e3cd254 100644
+index 1d03d38..fda3095 100644
--- a/browser/base/content/abouthome/aboutHome.xhtml
+++ b/browser/base/content/abouthome/aboutHome.xhtml
-@@ -43,15 +43,6 @@
+@@ -43,30 +43,9 @@
<input id="searchSubmit" type="submit" value="&abouthome.searchEngineButton.label;"/>
</form>
</div>
@@ -618,6 +762,286 @@ index 1d03d38..e3cd254 100644
</div>
<div class="spacer"/>
+- <div id="launcher">
+- <button class="launchButton" id="downloads">&abouthome.downloadsButton.label;</button>
+- <button class="launchButton" id="bookmarks">&abouthome.bookmarksButton.label;</button>
+- <button class="launchButton" id="history">&abouthome.historyButton.label;</button>
+- <button class="launchButton" id="apps" hidden="true">&abouthome.appsButton.label;</button>
+- <button class="launchButton" id="addons">&abouthome.addonsButton.label;</button>
+- <button class="launchButton" id="sync">&abouthome.syncButton.label;</button>
+- <button class="launchButton" id="settings">&abouthome.settingsButton.label;</button>
+- <div id="restorePreviousSessionSeparator"/>
+- <button class="launchButton" id="restorePreviousSession">&historyRestoreLastSession.label;</button>
+- </div>
+-
+- <a id="aboutMozilla" href="https://www.mozilla.org/about/?utm_source=about-home&amp;utm_medium=Referral"/>
++ <a id="aboutGNU" href="http://gnu.org"></a>
+ </body>
+ </html>
+diff --git a/browser/base/content/content.js b/browser/base/content/content.js
+index 9428613..fc3c00a 100644
+--- a/browser/base/content/content.js
++++ b/browser/base/content/content.js
+@@ -50,216 +50,3 @@ if (Services.prefs.getBoolPref("browser.tabs.remote")) {
+ LoginManagerContent.onUsernameInput(event);
+ });
+ }
+-
+-let AboutHomeListener = {
+- init: function(chromeGlobal) {
+- chromeGlobal.addEventListener('AboutHomeLoad', () => this.onPageLoad(), false, true);
+- },
+-
+- handleEvent: function(aEvent) {
+- switch (aEvent.type) {
+- case "AboutHomeLoad":
+- this.onPageLoad();
+- break;
+- }
+- },
+-
+- receiveMessage: function(aMessage) {
+- switch (aMessage.name) {
+- case "AboutHome:Update":
+- this.onUpdate(aMessage.data);
+- break;
+- }
+- },
+-
+- onUpdate: function(aData) {
+- let doc = content.document;
+- if (doc.documentURI.toLowerCase() != "about:home")
+- return;
+-
+- if (aData.showRestoreLastSession && !PrivateBrowsingUtils.isWindowPrivate(content))
+- doc.getElementById("launcher").setAttribute("session", "true");
+-
+- // Inject search engine and snippets URL.
+- let docElt = doc.documentElement;
+- // set the following attributes BEFORE searchEngineName, which triggers to
+- // show the snippets when it's set.
+- docElt.setAttribute("snippetsURL", aData.snippetsURL);
+- if (aData.showKnowYourRights)
+- docElt.setAttribute("showKnowYourRights", "true");
+- docElt.setAttribute("snippetsVersion", aData.snippetsVersion);
+- docElt.setAttribute("searchEngineName", Services.search.defaultEngine.name);
+- },
+-
+- onPageLoad: function() {
+- let doc = content.document;
+- if (doc.documentURI.toLowerCase() != "about:home" ||
+- doc.documentElement.hasAttribute("hasBrowserHandlers")) {
+- return;
+- }
+-
+- doc.documentElement.setAttribute("hasBrowserHandlers", "true");
+- let updateListener = this;
+- addMessageListener("AboutHome:Update", updateListener);
+- addEventListener("click", this.onClick, true);
+- addEventListener("pagehide", function onPageHide(event) {
+- if (event.target.defaultView.frameElement)
+- return;
+- removeMessageListener("AboutHome:Update", updateListener);
+- removeEventListener("click", this.onClick, true);
+- removeEventListener("pagehide", onPageHide, true);
+- if (event.target.documentElement)
+- event.target.documentElement.removeAttribute("hasBrowserHandlers");
+- }, true);
+-
+- // XXX bug 738646 - when Marketplace is launched, remove this statement and
+- // the hidden attribute set on the apps button in aboutHome.xhtml
+- if (Services.prefs.getPrefType("browser.aboutHome.apps") == Services.prefs.PREF_BOOL &&
+- Services.prefs.getBoolPref("browser.aboutHome.apps"))
+- doc.getElementById("apps").removeAttribute("hidden");
+-
+- sendAsyncMessage("AboutHome:RequestUpdate");
+-
+- doc.addEventListener("AboutHomeSearchEvent", function onSearch(e) {
+- sendAsyncMessage("AboutHome:Search", { searchData: e.detail });
+- }, true, true);
+- },
+-
+- onClick: function(aEvent) {
+- if (!aEvent.isTrusted || // Don't trust synthetic events
+- aEvent.button == 2 || aEvent.target.localName != "button") {
+- return;
+- }
+-
+- let originalTarget = aEvent.originalTarget;
+- let ownerDoc = originalTarget.ownerDocument;
+- let elmId = originalTarget.getAttribute("id");
+-
+- switch (elmId) {
+- case "restorePreviousSession":
+- sendAsyncMessage("AboutHome:RestorePreviousSession");
+- ownerDoc.getElementById("launcher").removeAttribute("session");
+- break;
+-
+- case "downloads":
+- sendAsyncMessage("AboutHome:Downloads");
+- break;
+-
+- case "bookmarks":
+- sendAsyncMessage("AboutHome:Bookmarks");
+- break;
+-
+- case "history":
+- sendAsyncMessage("AboutHome:History");
+- break;
+-
+- case "apps":
+- sendAsyncMessage("AboutHome:Apps");
+- break;
+-
+- case "addons":
+- sendAsyncMessage("AboutHome:Addons");
+- break;
+-
+- case "sync":
+- sendAsyncMessage("AboutHome:Sync");
+- break;
+-
+- case "settings":
+- sendAsyncMessage("AboutHome:Settings");
+- break;
+- }
+- },
+-};
+-AboutHomeListener.init(this);
+-
+-
+-var global = this;
+-
+-let ClickEventHandler = {
+- init: function init() {
+- Cc["@mozilla.org/eventlistenerservice;1"]
+- .getService(Ci.nsIEventListenerService)
+- .addSystemEventListener(global, "click", this, true);
+- },
+-
+- handleEvent: function(event) {
+- // Bug 903016: Most of this code is an unfortunate duplication from
+- // contentAreaClick in browser.js.
+- if (!event.isTrusted || event.defaultPrevented || event.button == 2)
+- return;
+-
+- let [href, node] = this._hrefAndLinkNodeForClickEvent(event);
+-
+- let json = { button: event.button, shiftKey: event.shiftKey,
+- ctrlKey: event.ctrlKey, metaKey: event.metaKey,
+- altKey: event.altKey, href: null, title: null,
+- bookmark: false };
+-
+- if (href) {
+- json.href = href;
+- if (node) {
+- json.title = node.getAttribute("title");
+-
+- if (event.button == 0 && !event.ctrlKey && !event.shiftKey &&
+- !event.altKey && !event.metaKey) {
+- json.bookmark = node.getAttribute("rel") == "sidebar";
+- if (json.bookmark)
+- event.preventDefault(); // Need to prevent the pageload.
+- }
+- }
+-
+- sendAsyncMessage("Content:Click", json);
+- return;
+- }
+-
+- // This might be middle mouse navigation.
+- if (event.button == 1)
+- sendAsyncMessage("Content:Click", json);
+- },
+-
+- /**
+- * Extracts linkNode and href for the current click target.
+- *
+- * @param event
+- * The click event.
+- * @return [href, linkNode].
+- *
+- * @note linkNode will be null if the click wasn't on an anchor
+- * element (or XLink).
+- */
+- _hrefAndLinkNodeForClickEvent: function(event) {
+- function isHTMLLink(aNode) {
+- // Be consistent with what nsContextMenu.js does.
+- return ((aNode instanceof content.HTMLAnchorElement && aNode.href) ||
+- (aNode instanceof content.HTMLAreaElement && aNode.href) ||
+- aNode instanceof content.HTMLLinkElement);
+- }
+-
+- let node = event.target;
+- while (node && !isHTMLLink(node)) {
+- node = node.parentNode;
+- }
+-
+- if (node)
+- return [node.href, node];
+-
+- // If there is no linkNode, try simple XLink.
+- let href, baseURI;
+- node = event.target;
+- while (node && !href) {
+- if (node.nodeType == content.Node.ELEMENT_NODE) {
+- href = node.getAttributeNS("http://www.w3.org/1999/xlink", "href");
+- if (href)
+- baseURI = node.ownerDocument.baseURIObject;
+- }
+- node = node.parentNode;
+- }
+-
+- // In case of XLink, we don't return the node we got href from since
+- // callers expect <a>-like elements.
+- // Note: makeURI() will throw if aUri is not a valid URI.
+- return [href ? makeURI(href, null, baseURI).spec : null, null];
+- }
+-};
+-ClickEventHandler.init();
+diff --git a/browser/base/jar.mn b/browser/base/jar.mn
+index f2a820c..9478039 100644
+--- a/browser/base/jar.mn
++++ b/browser/base/jar.mn
+@@ -33,7 +33,7 @@ browser.jar:
+ content/browser/abouthome/settings.png (content/abouthome/settings.png)
+ content/browser/abouthome/restore.png (content/abouthome/restore.png)
+ content/browser/abouthome/restore-large.png (content/abouthome/restore-large.png)
+- content/browser/abouthome/mozilla.png (content/abouthome/mozilla.png)
++ content/browser/abouthome/gnu_headshadow.png (content/abouthome/gnu_headshadow.png)
+ content/browser/abouthome/snippet1@2x.png (content/abouthome/snippet1@2x.png)
+ content/browser/abouthome/snippet2@2x.png (content/abouthome/snippet2@2x.png)
+ content/browser/abouthome/downloads@2x.png (content/abouthome/downloads@2x.png)
+@@ -45,7 +45,6 @@ browser.jar:
+ content/browser/abouthome/settings@2x.png (content/abouthome/settings@2x.png)
+ content/browser/abouthome/restore@2x.png (content/abouthome/restore@2x.png)
+ content/browser/abouthome/restore-large@2x.png (content/abouthome/restore-large@2x.png)
+- content/browser/abouthome/mozilla@2x.png (content/abouthome/mozilla@2x.png)
+ #ifdef MOZ_SERVICES_HEALTHREPORT
+ content/browser/abouthealthreport/abouthealth.xhtml (content/abouthealthreport/abouthealth.xhtml)
+ content/browser/abouthealthreport/abouthealth.js (content/abouthealthreport/abouthealth.js)
+diff --git a/browser/locales/en-US/chrome/browser/aboutHome.dtd b/browser/locales/en-US/chrome/browser/aboutHome.dtd
+index e84341f..5476d32 100644
+--- a/browser/locales/en-US/chrome/browser/aboutHome.dtd
++++ b/browser/locales/en-US/chrome/browser/aboutHome.dtd
+@@ -13,17 +13,6 @@
+
+ <!ENTITY abouthome.searchEngineButton.label "Search">
+
+-<!-- LOCALIZATION NOTE (abouthome.defaultSnippet1.v1):
+- text in <a/> will be linked to the Firefox features page on mozilla.com
+--->
+-<!ENTITY abouthome.defaultSnippet1.v1 "Thanks for choosing Firefox! To get the most out of your browser, learn more about the <a>latest features</a>.">
+-<!-- LOCALIZATION NOTE (abouthome.defaultSnippet2.v1):
+- text in <a/> will be linked to the featured add-ons on addons.mozilla.org
+--->
+-<!ENTITY abouthome.defaultSnippet2.v1 "It's easy to customize your Firefox exactly the way you want it. <a>Choose from thousands of add-ons</a>.">
+-<!-- LOCALIZATION NOTE (abouthome.rightsSnippet): text in <a/> will be linked to about:rights -->
+-<!ENTITY abouthome.rightsSnippet "&brandFullName; is free and open source software from the non-profit Mozilla Foundation. <a>Know your rights…</a>">
+-
+ <!ENTITY abouthome.bookmarksButton.label "Bookmarks">
+ <!ENTITY abouthome.historyButton.label "History">
+ <!ENTITY abouthome.settingsButton.label "Settings">
diff --git a/browser/locales/en-US/chrome/browser-region/region.properties b/browser/locales/en-US/chrome/browser-region/region.properties
index 087cc50..5654eb9 100644
--- a/browser/locales/en-US/chrome/browser-region/region.properties
@@ -700,52 +1124,101 @@ index e925c1e..5101035 100644
+ <DT><A HREF="http://www.h-node.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgElEQVQ4jaXRz2uSARzHcb0vlRGEzTVWISU1BVkFYTIyjNK1pKcxHA+yhWMWIamHYikFgpoLIi9jwegi3QbL9SzdLmMbM9J+DkJBgm5RDvEPeHeQHOyQz0OH9+V7ePGBr0pqpPmfVPsP8a0AR4MnMEwf48x9K0s/E8oAY9iEMOvD+8yP2qVjrhhRBnSN61n5sIpULqC+pGHh8wNlgEY8jPQXcGh4VXukDND5evYAl46odIuXtYdKAANSudAChO52/XeMZMohecCbcoGdH99Y+7LO72adT9+/4nh8nYOjBl7/SsoB8gBkpHk8T0S2K++pN3fRin3cfnFDHvCuWkI9rEMvHGEo5gbAHnXhnLF1BpZLeRaLOVT2A8Q3A5wMngXgWtKLxX9KPqC+rCWQvYkpeK4NWKcGOgO50ts2MJJ0cPreeQDciTHMchZYIhcwh2wcuqjn+ccwGm9v6wsTxxn0dVgQXZ7Ek3Agpq6QrcaQGmmebtxFSDkRU1fJVmL/BpT2ByV/3eDMhinRAAAAAElFTkSuQmCC">h-node</A>
</DL><p>
</DL><p>
-diff --git a/dom/ipc/test.xul b/dom/ipc/test.xul
-index 3eede17..1b47a70 100644
---- a/dom/ipc/test.xul
-+++ b/dom/ipc/test.xul
-@@ -302,6 +302,6 @@
- oncommand="document.getElementById('page').QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader.delayRemoteDialogs = this.checked;"/>
- </toolbar>
-
-- <browser type="content" src="http://www.google.com/" flex="1" id="page" remote="true"/>
-+ <browser type="content" src="https://duckduckgo.com/html" flex="1" id="page" remote="true"/>
- <label id="messageLog" value="" crop="center"/>
- </window>
-diff --git a/layout/ipc/test-ipcbrowser.xul b/layout/ipc/test-ipcbrowser.xul
-index 237ba61..7603d7d 100644
---- a/layout/ipc/test-ipcbrowser.xul
-+++ b/layout/ipc/test-ipcbrowser.xul
-@@ -73,6 +73,6 @@
- label="setViewportScale"/>
- </toolbar>
-
-- <browser type="content" src="http://www.google.com/" flex="1" id="content"
-+ <browser type="content" src="https://duckduckgo.com/html" flex="1" id="content"
- remote="true"/>
- </window>
-diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js
-index 346c819..0605f34 100644
---- a/modules/libpref/src/init/all.js
-+++ b/modules/libpref/src/init/all.js
-@@ -4304,20 +4304,6 @@ pref("memory.ghost_window_timeout_seconds", 60);
- // Disable freeing dirty pages when minimizing memory.
- pref("memory.free_dirty_pages", false);
-
--pref("social.enabled", false);
--// comma separated list of domain origins (e.g. https://domain.com) for
--// providers that can install from their own website without user warnings.
--// entries are
--pref("social.whitelist", "https://mozsocial.cliqz.com,https://now.msn.com,https://mixi.jp");
--// omma separated list of domain origins (e.g. https://domain.com) for directory
--// websites (e.g. AMO) that can install providers for other sites
--pref("social.directories", "https://addons.mozilla.org");
--// remote-install allows any website to activate a provider, with extended UI
--// notifying user of installation. we can later pref off remote install if
--// necessary. This does not affect whitelisted and directory installs.
--pref("social.remote-install.enabled", true);
--pref("social.toast-notifications.enabled", true);
--
- // Disable idle observer fuzz, because only privileged content can access idle
- // observers (bug 780507).
- pref("dom.idle-observers-api.fuzz_time.disabled", true);
+diff --git a/browser/modules/AboutHome.jsm b/browser/modules/AboutHome.jsm
+index 98c443d..0173762 100644
+--- a/browser/modules/AboutHome.jsm
++++ b/browser/modules/AboutHome.jsm
+@@ -8,7 +8,7 @@ let Cc = Components.classes;
+ let Ci = Components.interfaces;
+ let Cu = Components.utils;
+
+-this.EXPORTED_SYMBOLS = [ "AboutHomeUtils", "AboutHome" ];
++this.EXPORTED_SYMBOLS = [ "AboutHome" ];
+
+ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+ Components.utils.import("resource://gre/modules/Services.jsm");
+@@ -16,66 +16,6 @@ Components.utils.import("resource://gre/modules/Services.jsm");
+ XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
+ "resource://gre/modules/PrivateBrowsingUtils.jsm");
+
+-// Url to fetch snippets, in the urlFormatter service format.
+-const SNIPPETS_URL_PREF = "browser.aboutHomeSnippets.updateUrl";
+-
+-// Should be bumped up if the snippets content format changes.
+-const STARTPAGE_VERSION = 4;
+-
+-this.AboutHomeUtils = {
+- get snippetsVersion() STARTPAGE_VERSION,
+-
+- /*
+- * showKnowYourRights - Determines if the user should be shown the
+- * about:rights notification. The notification should *not* be shown if
+- * we've already shown the current version, or if the override pref says to
+- * never show it. The notification *should* be shown if it's never been seen
+- * before, if a newer version is available, or if the override pref says to
+- * always show it.
+- */
+- get showKnowYourRights() {
+- // Look for an unconditional override pref. If set, do what it says.
+- // (true --> never show, false --> always show)
+- try {
+- return !Services.prefs.getBoolPref("browser.rights.override");
+- } catch (e) { }
+- // Ditto, for the legacy EULA pref.
+- try {
+- return !Services.prefs.getBoolPref("browser.EULA.override");
+- } catch (e) { }
+-
+-#ifndef MOZILLA_OFFICIAL
+- // Non-official builds shouldn't show the notification.
+- return false;
+-#endif
+-
+- // Look to see if the user has seen the current version or not.
+- var currentVersion = Services.prefs.getIntPref("browser.rights.version");
+- try {
+- return !Services.prefs.getBoolPref("browser.rights." + currentVersion + ".shown");
+- } catch (e) { }
+-
+- // Legacy: If the user accepted a EULA, we won't annoy them with the
+- // equivalent about:rights page until the version changes.
+- try {
+- return !Services.prefs.getBoolPref("browser.EULA." + currentVersion + ".accepted");
+- } catch (e) { }
+-
+- // We haven't shown the notification before, so do so now.
+- return true;
+- }
+-};
+-
+-/**
+- * Returns the URL to fetch snippets from, in the urlFormatter service format.
+- */
+-XPCOMUtils.defineLazyGetter(AboutHomeUtils, "snippetsURL", function() {
+- let updateURL = Services.prefs
+- .getCharPref(SNIPPETS_URL_PREF)
+- .replace("%STARTPAGE_VERSION%", STARTPAGE_VERSION);
+- return Services.urlFormatter.formatURL(updateURL);
+-});
+-
+ /**
+ * This code provides services to the about:home page. Whenever
+ * about:home needs to do something chrome-privileged, it sends a
+@@ -185,17 +125,8 @@ let AboutHome = {
+ ss.promiseInitialized.then(function() {
+ let data = {
+ showRestoreLastSession: ss.canRestoreLastSession,
+- snippetsURL: AboutHomeUtils.snippetsURL,
+- showKnowYourRights: AboutHomeUtils.showKnowYourRights,
+- snippetsVersion: AboutHomeUtils.snippetsVersion
+ };
+
+- if (AboutHomeUtils.showKnowYourRights) {
+- // Set pref to indicate we've shown the notification.
+- let currentVersion = Services.prefs.getIntPref("browser.rights.version");
+- Services.prefs.setBoolPref("browser.rights." + currentVersion + ".shown", true);
+- }
+-
+ if (target) {
+ target.messageManager.sendAsyncMessage("AboutHome:Update", data);
+ } else {
diff --git a/libre/iceweasel-libre/libre.patch.goal b/libre/iceweasel-libre/libre.patch.goal
new file mode 100644
index 000000000..5d4bca224
--- /dev/null
+++ b/libre/iceweasel-libre/libre.patch.goal
@@ -0,0 +1,935 @@
+diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
+index 331edc8..226508d 100644
+--- a/browser/app/profile/firefox.js
++++ b/browser/app/profile/firefox.js
+@@ -242,11 +242,6 @@ pref("browser.slowStartup.notificationDisabled", false);
+ pref("browser.slowStartup.timeThreshold", 60000);
+ pref("browser.slowStartup.maxSamples", 5);
+
+-// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into
+-// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream
+-// repackager of this code using an alternate snippet url, please keep your users safe
+-pref("browser.aboutHomeSnippets.updateUrl", "https://snippets.mozilla.com/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/");
+-
+ pref("browser.enable_automatic_image_resizing", true);
+ pref("browser.chrome.site_icons", true);
+ pref("browser.chrome.favicons", true);
+@@ -1283,11 +1278,7 @@ pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
+ // (This is intentionally on the high side; see bug 746055.)
+ pref("image.mem.max_decoded_image_kb", 256000);
+
+-// Default social providers
+-pref("social.manifest.facebook", "{\"origin\":\"https://www.facebook.com\",\"name\":\"Facebook Messenger\",\"workerURL\":\"https://www.facebook.com/desktop/fbdesktop2/socialfox/fbworker.js.php\",\"shareURL\":\"https://www.facebook.com/sharer/sharer.php?u=%{url}\",\"iconURL\":\"data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAAX0lEQVQ4jWP4%2F%2F8%2FAyUYTFhHzjgDxP9JxGeQDSBVMxgTbUBCxer%2Fr999%2BQ8DJBuArJksA9A10s8AXIBoA0B%2BR%2FY%2FjD%2BEwoBoA1yT5v3PbdmCE8MAshhID%2FUMoDgzUYIBj0Cgi7ar4coAAAAASUVORK5CYII%3D\",\"sidebarURL\":\"https://www.facebook.com/desktop/fbdesktop2/?socialfox=true\",\"icon32URL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAADbklEQVRYCc1Xv08UQRj99tctexAuCEFjRE0kGBEtLDSGqIWNxkYKbTAxNlY2JhaGWltNtNFeKgsKKxITK43/gCYW+IsoRhA4D47bH7fn9+bcvdm5JR7sefolC3Ozu9978+bNN7PayUv3HN3umdY0Y6IWBtSJ0HSTarXqTOiuTep6Lj+tdxAcA8RAgSmwdd2aCDs0clldYALb/FvgYVhjmfliVA2XpjEgWo0Attn42Z6WH1RFor5ehwo9XQIUZMoVn4qlCoVMSo62EvD8Kh0b3U2Xz43R2PBO6mUCGDlAf65V6MadZzT/rUimoccc2kYA4BfPHqJb105RzjJigKhRq9kEJUBIjgYVuXeL7SAI6eD+Abp5dTwVHOmEHxT50d8WBYJqSOdPj5BjW8gZR8UNqFR2xagx/65XFYaMH+BGWwiYpi4UkBPPLxTp9v1Z+lHc4DWvCQXWmIy6EjITgKowVd5Jjv7N3Hd6y5esigoOwpkJIAmMpZpLJGdiaaC4F0UmAj6bD84GCEwmB/qxMmRilmnwb/mpjAocHh4UEoNAt5NLZB7oy9OJo0PxqkAtePdhiSqunyC1LQUwWMPQaOr6GRre258Ajn4cP7KHcEXhsxpXbj+lT19X2TMNGTLVAcjcalS8gDwsQ2UOMhH4k8FkcrEn5E5ub2sKohxLK2VR77Hl9RUcsrgeRIEiVOT6z+tDbIeLy+vk+kGTCbXxycet6xhl//3f6bJEkdHYhA+mLtDIvoH4ieev5+juoxdk5+pjhALYEdXIpEB5w+NlSKSzqVQ/+H7IO6BLtl3fngGMiqhGJgIwlM6qpyUGFjySdk8m0Zg0ubeD7X9OIDEFajltRQgUJaUKx69tdgaQa0FMADuahZPMFtcEwNPm2hA7ZI5sK4aoE2NvYI+o8hkCIe7CwTv68zS0q9Dk5vpbm/8FXxitSzmMFHpsGj0wyLUheTwD2Y9fVgh1Ae0EPUgD9241ZEnld+v5kgnVZ/8fE0brVh5BK+1oCqKKF72Dk7HwBsssB/pklU1dfChy3S659H5+uelgIb+8WRv1/uGTV9Sdb5wJFlfW6fPCalMhwhSU1j2xKwKbP838GcOwJja4TqO0bjdmXxYTy1EYjFdCWoCEYZhseH/GDL3yJPHnuW6YmT7P1SlIA4768Hke4vOcsX8BE346lLHhDUQAAAAASUVORK5CYII=\", \"icon64URL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAACNNJREFUeNrtm3tw1NUVxz/399hHHkgCaCBGEFEEREVFYFQcSoOKdkZay4z+4dDpYIsjHWx1WoTMhFi1gzBSpVgVGbU4U1sHfPESKODwEEnRYDFAICEIeZIQshs2u/v73ds/drMsyW7YLEkl2Z6Z32yy+9v7u+fc7znne8+5KzgvAjDunzlv0M13PjDZ6c4cARj0WhEoaZ1tOn3yq9XLf/tNU0O1D5Ad7wq/OpxpaXOL1j5uZAwuaGlVgwNBhULRm0XXBG6HZrlNa9uRrzfM+3DlgjIgGMsA7rl/XDdHOnNf9vosTfVuvTsaQhdkZ4iykh2rHtqydvkxwI58BhjTfv7MmP55E9/1nLNdfU15ACkVvoAaMCRvRPa+re9+DgTaPjMAx+DrJv3M67Mz+6LybWLb4NfTHhxzx31DDhZvOtqGAgNwWbjGICV9XQJB0e/KobcOP1i8qTzaAEYgaDtNU/V5A9hSaUFLuQEt2gVQSgml+j4CUAIppYgK/m0GkCjZ9xGAUNAu0LUhgJRAAAIVzwBSqVRQH4hlAClRKZAFhOgEASoFECBR8QwgUyQGdJT/B8HzCEiBNKhUJzEgBYIgQsTJAkohe9oFZHgHKvQoHtZ9K3tewfiixXABLdoFeuSSEmkF+PH4QTz7+M3o+ENptzvGtS36uSwmjMpAYF10XCllHCYoe84FlLS555Zs5jx6J6ahY+iCl98pJiDNS1hwSZop+cm91zJmxEBefGsPlu1AxKC67V3gf5oGlZSMuz6Dp2fdhWnoAEwaN5T5hsYLb+4hKB1dcgelFDpB8ifk8thDt3DO5+fZxRvxBV0IjQR0EB3KfD1GhJS0GZnnYuGcKTgdF9ZWx4/No/BJjUUrdtJqm4iL+K5SCmSAiWMHMevhcQzNzaa6ron5SzfQ7HeiaSKx+au4m6HupcJKSYZdZVI4dypuV2yo3zoql0VP3cOiFV/Q4jdiGkGhQFqMGpbJL346kbE3DEYIQWNTC39Ysp4Gr4HQtZDyiRhA0NlmSHZbRM7pr1H0m6lckeHqdGXG3jCYoqfupeC17bT49fNRXIFSNrkDTGbNGM9dtw1D10M1DI/Xx3NLP6OqETRdDy1eglPT4rqA7K56gCIrXfHCvHwGZqUnBMtR113FS/N+xHPLtuJpDa1mVobg0emjmX7vqEjsUErhaw1Q8Mo6yk4F0A1HeOW7kIlFx/u7jworRabLpmhuPjmD+iG7YNDrrhnIS09P5cW/buOeO67lkftvJt3tDE06PE7Qsnh++QYOHPOim86wcVUS0+whJug0ghTMmcK1V2eH8m2UHP++nrwhAyIwjiXDcrN5vXAGhqGhFBeMYUvJ0re2sPfgGTTDGUZrEogVopMgmGQWUCgMEWTBE5MZPSLngnGqas/w9j92s31fJfmThvPM7HyMMKRj+qgmOiBHSsnr73/B5r1V6A53KD4k3bFS8dNgckFQoWPxu1kTGDc6N7JqzR4ff/+smE+2H8FSLkx3FluLawhaG3n2iXwcppGoV/Hemt18tK0c3UwLIfUS2nVafBeQJNUXkAF+/dht3H37cKSUBC2bTTv+w98++YazPg1dT0NoIUhruoMd+2sJrtjI7381rQM3iCVrN33N++tL0c30xFNdp0GQeFRYQhcRIO0gv5xxE/fdfSO2bfNVSTmrPtxLZW0A3XSh6VporaLG1XQHu0pOU/TaOhY8+QAuZ3w6vHnnQd74536EkZ50wOsSE0zcugolbWZOG8GM/LGUVdSw6sM97D/UgGa60QxXzMJDZAq6yb7SJgr//CkLn5pOmsvR4Z5dxUdZ9t6XoKfFjNyXkqZjuoBUCpGgCyhp8eDdQ5k++UaWrdrMlr2VSFxoZlpE8YtNWGgGXx9ppnDZpxTMfTCS8gAOlJ5g8ds7kCItTIi6j6FqMVxAC2sV2RB1ekmLCTcNpH+myeyFH7BxT1Voopoe4RKJXQqhmxw45mXh0o/xeH0opThcXs2iv2wmoFyhAnbC4yX+3PgISMDShrA5XHGa3d9UITRniIeTfHASmsGhEz7mL/mI2TPv4sU3t+KzHAnu7JKpCosOkcSIICAB5hZE0OiRCM0Iwb0b6LPQdI5W+Zn/yucoYYayRk+16eK1xqRMDAHtA0r3lep0lNAjO8kfpCpMqpTF4xZEUqA7rIlOCiKpgADVWXc4FQwgEfHPB5AiByTixIDUCYJx+wJoqdIcJV5VOAWygEZcF7BToT2upFDKtuz2BrAtf8v3mju972cBJX2exso6ok6N64BhOtM11xXXPBz6v6340PcuO+DZfaJkzWqgqY3L64Bqaaz0ZV45Mkc308dG2kd97FLSaq4v317gazr5HeCLRoACFTxbfeBw+oDhWYYj4/rw+30H+rb/VMPxXQsbKnbuABqJOi4vogyRiRB5/XNvvz3zytFTDEf61eF9b0dCKTS36c4afymTsgLeQ9Ly13X/aYnzE1Uy6PV7679trNy1xe+tKwPqAH/0Vla0qw65gH7AFeG/Y3Uy9P45o0bm3PTIaplM6lTK9jWf/OBUyQcrpdXaTIyfsXQb9QcLaAn7vJd2vxY5XxBpo8pwDmgFGsLKx1oeh8OVmUUSLXUlrWZPzbdLag9v+BjUqfDzepKAyDDcZbznGHG+1NmqSKHpVlfbadJqLW+o2LHobNX+PUB1WPkfnHwYyTmX6lI7Lehr3F576NM/+T3V3wH17f2w1xkg2ggXuSvga6p8p+bgmpVKWpXAmVh+2AsNEKogdYYAJa0GT03J4obyf60HTgKe6PTTqw0QOpcQ3wXs4LlDZyq2FXrrS4uBmjDxuCw3G5eIgA46yeC5ho11pWsWW35PWTibBC4Xf+9eBLRPg0q2+s5UvHG6bMNqJYPHw7nXutxZYvIIiMoCSgbrPVX/fv7syS+3AKfC5MOmF4iRpP6RjrId8O5vrNhS1NpUWQLUholUr6muXEoatP3emrWNR9e/avk9R8P+HuxNypPkrk93pGdnK0VtXemaN6UdOHo55vdE5b/0NKx+K4AxtAAAAABJRU5ErkJggg==\", \"description\":\"Keep up with friends wherever you go on the web.\",\"author\":\"Facebook\",\"homepageURL\":\"https://www.facebook.com/about/messenger-for-firefox\",\"builtin\":\"true\"}");
+-
+-pref("social.sidebar.open", true);
+-pref("social.sidebar.unload_timeout_ms", 10000);
++// removed facebook sidebar with Iceweasel.
+
+ pref("dom.identity.enabled", false);
+
+diff --git a/browser/base/content/abouthome/aboutHome.css b/browser/base/content/abouthome/aboutHome.css
+index c270318..d4ecde0 100644
+--- a/browser/base/content/abouthome/aboutHome.css
++++ b/browser/base/content/abouthome/aboutHome.css
+@@ -49,15 +49,6 @@ a {
+ background-repeat: no-repeat;
+ }
+
+-#searchForm,
+-#snippets {
+- width: 470px;
+-}
+-
+-#searchForm {
+- display: -moz-box;
+-}
+-
+ #searchLogoContainer {
+ display: -moz-box;
+ -moz-box-align: center;
+@@ -72,8 +63,7 @@ a {
+ #searchEngineLogo {
+ display: inline-block;
+ height: 28px;
+- width: 70px;
+- min-width: 70px;
++ width: 47px;
+ }
+
+ #searchText {
+@@ -145,48 +135,6 @@ a {
+ transition-duration: 0ms;
+ }
+
+-#defaultSnippet1,
+-#defaultSnippet2,
+-#rightsSnippet {
+- display: block;
+- min-height: 38px;
+- background: 30px center no-repeat;
+- padding: 6px 0;
+- -moz-padding-start: 79px;
+-}
+-
+-#rightsSnippet[hidden] {
+- display: none;
+-}
+-
+-#defaultSnippet1:-moz-dir(rtl),
+-#defaultSnippet2:-moz-dir(rtl),
+-#rightsSnippet:-moz-dir(rtl) {
+- background-position: right 30px center;
+-}
+-
+-#defaultSnippet1 {
+- background-image: url("chrome://browser/content/abouthome/snippet1.png");
+-}
+-
+-#defaultSnippet2 {
+- background-image: url("chrome://browser/content/abouthome/snippet2.png");
+-}
+-
+-#snippets {
+- display: inline-block;
+- text-align: start;
+- margin: 12px 0;
+- color: #3c3c3c;
+- font-size: 75%;
+- /* 12px is the computed font size, 15px the computed line height of the snippets
+- with Segoe UI on a default Windows 7 setup. The 15/12 multiplier approximately
+- converts em from units of font-size to units of line-height. The goal is to
+- preset the height of a three-line snippet to avoid visual moving/flickering as
+- the snippets load. */
+- min-height: calc(15/12 * 3em);
+-}
+-
+ #launcher {
+ display: -moz-box;
+ -moz-box-align: center;
+@@ -335,26 +283,25 @@ body[narrow] #restorePreviousSession::before {
+ width: 32px;
+ }
+
+-#aboutMozilla {
++#aboutGNU {
+ display: block;
+- position: relative; /* pin wordmark to edge of document, not of viewport */
+ -moz-box-ordinal-group: 0;
+ opacity: .5;
+ transition: opacity 150ms;
+ }
+
+-#aboutMozilla:hover {
++#aboutGNU:hover {
+ opacity: 1;
+ }
+
+-#aboutMozilla::before {
+- content: url("chrome://browser/content/abouthome/mozilla.png");
++#aboutGNU::before {
++ content: url("chrome://browser/content/abouthome/gnu_headshadow.png");
+ display: block;
+ position: absolute;
+ top: 12px;
+ right: 12px;
+- width: 69px;
+- height: 19px;
++ width: 200px;
++ height: 110px;
+ }
+
+ /* [HiDPI]
+@@ -366,26 +313,6 @@ body[narrow] #restorePreviousSession::before {
+ background-image: url("chrome://branding/content/about-logo@2x.png");
+ }
+
+- #defaultSnippet1,
+- #defaultSnippet2,
+- #rightsSnippet {
+- background-size: 40px;
+- }
+-
+- #defaultSnippet1 {
+- background-image: url("chrome://browser/content/abouthome/snippet1@2x.png");
+- }
+-
+- #defaultSnippet2 {
+- background-image: url("chrome://browser/content/abouthome/snippet2@2x.png");
+- }
+-
+- .launchButton::before,
+- #aboutMozilla::before {
+- transform: scale(.5);
+- transform-origin: 0 0;
+- }
+-
+ #downloads::before {
+ content: url("chrome://browser/content/abouthome/downloads@2x.png");
+ }
+@@ -421,9 +348,5 @@ body[narrow] #restorePreviousSession::before {
+ body[narrow] #restorePreviousSession::before {
+ content: url("chrome://browser/content/abouthome/restore@2x.png");
+ }
+-
+- #aboutMozilla::before {
+- content: url("chrome://browser/content/abouthome/mozilla@2x.png");
+- }
+ }
+
+diff --git a/browser/base/content/abouthome/aboutHome.js b/browser/base/content/abouthome/aboutHome.js
+index 432fcdc..0d81017 100644
+--- a/browser/base/content/abouthome/aboutHome.js
++++ b/browser/base/content/abouthome/aboutHome.js
+@@ -3,152 +3,44 @@
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+ const SEARCH_ENGINES = {
+- "Google": {
+- // This is the "2x" image designed for OS X retina resolution, Windows at 192dpi, etc.;
+- // it will be scaled down as necessary on lower-dpi displays.
++ "DuckDuckGo HTML": {
+ image: "data:image/png;base64," +
+- "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"
+ }
+ };
+
+-// The process of adding a new default snippet involves:
+-// * add a new entity to aboutHome.dtd
+-// * add a <span/> for it in aboutHome.xhtml
+-// * add an entry here in the proper ordering (based on spans)
+-// The <a/> part of the snippet will be linked to the corresponding url.
+-const DEFAULT_SNIPPETS_URLS = [
+- "https://www.mozilla.org/firefox/features/?utm_source=snippet&utm_medium=snippet&utm_campaign=default+feature+snippet"
+-, "https://addons.mozilla.org/firefox/?utm_source=snippet&utm_medium=snippet&utm_campaign=addons"
+-];
+-
+-const SNIPPETS_UPDATE_INTERVAL_MS = 86400000; // 1 Day.
+-
+-// IndexedDB storage constants.
+-const DATABASE_NAME = "abouthome";
+-const DATABASE_VERSION = 1;
+-const SNIPPETS_OBJECTSTORE_NAME = "snippets";
+-
+ // This global tracks if the page has been set up before, to prevent double inits
+ let gInitialized = false;
+ let gObserver = new MutationObserver(function (mutations) {
+@@ -156,7 +48,6 @@ let gObserver = new MutationObserver(function (mutations) {
+ if (mutation.attributeName == "searchEngineName") {
+ setupSearchEngine();
+ if (!gInitialized) {
+- ensureSnippetsMapThen(loadSnippets);
+ gInitialized = true;
+ }
+ return;
+@@ -170,10 +61,6 @@ window.addEventListener("pageshow", function () {
+ window.gObserver.observe(document.documentElement, { attributes: true });
+ fitToWidth();
+ window.addEventListener("resize", fitToWidth);
+-
+- // Ask chrome to update snippets.
+- var event = new CustomEvent("AboutHomeLoad", {bubbles:true});
+- document.dispatchEvent(event);
+ });
+
+ window.addEventListener("pagehide", function() {
+@@ -181,117 +68,6 @@ window.addEventListener("pagehide", function() {
+ window.removeEventListener("resize", fitToWidth);
+ });
+
+-// This object has the same interface as Map and is used to store and retrieve
+-// the snippets data. It is lazily initialized by ensureSnippetsMapThen(), so
+-// be sure its callback returned before trying to use it.
+-let gSnippetsMap;
+-let gSnippetsMapCallbacks = [];
+-
+-/**
+- * Ensure the snippets map is properly initialized.
+- *
+- * @param aCallback
+- * Invoked once the map has been initialized, gets the map as argument.
+- * @note Snippets should never directly manage the underlying storage, since
+- * it may change inadvertently.
+- */
+-function ensureSnippetsMapThen(aCallback)
+-{
+- if (gSnippetsMap) {
+- aCallback(gSnippetsMap);
+- return;
+- }
+-
+- // Handle multiple requests during the async initialization.
+- gSnippetsMapCallbacks.push(aCallback);
+- if (gSnippetsMapCallbacks.length > 1) {
+- // We are already updating, the callbacks will be invoked when done.
+- return;
+- }
+-
+- let invokeCallbacks = function () {
+- if (!gSnippetsMap) {
+- gSnippetsMap = Object.freeze(new Map());
+- }
+-
+- for (let callback of gSnippetsMapCallbacks) {
+- callback(gSnippetsMap);
+- }
+- gSnippetsMapCallbacks.length = 0;
+- }
+-
+- let openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
+-
+- openRequest.onerror = function (event) {
+- // Try to delete the old database so that we can start this process over
+- // next time.
+- indexedDB.deleteDatabase(DATABASE_NAME);
+- invokeCallbacks();
+- };
+-
+- openRequest.onupgradeneeded = function (event) {
+- let db = event.target.result;
+- if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {
+- db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);
+- }
+- }
+-
+- openRequest.onsuccess = function (event) {
+- let db = event.target.result;
+-
+- db.onerror = function (event) {
+- invokeCallbacks();
+- }
+-
+- db.onversionchange = function (event) {
+- event.target.close();
+- invokeCallbacks();
+- }
+-
+- let cache = new Map();
+- let cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)
+- .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();
+- cursorRequest.onerror = function (event) {
+- invokeCallbacks();
+- }
+-
+- cursorRequest.onsuccess = function(event) {
+- let cursor = event.target.result;
+-
+- // Populate the cache from the persistent storage.
+- if (cursor) {
+- cache.set(cursor.key, cursor.value);
+- cursor.continue();
+- return;
+- }
+-
+- // The cache has been filled up, create the snippets map.
+- gSnippetsMap = Object.freeze({
+- get: function (aKey) cache.get(aKey),
+- set: function (aKey, aValue) {
+- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite")
+- .objectStore(SNIPPETS_OBJECTSTORE_NAME).put(aValue, aKey);
+- return cache.set(aKey, aValue);
+- },
+- has: function (aKey) cache.has(aKey),
+- delete: function (aKey) {
+- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite")
+- .objectStore(SNIPPETS_OBJECTSTORE_NAME).delete(aKey);
+- return cache.delete(aKey);
+- },
+- clear: function () {
+- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite")
+- .objectStore(SNIPPETS_OBJECTSTORE_NAME).clear();
+- return cache.clear();
+- },
+- get size() cache.size
+- });
+-
+- setTimeout(invokeCallbacks, 0);
+- }
+- }
+-}
+-
+ function onSearchSubmit(aEvent)
+ {
+ let searchTerms = document.getElementById("searchText").value;
+@@ -341,156 +117,6 @@ function setupSearchEngine()
+
+ }
+
+-/**
+- * Inform the test harness that we're done loading the page.
+- */
+-function loadSucceeded()
+-{
+- var event = new CustomEvent("AboutHomeLoadSnippetsSucceeded", {bubbles:true});
+- document.dispatchEvent(event);
+-}
+-
+-/**
+- * Update the local snippets from the remote storage, then show them through
+- * showSnippets.
+- */
+-function loadSnippets()
+-{
+- if (!gSnippetsMap)
+- throw new Error("Snippets map has not properly been initialized");
+-
+- // Allow tests to modify the snippets map before using it.
+- var event = new CustomEvent("AboutHomeLoadSnippets", {bubbles:true});
+- document.dispatchEvent(event);
+-
+- // Check cached snippets version.
+- let cachedVersion = gSnippetsMap.get("snippets-cached-version") || 0;
+- let currentVersion = document.documentElement.getAttribute("snippetsVersion");
+- if (cachedVersion < currentVersion) {
+- // The cached snippets are old and unsupported, restart from scratch.
+- gSnippetsMap.clear();
+- }
+-
+- // Check last snippets update.
+- let lastUpdate = gSnippetsMap.get("snippets-last-update");
+- let updateURL = document.documentElement.getAttribute("snippetsURL");
+- let shouldUpdate = !lastUpdate ||
+- Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;
+- if (updateURL && shouldUpdate) {
+- // Try to update from network.
+- let xhr = new XMLHttpRequest();
+- try {
+- xhr.open("GET", updateURL, true);
+- } catch (ex) {
+- showSnippets();
+- loadSucceeded();
+- return;
+- }
+- // Even if fetching should fail we don't want to spam the server, thus
+- // set the last update time regardless its results. Will retry tomorrow.
+- gSnippetsMap.set("snippets-last-update", Date.now());
+- xhr.onerror = function (event) {
+- showSnippets();
+- };
+- xhr.onload = function (event)
+- {
+- if (xhr.status == 200) {
+- gSnippetsMap.set("snippets", xhr.responseText);
+- gSnippetsMap.set("snippets-cached-version", currentVersion);
+- }
+- showSnippets();
+- loadSucceeded();
+- };
+- xhr.send(null);
+- } else {
+- showSnippets();
+- loadSucceeded();
+- }
+-}
+-
+-/**
+- * Shows locally cached remote snippets, or default ones when not available.
+- *
+- * @note: snippets should never invoke showSnippets(), or they may cause
+- * a "too much recursion" exception.
+- */
+-let _snippetsShown = false;
+-function showSnippets()
+-{
+- let snippetsElt = document.getElementById("snippets");
+-
+- // Show about:rights notification, if needed.
+- let showRights = document.documentElement.getAttribute("showKnowYourRights");
+- if (showRights) {
+- let rightsElt = document.getElementById("rightsSnippet");
+- let anchor = rightsElt.getElementsByTagName("a")[0];
+- anchor.href = "about:rights";
+- snippetsElt.appendChild(rightsElt);
+- rightsElt.removeAttribute("hidden");
+- return;
+- }
+-
+- if (!gSnippetsMap)
+- throw new Error("Snippets map has not properly been initialized");
+- if (_snippetsShown) {
+- // There's something wrong with the remote snippets, just in case fall back
+- // to the default snippets.
+- showDefaultSnippets();
+- throw new Error("showSnippets should never be invoked multiple times");
+- }
+- _snippetsShown = true;
+-
+- let snippets = gSnippetsMap.get("snippets");
+- // If there are remotely fetched snippets, try to to show them.
+- if (snippets) {
+- // Injecting snippets can throw if they're invalid XML.
+- try {
+- snippetsElt.innerHTML = snippets;
+- // Scripts injected by innerHTML are inactive, so we have to relocate them
+- // through DOM manipulation to activate their contents.
+- Array.forEach(snippetsElt.getElementsByTagName("script"), function(elt) {
+- let relocatedScript = document.createElement("script");
+- relocatedScript.type = "text/javascript;version=1.8";
+- relocatedScript.text = elt.text;
+- elt.parentNode.replaceChild(relocatedScript, elt);
+- });
+- return;
+- } catch (ex) {
+- // Bad content, continue to show default snippets.
+- }
+- }
+-
+- showDefaultSnippets();
+-}
+-
+-/**
+- * Clear snippets element contents and show default snippets.
+- */
+-function showDefaultSnippets()
+-{
+- // Clear eventual contents...
+- let snippetsElt = document.getElementById("snippets");
+- snippetsElt.innerHTML = "";
+-
+- // ...then show default snippets.
+- let defaultSnippetsElt = document.getElementById("defaultSnippets");
+- let entries = defaultSnippetsElt.querySelectorAll("span");
+- // Choose a random snippet. Assume there is always at least one.
+- let randIndex = Math.floor(Math.random() * entries.length);
+- let entry = entries[randIndex];
+- // Inject url in the eventual link.
+- if (DEFAULT_SNIPPETS_URLS[randIndex]) {
+- let links = entry.getElementsByTagName("a");
+- // Default snippets can have only one link, otherwise something is messed
+- // up in the translation.
+- if (links.length == 1) {
+- links[0].href = DEFAULT_SNIPPETS_URLS[randIndex];
+- }
+- }
+- // Move the default snippet to the snippets element.
+- snippetsElt.appendChild(entry);
+-}
+-
+ function fitToWidth() {
+ if (window.scrollMaxX) {
+ document.body.setAttribute("narrow", "true");
+diff --git a/browser/base/content/abouthome/aboutHome.xhtml b/browser/base/content/abouthome/aboutHome.xhtml
+index 1d03d38..4f9b6b2 100644
+--- a/browser/base/content/abouthome/aboutHome.xhtml
++++ b/browser/base/content/abouthome/aboutHome.xhtml
+@@ -43,15 +43,6 @@
+ <input id="searchSubmit" type="submit" value="&abouthome.searchEngineButton.label;"/>
+ </form>
+ </div>
+-
+- <div id="snippetContainer">
+- <div id="defaultSnippets" hidden="true">
+- <span id="defaultSnippet1">&abouthome.defaultSnippet1.v1;</span>
+- <span id="defaultSnippet2">&abouthome.defaultSnippet2.v1;</span>
+- </div>
+- <span id="rightsSnippet" hidden="true">&abouthome.rightsSnippet;</span>
+- <div id="snippets"/>
+- </div>
+ </div>
+ <div class="spacer"/>
+
+@@ -66,7 +57,6 @@
+ <div id="restorePreviousSessionSeparator"/>
+ <button class="launchButton" id="restorePreviousSession">&historyRestoreLastSession.label;</button>
+ </div>
+-
+- <a id="aboutMozilla" href="https://www.mozilla.org/about/?utm_source=about-home&amp;utm_medium=Referral"/>
++ <a id="aboutGNU" href="http://gnu.org"></a>
+ </body>
+ </html>
+diff --git a/browser/base/content/content.js b/browser/base/content/content.js
+index 9428613..ba010f3 100644
+--- a/browser/base/content/content.js
++++ b/browser/base/content/content.js
+@@ -80,14 +80,8 @@ let AboutHomeListener = {
+ if (aData.showRestoreLastSession && !PrivateBrowsingUtils.isWindowPrivate(content))
+ doc.getElementById("launcher").setAttribute("session", "true");
+
+- // Inject search engine and snippets URL.
++ // Inject search engine.
+ let docElt = doc.documentElement;
+- // set the following attributes BEFORE searchEngineName, which triggers to
+- // show the snippets when it's set.
+- docElt.setAttribute("snippetsURL", aData.snippetsURL);
+- if (aData.showKnowYourRights)
+- docElt.setAttribute("showKnowYourRights", "true");
+- docElt.setAttribute("snippetsVersion", aData.snippetsVersion);
+ docElt.setAttribute("searchEngineName", Services.search.defaultEngine.name);
+ },
+
+diff --git a/browser/base/jar.mn b/browser/base/jar.mn
+index f2a820c..9478039 100644
+--- a/browser/base/jar.mn
++++ b/browser/base/jar.mn
+@@ -33,7 +33,7 @@ browser.jar:
+ content/browser/abouthome/settings.png (content/abouthome/settings.png)
+ content/browser/abouthome/restore.png (content/abouthome/restore.png)
+ content/browser/abouthome/restore-large.png (content/abouthome/restore-large.png)
+- content/browser/abouthome/mozilla.png (content/abouthome/mozilla.png)
++ content/browser/abouthome/gnu_headshadow.png (content/abouthome/gnu_headshadow.png)
+ content/browser/abouthome/snippet1@2x.png (content/abouthome/snippet1@2x.png)
+ content/browser/abouthome/snippet2@2x.png (content/abouthome/snippet2@2x.png)
+ content/browser/abouthome/downloads@2x.png (content/abouthome/downloads@2x.png)
+@@ -45,7 +45,6 @@ browser.jar:
+ content/browser/abouthome/settings@2x.png (content/abouthome/settings@2x.png)
+ content/browser/abouthome/restore@2x.png (content/abouthome/restore@2x.png)
+ content/browser/abouthome/restore-large@2x.png (content/abouthome/restore-large@2x.png)
+- content/browser/abouthome/mozilla@2x.png (content/abouthome/mozilla@2x.png)
+ #ifdef MOZ_SERVICES_HEALTHREPORT
+ content/browser/abouthealthreport/abouthealth.xhtml (content/abouthealthreport/abouthealth.xhtml)
+ content/browser/abouthealthreport/abouthealth.js (content/abouthealthreport/abouthealth.js)
+diff --git a/browser/locales/en-US/chrome/browser/aboutHome.dtd b/browser/locales/en-US/chrome/browser/aboutHome.dtd
+index e84341f..5476d32 100644
+--- a/browser/locales/en-US/chrome/browser/aboutHome.dtd
++++ b/browser/locales/en-US/chrome/browser/aboutHome.dtd
+@@ -13,17 +13,6 @@
+
+ <!ENTITY abouthome.searchEngineButton.label "Search">
+
+-<!-- LOCALIZATION NOTE (abouthome.defaultSnippet1.v1):
+- text in <a/> will be linked to the Firefox features page on mozilla.com
+--->
+-<!ENTITY abouthome.defaultSnippet1.v1 "Thanks for choosing Firefox! To get the most out of your browser, learn more about the <a>latest features</a>.">
+-<!-- LOCALIZATION NOTE (abouthome.defaultSnippet2.v1):
+- text in <a/> will be linked to the featured add-ons on addons.mozilla.org
+--->
+-<!ENTITY abouthome.defaultSnippet2.v1 "It's easy to customize your Firefox exactly the way you want it. <a>Choose from thousands of add-ons</a>.">
+-<!-- LOCALIZATION NOTE (abouthome.rightsSnippet): text in <a/> will be linked to about:rights -->
+-<!ENTITY abouthome.rightsSnippet "&brandFullName; is free and open source software from the non-profit Mozilla Foundation. <a>Know your rights…</a>">
+-
+ <!ENTITY abouthome.bookmarksButton.label "Bookmarks">
+ <!ENTITY abouthome.historyButton.label "History">
+ <!ENTITY abouthome.settingsButton.label "Settings">
+diff --git a/browser/locales/en-US/chrome/browser-region/region.properties b/browser/locales/en-US/chrome/browser-region/region.properties
+index 087cc50..5654eb9 100644
+--- a/browser/locales/en-US/chrome/browser-region/region.properties
++++ b/browser/locales/en-US/chrome/browser-region/region.properties
+@@ -3,17 +3,12 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ # Default search engine
+-browser.search.defaultenginename=Google
++browser.search.defaultenginename=DuckDuckGo HTML
+
+ # Search engine order (order displayed in the search bar dropdown)s
+-browser.search.order.1=Google
+-browser.search.order.2=Yahoo
+-browser.search.order.3=Bing
+-
+-# This is the default set of web based feed handlers shown in the reader
+-# selection UI
+-browser.contentHandlers.types.0.title=My Yahoo!
+-browser.contentHandlers.types.0.uri=http://add.my.yahoo.com/rss?url=%s
++browser.search.order.1=DuckDuckGo HTML
++browser.search.order.2=DuckDuckGo Lite
++browser.search.order.3=Seeks Search
+
+ # increment this number when anything gets changed in the list below. This will
+ # cause Firefox to re-read these prefs and inject any new handlers into the
+@@ -22,20 +17,10 @@ browser.contentHandlers.types.0.uri=http://add.my.yahoo.com/rss?url=%s
+ # don't make any spelling errors here.
+ gecko.handlerService.defaultHandlersVersion=4
+
+-# The default set of protocol handlers for webcal:
+-gecko.handlerService.schemes.webcal.0.name=30 Boxes
+-gecko.handlerService.schemes.webcal.0.uriTemplate=https://30boxes.com/external/widget?refer=ff&url=%s
+-
+-# The default set of protocol handlers for mailto:
+-gecko.handlerService.schemes.mailto.0.name=Yahoo! Mail
+-gecko.handlerService.schemes.mailto.0.uriTemplate=https://compose.mail.yahoo.com/?To=%s
+-gecko.handlerService.schemes.mailto.1.name=Gmail
+-gecko.handlerService.schemes.mailto.1.uriTemplate=https://mail.google.com/mail/?extsrc=mailto&url=%s
+-
+ # The default set of protocol handlers for irc:
+-gecko.handlerService.schemes.irc.0.name=Mibbit
+-gecko.handlerService.schemes.irc.0.uriTemplate=https://www.mibbit.com/?url=%s
++gecko.handlerService.schemes.irc.0.name=Freenode Web IRC
++gecko.handlerService.schemes.irc.0.uriTemplate=https://webchat.freenode.net
+
+ # The default set of protocol handlers for ircs:
+-gecko.handlerService.schemes.ircs.0.name=Mibbit
+-gecko.handlerService.schemes.ircs.0.uriTemplate=https://www.mibbit.com/?url=%s
++gecko.handlerService.schemes.ircs.0.name=Freenode Web IRC
++gecko.handlerService.schemes.ircs.0.uriTemplate=https://webchat.freenode.net
+diff --git a/browser/locales/generic/profile/bookmarks.html.in b/browser/locales/generic/profile/bookmarks.html.in
+index e925c1e..5101035 100644
+--- a/browser/locales/generic/profile/bookmarks.html.in
++++ b/browser/locales/generic/profile/bookmarks.html.in
+@@ -15,13 +15,20 @@
+ <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">@bookmarks_toolbarfolder@</H3>
+ <DD>@bookmarks_toolbarfolder_description@
+ <DL><p>
+- <DT><A HREF="https://www.mozilla.org/@AB_CD@/firefox/central/" ID="rdf:#$GvPhC3">@getting_started@</A>
++ <DT><A HREF="https://parabolagnulinux.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABL0lEQVQ4jWNgoCcoq16VU1GzygnEBtEVDWuV8GooKFuhWVG3uiM3d5UokG4qr1szAaa5vGbVt4ralacwNDU0rGIrr10VBVG0+lxhwyqVsqqVtRW1q6eD5IvL19oB2V+B+D9QzQu4xtDQVZylVavygRKHqurWOlbUrknKK12qWlCwWLK8elUFA8N/xvLy5VYVtas+gzWDDVi9E2QjT1XdcufymjWpQJt1cXmnvHwVP1DzR7hmIC6vW+kOtpnYQKysW30arrlm9RVi9cFBRfXKJTADympWJZNsQFnN6rUQA1adAQU2SZqBXmUGBtozUDiU1qxQJtl2oCY3kO2l1avCSdYMAsBAWwyM2plkaS4p6eYGOv1YQ0MDB1kGlFWuDChuWKZBlmYQqK5eJU22ZkIAAEIlnQZQkzITAAAAAElFTkSuQmCC">Parabola GNU/Linux-libre</A>
+ </DL><p>
+- <DT><H3 ID="rdf:#$ZvPhC3">@firefox_heading@</H3>
++ <DT><H3 ID="rdf:#$YvPhC3">Parabola GNU/Linux-libre</H3>
+ <DL><p>
+- <DT><A HREF="https://www.mozilla.org/@AB_CD@/firefox/help/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$22iCK1">@firefox_help@</A>
+- <DT><A HREF="https://www.mozilla.org/@AB_CD@/firefox/customize/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$32iCK1">@firefox_customize@</A>
+- <DT><A HREF="https://www.mozilla.org/@AB_CD@/contribute/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$42iCK1">@firefox_community@</A>
+- <DT><A HREF="https://www.mozilla.org/@AB_CD@/about/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$52iCK1">@firefox_about@</A>
++ <DT><A HREF="https://parabolagnulinux.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABL0lEQVQ4jWNgoCcoq16VU1GzygnEBtEVDWuV8GooKFuhWVG3uiM3d5UokG4qr1szAaa5vGbVt4ralacwNDU0rGIrr10VBVG0+lxhwyqVsqqVtRW1q6eD5IvL19oB2V+B+D9QzQu4xtDQVZylVavygRKHqurWOlbUrknKK12qWlCwWLK8elUFA8N/xvLy5VYVtas+gzWDDVi9E2QjT1XdcufymjWpQJt1cXmnvHwVP1DzR7hmIC6vW+kOtpnYQKysW30arrlm9RVi9cFBRfXKJTADympWJZNsQFnN6rUQA1adAQU2SZqBXmUGBtozUDiU1qxQJtl2oCY3kO2l1avCSdYMAsBAWwyM2plkaS4p6eYGOv1YQ0MDB1kGlFWuDChuWKZBlmYQqK5eJU22ZkIAAEIlnQZQkzITAAAAAElFTkSuQmCC">Parabola GNU/Linux-libre</A>
++ <DT><A HREF="https://parabolagnulinux.org/packages/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABL0lEQVQ4jWNgoCcoq16VU1GzygnEBtEVDWuV8GooKFuhWVG3uiM3d5UokG4qr1szAaa5vGbVt4ralacwNDU0rGIrr10VBVG0+lxhwyqVsqqVtRW1q6eD5IvL19oB2V+B+D9QzQu4xtDQVZylVavygRKHqurWOlbUrknKK12qWlCwWLK8elUFA8N/xvLy5VYVtas+gzWDDVi9E2QjT1XdcufymjWpQJt1cXmnvHwVP1DzR7hmIC6vW+kOtpnYQKysW30arrlm9RVi9cFBRfXKJTADympWJZNsQFnN6rUQA1adAQU2SZqBXmUGBtozUDiU1qxQJtl2oCY3kO2l1avCSdYMAsBAWwyM2plkaS4p6eYGOv1YQ0MDB1kGlFWuDChuWKZBlmYQqK5eJU22ZkIAAEIlnQZQkzITAAAAAElFTkSuQmCC">Parabola GNU/Linux-libre Packages</A>
++ <DT><A HREF="https://wiki.parabolagnulinux.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABL0lEQVQ4jWNgoCcoq16VU1GzygnEBtEVDWuV8GooKFuhWVG3uiM3d5UokG4qr1szAaa5vGbVt4ralacwNDU0rGIrr10VBVG0+lxhwyqVsqqVtRW1q6eD5IvL19oB2V+B+D9QzQu4xtDQVZylVavygRKHqurWOlbUrknKK12qWlCwWLK8elUFA8N/xvLy5VYVtas+gzWDDVi9E2QjT1XdcufymjWpQJt1cXmnvHwVP1DzR7hmIC6vW+kOtpnYQKysW30arrlm9RVi9cFBRfXKJTADympWJZNsQFnN6rUQA1adAQU2SZqBXmUGBtozUDiU1qxQJtl2oCY3kO2l1avCSdYMAsBAWwyM2plkaS4p6eYGOv1YQ0MDB1kGlFWuDChuWKZBlmYQqK5eJU22ZkIAAEIlnQZQkzITAAAAAElFTkSuQmCC">Parabola GNU/Linux-libre Wiki</A>
++ <DT><A HREF="https://labs.parabola.nu/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABL0lEQVQ4jWNgoCcoq16VU1GzygnEBtEVDWuV8GooKFuhWVG3uiM3d5UokG4qr1szAaa5vGbVt4ralacwNDU0rGIrr10VBVG0+lxhwyqVsqqVtRW1q6eD5IvL19oB2V+B+D9QzQu4xtDQVZylVavygRKHqurWOlbUrknKK12qWlCwWLK8elUFA8N/xvLy5VYVtas+gzWDDVi9E2QjT1XdcufymjWpQJt1cXmnvHwVP1DzR7hmIC6vW+kOtpnYQKysW30arrlm9RVi9cFBRfXKJTADympWJZNsQFnN6rUQA1adAQU2SZqBXmUGBtozUDiU1qxQJtl2oCY3kO2l1avCSdYMAsBAWwyM2plkaS4p6eYGOv1YQ0MDB1kGlFWuDChuWKZBlmYQqK5eJU22ZkIAAEIlnQZQkzITAAAAAElFTkSuQmCC">Parabola GNU/Linux-libre Labs</A>
++ </DL><p>
++ <DT><H3 ID="rdf:#$ZvPhC3">Free Software Foundation</H3>
++ <DL><p>
++ <DT><A HREF="http://www.fsf.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAADG0lEQVQoFQEQA+/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECAAAAAAAAAAAAAAAAAAAA2qOp7tTXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP///wAAAAAAAOCyt7pUXQcSEgcQDwAAAP///wAAAAAAAAD//x9NSDqNhQEBAQQAAAAAAAAAAAAAAAAQJiQGDQ0aPToZPjoAAQEAAAAAAAAAAAABAQEpZV4AAAAAAAAAAAAA////////////////pSIv05KZ////////////////////////////////AAAAAQAAAP///6krNwAAAAAAAPHc3ggSEQcSEQAAAAAAAAAAABY3NEGelQAAAAAAAAEBAQEAAAD///+YARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGDg1g690CBgYAAAABAQEEAAAAAAAAS7etAAAAAAAAwGVtHklFIlJOAAAAAAAAAAAAAAAA+/X2BwYGAAAAAAAABAAAAAAAAB1IQwAAAAAAAAYNDBAmJB1IQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAgL//v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQEB//7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAECAv/+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////cqK3qzM////////////////////////////////8AAAABAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGuLjDf9F8oBAAAAAElFTkSuQmCC">Free Software Foundation</A>
++ <DT><A HREF="http://libreplanet.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACfElEQVQ4jZXTS0hUcRTH8f+9M3fGd0gRRq1a2bZdBAotWtS6TQtB6IHgKzRy0UKqjRaRCAq+R21MDMsUR83JR5fJxhmaK2lzsWAWw+ToEHJxgnFm7reFIgza66z/58P/dzhHcESZpsluIsFPwyCVSmGa5lHPEEIIkdGYTqPPvqUlP4fK8nJ2DINYNEq71YJ3fv4QlAGkUynaj+VRdfUK7580M52rEN/ZYWNjg2GrjEMSPFXsmOn0YcA0TZ4V5tNZUkJTTTWfJiZIJhJ8U1VczwcZs0o4JUHzufM0ZGcf/OQASCaTxGIxDMNA00P8iEbpuXyJ8Tw77+wWJhWZQYuVbiHoFIKwpmUC4XCYzc1NDMMgHo9z8+IFvl6/xsf7D9ArbjOpyAxLEt1C0CUErfvJDwBd14lEImxvb/N9fR1fgY3egmyWsq0sO/poUyw4pb3mLiFolyRM09wDEokEfr+fUChEJBJh4HgBS7kKn92zLIy9ZriqklFZwiEEHfsRRp1O0un0HpDa3cU9M8PKygp3Tp5AzbKgZlmYt1uYtkn02q0MyYKmnBxWNI27Nhtut5tkMrkHmKZJbWkpqqryQpFxKTJTisyEVeaVRWJIlqgpLuZRWRkejwe/34/P58ucwZvWVhYXF5l2uejIzeHGqbM4ZYmB/dy1hUV8mJpibm4On8/H1tbW4T1YXV3F6/WysLDA5Pg4nfsDe5yfz8OiIjweD5qmEQwGf7/KwWCQtbU1NE2jRZbpEoI2SWKqr49lVUXX9T/fAkAgEKC/e5SW6mo6hKD+zGn6e0bw+/x/PyaA9S/rvOwfobGukfpbddyraMDR7iCwHPg34H9KCCF+Abts3KCj/p6aAAAAAElFTkSuQmCC">LibrePlanet</A>
++ <DT><A HREF="http://www.gnu.org/software/gnuzilla/addons.html" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAGFBMVEVFRUV+fn6mpqa/v7/Ozs7Y2Njg4OD8/Pwuhn+TAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEQAACxEBf2RfkQAAAAd0SU1FB9MBDhQ6Gd8s57cAAAEVSURBVBgZBcGxVtpgGADQL9gHSBzqSognzMixmcWWzB6pmRHhnyvku6/fewMAIPD3TwHmQxHs6vr+A16bphNum/vV0x429201hcPjAGBTDZGnR/Kw1U181+u4HXvOdSxjUcztz8jjg1xGVBG9XPYxt4PviKiaWLg168iXtbrq+mPT1utjNcR1U73deRnL43M2sRgj3+oYs8uL3rLphPd2QWmHbMu/VS/cnk6UdtSW657g9yBlcZ0UAkUWzPvyRaAYmfd+HT4IZtvC59ibEJxXiqJjQpBpNEufBYE0McoOAunGhRMEFIPc7h4goJigQEBxk8u7AgEpL3IEAUZfcgAByGFXQACm5+4MAuB19QMEgI8CAgDgP4rivVgoKP6ZAAAAAElFTkSuQmCC">Free addons</A>
++ <DT><A HREF="http://www.h-node.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgElEQVQ4jaXRz2uSARzHcb0vlRGEzTVWISU1BVkFYTIyjNK1pKcxHA+yhWMWIamHYikFgpoLIi9jwegi3QbL9SzdLmMbM9J+DkJBgm5RDvEPeHeQHOyQz0OH9+V7ePGBr0pqpPmfVPsP8a0AR4MnMEwf48x9K0s/E8oAY9iEMOvD+8yP2qVjrhhRBnSN61n5sIpULqC+pGHh8wNlgEY8jPQXcGh4VXukDND5evYAl46odIuXtYdKAANSudAChO52/XeMZMohecCbcoGdH99Y+7LO72adT9+/4nh8nYOjBl7/SsoB8gBkpHk8T0S2K++pN3fRin3cfnFDHvCuWkI9rEMvHGEo5gbAHnXhnLF1BpZLeRaLOVT2A8Q3A5wMngXgWtKLxX9KPqC+rCWQvYkpeK4NWKcGOgO50ts2MJJ0cPreeQDciTHMchZYIhcwh2wcuqjn+ccwGm9v6wsTxxn0dVgQXZ7Ek3Agpq6QrcaQGmmebtxFSDkRU1fJVmL/BpT2ByV/3eDMhinRAAAAAElFTkSuQmCC">h-node</A>
+ </DL><p>
+ </DL><p>
+diff --git a/browser/modules/AboutHome.jsm b/browser/modules/AboutHome.jsm
+index 98c443d..0173762 100644
+--- a/browser/modules/AboutHome.jsm
++++ b/browser/modules/AboutHome.jsm
+@@ -8,7 +8,7 @@ let Cc = Components.classes;
+ let Ci = Components.interfaces;
+ let Cu = Components.utils;
+
+-this.EXPORTED_SYMBOLS = [ "AboutHomeUtils", "AboutHome" ];
++this.EXPORTED_SYMBOLS = [ "AboutHome" ];
+
+ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+ Components.utils.import("resource://gre/modules/Services.jsm");
+@@ -16,66 +16,6 @@ Components.utils.import("resource://gre/modules/Services.jsm");
+ XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
+ "resource://gre/modules/PrivateBrowsingUtils.jsm");
+
+-// Url to fetch snippets, in the urlFormatter service format.
+-const SNIPPETS_URL_PREF = "browser.aboutHomeSnippets.updateUrl";
+-
+-// Should be bumped up if the snippets content format changes.
+-const STARTPAGE_VERSION = 4;
+-
+-this.AboutHomeUtils = {
+- get snippetsVersion() STARTPAGE_VERSION,
+-
+- /*
+- * showKnowYourRights - Determines if the user should be shown the
+- * about:rights notification. The notification should *not* be shown if
+- * we've already shown the current version, or if the override pref says to
+- * never show it. The notification *should* be shown if it's never been seen
+- * before, if a newer version is available, or if the override pref says to
+- * always show it.
+- */
+- get showKnowYourRights() {
+- // Look for an unconditional override pref. If set, do what it says.
+- // (true --> never show, false --> always show)
+- try {
+- return !Services.prefs.getBoolPref("browser.rights.override");
+- } catch (e) { }
+- // Ditto, for the legacy EULA pref.
+- try {
+- return !Services.prefs.getBoolPref("browser.EULA.override");
+- } catch (e) { }
+-
+-#ifndef MOZILLA_OFFICIAL
+- // Non-official builds shouldn't show the notification.
+- return false;
+-#endif
+-
+- // Look to see if the user has seen the current version or not.
+- var currentVersion = Services.prefs.getIntPref("browser.rights.version");
+- try {
+- return !Services.prefs.getBoolPref("browser.rights." + currentVersion + ".shown");
+- } catch (e) { }
+-
+- // Legacy: If the user accepted a EULA, we won't annoy them with the
+- // equivalent about:rights page until the version changes.
+- try {
+- return !Services.prefs.getBoolPref("browser.EULA." + currentVersion + ".accepted");
+- } catch (e) { }
+-
+- // We haven't shown the notification before, so do so now.
+- return true;
+- }
+-};
+-
+-/**
+- * Returns the URL to fetch snippets from, in the urlFormatter service format.
+- */
+-XPCOMUtils.defineLazyGetter(AboutHomeUtils, "snippetsURL", function() {
+- let updateURL = Services.prefs
+- .getCharPref(SNIPPETS_URL_PREF)
+- .replace("%STARTPAGE_VERSION%", STARTPAGE_VERSION);
+- return Services.urlFormatter.formatURL(updateURL);
+-});
+-
+ /**
+ * This code provides services to the about:home page. Whenever
+ * about:home needs to do something chrome-privileged, it sends a
+@@ -185,17 +125,8 @@ let AboutHome = {
+ ss.promiseInitialized.then(function() {
+ let data = {
+ showRestoreLastSession: ss.canRestoreLastSession,
+- snippetsURL: AboutHomeUtils.snippetsURL,
+- showKnowYourRights: AboutHomeUtils.showKnowYourRights,
+- snippetsVersion: AboutHomeUtils.snippetsVersion
+ };
+
+- if (AboutHomeUtils.showKnowYourRights) {
+- // Set pref to indicate we've shown the notification.
+- let currentVersion = Services.prefs.getIntPref("browser.rights.version");
+- Services.prefs.setBoolPref("browser.rights." + currentVersion + ".shown", true);
+- }
+-
+ if (target) {
+ target.messageManager.sendAsyncMessage("AboutHome:Update", data);
+ } else {
diff --git a/libre/kdebase-konqueror-libre/PKGBUILD b/libre/kdebase-konqueror-libre/PKGBUILD
index 69b70cd04..93d55bbac 100644
--- a/libre/kdebase-konqueror-libre/PKGBUILD
+++ b/libre/kdebase-konqueror-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 200912 2013-12-06 12:18:19Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
@@ -6,7 +6,7 @@
_pkgname='kdebase-konqueror'
pkgname='kdebase-konqueror-libre'
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url="http://kde.org/applications/internet/konqueror/"
@@ -15,7 +15,7 @@ groups=('kde' 'kdebase')
makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml' 'nepomuk-widgets')
source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.xz"
'konq-about-fsdg.diff')
-sha1sums=('de4a7a7802f527cc1f760b051c4a0699d5f6624b'
+sha1sums=('e85b5445380e44894efcaa21f4c95fad1ed4c4f6'
'd6cbb53c04179b8180f9439eca156b7ff2e76b3a')
pkgdesc='KDE File Manager & Web Browser, without Google and nonfree software recommendation'
depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
diff --git a/libre/kdebase-runtime-libre/PKGBUILD b/libre/kdebase-runtime-libre/PKGBUILD
index 8c9a7bdb5..5be70de9c 100644
--- a/libre/kdebase-runtime-libre/PKGBUILD
+++ b/libre/kdebase-runtime-libre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 200879 2013-12-06 12:16:02Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
_pkgname=kdebase-runtime
pkgname=kdebase-runtime-libre
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
pkgdesc="Plugins and applications necessary for the running of KDE applications, without non-privacy search providers"
arch=('i686' 'x86_64' 'mips64el')
@@ -17,7 +17,7 @@ provides=("${_pkgname}=${pkgver}")
depends=("kdelibs>=${pkgver}" 'kactivities' 'smbclient' 'libssh' 'libcanberra'
'oxygen-icons' 'xorg-xauth' 'libwebp')
makedepends=('pkg-config' 'cmake' 'automoc4' 'kdepimlibs' 'openslp' 'doxygen'
- 'networkmanager')
+ 'networkmanager' 'boost')
optdepends=('kdepimlibs: needed by DrKonqi to send crash reports to KDE.org'
'gdb: needed by DrKonqi to generate backtrace'
'htdig: to build the search index in the KHelpCenter'
@@ -26,7 +26,7 @@ install="${_pkgname}.install"
source=("http://download.kde.org/stable/${pkgver}/src/kde-runtime-${pkgver}.tar.xz"
'duckduckgo_html.desktop'
'duckduckgo_lite.desktop')
-sha1sums=('66e34b4fa464866d37379b3c78ea6415941db5c0'
+sha1sums=('7c077b5ff2839fee1cc55016cd6711da1abb584c'
'aa6f39f4b0ad3c110fd05cd6c41190afae9773dd'
'ac3bac94a2c4b1444642524bc5fb539c4c5dcc5b')
diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD
index 12d3cc402..5929de23d 100644
--- a/libre/kdelibs-libre/PKGBUILD
+++ b/libre/kdelibs-libre/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 200864 2013-12-06 12:14:11Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
_pkgname=kdelibs
pkgname=kdelibs-libre
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
-pkgdesc="KDE Core Libraries"
+pkgdesc="KDE Core Libraries, without nonfree plugins recommendation support"
arch=('i686' 'x86_64' 'mips64el')
url='https://projects.kde.org/projects/kde/kdelibs'
license=('GPL' 'LGPL' 'FDL')
@@ -24,7 +24,7 @@ install=${_pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz"
'kde-applications-menu.patch' 'qt4.patch'
'khtml-fsdg.diff')
-sha1sums=('6f7f378ce46ddcf2ee4b7810afc42725a82024c3'
+sha1sums=('a510f9dc2675c5656af00a92f81b747129ff70d1'
'86ee8c8660f19de8141ac99cd6943964d97a1ed7'
'ed1f57ee661e5c7440efcaba7e51d2554709701c'
'a1502a964081ad583a00cf90c56e74bf60121830')
diff --git a/libre/kdenetwork-kopete-libre/PKGBUILD b/libre/kdenetwork-kopete-libre/PKGBUILD
index 7057dc2a0..46e2732a5 100644
--- a/libre/kdenetwork-kopete-libre/PKGBUILD
+++ b/libre/kdenetwork-kopete-libre/PKGBUILD
@@ -1,42 +1,37 @@
-# $Id: PKGBUILD 201125 2013-12-06 12:34:37Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
_pkgname=kdenetwork-kopete
pkgname=kdenetwork-kopete-libre
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
pkgdesc='Instant Messenger, without skype support'
url='http://kde.org/applications/internet/kopete/'
arch=('i686' 'x86_64' 'mips64el')
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdenetwork')
-depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr3' 'libmsn' 'libidn'
+depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn' 'libidn'
'qimageblitz' 'libgadu' 'mediastreamer' 'jsoncpp')
makedepends=('cmake' 'automoc4' 'boost')
install=${_pkgname}.install
replaces=$_pkgname
conflicts=$_pkgname
provides=$_pkgname=$pkgver
-source=("http://download.kde.org/stable/${pkgver}/src/kopete-${pkgver}.tar.xz"
- 'libotr3.patch'
- 'mediastreamer29.patch')
-sha1sums=('d8bc0c386d9f846e2d5f05d7dfa421fdcb2ac537'
- '9c3b0ee15538fbfa36aa0a4748b1f6b5a7905384'
- '317683a5c2acd0a0058c5ab42f6006e9db511ef3')
+source=("http://download.kde.org/stable/${pkgver}/src/kopete-${pkgver}.tar.xz")
+sha1sums=('c1ef611b27079388e48e558a65e2de80db93d875')
prepare() {
cd kopete-${pkgver}
- patch -p2 -i "${srcdir}"/libotr3.patch
- patch -p1 -i "${srcdir}"/mediastreamer29.patch
# Based on http://bzr.trisquel.info/package-helpers/trunk/annotate/head%3A/helpers/natty/make-kdenetwork, revision 34.
sed -i 's/Skype protocol" ON/Skype protocol" OFF/g' protocols/CMakeLists.txt
rm -rf protocols/skype
sed 's/, Skype//' -i doc/index.docbook
+ cd ..
+ mkdir build
}
build() {
- mkdir build
cd build
cmake ../kopete-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
diff --git a/libre/kdenetwork-kopete-libre/libotr3.patch b/libre/kdenetwork-kopete-libre/libotr3.patch
deleted file mode 100644
index 1e96c98d6..000000000
--- a/libre/kdenetwork-kopete-libre/libotr3.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-diff -urN a/kopete/cmake/modules/FindLibOTR.cmake b/kopete/cmake/modules/FindLibOTR.cmake
---- a/kopete/cmake/modules/FindLibOTR.cmake 2012-08-12 18:08:59.000000000 -0600
-+++ b/kopete/cmake/modules/FindLibOTR.cmake 2012-11-09 12:14:24.251450904 -0700
-@@ -13,13 +13,13 @@
- SET(LIBOTR_FIND_QUIETLY TRUE)
- ENDIF (LIBOTR_INCLUDE_DIR AND LIBOTR_LIBRARY)
-
--FIND_PATH(LIBOTR_INCLUDE_DIR libotr/version.h)
-+FIND_PATH(LIBOTR_INCLUDE_DIR libotr3/version.h)
-
--FIND_LIBRARY(LIBOTR_LIBRARY NAMES otr libotr)
-+FIND_LIBRARY(LIBOTR_LIBRARY NAMES otr3 libotr3)
-
--# Determine version information from libotr/version.h
-+# Determine version information from libotr3/version.h
- IF( LIBOTR_INCLUDE_DIR AND LIBOTR_LIBRARY )
-- EXECUTE_PROCESS(COMMAND grep "OTRL_VERSION" "${LIBOTR_INCLUDE_DIR}/libotr/version.h" OUTPUT_VARIABLE output)
-+ EXECUTE_PROCESS(COMMAND grep "OTRL_VERSION" "${LIBOTR_INCLUDE_DIR}/libotr3/version.h" OUTPUT_VARIABLE output)
- STRING(REGEX MATCH "OTRL_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+" LIBOTR_VERSION "${output}")
- STRING(REGEX REPLACE "^OTRL_VERSION \"" "" LIBOTR_VERSION "${LIBOTR_VERSION}")
- # Check if version is at least 3.2.0
-diff -urN a/kopete/plugins/otr/authenticationwizard.h b/kopete/plugins/otr/authenticationwizard.h
---- a/kopete/plugins/otr/authenticationwizard.h 2012-08-12 18:09:00.000000000 -0600
-+++ b/kopete/plugins/otr/authenticationwizard.h 2012-11-09 12:15:11.181265336 -0700
-@@ -26,7 +26,7 @@
- */
-
- extern "C"{
--#include "libotr/proto.h"
-+#include "libotr3/proto.h"
- }
-
- #include "kopetechatsession.h"
-diff -urN a/kopete/plugins/otr/otrlchatinterface.h b/kopete/plugins/otr/otrlchatinterface.h
---- a/kopete/plugins/otr/otrlchatinterface.h 2012-08-12 18:09:00.000000000 -0600
-+++ b/kopete/plugins/otr/otrlchatinterface.h 2012-11-09 12:16:10.141032744 -0700
-@@ -36,10 +36,10 @@
- #include "authenticationwizard.h"
-
- extern "C" {
--#include <libotr/privkey.h>
--#include <libotr/proto.h>
--#include <libotr/message.h>
--#include <libotr/userstate.h>
-+#include <libotr3/privkey.h>
-+#include <libotr3/proto.h>
-+#include <libotr3/message.h>
-+#include <libotr3/userstate.h>
- }
-
-
-diff -urN a/kopete/plugins/otr/otrlconfinterface.h b/kopete/plugins/otr/otrlconfinterface.h
---- a/kopete/plugins/otr/otrlconfinterface.h 2012-08-12 18:09:00.000000000 -0600
-+++ b/kopete/plugins/otr/otrlconfinterface.h 2012-11-09 12:15:56.961084991 -0700
-@@ -32,11 +32,11 @@
- #include <kopetechatsession.h>
-
- extern "C" {
--#include <libotr/privkey.h>
--#include <libotr/proto.h>
--#include <libotr/message.h>
--#include <libotr/userstate.h>
--#include <libotr/context.h>
-+#include <libotr3/privkey.h>
-+#include <libotr3/proto.h>
-+#include <libotr3/message.h>
-+#include <libotr3/userstate.h>
-+#include <libotr3/context.h>
- }
-
- class KOPETE_OTR_SHARED_EXPORT OtrlConfInterface : public QObject
diff --git a/libre/kdenetwork-kopete-libre/mediastreamer29.patch b/libre/kdenetwork-kopete-libre/mediastreamer29.patch
deleted file mode 100644
index eb0b2297e..000000000
--- a/libre/kdenetwork-kopete-libre/mediastreamer29.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc b/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-index 88fdbd1..57c6c05 100644
---- a/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-+++ b/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-@@ -200,7 +200,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
- LOG(LS_INFO) << "Using " << i->name << "/" << i->clockrate;
- pt_ = i->id;
- audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, i->id, 250, 0); /* -1 means that function will choose some free port */
-- port2 = rtp_session_get_local_port(audio_stream_->session);
-+ port2 = rtp_session_get_local_port(audio_stream_->ms.session);
- first = false;
- }
- }
-@@ -211,7 +211,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
- // working with a buggy client; let's try PCMU.
- LOG(LS_WARNING) << "Received empty list of codces; using PCMU/8000";
- audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, 0, 250, 0); /* -1 means that function will choose some free port */
-- port2 = rtp_session_get_local_port(audio_stream_->session);
-+ port2 = rtp_session_get_local_port(audio_stream_->ms.session);
- }
-
- return true;
diff --git a/libre/kdepim-libre/PKGBUILD b/libre/kdepim-libre/PKGBUILD
index 4e7755575..96dca0a5d 100644
--- a/libre/kdepim-libre/PKGBUILD
+++ b/libre/kdepim-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 201135 2013-12-06 12:35:22Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
@@ -22,7 +22,7 @@ pkgname=('kdepim-akonadiconsole-libre'
'kdepim-ktimetracker-libre'
'kdepim-ktnef-libre'
'kdepim-libkdepim-libre')
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url='http://pim.kde.org'
@@ -31,7 +31,7 @@ groups=('kde' 'kdepim-libre')
makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss'
'kde-agent' 'nepomuk-widgets' 'link-grammar')
source=("http://download.kde.org/stable/${pkgver}/src/${_pkgbase}-${pkgver}.tar.xz")
-sha1sums=('e01149607f455e20e58852791f1397739b58a544')
+sha1sums=('1ca184dc89f8c8395ffe4ec62a3fdcd0a7397ac4')
build() {
mkdir build
@@ -67,8 +67,6 @@ package_kdepim-akregator-libre() {
install='kdepim-akregator.install'
cd "${srcdir}"/build/akregator
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/akregator
- make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/kontact/plugins/akregator
make DESTDIR="${pkgdir}" install
}
@@ -83,15 +81,13 @@ package_kdepim-blogilo-libre() {
install='kdepim.install'
cd "${srcdir}"/build/blogilo
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/blogilo
- make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/composereditor-ng
make DESTDIR="${pkgdir}" install
}
package_kdepim-console-libre() {
pkgdesc='Command line tool for accessing calendar files, without nonfree pilot-link support'
- depends=('kdepim-runtime')
+ depends=('kdepim-libkdepim')
url='http://pim.kde.org'
replaces=('kdepim-console')
conflicts=('kdepim-console')
@@ -99,10 +95,6 @@ package_kdepim-console-libre() {
install='kdepim.install'
cd "${srcdir}"/build/console
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/kabcclient
- make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/konsolekalendar
- make DESTDIR="${pkgdir}" install
}
package_kdepim-kaddressbook-libre() {
@@ -113,12 +105,11 @@ package_kdepim-kaddressbook-libre() {
conflicts=('kdepim-kaddressbook')
provides=("kdepim-kaddressbook=${pkgver}")
install='kdepim.install'
- cd "${srcdir}"/build/kaddressbook
- make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/kontact/plugins/kaddressbook
- make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/plugins/kaddressbook
- make DESTDIR="${pkgdir}" install
+ for i in kaddressbook kontact/plugins/kaddressbook \
+ plugins/kaddressbook contactthemeeditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
}
package_kdepim-kalarm-libre() {
@@ -131,8 +122,6 @@ package_kdepim-kalarm-libre() {
install='kdepim.install'
cd "${srcdir}"/build/kalarm
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/kalarm
- make DESTDIR="${pkgdir}" install
}
package_kdepim-kjots-libre() {
@@ -145,8 +134,6 @@ package_kdepim-kjots-libre() {
install='kdepim.install'
cd "${srcdir}"/build/kjots
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/kjots
- make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/kontact/plugins/kjots
make DESTDIR="${pkgdir}" install
}
@@ -161,10 +148,6 @@ package_kdepim-kleopatra-libre() {
provides=("kdepim-kleopatra=${pkgver}")
cd "${srcdir}"/build/kleopatra
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/kleopatra
- make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/kwatchgnupg
- make DESTDIR="${pkgdir}" install
}
package_kdepim-kmail-libre() {
@@ -177,12 +160,12 @@ package_kdepim-kmail-libre() {
replaces=('kdepim-kmail' 'kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
'kdepim-mimelib' 'kdepim-plugins')
provides=("kdepim-kmail=${pkgver}")
- for i in kmail doc/kmail kmailcvt archivemailagent \
- importwizard ksendemail libksieve messagelist mailfilteragent \
- ontologies kontact/plugins/kmail headerthemeeditor; do
- cd "${srcdir}"/build/${i}
- make DESTDIR="${pkgdir}" install
- done
+ for i in kmail kmailcvt agents/archivemailagent agents/folderarchiveagent\
+ agents/mailfilteragent importwizard ksendemail libksieve messagelist \
+ ontologies kontact/plugins/kmail headerthemeeditor mboximporter; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
}
package_kdepim-knode-libre() {
@@ -195,10 +178,6 @@ package_kdepim-knode-libre() {
install='kdepim-knode.install'
cd "${srcdir}"/build/knode
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/knode
- make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/kioslave/news
- make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/kontact/plugins/knode
make DESTDIR="${pkgdir}" install
}
@@ -213,8 +192,6 @@ package_kdepim-knotes-libre() {
install='kdepim.install'
cd "${srcdir}"/build/knotes
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/knotes
- make DESTDIR="${pkgdir}" install
cd "${srcdir}"/build/kontact/plugins/knotes
make DESTDIR="${pkgdir}" install
}
@@ -227,8 +204,8 @@ package_kdepim-kontact-libre() {
conflicts=('kdepim-kontact' 'kdepim-kontactinterfaces')
replaces=('kdepim-kontact' 'kdepim-kontactinterfaces')
provides=("kdepim-kontact=${pkgver}")
- for i in kontact/src doc/kontact kontact/plugins/summary \
- kontact/plugins/specialdates doc/kontact-admin; do
+ for i in kontact/src kontact/plugins/summary \
+ kontact/plugins/specialdates; do
cd "${srcdir}"/build/${i}
make DESTDIR="${pkgdir}" install
done
@@ -242,9 +219,8 @@ package_kdepim-korganizer-libre() {
conflicts=('kdepim-korganizer')
provides=("kdepim-korganizer=${pkgver}")
install='kdepim-korganizer.install'
- for i in korganizer doc/korganizer kontact/plugins/korganizer \
- calendarviews; do
- cd "${srcdir}"/build/${i}
+ for i in korganizer korgac kontact/plugins/korganizer calendarviews; do
+ cd "${srcdir}"/build/${i}
make DESTDIR="${pkgdir}" install
done
}
@@ -270,22 +246,18 @@ package_kdepim-ktimetracker-libre() {
install='kdepim.install'
cd "${srcdir}"/build/ktimetracker
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/ktimetracker
- make DESTDIR="${pkgdir}" install
}
package_kdepim-ktnef-libre() {
pkgdesc='A viewer/extractor for TNEF files, without nonfree pilot-link support'
depends=('kdebase-runtime' 'kdepimlibs')
url="https://projects.kde.org/projects/kde/kdepim/ktnef"
+ install=kdepim-ktnef.install
replaces=('kdepim-ktnef')
conflicts=('kdepim-ktnef')
provides=("kdepim-ktnef=${pkgver}")
- install=kdepim-ktnef.install
cd "${srcdir}"/build/ktnef
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/build/doc/ktnef
- make DESTDIR="${pkgdir}" install
}
package_kdepim-libkdepim-libre() {
@@ -298,11 +270,12 @@ package_kdepim-libkdepim-libre() {
replaces=('kdepim-libkdepim' 'kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
'kdepim-akonadi')
provides=("kdepim-libkdepim=${pkgver}")
- for i in akonadi_next calendarsupport incidenceeditor-ng \
- kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
- mailcommon mailimporter messagecomposer messagecore messageviewer \
- icons templateparser plugins/messageviewer grammar sendlateragent \
- plugins/ktexteditor pimactivity pimcommon pimsettingexporter; do
+ for i in agents/sendlateragent akonadi_next calendarsupport \
+ incidenceeditor-ng kaddressbookgrantlee kdgantt2 libkdepim \
+ libkdepimdbusinterfaces libkleo libkpgp mailcommon mailimporter \
+ messagecomposer messagecore messageviewer icons templateparser \
+ plugins/messageviewer grammar grantleetheme grantleethemeeditor \
+ plugins/ktexteditor pimactivity pimcommon pimsettingexporter; do
cd "${srcdir}"/build/${i}
make DESTDIR="${pkgdir}" install
done
diff --git a/libre/kdeutils-ark-libre/PKGBUILD b/libre/kdeutils-ark-libre/PKGBUILD
index 22636f28f..84aaaad77 100644
--- a/libre/kdeutils-ark-libre/PKGBUILD
+++ b/libre/kdeutils-ark-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 201173 2013-12-06 12:38:09Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
_pkgname=kdeutils-ark
pkgname=kdeutils-ark-libre
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
pkgdesc='Archiving Tool, with unar support'
url='http://kde.org/applications/utilities/ark/'
@@ -20,7 +20,7 @@ replaces=('kdeutils-ark')
conflicts=('kdeutils-ark')
source=("http://download.kde.org/stable/${pkgver}/src/ark-${pkgver}.tar.xz"
'ark-unar-06.patch')
-sha1sums=('cad4391ea3009bf4fa325cbe5b402a06e19a9fef'
+sha1sums=('d7b9fbf595b7fc7a67e52a8ad1f0977b07abd274'
'a0a836950f185d9b2245204579f969203036fdec')
build() {
diff --git a/libre/lirc-libre/PKGBUILD b/libre/lirc-libre/PKGBUILD
index dd48284fb..80797ffe5 100644
--- a/libre/lirc-libre/PKGBUILD
+++ b/libre/lirc-libre/PKGBUILD
@@ -4,9 +4,9 @@
_pkgbase=lirc
pkgbase=lirc-libre
-pkgname=('lirc-libre' 'lirc-utils-libre')
+pkgname=('lirc-libre' 'lirc-libre-utils')
pkgver=0.9.0
-pkgrel=66
+pkgrel=66.1
epoch=1
_extramodules=extramodules-3.12-LIBRE
arch=('i686' 'x86_64' 'mips64el')
@@ -99,14 +99,14 @@ package_lirc-libre() {
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
}
-package_lirc-utils-libre() {
+package_lirc-libre-utils() {
pkgdesc="Linux Infrared Remote Control utils"
depends=('alsa-lib' 'libx11' 'libftdi-compat' 'libirman')
optdepends=('python2: pronto2lirc utility')
options=('strip')
- replaces=('lirc-utils')
- conflicts=('lirc-utils')
- provides=("lirc-utils=$pkgver")
+ replaces=('lirc-utils' 'lirc-utils-libre')
+ conflicts=('lirc-utils' 'lirc-utils-libre')
+ provides=("lirc-utils=$pkgver" "lirc-utils-libre=$pkgver")
install=lirc-utils.install
cd "${srcdir}/lirc-${pkgver}"
diff --git a/libre/qupzilla-libre/PKGBUILD b/libre/qupzilla-libre/PKGBUILD
index ba0a64ed1..fbd577a90 100644
--- a/libre/qupzilla-libre/PKGBUILD
+++ b/libre/qupzilla-libre/PKGBUILD
@@ -1,57 +1,87 @@
-# $Id: PKGBUILD 96569 2013-09-01 16:36:10Z speps $
+# $Id: PKGBUILD 102853 2013-12-22 11:43:13Z speps $
# Maintainer: speps <speps at aur dot archlinux dot org>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
-_name=QupZilla
-_pkgname=qupzilla
-pkgname=qupzilla-libre
+_pkgbase=qupzilla
+pkgbase=qupzilla-libre
+pkgname=(qupzilla-libre qupzilla-libre-qt5)
pkgver=1.4.4
-pkgrel=1.1
-pkgdesc="Cross-platform QtWebKit browser, without non-privacy search providers"
+pkgrel=2
arch=(i686 x86_64 mips64el)
url="http://www.qupzilla.com/"
license=('GPL3')
-depends=('qtwebkit' 'hunspell')
+makedepends=('qtwebkit' 'qt5-webkit' 'qt5-script' 'hunspell')
optdepends=('bash-completion: bash completion support')
-install="$_pkgname.install"
-replaces=$_pkgname
-conflicts=$_pkgname
-provides=$_pkgname=$pkgver
-source=("$_pkgname-$pkgver.tar.gz::https://github.com/$_name/$_pkgname/tarball/v$pkgver"
+source=("$_pkgbase-$pkgver.tar.gz::https://github.com/QupZilla/$_pkgbase/tarball/v$pkgver"
'searchenginesmanager.cpp.sed'
'speeddial.cpp.sed'
'start.html.sed')
+install="$_pkgbase.install"
md5sums=('cfbf5cd23d184275c389c79a39a28631'
'1d926e97a5b287d40fb695f6516f2a06'
'0f166fa102af975b3b8ac030d477e9b8'
'77120a0c39ba8254e5b2c273910f029a')
prepare() {
- cd "$srcdir/$_name-$_pkgname-"*
+ # extract
+ mkdir -p qt{4,5}
+ bsdtar --strip-components 1 -zxf $pkgbase-$pkgver.tar.gz -C qt4
+ bsdtar --strip-components 1 -zxf $pkgbase-$pkgver.tar.gz -C qt5
+
+ # configure
+ export USE_WEBGL=true \
+ QUPZILLA_PREFIX=/usr/
# remove Google and Youtube support, replaces it to DDG HTML
+ cd qt4
+ sed -i -f $srcdir/searchenginesmanager.cpp.sed src/lib/opensearch/searchenginesmanager.cpp
+ sed -i -f $srcdir/speeddial.cpp.sed src/lib/plugins/speeddial.cpp
+ sed -i -f $srcdir/start.html.sed src/lib/data/html/start.html
+
+ cd ../qt5
sed -i -f $srcdir/searchenginesmanager.cpp.sed src/lib/opensearch/searchenginesmanager.cpp
sed -i -f $srcdir/speeddial.cpp.sed src/lib/plugins/speeddial.cpp
sed -i -f $srcdir/start.html.sed src/lib/data/html/start.html
}
build() {
- cd "$srcdir/$_name-$_pkgname-"*
-
- # enable webgl support
- export USE_WEBGL=true
+ cd qt4
+ qmake-qt4
+ make
- qmake-qt4 QUPZILLA_PREFIX=/usr/
+ cd ../qt5
+ qmake
make
}
-package() {
- cd "$srcdir/$_name-$_pkgname-"*
+package_qupzilla-libre() {
+ pkgdesc="Cross-platform QtWebKit browser, without non-privacy search providers"
+ depends=('qtwebkit' 'hunspell')
+ replaces=qupzilla
+ conflicts=qupzilla
+ provides=qupzilla=$pkgver
+
+ cd qt4
+ make INSTALL_ROOT="$pkgdir/" install
+
+ # zsh completion
+ install -Dm644 linux/completion/zsh_completion.sh \
+ "$pkgdir/usr/share/zsh/site-functions/_$_pkgbase"
+}
+
+package_qupzilla-libre-qt5() {
+ pkgdesc="Cross-platform QtWebKit browser (Qt5), without non-privacy search providers"
+ depends=('qt5-webkit' 'qt5-script' 'hunspell' 'desktop-file-utils' 'hicolor-icon-theme')
+ provides=('qupzilla-qt5' 'qupzilla-libre')
+ conflicts=('qupzilla-qt5' 'qupzilla-libre')
+ provides=qupzilla-qt5=$pkgver
+
+ cd qt5
make INSTALL_ROOT="$pkgdir/" install
# zsh completion
install -Dm644 linux/completion/zsh_completion.sh \
- "$pkgdir/usr/share/zsh/site-functions/_$_pkgname"
+ "$pkgdir/usr/share/zsh/site-functions/_$_pkgbase"
}
# vim:set ts=2 sw=2 et:
diff --git a/libre/reflector/PKGBUILD b/libre/reflector/PKGBUILD
index e3b54ba59..d3b64fd8e 100644
--- a/libre/reflector/PKGBUILD
+++ b/libre/reflector/PKGBUILD
@@ -1,27 +1,27 @@
#Maintainer: Xyne <ac xunilhcra enyx, backwards>
#Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
pkgname=reflector
-pkgver=2013
-pkgrel=3.1
+pkgver=2013.12.15.1
+pkgrel=1
pkgdesc='A Python 3 module and script to retrieve and filter the latest Pacman mirror list (Parabola rebranded)'
arch=(any)
license=(GPL)
url="http://xyne.archlinux.ca/projects/reflector"
depends=(python3)
source=(
- http://xyne.archlinux.ca/projects/reflector/src/reflector-2013.tar.xz
- http://xyne.archlinux.ca/projects/reflector/src/reflector-2013.tar.xz.sig
+ http://xyne.archlinux.ca/projects/reflector/src/reflector-2013.12.15.1.tar.xz
+ http://xyne.archlinux.ca/projects/reflector/src/reflector-2013.12.15.1.tar.xz.sig
rebranding.patch
)
sha512sums=(
- 78351923edfafbf900e610d4461d341896e7618ceb4031120bb75155c5922cd6ba78b6309a04cf3802307e52d5b038ac7e7932ed8ccd59faa1acd197bd4765c5
+ ac8a23fb6746d85ee4e4d707659da07f5a7b6c18cadba03c8b03430cae70f444e6b35404342da2f9c0ea490e8c4c0f408657880de00a57d9f94d4ab335aa7c55
SKIP
- 29ff0df25cfc93bb0d6d8fdec69ba6e0160a8da249f4bbcaf57b9b82fb735659de6e2c1bf9a63a782bb17f29f841f8397dd48d7f60234cda292bc2eea63f8cd5
+ 83609177f88c0412f1a543f0431ecfb8be229bfef76d7087c35e9273988faedaf24a98ca45d98248eb5dfaa9a27e321dea99a256c68c5bc86a8a0ba53ed56d02
)
md5sums=(
- 3ea0857cdb4ca3e3f9c9c243d09b1fea
+ ccb315013442b7c8aa42c1d017835d38
SKIP
- c96302d6afc183d12c10f6e8a23b2d21
+ 24c2a21bc1ac0d3758d8043f36d95add
)
prepare ()
diff --git a/libre/reflector/rebranding.patch b/libre/reflector/rebranding.patch
index 186197565..d78462b06 100644
--- a/libre/reflector/rebranding.patch
+++ b/libre/reflector/rebranding.patch
@@ -1,7 +1,8 @@
-diff -Nur reflector-2013.orig/Reflector.py reflector-2013/Reflector.py
---- reflector-2013.orig/Reflector.py 2013-01-04 00:13:58.000000000 -0200
-+++ reflector-2013/Reflector.py 2013-12-14 16:30:41.096429595 -0200
-@@ -60,7 +60,7 @@
+diff --git a/Reflector.py b/Reflector.py
+index c046d23..ddf3ac8 100644
+--- a/Reflector.py
++++ b/Reflector.py
+@@ -63,7 +63,7 @@ def get_cache_file():
class MirrorStatus():
# JSON URI
@@ -10,7 +11,7 @@ diff -Nur reflector-2013.orig/Reflector.py reflector-2013/Reflector.py
# Mirror URL format. Accepts server base URL, repository, and architecture.
MIRROR_URL_FORMAT = '{0}{1}/os/{2}'
MIRRORLIST_ENTRY_FORMAT = "Server = " + MIRROR_URL_FORMAT + "\n"
-@@ -88,14 +88,18 @@
+@@ -92,8 +92,12 @@ class MirrorStatus():
'extra',
'gnome-unstable',
'kde-unstable',
@@ -24,32 +25,25 @@ diff -Nur reflector-2013.orig/Reflector.py reflector-2013/Reflector.py
'staging',
'testing'
)
-
- # Known system architectures, as used to replace the "$arch" variable.
-- ARCHITECTURES = ['i686', 'x86_64']
-+ ARCHITECTURES = ['i686', 'x86_64', 'mips64el']
-
- # Initialize
- # refresh_interval:
-@@ -393,7 +397,7 @@
- if mirrors is None:
- mirrors = self.get_mirrors()
-
-- mirrorlist = ("# Arch Linux mirrorlist generated by Reflector\n" + "# %-11s %s\n" * 5 + "\n") % (\
-+ mirrorlist = ("# Parabola GNU/Linux-libre mirrorlist generated by Reflector\n" + "# %-11s %s\n" * 5 + "\n") % (\
- 'With:',
- ' '.join(cmd),
- 'When:',
-@@ -455,7 +459,7 @@
-
- # Parse arguments. If none are passed, use ARGV.
- def parse_args(args=None):
-- parser = ArgumentParser(description='retrieve and filter a list of the latest Arch Linux mirrors')
-+ parser = ArgumentParser(description='retrieve and filter a list of the latest Parabola GNU/Linux-libre mirrors')
+@@ -449,7 +453,7 @@ class MirrorStatus():
+
+ width = 80
+ colw = 11
+- header = '# Arch Linux mirrorlist generated by Reflector #'.center(width, '#')
++ header = '# Parabola GNU/Linux-libre mirrorlist generated by Reflector #'.center(width, '#')
+ border = '#' * len(header)
+ mirrorlist = '{}\n{}\n{}\n'.format(border, header, border) + \
+ '\n' + \
+@@ -516,7 +520,7 @@ def add_arguments(parser):
+ '''
+ Add reflector arguments to the argument parser.
+ '''
+- parser = argparse.ArgumentParser(description='retrieve and filter a list of the latest Arch Linux mirrors')
++ parser = argparse.ArgumentParser(description='retrieve and filter a list of the latest Parabola GNU/Linux-libre mirrors')
parser.add_argument(
'--connection-timeout', dest='connection_timeout', type=int, metavar='n', default=5,
-@@ -474,7 +478,7 @@
+@@ -535,7 +539,7 @@ def add_arguments(parser):
parser.add_argument(
'--cache-timeout', dest='cache_timeout', type=int, metavar='n', default=300,
@@ -58,3 +52,12 @@ diff -Nur reflector-2013.orig/Reflector.py reflector-2013/Reflector.py
)
parser.add_argument(
+@@ -615,7 +619,7 @@ def parse_args(args=None):
+ Parse command-line arguments.
+ '''
+ parser = argparse.ArgumentParser(
+- description='retrieve and filter a list of the latest Arch Linux mirrors'
++ description='retrieve and filter a list of the latest Parabola GNU/Linux-libre mirrors'
+ )
+ parser = add_arguments(parser)
+ options = parser.parse_args(args)
diff --git a/libre/vhba-module-libre/PKGBUILD b/libre/vhba-module-libre/PKGBUILD
index 6fd03acd8..695f4ef92 100644
--- a/libre/vhba-module-libre/PKGBUILD
+++ b/libre/vhba-module-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 102514 2013-12-12 19:08:21Z heftig $
+# $Id: PKGBUILD 102839 2013-12-21 18:35:50Z tpowa $
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: Mateusz Herych <heniekk@gmail.com>
# Contributor: Charles Lindsay <charles@chaoslizard.org>
@@ -8,7 +8,7 @@ _pkgname=vhba-module
pkgname=vhba-module-libre
pkgver=20130607
_extramodules=extramodules-3.12-LIBRE
-pkgrel=19
+pkgrel=20
pkgdesc="Kernel module that emulates SCSI devices (built for the linux-libre kernel package)"
arch=('i686' 'x86_64' 'mips64el')
url="http://cdemu.sourceforge.net/"
@@ -22,7 +22,7 @@ conflicts=('vhba-module')
provides=("vhba-module=$pkgver")
source=("http://downloads.sourceforge.net/cdemu/$_pkgname-$pkgver.tar.bz2"
'60-vhba.rules')
-md5sums=('92a681e4665aa85a8335d00395a61697'
+md5sums=('660df41d08b1fd86baad1f16a0264438'
'4dc37dc348b5a2c83585829bde790dcc')
build() {
diff --git a/nonprism/kdenetwork-kopete-libre-nonprism/PKGBUILD b/nonprism/kdenetwork-kopete-libre-nonprism/PKGBUILD
index 7927661a6..cd932ac3e 100644
--- a/nonprism/kdenetwork-kopete-libre-nonprism/PKGBUILD
+++ b/nonprism/kdenetwork-kopete-libre-nonprism/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 201125 2013-12-06 12:34:37Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
_pkgname=kdenetwork-kopete
pkgname=kdenetwork-kopete-libre-nonprism
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
pkgdesc='Instant Messenger, without skype and support for unsafe and dangerous for privacy protocols'
url='http://kde.org/applications/internet/kopete/'
arch=('i686' 'x86_64' 'mips64el')
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdenetwork')
-depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr3' 'libidn'
+depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libidn'
'qimageblitz' 'mediastreamer' 'jsoncpp')
makedepends=('cmake' 'automoc4' 'boost')
install=${_pkgname}.install
@@ -19,18 +19,11 @@ replaces=$_pkgname
conflicts=$_pkgname
provides=$_pkgname=$pkgver
source=("http://download.kde.org/stable/${pkgver}/src/kopete-${pkgver}.tar.xz"
- 'libotr3.patch'
- 'mediastreamer29.patch'
'libre-nonprism.patch')
-sha1sums=('d8bc0c386d9f846e2d5f05d7dfa421fdcb2ac537'
- '9c3b0ee15538fbfa36aa0a4748b1f6b5a7905384'
- '317683a5c2acd0a0058c5ab42f6006e9db511ef3'
- '3c46e5c80ef0cd3f6fe9fb6d5cb8c252c6792208')
+sha1sums=('c1ef611b27079388e48e558a65e2de80db93d875')
prepare() {
cd kopete-${pkgver}
- patch -p2 -i "${srcdir}"/libotr3.patch
- patch -p1 -i "${srcdir}"/mediastreamer29.patch
# Based on http://bzr.trisquel.info/package-helpers/trunk/annotate/head%3A/helpers/natty/make-kdenetwork, revision 34.
sed -i 's/Skype protocol" ON/Skype protocol" OFF/g' protocols/CMakeLists.txt
rm -rf protocols/skype
@@ -52,10 +45,11 @@ prepare() {
sed -i 's/meanwhile protocol" ON/meanwhile protocol" OFF/g' protocols/CMakeLists.txt
rm -rf protocols/meanwhile
patch -p1 -i "${srcdir}"/libre-nonprism.patch
+ cd ..
+ mkdir build
}
build() {
- mkdir build
cd build
cmake ../kopete-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
diff --git a/nonprism/kdenetwork-kopete-libre-nonprism/libotr3.patch b/nonprism/kdenetwork-kopete-libre-nonprism/libotr3.patch
deleted file mode 100644
index 1e96c98d6..000000000
--- a/nonprism/kdenetwork-kopete-libre-nonprism/libotr3.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-diff -urN a/kopete/cmake/modules/FindLibOTR.cmake b/kopete/cmake/modules/FindLibOTR.cmake
---- a/kopete/cmake/modules/FindLibOTR.cmake 2012-08-12 18:08:59.000000000 -0600
-+++ b/kopete/cmake/modules/FindLibOTR.cmake 2012-11-09 12:14:24.251450904 -0700
-@@ -13,13 +13,13 @@
- SET(LIBOTR_FIND_QUIETLY TRUE)
- ENDIF (LIBOTR_INCLUDE_DIR AND LIBOTR_LIBRARY)
-
--FIND_PATH(LIBOTR_INCLUDE_DIR libotr/version.h)
-+FIND_PATH(LIBOTR_INCLUDE_DIR libotr3/version.h)
-
--FIND_LIBRARY(LIBOTR_LIBRARY NAMES otr libotr)
-+FIND_LIBRARY(LIBOTR_LIBRARY NAMES otr3 libotr3)
-
--# Determine version information from libotr/version.h
-+# Determine version information from libotr3/version.h
- IF( LIBOTR_INCLUDE_DIR AND LIBOTR_LIBRARY )
-- EXECUTE_PROCESS(COMMAND grep "OTRL_VERSION" "${LIBOTR_INCLUDE_DIR}/libotr/version.h" OUTPUT_VARIABLE output)
-+ EXECUTE_PROCESS(COMMAND grep "OTRL_VERSION" "${LIBOTR_INCLUDE_DIR}/libotr3/version.h" OUTPUT_VARIABLE output)
- STRING(REGEX MATCH "OTRL_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+" LIBOTR_VERSION "${output}")
- STRING(REGEX REPLACE "^OTRL_VERSION \"" "" LIBOTR_VERSION "${LIBOTR_VERSION}")
- # Check if version is at least 3.2.0
-diff -urN a/kopete/plugins/otr/authenticationwizard.h b/kopete/plugins/otr/authenticationwizard.h
---- a/kopete/plugins/otr/authenticationwizard.h 2012-08-12 18:09:00.000000000 -0600
-+++ b/kopete/plugins/otr/authenticationwizard.h 2012-11-09 12:15:11.181265336 -0700
-@@ -26,7 +26,7 @@
- */
-
- extern "C"{
--#include "libotr/proto.h"
-+#include "libotr3/proto.h"
- }
-
- #include "kopetechatsession.h"
-diff -urN a/kopete/plugins/otr/otrlchatinterface.h b/kopete/plugins/otr/otrlchatinterface.h
---- a/kopete/plugins/otr/otrlchatinterface.h 2012-08-12 18:09:00.000000000 -0600
-+++ b/kopete/plugins/otr/otrlchatinterface.h 2012-11-09 12:16:10.141032744 -0700
-@@ -36,10 +36,10 @@
- #include "authenticationwizard.h"
-
- extern "C" {
--#include <libotr/privkey.h>
--#include <libotr/proto.h>
--#include <libotr/message.h>
--#include <libotr/userstate.h>
-+#include <libotr3/privkey.h>
-+#include <libotr3/proto.h>
-+#include <libotr3/message.h>
-+#include <libotr3/userstate.h>
- }
-
-
-diff -urN a/kopete/plugins/otr/otrlconfinterface.h b/kopete/plugins/otr/otrlconfinterface.h
---- a/kopete/plugins/otr/otrlconfinterface.h 2012-08-12 18:09:00.000000000 -0600
-+++ b/kopete/plugins/otr/otrlconfinterface.h 2012-11-09 12:15:56.961084991 -0700
-@@ -32,11 +32,11 @@
- #include <kopetechatsession.h>
-
- extern "C" {
--#include <libotr/privkey.h>
--#include <libotr/proto.h>
--#include <libotr/message.h>
--#include <libotr/userstate.h>
--#include <libotr/context.h>
-+#include <libotr3/privkey.h>
-+#include <libotr3/proto.h>
-+#include <libotr3/message.h>
-+#include <libotr3/userstate.h>
-+#include <libotr3/context.h>
- }
-
- class KOPETE_OTR_SHARED_EXPORT OtrlConfInterface : public QObject
diff --git a/nonprism/kdenetwork-kopete-libre-nonprism/mediastreamer29.patch b/nonprism/kdenetwork-kopete-libre-nonprism/mediastreamer29.patch
deleted file mode 100644
index eb0b2297e..000000000
--- a/nonprism/kdenetwork-kopete-libre-nonprism/mediastreamer29.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc b/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-index 88fdbd1..57c6c05 100644
---- a/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-+++ b/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-@@ -200,7 +200,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
- LOG(LS_INFO) << "Using " << i->name << "/" << i->clockrate;
- pt_ = i->id;
- audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, i->id, 250, 0); /* -1 means that function will choose some free port */
-- port2 = rtp_session_get_local_port(audio_stream_->session);
-+ port2 = rtp_session_get_local_port(audio_stream_->ms.session);
- first = false;
- }
- }
-@@ -211,7 +211,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
- // working with a buggy client; let's try PCMU.
- LOG(LS_WARNING) << "Received empty list of codces; using PCMU/8000";
- audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, 0, 250, 0); /* -1 means that function will choose some free port */
-- port2 = rtp_session_get_local_port(audio_stream_->session);
-+ port2 = rtp_session_get_local_port(audio_stream_->ms.session);
- }
-
- return true;
diff --git a/nonprism/kdepim-runtime-nonprism/PKGBUILD b/nonprism/kdepim-runtime-nonprism/PKGBUILD
index b99ee562f..0e899459f 100644
--- a/nonprism/kdepim-runtime-nonprism/PKGBUILD
+++ b/nonprism/kdepim-runtime-nonprism/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 200881 2013-12-06 12:16:11Z svenstaro $
+# $Id: PKGBUILD 201659 2013-12-17 13:52:43Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
_pkgname=kdepim-runtime
pkgname=kdepim-runtime-nonprism
-pkgver=4.11.4
+pkgver=4.12.0
pkgrel=1
pkgdesc='Extends the functionality of kdepim, without libkgapi and libkfbapi support'
arch=('i686' 'x86_64')
@@ -18,7 +18,7 @@ replaces=('kdepim-runtime' 'kdepim-runtime-coherence')
conflicts=kdepim-runtime
provides=kdepim-runtime=$pkgver
source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz")
-sha1sums=('202f6c9d0631c6297d4fd6b0b46167bab34a9b34')
+sha1sums=('fe988ea74cf83f1dae99f81bc02eefaa834c664c')
prepare() {
mkdir build
diff --git a/pcr/mathjax/PKGBUILD b/pcr/mathjax/PKGBUILD
index 779aa5a74..2bdc6ec67 100644
--- a/pcr/mathjax/PKGBUILD
+++ b/pcr/mathjax/PKGBUILD
@@ -1,19 +1,20 @@
-# Maintainer (Arch): Tianjiao Yin <ytj000@gmail.com>
-# Maintainer (Parabola): Alon Ivtsan <alonivtsan@lavabit.com>
-#taken from https://aur.archlinux.org/packages/mathjax/
+# Maintainer: Kevin Dodd <jesin00@gmail.com>
+# Contributor: Tianjiao Yin <ytj000@gmail.com>
pkgname=mathjax
-pkgver=2.2
+pkgver=2.3
pkgrel=2
pkgdesc='An open source JavaScript display engine for mathematics that works in all modern browsers'
url='http://www.mathjax.org/'
arch=('any')
-license=('apache')
-options=('!strip')
-source=('https://github.com/mathjax/MathJax/archive/v2.2.tar.gz')
+license=('Apache')
+options=(!strip libtool staticlibs)
+source=("https://github.com/mathjax/MathJax/archive/v${pkgver}.tar.gz")
+sha256sums=('0cd8f6de29b6c686550098119ab5301bdf60b03aeb8f9f2058e2832a0662687b')
-build() {
- mkdir -p $pkgdir/usr/share
- mv $srcdir/MathJax-* $pkgdir/usr/share/mathjax
+package() {
+ mkdir -p "$pkgdir/usr/share/fonts"
+ mv "$srcdir/MathJax-$pkgver" "$pkgdir/usr/share/mathjax"
+ ln -s '../mathjax/fonts' "$pkgdir/usr/share/fonts/mathjax"
}
-md5sums=('9e3ace5d926be939befb9bc79138a6f8')
+
diff --git a/pcr/twinkle/PKGBUILD b/pcr/twinkle/PKGBUILD
index 5a8a0430c..b9e8fc537 100644
--- a/pcr/twinkle/PKGBUILD
+++ b/pcr/twinkle/PKGBUILD
@@ -7,7 +7,7 @@
pkgname=twinkle
pkgver=1.4.2
-pkgrel=19
+pkgrel=20
pkgdesc="Softphone for voice over IP and IM communication using SIP"
arch=('x86_64' 'i686')
url="http://www.twinklephone.com/"
diff --git a/pcr/youtube-dl-current/PKGBUILD b/pcr/youtube-dl-current/PKGBUILD
index bd3fd656d..9823708cd 100644
--- a/pcr/youtube-dl-current/PKGBUILD
+++ b/pcr/youtube-dl-current/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=youtube-dl-current
_pkgname=youtube-dl
provides=(youtube-dl)
-pkgver=2013.12.17.2
+pkgver=2013.12.20
pkgrel=1
pkgdesc="A small command-line program to download videos from YouTube.com and a few more sites"
arch=('any')
@@ -28,5 +28,5 @@ package() {
"${pkgdir}/usr/share/bash-completion/completions/youtube-dl"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
}
-md5sums=('6935fa727e1b85a1afd142101316db6e'
+md5sums=('be0cf52206f9ba3f5f841deec3ce3bde'
'SKIP')
diff --git a/~drtan/parabola-gnome/PKGBUILD b/~drtan/parabola-gnome/PKGBUILD
index b692bae39..7792eb325 100644
--- a/~drtan/parabola-gnome/PKGBUILD
+++ b/~drtan/parabola-gnome/PKGBUILD
@@ -8,8 +8,10 @@ arch=('any')
url="https://parabolagnulinux.org"
license=('GPL3')
depends=('parabola-wallpapers>=1.0')
+source=('parabola.xml')
+sha256sums=('60365e38f0aa39c63e885c7e7fbc0e0e0f78eff93aecee9977ec832eb2447950')
package() {
install -d "${pkgdir}/usr/share/gnome-background-properties"
- install -m644 "parabola.xml" "${pkgdir}/usr/share/gnome-background-properties/"
+ install -m644 parabola.xml "${pkgdir}/usr/share/gnome-background-properties/"
}