Bug 1381548

Summary: Review Request: mariadb-connector-odbc
Product: [Fedora] Fedora Reporter: Michal Schorm <mschorm>
Component: Package ReviewAssignee: Petr Menšík <pemensik>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: hhorak, package-review, pemensik, thozza
Target Milestone: ---Flags: pemensik: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-23 09:30:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
disable export filter for mariadb-connector-c none

Description Michal Schorm 2016-10-04 12:20:55 UTC
Sources:
Spec URL: https://raw.githubusercontent.com/FaramosCZ/Fedora-maintain/master/mariadb/mariadb-connector-odbc/SPECS/mariadb-connector-odbc.spec
SRPM URL: https://raw.githubusercontent.com/FaramosCZ/Fedora-maintain/master/mariadb/mariadb-connector-odbc/SRPMS/mariadb-connector-odbc-2.0.12-1.fc24.src.rpm

GitHub:
https://github.com/FaramosCZ/Fedora-maintain/tree/master/mariadb/mariadb-connector-odbc

COPR:
https://copr.fedorainfracloud.org/coprs/mschorm/mariadb-connector-odbc/

Description: 
MariaDB Connector/ODBC is a standardized, LGPL licensed database driver using
the industry standard Open Database Connectivity (ODBC) API. It supports ODBC
Standard 3.5, can be used as a drop-in replacement for MySQL Connector/ODBC,
and it supports both Unicode and ANSI modes

Aditional info:
In this SRPM a patch is included, which creates possibility to build package with dynamic library (instead of the static one).
Link to patch suggestion sent to upstream:
https://jira.mariadb.org/browse/ODBC-55

Comment 1 Petr Menšík 2016-10-05 11:55:13 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated


Issues:
=======
- Development (unversioned) .so files in -devel subpackage, if present.
  Note: Unversioned so-files directly in %_libdir.
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages
- 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.
  Note: License file COPYING is not marked as %license
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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: "BSD", "LGPL (v2.1 or later)", "Unknown or generated". 7 files
     have unknown license. Detailed output of licensecheck in
     /home/pemensik/fedora/rawhide/1381548-mariadb-connector-
     odbc/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/doc/mariadb_connector_odbc
[!]: Package must own all directories that it creates.
     Note: Directories without known owners:
     /usr/share/doc/mariadb_connector_odbc
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
     Note: %defattr present but not needed
[-]: 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.
[!]: Package consistently uses macros (instead of hard-coded directory
     names).
     Let RPM create path /usr/share/doc/mariadb_connector_odbc using %doc
[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.
[-]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 30720 bytes in 2 files.
[!]: Package complies to the Packaging Guidelines
     Use %license with relative path for COPYING
     %doc for README. Will not create hardcoded path in /usr/share/doc.
[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]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[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]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[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]: 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]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: 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).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in mariadb-
     connector-odbc-debuginfo
[x]: 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.
     Note: Add link to jira.mariadb.org also to the spec as a comment.
