[devel] I: [SOLVED] arepo и glibc-locales
Alexey I. Froloff
raorn на altlinux.org
Вт Авг 31 08:18:00 UTC 2010
Я нашёл багу в arepo, которая не давала пересобрать glibc-locales
(и другие пакеты с большим поличеством файлов).
Проблема в самодеятельном arepo'вском скрипте find-requires, на
stdin которому отдаётся список файлов. Если этот список
достаточно большой, скрипт завершается реньше чем rpm успеет
записать все данные в пайп.
Патчи приложены, костыль i586-glibc-locales можно выносить из
сизифа.
--
Regards, --
Sir Raorn. --- http://thousandsofhate.blogspot.com/
-------------- next part --------------
From e6bbf8437cd24d664c3583f7714ef6c450016fd9 Mon Sep 17 00:00:00 2001
From: Alexey I. Froloff <raorn at altlinux.org>
Date: Tue, 31 Aug 2010 12:14:50 +0400
Subject: [PATCH 1/2] Do not process non-ELF's with ldd
Signed-off-by: Alexey I. Froloff <raorn at altlinux.org>
---
arepo.py | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/arepo.py b/arepo.py
index 2cb7ec8..b41b938 100755
--- a/arepo.py
+++ b/arepo.py
@@ -554,15 +554,21 @@ for file in "$@"; do
install -d -- "%buildroot$file"
else
echo === $file
- list="${list} `ldd "$file"|cut -d '>' -f 2|grep \.so|cut -f 1 -d '('`"
+ case "$(file -L -- "$file")" in
+ 'ELF '*' shared object'|'ELF '*' executable')
+ list="${list} `ldd "$file"|cut -d '>' -f 2|grep \.so|cut -f 1 -d '('`"
+ ;;
+ esac
mkdir -p -- "`dirname %buildroot$file`"
cp -a -- "$file" "%buildroot$file"
fi
done
-list=`for l in $list; do echo $l; done|sort|uniq`
-list=`for l in $list; do rpm -qf --queryformat '%{NAME}\n' $l; done|sort|uniq`
-echo search for $pkg in $list
-for l in $list; do [ $l = $pkg ] && echo skip $l || echo i586-$l >> ${TMP:-/tmp}/${pkg}-requires; done
+if [ -n "$list" ]; then
+ list=`for l in $list; do echo $l; done|sort|uniq`
+ list=`for l in $list; do rpm -qf --queryformat '%{NAME}\n' $l; done|sort|uniq`
+ echo search for $pkg in $list
+ for l in $list; do [ $l = $pkg ] && echo skip $l || echo i586-$l >> ${TMP:-/tmp}/${pkg}-requires; done
+fi
EOF
chmod +x install.sh
--
1.7.1.1
-------------- next part --------------
From bfe1977293b61fb2a88d07377abb172a0d704593 Mon Sep 17 00:00:00 2001
From: Alexey I. Froloff <raorn at altlinux.org>
Date: Tue, 31 Aug 2010 12:15:59 +0400
Subject: [PATCH 2/2] Swallow filelist passed by rpm to avoid SIGPIPE
Signed-off-by: Alexey I. Froloff <raorn at altlinux.org>
---
arepo.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arepo.py b/arepo.py
index b41b938..6f4b605 100755
--- a/arepo.py
+++ b/arepo.py
@@ -594,6 +594,7 @@ chmod +x find-deps.sh
cat >find-requires <<'EOF'
#!/bin/sh -e
+cat >/dev/null
pkg=~(pkgname)s
file=${TMP:-/tmp}/${pkg}-requires
cat $file
--
1.7.1.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20100831/9877857f/attachment.bin>
Подробная информация о списке рассылки Devel