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

Bypass the license; updated manual #3

Merged
merged 17 commits into from
Jun 1, 2015
Merged

Bypass the license; updated manual #3

merged 17 commits into from
Jun 1, 2015

Conversation

binghe
Copy link
Contributor

@binghe binghe commented May 24, 2015

No description provided.

@luismbo
Copy link
Member

luismbo commented May 24, 2015

It's weird that you have to generate a license code at all. Why is that?

@binghe
Copy link
Contributor Author

binghe commented May 24, 2015

Hi,

Basically it’s to write the registered user name into Windows registry table, so that the Abort dialog and main GUI could have something to display. An interesting side effect is: in this way, a generated, valid license code in Windows registry table can also be used to activate the old Corman Lisp 3.0 software downloaded from Corman’s web site.

Chun

Il giorno 24/mag/2015, alle ore 14:16, Luís Oliveira notifications@github.com ha scritto:

It's weird that you have to generate a license code at all. Why is that?


Reply to this email directly or view it on GitHub.

@luismbo
Copy link
Member

luismbo commented May 24, 2015

Could we remove the need for registration altogether? (Of course, that may be more complicated and you may not have time to pursue that. I'm just curious.)

@binghe
Copy link
Contributor Author

binghe commented May 24, 2015

It’s possible in theory, but the registration info is also accessible from Lisp through some APIs, completely removing all these things requires careful work and may break the backward compatibility. Time is not the first consideration, but I’d like to use limited time to focus on the kernel code of Corman first. Since I can build (I have a VS2005 environment from workplace) and run it right now, my next step is to port some important third CL packages to Corman, and fix CL standard compatibilities if I can find and I can do.

Il giorno 24/mag/2015, alle ore 14:33, Luís Oliveira notifications@github.com ha scritto:

Could we remove the need for registration altogether? (Of course, that may be more complicated and you may not have time to pursue that. I'm just curious.)


Reply to this email directly or view it on GitHub.

@luismbo
Copy link
Member

luismbo commented May 24, 2015

@binghe that makes perfect sense. @xach I have no way to test this pull request, do you?

@luismbo
Copy link
Member

luismbo commented May 25, 2015

@binghe thanks for sending me a binary. I will try to test it later today! If this is the first version that doesn't require a license, then perhaps it is worth a release, do you agree?

@binghe
Copy link
Contributor Author

binghe commented May 25, 2015

Yes, I think so.

There’s one more thing: if you try it on UAC-enabled systems like Windows 7, the registration process will require Administrator privilege, for just one time. I think maybe I can put one more ling of code into the program to let it explicitly requires this privilege by using some UAC win32 APIs.

Il giorno 25/mag/2015, alle ore 12:20, Luís Oliveira notifications@github.com ha scritto:

@binghe thanks for sending me a binary. I will try to test it later today! If this is the first version that doesn't require a license, then perhaps it is worth a release, do you agree?


Reply to this email directly or view it on GitHub.

@luismbo
Copy link
Member

luismbo commented May 25, 2015

I have Windows 8 at home. Attempting to launch CormanLisp.exe yields this error.

ccl-error

clconsole.exe seems to work OK. I have Windows 7 at work but can't try it there if Administrator privileges are required. Did you expect it to work on Windows 8?

@xach
Copy link
Member

xach commented May 25, 2015

Luís Oliveira notifications@github.com writes:

@binghe that makes perfect sense. @xach I have no way to test this pull request, do you?

I don't have a build environment setup, no.

@binghe
Copy link
Contributor Author

binghe commented May 26, 2015

@luismbo do you have Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) installed in your Windows 8 environment? I don't have a Windows 8 environment, but I have Windows 8.1 x64, and CormanLisp.exe runs perfectly there (see the screenshot).

2015-05-26 05 11 45

@binghe
Copy link
Contributor Author

binghe commented May 26, 2015

And Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) can be downloaded here: https://www.microsoft.com/en-US/download/details.aspx?id=5638

@luismbo
Copy link
Member

luismbo commented May 26, 2015

@binghe I see. Should we include the MSVC++ runtime in the CormanLisp zip file? Is there any drawback to doing that?

@binghe
Copy link
Contributor Author

binghe commented May 26, 2015

I'm not sure, if we could have a web site to provide future Corman releases, I would suggest that we put a note and a download link of msvcr80 (Microsoft.VC80.CRT) separately, otherwise another more obvious solution is to directly pack the DLL into the Corman Lisp folder, to make it live with CormanLisp.exe and other execution files. In this way, after you've extracted the zip file, you got it running without any issue. If in the future we can bring the InstallShield-based installer back or find another MSI solution, the installer will take care of the installation of msvcr80.

P. S. LispWorks, even in the recent new release 7.0, is also built by Visual Studio 2005 and therefore their executions must depend on msvcr80 (Microsoft.VC80.CRT), the same thing as Corman does. Previously LispWorks installer will put the DLL together with lw.exe but since 6.1 release they seems only support the DLL in WinSxS folder, but in 7.0 the private DLL works again. Any way, maybe there's a reason they can't easily upgrade to more recent Visual C++ versions, but I can see the fact that, as long as there's no way to build Corman by a free expression edition of Visual Studio, there's no need to do the upgrade too soon. (I did try to build Corman in Visual Studio 2013 today, clconsole.exe works just fine, IDE has some bugs but looks fixable, I can push the upgraded project files if you accept current pull request)

