Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: "rpmbuild -tb [tab]" or "rpmbuild -ta [tab]" get stuck / do not complete even if there are tarballs in ./*



Shlomi Fish wrote on Tue, 11 Aug 2020 16:57 +0300:
> Hi all!

Morning.

> 
> ```
> shlomif[fcs]:$trunk/fc-solve/B$ pwd
> /home/shlomif/progs/freecell/git/fc-solve/fc-solve/B
> shlomif[fcs]:$trunk/fc-solve/B$ ls *.tar.*
> fc-solve--board-gen--suits-swaps-reports.tar.xz
>  freecell-solver-6.0.1.tar.xz
> freecell-solver-6.0.1.tar.gz
> shlomif[fcs]:$trunk/fc-solve/B$ rpmbuild -tb f[tab]
> ```
> 
> gets stuck. I am on mageia linux v8 with `zsh-5.8-1.mga8`.
> 

So, it's the -t flag with "b" for an argument, so it'll enter the
"build_t" state:

   173	    rpmbuild)
   174	      [[ -prefix -r ]] && pathopts[1]=
   175	      opts+=( $buildopts
   176	        '(-r -t)-b+[build mode (spec file)]:build stage:((p\:execute\ \%prep\ stage l\:do\ a\ list\ check c\:execute\ build\ stage i\:execute\ install\ stage b\:build\ a\ binary\ package a\:build\ binary\ and\ source\ packages s\:build\ source\ package\ only r\:build\ source\ package\ only\ -\ calculate\ build\ requires)):*:build:->build_b'
   177	        '(-b -t)-r+[build mode (source package)]:build stage:((p\:execute\ \%prep\ stage l\:do\ a\ list\ check c\:execute\ build\ stage i\:execute\ install\ stage b\:build\ a\ binary\ package a\:build\ binary\ and\ source\ packages s\:build\ source\ package\ only r\:build\ source\ package\ only\ -\ calculate\ build\ requires)):*:build:->build_b'
   178	        '(-b -r)-t+[build mode (tar file)]:build stage:((p\:execute\ \%prep\ stage l\:do\ a\ list\ check c\:execute\ build\ stage i\:execute\ install\ stage b\:build\ a\ binary\ package a\:build\ binary\ and\ source\ packages s\:build\ source\ package\ only r\:build\ source\ package\ only\ -\ calculate\ build\ requires)):*:build:->build_t'
   179	        --{rebuild,recompile}':*:source rpm file:->build_r'
   180	      )
   181	    ;;

Which will set $tmp:

   283	    build_t) tmp=( '*:tar file:_files -g "*.(#i)tar(.*|)(-.)"' ) ;|

But then nothing reads $tmp.

Does this help?

[[[
diff --git a/Completion/Redhat/Command/_rpm b/Completion/Redhat/Command/_rpm
index e3469245f..85292fa78 100644
--- a/Completion/Redhat/Command/_rpm
+++ b/Completion/Redhat/Command/_rpm
@@ -282,7 +282,7 @@ _rpm () {
     build_r) tmp=( '*:source package:_files -g "*.(#i)src.rpm(-.)"' ) ;|
     build_t) tmp=( '*:tar file:_files -g "*.(#i)tar(.*|)(-.)"' ) ;|
     build_?)
-      _arguments -s -C $buildopts $commonopts $pathopts \
+      _arguments -s -C $buildopts $commonopts $pathopts "${tmp[@]}" \
       ;;
     checksig)
       _arguments -s -C \!-K \
]]]

> One workaround is to prefix the line with "ls " and later remove it.
> 
> Regards,
> 
> -- Shlomi
> 
> P.S: I'd suggest setting up a bug/issue tracker for zsh that tracks
> non-resolved tickets. There are many FOSS, non-FOSS or hosted alternatives.

It's been discussed before.  tl;dr is that we require one with
bidirectional email integration to preserve the existing workflow, but
none has been proposed.

Cheers,

Daniel




Messages sorted by: Reverse Date, Date, Thread, Author