On Mon, May 18, 2015 at 12:00 PM, Sunjit Tara <sunjit_t...@yahoo.com> wrote: > Hi, > We ship SVN with our product, it was compiled in RHEL 5 and the > binary is shipped along with the product where it can be installed on RHEL > 5, 6 or 7. Recently we found a problem specific to using Non Latin > characters in the file name, it works fine if you are on RHEL 5 but on RHEL > 6/7 we get errors.
Unicode is one of the banes of modern computing. And you compiled statically "for portability", didn't you? Well, this is what you get. The relevant libraries change significantly with the release of the operating system, and if you're using static libraries, you're not loading the newer, compatible libraries. > On the other hand, if we compile the source code in RHEL 6 and use that > binary on RHEL 6 and 7 -- Non Latin character file names work fine > (add/update/delete). But it is not backward compatible with RHEL 5, so just > for RHEL 5 we have to ship the binary compiled on RHEL 5. Why are you shipping Subversion binaries? Why aren't you using the system binaries? Even RHEL 5 has Subversion 1.5 available. If you need to upgrade from there, please consider collaborating with one of the commercial Subversion providers to use their packages, and avoid having to spend your own time building your own. If you *do* feel the need to build your own, you're certainly welcome to my SRPM building toolkigs over at https://github.com/nkadel/ But I admit, I'm giving up on RHEL 5 these days. > Has anyone seen this or aware of this limitation? I understand the common > behavior is to compile and run the package on the same OS level but for > products that embed SVN and ship for RHEL, how do you tackle this limitation > for Non Latin languages? > > Thanks in Advance! Well, for one thing, I tend to insiste that people use POSIX language compatible file names to avoid exactly these issues, and mandate it in the pre-commit hooks. No punctuation because inevitably someone will use a punction that screws up shell scripts and other commands, such as ",'" or ":" or ";" or "[", no non-7-bit ASCII characters, and *no spaces!!!!* And ideally no mixed case, because the file "ServiceName.h" and "Servicename.h" can't both exist on the same NTFS or other case insensitive file system.