Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 176548 - net-proxy/dante-1.1.19: /etc/init.d/dante-sockd errors (maybe due to sys-apps/baselayout-2.0.0_alpha1)
Summary: net-proxy/dante-1.1.19: /etc/init.d/dante-sockd errors (maybe due to sys-apps...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] baselayout (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Network Proxy Developers (OBSOLETE)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-04-30 11:13 UTC by Alessandro Guido
Modified: 2007-05-03 08:09 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alessandro Guido 2007-04-30 11:13:04 UTC
at boot, reboot or whenever I launch an init script, I get this error messages:

/etc/init.d/dante-sockd: line 7: [: : integer expression expected
/etc/init.d/dante-sockd: line 8: [: : integer expression expected
/etc/init.d/dante-sockd: line 9: [: : integer expression expected

(probably due to sys-apps/baselayout-2.0.0_alpha1)

Reproducible: Always




$ emerge --info
Portage 2.1.2.5 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.5-r1, 2.6.21-cfs-v7 i686)
=================================================================
System uname: 2.6.21-cfs-v7 i686 Intel(R) Pentium(R) M processor 1.86GHz
Gentoo Base System release 2.0.0_alpha1
Timestamp of tree: Mon, 30 Apr 2007 07:00:10 +0000
dev-java/java-config: 1.3.7, 2.0.31-r7
dev-lang/python:     2.5-r2
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17.50.0.14
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.23b
virtual/os-headers:  2.6.20-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-pipe -O2 -march=pentium-m -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/php/apache1-php4/ext-active/ /etc/php/apache2-php4/ext-active/ /etc/php/cgi-php4/ext-active/ /etc/php/cli-php4/ext-active/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-pipe -O2 -march=pentium-m -fomit-frame-pointer -fvisibility-inlines-hidden -fvisibility=hidden"
DISTDIR="/var/portage/distfiles"
FEATURES="distlocks metadata-transfer nodoc noinfo parallel-fetch sandbox sfperms strict tmpfs"
GENTOO_MIRRORS="ftp://pandemonium.tiscali.de/pub/gentoo/"
LANG="it_IT.UTF-8"
LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
LINGUAS="it"
MAKEOPTS="--quiet"
PKGDIR="/var/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/var/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="acpi apache2 bitmap-fonts cairo cdr cli dbus dvd dvdr dvdread emboss evo firefox gif gnome gstreamer hal isdnlog jpeg libg++ libnotify mad midi mikmod mmx mp3 nls nptl nptlonly ogg opengl pdf png pppd qt3support quicktime reflection session spl sse sse2 startup-notification svg threads truetype-fonts type1-fonts udev unicode vorbis win32codecs x86 xinerama xml xorg xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" CAMERAS="ptp2" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it" USERLAND="GNU" VIDEO_CARDS="none nvidia"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Roy Marples (RETIRED) gentoo-dev 2007-05-02 12:54:33 UTC
Yeah, those are invalid tests.
You should either test to see if there's a value there
[ -n "${foo}" ]

or give it a default if it's not
[ "${foo:-0}" -gt 1 ]
Comment 2 Alin Năstac (RETIRED) gentoo-dev 2007-05-02 19:30:01 UTC
I don't understand why is this net-proxy's bug. dante installs a /etc/conf.d/dante-sockd file in which all these parameters are set.

But have it your way. Fixed by imposing a default value to all those parameters.
Revision has been bumped with the same keywords as 1.1.19.
Comment 3 Roy Marples (RETIRED) gentoo-dev 2007-05-02 19:45:02 UTC
(In reply to comment #2)
> I don't understand why is this net-proxy's bug. dante installs a
> /etc/conf.d/dante-sockd file in which all these parameters are set.

Well it's hardly base-systems bug when we don't care about the config nor the init script.

baselayout-2 calls bash via /bin/sh which imposes a few more POSIX restrictions on how you write shell scripts. Basically it's not as forgiving to any errors.
Comment 4 Alin Năstac (RETIRED) gentoo-dev 2007-05-02 19:54:19 UTC
Still, those parameters should have values at that point. Regardless of the shell that executes them, writing:
  conf.d script: foo=1
  init.d script: [ $foo -eq 1 ]
or
  conf.d script: foo=0
  init.d script: [ ${foo:-0} -eq 1 ]
should have the exact same result.
Comment 5 Alin Năstac (RETIRED) gentoo-dev 2007-05-02 19:56:10 UTC
s/foo=0/foo=1/
Comment 6 Roy Marples (RETIRED) gentoo-dev 2007-05-02 20:09:03 UTC
Say that the config file doesn't exist or user has commented value out? Should base-system still be to blame? Or maybe then you would pick on the user?

roy@uberlaptop ~ $ [ "${nodefined}" -eq 1 ]
-bash: [: : integer expression expected
roy@uberlaptop ~ $ [ "${nodefined:-0}" -eq 1 ]
roy@uberlaptop ~ $ 

Or maybe you could do this
[ "${nodefined}" = 1 ]

That only works for a string comparison, obviously not for integer comparisons.

Or maybe a value is required, at which point you should exit gracefully with a descriptive error.
Comment 7 Alin Năstac (RETIRED) gentoo-dev 2007-05-02 21:35:59 UTC
@reporter: Do you have the /etc/conf.d/dante-sockd file? What non-comment lines do you have in it?
Comment 8 Alessandro Guido 2007-05-03 07:14:08 UTC
iro@odino ~ $ cat /etc/conf.d/dante-sockd | grep -v '^#'

SOCKD_FORKDEPTH=1

SOCKD_DEBUG=0

SOCKD_DISABLE_KEEPALIVE=1



Comment 9 Alin Năstac (RETIRED) gentoo-dev 2007-05-03 07:25:20 UTC
Q.E.D.

This shows that conf.d file hasn't been executed before init.d file.
Comment 10 Roy Marples (RETIRED) gentoo-dev 2007-05-03 08:09:47 UTC
You're right, when we generate our dependency tree we do load the init script before the config but when we execute a script we do it the other way around. This has been corrected and will appear in alpha2.

However, my argument about checking variables before doing integer evaluation still stands :)