#------------------------------------------------------------------------------ # Copyright (c) 2001-2023 The Eisfair Team, team(at)eisfair(dot)org # # Creation: 2008-08-24 jed # Last Update: $Id: build_minicom.txt 49971 2018-02-02 11:55:33Z jed $ # # !!! this is not a script but an step-by-step howto !!! #------------------------------------------------------------------------------ exit 1 # - needs the following environment to build: gcc v3.3.4 # - needs the following library packages to be build: - libssl1_1-dev # - needs the following packages to be build: + base 2.8.2 ### RPM build info ### RPM package source: https://download.opensuse.org/repositories/home:/jloehel/openSUSE_Tumbleweed/src/ssmtp-2.64-2.18.src.rpm # - copy additional patches to the SOURCES directory and # copy the customized ssmtp.specs file to the SPECS directory. # if the RPM build process is used instead of the manual build process, # the following package can be ignored and aren't required for this # package: # - no package - # # RPM build command: # rpmbuild -ba --rmsource ./SPECS/ssmtp.spec # A secure, effective and simple way of getting mail off a system to your mail # hub. It contains no suid-binaries or other dangerous things - no mail spool # to poke around in, and no daemons running in the background. Mail is simply # forwarded to the configured mailhost. Extremely easy configuration. # 1. download software archive wget http://ftp.de.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.64.orig.tar.bz2 # 2. patch ssmtp.c to match default ssl certificate directory # diff ssmtp.c.ORG ssmtp.c 70c70,71 < char *tls_cert = "/etc/ssl/certs/ssmtp.pem"; /* Default Certificate */ --- > // char *tls_cert = "/etc/ssl/certs/ssmtp.pem"; /* Default Certificate */ > char *tls_cert = "/usr/local/ssl/certs/ssmtp.pem"; /* Default Certificate */ or patch < 00-eisfair-certificate-directory and apply other patches like, e.g. patch < 00-eisfair-certificate-directory # 3. ./configure --prefix=/usr --sysconfdir=/etc --enable-ssl --enable-md5auth loading cache ./config.cache checking for gcc... (cached) gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking for a BSD compatible install... (cached) /usr/bin/install -c checking whether ln -s works... (cached) yes checking how to run the C preprocessor... (cached) gcc -E checking for ANSI C header files... (cached) yes checking for limits.h... (cached) yes checking for strings.h... (cached) yes checking for syslog.h... (cached) yes checking for unistd.h... (cached) yes checking for obsolete openlog... (cached) no checking for working const... (cached) yes checking whether struct tm is in sys/time.h or time.h... (cached) time.h checking for gethostname in -lnsl... (cached) yes checking for socket in -lsocket... (cached) no checking return type of signal handlers... (cached) void checking for vprintf... (cached) yes checking for gethostname... (cached) yes checking for socket... (cached) yes checking for strdup... (cached) yes checking for strstr... (cached) yes creating ./config.status creating Makefile # 4. make gcc -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -g -O2 -Wall -c -o ssmtp.o ssmtp.c ssmtp.c: In function 'standardise': ssmtp.c:353: warning: unused variable 'sl' ssmtp.c: In function 'crammd5': ssmtp.c:618: warning: pointer targets in passing argument 1 of '__builtin_strncpy' differ in signedness ssmtp.c:621: warning: pointer targets in passing argument 1 of 'from64tobits' differ in signedness ssmtp.c:623: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness ssmtp.c:623: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness ssmtp.c:634: warning: pointer targets in passing argument 1 of '__builtin_strncpy' differ in signedness ssmtp.c:635: warning: pointer targets in passing argument 1 of 'strcat' differ in signedness ssmtp.c:636: warning: pointer targets in passing argument 1 of 'strcat' differ in signedness ssmtp.c:636: warning: pointer targets in passing argument 2 of 'strcat' differ in signedness ssmtp.c:637: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness ssmtp.c:637: warning: pointer targets in passing argument 1 of 'to64frombits' differ in signedness ssmtp.c: In function 'smtp_open': ssmtp.c:1129: warning: assignment discards qualifiers from pointer target type ssmtp.c: In function 'ssmtp': ssmtp.c:1512: warning: pointer targets in passing argument 1 of 'to64frombits' differ in signedness ssmtp.c:1512: warning: pointer targets in passing argument 2 of 'to64frombits' differ in signedness ssmtp.c:1524: warning: pointer targets in passing argument 1 of 'to64frombits' differ in signedness ssmtp.c:1524: warning: pointer targets in passing argument 2 of 'to64frombits' differ in signedness ssmtp.c:1534: warning: pointer targets in passing argument 1 of 'to64frombits' differ in signedness ssmtp.c:1534: warning: pointer targets in passing argument 2 of 'to64frombits' differ in signedness ssmtp.c: In function 'header_parse': ssmtp.c:743: warning: 'q' may be used uninitialized in this function gcc -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -g -O2 -Wall -c -o arpadate.o arpadate.c gcc -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -g -O2 -Wall -c -o base64.o base64.c gcc -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -g -O2 -Wall -c -o xgethostname.o xgethostname.c gcc -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -g -O2 -Wall -c -o md5auth/md5c.o md5auth/md5c.c gcc -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -g -O2 -Wall -c -o md5auth/hmac_md5.o md5auth/hmac_md5.c gcc -o ssmtp ssmtp.o arpadate.o base64.o xgethostname.o md5auth/md5c.o md5auth/hmac_md5.o -lnsl -lssl -DSTDC_HEADERS=1 -DHAVE_LIMITS_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBNSL=1 -DRETSIGTYPE=void -DHAVE_VPRINTF=1 -DHAVE_GETHOSTNAME=1 -DHAVE_SOCKET=1 -DHAVE_STRDUP=1 -DHAVE_STRSTR=1 -DREWRITE_DOMAIN=1 -DHAVE_SSL=1 -DMD5AUTH=1 -DSSMTPCONFDIR=\"/etc/ssmtp\" -DCONFIGURATION_FILE=\"/etc/ssmtp/ssmtp.conf\" -DREVALIASES_FILE=\"/etc/ssmtp/revaliases\" -g -O2 -Wall # 5. make test make: *** No rule to make target `test'. Stop. # 6. strip -s ssmtp # 7. tar cvzf ../ssmtp-2.64.tgz ssmtp C* INSTALL README TLS revaliases ssmtp.conf*