From 84ae5edab16ad6be5e3be956cb6fa031c1428eb5 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 18 May 2009 14:52:42 -0400 Subject: Convert top-level of SSSD to automake. Also update RPM spec and build procedures. --- BUILD.txt | 35 ++++++++++-- Makefile | 57 ------------------- Makefile.am | 24 ++++++++ configure.ac | 11 ++++ sssd.spec | 160 --------------------------------------------------- sssd.spec.in | 182 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 247 insertions(+), 222 deletions(-) delete mode 100644 Makefile create mode 100644 Makefile.am create mode 100644 configure.ac delete mode 100644 sssd.spec create mode 100644 sssd.spec.in diff --git a/BUILD.txt b/BUILD.txt index cddfea810..b90a7a90a 100644 --- a/BUILD.txt +++ b/BUILD.txt @@ -12,18 +12,43 @@ They are now available in major distribution development branches. If you want to build them from source download the latest samba master branch +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +How to build everything in one go (Preferred approach) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +From the root of the source, run: +autoreconf -i -f && \ +./configure && \ +make + +Optionally, parallel builds are possible with: +autoreconf -i -f && \ +mkdir parallelbuilddir && cd parallelbuilddir && \ +../configure && \ +make + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +How to build components individually +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Internal Library Requirements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sssd provides several required libraries within its source tree: collection ini_config +libreplace Compiling sssd internal libraries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -pushd common; \ +pushd replace; +autoreconf -i -f && \ +./configure && \ +make; +popd + +pushd common; autoreconf -i -f && \ ./configure --enable-static --disable-shared && \ -make; \ +make; popd This will build the libraries statically for linking into the sssd. Currently @@ -33,7 +58,7 @@ for collection and ini_config is not yet ready for general consumption). Compiling sssd with system installed libraries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pushd server; \ -./autogen.sh && \ +autoreconf -i -f && \ ./configure && \ make; \ popd @@ -43,7 +68,7 @@ Compiling client libraries The nss and pam client do not require any additional dependencies. pushd sss_client; \ -./autogen.sh && \ +autoreconf -i -f && \ ./configure && \ make; \ popd @@ -65,4 +90,4 @@ Now you can call pam_test_client: ./pam_test_client [auth|chau|acct|setc|open|clos] username@domain ~~~~~ -Simo and Steve +Simo and Steve (Last updated for 0.4.0) diff --git a/Makefile b/Makefile deleted file mode 100644 index 7e774a2a8..000000000 --- a/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -PACKAGE_NAME = sssd -PACKAGE_VERSION = 0.3.3 -TARGET ?= master -SUBDIRS = common server replace sss_client -TARBALL_PREFIX = $(PACKAGE_NAME)-$(PACKAGE_VERSION) -TARBALL = $(TARBALL_PREFIX).tar.gz -LIBDIR ?= /usr/lib -RPMBUILD ?= $(PWD)/rpmbuild -DOC = BUILD.txt COPYING - -all: - -clean: - rm -Rf dist - rm -Rf $(RPMBUILD) - -realdistclean: clean - -make -C common maintainer-clean - -make -C server realdistclean - -archive: - -mkdir -p dist/$(TARBALL_PREFIX) - git archive --format=tar --prefix=sssd/ $(TARGET) | (cd dist && tar xf -) - @for subdir in $(SUBDIRS); do \ - cp -pr dist/sssd/$$subdir dist/$(TARBALL_PREFIX)/.; \ - done - -local-archive: realdistclean - -mkdir -p dist/$(TARBALL_PREFIX) - @for subdir in $(SUBDIRS); do \ - cp -pr $$subdir dist/$(TARBALL_PREFIX)/.; \ - done - cp -p $(DOC) dist/$(TARBALL_PREFIX)/. - -tarballs: local-archive - -mkdir -p dist/sources - rm -f dist/sources/$(TARBALL) - cd dist/$(TARBALL_PREFIX)/server; ./autogen.sh - cd dist; tar cfz sources/$(TARBALL) $(TARBALL_PREFIX) - - -rpmroot: - mkdir -p $(RPMBUILD)/BUILD - mkdir -p $(RPMBUILD)/RPMS - mkdir -p $(RPMBUILD)/SOURCES - mkdir -p $(RPMBUILD)/SPECS - mkdir -p $(RPMBUILD)/SRPMS - -rpmdistdir: - mkdir -p dist/rpms - mkdir -p dist/srpms - -rpms: tarballs rpmroot rpmdistdir - cp sssd.spec $(RPMBUILD)/SPECS - cp dist/sources/$(TARBALL) $(RPMBUILD)/SOURCES - cd $(RPMBUILD); rpmbuild --define "_topdir $(RPMBUILD)" -ba SPECS/sssd.spec - diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 000000000..60d739e80 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,24 @@ +SUBDIRS = replace common server sss_client + +RPMBUILD ?= $(PWD)/rpmbuild + +dist_noinst_DATA = \ + sssd.spec.in \ + BUILD.txt \ + COPYING + +rpmroot: + mkdir -p $(RPMBUILD)/BUILD + mkdir -p $(RPMBUILD)/RPMS + mkdir -p $(RPMBUILD)/SOURCES + mkdir -p $(RPMBUILD)/SPECS + mkdir -p $(RPMBUILD)/SRPMS + +rpmdistdir: + mkdir -p dist/rpms + mkdir -p dist/srpms + +rpms: dist-gzip rpmroot rpmdistdir + cp $(builddir)/sssd.spec $(RPMBUILD)/SPECS + cp $(distdir).tar.gz $(RPMBUILD)/SOURCES + cd $(RPMBUILD); rpmbuild --define "_topdir $(RPMBUILD)" -ba SPECS/sssd.spec diff --git a/configure.ac b/configure.ac new file mode 100644 index 000000000..8359f64bd --- /dev/null +++ b/configure.ac @@ -0,0 +1,11 @@ +AC_INIT([sssd], [0.4.0], [sgallagh@redhat.com]) +AC_CONFIG_SRCDIR([BUILD.txt]) +AC_CONFIG_AUX_DIR([build]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) +AC_CONFIG_MACRO_DIR([m4]) +AC_PROG_INSTALL + +AC_CONFIG_SUBDIRS([replace common server sss_client]) + +AC_CONFIG_FILES([Makefile sssd.spec]) +AC_OUTPUT diff --git a/sssd.spec b/sssd.spec deleted file mode 100644 index 20d939b75..000000000 --- a/sssd.spec +++ /dev/null @@ -1,160 +0,0 @@ -Name: sssd -Version: 0.3.3 -Release: 1%{dist} -Group: Applications/System -Summary: System Security Services Daemon -# The entire source code is GPLv3+ except replace/ which is LGPLv3+ -License: GPLv3+ and LGPLv3+ -URL: http://www.freeipa.org/ -Source0: sssd-%{version}.tar.gz -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) - -### Patches ### - -### Dependencies ### - -Requires: libldb = 0.9.3 -Requires: libtdb >= 1.1.3 - -Requires(preun): initscripts chkconfig -Requires(postun): /sbin/service - -%define servicename sssd - -### Build Dependencies ### - -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtool -BuildRequires: m4 -BuildRequires: popt-devel -BuildRequires: libtalloc-devel -BuildRequires: libtevent-devel -BuildRequires: libtdb-devel -BuildRequires: libldb-devel -BuildRequires: dbus-devel -BuildRequires: dbus-libs -BuildRequires: openldap-devel -BuildRequires: pam-devel -BuildRequires: nss-devel -BuildRequires: nspr-devel -BuildRequires: pcre-devel -BuildRequires: libxslt -BuildRequires: libxml2 - -%description -Provides a set of daemons to manage access to remote directories and -authentication mechanisms. It provides an NSS and PAM interface toward -the system and a pluggable backend system to connect to multiple different -account sources. It is also the basis to provide client auditing and policy -services for projects like FreeIPA. - -%prep -%setup -q - -%build -# common -pushd common -autoreconf -i -f -%configure --disable-shared \ - --enable-static - -make %{?_smp_mflags} -popd - -# sssd -pushd server -./autogen.sh -%configure --without-tests \ - --without-policykit \ - --without-infopipe \ - --with-init-dir=%{_initrddir} \ - -make %{?_smp_mflags} -popd - -pushd sss_client -./autogen.sh -%configure --libdir=/%{_lib} -make %{?_smp_mflags} -popd - -%install -rm -rf $RPM_BUILD_ROOT - -# sssd -pushd server -make install DESTDIR=$RPM_BUILD_ROOT -popd - -pushd sss_client -make install DESTDIR=$RPM_BUILD_ROOT -popd - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root,-) -%doc COPYING -%{_initrddir}/%{name} -%{_sbindir}/sssd -%{_sbindir}/sss_useradd -%{_sbindir}/sss_userdel -%{_sbindir}/sss_usermod -%{_sbindir}/sss_groupadd -%{_sbindir}/sss_groupdel -%{_sbindir}/sss_groupmod -%{_libexecdir}/%{servicename}/ -%{_libdir}/%{name}/ -%{_libdir}/ldb/memberof.so* -%{_sharedstatedir}/sss/ -/%{_lib}/libnss_sss.so -/%{_lib}/libnss_sss.so.2 -/%{_lib}/security/pam_sss.so -%{_mandir}/man8/* - -%post -/sbin/ldconfig -/sbin/chkconfig --add %{servicename} - -%preun -if [ $1 = 0 ]; then - /sbin/service %{servicename} stop 2>&1 > /dev/null - /sbin/chkconfig --del %{servicename} -fi - -%postun -/sbin/ldconfig -if [ $1 -ge 1 ] ; then - /sbin/service %{servicename} condrestart 2>&1 > /dev/null -fi - -%changelog -* Mon Apr 20 2009 Jakub Hrozek - 0.3.2-1 -- bugfix release 0.3.2 - -* Mon Apr 13 2009 Simo Sorce - 0.3.1-1 -- bugfix release - -* Sun Apr 12 2009 Stephen Gallagher - 0.3.0-2 -- Remove InfoPipe from RPM build - -* Sun Apr 12 2009 Stephen Gallagher - 0.3.0-1 -- Convert to using /etc/sssd/sssd.conf for configuration - -* Tue Mar 10 2009 Simo Sorce - 0.2.1-1 -- Bump up to version 0.2.1 - -* Fri Mar 06 2009 Jakub Hrozek - 0.1.0-4 -- fixed items found during review -- added initscript - -* Thu Mar 05 2009 Sumit Bose - 0.1.0-3 -- added sss_client - -* Mon Feb 23 2009 Jakub Hrozek - 0.1.0-2 -- Small cleanup and fixes in the spec file - -* Thu Feb 12 2009 Stephen Gallagher - 0.1.0-1 -- Initial release (based on version 0.1.0 upstream code) diff --git a/sssd.spec.in b/sssd.spec.in new file mode 100644 index 000000000..dd5cb4ddd --- /dev/null +++ b/sssd.spec.in @@ -0,0 +1,182 @@ +Name: @PACKAGE_NAME@ +Version: @PACKAGE_VERSION@ +Release: 1%{dist} +Group: Applications/System +Summary: System Security Services Daemon +# The entire source code is GPLv3+ except replace/ which is LGPLv3+ +License: GPLv3+ and LGPLv3+ +URL: http://www.freeipa.org/ +Source0: %{name}-%{version}.tar.gz +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) + +### Patches ### + +### Dependencies ### + +Requires: libldb = 0.9.3 +Requires: libtdb >= 1.1.3 + +Requires(preun): initscripts chkconfig +Requires(postun): /sbin/service + +%define servicename sssd + +### Build Dependencies ### + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: m4 +BuildRequires: popt-devel +BuildRequires: libtalloc-devel +BuildRequires: libtevent-devel +BuildRequires: libtdb-devel +BuildRequires: libldb-devel +BuildRequires: dbus-devel +BuildRequires: dbus-libs +BuildRequires: openldap-devel +BuildRequires: pam-devel +BuildRequires: nss-devel +BuildRequires: nspr-devel +BuildRequires: pcre-devel +BuildRequires: libxslt +BuildRequires: libxml2 +BuildRequires: docbook-style-xsl + +%description +Provides a set of daemons to manage access to remote directories and +authentication mechanisms. It provides an NSS and PAM interface toward +the system and a pluggable backend system to connect to multiple different +account sources. It is also the basis to provide client auditing and policy +services for projects like FreeIPA. + +%prep +%setup -q + +%build +%configure \ + --without-tests \ + --without-policykit \ + --without-infopipe \ + --with-init-dir=%{_initrddir} \ + --enable-nsslibdir=/%{_lib} + +make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT + +make install DESTDIR=$RPM_BUILD_ROOT + +# Delete files that we do not want to package for now +# Eventually some of these will be added to a -devel package +rm -f \ + $RPM_BUILD_ROOT/%{_lib}/libnss_sss.a \ + $RPM_BUILD_ROOT/%{_lib}/libnss_sss.la \ + $RPM_BUILD_ROOT/%{_lib}/libnss_sss.so.2.0.0 \ + $RPM_BUILD_ROOT/%{_lib}/security/pam_sss.a \ + $RPM_BUILD_ROOT/%{_lib}/security/pam_sss.la \ + $RPM_BUILD_ROOT/%{_lib}/security/pam_sss.so.1 \ + $RPM_BUILD_ROOT/%{_lib}/security/pam_sss.so.1.0.0 \ + $RPM_BUILD_ROOT/%{_includedir}/collection.h \ + $RPM_BUILD_ROOT/%{_includedir}/collection_tools.h \ + $RPM_BUILD_ROOT/%{_includedir}/dhash.h \ + $RPM_BUILD_ROOT/%{_includedir}/ini_config.h \ + $RPM_BUILD_ROOT/%{_includedir}/trace.h \ + $RPM_BUILD_ROOT/%{_libdir}/ldb/memberof.a \ + $RPM_BUILD_ROOT/%{_libdir}/ldb/memberof.la \ + $RPM_BUILD_ROOT/%{_libdir}/libcollection.a \ + $RPM_BUILD_ROOT/%{_libdir}/libcollection.la \ + $RPM_BUILD_ROOT/%{_libdir}/libcollection.so \ + $RPM_BUILD_ROOT/%{_libdir}/libcollection.so.0 \ + $RPM_BUILD_ROOT/%{_libdir}/libcollection.so.0.0.0 \ + $RPM_BUILD_ROOT/%{_libdir}/libdhash.a \ + $RPM_BUILD_ROOT/%{_libdir}/libdhash.la \ + $RPM_BUILD_ROOT/%{_libdir}/libdhash.so \ + $RPM_BUILD_ROOT/%{_libdir}/libdhash.so.0 \ + $RPM_BUILD_ROOT/%{_libdir}/libdhash.so.0.0.0 \ + $RPM_BUILD_ROOT/%{_libdir}/libini_config.a \ + $RPM_BUILD_ROOT/%{_libdir}/libini_config.la \ + $RPM_BUILD_ROOT/%{_libdir}/libini_config.so \ + $RPM_BUILD_ROOT/%{_libdir}/libini_config.so.0 \ + $RPM_BUILD_ROOT/%{_libdir}/libini_config.so.0.0.0 \ + $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/collection.pc \ + $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/dhash.pc \ + $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/ini_config.pc \ + $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_ldap.a \ + $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_ldap.la \ + $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_proxy.a \ + $RPM_BUILD_ROOT/%{_libdir}/sssd/libsss_proxy.la \ + $RPM_BUILD_ROOT/%{_docdir}/dhash/examples/dhash_example.c \ + $RPM_BUILD_ROOT/%{_docdir}/dhash/examples/dhash_test.c + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +%doc COPYING +%{_initrddir}/%{name} +%{_sbindir}/sssd +%{_sbindir}/sss_useradd +%{_sbindir}/sss_userdel +%{_sbindir}/sss_usermod +%{_sbindir}/sss_groupadd +%{_sbindir}/sss_groupdel +%{_sbindir}/sss_groupmod +%{_libexecdir}/%{servicename}/ +%{_libdir}/%{name}/ +%{_libdir}/ldb/memberof.so* +%{_sharedstatedir}/sss/ +/%{_lib}/libnss_sss.so +/%{_lib}/libnss_sss.so.2 +/%{_lib}/security/pam_sss.so +%{_mandir}/man8/* + +%post +/sbin/ldconfig +/sbin/chkconfig --add %{servicename} + +%preun +if [ $1 = 0 ]; then + /sbin/service %{servicename} stop 2>&1 > /dev/null + /sbin/chkconfig --del %{servicename} +fi + +%postun +/sbin/ldconfig +if [ $1 -ge 1 ] ; then + /sbin/service %{servicename} condrestart 2>&1 > /dev/null +fi + +%changelog +* Mon May 18 2009 Stephen Gallagher - 0.4.0-1 +- Convert build system to automake + +* Mon Apr 20 2009 Jakub Hrozek - 0.3.2-1 +- bugfix release 0.3.2 + +* Mon Apr 13 2009 Simo Sorce - 0.3.1-1 +- bugfix release + +* Sun Apr 12 2009 Stephen Gallagher - 0.3.0-2 +- Remove InfoPipe from RPM build + +* Sun Apr 12 2009 Stephen Gallagher - 0.3.0-1 +- Convert to using /etc/sssd/sssd.conf for configuration + +* Tue Mar 10 2009 Simo Sorce - 0.2.1-1 +- Bump up to version 0.2.1 + +* Fri Mar 06 2009 Jakub Hrozek - 0.1.0-4 +- fixed items found during review +- added initscript + +* Thu Mar 05 2009 Sumit Bose - 0.1.0-3 +- added sss_client + +* Mon Feb 23 2009 Jakub Hrozek - 0.1.0-2 +- Small cleanup and fixes in the spec file + +* Thu Feb 12 2009 Stephen Gallagher - 0.1.0-1 +- Initial release (based on version 0.1.0 upstream code) -- cgit