Dear Mauricio, thanks for the tip. I had to do the following to make it work:
After: bzr add debian/source/format I added: bzr add debian/compat The compat file hold only one line with: 10, as in: echo "10" >compat Without this, it fails to compile, but with this line added, all seems well. I get my .deb package with all the files in good place. In my case I don't need a .configure since there is only a Makefile and that is enough for my project. I also get the source packages signed. I didn't try to push them to launchpad though, and will try that when I have a real fix to package (which is hopefully soon!) I will mark it "fixed for me" when I'll have done that launchpad publication, but so far it seems all good! That being said, and since apparently bzr dropped support for making debian packages, wouldn't it be worth it to rewrite completely this "Packaging guide" with newer tooling (like git?) After all, the task of compiling a simple hello.c, be it with the help of a Makefile, is quite basic! -- You received this bug notification because you are a member of Ubuntu Packaging Guide Team, which is subscribed to Ubuntu Packaging Guide. https://bugs.launchpad.net/bugs/1954595 Title: bzr dh-make crash - no attribute 'initialize_on_transport' Status in Ubuntu Packaging Guide: In Progress Status in breezy-debian package in Ubuntu: Invalid Status in breezy-debian source package in Bionic: Fix Committed Status in breezy-debian source package in Focal: Fix Committed Bug description: [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 <[email protected]>" $ 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 * 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 <[email protected]> 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`: $ 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. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-packaging-guide/+bug/1954595/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~ubuntu-packaging-guide-team Post to : [email protected] Unsubscribe : https://launchpad.net/~ubuntu-packaging-guide-team More help : https://help.launchpad.net/ListHelp

