Bug Hunting Session
Bug 105572 - LibreOffice Portable version asserts to be corrupted if working in SyMenu
Summary: LibreOffice Portable version asserts to be corrupted if working in SyMenu
Status: RESOLVED NOTOURBUG
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
5.2.4.2 release
Hardware: x86-64 (AMD64) Windows (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-27 16:03 UTC by minder2007
Modified: 2017-03-18 07:10 UTC (History)
0 users

See Also:
Crash report or crash signature:


Attachments
The threatening message (8.87 KB, image/png)
2017-01-27 16:05 UTC, minder2007
Details

Note You need to log in before you can comment on or make changes to this bug.
Description minder2007 2017-01-27 16:03:18 UTC
Description:
A threatening message of a corrupted installation appears when LibreOffice is launched by SyMenu.



Steps to Reproduce:
The last LibreOffice portable version is available for download from your web site. This is the URL: https://www.libreoffice.org/download/portable-versions/

This are the steps to reproduce the bug:
- I download the last version (v.5.2.4)
- I install the last package
- In the root folder I add an empty file called 00.sps.version
- I double click the launcher LibreOfficePortable.exe and a threatening message of a corrupted installation appears
- I click OK and the program starts with no problem
- If I remove the empty file 00.sps.version the program works correctly


In the same download page there is an old portable version available (v.5.1.6). 
This LibreOffice version works even with the little empty file.

Since in the download page you assert that: "[LibreOffice portable] can work with the PortableApps.com platform and its automatic updater and app store, WORK WITH OTHER PORTABLE MENUS, or work by itself from a USB, cloud or local drive."
since that little file is essential for SyMenu to work with portable programs (SyMenu is another portable menu)
it means that the threatening message is a bug.

Actual Results:  
A threatening message of a corrupted installation appears

Expected Results:
No threatening message of a corrupted installation must appears


Reproducible: Always

User Profile Reset: Useless

Additional Info:
I think this is a deliberate action among an alternative menu. The same problem occurred year ago with another laucher called Lupo pen suite.
Do you know that your program is closed on a single portable suite?


User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
Comment 1 minder2007 2017-01-27 16:05:39 UTC
Created attachment 130721 [details]
The threatening message
Comment 2 Adolfo Jayme 2017-01-28 21:47:41 UTC
Please complain to PortableApps.com about the wording of this dialog. We haven’t added it.
Comment 3 minder2007 2017-01-29 07:06:25 UTC
I can't complain with PortableApps.com because it is not a bug but an intentional protection system typical of the proprietary software.
In fact I discover that another third parties launcher has been intentionally banned. It's the Lupo PenSuite. To test that try to add an empty file called LupoApp.ini in the root folder and you have the same effect.

So I admit it's not a bug of LibreOffice but I have two further comments here:

1) using the portabilizing system offered by PortableApps.com you are accomplice of a software that protects itself as a proprietary software. Hooray for the free software!

2) you can't assert in your web site that your portable solution "WORK WITH OTHER PORTABLE MENUS" because it is a lie. SyMenu and Lupo PenSuite are banned by this system, so please correct your web site.

I will post this entire thread on your forum because it's a more suitable place where speaking about this topic.
Comment 4 Adolfo Jayme 2017-02-03 17:39:38 UTC
> 2) you can't assert in your web site that your portable solution "WORK WITH
> OTHER PORTABLE MENUS" because it is a lie. SyMenu and Lupo PenSuite are
> banned by this system, so please correct your web site.

I wasn’t aware that PortableApps.com did that; I agree that it hinders interoperability.

> I will post this entire thread on your forum because it's a more suitable
> place where speaking about this topic.

Thanks; if you can bring this up to the website list (website@global.libreoffice.org) it would be great. :-)
Comment 5 John T. Haller 2017-03-17 03:38:25 UTC
LibreOffice Portable works with any third party menu you'd like without issue as well as being runnable on its own. All apps currently available from PortableApps.com do.

LibreOffice Portable's installer, like many PortableApps.com apps, has logic within it to handle upgrades (removing old files, preserving specific ones) and ensure user data is in the correct locations. LibreOffice Portable's installer has more code than most (a few hundred lines) to handle removing languages that a user doesn't need as well as moving font files around from previous versions and the like.  SyMenu bypasses LibreOffice Portable's installer and extracts the files directly, which sometimes results in misplaced files, old DLLs from previous apps left behind, and other nasties.  SyMenu then goes a step further and attempts to suppress the warning from the app about the possible issues by altering the app's internal tracking files to tell the app it was properly installed when it wasn't.  That's the reason for the somewhat clumsy manual check on the specific file.  It will only show once after a forced extraction install that could cause crashes if the wrong files are left behind or result in user data issues.  The app then works without further notice as the user is now aware the app was installed incorrectly and may have issues. It won't show at all if the user downloads and runs the LibreOffice Portable installer even with this particular third party menu.

The specific check for Lupo was due to the same behavior.  Lupo Pensuite distributes the files pulled out of the installer and does the same clumsy overwrite of zipped files on upgrades which can also cause issues.

PortableApps.com moved away from this simple style of upgrading over a decade ago due to issues with some versions of Firefox 1.0 crashing after upgrades since leaving old DLL files behind. If you clumsily rip files out of an installer and overwrite an existing app installation, you're going to have a bad time.
Comment 6 minder2007 2017-03-17 19:11:45 UTC
Dear John.

You are asserting that the threatening message is only directed to grant programs integrity but, sorry, since you are the head of PortableApps.com your answer can't be accepted as it comes from a naive user but as a real mystification of reality.

Follow my points.

1) If you really want to check an installation integrity, you have to check the installation integrity and not something else that could lead to a false positive. In fact if I install Libre Office Portable "regularly" with its own PAF installer, and then add one of the banned files, the alert appears the same. The installation is perfectly regular but you are testing only the third-party file existence. And you did this not only the first time, but every time. Hence you are not checking the installation integrity but something else.

2) If you really take care of the programs integrity only, why don't you re-enable the silence install option that was banned years ago? Currently the PAF silent install feature, that is needed for launchers/updaters such as SyMenu and Lupo, is available only for PortableApps.com launcher and this is a protection typical of a different world than the freeware one. SyMenu and Lupo are forced to use the raw extraction method because you deliberately don't allow third-party to follow the right way.


These above are facts and now let's go with my speculation.

A) All your implementations in these directions demonstrate that you don't want that your PAF format is used as freely and openly as you assert, but only with the PortableApps.com launcher/updater. In other words you are creating a closed universe stating that is universally opened.

B) PortableApps.com is using its PAF format to crash the other launchers instead of outmatch them with quality, features, user care, community. This is a behavior that must be known by all the freeware communities involved starting from the Libre Office one and following, because it's an anomaly in our pure and ideal freeware world.

C) Why don't you take this as a constructive and collaborative way to improve all the portable launcher platforms? The war against the platforms will kill the portability world.
So the challenge here is: open the silent install to grant the same right to every launcher/updater at the same condition granted to PortableApps.com launcher. In this way every launcher won't be forced to install the PAF software in the wrong way.


Gianluca
Comment 7 John T. Haller 2017-03-17 21:51:50 UTC
As explained above, the reason for the somewhat clumsy trigger is that SyMenu purposely breaks the launcher's detection of an improper install.  After extracting the files and bypassing the proper installer, SyMenu modifies LibreOffice Portable's internal configuration to try to trick the launcher into thinking it was installed via the PA.c Installer.  If SyMenu didn't mess with LibreOffice Portable's internal configuration, there would be no need for that trigger.

No PortableApps.com release has ever "crashed" a third party menu, which is a rather libelous thing to assert.  Our source is open and all the releases going back to 2004 are available, so this can be independently verified. While the majority of our users use our platform, we have hundreds of thousands of users that use our apps with dozens of different portable menus every day.  Even software menus that distribute illegally packaged software.  The only time we display a message to the user is if there is a chance their data could have been altered or their install could result in stability issues so that the user is aware their install could have issues and is not supported.

There was a bug in the PA.c Installer many years ago that accepted the old NSIS command line for a silent install which bypassed a good chunk of the upgrade and data change code in the PA.c Installer as well as end user selections of additional languages and the like.  This bug was patched many years ago, long before we even switched to Unicode. There has never been a working silent install option for PA.c Installers for use by closed source third party software.
Comment 8 minder2007 2017-03-17 22:57:27 UTC
The NSIS installers options for a silent install were:

/S for silent installation 
/D=dir to specify the installation directory

How could you call it a bug?
It was a NSIS feature that you replaced with this code years ago:

[...]
;=== Check that it exists at the right location
      DetailPrint '$(checkforplatform)'

      ${If} ${FileExists} `$0\PortableApps.com\PortableAppsPlatform.exe`
         ;=== Check that it's the real deal
         MoreInfo::GetProductName `$0\PortableApps.com\PortableAppsPlatform.exe`
         Pop $1
         ${If} $1 == "PortableApps.com Platform"
            MoreInfo::GetCompanyName `$0\PortableApps.com\PortableAppsPlatform.exe`
            Pop $1
            ${If} $1 == "PortableApps.com"
               ;=== Check that it's running
               FindProcDLL::FindProc "PortableAppsPlatform.exe"
               ${If} $R0 == 1
                  ;=== Do a partially automated install
                  StrCpy $AUTOMATEDINSTALL "true"
[...]

I don't know if the code is exactly the same active today but the trick still works this way.

For people not experts in coding, this lines recognize if the PortableAppsPlatform.exe file is present and running and, just in case, they enable the automated install. 

So what's my point?
You can do whatever you want with the your code but have the courage to tell the true: everyone must know that applications portabilized with the PAF format can be automated install only from PortableApps.com launcher. 

Then the communities for free and open software will decide if using such a method is ethical or not.

Gianluca
Comment 9 John T. Haller 2017-03-18 02:32:01 UTC
As mentioned, the NSIS directives were causing code that is part of the PortableApps.com Installer later on to be skipped or to work incorrectly. NSIS is the basis for the PA.c Installer, but the base PA.c Installer is another 1900 lines of code (excluding plugins) and then some individual installers like LibreOffice Portable can have another few hundred lines of code. The old NSIS directives were causing some portions of our code to not function correctly, so they were disabled.  That was what you'd specifically asked about.

We added in our own destination directive called /DESTINATION= to be used instead of /D=.  That's been available to third parties since at least 2008 (and earlier if I recall correctly, though I don't have that archived code handy at the moment).  I'm unsure why you continue to state that such a directive does not exist despite years of publicly available open source code to the contrary.

I'm also unsure why every subsequent post of yours moves the goal posts.  Falsely accusing us of "crashing" other menus and lying about what functionality is exposed isn't exactly the best way to ask to someone to work with you.

As the original question has been answered (SyMenu bypassing the LibreOffice Portable installer and altering LibreOffice Portable internals causes a single warning to be shown to the user on first run despite SyMenu attempting to suppress the warning) and the bug has been marked as Resolved, I'll leave this bug be as well.  Please refrain from making additional unsubstantiated claims about our open source project or our code.
Comment 10 minder2007 2017-03-18 07:10:05 UTC
And again you are not replying to the real question.

Silent install is available only for your launcher/updater.

Silent install: https://en.wikipedia.org/wiki/Installation_(computer_programs)#Silent_installation