[scribus] collecting for output

Craig Bradney cbradney at scribus.info
Tue Dec 10 23:05:20 UTC 2013


Worked for me but it could depend all all kinds of local settings etc. ownership, specific permissions, sgid etc.

Craig



> On 10 Dec 2013, at 23:55, Mark Heieis <mheieis at alois.ca> wrote:
> 
> Interesting.
> 
> "p" gets the correct permissions for "oldFile" but "permsSet" fails on "newFile".
> 
> My dev version of Scribus sits outside of my user context, in a developer group but I do have them all set set to my UID:GID
> 
> 
>> On 2013-12-10 13:10, Craig Bradney wrote:
>>> On 10/12/2013 9:48 pm, Craig Bradney wrote:
>>>> On 10/12/2013 9:35 pm, Mark Heieis wrote:
>>>> Hi
>>>> 
>>>> I just repeated a simple test.
>>>> 
>>>> 1) set my umask to 0002
>>>> 2) created a 1 page doc
>>>> 3) added single, existing jpg image from ~/sub-directory that had 664
>>>> 4) saved document to home (~) directory.
>>>> 
>>>> resultant sla got 664, as expected.
>>>> 
>>>> 5) collected4 output to home (~) and shared subdirectories, both had 775 plus g+s for shared one.
>>>> The result in both cases the collected document had 664 (as expected), the "images" directory
>>>> created by Scribus had 775 (as expected) but the image file had 600 (not as expected)! At least for
>>>> the home dir, all file permissions should be set to according to umask.
>>>> 
>>>> *** So something is not respecting the umask conditions. So I don't see this as a conflict in
>>>> choosing which file permission settings to use for security purposes, especially when saving within
>>>> user home context.
>>>> 
>>>> I'm wondering whether it is something that happens (overriding?) or not happening (being set?)
>>>> within QFileInfo as I can't see any explicit setting of the umask/permissions in the src (could have
>>>> missed it though).
>>>> 
>>>> BTW - tested with 1.5.0svn
>>>> 
>>>> mrh.
>>> util_file.cpp has copyFileAtomic() which uses QTemporaryFile to copy the file into, then rename it.
>>> There's no permissions being set or removed on purpose, which may be they should be (at least imo to
>>> be the same as the original source file). The reason the sla is different is that its just being
>>> resaved into the new location.
>>> 
>>> Craig
>> Apply this patch and re-test..
>> 
>> Index: scribus/collect4output.cpp
>> ===================================================================
>> --- scribus/collect4output.cpp    (revision 18628)
>> +++ scribus/collect4output.cpp    (working copy)
>> @@ -23,6 +23,7 @@
>>  #include "scpattern.h"
>>  #include "util_file.h"
>> 
>> +#include <QDebug>
>>  #include <QDir>
>>  #include <QMap>
>>  #include <QMessageBox>
>> @@ -465,7 +466,20 @@
>>      }
>>      if (copy)
>>      {
>> -        copyFileAtomic(oldFile, m_outputDirectory + "images/" + newFile);
>> +        QString outFile(m_outputDirectory + "images/" + newFile);
>> +        bool success=copyFileAtomic(oldFile, outFile);
>> +        if (!success)
>> +            qDebug()<<"CollectForOutput::collectFile copyFileAtomic failed for"<<oldFile<<"to"<<outFile;
>> +        else
>> +        {
>> +            QFileDevice::Permissions p=QFile::permissions(oldFile);
>> +            QFile of(outFile);
>> +            bool permsSet=of.setPermissions(p);
>> +            if (!permsSet)
>> +                qDebug()<<"Unable to set permissions successfully on"<<outFile;
>> +            else
>> +                qDebug()<<"Able to set permissions successfully on"<<outFile;
>> +        }
>>      }
>>      collectedFiles[newFile] = oldFile;
>>      return m_outputDirectory + "images/" + newFile;
>> 
>> 
>> thanks
>> Craig
>> 
>> 
>> ___
>> Scribus Mailing List: scribus at lists.scribus.net
>> Edit your options or unsubscribe:
>> http://lists.scribus.net/mailman/listinfo/scribus
>> See also:
>> http://wiki.scribus.net
>> http://forums.scribus.net
> 
> 
> ___
> Scribus Mailing List: scribus at lists.scribus.net
> Edit your options or unsubscribe:
> http://lists.scribus.net/mailman/listinfo/scribus
> See also:
> http://wiki.scribus.net
> http://forums.scribus.net



More information about the scribus mailing list