Bug 24678 - Backward incompatibility
: Backward incompatibility
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/etckeeper)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2010-12-02 10:43 by
Modified: 2010-12-12 10:02 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2010-12-02 10:43:23
Из-за переноса etckeeper в /usr/bin/ etckeeper не работает после обновления:

.git/hooks/pre-commit: line 4: /usr/sbin/etckeeper: No such file or directory
error: etckeeper failed to commit changes in /etc using git
E: Sub-process xargs| (if [ -x /usr/bin/etckeeper ]; then etckeeper
pre-install; fi) returned an error code (1)
E: Failure running script xargs| (if [ -x /usr/bin/etckeeper ]; then etckeeper
pre-install; fi)
------- Comment #1 From 2010-12-02 12:09:29 -------
Ещё вот такие чудеса вылезли:
$ gear-hsh --commit
Чтение списков пакетов...
Построение дерева зависимостей...
Selected version fakeroot#1.12.2-alt1 for fakeroot>=0:0.7.3
Следующие дополнительные пакеты будут установлены:
  alt-gpgkeys bzlib coreutils fakeroot getopt glibc-core glibc-preinstall
  glibc-pthread libacl libattr libbeecrypt7 libcap libdb4.7 libelf libgcc4.5
  libgmp liblzma libpopt librpm librpmbuild libselinux libtinfo sh terminfo
  zlib
Следующие НОВЫЕ пакеты будут установлены:
  alt-gpgkeys bzlib coreutils fakeroot filesystem getopt glibc-core
  glibc-preinstall glibc-pthread libacl libattr libbeecrypt7 libcap libdb4.7
  libelf libgcc4.5 libgmp liblzma libpopt librpm librpmbuild libselinux
  libtinfo rpm setup sh terminfo zlib
0 будет обновлено, 28 новых установлено, 0 пакетов будет удалено и 0 не будет
обновлено.
Необходимо получить 0B/5871kB архивов.
После распаковки потребуется дополнительно 22,0MB дискового пространства.
Запуск RPM (hsh-rpmi-print-files -U -v -h -r /home/rider/hasher/aptbox
--oldpackage)...
/raid/ALT/Sisyphus/noarch/RPMS.classic/alt-gpgkeys-0.7.32-alt1.noarch.rpm
/raid/ALT/Sisyphus/noarch/RPMS.classic/setup-2.2.14-alt1.noarch.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/filesystem-2.3.7-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/glibc-preinstall-2.11.3-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/glibc-core-2.11.3-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/bzlib-1.0.6-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libattr-2.4.43-alt3.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libacl-2.2.49-alt2.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libcap-2.16-alt2.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libgmp-4.3.2-alt2.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libgcc4.5-4.5.1-alt7.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/glibc-pthread-2.11.3-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/sh-3.2.51-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libselinux-2.0.96-alt6.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/terminfo-5.7-alt5.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libtinfo-5.7-alt5.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/coreutils-8.7-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/getopt-2.18.0-alt1.20101027.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/fakeroot-1.12.2-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libbeecrypt7-4.2.1-alt5.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libdb4.7-4.7.25-alt6.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libelf-0.149-alt2.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/liblzma-5.0.0-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/libpopt-1.14-alt5.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/zlib-1.2.5-alt1.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/librpm-4.0.4-alt100.4.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/librpmbuild-4.0.4-alt100.4.x86_64.rpm
/raid/ALT/Sisyphus/x86_64/RPMS.classic/rpm-4.0.4-alt100.4.x86_64.rpm
Завершено.
rm: невозможно удалить «/var/cache/etckeeper/packagelist.pre-install»: Отказано
в доступе
E: Подпроцесс if [ -x /usr/bin/etckeeper ]; then etckeeper post-install; fi
завершился с ошибкой (1).
E: Ошибка выполнения скриптов RPM::Post-Invoke 'if [ -x /usr/bin/etckeeper ];
then etckeeper post-install; fi'
E: Подпроцесс завершился с ошибкой
hsh-initroot: failed to calculate package file list.
hsh-initroot: Failed to generate initial package file list.
------- Comment #2 From 2010-12-02 16:52:35 -------
Попробуйте 0.50-alt5.1
------- Comment #3 From 2010-12-02 16:57:24 -------
у меня вылезло именно на etckeeper-0.50-alt5.1
------- Comment #4 From 2010-12-02 18:40:11 -------
2rider: у меня не получилось воспроизвести и единственный вариант, который я
пока себе представляю это запуск hsh во время обновления самой системы apt-ом.

Попробуй в 50vcs-commit добавить к rm -f ещё ||: в конце, должно полечиться.
------- Comment #5 From 2010-12-02 18:57:55 -------
нет, я конечно обновлял систему, но hasher запускался после окончания
обновления. Более того - я попробовал два-три раза собрать, ошибка
воспроизводилась

вот примерно так выглядел процесс обновления:
Dec  2 11:35:47 riderkvm64 apt-get: etckeeper-0.50-alt5.1 installed 
Dec  2 11:35:48 riderkvm64 apt-get: etckeeper-0.50-alt3 removed 

а потом я удалил etckeeper:
Dec  2 12:10:47 riderkvm64 rpm: etckeeper-0.50-alt5.1 removed
------- Comment #6 From 2010-12-07 12:13:19 -------
в %post
if [ -e %_sysconfdir/.git/hooks/pre-commit ] && egrep '^%name'
%_sysconfdir/.git/hooks/pre-commit >/dev/null 2>&1; then

egrep '^etckeeper' не сработает, т.к. строка начинается с /usr/sbin/etckeeper
------- Comment #7 From 2010-12-07 12:40:16 -------
2vvk: как раз пост-скрипт и чинился в 0.50-alt5.1. Жду обратной связи, прежде
чем накатывать обход ситуации, с которой столкнулся rider...
------- Comment #8 From 2010-12-07 12:45:41 -------
какой обратной связи ?
------- Comment #9 From 2010-12-07 12:51:13 -------
Да не может он починиться таким %post-скриптом.

# cat /etc/.git/hooks/pre-commit
#!/bin/sh
# pre-commit hook for etckeeper, to store metadata and do sanity checks
set -e
/usr/sbin/etckeeper pre-commit /etc

# rpm -q --scripts etckeeper
....

# if [ -e /etc/.git/hooks/pre-commit ] && egrep '^etckeeper'
/etc/.git/hooks/pre-commit >/dev/null 2>&1; then echo "pre-commit hook will be
changed" ; else echo "pre-commit hook untouched" ; fi
pre-commit hook untouched
------- Comment #10 From 2010-12-07 12:53:29 -------
А, так ты не залил 0.50-alt5.1. А я собрал бэкпорт на 5.1 с последнего тага
0.50-alt5. Тогда понятно всё.
------- Comment #11 From 2010-12-07 12:54:30 -------
И да, релиз лучше сделать 0.50-alt6, это же не nmu какой.
------- Comment #12 From 2010-12-07 13:06:09 -------
Да, исправление из 0.50-alt5.1 работает. Но вообще зачем там абсолютные пути?
Может убрать, т.к. /usr/bin и так есть в PATH при выполнении из cron-а?
------- Comment #13 From 2010-12-07 14:17:57 -------
2rider: обратной связи от vvk

2vvk: Почему же не заливал, в Сизифе alt5.1 появился на следующий день после
alt5. Хорошо, тогда я убираю абсолютные пути (это я глупость сделал) и заливаю
alt6.
------- Comment #14 From 2010-12-12 10:02:46 -------
* Втр Дек 07 2010 Terechkov Evgenii <evg@altlinux.org> 0.50-alt6
- Workaround for #24678