Najnoviji Firefox za stabilni Slack

Prikazi softvera i linkovi za preuzimanje

Moderators: Slackmuz, Urednik

Post Reply

Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 27 Oct 2014, 23:16


Ruari Oedegaard (ruario) je sklopio korisnu skriptu koja automatski preuzima binarnu arhivu poslednje stabilne verzije Firefoxa i prepakuje je u Slackware paket. Skriptu možete naći ovde: https://gist.github.com/ruario/9672798" onclick="window.open(this.href);return false;

Instalacija bi mogla da izgleda ovako:

Code: Select all

su
wget https://gist.githubusercontent.com/ruario/9672798/raw/8a1820e4250cb01fedb467c8f8469cc1de721212/latest-firefox -O /usr/local/bin/latest-firefox
chmod 755 /usr/local/bin/latest-firefox
Korišćenje:

Code: Select all

su
latest-firefox
installpkg /tmp/mozilla-firefox-XX.Y-ARCH-1ro.tgz 



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 2168
Joined: 08 Jun 2010, 13:28
Location: Centralna Srbija Kraljevo
Contact:

Post Napisano: 14 Jul 2015, 11:46


Evo skripta za izgradnju zadnje stabilne verzije Firefoxa

Code: Select all

#!/bin/bash
# latest-firefox Version 1.2

# This script will find the latest Firefox binary package, download it
# and repackage it into Slackware format.

# I don't use Firefox for regular browsing but it is handy for
# comparative tests against Opera. :P

# Copyright 2015 Ruari Oedegaard, Oslo, Norway
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Check if the user asked for auto-install
if [ "$1" = "-i" -o "$1" = "--install" ]; then
  if [ "$UID" = "0" ]; then
    AUTO_INSTALL=Y
  else
    echo "You must be root to auto-install, $1 ignored!" >&2
    AUTO_INSTALL=N
  fi
else
  AUTO_INSTALL=N
fi

# Use the architecture of the current machine or whatever the user has
# set externally
ARCH=${ARCH:-$(uname -m)}

if [ "$ARCH" = "x86_64" ]; then
  LIBDIRSUFFIX="64"
elif [[ "$ARCH" = i?86 ]]; then
  ARCH=i686
  LIBDIRSUFFIX=""
else
  echo "The architecture $ARCH is not supported." >&2
  exit 1
fi

# Set to Y to track ESR instead of regular Firefox
FFESR=${FFESR:-N}

if [ "$FFESR" = "Y" ]; then
  FFCHANNEL=latest-esr
else
  FFCHANNEL=latest
fi

# This defines the language of the downloaded package
FFLANG=${FFLANG:-en-US}

# Work out the latest stable Firefox if VERSION is unset
VERSION=${VERSION:-$(wget -qO- http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$FFCHANNEL/linux-$ARCH/$FFLANG/ | sed -nr 's|.*>firefox-(.*)\.tar\.bz2</a>.*|\1|p')}

# Error out if $VERISON is unset, e.g. because previous command failed
if [ -z $VERSION ]; then
  echo "Could not work out the latest version; exiting" >&2
  exit 1
fi

# Don't start repackaging if the same version is already installed
if /bin/ls /var/log/packages/mozilla-firefox-$VERSION-* >/dev/null 2>&1 ; then
  echo "Firefox ($VERSION) is already installed; exiting"
  exit 0
fi

TMP=${TMP:-/tmp}
OUTPUT=${OUTPUT:-/tmp}
BUILD=${BUILD:-1}
TAG=${TAG:-ro}
PKGTYPE=${PKGTYPE:-tgz}
PACKAGE="$OUTPUT/mozilla-firefox-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"

# If the package was made previously, no need to make it again. ;)
if [ -e "$PACKAGE" ]; then
  echo "$PACKAGE already exists; exiting"
  exit 0
fi

REPACKDIR=$TMP/repackage-mozilla-firefox

# Three sources are needed, here is where to find them if they are not
# already in the directory this script was started from.
FIREFOXPKG=http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$VERSION/linux-$ARCH/$FFLANG/firefox-$VERSION.tar.bz2
DESKTOPFILE=http://mirrors.slackware.com/slackware/slackware-current/source/xap/mozilla-firefox/mozilla-firefox.desktop
SCRIPT="${0##*/}"

