]> git.proxmox.com Git - debcargo-conf.git/commitdiff
coreutils: revert the new dep to file_diff until it is accepted
authorSylvestre Ledru <sylvestre@debian.org>
Sat, 3 Apr 2021 10:42:28 +0000 (12:42 +0200)
committerSylvestre Ledru <sylvestre@debian.org>
Sat, 3 Apr 2021 10:55:08 +0000 (12:55 +0200)
src/coreutils/debian/patches/lower-nix-dep.diff
src/coreutils/debian/patches/revert-file-diff.diff [new file with mode: 0644]
src/coreutils/debian/patches/series

index 5c16cbcc1b9b2a7cc64f99bd90c285e00da92fcb..351e0046a8b8c6095c04e761c55fcfaf986b6d05 100644 (file)
@@ -37,3 +37,16 @@ Index: coreutils/src/uu/wc/Cargo.toml
  libc = "0.2"
  
  [[bin]]
+Index: coreutils/src/uu/nice/Cargo.toml
+===================================================================
+--- coreutils.orig/src/uu/nice/Cargo.toml
++++ coreutils/src/uu/nice/Cargo.toml
+@@ -17,7 +17,7 @@ path = "src/nice.rs"
+ [dependencies]
+ clap = "2.33"
+ libc = "0.2.42"
+-nix = { version="<=0.13" }
++nix = "0.19"
+ uucore = { version=">=0.0.8", package="uucore", path="../../uucore" }
+ uucore_procs = { version=">=0.0.5", package="uucore_procs", path="../../uucore_procs" }
diff --git a/src/coreutils/debian/patches/revert-file-diff.diff b/src/coreutils/debian/patches/revert-file-diff.diff
new file mode 100644 (file)
index 0000000..fe99a82
--- /dev/null
@@ -0,0 +1,190 @@
+Index: coreutils/src/uu/install/Cargo.toml
+===================================================================
+--- coreutils.orig/src/uu/install/Cargo.toml
++++ coreutils/src/uu/install/Cargo.toml
+@@ -20,7 +20,6 @@ path = "src/install.rs"
+ [dependencies]
+ clap = "2.33"
+ filetime = "0.2"
+-file_diff = "1.0.0"
+ libc = ">= 0.2"
+ uucore = { version=">=0.0.8", package="uucore", path="../../uucore", features=["mode", "perms", "entries"] }
+ uucore_procs = { version=">=0.0.5", package="uucore_procs", path="../../uucore_procs" }
+Index: coreutils/src/uu/install/src/install.rs
+===================================================================
+--- coreutils.orig/src/uu/install/src/install.rs
++++ coreutils/src/uu/install/src/install.rs
+@@ -13,12 +13,10 @@ mod mode;
+ extern crate uucore;
+ use clap::{App, Arg, ArgMatches};
+-use file_diff::diff;
+ use filetime::{set_file_times, FileTime};
+ use uucore::entries::{grp2gid, usr2uid};
+ use uucore::perms::{wrap_chgrp, wrap_chown, Verbosity};
+-use libc::{getegid, geteuid};
+ use std::fs;
+ use std::fs::File;
+ use std::os::unix::fs::MetadataExt;
+@@ -36,7 +34,6 @@ pub struct Behavior {
+     group: String,
+     verbose: bool,
+     preserve_timestamps: bool,
+-    compare: bool,
+ }
+ #[derive(Clone, Eq, PartialEq)]
+@@ -115,10 +112,11 @@ pub fn uumain(args: impl uucore::Args) -
+             .help("ignored")
+         )
+         .arg(
++            // TODO implement flag
+             Arg::with_name(OPT_COMPARE)
+             .short("C")
+             .long(OPT_COMPARE)
+-            .help("compare each pair of source and destination files, and in some cases, do not modify the destination at all")
++            .help("(unimplemented) compare each pair of source and destination files, and in some cases, do not modify the destination at all")
+         )
+         .arg(
+             Arg::with_name(OPT_DIRECTORY)
+@@ -264,6 +262,8 @@ fn check_unimplemented<'a>(matches: &Arg
+         Err("--backup")
+     } else if matches.is_present(OPT_BACKUP_2) {
+         Err("-b")
++    } else if matches.is_present(OPT_COMPARE) {
++        Err("--compare, -C")
+     } else if matches.is_present(OPT_CREATED) {
+         Err("-D")
+     } else if matches.is_present(OPT_STRIP) {
+@@ -338,7 +338,6 @@ fn behavior(matches: &ArgMatches) -> Res
+         group: matches.value_of(OPT_GROUP).unwrap_or("").to_string(),
+         verbose: matches.is_present(OPT_VERBOSE),
+         preserve_timestamps: matches.is_present(OPT_PRESERVE_TIMESTAMPS),
+-        compare: matches.is_present(OPT_COMPARE),
+     })
+ }
+@@ -507,13 +506,7 @@ fn copy(from: &PathBuf, to: &PathBuf, b:
+             );
+             return Err(());
+         }
+-    }
+-
+-    if b.compare && !need_copy(from, to, b) {
+-        return Ok(());
+-    }
+-
+-    if let Err(err) = fs::copy(from, to) {
++    } else if let Err(err) = fs::copy(from, to) {
+         show_error!(
+             "cannot install '{}' to '{}': {}",
+             from.display(),
+@@ -596,81 +589,3 @@ fn copy(from: &PathBuf, to: &PathBuf, b:
+     Ok(())
+ }
+-
+-/// Return true if a file is necessary to copy. This is the case when:
+-/// - _from_ or _to_ is nonexistent;
+-/// - either file has a sticky bit or set[ug]id bit, or the user specified one;
+-/// - either file isn't a regular file;
+-/// - the sizes of _from_ and _to_ differ;
+-/// - _to_'s owner differs from intended; or
+-/// - the contents of _from_ and _to_ differ.
+-///
+-/// # Parameters
+-///
+-/// _from_ and _to_, if existent, must be non-directories.
+-///
+-/// # Errors
+-///
+-/// Crashes the program if a nonexistent owner or group is specified in _b_.
+-///
+-fn need_copy(from: &PathBuf, to: &PathBuf, b: &Behavior) -> bool {
+-    let from_meta = match fs::metadata(from) {
+-        Ok(meta) => meta,
+-        Err(_) => return true,
+-    };
+-    let to_meta = match fs::metadata(to) {
+-        Ok(meta) => meta,
+-        Err(_) => return true,
+-    };
+-
+-    // setuid || setgid || sticky
+-    let extra_mode: u32 = 0o7000;
+-
+-    if b.specified_mode.unwrap_or(0) & extra_mode != 0
+-        || from_meta.mode() & extra_mode != 0
+-        || to_meta.mode() & extra_mode != 0
+-    {
+-        return true;
+-    }
+-
+-    if !from_meta.is_file() || !to_meta.is_file() {
+-        return true;
+-    }
+-
+-    if from_meta.len() != to_meta.len() {
+-        return true;
+-    }
+-
+-    // TODO: if -P (#1809) and from/to contexts mismatch, return true.
+-
+-    if !b.owner.is_empty() {
+-        let owner_id = match usr2uid(&b.owner) {
+-            Ok(id) => id,
+-            _ => crash!(1, "no such user: {}", b.owner),
+-        };
+-        if owner_id != to_meta.uid() {
+-            return true;
+-        }
+-    } else if !b.group.is_empty() {
+-        let group_id = match grp2gid(&b.group) {
+-            Ok(id) => id,
+-            _ => crash!(1, "no such group: {}", b.group),
+-        };
+-        if group_id != to_meta.gid() {
+-            return true;
+-        }
+-    } else {
+-        #[cfg(not(target_os = "windows"))]
+-        unsafe {
+-            if to_meta.uid() != geteuid() || to_meta.gid() != getegid() {
+-                return true;
+-            }
+-        }
+-    }
+-
+-    if !diff(from.to_str().unwrap(), to.to_str().unwrap()) {
+-        return true;
+-    }
+-
+-    false
+-}
+Index: coreutils/tests/by-util/test_install.rs
+===================================================================
+--- coreutils.orig/tests/by-util/test_install.rs
++++ coreutils/tests/by-util/test_install.rs
+@@ -1,5 +1,4 @@
+ use crate::common::util::*;
+-use filetime::FileTime;
+ use rust_users::*;
+ use std::os::unix::fs::PermissionsExt;
+ #[cfg(target_os = "linux")]
+@@ -481,6 +480,7 @@ fn test_install_failing_no_such_file() {
+ }
+ #[test]
++#[ignore]
+ fn test_install_copy_then_compare_file() {
+     let scene = TestScenario::new(util_name!());
+     let at = &scene.fixtures;
+@@ -515,6 +515,7 @@ fn test_install_copy_then_compare_file()
+ #[test]
+ #[cfg(target_os = "linux")]
++#[ignore]
+ fn test_install_copy_then_compare_file_with_extra_mode() {
+     let scene = TestScenario::new(util_name!());
+     let at = &scene.fixtures;
index b6f0dbdddc7493b056e9ac73d865a4a3a9d44f5d..35904638efa5ec060f74209efb79ae3628ae9c4f 100644 (file)
@@ -6,3 +6,5 @@ bump-cpp.diff
 bump-thread-local.diff
 lower-libc-dep.diff
 lower-nix-dep.diff
+revert-file-diff-0.diff
+revert-file-diff.diff