@luismbo
Copy link
Member

luismbo commented May 26, 2015

@binghe I vote for including the runtime in a release zip. For the time being, we can use GitHub's Releases functionality which allows uploading binaries.

@binghe
Copy link
Contributor Author

binghe commented May 26, 2015

@luismbo Very well, then give me time to adjust scripts and make a new release package. This time I use .zip format to make sure every clean Windows system can directly extract it, and I put msvcr80 (Microsoft.VC80.CRT) DLLs directly into Corman folder and I run a test on clean Windows 8 systems to make sure it works, and in the registration window I put notes to let user run it again in Administrator privilege if it failed writing the registry table. After all these work, I will share a new binary file to you from Dropbox.

@luismbo
Copy link
Member

luismbo commented May 28, 2015

@binghe I've tried the latest zip you've sent me. It didn't trigger any sort of UAC for me, FWIW.

Regarding the runtime DLLs, I'm pretty sure copying the Microsoft.VC80.CRT (and .MFC) directories to the Corman Lisp directory should work. That process is described at https://msdn.microsoft.com/en-us/library/ms235291(v=vs.80).aspx under the section "Deploying Visual C++ library DLLs as private assemblies". Does that work?

@binghe
Copy link
Contributor Author

binghe commented May 29, 2015

OK, now I see what's wrong: I'm using Visual Studio 2005 SP1, and Roger Corman was using Visual Studio 2005 without service packs, therefore our VC80 runtime versions are different. If the CormanLisp.exe.manifest file is not updated, then even I copy Microsoft.VC80.CRT and Microsoft.VC80.MFC two directories to CormanLisp directory, it won't work. But once I've updated VC project settings to let it re-generate the manifest file, everything works now.

Now please try the new .zip package I just sent to you, this time we have Visual C++ library DLLs as private assemblies. (P. S. UAC warnings on unsigned apps only pop-up once for the same binary, and if you have finished the user registration before, the Corman registration window won't show again unless you clean your registry table using the "cleanlicense.reg" file in Corman's Git source.

@luismbo
Copy link
Member

luismbo commented May 31, 2015

It works now. Thanks. :-) Are you happy with the current state of this pull request?

@binghe
Copy link
Contributor Author

binghe commented May 31, 2015

Yes, I do.

Il giorno 31/mag/2015, alle ore 17:29, Luís Oliveira notifications@github.com ha scritto:

It works now. Thanks. :-) Are you happy with the current state of this pull request?


Reply to this email directly or view it on GitHub.

luismbo added a commit that referenced this pull request Jun 1, 2015
Bypass the license; updated manual
@luismbo luismbo merged commit 9d830d0 into sharplispers:master Jun 1, 2015
@luismbo
Copy link
Member

luismbo commented Jun 1, 2015

@binghe merged the pull request and posted your zip file here: https://github.com/sharplispers/cormanlisp/releases/tag/v3.02 Thanks!

@luismbo
Copy link
Member

luismbo commented Jun 1, 2015

@binghe out of curiosity, why is this 3.02 instead of 3.01? :-)

@binghe
Copy link
Contributor Author

binghe commented Jun 1, 2015

@luismbo, thanks for accepting this pull request finally. For your version question, I think version "3.02" means the last official release (3.0) plus the first two loadable patches. Roger Corman ever designed a patch facility for Corman Lisp: every time when Corman Lisp IDE starts, it will try to get the loadable patches from a server hosted by Corman's company, and these patch levels, if merged into Corman Lisp mainstream source, will cause the minor version part increased.

Given the fact that currently there're totally three patches available for the official 3.0 release, therefore I guess the third patch hasn't been merged into the mainline code yet. I have the patch code, and if I successfully merged it into the current Git code base, the resulting Corman version should become "3.03".

@luismbo
Copy link
Member

luismbo commented Jun 1, 2015

OK, I've opened issues #4 and #5 for enterprising hackers such as yourself to tackle. :-)

@binghe
Copy link
Contributor Author

binghe commented Jun 1, 2015

Hi, I just re-confirmed the three patches downloaded from Corman's patch server, they're binary patches unless with Lisp code changes. Only the first two patches contains Lisp code, and the changed version should be in our Git code base. For the third patch, I don't know if it's in our code base right now, but given the fact that the patch was made in 2007, it's quite possible that it's also part of out Git code base.

I think our next community release should be named at least as "3.1". And there should be task to remove or disable those patch server checking code because there will be no patch available from Corman Company's server any more.

@binghe
Copy link
Contributor Author

binghe commented Jun 1, 2015

Yes, #5 is exactly what I suggested.

@luismbo
Copy link
Member

luismbo commented Jun 1, 2015

@binghe makes sense. I've added you to https://github.com/orgs/sharplispers/teams/cormanlisp-maintainers and created a 3.1 milestone.

@binghe
Copy link
Contributor Author

binghe commented Jun 1, 2015

Thank you very much, I’ll try my best to contribute more.

Il giorno 01/giu/2015, alle ore 23:01, Luís Oliveira notifications@github.com ha scritto:

@binghe makes sense. I've added you to https://github.com/orgs/sharplispers/teams/cormanlisp-maintainers and created a 3.1 milestone.


Reply to this email directly or view it on GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants