From 29446f7eb6912a8af40df3272d73469a4a0f8312 Mon Sep 17 00:00:00 2001 From: satmandu Date: Wed, 5 May 2021 19:02:16 -0400 Subject: [PATCH 01/20] libdrm -> 2.4.105 (#5730) --- packages/libdrm.rb | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/libdrm.rb b/packages/libdrm.rb index cf927223a..02f7b166d 100644 --- a/packages/libdrm.rb +++ b/packages/libdrm.rb @@ -3,30 +3,30 @@ require 'package' class Libdrm < Package description 'Cross-driver middleware for DRI protocol.' homepage 'https://dri.freedesktop.org' - @_ver = '2.4.104' + @_ver = '2.4.105' version @_ver license 'MIT' compatibility 'all' source_url "https://dri.freedesktop.org/libdrm/libdrm-#{@_ver}.tar.xz" - source_sha256 'd66ad8b5c2441015ac1333e40137bb803c3bde3612ff040286fcc12158ea1bcb' + source_sha256 '1d1d024b7cadc63e2b59cddaca94f78864940ab440843841113fbac6afaf2a46' - binary_url ({ - aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.104_armv7l/libdrm-2.4.104-chromeos-armv7l.tar.xz', - armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.104_armv7l/libdrm-2.4.104-chromeos-armv7l.tar.xz', - i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.104_i686/libdrm-2.4.104-chromeos-i686.tar.xz', - x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.104_x86_64/libdrm-2.4.104-chromeos-x86_64.tar.xz', + binary_url({ + aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.105_armv7l/libdrm-2.4.105-chromeos-armv7l.tpxz', + armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.105_armv7l/libdrm-2.4.105-chromeos-armv7l.tpxz', + i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.105_i686/libdrm-2.4.105-chromeos-i686.tpxz', + x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libdrm/2.4.105_x86_64/libdrm-2.4.105-chromeos-x86_64.tpxz' }) - binary_sha256 ({ - aarch64: 'd92b2cf767f17517a2e90e610749b38d878f126f237bafa027c5f019bd26ab78', - armv7l: 'd92b2cf767f17517a2e90e610749b38d878f126f237bafa027c5f019bd26ab78', - i686: 'ffe58ea6bed51afe09957f581c1490643090b8d6b79c6ae0467d0e7d682afa94', - x86_64: '74ebadab71db82425c8a823e03f9da0f8f44eb692e448c83f8b7d12b69bb76b6', + binary_sha256({ + aarch64: '457114332298eceb569af56d616ad691090c916c30e4aab132787f231e2b10b1', + armv7l: '457114332298eceb569af56d616ad691090c916c30e4aab132787f231e2b10b1', + i686: 'e55e2df9df10d55c9f25a1c4c44adf8f400afc076742377a2717bc7062f01bd7', + x86_64: '868460097f1ac8928b165655b8effbc265134a1205887e3003ed6ec2c0d6a678' }) - depends_on 'libpciaccess' - depends_on 'xorg_lib' - depends_on 'eudev' - depends_on 'libxslt' + depends_on 'libpciaccess' # R + depends_on 'xorg_lib' => :build + depends_on 'eudev' => :build + depends_on 'libxslt' => :build def self.build system "meson #{CREW_MESON_OPTIONS} \ From 86d34dd1cff51dab0ac265315d206495c5bda0ad Mon Sep 17 00:00:00 2001 From: satmandu Date: Wed, 5 May 2021 21:09:06 -0400 Subject: [PATCH 02/20] Keep crew from crashing due to a malformed package file. (#5728) * Keep crew from crashing on reading malformed package files * clean up * don't show duplicate error for syntax error * Fix comparison * Use safe navigation operator. * Use same fix for list compatible * refactor compatibility * bump * add binary_url to package.rb * cleanup empty space * minimal rubocop suggested cleanup * revert code changes which don't work in ruby * simplify list compatible * hide message behind debug flag. * use empty * move generating compatible done message --- bin/crew | 185 ++++++++++++++++++++++++++++++------------------- lib/const.rb | 2 +- lib/package.rb | 4 ++ 3 files changed, 118 insertions(+), 73 deletions(-) diff --git a/bin/crew b/bin/crew index 552b8878e..45a13ca2c 100755 --- a/bin/crew +++ b/bin/crew @@ -32,7 +32,7 @@ Usage: crew reinstall [options] [-k|--keep] [-s|--build-from-source] [-S|--recursive-build] ... crew remove [options] ... crew search [options] [ ...] - crew update [options] + crew update [options] [] crew upgrade [options] [-k|--keep] [-s|--build-from-source] [ ...] crew whatprovides [options] ... @@ -131,15 +131,18 @@ end def print_package(pkgPath, extra = false) pkgName = File.basename pkgPath, '.rb' - set_package pkgName, pkgPath + begin + set_package pkgName, pkgPath + rescue => e + puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + end print_current_package extra end -def print_current_package (extra = false) - pkgName = @pkg.name +def print_current_package(extra = false) status = '' - status = 'installed' if @device[:installed_packages].any? do |elem| elem[:name] == pkgName end - status = 'incompatible' unless @device[:compatible_packages].any? do |elem| elem[:name] == pkgName end + status = 'installed' if @device[:installed_packages].any? do |elem| elem[:name] == @pkg.name end + status = 'incompatible' unless @device[:compatible_packages].any? do |elem| elem[:name] == @pkg.name end case status when 'installed' print @pkg.name.lightgreen @@ -158,8 +161,12 @@ def print_current_package (extra = false) puts "" end -def set_package (pkgName, pkgPath) - require pkgPath +def set_package(pkgName, pkgPath) + begin + require_relative pkgPath + rescue SyntaxError => e + puts "#{e.class}: #{e.message}".red + end @pkg = Object.const_get(pkgName.capitalize) @pkg.build_from_source = true if @opt_recursive @pkg.name = pkgName @@ -175,10 +182,14 @@ def list_available Dir[CREW_PACKAGES_PATH + '*.rb'].each do |filename| notInstalled = true pkgName = File.basename filename, '.rb' - notInstalled = false if File.exists? CREW_META_PATH + pkgName + '.filelist' + notInstalled = false if File.exist? CREW_META_PATH + pkgName + '.filelist' if notInstalled - set_package pkgName, filename - if @pkg.compatibility.include? 'all' or @pkg.compatibility.include? ARCH + begin + set_package pkgName, filename + rescue => e + puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + end + if @pkg.compatibility&.include? 'all' or @pkg.compatibility&.include? ARCH puts pkgName else puts pkgName.lightred @@ -203,39 +214,56 @@ def list_installed @sorted_installed_packages.unshift('Package Version') @first_col_width = @sorted_installed_packages.map(&:split).map(&:first).max_by(&:size).size + 2 @sorted_installed_packages.map(&:strip).each do |line| - puts "%-#{@first_col_width}s%s".lightgreen % line.split + puts "%-#{@first_col_width}s%s".lightgreen % line.split end puts end end def list_compatible(compat = true) + generate_compatible Dir[CREW_PACKAGES_PATH + '*.rb'].each do |filename| pkgName = File.basename filename, '.rb' - set_package pkgName, filename - if compat - if @pkg.compatibility.include? 'all' or @pkg.compatibility.include? ARCH - if File.exist? CREW_META_PATH + pkgName + '.filelist' - puts pkgName.lightgreen - else - puts pkgName - end + if @device[:compatible_packages].any? do |elem| elem[:name] == pkgName end + if ( File.exist? CREW_META_PATH + pkgName + '.filelist' ) && compat + puts pkgName.lightgreen + else + puts pkgName if compat end else - unless @pkg.compatibility.include? 'all' or @pkg.compatibility.include? ARCH - puts pkgName.lightred - end + puts pkgName.lightred end end end 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' - set_package pkgName, filename + begin + set_package pkgName, filename + rescue => e + puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + end puts "Checking #{pkgName} for compatibility.".orange if @opt_verbose - if @pkg.compatibility.include? 'all' or @pkg.compatibility.include? ARCH + # If compatibility property does not exist, check if a binary package + # exists, and if not, see if at least a source url exists. + @compatibility = true + @binary_url = '' + @url = '' + if @pkg.compatibility.nil? + @binary_url = @pkg.get_binary_url(@device[:architecture]) + @url = @pkg.get_url(@device[:architecture]) + if !@binary_url + puts "#{pkgName} is missing compatibility information".red + #puts "url: #{@url}".green + # If no source package is available, then package is not compatible. + @compatibility = false unless @url + puts "#{pkgName} compatibility is #{@compatibility}" if @opt_verbose + end + end + if ( @pkg.compatibility&.include? 'all' or @pkg.compatibility&.include? ARCH or @pkg.compatibility.nil? ) and @compatibility #add to compatible packages puts "Adding #{pkgName} to compatible packages.".lightgreen if @opt_verbose @device[:compatible_packages].push(name: @pkg.name) @@ -247,11 +275,16 @@ def generate_compatible output = JSON.parse @device.to_json file.write JSON.pretty_generate(output) end + puts 'Generating compatible packages done.'.orange if @opt_verbose end def search (pkgName, silent = false) pkgPath = CREW_PACKAGES_PATH + pkgName + '.rb' - return set_package(pkgName, pkgPath) if File.exist?(pkgPath) + begin + return set_package(pkgName, pkgPath) if File.exist?(pkgPath) + rescue => e + puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + end abort "Package #{pkgName} not found. :(".lightred unless silent end @@ -263,17 +296,21 @@ def regexp_search(pkgPat) if results.empty? Dir[CREW_PACKAGES_PATH + '*.rb'].each do |packagePath| packageName = File.basename packagePath, '.rb' - set_package packageName, packagePath + begin + set_package packageName, packagePath + rescue => e + puts "Error with #{pkgName}.rb: #{e}".red unless e.to_s.include?('uninitialized constant') + end if ( @pkg.description =~ /#{pkgPat}/i ) print_current_package @opt_verbose results.push(packageName) end end end - abort "Package #{pkgPat} not found. :(".lightred unless results.length > 0 + abort "Package #{pkgPat} not found. :(".lightred if results.empty? end -def help (pkgName) +def help(pkgName) case pkgName when "build" puts "Build package(s)." @@ -338,6 +375,8 @@ def help (pkgName) puts "Update crew." puts "Usage: crew update" puts "This only updates crew itself. Use `crew upgrade` to update packages." + puts "Usage: crew update compatible" + puts "This updates the crew package compatibility list." when "upgrade" puts "Update package(s)." puts "Usage: crew upgrade [-v|--verbose] [-s|--build-from-source] [ ...]" @@ -354,7 +393,7 @@ def help (pkgName) end end -def const (var) +def const(var) if var value = eval(var) puts "#{var}=#{value}" @@ -428,12 +467,12 @@ end def files (pkgName) filelist = "#{CREW_META_PATH}#{pkgName}.filelist" - if File.exists? filelist + if File.exist? filelist system "sort #{filelist}" lines = File.readlines(filelist).size size = 0 File.readlines(filelist).each do |filename| - size += File.size(filename.chomp) if File.exists? filename.chomp + size += File.size(filename.chomp) if File.exist? filename.chomp end humansize = human_size(size) puts "Total found: #{lines}".lightgreen @@ -452,13 +491,13 @@ def whatprovides (regexPat) found = line[/#{needle}/] if line.ascii_only? if found fileLine = packageName + ': ' + line - if not fileArray.include? fileLine + unless fileArray.include? fileLine fileArray.push(fileLine) end end end end - if not fileArray.empty? + unless fileArray.empty? fileArray.sort.each do |item| puts item end @@ -490,9 +529,7 @@ def update puts 'Package lists, crew, and library updated.' #update compatible packages - puts 'Generating compatible packages...' generate_compatible - puts 'Generating compatible packages done.'.orange if @opt_verbose #check for outdated installed packages puts 'Checking for package updates...' @@ -557,7 +594,7 @@ def upgrade end end - if toBeUpdated.length > 0 + unless toBeUpdated.empty? puts 'Updating packages...' toBeUpdated.each do |package| search package @@ -609,7 +646,7 @@ def download cachefile = '' else puts "Archive file exists in cache".lightgreen if @opt_verbose - if Digest::SHA256.hexdigest( File.read(cachefile) ) == sha256sum then + if Digest::SHA256.hexdigest( File.read(cachefile) ) == sha256sum begin # Hard link cached file if possible. FileUtils.ln cachefile, CREW_BREW_DIR, verbose: @fileutils_verbose @@ -619,8 +656,8 @@ def download FileUtils.cp cachefile, CREW_BREW_DIR, verbose: @fileutils_verbose puts "Archive copied from cache".green if @opt_verbose end - puts "Archive found in cache".lightgreen - return {source: source, filename: filename} + puts "Archive found in cache".lightgreen + return {source: source, filename: filename} else puts 'Cached archive checksum mismatch. 😔 Will download.'.lightred cachefile = '' @@ -708,7 +745,7 @@ def download return {source: source, filename: filename} end -def unpack (meta) +def unpack(meta) target_dir = nil Dir.chdir CREW_BREW_DIR do FileUtils.mkdir_p @extract_dir, verbose: @fileutils_verbose @@ -725,7 +762,7 @@ def unpack (meta) system "ar -p #{meta[:filename]} data.tar.xz | xz -dc#{@verbose} | tar x#{@verbose} -C #{@extract_dir}", exception: true when /\.AppImage$/i puts "Unpacking 'AppImage' archive, this may take a while..." - FileUtils.chmod 0755, meta[:filename], verbose: @fileutils_verbose + FileUtils.chmod 0o755, meta[:filename], verbose: @fileutils_verbose Dir.chdir @extract_dir do system "../#{meta[:filename]} --appimage-extract", exception: true end @@ -740,7 +777,7 @@ def unpack (meta) # Check the number of directories in the archive entries = Dir["#{@extract_dir}/*"] entries = Dir[@extract_dir] if entries.empty? - if entries.length == 0 + if entries.empty? abort "Empty archive: #{meta[:filename]}".lightred elsif entries.length == 1 && File.directory?(entries.first) # Use `extract_dir/dir_in_archive` if there is only one directory. @@ -757,7 +794,7 @@ def unpack (meta) return CREW_BREW_DIR + target_dir end -def build_and_preconfigure (target_dir) +def build_and_preconfigure(target_dir) Dir.chdir target_dir do puts 'Building from source, this may take a while...' @@ -786,21 +823,21 @@ def build_and_preconfigure (target_dir) end end -def pre_install (dest_dir) +def pre_install(dest_dir) Dir.chdir dest_dir do puts 'Performing pre-install...' @pkg.preinstall end end -def post_install (dest_dir) +def post_install(dest_dir) Dir.chdir dest_dir do puts 'Performing post-install...' @pkg.postinstall end end -def compress_doc (dir) +def compress_doc(dir) # check whether crew should compress return if CREW_NOT_COMPRESS || ENV['CREW_NOT_COMPRESS'] || !File.exist?("#{CREW_PREFIX}/bin/compressdoc") @@ -810,7 +847,7 @@ def compress_doc (dir) end end -def prepare_package (destdir) +def prepare_package(destdir) Dir.chdir destdir do # Avoid /usr/local/share/info/dir{.gz} file conflict: # The install-info program maintains a directory of installed @@ -821,7 +858,7 @@ def prepare_package (destdir) FileUtils.rm "#{CREW_DEST_PREFIX}/share/info/dir" if File.exist?("#{CREW_DEST_PREFIX}/share/info/dir") # Remove all perl module files which will conflict - if @pkg.name.include? 'perl_' + if @pkg.name =~ /^perl_/ puts "Removing .packlist and perllocal.pod files to avoid conflicts with other perl packages.".orange system "find #{CREW_DEST_DIR} -type f \\( -name '.packlist' -o -name perllocal.pod \\) -delete" end @@ -869,7 +906,7 @@ def prepare_package (destdir) end end -def strip_find_files (find_cmd, strip_option = "") +def strip_find_files(find_cmd, strip_option = "") # check whether crew should strip return if CREW_NOT_STRIP || ENV['CREW_NOT_STRIP'] || !File.exist?("#{CREW_PREFIX}/bin/llvm-strip") @@ -878,7 +915,7 @@ def strip_find_files (find_cmd, strip_option = "") system "#{find_cmd} | xargs -r sh -c 'for i in \"$0\" \"$@\"; do case \"$(head -c 4 $i)\" in ?ELF|\!?ar) echo \"$i\";; esac ; done' | xargs -r llvm-strip #{strip_option}" end -def strip_dir (dir) +def strip_dir(dir) unless CREW_NOT_STRIP || ENV['CREW_NOT_STRIP'] Dir.chdir dir do # Strip libraries with -S @@ -894,7 +931,7 @@ def strip_dir (dir) end end -def install_package (pkgdir) +def install_package(pkgdir) Dir.chdir pkgdir do # install filelist, dlist and binary files puts 'Performing install...' @@ -956,7 +993,7 @@ def expand_dependencies end def resolve_dependencies - abort "Package #{@pkg.name} is not compatible with your device architecture (#{ARCH}) :/".lightred unless @pkg.compatibility.include?('all') or @pkg.compatibility.include?(ARCH) + abort "Package #{@pkg.name} is not compatible with your device architecture (#{ARCH}) :/".lightred unless @device[:compatible_packages].any? do |elem| elem[:name] == @pkg.name end @dependencies = [] if @pkg.build_from_source @@ -1109,7 +1146,7 @@ def resolve_dependencies_and_build puts "#{@pkg.name} is built!".lightgreen end -def build_package (pwd) +def build_package(pwd) abort 'It is not possible to build a fake package'.lightred if @pkg.is_fake? abort 'It is not possible to build without source'.lightred if !@pkg.is_source?(@device[:architecture]) @@ -1137,7 +1174,7 @@ def build_package (pwd) archive_package pwd end -def archive_package (pwd) +def archive_package(pwd) unless ENV['CREW_USE_PIXZ'] == '1' pkg_name = "#{@pkg.name}-#{@pkg.version}-chromeos-#{@device[:architecture]}.tar.xz" Dir.chdir CREW_DEST_DIR do @@ -1154,7 +1191,7 @@ def archive_package (pwd) system "sha256sum #{pwd}/#{pkg_name} > #{pwd}/#{pkg_name}.sha256" end -def remove (pkgName) +def remove(pkgName) #make sure the package is actually installed unless @device[:installed_packages].any? { |pkg| pkg[:name] == pkgName } || File.exist?("#{CREW_META_PATH}#{pkgName}.filelist") @@ -1209,7 +1246,7 @@ def remove (pkgName) puts "#{pkgName.capitalize} removed!".lightgreen end -def build_command (args) +def build_command(args) args[""].each do |name| @pkgName = name search @pkgName @@ -1219,7 +1256,7 @@ def build_command (args) end end -def download_command (args) +def download_command(args) args[""].each do |name| @pkgName = name search @pkgName @@ -1228,7 +1265,7 @@ def download_command (args) end end -def const_command (args) +def const_command(args) unless args[""].empty? args[""].each do |name| const name @@ -1238,7 +1275,7 @@ def const_command (args) end end -def files_command (args) +def files_command(args) args[""].each do |name| @pkgName = name search @pkgName @@ -1247,7 +1284,7 @@ def files_command (args) end end -def help_command (args) +def help_command(args) if args[""] help args[""] else @@ -1256,7 +1293,7 @@ def help_command (args) end end -def install_command (args) +def install_command(args) args[""].each do |name| @pkgName = name search @pkgName @@ -1267,7 +1304,7 @@ def install_command (args) end end -def list_command (args) +def list_command(args) if args['available'] list_available elsif args['installed'] @@ -1279,7 +1316,7 @@ def list_command (args) end end -def postinstall_command (args) +def postinstall_command(args) args[""].each do |name| @pkgName = name search @pkgName, true @@ -1291,7 +1328,7 @@ def postinstall_command (args) end end -def reinstall_command (args) +def reinstall_command(args) args[""].each do |name| @pkgName = name search @pkgName @@ -1306,13 +1343,13 @@ def reinstall_command (args) end end -def remove_command (args) +def remove_command(args) args[""].each do |name| remove name end end -def search_command (args) +def search_command(args) args[""].each do |name| regexp_search name end.empty? and begin @@ -1320,11 +1357,15 @@ def search_command (args) end end -def update_command (args) - update +def update_command(args) + if args[''] + generate_compatible + else + update + end end -def upgrade_command (args) +def upgrade_command(args) args[""].each do |name| @pkgName = name search @pkgName @@ -1336,13 +1377,13 @@ def upgrade_command (args) end end -def whatprovides_command (args) +def whatprovides_command(args) args[""].each do |name| whatprovides name end end -def is_command (name) +def is_command(name) return false if name =~ /^[-<]/ return true end diff --git a/lib/const.rb b/lib/const.rb index 4717c51b1..01bfe59e3 100644 --- a/lib/const.rb +++ b/lib/const.rb @@ -1,6 +1,6 @@ # Defines common constants used in different parts of crew -CREW_VERSION = '1.9.3' +CREW_VERSION = '1.9.4' ARCH_ACTUAL = `uname -m`.strip # This helps with virtualized builds on aarch64 machines diff --git a/lib/package.rb b/lib/package.rb index b0e38de11..924ded78c 100644 --- a/lib/package.rb +++ b/lib/package.rb @@ -45,6 +45,10 @@ class Package end end + def self.get_binary_url (architecture) + return @binary_url.has_key?(architecture) ? @binary_url[architecture] : nil + end + def self.get_sha256 (architecture) if !@build_from_source and @binary_sha256 and @binary_sha256.has_key?(architecture) return @binary_sha256[architecture] From 2d3712a661e3631a3aeefd8722cb80b3dc013212 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Thu, 6 May 2021 07:46:34 -0500 Subject: [PATCH 03/20] Add keepassxc package (#5731) --- packages/keepassxc.rb | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 packages/keepassxc.rb diff --git a/packages/keepassxc.rb b/packages/keepassxc.rb new file mode 100644 index 000000000..d69ab611d --- /dev/null +++ b/packages/keepassxc.rb @@ -0,0 +1,38 @@ +require 'package' + +class Keepassxc < Package + description 'KeePass Cross-Platform Community Edition, the free, open source, light-weight and easy-to-use password manager.' + homepage 'https://keepassxc.org/' + version '2.6.4' + license 'GPL-2 or GPL-3' + compatibility 'x86_64' + source_url 'https://github.com/keepassxreboot/keepassxc/releases/download/2.6.4/KeePassXC-2.6.4-x86_64.AppImage' + source_sha256 '5f9657440eb0740ad65e7fc3c80524247a863315528705b8fb79df6755329483' + + binary_url ({ + }) + binary_sha256 ({ + }) + + depends_on 'sommelier' + + def self.build + keepass = <<~EOF + #!/bin/bash + cd #{CREW_PREFIX}/share/keepassxc + ./AppRun "$@" + EOF + IO.write('keepassxc.sh', keepass) + end + + def self.install + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/keepassxc" + FileUtils.install 'keepassxc.sh', "#{CREW_DEST_PREFIX}/bin/keepassxc", mode: 0755 + FileUtils.mv Dir.glob('*'), "#{CREW_DEST_PREFIX}/share/keepassxc" + end + + def self.postinstall + puts "\nType 'keepassxc' to get started.\n".lightblue + end +end From 71f495c5b82680f654195348a590b102209b895a Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Thu, 6 May 2021 07:47:06 -0500 Subject: [PATCH 04/20] Add crossmobile package (#5732) --- packages/crossmobile.rb | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 packages/crossmobile.rb diff --git a/packages/crossmobile.rb b/packages/crossmobile.rb new file mode 100644 index 000000000..0933eab27 --- /dev/null +++ b/packages/crossmobile.rb @@ -0,0 +1,39 @@ +require 'package' + +class Crossmobile < Package + description 'CrossMobile is a software tool to develop truly native multi-platform cross mobile applications for iOS, Android, Windows Mobile and Desktop' + homepage 'https://crossmobile.org/' + version '3.4.0' + license 'LGPL-3.0' + compatibility 'x86_64' + source_url 'https://github.com/crossmob/CrossMobile/releases/download/v3.4.0/CrossMobile-3.4.0.x86_64.appimage' + source_sha256 '295f65a8ef3d115061749370ec0a9eb68424e9b96d208acd91aa18818e3fa134' + + binary_url ({ + }) + binary_sha256 ({ + }) + + depends_on 'jdk8' + depends_on 'sommelier' + + def self.build + cross = <<~EOF + #!/bin/bash + cd #{CREW_PREFIX}/share/crossmobile + ./AppRun "$@" + EOF + IO.write('crossmobile.sh', cross) + end + + def self.install + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/crossmobile" + FileUtils.install 'crossmobile.sh', "#{CREW_DEST_PREFIX}/bin/crossmobile", mode: 0755 + FileUtils.mv Dir.glob('*'), "#{CREW_DEST_PREFIX}/share/crossmobile" + end + + def self.postinstall + puts "\nType 'crossmobile' to get started.\n".lightblue + end +end From 488b60b9c92f78b91cd04856180e15982837a8bf Mon Sep 17 00:00:00 2001 From: satmandu Date: Thu, 6 May 2021 12:25:11 -0400 Subject: [PATCH 05/20] crew deps (#5733) * crew deps * Add deps * bump * Add deps to readme --- README.md | 1 + bin/crew | 37 ++++++++++++++++++++++++++----------- lib/const.rb | 2 +- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 35c4ee4c9..0c1922d03 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ Where available commands are: * build - `build package(s) from source and store the archive and checksum in the current working directory` * const - `display constant(s)` + * deps - `display dependencies of package(s)` * download - `download package(s) to CREW_BREW_DIR (/usr/local/tmp/crew by default), but don't install` * files - `display installed files of package(s)` * help - `get information about command usage` diff --git a/bin/crew b/bin/crew index 45a13ca2c..aa3b67b4f 100755 --- a/bin/crew +++ b/bin/crew @@ -23,6 +23,7 @@ Chromebrew - Package manager for Chrome OS http://skycocker.github.io/chromebrew Usage: crew build [options] [-k|--keep] ... crew const [options] [ ...] + crew deps [options] ... crew download [options] ... crew files [options] ... crew help [] @@ -73,7 +74,7 @@ ENV["XZ_OPT"] = ENV['CREW_XZ_OPT'] || "-7e -T #{CREW_NPROC}" CURL = ENV['CURL'] || 'curl' # All available crew commands. -@cmds = ["build", "const", "download", "files", "help", "install", "list", "postinstall", "reinstall", "remove", "search", "update", "upgrade", "whatprovides"] +@cmds = ["build", "const", "deps", "download", "files", "help", "install", "list", "postinstall", "reinstall", "remove", "search", "update", "upgrade", "whatprovides"] # Parse arguments using docopt require_relative '../lib/docopt' @@ -322,6 +323,9 @@ def help(pkgName) puts "Display constant(s)." puts "Usage: crew const [ ...]" puts "If no constants are provided, all constants will be displayed." + when "deps" + puts "Display dependencies of package(s)." + puts "Usage: crew deps [ ...]" when "download" puts "Download package(s)." puts "Usage: crew download [-v|--verbose] [ ...]" @@ -982,7 +986,7 @@ def expand_dependencies # check all dependencies recursively check_deps.each do |dep| # build unique dependencies list - unless @dependencies.include?(dep) || dep == @pkgName + unless @dependencies&.include?(dep) || dep == @pkgName @dependencies << dep search dep, true push_dependencies @@ -1256,15 +1260,6 @@ def build_command(args) end end -def download_command(args) - args[""].each do |name| - @pkgName = name - search @pkgName - print_current_package @opt_verbose - download - end -end - def const_command(args) unless args[""].empty? args[""].each do |name| @@ -1275,6 +1270,26 @@ def const_command(args) end end +def deps_command(args) + args[""].each do |name| + @dependencies = [] + @pkgName = name + search @pkgName + print_current_package + expand_dependencies + puts @dependencies + end +end + +def download_command(args) + args[""].each do |name| + @pkgName = name + search @pkgName + print_current_package @opt_verbose + download + end +end + def files_command(args) args[""].each do |name| @pkgName = name diff --git a/lib/const.rb b/lib/const.rb index 01bfe59e3..5033ecd84 100644 --- a/lib/const.rb +++ b/lib/const.rb @@ -1,6 +1,6 @@ # Defines common constants used in different parts of crew -CREW_VERSION = '1.9.4' +CREW_VERSION = '1.9.5' ARCH_ACTUAL = `uname -m`.strip # This helps with virtualized builds on aarch64 machines From a66b40d16dc5450a52eb74418e777bcf1630ab14 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 15:44:15 -0500 Subject: [PATCH 06/20] Add blender package (#5735) --- packages/blender.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 packages/blender.rb diff --git a/packages/blender.rb b/packages/blender.rb new file mode 100644 index 000000000..3a67c4dcf --- /dev/null +++ b/packages/blender.rb @@ -0,0 +1,29 @@ +require 'package' + +class Blender < Package + description 'Blender is the free and open source 3D creation suite.' + homepage 'https://www.blender.org/' + version '2.92.0' + license 'GPL-2' + compatibility 'x86_64' + source_url 'https://mirror.clarkson.edu/blender/release/Blender2.92/blender-2.92.0-linux64.tar.xz' + source_sha256 '2cd17ad6e9d6c241ac14b84ad6e72b507aeec979da3d926b1a146e88e0eb3eb4' + + binary_url ({ + }) + binary_sha256 ({ + }) + + depends_on 'sommelier' + + def self.install + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/blender" + FileUtils.mv Dir.glob('*'), "#{CREW_DEST_PREFIX}/share/blender" + FileUtils.ln_s "#{CREW_PREFIX}/share/blender/blender", "#{CREW_DEST_PREFIX}/bin/blender" + end + + def self.postinstall + puts "\nType 'blender' to get started.\n".lightblue + end +end From c956384b674a350bfddf034fe50bbea91a8a774c Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 15:45:38 -0500 Subject: [PATCH 07/20] Add mysql package (#5734) Rubyize symlinks to binaries --- packages/mysql.rb | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 packages/mysql.rb diff --git a/packages/mysql.rb b/packages/mysql.rb new file mode 100644 index 000000000..0f7f7e3b2 --- /dev/null +++ b/packages/mysql.rb @@ -0,0 +1,75 @@ +require 'package' + +class Mysql < Package + description "MySQL Community Edition is a freely downloadable version of the world's most popular open source database" + homepage 'https://www.mysql.com/' + version '8.0.24' + license 'GPL-2' + compatibility 'x86_64' + source_url 'https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.17-x86_64-minimal.tar.xz' + source_sha256 'ea7e67582b2a6816f9d74c162416cf3b97b539d39aef77e3e251e834ce6c06d5' + + binary_url ({ + }) + binary_sha256 ({ + }) + + depends_on 'numactl' + + def self.install + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/mysql" + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share" + FileUtils.mv 'man/', "#{CREW_DEST_PREFIX}/share" + FileUtils.mv Dir.glob('*'), "#{CREW_DEST_PREFIX}/mysql" + Dir["#{CREW_DEST_PREFIX}/mysql/bin/*"].map do |f| + f.sub!("#{CREW_DEST_DIR}", '') + FileUtils.ln_s f, "#{CREW_DEST_PREFIX}/bin/" + end + FileUtils.ln_s "#{CREW_PREFIX}/mysql/support-files/mysql.server", "#{CREW_DEST_PREFIX}/bin/mysql.server" + FileUtils.ln_s "#{CREW_PREFIX}/mysql/support-files/mysql_multi.server", "#{CREW_DEST_PREFIX}/bin/mysql_multi.server" + end + + def self.postinstall + unless Dir.exists? "#{CREW_PREFIX}/mysql/data" + system "mysqld --initialize-insecure --user=#{USER}" + end + puts + puts "WARNING: This is an insecure install without a root password!".orange + puts + puts "To lockdown permissions, execute the following:".orange + puts "mysql_secure_installation".orange + puts + puts "To reset the root password, see https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html#resetting-permissions-unix".lightblue + puts + puts "To start/stop mysqld, execute the following:".lightblue + puts "mysql.server start - to start mysqld".lightblue + puts "mysql.server stop - to stop mysqld".lightblue + puts + puts "To start mysqld on login, execute the following:".lightblue + puts "echo 'if [ -f #{CREW_PREFIX}/bin/mysql.server ]; then' >> ~/.bashrc".lightblue + puts "echo ' #{CREW_PREFIX}/bin/mysql.server start' >> ~/.bashrc".lightblue + puts "echo 'fi' >> ~/.bashrc".lightblue + puts "source ~/.bashrc".lightblue + puts + puts "Databases are stored in #{CREW_PREFIX}/mysql/data.".lightblue + puts + puts "MySQL Server documentation: https://dev.mysql.com/doc/refman/8.0/en/".lightblue + puts + end + + def self.remove + data_dir = "#{CREW_PREFIX}/mysql" + if Dir.exist? "#{data_dir}" + puts "\nWARNING: This will delete all your databases!".orange + print "Would you like to remove #{data_dir}? [y/N] " + case $stdin.getc + when 'y', 'Y' + FileUtils.rm_rf "#{data_dir}" + puts "#{data_dir} removed.".lightred + else + puts "#{data_dir} saved.".lightgreen + end + end + end +end From e6c4ce603dbd513f6f51c5f5e32ff1e83db8e33c Mon Sep 17 00:00:00 2001 From: satmandu Date: Fri, 7 May 2021 16:46:51 -0400 Subject: [PATCH 08/20] pipewire 0.3.27 (#5738) --- packages/pipewire.rb | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/pipewire.rb b/packages/pipewire.rb index c316625e4..b823a0d75 100644 --- a/packages/pipewire.rb +++ b/packages/pipewire.rb @@ -3,24 +3,24 @@ require 'package' class Pipewire < Package description 'PipeWire is a project that aims to greatly improve handling of audio and video under Linux.' homepage 'https://pipewire.org' - @_ver = '0.3.26' + @_ver = '0.3.27' version @_ver license 'LGPL-2.1+' compatibility 'all' source_url "https://github.com/PipeWire/pipewire/archive/#{@_ver}.tar.gz" - source_sha256 '05cc9d25de45290c025da5da1b94fc705bddacd93cf3690d0b2988c1ac501ee1' + source_sha256 '657db1b9a29ae17a9f1d9782a45bda2ba5a893fef55e1ca26453e8f7f2d4e64e' binary_url({ - aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.26_armv7l/pipewire-0.3.26-chromeos-armv7l.tar.xz', - armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.26_armv7l/pipewire-0.3.26-chromeos-armv7l.tar.xz', - i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.26_i686/pipewire-0.3.26-chromeos-i686.tar.xz', - x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.26_x86_64/pipewire-0.3.26-chromeos-x86_64.tar.xz' + aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.27_armv7l/pipewire-0.3.27-chromeos-armv7l.tpxz', + armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.27_armv7l/pipewire-0.3.27-chromeos-armv7l.tpxz', + i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.27_i686/pipewire-0.3.27-chromeos-i686.tpxz', + x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/pipewire/0.3.27_x86_64/pipewire-0.3.27-chromeos-x86_64.tpxz' }) binary_sha256({ - aarch64: 'd539d5a392ed6bd4189610ea5cdc42c87a1ba238dec635883634f9f962a56a4d', - armv7l: 'd539d5a392ed6bd4189610ea5cdc42c87a1ba238dec635883634f9f962a56a4d', - i686: '43bc1175d6f75755fc8fb3abe4b9e473d7ccc3593f1c53f504a2eee7b19b84c2', - x86_64: '27bdc741fe0b577e3cbfa5ef4f419f23f18cf9a06f04df815249f58dbabe5d28' + aarch64: '87a66ffe7fe0454081a49ab17bb583f7b58bf529cc9914019540939551c065ea', + armv7l: '87a66ffe7fe0454081a49ab17bb583f7b58bf529cc9914019540939551c065ea', + i686: 'c3a2fe495e7c279638c3ec6d3b937259ac609e8d31e8087bd6ff37ba8b2d53dd', + x86_64: '7f9dd0164d68f19feb219d42996315ed8a6a4c9aa6265bdd83e1293f965a769e' }) depends_on 'alsa_lib' # R From a3ea55944edbd52c9255f71b9b77e778386a4412 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 18:04:19 -0500 Subject: [PATCH 09/20] Update mysqltuner from 1.7.7 to 1.7.21 (#5739) --- packages/mysqltuner.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/mysqltuner.rb b/packages/mysqltuner.rb index 627070701..16e248823 100644 --- a/packages/mysqltuner.rb +++ b/packages/mysqltuner.rb @@ -3,17 +3,17 @@ require 'package' class Mysqltuner < Package description 'MySQLTuner is a script written in Perl that allows you to review a MySQL installation quickly and make adjustments to increase performance and stability.' homepage 'https://github.com/major/MySQLTuner-perl' - version '1.7.7' + version '1.7.21' license 'GPL-3+' compatibility 'all' - source_url 'https://raw.githubusercontent.com/major/MySQLTuner-perl/1c51f442822a170fb2eaafb088f22c8f4baacd9d/README.md' - source_sha256 '381d2200b487b4e8839d863ee300b761d5d0a8ee4eac5a8c51ef9bbd640ae6e6' + source_url 'SKIP' depends_on 'perl' def self.install - system "curl -#LO https://raw.githubusercontent.com/major/MySQLTuner-perl/1c51f442822a170fb2eaafb088f22c8f4baacd9d/mysqltuner.pl" - abort 'Checksum mismatch. :/ Try again.'.lightred unless Digest::SHA256.hexdigest( File.read('mysqltuner.pl') ) == '26ad914fff4afca883a6a4d2bc69c142316144888c45e46e0fa56ad2b5a98a34' - system "install -Dm755 mysqltuner.pl #{CREW_DEST_PREFIX}/bin/mysqltuner" + system "curl -#LO https://raw.githubusercontent.com/major/MySQLTuner-perl/1.7.21/mysqltuner.pl" + abort 'Checksum mismatch. :/ Try again.'.lightred unless Digest::SHA256.hexdigest( File.read('mysqltuner.pl') ) == 'dd982083478a604ca0ada434b1b7d0323aa7c8302f4731d25a93cf0f77c46a27' + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" + FileUtils.install 'mysqltuner.pl', "#{CREW_DEST_PREFIX}/bin/mysqltuner", mode: 0o755 end end From eba8d02ccd42e979f57e10f79e368dc7223a598d Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 18:04:37 -0500 Subject: [PATCH 10/20] Update telegram from 2.5.1 to 2.7.4 (#5740) --- packages/telegram.rb | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/telegram.rb b/packages/telegram.rb index c9efd3c4f..987a2b8be 100644 --- a/packages/telegram.rb +++ b/packages/telegram.rb @@ -3,22 +3,23 @@ require 'package' class Telegram < Package description "Telegram is a messaging app with a focus on speed and security, it's super-fast, simple and free." homepage 'https://telegram.org/' - version '2.5.1' + version '2.7.4' license 'BSD, LGPL-2+ and GPL-3-with-openssl-exception' compatibility 'x86_64' - source_url 'https://updates.tdesktop.com/tlinux/tsetup.2.5.1.tar.xz' - source_sha256 '939275a84498dedb1a33ac3f0242b0211548ddb087f9801518db92c5d6dc0151' + source_url 'https://updates.tdesktop.com/tlinux/tsetup.2.7.4.tar.xz' + source_sha256 '3ea84c51f58654780a84cc56e1643cf9979e85657b6aab80cb2a69a237de8e6e' def self.build - system "cat <<'EOF'> telegram -#!/bin/bash -QT_QPA_PLATFORM=wayland-egl DISPLAY= WAYLAND_DISPLAY=wayland-0 Telegram \"\$@\" -EOF" + telegram = <<~EOF + #!/bin/bash + QT_QPA_PLATFORM=wayland-egl DISPLAY= WAYLAND_DISPLAY=wayland-0 Telegram "$@" + EOF + IO.write('telegram', telegram) end def self.install - FileUtils.install 'Telegram', "#{CREW_DEST_PREFIX}/bin/Telegram", mode: 0755 - FileUtils.install 'telegram', "#{CREW_DEST_PREFIX}/bin/telegram", mode: 0755 + FileUtils.install 'Telegram', "#{CREW_DEST_PREFIX}/bin/Telegram", mode: 0o755 + FileUtils.install 'telegram', "#{CREW_DEST_PREFIX}/bin/telegram", mode: 0o755 end def self.postinstall From 975b93818b4b5ca0fe529365b3db39ad003019fd Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 18:05:00 -0500 Subject: [PATCH 11/20] Update symfony from 4.22.0 to 4.23.5 (#5741) --- packages/symfony.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/symfony.rb b/packages/symfony.rb index 84d6af58b..303aa4f12 100644 --- a/packages/symfony.rb +++ b/packages/symfony.rb @@ -3,7 +3,7 @@ require 'package' class Symfony < Package description 'Symfony is a set of PHP Components, a Web Application framework' homepage 'https://symfony.com/' - version '4.22.0' + version '4.23.5' license 'Symfony-cli-EULA' compatibility 'all' source_url 'SKIP' @@ -14,18 +14,18 @@ class Symfony < Package case ARCH when 'aarch64', 'armv7l' arch = 'arm' - sha256 = '046556c80a484a099163d1234f3ee7d6ee87ac4f6b227f56310f8c3a9141da9c' + sha256 = 'abc16666f20b022ec4eeb2fddcc968e622ab7c656c69e34d41acd0ae51a99a28' when 'i686' arch = '386' - sha256 = '07d48c26714b8c6775a0b079d33ac386c142ff0bd91e1c6647ad6b1a76b532ee' + sha256 = '65398740b4da78d312d6ecd94e8adfa4ea5d934398b18dec66e1d995332d419e' when 'x86_64' arch = 'amd64' - sha256 = '99cb1834bba250ccfaf0ad0689c124977d36ae03a7805d78e36c79b8da0da118' + sha256 = '43aef5fd5d45f4602697cad016eff504cb68ec6ad1271c7b1e2a089e1eedd05a' end symfony_file = "symfony_linux_#{arch}" system "curl -#LO https://github.com/symfony/cli/releases/download/v#{version}/#{symfony_file}" abort 'Checksum mismatch. :/ Try again.'.lightred unless Digest::SHA256.hexdigest( File.read(symfony_file) ) == sha256 - system "install -Dm755 #{symfony_file} #{CREW_DEST_PREFIX}/bin/symfony" + FileUtils.install symfony_file, "#{CREW_DEST_PREFIX}/bin/symfony", mode: 0o755 end def self.postinstall From 501da8e2e739427866753b7f35ddfdbebaf22789 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 19:33:52 -0500 Subject: [PATCH 12/20] Update composer from 2.0.11 to 2.0.13 (#5742) --- packages/composer.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/composer.rb b/packages/composer.rb index a5dbbe8c5..bb24c9868 100644 --- a/packages/composer.rb +++ b/packages/composer.rb @@ -3,11 +3,10 @@ require 'package' class Composer < Package description 'Dependency Manager for PHP' homepage 'https://getcomposer.org/' - version '2.0.11' + version '2.0.13' license 'MIT' compatibility 'all' - source_url "https://github.com/composer/composer/archive/#{version}.tar.gz" - source_sha256 '025d332242b696ec5d10dcc4d9ad9460321d9740b09e967849017f3e67d3fcb2' + source_url 'SKIP' depends_on 'php74' unless File.exists? "#{CREW_PREFIX}/bin/php" depends_on 'xdg_base' @@ -24,8 +23,8 @@ class Composer < Package def self.install system "curl -Ls -o composer https://github.com/composer/composer/releases/download/#{version}/composer.phar" - abort 'Checksum mismatch. :/ Try again.'.lightred unless Digest::SHA256.hexdigest( File.read('composer') ) == 'd6eee0d4637f4bd82bdae098fceda300dcb3ec35bf502604fbe7510933b8f952' - system "install -Dm755 composer #{CREW_DEST_PREFIX}/bin/composer" + abort 'Checksum mismatch. :/ Try again.'.lightred unless Digest::SHA256.hexdigest( File.read('composer') ) == '116fdf07cc926af646635a6abc92d88aff7b02a5dc36538f81c50a7d27366dbf' + FileUtils.install 'composer', "#{CREW_DEST_PREFIX}/bin/composer", mode: 0o755 end def self.postinstall From c341cb48d928c47b6a0301921d9dc1de4d5a6e7c Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 19:34:08 -0500 Subject: [PATCH 13/20] Update atom from 1.55.0 to 1.56.0 (#5743) --- packages/atom.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/atom.rb b/packages/atom.rb index 7a404cd29..50229e3db 100644 --- a/packages/atom.rb +++ b/packages/atom.rb @@ -3,13 +3,13 @@ require 'package' class Atom < Package description 'The hackable text editor' homepage 'https://atom.io/' - @_ver = '1.55.0' + @_ver = '1.56.0' version @_ver license 'MIT' compatibility 'x86_64' source_url "https://github.com/atom/atom/releases/download/v#{@_ver}/atom-amd64.deb" - source_sha256 'e1c650fcfdfc09aafef0ecfe041d254ad9007fb3ca797dafd21c8333fd0b1340' + source_sha256 '2010c8a782bbc1aa330a9b89135204bfb056d2e3a3c98d12b0fb5f4aae4d6ee7' depends_on 'fakeroot' depends_on 'gtk3' From 663cdbf8720aaa4e2fe88124c214d3e9e7473f4f Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 19:34:33 -0500 Subject: [PATCH 14/20] Update brave from 1.22.67 to 1.26.11 (#5744) --- packages/brave.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/brave.rb b/packages/brave.rb index 57880596e..4099a59e4 100644 --- a/packages/brave.rb +++ b/packages/brave.rb @@ -3,11 +3,11 @@ require 'package' class Brave < Package description 'Next generation Brave browser for macOS, Windows, Linux, Android.' homepage 'https://brave.com/' - version '1.22.67' + version '1.26.11' license 'MPL-2' compatibility 'x86_64' - source_url "https://github.com/brave/brave-browser/releases/download/v#{version}/brave-browser-#{version}-linux-amd64.zip" - source_sha256 'd71ac5a00ad701a002958059c5bd86920e5965dc1ac857a7e0abf432e29fce8c' + source_url "https://github.com/brave/brave-browser/releases/download/v#{version}/brave-browser-nightly-#{version}-linux-amd64.zip" + source_sha256 '545bd0a9fbb20649837db333a8d945ab18cf8f6e70564368c4810b4ec66b59ac' depends_on 'gtk3' depends_on 'xdg_base' From aa2aaeedf3e57738db85a35eb512c6c6ba0ab80c Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 19:34:50 -0500 Subject: [PATCH 15/20] Update firefox from 87.0 to 88.0.1 (#5746) --- packages/firefox.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/firefox.rb b/packages/firefox.rb index f4222c8c0..582e46ee6 100644 --- a/packages/firefox.rb +++ b/packages/firefox.rb @@ -3,16 +3,16 @@ require 'package' class Firefox < Package description 'Mozilla Firefox (or simply Firefox) is a free and open-source web browser' homepage 'https://www.mozilla.org/en-US/firefox/' - version '87.0' + version '88.0.1' license 'MPL-2.0, GPL-2 and LGPL-2.1' compatibility 'i686,x86_64' case ARCH when 'i686' source_url "https://archive.mozilla.org/pub/firefox/releases/#{version}/linux-i686/en-US/firefox-#{version}.tar.bz2" - source_sha256 '9127aee106dd9f09fac0c3cb89c5d75553384da4ec9be5943b60a5f55f31fccc' + source_sha256 '6f4e0157594d46d10edc3f73e401e31338356d731b8a2673a0726609c675be42' when 'x86_64' source_url "https://archive.mozilla.org/pub/firefox/releases/#{version}/linux-x86_64/en-US/firefox-#{version}.tar.bz2" - source_sha256 '3c9207bee0a998634c4fd12293acfae207d16508749ad405bf1e8717d06acf02' + source_sha256 'cd2dcac9fb08ab63738b35b143696ce05f42ead465003e6164f7a090ffc72416' end depends_on 'atk' From 37078c8900d17e050225e5d6e10af23d8121ec1a Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 19:36:44 -0500 Subject: [PATCH 16/20] Update codium from 1.54.3 to 1.55.2 (#5745) --- packages/codium.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/codium.rb b/packages/codium.rb index ca8b27a57..2b4e6088a 100644 --- a/packages/codium.rb +++ b/packages/codium.rb @@ -3,17 +3,17 @@ require 'package' class Codium < Package description 'VSCodium is Open Source Software Binaries of VSCode with a community-driven default configuration.' homepage 'https://vscodium.com/' - version '1.54.3' + version '1.55.2' license 'MIT' compatibility 'aarch64,armv7l,x86_64' case ARCH when 'aarch64', 'armv7l' source_url "https://github.com/VSCodium/vscodium/releases/download/#{version}/VSCodium-linux-armhf-#{version}.tar.gz" - source_sha256 '9932c84944e256e3191c62f368257ebd3024db0737817bb44b16b140729851e2' + source_sha256 'a263e1c363ca8701ac73cc16c93b10577d49779f3a63ac6cbc506314d41548fb' @arch = 'arm' when 'x86_64' source_url "https://github.com/VSCodium/vscodium/releases/download/#{version}/VSCodium-linux-x64-#{version}.tar.gz" - source_sha256 '104130e3353d30c080af49d1c5530e373552a363b8c3118a544318546be7e794' + source_sha256 'fd937fe77c461f55e99d86144314a99b18a116900811a3d332f2ea97148dad8a' @arch = 'x64' end From dca5227c09e758c611b5d98bb6ba16b7e876f766 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 23:36:36 -0500 Subject: [PATCH 17/20] Fix install errors in composer, symfony and telegram (#5752) --- packages/composer.rb | 1 + packages/symfony.rb | 1 + packages/telegram.rb | 1 + 3 files changed, 3 insertions(+) diff --git a/packages/composer.rb b/packages/composer.rb index bb24c9868..ac6dcab66 100644 --- a/packages/composer.rb +++ b/packages/composer.rb @@ -24,6 +24,7 @@ class Composer < Package def self.install system "curl -Ls -o composer https://github.com/composer/composer/releases/download/#{version}/composer.phar" abort 'Checksum mismatch. :/ Try again.'.lightred unless Digest::SHA256.hexdigest( File.read('composer') ) == '116fdf07cc926af646635a6abc92d88aff7b02a5dc36538f81c50a7d27366dbf' + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" FileUtils.install 'composer', "#{CREW_DEST_PREFIX}/bin/composer", mode: 0o755 end diff --git a/packages/symfony.rb b/packages/symfony.rb index 303aa4f12..7e219767d 100644 --- a/packages/symfony.rb +++ b/packages/symfony.rb @@ -25,6 +25,7 @@ class Symfony < Package symfony_file = "symfony_linux_#{arch}" system "curl -#LO https://github.com/symfony/cli/releases/download/v#{version}/#{symfony_file}" abort 'Checksum mismatch. :/ Try again.'.lightred unless Digest::SHA256.hexdigest( File.read(symfony_file) ) == sha256 + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" FileUtils.install symfony_file, "#{CREW_DEST_PREFIX}/bin/symfony", mode: 0o755 end diff --git a/packages/telegram.rb b/packages/telegram.rb index 987a2b8be..aa7fefe19 100644 --- a/packages/telegram.rb +++ b/packages/telegram.rb @@ -18,6 +18,7 @@ class Telegram < Package end def self.install + FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin" FileUtils.install 'Telegram', "#{CREW_DEST_PREFIX}/bin/Telegram", mode: 0o755 FileUtils.install 'telegram', "#{CREW_DEST_PREFIX}/bin/telegram", mode: 0o755 end From 4c12d87afbdfe3c2efc41f409032da44f1498c26 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Fri, 7 May 2021 23:37:02 -0500 Subject: [PATCH 18/20] Remove firefox dependency from codium (#5748) --- packages/codium.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/codium.rb b/packages/codium.rb index 2b4e6088a..3cfd86b8a 100644 --- a/packages/codium.rb +++ b/packages/codium.rb @@ -24,7 +24,6 @@ class Codium < Package depends_on 'cairo' depends_on 'cups' depends_on 'dbus' - depends_on 'firefox' depends_on 'gdk_pixbuf' depends_on 'glib' depends_on 'gtk3' From 0de05b001ae188b4e127d3c5ab25d8c797ba0a8b Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Sat, 8 May 2021 11:34:13 -0500 Subject: [PATCH 19/20] Symbols are not quoted (#5755) --- packages/epiphany.rb | 8 ++++---- packages/evince.rb | 6 +++--- packages/libgxps.rb | 4 ++-- packages/opus.rb | 2 +- packages/pixz.rb | 2 +- packages/spice_gtk.rb | 12 ++++++------ 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/epiphany.rb b/packages/epiphany.rb index 7477434de..30b5a3310 100644 --- a/packages/epiphany.rb +++ b/packages/epiphany.rb @@ -25,12 +25,12 @@ class Epiphany < Package depends_on 'atk' depends_on 'cairo' => :build - depends_on 'docbook_xml' => ':build' + depends_on 'docbook_xml' => :build depends_on 'freetype' => :build depends_on 'gcr' depends_on 'gdk_pixbuf' depends_on 'glib' - depends_on 'gobject_introspection' => ':build' + depends_on 'gobject_introspection' => :build depends_on 'gtk3' depends_on 'help2man' => :build depends_on 'json_glib' @@ -40,9 +40,9 @@ class Epiphany < Package depends_on 'libportal' depends_on 'libsecret' depends_on 'libsoup2' - depends_on 'lsb_release' => ':build' + depends_on 'lsb_release' => :build depends_on 'pango' - depends_on 'startup_notification' => ':build' + depends_on 'startup_notification' => :build depends_on 'webkit2gtk_4' def self.build diff --git a/packages/evince.rb b/packages/evince.rb index 5e93e5461..169d05732 100644 --- a/packages/evince.rb +++ b/packages/evince.rb @@ -28,15 +28,15 @@ class Evince < Package depends_on 'atk' depends_on 'cairo' depends_on 'djvulibre' - depends_on 'docbook_xsl' => ':build' + depends_on 'docbook_xsl' => :build depends_on 'gdk_pixbuf' depends_on 'glib' depends_on 'gnome_desktop' - depends_on 'gobject_introspection' => ':build' + depends_on 'gobject_introspection' => :build depends_on 'gst_plugins_base' depends_on 'gstreamer' depends_on 'gtk3' - depends_on 'gtk_doc' => ':build' + depends_on 'gtk_doc' => :build depends_on 'libarchive' depends_on 'libgxps' depends_on 'libhandy' diff --git a/packages/libgxps.rb b/packages/libgxps.rb index 5fe7b4a7e..61c347e1c 100644 --- a/packages/libgxps.rb +++ b/packages/libgxps.rb @@ -30,8 +30,8 @@ class Libgxps < Package depends_on 'fontconfig' depends_on 'freetype' depends_on 'glib' - depends_on 'gobject_introspection' => ':build' - depends_on 'gtk_doc' => ':build' + depends_on 'gobject_introspection' => :build + depends_on 'gtk_doc' => :build depends_on 'lcms' depends_on 'libarchive' depends_on 'libjpeg' diff --git a/packages/opus.rb b/packages/opus.rb index 0fe9d1edf..315c5a824 100644 --- a/packages/opus.rb +++ b/packages/opus.rb @@ -25,7 +25,7 @@ class Opus < Package x86_64: '5300c3c8b5e6072025f118fc82d916a786caaf58d00c2651542561fbd86208ae' }) - depends_on 'doxygen' => ':build' + depends_on 'doxygen' => :build def self.build system "env #{CREW_ENV_OPTIONS} \ diff --git a/packages/pixz.rb b/packages/pixz.rb index 5c69706fe..3169aacc2 100644 --- a/packages/pixz.rb +++ b/packages/pixz.rb @@ -26,7 +26,7 @@ class Pixz < Package }) depends_on 'libarchive' - depends_on 'asciidoc' => ':build' + depends_on 'asciidoc' => :build depends_on 'xzutils' def self.build diff --git a/packages/spice_gtk.rb b/packages/spice_gtk.rb index 0ff20d865..2e240c74e 100644 --- a/packages/spice_gtk.rb +++ b/packages/spice_gtk.rb @@ -32,12 +32,12 @@ class Spice_gtk < Package depends_on 'usbredir' depends_on 'gst_plugins_base' depends_on 'gst_plugins_good' - depends_on 'gobject_introspection' => ':build' - depends_on 'pyparsing' => ':build' - depends_on 'pygments' => ':build' - depends_on 'spice_protocol' => ':build' - depends_on 'usbutils' => ':build' - depends_on 'vala' => ':build' + depends_on 'gobject_introspection' => :build + depends_on 'pyparsing' => :build + depends_on 'pygments' => :build + depends_on 'spice_protocol' => :build + depends_on 'usbutils' => :build + depends_on 'vala' => :build def self.build system "meson \ From bd5278c74768b04520d42847f92957d599248aa7 Mon Sep 17 00:00:00 2001 From: Ed Reel Date: Sat, 8 May 2021 11:34:55 -0500 Subject: [PATCH 20/20] Add missing flex dependency to binutils (#5754) Add binutils, flex and py3_pip to core packages Remove crew_profile_base and binutils from buildessential --- install.sh | 4 ++-- packages/binutils.rb | 2 ++ packages/buildessential.rb | 8 ++------ tools/core_packages.txt | 3 +++ 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index 56beaa0b4..2ac84c6f0 100755 --- a/install.sh +++ b/install.sh @@ -21,8 +21,8 @@ EARLY_PACKAGES="gcc10 brotli c_ares libcyrussasl libidn2 libmetalink libnghttp2 libtirpc libunistring openldap rtmpdump zstd ncurses ca_certificates libyaml ruby libffi \ openssl nettle krb5 p11kit libtasn1 gnutls curl git icu4c" -LATE_PACKAGES="crew_profile_base less most manpages filecmd mawk readline perl pcre pcre2 python27 python3 \ -sed bz2 lz4 lzip unzip xzutils zip" +LATE_PACKAGES="binutils crew_profile_base less most manpages filecmd mawk readline perl pcre pcre2 \ +python27 python3 py3_pip sed bz2 lz4 lzip unzip xzutils zip" ARCH="$(uname -m)" diff --git a/packages/binutils.rb b/packages/binutils.rb index 4ff849be1..537013b8a 100644 --- a/packages/binutils.rb +++ b/packages/binutils.rb @@ -23,6 +23,8 @@ class Binutils < Package x86_64: '784c5e9bfd884c411708ae3c2ee1c852022f411794ff109fb7d37e91f124037b' }) + depends_on 'flex' + def self.patch system 'filefix' system "sed -i 's,scriptdir = \$(tooldir)/lib,scriptdir = \$(tooldir)/#{ARCH_LIB},g' ld/Makefile.am" diff --git a/packages/buildessential.rb b/packages/buildessential.rb index 6323a26fe..d4eff90e1 100644 --- a/packages/buildessential.rb +++ b/packages/buildessential.rb @@ -3,19 +3,15 @@ require 'package' class Buildessential < Package description 'A collection of tools essential to compile and build software.' homepage '' - version '1.13' + version '1.14' license 'GPL-3+' compatibility 'all' is_fake - # Some package installs won't work without this - depends_on 'crew_profile_base' - - #install first to get ldconfig + # install first to get ldconfig depends_on 'glibc' depends_on 'gcc10' - depends_on 'binutils' depends_on 'gmp' depends_on 'mpfr' depends_on 'mpc' diff --git a/tools/core_packages.txt b/tools/core_packages.txt index eb0032f59..52daf742f 100644 --- a/tools/core_packages.txt +++ b/tools/core_packages.txt @@ -1,5 +1,6 @@ acl attr +binutils brotli bz2 c_ares @@ -7,6 +8,7 @@ ca_certificates crew_profile_base curl filecmd +flex gcc10 gdbm gettext @@ -44,6 +46,7 @@ p11kit pcre pcre2 perl +py3_pip python27 python3 readline