LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 08-07-2022, 11:30 AM   #1
vectrum
Member
 
Registered: Jul 2011
Posts: 92

Rep: Reputation: Disabled
Download software for Slack 15 (x32) from a non-slack system (x64).


I apologise for writing a bit confusing Header to describe my question so allow me to explain it you.

I use slack in my old p4 machine and use a 64bit fedora/ubuntu powered laptop for browsing and other activities (mainly for watching videos) as it's a bit cumbersome to do these thing in my old intel machine with crt so I try to download few packages and s/w for my slackware from the 64 bit laptop but whenever I try to download packages (slackbuild script & source) slackbuils.org or jdk from oralce, they automatically select 64bit for those s/w s to be downloaded.
Recently, I found firefox and jdk automatically point to 64 bit versions.
Although I sometimes missed/overlooked the download options but by default it goes
to 64 bit version. Slackbuild.org does that.
Is my approach wrong or what i should do?
 
Old 08-07-2022, 11:50 AM   #2
Windu
Member
 
Registered: Aug 2021
Distribution: Arch Linux, Debian, Slackware
Posts: 589

Rep: Reputation: Disabled
Official sites that distribute their software in binary format, often do not offer 32bit binary builds. You'll have to compile 32bit binaries yourself in those cases. JDK and Firefox are two examples, there are many more.
 
1 members found this post helpful.
Old 08-08-2022, 04:12 AM   #3
keithpeter
Member
 
Registered: Nov 2015
Location: 52:30N 1:55W
Distribution: Slackware 15.0, OpenBSD 7.4
Posts: 310

Rep: Reputation: Disabled
Those Web sites are trying to 'help'. I sometimes wish they would just provide a directory view with lists of packages...

Firefox still provide 32 bit binaries...

https://www.mozilla.org/en-GB/firefo...esktop-release

You have to fill in the drop down options to get the arch and language you want. I use firefox-esr on my Slackware 14.2 laptop, and whatever Pat provides as a supported part of the system on the Slackware 15.0 laptop.

I use alienbob's build of the OpenJDK for Java and the most recent one you can get for 32 bit is version 8

http://slackware.uk/people/alien/sla...s/openjdk/pkg/
 
1 members found this post helpful.
Old 08-08-2022, 05:35 AM   #4
vectrum
Member
 
Registered: Jul 2011
Posts: 92

Original Poster
Rep: Reputation: Disabled
Thank you.

Recently, I've found a script to download & install firefox (latest build) and a Slackbuild script for Oracle jdk8 that resides in /extra directory of installation disk.
Both the answers I got here in LQ.
I can't remember where I got ff download script so I paste the script here but I think you will get the link if you search old posts.

Code:
#!/bin/bash
# latest-firefox Version 1.6.3
# Contributer: drgibbon (thanks!)

# 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 Vivaldi. :P

# Copyright 2018 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 esr or beta to track ESR and beta channels instead of regular Firefox
FFESR=${FFESR:-N}

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

FFCHANNEL=${FFCHANNEL:-latest}

if [ "$FFCHANNEL" = "esr" ]; then
  FFCHANNEL=esr-latest
elif [ "$FFCHANNEL" = "beta" ]; then
  FFCHANNEL=beta-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 --spider -S --max-redirect 0 "https://download.mozilla.org/?product=firefox-${FFCHANNEL}&os=linux${LIBDIRSUFFIX}&lang=${FFLANG}" 2>&1 | sed -n '/Location: /{s|.*/firefox-\(.*\)\.tar.*|\1|p;q;}')}

# 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="https://download.mozilla.org/?product=firefox-${VERSION}&os=linux${LIBDIRSUFFIX}&lang=${FFLANG}"
DESKTOPFILE=https://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
    *tbr) cmp="brotli --quality ${BROTLI_QUALITY:-5}" ;; # Experimental support for Brotli compression
    *tbz)
      if command -v lbzip2 >/dev/null 2>&1; then
        cmp=lbzip2
      else
        cmp=bzip2
      fi
      ;;
    *tgz)
      if command -v pigz >/dev/null 2>&1; then
        cmp=pigz
      else
        cmp=gzip
      fi
      ;;
    *tlz) cmp=lzma ;;
    *txz) cmp="xz -T0" ;;
    *tz4) cmp=lz4 ;; # Experimental support for lz4 compression
    *tzo) cmp=lzop ;; # Experimental support for lzop compression
    *) echo "Unknown compression type" >&2 ; exit 1 ;;
  esac
  if [ -x /bin/tar-1.13 ]; then
    tar-1.13 $TAROWNER -cvvf- . | $cmp > "$1"
  else
    tar cvvf - . --format gnu --xform 'sx^\./\(.\)x\1x' --show-stored-names $TAROWNER | $cmp > "$1"
  fi
  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 -O "$REPACKDIR/src/firefox-$VERSION.tar.bz2" $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-$FFCHANNEL

# 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.* --strip 1 -C usr/lib$LIBDIRSUFFIX/firefox-$FFCHANNEL

# If present, move the readme or any other similar text files to the
# doc directory.
find usr/lib$LIBDIRSUFFIX/firefox-$FFCHANNEL -maxdepth 1 -iname "*.txt" -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-$FFCHANNEL/plugins ]; then
  mv usr/lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/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-$FFCHANNEL/firefox firefox
)
# Changes in Firefox 21 mean we need to check for the browser directory
if [ -d usr/lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/browser ]; then
  (
    cd usr/lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/browser
    ln -s ../../mozilla/plugins plugins
  )
else
  (
    cd usr/lib$LIBDIRSUFFIX/firefox-$FFCHANNEL
    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-$FFCHANNEL/chrome/icons/default/default*.png >/dev/null 2>&1; then
  DEFAULTICONPATH=lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/chrome/icons/default
  ALTICONPATH=lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/icons
elif /bin/ls usr/lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/browser/chrome/icons/default/default*.png >/dev/null 2>&1; then
  DEFAULTICONPATH=lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/browser/chrome/icons/default
  ALTICONPATH=lib$LIBDIRSUFFIX/firefox-$FFCHANNEL/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

# This should work and did before but now apparently fails :(
#chmod -R u+w,go+r-w,a-s .

find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Create the Slackware package
mkpkg "$PACKAGE"

# Install if the user requested it
if [ $AUTO_INSTALL = "Y" ]; then
  /sbin/upgradepkg --install-new "$PACKAGE"
fi
 
2 members found this post helpful.
  


Reply

Tags
slackware 15.0



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Samsung M2070F on 12.1 and network printing under Windows 7 (x32/x64) janeku Linux - Newbie 2 02-23-2014 07:30 AM
FFMPEG for APACHE 2.4.6 (x64), PHP 5.5 (x64), MYSQL 5.6 (x64) on WINDOWS 8 (x64) Punctual Programming 3 08-07-2013 05:20 PM
[SOLVED] Crosscompiling on x64 in to x32 bits backfire dolphs Linux - Software 1 11-22-2011 09:17 PM
x32 -> x64 ntfs device mount issues b_unix Linux - Hardware 0 12-11-2008 07:39 PM
ASM x32 vs ASM x64 Tegramon Programming 3 02-27-2008 02:26 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 02:05 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration