Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] ncurses-libs: provide libncurses.so.5
@ 2020-07-27  0:54 gt7-void
  2020-07-27  1:25 ` ahesford
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: gt7-void @ 2020-07-27  0:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1580 bytes --]

There is a new pull request by gt7-void against master on the void-packages repository

https://github.com/gt7-void/void-packages ncurses
https://github.com/void-linux/void-packages/pull/23862

ncurses-libs: provide libncurses.so.5
@q66 can you please allow this symlink at least?

I state my case:

a. I need /usr/lib/libncurses.so.5 to run a binary (fwiw, megacli to manage a LSI raid controller -- unfortunately there's no other way to manage the raid arrays without rebooting to bios)

b. This binary runs without any problem with the symlink

c. I think this is expected since the ncurses 6 library is both API and ABI compatible with ncurses 5, according to its own documentation:

> This release is designed to be source-compatible with ncurses 5.0 through 6.1; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the reason for the release is to reflect improvements to the ncurses 6 ABI and the supporting utility programs.

d. Someone else requested it on reddit (https://www.reddit.com/r/voidlinux/comments/hprhjp/where_to_download_libncursesso5/)

I'm not sure about all the other symlinks that https://github.com/void-linux/void-packages/commit/854828d619792969aef4315747c768a618434acd removed, an alternative would be to revert that one and apply https://github.com/void-linux/void-packages/pull/23660/commits/37f47318107975b56192a84fec9502b534628f4d from PR #23660 instead.

A patch file from https://github.com/void-linux/void-packages/pull/23862.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ncurses-23862.patch --]
[-- Type: text/x-diff, Size: 1074 bytes --]

From 47d51d1b146f864ec14cbeb9df5ef7b08d17fc6c Mon Sep 17 00:00:00 2001
From: gt7-void <gt7@mail.com>
Date: Sun, 26 Jul 2020 21:34:42 -0300
Subject: [PATCH] ncurses-libs: provide libncurses.so.5

compatibility for binaries requiring libncurses.so.5
---
 srcpkgs/ncurses/template | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/ncurses/template b/srcpkgs/ncurses/template
index d1bb2ae3aa8..a82d8805212 100644
--- a/srcpkgs/ncurses/template
+++ b/srcpkgs/ncurses/template
@@ -1,7 +1,7 @@
 # Template file for 'ncurses'
 pkgname=ncurses
 version=6.2
-revision=3
+revision=4
 bootstrap=yes
 configure_args="--enable-big-core"
 short_desc="System V Release 4.0 curses emulation library"
@@ -81,6 +81,9 @@ do_install() {
 	ln -sf libncurses.so.${version} \
 		${DESTDIR}/usr/lib/libncurses.so.${version:0:1}
 
+	# compatibility for binaries requiring libncurses.so.5
+	ln -sf libncurses.so.${version} ${DESTDIR}/usr/lib/libncurses.so.5
+
 	# Create libtinfo symlinks.
 	ln -sfr ${DESTDIR}/usr/lib/libncursesw.so \
 		${DESTDIR}/usr/lib/libtinfo.so

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
@ 2020-07-27  1:25 ` ahesford
  2020-07-27  1:25 ` [PR PATCH] [Closed]: " ahesford
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ahesford @ 2020-07-27  1:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 964 bytes --]

New comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664072165

Comment:
The symlink you request is not a robust solution to the problem of a missing `libncurses.so.5`. Source versions 5 and 6 of `libncurses` both allow the shared object to be built with ABI version 5 or 6, which leads to confusion and potential incompatibilities. Your version of `megacli` was probably built on a distribution that builds `ncurses5` v5 with the v6 ABI, so things just happen to work when you make the symlink on Void. One of the responses to the Reddit post you linked makes this point.

It looks like [openSUSE uses the v5 ABI](https://software.opensuse.org/package/libncurses5).

The confusing versioning schemes are the reason the Void package recently dropped all v5 symlinks; there is nothing left in the official repo that relies on them. You are welcome to create your own symlink to fix `megacli`.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR PATCH] [Closed]: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
  2020-07-27  1:25 ` ahesford
