From ccaea33f064842b16c7c9efeb50028cacdee6b2f Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 5 Mar 2013 14:07:23 -0500 Subject: BUILD: Add contributed macros and aliases to simplify building --- contrib/fedora/bashrc_sssd | 103 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 contrib/fedora/bashrc_sssd (limited to 'contrib/fedora') diff --git a/contrib/fedora/bashrc_sssd b/contrib/fedora/bashrc_sssd new file mode 100644 index 000000000..b349a3b15 --- /dev/null +++ b/contrib/fedora/bashrc_sssd @@ -0,0 +1,103 @@ +# For best results, add the following lines to ~/.bashrc: +# if [ -f /path/to/sssd-source/contrib/fedora/bashrc_sssd ]; then +# . /path/to/sssd-source/contrib/fedora/bashrc_sssd +# fi + +# Determine the architecture of the platform we're running on +SSS_ARCH=$(uname -p) + +# Determine the lib and libdir locations +SSS_LIB=$(rpm --eval %{_lib}) +SSS_LIBDIR=$(rpm --eval %{_libdir}) + +# Add the following line to your .bashrc if you want SSSD to throw errors on +# compiler warnings (recommended) +# SSS_WERROR=-Werror + +# Determine the number of available processors on the system for parallel make +# invocation. +PROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN) + +# Configure invocation for use on Fedora systems, based on the %configure RPM +# macro from the redhat-rpm-config package. This macro assumes you are building +# in a parallel build directory beneath the source directory. All other macros +# in this script will assume that the location is +# /path/to/sssd-source/$SSS_ARCH +alias fedconfig='../configure \ + --build=$SSS_ARCH-unknown-linux-gnu \ + --host=$SSS_ARCH-unknown-linux-gnu \ + --target=$SSS_ARCH-redhat-linux-gnu \ + --program-prefix= --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --includedir=/usr/include \ + --libdir=$SSS_LIBDIR \ + --libexecdir=/usr/libexec \ + --localstatedir=/var \ + --sharedstatedir=/var/lib \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --enable-nsslibdir=/$SSS_LIB \ + --enable-pammoddir=/$SSS_LIB/security \ + --with-krb5-rcache-dir=/var/cache/krb5rcache \ + --with-initscript=systemd \ + --with-test-dir=/dev/shm \ + --enable-all-experimental-features \ + --with-default-ccache-dir=/run/user/%U \ + --with-default-ccname-template=DIR:%d/ccdir \ + --cache-file=/tmp/fedconfig.cache \ + $SSSD_NO_MANPAGES' + +# Quick alias to completely purge the current working directory, then recreate +# and reconfigure it. This is best used when you are making changes to the m4 +# macros or the configure scripts. +alias reconfig='autoreconf -if \ + && rm -Rf $SSS_ARCH/ \ + && mkdir $SSS_ARCH/ \ + && cd $SSS_ARCH/ \ + && fedconfig' + +# Set the list of warnings that you want to detect (and in the case of remake +# and chmake want to treat as errors) +WARNINGS='-Wall \ + -Wextra \ + -Wno-unused-parameter \ + -Wno-sign-compare \ + -Wformat-security' + +# Clean the build directory and rebuild all objects, then run the build-tests +# against them. +alias remake='make clean > /dev/null \ + && make V=0 CFLAGS+="-ggdb3 -O0 $SSS_WARNINGS $SSS_WERROR" \ + -j%PROCESSORS check' + +# Build (or finish building) all objects and then run the build-tests against +# them. This builds with optimizations turned off and GDB debugging symbols. +alias chmake='make V=0 CFLAGS+="-ggdb3 -O0 $SSS_WARNINGS $SSS_WERROR" \ + -j$PROCESSORS check' + +# Clean the build directory and rebuild all objects, then run the build-tests +# against them. This builds with optimizations turned off and GDB debugging +# symbols. +alias remake='make clean > /dev/null && chmake' + +# Clean the build directory and rebuild all objects, hiding most of the build +# output except for warnings and errors. This builds with standard CFLAGS. +alias warn='make clean >/dev/null \ + && make CFLAGS+="$WARNINGS" -j$PROCESSORS tests > /dev/null' + +# Install the built sources to the current system, cleaning up the LDB modules +# and making sure that the NSS and PAM modules have the right SELinux context. +alias sssinstall='sudo make -j$PROCESSORS install \ + && sudo rm -f $SSS_LIBDIR/ldb/modules/ldb/memberof.la \ + && sudo restorecon -v /$SSS_LIB/libnss_sss.so.2 \ + /$SSS_LIB/security/pam_sss.so' + +# Alias to generate a patch or series of patches that meet SSSD submission +# guidelines. +# Usage: +# genpatch -N (where N is the number of patches to submit) +alias genpatch='git format-patch -M -C --patience --full-index' -- cgit