# This function can be used in place of Slackware's makepkg, with the
# added bonus that it is able to make packages with root owned files
# even when run as a regular user.
mkpkg() {
  if [ "$1" = "-n" ]; then
    TAROWNER=""
    shift 1
  else
    TAROWNER="--group 0 --owner 0"
  fi
  if find * -type l | grep -qm1 .; then
    mkdir -p install
    find * -type l -printf '( cd %h ; rm -rf %f )\n( cd %h ; ln -sf %l %f )\n' -delete > install/symlinks
    if [ -f "install/doinst.sh" ]; then
      printf '\n' | cat - install/doinst.sh >> install/symlinks
    fi
    mv install/symlinks install/doinst.sh
  fi
  case "$1" in
    *tbz) cmp=bzip2 ;;
    *tgz) cmp=gzip ;;
    *tlz) cmp=lzma ;;
    *txz) cmp=xz ;;
    *) echo "Unknown compression type" >&2 ; exit 1 ;;
  esac
  tar cvvf - . --format gnu --xform 'sx^\./\(.\)x\1x' --show-stored-names $TAROWNER | $cmp > "$1"
  echo "Slackware package \"$1\" created."
}

# Since packaging is about to begin errors become more important now,
# so exit if things fail.
set -eu

# If the repackage is already present from the past, clear it down
# and re-create it.
if [ -d "$REPACKDIR" ]; then
  rm -fr "$REPACKDIR"
fi

mkdir -p "$REPACKDIR"/{pkg,src}

# Check if the current directory contains mozilla-firefox.desktop. If
# not try /usr/share/applications/, otherwise download it.
if [ -e mozilla-firefox.desktop ]; then
  cp mozilla-firefox.desktop "$REPACKDIR/src/"
elif [ -e /usr/share/applications/mozilla-firefox.desktop ]; then
  cp /usr/share/applications/mozilla-firefox.desktop "$REPACKDIR/src/"
else
  wget -P "$REPACKDIR/src" $DESKTOPFILE
fi

# Save a copy if this script but remove execute persmissions as it will
# later be moved into the doc directory.
install -m 644 "${0}" "$REPACKDIR/src/$SCRIPT"

# Check if the current directory contains the Firefox binary package,
# otherwise download it.
if [ -e firefox-$VERSION.tar.bz2 ]; then
  cp firefox-$VERSION.tar.bz2 "$REPACKDIR/src/"
else
  wget -P "$REPACKDIR/src" $FIREFOXPKG
fi

# Now we have all the sources in place, switch to the package directory
# and start setting things up.
cd "$REPACKDIR/pkg"

# Create the basic directory structure for files.
mkdir -p install
mkdir -p usr/bin
mkdir -p usr/doc/mozilla-firefox-$VERSION
mkdir -p usr/share/applications
mkdir -p usr/share/icons/hicolor/{16x16,32x32,48x48,128x128}/apps
mkdir -p usr/lib$LIBDIRSUFFIX/mozilla
mkdir -p usr/lib$LIBDIRSUFFIX/firefox-$VERSION

# Copy the desktop file in place
cp ../src/mozilla-firefox.desktop usr/share/applications/

# Copy this script into the doc directory
cp ../src/$SCRIPT usr/doc/mozilla-firefox-$VERSION/$SCRIPT

# Extract the contents of the binary Firefox package into an
# appropriately named lib directory.
tar -xf ../src/firefox-$VERSION.tar.bz2 --strip 1 -C usr/lib$LIBDIRSUFFIX/firefox-$VERSION

# If present, move the readme or any other similar text files to the
# doc directory.
find usr/lib$LIBDIRSUFFIX/firefox-$VERSION -iname "*.txt" -maxdepth 1 -exec mv {} usr/doc/mozilla-firefox-$VERSION/ \;

# If a plugins folder was present move it to the mozilla lib directory.
# Otherwise just create a directory in mozilla so that there is
# definately somthing to symlink to later on in the post-install.
if [ -d usr/lib$LIBDIRSUFFIX/firefox-$VERSION/plugins ]; then
  mv usr/lib$LIBDIRSUFFIX/firefox-$VERSION/plugins usr/lib$LIBDIRSUFFIX/mozilla/
else
  mkdir usr/lib$LIBDIRSUFFIX/mozilla/plugins
fi

# Setup symlinks for firefox binary, plugin directory and icons.
(
  cd usr/bin
  ln -s ../lib$LIBDIRSUFFIX/firefox-$VERSION/firefox firefox
)
# Changes in Firefox 21 mean we need to check for the browser directory
if [ -d usr/lib$LIBDIRSUFFIX/firefox-$VERSION/browser ]; then
  (
    cd usr/lib$LIBDIRSUFFIX/firefox-$VERSION/browser
    ln -s ../../mozilla/plugins plugins
  )
