mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-22 01:49:47 +00:00
postfix-3.10-20240309
This commit is contained in:
parent
7c53eb5ae9
commit
65ea4abd73
@ -27973,3 +27973,8 @@ Apologies for any names omitted.
|
||||
Documentation: in the master.cf documentation, added text
|
||||
for "quoting" a command-line argument that starts with "{".
|
||||
File: proto/master.
|
||||
|
||||
20240309
|
||||
|
||||
Cleanup: removed unused Makefile targets (lint, shar,
|
||||
printfck). Files Makefile.* src/*/Makefile.in.
|
||||
|
@ -44,7 +44,7 @@ makefiles Makefiles conf/makedefs.out:
|
||||
*) cat Makefile.in;; \
|
||||
esac) >Makefile
|
||||
|
||||
update printfck tests root_tests:
|
||||
update tests root_tests:
|
||||
set -e; for i in $(DIRS); do \
|
||||
(set -e; echo "[$$i]"; cd $$i; $(MAKE) $(OPTS) $@ MAKELEVEL=) || exit 1; \
|
||||
done
|
||||
|
@ -12,7 +12,7 @@ SHELL = /bin/sh
|
||||
|
||||
default: update
|
||||
|
||||
update depend printfck clean tidy depend_update: Makefiles
|
||||
update depend clean tidy depend_update: Makefiles
|
||||
$(MAKE) MAKELEVEL= $@
|
||||
|
||||
install upgrade:
|
||||
|
@ -1,19 +1,19 @@
|
||||
This is the Postfix 3.9 experimental release.
|
||||
This is the Postfix 3.10 experimental release.
|
||||
|
||||
The stable Postfix release is called postfix-3.8.x where 3=major
|
||||
release number, 8=minor release number, x=patchlevel. The stable
|
||||
The stable Postfix release is called postfix-3.9.x where 3=major
|
||||
release number, 9=minor release number, x=patchlevel. The stable
|
||||
release never changes except for patches that address bugs or
|
||||
emergencies. Patches change the patchlevel and the release date.
|
||||
|
||||
New features are developed in snapshot releases. These are called
|
||||
postfix-3.9-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
postfix-3.10-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
mm=month, dd=day). Patches are never issued for snapshot releases;
|
||||
instead, a new snapshot is released.
|
||||
|
||||
The mail_release_date configuration parameter (format: yyyymmdd)
|
||||
specifies the release date of a stable release or snapshot release.
|
||||
|
||||
If you upgrade from Postfix 3.7 or earlier, please read RELEASE_NOTES-3.8
|
||||
If you upgrade from Postfix 3.8 or earlier, please read RELEASE_NOTES-3.9
|
||||
before proceeding.
|
||||
|
||||
Dual license
|
||||
@ -25,211 +25,3 @@ now also distributed with the more recent Eclipse Public License
|
||||
(EPL) 2.0. Recipients can choose to take the software under the
|
||||
license of their choice. Those who are more comfortable with the
|
||||
IPL can continue with that license.
|
||||
|
||||
Incompatibility with snapshot 20240110
|
||||
=======================================
|
||||
|
||||
- With "cleanup_replace_stray_cr_lf = yes" (the default), the cleanup
|
||||
daemon replaces each stray <CR> or <LF> character in message
|
||||
content with a space character. The replacement happens before
|
||||
any other content management (header/body_checks, Milters, etc).
|
||||
|
||||
This prevents outbound SMTP smuggling, where an attacker uses
|
||||
Postfix to send email containing a non-standard End-of-DATA
|
||||
sequence, to exploit inbound SMTP smuggling at a vulnerable remote
|
||||
SMTP server.
|
||||
|
||||
This also improves the remote evaluation of Postfix-added DKIM
|
||||
and other signatures, as the evaluation result will not depend
|
||||
on how a remote email server handles stray <CR> or <LF> characters.
|
||||
|
||||
This feature applies to all email that Postfix locally or remotely
|
||||
sends out. It is not allowlisted based on client identity.
|
||||
|
||||
Major changes with snapshot 20240118
|
||||
====================================
|
||||
|
||||
This updates Postfix fixes for inbound SMTP smuggling attacks. For
|
||||
background, see https://www.postfix.org/smtp-smuggling.html
|
||||
|
||||
This will be back ported to Postfix 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
|
||||
|
||||
- Better compatibility: the recommended setting "smtpd_forbid_bare_newline
|
||||
= normalize" requires the standard End-of-DATA sequence
|
||||
<CR><LF>.<CR><LF>, but allows bare newlines from SMTP clients,
|
||||
maintaining more compatibility with existing infrastructure.
|
||||
|
||||
- Improved logging for rejected input (it now includes queue ID,
|
||||
helo, mail, and rcpt, if available).
|
||||
|
||||
- The setting "smtpd_forbid_bare_newline = reject" requires
|
||||
that input lines end in <CR><LF>, requires the standard End-of-DATA
|
||||
sequence <CR><LF>.<CR><LF>, and rejects a command or message that
|
||||
contains a bare newline. To disconnect the client, specify
|
||||
"smtpd_forbid_bare_newline_reject_code = 521".
|
||||
|
||||
- The Postfix SMTP server no longer strips extra <CR> as in
|
||||
<CR><LF>.<CR><CR><LF>, to silence false alarms from test tools
|
||||
that send attack sequences that real mail servers cannot send.
|
||||
Details at https://www.postfix.org/false-smuggling-claims.html
|
||||
|
||||
- The old setting "yes" has become an alias for "normalize".
|
||||
|
||||
- The old setting "no" has not changed, and allows SMTP smuggling.
|
||||
|
||||
The recommended settings are now:
|
||||
|
||||
# Require the standard End-of-DATA sequence <CR><LF>.<CR><LF>.
|
||||
# Otherwise, allow bare <LF> and process it as if the client sent
|
||||
# <CR><LF>.
|
||||
#
|
||||
# This maintains compatibility with many legitimate SMTP client
|
||||
# applications that send a mix of standard and non-standard line
|
||||
# endings, but will fail to receive email from client implementations
|
||||
# that do not terminate DATA content with the standard End-of-DATA
|
||||
# sequence <CR><LF>.<CR><LF>.
|
||||
#
|
||||
# Such clients can be allowlisted with smtpd_forbid_bare_newline_exclusions.
|
||||
# The example below allowlists SMTP clients in trusted networks.
|
||||
#
|
||||
smtpd_forbid_bare_newline = normalize
|
||||
smtpd_forbid_bare_newline_exclusions = $mynetworks
|
||||
|
||||
Alternative settings:
|
||||
|
||||
# Reject input lines that contain <LF> and log a "bare <LF> received"
|
||||
# error. Require that input lines end in <CR><LF>, and require the
|
||||
# standard End-of-DATA sequence <CR><LF>.<CR><LF>.
|
||||
#
|
||||
# This will reject email from SMTP clients that send any non-standard
|
||||
# line endings such as web applications, netcat, or load balancer
|
||||
# health checks.
|
||||
#
|
||||
# This will also reject email from services that use BDAT to send
|
||||
# MIME text containing a bare newline (RFC 3030 Section 3 requires
|
||||
# canonical MIME format for text message types, defined in RFC 2045
|
||||
# Sections 2.7 and 2.8).
|
||||
#
|
||||
# Such clients can be allowlisted with smtpd_forbid_bare_newline_exclusions.
|
||||
# The example below allowlists SMTP clients in trusted networks.
|
||||
#
|
||||
smtpd_forbid_bare_newline = reject
|
||||
smtpd_forbid_bare_newline_exclusions = $mynetworks
|
||||
#
|
||||
# Alternatively, in the case of BDAT violations, BDAT can be selectively
|
||||
# disabled with smtpd_discard_ehlo_keyword_address_maps, or globally
|
||||
# disabled with smtpd_discard_ehlo_keywords.
|
||||
#
|
||||
# smtpd_discard_ehlo_keyword_address_maps = cidr:/path/to/file
|
||||
# /path/to/file:
|
||||
# 10.0.0.0/24 chunking, silent-discard
|
||||
# smtpd_discard_ehlo_keywords = chunking, silent-discard
|
||||
|
||||
Incompatible changes with snapshot 20230903
|
||||
===========================================
|
||||
|
||||
The MySQL client no longer supports MySQL versions < 4.0. MySQL
|
||||
version 4.0 was released in 2003.
|
||||
|
||||
Major changes with snapshot 20230901
|
||||
====================================
|
||||
|
||||
New parameter force_mime_input_conversion (default: no) to convert
|
||||
body content that claims to be 8-bit into quoted-printable, before
|
||||
header_checks, body_checks, Milters, and before after-queue content
|
||||
filters. This feature does not affect messages that are sent into
|
||||
smtpd_proxy_filter.
|
||||
|
||||
The typical use case is an MTA that applies this conversion before
|
||||
signing outbound messages, so that the signatures will remain valid
|
||||
when a message is later handled by an MTA that does not announce
|
||||
8BITMIME support, or when a message line exceeds the SMTP length
|
||||
limit.
|
||||
|
||||
Major changes with snapshot 20230807
|
||||
====================================
|
||||
|
||||
Optional Postfix TLS support to request an RFC7250 raw public key
|
||||
instead of an X.509 public-key certificate. The configuration
|
||||
settings for raw key public support will be ignored when there is
|
||||
no raw public key support in the local TLS implementation (i.e.
|
||||
Postfix with OpenSSL versions before 3.2).
|
||||
|
||||
- With "smtpd_tls_enable_rpk = yes", the Postfix SMTP server will
|
||||
request that a remote SMTP client sends an RFC7250 raw public key
|
||||
instead of an X.509 certificate when asking for or requiring TLS
|
||||
client authentication. The Postfix SMTP server will still accept
|
||||
a client public-key certificate instead of a public key.
|
||||
|
||||
- With "smtp_tls_enable_rpk = yes" (or "enable_rpk = yes" in an
|
||||
smtp policy table) at the security levels "may", "encrypt" or
|
||||
"fingerprint", the Postfix SMTP client will request that a remote
|
||||
SMTP server sends an RFC7250 raw public key instead of an X.509
|
||||
certificate. The Postfix SMTP client will still accept a server
|
||||
public key certificate instead of a public key.
|
||||
|
||||
- At the "secure" and "verify" security level, the Postfix SMTP
|
||||
client will ignore smtp_tls_enable_rpk or enable_rpk settings,
|
||||
because these levels require a server certificate.
|
||||
|
||||
- At the "dane" and "dane-only" security levels, the Postfix SMTP
|
||||
client will ignore smtp_tls_enable_rpk or enable_rpk settings,
|
||||
and will request that a remote SMTP server sends an RFC7250 raw
|
||||
public key instead of an X.509 certificate when all valid TLSA
|
||||
records specify only server public keys (no certificates). The
|
||||
Postfix SMTP client will still accept a server public key
|
||||
certificate.
|
||||
|
||||
- The Postfix SMTP client and server always send a raw public key
|
||||
instead of a certificate, if solicited by the remote SMTP peer
|
||||
and the local TLS implementation supports raw public keys.
|
||||
|
||||
- If a remote SMTP client sends a server name indication with an
|
||||
SNI TLS extension, and tls_server_sni_maps is configured, the
|
||||
Postfix SMTP server will extract a raw public key from the indicated
|
||||
certificate.
|
||||
|
||||
Caution: enabling Postfix raw key support will break authentication
|
||||
based on certificate fingerprints in check_ccert_access or
|
||||
smtp_tls_policy_maps, when a remote peer's TLS implementation starts
|
||||
to send a raw public key instead of a certificate. The solution is
|
||||
to always use public key fingerprint patterns; these will match not
|
||||
only a "raw" public key, but also the public key in a certificate.
|
||||
|
||||
To detect such problems before they happen, the Postfix SMTP server
|
||||
will log a warning when it requests an RFC7250 raw public key instead
|
||||
of an X.509 certificate, the remote peer sends a certificate instead
|
||||
of a public key, and check_ccert_access has a matching fingerprint
|
||||
for the certificate but not for the public key in that certificate.
|
||||
There is no corresponding warning from the Postfix SMTP client.
|
||||
|
||||
For instructions to generate public-key fingerprints, see the
|
||||
postconf(5) man pages for smtp_tls_enable_rpk and smtpd_tls_enable_rpk.
|
||||
|
||||
Incompatible changes with snapshot 20230603
|
||||
===========================================
|
||||
|
||||
Security: the Postfix SMTP server by default disconnects remote
|
||||
SMTP clients that violate RFC 2920 (or 5321) command pipelining
|
||||
constraints. The server replies with "554 5.5.0 Error: SMTP protocol
|
||||
synchronization" and logs the unexpected remote SMTP client input.
|
||||
Specify "smtpd_reject_unauth_pipelining = no" to disable.
|
||||
|
||||
Major changes with snapshot 20230522
|
||||
====================================
|
||||
|
||||
Preliminary support for OpenSSL configuration files, primarily
|
||||
OpenSSL 1.1.1b and later. This introduces two new parameters
|
||||
"tls_config_file" and "tls_config_name", which can be used to limit
|
||||
collateral damage from OS distributions that crank up security to
|
||||
11, increasing the number of plaintext email deliveries. Details
|
||||
are in the postconf(5) manpage under "tls_config_file" and
|
||||
"tls_config_name".
|
||||
|
||||
Incompatible changes with snapshot 20230419
|
||||
===========================================
|
||||
|
||||
The MySQL client default characterset is now configurable with the
|
||||
"charset" configuration file attribute. The default is "utf8mb4",
|
||||
consistent with the MySQL 8.0 built-in default, but different from
|
||||
earlier MySQL versions where the built-in default was "latin1".
|
||||
|
309
postfix/RELEASE_NOTES-3.9
Normal file
309
postfix/RELEASE_NOTES-3.9
Normal file
@ -0,0 +1,309 @@
|
||||
This is the Postfix 3.9 stable release.
|
||||
|
||||
The stable Postfix release is called postfix-3.9.x where 3=major
|
||||
release number, 9=minor release number, x=patchlevel. The stable
|
||||
release never changes except for patches that address bugs or
|
||||
emergencies. Patches change the patchlevel and the release date.
|
||||
|
||||
New features are developed in snapshot releases. These are called
|
||||
postfix-3.10-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
mm=month, dd=day). Patches are never issued for snapshot releases;
|
||||
instead, a new snapshot is released.
|
||||
|
||||
The mail_release_date configuration parameter (format: yyyymmdd)
|
||||
specifies the release date of a stable release or snapshot release.
|
||||
|
||||
If you upgrade from Postfix 3.7 or earlier, please read RELEASE_NOTES-3.8
|
||||
before proceeding.
|
||||
|
||||
Dual license
|
||||
------------
|
||||
|
||||
As of Postfix 3.2.5 this software is distributed with a dual license:
|
||||
in addition to the historical IBM Public License (IPL) 1.0, it is
|
||||
now also distributed with the more recent Eclipse Public License
|
||||
(EPL) 2.0. Recipients can choose to take the software under the
|
||||
license of their choice. Those who are more comfortable with the
|
||||
IPL can continue with that license.
|
||||
|
||||
Topics in this document
|
||||
-----------------------
|
||||
- changes that are less visible
|
||||
- database support
|
||||
- envid support
|
||||
- feature deprecation
|
||||
- mime conversion
|
||||
- protocol compliance
|
||||
- security
|
||||
- tls support
|
||||
|
||||
Changes that are less visible
|
||||
-----------------------------
|
||||
|
||||
The documentation has been updated to address many questions
|
||||
that were asked on the postfix-users mailing list.
|
||||
|
||||
More unit tests to make Postfix future-proof. Wietse is now looking
|
||||
into migrating unit tests to Google test, because other people are
|
||||
familiar with that framework, than with a Postfix-specific one.
|
||||
|
||||
Major changes - database support
|
||||
--------------------------------
|
||||
|
||||
[Feature 20240208] MongoDB client support, contributed by Hamid
|
||||
Maadani, based on earlier code by Stephan Ferraro. For build and
|
||||
usage instructions see MONGODB_README and mongodb_table(5).
|
||||
|
||||
[Feature 20240129] In the mysql: and pgsql: clients, the hard-coded
|
||||
idle and retry timer settings are now configurable. Details are in
|
||||
the updated mysql_table(5) and pgsql_table(5) manpages.
|
||||
|
||||
[Incompat 20230903] The MySQL client no longer supports MySQL
|
||||
versions < 4.0. MySQL version 4.0 was released in 2003.
|
||||
|
||||
[Incompat 20230419] The MySQL client default characterset is now
|
||||
configurable with the "charset" configuration file attribute. The
|
||||
default is "utf8mb4", consistent with the MySQL 8.0 built-in default,
|
||||
but different from earlier MySQL versions where the built-in default
|
||||
was "latin1".
|
||||
|
||||
Major changes - envid support
|
||||
-----------------------------
|
||||
|
||||
[Feature 20230901] The local(8) delivery agent exports an ENVID
|
||||
environment variable with the RFC 3461 envelope ID if available.
|
||||
|
||||
The pipe(8) delivery agent supports an ${envid} command-line attribute
|
||||
that expands to the RFC 3461 envelope ID if available.
|
||||
|
||||
Major changes - feature deprecation
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20240218] The new document DEPRECATION_README covers
|
||||
features that have been removed and that will be removed in the
|
||||
future, with suggestions how to migrate.
|
||||
|
||||
The Postfix SMTP server logs a warning when "permit_mx_backup" is
|
||||
used (support for restriction "permit_mx_backup" will be removed
|
||||
from Postfix; instead, use "relay_domains"). File: smtpd/smtpd_check.c.
|
||||
|
||||
The postconf command logs a warning when the following parameters
|
||||
are specified in main.cf or master.cf: xxx_use_tls, xxx_enforce_tls
|
||||
(use the corresponding xxx_security_level setting instead);
|
||||
xxx_per_site (use the corresponding xxx_policy_maps setting instead);
|
||||
disable_dns_lookups (use smtp_dns_support_level instead);
|
||||
smtpd_tls_dh1024_param_file, smtpd_tls_eecdh_grade (do not specify,
|
||||
leave at default). These warning are silenced with the "postconf
|
||||
-q".
|
||||
|
||||
[Incompat 20240218] The Postfix SMTP server now logs that
|
||||
permit_naked_ip_address, reject_maps_rbl, and check_relay_domains
|
||||
have been removed and suggests a replacement. These features have
|
||||
been logging deprecation warnings since 2005 or earlier, and were
|
||||
removed from Postfix documentation in 2004.
|
||||
|
||||
Major changes - mime conversion
|
||||
-------------------------------
|
||||
|
||||
[Feature 20230901] New parameter force_mime_input_conversion (default:
|
||||
no) to convert body content that claims to be 8-bit into quoted-printable,
|
||||
before header_checks, body_checks, Milters, and before after-queue
|
||||
content filters. This feature does not affect messages that are
|
||||
sent into smtpd_proxy_filter.
|
||||
|
||||
The typical use case is an MTA that applies this conversion before
|
||||
signing outbound messages, so that the signatures will remain valid
|
||||
when a message is later handled by an MTA that does not announce
|
||||
8BITMIME support, or when a message line exceeds the SMTP length
|
||||
limit.
|
||||
|
||||
Major changes - protocol compliance
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20240206] In message headers, Postfix now formats numerical
|
||||
days as two-digit days, i.e. days 1-9 have a leading zero instead
|
||||
of a leading space. This change was made because the RFC 5322 date
|
||||
and time specification recommends (i.e. SHOULD) that a single space
|
||||
be used in each place that FWS appears. This change avoids a breaking
|
||||
change in the date string length.
|
||||
|
||||
Major changes - security
|
||||
------------------------
|
||||
|
||||
[Incompat 20240226] The Postfix DNS client now limits the total
|
||||
size of DNS lookup results to 100 records; it drops the excess
|
||||
records, and logs a warning. This limit is 20x larger than the
|
||||
number of server addresses that the Postfix SMTP client is willing
|
||||
to consider when delivering mail, and is far below the number of
|
||||
records that could cause a tail recursion crash in dns_rr_append()
|
||||
as reported by Toshifumi Sakaguchi.
|
||||
|
||||
This change introduces a similar limit on the number of DNS requests
|
||||
that a check_*_*_access restriction can make.
|
||||
|
||||
[Incompat 20240110] With "cleanup_replace_stray_cr_lf = yes" (the
|
||||
default), the cleanup daemon replaces each stray <CR> or <LF>
|
||||
character in message content with a space character. The replacement
|
||||
happens before any other content management (header/body_checks,
|
||||
Milters, etc).
|
||||
|
||||
This prevents outbound SMTP smuggling, where an attacker uses Postfix
|
||||
to send email containing a non-standard End-of-DATA sequence, to
|
||||
exploit inbound SMTP smuggling at a vulnerable remote SMTP server.
|
||||
|
||||
This also improves the remote evaluation of Postfix-added DKIM and
|
||||
other signatures, as the evaluation result will not depend on how
|
||||
a remote email server handles stray <CR> or <LF> characters.
|
||||
|
||||
This feature applies to all email that Postfix locally or remotely
|
||||
sends out. It is not allowlisted based on client identity.
|
||||
|
||||
[Feature 20240118] This updates Postfix fixes for inbound SMTP smuggling
|
||||
attacks. For background, see https://www.postfix.org/smtp-smuggling.html
|
||||
|
||||
This will be back ported to Postfix 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
|
||||
|
||||
- Better compatibility: the recommended setting "smtpd_forbid_bare_newline
|
||||
= normalize" requires the standard End-of-DATA sequence
|
||||
<CR><LF>.<CR><LF>, but allows bare newlines from SMTP clients,
|
||||
maintaining more compatibility with existing infrastructure.
|
||||
|
||||
- Improved logging for rejected input (it now includes queue ID,
|
||||
helo, mail, and rcpt, if available).
|
||||
|
||||
- The setting "smtpd_forbid_bare_newline = reject" requires
|
||||
that input lines end in <CR><LF>, requires the standard End-of-DATA
|
||||
sequence <CR><LF>.<CR><LF>, and rejects a command or message that
|
||||
contains a bare newline. To disconnect the client, specify
|
||||
"smtpd_forbid_bare_newline_reject_code = 521".
|
||||
|
||||
- The Postfix SMTP server no longer strips extra <CR> as in
|
||||
<CR><LF>.<CR><CR><LF>, to silence false alarms from test tools
|
||||
that send attack sequences that real mail servers cannot send.
|
||||
Details at https://www.postfix.org/false-smuggling-claims.html
|
||||
|
||||
- The old setting "yes" has become an alias for "normalize".
|
||||
|
||||
- The old setting "no" has not changed, and allows SMTP smuggling.
|
||||
|
||||
The recommended settings are now:
|
||||
|
||||
# Require the standard End-of-DATA sequence <CR><LF>.<CR><LF>.
|
||||
# Otherwise, allow bare <LF> and process it as if the client sent
|
||||
# <CR><LF>.
|
||||
#
|
||||
# This maintains compatibility with many legitimate SMTP client
|
||||
# applications that send a mix of standard and non-standard line
|
||||
# endings, but will fail to receive email from client implementations
|
||||
# that do not terminate DATA content with the standard End-of-DATA
|
||||
# sequence <CR><LF>.<CR><LF>.
|
||||
#
|
||||
# Such clients can be allowlisted with smtpd_forbid_bare_newline_exclusions.
|
||||
# The example below allowlists SMTP clients in trusted networks.
|
||||
#
|
||||
smtpd_forbid_bare_newline = normalize
|
||||
smtpd_forbid_bare_newline_exclusions = $mynetworks
|
||||
|
||||
Alternative settings:
|
||||
|
||||
# Reject input lines that contain <LF> and log a "bare <LF> received"
|
||||
# error. Require that input lines end in <CR><LF>, and require the
|
||||
# standard End-of-DATA sequence <CR><LF>.<CR><LF>.
|
||||
#
|
||||
# This will reject email from SMTP clients that send any non-standard
|
||||
# line endings such as web applications, netcat, or load balancer
|
||||
# health checks.
|
||||
#
|
||||
# This will also reject email from services that use BDAT to send
|
||||
# MIME text containing a bare newline (RFC 3030 Section 3 requires
|
||||
# canonical MIME format for text message types, defined in RFC 2045
|
||||
# Sections 2.7 and 2.8).
|
||||
#
|
||||
# Such clients can be allowlisted with smtpd_forbid_bare_newline_exclusions.
|
||||
# The example below allowlists SMTP clients in trusted networks.
|
||||
#
|
||||
smtpd_forbid_bare_newline = reject
|
||||
smtpd_forbid_bare_newline_exclusions = $mynetworks
|
||||
#
|
||||
# Alternatively, in the case of BDAT violations, BDAT can be selectively
|
||||
# disabled with smtpd_discard_ehlo_keyword_address_maps, or globally
|
||||
# disabled with smtpd_discard_ehlo_keywords.
|
||||
#
|
||||
# smtpd_discard_ehlo_keyword_address_maps = cidr:/path/to/file
|
||||
# /path/to/file:
|
||||
# 10.0.0.0/24 chunking, silent-discard
|
||||
# smtpd_discard_ehlo_keywords = chunking, silent-discard
|
||||
|
||||
[Incompat 20230603] the Postfix SMTP server by default disconnects
|
||||
remote SMTP clients that violate RFC 2920 (or 5321) command pipelining
|
||||
constraints. The server replies with "554 5.5.0 Error: SMTP protocol
|
||||
synchronization" and logs the unexpected remote SMTP client input.
|
||||
Specify "smtpd_reject_unauth_pipelining = no" to disable.
|
||||
|
||||
Major changes - tls support
|
||||
---------------------------
|
||||
|
||||
[Feature 20230807] Optional Postfix TLS support to request an RFC7250
|
||||
raw public key instead of an X.509 public-key certificate. The
|
||||
configuration settings for raw key public support will be ignored
|
||||
when there is no raw public key support in the local TLS implementation
|
||||
(i.e. Postfix with OpenSSL versions before 3.2).
|
||||
|
||||
- With "smtpd_tls_enable_rpk = yes", the Postfix SMTP server will
|
||||
request that a remote SMTP client sends an RFC7250 raw public key
|
||||
instead of an X.509 certificate when asking for or requiring TLS
|
||||
client authentication. The Postfix SMTP server will still accept
|
||||
a client public-key certificate instead of a public key.
|
||||
|
||||
- With "smtp_tls_enable_rpk = yes" (or "enable_rpk = yes" in an
|
||||
smtp policy table) at the security levels "may", "encrypt" or
|
||||
"fingerprint", the Postfix SMTP client will request that a remote
|
||||
SMTP server sends an RFC7250 raw public key instead of an X.509
|
||||
certificate. The Postfix SMTP client will still accept a server
|
||||
public key certificate instead of a public key.
|
||||
|
||||
- At the "secure" and "verify" security level, the Postfix SMTP
|
||||
client will ignore smtp_tls_enable_rpk or enable_rpk settings,
|
||||
because these levels require a server certificate.
|
||||
|
||||
- At the "dane" and "dane-only" security levels, the Postfix SMTP
|
||||
client will ignore smtp_tls_enable_rpk or enable_rpk settings,
|
||||
and will request that a remote SMTP server sends an RFC7250 raw
|
||||
public key instead of an X.509 certificate when all valid TLSA
|
||||
records specify only server public keys (no certificates). The
|
||||
Postfix SMTP client will still accept a server public key
|
||||
certificate.
|
||||
|
||||
- The Postfix SMTP client and server always send a raw public key
|
||||
instead of a certificate, if solicited by the remote SMTP peer
|
||||
and the local TLS implementation supports raw public keys.
|
||||
|
||||
- If a remote SMTP client sends a server name indication with an
|
||||
SNI TLS extension, and tls_server_sni_maps is configured, the
|
||||
Postfix SMTP server will extract a raw public key from the indicated
|
||||
certificate.
|
||||
|
||||
Caution: enabling Postfix raw key support will break authentication
|
||||
based on certificate fingerprints in check_ccert_access or
|
||||
smtp_tls_policy_maps, when a remote peer's TLS implementation starts
|
||||
to send a raw public key instead of a certificate. The solution is
|
||||
to always use public key fingerprint patterns; these will match not
|
||||
only a "raw" public key, but also the public key in a certificate.
|
||||
|
||||
To detect such problems before they happen, the Postfix SMTP server
|
||||
will log a warning when it requests an RFC7250 raw public key instead
|
||||
of an X.509 certificate, the remote peer sends a certificate instead
|
||||
of a public key, and check_ccert_access has a matching fingerprint
|
||||
for the certificate but not for the public key in that certificate.
|
||||
There is no corresponding warning from the Postfix SMTP client.
|
||||
|
||||
For instructions to generate public-key fingerprints, see the
|
||||
postconf(5) man pages for smtp_tls_enable_rpk and smtpd_tls_enable_rpk.
|
||||
|
||||
[Feature 20230522] Preliminary support for OpenSSL configuration
|
||||
files, primarily OpenSSL 1.1.1b and later. This introduces two new
|
||||
parameters "tls_config_file" and "tls_config_name", which can be
|
||||
used to limit collateral damage from OS distributions that crank
|
||||
up security to 11, increasing the number of plaintext email deliveries.
|
||||
Details are in the postconf(5) manpage under "tls_config_file" and
|
||||
"tls_config_name".
|
@ -31,7 +31,7 @@
|
||||
#
|
||||
# The level below is what should be used with new (not upgrade) installs.
|
||||
#
|
||||
compatibility_level = 3.9
|
||||
compatibility_level = 3.10
|
||||
|
||||
# SOFT BOUNCE
|
||||
#
|
||||
|
@ -226,12 +226,17 @@ MASTER(5) MASTER(5)
|
||||
options to make a Postfix daemon process increasingly
|
||||
verbose.
|
||||
|
||||
Other command-line arguments
|
||||
Specify "{" and "}" around command arguments that must
|
||||
start with "{" or that must contain whitespace (Postfix
|
||||
3.0 and later). The outer "{" and "}" are removed from
|
||||
the input, together with any leading or trailing white-
|
||||
space.
|
||||
<b>Command-line arguments that start with {</b>
|
||||
With Postfix 3.0 and later specify "{" and "}" around
|
||||
command arguments that start with "{". The outer "{" and
|
||||
"}" are removed from the input, together with any leading
|
||||
or trailing whitespace.
|
||||
|
||||
<b>Other command-line arguments</b>
|
||||
Specify "{" and "}" around command arguments that contain
|
||||
whitespace (Postfix 3.0 and later). The outer "{" and "}"
|
||||
are removed from the input, together with any leading or
|
||||
trailing whitespace.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
<a href="master.8.html">master(8)</a>, process manager
|
||||
|
@ -225,11 +225,16 @@ personalities via master.cf.
|
||||
.IP \fB\-v\fR
|
||||
Increase the verbose logging level. Specify multiple \fB\-v\fR
|
||||
options to make a Postfix daemon process increasingly verbose.
|
||||
.IP "Other command\-line arguments"
|
||||
Specify "{" and "}" around command arguments that must start
|
||||
with "{" or that must contain whitespace (Postfix 3.0 and
|
||||
later). The outer "{" and "}" are removed from the input,
|
||||
together with any leading or trailing whitespace.
|
||||
.IP "\fBCommand\-line arguments that start with {\fR"
|
||||
With Postfix 3.0 and later specify "{" and "}" around command
|
||||
arguments that start with "{". The outer "{" and "}" are
|
||||
removed from the input, together with any leading or trailing
|
||||
whitespace.
|
||||
.IP "\fBOther command\-line arguments\fR"
|
||||
Specify "{" and "}" around command arguments that contain
|
||||
whitespace (Postfix 3.0 and later). The outer "{" and "}"
|
||||
are removed from the input, together with any leading or
|
||||
trailing whitespace.
|
||||
.SH "SEE ALSO"
|
||||
.na
|
||||
.nf
|
||||
|
@ -219,11 +219,16 @@
|
||||
# .IP \fB-v\fR
|
||||
# Increase the verbose logging level. Specify multiple \fB-v\fR
|
||||
# options to make a Postfix daemon process increasingly verbose.
|
||||
# .IP "Other command-line arguments"
|
||||
# Specify "{" and "}" around command arguments that must start
|
||||
# with "{" or that must contain whitespace (Postfix 3.0 and
|
||||
# later). The outer "{" and "}" are removed from the input,
|
||||
# together with any leading or trailing whitespace.
|
||||
# .IP "\fBCommand-line arguments that start with {\fR"
|
||||
# With Postfix 3.0 and later specify "{" and "}" around command
|
||||
# arguments that start with "{". The outer "{" and "}" are
|
||||
# removed from the input, together with any leading or trailing
|
||||
# whitespace.
|
||||
# .IP "\fBOther command-line arguments\fR"
|
||||
# Specify "{" and "}" around command arguments that contain
|
||||
# whitespace (Postfix 3.0 and later). The outer "{" and "}"
|
||||
# are removed from the input, together with any leading or
|
||||
# trailing whitespace.
|
||||
# SEE ALSO
|
||||
# master(8), process manager
|
||||
# postconf(5), configuration parameters
|
||||
|
@ -76,3 +76,4 @@ Vijay
|
||||
Sakaguchi
|
||||
Toshifumi
|
||||
mxonly
|
||||
shar
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -53,20 +53,8 @@ update: ../../libexec/$(PROG) $(SAMPLES)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile > printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk main.cf
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -40,20 +40,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile > printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -247,20 +247,8 @@ dns_rr_tests: dns_rr_test
|
||||
dns_rr_test: dns_rr_test.o $(LIB) $(LIBS)
|
||||
$(CC) $(CFLAGS) -o $@ $@.c $(LIB) $(LIBS) $(SYSLIBS)
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(LIB) *core $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -34,19 +34,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -34,18 +34,8 @@ update: ../../libexec/fsstone
|
||||
../../libexec/fsstone: fsstone
|
||||
cp $? $@
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -776,20 +776,8 @@ hfrom_format_test: update hfrom_format \
|
||||
diff hfrom_format.ref hfrom_format.tmp
|
||||
rm -f hfrom_format.tmp
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(LIB) *core $(TESTPROG) junk $(MAPS)
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -20,8 +20,8 @@
|
||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||
* patchlevel; they change the release date only.
|
||||
*/
|
||||
#define MAIL_RELEASE_DATE "20240305"
|
||||
#define MAIL_VERSION_NUMBER "3.9"
|
||||
#define MAIL_RELEASE_DATE "20240309"
|
||||
#define MAIL_VERSION_NUMBER "3.10"
|
||||
|
||||
#ifdef SNAPSHOT
|
||||
#define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE
|
||||
|
@ -39,20 +39,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -60,20 +60,8 @@ update: $(LIB_DIR)/$(LIB) $(BIN_DIR)/$(PROG) $(HDRS)
|
||||
done
|
||||
cd $(INC_DIR); chmod 644 $(HDRS)
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) junk $(LIB)
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -45,20 +45,8 @@ update: $(LIB_DIR)/$(LIB) $(HDRS)
|
||||
done
|
||||
cd $(INC_DIR); chmod 644 $(HDRS)
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(LIB) *core $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -39,20 +39,8 @@ update: ../../libexec/o$(PROG)
|
||||
../../libexec/o$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec/o$(PROG)
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -63,19 +63,8 @@ fail_test: $(PROG) aliases fail_test.in fail_test.ref
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -32,19 +32,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -1065,21 +1065,9 @@ test76: $(PROG) test76.ref
|
||||
diff /dev/null test76.tmp
|
||||
rm -f main.cf master.cf test76.tmp
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk $(MAKES) $(AUTOS) $(DUMMIES) \
|
||||
$(TEST_TMP) $(DB_MAKES)
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -32,19 +32,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,22 +33,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
shar:
|
||||
@shar $(FILES)
|
||||
|
||||
lint:
|
||||
lint $(SRCS)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -32,19 +32,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -32,19 +32,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,22 +33,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
shar:
|
||||
@shar $(FILES)
|
||||
|
||||
lint:
|
||||
lint $(SRCS)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -103,19 +103,8 @@ lmdb_incr_test: $(PROG)
|
||||
cmp lmdb_retry lmdb_retry.tmp
|
||||
rm -f lmdb_retry lmdb_retry.tmp lmdb_retry.lmdb main.cf
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) *.tmp junk *.db
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,22 +33,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
shar:
|
||||
@shar $(FILES)
|
||||
|
||||
lint:
|
||||
lint $(SRCS)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -32,19 +32,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -43,19 +43,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -32,19 +32,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -36,19 +36,8 @@ update: ../../bin/posttls-finger
|
||||
../../bin/posttls-finger: posttls-finger
|
||||
cp $? $@
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -41,20 +41,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec/$(PROG)
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,20 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk *.db *.out *.tmp
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -32,19 +32,8 @@ update: ../../bin/$(PROG)
|
||||
../../bin/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../bin
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -48,20 +48,8 @@ lmtp_params.c: smtp_params.c
|
||||
grep -E -v -f smtp-only smtp_params.c | \
|
||||
sed 's/SMTP/LMTP/g; s/smtp_\([a-z]*_table\)/lmtp_\1/' >$@
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -53,20 +53,8 @@ smtpd_check: smtpd_check.o smtpd_check.c $(SMTPD_CHECK_OBJ) $(LIBS)
|
||||
$(LIBS) $(SYSLIBS)
|
||||
mv junk $@.o
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk *.db *.out *.tmp
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -53,19 +53,8 @@ update: ../../bin/smtp-source ../../bin/smtp-sink ../../bin/qmqp-source \
|
||||
../../bin/qmqp-sink: qmqp-sink
|
||||
cp $? $@
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -94,20 +94,8 @@ update: $(LIB_DIR)/$(LIB) $(HDRS)
|
||||
done
|
||||
cd $(INC_DIR); chmod 644 $(HDRS)
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(LIB) *core $(TESTPROG) junk *.pem.out
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -31,20 +31,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk *.db *.out *.tmp
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -35,19 +35,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -48,20 +48,8 @@ transport_test: transport transport.in transport.ref
|
||||
diff transport.ref transport.tmp
|
||||
rm -f transport.tmp
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core trivial-rewrite $(TESTPROG) junk $(LIB)
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -216,23 +216,8 @@ plugin_map_obj_update: $(LIB_MAP_OBJ)
|
||||
cmp -s $$i $(LIB_DIR)/$$i 2>/dev/null || cp $$i $(LIB_DIR); \
|
||||
done
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
shar:
|
||||
@shar $(FILES)
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(LIB) *core $(TESTPROG) junk $(MAKES) *.tmp
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,19 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -33,20 +33,8 @@ update: ../../libexec/$(PROG)
|
||||
../../libexec/$(PROG): $(PROG)
|
||||
cp $(PROG) ../../libexec
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o *core $(PROG) $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
@ -49,20 +49,8 @@ update: $(LIB_DIR)/$(LIB) $(HDRS)
|
||||
done
|
||||
cd $(INC_DIR); chmod 644 $(HDRS)
|
||||
|
||||
printfck: $(OBJS) $(PROG)
|
||||
rm -rf printfck
|
||||
mkdir printfck
|
||||
cp *.h printfck
|
||||
sed '1,/^# do not edit/!d' Makefile >printfck/Makefile
|
||||
set -e; for i in *.c; do printfck -f .printfck $$i >printfck/$$i; done
|
||||
cd printfck; make "INC_DIR=../../../include" `cd ..; ls *.o`
|
||||
|
||||
lint:
|
||||
lint $(DEFS) $(SRCS) $(LINTFIX)
|
||||
|
||||
clean:
|
||||
rm -f *.o $(LIB) *core $(TESTPROG) junk
|
||||
rm -rf printfck
|
||||
|
||||
tidy: clean
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user