Bug 27836

Summary: проблема с изменением read-only файлов скриптов
Product: Sisyphus Reporter: Vladimir Lettiev <crux>
Component: perl-develAssignee: at <at>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: at, crux, viy
Version: unstable   
Hardware: all   
OS: Linux   

Description Vladimir Lettiev 2012-10-12 15:14:11 MSK
Если в CPAN модуле присутствует read-only файл скрипта (т.е. файл, который включён в EXE_FILES в Makefile.PL), то при сборке модуля происходит ошибка.

$ LANG=C make     
cp bin/script.pl blib/script/script.pl
/usr/bin/perl5.16.1 "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/script.pl
Can't process 'blib/script/script.pl': Permission denied at -e line 1.
make: *** [blib/script/script.pl] Error 13

В оригинальном ExtUtils::MakeMaker такой проблемы нет, проблема вызвана alt-specific патчем http://git.altlinux.org/gears/p/perl.git?p=perl.git;a=commitdiff;h=c604e9e

С одной стороны понятно, что исправить файл на месте лучше, чем создавать небезопасным образом временный файл, но зато открыть readonly файл в режиме O_RDWR не получится.

Думаю, что необходимо доработать патч и выставлять бит +w на файл на время внесения имзенений.
Comment 1 at@altlinux.org 2012-10-12 16:02:30 MSK
Мне кажется что rpm вставляет в конце секции %prep команду chmod -c u+w а дальше не помню!  То есть при сборке rpm пакета такого вылезти не может.  А при самосборе тарболла может и может.  Думаю, можно сделать chmod 0755 перед открытием в безусловном порядке.