@ 2020-07-27  1:25 ` ahesford
  2020-07-27  1:42 ` q66
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ahesford @ 2020-07-27  1:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1427 bytes --]

There's a closed pull request on the void-packages repository

ncurses-libs: provide libncurses.so.5
https://github.com/void-linux/void-packages/pull/23862

Description:
@q66 can you please allow this symlink at least?

I state my case:

a. I need /usr/lib/libncurses.so.5 to run a binary (fwiw, megacli to manage a LSI raid controller -- unfortunately there's no other way to manage the raid arrays without rebooting to bios)

b. This binary runs without any problem with the symlink

c. I think this is expected since the ncurses 6 library is both API and ABI compatible with ncurses 5, according to its own documentation:

> This release is designed to be source-compatible with ncurses 5.0 through 6.1; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the reason for the release is to reflect improvements to the ncurses 6 ABI and the supporting utility programs.

d. Someone else requested it on reddit (https://www.reddit.com/r/voidlinux/comments/hprhjp/where_to_download_libncursesso5/)

I'm not sure about all the other symlinks that https://github.com/void-linux/void-packages/commit/854828d619792969aef4315747c768a618434acd removed, an alternative would be to revert that one and apply https://github.com/void-linux/void-packages/pull/23660/commits/37f47318107975b56192a84fec9502b534628f4d from PR #23660 instead.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
  2020-07-27  1:25 ` ahesford
  2020-07-27  1:25 ` [PR PATCH] [Closed]: " ahesford
@ 2020-07-27  1:42 ` q66
  2020-07-27  1:44 ` q66
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: q66 @ 2020-07-27  1:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 897 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664075895

Comment:
ncurses5 and ncurses6 are not ABI compatible, you can configure ncurses6 to use ABI version 5, but not both at once

@ahesford opensuse and debian as well as others probably provide both 5 and 6, but they're separate builds, e.g. like we do widechar and non-widechar builds right now, we'd also need to add two more builds for the ABI version 5

either way, a symlink won't cut it and this PR was rightfully closed

I don't think there's a need to have builds for 5, we don't have any responsibility to cater to third party proprietary binaries we don't package, if you want ncurses5 obtain it through other means, if it works with the symlinks then keep your own symlinks but that's only by chance that it works and they definitely shouldn't be packaged

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
                   ` (2 preceding siblings ...)
  2020-07-27  1:42 ` q66
@ 2020-07-27  1:44 ` q66
  2020-07-27  1:48 ` q66
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: q66 @ 2020-07-27  1:44 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 974 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664075895

Comment:
ncurses5 and ncurses6 are not ABI compatible, you can configure ncurses6 to use ABI version 5, but not both at once (the build will create `.so.5` or `.so.6` libs depending on the ABI you set)

@ahesford opensuse and debian as well as others probably provide both 5 and 6, but they're separate builds, e.g. like we do widechar and non-widechar builds right now, we'd also need to add two more builds for the ABI version 5

either way, a symlink won't cut it and this PR was rightfully closed

I don't think there's a need to have builds for 5, we don't have any responsibility to cater to third party proprietary binaries we don't package, if you want ncurses5 obtain it through other means, if it works with the symlinks then keep your own symlinks but that's only by chance that it works and they definitely shouldn't be packaged

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
                   ` (3 preceding siblings ...)
  2020-07-27  1:44 ` q66
@ 2020-07-27  1:48 ` q66
  2020-07-27  2:01 ` gt7-void
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: q66 @ 2020-07-27  1:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 287 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664077072

Comment:
also, there is a way to manage LSI RAID controllers without a proprietary binary, you flash them with IT firmware and use zfs, as you should anyway :P

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
                   ` (4 preceding siblings ...)
  2020-07-27  1:48 ` q66
@ 2020-07-27  2:01 ` gt7-void
  2020-07-27  2:08 ` q66
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: gt7-void @ 2020-07-27  2:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 606 bytes --]

New comment by gt7-void on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664079920

Comment:
> also, there is a way to manage LSI RAID controllers without a proprietary binary, you flash them with IT firmware and use zfs, as you should anyway :P

I wish so, but this is PERC 6/i which uses LSI 1078 and according to some forum threads it's NOT possible to change the firmware. If you know otherwise I'd be grateful to learn.

I use single disk raid0, but to configure that one still needs megacli. I should probably just get a replacement card w/o raid.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
                   ` (5 preceding siblings ...)
  2020-07-27  2:01 ` gt7-void
@ 2020-07-27  2:08 ` q66
  2020-07-27  2:10 ` q66
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: q66 @ 2020-07-27  2:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 730 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664081324

Comment:
the whole thing with void previously shipping the symlinks was xtraeme's misunderstanding of how ABI compat in ncurses works, I believe - they're still two distinct ABIs and there's no way to have them at once - if the symlink works for you you're probably just not running into the case where things changed, or you're getting an ABI mismatch subtle enough that it doesn't show

unfortunate about the LSI 1078, I have a friend with a Dell server that had the same PERC, and we solved it with me giving him one of my LSI SAS2038's and just replacing the thing, thing just wasn't flashable...

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
                   ` (6 preceding siblings ...)
  2020-07-27  2:08 ` q66
@ 2020-07-27  2:10 ` q66
  2020-07-27  2:43 ` gt7-void
  2020-07-27  2:51 ` ericonr
  9 siblings, 0 replies; 11+ messages in thread
From: q66 @ 2020-07-27  2:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 866 bytes --]

New comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664081324

Comment:
the whole thing with void previously shipping the symlinks was xtraeme's misunderstanding of how ABI compat in ncurses works, I believe - they're still two distinct ABIs and there's no way to have them at once - if the symlink works for you you're probably just not running into the case where things changed, or you're getting an ABI mismatch subtle enough that it doesn't show

unfortunate about the LSI 1078, I have a friend with a Dell server that had the same PERC, and we solved it with me giving him one of my LSI SAS2038's (actually was a SAS2008, now that I think about it - the main difference is that these are much cheaper and they won't do TRIM on SSDs) and just replacing the thing, thing just wasn't flashable...

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
                   ` (7 preceding siblings ...)
  2020-07-27  2:10 ` q66
@ 2020-07-27  2:43 ` gt7-void
  2020-07-27  2:51 ` ericonr
  9 siblings, 0 replies; 11+ messages in thread
From: gt7-void @ 2020-07-27  2:43 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 519 bytes --]

New comment by gt7-void on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664089685

Comment:
For the record, the following was suggested to me on IRC. Instead of adding the symlink, patch the binary with
```
$ patchelf --replace-needed libncurses.so.5 libncurses.so.6 MegaCli64
```
This works fine for me so I don't need  the symlinks. Maybe I'll write a (restricted) template that downloads megacli binary and patches it as above.

Thanks a lot for all your help.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ncurses-libs: provide libncurses.so.5
  2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
                   ` (8 preceding siblings ...)
  2020-07-27  2:43 ` gt7-void
@ 2020-07-27  2:51 ` ericonr
  9 siblings, 0 replies; 11+ messages in thread
From: ericonr @ 2020-07-27  2:51 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 253 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23862#issuecomment-664091360

Comment:
@gt7-void do note that might still have the subtle ABI issues. It's just a "cleaner" fix than using the symlink.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-07-27  2:51 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-27  0:54 [PR PATCH] ncurses-libs: provide libncurses.so.5 gt7-void
2020-07-27  1:25 ` ahesford
2020-07-27  1:25 ` [PR PATCH] [Closed]: " ahesford
2020-07-27  1:42 ` q66
2020-07-27  1:44 ` q66
2020-07-27  1:48 ` q66
2020-07-27  2:01 ` gt7-void
2020-07-27  2:08 ` q66
2020-07-27  2:10 ` q66
2020-07-27  2:43 ` gt7-void
2020-07-27  2:51 ` ericonr

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).