-
Notifications
You must be signed in to change notification settings - Fork 347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better recognition of depexts on Gentoo, NetBSD, OpenBSD #5065
Conversation
I just realized that this wasn't explicit in my comments above: this patch fixes a problem I encounter on OpenBSD where |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Could you add an entry to master_changes.md ? |
Gentoo, NetBSD, and OpenBSD name packages in a /-separated hierarchy. For example, libgmp is available as "dev-libs/gmp" (on Gentoo[1]) or "devel/gmp" (on NetBSD[2], or OpenBSD[3]). The first fix in this commit (the change to the `short_name` function) removes the leading "/" from the package's short name. Prior to this commit, if `pkg` were "dev-libs/gmp", then `short_name` would be "/gmp". That doesn't match the depext name of "gmp" so opam thought the package wasn't installed. OpenBSD also uses flavors and subpackages[4] in some of its package names. For example, OpenBSD has two subpackages for the "devel/gmp" package: main and cxx. That means that the full name for libgmp on OpenBSD is likely to be "devel/gmp,-main". Prior to this commit, `short_name` for this package was "gmp,-main". This commit introduces `no_flavor` which removes the flavors and subpackages from package names, if present. That causes "devel/gmp,-main" on OpenBSD to have a `no_flavor` name of "gmp". This name matches the depext name, so that opam recognizes that libgmp is installed. 1: https://packages.gentoo.org/packages/dev-libs/gmp 2: https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/gmp/index.html 3: https://github.com/openbsd/ports/tree/b12d29201e832eb5a230d54449ff2a13502c9fbb/devel/gmp 4: https://man.openbsd.org/OpenBSD-7.0/pkgpath.7
96b9cbe
to
4b060e7
Compare
Done. |
LGTM too! |
Yup. At least, I tested it on my OpenBSD machine and it works. I don't have Gentoo or NetBSD available. |
thanks! |
This looks good to me on OpenBSD. I somehow hadn't twigged that we use the pkgpath for opam-repository, and not the binary package name. I suspect we're inconsistent there -- PRs welcome if you run across any such issues @mndrix. |
Gentoo, NetBSD, and OpenBSD name packages in a /-separated
hierarchy. For example, libgmp is available as "dev-libs/gmp"
(on Gentoo[1]) or "devel/gmp" (on NetBSD[2] and OpenBSD[3]).
The first fix in this commit (the change to the
short_name
function)removes the leading "/" from the package's short name. Prior to this
commit, if
pkg
were "dev-libs/gmp", thenshort_name
would be"/gmp". That doesn't match the depext name of "gmp" so opam thought
the package wasn't installed.
OpenBSD also uses flavors and subpackages[4] in some of its package
names. For example, OpenBSD has two subpackages for the "devel/gmp"
package: main and cxx. That means that the full name for libgmp on
OpenBSD is likely to be "devel/gmp,-main". Prior to this commit,
short_name
for this package was "gmp,-main". This commit introducesno_flavor
which removes the flavors and subpackages from packagenames, if present. That causes "devel/gmp,-main" on OpenBSD to have a
no_flavor
name of "gmp". This name matches the depext name, so thatopam can recognize that libgmp is installed.
1: https://packages.gentoo.org/packages/dev-libs/gmp
2: https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/gmp/index.html
3: https://github.com/openbsd/ports/tree/b12d29201e832eb5a230d54449ff2a13502c9fbb/devel/gmp
4: https://man.openbsd.org/OpenBSD-7.0/pkgpath.7
Please update
master_changes.md
file with your changes.