From eddca7e0e832e132c6db4f38f16afa6a4b88525b Mon Sep 17 00:00:00 2001 From: Maximilian Downey Twiss Date: Sat, 2 Mar 2024 04:24:31 +1100 Subject: [PATCH] Enable additional temporarily disabled cops (#9394) --- .rubocop.yml | 105 ++--------- bin/crew | 366 +++++++++++++++++++-------------------- lib/const.rb | 22 ++- lib/deb_utils.rb | 20 +-- lib/downloader.rb | 1 + lib/fixup.rb | 2 +- lib/package.rb | 74 ++++---- lib/progress_bar.rb | 8 +- lib/util.rb | 20 +-- packages/icu4c.rb | 16 +- packages/imagemagick.rb | 3 +- packages/jdk.rb | 6 +- packages/llvm16_dev.rb | 7 +- packages/llvm17_dev.rb | 7 +- packages/mongodb.rb | 12 +- packages/openjdk.rb | 43 +++-- packages/php.rb | 38 ++-- packages/ruby_rubocop.rb | 2 +- tools/check.rb | 20 --- 19 files changed, 334 insertions(+), 438 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index eecc2a6df..eabc9a388 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -20,101 +20,15 @@ AllCops: Security/Eval: Enabled: false -Naming/ClassAndModuleCamelCase: - # Disable this cop for every file in packages/ - Enabled: false - -Naming/MethodParameterName: - Enabled: false - -Naming/MethodName: - Enabled: false - -Naming/VariableName: - Enabled: false - -Naming/PredicateName: - Enabled: false - -Metrics/AbcSize: - Enabled: false - -Metrics/MethodLength: - Enabled: false - -Metrics/ModuleLength: - Enabled: false - -Metrics/BlockLength: - Enabled: false - -Metrics/ClassLength: - Enabled: false - -Metrics/CyclomaticComplexity: - Enabled: false - -Metrics/PerceivedComplexity: - Enabled: false - -Metrics/BlockNesting: - Enabled: false - -Metrics/ParameterLists: - Enabled: false - -Layout/LineContinuationLeadingSpace: - Enabled: false - -Lint/ConstantDefinitionInBlock: - Enabled: false - -Lint/EmptyBlock: - Enabled: false - Lint/ImplicitStringConcatenation: Enabled: false -Lint/UnreachableCode: - Enabled: false - -Lint/DuplicateBranch: - Enabled: false - -Lint/AssignmentInCondition: - Enabled: false - -Lint/LiteralAsCondition: - Enabled: false - -Lint/UnderscorePrefixedVariableName: - Enabled: false - -Lint/EmptyWhen: - Enabled: false - -Lint/UselessAssignment: - Enabled: false - -Lint/MissingSuper: - Enabled: false - Lint/ShadowingOuterLocalVariable: Enabled: false Lint/SuppressedException: Enabled: false -Lint/RedundantSafeNavigation: - Enabled: false - -Layout/LineLength: - AllowedPatterns: - - '#' - - 'description' - # When this is reenabled, keep the AllowedPatterns configuration - Enabled: false - Layout/HashAlignment: EnforcedHashRocketStyle: - separator @@ -141,6 +55,9 @@ Layout/IndentationStyle: Layout/LeadingCommentSpace: Enabled: false +Layout/LineLength: + Enabled: false + Layout/SpaceInsideBlockBraces: Enabled: false @@ -150,6 +67,9 @@ Layout/SpaceInsideParens: Layout/TrailingEmptyLines: Enabled: false +Lint/LiteralAsCondition: + Enabled: false + Style/RedundantReturn: Enabled: false @@ -195,12 +115,25 @@ Style/RedundantLineContinuation: Style/RedundantStringEscape: Enabled: false +Metrics: + Enabled: false + Naming/AccessorMethodName: Enabled: false Naming/BlockParameterName: Enabled: false +Naming/ClassAndModuleCamelCase: + Exclude: + - 'packages/*' + +Naming/VariableName: + EnforcedStyle: snake_case + # Allow variable names which are in all caps (with optional numbers and underscores) + AllowedPatterns: + - '^@?[A-Z0-9_]+$' + Naming/VariableNumber: Enabled: false diff --git a/bin/crew b/bin/crew index 141bd5c4b..2245bf129 100755 --- a/bin/crew +++ b/bin/crew @@ -153,9 +153,6 @@ class ExitMessage end at_exit do - unless $ERROR_INFO.nil? || ($ERROR_INFO.is_a?(SystemExit) && $ERROR_INFO.success?) - code = $ERROR_INFO.is_a?(SystemExit) ? $ERROR_INFO.status : 1 - end # Print exit messages. ExitMessage.print end @@ -169,12 +166,12 @@ def load_json @device.transform_values! {|val| val.is_a?(String) ? val.to_sym : val } end -def print_package(pkgPath, extra = false) - pkgName = File.basename pkgPath, '.rb' +def print_package(pkg_path, extra = false) + pkg_name = File.basename pkg_path, '.rb' begin - set_package pkgName, pkgPath + set_package pkg_name, pkg_path rescue StandardError => e - warn "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + warn "Error with #{pkg_name}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') end print_current_package extra end @@ -207,9 +204,9 @@ def print_current_package(extra = false) puts '' end -def set_package(pkgName, pkgPath) +def set_package(pkg_name, pkg_path) begin - @pkg = Package.load_package(pkgPath, pkgName) + @pkg = Package.load_package(pkg_path, pkg_name) rescue SyntaxError => e warn "#{e.class}: #{e.message}".red end @@ -225,18 +222,18 @@ end def list_available Dir["#{CREW_PACKAGES_PATH}/*.rb"].each do |filename| - pkgName = File.basename(filename, '.rb') - filelist = File.join(CREW_META_PATH, "#{pkgName}.filelist") - notInstalled = !File.file?(filelist) + pkg_name = File.basename(filename, '.rb') + filelist = File.join(CREW_META_PATH, "#{pkg_name}.filelist") + not_installed = !File.file?(filelist) - next unless notInstalled + next unless not_installed begin - set_package pkgName, filename + set_package pkg_name, filename rescue StandardError => e - puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + puts "Error with #{pkg_name}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') end - puts pkgName if @pkg.compatible? + puts pkg_name if @pkg.compatible? end end @@ -264,17 +261,17 @@ end def list_compatible(compat = true) Dir["#{CREW_PACKAGES_PATH}/*.rb"].each do |filename| - pkgName = File.basename filename, '.rb' - if @device[:compatible_packages].any? { |elem| elem[:name] == pkgName } + pkg_name = File.basename filename, '.rb' + if @device[:compatible_packages].any? { |elem| elem[:name] == pkg_name } if compat - if File.file? "#{CREW_META_PATH}/#{pkgName}.filelist" - puts pkgName.lightgreen + if File.file? "#{CREW_META_PATH}/#{pkg_name}.filelist" + puts pkg_name.lightgreen else - puts pkgName + puts pkg_name end end elsif !compat - puts pkgName.lightred + puts pkg_name.lightred end end end @@ -283,19 +280,19 @@ def generate_compatible puts 'Generating compatible packages...'.orange if @opt_verbose @device[:compatible_packages] = [] Dir["#{CREW_PACKAGES_PATH}/*.rb"].each do |filename| - pkgName = File.basename filename, '.rb' + pkg_name = File.basename filename, '.rb' begin - set_package pkgName, filename + set_package pkg_name, filename rescue StandardError => e - puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + puts "Error with #{pkg_name}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') end - puts "Checking #{pkgName} for compatibility.".orange if @opt_verbose + puts "Checking #{pkg_name} for compatibility.".orange if @opt_verbose if @pkg.compatible? # add to compatible packages - puts "Adding #{pkgName} #{@pkg.version} to compatible packages.".lightgreen if @opt_verbose + puts "Adding #{pkg_name} #{@pkg.version} to compatible packages.".lightgreen if @opt_verbose @device[:compatible_packages].push(name: @pkg.name) elsif @opt_verbose - puts "#{pkgName} is not a compatible package.".lightred + puts "#{pkg_name} is not a compatible package.".lightred end end File.open(File.join(CREW_CONFIG_PATH, 'device.json'), 'w') do |file| @@ -305,40 +302,40 @@ def generate_compatible puts 'Generating compatible packages done.'.orange if @opt_verbose end -def search(pkgName, silent = false) - pkgPath = File.join(CREW_PACKAGES_PATH, "#{pkgName}.rb") +def search(pkg_name, silent = false) + pkg_path = File.join(CREW_PACKAGES_PATH, "#{pkg_name}.rb") begin - return set_package(pkgName, pkgPath) if File.file?(pkgPath) + return set_package(pkg_name, pkg_path) if File.file?(pkg_path) rescue StandardError => e - puts "Error with #{pkgName}.rb: #{e}".lightred unless e.to_s.include?('uninitialized constant') + puts "Error with #{pkg_name}.rb: #{e}".lightred unless e.to_s.include?('uninitialized constant') end - unless File.file?(pkgPath) && silent + unless File.file?(pkg_path) && silent @pkg = nil - abort "Package #{pkgName} not found. 😞".lightred unless silent + abort "Package #{pkg_name} not found. 😞".lightred unless silent return end end -def regexp_search(pkgPat) - re = Regexp.new(pkgPat, true) +def regexp_search(pkg_pat) + re = Regexp.new(pkg_pat, true) results = Dir["#{CREW_PACKAGES_PATH}/*.rb"] \ .select { |f| File.basename(f, '.rb') =~ re } \ .each { |f| print_package(f, @opt_verbose) } if results.empty? - Dir["#{CREW_PACKAGES_PATH}/*.rb"].each do |packagePath| - packageName = File.basename packagePath, '.rb' + Dir["#{CREW_PACKAGES_PATH}/*.rb"].each do |package_path| + package_name = File.basename package_path, '.rb' begin - set_package packageName, packagePath + set_package package_name, package_path rescue StandardError => e - puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + puts "Error with #{pkg_name}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') end - if @pkg.description =~ /#{pkgPat}/i + if @pkg.description =~ /#{pkg_pat}/i print_current_package @opt_verbose - results.push(packageName) + results.push(package_name) end end end - abort "Package #{pkgPat} not found. :(".lightred if results.empty? + abort "Package #{pkg_pat} not found. :(".lightred if results.empty? end def cache_build @@ -384,9 +381,9 @@ def const(var = nil) end end -def files(pkgName) - local_filelist = File.join(CREW_META_PATH, "#{pkgName}.filelist") - manifest_filelist = File.join(CREW_LIB_PATH, "manifest/#{ARCH}/#{pkgName[0]}/#{pkgName}.filelist") +def files(pkg_name) + local_filelist = File.join(CREW_META_PATH, "#{pkg_name}.filelist") + manifest_filelist = File.join(CREW_LIB_PATH, "manifest/#{ARCH}/#{pkg_name[0]}/#{pkg_name}.filelist") if File.exist?(local_filelist) # search for local filelist first @@ -396,7 +393,7 @@ def files(pkgName) filelist_path = manifest_filelist else # package does not have any filelist available - warn "Package #{pkgName} is not installed. :(".lightred + warn "Package #{pkg_name} is not installed. :(".lightred return false end @@ -419,7 +416,7 @@ end def prop(silent = false) props = [] pkg = Package.new - excluded_methods = %w[compatible is_binary is_source json_creatable autoload include const_defined class_variable_defined singleton_class method_defined public_method_defined private_method_defined protected_method_defined instance_variable_defined instance_of kind_of is_a frozen nil eql respond_to equal] + excluded_methods = %w[compatible binary source json_creatable autoload include const_defined class_variable_defined singleton_class method_defined public_method_defined private_method_defined protected_method_defined instance_variable_defined instance_of kind_of is_a frozen nil eql respond_to equal] all_methods = pkg.class.methods.grep(/\?$/).to_s.gsub(/([?:,\[\]])/, '').split all_methods.each do |method| props.push(method) unless excluded_methods.include?(method) @@ -432,25 +429,25 @@ def prop(silent = false) end end -def whatprovides(regexPat) - matchedList = `grep -R "#{regexPat}" #{CREW_LIB_PATH}/manifest/#{ARCH}`.lines(chomp: true).flat_map do |result| - filelist, matchedFile = result.split(':', 2) - pkgName = File.basename(filelist, '.filelist') - pkgNameStatus = pkgName - if @device[:compatible_packages].any? { |elem| elem[:name] == pkgName } - pkgNameStatus = pkgName.lightgreen if File.file? "#{CREW_META_PATH}/#{pkgName}.filelist" +def whatprovides(regex_pat) + matched_list = `grep -R "#{regex_pat}" #{CREW_LIB_PATH}/manifest/#{ARCH}`.lines(chomp: true).flat_map do |result| + filelist, matched_file = result.split(':', 2) + pkg_name = File.basename(filelist, '.filelist') + pkg_name_status = pkg_name + if @device[:compatible_packages].any? { |elem| elem[:name] == pkg_name } + pkg_name_status = pkg_name.lightgreen if File.file? "#{CREW_META_PATH}/#{pkg_name}.filelist" else - pkgNameStatus = pkgName.lightred + pkg_name_status = pkg_name.lightred end - "#{pkgNameStatus}: #{matchedFile}" + "#{pkg_name_status}: #{matched_file}" end.sort - puts matchedList, "\nTotal found: #{matchedList.length}".lightgreen if matchedList.any? + puts matched_list, "\nTotal found: #{matched_list.length}".lightgreen if matched_list.any? end def update - abort "'crew update' is used to update crew itself. Use 'crew upgrade [ ...]' to update specific packages.".orange if @pkgName + abort "'crew update' is used to update crew itself. Use 'crew upgrade [ ...]' to update specific packages.".orange if @pkg_name # update package lists Dir.chdir(CREW_LIB_PATH) do @@ -472,31 +469,31 @@ def update # check for outdated installed packages puts 'Checking for package updates...' - canBeUpdated = 0 + can_be_updated = 0 @device[:installed_packages].each do |package| search package[:name], true unless @pkg puts "Package file for #{package[:name]} not found. :(".lightred if @opt_verbose next end - differentVersion = (package[:version] != @pkg.version) - hasSha = !(@pkg.get_binary_sha256(@device[:architecture]).to_s.empty? || package[:binary_sha256].to_s.empty?) - differentSha = hasSha && package[:binary_sha256] != @pkg.get_binary_sha256(@device[:architecture]) + different_version = (package[:version] != @pkg.version) + has_sha = !(@pkg.get_binary_sha256(@device[:architecture]).to_s.empty? || package[:binary_sha256].to_s.empty?) + different_sha = has_sha && package[:binary_sha256] != @pkg.get_binary_sha256(@device[:architecture]) - canBeUpdated += 1 if differentVersion || differentSha + can_be_updated += 1 if different_version || different_sha - if differentVersion && !differentSha && hasSha - canBeUpdated -= 1 + if different_version && !different_sha && has_sha + can_be_updated -= 1 puts "#{@pkg.name} has a version change but does not have updated binaries".yellow - elsif differentVersion + elsif different_version puts "#{@pkg.name} could be updated from #{package[:version]} to #{@pkg.version}" - elsif !differentVersion && differentSha + elsif !different_version && different_sha puts "#{@pkg.name} could be updated (rebuild)" end end - if canBeUpdated.positive? - puts "\n#{canBeUpdated} packages can be updated." + if can_be_updated.positive? + puts "\n#{can_be_updated} packages can be updated." puts 'Run `crew upgrade` to update all packages or `crew upgrade [ ...]` to update specific packages.' else puts 'Your software is up to date.'.lightgreen @@ -504,42 +501,42 @@ def update end def upgrade(*pkgs, build_from_source: false) - check_update_avail = lambda do |pkgFile| - pkgName = File.basename(pkgFile, '.rb') + check_update_avail = lambda do |pkg_file| + pkg_name = File.basename(pkg_file, '.rb') - unless File.file?(pkgFile) - warn "Package file for installed package #{pkgName} is missing.".lightred + unless File.file?(pkg_file) + warn "Package file for installed package #{pkg_name} is missing.".lightred return false end pkgs.each do - unless @device[:installed_packages].any? { |package| package[:name] == pkgName } - puts 'Package '.lightred + pkgName.orange + ' is not installed. 😔 You may try this: '.lightred + "crew install #{pkgName}".lightblue + unless @device[:installed_packages].any? { |package| package[:name] == pkg_name } + puts 'Package '.lightred + pkg_name.orange + ' is not installed. 😔 You may try this: '.lightred + "crew install #{pkg_name}".lightblue return false end end - pkgVer_latest = Package.load_package(pkgFile, pkgName).version - pkgVer_installed = @device[:installed_packages].select { |pkg| pkg[:name] == pkgName } [0][:version] - pkgHash_latest = Package.load_package(pkgFile, pkgName).get_binary_sha256(@device[:architecture]) - pkgHash_installed = @device[:installed_packages].select { |pkg| pkg[:name] == pkgName } [0][:binary_sha256] + pkg_ver_latest = Package.load_package(pkg_file, pkg_name).version + pkg_ver_installed = @device[:installed_packages].select { |pkg| pkg[:name] == pkg_name } [0][:version] + pkg_hash_latest = Package.load_package(pkg_file, pkg_name).get_binary_sha256(@device[:architecture]) + pkg_hash_installed = @device[:installed_packages].select { |pkg| pkg[:name] == pkg_name } [0][:binary_sha256] - return pkgHash_latest != pkgHash_installed unless !pkgHash_installed || pkgHash_latest == '' - return pkgVer_latest != pkgVer_installed + return pkg_hash_latest != pkg_hash_installed unless !pkg_hash_installed || pkg_hash_latest == '' + return pkg_ver_latest != pkg_ver_installed end to_be_upgraded = [] if pkgs.any? # check for specific package(s) - pkgs.each do |pkgName| - pkgFile = File.join(CREW_PACKAGES_PATH, "#{pkgName}.rb") - to_be_upgraded << pkgName if check_update_avail.call(pkgFile) + pkgs.each do |pkg_name| + pkg_file = File.join(CREW_PACKAGES_PATH, "#{pkg_name}.rb") + to_be_upgraded << pkg_name if check_update_avail.call(pkg_file) end else # check for all packages if no package name provided @device[:installed_packages].each do |pkg| - pkgFile = File.join(CREW_PACKAGES_PATH, "#{pkg[:name]}.rb") - to_be_upgraded << pkg[:name] if check_update_avail.call(pkgFile) + pkg_file = File.join(CREW_PACKAGES_PATH, "#{pkg[:name]}.rb") + to_be_upgraded << pkg[:name] if check_update_avail.call(pkg_file) end end @@ -566,16 +563,16 @@ def upgrade(*pkgs, build_from_source: false) end # install new dependencies (if any) - to_be_upgraded.each do |pkgName| - search(pkgName) + to_be_upgraded.each do |pkg_name| + search(pkg_name) resolve_dependencies end puts 'Updating packages...' # upgrade packages - to_be_upgraded.each do |pkgName| - search(pkgName) + to_be_upgraded.each do |pkg_name| + search(pkg_name) print_current_package @pkg.build_from_source = (build_from_source || CREW_BUILD_FROM_SOURCE) @@ -591,7 +588,7 @@ end def download url = @pkg.get_url(@device[:architecture]) - source = @pkg.is_source?(@device[:architecture]) + source = @pkg.source?(@device[:architecture]) uri = URI.parse url filename = File.basename(uri.path) @@ -832,7 +829,7 @@ def build_and_preconfigure(target_dir) begin @pkg.build - rescue StandardError => e + rescue StandardError if CREW_CACHE_FAILED_BUILD cache_build abort 'There was a build error, caching build directory.'.lightred @@ -1029,6 +1026,8 @@ def patchelf_set_need_paths(dir) puts 'Patchelf is currently disabled during builds due to problems with upx.'.yellow return + # Disable unreachable code check, as this is a temporary situation + # rubocop:disable Lint/UnreachableCode Dir.chdir dir do puts 'Running patchelf'.lightblue abort('No Patchelf found!').lightred unless File.file?("#{CREW_PREFIX}/bin/patchelf") @@ -1079,6 +1078,7 @@ def patchelf_set_need_paths(dir) system "patchelf --set-interpreter #{patchelf_interpreter} #{execfiletopatch}" end end + # rubocop:enable Lint/UnreachableCode end def strip_find_files(find_cmd, strip_option = '') @@ -1225,12 +1225,10 @@ def install_package(pkgdir) FileUtils.mv 'filelist', File.join(CREW_META_PATH, "#{@pkg.name}.filelist"), verbose: @fileutils_verbose unless CREW_NOT_LINKS || @pkg.no_links? - brokensymlinks = nil brokensymlinks = `find . -type l -exec test ! -e {} \\; -print`.chomp unless brokensymlinks.to_s.empty? puts 'There are broken symlinks. Will try to fix.'.orange if @opt_verbose brokensymlinks.each_line(chomp: true) do |fixlink| - brokentarget = fixedtarget = nil brokentarget = `readlink -n #{fixlink}`.chomp puts "Attempting fix of: #{fixlink.delete_prefix('.')} -> #{brokentarget}".orange if @opt_verbose fixedtarget = brokentarget.delete_prefix(CREW_DEST_DIR) @@ -1308,14 +1306,14 @@ def resolve_dependencies # compare dependency version with required range (if installed) @dependencies.each do |dep| - depName = dep.keys[0] - dep_info = @device[:installed_packages].select {|pkg| pkg[:name] == depName } [0] + dep_name = dep.keys[0] + dep_info = @device[:installed_packages].select {|pkg| pkg[:name] == dep_name } [0] # skip if dependency is not installed next unless dep_info - tags, version_check = dep.values[0] - installed_version = dep_info[:version] + _tags, version_check = dep.values[0] + installed_version = dep_info[:version] next unless version_check @@ -1327,12 +1325,12 @@ def resolve_dependencies @dependencies.map!(&:keys).flatten! # leave only not installed packages in dependencies - @dependencies.reject! { |depName| @device[:installed_packages].any? { |pkg| pkg[:name] == depName } } + @dependencies.reject! { |dep_name| @device[:installed_packages].any? { |pkg| pkg[:name] == dep_name } } # run preflight check for dependencies - @dependencies.each do |depName| - dep_pkgPath = File.join(CREW_PACKAGES_PATH, "#{depName}.rb") - Package.load_package(dep_pkgPath, depName).preflight + @dependencies.each do |dep_name| + dep_pkg_path = File.join(CREW_PACKAGES_PATH, "#{dep_name}.rb") + Package.load_package(dep_pkg_path, dep_name).preflight end return if @dependencies.empty? @@ -1517,27 +1515,27 @@ def archive_package(crew_archive_dest) system "sha256sum #{crew_archive_dest}/#{pkg_name} > #{crew_archive_dest}/#{pkg_name}.sha256" # Copy package file for the successfully generated package to CREW_LOCAL_REPO_ROOT only if force is set. if @opt_force - FileUtils.cp "#{CREW_PACKAGES_PATH}/#{@pkgName}.rb", "#{CREW_LOCAL_REPO_ROOT}/packages/" - puts "The package file for #{@pkgName} used has been copied to #{CREW_LOCAL_REPO_ROOT}/packages/".lightblue + FileUtils.cp "#{CREW_PACKAGES_PATH}/#{@pkg_name}.rb", "#{CREW_LOCAL_REPO_ROOT}/packages/" + puts "The package file for #{@pkg_name} used has been copied to #{CREW_LOCAL_REPO_ROOT}/packages/".lightblue if @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name } - puts "#{@pkgName} will now be upgraded...".lightblue + puts "#{@pkg_name} will now be upgraded...".lightblue system "crew reinstall #{@pkg.name}" else - puts "#{@pkgName} will now be installed...".lightblue + puts "#{@pkg_name} will now be installed...".lightblue system "crew install #{@pkg.name}" end end end -def remove(pkgName) +def remove(pkg_name) # make sure the package is actually installed - unless @device[:installed_packages].any? { |pkg| pkg[:name] == pkgName } || File.file?(File.join(CREW_META_PATH, "#{pkgName}.filelist")) - puts "Package #{pkgName} isn't installed.".lightred + unless @device[:installed_packages].any? { |pkg| pkg[:name] == pkg_name } || File.file?(File.join(CREW_META_PATH, "#{pkg_name}.filelist")) + puts "Package #{pkg_name} isn't installed.".lightred return end # Perform any operations required prior to package removal. - search pkgName, true + search pkg_name, true @pkg.preremove unless @in_fixup # Preserve CREW_ESSENTIAL_FILES and make sure they are real files @@ -1553,13 +1551,13 @@ def remove(pkgName) end end - conflicts = determine_conflicts(Dir.pwd, pkgName) + conflicts = determine_conflicts(Dir.pwd, pkg_name) # if the filelist exists, remove the files and directories installed by the package - if File.file?(File.join(CREW_META_PATH, "#{pkgName}.filelist")) + if File.file?(File.join(CREW_META_PATH, "#{pkg_name}.filelist")) Dir.chdir CREW_CONFIG_PATH do # remove all files installed by the package - File.foreach("meta/#{pkgName}.filelist", chomp: true) do |line| + File.foreach("meta/#{pkg_name}.filelist", chomp: true) do |line| # Do not remove essential files which crew (and dependencies) # rely on, especially during package upgrades or reinstalls. # These essential files are enumerated in const.rb as @@ -1571,7 +1569,7 @@ def remove(pkgName) puts "filelist contains #{line}".lightred if @opt_verbose && !line.include?(CREW_PREFIX) if line.start_with?(CREW_PREFIX) if conflicts.include?(line) - puts "#{line} is in another package. It will not be removed during the removal of #{pkgName}".orange + puts "#{line} is in another package. It will not be removed during the removal of #{pkg_name}".orange else FileUtils.rm_rf line end @@ -1580,7 +1578,7 @@ def remove(pkgName) end # remove all directories installed by the package - File.foreach("meta/#{pkgName}.directorylist", chomp: true) do |line| + File.foreach("meta/#{pkg_name}.directorylist", chomp: true) do |line| puts "directorylist contains #{line}".lightred if @opt_verbose && !line.include?(CREW_PREFIX) next unless Dir.exist?(line) && Dir.empty?(line) && line.include?(CREW_PREFIX) @@ -1589,46 +1587,46 @@ def remove(pkgName) end # remove the file and directory list - FileUtils.rm_f Dir["meta/#{pkgName}.{file,directory}list"] + FileUtils.rm_f Dir["meta/#{pkg_name}.{file,directory}list"] end end # remove from installed packages - puts "Removing package #{pkgName}".lightred if @opt_verbose - @device[:installed_packages].delete_if { |elem| elem[:name] == pkgName } + puts "Removing package #{pkg_name}".lightred if @opt_verbose + @device[:installed_packages].delete_if { |elem| elem[:name] == pkg_name } # update the device manifest File.write "#{CREW_CONFIG_PATH}/device.json", JSON.pretty_generate(JSON.parse(@device.to_json)) - search pkgName, true + search pkg_name, true @pkg.remove unless @in_fixup - puts "#{pkgName.capitalize} removed!".lightgreen + puts "#{pkg_name.capitalize} removed!".lightgreen end def print_deps_tree(args) warn 'Walking through dependencies recursively, this may take a while...', '' - # depHash: Hash object returned by @pkg.get_deps_list - depHash = @pkg.get_deps_list(hash: true, include_build_deps: args['--include-build-deps'] || 'auto', exclude_buildessential: args['--exclude-buildessential']) + # dep_hash: Hash object returned by @pkg.get_deps_list + dep_hash = @pkg.get_deps_list(hash: true, include_build_deps: args['--include-build-deps'] || 'auto', exclude_buildessential: args['--exclude-buildessential']) # convert returned hash to json and format it - jsonView = JSON.pretty_generate(depHash) + json_view = JSON.pretty_generate(dep_hash) # convert formatted json string to tree structure - treeView = jsonView.gsub(/\{\s*/m, '└─────').gsub(/[\[\]{},":]/, '').gsub(/^\s*$\n/, '').gsub(/\s*$/, '') + tree_view = json_view.gsub(/\{\s*/m, '└─────').gsub(/[\[\]{},":]/, '').gsub(/^\s*$\n/, '').gsub(/\s*$/, '') # add pipe char to connect endpoints and starting points, improve readability # find the horizontal location of all arrow symbols - index_with_pipe_char = treeView.lines.map { |line| line.index('└') }.compact.uniq + index_with_pipe_char = tree_view.lines.map { |line| line.index('└') }.compact.uniq # determine whatever a pipe char should be added according to the horizontal location of arrow symbols - treeView = treeView.lines.each_with_index.map do |line, line_i| + tree_view = tree_view.lines.each_with_index.map do |line, line_i| index_with_pipe_char.each do |char_i| - # check if there have any non-space char (pkgNames) between starting point ([line_i][char_i]) and endpoint vertically ([next_arrow_line_offset][char_i]) + # check if there have any non-space char (pkg_names) between starting point ([line_i][char_i]) and endpoint vertically ([next_arrow_line_offset][char_i]) # (used to determine if the starting point and endpoint are in same branch, use pipe char to connect them if true) - next_arrow_line_offset = treeView.lines[line_i..].index { |l| l[char_i] == '└' } - have_line_with_non_empty_char = treeView.lines[line_i + 1..line_i + next_arrow_line_offset.to_i - 1].any? { |l| l[char_i].nil? or l[char_i] =~ /\S/ } + next_arrow_line_offset = tree_view.lines[line_i..].index { |l| l[char_i] == '└' } + have_line_with_non_empty_char = tree_view.lines[line_i + 1..line_i + next_arrow_line_offset.to_i - 1].any? { |l| l[char_i].nil? or l[char_i] =~ /\S/ } line[char_i] = '│' if next_arrow_line_offset && (line[char_i] == ' ') && !have_line_with_non_empty_char end @@ -1636,7 +1634,7 @@ def print_deps_tree(args) end.join # replace arrow symbols with a tee symbol on branch intersection - treeView = treeView.lines.each_with_index.map do |line, line_i| + tree_view = tree_view.lines.each_with_index.map do |line, line_i| # orig_arrow_index_connecter: the horizontal location of the arrow symbol used to connect parent branch # # example: @@ -1659,9 +1657,9 @@ def print_deps_tree(args) orig_arrow_index_newbranch = orig_arrow_index_connecter + 4 # if the char under the processing arrow symbol (orig_arrow_index_connecter) is also arrow or pipe, change the processing char to tee symbol - line[orig_arrow_index_connecter] = '├' if orig_arrow_index_connecter && treeView.lines[line_i + 1].to_s[orig_arrow_index_connecter] =~ (/[└│]/) + line[orig_arrow_index_connecter] = '├' if orig_arrow_index_connecter && tree_view.lines[line_i + 1].to_s[orig_arrow_index_connecter] =~ (/[└│]/) # if the char under the processing arrow symbol (orig_arrow_index_newbranch) is also arrow or pipe, change the processing char to tee symbol - line[orig_arrow_index_newbranch] = '┬' if orig_arrow_index_newbranch && treeView.lines[line_i + 1].to_s[orig_arrow_index_newbranch] =~ (/[└├]/) + line[orig_arrow_index_newbranch] = '┬' if orig_arrow_index_newbranch && tree_view.lines[line_i + 1].to_s[orig_arrow_index_newbranch] =~ (/[└├]/) next line # return modified line end.join @@ -1674,22 +1672,22 @@ def print_deps_tree(args) # (the first string in each #{} is used for commenting only, will not be included in output) # replace special symbols returned by @pkg.get_deps_list to actual color code - treeView.gsub!(/\*(.+)\*/, '\1'.lightcyan) - treeView.gsub!(/\+(.+)\+/, "\e[45m\\1\e[0m") + tree_view.gsub!(/\*(.+)\*/, '\1'.lightcyan) + tree_view.gsub!(/\+(.+)\+/, "\e[45m\\1\e[0m") end - puts treeView + puts tree_view end -def upload(pkgName = nil) +def upload(pkg_name = nil) abort "\nGITLAB_TOKEN environment variable not set.\n".lightred if ENV.fetch('GITLAB_TOKEN', nil).nil? - packages = pkgName + packages = pkg_name binary_compression_set = nil gitlab_token = ENV.fetch('GITLAB_TOKEN', nil) base_url = 'https://gitlab.com/api/v4/projects/26210301/packages/generic' - if pkgName.nil? + if pkg_name.nil? %w[.tar.xz .tar.zst].each do |ext| packages += `find #{CREW_LOCAL_REPO_ROOT}/release/*/*#{ext} -exec basename -s #{ext} {} + | cut -d- -f1 | sort | uniq | xargs` packages += ' ' @@ -1827,27 +1825,27 @@ def build_command(args) # If a package file is explicitly passed, then use that package file, whereever it is. if name.include?('.rb') && File.file?(name) FileUtils.cp name, "#{CREW_PACKAGES_PATH}/" - @pkgName = File.basename(name).gsub('.rb', '') + @pkg_name = File.basename(name).gsub('.rb', '') else - @pkgName = name + @pkg_name = name end # Prompt to copy the local repo package to crew if the package is not found. - if !File.file?("#{CREW_PACKAGES_PATH}/#{@pkgName}.rb") && File.file?("#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb") + if !File.file?("#{CREW_PACKAGES_PATH}/#{@pkg_name}.rb") && File.file?("#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb") if @opt_force - FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb", "#{CREW_PACKAGES_PATH}/" - puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen + FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb", "#{CREW_PACKAGES_PATH}/" + puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen else - puts "\n#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb exists but crew is unable to find this package.".yellow - print "\nWould you like to copy #{@pkgName}.rb to crew and start the build [Y/n] ".yellow + puts "\n#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb exists but crew is unable to find this package.".yellow + print "\nWould you like to copy #{@pkg_name}.rb to crew and start the build [Y/n] ".yellow response = $stdin.gets.chomp.downcase case response when 'n', 'no' puts 'Build skipped.' next when '', 'y', 'yes' - FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb", "#{CREW_PACKAGES_PATH}/" - puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen + FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb", "#{CREW_PACKAGES_PATH}/" + puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen else puts "I don't understand `#{response}`. :(".lightred puts 'Build skipped.' @@ -1859,27 +1857,27 @@ def build_command(args) # Compare local repo package to the crew repo package and prompt to copy if necessary to prepare for the build. crew_package_updated = '' Dir.chdir CREW_PACKAGES_PATH do - crew_package_updated = `git diff #{CREW_PACKAGES_PATH}/#{@pkgName}.rb`.chomp + crew_package_updated = `git diff #{CREW_PACKAGES_PATH}/#{@pkg_name}.rb`.chomp end local_package_updated = '' Dir.chdir CREW_LOCAL_REPO_ROOT do - local_package_updated = `git diff #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb`.chomp + local_package_updated = `git diff #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb`.chomp end if local_package_updated != '' && crew_package_updated == '' if @opt_force - FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb", "#{CREW_PACKAGES_PATH}/" - puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen + FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb", "#{CREW_PACKAGES_PATH}/" + puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen else - puts "\n#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb has been updated but the crew package is unchanged.".yellow - print "\nWould you like to copy #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to crew and start the build [Y/n] ".yellow + puts "\n#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb has been updated but the crew package is unchanged.".yellow + print "\nWould you like to copy #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to crew and start the build [Y/n] ".yellow response = $stdin.gets.chomp.downcase case response when 'n', 'no' puts 'Build skipped.' next when '', 'y', 'yes' - FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb", "#{CREW_PACKAGES_PATH}/" - puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen + FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb", "#{CREW_PACKAGES_PATH}/" + puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen else puts "I don't understand `#{response}`. :(".lightred puts 'Build skipped.' @@ -1889,19 +1887,19 @@ def build_command(args) end if local_package_updated != '' && crew_package_updated != '' && local_package_updated != crew_package_updated if @opt_force - FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb", "#{CREW_PACKAGES_PATH}/" - puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen + FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb", "#{CREW_PACKAGES_PATH}/" + puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen else - puts "\n#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb has been updated and does not match the crew updated package.".yellow - print "\nWould you like to copy #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to crew and start the build [Y/n] ".yellow + puts "\n#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb has been updated and does not match the crew updated package.".yellow + print "\nWould you like to copy #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to crew and start the build [Y/n] ".yellow response = $stdin.gets.chomp.downcase case response when 'n', 'no' puts 'Build skipped.' next when '', 'y', 'yes' - FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb", "#{CREW_PACKAGES_PATH}/" - puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkgName}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen + FileUtils.cp "#{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb", "#{CREW_PACKAGES_PATH}/" + puts "\nCopied #{CREW_LOCAL_REPO_ROOT}/packages/#{@pkg_name}.rb to #{CREW_PACKAGES_PATH}.\n".lightgreen else puts "I don't understand `#{response}`. :(".lightred puts 'Build skipped.' @@ -1910,19 +1908,19 @@ def build_command(args) end end - search @pkgName + search @pkg_name print_current_package @opt_verbose - next unless @pkgName + next unless @pkg_name # Process preflight block to see if package should be built pre_flight - if !@pkg.is_fake? && @pkg.compatible? && @pkg.is_source?(ARCH) && @pkg.source_url.to_s.upcase != 'SKIP' && !@pkg.no_compile_needed? + if !@pkg.is_fake? && @pkg.compatible? && @pkg.source?(ARCH) && @pkg.source_url.to_s.upcase != 'SKIP' && !@pkg.no_compile_needed? resolve_dependencies_and_build else puts 'Unable to build a fake package. Skipping build.'.lightred if @pkg.is_fake? puts "Package #{@pkg.name} is not compatible with your device architecture (#{ARCH}). Skipping build.".lightred unless @pkg.compatible? - puts 'Unable to build without source. Skipping build.'.lightred unless @pkg.is_source?(ARCH) && @pkg.source_url.to_s.upcase != 'SKIP' + puts 'Unable to build without source. Skipping build.'.lightred unless @pkg.source?(ARCH) && @pkg.source_url.to_s.upcase != 'SKIP' puts 'Compile not needed. Skipping build.'.lightred if @pkg.no_compile_needed? end end @@ -1941,8 +1939,8 @@ end def deps_command(args) args[''].each do |name| - @pkgName = name - search @pkgName + @pkg_name = name + search @pkg_name if args['--tree'] # call `print_deps_tree` (print dependency tree) if --tree is specified @@ -1958,8 +1956,8 @@ end def download_command(args) args[''].each do |name| - @pkgName = name - search @pkgName + @pkg_name = name + search @pkg_name @pkg.build_from_source = true if @opt_source print_current_package @opt_verbose download @@ -1968,8 +1966,8 @@ end def files_command(args) args[''].each do |name| - @pkgName = name - search @pkgName + @pkg_name = name + search @pkg_name print_current_package files name end @@ -1981,11 +1979,11 @@ end def install_command(args) args[''].each do |name| - @pkgName = name - search @pkgName + @pkg_name = name + search @pkg_name print_current_package true @pkg.build_from_source = true if @opt_source || @opt_recursive || CREW_BUILD_FROM_SOURCE - next unless @pkgName + next unless @pkg_name if @pkg.compatible? resolve_dependencies_and_install @@ -2009,12 +2007,12 @@ end def postinstall_command(args) args[''].each do |name| - @pkgName = name - search @pkgName, true - if @device[:installed_packages].any? { |elem| elem[:name] == @pkgName } + @pkg_name = name + search @pkg_name, true + if @device[:installed_packages].any? { |elem| elem[:name] == @pkg_name } @pkg.postinstall else - puts "Package #{@pkgName} is not installed. :(".lightred + puts "Package #{@pkg_name} is not installed. :(".lightred end end end @@ -2025,11 +2023,11 @@ end def reinstall_command(args) args[''].each do |name| - @pkgName = name - search @pkgName + @pkg_name = name + search @pkg_name print_current_package @pkg.build_from_source = true if @opt_source || @opt_recursive || CREW_BUILD_FROM_SOURCE - next unless @pkgName + next unless @pkg_name if @pkg.compatible? @pkg.in_upgrade = true @@ -2118,7 +2116,7 @@ def whatprovides_command(args) end end -def is_command(name) = !!!name[/^[-<]/] +def command?(name) = !!!name[/^[-<]/] Signal.trap('INT') do if CREW_CACHE_FAILED_BUILD && CREW_CACHE_ENABLED && @pkg.in_build @@ -2131,5 +2129,5 @@ Signal.trap('INT') do end load_json -command_name = args.select { |k, v| v && is_command(k) }.keys[0] +command_name = args.select { |k, v| v && command?(k) }.keys[0] send("#{command_name}_command", args) diff --git a/lib/const.rb b/lib/const.rb index bd4fb2e11..95e22f20f 100644 --- a/lib/const.rb +++ b/lib/const.rb @@ -72,18 +72,16 @@ CREW_IS_AMD = CREW_CPU_VENDOR.eql?('AuthenticAMD') CREW_IS_INTEL = %w[x86_64 i686].include?(ARCH) && %w[unknown GenuineIntel].include?(CREW_CPU_VENDOR) # Use sane minimal defaults if in container and no override specified. -if CREW_IN_CONTAINER && ENV['CREW_KERNEL_VERSION'].nil? - case ARCH - when 'i686' - CREW_KERNEL_VERSION = '3.8' - when 'aarch64', 'armv7l' - CREW_KERNEL_VERSION = '5.10' - when 'x86_64' - CREW_KERNEL_VERSION = '5.10' - end -else - CREW_KERNEL_VERSION = ENV.fetch('CREW_KERNEL_VERSION', `uname -r`.rpartition('.')[0]) -end +CREW_KERNEL_VERSION = if CREW_IN_CONTAINER && ENV['CREW_KERNEL_VERSION'].nil? + case ARCH + when 'i686' + '3.8' + else + '5.10' + end + else + ENV.fetch('CREW_KERNEL_VERSION', `uname -r`.rpartition('.')[0]) + end CREW_LIB_PREFIX = File.join(CREW_PREFIX, ARCH_LIB) CREW_MAN_PREFIX = File.join(CREW_PREFIX, 'share/man') diff --git a/lib/deb_utils.rb b/lib/deb_utils.rb index 3960fb8fa..cd3ef20fa 100644 --- a/lib/deb_utils.rb +++ b/lib/deb_utils.rb @@ -11,25 +11,25 @@ module DebUtils # extract_deb('example.deb', /*/) # extract all files from example.deb # file_found = false - src_fileIO = File.open(file, 'rb') - file_size = src_fileIO.size + src_file_io = File.open(file, 'rb') + file_size = src_file_io.size # get first line of the given file, should be a signature string (`!\n`) if it is a valid deb file - signature = src_fileIO.gets + signature = src_file_io.gets abort 'Malformed archive :/'.lightred unless signature == "!\n" # process each file in archive - while (line = src_fileIO.gets) - if line.chomp.empty? && (file_size == src_fileIO.tell) + while (line = src_file_io.gets) + if line.chomp.empty? && (file_size == src_file_io.tell) # early return if trailing newline is detected break elsif line.chomp.empty? - warn "Unexpected newline in offset #{src_fileIO.tell}, ignoring...".yellow + warn "Unexpected newline in offset #{src_file_io.tell}, ignoring...".yellow next end # read file meta - name, modtime, uid, gid, mode, size, end_char = \ + name, _modtime, _uid, _gid, mode, size, end_char = \ line.scan(/(.{16})(.{12})(.{6})(.{6})(.{8})(.{10})(.{1})/).flatten.map(&:strip) # remove slash suffix from filename (if any) @@ -40,18 +40,18 @@ module DebUtils abort 'Malformed archive :/'.lightred unless end_char == '`' # capture file in archive with given offset bytes (file size) - fileContent = src_fileIO.read(size.to_i) + file_content = src_file_io.read(size.to_i) # filter filename if a target file is specified if target.is_a?(String) && (name == target) # if target is passed as string, write matched file to filesyetem and exit function # write to filesystem - return File.binwrite(name, fileContent, perm: mode.to_i(8)) + return File.binwrite(name, file_content, perm: mode.to_i(8)) elsif target.is_a?(Regexp) && name =~ (target) # if target is passed as regex, write matched file to filesyetem and continue # searching for another matched file until EOF # write to filesystem - File.binwrite(name, fileContent, perm: mode.to_i(8)) + File.binwrite(name, file_content, perm: mode.to_i(8)) file_found = true end end diff --git a/lib/downloader.rb b/lib/downloader.rb index c7ff6703f..1dbf42400 100644 --- a/lib/downloader.rb +++ b/lib/downloader.rb @@ -93,6 +93,7 @@ def http_downloader(uri, filename = File.basename(url), verbose = false) http.request(Net::HTTP::Get.new(uri)) do |response| case when response.is_a?(Net::HTTPSuccess) + # Response is successful, don't abort when response.is_a?(Net::HTTPRedirection) # follow HTTP redirection puts <<~EOT if verbose * Follow HTTP redirection: #{response['Location']} diff --git a/lib/fixup.rb b/lib/fixup.rb index 51e65954d..e3dcb6ec2 100644 --- a/lib/fixup.rb +++ b/lib/fixup.rb @@ -102,7 +102,7 @@ pkg_update_arr.each do |pkg| # Ok to write working device.json File.write "#{CREW_CONFIG_PATH}/device.json", JSON.pretty_generate(JSON.parse(@device.to_json)) puts "#{pkg[:pkg_name].capitalize} renamed to #{pkg[:pkg_rename].capitalize}".lightgreen - rescue StandardError => e + rescue StandardError puts 'Restoring old filelist, directorylist, and device.json...'.lightred FileUtils.mv new_filelist, old_filelist FileUtils.mv new_directorylist, old_directorylist diff --git a/lib/package.rb b/lib/package.rb index 7c5b8856f..50f41c131 100644 --- a/lib/package.rb +++ b/lib/package.rb @@ -30,20 +30,20 @@ class Package attr_accessor :name, :cached_build, :in_build, :build_from_source, :in_upgrade end - def self.load_package(pkgFile, pkgName = File.basename(pkgFile, '.rb')) + def self.load_package(pkg_file, pkg_name = File.basename(pkg_file, '.rb')) # self.load_package: load a package under 'Package' class scope # - className = pkgName.capitalize + class_name = pkg_name.capitalize # read and eval package script under 'Package' class - class_eval(File.read(pkgFile, encoding: Encoding::UTF_8), pkgFile) unless const_defined?("Package::#{className}") + class_eval(File.read(pkg_file, encoding: Encoding::UTF_8), pkg_file) unless const_defined?("Package::#{class_name}") - pkgObj = const_get(className) - pkgObj.name = pkgName + pkg_obj = const_get(class_name) + pkg_obj.name = pkg_name - @crew_current_package = @crew_current_package.nil? ? pkgObj.name : @crew_current_package + @crew_current_package = @crew_current_package.nil? ? pkg_obj.name : @crew_current_package - return pkgObj + return pkg_obj end def self.dependencies @@ -53,11 +53,11 @@ class Package @dependencies ||= {} end - def self.get_deps_list(pkgName = name, return_attr: false, hash: false, include_build_deps: 'auto', include_self: false, - pkgTags: [], verCheck: nil, highlight_build_deps: true, exclude_buildessential: false, top_level: true) - # get_deps_list: get dependencies list of pkgName (current package by default) + def self.get_deps_list(pkg_name = name, return_attr: false, hash: false, include_build_deps: 'auto', include_self: false, + pkg_tags: [], ver_check: nil, highlight_build_deps: true, exclude_buildessential: false, top_level: true) + # get_deps_list: get dependencies list of pkg_name (current package by default) # - # pkgName: package to check dependencies, current package by default + # pkg_name: package to check dependencies, current package by default # return_attr: return package attribute (tags and version lambda) also # hash: return result in nested hash, used by `print_deps_tree` (`bin/crew`) # @@ -65,26 +65,26 @@ class Package # if set to false, all build dependencies will not be returned # if set to "auto" (default), return build dependencies if pre-built binaries not available # - # include_self: include #{pkgName} itself in returned result, only used in recursive calls (see `expandedDeps` below) + # include_self: include #{pkg_name} itself in returned result, only used in recursive calls (see `expanded_deps` below) # highlight_build_deps: include corresponding symbols in return value, you can convert it to actual ascii color codes later # exclude_buildessential: do not insert `buildessential` dependency automatically # # top_level: if set to true, return satisfied dependencies # (dependencies that might be a sub-dependency of a dependency that checked before), - # always set to false if this function is called in recursive loop (see `expandedDeps` below) + # always set to false if this function is called in recursive loop (see `expanded_deps` below) # @checked_list ||= {} # create @checked_list placeholder if not exist # add current package to @checked_list for preventing extra checks - @checked_list.merge!({ pkgName => pkgTags }) + @checked_list.merge!({ pkg_name => pkg_tags }) - pkgObj = load_package("#{CREW_PACKAGES_PATH}/#{pkgName}.rb") - is_source = pkgObj.is_source?(ARCH.to_sym) or pkgObj.build_from_source - deps = pkgObj.dependencies + pkg_obj = load_package("#{CREW_PACKAGES_PATH}/#{pkg_name}.rb") + is_source = pkg_obj.source?(ARCH.to_sym) or pkg_obj.build_from_source + deps = pkg_obj.dependencies # append buildessential to deps if building from source is needed/specified if ((include_build_deps == true) || ((include_build_deps == 'auto') && is_source)) && \ - !pkgObj.no_compile_needed? && \ + !pkg_obj.no_compile_needed? && \ !exclude_buildessential && \ !@checked_list.keys.include?('buildessential') @@ -92,22 +92,22 @@ class Package end # parse dependencies recursively - expandedDeps = deps.uniq.map do |dep, (depTags, verCheck)| + expanded_deps = deps.uniq.map do |dep, (dep_tags, ver_check)| # check build dependencies only if building from source is needed/specified # Do not recursively find :build based build dependencies. - next unless (include_build_deps == true && @crew_current_package == pkgObj.name) || \ - ((include_build_deps == 'auto') && is_source && @crew_current_package == pkgObj.name) || \ - !depTags.include?(:build) + next unless (include_build_deps == true && @crew_current_package == pkg_obj.name) || \ + ((include_build_deps == 'auto') && is_source && @crew_current_package == pkg_obj.name) || \ + !dep_tags.include?(:build) # overwrite tags if parent dependency is a build dependency # (for build dependencies highlighting) - tags = pkgTags.include?(:build) ? pkgTags : depTags + tags = pkg_tags.include?(:build) ? pkg_tags : dep_tags if @checked_list.keys.none?(dep) # check dependency by calling this function recursively next \ send( - __method__, dep, pkgTags: tags, verCheck:, include_self: true, top_level: false, + __method__, dep, pkg_tags: tags, ver_check:, include_self: true, top_level: false, hash:, return_attr:, include_build_deps:, highlight_build_deps:, exclude_buildessential: ) elsif hash && top_level @@ -127,21 +127,21 @@ class Package if hash # the '*' symbol tell `print_deps_tree` (`bin/crew`) to color this package as "build dependency" - if highlight_build_deps && pkgTags.include?(:build) - return { "*#{pkgName}*" => expandedDeps } + if highlight_build_deps && pkg_tags.include?(:build) + return { "*#{pkg_name}*" => expanded_deps } else - return { pkgName => expandedDeps } + return { pkg_name => expanded_deps } end elsif include_self - # return pkgName itself if this function is called as a recursive loop (see `expandedDeps`) + # return pkg_name itself if this function is called as a recursive loop (see `expanded_deps`) if return_attr - return [expandedDeps, { pkgName => [pkgTags, verCheck] }].flatten + return [expanded_deps, { pkg_name => [pkg_tags, ver_check] }].flatten else - return [expandedDeps, pkgName].flatten + return [expanded_deps, pkg_name].flatten end else # if this function is called outside of this function, return parsed dependencies only - return expandedDeps.flatten + return expanded_deps.flatten end end @@ -162,13 +162,13 @@ class Package # add element in "[ name, [ tag1, tag2, ... ] ]" format if dependency.is_a?(Hash) # parse "depends_on name => " - depName, tags = dependency.first + dep_name, tags = dependency.first # convert `tags` to array in case `tags` is a symbol dep_tags += [tags].flatten else # parse "depends_on name" - depName = dependency + dep_name = dependency end # process dependency version range if specified @@ -184,7 +184,7 @@ class Package unless Gem::Version.new(installed_ver).send( operator.to_sym, Gem::Version.new(target_ver) ) # print error if the range is not fulfilled warn <<~EOT.lightred - Package #{name} depends on '#{depName}' (#{operator} #{target_ver}), however version '#{installed_ver}' is currently installed :/ + Package #{name} depends on '#{dep_name}' (#{operator} #{target_ver}), however version '#{installed_ver}' is currently installed :/ Run `crew update && crew upgrade` and try again? EOT @@ -194,7 +194,7 @@ class Package end end - @dependencies.store(depName, [dep_tags, ver_check]) + @dependencies.store(dep_name, [dep_tags, ver_check]) end def self.get_url(architecture) @@ -227,8 +227,8 @@ class Package def self.get_binary_sha256(architecture) = @binary_sha256&.key?(architecture) ? @binary_sha256[architecture] : '' def self.get_extract_dir = "#{name}.#{Time.now.utc.strftime('%Y%m%d%H%M%S')}.dir" - def self.is_binary?(architecture) = !@build_from_source && @binary_sha256 && @binary_sha256.key?(architecture) - def self.is_source?(architecture) = !(is_binary?(architecture) || is_fake?) + def self.binary?(architecture) = !@build_from_source && @binary_sha256 && @binary_sha256.key?(architecture) + def self.source?(architecture) = !(binary?(architecture) || is_fake?) def self.system(*args, **opt_args) @crew_env_options_hash = if no_env_options? diff --git a/lib/progress_bar.rb b/lib/progress_bar.rb index 7980f16b9..c4ae2f82c 100644 --- a/lib/progress_bar.rb +++ b/lib/progress_bar.rb @@ -89,16 +89,16 @@ class ProgressBar uncompleted_length = @bar_width - completed_length # print info and progress bar - @info_before_bar.each_pair do |varName, width| - printf '%*.*s ', width, width, instance_variable_get("@#{varName}") + @info_before_bar.each_pair do |var_name, width| + printf '%*.*s ', width, width, instance_variable_get("@#{var_name}") end # print progress bar with color code print (@bar_char * completed_length).send(*@bar_front_color), (@bar_char * uncompleted_length).send(*@bar_bg_color) - @info_after_bar.each_pair do |varName, width| - printf ' %*.*s', width, width, instance_variable_get("@#{varName}") + @info_after_bar.each_pair do |var_name, width| + printf ' %*.*s', width, width, instance_variable_get("@#{var_name}") end # stop when 100% diff --git a/lib/util.rb b/lib/util.rb index 7616a51e4..e1d896880 100644 --- a/lib/util.rb +++ b/lib/util.rb @@ -4,18 +4,18 @@ class MutableMatrix < Matrix public :'[]=' end -# Returns the edit distance between strings a and b +# Returns the edit distance between strings string1 and string12 # https://en.wikipedia.org/wiki/Edit_distance -def edit_distance(a, b) +def edit_distance(string1, string2) # memo is the matrix for dynamic programming # memo[i, j] = the edit distance between the - # prefixes of a and b of size i and j. - memo = MutableMatrix.zero(a.size + 1, b.size + 1) - a.size.times { |i| memo[i + 1, 0] = i + 1 } - b.size.times { |j| memo[0, j + 1] = j + 1 } - a.size.times do |i| - b.size.times do |j| - memo[i + 1, j + 1] = if a[i] == b[j] + # prefixes of string1 and string2 of size i and j. + memo = MutableMatrix.zero(string1.size + 1, string2.size + 1) + string1.size.times { |i| memo[i + 1, 0] = i + 1 } + string2.size.times { |j| memo[0, j + 1] = j + 1 } + string1.size.times do |i| + string2.size.times do |j| + memo[i + 1, j + 1] = if string1[i] == string2[j] memo[i, j] else [ @@ -27,5 +27,5 @@ def edit_distance(a, b) end end - return memo[a.size, b.size] + return memo[string1.size, string2.size] end diff --git a/packages/icu4c.rb b/packages/icu4c.rb index a46bd865a..4f6d50d56 100644 --- a/packages/icu4c.rb +++ b/packages/icu4c.rb @@ -67,22 +67,22 @@ class Icu4c < Package @oldicuver = %w[72 72.1] @oldicuver.each do |oldver| puts "Finding Packages expecting icu4c version #{oldver} that may need updating:".lightgreen - @fileArray = [] - @libArray = [] + @file_array = [] + @lib_array = [] @nmresults = `nm -A *.so* 2>/dev/null | grep ucol_open_#{oldver}`.chop.split(/$/).map(&:strip) - @nmresults.each { |fileLine| @libArray.push(fileLine.partition(':').first) } - @libArray.each do |f| + @nmresults.each { |file_line| @lib_array.push(file_line.partition(':').first) } + @lib_array.each do |f| @grepresults = `grep "#{f}" #{CREW_META_PATH}/*.filelist`.chomp.gsub('.filelist', '').partition(':').first.gsub( CREW_META_PATH, '' ).split(/$/).map(&:strip) - @grepresults.each { |fileLine| @fileArray.push(fileLine) } + @grepresults.each { |file_line| @file_array.push(file_line) } end # Mozjs contains an internal icu which will not match this version. # Update the following when there is a new version of mozjs. - @fileArray.delete_if { |item| item == 'js102' } - next if @fileArray.empty? + @file_array.delete_if { |item| item == 'js102' } + next if @file_array.empty? - @fileArray.uniq.sort.each do |item| + @file_array.uniq.sort.each do |item| puts item.lightred end end diff --git a/packages/imagemagick.rb b/packages/imagemagick.rb index c3802e3e7..4e22bacb9 100644 --- a/packages/imagemagick.rb +++ b/packages/imagemagick.rb @@ -20,7 +20,7 @@ class Imagemagick < Package puts " 7 = ImageMagick #{Imagemagick7.version}" puts ' 0 = Cancel' - while version = $stdin.gets.chomp.downcase + while (version = $stdin.gets.chomp.downcase) case version when '6' depends_on 'imagemagick6' @@ -30,7 +30,6 @@ class Imagemagick < Package break when '0' abort - break else puts ' Please select from one of the options or enter 0 to cancel.' end diff --git a/packages/jdk.rb b/packages/jdk.rb index ebaa39e71..c8fdb3371 100644 --- a/packages/jdk.rb +++ b/packages/jdk.rb @@ -7,9 +7,9 @@ class Jdk < Package compatibility 'all' # full version number extracted from jdk*.rb recipes - @avail_jdk_ver = Dir["#{CREW_PACKAGES_PATH}/jdk?*.rb"].map do |pkgFile| - jdk_majver = pkgFile[/jdk(\d+).rb/, 1].to_i - pkg = Package.load_package(pkgFile) + @avail_jdk_ver = Dir["#{CREW_PACKAGES_PATH}/jdk?*.rb"].map do |pkg_file| + jdk_majver = pkg_file[/jdk(\d+).rb/, 1].to_i + pkg = Package.load_package(pkg_file) [jdk_majver, pkg.version] end.sort_by do |(jdk_majver, _)| diff --git a/packages/llvm16_dev.rb b/packages/llvm16_dev.rb index 254381255..7b67bf12a 100644 --- a/packages/llvm16_dev.rb +++ b/packages/llvm16_dev.rb @@ -39,11 +39,8 @@ class Llvm16_dev < Package @filelist = File.readlines(@filelist_path, chomp: true).sort @filelist.each do |filename| - if filename.include?('.so') && filename.include?('libLLVM') - next - elsif filename.include?('llvm-strip') - next - end + next if filename.include?('.so') && filename.include?('libLLVM') + next if filename.include?('llvm-strip') @destpath = File.join(CREW_DEST_DIR, filename) @filename_target = File.realpath(filename) diff --git a/packages/llvm17_dev.rb b/packages/llvm17_dev.rb index 5458611a5..85fa7c3d2 100644 --- a/packages/llvm17_dev.rb +++ b/packages/llvm17_dev.rb @@ -42,11 +42,8 @@ class Llvm17_dev < Package @filelist = File.readlines(@filelist_path, chomp: true).sort @filelist.each do |filename| - if filename.include?('.so') && filename.include?('libLLVM') - next - elsif filename.include?('llvm-strip') - next - end + next if filename.include?('.so') && filename.include?('libLLVM') + next if filename.include?('llvm-strip') @destpath = File.join(CREW_DEST_DIR, filename) @filename_target = File.realpath(filename) diff --git a/packages/mongodb.rb b/packages/mongodb.rb index 01356c817..77e5fdbfc 100644 --- a/packages/mongodb.rb +++ b/packages/mongodb.rb @@ -33,21 +33,15 @@ MONGO-TOOLS***'" system "scons -j#{CREW_NPROC} install --ssl --prefix=#{CREW_DEST_PREFIX} --use-new-tools" when 'i686' system "scons -j#{CREW_NPROC} install --ssl --wiredtiger=off --prefix=#{CREW_DEST_PREFIX} --use-new-tools" - when 'armv7l' + when 'armv7l', 'aarch64' + # Arm 64 bit architecture is supported, but Chrome OS aarch64 is 32 bit. + # So, it is required to pretend it is armv7l. # Arm 32 bit architecture is not supported officaially. # Please read https://groups.google.com/forum/#!msg/mongodb-dev/G-kGjZEEam0/VSVB9fYCBAAJ for details system 'cd src/third_party/mozjs-38/; ./get_sources.sh' system 'cd src/third_party/mozjs-38/; ./gen-config.sh arm linux' system 'cd src/third_party/mozjs-38/; rm -rf firefix* mozilla-release' system "scons -j#{CREW_NPROC} install --ssl --wiredtiger=off --mmapv1=on --prefix=#{CREW_DEST_PREFIX} --use-new-tools" - when 'aarch64' - # Arm 64 bit architecture is supported, but Chrome OS aarch64 is 32 bit. - # So, it is required to pretend it is armv7l. - system 'cd src/third_party/mozjs-38/; ./get_sources.sh' - system 'cd src/third_party/mozjs-38/; ./gen-config.sh arm linux' - system 'cd src/third_party/mozjs-38/; rm -rf firefix* mozilla-release' - # Not sure how to pretend it under scons - system "scons -j#{CREW_NPROC} install --ssl --wiredtiger=off --mmapv1=on --prefix=#{CREW_DEST_PREFIX} --use-new-tools" end # guide messages diff --git a/packages/openjdk.rb b/packages/openjdk.rb index 32d2d90e8..3f00ca48a 100644 --- a/packages/openjdk.rb +++ b/packages/openjdk.rb @@ -1,9 +1,9 @@ require 'package' -Dir["#{CREW_PACKAGES_PATH}/openjdk*.rb"].each do |openjdkFile| - next unless openjdkFile =~ /openjdk(\d+).rb/ +Dir["#{CREW_PACKAGES_PATH}/openjdk*.rb"].each do |openjdk_file| + next unless openjdk_file =~ /openjdk(\d+).rb/ - openjdkName = File.basename(openjdkFile, '.rb') - require_relative openjdkName + openjdk_name = File.basename(openjdk_file, '.rb') + require_relative openjdk_name end class Openjdk < Package @@ -11,18 +11,17 @@ class Openjdk < Package homepage 'https://openjdk.org/' key = 1 versions = [] - @openjdkVersions = [] - Dir["#{CREW_PACKAGES_PATH}/openjdk*.rb"].each do |openjdkFile| - next unless openjdkFile =~ /openjdk(\d+).rb/ + @openjdk_versions = [] + Dir["#{CREW_PACKAGES_PATH}/openjdk*.rb"].each do |openjdk_file| + next unless openjdk_file =~ /openjdk(\d+).rb/ - openjdkName = File.basename(openjdkFile, '.rb') - openjdkVer = Object.const_get(openjdkName.capitalize).version.to_s.gsub(/-(\d+)/, '') - openjdkMajVer = openjdkVer.match?(/^1.8/) ? '8' : openjdkVer.partition('.')[0] - @openjdkVersions.push [key, openjdkName, openjdkVer] + openjdk_name = File.basename(openjdk_file, '.rb') + openjdk_ver = Object.const_get(openjdk_name.capitalize).version.to_s.gsub(/-(\d+)/, '') + @openjdk_versions.push [key, openjdk_name, openjdk_ver] key += 1 end - @openjdkVersions.each do |openjdkVer| - versions.push openjdkVer[2] + @openjdk_versions.each do |openjdk_ver| + versions.push openjdk_ver[2] end versions.sort! version "#{versions.first}-#{versions.last}" @@ -34,9 +33,9 @@ class Openjdk < Package def self.preflight if ARGV.include?('install') puts "\n Select version:" - @openjdkVersions.each do |openjdkVer| - option = " #{openjdkVer[0]} = Openjdk #{openjdkVer[2]}" - if File.file? "#{CREW_META_PATH}/#{openjdkVer[1]}.filelist" + @openjdk_versions.each do |openjdk_ver| + option = " #{openjdk_ver[0]} = Openjdk #{openjdk_ver[2]}" + if File.file? "#{CREW_META_PATH}/#{openjdk_ver[1]}.filelist" puts option.lightgreen else puts option @@ -44,15 +43,15 @@ class Openjdk < Package end puts ' 0 = Cancel' - while version = $stdin.gets.chomp.downcase.to_i - version = 0 if version.negative? || version > @openjdkVersions.length + while (version = $stdin.gets.chomp.downcase.to_i) + version = 0 if version.negative? || version > @openjdk_versions.length key = version - 1 case version - when @openjdkVersions[key][0] - if File.file? "#{CREW_META_PATH}/#{@openjdkVersions[key][1]}.filelist" - abort "Package #{@openjdkVersions[key][1]} already installed.".lightgreen + when @openjdk_versions[key][0] + if File.file? "#{CREW_META_PATH}/#{@openjdk_versions[key][1]}.filelist" + abort "Package #{@openjdk_versions[key][1]} already installed.".lightgreen else - depends_on @openjdkVersions[key][1] + depends_on @openjdk_versions[key][1] end break when 0 diff --git a/packages/php.rb b/packages/php.rb index 1b1757843..63c62bbf9 100644 --- a/packages/php.rb +++ b/packages/php.rb @@ -1,27 +1,27 @@ require 'package' -Dir["#{CREW_PACKAGES_PATH}/php*.rb"].each do |phpFile| - next unless phpFile =~ /php(\d+).rb/ +Dir["#{CREW_PACKAGES_PATH}/php*.rb"].each do |php_file| + next unless php_file =~ /php(\d+).rb/ - phpName = File.basename(phpFile, '.rb') - require_relative phpName + php_name = File.basename(php_file, '.rb') + require_relative php_name end class Php < Package description 'PHP is a popular general-purpose scripting language that is especially suited to web development.' homepage 'http://www.php.net/' key = 1 - @phpVersions = [] - Dir["#{CREW_PACKAGES_PATH}/php*.rb"].each do |phpFile| - next unless phpFile =~ /php(\d+).rb/ + @php_versions = [] + Dir["#{CREW_PACKAGES_PATH}/php*.rb"].each do |php_file| + next unless php_file =~ /php(\d+).rb/ - phpName = File.basename(phpFile, '.rb') - phpVer = Object.const_get(phpName.capitalize).version.to_s.gsub(/-(\d+)/, '') - @phpVersions.push [key, phpName, phpVer] - @minPhpVer = phpVer if key == 1 - @maxPhpVer = phpVer + php_name = File.basename(php_file, '.rb') + php_ver = Object.const_get(php_name.capitalize).version.to_s.gsub(/-(\d+)/, '') + @php_versions.push [key, php_name, php_ver] + @min_php_ver = php_ver if key == 1 + @max_php_ver = php_ver key += 1 end - version "#{@minPhpVer}-#{@maxPhpVer}" + version "#{@min_php_ver}-#{@max_php_ver}" license 'PHP-3.01' compatibility 'all' @@ -35,17 +35,17 @@ class Php < Package abort "Enter `crew remove php#{major}#{minor} && crew install php` to install a different version." end puts "\nSelect version:" - @phpVersions.each do |phpVer| - puts "#{phpVer[0]} = PHP #{phpVer[2]}" + @php_versions.each do |php_ver| + puts "#{php_ver[0]} = PHP #{php_ver[2]}" end puts '0 = Cancel' - while version = $stdin.gets.chomp.downcase.to_i - version = 0 if version.negative? || version > @phpVersions.length + while (version = $stdin.gets.chomp.downcase.to_i) + version = 0 if version.negative? || version > @php_versions.length key = version - 1 case version - when @phpVersions[key][0] - depends_on @phpVersions[key][1] + when @php_versions[key][0] + depends_on @php_versions[key][1] break when 0 abort diff --git a/packages/ruby_rubocop.rb b/packages/ruby_rubocop.rb index ac96aa4fa..18fcbc842 100644 --- a/packages/ruby_rubocop.rb +++ b/packages/ruby_rubocop.rb @@ -10,7 +10,7 @@ class Ruby_rubocop < RUBY license 'MIT' compatibility 'all' source_url 'https://github.com/chromebrew/chromebrew/raw/master/.rubocop.yml' - source_sha256 '60e2e5b6e56b6c5b8cd760e47d7abfee2ea920a6fcb6985ece95d6097bc76c07' + source_sha256 '38f6c68465c7224bdd7bcb1b37f7b49283f46def71dc56553069e749afab4b85' depends_on 'libyaml' depends_on 'xdg_base' diff --git a/tools/check.rb b/tools/check.rb index 0f6fb8e07..16982e5bf 100644 --- a/tools/check.rb +++ b/tools/check.rb @@ -175,10 +175,6 @@ task :automake do rest: '| sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr | head -1' end -desc 'Check for new version of autossh' -task :autossh do -end - desc 'Check for new version of aws' task :aws do check_version pkg_name: 'aws', @@ -416,10 +412,6 @@ task :gawk do rest: '| sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr | head -1' end -desc 'Check for new version of gcc' -task :gcc do -end - desc 'Check for new version of gdal' task :gdal do check_version pkg_name: 'gdal', @@ -1018,10 +1010,6 @@ task :postgres do rest: '| sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr | head -1' end -desc 'Check for new version of powerline_fonts' -task :powerline_fonts do -end - desc 'Check for new version of powerstat' task :powerstat do check_version pkg_name: 'powerstat', @@ -1046,10 +1034,6 @@ task :pv do rest: '' end -desc 'Check for new version of pwgen' -task :pwgen do -end - desc 'Check for new version of python27' task :python27 do check_version pkg_name: 'python27', @@ -1260,10 +1244,6 @@ task :unrar do rest: '' end -desc 'Check for new version of unzip' -task :unzip do -end - desc 'Check for new version of vifm' task :vifm do check_version pkg_name: 'vifm',