unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
@ 2024-01-27  9:24 Дилян Палаузов
  2024-01-28  3:00 ` Stefan Kangas
  0 siblings, 1 reply; 10+ messages in thread
From: Дилян Палаузов @ 2024-01-27  9:24 UTC (permalink / raw)
  To: 68756

Hello,

I have installed Emacs on Windows using emacs-29.1_2-installer.exe . It has put a folder named “Emacs 29.1” in the Start Menu.  That folder has two icons “Emacs” and “Uninstall”.

Then I installed emacs-29.2-installer.exe .  It asks “Select the Start Menu folder in which you would like to create program's shortcuts.  You can also enter a name to create a new folder” and the system suggests as name “Emacs-29.2”.  I «Close» to complete the setup with the suggested folder.  Now I have for each emacs version a separate directory under C:\Program Files\Emacs .

I also have two Start Menu folders: Emacs-29.1 containing “Emacs” and “Uninstall” and Emacs-29.2 containing only “Emacs”.  I click on “Uninstall”.  It says “Emacs-29.2 will be uninstalled”, despite being in the 29.1 folder, but it actually deletes the emacs-29.1 and emacs-29.2 files.  After the deinstallation the Start Menu folders “Emacs-29.1 and Emacs-29.2” are still present.

• Uninstalling emacs should remove the Start Menu directories, created during installing emacs.
• Installing emacs should ask to first remove the previously installed emacs version, as long as it does not do inplace upgrade (substitution).

Kind regards
  Дилян





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-01-27  9:24 bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation Дилян Палаузов
@ 2024-01-28  3:00 ` Stefan Kangas
  2024-01-28 17:56   ` Corwin Brust
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Kangas @ 2024-01-28  3:00 UTC (permalink / raw)
  To: Дилян Палаузов,
	68756
  Cc: Corwin Brust

Дилян Палаузов <dilyan.palauzov@aegee.org> writes:

> Hello,
>
> I have installed Emacs on Windows using emacs-29.1_2-installer.exe . It has put a folder named “Emacs 29.1” in the Start Menu.  That folder has two icons “Emacs” and “Uninstall”.
>
> Then I installed emacs-29.2-installer.exe .  It asks “Select the Start Menu folder in which you would like to create program's shortcuts.  You can also enter a name to create a new folder” and the system suggests as name “Emacs-29.2”.  I «Close» to complete the setup with the suggested folder.  Now I have for each emacs version a separate directory under C:\Program Files\Emacs .
>
> I also have two Start Menu folders: Emacs-29.1 containing “Emacs” and “Uninstall” and Emacs-29.2 containing only “Emacs”.  I click on “Uninstall”.  It says “Emacs-29.2 will be uninstalled”, despite being in the 29.1 folder, but it actually deletes the emacs-29.1 and emacs-29.2 files.  After the deinstallation the Start Menu folders “Emacs-29.1 and Emacs-29.2” are still present.
>
> • Uninstalling emacs should remove the Start Menu directories, created during installing emacs.
> • Installing emacs should ask to first remove the previously installed emacs version, as long as it does not do inplace upgrade (substitution).
>
> Kind regards
>   Дилян

Corwin, could you please take a look at the above bug report?





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-01-28  3:00 ` Stefan Kangas
@ 2024-01-28 17:56   ` Corwin Brust
  2024-01-28 20:04     ` Stefan Kangas
  0 siblings, 1 reply; 10+ messages in thread
From: Corwin Brust @ 2024-01-28 17:56 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: 68756,
	Дилян Палаузов

On Sat, Jan 27, 2024 at 9:00 PM Stefan Kangas <stefankangas@gmail.com> wrote:
>
> Дилян Палаузов <dilyan.palauzov@aegee.org> writes:
>
> >
> > • Uninstalling emacs should remove the Start Menu directories, created during installing emacs.
> > • Installing emacs should ask to first remove the previously installed emacs version, as long as it does not do inplace upgrade (substitution).
> >
> > Kind regards
> >   Дилян
>
> Corwin, could you please take a look at the above bug report?
>

