svn commit: r1936861 - in spamassassin/trunk: . ldap lib/Mail/SpamAssassin lib/Mail/SpamAssassin/BayesStore lib/Mail/SpamAssassin/Message lib/Mail/SpamAssassin/Plugin lib/Mail/SpamAssassin/Pyzor lib/Mail/SpamAssassin/Util masses/contrib/automasscheck-m...

[email protected] Tue, 04 Aug 2026 09:43:20 -0000
Newsgroups gmane.mail.spam.spamassassin.cvs
Message-ID <178583660005.2172532.17419553550757532826@svn03-he-fi>
Author: gbechis
Date: Tue Aug  4 09:43:19 2026
New Revision: 1936861

Log:
fix typos spotted by fossies.org

Modified:
   spamassassin/trunk/INSTALL
   spamassassin/trunk/Makefile.PL
   spamassassin/trunk/ldap/sa_test.ldif
   spamassassin/trunk/lib/Mail/SpamAssassin/ArchiveIterator.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/Redis.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyEval.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DecodeShortURLs.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ExtractText.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Pyzor/Client.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Timeout.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
   spamassassin/trunk/lib/Mail/SpamAssassin/Util/DependencyInfo.pm
   spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist
   spamassassin/trunk/spamc/README.win
   spamassassin/trunk/spamc/spamc.c
   spamassassin/trunk/t/spamd_sql_prefs.t
   spamassassin/trunk/t/spamd_ssl.t
   spamassassin/trunk/t/spamd_ssl_accept_fail.t
   spamassassin/trunk/t/spamd_ssl_z.t

Modified: spamassassin/trunk/INSTALL
==============================================================================
--- spamassassin/trunk/INSTALL	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/INSTALL	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -302,7 +302,7 @@ is too low for them to be used.
   - Net::LibIDN (from CPAN)
 
     Provides mapping between Internationalized Domain Names (IDN) in Unicode
-    and ASCII-compatible encoding (ACE) for use in DNS and comparisions. 
+    and ASCII-compatible encoding (ACE) for use in DNS and comparisons. 
     The module is optional, but without it Unicode IDN names found in mail
     will not be suitable for DNS queries and welcome/blocklisting.
 

Modified: spamassassin/trunk/Makefile.PL
==============================================================================
--- spamassassin/trunk/Makefile.PL	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/Makefile.PL	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -386,7 +386,7 @@ sub init_MY_globals {
     VENDOR
   );
 
-  # Macro names follow this RE -- at least stricly enough for our purposes.
+  # Macro names follow this RE -- at least strictly enough for our purposes.
   $MACRO_RE = qr/[A-Z0-9_]+/;
   # Normally macros are assigned via FOO = bar. But the part with the equal
   # sign might differ from platform to platform. So we use this RE:

Modified: spamassassin/trunk/ldap/sa_test.ldif
==============================================================================
--- spamassassin/trunk/ldap/sa_test.ldif	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/ldap/sa_test.ldif	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -94,6 +94,6 @@ pager: 800-555-1319
 homePhone: 800-555-1313
 telephoneNumber: (800)555-1214
 mobile: 800-555-1318
-title: Developemnt Engineer
+title: Development Engineer
 facsimileTelephoneNumber: 800-555-3318
 userPassword: curleysecret

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/ArchiveIterator.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/ArchiveIterator.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/ArchiveIterator.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -331,7 +331,7 @@ sub _run {
       &{$self->{result_sub}}($class, $result, $date);
     }
   }
