You are here

Legacy App Packages vs "Hacks", A Community Discussion

4 posts / 0 new
Last post
John T. Haller
John T. Haller's picture
Online
Last seen: 37 sec ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Legacy App Packages vs "Hacks", A Community Discussion

Hi All,

I wanted to get some feedback from the community on approaching apps as they drop compatibility with Windows 7/8. My typical approach is to create a legacy package of the last supported version, automatically (when practical) create a legacy copy alongside as the user upgrades to the incompatible version of Win 7, and make the legacy package available in the PA.c App Store and from the app's homepage.

Another option for some specific apps is to use a hack like the api-ms-win-core-path-l1-1-0.dll hack. This is a api-ms-win-core-path-l1-1-0.dll file based on the code from Wine that allows Python 3.9 and later to work on Windows 7. This came up in relation to PDF Arranger Portable 1.11.1 which uses Python 3.11. Dropping the file into the PDFArrangerPortable\App\PDFArranger directory allows the app to work on Win 7/8.

Here are the pros and cons from my perspective:

Legacy Package Advantages:
- One time effort from me to create a legacy package
- Legacy Win 7 users have a consistently working package
- Modern Windows users have the latest version as normal
- No need to test every release to see if it still works on Win 7/8
- No need for custom code to add/remove the hack based on Windows version

Hack Advantages:
- Single package for modern Windows and legacy users
- Legacy users still get to use a normally incompatible app

My instinct is to continue with the legacy package route. Not every app is as easy as hacking in a single file. And there could be other elements that interfere.

If I go the legacy package route, I could make it so advanced users can have an option to substitute in the hacked DLL via a PATH override. This could apply to all apps when running on Windows 7, so there'd be no need to modify each app.

Would love to get thoughts from other devs and users in the community.

rbon
Offline
Last seen: 6 hours 36 min ago
Joined: 2011-04-30 13:26
Hi John,

Hi John,

in my opinion You must to continue with the legacy package route,
BUT:
1. Put a notice on the portable program's download page and state that a hack is available for that program and specify which version of Windows will 'fixed';
2. create a new subfolder in the installed PAF build:
--> Other --> 'Hack' or, better, 'Windows 7/8'
and insert in this 'Hack' subfolder the 'exe' or 'dll' with instruction how to use this fix (for advanced users).
If the hack is of considerable size, then put in the Other - Hack folder only the instructions on:
1. where to get the fix
2. how to perform the fix

This would only allow a few new portable programs to be 'fixed' and you would continue with the legacy way.

ANTICHRISTUS REX
ANTICHRISTUS REX's picture
Offline
Last seen: 7 hours 45 min ago
Translator
Joined: 2019-07-19 07:09
Ianus Bifrons

Hi John!

Off-topic:

I use this title, when there are two opposed opinions. a sort of an abstract word play.

Nowadays, days of IRL Barbie World, Consumerism and Planned Obsolescence, and the true story of a Fiberglass Car eaten by a cow. Even food tastes comme du papier-mâché. Software companies won't undertake a different pathn, rare are the developers who do not follow the 'herd'.

On-Topic:

Let's say, I'm inclined towards the Hack:

  • The reasons: New versions will include new fonctionalities & opportunities, on old machines, that (some) people are 'forced' to use.
  • The pros: The same (working) version for everyone.
  • The cons: (Relatively) More work for the developer(s).

About legacy Packages:

  • The reasons: Less preocupations and work.
  • The pros: Essentially less work & stress for the developer(s).
  • The cons: Too many versions of a same app, which are missing some functionalities when users move from→to different computers.

Opinion about hybrid apps:

  • Better to split enormous apps no longer supporting 32 bit OSes. For CherryTree users for example, the app now is less huge.
  • Another example: Is Stellarium. That looks like a pregnant mutant, dragging an alien in her hump. Let's split it.
  • This will also reduce the website's coasts, when people (who do not care) download such 'Mastodons' directly from the website.

TLDR; Let's hack small and easy (to do) apps, and let's split huge and complicated ones!

PS. Tired right now, will try to add other details, let's say tomorrow if we're still here..

“Life is a strategy game, where roles are already distributed”
― Neo Buddha ―

rbon
Offline
Last seen: 6 hours 36 min ago
Joined: 2011-04-30 13:26
Legacy Package

As already said in this post https://www.portablefreeware.com/forums/viewtopic.php?p=108030#p108030

Software based on Python 3.9 is not working on Windows 7
Errors around api-ms-win-core-path-l1-1-0.dll and a such basically requires to install a particular vcredist_x86.exe/vcredist_x64.exe.
But specifically that error in the Python 3.9 is because the DLL is a part of Windows 8.

So this error is specific of Windows 7.

In effect the dll api-ms-win-core-path-l1-1-0.dll exist in Windows 8-8.1 and up (Win10 and Win11) and it's similar but incompatible with the dll of this hack https://github.com/nalexandru/api-ms-win-core-path-HACK.

So I suggest You (I have partially changed my opinion):
1. create a new subfolder inside '\PDF Arranger\App' with the name 'Windows7 hack'
2. this subfolder must contains the content of 'api-ms-win-core-path-l1-1-0.dll' (extracted from zip archive): x86 and x64 subsubfolders + a text file with explanation of this hack
3. if Your launcher can test witch Windows version is installed (Windows 7 and if 32 or 64 bit), therefore
4. You can extract from Your PAF installer the subfolder 'Windows7 hack' and put them inside '\PDF Arranger\App'
5. Your launcher PDFArrangerPortableLegacy can copy the appropriate dll from 'Windows7 hack' to '\PDFArranger' and launch PDFArranger for Windows7
6. or if the installed Windows is 8,8.1,10 or 11 You can prepare a launcher with name PDFArrangerPortable and launch PDFArrangerPortable.
7. to conclude this is my suggestion, but I don't know if you can make it.

b.t.w.
This hack should also work for later versions of PDF Arranger: v1.11.1 and up.

Log in or register to post comments