Absolutely; I saw this but have not started digging in, nor did I make
a simple "ACK" reply, as probably I ought to have done.  Is there
anything in the tracker or otherwise I should do to "assign to
self"/claim/volunteer, or is the correct way simply to reply back
"thank you for the bug report, I plan to look <but-life|soonish>"?





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-01-28 17:56   ` Corwin Brust
@ 2024-01-28 20:04     ` Stefan Kangas
  2024-02-11 22:56       ` bug#67667: " Corwin Brust
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Kangas @ 2024-01-28 20:04 UTC (permalink / raw)
  To: Corwin Brust
  Cc: 68756,
	Дилян Палаузов

Corwin Brust <corwin@bru.st> writes:

> Is there anything in the tracker or otherwise I should do to "assign
> to self"/claim/volunteer, or is the correct way simply to reply back
> "thank you for the bug report, I plan to look <but-life|soonish>"?

Given the limitations of our bug tracker, that's the only way I know of.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#67667: bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-01-28 20:04     ` Stefan Kangas
@ 2024-02-11 22:56       ` Corwin Brust
  2024-02-15 18:27         ` Дилян Палаузов
  0 siblings, 1 reply; 10+ messages in thread
From: Corwin Brust @ 2024-02-11 22:56 UTC (permalink / raw)
  To: Stefan Kangas,
	Дилян Палаузов
  Cc: 68756, 67667

