offlineimap build fails

  • Done
  • quality assurance status badge
Details
4 participants
  • Bone Baboon
  • Tobias Geerinckx-Rice
  • Mark H Weaver
  • zimoun
Owner
unassigned
Submitted by
Bone Baboon
Severity
normal
B
B
Bone Baboon wrote on 4 May 2021 03:11
(address . bug-guix@gnu.org)
87czu7joab.fsf@disroot.org
On a x86_64 computer when I run `guix build --no-substitutes
offlineimap` the build fails because the "test_ipv6_available" test
fails.

In the system configuration ipv6 is disabled:

```
(kernel-arguments
(append
(list "nomodeset" "ipv6.disable=1")
%default-kernel-arguments))
```

Taking the failing test's name "test_ipv6_available" literally I would
like to ask if having this test required to build this offlineimap
dependency is necessary? Could this test be allowed to fail or be
skipped without failing the build? This would accommodate Guix users
who have disabled ipv6.

`guix describe` outputs:

```
Generation 18 May 03 2021 13:15:55 (current)
guix 065d2cd
commit: 065d2cd6ced96ddb38c15a46f798488f61660a33
```

Build error:

```
starting phase `check'
============================= test session starts ==============================
platform linux2 -- Python 2.7.17, pytest-4.6.11, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/guix-build-python2-rfc6555-0.0.0-1.1a181b4.drv-0/source
plugins: hypothesis-4.57.1
collected 5 items

tests/test_ipv6.py F.... [100%]

=================================== FAILURES ===================================
_____________________________ test_ipv6_available ______________________________

def test_ipv6_available():
Toggle quote (1 lines)
> assert rfc6555._detect_ipv6()
E assert False
E + where False = <function _detect_ipv6 at 0xf6c2887c>()
E + where <function _detect_ipv6 at 0xf6c2887c> = rfc6555._detect_ipv6

