added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -0,0 +1,117 @@
From 9000ee4d8bb5c5e0bcc588e9bec86eb56f4285e1 Mon Sep 17 00:00:00 2001
From: Li xin <lixin.fnst@cn.fujitsu.com>
Date: Fri, 19 Jun 2015 16:45:54 +0900
Subject: [PATCH] Fix makedefs
1)remove RANLIB, SYSLIBS, AR and get them from env.
2)reference sysroot when searching header files
3)include sysroot path instead of absolute include path
for Linux2 and Linux3 systems.
4)for non-native build, search STAGING_BASELIBDIR/LIBDIR
native build, search host library path for nsl and resolv library
which comes from libc
Upstreamstatus: Inappropriate [embedded specific]
Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
---
makedefs | 27 +++++++++++----------------
1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/makedefs b/makedefs
index 3448c1e..78e0717 100644
--- a/makedefs
+++ b/makedefs
@@ -197,9 +197,6 @@ echo "# pie=$pie"
# Defaults for most sane systems
-RANLIB=ranlib
-SYSLIBS=
-AR=ar
ARFL=rv
# Ugly function to make our error message more visible among the
@@ -492,12 +489,12 @@ case "$SYSTEM.$RELEASE" in
case "$CCARGS" in
*-DNO_DB*) ;;
*-DHAS_DB*) ;;
- *) if [ -f /usr/include/db.h ]
+ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
then
: we are all set
- elif [ -f /usr/include/db/db.h ]
+ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
then
- CCARGS="$CCARGS -I/usr/include/db"
+ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
else
# No, we're not going to try db1 db2 db3 etc.
# On a properly installed system, Postfix builds
@@ -506,12 +503,12 @@ case "$SYSTEM.$RELEASE" in
echo "Install the appropriate db*-devel package first." 1>&2
exit 1
fi
- SYSLIBS="-ldb"
+ SYSLIBS="$SYSLIBS -ldb"
;;
esac
for name in nsl resolv $GDBM_LIBS
do
- for lib in /usr/lib64 /lib64 /usr/lib /lib
+ for lib in $BUILD_SYSROOT_NSL_PATH
do
test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
SYSLIBS="$SYSLIBS -l$name"
@@ -531,7 +528,7 @@ case "$SYSTEM.$RELEASE" in
if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ]
then
:
- elif [ ! -e /usr/include/sys/epoll.h ]
+ elif [ ! -e "$BUILD_SYSROOT"/usr/include/sys/epoll.h ]
then
echo CCARGS="$CCARGS -DNO_EPOLL"
else
@@ -555,8 +552,6 @@ int main(int argc, char **argv)
}
EOF
${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
- ./makedefs.test 2>/dev/null ||
- CCARGS="$CCARGS -DNO_EPOLL"
rm -f makedefs.test makedefs.test.[co]
fi;;
esac
@@ -572,12 +567,12 @@ EOF
case "$CCARGS" in
*-DNO_DB*) ;;
*-DHAS_DB*) ;;
- *) if [ -f /usr/include/db.h ]
+ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
then
: we are all set
- elif [ -f /usr/include/db/db.h ]
+ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
then
- CCARGS="$CCARGS -I/usr/include/db"
+ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
else
# On a properly installed system, Postfix builds
# by including <db.h> and by linking with -ldb
@@ -585,12 +580,12 @@ EOF
echo "Install the appropriate db*-devel package first." 1>&2
exit 1
fi
- SYSLIBS="-ldb"
+ SYSLIBS="$SYSLIBS -ldb"
;;
esac
for name in nsl resolv
do
- for lib in /usr/lib64 /lib64 /usr/lib /usr/lib/* /lib /lib/*
+ for lib in $BUILD_SYSROOT_NSL_PATH
do
test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
SYSLIBS="$SYSLIBS -l$name"
--
2.17.1

View File

@@ -0,0 +1,107 @@
From cb69ffda0c2cbde6acdc8b01c8d5ff78d81a84fc Mon Sep 17 00:00:00 2001
From: Li xin <lixin.fnst@cn.fujitsu.com>
Date: Fri, 19 Jun 2015 17:14:58 +0900
Subject: [PATCH] Change fixed postconf to a variable for cross-compiling
Upstreamstatus: Inappropriate [embedded specific]
Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
---
Makefile.in | 2 +-
postfix-install | 18 ++++++++++--------
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 65e7911..40295be 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -22,7 +22,7 @@ META = meta/main.cf.proto meta/master.cf.proto meta/postfix-files \
EXPAND = sed -e "s;\$${LIB_PREFIX};$(LIB_PREFIX);" \
-e "s;\$${LIB_SUFFIX};$(LIB_SUFFIX);"
SHLIB_DIR_OVERRIDE = \
- $${shlib_directory:-`$(SHLIB_ENV) bin/postconf -dhx shlib_directory`}
+ $${shlib_directory:-`$(SHLIB_ENV) $(POSTCONF) -dhx shlib_directory`}
default: update
diff --git a/postfix-install b/postfix-install
index e498cd3..8049f43 100644
--- a/postfix-install
+++ b/postfix-install
@@ -244,8 +244,8 @@ test -z "$non_interactive" -a ! -t 0 && {
exit 1
}
-test -x bin/postconf || {
- echo $0: Error: no bin/postconf file. Did you forget to run \"make\"? 1>&2
+test -x "$POSTCONF" || {
+ echo $0: Error: no $POSTCONF file. Did you forget to run \"make\"? 1>&2
exit 1
}
@@ -266,7 +266,7 @@ do
case "$junk" in
*MAIL_VERSION*)
case "$mail_version" in
- "") mail_version="`bin/postconf -dhx mail_version`" || exit 1
+ "") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
esac
val=`echo "$junk" | sed 's/MAIL_VERSION$/'"$mail_version/g"` || exit 1
case "$val" in
@@ -454,7 +454,7 @@ template files main.cf.proto and master.cf.proto."
: ${install_root=/}
: ${tempdir=`pwd`}
-: ${config_directory=`bin/postconf -c conf -h -d config_directory`}
+: ${config_directory=`$POSTCONF -c conf -h -d config_directory`}
# Find out the location of installed configuration files.
@@ -520,7 +520,7 @@ test -f $CONFIG_DIRECTORY/main.cf && {
case "$junk" in
"") eval unset $name;;
esac
- eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -hx $name\`} ||
+ eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -hx $name\`} ||
exit 1
done
}
@@ -533,7 +533,7 @@ do
case "$junk" in
"") eval unset $name;;
esac
- eval : \${$name=\`bin/postconf -c conf -d -hx $name\`} || exit 1
+ eval : \${$name=\`$POSTCONF -c conf -d -hx $name\`} || exit 1
done
# Override settings manually.
@@ -670,6 +670,8 @@ README_DIRECTORY=$install_root$readme_directory
SHLIB_DIRECTORY=$install_root$shlib_directory
META_DIRECTORY=$install_root$meta_directory
+test "x$POSTCONF" != "x" || POSTCONF="bin/postconf"
+
# Avoid repeated tests for existence of these; default permissions suffice.
test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1
@@ -841,7 +843,7 @@ IFS="$BACKUP_IFS"
# the wrong place when Postfix is being upgraded.
case "$mail_version" in
-"") mail_version="`bin/postconf -dhx mail_version`" || exit 1
+"") mail_version="`$POSTCONF -c $CONFIG_DIRECTORY -dhx mail_version`" || exit 1
esac
# Undo MAIL_VERSION expansion at the end of a parameter value. If
@@ -861,7 +863,7 @@ do
esac
done
-bin/postconf -c $CONFIG_DIRECTORY -e \
+"$POSTCONF" -c $CONFIG_DIRECTORY -e \
"daemon_directory = $daemon_directory" \
"data_directory = $data_directory" \
"command_directory = $command_directory" \
--
2.17.1

View File

@@ -0,0 +1,64 @@
From 995bddd9563b1aecca2369f2f9c675f88bdc0053 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 26 Aug 2017 10:29:37 -0700
Subject: [PATCH] makedefs: Use native compiler to build makedefs.test
Its a binary used during build
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
makedefs | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/makedefs b/makedefs
index 78e0717..3299eba 100644
--- a/makedefs
+++ b/makedefs
@@ -551,7 +551,7 @@ int main(int argc, char **argv)
exit(0);
}
EOF
- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
rm -f makedefs.test makedefs.test.[co]
fi;;
esac
@@ -787,7 +787,7 @@ int main(int argc, char **argv)
exit(0);
}
EOF
- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
./makedefs.test 2>/dev/null ||
CCARGS="$CCARGS -DNO_SIGSETJMP"
rm -f makedefs.test makedefs.test.[co]
@@ -823,7 +823,7 @@ int main(int argc, char **argv)
&error) != 14);
}
EOF
- ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
$icu_ldflags >/dev/null 2>&1
if ./makedefs.test 2>/dev/null ; then
CCARGS="$CCARGS $icu_cppflags"
@@ -938,7 +938,7 @@ int main(void)
exit(ferror(stdout) ? 1 : 0);
}
EOF
- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
./makedefs.test || exit 1
rm -f makedefs.test makedefs.test.[co]
}
@@ -1094,7 +1094,7 @@ int main(void)
exit(ferror(stdout) ? 1 : 0);
}
EOF
- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
parm_val=`./makedefs.test` || exit 1
rm -f makedefs.test makedefs.test.[co]
eval ${parm_name}=\""\$parm_val"\"
--
2.17.1

View File

@@ -0,0 +1,32 @@
From afef4a9391e6bb1a6c3e73d370f240577ed8b0dd Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 16 Jan 2022 11:21:54 +0800
Subject: [PATCH] Fix icu config
do not entertain cppflags from icu, this is because
icu-config feeds the -I path without sysroot which
caused native headers to be included and build is
corrupted in any case its just adding -I/usr/include
to the CCARGS which we loose nothing if its not
entertained.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
makedefs | 1 -
1 file changed, 1 deletion(-)
diff --git a/makedefs b/makedefs
index 3299eba..2a76f20 100644
--- a/makedefs
+++ b/makedefs
@@ -826,7 +826,6 @@ EOF
${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
$icu_ldflags >/dev/null 2>&1
if ./makedefs.test 2>/dev/null ; then
- CCARGS="$CCARGS $icu_cppflags"
SYSLIBS="$SYSLIBS $icu_ldflags"
else
CCARGS="$CCARGS -DNO_EAI"
--
2.17.1

View File

@@ -0,0 +1,58 @@
From 545d4a79b50caa5698622c0c1905ae154197a16f Mon Sep 17 00:00:00 2001
From: Yi Zhao <yi.zhao@windriver.com>
Date: Fri, 12 Oct 2018 12:38:02 +0800
Subject: [PATCH] makedefs: add -lnsl and -lresolv to SYSLIBS by default
We don't need to check libnsl.so and libresolv.so since the libnsl2 is
specified in DEPENDS and libresolv.so is from c libarary.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
makedefs | 22 ++--------------------
1 file changed, 2 insertions(+), 20 deletions(-)
diff --git a/makedefs b/makedefs
index 2a76f20..9d5db9f 100644
--- a/makedefs
+++ b/makedefs
@@ -506,16 +506,7 @@ case "$SYSTEM.$RELEASE" in
SYSLIBS="$SYSLIBS -ldb"
;;
esac
- for name in nsl resolv $GDBM_LIBS
- do
- for lib in $BUILD_SYSROOT_NSL_PATH
- do
- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
- SYSLIBS="$SYSLIBS -l$name"
- break
- }
- done
- done
+ SYSLIBS="$SYSLIBS -lnsl -lresolv"
# Kernel 2.4 added IPv6
case "$RELEASE" in
2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";;
@@ -583,16 +574,7 @@ EOF
SYSLIBS="$SYSLIBS -ldb"
;;
esac
- for name in nsl resolv
- do
- for lib in $BUILD_SYSROOT_NSL_PATH
- do
- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
- SYSLIBS="$SYSLIBS -l$name"
- break
- }
- done
- done
+ SYSLIBS="$SYSLIBS -lnsl -lresolv"
SYSLIBS="$SYSLIBS -ldl"
: ${SHLIB_SUFFIX=.so}
: ${SHLIB_CFLAGS=-fPIC}
--
2.17.1

View File

@@ -0,0 +1,35 @@
From e5ddcf9575437bacd64c2b68501b413014186a6a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 19 Oct 2022 10:15:01 -0700
Subject: [PATCH] makedefs: Account for linux 6.x version
Major version has bumped to 6 and script needs to know that
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
makedefs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/makedefs
+++ b/makedefs
@@ -613,7 +613,7 @@ EOF
: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
: ${PLUGIN_LD="${CC-gcc} -shared"}
;;
- Linux.[345].*) SYSTYPE=LINUX$RELEASE_MAJOR
+ Linux.[3-6]*) SYSTYPE=LINUX$RELEASE_MAJOR
case "$CCARGS" in
*-DNO_DB*) ;;
*-DHAS_DB*) ;;
--- a/src/util/sys_defs.h
+++ b/src/util/sys_defs.h
@@ -751,7 +751,7 @@ extern int initgroups(const char *, int)
/*
* LINUX.
*/
-#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5)
+#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) || defined(LINUX6)
#define SUPPORTED
#define UINT32_TYPE unsigned int
#define UINT16_TYPE unsigned short

