rsync upgrade to 3.2.1_1 and libressl

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

rsync upgrade to 3.2.1_1 and libressl

Kastus Shchuka-2
In version 3.2.0 (June 19 2020) rsync introduced new binary rsync-ssl. Port file of rsync now has a new dependency, openssl. Macports does not allow to have both libressl and openssl ports installed at the same time. Does it mean that I cannot upgrade rsync beyond version 3.1.3 if I am using libressl?

Thanks,

Kastus
Reply | Threaded
Open this post in threaded view
|

Re: rsync upgrade to 3.2.1_1 and libressl

Kastus Shchuka-2
My original error was this:

$ port outdated
The following installed ports are outdated:
rsync                          3.1.3_0 < 3.2.1_1        
yubico-piv-tool                1.7.0_1 < 2.0.0_0        
$ sudo port upgrade outdated and not yubico-piv-tool
--->  Computing dependencies for openssl
Error: Can't install openssl because conflicting ports are active: libressl
Error: Problem while installing openssl
Error: Follow https://guide.macports.org/#project.tickets to report a bug.


Just for kicks, I replaced line 31 in rsync port file

  port:openssl

with

  port:libressl

and was able to build rsync 3.2.1_1 successfully after that.

$ otool -L /opt/local/bin/rsync
/opt/local/bin/rsync:
        /opt/local/lib/libpopt.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
        /opt/local/lib/liblz4.1.dylib (compatibility version 1.0.0, current version 1.9.2)
        /opt/local/lib/libzstd.1.dylib (compatibility version 1.0.0, current version 1.4.5)
        /opt/local/lib/libxxhash.0.dylib (compatibility version 0.0.0, current version 0.7.4)
        /opt/local/lib/libcrypto.44.dylib (compatibility version 45.0.0, current version 45.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)


$ port provides /opt/local/lib/libcrypto.44.dylib
/opt/local/lib/libcrypto.44.dylib is provided by: libressl

$ /opt/local/bin/rsync --version
rsync  version 3.2.1  protocol version 31
Copyright (C) 1996-2020 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, no atimes, batchfiles, inplace,
    append, ACLs, xattrs, optional protect-args, iconv, symtimes,
    no prealloc, file-flags, crtimes
Checksum list:
    xxh64 (xxhash) md5 md4 none
Compress list:
    zstd lz4 zlibx zlib none

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

So rsync 3.2.1 can be built with libressl.

I wonder what is the proper way to make rsync port automatically use libressl if it is installed already.

Thanks,

Kastus


> On Jun 28, 2020, at 2:54 PM, Kastus Shchuka <[hidden email]> wrote:
>
> In version 3.2.0 (June 19 2020) rsync introduced new binary rsync-ssl. Port file of rsync now has a new dependency, openssl. Macports does not allow to have both libressl and openssl ports installed at the same time. Does it mean that I cannot upgrade rsync beyond version 3.1.3 if I am using libressl?
>
> Thanks,
>
> Kastus

Reply | Threaded
Open this post in threaded view
|

Re: rsync upgrade to 3.2.1_1 and libressl

Christopher Chavez
On 6/28/2020 5:16 PM, Kastus Shchuka wrote:
> I wonder what is the proper way to make rsync port automatically use libressl if it is installed already.

I'm not sure it applies here, but the pattern being applied to other
ports is to replace port:openssl with path:lib/libssl.dylib:openssl, so
as to allow using LibreSSL but fallback to installing OpenSSL if neither
is already present.
Reply | Threaded
Open this post in threaded view
|

Re: rsync upgrade to 3.2.1_1 and libressl

ryandesign2
Administrator
On Jun 29, 2020, at 00:58, Christopher Chavez wrote:
>
> I'm not sure it applies here, but the pattern being applied to other
> ports is to replace port:openssl with path:lib/libssl.dylib:openssl, so
> as to allow using LibreSSL but fallback to installing OpenSSL if neither
> is already present.

Since the user even verified that it builds fine with libressl, yes, that's what should be used here.

Until we handle libressl and openssl separately as we should (see ticket), Portfile authors should assume that libressl will work as a replacement for openssl in their ports and use the above syntax. Only if it can be shown that libressl is not compatible and if no patch to fix that can be found should it be changed to port:openssl. In that case, add a comment with a link to the upstream bug report or discussion.
Reply | Threaded
Open this post in threaded view
|

Re: rsync upgrade to 3.2.1_1 and libressl

ryandesign2
Administrator
On Jun 29, 2020, at 02:52, Ryan Schmidt wrote:

> On Jun 29, 2020, at 00:58, Christopher Chavez wrote:
>>
>> I'm not sure it applies here, but the pattern being applied to other
>> ports is to replace port:openssl with path:lib/libssl.dylib:openssl, so
>> as to allow using LibreSSL but fallback to installing OpenSSL if neither
>> is already present.
>
> Since the user even verified that it builds fine with libressl, yes, that's what should be used here.
>
> Until we handle libressl and openssl separately as we should (see ticket), Portfile authors should assume that libressl will work as a replacement for openssl in their ports and use the above syntax. Only if it can be shown that libressl is not compatible and if no patch to fix that can be found should it be changed to port:openssl. In that case, add a comment with a link to the upstream bug report or discussion.

Fixed:

https://github.com/macports/macports-ports/commit/bb1e0a790af0e7303ca36de8f1be2dc00f26b62b

In the future, please file bug reports in the issue tracker.