tests/test_ipv6.py:11: AssertionError
====================== 1 failed, 4 passed in 0.19 seconds ======================
command "pytest" "tests/test_ipv6.py" failed with status 1
builder for `/gnu/store/4clr8jgvlbhp9qvyx2izdl5dmb8b0xsd-python2-rfc6555-0.0.0-1.1a181b4.drv' failed with exit code 1
build of /gnu/store/4clr8jgvlbhp9qvyx2izdl5dmb8b0xsd-python2-rfc6555-0.0.0-1.1a181b4.drv failed
View build log at '/var/log/guix/drvs/4c/lr8jgvlbhp9qvyx2izdl5dmb8b0xsd-python2-rfc6555-0.0.0-1.1a181b4.drv.bz2'.
cannot build derivation `/gnu/store/pxqzkh8b6266qdrrxhfc74j6bjnb1567-offlineimap-7.3.3.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/pxqzkh8b6266qdrrxhfc74j6bjnb1567-offlineimap-7.3.3.drv' failed
```
T
T
Tobias Geerinckx-Rice wrote on 4 May 2021 11:08
(name . Bone Baboon)(address . bone.baboon@disroot.org)
874kfioogp.fsf@nckx
Babs,

Bone Baboon via Bug reports for GNU Guix ???
Toggle quote (6 lines)
> Taking the failing test's name "test_ipv6_available" literally I
> would
> like to ask if having this test required to build this
> offlineimap
> dependency

I think not, but you should report this upstream first. They look
asleep but I didn't hold a mirror under their nose. If they don't
respond we might hack around it in Guix.

I suggest that you enable IPv6 support in the meantime.

Toggle quote (2 lines)
> This would accommodate Guix users who have disabled ipv6.

Guix doesn't virtualise the kernel and expects it to provide all
that is needful. Linux offers knobs for *everything*; that
doesn't mean everything is supported. Disabling kernel support
for basic things (namespaces, UNIX domain sockets, IPv6) *will*
break certain software.

We shouldn't feel obligated to accommodate strange configurations
out of the box, but we try to do so when the maintenance cost is
very low. In this case, you'd need to ensure the test still runs
on the vast majority of systems with IPv6.

Kind regards,

T G-R
-----BEGIN PGP SIGNATURE-----

iIMEARYKACsWIQT12iAyS4c9C3o4dnINsP+IT1VteQUCYJEPJg0cbWVAdG9iaWFz
LmdyAAoJEA2w/4hPVW15Fz8A/iB3NIZxnohvdE8ZEI3oHqX76BmzHgSY0d9/WmV/
p6RvAP4/EZ7pa8SalLFRxp+kaiYfw2nc53kVPuCjgvKi7LBLBA==
=GWrx
-----END PGP SIGNATURE-----

M
M
Mark H Weaver wrote on 4 May 2021 22:39
87y2cumdwt.fsf@netris.org
Hi,

Bone Baboon via Bug reports for GNU Guix <bug-guix@gnu.org> writes:
Toggle quote (5 lines)
> On a x86_64 computer when I run `guix build --no-substitutes
> offlineimap` the build fails because the "test_ipv6_available" test
> fails.
>
> In the system configuration ipv6 is disabled:
[...]
Toggle quote (6 lines)
> Taking the failing test's name "test_ipv6_available" literally I would
> like to ask if having this test required to build this offlineimap
> dependency is necessary? Could this test be allowed to fail or be
> skipped without failing the build? This would accommodate Guix users
> who have disabled ipv6.

I will defer to the Guix maintainers on this question, but I just wanted
to point out that since 'offlineimap' is the _only_ package in Guix that
depends on the 'python2-rfc6555' package, it's quite painless to work
around this particular issue using Guix's "--without-tests" package
transformation option.

From the command line, you can simply do this:

guix build offlineimap --without-tests=python2-rfc6555

Within an OS configuration, or within a profile "manifest" file (if you
use "guix package --manifest", which is highly recommended), you can use
the following Scheme expression in place of 'offlineimap':

Toggle snippet (5 lines)
(let ((transform (options->transformation
'((without-tests . "python2-rfc6555")))))
(transform offlineimap))

Note that you'll also need to put "(use-modules (guix transformations))"
at the top of the file, to import the 'options->transformation'
procedure.

Please let us know if this works for you.

Thanks,
Mark

--
Disinformation flourishes because many people care deeply about injustice
but very few check the facts. Ask me about https://stallmansupport.org.
B
B
Bone Baboon wrote on 5 May 2021 03:35
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)
874kfij735.fsf@disroot.org
Toggle quote (12 lines)
>> This would accommodate Guix users who have disabled ipv6.
>
> Guix doesn't virtualise the kernel and expects it to provide all that
> is needful. Linux offers knobs for *everything*; that doesn't mean
> everything is supported. Disabling kernel support for basic things
> (namespaces, UNIX domain sockets, IPv6) *will* break certain software.
>
> We shouldn't feel obligated to accommodate strange configurations out
> of the box, but we try to do so when the maintenance cost is very low.
> In this case, you'd need to ensure the test still runs on the vast
> majority of systems with IPv6.

Sorry I should have explained the rationale for this in my initial
message.

For privacy conscious individuals one tool for improving online privacy
is a VPN service. Many VPN service providers recommend disabling
ipv6. This is because of ipv6 leaks.

https://ipv6leak.com/is a ipv6 leak testing site. It is the first
result when searching for "ipv6 leak" with searx.ir. Using this website
I can see that the privacy provided by my VPN service provider is
compromised by an ipv6 leak when I enable ipv6. This is why I have ipv6
disabled.

I am open to suggestions on free software alternatives to using a VPN
service that do not require ipv6 to be disabled. The current VPN service
I am using allows the use of a openvpn client so I do not need to
install any proprietary software on my computer to use their service. I
am aware of Tor or I2P but have not yet looked into how I could to send
my network traffic over those networks.
B
B
Bone Baboon wrote on 6 May 2021 05:32
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)
875yzwilkm.fsf@disroot.org
Tobias Geerinckx-Rice writes:
Toggle quote (2 lines)
> you should report this upstream first

I have reported this to Seth Michael Larson the maintainer of rfc6555.

I also asked Seth Michael Larson if the rfc6555 test suite could be
modified so that test_ipv6_available does not fail if IPv6 is disabled.
B
B
Bone Baboon wrote on 11 May 2021 16:53
(name . Mark H Weaver)(address . mhw@netris.org)(address . 48213@debbugs.gnu.org)
87a6p1fhkf.fsf@disroot.org
Mark H Weaver writes:

Toggle quote (32 lines)
> Hi,
>
> Bone Baboon via Bug reports for GNU Guix <bug-guix@gnu.org> writes:
>> On a x86_64 computer when I run `guix build --no-substitutes
>> offlineimap` the build fails because the "test_ipv6_available" test
>> fails.
>
> 'offlineimap' is the _only_ package in Guix that
> depends on the 'python2-rfc6555' package, it's quite painless to work
> around this particular issue using Guix's "--without-tests" package
> transformation option.
>
> From the command line, you can simply do this:
>
> guix build offlineimap --without-tests=python2-rfc6555
>
> Within an OS configuration, or within a profile "manifest" file (if you
> use "guix package --manifest", which is highly recommended), you can use
> the following Scheme expression in place of 'offlineimap':
>
> --8<---------------cut here---------------start------------->8---
> (let ((transform (options->transformation
> '((without-tests . "python2-rfc6555")))))
> (transform offlineimap))
> --8<---------------cut here---------------end--------------->8---
>
> Note that you'll also need to put "(use-modules (guix transformations))"
> at the top of the file, to import the 'options->transformation'
> procedure.
>
> Please let us know if this works for you.

Thank you

I can build offlineimap with this command `guix build offlineimap
--no-substitutes --without-tests=python2-rfc6555`.

How would I refer to offlineimap (built without tests) in the
configuration of a substitute server's client? The client is not
building it's own packages and is instead relying on a substitute
server to build offlineimap without tests.
Z
Z
zimoun wrote on 27 May 2021 22:55
(name . Mark H Weaver)(address . mhw@netris.org)
86lf7znbgx.fsf@gmail.com
Hi,

On Tue, 04 May 2021 at 16:39, Mark H Weaver <mhw@netris.org> wrote:

Toggle quote (12 lines)
>From the command line, you can simply do this:
>
> guix build offlineimap --without-tests=python2-rfc6555
>
> Within an OS configuration, or within a profile "manifest" file (if you
> use "guix package --manifest", which is highly recommended), you can use
> the following Scheme expression in place of 'offlineimap':
>
> (let ((transform (options->transformation
> '((without-tests . "python2-rfc6555")))))
> (transform offlineimap))

The package offlineimap will go sooner or later since Python 2 is EOL.
The migration from Py2 to Py3 is not clear [1] and the README [2] says:

> As one of the maintainer of OfflineIMAP, I'd like to put my efforts into
> [imapfw](http://github.com/OfflineIMAP/imapfw).**imapfw** is software in
> development that I intend to replace OfflineIMAP with in the long term.
>
> That's why I'm not going to continue OfflineIMAP development. I'll continue
> to maintain OfflineIMAP (fixing small bugs, reviewing patches and merging,
> and rolling out new releases), but that's all.
>
> While I keep tracking issues for OfflineIMAP, you should not expect future support.
>
> You won't be left at the side. OfflineIMAP's community is large enough so that
> you'll find people for most of your issues.
>
> Get news from the [blog][blog].
>
> Nicolas Sebrecht. ,-)

IMHO, the transformation is the easiest to still have the package and
let the time to switch (to Offlinemap or something else). For instance,


Note the package should always be available via inferiors.

All the best,
simon

M
M
Mark H Weaver wrote on 30 May 2021 21:27
(name . zimoun)(address . zimon.toutoune@gmail.com)
87a6ocqaxp.fsf@netris.org
Hi Simon,

zimoun <zimon.toutoune@gmail.com> writes:
Toggle quote (10 lines)
> The package offlineimap will go sooner or later since Python 2 is EOL.
> The migration from Py2 to Py3 is not clear [1] and the README [2] says:
>
> > As one of the maintainer of OfflineIMAP, I'd like to put my efforts into
> > [imapfw](http://github.com/OfflineIMAP/imapfw). **imapfw** is software in
> > development that I intend to replace OfflineIMAP with in the long term.
> >
> > That's why I'm not going to continue OfflineIMAP development. I'll continue
> > to maintain OfflineIMAP (fixing small bugs, reviewing patches and merging,
> > and rolling out new releases), but that's all.
[...]
Toggle quote (3 lines)
> 2: <https://raw.githubusercontent.com/OfflineIMAP/offlineimap/master/README.md>

Thanks for bringing this to our attention.

Incidentally, I used 'offlineimap' for several years, and one day it
stopped working for me with an inscrutible error ("invalid literal for
int() with base 10: ''") , and I was never able to get it working again.

I eventually switched to 'mbsync' from the 'isync' package, and it has
been working very well for my purposes.

Thanks,
Mark

--
Disinformation flourishes because many people care deeply about injustice
but very few check the facts. Ask me about https://stallmansupport.org.
Z
Z
zimoun wrote on 2 Jul 2021 18:42
(name . Mark H Weaver)(address . mhw@netris.org)
874kdcmzv3.fsf@gmail.com
Hi,

On Sun, 30 May 2021 at 15:27, Mark H Weaver <mhw@netris.org> wrote:
Toggle quote (25 lines)
> zimoun <zimon.toutoune@gmail.com> writes:

>> The package offlineimap will go sooner or later since Python 2 is EOL.
>> The migration from Py2 to Py3 is not clear [1] and the README [2] says:
>>
>> > As one of the maintainer of OfflineIMAP, I'd like to put my efforts into
>> > [imapfw](http://github.com/OfflineIMAP/imapfw). **imapfw** is software in
>> > development that I intend to replace OfflineIMAP with in the long term.
>> >
>> > That's why I'm not going to continue OfflineIMAP development. I'll continue
>> > to maintain OfflineIMAP (fixing small bugs, reviewing patches and merging,
>> > and rolling out new releases), but that's all.
> [...]
>> 1: <https://github.com/OfflineIMAP/offlineimap/issues/670>
>> 2: <https://raw.githubusercontent.com/OfflineIMAP/offlineimap/master/README.md>
>
> Thanks for bringing this to our attention.
>
> Incidentally, I used 'offlineimap' for several years, and one day it
> stopped working for me with an inscrutible error ("invalid literal for
> int() with base 10: ''") , and I was never able to get it working again.
>
> I eventually switched to 'mbsync' from the 'isync' package, and it has
> been working very well for my purposes.

Since ’isync’ seems the standard replacement of ’offlineimap’, I propose
to remove ’offlineimap’. For example, add a news entry and deprecate
it, wait X months, and complete the remove. WDYT?

Cheers,
simon
Z
Z
zimoun wrote on 13 Jul 2021 10:24
(name . Mark H Weaver)(address . mhw@netris.org)
867dhupqnr.fsf@gmail.com
Hi,

On Thu, 27 May 2021 at 22:55, zimoun <zimon.toutoune@gmail.com> wrote:
Toggle quote (49 lines)
> On Tue, 04 May 2021 at 16:39, Mark H Weaver <mhw@netris.org> wrote:
>
>>>From the command line, you can simply do this:
>>
>> guix build offlineimap --without-tests=python2-rfc6555
>>
>> Within an OS configuration, or within a profile "manifest" file (if you
>> use "guix package --manifest", which is highly recommended), you can use
>> the following Scheme expression in place of 'offlineimap':
>>
>> (let ((transform (options->transformation
>> '((without-tests . "python2-rfc6555")))))
>> (transform offlineimap))
>
> The package offlineimap will go sooner or later since Python 2 is EOL.
> The migration from Py2 to Py3 is not clear [1] and the README [2] says:
>
> > As one of the maintainer of OfflineIMAP, I'd like to put my efforts into
> > [imapfw](http://github.com/OfflineIMAP/imapfw). **imapfw** is software in
> > development that I intend to replace OfflineIMAP with in the long term.
> >
> > That's why I'm not going to continue OfflineIMAP development. I'll continue
> > to maintain OfflineIMAP (fixing small bugs, reviewing patches and merging,
> > and rolling out new releases), but that's all.
> >
> > While I keep tracking issues for OfflineIMAP, you should not expect future
> > support.
> >
> > You won't be left at the side. OfflineIMAP's community is large enough so
> > that
> > you'll find people for most of your issues.
> >
> > Get news from the [blog][blog].
> >
> > Nicolas Sebrecht. ,-)
>
> IMHO, the transformation is the easiest to still have the package and
> let the time to switch (to Offlinemap or something else). For instance,
>
> <https://github.com/OfflineIMAP/offlineimap3>
>
> Note the package should always be available via inferiors.
>
> All the best,
> simon
>
> 1: <https://github.com/OfflineIMAP/offlineimap/issues/670>
> 2: <https://raw.githubusercontent.com/OfflineIMAP/offlineimap/master/README.md

Considering the package 'offlineimap' is not supported upstream because
it is Python 2 based and Python 2 is now End Of Life since January 1rst
2020, I propose to close this bug. The package 'offlineimap' will go
soon or later. A standard replacement is the package 'isync'.

All the best,
simon
Z
Z
zimoun wrote on 17 Aug 2021 23:20
(name . Mark H Weaver)(address . mhw@netris.org)
868s0zn4yy.fsf@gmail.com
Hi,

On Tue, 13 Jul 2021 at 10:24, zimoun <zimon.toutoune@gmail.com> wrote:
Toggle quote (55 lines)
> On Thu, 27 May 2021 at 22:55, zimoun <zimon.toutoune@gmail.com> wrote:
>> On Tue, 04 May 2021 at 16:39, Mark H Weaver <mhw@netris.org> wrote:
>>
>>>>>From the command line, you can simply do this:
>>>
>>> guix build offlineimap --without-tests=python2-rfc6555
>>>
>>> Within an OS configuration, or within a profile "manifest" file (if you
>>> use "guix package --manifest", which is highly recommended), you can use
>>> the following Scheme expression in place of 'offlineimap':
>>>
>>> (let ((transform (options->transformation
>>> '((without-tests . "python2-rfc6555")))))
>>> (transform offlineimap))
>>
>> The package offlineimap will go sooner or later since Python 2 is EOL.
>> The migration from Py2 to Py3 is not clear [1] and the README [2] says:
>>
>> > As one of the maintainer of OfflineIMAP, I'd like to put my efforts into
>> > [imapfw](http://github.com/OfflineIMAP/imapfw). **imapfw** is software in
>> > development that I intend to replace OfflineIMAP with in the long term.
>> >
>> > That's why I'm not going to continue OfflineIMAP development. I'll continue
>> > to maintain OfflineIMAP (fixing small bugs, reviewing patches and merging,
>> > and rolling out new releases), but that's all.
>> >
>> > While I keep tracking issues for OfflineIMAP, you should not expect future
>> > support.
>> >
>> > You won't be left at the side. OfflineIMAP's community is large enough so
>> > that
>> > you'll find people for most of your issues.
>> >
>> > Get news from the [blog][blog].
>> >
>> > Nicolas Sebrecht. ,-)
>>
>> IMHO, the transformation is the easiest to still have the package and
>> let the time to switch (to Offlinemap or something else). For instance,
>>
>> <https://github.com/OfflineIMAP/offlineimap3>
>>
>> Note the package should always be available via inferiors.
>>
>> All the best,
>> simon
>>
>> 1: <https://github.com/OfflineIMAP/offlineimap/issues/670>
>> 2: <https://raw.githubusercontent.com/OfflineIMAP/offlineimap/master/README.md
>
> Considering the package 'offlineimap' is not supported upstream because
> it is Python 2 based and Python 2 is now End Of Life since January 1rst
> 2020, I propose to close this bug. The package 'offlineimap' will go
> soon or later. A standard replacement is the package 'isync'.

Considering this discussion, I do not see what could be done on the Guix
side. Therefore, I am closing.

Feel free to reopen if I miss something.

All the best,
simon
Closed
?