From: Lukas Wagner <l.wagner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH debcargo-config proxmox/trixie 3/4] import lettre from bookworm
Date: Fri, 23 May 2025 10:30:19 +0200 [thread overview]
Message-ID: <20250523083020.63853-4-l.wagner@proxmox.com> (raw)
In-Reply-To: <20250523083020.63853-1-l.wagner@proxmox.com>
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
src/lettre/debian/changelog | 39 +++
src/lettre/debian/copyright | 38 +++
src/lettre/debian/copyright.debcargo.hint | 52 ++++
src/lettre/debian/debcargo.toml | 2 +
src/lettre/debian/patches/relax-deps.patch | 13 +
.../patches/remove_unused_features.patch | 267 ++++++++++++++++++
src/lettre/debian/patches/series | 2 +
7 files changed, 413 insertions(+)
create mode 100644 src/lettre/debian/changelog
create mode 100644 src/lettre/debian/copyright
create mode 100644 src/lettre/debian/copyright.debcargo.hint
create mode 100644 src/lettre/debian/debcargo.toml
create mode 100644 src/lettre/debian/patches/relax-deps.patch
create mode 100644 src/lettre/debian/patches/remove_unused_features.patch
create mode 100644 src/lettre/debian/patches/series
diff --git a/src/lettre/debian/changelog b/src/lettre/debian/changelog
new file mode 100644
index 0000000000..ce312dba28
--- /dev/null
+++ b/src/lettre/debian/changelog
@@ -0,0 +1,39 @@
+rust-lettre (0.11.1-2~bpo21+pve2) proxmox-rust; urgency=medium
+
+ * Rebuild for Debian Bookworm / Proxmox with debcargo 2.7.8 and base64
+ relaxed
+ * drop dkim feature, various crypto dependencies and webpki-roots
+
+ -- Proxmox Support Team <support@proxmox.com> Thu, 13 Mar 2025 08:42:59 +0100
+
+rust-lettre (0.11.1-2~bpo21+pve1) proxmox-rust; urgency=medium
+
+ * Remove dependency downgrades
+
+ -- Proxmox Support Team <support@proxmox.com> Wed, 24 Jul 2024 15:15:04 +0200
+
+rust-lettre (0.11.1-1) UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO; urgency=medium
+
+ * Package lettre 0.11.1 from crates.io using debcargo 2.6.0
+ * Downgrade fastrand from 2.0 to 1.8
+ * Downgrade idna from 0.4 to 0.3
+ * Downgrade url from 2.4 to 2.3
+ * Drop patch that upgrades quoted_printable
+
+ -- Lukas Wagner <l.wagner@proxmox.com> Wed, 08 Nov 2023 13:32:49 +0100
+
+rust-lettre (0.10.4-1~bpo12+pve1) proxmox-rust; urgency=medium
+
+ * Rebuild for Debian Bookworm / Proxmox
+
+ -- Proxmox Support Team <support@proxmox.com> Fri, 04 Aug 2023 14:24:15 +0200
+
+rust-lettre (0.10.4-1) UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO; urgency=medium
+
+ * Team upload.
+ * Package lettre 0.10.4 from crates.io using debcargo 2.6.0
+ * Downgrade base64 dependency from 0.21 to 0.13
+ * Upgrade quotable_printable from 0.4 to 0.5
+ * Disable unneded features in Cargo.toml (boringssl, rustls, async-std)
+
+ -- Lukas Wagner <l.wagner@proxmox.com> Tue, 01 Aug 2023 10:48:41 +0200
diff --git a/src/lettre/debian/copyright b/src/lettre/debian/copyright
new file mode 100644
index 0000000000..13561096c4
--- /dev/null
+++ b/src/lettre/debian/copyright
@@ -0,0 +1,38 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: lettre
+Upstream-Contact:
+ Alexis Mousset <contact@amousset.me>
+ Paolo Barbolini <paolo@paolo565.org>
+Source: https://github.com/lettre/lettre
+
+Files: *
+Copyright:
+ 2014-2022 Alexis Mousset <contact@amousset.me>
+ 2019-2022 Paolo Barbolini <paolo@paolo565.org>
+ 2018 K. <kayo@illumium.org>
+License: MIT
+
+Files: debian/*
+Copyright:
+ 2023 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
+ 2023 Lukas Wagner <l.wagner@proxmox.com>
+License: MIT
+
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
diff --git a/src/lettre/debian/copyright.debcargo.hint b/src/lettre/debian/copyright.debcargo.hint
new file mode 100644
index 0000000000..714caf351a
--- /dev/null
+++ b/src/lettre/debian/copyright.debcargo.hint
@@ -0,0 +1,52 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: lettre
+Upstream-Contact:
+ Alexis Mousset <contact@amousset.me>
+ Paolo Barbolini <paolo@paolo565.org>
+Source: https://github.com/lettre/lettre
+
+Files: *
+Copyright:
+ FIXME (overlay) UNKNOWN-YEARS Alexis Mousset <contact@amousset.me>
+ FIXME (overlay) UNKNOWN-YEARS Paolo Barbolini <paolo@paolo565.org>
+License: MIT
+Comment:
+ FIXME (overlay): Since upstream copyright years are not available in
+ Cargo.toml, they were extracted from the upstream Git repository. This may not
+ be correct information so you should review and fix this before uploading to
+ the archive.
+
+Files: LICENSE
+Copyright:
+ 2014-2022 Alexis Mousset <contact@amousset.me>
+ 2019-2022 Paolo Barbolini <paolo@paolo565.org>
+ 2018 K. <kayo@illumium.org>
+License: UNKNOWN-LICENSE; FIXME (overlay)
+Comment:
+ FIXME (overlay): These notices are extracted from files. Please review them
+ before uploading to the archive.
+
+Files: debian/*
+Copyright:
+ 2023-2025 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
+ 2023-2025 Lukas Wagner <l.wagner@proxmox.com>
+License: MIT
+
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
diff --git a/src/lettre/debian/debcargo.toml b/src/lettre/debian/debcargo.toml
new file mode 100644
index 0000000000..d69a1a27b7
--- /dev/null
+++ b/src/lettre/debian/debcargo.toml
@@ -0,0 +1,2 @@
+overlay = "."
+uploaders = ["Lukas Wagner <l.wagner@proxmox.com>"]
diff --git a/src/lettre/debian/patches/relax-deps.patch b/src/lettre/debian/patches/relax-deps.patch
new file mode 100644
index 0000000000..ee7a6e97b1
--- /dev/null
+++ b/src/lettre/debian/patches/relax-deps.patch
@@ -0,0 +1,13 @@
+Index: lettre/Cargo.toml
+===================================================================
+--- lettre.orig/Cargo.toml
++++ lettre/Cargo.toml
+@@ -127,7 +127,7 @@ version = "0.1"
+ optional = true
+
+ [dependencies.base64]
+-version = "0.21"
++version = ">= 0.21, <0.23"
+ optional = true
+
+ [dependencies.chumsky]
diff --git a/src/lettre/debian/patches/remove_unused_features.patch b/src/lettre/debian/patches/remove_unused_features.patch
new file mode 100644
index 0000000000..69fd8d377d
--- /dev/null
+++ b/src/lettre/debian/patches/remove_unused_features.patch
@@ -0,0 +1,267 @@
+Index: lettre/Cargo.toml
+===================================================================
+--- lettre.orig/Cargo.toml
++++ lettre/Cargo.toml
+@@ -114,24 +114,6 @@ required-features = [
+ "builder",
+ ]
+
+-[[example]]
+-name = "asyncstd1_smtp_tls"
+-required-features = [
+- "smtp-transport",
+- "async-std1",
+- "async-std1-rustls-tls",
+- "builder",
+-]
+-
+-[[example]]
+-name = "asyncstd1_smtp_starttls"
+-required-features = [
+- "smtp-transport",
+- "async-std1",
+- "async-std1-rustls-tls",
+- "builder",
+-]
+-
+ [[bench]]
+ name = "transport_smtp"
+ harness = false
+@@ -140,10 +122,6 @@ harness = false
+ name = "mailbox_parsing"
+ harness = false
+
+-[dependencies.async-std]
+-version = "1.8"
+-optional = true
+-
+ [dependencies.async-trait]
+ version = "0.1"
+ optional = true
+@@ -152,17 +130,9 @@ optional = true
+ version = "0.21"
+ optional = true
+
+-[dependencies.boring]
+-version = "3"
+-optional = true
+-
+ [dependencies.chumsky]
+ version = "0.9"
+
+-[dependencies.ed25519-dalek]
+-version = "2"
+-optional = true
+-
+ [dependencies.email-encoding]
+ version = "0.2"
+ optional = true
+@@ -220,23 +190,6 @@ optional = true
+ version = "0.5"
+ optional = true
+
+-[dependencies.rsa]
+-version = "0.9"
+-optional = true
+-
+-[dependencies.rustls]
+-version = "0.21"
+-features = ["dangerous_configuration"]
+-optional = true
+-
+-[dependencies.rustls-native-certs]
+-version = "0.6.2"
+-optional = true
+-
+-[dependencies.rustls-pemfile]
+-version = "1"
+-optional = true
+-
+ [dependencies.serde]
+ version = "1"
+ features = ["derive"]
+@@ -255,11 +208,6 @@ optional = true
+ version = "0.5.1"
+ optional = true
+
+-[dependencies.tokio1_boring]
+-version = "3"
+-optional = true
+-package = "tokio-boring"
+-
+ [dependencies.tokio1_crate]
+ version = "1"
+ optional = true
+@@ -270,11 +218,6 @@ version = "0.3"
+ optional = true
+ package = "tokio-native-tls"
+
+-[dependencies.tokio1_rustls]
+-version = "0.24"
+-optional = true
+-package = "tokio-rustls"
+-
+ [dependencies.tracing]
+ version = "0.1.16"
+ features = ["std"]
+@@ -290,14 +233,6 @@ version = "1"
+ features = ["v4"]
+ optional = true
+
+-[dependencies.webpki-roots]
+-version = "0.25"
+-optional = true
+-
+-[dev-dependencies.async-std]
+-version = "1.8"
+-features = ["attributes"]
+-
+ [dev-dependencies.criterion]
+ version = "0.5"
+
+@@ -333,18 +268,6 @@ version = "0.3"
+ version = "2"
+
+ [features]
+-async-std1 = [
+- "dep:async-std",
+- "dep:async-trait",
+- "dep:futures-io",
+- "dep:futures-util",
+-]
+-async-std1-rustls-tls = [
+- "async-std1",
+- "rustls-tls",
+- "dep:futures-rustls",
+-]
+-boring-tls = ["dep:boring"]
+ builder = [
+ "dep:httpdate",
+ "dep:mime",
+@@ -359,12 +282,6 @@ default = [
+ "hostname",
+ "builder",
+ ]
+-dkim = [
+- "dep:base64",
+- "dep:sha2",
+- "dep:rsa",
+- "dep:ed25519-dalek",
+-]
+ file-transport = [
+ "dep:uuid",
+ "tokio1_crate?/fs",
+@@ -377,15 +294,9 @@ file-transport-envelope = [
+ ]
+ mime03 = ["dep:mime"]
+ pool = ["dep:futures-util"]
+-rustls-tls = [
+- "dep:webpki-roots",
+- "dep:rustls",
+- "dep:rustls-pemfile",
+-]
+ sendmail-transport = [
+ "tokio1_crate?/process",
+ "tokio1_crate?/io-util",
+- "async-std?/unstable",
+ ]
+ smtp-transport = [
+ "dep:base64",
+@@ -403,21 +314,11 @@ tokio1 = [
+ "dep:futures-io",
+ "dep:futures-util",
+ ]
+-tokio1-boring-tls = [
+- "tokio1",
+- "boring-tls",
+- "dep:tokio1_boring",
+-]
+ tokio1-native-tls = [
+ "tokio1",
+ "native-tls",
+ "dep:tokio1_native_tls_crate",
+ ]
+-tokio1-rustls-tls = [
+- "tokio1",
+- "rustls-tls",
+- "dep:tokio1_rustls",
+-]
+
+ [badges.is-it-maintained-issue-resolution]
+ repository = "lettre/lettre"
+Index: lettre/examples/asyncstd1_smtp_starttls.rs
+===================================================================
+--- lettre.orig/examples/asyncstd1_smtp_starttls.rs
++++ /dev/null
+@@ -1,33 +0,0 @@
+-use lettre::{
+- message::header::ContentType, transport::smtp::authentication::Credentials, AsyncSmtpTransport,
+- AsyncStd1Executor, AsyncTransport, Message,
+-};
+-
+-#[async_std::main]
+-async fn main() {
+- tracing_subscriber::fmt::init();
+-
+- let email = Message::builder()
+- .from("NoBody <nobody@domain.tld>".parse().unwrap())
+- .reply_to("Yuin <yuin@domain.tld>".parse().unwrap())
+- .to("Hei <hei@domain.tld>".parse().unwrap())
+- .subject("Happy new async year")
+- .header(ContentType::TEXT_PLAIN)
+- .body(String::from("Be happy with async!"))
+- .unwrap();
+-
+- let creds = Credentials::new("smtp_username".to_owned(), "smtp_password".to_owned());
+-
+- // Open a remote connection to gmail using STARTTLS
+- let mailer: AsyncSmtpTransport<AsyncStd1Executor> =
+- AsyncSmtpTransport::<AsyncStd1Executor>::starttls_relay("smtp.gmail.com")
+- .unwrap()
+- .credentials(creds)
+- .build();
+-
+- // Send the email
+- match mailer.send(email).await {
+- Ok(_) => println!("Email sent successfully!"),
+- Err(e) => panic!("Could not send email: {e:?}"),
+- }
+-}
+Index: lettre/examples/asyncstd1_smtp_tls.rs
+===================================================================
+--- lettre.orig/examples/asyncstd1_smtp_tls.rs
++++ /dev/null
+@@ -1,33 +0,0 @@
+-use lettre::{
+- message::header::ContentType, transport::smtp::authentication::Credentials, AsyncSmtpTransport,
+- AsyncStd1Executor, AsyncTransport, Message,
+-};
+-
+-#[async_std::main]
+-async fn main() {
+- tracing_subscriber::fmt::init();
+-
+- let email = Message::builder()
+- .from("NoBody <nobody@domain.tld>".parse().unwrap())
+- .reply_to("Yuin <yuin@domain.tld>".parse().unwrap())
+- .to("Hei <hei@domain.tld>".parse().unwrap())
+- .subject("Happy new async year")
+- .header(ContentType::TEXT_PLAIN)
+- .body(String::from("Be happy with async!"))
+- .unwrap();
+-
+- let creds = Credentials::new("smtp_username".to_owned(), "smtp_password".to_owned());
+-
+- // Open a remote connection to gmail
+- let mailer: AsyncSmtpTransport<AsyncStd1Executor> =
+- AsyncSmtpTransport::<AsyncStd1Executor>::relay("smtp.gmail.com")
+- .unwrap()
+- .credentials(creds)
+- .build();
+-
+- // Send the email
+- match mailer.send(email).await {
+- Ok(_) => println!("Email sent successfully!"),
+- Err(e) => panic!("Could not send email: {e:?}"),
+- }
+-}
diff --git a/src/lettre/debian/patches/series b/src/lettre/debian/patches/series
new file mode 100644
index 0000000000..5a270d7772
--- /dev/null
+++ b/src/lettre/debian/patches/series
@@ -0,0 +1,2 @@
+remove_unused_features.patch
+relax-deps.patch
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2025-05-23 8:30 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-23 8:30 [pve-devel] [PATCH debcargo-config proxmox/trixie 0/4] package lettre and Lukas Wagner
2025-05-23 8:30 ` [pve-devel] [PATCH debcargo-config proxmox/trixie 1/4] import email-encoding from bookworm Lukas Wagner
2025-05-23 8:30 ` [pve-devel] [PATCH debcargo-config proxmox/trixie 2/4] update email-encoding to 0.3.1 Lukas Wagner
2025-05-23 8:30 ` Lukas Wagner [this message]
2025-05-23 8:30 ` [pve-devel] [PATCH debcargo-config proxmox/trixie 4/4] update lettre to 0.11.13 Lukas Wagner
2025-05-23 9:13 ` [pve-devel] applied-series: [PATCH debcargo-config proxmox/trixie 0/4] package lettre and Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250523083020.63853-4-l.wagner@proxmox.com \
--to=l.wagner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.