-
Notifications
You must be signed in to change notification settings - Fork 499
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
Add support for Windows (ImportError: No module named fcntl) #18
Comments
As written under https://github.com/cs01/gdbgui#compatibility it only supports Ubuntu. Since the fcntl module is for unix(like) systems only, it is unlikely the software works on Windows... |
Thanks @FlDutchman. Unfortunately I only develop on Linux. I would love to add support for OSX and Windows, but unless someone else makes the change it won't be happening any time soon by me. EDIT: I'm will be adding OSX support soon, but no plans for Windows at this time |
At least in that module, Here's a StackOverflow answer that explains how to do non-blocking pipe reads in Windows. (Apparently, Windows APIs use the term "overlapped" in place of "non-blocking") http://stackoverflow.com/a/34504971/435253 Since it depends on the Win32 API, you'll want to follow the example of |
@ssokolow, that is correct that pygdbmi uses |
For anyone looking for windows support, I am trying to add it in |
If it's a complete and total lack of Windows that's the issue, rather than a matter of time or expertise constraints, you should be able to set up a test environment in one of the 90-day trial-version Windows VMs that Microsoft makes available for testing websites' IE/Edge compatibility. https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ (Note: Microsoft says that their testing VM license terms supercede the trial-version license within the VM and explicitly recommends that you use your VM manager to snapshot the VM before first boot so you can easily reset the trial period. The gist of the license is that it has their usual EULA boilerplate about making copies, but, instead, says that you are not allowed to activate the contained copies of Windows and must only use them for testing things.) |
It's more of a time constraint. I can get to this at some point, just wanted to put it out there in case someone really was trying to get gdbgui running on windows. |
upgrade pygdbmi version (issue #18) for windows; add remote option
tested on windows 10 with cygwin, and it worked nicely with |
Umm... Cygwin is a POSIX API shim. That's sort of like counting something as "supports Linux" because it runs in Wine. |
It successfully used the non-blocking pipe code for windows. |
Ahh. So, not a perfect test, but a pass for the specific facet being focused on here. |
Yes, but I also considered it complete for windows. I guess technically it still may not function properly on windows since as you said Cygwin is a shim. Do you know of anything in particular that could still fail if Cygwin was not used? It at least provides some path forward for windows users. I'm not a windows developer. I just installed python on there for the first time today, played around with powershell (which was horrible), and then set up cygwin, and ran some tests. |
Since most of your code runs in the browser, I was able to make time to look through the entire Python codebase of pygdbmi and gdbgui for any problems I can recognize without running the code. Here's what I found:
|
Speaking of Landscape.io, given that you seem to like badges, here are the free-for-open-source static analysis services I'm aware of which are relevant to gdbgui:
(Dependency CI, VersionEye, and Requires.io monitor various aspects of dependencies specified in your repo and pull requests, such as license conflicts and stale or insecure dependencies... which is why I mention Bower in their support lists. It'd make it a lot easier to update your vendored client-side assets when necessary.) If you do use Bower, then also consider bitHound as an NPM/Bower-aware static analysis service for JavaScript, TypeScript, and JSX. Finally, since I think gdbgui is awesome (aside from the license) and want it to become more popular among people producing open-source software for me to use, I'd suggest adding it to the following software listings:
In the case of alternativeTo and OpenHub, 3rd-parties are allowed to create the profiles, so I could add gdbgui to them if you'd prefer that. (As a matter of principle, I avoid becoming dependant on software which requires me to maintain a "stuff I can only use in hobby projects unless I pay" list. It's too much bother.) EDIT: Actually, now that I think about it, I'm not sure if any of those except alternativeTo allow applications with a non-commercial clause. One of the core requirements of the open source definition (itself, a more pragmatic take on the Free Software definition) is "No Discrimination Against Fields of Endeavor". (The Debian Free Software Guidelines actually call out this specific case, phrasing it as "No discrimination against fields of endeavor, like commercial use.") (That's why the JSLint license's "The Software shall be used for Good, not Evil." clause renders it ineligible for the "open source" label, drove the creation and widespread adoption of ESLint, kept it and projects based on it out of Google Code[1] and the Debian package repositories[2], and will ensure they never show up in the Ubuntu or Fedora package repositories.) |
I may change the license to permit commercial use and add premium features that require a purchase.
I find this ironic considering how much work I have put into this project. |
I wouldn't have a problem with that.
Hey, I'm not a hypocrite. I always charge for my time and release my personal-time source under OSI-, Debian- and FSF-approved licenses. I just don't feel right trading something scarce (money) for something not inherently scarce (a copy of a license). |
@ssokolow the license has been changed to GNU GPLv3. Thanks for the other feedback. I will check out the static analysis tools. |
That definitely meets my needs. If life stops throwing new busy-work at me, I'll probably contribute some patches of my own. (The last few months have been a pain. I've been hit with a new urgent "must migrate off a closing service/feature" announcement every month since December. This month's was DotEmu preparing to close down their store to focus on the original game-porting side of their business, which means backing up my entire library from servers where each download link functions as a nonce, so I have to play human download manager.) |
One last thing before I stop using this thread for off-topic stuff. This morning, when I woke up, I had a "waitaminute..." moment and went to read the text of the CC BY-ND license. It wasn't doing what you thought in the first place because, as a license intended for art and culture rather than software, it hangs all of its non-commercial restrictions on copying, performance, and derivative works. (Running pre-GPL gdbgui off a piece of removable media someone else made for no profit should bypass the copying part, leaving non-commercial use un-restricted outside of patching and screencasting/workshops/demos.) TL;DR: All of these things are distribution licenses, not end-user licenses. |
Native Windows support has been added. gdbgui now works with both MinGW and Cygwin. |
@cs01 Somewhy even after I upgraded
|
F:\python_pro\ZKJTml>gunicorn -w 4 -b 127.0.0.1:8000 wsgi:application F:\python_pro\ZKJTml>gunicorn --workers=2 app:app |
Same issue for me...
|
If you are stil having trouble please create a new issue. |
Hi!
First of all, awesome that you made this! I think this could be a great asset when teaching debugging skills of any kind!
Now, for the problem I have:
I'm on windows 7 with pip 9.0.1
Python version is 2.7
And I get this error:
Any idea why
fcntl
is failing on me? Is it because this module is only for Unix systems?The text was updated successfully, but these errors were encountered: