$ lsb_release -cs
bionic

$ sudo apt install --yes dh-make bzr-builddeb brz-debian
$ bzr whoami "Your Name <n...@example.com>"
$ wget -O hello-2.10.tar.gz "http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz";


Before:

$ dpkg -s brz-debian | grep Version:
Version: 2.8.10

$ bzr dh-make hello 2.10 hello-2.10.tar.gz
Fetching tarball
...
Package prepared in /home/ubuntu/hello
$ rm -rf hello hello_2.10.orig.tar.gz

$ brz dh-make hello 2.10 hello-2.10.tar.gz
brz: ERROR: AttributeError: 'NoneType' object has no attribute 
'initialize_on_transport'
...
$ rm -rf hello hello_2.10.orig.tar.gz


After:

$ sudo apt install --yes brz-debian/bionic-proposed

$ dpkg -s brz-debian | grep Version:
Version: 2.8.10ubuntu1

$ bzr dh-make hello 2.10 hello-2.10.tar.gz
Fetching tarball
...
Package prepared in /home/ubuntu/hello
$ rm -rf hello hello_2.10.orig.tar.gz

$ brz dh-make hello 2.10 hello-2.10.tar.gz
Fetching tarball
...
Package prepared in /home/ubuntu/hello
$ rm -rf hello hello_2.10.orig.tar.gz


** Tags removed: verification-needed-bionic
** Tags added: verification-done-bionic

** Description changed:

  [Impact]
  
   * The `bzr dh-make` step in the Ubuntu Packaging Guide [1]
     fails in Focal.
  
   * The alternative `brz dh-make` (BReeZy instead of BaZaaR)
     fails in Focal and Bionic.
  
   * The `dh-make` subcommand is not available in Impish/later.
     The Guide should be updated and ideally use another tool.
  
  [Test Plan]
  
   * Prepare:
     $ sudo apt-get install dh-make bzr-builddeb brz-debian
     $ bzr whoami "Your Name <n...@example.com>"
     $ wget -O hello-2.10.tar.gz 
"http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz";
  
   * Test bazaar:
     $ bzr dh-make hello 2.10 hello-2.10.tar.gz
  
   * Test breezy:
     $ brz dh-make hello 2.10 hello-2.10.tar.gz
  
