https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Bug ID: 1083962 Summary: Review Request: maxscale - A database-centric proxy that works with MariaDB and MySQL Product: Fedora Version: rawhide Component: Package Review Severity: medium Assignee: nobody@fedoraproject.org Reporter: oe@nux.se QA Contact: extras-qa@fedoraproject.org CC: package-review@lists.fedoraproject.org
Spec URL: http://n25.nux.se/maxscale/fedora/maxscale.spec SRPM URL: http://n25.nux.se/maxscale/fedora/maxscale-0.5.0-1.fc20.src.rpm Description: A database-centric proxy that works with MariaDB and MySQL Fedora Account System Username: oden
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #1 from Oden Eriksson oe@nux.se --- http://koji.fedoraproject.org/koji/taskinfo?taskID=6701944
It won't build on arm though, and I'm not able to fix it.
However, it builds on rhel6 with sysv and fedora with systemd using conditionals.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Oden Eriksson oe@nux.se changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |177841 (FE-NEEDSPONSOR)
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=177841 [Bug 177841] Tracker: Review requests from new Fedora packagers who need a sponsor
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Volker Fröhlich volker27@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |volker27@gmx.at
--- Comment #2 from Volker Fröhlich volker27@gmx.at --- Drop "%defattr(-,root,root)"; no longer necessary, as it is default.
Use %global instead of %define.
I assume you can drop "Requires: (mariadb|mysql)-libs and -embedded" and leave the dependency generation to rpmbuild.
"%if 0%{?fedora} >= 18" is outdated.
"Requires: /sbin/ldconfig" doesn't have to be specified.
Should you add a user to run the service at?
The clean section was only necessary up to and including EL5. Same goes for buildroot and "rm -rf %{buildroot}".
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #3 from Oden Eriksson oe@nux.se --- Fixed now, thanks.
It has to pull in (mariadb|mysql)-libs as there's no autodeps generated on the required %{_datadir}/mysql/english/errmsg.sys file.
It does not support running as a unpriv user yet, maybe future versions will and then I fix that.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #4 from Honza Horak hhorak@redhat.com --- (In reply to Oden Eriksson from comment #3)
Fixed now, thanks.
It has to pull in (mariadb|mysql)-libs as there's no autodeps generated on the required %{_datadir}/mysql/english/errmsg.sys file.
It sounds like a good time to introduce such a provide name, in case some packages need it. Say something like 'mysql(errmsg.sys)'?
It does not support running as a unpriv user yet, maybe future versions will and then I fix that.
What exactly the daemon needs to have root privileges for? Wouldn't mysql user's privileges be enough? I mean the daemon would run under mysql user.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #5 from Oden Eriksson oe@nux.se --- (In reply to Honza Horak from comment #4)
(In reply to Oden Eriksson from comment #3)
Fixed now, thanks.
It has to pull in (mariadb|mysql)-libs as there's no autodeps generated on the required %{_datadir}/mysql/english/errmsg.sys file.
It sounds like a good time to introduce such a provide name, in case some packages need it. Say something like 'mysql(errmsg.sys)'?
No please don't clutter the rpm database with that. This package is an exception. The problem is that softwares using the embedded mysql server (libmysqld.x) directly needs the errmsg.sys file, otherwise libmysqld barfs. In redhat these (except english) are also under %lang control.
It does not support running as a unpriv user yet, maybe future versions will and then I fix that.
What exactly the daemon needs to have root privileges for? Wouldn't mysql user's privileges be enough? I mean the daemon would run under mysql user.
If so preferably under a new user (maxscale), but I don't really know how to do that in a good way. Using su? How to do that in systemd?
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #6 from Honza Horak hhorak@redhat.com --- (In reply to Oden Eriksson from comment #5)
(In reply to Honza Horak from comment #4)
(In reply to Oden Eriksson from comment #3)
Fixed now, thanks.
It has to pull in (mariadb|mysql)-libs as there's no autodeps generated on the required %{_datadir}/mysql/english/errmsg.sys file.
It sounds like a good time to introduce such a provide name, in case some packages need it. Say something like 'mysql(errmsg.sys)'?
No please don't clutter the rpm database with that. This package is an exception. The problem is that softwares using the embedded mysql server (libmysqld.x) directly needs the errmsg.sys file, otherwise libmysqld barfs. In redhat these (except english) are also under %lang control.
OK, so shouldn't we instead solve this in the mariadb/mysql packages, i.e. to ensure that as soon as the embedded server (libmysqld.so) is installed, there will be also the errmsg file present?
It does not support running as a unpriv user yet, maybe future versions will and then I fix that.
What exactly the daemon needs to have root privileges for? Wouldn't mysql user's privileges be enough? I mean the daemon would run under mysql user.
If so preferably under a new user (maxscale), but I don't really know how to do that in a good way. Using su? How to do that in systemd?
In systemd unit file it is very simple, just set the User= and Group= in the [Service] section of your unit file: http://www.freedesktop.org/software/systemd/man/systemd.exec.html#User=
For creating the user, consult the Users and Groups section of the Guidelines: https://fedoraproject.org/wiki/Packaging:UsersAndGroups
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #7 from Oden Eriksson oe@nux.se --- Yes, the dangling symlink will be resolved once (mariadb|mysql)-libs is pulled in.
Fixed now as well as permissions where needed.
(same release number)
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Paulo Andrade paulo.cesar.pereira.de.andrade@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |paulo.cesar.pereira.de.andr | |ade@gmail.com
--- Comment #8 from Paulo Andrade paulo.cesar.pereira.de.andrade@gmail.com --- On a quick look, I can say that I do not like when one does not run a proper "make install" in %install, this can easily break in subtle ways, if not in the first spec write, whenever the package is updated. I see the Makefile at least appears to respect $DESTDIR for the install target.
You should run "make testall" in %check and give good reasons if it does not work. This way both you and reviewer will at least have a good hint the package is functional if it pass %check.
Please post a link to the failed arm build, to have an idea of why it fails.
I suggest renaming the patches to maxscale-xyz.patch, and use "PatchN: %{name}-xyz.patch", but this is a cosmetic change, just a common pattern in fedora packages.
Instead of using CFLAGS="%{optflags} -fpie" you should use https://fedoraproject.org/wiki/Packaging:Guidelines#PIE that automatically does it for you; could then just need to force CFLAGS="%{optflags} and LDFLAGS="%{__global_ldflags}" But I am not sure if it is handled the same way for rhel.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #9 from Oden Eriksson oe@nux.se --- (In reply to Paulo Andrade from comment #8)
On a quick look, I can say that I do not like when one does not run a proper "make install" in %install, this can easily break in subtle ways, if not in the first spec write, whenever the package is updated. I see the Makefile at least appears to respect $DESTDIR for the install target.
I know. The problem is that libtool for some reason swaps linking order when relinking while doing make install. I'm not a autopoo or libtool guru enough to fix that. Upstream knows that autopoo should be implemented and this might happen in a future release.
You should run "make testall" in %check and give good reasons if it does not work. This way both you and reviewer will at least have a good hint the package is functional if it pass %check.
Same here. Poor autopoo support.
Please post a link to the failed arm build, to have an idea of why it fails.
http://koji.fedoraproject.org/koji/taskinfo?taskID=6713406
I suggest renaming the patches to maxscale-xyz.patch, and use "PatchN: %{name}-xyz.patch", but this is a cosmetic change, just a common pattern in fedora packages.
Instead of using CFLAGS="%{optflags} -fpie" you should use https://fedoraproject.org/wiki/Packaging:Guidelines#PIE that automatically does it for you; could then just need to force CFLAGS="%{optflags} and LDFLAGS="%{__global_ldflags}" But I am not sure if it is handled the same way for rhel.
No it doesn't. Sure, I could use conditionals here but...
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Christopher Meng cickumqt@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cickumqt@gmail.com
--- Comment #10 from Christopher Meng cickumqt@gmail.com --- 1. LDFLAGS? Try %{__global_ldflags} macro.
2. MaxScale is an open-source, database-centric proxy that works with MariaDB and MySQL
Dot should be at the end, right?
3. Do you manage your software with no configure system? I hope you can persuade someone to do that(CMake or autocrap, up to you :)
--------------------ARM--------------------
Error output:
skygw_utils.cc: In function 'int atomic_add(int*, int)': skygw_utils.cc:144:15: error: impossible constraint in 'asm' : "memory" );
Code block:
int atomic_add( int *variable, int value) { asm volatile( "lock; xaddl %%eax, %2;" :"=a" (value) : "a" (value), "m" (*variable) : "memory" ); return value; }
Looks like it used some special hacks to suppress the compiler? I think that volatile may bring some drastic effects to ARM platform.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #11 from Paulo Andrade paulo.cesar.pereira.de.andrade@gmail.com --- (In reply to Christopher Meng from comment #10)
LDFLAGS? Try %{__global_ldflags} macro.
MaxScale is an open-source, database-centric proxy that works with
MariaDB and MySQL
Dot should be at the end, right?
- Do you manage your software with no configure system? I hope you can
persuade someone to do that(CMake or autocrap, up to you :)
--------------------ARM--------------------
Error output:
skygw_utils.cc: In function 'int atomic_add(int*, int)': skygw_utils.cc:144:15: error: impossible constraint in 'asm' : "memory" );
Code block:
int atomic_add( int *variable, int value) { asm volatile( "lock; xaddl %%eax, %2;" :"=a" (value) : "a" (value), "m" (*variable) : "memory" ); return value; }
Looks like it used some special hacks to suppress the compiler? I think that volatile may bring some drastic effects to ARM platform.
This looks bad. $ grep -r atomic_add maxscale-0.5.0/ | wc -l 68 $ grep -l -r atomic_add maxscale-0.5.0|wc -l 18 Used 68 times in 18 files.
The problem obviously is that it is ix86/x86_64 code. For arm AFAIK there are two way to implement it in asm, depending on if using arm or thumb instruction set. But the proper solution would be using gcc __atomic_add_fetch, untested should be to rewrite atomic_add body as:
__atomic_add_fetch(variable, value, MEMMODEL_ACQ_REL);
but this is "relatively" new, for gcc4 family it was named
__sync_fetch_and_add.
Obviously could make it conditional and only support other architectures if using a gcc new enough that supports it.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #12 from Paulo Andrade paulo.cesar.pereira.de.andrade@gmail.com --- (In reply to Oden Eriksson from comment #9)
(In reply to Paulo Andrade from comment #8)
On a quick look, I can say that I do not like when one does not run a proper "make install" in %install, this can easily break in subtle ways, if not in the first spec write, whenever the package is updated. I see the Makefile at least appears to respect $DESTDIR for the install target.
I know. The problem is that libtool for some reason swaps linking order when relinking while doing make install. I'm not a autopoo or libtool guru enough to fix that. Upstream knows that autopoo should be implemented and this might happen in a future release.
Can you give a few more details, like an example of what it does wrong? Anyway, let me do it :-) <my test> Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.dP7HCf + umask 022 + cd /home/pcpa/rpmbuild/BUILD + '[' /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 '!=' / ']' + rm -rf /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 ++ dirname /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 + mkdir -p /home/pcpa/rpmbuild/BUILDROOT + mkdir /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 + cd maxscale-0.5.0 + make install DESTDIR=/home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 (cd server; make DESTDIR=/home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 install) make[1]: Entering directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/server' install -b MaxScale_template.cnf /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/etc install ../Documentation/*.pdf /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/share/doc/maxscale (cd core; make DESTDIR=/home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 install) make[2]: Entering directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/server/core' install -c -d /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/bin libtool --mode=install install -c -m 755 maxscale /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/bin libtool: install: install -c -m 755 maxscale /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/bin/maxscale libtool --mode=install install -c -m 755 maxkeys /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/bin libtool: install: install -c -m 755 maxkeys /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/bin/maxkeys libtool --mode=install install -c -m 755 maxpasswd /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/bin libtool: install: install -c -m 755 maxpasswd /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/bin/maxpasswd #install -c -d /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/lib #install -c -D /home/pcpa/usr/lib64/libmysqld.a /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/lib #install -c -d /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/MaxScale/mysql #install -c /home/pcpa/usr/share/mysql/errmsg.sys /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/MaxScale/mysql make[2]: Leaving directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/server/core' (cd modules/routing; make DESTDIR=/home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64 install) make[2]: Entering directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/server/modules/routing' install -c -d /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/lib/maxscale/modules libtool --mode=install install -c libtestroute.la /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/lib/maxscale/modules libtool: install: error: cannot install `libtestroute.la' to a directory not ending in /usr/lib64/maxscale/modules make[2]: *** [install] Error 1 make[2]: Leaving directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/server/modules/routing' make[1]: *** [install] Error 2 make[1]: Leaving directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/server' make: *** [install] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.dP7HCf (%install)
RPM build errors: Bad exit status from /var/tmp/rpm-tmp.dP7HCf (%install) </my test>
At first, apparently it is not properly replacing $(libdir), i.e. lib != lib64 (probably make install would work on i586).
You should run "make testall" in %check and give good reasons if it does not work. This way both you and reviewer will at least have a good hint the package is functional if it pass %check.
Same here. Poor autopoo support.
Do you mean "make testall" only works after installing to / instead of %{buildroot}?
<my test> + make testall make -C test HAVE_SRV=Y testall make[1]: Entering directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/test' make cleantests make[2]: Entering directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/test' rm -fr *~ make -C /home/pcpa/src/bazaar/tmp/maxscale/log_manager cleantests make: Entering an unknown directory make: *** /home/pcpa/src/bazaar/tmp/maxscale/log_manager: No such file or directory. Stop. make: Leaving an unknown directory make[2]: *** [cleantests] Error 2 make[2]: Leaving directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/test' make[1]: *** [testall] Error 2 make[1]: Leaving directory `/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/test' make: *** [testall] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.FbAJsu (%check) </my test>
Looks like something is improperly hardcoded ($HOME/src/bazaar/tmp/maxscale)
Please post a link to the failed arm build, to have an idea of why it fails.
http://koji.fedoraproject.org/koji/taskinfo?taskID=6713406
I suggest renaming the patches to maxscale-xyz.patch, and use "PatchN: %{name}-xyz.patch", but this is a cosmetic change, just a common pattern in fedora packages.
Instead of using CFLAGS="%{optflags} -fpie" you should use https://fedoraproject.org/wiki/Packaging:Guidelines#PIE that automatically does it for you; could then just need to force CFLAGS="%{optflags} and LDFLAGS="%{__global_ldflags}" But I am not sure if it is handled the same way for rhel.
No it doesn't. Sure, I could use conditionals here but...
My instinct says epel6 supports it :-) Do you need it this package in rhel5?
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #13 from Oden Eriksson oe@nux.se --- I'm back.
There is nothing more I can do to the source code to make it conform to the requests made in this bugreport. The source surely needs good autopoo but for now there is none. It builds, it installs, it works, should be enough, no?
$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiago)
$ rpm --eval %{__global_ldflags} %{__global_ldflags}
The intended target was RHEL6, RHEL7 and fedora+ using just one source rpm package. But, on RHEL6 I just realized it needs a newer mariadb version so I removed RHEL6 support from this package. I think when I worked with this I must have had the yum.mariadb.org mariadb packages installed. Heh.
New spec and src.rpm files up at the same location.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Christopher Meng cickumqt@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|cickumqt@gmail.com |
--- Comment #14 from Christopher Meng cickumqt@gmail.com --- (In reply to Oden Eriksson from comment #13)
$ rpm --eval %{__global_ldflags} %{__global_ldflags}
Remember using this:
%{?__global_ldflags}
EL systems don't contain this macro(don't ask me why).
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #15 from Paulo Andrade paulo.cesar.pereira.de.andrade@gmail.com --- (In reply to Oden Eriksson from comment #13)
I'm back.
Sorry for the delay, did not reply earlier because I did want to try to help and work a bit on it to help it getting fixed...
There is nothing more I can do to the source code to make it conform to the requests made in this bugreport. The source surely needs good autopoo but for now there is none. It builds, it installs, it works, should be enough, no?
I cannot confirm it works, %check (make testall) does not work either :-)
I started patching it a bit to get "make install" to work, but it really is quite broken... starting with a simple:
%if %__isa_bits == 64 sed -i 's|(libdir = ).*|\1%{_libdir}|' makefile.inc %endif
I got past the first error I noticed in #12, but then, in make install there are bad dependencies, so I started running make install in subdirectories, at first "log_manager" and "query_classifier", but the problem is that it fails to link because it installs query_classifier stuff in /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/lib64/maxscale/modules/ instead of home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/lib64/ and then fails to link; sample error message from where I stopped:
---%<--- libtool: install: (cd /home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/server/modules/routing/readwritesplit; /bin/sh /usr/bin/libtool --tag CC --mode=relink cc -c -fPIC -I/usr/include -I../../include -I../../../include -I/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/log_manager -I/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/utils -I/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/query_classifier -I/usr/include/mysql/ -I/usr/include/mysql/private/ -I/usr/include/mysql/extra/ -Wall -g -Wall -fPIC -shared -L/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/log_manager -L/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/query_classifier -L/usr/lib64 -rpath /usr/lib64/maxscale/modules -avoid-version -module -o libreadwritesplit.la readwritesplit.o /home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/utils/skygw_utils.o -lssl -pthread -L/usr/lib64/mysql -lmysqld /home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/query_classifier/libquery_classifier.la /home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/log_manager/liblog_manager.la -inst-prefix-dir /home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64)
*** Warning: Linking the shared library libreadwritesplit.la against the non-libtool *** objects readwritesplit.o /home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/utils/skygw_utils.o is not portable! libtool: relink: gcc -shared -fPIC -DPIC readwritesplit.o /home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/utils/skygw_utils.o -L/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/log_manager -L/home/pcpa/rpmbuild/BUILD/maxscale-0.5.0/query_classifier -L/usr/lib64 -lssl -L/usr/lib64/mysql -L/home/pcpa/rpmbuild/BUILDROOT/maxscale-0.5.0-1.fc21.x86_64/usr/lib64 -lquery_classifier -lpthread -lmysqld -llog_manager -pthread -pthread -Wl,-soname -Wl,libreadwritesplit.so -o .libs/libreadwritesplit.so /usr/bin/ld: cannot find -lquery_classifier collect2: error: ld returned 1 exit status ---%<---
BTW, I also made a this quick/hacked patch to get a bit further in %install: ---%<--- diff -up maxscale-0.5.0/query_classifier/query_classifier.cc.orig maxscale-0.5.0/query_classifier/query_classifier.cc --- maxscale-0.5.0/query_classifier/query_classifier.cc.orig 2014-05-02 12:16:02.583431844 -0300 +++ maxscale-0.5.0/query_classifier/query_classifier.cc 2014-05-02 12:19:05.693438856 -0300 @@ -35,21 +35,19 @@ #include "../utils/skygw_debug.h" #include <log_manager.h>
-#include <mysql.h> -#include <my_sys.h> -#include <my_global.h> -#include <my_dbug.h> -#include <my_base.h> -#include <sql_list.h> -#include <mysqld_error.h> -#include <sql_class.h> -#include <sql_lex.h> -#include <embedded_priv.h> -#include <sql_class.h> -#include <sql_lex.h> -#include <sql_parse.h> -#include <errmsg.h> -#include <client_settings.h> +#include <mysql/mysql.h> +#include <mysql/my_sys.h> +#include <mysql/my_global.h> +#include <mysql/my_dbug.h> +#include <mysql/private/my_base.h> +#include <mysql/private/sql_list.h> +#include <mysql/mysqld_error.h> +#include <mysql/private/sql_class.h> +#include <mysql/private/sql_lex.h> +#include <mysql/private/embedded_priv.h> +#include <mysql/private/sql_parse.h> +#include <mysql/errmsg.h> +#include <mysql/private/client_settings.h>
#include <item_func.h>
---%<---
as well as a quick/hacked patch to build_gateway.inc, i.e.
sed -i 's|$(HOME)||g' build_gateway.inc sed -i "s|(ROOT_PATH := ).*|\1$PWD|" build_gateway.inc %if %__isa_bits == 32 sed -i 's|lib64|lib|g' build_gateway.inc %endif
$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiago)
$ rpm --eval %{__global_ldflags} %{__global_ldflags}
The intended target was RHEL6, RHEL7 and fedora+ using just one source rpm package. But, on RHEL6 I just realized it needs a newer mariadb version so I removed RHEL6 support from this package. I think when I worked with this I must have had the yum.mariadb.org mariadb packages installed. Heh.
New spec and src.rpm files up at the same location.
You should bump the release when asking for a new review.
For the moment, I am sorry but I cannot give a positive review if "make install" and "make testall" are not patched to work.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #16 from Oden Eriksson oe@nux.se --- Back. Sorry for the delay.
I will try to solve that make install problem.
However:
%check make testall
Wouldn't be a problem but requires quite a few steps that one needs to do manually as of the README file:
********************************************************
\section Testing Running MaxScale testsuite
To run "make testall" you need to have three mysqld servers running on localhost:
* a master on port 3000, with server_id=2 * a slave on port 3001, server_id doesn't matter * a slave on port 2002, server_id doesn't matter
On the master full privileges on the databases "test" and "FOO" are needed, on the saves SELECT permissions on test.* should be sufficient.
You can use different port numbers but you'll have to change the server settings at the end of server/test/MaxScale_test.cnf then.
You also always need to edit the top level test.inc file, this file contains appropriate default values for the test setup as described above, these are only given as comments though ...
You can then run the full testsuite using
make testall
in the top level directory. After testing has finished you can find a full testlog in test/test_maxscale.log
You may also find additional information in the following component specific logs:
utils/test/testutils.log query_classifier/test/testqclass.log server/test/MaxScale/log/skygw_msg1.log server/test/MaxScale/log/skygw_err1.log server/test/MaxScale/log/skygw_trace1.log server/test/MaxScale/log/skygw_debug1.log server/test/testserver.log server/core/test/testhash.log test/test_maxscale.log
********************************************************
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #17 from Oden Eriksson oe@nux.se --- Okidoki. New take on this.
http://nux.se/maxscale/maxscale.spec http://nux.se/maxscale/maxscale-1.0.1-0.0.beta.1.fc20.src.rpm
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #18 from Paulo Andrade paulo.cesar.pereira.de.andrade@gmail.com --- Sorry for the delay looking into it again. It is failing to build. Note that reviews usually should be done on rawhide, so, I suppose you tested it on fedora 20.
$ fedora-review -b 1083962 INFO: Processing bugzilla bug: 1083962 INFO: Getting .spec and .srpm Urls from : 1083962 INFO: --> SRPM url: http://nux.se/maxscale/maxscale-1.0.1-0.0.be$ fedora-review -b 1083962 INFO: Processing bugzilla bug: 1083962 INFO: Getting .spec and .srpm Urls from : 1083962 INFO: --> SRPM url: http://nux.se/maxscale/maxscale-1.0.1-0.0.beta.1.fc20.src.rpm INFO: --> Spec url: http://nux.se/maxscale/maxscale.spec INFO: Using review directory: /home/pcpa/rpmbuild/1083962-maxscale INFO: Downloading .spec and .srpm files INFO: No upstream for (Source2): maxscale.logrotate.systemd INFO: No upstream for (Source3): maxscale.profile.d INFO: Downloading (Source0): https://downloads.mariadb.com/files/SkySQL/MaxScale/maxscale-1.0.1-beta/maxs... INFO: No upstream for (Source1): maxscale.service INFO: No upstream for (Source4): maxscale.sysconfig INFO: No upstream for (Source5): maxscale.tmpfiles.d INFO: Running checks and generating report ERROR: Exception(/home/pcpa/rpmbuild/1083962-maxscale/srpm/maxscale-1.0.1-0.0.beta.1.fc20.src.rpm) Config(fedora-rawhide-x86_64) 4 minutes 41 seconds INFO: Results and/or logs in: /home/pcpa/rpmbuild/1083962-maxscale/results ERROR: Command failed. See logs for output. ERROR: 'mock build failed, see /home/pcpa/rpmbuild/1083962-maxscale/results/build.log'ta.1.fc20.src.rpm INFO: --> Spec url: http://nux.se/maxscale/maxscale.spec INFO: Using review directory: /home/pcpa/rpmbuild/1083962-maxscale INFO: Downloading .spec and .srpm files INFO: No upstream for (Source2): maxscale.logrotate.systemd INFO: No upstream for (Source3): maxscale.profile.d INFO: Downloading (Source0): https://downloads.mariadb.com/files/SkySQL/MaxScale/maxscale-1.0.1-beta/maxs... INFO: No upstream for (Source1): maxscale.service INFO: No upstream for (Source4): maxscale.sysconfig INFO: No upstream for (Source5): maxscale.tmpfiles.d INFO: Running checks and generating report ERROR: Exception(/home/pcpa/rpmbuild/1083962-maxscale/srpm/maxscale-1.0.1-0.0.beta.1.fc20.src.rpm) Config(fedora-rawhide-x86_64) 4 minutes 41 seconds INFO: Results and/or logs in: /home/pcpa/rpmbuild/1083962-maxscale/results ERROR: Command failed. See logs for output. ERROR: 'mock build failed, see /home/pcpa/rpmbuild/1083962-maxscale/results/build.log'
The build log is: ---%<--- Mock Version: 1.2.2 ENTER do(['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/maxscale.spec'], user='mockbuild'timeout=0uid=1000gid=986chrootPath='/var/lib/mock/fedora-rawhide-x86_64/root'env={'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'CCACHE_UMASK': '002', 'HOSTNAME': 'mock', 'LANG': 'en_US.UTF-8', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'SHELL': '/bin/bash', 'CCACHE_DIR': '/tmp/ccache', 'HOME': '/builddir', 'TERM': 'vt100'}logger=<mockbuild.trace_decorator.getLog object at 0x7f1de1875518>shell=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/maxscale.spec'] with env {'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'CCACHE_UMASK': '002', 'HOSTNAME': 'mock', 'LANG': 'en_US.UTF-8', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'SHELL': '/bin/bash', 'CCACHE_DIR': '/tmp/ccache', 'HOME': '/builddir', 'TERM': 'vt100'} Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/maxscale-1.0.1-0.0.beta.1.fc22.src.rpm Child return code was: 0 LEAVE do -->
ENTER do(['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/maxscale.spec '], user='mockbuild'timeout=0uid=1000gid=986chrootPath='/var/lib/mock/fedora-rawhide-x86_64/root'env={'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'CCACHE_UMASK': '002', 'HOSTNAME': 'mock', 'LANG': 'en_US.UTF-8', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'SHELL': '/bin/bash', 'CCACHE_DIR': '/tmp/ccache', 'HOME': '/builddir', 'TERM': 'vt100'}logger=<mockbuild.trace_decorator.getLog object at 0x7f1de1875518>shell=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/maxscale.spec '] with env {'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'CCACHE_UMASK': '002', 'HOSTNAME': 'mock', 'LANG': 'en_US.UTF-8', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'SHELL': '/bin/bash', 'CCACHE_DIR': '/tmp/ccache', 'HOME': '/builddir', 'TERM': 'vt100'} Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.qKP9hn + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf maxscale-1.0.1-beta + /usr/bin/gzip -dc /builddir/build/SOURCES/maxscale.src.1.0.1-beta.tar.gz + /usr/bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd maxscale-1.0.1-beta + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . Patch #0 (maxscale-1.0.1-beta-pidfile.diff): + echo 'Patch #0 (maxscale-1.0.1-beta-pidfile.diff):' + /usr/bin/cat /builddir/build/SOURCES/maxscale-1.0.1-beta-pidfile.diff + /usr/bin/patch -p0 --fuzz=0 patching file server/core/gateway.c + perl -pi -e 's|-Wall -fPIC|-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fPIC|g' CMakeLists.txt + find -type f -name '*.c' + xargs perl -pi -e 's|/usr/local/skysql/MaxScale|/var/log/maxscale|g' + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.o5cZiV + umask 022 + cd /builddir/build/BUILD + cd maxscale-1.0.1-beta + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' + export CFLAGS + CXXFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' + export CXXFLAGS + FFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -I/usr/lib64/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -I/usr/lib64/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + export LDFLAGS + /usr/bin/cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON -DSTATIC_EMBEDDED=false -DEMBEDDED_LIB=/usr/lib64/mysql -DINSTALL_DIR=/builddir/build/BUILDROOT/maxscale-1.0.1-0.0.beta.1.fc22.x86_64/var/lib/maxscale -DCMAKE_INSTALL_PREFIX=/builddir/build/BUILDROOT/maxscale-1.0.1-0.0.beta.1.fc22.x86_64/var/lib/maxscale -DINSTALL_SYSTEM_FILES=0 -DCMAKE_SKIP_INSTALL_RPATH=1 -DCMAKE_SKIP_RPATH=1 -- The C compiler identification is GNU 4.9.2 -- The CXX compiler identification is GNU 4.9.2 -- Check for working C compiler: /usr/lib64/ccache/cc -- Check for working C compiler: /usr/lib64/ccache/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/lib64/ccache/c++ -- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Using MySQL headers found at: CMake Error at macros.cmake:111 (message): Fatal Error: The errmsg.sys file was not found, please define the path to it by using -DERRMSG=<path> Call Stack (most recent call first): CMakeLists.txt:14 (check_dirs) -- Configuring incomplete, errors occurred! See also "/builddir/build/BUILD/maxscale-1.0.1-beta/CMakeFiles/CMakeOutput.log". RPM build errors: error: Bad exit status from /var/tmp/rpm-tmp.o5cZiV (%build) Bad exit status from /var/tmp/rpm-tmp.o5cZiV (%build) Child return code was: 1 EXCEPTION: Command failed. See logs for output. # bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/maxscale.spec Traceback (most recent call last): File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace result = func(*args, **kw) File "/usr/lib/python3.4/site-packages/mockbuild/util.py", line 481, in do raise mockbuild.exception.Error("Command failed. See logs for output.\n # %s" % (command,), child.returncode) mockbuild.exception.Error: Command failed. See logs for output. # bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/maxscale.spec LEAVE do --> EXCEPTION RAISED ---%<---
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #19 from Honza Horak hhorak@redhat.com --- Heya, I've prepared a reworked maxscale package, basically reworked Oden's spec.. Feel free to look at it: http://hhorak.fedorapeople.org/maxscale
Builds in copr: https://copr.fedoraproject.org/coprs/hhorak/MaxScale/
It has currently still some issues: * it uses rpath to link with modules under /usr/lib64/maxscale * the test-suite is not running
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #20 from Oden Eriksson oe@nux.se --- Heya to you too :-)
Years later, based on http://hhorak.fedorapeople.org/maxscale and the Mageia package maxscale-1.3.0-3.mga6.src.rpm I have a new candidate up on my site here:
http://nux.se/maxscale/ http://nux.se/maxscale/maxscale-1.3.0-1.el7.centos.src.rpm http://nux.se/maxscale/maxscale.spec
Please test this one.
Cheers.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #21 from Honza Horak hhorak@redhat.com --- Does it build fine for you in koji/mock? Because it does not for me:
In rawhide I see this error: "Could not find liblzma"
In f23 I see this error instead: "/builddir/build/BUILD/MaxScale-1.3.0/server/include/maxscale_pcre2.h:26:19: fatal error: pcre2.h: No such file or directory "
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #22 from Oden Eriksson oe@nux.se --- No, I didn't try to build it until now. I was unable to install rawhide so used f23, but I get:
cd /home/oden/RPM/BUILD/MaxScale-1.3.0/server/core && /usr/bin/cmake -E cmake_link_script CMakeFiles/maxkeys.dir/link.txt --verbose=1 /usr/bin/c++ -Wall -Wno-unused-variable -Wno-unused-function -fPIC -ggdb -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld CMakeFiles/maxkeys.dir/maxkeys.c.o CMakeFiles/maxkeys.dir/spinlock.c.o CMakeFiles/maxkeys.dir/secrets.c.o CMakeFiles/maxkeys.dir/utils.c.o CMakeFiles/maxkeys.dir/gwdirs.c.o CMakeFiles/maxkeys.dir/random_jkiss.c.o CMakeFiles/maxkeys.dir/__/__/log_manager/log_manager.cc.o -o maxkeys -rdynamic ../../utils/libutils.a -lpthread -lcrypt -lcrypto ../../pcre2/libpcre2-8.a -lstdc++ -Wl,-rpath,:::::::::::::::::::: /usr/bin/ld: ../../pcre2/libpcre2-8.a(pcre2_compile.c.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC ../../pcre2/libpcre2-8.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status server/core/CMakeFiles/maxkeys.dir/build.make:255: recipe for target 'server/core/maxkeys' failed
I added "BuildRequires: xz-devel" to pull in liblzma devel.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #23 from Oden Eriksson oe@nux.se --- FYI: https://jira.mariadb.org/browse/MXS-597
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #24 from Oden Eriksson oe@nux.se --- That -fPIC problem is fixed with:
https://github.com/mariadb-corporation/MaxScale/commit/c8253cc7676aca3a74830...
The package builds fine in rawhide now, but I prefer to wait until they fix MXS-597.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #25 from Oden Eriksson oe@nux.se --- Okidoki. New package:
http://nux.se/maxscale/maxscale.spec http://nux.se/maxscale/maxscale-1.3.0-2.fc24.src.rpm
* Tue 08 Mar 2016 01:00:00 PM CET Oden Eriksson oe@nux.se 1.3.0-2 - sync with maxscale-1.3.0-5.mga6.src.rpm: - build against system pcre2 libs
$ rpm -qp --requires /home/oden/RPM/RPMS/x86_64/maxscale-1.3.0-2.fc24.x86_64.rpm | grep pcre libpcre.so.1()(64bit) libpcre2-8.so.0()(64bit)
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Honza Horak hhorak@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|nobody@fedoraproject.org |hhorak@redhat.com
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #26 from Honza Horak hhorak@redhat.com --- There are only couple of issues, but it looks good generally.
Package Review ==============
Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed
Issues: ======= - Package does not contain duplicates in %files. Note: warning: File listed twice: /usr/share/maxscale/COPYRIGHT See: http://fedoraproject.org/wiki/Packaging/Guidelines#DuplicateFiles - All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. Note: These BR are not needed: redhat-rpm-config See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 - ldconfig called in %post and %postun if required. Note: /sbin/ldconfig not called in maxscale See: http://fedoraproject.org/wiki/Packaging/Guidelines#Shared_Libraries - Package must own all directories that it creates. Note: Directories without known owners: /etc/logrotate.d, /var/lib/maxscale/etc
===== MUST items =====
C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [!]: Rpath absent or only used for internal libs. Note: See rpmlint output
RPATH is actually defined in binaries and libraries (plugins)
[x]: Header files in -devel subpackage, if present. [x]: Package does not contain any libtool archives (.la)
Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "GPL (v2 or later) (with incorrect FSF address)", "GPL (v2 or later)", "LGPL (v2.1)", "Unknown or generated". 41 files have unknown license. Detailed output of licensecheck in /home/hhorak/tmp/maxscale- review/1083962-maxscale/licensecheck.txt
This combination is valid.
[x]: License file installed when any subpackage combination is installed. [!]: Package requires other packages for directories it uses. Note: No known owner of /var/lib/maxscale/etc
This should be fixed.
[!]: Package must own all directories that it creates. Note: Directories without known owners: /etc/logrotate.d, /var/lib/maxscale/etc
This should be fixed.
[x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception.
It would be better to remove bundled pcre2 from source to be sure it is not used during build.
[x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [-]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [x]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [x]: Package does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: %config files are marked noreplace or the reason is justified. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: No %config files under /usr. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local
Perl: [x]: Package contains the mandatory BuildRequires and Requires:. Note: Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) missing?
===== SHOULD items =====
Generic: [x]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). [-]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in maxscale-debuginfo [?]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [!]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [?]: Package should compile and build into binary rpms on all supported architectures. [!]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Files in /run, var/run and /var/lock uses tmpfiles.d when appropriate [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Uses parallel make %{?_smp_mflags} macro. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified.
===== EXTRA items =====
Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM.
Rpmlint ------- Checking: maxscale-1.3.0-2.fc23.x86_64.rpm maxscale-debuginfo-1.3.0-2.fc23.x86_64.rpm maxscale-1.3.0-2.fc23.src.rpm maxscale.x86_64: E: explicit-lib-dependency mariadb-libs maxscale.x86_64: W: spelling-error Summary(en_US) centric -> eccentric, centrist, concentric maxscale.x86_64: W: spelling-error %description -l en_US centric -> eccentric, centrist, concentric maxscale.x86_64: W: spelling-error %description -l en_US pluggable -> plug gable, plug-gable, plugged maxscale.x86_64: W: spelling-error %description -l en_US customisation -> customization, accusation maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libmaxinfo.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtestfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libdebugcli.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libhintfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxscale ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: missing-call-to-setgroups-before-setuid /usr/bin/maxscale maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libmysqlmon.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libschemarouter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtee.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/liblog_manager.so.1.0.0 ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libgaleramon.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxbinlogcheck ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxpasswd ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libreadwritesplit.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libshardrouter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxkeys ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libHTTPD.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libMySQLBackend.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libnamedserverfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libqlafilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libreadconnroute.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libbinlogrouter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtopfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtelnetd.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libMySQLClient.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libndbclustermon.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libregexfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libdbfwfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/libquery_classifier.so.1.0.0 ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libmaxscaled.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxadmin ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libcli.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: W: dangling-symlink /var/lib/maxscale/errmsg.sys /usr/share/mariadb/english/errmsg.sys maxscale.x86_64: E: postin-without-ldconfig /usr/lib64/liblog_manager.so.1.0.0 maxscale.x86_64: E: postun-without-ldconfig /usr/lib64/liblog_manager.so.1.0.0 maxscale.x86_64: W: non-standard-uid /var/run/maxscale maxscale maxscale.x86_64: W: non-standard-gid /var/run/maxscale maxscale maxscale.x86_64: E: dir-or-file-in-var-run /var/run/maxscale maxscale.x86_64: W: non-standard-uid /var/lib/maxscale/etc/.secrets maxscale maxscale.x86_64: W: non-standard-gid /var/lib/maxscale/etc/.secrets maxscale maxscale.x86_64: W: hidden-file-or-dir /var/lib/maxscale/etc/.secrets maxscale.x86_64: E: non-readable /var/lib/maxscale/etc/.secrets 400 maxscale.x86_64: E: zero-length /var/lib/maxscale/etc/.secrets maxscale.x86_64: E: non-executable-script /usr/share/maxscale/plugins/nagios/check_maxscale_monitors.pl 644 /usr/bin/perl maxscale.x86_64: W: devel-file-in-non-devel-package /usr/lib64/liblog_manager.so maxscale.x86_64: W: non-standard-uid /var/lib/maxscale maxscale maxscale.x86_64: W: non-standard-gid /var/lib/maxscale maxscale maxscale.x86_64: E: non-standard-dir-perm /var/lib/maxscale 750 maxscale.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libquery_classifier.so maxscale.x86_64: E: non-executable-script /usr/share/maxscale/plugins/nagios/check_maxscale_threads.pl 644 /usr/bin/perl maxscale.x86_64: W: non-standard-uid /var/log/maxscale maxscale maxscale.x86_64: W: non-standard-gid /var/log/maxscale maxscale maxscale.x86_64: E: non-standard-dir-perm /var/log/maxscale 750 maxscale.x86_64: E: postin-without-ldconfig /usr/lib64/libquery_classifier.so.1.0.0 maxscale.x86_64: E: postun-without-ldconfig /usr/lib64/libquery_classifier.so.1.0.0 maxscale.x86_64: W: non-standard-gid /etc/maxscale.cnf maxscale maxscale.x86_64: E: non-readable /etc/maxscale.cnf 640 maxscale.x86_64: E: non-executable-script /usr/share/maxscale/plugins/nagios/check_maxscale_resources.pl 644 /usr/bin/perl maxscale.x86_64: W: no-manual-page-for-binary maxkeys maxscale.x86_64: W: no-manual-page-for-binary maxpasswd maxscale.x86_64: W: no-manual-page-for-binary maxbinlogcheck maxscale.x86_64: W: no-manual-page-for-binary maxadmin maxscale.x86_64: W: percent-in-%post maxscale.x86_64: W: dangerous-command-in-%post chmod maxscale.src: W: spelling-error Summary(en_US) centric -> eccentric, centrist, concentric maxscale.src: W: spelling-error %description -l en_US centric -> eccentric, centrist, concentric maxscale.src: W: spelling-error %description -l en_US pluggable -> plug gable, plug-gable, plugged maxscale.src: W: spelling-error %description -l en_US customisation -> customization, accusation maxscale.src:104: W: macro-in-comment %check maxscale.src:107: W: make-check-outside-check-section # make testcore || : 3 packages and 0 specfiles checked; 46 errors, 29 warnings.
Rpmlint (debuginfo) ------------------- Checking: maxscale-debuginfo-1.3.0-2.fc23.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings.
Rpmlint (installed packages) ---------------------------- sh: /usr/bin/python: No such file or directory maxscale.x86_64: E: explicit-lib-dependency mariadb-libs maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 my_charset_bin maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mxs_log_tls maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 PSI_server maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 unknown_sqlstate maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 system_charset_info maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 bool_typelib maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 embedded_methods maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mxs_log_enabled_priorities maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 Sys_autocommit_ptr maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 sql_command_flags maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mxs_log_session_count maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 set_mysql_error maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mysql_options maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 THD::reset_for_next_command() maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 free_old_query maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mysql_init maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 is_log_table_write_query(enum_sql_command) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 THD::end_statement() maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 my_strdup maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 gwbuf_get_buffer_object_data maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 check_embedded_connection maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 find_type(st_typelib const*, char const*, unsigned int, bool) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 is_update_query(enum_sql_command) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mysql_close maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 Yacc_state::~Yacc_state() maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 my_strndup maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 THD::clear_data_list() maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 init_embedded_mysql maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 parse_sql(THD*, Parser_state*, Object_creation_ctx*, bool) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mysql_error maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 my_free maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 THD::store_globals() maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 Lex_input_stream::init(THD*, char*, unsigned int) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 gwbuf_add_buffer_object maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 replace_quoted maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 Set_signal_information::clear() maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mysql_errno maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 replace_literal maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 mxs_log_message maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 create_embedded_thd maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/libquery_classifier.so.1.0.0 alloc_query(THD*, char const*, unsigned int) maxscale.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libquery_classifier.so.1.0.0 /lib64/libm.so.6 maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/libquery_classifier.so.1.0.0 ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libreadwritesplit.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libMySQLClient.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxadmin ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxbinlogcheck ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtopfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libHTTPD.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libregexfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxscale ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: missing-call-to-setgroups-before-setuid /usr/bin/maxscale maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxkeys ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libMySQLBackend.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libhintfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libqlafilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libshardrouter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libgaleramon.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libreadconnroute.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libcli.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_thread_done(skygw_thread_st*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 simple_mutex_lock maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 release_lock maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_file_init(char*, char*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_message_done maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 mlist_init(mlist_st*, mlist_cursor_st**, char*, void (*)(void*), int) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_thread_start(skygw_thread_st*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 mlist_done(mlist_st*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_file_alloc(char*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_file_close(skygw_file_st*, bool) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_message_send maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_thread_must_exit maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 snprint_timestamp_hp(char*, unsigned long) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 get_decimal_len maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 snprint_timestamp(char*, unsigned long) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_file_free(skygw_file_st*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_message_init maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 atomic_add maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_file_write(skygw_file_st*, void*, unsigned long, bool) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 simple_mutex_done maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 get_timestamp_len_hp() maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 simple_mutex_unlock maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 simple_mutex_init maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 mlist_add_data_nomutex(mlist_st*, void*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_thread_init(char const*, void* (*)(void*), void*) maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 acquire_lock maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_thread_get_data maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_message_wait maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 skygw_thread_set_exitflag maxscale.x86_64: W: undefined-non-weak-symbol /usr/lib64/liblog_manager.so.1.0.0 get_timestamp_len() maxscale.x86_64: W: unused-direct-shlib-dependency /usr/lib64/liblog_manager.so.1.0.0 /lib64/libaio.so.1 maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/liblog_manager.so.1.0.0 ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtelnetd.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libmysqlmon.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/bin/maxpasswd ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtestfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libtee.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libdebugcli.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libndbclustermon.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libschemarouter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libmaxinfo.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libbinlogrouter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libnamedserverfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libmaxscaled.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/maxscale/libdbfwfilter.so ['', '/usr/lib64/maxscale'] maxscale.x86_64: E: postin-without-ldconfig /usr/lib64/libquery_classifier.so.1.0.0 maxscale.x86_64: E: postun-without-ldconfig /usr/lib64/libquery_classifier.so.1.0.0 maxscale.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libquery_classifier.so maxscale.x86_64: W: non-standard-uid /var/lib/maxscale maxscale maxscale.x86_64: W: non-standard-gid /var/lib/maxscale maxscale maxscale.x86_64: E: non-standard-dir-perm /var/lib/maxscale 750 maxscale.x86_64: W: non-standard-uid /var/lib/maxscale/etc/.secrets maxscale maxscale.x86_64: W: non-standard-gid /var/lib/maxscale/etc/.secrets maxscale maxscale.x86_64: W: hidden-file-or-dir /var/lib/maxscale/etc/.secrets maxscale.x86_64: E: non-readable /var/lib/maxscale/etc/.secrets 400 maxscale.x86_64: E: zero-length /var/lib/maxscale/etc/.secrets maxscale.x86_64: W: devel-file-in-non-devel-package /usr/lib64/liblog_manager.so maxscale.x86_64: W: dangling-symlink /var/lib/maxscale/errmsg.sys /usr/share/mariadb/english/errmsg.sys maxscale.x86_64: E: non-executable-script /usr/share/maxscale/plugins/nagios/check_maxscale_resources.pl 644 /usr/bin/perl maxscale.x86_64: E: postin-without-ldconfig /usr/lib64/liblog_manager.so.1.0.0 maxscale.x86_64: E: postun-without-ldconfig /usr/lib64/liblog_manager.so.1.0.0 maxscale.x86_64: W: non-standard-uid /var/log/maxscale maxscale maxscale.x86_64: W: non-standard-gid /var/log/maxscale maxscale maxscale.x86_64: E: non-standard-dir-perm /var/log/maxscale 750 maxscale.x86_64: W: non-standard-gid /etc/maxscale.cnf maxscale maxscale.x86_64: E: non-readable /etc/maxscale.cnf 640 maxscale.x86_64: E: non-executable-script /usr/share/maxscale/plugins/nagios/check_maxscale_monitors.pl 644 /usr/bin/perl maxscale.x86_64: W: non-standard-uid /var/run/maxscale maxscale maxscale.x86_64: W: non-standard-gid /var/run/maxscale maxscale maxscale.x86_64: E: dir-or-file-in-var-run /var/run/maxscale maxscale.x86_64: E: non-executable-script /usr/share/maxscale/plugins/nagios/check_maxscale_threads.pl 644 /usr/bin/perl maxscale.x86_64: W: no-manual-page-for-binary maxkeys maxscale.x86_64: W: no-manual-page-for-binary maxpasswd maxscale.x86_64: W: no-manual-page-for-binary maxbinlogcheck maxscale.x86_64: W: no-manual-page-for-binary maxadmin maxscale.x86_64: W: percent-in-%post maxscale.x86_64: W: dangerous-command-in-%post chmod 2 packages and 0 specfiles checked; 46 errors, 92 warnings.
Requires -------- maxscale-debuginfo (rpmlib, GLIBC filtered):
maxscale (rpmlib, GLIBC filtered): /bin/sh config(maxscale) ld-linux-x86-64.so.2()(64bit) libaio.so.1()(64bit) libc.so.6()(64bit) libcrypt.so.1()(64bit) libcrypto.so.10()(64bit) libcrypto.so.10(libcrypto.so.10)(64bit) libcurl.so.4()(64bit) libdl.so.2()(64bit) libedit.so.0()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) liblog_manager.so.1.0.0()(64bit) libm.so.6()(64bit) libmysqld.so.18()(64bit) libpcre.so.1()(64bit) libpcre2-8.so.0()(64bit) libpthread.so.0()(64bit) libquery_classifier.so.1.0.0()(64bit) librt.so.1()(64bit) libssl.so.10()(64bit) libssl.so.10(libssl.so.10)(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libz.so.1()(64bit) mariadb-errmsg mariadb-libs rtld(GNU_HASH) sh-utils shadow-utils systemd
Provides -------- maxscale-debuginfo: maxscale-debuginfo maxscale-debuginfo(x86-64)
maxscale: config(maxscale) libHTTPD.so()(64bit) libMySQLBackend.so()(64bit) libMySQLClient.so()(64bit) libbinlogrouter.so()(64bit) libcli.so()(64bit) libdbfwfilter.so()(64bit) libdebugcli.so()(64bit) libgaleramon.so()(64bit) libhintfilter.so()(64bit) liblog_manager.so.1.0.0()(64bit) libmaxinfo.so()(64bit) libmaxscaled.so()(64bit) libmysqlmon.so()(64bit) libnamedserverfilter.so()(64bit) libndbclustermon.so()(64bit) libqlafilter.so()(64bit) libquery_classifier.so.1.0.0()(64bit) libreadconnroute.so()(64bit) libreadwritesplit.so()(64bit) libregexfilter.so()(64bit) libschemarouter.so()(64bit) libshardrouter.so()(64bit) libtee.so()(64bit) libtelnetd.so()(64bit) libtestfilter.so()(64bit) libtopfilter.so()(64bit) maxscale maxscale(x86-64)
Unversioned so-files -------------------- maxscale: /usr/lib64/liblog_manager.so maxscale: /usr/lib64/libquery_classifier.so maxscale: /usr/lib64/maxscale/libHTTPD.so maxscale: /usr/lib64/maxscale/libMySQLBackend.so maxscale: /usr/lib64/maxscale/libMySQLClient.so maxscale: /usr/lib64/maxscale/libbinlogrouter.so maxscale: /usr/lib64/maxscale/libcli.so maxscale: /usr/lib64/maxscale/libdbfwfilter.so maxscale: /usr/lib64/maxscale/libdebugcli.so maxscale: /usr/lib64/maxscale/libgaleramon.so maxscale: /usr/lib64/maxscale/libhintfilter.so maxscale: /usr/lib64/maxscale/libmaxinfo.so maxscale: /usr/lib64/maxscale/libmaxscaled.so maxscale: /usr/lib64/maxscale/libmysqlmon.so maxscale: /usr/lib64/maxscale/libnamedserverfilter.so maxscale: /usr/lib64/maxscale/libndbclustermon.so maxscale: /usr/lib64/maxscale/libqlafilter.so maxscale: /usr/lib64/maxscale/libreadconnroute.so maxscale: /usr/lib64/maxscale/libreadwritesplit.so maxscale: /usr/lib64/maxscale/libregexfilter.so maxscale: /usr/lib64/maxscale/libschemarouter.so maxscale: /usr/lib64/maxscale/libshardrouter.so maxscale: /usr/lib64/maxscale/libtee.so maxscale: /usr/lib64/maxscale/libtelnetd.so maxscale: /usr/lib64/maxscale/libtestfilter.so maxscale: /usr/lib64/maxscale/libtopfilter.so
Source checksums ---------------- https://github.com/mariadb-corporation/MaxScale/archive/1.3.0/MaxScale-1.3.0... : CHECKSUM(SHA256) this package : 6ee9d157d78cb963419b6eb3cca7e3f288cd2aa02c66caf98d72e3069b1d932b CHECKSUM(SHA256) upstream package : 6ee9d157d78cb963419b6eb3cca7e3f288cd2aa02c66caf98d72e3069b1d932b
Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20 Command line :/usr/bin/fedora-review -b 1083962 Buildroot used: fedora-23-x86_64 Active plugins: Generic, Shell-api, C/C++, Perl Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Haskell, R, PHP, Ruby Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #27 from Oden Eriksson oe@nux.se --- Wow!
OK. I have addressed much of that in a new package here:
http://nux.se/maxscale/maxscale.spec http://nux.se/maxscale/maxscale.spec.diff http://nux.se/maxscale/maxscale-1.3.0-3.fc24.src.rpm
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Honza Horak hhorak@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |fedora-review+
--- Comment #28 from Honza Horak hhorak@redhat.com --- I'd rather suggest to call ldconfig like this:
%post -p /sbin/ldconfig
but your current way doesn't seem to be wrong either.
Otherwise it looks fine to me, so providing fedora_review+.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #29 from Oden Eriksson oe@nux.se --- As I remember "%post -p /sbin/ldconfig" will mean %post will only do ldconfig and ignore the rest, but could be wrong.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #30 from Honza Horak hhorak@redhat.com --- Oh, I'm not sure now, so feel free to keep it.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #31 from Oden Eriksson oe@nux.se --- Incredible. I just pushed so that you can build it against system pcre2 libs and now with 1.4.0 they force git download and build of MariaDB Connector-C
[...] -- Building MariaDB Connector-C from source. -- Could NOT find Git (missing: GIT_EXECUTABLE) [...]
This is truly a moving target.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #32 from Honza Horak hhorak@redhat.com --- There is mariadb-connector-c package available, hopefully it can be used.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Igor Gnatenko ignatenko@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |POST CC| |oe@nux.se Flags| |needinfo?(oe@nux.se)
--- Comment #33 from Igor Gnatenko ignatenko@redhat.com --- ping?
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Oden Eriksson oe@nux.se changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(oe@nux.se) |
--- Comment #34 from Oden Eriksson oe@nux.se --- Hi. I need to check this due time. Feel free to take ownership of this package if it's crucial for Redhat.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #35 from Honza Horak hhorak@redhat.com --- Since the new version of MaxScale changed the license to BSL [1], it makes it unusable in Fedora, so I'm more tempted to close this. It doesn't probably make much sense to package the older version only.
If anybody has another opinion and would benefit from latest 1.x release (unmaintained by upstream), speak up.
[1] http://monty-says.blogspot.cz/2016/08/applying-business-source-licensing-bsl...
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
--- Comment #36 from Oden Eriksson oe@nux.se --- I read that post about BSL, please drop.
https://bugzilla.redhat.com/show_bug.cgi?id=1083962
Honza Horak hhorak@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|POST |CLOSED Resolution|--- |NOTABUG Last Closed| |2016-09-12 06:57:11
--- Comment #37 from Honza Horak hhorak@redhat.com --- Closing because comment #35. We can re-open after 3 years, once MaxScale becomes license-clean again :)
package-review@lists.fedoraproject.org