[-- Attachment #1: Type: text/plain, Size: 2789 bytes --]

tags 68756 + patch
thanks

Дилян,  I have created an installer based on the attached patch and
posted it to my own site.  If you try that out please let me know what
you think.

https://bru.st/i/emacs-29.2.50_bug%2358756-installer.exe

Note, this is based on the "tip" of the emacs-29 branch, and not built
from the release sources for no other reason than expediency: I am
running a CI locally so I can easily test changes to the NSI installer
without (especially) compiling other things.  And that also means I'm
quite open to trying things, if we come up with more adventurous
changes than those proposed here.

Reprising your original expectations:

> • Uninstalling emacs should remove the Start Menu directories, created during installing emacs.

This is fixed, I believe, however a bug remains (I will file a new bug
given we wind up taking things in pieces, as I'm suggesting):
customizing the name of the Start Menu folder isn't working for me
with or without this patch.  Meanwhile:

> • Installing emacs should ask to first remove the previously installed emacs version, as long as it does not do inplace upgrade (substitution).

Per this patch I did not add any Sections or controls, however a given
uninstaller will no-longer delete any other versions beside the one it
installed.

I am open to better and more dramatic changes, but I think it might
make sense to work in stages, perhaps under quite granular bug
reports.  In any event, I expect to "work my way up" to any more
complex changes needed to the NSI script incrementally.

Stefan,

I think the attached minimal change, plus the other patch for not
needing to "accept" licensing in 67667 (which tracker I've added in
CC), would be a good basis for making a 29.2_2.  Ideally, we could
push these two and then I will create a 29.2_2 set.  From there, I'll
probably focus on improving things for the 30.1 series pre-tests
notwithstanding "show stoppers" with the top-of-stack 29.x binaries.
I can work on (each of) this smaller changes as much as needed, but
I'd like to keep the installer simple while we do. (E.g. defer adding
any new Sections/pages or controls we can live without until Emacs
30.)

As an example of something not addressed by the patch, only the mostly
recently installed Emacs can be uninstalled.  To address that will
require giving each uninstaller a unique name as part of creating it
under the installation target directory.  I'm fairly confident I'll
get that right, but I'm not as confident as I am of the one attached.
Moreover, I would prioritize fixing the issue of (potentially)
deleting several installed versions without mentioning (which, Дилян,
thank you again for reporting that that is happening).


Corwin

[-- Attachment #2: 0001-admin-nt-dist-build-emacs.nsi-Uninstall-delete-one-version-only.patch --]
[-- Type: application/octet-stream, Size: 1475 bytes --]

* admin/nt/dist-build/emacs.nsi: (Uninstall) delete only one version

Previously, the uninstaller would recursively, unconditionally, remove
the parent folder, rather than the sub-folder containing the binaries
corrisponding to the installer.  Now Uninstall will always remove the
files copied during Install and remove (e.g.) "Program Files\Emacs" only
if no other (e.g.)  copies of Emacs (or other files) remain
therein. Additionally, the uninstaller did not remove the Shortcut to
runemacs.exe, preventing deletion of the Start Menu entry. (Bug#56856)
---
 admin/nt/dist-build/emacs.nsi | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/admin/nt/dist-build/emacs.nsi b/admin/nt/dist-build/emacs.nsi
index 557bb106dde..bc9db61b9ae 100644
--- a/admin/nt/dist-build/emacs.nsi
+++ b/admin/nt/dist-build/emacs.nsi
@@ -66,12 +66,16 @@ Section "Uninstall"
   # Always delete uninstaller first
   Delete "$INSTDIR\Uninstall.exe"
 
-  # now delete installed directory
-  RMDir /r "$INSTDIR"
+  # recursively delete directory for this version
+  RMDir /r "$INSTDIR\emacs-${VERSION_BRANCH}"
+
+  # remove the Emacs directory in Program Files (if empty)
   RMDir "$INSTDIR"
 
   !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
 
+  # remove Start Menu Program shortcuts
+  Delete "$SMPROGRAMS\$StartMenuFolder\Emacs.lnk"
   Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk"
   RMDir "$SMPROGRAMS\$StartMenuFolder"
 SectionEnd
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-02-11 22:56       ` bug#67667: " Corwin Brust
@ 2024-02-15 18:27         ` Дилян Палаузов
  2024-02-15 18:47           ` bug#68756: bug#67667: " Corwin Brust
  0 siblings, 1 reply; 10+ messages in thread
From: Дилян Палаузов @ 2024-02-15 18:27 UTC (permalink / raw)
  To: Corwin Brust, Stefan Kangas; +Cc: 68756, 67667

[-- Attachment #1: Type: text/plain, Size: 3712 bytes --]

Hello Corwin,

before installing emacs-29.2.50_bug#58756-installer.exe I have installed emacs-29.2-installer.exe . The latter has created a Start Menu group emacs 29.2 with two icons - emacs and uninstall. After installing emacs-29.2.50_bug#58756-installer.exe it creates separate Start Menu directory 29.2.50. The Start menu Emacs 29.2/uninstall disappears. After clicking Start Menu/emacs 29.2.50/uninstall the entry Emacs 29.2/uninstall appears again, but it is now dysfunctional. Apart from this, uninstalling 29.2.50 does remove the Start Menu entries it has created. I cannot test if two different versions work during install/uninstall as expected, since I have no two different versions which are at the same time “fixed”.

Kind regards
  Дилян 

На 11 февруари 2024 г. 22:56:17 UTC, Corwin Brust <corwin@bru.st> написа:
>tags 68756 + patch
>thanks
>
>Дилян,  I have created an installer based on the attached patch and
>posted it to my own site.  If you try that out please let me know what
>you think.
>
>https://bru.st/i/emacs-29.2.50_bug%2358756-installer.exe
>
>Note, this is based on the "tip" of the emacs-29 branch, and not built
>from the release sources for no other reason than expediency: I am
>running a CI locally so I can easily test changes to the NSI installer
>without (especially) compiling other things.  And that also means I'm
>quite open to trying things, if we come up with more adventurous
>changes than those proposed here.
>
>Reprising your original expectations:
>
>> • Uninstalling emacs should remove the Start Menu directories, created during installing emacs.
>
>This is fixed, I believe, however a bug remains (I will file a new bug
>given we wind up taking things in pieces, as I'm suggesting):
>customizing the name of the Start Menu folder isn't working for me
>with or without this patch.  Meanwhile:
>
>> • Installing emacs should ask to first remove the previously installed emacs version, as long as it does not do inplace upgrade (substitution).
>
>Per this patch I did not add any Sections or controls, however a given
>uninstaller will no-longer delete any other versions beside the one it
>installed.
>
>I am open to better and more dramatic changes, but I think it might
>make sense to work in stages, perhaps under quite granular bug
>reports.  In any event, I expect to "work my way up" to any more
>complex changes needed to the NSI script incrementally.
>
>Stefan,
>
>I think the attached minimal change, plus the other patch for not
>needing to "accept" licensing in 67667 (which tracker I've added in
>CC), would be a good basis for making a 29.2_2.  Ideally, we could
>push these two and then I will create a 29.2_2 set.  From there, I'll
>probably focus on improving things for the 30.1 series pre-tests
>notwithstanding "show stoppers" with the top-of-stack 29.x binaries.
>I can work on (each of) this smaller changes as much as needed, but
>I'd like to keep the installer simple while we do. (E.g. defer adding
>any new Sections/pages or controls we can live without until Emacs
>30.)
>
>As an example of something not addressed by the patch, only the mostly
>recently installed Emacs can be uninstalled.  To address that will
>require giving each uninstaller a unique name as part of creating it
>under the installation target directory.  I'm fairly confident I'll
>get that right, but I'm not as confident as I am of the one attached.
>Moreover, I would prioritize fixing the issue of (potentially)
>deleting several installed versions without mentioning (which, Дилян,
>thank you again for reporting that that is happening).
>
>
>Corwin

[-- Attachment #2: Type: text/html, Size: 4514 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#68756: bug#67667: bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-02-15 18:27         ` Дилян Палаузов
@ 2024-02-15 18:47           ` Corwin Brust
  2024-02-15 19:30             ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Corwin Brust @ 2024-02-15 18:47 UTC (permalink / raw)
  To: Дилян Палаузов,
	Eli Zaretskii, Stefan Kangas
  Cc: 68756

On Thu, Feb 15, 2024 at 12:27 PM Дилян Палаузов
<Dilyan.Palauzov@aegee.org> wrote:
>
> Hello Corwin,
>
> before installing emacs-29.2.50_bug#58756-installer.exe I have installed emacs-29.2-installer.exe . The latter has created a Start Menu group emacs 29.2 with two icons - emacs and uninstall. After installing emacs-29.2.50_bug#58756-installer.exe it creates separate Start Menu directory 29.2.50. The Start menu Emacs 29.2/uninstall disappears. After clicking Start Menu/emacs 29.2.50/uninstall the entry Emacs 29.2/uninstall appears again, but it is now dysfunctional. Apart from this, uninstalling 29.2.50 does remove the Start Menu entries it has created. I cannot test if two different versions work during install/uninstall as expected, since I have no two different versions which are at the same time “fixed”.
>

Thank you very much for testing Дилян.  This is as I would expect: I
won't be able to change the behavior of previously created installers.

For this reason we should probably put out some type of advisory that
using executing any version of the installer published so far will
unconditionally remove <program files>\Emacs and all version of Emacs
therein.

Stefan, Eli,

Do you have thoughts on alerting users of the windows installer to
this, and how we would best do that? (Is this a good candidate for
PROBLEMS?)





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#68756: bug#67667: bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-02-15 18:47           ` bug#68756: bug#67667: " Corwin Brust
@ 2024-02-15 19:30             ` Eli Zaretskii
  2024-02-15 20:32               ` Corwin Brust
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2024-02-15 19:30 UTC (permalink / raw)
  To: Corwin Brust; +Cc: 68756, Dilyan.Palauzov, stefankangas

> From: Corwin Brust <corwin@bru.st>
> Date: Thu, 15 Feb 2024 12:47:18 -0600
> Cc: 68756@debbugs.gnu.org
> 
> On Thu, Feb 15, 2024 at 12:27 PM Дилян Палаузов
> <Dilyan.Palauzov@aegee.org> wrote:
> >
> > Hello Corwin,
> >
> > before installing emacs-29.2.50_bug#58756-installer.exe I have installed emacs-29.2-installer.exe . The latter has created a Start Menu group emacs 29.2 with two icons - emacs and uninstall. After installing emacs-29.2.50_bug#58756-installer.exe it creates separate Start Menu directory 29.2.50. The Start menu Emacs 29.2/uninstall disappears. After clicking Start Menu/emacs 29.2.50/uninstall the entry Emacs 29.2/uninstall appears again, but it is now dysfunctional. Apart from this, uninstalling 29.2.50 does remove the Start Menu entries it has created. I cannot test if two different versions work during install/uninstall as expected, since I have no two different versions which are at the same time “fixed”.
> >
> 
> Thank you very much for testing Дилян.  This is as I would expect: I
> won't be able to change the behavior of previously created installers.
> 
> For this reason we should probably put out some type of advisory that
> using executing any version of the installer published so far will
> unconditionally remove <program files>\Emacs and all version of Emacs
> therein.
> 
> Stefan, Eli,
> 
> Do you have thoughts on alerting users of the windows installer to
> this, and how we would best do that? (Is this a good candidate for
> PROBLEMS?)

No, PROBLEMS is not a good place, I think.

But why cannot you remove those old shortcuts/submenus when the new
Emacs version is installed?





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#68756: bug#67667: bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-02-15 19:30             ` Eli Zaretskii
@ 2024-02-15 20:32               ` Corwin Brust
  2024-02-16  7:14                 ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Corwin Brust @ 2024-02-15 20:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 68756, Dilyan.Palauzov, stefankangas

On Thu, Feb 15, 2024 at 1:30 PM Eli Zaretskii <eliz@gnu.org> wrote:
>
> No, PROBLEMS is not a good place, I think.
>

Does it make sense to get the word out that running any version of the
installer so far published will remove all Emacs versions installed
under the chosen installation path (<Program FIles>\Emacs, by
default)?  If so, I'm not sure how.  (PROBLEMS is what I could think
of).

> But why cannot you remove those old shortcuts/submenus when the new
> Emacs version is installed?
>

Perhaps I can.  I agree to try.  To confirm, the goal would be to
remove any *broken* shortcuts, I think. (We do not currently create
submenus unless the user specifies the pathing manually.) We might
also consider deleting older uninstallers, however I'll come back to
this point.

If that is correct, a question would be if we can confine ourselves to
looking at the user's selected Start Menu folder, during install, or
if we should instead traverse the user's entire Start Menu hierarchy
looking for broken shortcuts to runemacs.exe (and maybe old
uninstallers), and deleting them.

Yet another option here would be scanning for older versions and
asking what to do with them.    This would be more of my preferred
option, however I don't expect to be fast creating and testing a
net-new feature created in a language I'm just learning, for this
work.  I guess I'll be racing to be ready for Emacs 30.1 pretests, if
we take all that on.

For this reason (there are much better solutions but I cannot create
and test them quickly), I think we should apply what we have so far
and I should produce a new set of binaries which installer will not
unconditionally uninstall older Emacs versions.  Users who want to
delete things can do so, but an unexpected recursive delete feels like
a very serious problem.

Do you have reservations, Eli?





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#68756: bug#67667: bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation
  2024-02-15 20:32               ` Corwin Brust
@ 2024-02-16  7:14                 ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2024-02-16  7:14 UTC (permalink / raw)
  To: Corwin Brust; +Cc: 68756, Dilyan.Palauzov, stefankangas

> From: Corwin Brust <corwin@bru.st>
> Date: Thu, 15 Feb 2024 14:32:10 -0600
> Cc: 68756@debbugs.gnu.org, Dilyan.Palauzov@aegee.org, stefankangas@gmail.com
> 
> On Thu, Feb 15, 2024 at 1:30 PM Eli Zaretskii <eliz@gnu.org> wrote:
> 
> > But why cannot you remove those old shortcuts/submenus when the new
> > Emacs version is installed?
> >
> 
> Perhaps I can.  I agree to try.  To confirm, the goal would be to
> remove any *broken* shortcuts, I think. (We do not currently create
> submenus unless the user specifies the pathing manually.) We might
> also consider deleting older uninstallers, however I'll come back to
> this point.
> 
> If that is correct, a question would be if we can confine ourselves to
> looking at the user's selected Start Menu folder, during install, or
> if we should instead traverse the user's entire Start Menu hierarchy
> looking for broken shortcuts to runemacs.exe (and maybe old
> uninstallers), and deleting them.

If the latter is feasible, perhaps do that, maybe as an option after
user confirmation?  The former is probably the minimum you should do.

> Yet another option here would be scanning for older versions and
> asking what to do with them.    This would be more of my preferred
> option, however I don't expect to be fast creating and testing a
> net-new feature created in a language I'm just learning, for this
> work.  I guess I'll be racing to be ready for Emacs 30.1 pretests, if
> we take all that on.
> 
> For this reason (there are much better solutions but I cannot create
> and test them quickly), I think we should apply what we have so far
> and I should produce a new set of binaries which installer will not
> unconditionally uninstall older Emacs versions.  Users who want to
> delete things can do so, but an unexpected recursive delete feels like
> a very serious problem.
> 
> Do you have reservations, Eli?

No, SGTM.  And it's your call anyway, as I don't have a lot of
experience using installers.





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-02-16  7:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-27  9:24 bug#68756: Uninstalling emacs does not remove Start Menu entries created during the installation Дилян Палаузов
2024-01-28  3:00 ` Stefan Kangas
2024-01-28 17:56   ` Corwin Brust
2024-01-28 20:04     ` Stefan Kangas
2024-02-11 22:56       ` bug#67667: " Corwin Brust
2024-02-15 18:27         ` Дилян Палаузов
2024-02-15 18:47           ` bug#68756: bug#67667: " Corwin Brust
2024-02-15 19:30             ` Eli Zaretskii
2024-02-15 20:32               ` Corwin Brust
2024-02-16  7:14                 ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).