[Momonga-devel.ja:01353] noarch に/から移ったパッケージのOmoiKondaraでの更新
- From: zunda <zunda@xxxxxxx>
- Date: Wed, 5 Feb 2003 22:43:05 +0900
ずんだあんです
ここ数日、OmoiKondaraでビルドしたパッケージをmph-get upgradeする際に、何
度もインストールされるパッケージがあるのに気づきました。手元では、
U alien : 8.21-1m -> 8.21-2m
U ghostscript-fonts : 7.05-1m -> 6.0-1m
U octave-matcompat : 2001.02.25-8m -> 2001.02.25-9m
U perl-Chart : 1.3-1m -> 1.3-2m
U perl-File-Find-Rule : 0.07-1m -> 0.08-1m
U perl-Number-Compare : 0.01-1m -> 0.01-2m
U perl-Test-Manifest : 0.9-1m -> 0.91-1m
U perl-Text-Glob : 0.05-1m -> 0.05-2m
U perl-Time-modules : 2002.1001-2m -> 2002.1001-3m
U perl-XML-SAX-Base : 1.04-1m -> 1.04-2m
U ruby-racc : 1.4.2-3m -> 1.4.2-4m
というアップグレードが何度も行われました。
これらのパッケージは最近アーキテクチャがnoarchとi586やppcの間で変更になっ
たもので、OmoiKondaraの作成するパッケージ置き場には古いアーキテクチャの
ディレクトリと新しいアーキテクチャの両方にバイナリパッケージが置かれてい
ました。通常は、新しいバイナリパッケージができあがった場合には、
OmoiKondaraによって古いバイナリパッケージが消されます。
OmoiKondaraを下記のように変更することで、アーキテクチャの変更になった古
いパッケージの古いバイナリパッケージが消されるようになりました。しばらく
様子をみて不具合がないようならcommitします。ご意見などありましたらお知ら
せください。
それでは、また。
Index: OmoiKondara
===================================================================
RCS file: /home/cvs/tools/OmoiKondara,v
retrieving revision 1.97
diff -u -r1.97 OmoiKondara
--- OmoiKondara 28 Jan 2003 16:23:21 -0000 1.97
+++ OmoiKondara 5 Feb 2003 13:32:16 -0000
@@ -600,7 +600,13 @@
end
end
end
-
+
+=begin
+--- backup_rpms(install, specname)
+ビルドされたRPMファイルの古いバージョンのものをtopdir以下の各ディレクト
+リから消去し、新しいものをtopdirの各ディレクトリにコピーする。引数で指定
+されている場合には、新しいパッケージのインストールもする。
+=end
def backup_rpms(install, specname=nil)
topdir = get_topdir ".."
@@ -610,6 +616,7 @@
end # if specname and $DEPGRAPH then
if $RPMOPT =~ /\-ba|\-bs/ then
+ # refresh the SRPM file
Dir.glob("SRPMS/*.rpm").each do |srpm|
pkg = srpm.split("/")[-1].split("-")[0..-3].join("-")
Dir.glob("#{topdir}/SRPMS/#{pkg}-*src.rpm") do |s|
@@ -623,7 +630,7 @@
end
if $RPMOPT =~ /\-ba|\-bb/ then
installs = ""
- rpms = Dir.glob("RPMS/#{$ARCH}/*.rpm")
+ rpms = Dir.glob("RPMS/{#{$ARCH},noarch}/*.rpm")
rpms.each do |rpm|
if specname and $DEPGRAPH then
spec = $DEPGRAPH.db.specs[specname]
@@ -649,14 +656,16 @@
GC.start
end # begin
end # if specname and $DEPGRAPH then
+ # refresh the packages in #{topdir} with the newly built ones
pkg = rpm.split("/")[-1].split("-")[0..-3].join("-")
- Dir.glob("#{topdir}/#{$ARCH}/#{pkg}-*.#{$ARCH}.rpm") do |r|
+ Dir.glob("#{topdir}/{#{$ARCH},noarch}/#{pkg}-*.{#{$ARCH},noarch}.rpm") do |r|
if pkg == r.split("/")[-1].split("-")[0..-3].join("-") then
File.delete r
end
end
- exec_command "cp -pfv #{rpm} #{topdir}/#{$ARCH}"
- File.chmod 0664, "#{topdir}/#{$ARCH}/#{rpm.split('/')[-1]}"
+ current_arch = rpm.split('/')[-2]
+ exec_command "cp -pfv #{rpm} #{topdir}/#{current_arch}"
+ File.chmod 0664, "#{topdir}/#{current_arch}/#{rpm.split('/')[-1]}"
if install then
installs += "#{rpm} "
elsif $DEPEND_PACKAGE != "" && pkg =~ /#{$DEPEND_PACKAGE}/
@@ -664,46 +673,6 @@
end
if $SCANPACKAGES && rpms.last == rpm then
exec_command "/usr/sbin/mph-scanpackages #{topdir}/#{$ARCH}"
- end
- end
- rpms = Dir.glob("RPMS/noarch/*.rpm")
- rpms.each do |rpm|
- if specname and $DEPGRAPH then
- spec = $DEPGRAPH.db.specs[specname]
- begin
- rpmpkg = RPM::Package.open(File.expand_path(rpm))
- spec.packages.each do |pkg|
- next if pkg.name != rpmpkg.name
- pkg.provides = rpmpkg.provides.collect{|rpmprov| rpmprov.to_struct}
- pkg.provides.each do |prov|
- names = if $DEPGRAPH.db.packages[prov.name] then
- $DEPGRAPH.db.packages[prov.name].collect{|a| a.name}
- else
- []
- end
- if not names.include?(pkg.name) then
- $DEPGRAPH.db.packages[prov.name] = pkg
- end
- end # pkg.provides.each do |prov|
- pkg.requires = rpmpkg.requires.collect{|rpmreq| rpmreq.to_struct}
- end # spec.packages.each do |pkg|
- ensure
- rpmpkg = nil
- GC.start
- end # begin
- end # if specname and $DEPGRAPH then
- pkg = rpm.split("/")[-1].split("-")[0..-3].join("-")
- Dir.glob("#{topdir}/noarch/#{pkg}-*.noarch.rpm") do |r|
- if pkg == r.split("/")[-1].split("-")[0..-3].join("-") then
- File.delete r
- end
- end
- exec_command "cp -pfv #{rpm} #{topdir}/noarch"
- File.chmod 0664, "#{topdir}/noarch/#{rpm.split('/')[-1]}"
- if $DEPEND_PACKAGE != "" && pkg =~ /#{$DEPEND_PACKAGE}/ then
- installs += "#{rpm} "
- end
- if $SCANPACKAGES && rpms.last == rpm then
exec_command "/usr/sbin/mph-scanpackages #{topdir}/noarch"
end
end