weirdos => baguetteos, zstd, removing deprecated function call
parent
3b6d14392c
commit
fecac6b3d5
|
@ -3,31 +3,41 @@ require "openssl"
|
||||||
require "../backends.cr"
|
require "../backends.cr"
|
||||||
|
|
||||||
|
|
||||||
class WeirdBackend < Package::Backend::Packaging
|
class BaguetteBackend < Package::Backend::Packaging
|
||||||
def initialize
|
def initialize
|
||||||
@name = "weird"
|
@name = "baguette"
|
||||||
end
|
end
|
||||||
|
|
||||||
def package(context : Package::Context, package : Package::Package) : Bool
|
def package(context : Package::Context, package : Package::Package) : Bool
|
||||||
destination_package_file = "#{context.packages_directory}/#{package.name}-#{package.version}-#{package.release}.weird"
|
|
||||||
|
|
||||||
tmpdir = package.recipe.working_directory
|
tmpdir = package.recipe.working_directory
|
||||||
fake_root = package.fake_root_directory
|
fake_root = package.fake_root_directory
|
||||||
|
|
||||||
|
data_archive_path = "#{tmpdir}/data.tar"
|
||||||
|
compressed_data_archive_path = "#{tmpdir}/data.tar.zst"
|
||||||
|
control_spec_file_path = "#{tmpdir}/control.spec"
|
||||||
|
manifest_file_path = "#{tmpdir}/manifest"
|
||||||
|
|
||||||
|
package_filename = "#{context.packages_directory}/#{package.name}-#{package.version}-#{package.release}.baguette"
|
||||||
|
|
||||||
context.detail "Archiving package content"
|
context.detail "Archiving package content"
|
||||||
context.run fake_root, "tar", ["cJf", "#{tmpdir}/data.tar.xz", "."]
|
context.run fake_root, "tar", ["cvf", data_archive_path, "."]
|
||||||
|
|
||||||
|
context.detail "Compressing the archive"
|
||||||
|
# produces data.tar.zst
|
||||||
|
context.run fake_root, "zstd", ["--ultra", data_archive_path]
|
||||||
|
|
||||||
context.detail "Generating control.spec"
|
context.detail "Generating control.spec"
|
||||||
generate_spec package, "#{tmpdir}/control.spec"
|
generate_spec package, control_spec_file_path
|
||||||
|
|
||||||
context.detail "Generating manifest"
|
context.detail "Generating manifest"
|
||||||
generate_manifest context, package, "#{tmpdir}/manifest"
|
generate_manifest context, package, manifest_file_path
|
||||||
|
|
||||||
context.detail "Assembling '#{destination_package_file}'"
|
|
||||||
|
|
||||||
|
context.detail "Assembling '#{package_filename}'"
|
||||||
r = context.run tmpdir, "tar", [
|
r = context.run tmpdir, "tar", [
|
||||||
"cf", destination_package_file,
|
"cf", package_filename,
|
||||||
"control.spec", "manifest", "data.tar.xz"
|
# WARNING: relative paths are necessary.
|
||||||
|
"control.spec", "manifest", "data.tar.zst"
|
||||||
]
|
]
|
||||||
|
|
||||||
r.exit_status == 0
|
r.exit_status == 0
|
||||||
|
@ -72,7 +82,7 @@ class WeirdBackend < Package::Backend::Packaging
|
||||||
elsif File.directory? path
|
elsif File.directory? path
|
||||||
manifest.puts [file, "directory"].join ':'
|
manifest.puts [file, "directory"].join ':'
|
||||||
elsif File.info?(path).try &.file?
|
elsif File.info?(path).try &.file?
|
||||||
digest = OpenSSL::Digest.new("sha256").file(path).hexdigest
|
digest = OpenSSL::Digest.new("sha256").file(path).final.hexstring
|
||||||
manifest.puts [file, "file", digest].join ':'
|
manifest.puts [file, "file", digest].join ':'
|
||||||
else
|
else
|
||||||
manifest.puts [file, "other"].join ':'
|
manifest.puts [file, "other"].join ':'
|
|
@ -6,7 +6,7 @@ require "./exception.cr"
|
||||||
|
|
||||||
require "./config.cr"
|
require "./config.cr"
|
||||||
|
|
||||||
require "./backends/weird.cr"
|
require "./backends/baguette.cr"
|
||||||
require "./backends/apk.cr"
|
require "./backends/apk.cr"
|
||||||
require "./backends/pkgutils.cr"
|
require "./backends/pkgutils.cr"
|
||||||
require "./backends.cr"
|
require "./backends.cr"
|
||||||
|
@ -58,14 +58,14 @@ 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"]
|
property prefixes = ["/usr", "/", "/usr/baguetteos"]
|
||||||
property environment = {} of String => String
|
property environment = {} of String => String
|
||||||
|
|
||||||
property verbosity = 0
|
property verbosity = 0
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@packaging_backends << ApkBackend.new
|
@packaging_backends << ApkBackend.new
|
||||||
@packaging_backends << WeirdBackend.new
|
@packaging_backends << BaguetteBackend.new
|
||||||
@packaging_backends << PkgutilsBackend.new
|
@packaging_backends << PkgutilsBackend.new
|
||||||
|
|
||||||
@selected_packaging_backend = @packaging_backends[0]
|
@selected_packaging_backend = @packaging_backends[0]
|
||||||
|
|
Reference in New Issue