From 88c7cb00e70f57014e360d4624752b83233854e4 Mon Sep 17 00:00:00 2001 From: Martin Väth Date: Sat, 6 Feb 2016 19:40:36 +0100 Subject: Support palemoon --- eclass/mv_mozextension-r1.eclass | 107 ++++++++++++++++++--------------------- profiles/use.desc | 2 + 2 files changed, 52 insertions(+), 57 deletions(-) diff --git a/eclass/mv_mozextension-r1.eclass b/eclass/mv_mozextension-r1.eclass index 919a5a90..d07ab0c8 100644 --- a/eclass/mv_mozextension-r1.eclass +++ b/eclass/mv_mozextension-r1.eclass @@ -13,12 +13,12 @@ # @CODE # inherit moz # -# moz_defaults firefox seamonkey # no arguments mean all browsers +# moz_defaults firefox palemoon seamonkey # no arguments mean all browsers # # @CODE # inherit moz # -# MOZ="firefox seamonkey" +# MOZ="firefox palemoon seamonkey" # DEPEND=${MOZ_DEPEND} # RDEPEND=$(moz_rdepend ${MOZ}) # IUSE=$(moz_iuse ${MOZ}) @@ -83,69 +83,57 @@ MOZ_DEPEND='app-arch/unzip' # @USAGE: [] [] [...] # @DESCRIPTION: # Outputs RDEPEND expression appropriate for browsers. -# browser is [firefox|seamonkey][-source|-bin] (no specified means both/all) +# browser is [firefox|palemoon|seamonkey][-source|-bin] (no specified = all) moz_rdepend() { - local rdep i - [ ${#} -ne 0 ] || set -- "firefox seamonkey" - i= + local rdep i c mode + [ ${#} -ne 0 ] || set -- "firefox palemoon seamonkey" + c= rdep= - case "${*}" in - *firefox?source*) - i=a - rdep="browser_firefox? ( www-client/firefox )";; - *firefox?bin*) - i=a - rdep="browser_firefox-bin? ( www-client/firefox-bin )";; - *firefox*) - i=aa - rdep="browser_firefox? ( www-client/firefox ) -browser_firefox-bin? ( www-client/firefox-bin )";; - esac - case "${*}" in - *seamonkey?source*) - i=${i}a - rdep=${rdep}${rdep:+' -'}"browser_seamonkey? ( www-client/seamonkey )";; - *seamonkey?bin*) - i=${i}a - rdep=${rdep}${rdep:+' -'}"browser_seamonkey-bin? ( www-client/seamonkey-bin )";; - *seamonkey*) - i=${i}aa - rdep=${rdep}${rdep:+' -'}"browser_seamonkey? ( www-client/seamonkey ) -browser_seamonkey-bin? ( www-client/seamonkey-bin )";; - esac - [ -n "${i}" ] || die "args must be [firefox|seamonkey][-source|-bin]" - [ "${i}" = a ] && echo "${rdep}" || echo "|| ( ${rdep} )" + for i in firefox palemoon seamonkey + do mode= + case ${*} in + *"${i}"?source*) + mode=s;; + *"${i}"?bin*) + mode=b;; + *"${i}"*) + mode=sb;; + esac + case ${mode} in + *s*) + rdep="${rdep}${rdep:+ }browser_${i}? ( www-client/${i} )" + c=${c}a;; + esac + case ${mode} in + *b*) + rdep="${rdep}${rdep:+ }browser_${i}-bin? ( www-client/${i}-bin )" + c=${c}a;; + esac + done + [ -n "${c}" ] || die "args must be [firefox|palemoon|seamonkey][-source|-bin]" + [ "${c}" = a ] && echo "${rdep}" || echo "|| ( ${rdep} )" } # @FUNCTION: moz_iuse # @USAGE: [] [] [...] # @DESCRIPTION: # Outputs IUSE expression appropriate for browsers. -# browser is [firefox|seamonkey][-source|-bin] (no specified means both/all) +# browser is [firefox|palemoon|seamonkey][-source|-bin] (no specified = all) moz_iuse() { local iuse i - [ ${#} -ne 0 ] || set -- "firefox seamonkey" + [ ${#} -ne 0 ] || set -- "firefox palemoon seamonkey" iuse= - case "${*}" in - *firefox?source*) - iuse="browser_firefox";; - *firefox?bin*) - iuse="browser_firefox-bin";; - *firefox*) - iuse="browser_firefox browser_firefox-bin";; - esac - case "${*}" in - *seamonkey?source*) - iuse="${iuse}${iuse:+ }browser_seamonkey";; - *seamonkey?bin*) - iuse="${iuse}${iuse:+ }browser_seamonkey-bin";; - *seamonkey*) - iuse="${iuse}${iuse:+ }browser_seamonkey browser_seamonkey-bin";; - esac - [ -n "${iuse}" ] || die "args must be [firefox|seamonkey][-source|-bin]" + for i in firefox palemoon seamonkey + do case "${*}" in + *"${i}"?source*) + iuse="${iuse}${iuse:+ }browser_${i}";; + *"${i}"?bin*) + iuse="${iuse}${iuse:+ }browser_${i}-bin";; + *"${i}"*) + iuse="${iuse}${iuse:+ }browser_${i} browser_${i}-bin";; + esac + done + [ -n "${iuse}" ] || die "args must be [firefox|palemoon|seamonkey][-source|-bin]" echo "${iuse}" } @@ -153,7 +141,7 @@ moz_iuse() { # @USAGE: [] [] [...] # @DESCRIPTION: # Outputs REQUIRED_USE expression appropriate for browsers. -# browser is [firefox|seamonkey][-source|-bin] (no specified means both/all) +# browser is [firefox|palemoon|seamonkey][-source|-bin] (no specified means all) moz_required_use() { set -- $(moz_iuse "${@}") [ ${#} -lt 2 ] && echo "${*}" || echo "|| ( ${*} )" @@ -234,15 +222,20 @@ moz_install_to_dir() { # If arguments are specified, they must contain at least one directory. # If no argument is specified, all directories from "${S}" are considered. moz_install_for_browser() { - local dest firefox seamonkey + local dest firefox palemoon seamonkey [ ${#} -ne 0 ] || die "${FUNCNAME} needs at least one argument" firefox="firefox/browser/extensions" + palemoon="palemoon/browser/extensions" seamonkey="seamonkey/extensions" case ${1} in firefox) dest="/usr/$(get_libdir)/${firefox}";; firefox?bin) dest="/opt/${firefox}";; + palemoon) + dest="/usr/$(get_libdir)/${palemoon}";; + palemoon?bin) + dest="/opt/${palemoon}";; seamonkey) dest="/usr/$(get_libdir)/${seamonkey}";; seamonkey?bin) @@ -263,7 +256,7 @@ moz_install_for_browser() { # If no argument is specified, all directories from "${S}" are considered. moz_install() { local i - for i in firefox firefox-bin seamonkey seamonkey-bin + for i in firefox firefox-bin palemoon palemoon-bin seamonkey seamonkey-bin do if in_iuse "browser_${i}" && use "browser_${i}" then moz_install_for_browser "${i}" "${@}" fi diff --git a/profiles/use.desc b/profiles/use.desc index 6b01d57c..9468a2c1 100644 --- a/profiles/use.desc +++ b/profiles/use.desc @@ -1,4 +1,6 @@ browser_firefox - Install extension for www-client/firefox browser_firefox-bin - Install extension for the www-client/firefox-bin +browser_palemoon - Install extension for www-client/palemoon; requires currently to patch the palemoon ebuild to install into /usr/$(get_libdir)/palemoon (without version number) +browser_palemoon-bin - Install extension for the www-client/palemoon-bin browser_seamonkey - Install extension for the www-client/seamonkey browser_seamonkey-bin - Install extension for the www-client/seamonkey-bin -- cgit v1.2.3-65-gdbad