Seriously: Don't skrew up the Windows path!

2011-07-29
2012-10-17
  • Linus Atorf
    Linus Atorf
    2011-07-29

    Hi,

    this is one SERIOUS REQUEST:
    The MikTeX installer MUST NOT SKREW UP THE WINDOWS PATH VARIABLE! But it does.

    What happens is that the MikTeX installer on Windows puts its own path,
    usually "C:\Program Files\MiKTeX 2.9\miktex\bin", IN FRONT OF EVERYTHING ELSE
    into the Path environment variable. Even before stuff like
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;

    Now this is REALLY BAD, as this path also contains important commonly used DLL
    files. I can't even begin to imagine what harm can be done by old versions of
    msvcr100.dll or msvcr100.dll, lying around in an old MikTeX path without being
    updated. But the WORST THING OF ALL is that inside this path, QtCore4.dll file
    is located, i.e. the Qt runtime. In this case, version 4.7.2.

    Now, when you start a program that requires its own Qt version, or the one you
    globally installed, then THIS WILL CAUSE THIS PROGRAM TO CRASH. And you have
    no idea why.

    It's not just "impolite" to put one's program as first position into the Path
    variable, its also DANGEROUS and ANNOYING.

    Please excuse my shouting, sorry, but I spent 3 hours figuring this out. I'd
    be glad if you could forward this to somebody responsible, like maintainers or
    developers or whoever...

    Regards, Linus

     
  • U_Fischer
    U_Fischer
    2011-07-29

    There exist a bug tracker and a tracker for feature requests. Why don't you
    use one of them? (I would shout at the application which crashes because it
    doesn't check the version of the .dll it needs)

    Ulrike Fischer

     
  • Linus Atorf
    Linus Atorf
    2011-07-29

    There exist a bug tracker and a tracker for feature requests. Why don't you
    use one of them?

    Ah of course, sorry. Couldn't find it, didn't think of it. Will do.

    (I would shout at the application which crashes because it doesn't check the
    version of the .dll it needs)

    Well, that depends, and I guess the thing is a little more complicated. One
    half of the applications DOES check, and you get a "wrong Qt DLL version"
    warning. However, you can go ahead and keep on reinstalling Qt and everything,
    it doesn't make a difference, because MikTeX broke it. If you don't look into
    %path or draw the connection.

    The other thing is more subtle -- I don't know if all apps in release mode
    check this version, or if due to binary compatibility or whatever (a big thing
    in the Qt toolkit), they even can.

    Anyway, once you know what's going on, it's always so clear