[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1058522: (no subject)



On 2023-12-21, at 11:21:48 +0000, Jeremy Sowden wrote:
> On 2023-12-21, at 11:10:28 +0500, Lev Lamberov wrote:
> > Since I cannot reproduce the bug, I'm downgrading the severity of
> > this bug report.
> 
> I cloned the git repo, ran `gbp buildpackage --git-pbuilder` and
> reproduced it (log attached).  I'll see if I can work out what's going
> on.

In testing:

    $ du --version
    du (GNU coreutils) 9.1
    Copyright (C) 2022 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    Written by Torbjorn Granlund, David MacKenzie, Paul Eggert,
    and Jim Meyering.
    $ du -sb /tmp/dired-du1wX4yG/empty-subdir
    4096    /tmp/dired-du1wX4yG/empty-subdir

In unstable:

    $ schroot -c sid -- du --version
    du (GNU coreutils) 9.4
    Copyright (C) 2023 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    Written by Torbjorn Granlund, David MacKenzie, Paul Eggert,
    and Jim Meyering.
    $ schroot -c sid -- du -sb /tmp/dired-du1wX4yG/empty-subdir
    0       /tmp/dired-du1wX4yG/empty-subdir

This coreutils bug report:

    https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61884

led to a change in behaviour such that `du -b`, which is equivalent to
`du --apparent --block-size=1`, reports directories as having zero size.
If we don't pass `--apparent` we restore the old output:

    $ schroot -c sid -- du -s --block-size=1 /tmp/dired-du1wX4yG/empty-subdir
    4096    /tmp/dired-du1wX4yG/empty-subdir

I've attached a minimal patch that fixes the bug:

    $ schroot -c sid -- emacs -batch -l dired-du.el -l dired-du-tests.el -eval '(ert-run-tests-batch-and-exit "dired-du-sort-by-size")'
    Loading /etc/emacs/site-start.d/00debian.el (source)...
    Loading /etc/emacs/site-start.d/50autoconf.el (source)...
    Running 1 tests (2023-12-21 15:02:28+0000, selector `"dired-du-sort-by-size"')
    [...]
    Test dired-du-sort-by-size condition:
        (ert-test-failed
         ((should
           (equal
            '("filled-subdir" "external-file" "empty-subdir")
            (dired-get-marked-files ...)))
          :form
          (equal
           ("filled-subdir" "external-file" "empty-subdir")
           ("filled-subdir" "empty-subdir" "external-file"))
          :value nil :explanation
          (list-elt 1
                    (arrays-of-different-length 13 12 "external-file" "empty-subdir" first-mismatch-at 1))))
       FAILED  1/1  dired-du-sort-by-size (0.392296 sec) at dired-du-tests.el:237

    Ran 1 tests, 0 results as expected, 1 unexpected (2023-12-21 15:02:29+0000, 0.712904 sec)

    1 unexpected results:
       FAILED  dired-du-sort-by-size

    $ cat debian/patches/du-dir-size-fix.patch 
    --- a/dired-du.el
    +++ b/dired-du.el
    @@ -185,7 +185,7 @@
     
     (defcustom dired-du-used-space-program
       (purecopy (let ((opts (if (string-prefix-p "gnu" (symbol-name system-type))
    -                            "-sb"
    +                            "-sB1"
                               "-sk"))) ; -k overestimate used space\
                                        ; for files w/ size < 1024.
                   (cond ((executable-find "du") (list "du" opts))
    $ dquilt push
    Applying patch du-dir-size-fix.patch
    patching file dired-du.el

    Now at patch du-dir-size-fix.patch
    $ schroot -c sid -- emacs -batch -l dired-du.el -l dired-du-tests.el -eval '(ert-run-tests-batch-and-exit "dired-du-sort-by-size")'
    Loading /etc/emacs/site-start.d/00debian.el (source)...
    Loading /etc/emacs/site-start.d/50autoconf.el (source)...
    Running 1 tests (2023-12-21 15:02:51+0000, selector `"dired-du-sort-by-size"')
    [...]
       passed  1/1  dired-du-sort-by-size (0.367606 sec)

    Ran 1 tests, 1 results as expected, 0 unexpected (2023-12-21 15:02:51+0000, 0.367738 sec)


J.
--- a/dired-du.el
+++ b/dired-du.el
@@ -185,7 +185,7 @@
 
 (defcustom dired-du-used-space-program
   (purecopy (let ((opts (if (string-prefix-p "gnu" (symbol-name system-type))
-                            "-sb"
+                            "-sB1"
                           "-sk"))) ; -k overestimate used space\
                                    ; for files w/ size < 1024.
               (cond ((executable-find "du") (list "du" opts))

Attachment: signature.asc
Description: PGP signature


Reply to: