apkbuild-gem-resolver: correct terminology used in indentifiers

This commit is contained in:
Kaarle Ritvanen 2015-07-09 09:49:10 +03:00
parent d1deffc952
commit 3b8bfec13d

View File

@ -9,7 +9,7 @@ require 'rubygems/dependency'
require 'rubygems/resolver' require 'rubygems/resolver'
require 'rubygems/spec_fetcher' require 'rubygems/spec_fetcher'
class Aport class Package
RUBY_SUBPACKAGES = { RUBY_SUBPACKAGES = {
'2.0.0_p353' => { '2.0.0_p353' => {
'ruby-minitest' => ['minitest', '4.3.2'], 'ruby-minitest' => ['minitest', '4.3.2'],
@ -47,7 +47,7 @@ class Aport
} }
} }
@@aports = {} @@packages = {}
@@subpackages = [] @@subpackages = []
def self.initialize testing def self.initialize testing
@ -62,8 +62,8 @@ class Aport
repos = ['main'] repos = ['main']
repos << 'testing' if testing repos << 'testing' if testing
for repo in repos for repo in repos
for aport in aug.match "#{apath}/#{repo}/*" for pkg in aug.match "#{apath}/#{repo}/*"
FileAport.new(aug, aport) unless aport.end_with? '/ruby' Aport.new(aug, pkg) unless pkg.end_with? '/ruby'
end end
end end
@ -71,25 +71,25 @@ class Aport
aug.get("#{apath}/main/ruby/APKBUILD/pkgver") aug.get("#{apath}/main/ruby/APKBUILD/pkgver")
] ]
gem, version, *deps = attrs gem, version, *deps = attrs
aport = new name, gem, version pkg = new name, gem, version
for dep in deps for dep in deps
aport.add_dependency dep pkg.add_dependency dep
end end
@@subpackages << aport @@subpackages << pkg
end end
end end
@@aports.each_value do |aport| @@packages.each_value do |pkg|
aport.depends do |dep| pkg.depends do |dep|
dep.add_user aport dep.add_user pkg
end end
end end
end end
def self.get name def self.get name
aport = @@aports[name] pkg = @@packages[name]
raise 'Invalid package name: ' + name unless aport raise 'Invalid package name: ' + name unless pkg
aport pkg
end end
def self.ruby_subpkgs def self.ruby_subpkgs
@ -104,7 +104,7 @@ class Aport
@version = version @version = version
@depends = [] @depends = []
@users = [] @users = []
@@aports[name] = self @@packages[name] = self
end end
def add_dependency name def add_dependency name
@ -115,10 +115,10 @@ class Aport
def depends def depends
for dep in @depends for dep in @depends
unless @@aports.has_key? dep unless @@packages.has_key? dep
raise "Dependency for #{@name} does not exist: #{dep}" raise "Dependency for #{@name} does not exist: #{dep}"
end end
yield @@aports[dep] yield @@packages[dep]
end end
end end
@ -133,7 +133,7 @@ class Aport
end end
end end
class FileAport < Aport class Aport < Package
def initialize aug, path def initialize aug, path
name = path.split('/')[-1] name = path.split('/')[-1]
@ -160,12 +160,12 @@ class Update
end end
def require_version name, version def require_version name, version
gem = assign(Aport.get(name).gem, name) gem = assign(Package.get(name).gem, name)
@deps << gem.dependency if gem.require_version version @deps << gem.dependency if gem.require_version version
end end
def resolve def resolve
Aport.ruby_subpkgs do |pkg| Package.ruby_subpkgs do |pkg|
require_version pkg.name, pkg.version unless @gems[pkg.gem] require_version pkg.name, pkg.version unless @gems[pkg.gem]
end end
@ -187,9 +187,9 @@ class Update
for name, gem in @gems for name, gem in @gems
if gem.updated? if gem.updated?
gem.aport.users do |user| gem.package.users do |user|
ugem = @gems[user.gem] ugem = @gems[user.gem]
if !ugem || ugem.aport.name != user.name if !ugem || ugem.package.name != user.name
Gem::Resolver.new( Gem::Resolver.new(
[gem.dependency, Gem::Dependency.new(user.gem, user.version)] [gem.dependency, Gem::Dependency.new(user.gem, user.version)]
).resolve ).resolve
@ -206,30 +206,30 @@ class Update
end end
end end
def assign name, aport def assign name, package
aport = Aport.get aport pkg = Package.get package
if @gems.has_key? name if @gems.has_key? name
gem = @gems[name] gem = @gems[name]
return gem if aport == gem.aport return gem if pkg == gem.package
raise "Conflicting packages for gem #{name}: #{gem.aport.name} and #{aport.name}" raise "Conflicting packages for gem #{name}: #{gem.package.name} and #{pkg.name}"
end end
gem = AportGem.new self, name, aport gem = PackagedGem.new self, name, pkg
@gems[name] = gem @gems[name] = gem
gem gem
end end
private private
class AportGem class PackagedGem
def initialize update, name, aport def initialize update, name, package
@update = update @update = update
@name = name @name = name
@aport = aport @package = package
end end
attr_reader :aport attr_reader :package
def require_version version def require_version version
if @version if @version
@ -241,11 +241,11 @@ class Update
end end
def version def version
@version || @aport.version @version || @package.version
end end
def updated? def updated?
version != @aport.version version != @package.version
end end
def dependency def dependency
@ -260,7 +260,7 @@ class Update
@obsolete_deps = [] @obsolete_deps = []
@aport.depends do |dep| @package.depends do |dep|
gem = @update.assign(dep.gem, dep.name) gem = @update.assign(dep.gem, dep.name)
gem.check_deps gem.check_deps
unless deps.reject! { |sdep| sdep.match? dep.gem, gem.version } unless deps.reject! { |sdep| sdep.match? dep.gem, gem.version }
@ -269,7 +269,7 @@ class Update
end end
if deps.length > 0 if deps.length > 0
raise 'Undeclared dependencies in ' + @aport.name + deps.inject('') { raise 'Undeclared dependencies in ' + @package.name + deps.inject('') {
|s, dep| "#{s}\n#{dep.name} #{dep.requirements_list.join ' '}" |s, dep| "#{s}\n#{dep.name} #{dep.requirements_list.join ' '}"
} }
end end
@ -278,7 +278,7 @@ class Update
def update def update
updated? || @obsolete_deps.length > 0 ? ( updated? || @obsolete_deps.length > 0 ? (
{ {
:name => @aport.name, :name => @package.name,
:version => version, :version => version,
:obsolete_deps => @obsolete_deps.clone :obsolete_deps => @obsolete_deps.clone
} }
@ -294,7 +294,7 @@ OptionParser.new do |opts|
testing = t testing = t
end end
end.parse! ARGV end.parse! ARGV
Aport.initialize testing Package.initialize testing
latest = {} latest = {}
for source, gems in Gem::SpecFetcher::fetcher.available_specs(:latest)[0] for source, gems in Gem::SpecFetcher::fetcher.available_specs(:latest)[0]
@ -307,7 +307,7 @@ update = Update.new
for arg in ARGV for arg in ARGV
match = /^(([^-]|-[^\d])+)(-(\d.*))?/.match arg match = /^(([^-]|-[^\d])+)(-(\d.*))?/.match arg
name = match[1] name = match[1]
update.require_version name, match[4] || latest[Aport.get(name).gem] update.require_version name, match[4] || latest[Package.get(name).gem]
end end
update.resolve update.resolve