summaryrefslogtreecommitdiffstats
path: root/contrib/fedora/bashrc_sssd
blob: d0e238f34086921d57c578b177cce7869fba1ba3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# 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)
SSS_WARNINGS='-Wall \
              -Wextra \
              -Wno-unused-parameter \
              -Wno-sign-compare \
              -Wformat-security'

# 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+="$SSS_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'