This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2gothinclient. from 25bef95 19_x2gothinclient-minidesktop.gschema.override: Explicitly use MATE-specific theming of the desktop UI. (Closes: #1364). new bcfdb18 usbmount/x2gousbmount: remove uni_xlate from ntfs and vfat mounts, add utf8 option to vfat mounts and document this choice. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 2 ++ usbmount/x2gousbmount | 54 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 53 insertions(+), 3 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gothinclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2gothinclient. commit bcfdb18f124b2dd09facc826b523184a47626395 Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Jan 24 08:45:10 2019 +0100 usbmount/x2gousbmount: remove uni_xlate from ntfs and vfat mounts, add utf8 option to vfat mounts and document this choice. --- debian/changelog | 2 ++ usbmount/x2gousbmount | 54 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6ba6b2d..10c72de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,8 @@ x2gothinclient (1.5.0.1-0x2go1) UNRELEASED; urgency=medium * usbmount/x2gousbmount: - Whitespace- and comment-only changes. - Rework x2gothinclientd check. + - Remove uni_xlate from ntfs and vfat mounts, add utf8 option to vfat + mounts and document this choice. [ Stefan Baur ] * New upstream release (1.5.0.1): diff --git a/usbmount/x2gousbmount b/usbmount/x2gousbmount index fca56ee..8eb4939 100755 --- a/usbmount/x2gousbmount +++ b/usbmount/x2gousbmount @@ -157,14 +157,62 @@ if ((check_x2gothinclientmode()) || (-x "/lib/live/config/2900-x2go-thinclientco # mount the USB device # sync is supported by all file systems + # # uid is supported by vfat (via fat),ntfs,hfs,hpfs - # uni_xlate is supported by vfat,ntfs + # + # uni_xlate is supported by vfat and supposed to change "unhandled" + # Unicode characters into escape sequences; otherwise, such + # characters are replaced by a verbatim question mark, triggering + # information loss. Very old versions of ntfs used to "support" this + # option, but historic documents mention that it was broken and + # removed some time in the Linux 2.4 days. + # Character set handling under FAT is complicated to begin with. + # Apparently, 8.3 short file names (which really are the low-level + # and most compatible representation of file names) are always + # encoded with a specific 8-bit codepage - importantly, multi-byte + # encodings are not supported. This specific codepage can either be + # the default one set in the Linux kernel or any other supported one + # selected via the codepage=... mount option. + # Long file names are stored in "Unicode format" according to the + # kernel documentation, which seems to really be raw UCS-2, i.e., + # the raw 2-byte-value of a code point. Consequently, only characters + # in the Basic Multilingual Plane (BMP) can be used in long file + # names and each file is restricted to a character length of at most + # 255, with the additional restriction of at most 256 characters per + # path. This "encoding" could be problematic since code points + # outside of the BMP are being used more and more nowadays, but most + # users should still be fine. + # Typically, systems are not using the UCS-2, but a different + # encoding like UTF-8 or UTF-16. These encodings can handle the full + # Unicode block, also code points after the BMP. Hence, the kernel + # has to perform some kind of conversion from UCS-2 to the desired + # encoding, which again can either be the default one set in the + # kernel or any other supported one set through the iocharset=... + # mount option. + # At that point, things get tricky. (V)FAT is typically a case- + # insensitive file system, which means that lower- and uppercase + # versions of a character should be handled as the same character. + # The Linux kernel developers do not want to store a lower- to + # uppercase mapping for the full Unicode set of characters, though, + # for space and performance reasons. Hence, file systems mounted via + # iocharset=utf8 will be completely case-sensitive. To work around + # that problem, another option called 'utf8' exists, which can be + # used in conjunction with an 8-bit encoding iocharset option. + # Apparently, with such a setup the kernel returns UTF-8-encoded + # data, but internal name mangling operations are carried out in the + # given iocharset encoding. Such a scenario is most useful when + # setting the iocharset parameter to an encoding for which lower- + # and uppercase pairs are defined properly. + # Enabling uni_xlate disables utf8 and is only useful when using + # an iocharset encoding not covering the UCS-2 range. We do not want + # to use this. + # # we must not trigger on iso9660 and udf, or else hybrid USB media # would only cause a mount of the iso9660 raw device, # blocking the mount of individual partitions # real optical media ->x2gocdmanager/x2gothinclient-cdmanager package - if (system("mount -tntfs $dev /media/$name/$ldev -o uid=$user,sync,uni_xlate") == 0) + if (system("mount -tntfs $dev /media/$name/$ldev -o uid=$user,sync") == 0) { syslog('notice', "USB device $name ($ldev) successfully mounted (ntfs detected)"); # if mounted, inform x2goclient about it... @@ -173,7 +221,7 @@ if ((check_x2gothinclientmode()) || (-x "/lib/live/config/2900-x2go-thinclientco print D "export=/media/$name/$ldev\n"; close (D); } - elsif (system("mount -tvfat $dev /media/$name/$ldev -o uid=$user,sync,uni_xlate") == 0) + elsif (system("mount -tvfat $dev /media/$name/$ldev -o uid=$user,sync,utf8") == 0) { syslog('notice', "USB device $name ($ldev) successfully mounted (vfat detected)"); # if mounted, inform x2goclient about it... -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gothinclient.git