[Bug 205176] Errors in shell cycles in make(1) don't immediately trigger thy cycle

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Dec 10 03:10:54 UTC 2015


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

            Bug ID: 205176
           Summary: Errors in shell cycles in make(1) don't immediately
                    trigger thy cycle
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Ports Framework
          Assignee: portmgr at FreeBSD.org
          Reporter: yuri at rawbw.com
                CC: freebsd-ports-bugs at FreeBSD.org

Consider this Makefile:

> cycle1:
>              @for i in a b c; do \
>                (echo $$i && false); \
>              done;
> cycle2:
>              @for i in a b c; do \
>                (echo $$i && false); \
>              done && \
>              echo "past that!";

All iterations always fail. But the cycle behavior depends if it is followed by
other commands.

Only the first iteration is executed when the cycle is the last:

> # make cycle1
> a
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/yuri

Every iteration is still executed when the cycle is followed by some other
command:

> # make cycle2
> a
> b
> c
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/yuri

The behavior of the cycle should not depend on what follows it.
The first case, when any iteration failure causes the cycle failure is the
correct behavior.

10.2 STABLE

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-ports-bugs mailing list