[-]: 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]: 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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
[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.


Rpmlint
-------
Checking: mariadb-connector-odbc-2.0.12-1.fc26.x86_64.rpm
          mariadb-connector-odbc-debuginfo-2.0.12-1.fc26.x86_64.rpm
          mariadb-connector-odbc-2.0.12-1.fc26.src.rpm
mariadb-connector-odbc.x86_64: E: invalid-soname /usr/lib64/libmaodbc.so libmaodbc.so
mariadb-connector-odbc.src:12: W: macro-in-comment %{_libdir}
3 packages and 0 specfiles checked; 1 errors, 1 warnings.




Rpmlint (debuginfo)
-------------------
Checking: mariadb-connector-odbc-debuginfo-2.0.12-1.fc26.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
mariadb-connector-odbc.x86_64: E: invalid-soname /usr/lib64/libmaodbc.so libmaodbc.so
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_get_server_name
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so my_no_flags_free
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so my_malloc
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_sqlstate
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_ping
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_errno
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_send_long_data
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_get_server_version
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_more_results
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_commit
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so init_dynamic_array
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_query
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_find_charset_name
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_fetch_row
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_options
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_server_init
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_get_charset_by_name
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_attr_set
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_data_seek
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_rollback
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_more_results
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_init
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so insert_dynamic
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_fetch
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so alloc_dynamic
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so list_delete
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_data_seek
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_ps_fetch_functions
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_next_result
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so delete_dynamic
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_prepare
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so dynstr_append
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_errno
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so madb_get_os_character_set
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_store_result
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_close
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_result_metadata
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_bind_result
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_fetch_fields
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so my_charset_utf8_general_ci
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_fetch_column
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so init_dynamic_string
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_ssl_set
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_get_server_info
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so delete_dynamic_element
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_affected_rows
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_get_charset_by_nr
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so get_dynamic
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_field_count
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so my_strndup
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_next_result
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_real_connect
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_get_parameters
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_num_rows
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_close
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so my_realloc
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_select_db
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so list_add
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_error
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_init
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_field_count
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so my_strdup
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_free_result
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_real_escape_string
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so dynstr_free
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_real_query
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_get_socket
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_free_result
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mariadb_convert_string
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_error
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_affected_rows
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_execute
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_bind_param
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_autocommit
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so my_snprintf
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_thread_id
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_param_count
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so dynstr_append_mem
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_sqlstate
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_stmt_reset
mariadb-connector-odbc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libmaodbc.so mysql_store_result
mariadb-connector-odbc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libmaodbc.so libmariadb.so.2
2 packages and 0 specfiles checked; 1 errors, 82 warnings.



Diff spec file in url and in SRPM
---------------------------------
--- /home/pemensik/fedora/rawhide/1381548-mariadb-connector-odbc/srpm/mariadb-connector-odbc.spec	2016-10-04 15:21:46.455209407 +0200
+++ /home/pemensik/fedora/rawhide/1381548-mariadb-connector-odbc/srpm-unpacked/mariadb-connector-odbc.spec	2016-10-04 09:21:01.000000000 +0200
@@ -1,15 +1,15 @@
-Name:           mariadb-connector-odbc
-Version:        2.0.12
-Release:        1%{?dist}
-Summary:        The MariaDB Native Client library (ODBC driver)
-Group:          Applications/Databases
-License:        LGPLv2+
-Source:         http://mirror.hosting90.cz/mariadb/connector-odbc-%{version}/source/mariadb-connector-odbc-%{version}-ga-src.tar.gz
-Url:            https://mariadb.org/en/
-BuildRequires:  cmake unixODBC-devel
-BuildRequires:  mariadb-connector-c-devel >= 2.3.1
+Name:		mariadb-connector-odbc
+Version:	2.0.12
+Release:	1%{?dist}
+Summary:	The MariaDB Native Client library (ODBC driver)
+Group:		Applications/Databases
+License:	LGPLv2+
+Source:		http://mirror.hosting90.cz/mariadb/connector-odbc-%{version}/source/mariadb-connector-odbc-%{version}-ga-src.tar.gz
+Url:		https://mariadb.org/en/
+BuildRequires:	cmake unixODBC-devel
+BuildRequires:	mariadb-connector-c-devel >= 2.3.1
 
-# Set Cmake to build against dynamic library with parameter "-DMARIADB_DYNAMIC_LIB=..."
-Patch:          CMakeLists.txt.patch
+# Set Cmake to build against dynamic library with parameter "-DMARIADB_DYNAMIC_LIB="%{_libdir}/mariadb/libmariadb.so""
+Patch:		CMakeLists.txt.patch
 
 %description
@@ -43,7 +43,4 @@
 
 %changelog
-* Tue Oct 04 2016 Michal Schorm <mschorm> - 2.0.12-1
+* Wed Sep 21 2016 Michal Schorm <mschorm> - 2.0.12-1
 - Initial version for 2.0.12
-
-
-


Requires
--------
mariadb-connector-odbc (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libm.so.6()(64bit)
    libmariadb.so.2()(64bit)
    libodbcinst.so.2()(64bit)
    rtld(GNU_HASH)

mariadb-connector-odbc-debuginfo (rpmlib, GLIBC filtered):



Provides
--------
mariadb-connector-odbc:
    libmaodbc.so()(64bit)
    mariadb-connector-odbc
    mariadb-connector-odbc(x86-64)

mariadb-connector-odbc-debuginfo:
    mariadb-connector-odbc-debuginfo
    mariadb-connector-odbc-debuginfo(x86-64)



Unversioned so-files
--------------------
mariadb-connector-odbc: /usr/lib64/libmaodbc.so

Source checksums
----------------
http://mirror.hosting90.cz/mariadb/connector-odbc-2.0.12/source/mariadb-connector-odbc-2.0.12-ga-src.tar.gz :
  CHECKSUM(SHA256) this package     : 83652ca9860e7bc0790f2c789256b12a91e1b0e2f6c0bf64890c2be05cf49fdb
  CHECKSUM(SHA256) upstream package : 83652ca9860e7bc0790f2c789256b12a91e1b0e2f6c0bf64890c2be05cf49fdb


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1381548 -m fedora-rawhide-x86_64
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 2 Michal Schorm 2016-10-06 09:47:55 UTC
Second review request:

I believe all (atleast most) issues were resolved.
Fast was made check with
$> fedora-review -b 1381548 --mock-options="-r fedora-rawhide-x86_64"


* %licence and %doc files repaired to use proper macros and remove duplicates.
* SPECfile match the one in SRPM
* %check not present since output is plugin library only.
* make command removed, since %cmake does its job

* unversioned .so file is left in main package, since it is not devel file and directly provides functionality of this package.
* version not needed, since this library works as mariadb plugin

_____

SPEC and SRPM urls did not change, the now point to updated version.
Old version can be found on GitHub in "Version 1" branch.

Comment 3 Petr Menšík 2016-10-06 13:16:27 UTC
License and doc are good.

If it is mariadb plugin, it should reside in mariadb plugin directory.
If you run ldd on libmaodbc.so, it will not find libmariadb.so.2. As the package depends on it anyway, I suggest you add Requires: mariadb-connector-c%{?_isa}

Then make libmaodbc.so install into directory %{_libdir}/mariadb. If it is not in %{_libdir} directly, I do not care about soname.

You should add %{_libdir}/mariadb/ into %files section of package mariadb-connector-c. Current version has unowned directory, that will not be removed after uninstallation.

Comment 4 Michal Schorm 2016-10-19 09:21:52 UTC
Third review request:

* %{_libdir}/mariadb/ added as into %files section of package mariadb-connector-c-devel and RPATH was fixed. New release (2.3.1-2.fc26) is on its way to rawhide repo by now.

Reason:
You can install mariadb-connector-c as a part of mariadb (so mariadb owns the libdir/mariadb directory).
But the goal of mariadb-connector-c, which can be used as a standalone package in various use-cases, is to offer its functionality without whole mariadb. (For example if mariadb-server is remote) 
That's why mariadb-connector-c-devel (which place library in libdir/mariadb) must own libdir/mariadb directory.

* libmaodbc.so should stay directly in %{_libdir}

Reason:
mariadb-connector-odbc is NOT mariadb plugin. To be exact, it is unix-odbc plugin. To preserve consistency, it should reside, where all other unixODBC plugins are - directly in %{_libdir} directory.

Note:
In order to Packaging guidelines, (1) plugins libraries don't need to be versioned and (2) NONE unversioned libraries should be directly in libdir.
The only right solution would be to move ALL unix-odbc plugins from all associated packages to their new libdir/unixodbc directory at once.  

_____

SPEC and url did not change, the now point to updated version.
SRPM url update to: https://raw.githubusercontent.com/FaramosCZ/Fedora-maintain/master/mariadb/mariadb-connector-odbc/SRPMS/mariadb-connector-odbc-2.0.12-1.fc26.src.rpm
Old version can be found on GitHub in "Version 1" and "Version 2" branches.

Comment 5 Petr Menšík 2016-10-20 11:12:36 UTC
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package complies to the Packaging Guidelines
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec file according to URL is the same as in SRPM.

Ok, all other ODBC plugins are there, they can be moved to plugins directory later. Some fixes of mariadb-connector-c are wrong, but that is not what I review. I think mariadb-connector-c is used as ordinary library by ODBC and should be therefore installed as ordinary library in %{_libdir}.

Comment 6 Gwyn Ciesla 2016-10-21 13:28:53 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/mariadb-connector-odbc

Comment 7 Petr Menšík 2016-10-24 13:43:20 UTC
I think there are problems with unresolved symbols. They really not support dynamic linking, my_free used in odbc connector expands to my_no_flags_free. That symbol is NOT exported by libmariadb from mariadb-connector-c. It is impossible to load successfully odbc plugin because missing symbols. It seems to me, on current rawhide, it is missing these symbols:

my_no_flags_free
my_malloc
my_charset_utf8_general_ci
my_strndup
my_realloc
my_strdup
my_snprintf

Comment 8 Petr Menšík 2016-10-24 17:42:50 UTC
I am afraid there is too many symbols to satisfy, it cannot be done by adding a few symbols to exported list. The most simple way I have found to make odbc plugin working is to remove export filter on the mariadb-connector-c library, thus all symbols used in code are exported. I doubt that is solution acceptable by upstream. Another options are static linking as done by upstream or linking against mariadb-devel/mariadb-libs package. I will discuss options later.

Comment 9 Petr Menšík 2016-10-24 17:45:40 UTC
Created attachment 1213533 [details]
disable export filter for mariadb-connector-c

Patch will export all symbols from libmariadb.so, not only official API. That will allow libmaodbc.so to successfully load from isql.

Comment 10 Petr Menšík 2016-10-25 09:16:31 UTC
Dynamic link problems have to be solved with upstream and/or mariadb-connector-c mantainer.