-  # Return success if atleast some files were processed through
+  # Return success if at least some files were processed through
   return $messages_run > 0;
 }
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/Redis.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/Redis.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/BayesStore/Redis.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -608,7 +608,7 @@ sub spamd_child_init {
   # Just in case the parent master process did not call prefork_init() above,
   # we try to silently renounce the use of existing cloned connection here.
   # As the prefork_init plugin callback has only been introduced in
-  # SpamAssassin 3.4.0, this situation can arrise in case of some third party
+  # SpamAssassin 3.4.0, this situation can arise in case of some third party
   # software (or a pre-3.4.0 version of spamd) is somehow using this plugin.
   # Better safe than sorry...
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -1905,7 +1905,7 @@ appear in configuration files multiple t
 Option I<v4> declares resolver capable of returning IPv4 (A) records. 
 Option I<v6> declares resolver capable of returning IPv6 (AAAA) records. 
 One would set I<nov6> if the resolver is filtering AAAA responses.  NOTE:
-these options only refer to I<resolving capabilies>, there is no other
+these options only refer to I<resolving capabilities>, there is no other
 meaning like whether the IP address of resolver itself is IPv4 or IPv6.
 
 Option I<edns> (or I<edns0>) may take a value which specifies a requestor's
@@ -3615,7 +3615,7 @@ it is documented there.
 
 =item nolog
 
-This flag will hide (sensitive) rule informations from reports
+This flag will hide (sensitive) rule information from reports
 
 =back
 
@@ -3884,7 +3884,7 @@ for SpamAssassin to do - long evaluation
 additional time.
 
 If a parameter 'zone' is specified (it must end with a letter, which
-distinguishes it from other numeric parametrs), then the setting only
+distinguishes it from other numeric parameters), then the setting only
 applies to DNS queries against the specified DNS domain (host, domain or
 RBL (sub)zone).  Matching is case-insensitive, the actual domain may be a
 subdomain of the specified zone.

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -1107,7 +1107,7 @@ sub _decode_header {
     # Bug 7307: to deal with the above, base64/QP decoding must be decoupled
     # from decoding a specified multi-byte character set into UTF-8.
     # A previous simpler code could not handle base64 fill bits correctly
-    # (merging of adjecent encoded sections before base64/QP decoding them).
+    # (merging of adjacent encoded sections before base64/QP decoding them).
 
     my @sections;  # array of pairs: [string, encoding]
     my $last_encoding = '';

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -2579,7 +2579,7 @@ sub _tbirdurire {
   my $tbirdenddelim = '><"`}\]{[|\s' . "\x1b\xa0";  # The \x1b as per bug 4522 # \xa0 (nbsp) added 7/2019
   my $nonASCII    = '\x80-\xff';
 
-  # schemeless uri start delimiter, combo of most punctuations and delims above
+  # schemeless uri start delimiter, combo of most punctuation and delims above
   my $scstartdelim = qr/[\!\"\#\$\&\'\(\)\*\+\,\/\:\;\<\=\>\?\@\[\\\]\^\`\{\|\}\~\s\x1b\xa0]/;
 
   # bug 7100: we allow a comma to delimit the end of an email address because it will never appear in a domain name, and
@@ -2746,7 +2746,7 @@ sub _process_text_uri_list {
       my $schost = $4;
       my $rawtype = defined $1 ? 'scheme' : defined $2 ? 'mail' : 'schemeless';
       $rawuri =~ s/(^[^(]*)\).*$/$1/;  # as per ThunderBird, ) is an end delimiter if there is no ( preceding it
-      $rawuri =~ s/[-~!@#^&*()_+=:;\'?,.]*$//; # remove trailing string of punctuations that TBird ignores
+      $rawuri =~ s/[-~!@#^&*()_+=:;\'?,.]*$//; # remove trailing string of punctuation that TBird ignores
 
       next if exists $seen{$rawuri};
       $seen{$rawuri} = 1;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Bayes.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -274,7 +274,7 @@ sub new {
   $self->{conf} = $main->{conf};
   $self->{use_ignores} = 1;
 
-  # Old default stopword list, need to have hardcoded one incase sa-update is not available
+  # Old default stopword list, need to have hardcoded one in case sa-update is not available
   $self->{bayes_stopword}{en} = qr/(?:a(?:ble|l(?:ready|l)|n[dy]|re)|b(?:ecause|oth)|c(?:an|ome)|e(?:ach|mail|ven)|f(?:ew|irst|or|rom)|give|h(?:a(?:ve|s)|ttp)|i(?:n(?:formation|to)|t\'s)|just|know|l(?:ike|o(?:ng|ok))|m(?:a(?:de|il(?:(?:ing|to))?|ke|ny)|o(?:re|st)|uch)|n(?:eed|o[tw]|umber)|o(?:ff|n(?:ly|e)|ut|wn)|p(?:eople|lace)|right|s(?:ame|ee|uch)|t(?:h(?:at|is|rough|e)|ime)|using|w(?:eb|h(?:ere|y)|ith(?:out)?|or(?:ld|k))|y(?:ears?|ou(?:(?:\'re|r))?))/;
 
   $self->set_config($self->{conf});

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyEval.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyEval.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyEval.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -360,7 +360,7 @@ sub _plaintext_body_sig_ratio {
   # Decode if necessary, do not render or alter whitespace.
   my $text = $part->decode();
 
-  # Find the last occurence of a signature delimiter and get the body and
+  # Find the last occurrence of a signature delimiter and get the body and
   # signature lengths.
 
   my $len_b = length($text);

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -1131,7 +1131,7 @@ sub _check_dkim_adsp {
         $practices_as_string = 'valid a. d. signature';
 
       } elsif ($pms->{dkim_author_sig_tempfailed}->{$author_domain}) {
-        dbg("dkim: adsp ignored, tempfail varifying author domain signature");
+        dbg("dkim: adsp ignored, tempfail verifying author domain signature");
         $practices_as_string = 'pub key tempfailed, ignored';
 
       } elsif ($pms->{dkim_has_any_author_sig}->{$author_domain} &&

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DNSEval.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -207,7 +207,7 @@ sub parsed_metadata {
   return 1 if $self->{main}->{conf}->{skip_rbl_checks};
   return 1 if !$pms->is_dns_available();
 
-  # Process relaylists only once, not everytime in check_rbl_backend
+  # Process relaylists only once, not every time in check_rbl_backend
   #
   # ok, make a list of all the IPs in the untrusted set
   my @fullips = map { $_->{ip} } @{$pms->{relays_untrusted}};
@@ -220,7 +220,7 @@ sub parsed_metadata {
       } @{$pms->{relays_trusted}};
   push @fullexternal, @fullips; # add untrusted set too
   # Make sure a header significantly improves results before adding here
-  # X-Sender-Ip: could be worth using (very low occurence for me)
+  # X-Sender-Ip: could be worth using (very low occurrence for me)
   # X-Sender: has a very low bang-for-buck for me
   my @originating;
   foreach my $header (@{$pms->{conf}->{originating_ip_headers}}) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DecodeShortURLs.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DecodeShortURLs.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DecodeShortURLs.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -465,7 +465,7 @@ Maximum depth of chained redirections th
 =item url_shortener_user_agent       (default: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36)
 
 Set default User-Agent header for HTTP requests.  Some services require it to look
-like a common browser. User-Agent can be overriden on a per url_shortener basis using
+like a common browser. User-Agent can be overridden on a per url_shortener basis using
 the C<url_shortener_ua> setting.
 
 =back

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ExtractText.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ExtractText.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/ExtractText.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -90,7 +90,7 @@ will be analyzed
 
 Configure the timeout in seconds of external tool checks, per attachment.
 
-Second argument speficies maximum total time for all checks.
+Second argument specifies maximum total time for all checks.
 
 =back
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -86,7 +86,7 @@ header FREEMAIL_FROM eval:check_freemail
    to see if user ends in digit: check_freemail_from('\d@')
 
    If you use multiple check_freemail_from rules with regexes, remember
-   that they might hit different emails from different heades. To match
+   that they might hit different emails from different headers. To match
    a certain header only, use check_freemail_header.
 
 header FREEMAIL_HDRX eval:check_freemail_header('header' [, 'regex'])

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HashBL.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -173,7 +173,7 @@ Additional supported OPTS:
 
   replace  if a regexp contains replace tags, replace the match of the regexp with the first option
            of the regexp, ex. +1 8O8.l23.4567 will be changed to +1 808.123.4567
-           For the subsitution to work, replace tags must contain only single chars.
+           For the substitution to work, replace tags must contain only single chars.
 
 Optional subtest regexp to match DNS answer (default: '^127\.').
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -164,8 +164,8 @@ This plugin helps detected spam using at
   pdf_image_size_range()
 
      body RULENAME eval:pdf_image_size_range(<minh>,<minw>,[<maxh>],[<maxw>])
-        minh: image height is atleast minh
-        minw: image width is atleast minw
+        minh: image height is at least minh
+        minw: image width is at least minw
         maxh: (optional) image height is no more than maxh
         maxw: (optional) image width is no more than maxw
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -55,7 +55,7 @@ from "whitelist" to "reputation" to avoi
 be adjusted in both directions.
 
 The TxRep plugin keeps track of the average SpamAssassin score for senders.
-Senders are tracked using multiple identificators, or their combinations: the  From:
+Senders are tracked using multiple identifiers, or their combinations: the  From:
 email address, the originating IP and/or an originating block of IPs, sender's domain
 name, the DKIM signature, and the HELO name. TxRep then uses the average score to reduce
 the variability in scoring from message to message, and modifies the final score by
@@ -133,11 +133,11 @@ within the block defined by the mask set
 impossible to track. Another disadvantage is, for example, at a spammer persistently
 sending spam from the same IP address, just under different email addresses. AWL will not
 find his previous scores, unless he reuses the same email address again. TxRep uses several
-identificators, and creates separate database entries for each of them. It tracks not only
+identifiers, and creates separate database entries for each of them. It tracks not only
 the email/IP address combination like AWL, but also the standalone email address (regardless
 of the originating IP), the standalone IP (regardless of email address used), the domain
 name of the email address, the DKIM signature, and the HELO name of the connecting PC. The
-influence of each individual identificator may be tuned up with the help of weight factors
+influence of each individual identifier may be tuned up with the help of weight factors
 described in the section L</REPUTATION WEIGHTS>.
 
 8. B<Message Tracking> - TxRep (optionally) keeps track of already scanned and/or learned
@@ -473,7 +473,7 @@ Previously txrep_whitelist_out which wil
 When the value of this setting is greater than zero, recipients of messages sent from
 within the internal networks will be welcomelisted through improving their total reputation
 score with the number of points defined by this setting. Since the IP address and other
-sender identificators are not known when sending the email, only the reputation of the
+sender identifiers are not known when sending the email, only the reputation of the
 standalone email is being welcomelisted. The domain name is intentionally also left
 unaffected. The outbound welcomelisting can only work when SpamAssassin is set up to scan
 also outgoing email, when local users use the SMTP server for sending email, and when
@@ -961,14 +961,14 @@ some testing it could be likely at least
 Add TxRep details to the rule's description in the message report or summary,
 similar to how RBL rules commonly are showing listed domains.
 
-If enabled (value 1) the identificators (From address bound to originating IP
+If enabled (value 1) the identifiers (From address bound to originating IP
 address fraction, From address alone, domain name bound to originating IP
 address fraction, originating IP address and HELO if available) used in
 calculating the sender's overall reputation are listed, including the
 originating IP address fraction (according to the mask settings) where
 applicable.
 
-If this option is set to 2, the listed identificators' individual mean
+If this option is set to 2, the listed identifiers' individual mean
 reputation and count are reported in addition.
 
 Identificators and additional data will only be added to the description on a
@@ -1178,7 +1178,7 @@ The table name where reputation is to be
 
  (default: undef)
 
-Minimum TxRep score, used to limit TxRep score adjustements.
+Minimum TxRep score, used to limit TxRep score adjustments.
 
 =cut
 
@@ -1193,7 +1193,7 @@ Minimum TxRep score, used to limit TxRep
 
  (default: undef)
 
-Maximum TxRep score, used to limit TxRep score adjustements.
+Maximum TxRep score, used to limit TxRep score adjustments.
 
 =back
 
@@ -1323,7 +1323,7 @@ sub remove_address    {my $self=shift; r
 
 =head1 REPUTATION LOGICS
 
-1. The most significant sender identificator is equally as at AWL, the
+1. The most significant sender identifier is equally as at AWL, the
    combination of the email address and the originating IP address, resp.
    its part defined by the IPv4 resp. IPv6 mask setting.
 
@@ -1406,7 +1406,7 @@ sub check_senders_reputation {
     my $trusteds = @{$pms->{relays_trusted}};
     foreach my $rly ( @{$pms->{relays_trusted}}, @{$pms->{relays_untrusted}} ) {
 	# Get the last found HELO, regardless of private/public or trusted/untrusted
-	# Avoiding a redundant duplicate entry if HELO is equal/similar to another identificator
+	# Avoiding a redundant duplicate entry if HELO is equal/similar to another identifier
 	if (defined $rly->{helo} &&
             $rly->{helo} !~ /^\[?\Q$rly->{ip}\E\]?$/ &&
             $rly->{helo} !~ /^\Q$domain\E$/i &&
@@ -2145,7 +2145,7 @@ halving so the disk space requirements,
 2. You can disable all but one of the L<REPUTATION WEIGHTS>. The EMAIL_IP is
 the most specific option, so it is the most likely choice in such case, but you
 could base the reputation system on any of the remaining scores. Each of the
-enabled reputations adds a new entry to the database for each new identificator.
+enabled reputations adds a new entry to the database for each new identifier.
 So while for example the number of recorded and scored domains may be big, the
 number of stored IP addresses will be probably higher, and would require more
 space in the storage.

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Pyzor/Client.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Pyzor/Client.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Pyzor/Client.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -132,7 +132,7 @@ is C<anonymous>)
 is empty)
 
 =item * C<timeout> - The maximum time, in seconds, to wait for a response
-from the pyzor server (defeault is 3.5)
+from the pyzor server (default is 3.5)
 
 =back
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Timeout.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Timeout.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Timeout.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -250,7 +250,7 @@ sub _run {      # private
 
   if (defined $eval_stat && $eval_stat =~ /__alarm__ignore__\Q($id)\E/) {
     $self->{timed_out} = 1;
-  # dbg("timed: %s cought: %s", $id, $eval_stat);
+  # dbg("timed: %s caught: %s", $id, $eval_stat);
   } elsif ($timedout) {
     # this happens occasionally; haven't figured out why. seems harmless
   # dbg("timed: %s timeout with empty eval status", $id);

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -2606,7 +2606,7 @@ sub _valid_parsed_address {
 
 #
 # v0.1, improved internal parser, no support for comments in strange
-# places or nested comments, but handled a large corpus atleast 99% the
+# places or nested comments, but handled a large corpus at least 99% the
 # same as Email::Address::XS and in some cases even better (retains some
 # more name/addr info, even when not fully valid).
 #
@@ -2617,7 +2617,7 @@ sub _parse_header_addresses {
   # Clear trailing whitespace
   s/\s+\z//s;
 
-  # Strip away all escaped blackslashes, simplifies processing a lot
+  # Strip away all escaped backslashes, simplifies processing a lot
   s/\\\\//g;
 
   # Reduce group address
@@ -2752,7 +2752,7 @@ sub _parse_header_addresses {
 sub _parse_header_addresses_xs {
   my ($str) = @_;
 
-  # Strip away all escaped blackslashes, simplifies processing a lot
+  # Strip away all escaped backslashes, simplifies processing a lot
   $str =~ s/\\\\//g;
 
   my @results;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util/DependencyInfo.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util/DependencyInfo.pm	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util/DependencyInfo.pm	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -120,7 +120,7 @@ our @OPTIONAL_MODULES = (
   version => 0,
   desc => "Newer version of the optional Net::LibIDN module.
   Provides mapping between Internationalized Domain Names (IDN) in
-  Unicode and ASCII-compatible encoding (ACE) for use in DNS and comparisions.
+  Unicode and ASCII-compatible encoding (ACE) for use in DNS and comparisons.
   The module is optional, but without it Unicode IDN names found in mail will
   not be suitable for DNS queries and welcome/blocklisting.",
 },
@@ -128,7 +128,7 @@ our @OPTIONAL_MODULES = (
   module => 'Net::LibIDN',
   version => 0,
   desc => "Provides mapping between Internationalized Domain Names (IDN) in
-  Unicode and ASCII-compatible encoding (ACE) for use in DNS and comparisions.
+  Unicode and ASCII-compatible encoding (ACE) for use in DNS and comparisons.
   The module is optional, but without it Unicode IDN names found in mail will
   not be suitable for DNS queries and welcome/blocklisting.",
 },
@@ -563,7 +563,7 @@ sub try_binary {
         $version_meets_recommended = test_version($binary_version, $recommended_version);
       }
     }
-    #print "DEBUG: $command completd and output parsed\n";
+    #print "DEBUG: $command completed and output parsed\n";
   }
 
   unless (defined $errtype) {

Modified: spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist
==============================================================================
--- spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/masses/contrib/automasscheck-minimal/automasscheck-minimal.cf.dist	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -46,7 +46,7 @@ WORKDIR=$HOME/masscheckwork
 JOBS=8
 
 # Leave blank if you do not want trusted_networks or internal_networks to be set
-# Normally both should atleast include IP of your MX server(s)
+# Normally both should at least include IP of your MX server(s)
 # https://wiki.apache.org/spamassassin/TrustPath
 TRUSTED_NETWORKS=""
 INTERNAL_NETWORKS=""

Modified: spamassassin/trunk/spamc/README.win
==============================================================================
--- spamassassin/trunk/spamc/README.win	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/spamc/README.win	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -101,7 +101,7 @@ server to be used for testing. In this c
 
  set SPAMD_HOST=localhost
 
-To use a port other than the deault testing port 48373, set the
+To use a port other than the default testing port 48373, set the
 environment variable SPAMD_PORT. To use SSL during the test,
 
  set SC_ARGS=-S

Modified: spamassassin/trunk/spamc/spamc.c
==============================================================================
--- spamassassin/trunk/spamc/spamc.c	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/spamc/spamc.c	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -149,7 +149,7 @@ print_usage(void)
     usg("  --ssl-cert cert     Authenticate using SSL client certificate.\n");
     usg("  --ssl-key key       Specify an SSL client key PEM file.\n");
     usg("  --ssl-ca-file file  Specify the location of the CA PEM file.\n");
-    usg("  --ssl-ca-path path  Specify a directory containin CA files.\n");
+    usg("  --ssl-ca-path path  Specify a directory containing CA files.\n");
     usg("  -D, --debug         Print debugging messages\n");
 #endif
 #ifndef _WIN32

Modified: spamassassin/trunk/t/spamd_sql_prefs.t
==============================================================================
--- spamassassin/trunk/t/spamd_sql_prefs.t	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/t/spamd_sql_prefs.t	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -7,8 +7,8 @@ use constant HAS_DBD_SQLITE => eval { re
 
 use Test::More;
 plan skip_all => "Spamd tests disabled" if $SKIP_SPAMD_TESTS;
-plan skip_all => "DBI is unavailble" unless HAS_DBI;
-plan skip_all => "SQLite is unavailble" unless HAS_DBD_SQLITE;
+plan skip_all => "DBI is unavailable" unless HAS_DBI;
+plan skip_all => "SQLite is unavailable" unless HAS_DBD_SQLITE;
 plan tests => 32;
 
 # ---------------------------------------------------------------------------

Modified: spamassassin/trunk/t/spamd_ssl.t
==============================================================================
--- spamassassin/trunk/t/spamd_ssl.t	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/t/spamd_ssl.t	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -5,7 +5,7 @@ use SATest; sa_t_init("spamd_ssl");
 
 use Test::More;
 plan skip_all => "Spamd tests disabled" if $SKIP_SPAMD_TESTS;
-plan skip_all => "SSL is unavailble" unless $SSL_AVAILABLE;
+plan skip_all => "SSL is unavailable" unless $SSL_AVAILABLE;
 plan tests => 9;
 
 # ---------------------------------------------------------------------------

Modified: spamassassin/trunk/t/spamd_ssl_accept_fail.t
==============================================================================
--- spamassassin/trunk/t/spamd_ssl_accept_fail.t	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/t/spamd_ssl_accept_fail.t	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -6,7 +6,7 @@ use SATest; sa_t_init("spamd_ssl_accept_
 
 use Test::More;
 plan skip_all => "Spamd tests disabled" if $SKIP_SPAMD_TESTS;
-plan skip_all => "SSL is unavailble" unless $SSL_AVAILABLE;
+plan skip_all => "SSL is unavailable" unless $SSL_AVAILABLE;
 plan tests => 12;
 
 # ---------------------------------------------------------------------------

Modified: spamassassin/trunk/t/spamd_ssl_z.t
==============================================================================
--- spamassassin/trunk/t/spamd_ssl_z.t	Tue Aug  4 08:30:29 2026	(r1936860)
+++ spamassassin/trunk/t/spamd_ssl_z.t	Tue Aug  4 09:43:19 2026	(r1936861)
@@ -7,7 +7,7 @@ use constant HAVE_ZLIB => eval { require
 
 use Test::More;
 plan skip_all => "Spamd tests disabled" if $SKIP_SPAMD_TESTS;
-plan skip_all => "SSL is unavailble" unless $SSL_AVAILABLE;
+plan skip_all => "SSL is unavailable" unless $SSL_AVAILABLE;
 plan skip_all => "ZLIB REQUIRED" unless HAVE_ZLIB;
 
 untaint_system("$spamc -z < /dev/null");