[Toybox] How do I tell cyanogenmod they're wrong?

Tom Marshall tom at cyngn.com
Tue May 31 10:13:31 PDT 2016


Also see:

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/cp.c?id=v8.21#n325

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/copy.c?id=v8.21#n2729

On 05/31/2016 10:03 AM, Tom Marshall wrote:
> In your example below, the permission denied message and subsequent 
> failure exit code are the result of EACCES on open(2).  The issue we 
> had was when file copying succeeded but the subsequent chown(2) fails.
>
> This can be demonstrated on stock Ubuntu 14.04 as follows:
>
> $ sudo touch foo
> $ cp -a foo bar
> $ echo $?
> 0
> $ ls -l foo bar
> -rw-r--r-- 1 tdm  tdm  0 May 31 18:59 bar
> -rw-r--r-- 1 root root 0 May 31 18:59 foo
>
> I can't say that this is correct or even necessarily desirable, but it 
> is indeed what coreutils does.
>
> Also note that in your example below, you are using VFAT.  The bug in 
> question regards the OnePlus One.  It does not use VFAT (no sdcard), 
> it uses ext4 (or possibly f2fs, but mostly ext4).
>
>
> On 05/29/2016 08:33 PM, Rob Landley wrote:
>> Browsing through the cyanogenmod repository. Since they never submitted
>> patches to me I'm not going to copy their stuff verbatim (technically
>> it could be under a different license), but I'd like to address their
>> issues in mainline (modulo the pending stuff), and I get to this:
>>
>>    http://review.cyanogenmod.org/#/c/131295/
>>
>> commit b90823e298988ff365cdf8e6d7c17687c3897d55
>> Author: Scott Mertz <scott at cyngn.com>
>> Date:   Tue Feb 2 14:40:31 2016 -0800
>>
>>      Don't exit with failure code when cp ownership preservation fails
>>           POSIX spec states that it is unspecified whether '-p' 
>> prints errors
>>      to stderr when preserving ownership fails. GNU coreutils 
>> implementation
>>      does not write anything to stderr when this fails. Additionally,
>>      '-a' is only specified in GNU coreutils & specifies nothing
>>      is to be written to stderr in the case of failure. Switch the
>>      implementation to align with GNU coreutils while still satisfying
>>      POSIX.
>>           OPO-358
>>      Change-Id: Ibb7c94fbf553a178b3f88a724ef6f737275a4205
>>
>> I tried to pull up the OPO-358 thing to see what the original bug
>> report was, but it requires a login to view it:
>>
>>    https://jira.cyngn.com/browse/OPO-358
>>
>> So I tested it myself, and they're _wrong_:
>>
>>    dd if=/dev/zero of=vfat.img bs=1M count=1
>>    mkfs.vfat vfat.img
>>    mkdir vfat
>>    sudo /bin/bash
>>    toybox mount vfat.img vfat
>>
>> And then when I go:
>>
>> # cp -a todo vfat/
>> cp: failed to preserve ownership for ‘vfat/todo/attachment.bin.4’: 
>> Operation not permitted
>> cp: failed to preserve ownership for ‘vfat/todo/attachment-0002.bin’: 
>> Operation not permitted
>> cp: failed to preserve ownership for ‘vfat/todo/netstat.patch’: 
>> Operation not permitted
>> cp: failed to preserve ownership for ‘vfat/todo/githash.patch’: 
>> Operation not permitted
>> cp: failed to preserve ownership for ‘vfat/todo/expr.patch’: 
>> Operation not permitted
>> ...
>>
>> The stock ubuntu 14.04 vesion is giving warnings about
>> inability to preserve ownership...?
>>
>> Rob
>> _______________________________________________
>> Toybox mailing list
>> Toybox at lists.landley.net
>> http://lists.landley.net/listinfo.cgi/toybox-landley.net
>



More information about the Toybox mailing list