Hello community,

here is the log from the commit of package convmv for openSUSE:Factory checked 
in at 2019-01-08 12:26:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/convmv (Old)
 and      /work/SRC/openSUSE:Factory/.convmv.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "convmv"

Tue Jan  8 12:26:43 2019 rev:23 rq:661857 version:2.05

Changes:
--------
--- /work/SRC/openSUSE:Factory/convmv/convmv.changes    2017-11-27 
22:18:07.835245644 +0100
+++ /work/SRC/openSUSE:Factory/.convmv.new.28833/convmv.changes 2019-01-08 
12:28:44.460254970 +0100
@@ -1,0 +2,9 @@
+Fri Dec 28 18:32:15 UTC 2018 - Petr Gajdos <[email protected]>
+
+- Update to 2.05:
+  * allow NFC/NFD conversion on APFS volumes, add man page section
+    for that filesystem
+  * use case- and normalization-insensitivity workarounds also for
+    parsable mode
+
+-------------------------------------------------------------------

Old:
----
  convmv-2.04.tar.gz

New:
----
  convmv-2.05.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ convmv.spec ++++++
--- /var/tmp/diff_new_pack.l0BQo1/_old  2019-01-08 12:28:44.812254586 +0100
+++ /var/tmp/diff_new_pack.l0BQo1/_new  2019-01-08 12:28:44.812254586 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package convmv
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,15 +12,15 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           convmv
-Version:        2.04
+Version:        2.05
 Release:        0
 Summary:        Converts File Names from One Encoding to Another
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          Productivity/File utilities
 Url:            http://j3e.de/linux/convmv/
 Source:         http://j3e.de/linux/convmv/%{name}-%{version}.tar.gz

++++++ convmv-2.04.tar.gz -> convmv-2.05.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/convmv-2.04/Changes new/convmv-2.05/Changes
--- old/convmv-2.04/Changes     2017-11-20 22:15:32.000000000 +0100
+++ new/convmv-2.05/Changes     2018-03-26 22:32:57.000000000 +0200
@@ -1,3 +1,7 @@
+2.05
+- allow NFC/NFD conversion on APFS volumes, add man page section for that 
filesystem
+- use case- and normalization-insensitivity workarounds also for parsable mode
+
 2.04
 - check for valid utf-8 also in upperlower_checkenc()
 - fix parsable output, missed the path files to run utime() on
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/convmv-2.04/SHA256sums new/convmv-2.05/SHA256sums
--- old/convmv-2.04/SHA256sums  2017-11-20 22:37:52.000000000 +0100
+++ new/convmv-2.05/SHA256sums  2018-03-26 22:37:13.000000000 +0200
@@ -2,17 +2,18 @@
 Hash: SHA256
 
 33cd6497c59daf1697e21663343f703b1eaf6a13e435c4e654c56790a9a7bd2e  ./TODO
-2275cc495a2f39185400844c0ecfcd223dd36167bac27d0ea83a60cba718e187  ./convmv
+05fb77c30e5a16bc4bc5a4998d17fdbe8ed26b97e0ba4b69c606dfa8d7ab4a90  ./convmv
 31a04f0b0584237d6f81fab7e77b0d43e307230102f09db947e20b2a3103a108  
./testsuite.tar
 42b2cfe802e3bac5bdc2462a0d61de002991125053e41c18d5cd7799b4cebf2b  ./CREDITS
-cfbcc24bdb8d268486e65a1dac11b6fea3e07805769d3d15918238a43059ce44  ./VERSION
-37b03ab277d317eea59c2430f36045ac7a3c231c91e39580e4248c54912929fc  ./Changes
+75f95d34c899a792823b9bf9b0d516bb4b8ecf7b9d02db2e41e63220feb1ab19  ./VERSION
+58c737e1926e8480c0f00d5ac3e76b2de492f215c06bcce8ded4e52c080a3dc6  ./Changes
+e84cf66fe230f2405c7ef960d5856f21253870bbd7c55d58ba95b7b555f32891  
./pod2htmd.tmp
 10f96f4cf2f61333c289f603cedd4c0f5e523d2da05486d9bea670f3877d8592  ./Makefile
 a2a9cfa48ba7f7453edf1c43bb8bb1aef5fcd1b87dde11420edceee2e2528db0  ./GPL2
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
-iEYEAREIAAYFAloTSy4ACgkQdoo0s+hIejnMZwCg9dimRgvjBTQggCwkR9Xql79Y
-5tQAn0hvSXL+3TszEP3chObXayLMCrvl
-=ZMbA
+iEYEAREIAAYFAlq5WfgACgkQdoo0s+hIejkFlgCghno0G0B0tXjNXXWTmMRJ9PqO
+ydkAoK3eI1fMoRBe3KmLgwhRSplU7OEZ
+=W+j+
 -----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/convmv-2.04/VERSION new/convmv-2.05/VERSION
--- old/convmv-2.04/VERSION     2017-11-20 22:37:50.000000000 +0100
+++ new/convmv-2.05/VERSION     2018-03-26 22:37:12.000000000 +0200
@@ -1 +1 @@
-2.04
+2.05
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/convmv-2.04/convmv new/convmv-2.05/convmv
--- old/convmv-2.04/convmv      2017-11-20 22:30:29.000000000 +0100
+++ new/convmv-2.05/convmv      2018-03-26 22:37:10.000000000 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
-# convmv 2.04 - converts filenames from one encoding to another
-# Copyright © 2003-2017 Bjoern JACKE <[email protected]>
+# convmv 2.05 - converts filenames from one encoding to another
+# Copyright © 2003-2018 Bjoern JACKE <[email protected]>
 #
 # This program comes with ABSOLUTELY NO WARRANTY; it may be copied or modified
 # under the terms of the GNU General Public License version 2 or 3 as
@@ -203,16 +203,36 @@
 
 Linux and (most?) other Unix-like operating systems use the so called
 normalization form C (NFC) for its UTF-8 encoding by default but do not enforce
-this.  Darwin, the base of the Macintosh OS enforces normalization form D
+this. HFS+ on the Macintosh OS enforces normalization form D
 (NFD), where a few characters are encoded in a different way. On OS X it's not
 possible to create NFC UTF-8 filenames because this is prevented at filesystem
 layer.  On HFS+ filenames are internally stored in UTF-16 and when converted
-back to UTF-8, for the underlying BSD system to be handable, NFD is created.
-See http://developer.apple.com/qa/qa2001/qa1173.html for defails. I think it
-was a very bad idea and breaks many things under OS X which expect a normal
-POSIX conforming system. Anywhere else convmv is able to convert files from NFC
-to NFD or vice versa which makes interoperability with such systems a lot
-easier.
+back to UTF-8 (because the Unix based OS can't deal with UTF-16 directly), NFD
+is created for whatever reason.  See
+http://developer.apple.com/qa/qa2001/qa1173.html for defails. I think it was a
+very bad idea and breaks many things under OS X which expect a normal POSIX
+conforming system. Anywhere else convmv is able to convert files from NFC to
+NFD or vice versa which makes interoperability with such systems a lot easier.
+
+=head3 APFS on macOS
+
+Apple, with the introduction of APFS in macOS 10.3, gave up to impose NFD on
+user space. But once you enforced NFD there is no easy way back without
+breaking existing applications. So they had to make APFS
+normalization-insensitive, that means a file can be created in NFC or NFD in
+the filesystem and it can be accessed with both forms also. Under the hood they
+store hashes of the normalized form of the filename to provide normalization
+insensitivity. Sounds like a great idea? Let's see: If you readddir a
+directory, you will get back the files in the the normalization form that was
+used when those files were created. If you stat a file in NFC or in NFD form
+you will get back whatever normalization form you used in the stat call. So
+user space applications can't expect that a file that can be stat'ed and
+accessed successfully, is also part of directory listings because the returned
+normalization form is faked to match what the user asked for. Theoretically
+also user space will have to normalize strings all the time. This is the same
+problem as for the case insensitivity of filenames before, which still breaks
+many user space applications. Just that the latter one was much more obvious to
+spot and to implement than this thing. So long, and thanks for all the fish.
 
 =head3 JFS
 
@@ -457,7 +477,7 @@
        print UNDOLOG "# this is a per undo script generated by convmv.\n",
                        "# Please check if this looks reasonable before 
running!\n";
        print UNDOLOG "# Example: perl $opt_undo_script\n";
-       print UNDOLOG "chdir $pwd;\n";
+       print UNDOLOG "chdir '$pwd;\n'";
 }
 
 ## do {print ord($_)."_" for (split(//,$_));print "\n"; } for (@args); # debug 
print
@@ -652,24 +672,26 @@
        }
        &save_parent_mtime($dir) if ($opt_mtimes);
        # the following is to handle case-insensitive filesystems:
-       if ($opt_lower or $opt_upper) {
+       if ($opt_lower or $opt_upper or $opt_nfc or $opt_nfd) {
                if ((stat $oldfile)[1] == (stat $newname)[1]) {
                        $ci_old_new_same_inode = 1;
                        #print $outerr "found case-insensitive filesystem...\n";
-                       if ($opt_notest) {
-                               my $try;
-                               for (1 .. 10000) {
-                                       $try = "convmvtmp".$_;
-                                       if (! -e $try) {
-                                               #print $outerr "(via temp 
rename to \"$try\")\n";
-                                               rename ($oldfile, $try);
-                                               $opt++;
-                                               print UNDOLOG "rename 
(\"$dir/$try\", \"$dir/$oldfile\");\n";
-                                               $oldfile=$try;
-                                               last;
-                                       }
+                       my $tmpfile;
+                       for (1 .. 10000) {
+                               $tmpfile = "convmvtmp".$_;
+                               if (! -e "convmvtmp".$_) {
+                                       $tmpfile = "convmvtmp".$_;
+                                       last;
                                }
                        }
+                       if ($opt_notest) {
+                               rename ($oldfile, $tmpfile);
+                               print UNDOLOG "rename (\"$dir/$tmpfile\", 
\"$dir/$oldfile\");\n";
+                               $oldfile=$tmpfile;
+                       } elsif ($opt_parsable) {
+                               print 
"rename".$del.$dir."/".$oldfile.$del.$dir."/".$tmpfile.$fin_del;
+                               $oldfile=$tmpfile;
+                       }
                }
        }
        if (-e $newname and !$opt_exec and !$ci_old_new_same_inode) {
@@ -807,8 +829,8 @@
 sub printusage {
        &check_for_perl_bugs;
        print <<END;
-convmv 2.04 - converts filenames from one encoding to another
-Copyright (C) 2003-2017 Bjoern JACKE <bjoern\@j3e.de>
+convmv 2.05 - converts filenames from one encoding to another
+Copyright (C) 2003-2018 Bjoern JACKE <bjoern\@j3e.de>
 
 This program comes with ABSOLUTELY NO WARRANTY; it may be copied or modified
 under the terms of the GNU General Public License version 2 or 3 as published
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/convmv-2.04/pod2htmd.tmp new/convmv-2.05/pod2htmd.tmp
--- old/convmv-2.04/pod2htmd.tmp        1970-01-01 01:00:00.000000000 +0100
+++ new/convmv-2.05/pod2htmd.tmp        2018-03-26 22:35:34.000000000 +0200
@@ -0,0 +1,2 @@
+
+.


Reply via email to