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 ./*



Hi Daniel and everyone else!

sorry for the late reply.

On Sun, Aug 16, 2020 at 5:09 PM Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx> wrote:
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 \
]]]


I applied the patch to "fedpkg clone --anonymous zsh" and rebuilt, and it seems to have fixed the issue. Thanks!
 
> 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.


Ah, email integration is considered an important feature for issue trackers, but I often resort to using their web interfaces.
 
Cheers,

Daniel


--
Shlomi Fish https://www.shlomifish.org/

Buddha has the Chuck Norris nature.

Please reply to list if it's a mailing list post - http://shlom.in/reply .


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