summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2010-01-07 15:11:07 -0500
committerStephen Gallagher <sgallagh@redhat.com>2010-01-20 08:56:00 -0500
commit746391a1719659161f026684193b3fb04593f563 (patch)
tree600ba93efdd7182db2d96c86ac7f72d5f7377240
parent8b179530db795f6e974677a11b38c31ca82ba793 (diff)
downloadsssd-746391a1719659161f026684193b3fb04593f563.tar.gz
sssd-746391a1719659161f026684193b3fb04593f563.tar.xz
sssd-746391a1719659161f026684193b3fb04593f563.zip
Split off libdhash into a shared library
Right now, the pkg-config checks for the system version of libdhash are forcibly disabled, requiring the SSSD to build it from its own tree. In the future, when we split the libraries off from the SSSD, it will be easy to switch this check to the external library.
-rw-r--r--common/dhash/Makefile.am22
-rw-r--r--common/dhash/README1
-rw-r--r--common/dhash/configure.ac2
-rw-r--r--common/dhash/examples/dhash_example.c (renamed from common/dhash/dhash_example.c)0
-rw-r--r--common/dhash/examples/dhash_test.c (renamed from common/dhash/dhash_test.c)0
-rw-r--r--contrib/sssd.spec.in56
-rw-r--r--server/Makefile.am15
-rw-r--r--server/configure.ac1
-rw-r--r--server/external/libdhash.m412
9 files changed, 94 insertions, 15 deletions
diff --git a/common/dhash/Makefile.am b/common/dhash/Makefile.am
index de3c34d20..d5a561871 100644
--- a/common/dhash/Makefile.am
+++ b/common/dhash/Makefile.am
@@ -8,22 +8,28 @@ endif
ACLOCAL_AMFLAGS = -I m4
pkgconfigdir = $(libdir)/pkgconfig
-dist_noinst_DATA = \
- dhash.pc \
- m4
+dist_pkgconfig_DATA = dhash.pc
-noinst_LTLIBRARIES = libdhash.la
-libdhash_la_SOURCES = \
- dhash.c \
- dhash.h
+dist_noinst_DATA = m4
+
+dist_include_HEADERS = dhash.h
+
+lib_LTLIBRARIES = libdhash.la
+libdhash_la_SOURCES = dhash.c
+libdhash_la_LDFLAGS = \
+ -version-info 1:0:0
check_PROGRAMS = dhash_test dhash_example
TESTS = $(check_PROGRAMS)
+dhash_test_SOURCES = examples/dhash_test.c
dhash_test_LDADD = dhash.o
+
+dhash_example_SOURCES = examples/dhash_example.c
dhash_example_LDADD = dhash.o
examplesdir = $(docdir)/examples
-dist_noinst_DATA += dhash_test.c dhash_example.c
+dist_examples_DATA = examples/dhash_test.c examples/dhash_example.c
+dist_doc_DATA = README
tests: all $(check_PROGRAMS)
diff --git a/common/dhash/README b/common/dhash/README
new file mode 100644
index 000000000..bee5024ee
--- /dev/null
+++ b/common/dhash/README
@@ -0,0 +1 @@
+Documentation for libdhash can be found in dhash.h
diff --git a/common/dhash/configure.ac b/common/dhash/configure.ac
index bd2102877..1012afbbd 100644
--- a/common/dhash/configure.ac
+++ b/common/dhash/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT([dhash], [0.3.3], [jdennis@redhat.com])
+AC_INIT([dhash], [0.4.0], [jdennis@redhat.com])
AC_CONFIG_SRCDIR([dhash.c])
AC_CONFIG_AUX_DIR([build])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
diff --git a/common/dhash/dhash_example.c b/common/dhash/examples/dhash_example.c
index 7ed01d71a..7ed01d71a 100644
--- a/common/dhash/dhash_example.c
+++ b/common/dhash/examples/dhash_example.c
diff --git a/common/dhash/dhash_test.c b/common/dhash/examples/dhash_test.c
index 27eb88d52..27eb88d52 100644
--- a/common/dhash/dhash_test.c
+++ b/common/dhash/examples/dhash_test.c
diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in
index b723df5ad..65080a984 100644
--- a/contrib/sssd.spec.in
+++ b/contrib/sssd.spec.in
@@ -12,6 +12,8 @@ URL: http://www.freeipa.org/
Source0: %{name}-%{version}.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+%define dhash_version 0.4.0
+
### Patches ###
### Dependencies ###
@@ -19,6 +21,7 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
Requires: libldb >= 0.9.3
Requires: libtdb >= 1.1.3
Requires: sssd-client = %{version}-%{release}
+Requires: libdhash = %{dhash_version}-%{release}
Requires: cyrus-sasl-gssapi
Requires(post): python
Requires(preun): initscripts chkconfig
@@ -76,6 +79,28 @@ Group: Applications/System
Provides the libraries needed by the PAM and NSS stacks to connect to the SSSD
service.
+%package -n libdhash
+Summary: Dynamic hash table
+Group: Development/Libraries
+Version: %{dhash_version}
+License: LGPLv3+
+
+%description -n libdhash
+A hash table which will dynamically resize to achieve optimal storage & access
+time properties
+
+%package -n libdhash-devel
+Summary: Development files for libdhash
+Group: Development/Libraries
+Version: %{dhash_version}
+Requires: libdhash = %{dhash_version}-%{release}
+License: LGPLv3+
+
+%description -n libdhash-devel
+A hash table which will dynamically resize to achieve optimal storage & access
+time properties
+
+
%prep
%setup -q
@@ -88,7 +113,8 @@ KRB5_LIBS=-lkrb5 \
--with-pipe-path=%{pipepath} \
--with-pubconf-path=%{pubconfpath} \
--with-init-dir=%{_initrddir} \
- --enable-nsslibdir=/%{_lib}
+ --enable-nsslibdir=/%{_lib} \
+ --disable-static
make %{?_smp_mflags}
@@ -97,6 +123,14 @@ rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
+# Remove the example files from the output directory
+# We will copy them directly from the source directory
+# for packaging
+rm -f \
+ $RPM_BUILD_ROOT/usr/share/doc/dhash/README \
+ $RPM_BUILD_ROOT/usr/share/doc/dhash/examples/dhash_example.c \
+ $RPM_BUILD_ROOT/usr/share/doc/dhash/examples/dhash_test.c
+
# Prepare language files
/usr/lib/rpm/find-lang.sh $RPM_BUILD_ROOT sss_daemon
/usr/lib/rpm/find-lang.sh $RPM_BUILD_ROOT sss_client
@@ -111,6 +145,7 @@ install -m400 server/config/etc/sssd.api.d/* $RPM_BUILD_ROOT%{_sysconfdir}/sssd/
rm -f \
$RPM_BUILD_ROOT/%{_lib}/libnss_sss.la \
$RPM_BUILD_ROOT/%{_lib}/security/pam_sss.la \
+ $RPM_BUILD_ROOT/%{_libdir}/libdhash.la \
$RPM_BUILD_ROOT/%{_libdir}/ldb/memberof.la \
$RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_ldap.la \
$RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_proxy.la \
@@ -182,6 +217,21 @@ rm -rf $RPM_BUILD_ROOT
/%{_lib}/security/pam_sss.so
%{_mandir}/man8/pam_sss.8*
+%files -n libdhash
+%defattr(-,root,root,-)
+%doc common/dhash/COPYING
+%doc common/dhash/COPYING.LESSER
+%{_libdir}/libdhash.so.1
+%{_libdir}/libdhash.so.1.0.0
+
+%files -n libdhash-devel
+%defattr(-,root,root,-)
+%{_includedir}/dhash.h
+%{_libdir}/libdhash.so
+%{_libdir}/pkgconfig/dhash.pc
+%doc common/dhash/README
+%doc common/dhash/examples
+
%post
/sbin/ldconfig
/sbin/chkconfig --add %{servicename}
@@ -206,6 +256,10 @@ fi
%postun client -p /sbin/ldconfig
+%post -n libdhash -p /sbin/ldconfig
+
+%postun -n libdhash -p /sbin/ldconfig
+
%changelog
* Mon Sep 28 2009 Sumit Bose <sbose@redhat.com> - 0.6.0-0
- New upstream release 0.6.0
diff --git a/server/Makefile.am b/server/Makefile.am
index 989b39e6c..100189d48 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
@@ -145,11 +145,16 @@ INI_CFG_LIBS = \
-L$(builddir)/../common/ini/.libs/ \
-lini_config
-DHASH_CFLAGS = \
- -I$(srcdir)/../common/dhash
-DHASH_LIBS = \
- -L$(builddir)/../common/dhash/ \
- -ldhash
+if HAVE_SYSTEM_DHASH
+ DHASH_CFLAGS = $(SYSTEM_DHASH_CFLAGS)
+ DHASH_LIBS = $(SYSTEM_DHASH_LIBS)
+else
+ DHASH_CFLAGS = \
+ -I$(srcdir)/../common/dhash
+ DHASH_LIBS = \
+ -L$(builddir)/../common/dhash/ \
+ -ldhash
+endif
AM_CPPFLAGS = -Wall \
-Iinclude \
diff --git a/server/configure.ac b/server/configure.ac
index 72b15cd0e..4f560239a 100644
--- a/server/configure.ac
+++ b/server/configure.ac
@@ -62,6 +62,7 @@ m4_include([external/libtalloc.m4])
m4_include([external/libtdb.m4])
m4_include([external/libtevent.m4])
m4_include([external/libldb.m4])
+m4_include([external/libdhash.m4])
m4_include([external/pam.m4])
m4_include([external/ldap.m4])
m4_include([external/libpcre.m4])
diff --git a/server/external/libdhash.m4 b/server/external/libdhash.m4
new file mode 100644
index 000000000..e3afdac38
--- /dev/null
+++ b/server/external/libdhash.m4
@@ -0,0 +1,12 @@
+AC_SUBST(SYSTEM_DHASH_OBJ)
+AC_SUBST(SYSTEM_DHASH_CFLAGS)
+AC_SUBST(SYSTEM_DHASH_LIBS)
+
+PKG_CHECK_MODULES(SYSTEM_DHASH, dhash >= 0.4.0,
+ have_system_dhash=true,
+ have_system_dhash=false
+ )
+# This is future-compatible. Right now, we'll force the use of our
+# in-tree copy. When dhash is split off as its own source package, we'll
+# fix this test
+AM_CONDITIONAL(HAVE_SYSTEM_DHASH, test x$have_system_dhash = xtrue_FORCE_IN_TREE)