Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FD version 10 stopped working on Windows 7 #1550

Closed
1 task done
sergeevabc opened this issue May 6, 2024 · 10 comments · Fixed by #1575
Closed
1 task done

FD version 10 stopped working on Windows 7 #1550

sergeevabc opened this issue May 6, 2024 · 10 comments · Fixed by #1575

Comments

@sergeevabc
Copy link

sergeevabc commented May 6, 2024

Checks

  • I have read the troubleshooting section and still think this is a bug.

Describe the bug you encountered:

2024-0506-1955 fd10 error on windows7

Rust language developers betrayed Windows 7 users by removing the feature to build binaries for this OS. They believe that since Microsoft has stopped supporting this OS (not because new versions bring something revolutionary, but to make money on sales), then they should follow. However, the support is not a determining factor for all users — this OS is sufficiently polished to perform its functions and remains in demand outside relatively well-off places. For example, C language developers understand this and their compilers do not require a new OS. The good hammer continues to hammer regardless of whether the warranty has expired.

This puts the authors of FD, a program written in Rust, in a difficult position because they need to either spit in the face of all those users outside the so-called golden billion who relied on FD all these years, or find a way to compile it (Tier3? Rust9x?).

Describe what you expected to happen:

No response

What version of fd are you using?

10

Which operating system / distribution are you on?

Windows 7 x64
@tavianator
Copy link
Collaborator

This seems more like a complaint directed at the Rust project itself than an fd issue. If there's a way for us to build Windows 7 compatible binaries I think we'd be happy to add a separate build for that.

@tmccombs
Copy link
Collaborator

tmccombs commented May 7, 2024

It seems like there is a separate target for win7 (that is tier 3). I don't have any objection to adding a build for that

@tmccombs
Copy link
Collaborator

tmccombs commented May 8, 2024

Rust does not ship pre-compiled artifacts for this target. To compile for this target, you will either need to build Rust with the target enabled (see "Building the target" above), or build your own copy by using build-std or similar.

well, that makes supporting this more difficult.

@hellishvictor
Copy link

Checks

* [x]  I have read the troubleshooting section and still think this is a bug.

Describe the bug you encountered:

2024-0506-1955 fd10 error on windows7

Rust language developers betrayed Windows 7 users by removing the feature to build binaries for this OS. They believe that since Microsoft has stopped supporting this OS (not because new versions bring something revolutionary, but to make money on sales), then they should follow. However, the support is not a determining factor for all users — this OS is sufficiently polished to perform its functions and remains in demand outside relatively well-off places. For example, C language developers understand this and their compilers do not require a new OS. The good hammer continues to hammer regardless of whether the warranty has expired.

This puts the authors of FD, a program written in Rust, in a difficult position because they need to either spit in the face of all those users outside the so-called golden billion who relied on FD all these years, or find a way to compile it (Tier3? Rust9x?).

Describe what you expected to happen:

No response

What version of fd are you using?

10

Which operating system / distribution are you on?

Windows 7 x64

Same here with fd-v10.1.0-i686-pc-windows-msvc.zip and fd-v10.1.0-x86_64-pc-windows-msvc.zip.

@hellishvictor
Copy link

Ok, I've compile fd v10.1.0 with the latest version that supports Win 7, Rust v1.75, and it output "error: package fd-find v10.1.0 (D:\rust\fd) cannot be built because it requires rustc 1.77.2 or newer, while the currently active rustc version is 1.75.0", so I open "D:\rust\fd\Cargo.toml" and changed rust-version from 1.77.2 to 1.75.0, and it worked like a charm and compiled my own targets {x86_64,i686}-win7-windows-msvc xD I'll create a batch file for future builds, I guess that is what you guys do for all that builds on the release section.

@tmccombs
Copy link
Collaborator

I don't like the idea of locking fd into supporting 1.75 forever to support an OS that is no longer officially supported by its vendor.

Also, the main reason for upgrading to 1.77.2 in the first place is because of a CVE that impacts windows . See https://blog.rust-lang.org/2024/04/09/Rust-1.77.2.html.

I don't feel comfortable including a build on the release page that has this known vulnerability.

@sergeevabc
Copy link
Author

sergeevabc commented May 16, 2024

a) @ozwaldorf, the author of Lutgen app written in Rust, says that he was able to compile Windows 7 compatible (legacy) binary using Rustc 1.77.2. I verified that it worked as expected.

b) @tmccombs Rust is no longer a language in which you can create apps that make life easier for as many people as possible. That's what we need to worry about, not what vendors like Microsoft do, because they are driven by the pursuit of profit, not a vision of a better world. Do you code to get that shiny "Silicon Valley approved" badge or to help neighbors?

It reminds me of the famous Charlie Chaplin's speech (1940): “…We have developed speed but we have shut ourselves in: machinery that gives abundance has left us in want. Our knowledge has made us cynical, our cleverness hard and unkind. We think too much and feel too little: more than machinery we need humanity…”.

@tmccombs
Copy link
Collaborator

Sure it's possible to compile for win7 with rust 1.77.2. But it sounds like it is a little more involved. And I don't have windows 7, or any version of windows for that matter, nor do I have access to CI for windows 7 to test that such a binary works.

If someone were to make a reasonable pull request to add building a win7 binary to the github actions, I would probably merge it, with a disclaimer that said binary is untested (as, like the rust project, fd doesn't have windows 7 ci servers to test it on).

I understand your frustration, but I don't currently have a good solution for providing a windows 7 compatible binary on the releases page.

You do have some options though:

  • You can set up a rust toolchain for the x86_64-win7-windows-msvc target and compile it yourself
  • You can compile it yourself using an older version of rustc, with the caveat that this may require code changes in the future, and there is a potential vulrnerability if you use it with the --exec or --exec-batch options to invoke a cmd.exe script with untrusted inputs (including the file names).
  • You can continue using an older version of fd, with the same caveats about security as the above point.
  • You could consider switching to an operating system that is still supported. Linux and several BSD variants are free and probably run on your existing hardware. This is probably an extreme measure, and I wouldn't recommend it solely to use the latest version of fd, but it is an option, so I include it for completeness.

@sergeevabc
Copy link
Author

If someone were to make a reasonable pull request to add building a win7 binary to the github actions, I would probably merge it…

That's how @ozwaldorf set compilation chain via Github.

@tmccombs
Copy link
Collaborator

Ah! Support wasn't removed until 1.78.

Yeah I can add a windows build with 1.77 for now

tmccombs added a commit to tmccombs/fd that referenced this issue Jun 14, 2024
By using an older version of rust to build the artifacts on windows.

Alternatively we could build separate artifacts for windows 7, and
continue using the latest version of rust for later versions of windows
that are more optimized for more recent versions.

Fixes: sharkdp#1550
tmccombs added a commit to tmccombs/fd that referenced this issue Jun 14, 2024
By using an older version of rust to build the artifacts on windows.

Alternatively we could build separate artifacts for windows 7, and
continue using the latest version of rust for later versions of windows
that are more optimized for more recent versions.

Fixes: sharkdp#1550
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants