-Summary: A registry to store general key-value pairs instead of text configuration files
-Summary(pl): Rejestr do przechowywania par klucz-warto¶æ u¿ywany zamiast plików konfiguracyjnych
+Summary: A key/value pair database to store software configurations
+Summary(pl): Baza kluczy/warto¶ci do przechowywania konfiguracji oprogramowania
Name: elektra
Version: 0.4.6
-Release: 1
+Release: 0.1
+Epoch: 0
License: BSD
-Vendor: Avi Alkalay <avi@unix.sh>
-Group: Base
-Source0: http://dl.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
+Group: Applications/System
+Source0: http://dl.sourceforge.net/elektra/%{name}-%{version}.tar.gz
# Source0-md5: f032ec83ffe91f2e7c2a0d70f67749eb
-URL: http://elektra.sf.net
-BuildRequires: docbook-style-xsl
+Patch0: %{name}-Makefile_CFLAGS.patch
+Patch1: %{name}-libdir.patch
+Patch2: %{name}-not_implemented_func_hack.patch
+Patch3: %{name}-elektraenv.patch
+URL: http://elektra.sf.net/
+BuildRequires: libxml2-devel
BuildRequires: libxslt-progs
+Requires(post): /sbin/ldconfig
+Requires: mktemp
+# for /usr/share/sgml dir
+Requires: sgml-common
Obsoletes: registry
-Requires: %{name}-libs = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-The Linux Registry is an alternative back-end for text configuration
-files.
-
-Instead of each program to have its own text configuration files, the
-Registry tries to provide a universal, fast, consistent, robust,
-thread-safe and transactional infrastructure to store configuration
-parameters through a key-value pair mechanism.
+The Elektra Project provides a framework to store generic
+configuration data in an hierarchical key-value pair database, instead
+of a human-readable only text file.
This way any software can read/save his configuration using a
consistent API. Also, applications can be aware of other applications
configurations, leveraging easy application integration.
%description -l pl
-Rejestr Linux jest alternatyw± dla zaplecza w postaci tekstowych
-plików konfiguracyjnych.
-
-Ka¿dy program, zamiast przechowywaæ informacje konfiguracyjne w swoim
-w³asnym pliku mo¿e u¿yæ Rejestru, który udostêpnia uniwersaln±,
-szybk±, spójn±, niezawodn±, bezpieczn± dla aplikacji opartych na
-w±tkach i transakcyjn± infrastrukturê s³u¿±c± do przechowywania
-parametrów konfiguracyjnych poprzez mechanizm: klucz-warto¶æ.
+Projekt Elektra dostarcza szkielet do przechowywania typowych danych
+konfiguracyjnych w postaci klucz-warto¶æ w hierarchicznej bazie
+danych, zamiast w pliku tekstowym czytelnym tylko dla cz³owieka.
-W ten sposób ka¿da aplikacja mo¿e odczytaæ/zapisaæ swoj± konfiguracjê
-u¿ywaj±c spójnego API. Co wiêcej, aplikacje mog± w ten sposób
-wzajemnie zdawaæ sobie sprawê o swoich konfiguracjach co wspomaga
-ich integrowanie.
+W ten sposób oprogramowanie mo¿e odczytywaæ/zapisywaæ konfiguracjê za
+pomoc± spójnego API. Dodatkowo aplikacje mog± byæ zorientowane w
+konfiguracji innych aplikacji, u³atwiaj±c ich integracjê.
%package devel
-Summary: Include files and API documentation for the Linux Registry
-Summary(pl): Pliki nag³ówkowe i dokumentacja API dla Rejestru Linux
+Summary: Include files and API documentation for Elektra Project
+Summary(pl): Pliki nag³ówkowe i dokumentacja API projektu Elektra
Group: Development/Libraries
-Requires: %{name}-libs = %{version}-%{release}
+Requires: elektra = %{epoch}:%{version}-%{release}
%description devel
-The Linux Registry is an alternative back-end for text configuration
-files.
-
-Instead of each program to have its own text configuration files, the
-Registry tries to provide a universal, fast, consistent, robust,
-thread-safe and transactional infrastructure to store configuration
-parameters through a key-value pair mechanism.
+The Elektra Project provides a framework to store generic
+configuration data in an hierarchical key-value pair database, instead
+of a human-readable only text file.
This way any software can read/save his configuration using a
consistent API. Also, applications can be aware of other applications
configurations, leveraging easy application integration.
This package contains the include files and API manual pages to use
-the Registry API in C.
+the Elektra API in C.
%description devel -l pl
-Rejestr Linux jest alternatyw± dla zaplecza w postaci tekstowych
-plików konfiguracyjnych.
-
-Ka¿dy program, zamiast przechowywaæ informacje konfiguracyjne w swoim
-w³asnym pliku mo¿e u¿yæ Rejestru, który udostêpnia uniwersaln±,
-szybk±, spójn±, niezawodn±, bezpieczn± dla aplikacji opatrych na
-w±tkach i transakcyjn± infrastrukturê s³u¿±c± do przechowwania
-parametrów konfiguracyjnych poprzez mechanizm: klucz-warto¶æ.
-
-W ten sposób ka¿da aplikacja mo¿e odczytaæ/zapisaæ swoj± konfiguracjê
-u¿ywaj±c spójnego API. Co wiêcej, aplikacje mog± w ten sposób
-wzajemnie zdawaæ sobie sprawê o swoich konfiguracjach co wspomaga
-ich integrowanie.
-
-Ten pakiet zawiera pliki nag³ówkowe i strony podrêcznika API, aby
-u¿ywaæ Rejestru z poziomu programów pisanych w jêzyku C.
-
-%package examples
-Summary: Example source files for the Linux Registry
-Summary(pl): Przyk³adowe pliki ¼ród³owe dla Rejestru Linux
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-
-%description examples
-The Linux Registry is an alternative back-end for text configuration
-files.
-
-Instead of each program to have its own text configuration files, the
-Registry tries to provide a universal, fast, consistent, robust,
-thread-safe and transactional infrastructure to store configuration
-parameters through a key-value pair mechanism.
-
-This way any software can read/save his configuration using a
-consistent API. Also, applications can be aware of other applications
-configurations, leveraging easy application integration.
+Projekt Elektra dostarcza szkielet do przechowywania typowych danych
+konfiguracyjnych w postaci klucz-warto¶æ w hierarchicznej bazie
+danych, zamiast w pliku tekstowym czytelnym tylko dla cz³owieka.
-This package contains the example source files for the Linux Registry.
+W ten sposób oprogramowanie mo¿e odczytywaæ/zapisywaæ konfiguracjê za
+pomoc± spójnego API. Dodatkowo aplikacje mog± byæ zorientowane w
+konfiguracji innych aplikacji, u³atwiaj±c ich integracjê.
-%description examples -l pl
-Rejestr Linux jest alternatyw± dla zaplecza w postaci tekstowych
-plików konfiguracyjnych.
+Ten pakiet zawiera pliki nag³ówkowe oraz strony podrêcznika
+systemowego opisuj±cego sposób u¿ycia API Elektry w C.
-Ka¿dy program, zamiast przechowywaæ informacje konfiguracyjne w swoim
-w³asnym pliku mo¿e u¿yæ Rejestru, który udostêpnia uniwersaln±,
-szybk±, spójn±, niezawodn±, bezpieczn± dla aplikacji opatrych na
-w±tkach i transakcyjn± infrastrukturê s³u¿±c± do przechowwania
-parametrów konfiguracyjnych poprzez mechanizm: klucz-warto¶æ.
-
-W ten sposób ka¿da aplikacja mo¿e odczytaæ/zapisaæ swoj± konfiguracjê
-u¿ywaj±c spójnego API. Co wiêcej, aplikacje mog± w ten sposób
-wzajemnie zdawaæ sobie sprawê o swoich konfiguracjach co wspomaga
-ich integrowanie.
-
-Ten pakiet zawiera przyk³adowe pliki ¼ród³owe dla Rejestru Linux.
-
-%package libs
-Summary: Library files for the Linux Registry
-Summary(pl): Pliki biblioteki dla Rejestru Linux
-Group: Base
-
-%description libs
-The Linux Registry is an alternative back-end for text configuration
-files.
+%package static
+Summary: Static library for Elektra Project
+Summary(pl): Statyczna wersja biblioteki projektu Elektra
+Group: Development/Libraries
+Requires: elektra-devel = %{epoch}:%{version}-%{release}
-Instead of each program to have its own text configuration files, the
-Registry tries to provide a universal, fast, consistent, robust,
-thread-safe and transactional infrastructure to store configuration
-parameters through a key-value pair mechanism.
+%description static
+The Elektra Project provides a framework to store generic
+configuration data in an hierarchical key-value pair database, instead
+of a human-readable only text file.
This way any software can read/save his configuration using a
consistent API. Also, applications can be aware of other applications
configurations, leveraging easy application integration.
-This package contains the library files, which are necessary for the
-applications to work with the Registry.
+This package contains static library for Elektra Project.
-%description libs -l pl
-Rejestr Linux jest alternatyw± dla zaplecza w postaci tekstowych
-plików konfiguracyjnych.
+%description static -l pl
+Projekt Elektra dostarcza szkielet do przechowywania typowych danych
+konfiguracyjnych w postaci klucz-warto¶æ w hierarchicznej bazie
+danych, zamiast w pliku tekstowym czytelnym tylko dla cz³owieka.
-Ka¿dy program, zamiast przechowywaæ informacje konfiguracyjne w swoim
-w³asnym pliku mo¿e u¿yæ Rejestru, który udostêpnia uniwersaln±,
-szybk±, spójn±, niezawodn±, bezpieczn± dla aplikacji opatrych na
-w±tkach i transakcyjn± infrastrukturê s³u¿±c± do przechowwania
-parametrów konfiguracyjnych poprzez mechanizm: klucz-warto¶æ.
+W ten sposób oprogramowanie mo¿e odczytywaæ/zapisywaæ konfiguracjê za
+pomoc± spójnego API. Dodatkowo aplikacje mog± byæ zorientowane w
+konfiguracji innych aplikacji, u³atwiaj±c ich integracjê.
-W ten sposób ka¿da aplikacja mo¿e odczytaæ/zapisaæ swoj± konfiguracjê
-u¿ywaj±c spójnego API. Co wiêcej, aplikacje mog± w ten sposób
-wzajemnie zdawaæ sobie sprawê o swoich konfiguracjach co wspomaga
-ich integrowanie.
-
-Ten pakiet zawiera pliki biblioteczne konieczne do dzia³ania
-aplikacji wraz z Rejestrem.
+Ten pakiet zawiera wersjê statyczn± biblioteki projektu Elektra.
%prep
%setup -q -n %{name}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
-%{__make} all CC="%{__cc}" CFLAGS="%{rpmcflags}"
+%{__make} all \
+ CC="%{__cc}" \
+ CFLAGS="%{rpmcflags}"
%install
rm -rf $RPM_BUILD_ROOT
-
-install -d $RPM_BUILD_ROOT{/bin,/%{_lib},%{_includedir},%{_examplesdir}} \
- $RPM_BUILD_ROOT%{_docdir}/{%{name}-devel,%{name}} \
- $RPM_BUILD_ROOT%{_mandir}/man{1,3,5,7}
+install -d $RPM_BUILD_ROOT/etc/sysconfig
%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+ LIB=/%{_lib} \
+ DESTDIR=$RPM_BUILD_ROOT
+
+cp -a $RPM_BUILD_ROOT%{_datadir}/doc/%{name}-devel elektra-api
-mv -f $RPM_BUILD_ROOT%{_docdir}/%{name} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-mv -f $RPM_BUILD_ROOT%{_docdir}/%{name}-devel $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-mv -f TODO VERSION ChangeLog $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+echo 'RUN="no"' > $RPM_BUILD_ROOT/etc/sysconfig/elektra
%clean
rm -rf $RPM_BUILD_ROOT
%post
-/bin/rg set -t dir system.sw
+/sbin/ldconfig
+# Create basic key structure for apps
+kdb set -t dir system/sw || :
-%post libs -p /sbin/ldconfig
-%postun libs -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
+%doc articles doc/standards example scripts AUTHORS ChangeLog README TODO
%attr(755,root,root) /bin/*
-%doc %{_docdir}/%{name}-%{version}/*
-%{_mandir}/man1/*
-%{_mandir}/man5/*
-%{_mandir}/man7/*
+%attr(755,root,root) /%{_lib}/lib*.so
+%attr(755,root,root) /etc/profile.d/*
+%{_datadir}/sgml/*
+%{_mandir}/man[157]/*
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
%files devel
%defattr(644,root,root,755)
+%doc bindings elektra-api
%{_includedir}/*
%{_mandir}/man3/*
-%files examples
-%defattr(644,root,root,755)
-%doc %{_examplesdir}/%{name}-%{version}/*
-
-%files libs
+%files static
%defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/*
+%{_libdir}/lib*.a