From owner-freebsd-bugs@FreeBSD.ORG Fri Aug 6 14:50:07 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3147D106564A for ; Fri, 6 Aug 2010 14:50:07 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 055F08FC1A for ; Fri, 6 Aug 2010 14:50:07 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o76Eo6p0015594 for ; Fri, 6 Aug 2010 14:50:06 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o76Eo6sb015587; Fri, 6 Aug 2010 14:50:06 GMT (envelope-from gnats) Date: Fri, 6 Aug 2010 14:50:06 GMT Message-Id: <201008061450.o76Eo6sb015587@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Paul Cc: Subject: Re: misc/149335: shell script runs on Linux but not on freebsd X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Paul List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Aug 2010 14:50:07 -0000 The following reply was made to PR misc/149335; it has been noted by GNATS. From: Paul To: "eb30750@gmail.com" , "freebsd-bugs@FreeBSD.ORG" , "bug-followup@FreeBSD.ORG" Cc: Subject: Re: misc/149335: shell script runs on Linux but not on freebsd Date: Fri, 6 Aug 2010 10:43:26 -0400 What about matching the ' marks in this section? I get a command error. >> # XXX: put extraction in its own function >> MAGIC_NUMBER=3D`od -An -t u4 -N 4 -j $MAGIC_OFFSET "$file" | tr -d ' '`= >=20 >=20 Sent from my iPod On Aug 6, 2010, at 3:12 AM, Oliver Fromme 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@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