-
-
Notifications
You must be signed in to change notification settings - Fork 15.3k
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
ldmud: various build fixes #360262
ldmud: various build fixes #360262
Conversation
Oops. At this point, the package won't build even with this PR. Probably some change in libxml2 triggered that. |
I'll take a look |
The LDMud game driver defaults to using a legacy DES hash that is (sensibly) only enabled in the libxcrypt-legacy derivation, not libxcrypt. This commit switches LDMud to that build input instead of libxcrypt. This fixes a runtime error when calling `efun::crypt()` from LPC that would print a confusing error message like "crypt() is not available.".
A fix is underway upstream, but the release cadence is such that we should expect to fix this locally for some time.
The upstream `configure.ac`'s `AC_LANG_PROGRAM` for mysql feature detection seems to be incompatible with the `mariadb-connector-c` package, resulting in support not being detected. Digging in to the `config.log` we can see it's a type mismatch error from the test program `.c`: ``` configure:11661: checking for mySQL configure:11694: gcc -c -g -O2 -fwrapv -I/usr/inet6/include -I/nix/store/ya8wpj6dqz39024v6xrv504i9kyidpil-mariadb-connector-c-3.1.21-dev/include/mysql conftest.c >&5 conftest.c: In function 'foo': conftest.c:90:12: error: returning 'MYSQL *' {aka 'struct st_mysql *'} from a function with incompatible return type 'struct MYSQL *' [-Wincompatible-pointer-types] 90 | return &var; | ^~~~ ``` This commit resolves the issue locally by applying a small patch.
262805e
to
04704ad
Compare
@vcunat Indeed you are correct. Thanks for flagging. I pushed two commits (one fixing the |
Fixes the build and looks OK at a glance, so why not. |
libxcrypt-legacy
The LDMud game engine defaults to using a legacy DES hash that is (sensibly) only enabled in the
libxcrypt-legacy
derivation, notlibxcrypt
.This commit switches LDMud to that build input instead of
libxcrypt
. This fixes a runtime error when callingefun::crypt()
from LPC that would print a confusing error message like "crypt() is not available.".See also #223034
libxml2 2.12+ compat
The v2.12.0 release of
libxml2
changed the definition of the callback used withxmlSetStructuredErrorFunc()
(reflibxml2
NEWS).A fix is underway upstream (ldmud/ldmud#95), but the release cadence is such that we should expect to fix this locally for some time, so a local patch with a fix is applied.
mariadb-connector-c compat
The upstream
configure.ac
'sAC_LANG_PROGRAM
for mysql feature detection seems to be incompatible with themariadb-connector-c
package, resulting in support not being detected.Digging in to the
config.log
we can see it's a type mismatch error from the test program.c
:We resolves the issue locally by applying a small patch.
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.