View File

@@ -0,0 +1,20 @@
#!/bin/sh
ALIASESDB_STAMP=/var/lib/misc/postfix.aliasesdb-stamp
make_aliasesdb() {
if [ "$(/usr/sbin/postconf -h alias_database)" = "hash:/etc/aliases" ]
then
# /etc/aliases.db may be used by other MTA, make sure nothing
# has touched it since our last newaliases call
[ /etc/aliases -nt /etc/aliases.db ] ||
[ "$ALIASESDB_STAMP" -nt /etc/aliases.db ] ||
[ "$ALIASESDB_STAMP" -ot /etc/aliases.db ] || return 0
/usr/bin/newaliases
touch -r /etc/aliases.db "$ALIASESDB_STAMP"
else
/usr/bin/newaliases
fi
}
make_aliasesdb

View File

@@ -0,0 +1,13 @@
#! /bin/sh
HOSTNAME=$(/bin/hostname)
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" -o ! -z "`echo $HOSTNAME | sed -n '/^[0-9]*\.[0-9].*/p'`" ]; then
# If hostname is invalid, and myhostname not existed in main.cf
/usr/sbin/postconf -h "myhostname" 2>/dev/null
if [ $? -ne 0 ]; then
# Set "localhost" to main.cf
/usr/sbin/postconf -e "myhostname=localhost"
fi
fi

