Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 705018 - dev-vcs/breezy - Breezy is a python3 compatible fork of Bazaar (dev-vcs/bzr)
Summary: dev-vcs/breezy - Breezy is a python3 compatible fork of Bazaar (dev-vcs/bzr)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Default Assignee for New Packages
URL: https://www.breezy-vcs.org/
Whiteboard:
Keywords:
Depends on:
Blocks: 726300
  Show dependency tree
 
Reported: 2020-01-09 03:57 UTC by Haelwenn (lanodan) Monnier
Modified: 2021-09-25 07:01 UTC (History)
9 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
dev-vcs/breezy ebuild (breezy-3.0.2_p4.ebuild,3.33 KB, text/plain)
2020-02-29 06:56 UTC, mehw
Details
dev-vcs/breezy metadata.xml (metadata.xml,658 bytes, text/xml)
2020-02-29 06:57 UTC, mehw
Details
dev-vcs/breezy Manifest (Manifest,309 bytes, text/plain)
2020-02-29 06:57 UTC, mehw
Details
dev-vcs/breezy files (emacs site file) (70breezy-gentoo.el,75 bytes, text/x-emacs-lisp)
2020-02-29 06:59 UTC, mehw
Details
virtual/bzr ebuild (bzr-0.ebuild,593 bytes, text/plain)
2020-02-29 07:04 UTC, mehw
Details
virtual/bzr metadata.xml (metadata.xml,365 bytes, text/xml)
2020-02-29 07:04 UTC, mehw
Details
app-portage/layman ebuild (depends on virtual/bzr) (layman-2.4.2-r1.ebuild,2.12 KB, text/plain)
2020-02-29 07:29 UTC, mehw
Details
dev-vcs/breezy-3.0.2_p5.ebuild (breezy-3.0.2_p5.ebuild,3.33 KB, text/plain)
2020-04-16 03:18 UTC, mehw
Details
dev-vcs/breezy Manifest (Manifest,618 bytes, text/plain)
2020-04-16 03:20 UTC, mehw
Details
missing bzr.eclass (bzr.eclass,8.98 KB, text/plain)
2020-06-07 23:16 UTC, mehw
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Haelwenn (lanodan) Monnier 2020-01-09 03:57:35 UTC
dev-vcs/bzr is depending on python 2 which have been EOL in 2020-01-01, Breezy should be used as a replacement (which distros like Fedora and Debian have done).

Reproducible: Always
Comment 1 mehw 2020-02-29 06:56:10 UTC
Created attachment 616558 [details]
dev-vcs/breezy ebuild

This is a draft ebuild for dev-vcs/breezy.

Other attachments will follow. In particular virtual/bzr to install dev-vcs/breezy as a drop-in replacement of dev-vcs/bzr.

Please, amend as needed.


NOTES:

Some symlinks are created to use `bzr` rather than `brz` (see dosym in the ebuild).

I didn't test any PYTHON_REQ_USE values (dev-vcs/bzr uses PYTHON_REQ_USE="threads,ssl,xml").

As of now, all tests are run when the test useflag is used. Some of them may skip/fail. I'm aware of only dev-python/testtools as requirement.

It would also be possible to use the already built html docs (without installing dev-python/sphinx and dev-python/sphinx-epytext, and not calling `emake docs`), or to install just the txt docs when the doc useflag isn't used.

dev-python/cython is not necessary for release tarballs, as they already contain the C files that Cython is needed to create. I tried to manually remove the C files, to force the use of Cython, and I got for some of them an error asking to use the option '--allow-python-fallback': `python setup.py install build_ext --allow-python-fallback`


WARNINGS DURING COMPILATION:
 
brz: warning: some compiled extensions could not be loaded; see ``brz help missing-extensions``

warning: no files found matching 'tools/bzr_epydoc'
warning: no files found matching 'breezy/plugins/grep/.bzrignore'
warning: no files found matching 'breezy/plugins/grep/NEWS'


DEVELOPERS NOTES:

https://www.breezy-vcs.org/developers/testing.html

By default Breezy uses apport to report program crashes. In developing Breezy it’s normal and expected to have it crash from time to time, at least because a test failed if for no other reason.

Therefore you should probably add debug_flags = no_apport to your breezy.conf file (in ~/.config/breezy/ on Unix), so that failures just print a traceback rather than writing a crash file.
Comment 2 mehw 2020-02-29 06:57:03 UTC
Created attachment 616560 [details]
dev-vcs/breezy metadata.xml
Comment 3 mehw 2020-02-29 06:57:55 UTC
Created attachment 616562 [details]
dev-vcs/breezy Manifest
Comment 4 mehw 2020-02-29 06:59:03 UTC
Created attachment 616566 [details]
dev-vcs/breezy files (emacs site file)
Comment 5 mehw 2020-02-29 07:04:03 UTC
Created attachment 616568 [details]
virtual/bzr ebuild

Programs depending on dev-vcs/bzr should rather use virtual/bzr, which allows to install dev-vcs/breezy as a drop-in replacement of dev-vcs/bzr.
Comment 6 mehw 2020-02-29 07:04:35 UTC
Created attachment 616570 [details]
virtual/bzr metadata.xml
Comment 7 mehw 2020-02-29 07:29:54 UTC
Created attachment 616574 [details]
app-portage/layman ebuild (depends on virtual/bzr)

This is also a draft ebuild that may be used as reference.

I didn't test for compatibility with dev-vcs/breezy, though.

I did a simple grep to find ebuilds depending on (or mentioning) dev-vcs/bzr.

This is to prepare alternative ebuilds depending on virtual/bzr (to allow dev-vcs/breezy as a drop-in replacement).


$ find /usr/portage/ -type f -name '*.ebuild' | xargs -I {} grep -H 'dev-vcs/bzr' {}

/usr/portage/app-portage/layman/layman-2.4.2-r1.ebuild:      bazaar? ( dev-vcs/bzr )
/usr/portage/app-portage/layman/layman-2.4.2-r2.ebuild:      bazaar? ( dev-vcs/bzr )
/usr/portage/app-portage/layman/layman-9999.ebuild:  bazaar? ( dev-vcs/bzr )
/usr/portage/dev-python/vcstools/vcstools-0.1.42.ebuild:             dev-vcs/bzr
/usr/portage/dev-qt/qt-creator/qt-creator-4.10.1.ebuild:     bazaar? ( dev-vcs/bzr )
/usr/portage/dev-qt/qt-creator/qt-creator-4.8.2.ebuild:      bazaar? ( dev-vcs/bzr )
/usr/portage/dev-qt/qt-creator/qt-creator-9999.ebuild:       bazaar? ( dev-vcs/bzr )
/usr/portage/dev-util/rosinstall/rosinstall-0.7.8.ebuild:            dev-vcs/bzr
/usr/portage/dev-util/rosinstall/rosinstall-9999.ebuild:             dev-vcs/bzr
/usr/portage/dev-util/wstool/wstool-0.1.18.ebuild:           dev-vcs/bzr
/usr/portage/dev-util/wstool/wstool-9999.ebuild:             dev-vcs/bzr
/usr/portage/dev-vcs/bzr-rewrite/bzr-rewrite-0.6.3.ebuild:   !<dev-vcs/bzr-svn-0.6"
/usr/portage/dev-vcs/bzr-rewrite/bzr-rewrite-0.6.3.ebuild:   !dev-vcs/bzr-rebase"
/usr/portage/dev-vcs/bzr-rewrite/bzr-rewrite-0.6.3.ebuild:DEPEND=">=dev-vcs/bzr-2.5.0
/usr/portage/dev-vcs/bzr-xmloutput/bzr-xmloutput-0.8.8-r3.ebuild:            dev-vcs/bzr[${PYTHON_MULTI_USEDEP}]
/usr/portage/dev-vcs/bzrtools/bzrtools-2.5.ebuild:RDEPEND=">=dev-vcs/bzr-2.4"
/usr/portage/dev-vcs/cvs2svn/cvs2svn-2.4.0-r1.ebuild:        bazaar? ( >=dev-vcs/bzr-1.13 )
/usr/portage/dev-vcs/cvs2svn/cvs2svn-2.5.0.ebuild:   bazaar? ( >=dev-vcs/bzr-1.13 )
/usr/portage/kde-apps/dolphin-plugins-bazaar/dolphin-plugins-bazaar-19.08.3.ebuild:  dev-vcs/bzr
/usr/portage/kde-apps/dolphin-plugins-bazaar/dolphin-plugins-bazaar-19.12.2.ebuild:  dev-vcs/bzr
/usr/portage/sys-apps/etckeeper/etckeeper-1.18.6.ebuild:     elog "  dev-vcs/bzr"
/usr/portage/sys-apps/etckeeper/etckeeper-1.18.6.ebuild:     elog "For dev-vcs/bzr you need to enable 'bazaar' useflag."
/usr/portage/sys-apps/etckeeper/etckeeper-1.18.6.ebuild:DEPEND="bazaar? ( dev-vcs/bzr )"
/usr/portage/sys-apps/etckeeper/etckeeper-1.18.8.ebuild:     elog "  dev-vcs/bzr"
/usr/portage/sys-apps/etckeeper/etckeeper-1.18.8.ebuild:     elog "For dev-vcs/bzr you need to enable 'bazaar' useflag."
/usr/portage/sys-apps/etckeeper/etckeeper-1.18.8.ebuild:DEPEND="bazaar? ( dev-vcs/bzr[${PYTHON_USEDEP}] )"
/usr/portage/x11-misc/zim/zim-0.71.1-r1.ebuild:              elog "    dev-vcs/bzr"
/usr/portage/x11-misc/zim/zim-0.72.0.ebuild:         elog "    dev-vcs/bzr"
/usr/portage/x11-misc/zim/zim-0.72.1-r1.ebuild:              elog "    dev-vcs/bzr"
Comment 8 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2020-03-27 10:55:48 UTC
Is it 100% API compatible or not?
Comment 9 Ulrich Müller gentoo-dev 2020-03-28 15:31:57 UTC
(In reply to Michał Górny from comment #8)
> Is it 100% API compatible or not?

Going by this mailing list posting, it isn't:
https://lists.ubuntu.com/archives/bazaar/2019q4/076358.html

So presumably, reverse dependencies will have to be checked one by one.
Comment 10 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2020-03-28 21:45:52 UTC
Very well.  I've masked dev-vcs/bzr now.  If someone wants to package breezy instead, be my guest.  I've added individual package.use.mask entries for the few packages optionally using bzr, so you can test them one by one and unmask once they're fixed to work with brz.
Comment 11 mehw 2020-04-16 03:18:35 UTC
Created attachment 633128 [details]
dev-vcs/breezy-3.0.2_p5.ebuild

Bump version.
Comment 12 mehw 2020-04-16 03:20:31 UTC
Created attachment 633130 [details]
dev-vcs/breezy Manifest

Update Manifest file.
Comment 13 Ulrich Müller gentoo-dev 2020-04-22 10:18:02 UTC
(In reply to mehw from comment #11)
> Created attachment 633128 [details]
> dev-vcs/breezy-3.0.2_p5.ebuild
> 
> Bump version.

Would you be willing to be the (proxied) maintainer of this package? It would be greatly appreciated. In that case, we would need either of these:
- "git format-patch" of the commits adding the package, and update of its reverse dependencies, or
- a pull request on github.

If not, we would at least need a copyright sign-off for your ebuild, so that someone else can pick it up. (You can post the "Signed-off-by:" line as a comment in this bug.)

See GLEP 76 for details:
https://www.gentoo.org/glep/glep-0076.html#certificate-of-origin
Comment 14 mehw 2020-05-03 01:49:05 UTC
I'd like to do both.

I could be a proxied maintainer until the ebuild is taken under the wing of an experienced Gentoo maintainer, and in the meantime do a ("Signed-off-by:") PR on github about the ebuild and its reverse dependencies.

I just need some time to organize.

PS: Should I change anything in the metadata.xml file?
Comment 15 Ulrich Müller gentoo-dev 2020-05-03 06:18:15 UTC
(In reply to mehw from comment #14)
> PS: Should I change anything in the metadata.xml file?

Yes, list yourself and proxy-maint as maintainers.
Comment 16 mehw 2020-06-07 23:16:57 UTC
Created attachment 643870 [details]
missing bzr.eclass

In the meantime... here is the missing bzr.eclass recovered from the portage tree...

https://github.com/gentoo-mirror/gentoo/commit/79a3d7f7c3ca5f1af64f0d5e60cd490ca62f3c05
Comment 17 bugs.gentoo 2020-07-19 17:07:01 UTC
Version 3.1.0 is out, renaming and adjusting the SRC_URI works fine.
Comment 18 David Owen 2020-10-10 01:12:42 UTC
Thanks for the build!  bzr was a major blocker for me upgrading several systems.

Is the cython dependency actually required at run-time instead of just build-time?  I tried uninstalling cython, and have seen no problems using breezy so far.
Comment 19 Larry the Git Cow gentoo-dev 2021-09-25 07:01:17 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b57ebe2ee33ede5c82d04965840436d3876c647

commit 0b57ebe2ee33ede5c82d04965840436d3876c647
Author:     Arthur Zamarin <arthurzam@gentoo.org>
AuthorDate: 2021-09-25 06:57:22 +0000
Commit:     Arthur Zamarin <arthurzam@gentoo.org>
CommitDate: 2021-09-25 07:00:36 +0000

    dev-vcs/breezy: initial packaging (v3.2.1)
    
    Some notes for this package:
    - has huge test suite, around ~30,000. Sadly some of them need
      disabling (0.8%)
    - takes ~24 minutes per python target
    - installs aliases for old bzr bin names
    - anyone can help and improve the ebuild
    
    Closes: https://bugs.gentoo.org/705018
    Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>

 dev-vcs/breezy/Manifest            |  1 +
 dev-vcs/breezy/breezy-3.2.1.ebuild | 86 ++++++++++++++++++++++++++++++++++++++
 dev-vcs/breezy/metadata.xml        | 13 ++++++
 3 files changed, 100 insertions(+)