LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Mariadb-10.4.8 configure error - Plugin AUTH_PAM cannot be built (https://www.linuxquestions.org/questions/slackware-14/mariadb-10-4-8-configure-error-plugin-auth_pam-cannot-be-built-4175660993/)

Ook 09-16-2019 02:59 PM

Mariadb-10.4.8 configure error - Plugin AUTH_PAM cannot be built
 
Slackware-current 64 bit, last updated this morning 9/16/2019.

I'm trying to build Mariadb-10.4.8 from source, using their mysql config:

cmake ../ -DBUILD_CONFIG=mysql_release

And it gives this error

CMake Error at cmake/plugin.cmake:284 (MESSAGE):
Plugin AUTH_PAM cannot be built

Comparing the file mysql_release.cmake to the 2.4.7 version, I find this line has been added:

SET(PLUGIN_AUTH_PAM YES)

If I change it to NO, then it builds up to this point:

[ 52%] Building CXX object storage/rocksdb/CMakeFiles/rocksdblib.dir/rocksdb/env/io_posix.cc.o
[ 52%] Building CXX object storage/rocksdb/CMakeFiles/rocksdblib.dir/build_version.cc.o
[ 52%] Linking CXX static library librocksdblib.a
[ 52%] Built target rocksdblib
make: *** [Makefile:163: all] Error 2

At which point it dies. Line 163 of the Makefile is

$(MAKE) -f CMakeFiles/Makefile2 all

Makefile2 exists, and at this point idk wtf is up or why it won't continue to build...

I tried the SlackBuild for 10.4.7, same thing. On the same box, Mariadb-10.4.7 builds just fine, both manually and with the SlackBuild.

Anyone else tried to build Mariadb-10.4.8?

PS I'm running Slackware-current, last updated this morning 9/16/2019.

ZhaoLin1457 09-16-2019 03:01 PM

Slackware has no LinuxPAM support.

Ook 09-16-2019 03:12 PM

Quote:

Originally Posted by ZhaoLin1457 (Post 6037364)
Slackware has no LinuxPAM support.

I know. That is why I disabled it. I don't think that is why it died when it did, but since it didn't tell me why, I can't be sure.

Ook 09-16-2019 04:33 PM

This seems to be where it dies:

/usr/bin/ld: skipping incompatible /usr/lib/libtinfo.so when searching for -ltinfo
/usr/bin/ld: cannot find -ltinfo

In the past, I would symlink libtinfo to libncurses to get past this, but this seems to no longer work.

volkerdi 09-16-2019 05:00 PM

Quote:

Originally Posted by Ook (Post 6037382)
This seems to be where it dies:

/usr/bin/ld: skipping incompatible /usr/lib/libtinfo.so when searching for -ltinfo
/usr/bin/ld: cannot find -ltinfo

In the past, I would symlink libtinfo to libncurses to get past this, but this seems to no longer work.

Slackware -current has a proper libtinfo, and also ships already with mariadb-10.4.8. The patch for the cmake config is the same as what you found in the OP. Not sure what's wrong with your box, but the -ltinfo issues don't happen here. I'd suggest reinstalling the ncurses package as any libtinfo hacks aren't needed anymore and would probably just cause breakage.

Ook 09-19-2019 01:45 PM

So I removed my libtinfo hacks, and reinstalled the ncurses package, as you suggested. I then ran into problems with the mariadb build provided by mariadb:

mysql
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

Looked a bit closer and found:

ldd mysql
libncurses.so.5 => not found
libtinfo.so.5 => not found

The build provided by Mariadb appears to have been compiled against the .5 version of libncurses and libtinfo. I looked at the version that comes with Slackware:

ldd mysql
libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f9e2624a000)
libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f9e26219000)

So I built mariadb using the slackbuilds script, and it worked. I then built it from source, modifying the mysql_release.cmake to not use PAM, and again it works. Cleaning up my ncurses and libtinfo mess seems to have fixed the problem.

Lesson learned: Don't rely on the build provided by Mariadb. This is not the first time I got bit by trying to use their build, I guess I did not learn my lesson the first time.

TheRealGrogan 09-19-2019 10:45 PM

That's the thing about running other people's binaries, they aren't compiled for your distribution. It's probably built on an older Ubuntu or something.

I expect that more often than not, with third party binaries and if I take such a shortcut, I expect it to fail one day after library changes. It's best to compile, or use a package built for the correct version of your distro.

Ook 09-20-2019 11:07 AM

Quote:

Originally Posted by TheRealGrogan (Post 6038457)
That's the thing about running other people's binaries, they aren't compiled for your distribution. It's probably built on an older Ubuntu or something.

I expect that more often than not, with third party binaries and if I take such a shortcut, I expect it to fail one day after library changes. It's best to compile, or use a package built for the correct version of your distro.

Agree 100%. For my production systems, I always compile from scratch. That way it's not only compiled for my build, but it's compiled *my way. I manage several Linux servers used for fax, web, email and apps, and they are pushing 100% uptime. The only downtime I can think of that was attributed to a linux problem was when they broke an ssh2 lib for php and I had to scramble to find/compile/install an older version to get it working again. That is the *only botched update I've ever seen for Slackware.

I wish i could have a dollar for every botched Windows update I've seen...

TheRealGrogan 09-20-2019 01:45 PM

Quote:

Originally Posted by Ook (Post 6038678)
I wish i could have a dollar for every botched Windows update I've seen...

I want $100 for every one, for the unbillable time it has cost me :-)


All times are GMT -5. The time now is 11:38 PM.