From d3b622294ddc864cff79217f54bfaf97c73c247d Mon Sep 17 00:00:00 2001 From: Maximilian Downey Twiss Date: Wed, 24 Jul 2024 13:53:50 +1000 Subject: [PATCH] bashdb 5.0-1.1.2-abac -> 5.0-1.1.2-1f1118d (#10201) --- bin/crew | 14 +++--- lib/const.rb | 2 +- manifest/armv7l/b/bashdb.filelist | 5 +-- manifest/i686/b/bashdb.filelist | 5 +-- manifest/x86_64/b/bashdb.filelist | 5 +-- packages/bashdb.rb | 75 +++++++++++++++---------------- 6 files changed, 49 insertions(+), 57 deletions(-) diff --git a/bin/crew b/bin/crew index 83f84fd12..24647fab3 100755 --- a/bin/crew +++ b/bin/crew @@ -438,7 +438,7 @@ def download puts 'No precompiled binary available for your platform, downloading source...' end - git = uri.scheme.eql?('git') + git = true unless @pkg.git_hashtag.to_s.empty? Dir.chdir CREW_BREW_DIR do case File.basename(filename) @@ -497,15 +497,15 @@ def download when /^SKIP$/i Dir.mkdir @extract_dir - when /\.git$/i # Source URLs which end with .git are git sources. - git = true else - Dir.mkdir @extract_dir - downloader url, sha256sum, filename, CREW_VERBOSE + unless git # We don't want to download a git repository as a file. + Dir.mkdir @extract_dir + downloader url, sha256sum, filename, CREW_VERBOSE - puts "#{filename}: File downloaded.".lightgreen + puts "#{filename}: File downloaded.".lightgreen - FileUtils.mv filename, "#{@extract_dir}/#{filename}" + FileUtils.mv filename, "#{@extract_dir}/#{filename}" + end end # Handle git sources. diff --git a/lib/const.rb b/lib/const.rb index 5137a039b..561333158 100644 --- a/lib/const.rb +++ b/lib/const.rb @@ -2,7 +2,7 @@ # Defines common constants used in different parts of crew require 'etc' -CREW_VERSION = '1.49.6' +CREW_VERSION = '1.49.7' # Kernel architecture. KERN_ARCH = Etc.uname[:machine] diff --git a/manifest/armv7l/b/bashdb.filelist b/manifest/armv7l/b/bashdb.filelist index 5bf44b7fe..a2697b1d9 100644 --- a/manifest/armv7l/b/bashdb.filelist +++ b/manifest/armv7l/b/bashdb.filelist @@ -150,6 +150,5 @@ /usr/local/share/bashdb/lib/unescape.sh /usr/local/share/bashdb/lib/validate.sh /usr/local/share/bashdb/set-d-vars.sh -/usr/local/share/info/bashdb.info.gz -/usr/local/share/info/dir.gz -/usr/local/share/man/man1/bashdb.1.gz +/usr/local/share/info/bashdb.info.zst +/usr/local/share/man/man1/bashdb.1.zst diff --git a/manifest/i686/b/bashdb.filelist b/manifest/i686/b/bashdb.filelist index 5bf44b7fe..a2697b1d9 100644 --- a/manifest/i686/b/bashdb.filelist +++ b/manifest/i686/b/bashdb.filelist @@ -150,6 +150,5 @@ /usr/local/share/bashdb/lib/unescape.sh /usr/local/share/bashdb/lib/validate.sh /usr/local/share/bashdb/set-d-vars.sh -/usr/local/share/info/bashdb.info.gz -/usr/local/share/info/dir.gz -/usr/local/share/man/man1/bashdb.1.gz +/usr/local/share/info/bashdb.info.zst +/usr/local/share/man/man1/bashdb.1.zst diff --git a/manifest/x86_64/b/bashdb.filelist b/manifest/x86_64/b/bashdb.filelist index 5bf44b7fe..a2697b1d9 100644 --- a/manifest/x86_64/b/bashdb.filelist +++ b/manifest/x86_64/b/bashdb.filelist @@ -150,6 +150,5 @@ /usr/local/share/bashdb/lib/unescape.sh /usr/local/share/bashdb/lib/validate.sh /usr/local/share/bashdb/set-d-vars.sh -/usr/local/share/info/bashdb.info.gz -/usr/local/share/info/dir.gz -/usr/local/share/man/man1/bashdb.1.gz +/usr/local/share/info/bashdb.info.zst +/usr/local/share/man/man1/bashdb.1.zst diff --git a/packages/bashdb.rb b/packages/bashdb.rb index a89f3fa3a..5fab7ae9b 100644 --- a/packages/bashdb.rb +++ b/packages/bashdb.rb @@ -1,53 +1,48 @@ -require 'package' +require 'buildsystems/autotools' -class Bashdb < Package +class Bashdb < Autotools description 'The Bash Debugger Project is a source-code debugger for bash that follows the gdb command syntax.' homepage 'https://bashdb.sourceforge.net/' - version '5.0-1.1.2-abac' + version '5.0-1.1.2-1f1118d' license 'GPL-2' compatibility 'all' - source_url 'SKIP' - binary_compression 'tar.xz' + source_url 'https://git.code.sf.net/p/bashdb/code' + git_hashtag '1f1118dd73f3d3d450d2b644b5b871d545ea0473' + binary_compression 'tar.zst' binary_sha256({ - aarch64: 'e94ee67c7eb1e025301f2ab16f5588a1903816fccb6b965e83e28e8a4e13c146', - armv7l: 'e94ee67c7eb1e025301f2ab16f5588a1903816fccb6b965e83e28e8a4e13c146', - i686: '2642a9fcf547fda5b85ce5472f2637f897b92e162b0955e6113080047895f99e', - x86_64: '83b0ce54ea38ea941dba8bdbb5ef5f41884fa6abb5faaed5eae00064989f5ae3' + aarch64: 'ed1f102778d653fca7f36933c0e7b0be6170c23b356613fccc3b4b772f134ed5', + armv7l: 'ed1f102778d653fca7f36933c0e7b0be6170c23b356613fccc3b4b772f134ed5', + i686: '70302e22dd1b703ed550c3a15366449f7a9e42b7c62a5cf370e598bf6dc64a17', + x86_64: '468e44a71a027b55dba4f996b5f4b7e548282933d30356f55a3c7ee1b89cdbcd' }) + def self.patch + # There is no way to programatically get the plaintext diff from a sourceforge pr, so we embed https://sourceforge.net/p/bashdb/code/merge-requests/11/ here. + File.write '11.patch', <<~EOF + diff --git a/configure.ac b/configure.ac + index 71cf2b7..eb59941 100644 + --- a/configure.ac + +++ b/configure.ac + @@ -107,7 +107,7 @@ bash_version=`$SH_PROG --version` + [bash_minor=`$SH_PROG -c 'echo ${BASH_VERSINFO[1]}'`] + bash_5_or_greater=no + case "${bash_major}.${bash_minor}" in + - 'OK_BASH_VERS' | '5.0' | '5.1') + + 'OK_BASH_VERS' | '5.0' | '5.1' | '5.2') + bash_5_or_greater=yes + ;; + *) + EOF + system 'git apply 11.patch' + end + depends_on 'bash' depends_on 'texinfo' => :build - def self.build - # No releases yet for Bash 5.1 compatible bashdb, so need git version. - # Turn off git warnings. - system 'git config --global advice.detachedHead false' - system 'git config --global init.defaultBranch main' - @git_dir = 'bashdb_git' - @git_hash = 'abac8ee0db03a62d9dc360640e9e5b9648a8fc12' - @git_url = 'https://git.code.sf.net/p/bashdb/code' - FileUtils.rm_rf(@git_dir) - FileUtils.mkdir_p(@git_dir) - Dir.chdir @git_dir do - system 'git init' - system "git remote add origin #{@git_url}" - system "git fetch --depth 1 origin #{@git_hash}" - system 'git checkout FETCH_HEAD' - system '[ -x configure ] || NOCONFIGURE=1 ./autogen.sh' - system './configure --help' - system "env CFLAGS='-pipe -flto=auto' CXXFLAGS='-pipe -flto=auto' \ - LDFLAGS='-flto=auto' \ - ./configure \ - #{CREW_OPTIONS} \ - --with-bash=#{CREW_PREFIX}/bin/bash \ - --disable-dependency-tracking" - end - end - - def self.install - Dir.chdir @git_dir do - system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install' - end - end + # Setting --with-dbg-main works, but looking at configure.ac reveals that collaboration with upstream is probably required + # i.e. why does setting a variable described as "location of dbg-main.sh" to the location of bashdb-main.inc fix things? + # It seems like DBGR_MAIN is confused with BASHDB_MAIN, among other things. + configure_options "--with-dbg-main=#{CREW_PREFIX}/share/bashdb-main.inc --with-bash=#{CREW_PREFIX}/bin/bash" + run_tests end