parent
7310e6a441
commit
da120070bf
@ -0,0 +1 @@
|
|||||||
|
/ctrlc-3.0.3.crate
|
@ -0,0 +1,64 @@
|
|||||||
|
From 6f9feb2f34ce539cd67850d708768352485946c6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||||
|
Date: Thu, 4 Jan 2018 23:52:45 +0100
|
||||||
|
Subject: [PATCH] deps: update nix to 0.9
|
||||||
|
|
||||||
|
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
|
||||||
|
---
|
||||||
|
src/lib.rs | 16 ++++++++++++----
|
||||||
|
1 file changed, 12 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/lib.rs b/src/lib.rs
|
||||||
|
index db6b72e..91e8afb 100644
|
||||||
|
--- a/src/lib.rs
|
||||||
|
+++ b/src/lib.rs
|
||||||
|
@@ -95,13 +95,21 @@ mod platform {
|
||||||
|
|
||||||
|
static mut PIPE: (RawFd, RawFd) = (-1, -1);
|
||||||
|
|
||||||
|
- extern fn os_handler(_: nix::c_int) {
|
||||||
|
+ extern fn os_handler(_: nix::libc::c_int) {
|
||||||
|
// Assuming this always succeeds. Can't really handle errors in any meaningful way.
|
||||||
|
unsafe {
|
||||||
|
unistd::write(PIPE.1, &[0u8]).is_ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ fn nix_err_to_io_err(err: nix::Error) -> io::Error {
|
||||||
|
+ if let nix::Error::Sys(err_no) = err {
|
||||||
|
+ io::Error::from(err_no)
|
||||||
|
+ } else {
|
||||||
|
+ panic!("unexpected nix error type: {:?}", err)
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/// Register os signal handler.
|
||||||
|
///
|
||||||
|
/// Must be called before calling [`block_ctrl_c()`](fn.block_ctrl_c.html)
|
||||||
|
@@ -115,12 +123,12 @@ mod platform {
|
||||||
|
use self::nix::fcntl;
|
||||||
|
use self::nix::sys::signal;
|
||||||
|
|
||||||
|
- PIPE = unistd::pipe2(fcntl::O_CLOEXEC).map_err(|e| Error::System(e.into()))?;
|
||||||
|
+ PIPE = unistd::pipe2(fcntl::O_CLOEXEC).map_err(|e| Error::System(nix_err_to_io_err(e)))?;
|
||||||
|
|
||||||
|
let close_pipe = |e: nix::Error| -> Error {
|
||||||
|
unistd::close(PIPE.1).is_ok();
|
||||||
|
unistd::close(PIPE.0).is_ok();
|
||||||
|
- Error::System(e.into())
|
||||||
|
+ Error::System(nix_err_to_io_err(e))
|
||||||
|
};
|
||||||
|
|
||||||
|
// Make sure we never block on write in the os handler.
|
||||||
|
@@ -172,7 +180,7 @@ mod platform {
|
||||||
|
Ok(1) => break,
|
||||||
|
Ok(_) => return Err(Error::System(io::ErrorKind::UnexpectedEof.into()).into()),
|
||||||
|
Err(nix::Error::Sys(nix::Errno::EINTR)) => {},
|
||||||
|
- Err(e) => return Err(Error::System(e.into())),
|
||||||
|
+ Err(e) => return Err(Error::System(nix_err_to_io_err(e))),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.15.1
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
--- ctrlc-3.0.3/Cargo.toml 1970-01-01T01:00:00+01:00
|
||||||
|
+++ ctrlc-3.0.3/Cargo.toml 2018-01-04T23:55:57.200531+01:00
|
||||||
|
@@ -26,13 +26,7 @@
|
||||||
|
path = "src/tests.rs"
|
||||||
|
harness = false
|
||||||
|
[dependencies.nix]
|
||||||
|
-version = "0.8"
|
||||||
|
-
|
||||||
|
-[dependencies.winapi]
|
||||||
|
-version = "0.2"
|
||||||
|
-
|
||||||
|
-[dependencies.kernel32-sys]
|
||||||
|
-version = "0.2"
|
||||||
|
+version = "0.9"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
termination = []
|
@ -0,0 +1,65 @@
|
|||||||
|
# Generated by rust2rpm
|
||||||
|
%bcond_without check
|
||||||
|
%global debug_package %{nil}
|
||||||
|
|
||||||
|
%global crate ctrlc
|
||||||
|
|
||||||
|
Name: rust-%{crate}
|
||||||
|
Version: 3.0.3
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: Easy Ctrl-C handler for Rust projects
|
||||||
|
|
||||||
|
# License files are in upstream, but not yet in release
|
||||||
|
# https://github.com/Detegr/rust-ctrlc/commit/587c77eb89b6e0a312ef066445ad8253ca08c785
|
||||||
|
License: MIT or ASL 2.0
|
||||||
|
URL: https://crates.io/crates/ctrlc
|
||||||
|
Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{version}.crate
|
||||||
|
# Initial patched metadata
|
||||||
|
# * No windows
|
||||||
|
# * Bump nix to 0.9, https://github.com/Detegr/rust-ctrlc/pull/35
|
||||||
|
Patch0: ctrlc-3.0.3-fix-metadata.diff
|
||||||
|
# Make it work with nix v0.9
|
||||||
|
Patch1: 0001-deps-update-nix-to-0.9.patch
|
||||||
|
|
||||||
|
ExclusiveArch: %{rust_arches}
|
||||||
|
|
||||||
|
BuildRequires: rust-packaging
|
||||||
|
# [dependencies]
|
||||||
|
BuildRequires: (crate(nix) >= 0.9.0 with crate(nix) < 0.10.0)
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{summary}.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: %{summary}
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Easy Ctrl-C handler for Rust projects.
|
||||||
|
|
||||||
|
This package contains library source intended for building other packages
|
||||||
|
which use %{crate} from crates.io.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{crate}-%{version} -p1
|
||||||
|
%cargo_prep
|
||||||
|
|
||||||
|
%build
|
||||||
|
%cargo_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%cargo_install
|
||||||
|
|
||||||
|
%if %{with check}
|
||||||
|
%check
|
||||||
|
%cargo_test
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%doc README.md
|
||||||
|
%{cargo_registry}/%{crate}-%{version}/
|
||||||
|
%exclude %{cargo_registry}/%{crate}-%{version}/appveyor.yml
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Jan 04 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.0.3-1
|
||||||
|
- Initial package
|
Loading…
Reference in new issue