78 lines
3.3 KiB
Bash
78 lines
3.3 KiB
Bash
# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package
|
|
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
|
|
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
|
|
|
|
# The prepare function is executed in the root of the temp directory
|
|
# This function is used for putting downloaded files to the correct location or applying patches
|
|
prepare() {
|
|
cd "$BPM_SOURCE"
|
|
# Fix gcc 15 compatibility
|
|
patch -Np1 -i "$BPM_WORKDIR"/gcc-15.patch
|
|
# Fix gcc 14 compatibility
|
|
sed '/saslint/a #include <time.h>' -i lib/saslutil.c
|
|
sed '/plugin_common/a #include <time.h>' -i plugins/cram.c
|
|
|
|
autoreconf -fi
|
|
}
|
|
|
|
# The build function is executed in the source directory
|
|
# This function is used to compile the source code
|
|
build() {
|
|
./configure --prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--disable-krb4 \
|
|
--disable-macos-framework \
|
|
--disable-otp \
|
|
--disable-passdss \
|
|
--disable-srp \
|
|
--disable-srp-setpass \
|
|
--disable-static \
|
|
--enable-alwaystrue \
|
|
--enable-anon \
|
|
--enable-auth-sasldb \
|
|
--enable-checkapop \
|
|
--enable-cram \
|
|
--enable-digest \
|
|
--enable-gssapi \
|
|
--enable-ldapdb \
|
|
--enable-login \
|
|
--enable-ntlm \
|
|
--enable-plain \
|
|
--enable-shared \
|
|
--enable-sql \
|
|
--with-dblib=gdbm \
|
|
--with-dbpath=/var/lib/sasl/sasldb2 \
|
|
--with-sphinx-build=no \
|
|
--with-saslauthd=/var/run/saslauthd \
|
|
--with-ldap \
|
|
--with-pam \
|
|
--with-pgsql=/usr/lib \
|
|
--with-sqlite3=/usr/lib \
|
|
--without-mysql
|
|
# prevent excessive overlinking due to libtool
|
|
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
|
|
|
make
|
|
}
|
|
|
|
# The check function is executed in the source directory
|
|
# This function is used to run tests to verify the package has been compiled correctly
|
|
check() {
|
|
make check
|
|
}
|
|
|
|
# The package function is executed in the source directory
|
|
# This function is used to move the compiled files into the output directory
|
|
package() {
|
|
make DESTDIR="$BPM_OUTPUT" install-pkgconfigDATA
|
|
for _target in include lib sasldb plugins utils; do
|
|
make DESTDIR="$BPM_OUTPUT" install -C "$_target"
|
|
done
|
|
|
|
# Remove unnecessary libaries
|
|
rm -f "$BPM_OUTPUT"/usr/lib/sasl2/lib{gs2,gssapiv2,ldapdb,sql}.so*
|
|
|
|
# Install package license
|
|
install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/libsasl/COPYING
|
|
}
|