View File

@@ -0,0 +1 @@
root@ permit_mynetworks,reject

View File

@@ -0,0 +1,105 @@
compatibility_level = 3.6
smtputf8_enable = no
# Configure your domain and accounts
#mydomain=sample.com
#FQDN from gethostname
#myhostname =
mydomain=localdomain
mydestination = $myhostname, localhost.localdomain localhost
mynetworks = 127.0.0.1/8
inet_interfaces = 127.0.0.1
virtual_mailbox_domains = sample.com, other.net
virtual_mailbox_maps = hash:/etc/postfix/virtual
virtual_alias_maps = hash:/etc/postfix/virtual_alias
alias_maps = hash:/etc/aliases
# You'll start with the following lines for maildir storage
virtual_mailbox_base = /var/spool/vmail
virtual_uid_maps = static:`grep vmail /etc/passwd | cut -d ":" -f 3`
virtual_gid_maps = static:`grep vmail /etc/passwd | cut -d ":" -f 4`
# You'll start with the following lines for IMAP storage
#virtual_transport = lmtp:unix:/var/lib/cyrus/socket/lmtp
# General stuff here again
#config_directory = /etc/postfix
sample_directory = /etc/postfix
queue_directory = /var/spool/postfix
mail_spool_directory = /var/spool/mail
readme_directory = no
command_directory = /usr/sbin
daemon_directory = @LIBEXECDIR@/postfix
mail_owner = postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 450
mynetworks_style = host
debug_peer_level = 2
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
smtpd_data_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
permit
smtpd_client_restrictions =
permit_mynetworks,
# reject_unknown_client, # This can cause a lot of false rejects.
reject_invalid_hostname,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client dul.dnsbl.sorbs.net,
permit
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
# reject_non_fqdn_hostname, # This can cause a lot of false rejects.
# reject_unknown_hostname, # This can cause a lot of false rejects.
reject_invalid_hostname,
permit
smtpd_sender_restrictions =
permit_mynetworks,
reject_non_fqdn_sender,
# check_sender_access hash:/etc/postfix/access_domains,
reject_unknown_sender_domain,
permit
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
# check_recipient_access pcre:/etc/postfix/recipient_checks.pcre,
# check_helo_access pcre:/etc/postfix/helo_checks.pcre,
# check_client_access hash:/etc/postfix/maps/access_client,
# check_client_access hash:/etc/postfix/maps/exceptions_client,
# check_helo_access hash:/etc/postfix/maps/access_helo,
# check_helo_access hash:/etc/postfix/maps/verify_helo,
# check_sender_access hash:/etc/postfix/maps/access_sender,
# check_sender_access hash:/etc/postfix/maps/verify_sender,
# check_recipient_access hash:/etc/postfix/maps/access_recipient,
# reject_multi_recipient_bounce,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
# reject_unlisted_recipient,
#check_policy_service unix:private/policy,
# check_sender_access hash:/etc/postfix/maps/no_verify_sender,
# check_sender_access hash:/etc/postfix/access_domains,
# reject_unverified_sender,
# reject_unverified_recipient
check_recipient_access hash:/etc/postfix/internal_recipient
disable_vrfy_command = yes

