Skip to content

Commit

Permalink
merge upstream v69a
Browse files Browse the repository at this point in the history
  • Loading branch information
kiekerjan committed Jul 22, 2024
2 parents ac5a63d + 2ae8cd5 commit 2565a19
Show file tree
Hide file tree
Showing 24 changed files with 47 additions and 44 deletions.
24 changes: 13 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Other updates:
* Added an undocumented option to proxy websockets.
* Internal improvements to the code to make it more reliable and readable.

Version 69a released on July 21, 2024 corrects a setup failure.

Version 68 (April 1, 2024)
--------------------------

Expand Down Expand Up @@ -199,7 +201,7 @@ Other:

* Set systemd journald log retention to 10 days (from no limit) to reduce disk usage.
* Fixed log processing for submission lines that have a sasl_sender or other extra information.
* Fix DNS secondary nameserver refesh failure retry period.
* Fix DNS secondary nameserver refresh failure retry period.

Version 55 (October 18, 2021)
-----------------------------
Expand All @@ -224,7 +226,7 @@ Control panel:
Other:

* Fail2ban's IPv6 support is enabled.
* The mail log tool now doesn't crash if there are email addresess in log messages with invalid UTF-8 characters.
* The mail log tool now doesn't crash if there are email addresses in log messages with invalid UTF-8 characters.
* Additional nsd.conf files can be placed in /etc/nsd.conf.d.

v0.54 (June 20, 2021)
Expand Down Expand Up @@ -257,7 +259,7 @@ Setup:
v0.53a (May 8, 2021)
--------------------

The download URL for Z-Push has been revised becaue the old URL stopped working.
The download URL for Z-Push has been revised because the old URL stopped working.

v0.53 (April 12, 2021)
----------------------
Expand Down Expand Up @@ -476,7 +478,7 @@ Changes:
* Added support for S3-compatible backup services besides Amazon S3.
* Fixed the control panel login page to let LastPass save passwords.
* Fixed an error in the user privileges API.
* Silenced some spurrious messages.
* Silenced some spurious messages.

Software updates:

Expand Down Expand Up @@ -540,7 +542,7 @@ Setup:

Control Panel:

* The users page now documents that passwords should only have ASCII characters to prevent character encoding mismaches between clients and the server.
* The users page now documents that passwords should only have ASCII characters to prevent character encoding mismatches between clients and the server.
* The users page no longer shows user mailbox sizes because this was extremely slow for very large mailboxes.
* The Mail-in-a-Box version is now shown in the system status checks even when the new-version check is disabled.
* The alises page now warns that alises should not be used to forward mail off of the box. Mail filters within Roundcube are better for that.
Expand Down Expand Up @@ -868,7 +870,7 @@ v0.17c (April 1, 2016)

This update addresses some minor security concerns and some installation issues.

ownCoud:
ownCloud:

