%{prefix} macro added.
- It is used in automated building instructions. - It is used in auto-splits. - It is preset before reading the recipe to the first of the default prefixes defined in this context, and can be reset to force the recipe to build somewhere else.master
parent
aac0eff75f
commit
4c66f13cae
|
@ -71,6 +71,8 @@ class Package::Context
|
||||||
# but it’ll be kind of enough for now.
|
# but it’ll be kind of enough for now.
|
||||||
property architecture = "x86_64"
|
property architecture = "x86_64"
|
||||||
|
|
||||||
|
property prefixes = ["/usr", "/", "/usr/weirdos"]
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@packaging_backends << Backend::Packaging.new "pkgutils" do |context, package|
|
@packaging_backends << Backend::Packaging.new "pkgutils" do |context, package|
|
||||||
puts "#{package.fake_root_directory} -> #{packages_directory}/#{package.name}##{package.version}-#{package.release}.pkg.tar.xz"
|
puts "#{package.fake_root_directory} -> #{packages_directory}/#{package.name}##{package.version}-#{package.release}.pkg.tar.xz"
|
||||||
|
@ -111,7 +113,7 @@ class Package::Context
|
||||||
next BuildStatus::Pass
|
next BuildStatus::Pass
|
||||||
end
|
end
|
||||||
|
|
||||||
child = context.sh "./configure --prefix=/usr #{recipe.options["configure"]? || ""}"
|
child = context.sh "./configure --prefix=#{recipe.prefix} #{recipe.options["configure"]? || ""}"
|
||||||
|
|
||||||
if child.exit_status == 0
|
if child.exit_status == 0
|
||||||
BuildStatus::Success
|
BuildStatus::Success
|
||||||
|
@ -154,19 +156,24 @@ class Package::Context
|
||||||
|
|
||||||
@splitter_backends << Backend::Splitter.new do |recipe|
|
@splitter_backends << Backend::Splitter.new do |recipe|
|
||||||
Package.new(recipe, true).tap do |split|
|
Package.new(recipe, true).tap do |split|
|
||||||
|
prefixes = (@prefixes + [recipe.prefix]).uniq
|
||||||
|
|
||||||
split.name = "#{recipe.name}-man"
|
split.name = "#{recipe.name}-man"
|
||||||
split.files = ["/usr/share/man"]
|
split.files = prefixes.map do |prefix|
|
||||||
|
"#{prefix}/share/man"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@splitter_backends << Backend::Splitter.new do |recipe|
|
@splitter_backends << Backend::Splitter.new do |recipe|
|
||||||
Package.new(recipe, true).tap do |split|
|
Package.new(recipe, true).tap do |split|
|
||||||
|
prefixes = (@prefixes + [recipe.prefix]).uniq
|
||||||
|
|
||||||
split.name = "#{recipe.name}-dev"
|
split.name = "#{recipe.name}-dev"
|
||||||
split.files = ["/usr/include"]
|
split.files = prefixes.map { |x| "#{x}/include" }
|
||||||
split.file_patterns = [
|
split.file_patterns = prefixes.map do |prefix|
|
||||||
Regex.new("^/lib/.*\\.a$"),
|
Regex.new("^" + prefix + ".*\\.a$")
|
||||||
Regex.new("^/usr/lib/.*\\.a$")
|
end
|
||||||
]
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -57,6 +57,8 @@ class Package::Recipe
|
||||||
getter sources = Sources.new
|
getter sources = Sources.new
|
||||||
getter packages = Array(Package).new
|
getter packages = Array(Package).new
|
||||||
|
|
||||||
|
@prefix : String?
|
||||||
|
|
||||||
property recipe_directory = "."
|
property recipe_directory = "."
|
||||||
|
|
||||||
@working_uuid : UUID = UUID.random
|
@working_uuid : UUID = UUID.random
|
||||||
|
@ -74,7 +76,8 @@ class Package::Recipe
|
||||||
|
|
||||||
def initialize(@context, filename : String)
|
def initialize(@context, filename : String)
|
||||||
specs = SpecFileParser.parse filename, {
|
specs = SpecFileParser.parse filename, {
|
||||||
"pkg" => fake_root_directory
|
"pkg" => fake_root_directory,
|
||||||
|
"prefix" => prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
name : String? = nil
|
name : String? = nil
|
||||||
|
@ -112,6 +115,8 @@ class Package::Recipe
|
||||||
@instructions.install << value.as_s_or_ls
|
@instructions.install << value.as_s_or_ls
|
||||||
when "dirname"
|
when "dirname"
|
||||||
@dirname = value.as_s
|
@dirname = value.as_s
|
||||||
|
when "prefix"
|
||||||
|
@prefix = value.as_s
|
||||||
when "dependencies"
|
when "dependencies"
|
||||||
value.as_a_or_s.each do |atom|
|
value.as_a_or_s.each do |atom|
|
||||||
@run_dependencies << atom
|
@run_dependencies << atom
|
||||||
|
@ -182,6 +187,10 @@ class Package::Recipe
|
||||||
@dirname || "#{name}-#{version}"
|
@dirname || "#{name}-#{version}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def prefix : String
|
||||||
|
@prefix || @context.prefixes[0]? || "/usr"
|
||||||
|
end
|
||||||
|
|
||||||
def download
|
def download
|
||||||
sources.each do |url|
|
sources.each do |url|
|
||||||
next if url.scheme == "file"
|
next if url.scheme == "file"
|
||||||
|
|
Reference in New Issue