-  * On success, remove the generated dir/file for next tests.
+  * Between tests, remove the generated dir/file:
     $ rm -rf hello hello_2.10.orig.tar.gz
  
  [Where problems could occur]
  
   * The changes are restricted to the `dh-make` command
     in bazaar/breezy, which is broken, so it should not
     make things worse.
  
     But, theoretically, `bzr/brz dh-make` is the impact
     surface for other issues/regressions from previous/
     working releases.
  
  [Links]
  
   * [1] https://packaging.ubuntu.com/html/packaging-new-
  software.html#starting-a-package
  
  [Other Info]
  
   * Bionic is not affected in `bzr`, but just in `brz`,
     due to being from 2 source packages: `bzr-builddeb`
     and `breezy-debian`.
  
   * Focal is affected in both `bzr/brz` per transition
     from `bzr-builddeb` to `breezy-debian` (1 src pkg).
  
   * Impish+ are not "affected" as `dh-make` was dropped
     by debian-breezy upstream.
  
   * The root cause of the regression is a dropped python
    `import` in breezy-debian following changes in breezy.
  
     The `bzrdir` import sets ControlDir's default format:
     `controldir.ControlDirFormat._default_format = BzrDirMetaFormat1()`
  
     Once debian-breezy.git's dh_make.py:_get_tree() moved
     from BzrDir. to ControlDir.create_branch_convenience()
     and dropped the bzrlib import, that is not set anymore.
  
     Now, create_branch_convenience() calls create(), calls
     initialize_on_transport() on the default format (None).
  
   commit 08fcab340a2cd4f6bf0f5aec65c304a88023a4f8
   Author: Jelmer Vernooij <jel...@jelmer.uk>
   Date:   Sat Jun 17 14:10:12 2017 +0000
  
       Update for breezy, drop support for older versions of bazaar and
  for debian_bundle.
  
   ...
   diff --git a/dh_make.py b/dh_make.py
   ...
    from ... import (
   -    bzrdir,
   +    controldir,
   ...
   @@ -34,22 +34,22 @@ def _get_tree(package_name):
   ...
   -            create_branch = bzrdir.BzrDir.create_branch_convenience
   ...
   +            create_branch = controldir.ControlDir.create_branch_convenience
   ...
  
+  * Focal needs another patch to fix this in `bzr`:
  
-  * Focal needs another patch to fix this in `bzr`:
- 
-       $ bzr dh-make hello 2.10 hello-2.10.tar.gz
-       Fetching tarball
-       Looking for a way to retrieve the upstream tarball
-       Upstream tarball already exists in build directory, using that
-       brz: ERROR: TypeError: can only concatenate str (not "bytes") to str
+  $ bzr dh-make hello 2.10 hello-2.10.tar.gz
+  Fetching tarball
+  Looking for a way to retrieve the upstream tarball
+  Upstream tarball already exists in build directory, using that
+  brz: ERROR: TypeError: can only concatenate str (not "bytes") to str
  
   * Synthetic test cases for this are provided in comment #1.
  
  [Original Bug Description]
  
  I am following official Ubuntu Packaging Guide:
  https://packaging.ubuntu.com/html/packaging-new-software.html
  
  When I come to the following part, the command crashes:
  
  $ bzr dh-make hello 2.10 hello-2.10.tar.gz
  brz: ERROR: AttributeError: 'NoneType' object has no attribute 
'initialize_on_transport'
  (trackback bellow)
  
  My system:
  
  Description:  Ubuntu 20.04.3 LTS
  Release:      20.04
  dh-make:
    Installed: 2.201903
    Candidate: 2.201903
    Version table:
   *** 2.201903 500
          500 http://cz.archive.ubuntu.com/ubuntu focal/main amd64 Packages
          500 http://cz.archive.ubuntu.com/ubuntu focal/main i386 Packages
          100 /var/lib/dpkg/status
  
  $ bzr dh-make hello 2.10 hello-2.10.tar.gz
  brz: ERROR: AttributeError: 'NoneType' object has no attribute 
'initialize_on_transport'
  
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/breezy/plugins/debian/dh_make.py", 
line 26, in _get_tree
      tree = workingtree.WorkingTree.open(".")
    File "/usr/lib/python3/dist-packages/breezy/workingtree.py", line 201, in 
open
      control = controldir.ControlDir.open(path, _unsupported=_unsupported)
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 706, in 
open
      return klass.open_from_transport(t, probers=probers,
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 736, in 
open_from_transport
      transport, format = _mod_transport.do_catching_redirections(
    File "/usr/lib/python3/dist-packages/breezy/transport/__init__.py", line 
1613, in do_catching_redirections
      return action(transport)
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 724, in 
find_format
      return transport, ControlDirFormat.find_format(transport,
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 1166, in 
find_format
      raise errors.NotBranchError(path=transport.base)
  breezy.errors.NotBranchError: Not a branch: "/home/jkalina/packaging/".
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/breezy/plugins/debian/dh_make.py", 
line 37, in _get_tree
      a_controldir = controldir.ControlDir.open_from_transport(
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 736, in 
open_from_transport
      transport, format = _mod_transport.do_catching_redirections(
    File "/usr/lib/python3/dist-packages/breezy/transport/__init__.py", line 
1613, in do_catching_redirections
      return action(transport)
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 724, in 
find_format
      return transport, ControlDirFormat.find_format(transport,
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 1166, in 
find_format
      raise errors.NotBranchError(path=transport.base)
  breezy.errors.NotBranchError: Not a branch: "/home/jkalina/packaging/hello/".
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/breezy/commands.py", line 1016, in 
exception_to_return_code
      return the_callable(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/breezy/commands.py", line 1202, in 
run_bzr
      ret = run(*run_argv)
    File "/usr/lib/python3/dist-packages/breezy/commands.py", line 759, in 
run_argv_aliases
      return self.run(**all_cmd_args)
    File "/usr/lib/python3/dist-packages/breezy/commands.py", line 784, in run
      return self._operation.run_simple(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/breezy/cleanup.py", line 136, in 
run_simple
      return _do_with_cleanups(
    File "/usr/lib/python3/dist-packages/breezy/cleanup.py", line 166, in 
_do_with_cleanups
      result = func(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/breezy/plugins/debian/cmds.py", line 
1385, in run
      tree = dh_make.import_upstream(
    File "/usr/lib/python3/dist-packages/breezy/plugins/debian/dh_make.py", 
line 83, in import_upstream
      tree = _get_tree(package_name)
    File "/usr/lib/python3/dist-packages/breezy/plugins/debian/dh_make.py", 
line 42, in _get_tree
      branch = create_branch(to_transport.base,
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 660, in 
create_branch_convenience
      controldir = klass.create(base, format, possible_transports)
    File "/usr/lib/python3/dist-packages/breezy/controldir.py", line 859, in 
create
      return format.initialize_on_transport(t)
  AttributeError: 'NoneType' object has no attribute 'initialize_on_transport'
  
  You can report this problem to Bazaar's developers by running
      apport-bug /var/crash/brz.1000.2021-12-12T15:32.crash
  if a bug-reporting window does not automatically appear.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1954595

Title:
  bzr dh-make crash - no attribute 'initialize_on_transport'

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-packaging-guide/+bug/1954595/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to