From owner-freebsd-bugs@FreeBSD.ORG Wed May 26 14:21:06 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BDE8116A4CE for ; Wed, 26 May 2004 14:21:06 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id A061143D31 for ; Wed, 26 May 2004 14:21:06 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i4QLKExw026207 for ; Wed, 26 May 2004 14:20:14 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id i4QLKEmu026206; Wed, 26 May 2004 14:20:14 -0700 (PDT) (envelope-from gnats) Resent-Date: Wed, 26 May 2004 14:20:14 -0700 (PDT) Resent-Message-Id: <200405262120.i4QLKEmu026206@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Ronald F.Guilmette" Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8A15116A4CE for ; Wed, 26 May 2004 14:17:31 -0700 (PDT) Received: from segfault.monkeys.com (segfault.monkeys.com [66.60.159.24]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3BCED43D3F for ; Wed, 26 May 2004 14:17:29 -0700 (PDT) (envelope-from rfg@monkeys.com) Received: by segfault.monkeys.com (Postfix, from userid 1237) id 08E6BEA6B; Wed, 26 May 2004 14:17:18 -0700 (PDT) Message-Id: <20040526211718.08E6BEA6B@segfault.monkeys.com> Date: Wed, 26 May 2004 14:17:18 -0700 (PDT) From: "Ronald F.Guilmette" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/67236: file(1) does a poor job of recognizing Makefiles X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Ronald F.Guilmette" List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2004 21:21:06 -0000 >Number: 67236 >Category: bin >Synopsis: file(1) does a poor job of recognizing Makefiles >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed May 26 14:20:14 PDT 2004 >Closed-Date: >Last-Modified: >Originator: Ronald F. Guilmette >Release: FreeBSD 5.2.1-RELEASE i386 >Organization: infinite Monkeys & Co. >Environment: System: FreeBSD segfault.monkeys.com 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Sat Mar 13 19:19:29 PST 2004 root@segfault.monkeys.com:/usr/src/sys/i386/compile/rfg20040313-4 i386 >Description: The file(1) command does a poor job of differentiating Makefiles from ASCII English text files. Just having as little as one English language comment line (starting with #) in the Makefile can be enough to cause file(1) to incorrectly identify the file as an ASCII English text file, rather than as a Makefile. >How-To-Repeat: Run the file(1) command on the Makefile included below: =========================================================================== SHELL = /bin/sh # Copyright (c) 2003 Ronald F. Guilmette; All rights reserved. The CC = gcc OPT = -O INCLUDES = CFLAGS = -Wall -Wmissing-prototypes -pedantic -fno-common -g $(OPT) $(INCLUDES) LDFLAGS = -L/usr/local/bind/lib LIBBIND = -lbind # Use the following for Solaris #LIBS = -lsocket -lnsl -lresolv INSTALL = install -c TROFF = groff MKDIR = mkdir BASEDIR = /usr/local/local BINDIR = $(BASEDIR)/bin MANDIR = $(BASEDIR)/man PROGS = nbanner MAN_PAGES = nbanner.1 POSTSCRIPT_MANPAGES = nbanner.ps all: $(PROGS) $(MAN_PAGES) postscript: $(POSTSCRIPT_MANPAGES) nbanner: nbanner.o errors.o syslog-names.o io-errors.o utils.o \ args.o $(CC) $(LDFLAGS) -o nbanner nbanner.o errors.o syslog-names.o io-errors.o \ utils.o args.o $(LIBBIND) $(LIBS) nbanner.o: nbanner.c common.h errors.h io-errors.h utils.h \ args.h $(CC) $(CFLAGS) -c nbanner.c args.o: args.c common.h errors.h utils.h args.h $(CC) $(CFLAGS) -c args.c errors.o: errors.c common.h syslog-names.h errors.h $(CC) $(CFLAGS) -c errors.c io-errors.o: io-errors.c common.h errors.h $(CC) $(CFLAGS) -c io-errors.c utils.o: utils.c utils.h common.h errors.h $(CC) $(CFLAGS) -c utils.c syslog-names.o: syslog-names.c syslog-names.h $(CC) $(CFLAGS) -c syslog-names.c nbanner.ps: nbanner.1 $(TROFF) -t -mdoc nbanner.1 > $@ nbanner.x75: nbanner.1 $(TROFF) -t -mdoc -TX75 nbanner.1 install: all -$(MKDIR) -p $(BINDIR) 2> /dev/null $(INSTALL) nbanner $(BINDIR) -$(MKDIR) -p $(MANDIR)/man1 2> /dev/null $(INSTALL) nbanner.1 $(MANDIR)/man1 clean: -rm -f *.o clobber: clean -rm -f $(PROGS) $(POSTSCRIPT_MANPAGES) .PHONY: all postscript nbanner.x75 clean clobber =========================================================================== >Fix: I personally don't know what the proper fix will be. As a workaround, it may be sufficient to either (a) eliminate all comment lines from Makefiles or else (b) limit the number of English words in such comments. (Note that in the example makefile above, just eliminating the word "The" from the end of the comment line seems to be sufficient to prevent file(1) from incorrectly identifying the type of the file.) >Release-Note: >Audit-Trail: >Unformatted: