File: nix-0.28.patch

package info (click to toggle)
rust-serialport 4.8.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 844 kB
  • sloc: makefile: 2
file content (106 lines) | stat: -rw-r--r-- 3,646 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
This patch is based on the commit below, taken from
https://github.com/serialport/serialport-rs/pull/263
adapted for use in the Debian package by Peter Michael Green.

commit ab77b612a583f13a171c4c0a6ef61e7f4c7e7669
Author: Paolo Barbolini <paolo.barbolini@m4ss.net>
Date:   Wed Apr 30 09:21:19 2025 +0200

    Upgrade `nix` to v0.28

Index: serialport/src/posix/poll.rs
===================================================================
--- serialport.orig/src/posix/poll.rs
+++ serialport/src/posix/poll.rs
@@ -23,8 +23,7 @@ pub fn wait_write_fd<Fd: AsFd>(fd: Fd, t
 fn wait_fd<Fd: AsFd>(fd: Fd, events: PollFlags, timeout: Duration) -> io::Result<()> {
     use nix::errno::Errno::{EIO, EPIPE};
 
-    let fd = fd.as_fd();
-    let mut fd = PollFd::new(&fd, events);
+    let mut fd = PollFd::new(fd.as_fd(), events);
 
     let wait = match poll_clamped(&mut fd, timeout) {
         Ok(r) => r,
@@ -87,44 +86,39 @@ fn clamped_time_spec(duration: Duration)
 // by `poll`.
 #[cfg(not(target_os = "linux"))]
 fn poll_clamped(fd: &mut PollFd, timeout: Duration) -> nix::Result<c_int> {
-    let millis = clamped_millis_c_int(timeout);
+    let millis = clamped_duration_nix(timeout);
     nix::poll::poll(slice::from_mut(fd), millis)
 }
 
 #[cfg(any(not(target_os = "linux"), test))]
-fn clamped_millis_c_int(duration: Duration) -> c_int {
-    let secs_limit = (c_int::MAX as u64) / 1000;
-    let secs = duration.as_secs();
-
-    if secs <= secs_limit {
-        secs as c_int * 1000 + duration.subsec_millis() as c_int
-    } else {
-        c_int::MAX
-    }
+fn clamped_duration_nix(duration: Duration) -> nix::poll::PollTimeout {
+    nix::poll::PollTimeout::try_from(duration).unwrap_or(nix::poll::PollTimeout::MAX)
 }
 
 #[cfg(test)]
 mod tests {
+    use nix::poll::PollTimeout;
+
     use super::*;
     use crate::tests::timeout::MONOTONIC_DURATIONS;
 
     #[test]
-    fn clamped_millis_c_int_is_monotonic() {
-        let mut last = clamped_millis_c_int(Duration::ZERO);
+    fn clamped_duration_nix_is_monotonic() {
+        let mut last = clamped_duration_nix(Duration::ZERO);
 
         for (i, d) in MONOTONIC_DURATIONS.iter().enumerate() {
-            let next = clamped_millis_c_int(*d);
+            let next = clamped_duration_nix(*d);
             assert!(
                 next >= last,
-                "{next} >= {last} failed for {d:?} at index {i}"
+                "{next:?} >= {last:?} failed for {d:?} at index {i}"
             );
             last = next;
         }
     }
 
     #[test]
-    fn clamped_millis_c_int_zero_is_zero() {
-        assert_eq!(0, clamped_millis_c_int(Duration::ZERO));
+    fn clamped_duration_nix_zero_is_zero() {
+        assert_eq!(PollTimeout::ZERO, clamped_duration_nix(Duration::ZERO));
     }
 
     #[test]
Index: serialport/src/posix/tty.rs
===================================================================
--- serialport.orig/src/posix/tty.rs
+++ serialport/src/posix/tty.rs
@@ -456,7 +456,7 @@ impl io::Write for TTYPort {
             return Err(io::Error::from(Error::from(e)));
         }
 
-        nix::unistd::write(self.fd.as_raw_fd(), buf).map_err(|e| io::Error::from(Error::from(e)))
+        nix::unistd::write(self.fd.as_fd(), buf).map_err(|e| io::Error::from(Error::from(e)))
     }
 
     fn flush(&mut self) -> io::Result<()> {
Index: serialport/Cargo.toml
===================================================================
--- serialport.orig/Cargo.toml
+++ serialport/Cargo.toml
@@ -166,7 +166,7 @@ version = "0.1.3"
 version = "2.4.0"
 
 [target."cfg(unix)".dependencies.nix]
-version = "0.27"
+version = "0.28"
 features = [
     "fs",
     "ioctl",