View File

@@ -0,0 +1,94 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: postfix MTA
# Default-Start: 2345
# Default-Stop: 016
# Short-Description: start and stop postfix
# Description: Postfix is a Mail Transport Agent, which is the program
# that moves mail from one machine to another.
### END INIT INFO
success() {
echo " Successful"
exit 0
}
fail() {
echo " Failed"
exit 1
}
check_return () {
local ret="$1"
if [ "$ret" = "0" ]; then
success
else
fail
fi
}
PIDFile=/var/spool/postfix/pid/master.pid
case "$1" in
start)
echo -n "Starting Postfix..."
if [ ! -e /etc/aliases.db ]; then
# The alias database is necessary for postfix to work correctly.
echo "Creating aliases database ..."
newaliases
fi
if ! postfix status >/dev/null 2>&1; then
/usr/sbin/check_hostname.sh
postfix start
check_return $?
else
success
fi
;;
stop)
echo -n "Stopping Postfix..."
if postfix status >/dev/null 2>&1; then
postfix stop
check_return $?
else
success
fi
;;
reload)
echo -n "Reloading Postfix..."
if postfix status >/dev/null 2>&1; then
postfix reload
check_return $?
else
postfix start
check_return $?
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
status)
if postfix status >/dev/null 2>&1; then
pid=`sed -e 's/\s//g' $PIDFile`
echo "The Postfix mail system is running (PID: $pid)"
exit 0
else
echo "The Postfix mail system is not running"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|status|reload|restart}"
exit 1
;;
esac

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Postfix Mail Transport Agent
After=syslog.target network.target
Conflicts=sendmail.service exim.service
[Service]
Type=forking
PIDFile=@LOCALSTATEDIR@/spool/postfix/pid/master.pid
ExecStartPre=-@SBINDIR@/check_hostname.sh
ExecStartPre=-@LIBEXECDIR@/postfix/aliasesdb
ExecStart=@SBINDIR@/postfix start
ExecReload=@SBINDIR@/postfix reload
ExecStop=@SBINDIR@/postfix stop
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,222 @@
SUMMARY = "Postfix Mail Transport Agent"
DESCRIPTION = "Postfix is Wietse Venema's mail server that started life at \
IBM research as an alternative to the widely-used Sendmail program. \
Postfix attempts to be fast, easy to administer, and secure. The outsidei \
has a definite Sendmail-ish flavor, but the inside is completely different."
HOMEPAGE= "http://www.postfix.org"
SECTION = "mail"
DEPENDS = "db icu libpcre libnsl2 m4-native openssl postfix-native \
${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \
"
LICENSE = "IPL-1.0 | EPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b181651ad99a7dc4cc8c4ce2f491ed1a"
S = "${WORKDIR}/postfix-${PV}"
CLEANBROKEN = "1"
BBCLASSEXTEND = "native"
inherit pkgconfig update-rc.d useradd update-alternatives systemd lib_package
INITSCRIPT_NAME = "postfix"
INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ."
USERADD_PACKAGES = "${PN}-bin"
USERADD_PARAM:${PN}-bin = \
"-d /var/spool/postfix -r -g postfix --shell /bin/false postfix; \
-d /var/spool/vmail -r -g vmail --shell /bin/false vmail \
"
GROUPADD_PARAM:${PN}-bin = "--system postfix;--system postdrop;--system vmail"
export SYSLIBS = "${LDFLAGS}"
# CCARGS specifies includes, defines
# AUXLIBS specifies libraries
# Linux2/Linux3 has HAS_DB defined
# makedefs will make CC to be CC+CCARGS
# ldap support
export CCARGS-ldap = "\
${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}"
export AUXLIBS-ldap = "\
${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}"
# no native openldap
export CCARGS-ldap:class-native = ""
export AUXLIBS-ldap:class-native = ""
export CCARGS-nonis:libc-musl = "-DNO_NIS"
export CCARGS-nonis = ""
# SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH
# current openldap didn't enable SASL
export CCARGS-sasl = "\
${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${STAGING_INCDIR}/sasl', '', d)}"
export AUXLIBS-sasl = "\
${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}"
export CCARGS-sasl:class-native = ""
export AUXLIBS-sasl:class-native = ""
# PCRE, TLS support default
export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS -I${STAGING_INCDIR}/openssl ${CCARGS-ldap} ${CCARGS-sasl} ${CCARGS-nonis}"
export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}"
export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf"
# OPT,DEBUG is aready in CFLAGS
# ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS
EXTRA_OEMAKE += "OPT= DEBUG= OPTS= "
do_compile () {
unset CFLAGS CPPFLAGS CXXFLAGS
local native_build
native_build="${@['0', '1'][bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d)]}"
# if not native build, then pass SYSTEM and RELEASE to makedefs
if [ "${native_build}" != "1" ]; then
# uname -s for target
SYSTEM="Linux"
# uname -r, use 2.6 as bottomline, even target kernel ver > 2.6
RELEASE="2.6.34"
sed -i -e \
"s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \
${S}/Makefile.in
export BUILD_SYSROOT="${STAGING_DIR_HOST}"
else
# native build
export BUILD_SYSROOT="${STAGING_DIR_NATIVE}"
fi
oe_runmake makefiles
oe_runmake
}
do_install:prepend:class-native() {
export POSTCONF="bin/postconf"
}
SYSTEMD_SERVICE:${PN} = "postfix.service"
do_install () {
sh ./postfix-install 'install_root=${D}' \
'config_directory=${sysconfdir}/postfix' \
'daemon_directory=${libexecdir}/postfix' \
'command_directory=${sbindir}' \
'queue_directory=${localstatedir}/spool/postfix' \
'sendmail_path=${sbindir}/sendmail.postfix' \
'newaliases_path=${bindir}/newaliases' \
'mailq_path=${bindir}/mailq' \
'manpage_directory=${mandir}' \
'readme_directory=${datadir}/doc/postfix' \
'data_directory=${localstatedir}/lib/postfix' \
-non-interactive
rm -rf ${D}${localstatedir}/spool/postfix
mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/${MLPREFIX}sample-main.cf
install -m 755 ${S}/bin/smtp-sink ${D}/${sbindir}/
install -d ${D}${sysconfdir}/init.d
install -m 644 ${WORKDIR}/main.cf ${D}${sysconfdir}/postfix/main.cf
sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf
install -m 755 ${WORKDIR}/check_hostname.sh ${D}${sbindir}/
install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix
install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/postfix.service ${D}${systemd_unitdir}/system
sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/postfix.service
sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/postfix.service
sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/postfix.service
install -m 0755 ${WORKDIR}/aliasesdb ${D}${libexecdir}/postfix
install -m 770 -d ${D}${localstatedir}/spool/postfix
chown postfix:postfix ${D}${localstatedir}/spool/postfix
install -m 0755 -d ${D}${localstatedir}/lib/postfix
chown postfix:nogroup ${D}${localstatedir}/lib/postfix
install -m 0755 -d ${D}${localstatedir}/spool/postfix
chown root:postfix ${D}${localstatedir}/spool/postfix
install -m 0700 -d ${D}${localstatedir}/spool/postfix/active
chown postfix:root ${D}${localstatedir}/spool/postfix/active
install -m 0700 -d ${D}${localstatedir}/spool/postfix/bounce
chown postfix:root ${D}${localstatedir}/spool/postfix/bounce
install -m 0700 -d ${D}${localstatedir}/spool/postfix/corrupt
chown postfix:root ${D}${localstatedir}/spool/postfix/corrupt
install -m 0700 -d ${D}${localstatedir}/spool/postfix/defer
chown postfix:root ${D}${localstatedir}/spool/postfix/defer
install -m 0700 -d ${D}${localstatedir}/spool/postfix/deferred
chown postfix:root ${D}${localstatedir}/spool/postfix/deferred
install -m 0700 -d ${D}${localstatedir}/spool/postfix/flush
chown postfix:root ${D}${localstatedir}/spool/postfix/flush
install -m 0700 -d ${D}${localstatedir}/spool/postfix/hold
chown postfix:root ${D}${localstatedir}/spool/postfix/hold
install -m 0700 -d ${D}${localstatedir}/spool/postfix/incoming
chown postfix:root ${D}${localstatedir}/spool/postfix/incoming
install -m 0700 -d ${D}${localstatedir}/spool/postfix/saved
chown postfix:root ${D}${localstatedir}/spool/postfix/saved
install -m 0700 -d ${D}${localstatedir}/spool/postfix/trace
chown postfix:root ${D}${localstatedir}/spool/postfix/trace
install -m 0730 -d ${D}${localstatedir}/spool/postfix/maildrop
chown postfix:postdrop ${D}${localstatedir}/spool/postfix/maildrop
install -m 0755 -d ${D}${localstatedir}/spool/postfix/pid
chown root:root ${D}${localstatedir}/spool/postfix/pid
install -m 0700 -d ${D}${localstatedir}/spool/postfix/private
chown postfix:root ${D}${localstatedir}/spool/postfix/private
install -m 0710 -d ${D}${localstatedir}/spool/postfix/public
chown postfix:postdrop ${D}${localstatedir}/spool/postfix/public
install -m 0755 -d ${D}${localstatedir}/spool/vmail
chown vmail:vmail ${D}${localstatedir}/spool/vmail
chown :postdrop ${D}${sbindir}/postqueue
chown :postdrop ${D}${sbindir}/postdrop
chmod g+s ${D}${sbindir}/postqueue
chmod g+s ${D}${sbindir}/postdrop
rm -rf ${D}/etc/postfix/makedefs.out
}
do_install:append:class-native() {
ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases
ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq
}
ALTERNATIVE:${PN}-bin = "sendmail mailq newaliases"
# /usr/lib/sendmial is required by LSB core test
ALTERNATIVE:${PN}-bin:linuxstdbase = "sendmail mailq newaliases usr-lib-sendmail"
ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq"
ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases"
ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix"
ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
ALTERNATIVE_TARGET[usr-lib-sendmail] = "${sbindir}/sendmail.postfix"
ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail"
ALTERNATIVE_PRIORITY = "120"
ALTERNATIVE:${PN}-doc += "mailq.1 newaliases.1 sendmail.1"
ALTERNATIVE_LINK_NAME[mailq.1] = "${mandir}/man1/mailq.1"
ALTERNATIVE_LINK_NAME[newaliases.1] = "${mandir}/man1/newaliases.1"
ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1"
pkg_postinst_ontarget:${PN}-cfg () {
touch /etc/aliases
newaliases
# generate virtual_alias, default is hash
touch /etc/postfix/virtual_alias
postmap /etc/postfix/virtual_alias
}
PACKAGES =+ "${PN}-cfg"
RDEPENDS:${PN}-cfg:class-target += "${PN}-bin"
RDEPENDS:${PN}:class-target += "${PN}-cfg"
# Exclude .debug directories from the main package
FILES:${PN}-bin += "${localstatedir} ${bindir}/* ${sbindir}/* \
${libexecdir}/* ${systemd_unitdir}/*"
FILES:${PN}-cfg = "${sysconfdir}"
FILES:${PN}-dbg += "${libexecdir}/postfix/.debug"
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,18 @@
require postfix.inc
SRC_URI += "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
file://main.cf \
file://postfix \
file://internal_recipient \
file://postfix.service \
file://aliasesdb \
file://check_hostname.sh \
file://0001-Fix-makedefs.patch \
file://0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch \
file://0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
file://0004-Fix-icu-config.patch \
file://0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
file://0006-makedefs-Account-for-linux-6.x-version.patch \
"
SRC_URI[sha256sum] = "d22f3d37ef75613d5d573b56fc51ef097f2c0d0b0e407923711f71c1fb72911b"
UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.6(\.\d+)+).tar.gz"