# Re: t/t1304: avoid -d option to setfacl (db82657)

3 messages from 2011-11-18 to 2011-11-29. Participants: Brandon Casey, Scott Parrish, Jeff King.
Thread: https://gitlist.dev/t/28971

## Brandon Casey, 2011-11-18 05:37

Subject: Re: t/t1304: avoid -d option to setfacl (db82657)
Message-ID: <CA+sFfMc6BCPvk1FCjZwyY_pWqXBut3D--OfrFEcfK5p97D-KHQ@mail.gmail.com>
URL: https://gitlist.dev/e/CA%2BsFfMc6BCPvk1FCjZwyY_pWqXBut3D--OfrFEcfK5p97D-KHQ%40mail.gmail.com
In-Reply-To: <gitster/git/commit/db826571e4099066fe44233d95642591016c831b/729354@github.com>

```
[cc git@vger.kernel.org since that is the appropriate place for this discusion]

On Thu, Nov 17, 2011 at 8:59 PM, wsp
<reply+c-729354-3460aca0fa61e627f9d1a271cf70a99d5c1e7e4e-921167@reply.github.com>
wrote:
> Could this test case be reviewed again? It fails on FreeBSD where the appropriate way to specify default ACL's is with the "-d" option. The "d[efault]:" syntax is invalid on FreeBSD.

Well, I'm not sure there is a right answer here.

   Linux accepts -d or "d[efault]"
   Solaris only accepts "d[efault]"
   FreeBSD only accepts -d
   a quick search shows z/OS only accepts "d[efault]"
   other?

I think most everything else rolls their own implementation into chmod
or chacl or something like that.

The abandoned POSIX draft does actually specify the FreeBSD behavior.

So I think it's kind of a toss-up.  Which option we choose should
probably depend on whether we get more test coverage by using the
"d[efault]" notation or by using the -d option.  That depends on
whether there are more Solaris users compiling git or whether there
are more FreeBSD users.  I don't know the answer to that either.  I
tend to think there are very few of either.

-Brandon

```

## Scott Parrish, 2011-11-19 20:28

Subject: Re: t/t1304: avoid -d option to setfacl (db82657)
Message-ID: <D95BFEA0-BAC1-4CBD-8B56-27DB4BDF147C@gmail.com>
URL: https://gitlist.dev/e/D95BFEA0-BAC1-4CBD-8B56-27DB4BDF147C%40gmail.com
In-Reply-To: <CA+sFfMc6BCPvk1FCjZwyY_pWqXBut3D--OfrFEcfK5p97D-KHQ@mail.gmail.com>

```
Hi Brandon,

Thanks for posting my question. I realized shortly after my post to github that I should have posted to the mailing list instead.


On Nov 18, 2011, at 12:37 AM, Brandon Casey wrote:

> [cc git@vger.kernel.org since that is the appropriate place for this discusion]
> 
> On Thu, Nov 17, 2011 at 8:59 PM, wsp
> <reply+c-729354-3460aca0fa61e627f9d1a271cf70a99d5c1e7e4e-921167@reply.github.com>
> wrote:
>> Could this test case be reviewed again? It fails on FreeBSD where the appropriate way to specify default ACL's is with the "-d" option. The "d[efault]:" syntax is invalid on FreeBSD.
> 
> Well, I'm not sure there is a right answer here.
> 
>   Linux accepts -d or "d[efault]"
>   Solaris only accepts "d[efault]"
>   FreeBSD only accepts -d
>   a quick search shows z/OS only accepts "d[efault]"
>   other?
> 
> I think most everything else rolls their own implementation into chmod
> or chacl or something like that.

OS X does indeed roll ACL management into chmod. The test passes there because the prereq isn't met (i.e. the setfacl command does not exist) and thus the tests are skipped.
> 
> The abandoned POSIX draft does actually specify the FreeBSD behavior.
> 
> So I think it's kind of a toss-up.  Which option we choose should
> probably depend on whether we get more test coverage by using the
> "d[efault]" notation or by using the -d option.  That depends on
> whether there are more Solaris users compiling git or whether there
> are more FreeBSD users.  I don't know the answer to that either.  I
> tend to think there are very few of either.

Is there a reason conditional logic can't be used (perhaps keying off of `uname -s` or the like) so that we have coverage in all cases?

-S

> 
> -Brandon
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

```

## Jeff King, 2011-11-29 12:23

Subject: Re: t/t1304: avoid -d option to setfacl (db82657)
Message-ID: <20111129122333.GB30456@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20111129122333.GB30456%40sigill.intra.peff.net
In-Reply-To: <D95BFEA0-BAC1-4CBD-8B56-27DB4BDF147C@gmail.com>

```
On Sat, Nov 19, 2011 at 03:28:49PM -0500, Scott Parrish wrote:

> > The abandoned POSIX draft does actually specify the FreeBSD behavior.
> > 
> > So I think it's kind of a toss-up.  Which option we choose should
> > probably depend on whether we get more test coverage by using the
> > "d[efault]" notation or by using the -d option.  That depends on
> > whether there are more Solaris users compiling git or whether there
> > are more FreeBSD users.  I don't know the answer to that either.  I
> > tend to think there are very few of either.
> 
> Is there a reason conditional logic can't be used (perhaps keying off
> of `uname -s` or the like) so that we have coverage in all cases?

It's nice if we can auto-detect such things based on behavior, and then
there's no need for maintaining a "uname -s" guess. Perhaps we can
check at the beginning of t1304 which one works (or neither), and set a
flag appropriately? It looks like we already check whether setfacl works
at all, so this would be a natural extension.

I started to do a "how about this" patch, but I realized that in order
to see whether "-d" worked as "default" versus "delete", we'll have to
check the output of "getfacl" to see if it reports the default entry.
And then I realized I have no idea what FreeBSD shows in such a case
(surely not "d:*", right?).

-Peff

```
