diff --git a/.ding-libs.metadata b/.ding-libs.metadata
new file mode 100644
index 0000000..d570fa9
--- /dev/null
+++ b/.ding-libs.metadata
@@ -0,0 +1 @@
+9bdbec963a29490f16fc87abffaf7437cc5a5121 SOURCES/ding-libs-0.3.0.1.tar.gz
diff --git a/README.md b/README.md
deleted file mode 100644
index 0e7897f..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-The master branch has no content
- 
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
- 
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/0001-INI-Bump-version-info.patch b/SOURCES/0001-INI-Bump-version-info.patch
new file mode 100644
index 0000000..e2a8762
--- /dev/null
+++ b/SOURCES/0001-INI-Bump-version-info.patch
@@ -0,0 +1,26 @@
+From c42187dbbec1380ed632782315226220385b2af7 Mon Sep 17 00:00:00 2001
+From: Ondrej Kos <okos@redhat.com>
+Date: Mon, 6 May 2013 11:41:50 +0200
+Subject: [PATCH] INI: Bump version-info
+
+https://fedorahosted.org/sssd/ticket/1908
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 3045ac5ce18e08f09faebce569f89893135e4b04..69f761474a464623e1082c945ee74fe9377fcfc4 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -245,7 +245,7 @@ libini_config_la_LIBADD = \
+     libref_array.la \
+     libbasicobjects.la
+ libini_config_la_LDFLAGS = \
+-    -version-info 3:0:0
++    -version-info 4:0:1
+ 
+ dist_noinst_DATA += \
+     ini/ini.conf \
+-- 
+1.8.2.1
+
diff --git a/SOURCES/0002-DOXY-Don-t-generate-timestamp.patch b/SOURCES/0002-DOXY-Don-t-generate-timestamp.patch
new file mode 100644
index 0000000..4929950
--- /dev/null
+++ b/SOURCES/0002-DOXY-Don-t-generate-timestamp.patch
@@ -0,0 +1,82 @@
+From 723ce0cd957d2b17618ca9698bcc66e61b9b6110 Mon Sep 17 00:00:00 2001
+From: Ondrej Kos <okos@redhat.com>
+Date: Fri, 12 Jul 2013 14:05:23 +0200
+Subject: [PATCH 1/2] DOXY: Don't generate timestamp
+
+https://fedorahosted.org/sssd/ticket/2003
+---
+ basicobjects/basicobjects.cfg.doxy.in | 2 +-
+ collection/collection.cfg.doxy.in     | 2 +-
+ ini/ini_config.cfg.doxy.in            | 2 +-
+ path_utils/path_utils.cfg.doxy.in     | 2 +-
+ refarray/ref_array.cfg.doxy.in        | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/basicobjects/basicobjects.cfg.doxy.in b/basicobjects/basicobjects.cfg.doxy.in
+index fed0cfbe1256c3ffcd9010d7de34babe3d266de4..f70e19c00a4e7c11c178b3c1281a00694158157a 100644
+--- a/basicobjects/basicobjects.cfg.doxy.in
++++ b/basicobjects/basicobjects.cfg.doxy.in
+@@ -810,7 +810,7 @@ HTML_STYLESHEET        =
+ # page will contain the date and time when the page was generated. Setting
+ # this to NO can help when comparing the output of multiple runs.
+ 
+-HTML_TIMESTAMP         = YES
++HTML_TIMESTAMP         = NO
+ 
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+ # files or namespaces will be aligned in HTML using tables. If set to
+diff --git a/collection/collection.cfg.doxy.in b/collection/collection.cfg.doxy.in
+index 77e42df81f4dd7159798816d75312f2993f5447a..ec134e88cb019543e461ff0131b6cd1b7eed6a87 100644
+--- a/collection/collection.cfg.doxy.in
++++ b/collection/collection.cfg.doxy.in
+@@ -810,7 +810,7 @@ HTML_STYLESHEET        =
+ # page will contain the date and time when the page was generated. Setting
+ # this to NO can help when comparing the output of multiple runs.
+ 
+-HTML_TIMESTAMP         = YES
++HTML_TIMESTAMP         = NO
+ 
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+ # files or namespaces will be aligned in HTML using tables. If set to
+diff --git a/ini/ini_config.cfg.doxy.in b/ini/ini_config.cfg.doxy.in
+index ee87fa77aa69b4df9e48aa92c75dbf07429e793b..f92dbdecdbbfab86f38eb419062110d737b1b538 100644
+--- a/ini/ini_config.cfg.doxy.in
++++ b/ini/ini_config.cfg.doxy.in
+@@ -810,7 +810,7 @@ HTML_STYLESHEET        =
+ # page will contain the date and time when the page was generated. Setting
+ # this to NO can help when comparing the output of multiple runs.
+ 
+-HTML_TIMESTAMP         = YES
++HTML_TIMESTAMP         = NO
+ 
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+ # files or namespaces will be aligned in HTML using tables. If set to
+diff --git a/path_utils/path_utils.cfg.doxy.in b/path_utils/path_utils.cfg.doxy.in
+index 306f8ec5eb247609606d9f49cbca8f3a376a3074..2b99a3f91f32ebaef0b8aaddf13a4b9822bcc862 100644
+--- a/path_utils/path_utils.cfg.doxy.in
++++ b/path_utils/path_utils.cfg.doxy.in
+@@ -810,7 +810,7 @@ HTML_STYLESHEET        =
+ # page will contain the date and time when the page was generated. Setting
+ # this to NO can help when comparing the output of multiple runs.
+ 
+-HTML_TIMESTAMP         = YES
++HTML_TIMESTAMP         = NO
+ 
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+ # files or namespaces will be aligned in HTML using tables. If set to
+diff --git a/refarray/ref_array.cfg.doxy.in b/refarray/ref_array.cfg.doxy.in
+index 37f3356819ce20be4b3c429e618c8eea0802a54c..120f1f19d9f7108a70a208b7be76427e037a2793 100644
+--- a/refarray/ref_array.cfg.doxy.in
++++ b/refarray/ref_array.cfg.doxy.in
+@@ -810,7 +810,7 @@ HTML_STYLESHEET        =
+ # page will contain the date and time when the page was generated. Setting
+ # this to NO can help when comparing the output of multiple runs.
+ 
+-HTML_TIMESTAMP         = YES
++HTML_TIMESTAMP         = NO
+ 
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+ # files or namespaces will be aligned in HTML using tables. If set to
+-- 
+1.8.1.4
+
diff --git a/SOURCES/0003-rpm-Include-the-right-filename-of-libini_config.patch b/SOURCES/0003-rpm-Include-the-right-filename-of-libini_config.patch
new file mode 100644
index 0000000..945d9b0
--- /dev/null
+++ b/SOURCES/0003-rpm-Include-the-right-filename-of-libini_config.patch
@@ -0,0 +1,25 @@
+From dbde0566df490cb8a4c1119de45e6361b0ea4c18 Mon Sep 17 00:00:00 2001
+From: Jakub Hrozek <jhrozek@redhat.com>
+Date: Sat, 13 Jul 2013 09:10:34 +0200
+Subject: [PATCH 2/2] rpm: Include the right filename of libini_config
+
+---
+ contrib/ding-libs.spec.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/contrib/ding-libs.spec.in b/contrib/ding-libs.spec.in
+index 5e1065c6c39308ac5be2ccbff21f3c1f601796e5..14ff1f2f3dfd42fcae4bad7aba03a38177d6cb71 100644
+--- a/contrib/ding-libs.spec.in
++++ b/contrib/ding-libs.spec.in
+@@ -301,7 +301,7 @@ structure
+ %doc COPYING
+ %doc COPYING.LESSER
+ %{_libdir}/libini_config.so.3
+-%{_libdir}/libini_config.so.3.0.0
++%{_libdir}/libini_config.so.3.1.0
+ 
+ %files -n libini_config-devel
+ %defattr(-,root,root,-)
+-- 
+1.8.1.4
+
diff --git a/SOURCES/0004-Trim-trailing-spaces.patch b/SOURCES/0004-Trim-trailing-spaces.patch
new file mode 100644
index 0000000..b8b501e
--- /dev/null
+++ b/SOURCES/0004-Trim-trailing-spaces.patch
@@ -0,0 +1,166 @@
+From 8390d1d432330e143832734d5799528013e79178 Mon Sep 17 00:00:00 2001
+From: Dmitri Pal <dpal@redhat.com>
+Date: Mon, 23 Sep 2013 16:03:30 -0400
+Subject: [PATCH] Trim trailing spaces
+
+This patch addressed issue https://fedorahosted.org/sssd/ticket/2095
+The new parser in fact stopped trimming trailing spaces.
+This is now corrected.
+---
+ ini/ini.d/real.conf |   2 +-
+ ini/ini_parse.c     |   7 ++++
+ ini/ini_parse_ut.c  | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 108 insertions(+), 1 deletion(-)
+
+diff --git a/ini/ini.d/real.conf b/ini/ini.d/real.conf
+index 32bc9dae0c40ce46dc4c375963b5d0cf2a05e17b..1e155b820061001695d85edfeca1819e799e2a4b 100644
+--- a/ini/ini.d/real.conf
++++ b/ini/ini.d/real.conf
+@@ -40,7 +40,7 @@ legacy = FALSE
+ enumerate = 3
+ 
+ [domains/EXAMPLE.COM]
+-description = Example domain served by IPA
++description = Example domain served by IPA 
+ provider = ipa
+ server = ipaserver1.example.com
+ server = ipabackupserver.example.com
+diff --git a/ini/ini_parse.c b/ini/ini_parse.c
+index 60ef1169986f2ea27596931ebf16fab166c71937..9a1c0ec63013adb986b627c977c9759c1d5a210e 100644
+--- a/ini/ini_parse.c
++++ b/ini/ini_parse.c
+@@ -968,6 +968,13 @@ static int handle_kvp(struct parser_obj *po, uint32_t *action)
+         full_len--;
+     }
+ 
++    /* Trucate trailing spaces */
++    /* Make sure not to step before the beginning */
++    while (full_len && isspace(str[full_len - 1])) {
++        str[full_len - 1] = '\0';
++        full_len--;
++    }
++
+     /* Check if we have the key */
+     if (*(str) == '=') {
+         po->last_error = ERR_NOKEY;
+diff --git a/ini/ini_parse_ut.c b/ini/ini_parse_ut.c
+index 32c59e7a3a36a5b719620ae42cf070154d4eb416..2655d7e8e11a391db324a9c022004f7cbbeb092e 100644
+--- a/ini/ini_parse_ut.c
++++ b/ini/ini_parse_ut.c
+@@ -2650,6 +2650,105 @@ int space_test(void)
+     return EOK;
+ }
+ 
++
++int trim_test(void)
++{
++    int error;
++    struct ini_cfgfile *file_ctx = NULL;
++    struct ini_cfgobj *ini_config = NULL;
++    char **error_list = NULL;
++    char infile[PATH_MAX];
++    char *srcdir = NULL;
++    const char *value;
++    struct value_obj *vo = NULL;
++
++    INIOUT(printf("\n\n<==== TRIM TEST START =====>\n"));
++
++    srcdir = getenv("srcdir");
++    snprintf(infile, PATH_MAX, "%s/ini/ini.d/real.conf",
++             (srcdir == NULL) ? "." : srcdir);
++
++
++    INIOUT(printf("Reading file %s\n", infile));
++    error = ini_config_file_open(infile,
++                                 0,
++                                 &file_ctx);
++    if (error) {
++        printf("Failed to open file for reading. Error %d.\n",  error);
++        return error;
++    }
++
++    INIOUT(printf("Creating configuration object\n"));
++    error = ini_config_create(&ini_config);
++    if (error) {
++        printf("Failed to create object. Error %d.\n", error);
++        ini_config_file_destroy(file_ctx);
++        return error;
++    }
++    INIOUT(printf("Parsing\n"));
++    error = ini_config_parse(file_ctx,
++                             INI_STOP_ON_NONE,
++                             0,
++                             0,
++                             ini_config);
++    if (error) {
++        INIOUT(printf("Failed to parse configuration. "
++                      "Error %d.\n", error));
++
++        if (ini_config_error_count(ini_config)) {
++            INIOUT(printf("Errors detected while parsing: %s\n",
++                   ini_config_get_filename(file_ctx)));
++            ini_config_get_errors(ini_config, &error_list);
++            INIOUT(ini_config_print_errors(stdout, error_list));
++            ini_config_free_errors(error_list);
++        }
++        ini_config_file_destroy(file_ctx);
++        return error;
++    }
++
++    INIOUT(col_debug_collection(ini_config->cfg, COL_TRAVERSE_DEFAULT));
++    ini_config_file_destroy(file_ctx);
++
++    vo = NULL;
++    error = ini_get_config_valueobj("domains/EXAMPLE.COM",
++                                    "description",
++                                    ini_config,
++                                    INI_GET_FIRST_VALUE,
++                                    &vo);
++    if(error) {
++        printf("Expected success but got error! %d\n",error);
++        ini_config_destroy(ini_config);
++        return error;
++    }
++
++    /* Value should be found */
++    if (vo == NULL) {
++        printf("Expected success but got NULL.\n");
++        ini_config_destroy(ini_config);
++        return -1;
++    }
++
++    value = ini_get_const_string_config_value(vo, NULL);
++
++    if (value == NULL) {
++        printf("No value.\n");
++        ini_config_destroy(ini_config);
++        return -1;
++    }
++
++    if(value[strlen(value) - 1] == ' ') {
++        printf("Trailing space is not trimmed.\n");
++        ini_config_destroy(ini_config);
++        return -1;
++    }
++
++    INIOUT(printf("[%s]\n", value));
++
++    ini_config_destroy(ini_config);
++
++    INIOUT(printf("\n<==== TRIM TEST END =====>\n\n"));
++    return EOK;
++}
+ /* Main function of the unit test */
+ int main(int argc, char *argv[])
+ {
+@@ -2663,6 +2762,7 @@ int main(int argc, char *argv[])
+                         reload_test,
+                         get_test,
+                         space_test,
++                        trim_test,
+                         NULL };
+     test_fn t;
+     int i = 0;
+-- 
+1.8.3.1
+
diff --git a/SPECS/ding-libs.spec b/SPECS/ding-libs.spec
new file mode 100644
index 0000000..a5f6a70
--- /dev/null
+++ b/SPECS/ding-libs.spec
@@ -0,0 +1,449 @@
+Name: ding-libs
+Version: 0.3.0.1
+Release: 20%{?dist}
+Summary: "Ding is not GLib" assorted utility libraries
+Group: Development/Libraries
+License: LGPLv3+
+URL: http://fedorahosted.org/sssd/
+Source0: http://fedorahosted.org/releases/d/i/ding-libs/%{name}-%{version}.tar.gz
+BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+
+# If a new upstream release changes some, but not all of these
+# version numbers, remember to keep the Release tag in order to
+# allow clean upgrades!
+%global path_utils_version 0.2.1
+%global dhash_version 0.4.3
+%global collection_version 0.6.2
+%global ref_array_version 0.1.3
+%global basicobjects_version 0.1.0
+%global ini_config_version 1.0.0.1
+
+### Patches ###
+Patch0001:  0001-INI-Bump-version-info.patch
+Patch0002:  0002-DOXY-Don-t-generate-timestamp.patch
+Patch0003:  0003-rpm-Include-the-right-filename-of-libini_config.patch
+Patch0004:  0004-Trim-trailing-spaces.patch
+
+### Dependencies ###
+# ding-libs is a meta-package that will pull in all of its own
+# sub-packages
+Requires: libpath_utils = %{path_utils_version}-%{release}
+Requires: libdhash = %{dhash_version}-%{release}
+Requires: libcollection = %{collection_version}-%{release}
+Requires: libref_array = %{ref_array_version}-%{release}
+Requires: libbasicobjects = %{basicobjects_version}-%{release}
+Requires: libini_config = %{ini_config_version}-%{release}
+
+### Build Dependencies ###
+
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: libtool
+BuildRequires: m4
+BuildRequires: doxygen
+BuildRequires: check-devel
+
+%description
+A set of helpful libraries used by projects such as SSSD.
+
+%package devel
+Summary: Development packages for ding-libs
+Group: Development/Libraries
+License: LGPLv3+
+
+# ding-libs is a meta-package that will pull in all of its own
+# sub-packages
+Requires: libpath_utils-devel = %{path_utils_version}-%{release}
+Requires: libdhash-devel = %{dhash_version}-%{release}
+Requires: libcollection-devel = %{collection_version}-%{release}
+Requires: libref_array-devel = %{ref_array_version}-%{release}
+Requires: libbasicobjects-devel = %{basicobjects_version}-%{release}
+Requires: libini_config-devel = %{ini_config_version}-%{release}
+
+%description devel
+A meta-package that pulls in development libraries for libcollection,
+libdhash, libini_config, librefarray and libpath_utils.
+
+##############################################################################
+# Path Utils
+##############################################################################
+
+%package -n libpath_utils
+Summary: Filesystem Path Utilities
+Group: Development/Libraries
+License: LGPLv3+
+Version: %{path_utils_version}
+
+%description -n libpath_utils
+Utility functions to manipulate filesystem pathnames
+
+%package -n libpath_utils-devel
+Summary: Development files for libpath_utils
+Group: Development/Libraries
+Requires: libpath_utils = %{path_utils_version}-%{release}
+License: LGPLv3+
+Version: %{path_utils_version}
+
+%description -n libpath_utils-devel
+Utility functions to manipulate filesystem pathnames
+
+%post -n libpath_utils -p /sbin/ldconfig
+%postun -n libpath_utils -p /sbin/ldconfig
+
+%files -n libpath_utils
+%defattr(-,root,root,-)
+%doc COPYING COPYING.LESSER
+%{_libdir}/libpath_utils.so.*
+
+%files -n libpath_utils-devel
+%defattr(-,root,root,-)
+%{_includedir}/path_utils.h
+%{_libdir}/libpath_utils.so
+%{_libdir}/pkgconfig/path_utils.pc
+%doc path_utils/README.path_utils
+%doc path_utils/doc/html/
+
+
+##############################################################################
+# dhash
+##############################################################################
+
+%package -n libdhash
+Group: Development/Libraries
+Summary: Dynamic hash table
+License: LGPLv3+
+Version: %{dhash_version}
+
+%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
+Requires: libdhash = %{dhash_version}-%{release}
+License: LGPLv3+
+Version: %{dhash_version}
+
+%description -n libdhash-devel
+A hash table which will dynamically resize to achieve optimal storage & access
+time properties
+
+%post -n libdhash -p /sbin/ldconfig
+%postun -n libdhash -p /sbin/ldconfig
+
+%files -n libdhash
+%defattr(-,root,root,-)
+%doc COPYING COPYING.LESSER
+%{_libdir}/libdhash.so.*
+
+%files -n libdhash-devel
+%defattr(-,root,root,-)
+%{_includedir}/dhash.h
+%{_libdir}/libdhash.so
+%{_libdir}/pkgconfig/dhash.pc
+%doc dhash/README.dhash
+%doc dhash/examples/
+
+
+##############################################################################
+# collection
+##############################################################################
+%package -n libcollection
+Summary: Collection data-type for C
+Group: Development/Libraries
+License: LGPLv3+
+Version: %{collection_version}
+
+%description -n libcollection
+A data-type to collect data in a hierarchical structure for easy iteration
+and serialization
+
+%package -n libcollection-devel
+Summary: Development files for libcollection
+Group: Development/Libraries
+License: LGPLv3+
+Requires: libcollection = %{collection_version}-%{release}
+Version: %{collection_version}
+
+%description -n libcollection-devel
+A data-type to collect data in a hierarchical structure for easy iteration
+and serialization
+
+%post -n libcollection -p /sbin/ldconfig
+%postun -n libcollection -p /sbin/ldconfig
+
+
+%files -n libcollection
+%defattr(-,root,root,-)
+%doc COPYING
+%doc COPYING.LESSER
+%{_libdir}/libcollection.so.*
+
+%files -n libcollection-devel
+%defattr(-,root,root,-)
+%{_includedir}/collection.h
+%{_includedir}/collection_tools.h
+%{_includedir}/collection_queue.h
+%{_includedir}/collection_stack.h
+%{_libdir}/libcollection.so
+%{_libdir}/pkgconfig/collection.pc
+%doc collection/doc/html/
+
+
+##############################################################################
+# ref_array
+##############################################################################
+
+%package -n libref_array
+Summary: A refcounted array for C
+Group: Development/Libraries
+License: LGPLv3+
+Version: %{ref_array_version}
+
+%description -n libref_array
+A dynamically-growing, reference-counted array
+
+%package -n libref_array-devel
+Summary: Development files for libref_array
+Group: Development/Libraries
+Requires: libref_array = %{ref_array_version}-%{release}
+License: LGPLv3+
+Version: %{ref_array_version}
+
+%description -n libref_array-devel
+A dynamically-growing, reference-counted array
+
+%post -n libref_array -p /sbin/ldconfig
+%postun -n libref_array -p /sbin/ldconfig
+
+%files -n libref_array
+%defattr(-,root,root,-)
+%doc COPYING
+%doc COPYING.LESSER
+%{_libdir}/libref_array.so.*
+
+%files -n libref_array-devel
+%defattr(-,root,root,-)
+%{_includedir}/ref_array.h
+%{_libdir}/libref_array.so
+%{_libdir}/pkgconfig/ref_array.pc
+%doc refarray/README.ref_array
+%doc refarray/doc/html/
+
+
+##############################################################################
+# basicobjects
+##############################################################################
+
+%package -n libbasicobjects
+Summary: Basic object types for C
+Group: Development/Libraries
+License: GPLv3+
+Version: %{basicobjects_version}
+
+%description -n libbasicobjects
+Basic object types
+
+%package -n libbasicobjects-devel
+Summary: Development files for libbasicobjects
+Group: Development/Libraries
+License: GPLv3+
+Version: %{basicobjects_version}
+Requires: libbasicobjects = %{basicobjects_version}-%{release}
+
+%description -n libbasicobjects-devel
+Basic object types
+
+%post -n libbasicobjects -p /sbin/ldconfig
+%postun -n libbasicobjects -p /sbin/ldconfig
+
+%files -n libbasicobjects
+%defattr(-,root,root,-)
+%doc COPYING
+%doc COPYING.LESSER
+%{_libdir}/libbasicobjects.so.*
+
+%files -n libbasicobjects-devel
+%defattr(-,root,root,-)
+%{_includedir}/simplebuffer.h
+%{_libdir}/libbasicobjects.so
+%{_libdir}/pkgconfig/basicobjects.pc
+
+##############################################################################
+# ini_config
+##############################################################################
+
+%package -n libini_config
+Summary: INI file parser for C
+Group: Development/Libraries
+License: LGPLv3+
+Version: %{ini_config_version}
+
+%description -n libini_config
+Library to process config files in INI format into a libcollection data
+structure
+
+%package -n libini_config-devel
+Summary: Development files for libini_config
+Group: Development/Libraries
+License: LGPLv3+
+Requires: libini_config = %{ini_config_version}-%{release}
+Requires: libcollection-devel = %{collection_version}-%{release}
+Requires: libref_array-devel = %{ref_array_version}-%{release}
+Requires: libbasicobjects-devel = %{basicobjects_version}-%{release}
+Version: %{ini_config_version}
+
+%description -n libini_config-devel
+Library to process config files in INI format into a libcollection data
+structure
+
+%post -n libini_config -p /sbin/ldconfig
+%postun -n libini_config -p /sbin/ldconfig
+
+%files -n libini_config
+%defattr(-,root,root,-)
+%doc COPYING
+%doc COPYING.LESSER
+%{_libdir}/libini_config.so.*
+
+%files -n libini_config-devel
+%defattr(-,root,root,-)
+%{_includedir}/ini_config.h
+%{_includedir}/ini_comment.h
+%{_includedir}/ini_configobj.h
+%{_includedir}/ini_valueobj.h
+%{_libdir}/libini_config.so
+%{_libdir}/pkgconfig/ini_config.pc
+%doc ini/doc/html/
+
+
+##############################################################################
+# Build steps
+##############################################################################
+
+%prep
+%setup -q
+%patch0001 -p1 -b .version
+%patch0002 -p1 -b .timestamp
+%patch0003 -p1 -b .rpmbuild
+%patch0004 -p1 -b .whitespace
+
+%build
+autoreconf -ivf
+%configure \
+    --disable-static
+
+make %{?_smp_mflags} all docs
+
+%check
+make %{?_smp_mflags} check
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+make install DESTDIR=$RPM_BUILD_ROOT
+
+# Remove .la files created by libtool
+rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la
+
+# 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/ding-libs/README.* \
+    $RPM_BUILD_ROOT/usr/share/doc/ding-libs/examples/dhash_example.c \
+    $RPM_BUILD_ROOT/usr/share/doc/ding-libs/examples/dhash_test.c
+
+# Remove document install script. RPM is handling this
+rm -f */doc/html/installdox
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%changelog
+* Fri Sep 27 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.3.0.1-20
+- Apply a patch by Dmitri Pal to strip trailing whitespace
+- Resolves: rhbz#1012434 - libiniconfig doesn't trim trailing whitespace
+
+* Tue Jul 16 2013 Ondrej Kos <okos@redhat.com> - 0.3.0.1-18
+- Apply patch to stop generating doxygen timestamps
+- Apply patch to include correct libini_config file
+
+* Thu May 23 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.3.0.1-17
+- Apply patch by Ondrej Kos to bump libtool version info
+
+* Fri Apr 05 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.3.0.1-16
+- Fix libiniconfig_devel Requires
+
+* Thu Apr 04 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.3.0.1-15
+- Increase the release number to -15 to allow clean upgrade path from
+  0.2 since some of the components kept their version the same in 0.3
+
+* Mon Apr 01 2013 Stephen Gallagher <sgallagh@redhat.com> - 0.3.0.1-3
+- Bumping revision to fix build glitch
+
+* Fri Mar 29 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.3.0.1-1
+- New upstream release 0.3.0.1
+- https://fedorahosted.org/sssd/wiki/Releases/DingNotes-0.3.0.1
+- obsoletes patch0001
+
+* Thu Mar 28 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.3.0-2
+- Remove cast to allow INI to work on 32bits
+
+* Thu Mar 28 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.3.0-1
+- New upstream release 0.3.0
+- https://fedorahosted.org/sssd/wiki/Releases/DingNotes-0.3.0
+
+* Mon Mar 25 2013 Jakub Hrozek <jhrozek@redhat.com> - 0.2.91-14
+- include a patch to get rid of autoreconf warnings
+- run autoreconf before configure
+- Resolves: #925258
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.91-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Wed Oct 31 2012 Ondrej Kos <okos@redhat.com> - 0.2.91-12
+- Fixes missing devel dependency
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.91-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Mon May 28 2012 Jan Zeleny <jzeleny@redhat.com> - 0.2.91-10
+- a bunch of fixes in spec file
+
+* Fri May 25 2012 Jan Zeleny <jzeleny@redhat.com> - 0.2.91-9
+- Bumped the release number to 9 for smooth upgrade
+
+* Fri May 25 2012 Jan Zeleny <jzeleny@redhat.com> - 0.2.91-1
+- Rebase to 0.3.0beta1, changelog available at
+  https://fedorahosted.org/sssd/wiki/Releases/DingNotes-0.2.91
+
+* Tue Mar 06 2012 Stephen Gallagher <sgallagh@redhat.com> - 0.1.3-8
+- Make path_concat return empty string on ENOBUFS
+
+* Tue Mar 06 2012 Stephen Gallagher <sgallagh@redhat.com> - 0.1.3-7
+- Fix off-by-one bug in path_concat()
+- Resolves: rhbz#799347 - path_utils:test_path_concat_neg fails on 64-bit big
+                          endians
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.3-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Thu Sep 15 2011 Stephen Gallagher <sgallagh@redhat.com> - 0.1.3-5
+- New upstream release 0.1.3
+- Fixes a serious issue with libdhash and large initial hash sizes
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Fri Oct 15 2010 Stephen Gallagher <sgallagh@redhat.com> - 0.1.2-3
+- New upsteam release 0.1.2
+- Fixes a serious issue with libdhash where hash_enter() would never update
+- existing entries for a key.
+
+* Fri Sep 24 2010 Stephen Gallagher <sgallagh@redhat.com> - 0.1.1-2
+- Fix invalid source URL
+
+* Thu Sep 23 2010 Stephen Gallagher <sgallagh@redhat.com> - 0.1.1-1
+- Initial release of ding-libs