Skip to content

gbp: Remove use of deprecated pipes module (replace with subprocess)

Removes dependency on pipes. Please do review carefully -- i did not find the documentation (of pipes, subprocess or gbp) gave clear explanation of what was meant to happen.

Closes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084672

gbp/pkg/compressor.py: make Compressor.cmdline() return a list of arguments not a string (because we now use subpocess.Popen which does not need a shell) this avoids (unlikely) shell-quoting issues

gbp/pkg/git.py

  • _archive_comp_submodules: use subprocess.Popen since comp.cmdline() is now an array Also improve the error message
  • _archive_comp_single: use subprocess.Popen to build the 'git archive | gzip -c' pipe

gbp/scripts/buildpackage.py

  • replace pipes.quote with shlex.quote

gbp/scripts/buildpackage_rpm.py

  • improve error message
  • replace pipes.quote with shlex.quote

gbp/scripts/common/buildpackage.py

  • new command git_archive_to_output_dir to build the 'git archive | tar -xf' pipe using subprocess.Popen (it returns both commands because the two users handle errors differently -- not clear why)

  • dump_tree: no longer need to shell-quote paths (this wouldnt have worked for paths containing single quotes anyway)

    use git_archive_to_output_dir improve error messages

gbp/scripts/import_dsc.py

  • use subprocess.Popen in apply_patch. improve error message

Merge request reports

Loading