else
  (
    cd usr/lib$LIBDIRSUFFIX/firefox-$VERSION
    ln -s ../mozilla/plugins plugins
  )
fi

# Changes in Firefox 21 mean we need to check for the location of icons
if /bin/ls usr/lib$LIBDIRSUFFIX/firefox-$VERSION/chrome/icons/default/default*.png >/dev/null 2>&1; then
  DEFAULTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/chrome/icons/default
  ALTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/icons
elif /bin/ls usr/lib$LIBDIRSUFFIX/firefox-$VERSION/browser/chrome/icons/default/default*.png >/dev/null 2>&1; then
  DEFAULTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/browser/chrome/icons/default
  ALTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/browser/icons
else
  echo "Changes have been made to the internal formating of the firefox source packaging!" >&2
  exit 1
fi

(
  cd usr/share/icons/hicolor/16x16/apps
  ln -s ../../../../../$DEFAULTICONPATH/default16.png firefox.png
)
(
  cd usr/share/icons/hicolor/32x32/apps
  ln -s ../../../../../$DEFAULTICONPATH/default32.png firefox.png
)
(
  cd usr/share/icons/hicolor/48x48/apps
  ln -s ../../../../../$DEFAULTICONPATH/default48.png firefox.png
)
(
  cd usr/share/icons/hicolor/128x128/apps
  ln -s ../../../../../$ALTICONPATH/mozicon128.png firefox.png
)

# Now create the post-install to register the desktop file and icons.
cat <<EOS> install/doinst.sh
# Setup menu entries
if command -v update-desktop-database >/dev/null 2>&1; then
  update-desktop-database -q usr/share/applications
fi

# Setup icons
touch -c usr/share/icons/hicolor
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
  gtk-update-icon-cache -tq usr/share/icons/hicolor
fi
EOS

# Create a description file inside the package.
cat <<EOD> install/slack-desc
               |-----handy-ruler------------------------------------------------------|
mozilla-firefox: mozilla-firefox (Mozilla Firefox Web browser)
mozilla-firefox:
mozilla-firefox: This project is a redesign of the Mozilla browser component written
mozilla-firefox: using the XUL user interface language. Firefox delivers safe, easy web
mozilla-firefox: browsing.
mozilla-firefox:
mozilla-firefox: Visit the Mozilla Firefox project online:
mozilla-firefox:   http://www.mozilla.org/projects/firefox/
mozilla-firefox:
mozilla-firefox:
mozilla-firefox:
EOD

# Make sure the file permissions are ok
chmod -R u+w,go+r-w,a-s .

# Create the Slackware package
mkpkg "$PACKAGE"

# Install if the user requested it
if [ $AUTO_INSTALL = "Y" ]; then
  /sbin/upgradepkg --install-new "$PACKAGE"
fi
Ili ga snimiti sa Git Huba

Code: Select all

git clone https://gist.github.com/9672798.git

Code: Select all

cd 9672798
chmod +x latest-firefox
sh latest-firefox
U /tmp folderu će biti izgrađena zadnja stabilna verzija Firefoxa.
Ja sam ga prebacio u home folder i odate ažurirao

Code: Select all

bash-4.3# upgradepkg --install-new mozilla-firefox-39.0-i686-1ro.tgz

+==============================================================================
| Installing new package ./mozilla-firefox-39.0-i686-1ro.tgz
+==============================================================================

Verifying package mozilla-firefox-39.0-i686-1ro.tgz.
Installing package mozilla-firefox-39.0-i686-1ro.tgz:
PACKAGE DESCRIPTION:
# mozilla-firefox (Mozilla Firefox Web browser)
#
# This project is a redesign of the Mozilla browser component written
# using the XUL user interface language. Firefox delivers safe, easy web
# browsing.
#
# Visit the Mozilla Firefox project online:
#   http://www.mozilla.org/projects/firefox/
#
Executing install script for mozilla-firefox-39.0-i686-1ro.tgz.
Package mozilla-firefox-39.0-i686-1ro.tgz installed.


bash-4.3# 
Ako bi ponovo pokrenuli skript, dobili bi ste ovo

Code: Select all

bash-4.3# sh latest-firefox 
Firefox (39.0) is already installed; exiting
Izvor: http://www.linuxquestions.org/questions ... ost5245184" onclick="window.open(this.href);return false;


Post Reply

Who is online

Users browsing this forum: No registered users and 27 guests