* Block web access to the configuration parameters (config.php). There is no immediate impact (see [#776](https://github.com/mail-in-a-box/mailinabox/pull/776)), although advanced users may want to take note.

Expand All @@ -884,7 +886,7 @@ Control panel:
Setup:

* Setup dialogs did not appear correctly when connecting to SSH using Putty on Windows.
* We now install Roundcube from our own mirror because Sourceforge's downloads experience frequent intermittant unavailability.
* We now install Roundcube from our own mirror because Sourceforge's downloads experience frequent intermittent unavailability.

v0.17b (March 1, 2016)
----------------------
Expand Down Expand Up @@ -927,7 +929,7 @@ This update primarily adds automatic SSL (now "TLS") certificate provisioning fr

Control Panel:

* The SSL certificates (now referred to as "TLS ccertificates") page now supports provisioning free certificates from Let's Encrypt.
* The SSL certificates (now referred to as "TLS certificates") page now supports provisioning free certificates from Let's Encrypt.
* Report free memory usage.
* Fix a crash when the git directory is not checked out to a tag.
* When IPv6 is enabled, check that all domains (besides the system hostname) resolve over IPv6.
Expand Down Expand Up @@ -1020,7 +1022,7 @@ Control panel:
System:

* Tweaks to fail2ban settings.
* Fixed a spurrious warning while installing munin.
* Fixed a spurious warning while installing munin.

v0.13b (August 30, 2015)
------------------------
Expand All @@ -1034,7 +1036,7 @@ Note: v0.13 (no 'a', August 19, 2015) was pulled immediately due to an ownCloud

Mail:

* Outbound mail headers (the Recieved: header) are tweaked to possibly improve deliverability.
* Outbound mail headers (the Received: header) are tweaked to possibly improve deliverability.
* Some MIME messages would hang Roundcube due to a missing package.
* The users permitted to send as an alias can now be different from where an alias forwards to.

Expand Down Expand Up @@ -1066,7 +1068,7 @@ v0.12c was posted to work around the current Sourceforge.net outage: pyzor's rem
v0.12b (July 4, 2015)
---------------------

This version corrects a minor regression in v0.12 related to creating aliases targetting multiple addresses.
This version corrects a minor regression in v0.12 related to creating aliases targeting multiple addresses.

v0.12 (July 3, 2015)
--------------------
Expand Down
4 changes: 2 additions & 2 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

Mail-in-a-Box is an open source community project about working, as a group, to empower ourselves and others to have control over our own digital communications. Just as we hope to increase technological diversity on the Internet through decentralization, we also believe that diverse viewpoints and voices among our community members foster innovation and creative solutions to the challenges we face.

We are committed to providing a safe, welcoming, and harrassment-free space for collaboration, for everyone, without regard to age, disability, economic situation, ethnicity, gender identity and expression, language fluency, level of knowledge or experience, nationality, personal appearance, race, religion, sexual identity and orientation, or any other attribute. Community comes first. This policy supersedes all other project goals.
We are committed to providing a safe, welcoming, and harassment-free space for collaboration, for everyone, without regard to age, disability, economic situation, ethnicity, gender identity and expression, language fluency, level of knowledge or experience, nationality, personal appearance, race, religion, sexual identity and orientation, or any other attribute. Community comes first. This policy supersedes all other project goals.

The maintainers of Mail-in-a-Box share the dual responsibility of leading by example and enforcing these policies as necessary to maintain an open and welcoming environment. All community members should be excellent to each other.

## Scope

This Code of Conduct applies to all places where Mail-in-a-Box community activity is ocurring, including on GitHub, in discussion forums, on Slack, on social media, and in real life. The Code of Conduct applies not only on websites/at events run by the Mail-in-a-Box community (e.g. our GitHub organization, our Slack team) but also at any other location where the Mail-in-a-Box community is present (e.g. in issues of other GitHub organizations where Mail-in-a-Box community members are discussing problems related to Mail-in-a-Box, or real-life professional conferences), or whenever a Mail-in-a-Box community member is representing Mail-in-a-Box to the public at large or acting on behalf of Mail-in-a-Box.
This Code of Conduct applies to all places where Mail-in-a-Box community activity is occurring, including on GitHub, in discussion forums, on Slack, on social media, and in real life. The Code of Conduct applies not only on websites/at events run by the Mail-in-a-Box community (e.g. our GitHub organization, our Slack team) but also at any other location where the Mail-in-a-Box community is present (e.g. in issues of other GitHub organizations where Mail-in-a-Box community members are discussing problems related to Mail-in-a-Box, or real-life professional conferences), or whenever a Mail-in-a-Box community member is representing Mail-in-a-Box to the public at large or acting on behalf of Mail-in-a-Box.

This code does not apply to activity on a server running Mail-in-a-Box software, unless your server is hosting a service for the Mail-in-a-Box community at large.

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,11 @@ See the [setup guide](https://mailinabox.email/guide.html) for detailed, user-fr

For experts, start with a completely fresh (really, I mean it) Ubuntu 22.04 LTS 64-bit machine. On the machine...

Clone this repository and checkout the tag corresponding to the most recent release:
Clone this repository and checkout the tag corresponding to the most recent release (which you can find in the tags or releases lists on GitHub):

$ git clone https://github.com/mail-in-a-box/mailinabox
$ cd mailinabox
$ git checkout v69
$ git checkout TAGNAME

Begin the installation.

Expand Down
2 changes: 1 addition & 1 deletion conf/dovecot-mailboxes.conf
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ namespace inbox {

# dovevot's standard mailboxes configuration file marks two sent folders
# with the \Sent attribute, just in case clients don't agree about which
# they're using. We'll keep that, plus add Junk as an alterative for Spam.
# they're using. We'll keep that, plus add Junk as an alternative for Spam.
# These are not auto-created.
mailbox "Sent Messages" {
special_use = \Sent
Expand Down
2 changes: 1 addition & 1 deletion conf/fail2ban/jails.conf
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ action = iptables-allports[name=recidive]
# The last line on the action will sent an email to the configured address. This mail will
# notify the administrator that someone has been repeatedly triggering one of the other jails.
# By default we don't configure this address and no action is required from the admin anyway.
# So the notification is ommited. This will prevent message appearing in the mail.log that mail
# So the notification is omitted. This will prevent message appearing in the mail.log that mail
# can't be delivered to fail2ban@$HOSTNAME.

[postfix-sasl]
Expand Down
2 changes: 1 addition & 1 deletion conf/nginx-alldomains.conf
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
return 403;
}
location ~ /mail/.*\.php {
# note: ~ has precendence over a regular location block
# note: ~ has precedence over a regular location block
include fastcgi_params;
fastcgi_split_path_info ^/mail(/.*)()$;
fastcgi_index index.php;
Expand Down
3 changes: 2 additions & 1 deletion conf/nginx-primaryonly.conf
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
# }

proxy_pass http://127.0.0.1:10222/;
proxy_read_timeout 600s;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_read_timeout 600s;
add_header X-Frame-Options "DENY";
Expand Down Expand Up @@ -69,7 +70,7 @@
}
}
location ~ ^(/cloud)((?:/ocs)?/[^/]+\.php)(/.*)?$ {
# note: ~ has precendence over a regular location block
# note: ~ has precedence over a regular location block
# Accept URLs like:
# /cloud/index.php/apps/files/
# /cloud/index.php/apps/files/ajax/scan.php (it's really index.php; see 6fdef379adfdeac86cc2220209bdf4eb9562268d)
Expand Down
2 changes: 1 addition & 1 deletion management/dns_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

# From https://stackoverflow.com/questions/3026957/how-to-validate-a-domain-name-using-regex-php/16491074#16491074
# This regular expression matches domain names according to RFCs, it also accepts fqdn with an leading dot,
# underscores, as well as asteriks which are allowed in domain names but not hostnames (i.e. allowed in
# underscores, as well as asterisks which are allowed in domain names but not hostnames (i.e. allowed in
# DNS but not in URLs), which are common in certain record types like for DKIM.
DOMAIN_RE = r"^(?!\-)(?:[*][.])?(?:[a-zA-Z\d\-_]{0,62}[a-zA-Z\d_]\.){1,126}(?!\d+)[a-zA-Z\d_]{1,63}(\.?)$"

Expand Down
2 changes: 1 addition & 1 deletion management/mail_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ def scan_mail_log(env):

if collector["other-services"] and False:
print_header("Other services")
print("The following unkown services were found in the log file.")
print("The following unknown services were found in the log file.")
print(" ", *sorted(collector["other-services"]), sep='\n│ ')


Expand Down
2 changes: 1 addition & 1 deletion management/ssl_certificates.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ def install_cert(domain, ssl_cert, ssl_chain, env, raw=False):
cert_status += " " + cert_status_details
return cert_status

# Copy certifiate into ssl directory.
# Copy certificate into ssl directory.
install_cert_copy_file(fn, env)

# Run post-install steps.
Expand Down
2 changes: 1 addition & 1 deletion management/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
filter: invert(100%) hue-rotate(180deg);
}

/* Override Boostrap theme here to give more contrast. The black turns to white by the filter. */
/* Override Bootstrap theme here to give more contrast. The black turns to white by the filter. */
.form-control {
color: black !important;
}
Expand Down
2 changes: 1 addition & 1 deletion management/templates/system-backup.html
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ <h3>Available backups</h3>
}

// Return a two-element array of the substring preceding and the substring following
// the first occurence of separator in string. Return [undefined, string] if the
// the first occurrence of separator in string. Return [undefined, string] if the
// separator does not appear in string.
const split1_rest = (string, separator) => {
const index = string.indexOf(separator);
Expand Down
2 changes: 1 addition & 1 deletion setup/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ if [ -z "$TAG" ]; then
if [ "$UBUNTU_VERSION" == "Ubuntu 22.04 LTS" ]; then
# This machine is running Ubuntu 22.04, which is supported by
# Mail-in-a-Box versions 60 and later.
TAG=v69
TAG=v69a
elif [ "$UBUNTU_VERSION" == "Ubuntu 18.04 LTS" ]; then
# This machine is running Ubuntu 18.04, which is supported by
# Mail-in-a-Box versions 0.40 through 5x.
Expand Down
2 changes: 1 addition & 1 deletion setup/dkim.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ management/editconf.py /etc/opendmarc.conf -s \
"FailureReports=false"

# SPFIgnoreResults causes the filter to ignore any SPF results in the header
# of the message. This is useful if you want the filter to perfrom SPF checks
# of the message. This is useful if you want the filter to perform SPF checks
# itself, or because you don't trust the arriving header. This added header is
# used by spamassassin to evaluate the mail for spamminess.

Expand Down
2 changes: 1 addition & 1 deletion setup/dns.sh
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ if [ ! -f "$STORAGE_ROOT/dns/dnssec/$algo.conf" ]; then
# we're capturing into the `KSK` variable.
#
# ldns-keygen uses /dev/random for generating random numbers by default.
# This is slow and unecessary if we ensure /dev/urandom is seeded properly,
# This is slow and unnecessary if we ensure /dev/urandom is seeded properly,
# so we use /dev/urandom. See system.sh for an explanation. See #596, #115.
# (This previously used -b 2048 but it's unclear if this setting makes sense
# for non-RSA keys, so it's removed. The RSA-based keys are not recommended
Expand Down
4 changes: 2 additions & 2 deletions setup/firstuser.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
# If there aren't any mail users yet, create one.
if [ -z "$(management/cli.py user)" ]; then
# The outut of "management/cli.py user" is a list of mail users. If there
# The output of "management/cli.py user" is a list of mail users. If there
# aren't any yet, it'll be empty.

# If we didn't ask for an email address at the start, do so now.
Expand Down Expand Up @@ -48,7 +48,7 @@ if [ -z "$(management/cli.py user)" ]; then
fi

# Create the user's mail account. This will ask for a password if none was given above.
management/cli.py user add "$EMAIL_ADDR" "${EMAIL_PW:-}"
management/cli.py user add "$EMAIL_ADDR" ${EMAIL_PW:+"$EMAIL_PW"}

# Make it an admin.
hide_output management/cli.py user make-admin "$EMAIL_ADDR"
Expand Down
12 changes: 6 additions & 6 deletions setup/mail-postfix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ source /etc/mailinabox.conf # load global vars
# * `postfix`: The SMTP server.
# * `postfix-pcre`: Enables header filtering.
# * `postgrey`: A mail policy service that soft-rejects mail the first time
# it is received. Spammers don't usually try agian. Legitimate mail
# it is received. Spammers don't usually try again. Legitimate mail
# always will.
# * `ca-certificates`: A trust store used to squelch postfix warnings about
# untrusted opportunistically-encrypted connections.
Expand Down Expand Up @@ -179,7 +179,7 @@ management/editconf.py /etc/postfix/main.cf \

# When connecting to remote SMTP servers, prefer TLS and use DANE if available.
#
# Prefering ("opportunistic") TLS means Postfix will use TLS if the remote end
# Preferring ("opportunistic") TLS means Postfix will use TLS if the remote end
# offers it, otherwise it will transmit the message in the clear. Postfix will
# accept whatever SSL certificate the remote end provides. Opportunistic TLS
# protects against passive easvesdropping (but not man-in-the-middle attacks).
Expand All @@ -195,7 +195,7 @@ management/editconf.py /etc/postfix/main.cf \
# itself but assumes the system's nameserver does and reports DNSSEC status. Thus this also
# relies on our local DNS server (see system.sh) and `smtp_dns_support_level=dnssec`.
#
# The `smtp_tls_CAfile` is superflous, but it eliminates warnings in the logs about untrusted certs,
# The `smtp_tls_CAfile` is superfluous, but it eliminates warnings in the logs about untrusted certs,
# which we don't care about seeing because Postfix is doing opportunistic TLS anyway. Better to encrypt,
# even if we don't know if it's to the right party, than to not encrypt at all. Instead we'll
# now see notices about trusted certs. The CA file is provided by the package `ca-certificates`.
Expand Down Expand Up @@ -241,7 +241,7 @@ management/editconf.py /etc/postfix/main.cf -e lmtp_destination_recipient_limit
# * `reject_unlisted_recipient`: Although Postfix will reject mail to unknown recipients, it's nicer to reject such mail ahead of greylisting rather than after.
# * `check_policy_service`: Apply greylisting using postgrey.
#
# Note the spamhaus rbl return codes are taken into account as adviced here: https://docs.spamhaus.com/datasets/docs/source/40-real-world-usage/PublicMirrors/MTAs/020-Postfix.html
# Note the spamhaus rbl return codes are taken into account as advised here: https://docs.spamhaus.com/datasets/docs/source/40-real-world-usage/PublicMirrors/MTAs/020-Postfix.html
# Notes: #NODOC
# permit_dnswl_client can pass through mail from whitelisted IP addresses, which would be good to put before greylisting #NODOC
# so these IPs get mail delivered quickly. But when an IP is not listed in the permit_dnswl_client list (i.e. it is not #NODOC
Expand All @@ -262,9 +262,9 @@ postmap /etc/postfix/recipient_access
# A lot of legit mail servers try to resend before 300 seconds.
# As a matter of fact RFC is not strict about retry timer so postfix and
# other MTA have their own intervals. To fix the problem of receiving
# e-mails really later, delay of greylisting has been set to
# e-mails really latter, delay of greylisting has been set to
# 150 seconds (default is 300 seconds). We will move the postgrey database
# under $STORAGE_ROOT. This prevents a "warming up" that would have occured
# under $STORAGE_ROOT. This prevents a "warming up" that would have occurred
# previously with a migrated or reinstalled OS. We will specify this new path
# with the --dbdir=... option. Arguments within POSTGREY_OPTS can not have spaces,
# including dbdir. This is due to the way the init script sources the
Expand Down
2 changes: 1 addition & 1 deletion setup/mail-users.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#
# This script configures user authentication for Dovecot
# and Postfix (which relies on Dovecot) and destination
# validation by quering an Sqlite3 database of mail users.
# validation by querying an Sqlite3 database of mail users.

source setup/functions.sh # load our functions
source /etc/mailinabox.conf # load global vars
Expand Down
2 changes: 1 addition & 1 deletion setup/migrate.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def migration_12(env):
conn.commit()
conn.close()

# Delete all sessions, requring users to login again to recreate carddav_*
# Delete all sessions, requiring users to login again to recreate carddav_*
# databases
conn = sqlite3.connect(os.path.join(env["STORAGE_ROOT"], "mail/roundcube/roundcube.sqlite"))
c = conn.cursor()
Expand Down
2 changes: 1 addition & 1 deletion setup/questions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ if [ -z "${PRIVATE_IPV6:-}" ]; then
fi
if [[ -z "$PRIVATE_IP" && -z "$PRIVATE_IPV6" ]]; then
echo
echo "I could not determine the IP or IPv6 address of the network inteface"
echo "I could not determine the IP or IPv6 address of the network interface"
echo "for connecting to the Internet. Setup must stop."
echo
hostname -I
Expand Down
2 changes: 1 addition & 1 deletion setup/spamassassin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ management/editconf.py /etc/default/spampd \

# Spamassassin normally wraps spam as an attachment inside a fresh
# email with a report about the message. This also protects the user
# from accidentally openening a message with embedded malware.
# from accidentally opening a message with embedded malware.
#
# It's nice to see what rules caused the message to be marked as spam,
# but it's also annoying to get to the original message when it is an
Expand Down
Loading

0 comments on commit 2565a19

Please sign in to comment.