misc/149335: shell script runs on Linux but not on freebsd

Paul eb30750 at gmail.com
Fri Aug 6 12:50:03 UTC 2010


The following reply was made to PR misc/149335; it has been noted by GNATS.

From: Paul <eb30750 at gmail.com>
To: "eb30750 at gmail.com" <eb30750 at gmail.com>,
 "freebsd-bugs at FreeBSD.ORG" <freebsd-bugs at FreeBSD.ORG>,
 "bug-followup at FreeBSD.ORG" <bug-followup at FreeBSD.ORG>
Cc:  
Subject: Re: misc/149335: shell script runs on Linux but not on freebsd
Date: Fri, 6 Aug 2010 08:15:37 -0400

 Yes it can be closed.  The bundle file is for installing VMware-Player.  Tho=
 ugh not officially supported it appears others have installed this,  I will t=
 ry your suggestions and research this further.
 Thanks
 Paul
 
 Sent from my iPod
 
 On Aug 6, 2010, at 3:12 AM, Oliver Fromme <olli at lurza.secnetix.de> wrote:
 
 > Paul Lambert wrote:
 >>> Number:         149335
 >>> Category:       misc
 >>> Synopsis:       shell script runs on Linux but not on freebsd
 >> [...]
 >>> Environment:
 >> FreeBSD BRSINC-VM02.local 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 0=
 2:36:49 UTC 2010     root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC=
   amd64
 >>> Description:
 >> The script fails on these two lines so far; "stat" and "od"
 >>=20
 >> # This won't work with non-GNU stat.
 >> FILE_SIZE=3D`stat --format "%s" "$0"`
 >> offset=3D$(($FILE_SIZE - 4))
 >=20
 > As the comment suggests, that command is non-portable and
 > works with GNU stat (linux) only.  This is not a standard.
 > The equivalent BSD command line would be:
 >=20
 > FILE_SIZE=3D`stat -f %z "$0"`
 >=20
 > I wonder why the script even needs to find out its own size,
 > and then read binary data from itself?!?  Is this some kind
 > of "copy protection" or similar tricks?  If so, I suspect
 > that it is highly non-portable and will be difficult to get
 > to run on anything else than linux.
 >=20
 >>   # XXX: put extraction in its own function
 >>   MAGIC_NUMBER=3D`od -An -t u4 -N 4 -j $MAGIC_OFFSET "$file" | tr -d ' '`=
 
 >=20
 > This command works fine on FreeBSD 8.1.  If it doesn't work
 > in the context of the script, I suspect that it is caused
 > by preceding problems that set one of the variables to a
 > wrong value.
 >=20
 > As a work-around, you might try running the script with
 > /compat/linux/bin/sh instead of /bin/sh.  You need to
 > enable Linux compatibility ("kldload linux") and install
 > ports/emulators/linux_base-f10 if you don't have it already.
 >=20
 > As this is not a bug in FreeBSD, I suggest that this PR can
 > be closed.  Do you agree?
 >=20
 > Best regards
 >   Oliver
 >=20
 > --=20
 > Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
 > Handelsregister: Registergericht Muenchen, HRA 74606,  Gesch=C3=A4ftsfuehr=
 ung:
 > secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht M=C3=BC=
 n-
 > chen, HRB 125758,  Gesch=C3=A4ftsf=C3=BChrer: Maik Bachmann, Olaf Erb, Ral=
 f Gebhart
 >=20
 > FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
 >=20
 > "Unix gives you just enough rope to hang yourself --
 > and then a couple of more feet, just to be sure."
 >        -- Eric Allman


More information about the freebsd-bugs mailing list