Opera Developer no Slackware
Publicado por edps em 04/05/2015
[ Hits: 3.913 ]
Blog: https://edpsblog.wordpress.com/
#!/bin/bash # latest-opera Version 2.0RC3 # This script will find the latest Opera Developer binary package, # download it and repackage it into Slackware format. # 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. # # now, version 30.0.1835.6 on Slackware. # changes by edps: http://edpsblog.wordpress.com # # 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)} case "$ARCH" in x86_64) DEBARCH=amd64; LIBDIRSUFFIX="64" ;; i?86) DEBARCH=i386; LIBDIRSUFFIX="" ;; *) echo "The architecture $ARCH is not supported." >&2 ; exit 1 ;; esac # Work out the latest stable Opera if VERSION is unset VERSION=$(wget -qO- http://deb.opera.com/opera/dists/stable/non-free/binary-$DEBARCH/Packages.gz | gzip -d | grep -A1 -x "Package: opera-developer" | sed -n "/Version/s/.* //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/opera-$VERSION-* >/dev/null 2>&1 ; then echo "Opera ($VERSION) is already installed; exiting" exit 0 fi CWD=$(pwd) TMP=${TMP:-/tmp} OUTPUT=${OUTPUT:-/tmp} BUILD=${BUILD:-1} # TAG=${TAG:-ro} ### set TAG to default _SBo: TAG=${TAG:-_SBo} # PKGTYPE=${PKGTYPE:-tgz} ### set crompression format to .txz: PKGTYPE=${PKGTYPE:-txz} PACKAGE="$OUTPUT/opera-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" OPERA_DEB=opera-developer_${VERSION}_${DEBARCH}.deb # 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-opera-developer # Define this script's name as we will copy into doc directory later on 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/install,src} # 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 Opera binary package, # otherwise download it. if [ -e $OPERA_DEB ]; then cp $OPERA_DEB "$REPACKDIR/src/" else wget -c -P "$REPACKDIR/src" http://deb.opera.com/opera/pool/non-free/o/opera-developer/$OPERA_DEB fi # Now we have all the sources in place, switch to the package directory # and start setting things up. cd "$REPACKDIR/pkg" # Extract the contents of the Opera binary package ar p "../src/$OPERA_DEB" data.tar.xz | xz -d | tar -xf- \ --transform="s,/lib/.*-linux-gnu,/lib$LIBDIRSUFFIX," \ --exclude="./usr/share/lintian" --exclude="./usr/share/menu" # Move any doc directory to the correct Slackware location if [ -d usr/share/doc ]; then mv usr/share/doc usr/ find usr/doc -maxdepth 1 -type d -name "opera*" -exec mv {} usr/doc/tmp \; fi mkdir -p usr/doc/tmp mv usr/doc/tmp usr/doc/opera-$VERSION # Copy this script into the doc directory mkdir -p usr/doc/opera-$VERSION cp ../src/$SCRIPT usr/doc/opera-$VERSION/$SCRIPT # 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------------------------------------------------------| opera: opera (Fast and secure web browser) opera: opera: Opera is a fast, secure, and user-friendly web browser. It includes opera: web developer tools, news aggregation, and the ability to compress opera: data via Opera Turbo on congested networks. opera: opera: opera: opera: opera: Homepage: http://www.opera.com/computer/linux opera: EOD # Make sure the file permissions are ok chmod -R u+w,go+r-w,a-s . # opera_sandbox needs to be setuid root for Opera to run # chmod 4711 usr/lib$LIBDIRSUFFIX/opera/opera_sandbox ### modify by follow line: find . -name 'opera_sandbox' -exec chmod 4711 {} \; # Create the Slackware package # mkpkg "$PACKAGE" ### modify by follow line: makepkg -l y -c n "$PACKAGE" # Install if the user requested it if [ $AUTO_INSTALL = "Y" ]; then /sbin/upgradepkg --install-new "$PACKAGE" fi
Excluindo pacotes da lista de atualizações em distros Debian-like
Linuxtopia - Documentação online
Escolhendo os melhores mirrors pro seu Arch Linux
Instalação do Dropbox no Arch Linux
Lista de exercícios de programação
Assita seus vídeos com o KPlayer
Formatando Pendrives no Linux Mint 16 MATE
Instalando a versão mais recente do Firefox no Debian 10 codinome "Buster"
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta