Первая часть патча - небольшой фикс захардкоденного места песочницы. Вторая часть - исправление ошибки http://lists.altlinux.org/pipermail/devel/2010-October/185347.html
Created attachment 5314 [details] patch
(In reply to comment #0) > Первая часть патча - небольшой фикс захардкоденного места песочницы. Скажите, пожалуйста, что, на ваш взгляд, дает эта замена "aptbox" на "$aptbox" в mkaptbox? > Вторая часть - исправление ошибки > http://lists.altlinux.org/pipermail/devel/2010-October/185347.html Что вы называете исправлением ошибки? Упрятывание вышеупомянутой диагностики вида "/usr/bin/mkaptbox: line 212: printf: ошибка записи: Обрыв канала" путем использования операции, которая не обучена диагностировать эту ошибку?
(In reply to comment #2) > (In reply to comment #0) > > Первая часть патча - небольшой фикс захардкоденного места песочницы. > > Скажите, пожалуйста, что, на ваш взгляд, дает эта замена "aptbox" на "$aptbox" > в mkaptbox? Если в файле hsh-sh-functions, в функции set_workdir() меняю aptbox="$workdir/aptbox" на другое, сразу все ломается. Если использовать переменную, то все хорошо. > > Вторая часть - исправление ошибки > > http://lists.altlinux.org/pipermail/devel/2010-October/185347.html > > Что вы называете исправлением ошибки? > Упрятывание вышеупомянутой диагностики вида > "/usr/bin/mkaptbox: line 212: printf: ошибка записи: Обрыв канала" > путем использования операции, которая не обучена диагностировать эту ошибку? Вывод --showrc не маленький и хранится в переменной. Если вызывать mkaptbox из другой программы, вероятно на это не хватает буфера. Я это обошел вычислением на лету.
(In reply to comment #3) > (In reply to comment #2) > > (In reply to comment #0) > > > Первая часть патча - небольшой фикс захардкоденного места песочницы. > > > > Скажите, пожалуйста, что, на ваш взгляд, дает эта замена "aptbox" на "$aptbox" > > в mkaptbox? > > Если в файле hsh-sh-functions, в функции set_workdir() меняю > aptbox="$workdir/aptbox" > на другое, сразу все ломается. Интересно, зачем вам понадобилось менять в файле hsh-sh-functions функцию set_workdir? > > > Вторая часть - исправление ошибки > > > http://lists.altlinux.org/pipermail/devel/2010-October/185347.html > > > > Что вы называете исправлением ошибки? > > Упрятывание вышеупомянутой диагностики вида > > "/usr/bin/mkaptbox: line 212: printf: ошибка записи: Обрыв канала" > > путем использования операции, которая не обучена диагностировать эту ошибку? > > Вывод --showrc не маленький и хранится в переменной. Если вызывать mkaptbox из > другой программы, вероятно на это не хватает буфера. Я это обошел вычислением > на лету. Да нет же, прочитайте еще раз разъяснение по той ссылке, которую вы привели раньше.
> Интересно, зачем вам понадобилось менять в файле hsh-sh-functions функцию > set_workdir? Неожиданно ~/hasher было уже занято, и захотелось перенести в другое место. > Да нет же, прочитайте еще раз разъяснение по той ссылке, которую вы привели > раньше. Тот 'sh-скрипт', что вызывает mkaptbox это питоний arepo. Ошибка появляется вообще случайно. Может не быть, а может и все 4 раза (столько там вызовов).
(In reply to comment #5) > > Интересно, зачем вам понадобилось менять в файле hsh-sh-functions функцию > > set_workdir? > > Неожиданно ~/hasher было уже занято, и захотелось перенести в другое место. ~/hasher это значение по умолчанию, но ведь никто не мешает переносить workdir в другое место: $ hsh --help |grep path-to-workdir Usage: hsh [options] [<path-to-workdir>] <package>... <path-to-workdir> must be valid writable directory. Даже значение по умолчанию можно поменять (за это отвечает переменная workdir в файле ~/.hasher/config). > > Да нет же, прочитайте еще раз разъяснение по той ссылке, которую вы привели > > раньше. > > Тот 'sh-скрипт', что вызывает mkaptbox это питоний arepo. Ошибка появляется > вообще случайно. Может не быть, а может и все 4 раза (столько там вызовов). Еще раз: та диагностика об ошибке, которая вас смущает, не является ошибкой. Ошибкой в некотором смысле является тот факт, что SIGPIPE игнорируется, но в shell-скрипте это поведение исправить нельзя. И arepo тут не при чем. Чтобы в этом убедиться, достаточно выполнить команду $ grep ^SigIgn: /proc/self/status