Code: Select all
root@porteus:/Porteus_modules# getmod -m spek-0.8.3_07c13da27d-x86_64-1salix15.0Reading Package Lists...Done
Suggested packages:
alsa-lib bzip2 elfutils eudev gcc libffi libjpeg-turbo libpng pcre xz zlib
brotli cairo cdparanoia elfutils fontconfig freetype fribidi graphite2
harfbuzz libX11 libXau libXdmcp libXext libXrender libXv libdrm libglvnd
libgudev libogg libtheora libunwind libvisual libvorbis libxcb libxml2 mesa
opus orc pixman wayland
The following NEW packages will be installed:
aspell hunspell enchant expat graphene gstreamer pango gst-plugins-base gtk+3
hyphen libmanette libwpe woff2 wpebackend-fdo webkit2gtk wxGTK3 spek
0 upgraded, 0 reinstalled, 17 newly installed, 0 to remove, 0 not upgraded.
Need to get 43.0MB of archives.
Do you want to continue? [y/N] y
Just know that on /Porteus_modules there was enough free space, but getmod seems not to work like that, using the $PWD.
And in / aka the RAMdisk was not enough free space as we will see soon:
Code: Select all
1/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ aspell 0.60.8-x86_64-3 [632.0kB]...Done
2/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ hunspell 1.7.1-x86_64-1_slack15.0 [308.0kB]...Done
3/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ enchant 2.3.2-x86_64-1 [52.0kB]...Done
4/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ expat 2.4.9-x86_64-1_slack15.0 [128.0kB]...Done
5/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ graphene 1.10.6-x86_64-1 [104.0kB]...Done
6/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ gstreamer 1.18.5-x86_64-1 [1.7MB]...Done
7/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ pango 1.48.11-x86_64-1 [372.0kB]...Done
8/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ gst-plugins-base 1.18.5-x86_64-1 [2.2MB]...Done
9/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ gtk+3 3.24.31-x86_64-1 [10.7MB]...Done
10/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ hyphen 2.8.8-x86_64-3 [80.0kB]...Done
11/17 Get http://slackware.uk/salix/x86_64/15.0/ libmanette 0.2.6-x86_64-1gv [41.0kB]...Done
12/17 Get http://slackware.uk/salix/x86_64/15.0/ libwpe 1.12.0-x86_64-1gv [43.0kB]...Done
13/17 Get http://slackware.uk/salix/x86_64/slackware-15.0/ woff2 20180531_a0d0ed7-x86_64-3 [44.0kB]...Done
14/17 Get http://slackware.uk/salix/x86_64/15.0/ wpebackend-fdo 1.12.0-x86_64-1gv [32.0kB]...Done
15/17 Get http://slackware.uk/salix/x86_64/15.0/ webkit2gtk 2.34.3-x86_64-1gv [20.6MB]...Done
16/17 Get http://slackware.uk/salix/x86_64/extra-15.0/ wxGTK3 3.0.5-x86_64-4salix15.0 [6.0MB]...Done
17/17 Get http://slackware.uk/salix/x86_64/extra-15.0/ spek 0.8.3_07c13da27d-x86_64-1salix15.0 [92.0kB]...Done
So far, so good. Omitting where the files are downloaded to, but everything went okay.
But now the trouble starts:
Code: Select all
Verifying package spek-0.8.3_07c13da27d-x86_64-1salix15.0.txz.
Installing package spek-0.8.3_07c13da27d-x86_64-1salix15.0.txz:
PACKAGE DESCRIPTION:
# spek (Acoustic Spectrum Analyser)
# Spek is an acoustic spectrum analyser written in C and C++. It uses
# FFmpeg spek: libraries for audio decoding and wxWidgets for the GUI.
#
# Spek is available on *BSD, GNU/Linux, Windows and Mac OS X.
#
# Find out more about Spek on its website: http://spek.cc/
#
Executing install script for spek-0.8.3_07c13da27d-x86_64-1salix15.0.txz.
Package spek-0.8.3_07c13da27d-x86_64-1salix15.0.txz installed.
Verifying package wxGTK3-3.0.5-x86_64-4salix15.0.txz.
Installing package wxGTK3-3.0.5-x86_64-4salix15.0.txz:
PACKAGE DESCRIPTION:
# wxGTK3 (cross-platform GUI toolkit)
#
# wxGTK3 is part of wxWidgets, a cross-platform API for writing GUI
# applications on multiple platforms that still utilize the native
# platform's controls and utilities.
#
# http://wxwidgets.org
#
Executing install script for wxGTK3-3.0.5-x86_64-4salix15.0.txz.
Package wxGTK3-3.0.5-x86_64-4salix15.0.txz installed.
Verifying package webkit2gtk-2.34.3-x86_64-1gv.txz.
Installing package webkit2gtk-2.34.3-x86_64-1gv.txz:
PACKAGE DESCRIPTION:
# webkit2gtk (GTK+ port of WebKit)
#
# WebKit/GTK+ is the new GTK+ port of the WebKit, an open-source web
# content engine that powers numerous applications such as web
# browsers, email clients, feed readers, web and text editors, and a
# whole lot more.
#
# http://webkit.org http://webkitgtk.org
#
Executing install script for webkit2gtk-2.34.3-x86_64-1gv.txz.
Package webkit2gtk-2.34.3-x86_64-1gv.txz installed.
Verifying package wpebackend-fdo-1.12.0-x86_64-1gv.txz.
Installing package wpebackend-fdo-1.12.0-x86_64-1gv.txz:
PACKAGE DESCRIPTION:
# wpebackend-fdo (Freedesktop.org backend for WPE WebKit)
#
# This package provides a backend for WPE WebKit.
#
Executing install script for wpebackend-fdo-1.12.0-x86_64-1gv.txz.
Package wpebackend-fdo-1.12.0-x86_64-1gv.txz installed.
Verifying package libwpe-1.12.0-x86_64-1gv.txz.
Installing package libwpe-1.12.0-x86_64-1gv.txz:
PACKAGE DESCRIPTION:
# libwpe (General-purpose library for WPE WebKit)
#
# WPE is the reference WebKit port for embedded and low-consumption
# computer devices. It has been designed from the ground-up with
# performance, small footprint, accelerated content rendering, and
# simplicity of deployment in mind, bringing the excellence of the
# WebKit engine to countless platforms and target devices.
#
Executing install script for libwpe-1.12.0-x86_64-1gv.txz.
Package libwpe-1.12.0-x86_64-1gv.txz installed.
Verifying package libmanette-0.2.6-x86_64-1gv.txz.
Installing package libmanette-0.2.6-x86_64-1gv.txz:
PACKAGE DESCRIPTION:
# libmanette (The simple GObject game controller library)
#
# libmanette offers painless access to game controllers, from any
# programming language and with little dependencies. It supports the
# de-facto standard gamepad, as defined by the W3C standard gamepad
# specification or as implemented by the SDL GameController. Convertion
# of raw gamepad events into usable ones is handled transparently using
# an embedded library of mappings in the popular SDL mapping string
# format.
#
Executing install script for libmanette-0.2.6-x86_64-1gv.txz.
Package libmanette-0.2.6-x86_64-1gv.txz installed.
Verifying package expat-2.4.9-x86_64-1_slack15.0.txz.
Installing package expat-2.4.9-x86_64-1_slack15.0.txz:
PACKAGE DESCRIPTION:
# expat (C library for parsing XML)
#
# This is Expat, a C library for parsing XML, written by James Clark.
# Expat is a stream-oriented XML parser used by Python, GNOME, Xft2,
# and other things.
#
# Homepage: https://libexpat.github.io
#
Executing install script for expat-2.4.9-x86_64-1_slack15.0.txz.
Package expat-2.4.9-x86_64-1_slack15.0.txz installed.
Verifying package hunspell-1.7.1-x86_64-1_slack15.0.txz.
Installing package hunspell-1.7.1-x86_64-1_slack15.0.txz:
PACKAGE DESCRIPTION:
# hunspell (spell checker and morphological analyzer library)
#
# Hunspell is a spell checker and morphological analyzer library
# and program designed for languages with rich morphology
# and complex word compounding or character encoding.
# Hunspell interfaces: Ispell-like terminal interface using ncurses
# library, Ispell pipe interface, and OpenOffice.org UNO module.
#
# Homepage: http://hunspell.sourceforge.net/
#
Executing install script for hunspell-1.7.1-x86_64-1_slack15.0.txz.
Package hunspell-1.7.1-x86_64-1_slack15.0.txz installed.
Verifying package woff2-20180531_a0d0ed7-x86_64-3.txz.
Installing package woff2-20180531_a0d0ed7-x86_64-3.txz:
PACKAGE DESCRIPTION:
# woff2 (WOFF File Format 2.0 library)
#
# WOFF2 is the Web Open Font Format 2 reference implementation.
# See also: https://www.w3.org/TR/WOFF2/
#
# Homepage: https://github.com/google/woff2
#
Executing install script for woff2-20180531_a0d0ed7-x86_64-3.txz.
Package woff2-20180531_a0d0ed7-x86_64-3.txz installed.
Verifying package hyphen-2.8.8-x86_64-3.txz.
Installing package hyphen-2.8.8-x86_64-3.txz:
PACKAGE DESCRIPTION:
# hyphen (hyphenation and justification library)
#
# Hyphen is a library for high quality hyphenation and justification.
#
# Homepage: https://travis-ci.org/hunspell/hyphen
#
Executing install script for hyphen-2.8.8-x86_64-3.txz.
Package hyphen-2.8.8-x86_64-3.txz installed.
Verifying package gtk+3-3.24.31-x86_64-1.txz.
Installing package gtk+3-3.24.31-x86_64-1.txz:
PACKAGE DESCRIPTION:
# gtk+3 (multi-platform GUI toolkit v3)
#
# This is GTK+, a multi-platform toolkit for creating graphical user
# interfaces. Offering a complete set of widgets, GTK+ is suitable for
# projects ranging from small one-off projects to complete application
# suites.
#
Up to this point, all packages have been downloaded into the RAMdisk as well, but now every package gets extracted into the RAMdisk also.
And the above package was the very last one that fit onto the RAMdisk, from now disaster befalls the user, and
getmod seems not to do any checks if a command it executed was successful.
Nor does it offer a parameter like
Code: Select all
-d : use current directory for build work.
as update-browser does to avoid such disaster. See for yourself:
Code: Select all
Executing install script for gtk+3-3.24.31-x86_64-1.txz.
cp: error copying '/tmp/spek-0.8.3_07c13da27d-x86_64-1salix15.0.12399/installpkg-e46286f3dd86a533a228f0f698438fc1/doinst.sh' to '/tmp/spek-0.8.3_07c13da27d-x86_64-1salix15.0.12399/var/lib/pkgtools/scripts/gtk+3-3.24.31-x86_64-1': No space left on device
Package gtk+3-3.24.31-x86_64-1.txz installed.
Verifying package gst-plugins-base-1.18.5-x86_64-1.txz.
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 563: echo: write error: No space left on device
cat: write error: No space left on device
Installing package gst-plugins-base-1.18.5-x86_64-1.txz:
PACKAGE DESCRIPTION:
Executing install script for gst-plugins-base-1.18.5-x86_64-1.txz.
cp: error copying '/tmp/spek-0.8.3_07c13da27d-x86_64-1salix15.0.12399/installpkg-e46286f3dd86a533a228f0f698438fc1/doinst.sh' to '/tmp/spek-0.8.3_07c13da27d-x86_64-1salix15.0.12399/var/lib/pkgtools/scripts/gst-plugins-base-1.18.5-x86_64-1': No space left on device
Package gst-plugins-base-1.18.5-x86_64-1.txz installed.
Verifying package pango-1.48.11-x86_64-1.txz.
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 563: echo: write error: No space left on device
cat: write error: No space left on device
Installing package pango-1.48.11-x86_64-1.txz:
PACKAGE DESCRIPTION:
Executing install script for pango-1.48.11-x86_64-1.txz.
Package pango-1.48.11-x86_64-1.txz installed.
Verifying package gstreamer-1.18.5-x86_64-1.txz.
Unable to install /tmp/getmod/spek-0.8.3_07c13da27d-x86_64-1salix15.0/slackware64/l/gstreamer-1.18.5-x86_64-1.txz: tar archive is corrupt (tar returned error code 2)
Verifying package graphene-1.10.6-x86_64-1.txz.
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 560: echo: write error: No space left on device
/sbin/installpkg: line 563: echo: write error: No space left on device
cat: write error: No space left on device
Installing package graphene-1.10.6-x86_64-1.txz:
PACKAGE DESCRIPTION:
Executing install script for graphene-1.10.6-x86_64-1.txz.
Package graphene-1.10.6-x86_64-1.txz installed.
Verifying package enchant-2.3.2-x86_64-1.txz.
Unable to install /tmp/getmod/spek-0.8.3_07c13da27d-x86_64-1salix15.0/slackware64/l/enchant-2.3.2-x86_64-1.txz: tar archive is corrupt (tar returned error code 2)
Verifying package aspell-0.60.8-x86_64-3.txz.
Unable to install /tmp/getmod/spek-0.8.3_07c13da27d-x86_64-1salix15.0/slackware64/l/aspell-0.60.8-x86_64-3.txz: tar archive is corrupt (tar returned error code 2)
Parallel mksquashfs: Using 8 processors
Creating 4.0 filesystem on /tmp/spek-0.8.3_07c13da27d-x86_64-1salix15.0.xzm, block size 1048576.
[====================================================\ ] 1448/1674 86%
Write failed because No space left on device
FATAL ERROR: Failed to write to output filesystem
I suggest whoever coded getmod to add a "-D" option [as in Directory], and also, if possible to do checks on $? from the program just executed. When anything other than a 0 gets reported back, an
error occurred and getmod should stop, and tell the user to look above what the error is. Usually the program that got executed will report what went wrong.
Or capture $? into a value to work with like I did in my activate-011-slapt-get I posted here:
Porteus 5.0's USM replacement: slapt-get, getmod (Post by Rava #90328) (includes code of activate-011-slapt-get)
First Initialize as integer
or do the declare and assignment in one go like I did in the script
Code: Select all
# file exists
file "$actifile" | grep "Squashfs filesystem" 2>&1 >/dev/null
declare -i returnval=$?
if [ $returnval -eq 0 ] ; then
# and is of file type "Squashfs filesystem"
echo some code here that does the real work…
else
echo -e ${red}"Error- File to activate
$actifile
is not of file type 'Squashfs filesystem'. Abort!"${off}
exit 2
fi
The advantage of using
instead of simply using
is that you can report the error code to the user like so
Code: Select all
echo Error: Program [whatever] reported back $returnval
and/or even use the same error code to exit the script itself:
Code: Select all
echo Error: Program [whatever] reported back $returnval
cleanupfunction
exit $returnval