win32ss / supermium

Chromium fork for Windows XP/2003 and up
https://win32subsystem.live/supermium/
BSD 3-Clause "New" or "Revised" License
2.09k stars 70 forks source link

progwrp License, and 7z Installer Code #485

Open Alex313031 opened 4 months ago

Alex313031 commented 4 months ago

Hey @win32ss Thanks so much for publishing progwrp.lib. I now have Thorium working on XP/Vista!

Anyway, I now have two folders in the repo > https://github.com/Alex313031/thorium-legacy/tree/main/patches/progwrp

2 Things:

  1. If you have time, could you review the README I made in that dir, and check it for accuracy. Also, since it is closed source, I think I should put a LICENSE.md in there with something to the effect of "You are allowed to use the .lib and .pdb in your code, and to redistribute the .dll, but not allowed to reverse engineer/dissasemble the dll", what do you think? Maybe you could do this too in your repo or the progwrp .zips in the readme.

  2. Could you share the installer code? I made a .7z self extractor (based on the original one, that simply asks Yes/No), but I would like to make one similar to yours, except without the registry entries option, and add a logo & RC metadata. If not, I might look into a custom NSS installer, although I've never made those before (outside of electron-builder, which does most of the work for you).

Also, latest progwrp seems to have fixed the Office XP issue. Haven't tried it with Thorium or other Office versions though.

Ravenant1234 commented 4 months ago

Soooooo progwrp.dll didnt fixes anithing on W7 since is only needed on windows xp?

"The name means "Program Wrapper", and progwrp enables programs such as Chromium and Electron to run on Windows versions before 7 RTM (6.1.7600)."

but i have seen...... some improvements on performance in windows 7 by replacing progwrp by the latest, how is this possible?

Or is my imagination?

Alex313031 commented 4 months ago

@Ravenant1234 No, the Windows 7 builds in my repo have always been built, and will continue to be built, without progwrp.dll. It is not needed.

progwrp.dll only serves to provide Win7+ functions for XP and Vista, which lack them.

It is possible that you saw a real speed increase, since Supermium uses progwrp, even in the Win7 builds.

win32ss commented 4 months ago

progwrp now incorporates functions from Windows 8.x and above, such as ProcessPrng and GetDpiForMonitor, to eliminate the need for some compatibility patches. This functionality will be important for future uses of progwrp, as both a part of other applications and implemented separately from a specific application. And yes, I do support those licence terms, allowing use of the progwrp libraries and debugging symbols specifically.

But progwrp should not be associated with an increase in performance, especially not on Windows 7. Only a few functions are called "in progwrp" there, and those ones also call the original function in some way, which means that there should always be more overhead than without it, but ultimately minimal. Functions such as SRW lock and condition variable functions should be passed to the original versions on Windows 7 anyway.

Could you share the installer code? I made a .7z self extractor (based on the original one, that simply asks Yes/No), but I would like to make one similar to yours, except without the registry entries option, and add a logo & RC metadata. If not, I might look into a custom NSS installer, although I've never made those before (outside of electron-builder, which does most of the work for you).

I will put up a repository for that code soon. But probably after my (non-LSC) projects have been completed, so at the end of the week.

Alex313031 commented 4 months ago

@win32ss Ok, thanks sir.

progwrp now incorporates functions from Windows 8.x and above, such as ProcessPrng and GetDpiForMonitor, to eliminate the need for some compatibility patches.

Does this mean that for future releases of Thorium for Windows 7, I will have to use progwrp in those builds?

If that will be the case, could you point me to the specific parts of the Supermium code that would be removed (to then be implemented in progwrp instead), so that I can continue to maintain my own patch with these code bits still in. I would prefer the WinXP/Vista builds be separate, with the Win 7/8/8.1 builds using different compiler flags (like AVX), and omitting progwrp entirely.

matu6968 commented 4 months ago
  1. If you have time, could you review the README I made in that dir, and check it for accuracy. Also, since it is closed source, I think I should put a LICENSE.md in there with something to the effect of "You are allowed to use the .lib and .pdb in your code, and to redistribute the .dll, but not allowed to reverse engineer/dissasemble the dll", what do you think? Maybe you could do this too in your repo or the progwrp .zips in the readme.

Well why not open source that library if the browser code is mostly OSS (except the implementation of Widevine which the core library isn't OSS) and that win32ss made it. It's not like the library is a top secret thing if it is required on older versions of Windows below 7 and it reimplements core Windows API's for the browser to function.

So right now the list of proprietary things in this browser are:

  1. progwrp.dll (made by win32ss, can be made OSS)
  2. Browser installer (again made by win32ss, going OSS soon)
  3. Widevine DRM (made by Google, can't control it's source unfortunately)
IDA-RE-things commented 4 months ago

"You are allowed to use the .lib and .pdb in your code, and to redistribute the .dll, but not allowed to reverse engineer/dissasemble the dll"

Sorry guys, but how or from where to get the source source code, except from reverse-engineering work ? Are you serious?

Progwrp.dll was done, using reverse engineering of Microsoft DLL's with their PDB's. (not stub functions). (+using third party OSS projects.) "Vista Extended kernel" was done, using disassembling and linking reassembled code. (How else?) But progwrp, having few real functions, except just stubs, dont allowed to disassemble/reverse-engineering ? Its totally nonsense. )) There only one way to prevent reverse-engineering -- its to provide the source code.

PS: Moreover, for DLL, used with another Open-source code in repos. I have mentioned this in #461.

Such prohibition can affect only nubes and schoolchildrens, not real programmers, Adding more secret areals for it. Bad hackers can use it to create backdoors. Its very simple now., Because no one can check it and recompile it from clean scratch. Its not mature.

Alex313031 commented 4 months ago

@IDA-RE-things @matu6968 I'm going to respect his wishes, because I want to continue to be able to use progwrp.lib in Thorium, and not "get on his bad side" lol.

jonm58 commented 4 months ago

@IDA-RE-things @matu6968 I'm going to respect his wishes, because I want to continue to be able to use progwrp.lib in Thorium, and not "get on his bad side" lol.

"This person is hesitant and in a dilemma."lol

Alex313031 commented 4 months ago

@jonm58 I mean obviously I like open source, and it would be nice to have this .dll open source, but I also get why he is keeping it closed source, for his LSC company.

docrR commented 4 months ago

@IDA-RE-things @matu6968 I'm going to respect his wishes, because I want to continue to be able to use progwrp.lib in Thorium, and not "get on his bad side" lol.

That would be advisable. He suspended me between the city limits of Windsor, ON, and Detroit, MI when I last got on his bad side!

Alex313031 commented 4 months ago

@docrR LOL what do you mean? Are you real-life friends, and at one point he was mad and left you between cities?

Ravenant1234 commented 4 months ago

@docrR LOL what do you mean? Are you real-life friends, and at one point he was mad and left you between cities?

WTF OMG hahahah Really @docrR ?

docrR commented 4 months ago

We'll leave it at that

Ambassador Bridge Arial View

mserafym commented 4 months ago

I mean obviously I like open source, and it would be nice to have this .dll open source, but I also get why he is keeping it closed source, for his LSC company.

This is quite obvious. It's normal to have personal intellectual achievements. Having opened the code of this compatibility layer, the Chinese, Iranians and others will then create their own closed chromium-like browsers, and why is it needed? A couple of browsers is enough.

When the time comes, then open source will appear. And rightly so.

IDA-RE-things commented 4 months ago

Are anyone still desired the source for the dll and for what ? (not just for curiosity). I spent ~2 weeks and have written the source, because I have known for what. And now successfully use it on my machine.

Alex313031 commented 3 months ago

@win32ss Does this License I made look good to you? > https://github.com/Alex313031/thorium-legacy/blob/main/patches/progwrp/LICENSE.md

matu6968 commented 3 months ago

@win32ss Does this License I made look good to you? > https://github.com/Alex313031/thorium-legacy/blob/main/patches/progwrp/LICENSE.md

Well ugh why include the do not reverse engineer thing in the license if people found out that it was made from reverse engineered libraries and people could just like make a completely FOSS variant of the dll by you know reverse engineering it or by finding out what do these libs do.

IDA-RE-things commented 3 months ago

People, who do reverse engineering of work of others, including third-party libraries (how else ?), should expect and approve that their work also can be reverse-engineered, And improved. This is just a game. Like GPL on other side of the barricades ))

I think it is also silent position of win32ss. Because people, who really dont want reverse engineering, -- dont provide their PDB files in their repositories, (As Thorium do it now for progwrp). Its nonsense. Or its for noobs. It's like wearing a miniskirt and walking around in an alley at night, expecting no one "do their job". May be this is some kind of programmers "flirt" ?

All MS files have PDB files. Radeon and NVidia dont provide any PDB files. They are really worry about this. No one can find any real proprietary third party libs or other exe/dlls with PDBs around. Only in case a leak.

Moreover. If someone dont want to show internals, their just do closed source of the whole project. And have not uses open-source components.


And another thing: why no one include in this "license and about" who helped in bug-fixing by found them ? No any mention. Its not requered ?

Same as here, when links to issues not included in comments to commits, nor in comments for the code ? And then transfered to "patches", losing commit comments at all, And then surface in another project without mention of original research. ?

So what one can expect from others ?