xpra icon
Bug tracker and wiki

Opened 3 months ago

Closed 6 weeks ago

Last modified 5 weeks ago

#2126 closed defect (fixed)

Disambiguate installation package names

Reported by: stdedos Owned by: stdedos
Priority: minor Milestone: 2.5
Component: packaging Version: 2.4.x
Keywords: Cc:

Description (last modified by Antoine Martin)

From ticket:2088?#comment:13

I think xpra/xpra-client is trivial also: Full Xpra vs Client only Xpra.

Correct.

(Is it "just" minus the server part, or there are other bits and pieces missing?)

Just the server part.

What about py2/py3?
I think I've heard that some things are missing in Python3 ... but in what context? "Missing things" are missing indeed, or they just use Python2 stuff?

Not much missing now: #1568. The server needs a bit more work, the client needs a new session-info graph tab, etc..


In Windows 10, I had full-py2-x32 installed, and then I added full-py3-x64.


From here, arises a difficulty: Only one of the uninstallation "entries" are active.

In my case, I had a more weird error: the x32 bit version could not somehow uninstall itself, because of "lack of Administrator rights". However, it uninstalled itself through the Windows Uninstall. Then, x64 needed to be uninstalled manually through "C:\Program Files\Xpra\unins000.exe"


The possible solutions of this issue IMHO are:

  1. If there is (any) xpra install, force uninstall or abort.
  2. Use different names, entries etc


As (1) has the complexity that xpra versions cannot co-exist (which might be wanted?), I propose fix (2)

Attachments (1)

installed.png (53.6 KB) - added by Antoine Martin 7 weeks ago.
windows 7 "add and remove software" dialog

Download all attachments as: .zip

Change History (9)

comment:1 Changed 3 months ago by Antoine Martin

Component: corepackaging
Description: modified (diff)
Status: newassigned

We already uninstall any existing version before installing a new one.
The fact that it doesn't remove the 32-bit one before installing the 64-bit one means that innosetup is already using a different appid for each - no idea how. (see install appid)

The innosetup script: browser/xpra/trunk/src/win32/xpra.iss looks up Software\Microsoft\Windows\CurrentVersion\Uninstall\Xpra_is1.
Maybe this needs to be 32-bit / 64-bit aware somehow?

comment:2 Changed 3 months ago by Antoine Martin

For completeness, 2 more things:

  • how do we want to deal with file associations... overwrite them with the newer package? What about restoring them on uninstall?
  • python2 vs python3: not going to worry about this, python3 will be the only build soon
  • client vs full builds: same, just replace the other build

Changed 7 weeks ago by Antoine Martin

Attachment: installed.png added

windows 7 "add and remove software" dialog

comment:3 Changed 7 weeks ago by Antoine Martin

Owner: changed from Antoine Martin to stdedos
Status: assignednew

Should be fixed in r21952. We now also show the full version details (r21953)
There are newer beta builds uploaded.
The "add and remove" software dialog should now show something like this:
windows 7 "add and remove software" dialog

We could do the same thing for python2 vs python3 builds, but since python2 is going away soon, we won't.

Note: you can install both 32-bit and 64-bit versions on the same system but some registry keys will point to the last version you install and when you remove that version the features that rely on those keys will not work.
ie: ".xpra" file associations and "xpra" urls.

comment:4 Changed 7 weeks ago by Antoine Martin

Forgot to upload newer beta builds, now done.

comment:5 Changed 6 weeks ago by stdedos

Resolution: fixed
Status: newclosed

Verified everything in the http://xpra.org/trac/ticket/2126#comment:3 comment.


I just want to disambiguate something you noted:

but some registry keys will point to the last version you install and when you remove that version the features that rely on those keys will not work.

So if I:

  • install x86
  • install x64
  • uninstall x86

Then the

".xpra" file associations and "xpra" urls.

will cease to exist, right?

comment:6 Changed 6 weeks ago by Antoine Martin

.. will cease to exist, right?

Most likely, I've tested the other way: uninstall x64, and it didn't revert to the x86 mapping.

There might be a way to tell innosetup to backup the previous key values.
I could only find: Registry section: createvalueifdoesntexist: When this flag is specified, Setup will create the value only if a value of the same name doesn't already exist. This flag has no effect if the data type is none, or if you specify the deletevalue flag
Problem is that this does not solve the uninstall issue, none of the "uninstall" options they have would help it seems.

comment:7 Changed 6 weeks ago by stdedos

I guess that's okay. Just put the warning next to the "official dl page", that, hey, multiple versions are okay BUT references point only to the latest installation

comment:8 Changed 5 weeks ago by totaamwin32

Hopefully this didn't cause #2224.

Note: See TracTickets for help on using tickets.