[Bug 222870] bsd.port.mk: COPYTREE_* do not work with POSIX-compliant sh -c

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Oct 8 19:44:54 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222870

            Bug ID: 222870
           Summary: bsd.port.mk: COPYTREE_* do not work with
                    POSIX-compliant sh -c
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Ports Framework
          Assignee: portmgr at FreeBSD.org
          Reporter: jilles at FreeBSD.org
                CC: freebsd-ports-bugs at FreeBSD.org
            Blocks: 220587

Created attachment 187011
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=187011&action=edit
allow both current and POSIX-compliant sh -c

The COPYTREE_BIN and COPYTREE_SHARE macros use constructs like

sh -c 'command' -- arg0 arg1

and assume that $0 will expand to arg0 and $1 will expand to arg1.

Our current sh implements it that way. However, POSIX specifies that $0 will
expand to -- and $1 will expand to arg0, since the command string is an operand
and not an option-argument. Bug #220587 requests making sh POSIX-compliant in
this regard.

If the argument after the command string does not start with '-', the current
sh behaves as required by POSIX. Therefore, the macros should be adjusted so
this is always the case.

Tested with poudriere, stable/10 with patched head sh, port
textproc/docbook-sgml.


Referenced Bugs:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220587
[Bug 220587] /bin/sh Incorrect options handling
-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-ports-bugs mailing list