diff --git a/badcode.diff b/badcode.diff new file mode 100644 index 0000000..a65b7f6 --- /dev/null +++ b/badcode.diff @@ -0,0 +1,32 @@ +From: Jan Engelhardt +Date: 2013-09-07 22:51:05.518210575 +0200 + +build: resolve rpmlint aborting due to bad code + +gcc: +src/constraint.c:167:32: warning: initialization makes pointer from integer without a cast [enabled by default] +src/constraint.c:168:5: warning: passing argument 1 of 'matches' makes pointer from integer without a cast [enabled by default] +src/constraint.c:168:5: note: expected 'const void *' but argument is of type 'intptr_t' + +rpmlint: +E: libdbi-drivers 64bit-portability-issue src/constraint.c:167, 168 + +--- + tests/cgreen/src/constraint.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: libdbi-drivers-0.9.0/tests/cgreen/src/constraint.c +=================================================================== +--- libdbi-drivers-0.9.0.orig/tests/cgreen/src/constraint.c ++++ libdbi-drivers-0.9.0/tests/cgreen/src/constraint.c +@@ -164,8 +164,8 @@ static void test_want_double(Constraint + } + + static int compare_using_matcher(Constraint *constraint, intptr_t actual) { +- int (*matches)(const void*) = constraint->expected; +- return matches(actual); ++ int (*matches)(const void*) = (void *)(intptr_t)constraint->expected; ++ return matches((void *)actual); + } + + static void test_with_matcher(Constraint *constraint, const char *function, const char* matcher_name, intptr_t matcher_function, const char *test_file, int test_line, TestReporter *reporter) { diff --git a/libdbi-drivers-0.8.3-1.tar.bz2 b/libdbi-drivers-0.8.3-1.tar.bz2 deleted file mode 100644 index d346af5..0000000 --- a/libdbi-drivers-0.8.3-1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e4bf319ffcfd87b1dfb14469eade057c419ecec1e827a2d6f5c15dddc034ec75 -size 1332620 diff --git a/libdbi-drivers-0.9.0.tar.gz b/libdbi-drivers-0.9.0.tar.gz new file mode 100644 index 0000000..a103fe9 --- /dev/null +++ b/libdbi-drivers-0.9.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43d2eacd573a4faff296fa925dd97fbf2aedbf1ae35c6263478210c61004c854 +size 1829864 diff --git a/libdbi-drivers.changes b/libdbi-drivers.changes index 0539cf9..e9ea612 100644 --- a/libdbi-drivers.changes +++ b/libdbi-drivers.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Wed Sep 11 13:07:00 UTC 2013 - jengelh@inai.de + +- Added libdl.diff (successfully link testsuite) and run testsuite + as far as possible + +------------------------------------------------------------------- +Wed Sep 11 09:18:56 UTC 2013 - tchvatal@suse.com + +- Remove tests code to have this not fail on rpm checks. +- Do not put __DATE__ into resulting binaries to avoid needless + rebuilds. + +------------------------------------------------------------------- +Sun Sep 8 13:11:41 UTC 2013 - jengelh@inai.de + +- Update to new upstream release 0.9.0 +* the pgsql driver now supports features specific to PostgreSQL 9 + and later +* drivers now support transactions and savepoints if the underlying + database engines do +- Added badcode.diff, sqlite3.diff to resolve build failures + ------------------------------------------------------------------- Thu Sep 27 09:38:04 UTC 2012 - idonmez@suse.com diff --git a/libdbi-drivers.spec b/libdbi-drivers.spec index 428eec5..3333fb0 100644 --- a/libdbi-drivers.spec +++ b/libdbi-drivers.spec @@ -1,7 +1,7 @@ # # spec file for package libdbi-drivers # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,76 +16,62 @@ # -%define special -1 - -%define libdbi_ver 0.8.4 %define libdbi_sover 1 - +Name: libdbi-drivers +Version: 0.9.0 +Release: 0 Summary: Database drivers for libdbi License: LGPL-2.1+ -Group: Development/Libraries +Group: System/Libraries +Url: http://libdbi-drivers.sf.net/ -Name: libdbi-drivers -Version: 0.8.3 -Release: 0 -Url: http://libdbi-drivers.sourceforge.net/ -Source: %{name}-%{version}%{special}.tar.bz2 +Source: http://downloads.sf.net/libdbi-drivers/%name-%version.tar.gz +Patch1: sqlite3.diff +Patch2: badcode.diff +Patch3: libdl.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build - +BuildRequires: autoconf +BuildRequires: automake BuildRequires: gettext BuildRequires: libdbi-devel +BuildRequires: libtool BuildRequires: mysql-devel BuildRequires: openjade BuildRequires: postgresql-devel -BuildRequires: sqlite-devel +BuildRequires: sqlite3-devel %description -libdbi implements a database-independent abstraction layer in C, similar to the -DBI/DBD layer in Perl. Drivers are distributed separately from the library -itself. +libdbi implements a database-independent abstraction layer in C, +similar to the DBI/DBD layer in Perl. Drivers are distributed +separately from the library itself. %package dbd-mysql Summary: MySQL driver for libdbi -Group: Development/Libraries -Requires: libdbi%{libdbi_sover} = %{libdbi_ver} +Group: System/Libraries +Requires: libdbi%{libdbi_sover} = %version %description dbd-mysql -This driver provides connectivity to MySQL database servers through the -libdbi database independent abstraction layer. Switching a program's driver -does not require recompilation or rewriting source code. +This driver provides connectivity to MySQL database servers through +the libdbi database independent abstraction layer. Switching a +program's driver does not require recompilation or rewriting source +code. %package dbd-pgsql Summary: PostgreSQL driver for libdbi -Group: Development/Libraries -Requires: libdbi%{libdbi_sover} = %{libdbi_ver} +Group: System/Libraries +Requires: libdbi%{libdbi_sover} = %version Requires: postgresql >= 7.0.3 %description dbd-pgsql -This driver provides connectivity to PostgreSQL database servers through the -libdbi database independent abstraction layer. Switching a program's driver -does not require recompilation or rewriting source code. - -%if 0%{?suse_version} == 910 -# SLES 9 - -%package dbd-sqlite -Summary: SQLite driver for libdbi -Group: Development/Libraries -Requires: libdbi%{libdbi_sover} = %{libdbi_ver} -Requires: sqlite - -%description dbd-sqlite -This driver provides connectivity to SQLite database servers through the -libdbi database independent abstraction layer. Switching a program's driver -does not require recompilation or rewriting source code. - -%else +This driver provides connectivity to PostgreSQL database servers +through the libdbi database independent abstraction layer. Switching +a program's driver does not require recompilation or rewriting source +code. %package dbd-sqlite3 - Summary: SQLite3 driver for libdbi -Group: Development/Libraries -Requires: libdbi%{libdbi_sover} = %{libdbi_ver} +Group: System/Libraries +Requires: libdbi%{libdbi_sover} = %version Requires: sqlite %description dbd-sqlite3 @@ -93,73 +79,46 @@ This driver provides connectivity to SQLite database servers through the libdbi database independent abstraction layer. Switching a program's driver does not require recompilation or rewriting source code. -%endif - %prep -%setup -q -n %{name}-%{version}%{special} +%setup -q +%patch -P 1 -P 2 -P 3 -p1 + +# Fake the __DATE__ so we do not needelessly rebuild +FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y') +sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/" drivers/*/*.c %build +autoreconf -fi %configure \ --with-mysql \ - --with-mysql-incdir=%_includedir/mysql \ - --with-mysql-libdir=%{_libdir}/mysql \ --with-pgsql \ - --with-pgsql-incdir=%_includedir/pgsql \ - --with-pgsql-libdir=%{_libdir} \ -%if 0%{?suse_version} == 910 - --with-sqlite \ - --with-sqlite-incdir=%_includedir \ - --with-sqlite-libdir=%{_libdir} \ -%else --with-sqlite3 \ - --with-sqlite3-incdir=%_includedir \ - --with-sqlite3-libdir=%{_libdir} \ -%endif --with-dbi-incdir=%_includedir/dbi \ --with-dbi-libdir=%{_libdir} \ --disable-static \ --disable-docs -# Broken upstream code overrides CFLAGS !:-[. Since AM_CFLAGS is unused in -# the source, we can hack there to get our flags in... -make %{?_smp_mflags} AM_CFLAGS="%optflags" +make %{?_smp_mflags} %install make DESTDIR=$RPM_BUILD_ROOT install +find "%buildroot" -type f -name "*.la" -delete + +%check +make check || : %files dbd-mysql %defattr(-,root,root) %dir %{_libdir}/dbd %{_libdir}/dbd/libdbdmysql.so -%{_libdir}/dbd/libdbdmysql.la %files dbd-pgsql %defattr(-,root,root) %dir %{_libdir}/dbd %{_libdir}/dbd/libdbdpgsql.so -%{_libdir}/dbd/libdbdpgsql.la - -%if 0%{?suse_version} == 910 -%defattr(-,root,root) -# SLES 9 - -%files dbd-sqlite -%defattr(-,root,root) -%dir %{_libdir}/dbd -%{_libdir}/dbd/libdbdsqlite.so -%{_libdir}/dbd/libdbdsqlite.la - -%else %files dbd-sqlite3 %defattr(-,root,root) %dir %{_libdir}/dbd %{_libdir}/dbd/libdbdsqlite3.so -%{_libdir}/dbd/libdbdsqlite3.la - -%endif - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig %changelog diff --git a/libdl.diff b/libdl.diff new file mode 100644 index 0000000..7cb5cf7 --- /dev/null +++ b/libdl.diff @@ -0,0 +1,26 @@ +From: Jan Engelhardt +Date: 2013-09-11 14:33:49.545836772 +0200 + +build: add missing libraries to link line + +test_dbi_dlopen.o: In function `main': +test_dbi_dlopen.c:41: undefined reference to `dlopen' +test_dbi_dlopen.c:45: undefined reference to `dlopen' +test_dbi_dlopen.c:61: undefined reference to `dlsym' +test_dbi_dlopen.c:63: undefined reference to `dlerror' +--- + tests/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +Index: libdbi-drivers-0.9.0/tests/Makefile.am +=================================================================== +--- libdbi-drivers-0.9.0.orig/tests/Makefile.am ++++ libdbi-drivers-0.9.0/tests/Makefile.am +@@ -11,6 +11,7 @@ test_dbi_SOURCES = test_dbi.c + test_dbi_LDADD = $(top_srcdir)/tests/cgreen/libcgreen.a -L@libdir@ -lm -ldbi @LIBADD_LIBDBI@ + test_dbi_dlopen_SOURCES = test_dbi_dlopen.c + test_dbi_dlopen_LDFLAGS = @LIBADD_LIBDBI@ ++test_dbi_dlopen_LDADD = -ldl + libtest_dbi_plugin_la_SOURCES = test_dbi_plugin.c + libtest_dbi_plugin_la_LIBADD = @LIBADD_LIBDBI@ + libtest_dbi_plugin_la_LDFLAGS = -module -rpath /nowhere diff --git a/sqlite3.diff b/sqlite3.diff new file mode 100644 index 0000000..2811025 --- /dev/null +++ b/sqlite3.diff @@ -0,0 +1,25 @@ +From: Jan Engelhardt +Date: 2013-09-04 12:52:32.851115468 +0200 + +build: resolve link failure in sqlite3 module + +The sqlite3 backend fails to link because the wrong library name is +used. (Ideally, libdbi-drivers should use PKG_CHECK_MODULES instead.) + +--- + acinclude.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: libdbi-drivers-0.9.0/acinclude.m4 +=================================================================== +--- libdbi-drivers-0.9.0.orig/acinclude.m4 ++++ libdbi-drivers-0.9.0/acinclude.m4 +@@ -310,7 +310,7 @@ if test "$ac_sqlite3" = "yes"; then + AC_SEARCH_LIBS_VAR([sqlite3_exec], sqlite3, , , , SQLITE3_LIBS) + SQLITE3_LDFLAGS="" + else +- SQLITE3_LIBS=-lsqlite ++ SQLITE3_LIBS=-lsqlite3 + SQLITE3_LDFLAGS=-L$ac_sqlite3_libdir + fi +