[wix-devs] 4822 - Delay ARP registration in Bundles until a non-permanent package is installed

Sean Hall r.sean.hall at gmail.com
Tue Jun 30 19:25:28 PDT 2020


I guess a different way to do this would be to add the ability to author an
alternative ARP DisplayName. So the normal one could be "My Bundle", and
the alternative one could be "My Bundle Prerequisites". Burn would use the
alternative DisplayName (if provided) when initially creating the ARP
entry, and then would update the ARP entry with the normal one once a
non-permanent package was installed.

This way, there's still an ARP entry tied to the cached bundle. But the
user isn't led to believe the installation is complete because the
alternative ARP DisplayName should make it clear that the actual
application hasn't been installed yet.

On Wed, Jul 1, 2020 at 9:26 AM Sean Hall <r.sean.hall at gmail.com> wrote:

> This new design would only leave detritus on the computer if the BA
> doesn't clean up. So unless we start allowing Burn to do real work without
> involving the BA, adding command line parameters wouldn't help. Also
> remember that the ARP entry isn't supposed to exist, we should only be
> concerned about cleaning the cache.
>
> Making the elevated engine automatically clean up based on a command-line
> parameter is possible, assuming that Burn shuts down cleanly (so we're
> still relying on a well-behaved BA).
>
> On Wed, Jul 1, 2020 at 3:24 AM Bob Arnson via wix-devs <
> wix-devs at lists.wixtoolset.org> wrote:
>
>> +1
>>
>> -----Original Message-----
>> From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Rob
>> Mensching via wix-devs
>> Sent: Tuesday, 30 June, 2020 13:23
>> To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
>> Cc: Rob Mensching <rob at firegiant.com>
>> Subject: Re: [wix-devs] 4822 - Delay ARP registration in Bundles until a
>> non-permanent package is installed
>>
>> Would it help if there was an additional command-line argument registered
>> with RunOnce when all packages planned were permanent?
>>
>> Then post-restart the run-once'd elevated Bundle would know if the cached
>> bundle and ARP should be removed if no execution happens (and possible
>> modify planning so execution removes ARP entry on failure).
>>
>> Bob's "registry cleaners" comment comes down to the fact that we really
>> don't want to have a design that says, "Registry cleaners are useful for
>> cleaning up the cache because we made a design decision that leaves behind
>> detritus on your computer".
>>
>> -----Original Message-----
>> From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Sean
>> Hall via wix-devs
>> Sent: Sunday, June 28, 2020 3:19 PM
>> To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
>> Cc: Sean Hall <r.sean.hall at gmail.com>
>> Subject: Re: [wix-devs] 4822 - Delay ARP registration in Bundles until a
>> non-permanent package is installed
>>
>> If it weren't for the reboot, then yes Burn could automatically uncache
>> at the end of Apply.
>>
>> In the reboot scenario, no. Burn would have to rely on the BA to uncache
>> if the user cancels. "Registry cleaners" are already incorrectly blowing
>> away Burn packages in the cache so I don't think that makes a difference
>> here.
>>
>> On Mon, Jun 29, 2020 at 8:00 AM Bob Arnson <bob at firegiant.com> wrote:
>>
>> > Could the bundle not trigger an uncache? If not, it's a nonstarter:
>> > Leaving cache behind is how "registry cleaners" start to legitimately
>> > target Burn and make everyone's life miserable.
>> >
>> > -----Original Message-----
>> > From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of
>> > Sean Hall via wix-devs
>> > Sent: Sunday, 28 June, 2020 17:33
>> > To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
>> > Cc: Sean Hall <r.sean.hall at gmail.com>
>> > Subject: Re: [wix-devs] 4822 - Delay ARP registration in Bundles until
>> > a non-permanent package is installed
>> >
>> > No, it doesn't need to be registered in ARP for anything but allowing
>> > the user to remove the bundle from the cache. The bundle can be run
>> > from the RunOnce key after the reboot without having an ARP entry. But
>> > it does need to stay in the cache. For security, the RunOnce key must
>> > point to the cached bundle. There's no way to do automatic uncache in
>> this scenario.
>> >
>> > On Mon, Jun 29, 2020 at 6:39 AM Bob Arnson <bob at firegiant.com> wrote:
>> >
>> > > It needs to register and be cached to restart on reboot, right? If
>> > > all packages are permanent and not cached, then automatic
>> > > unregiration/uncache seems reasonable.
>> > >
>> > > -----Original Message-----
>> > > From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of
>> > > Sean Hall via wix-devs
>> > > Sent: Sunday, 28 June, 2020 07:17
>> > > To: WiX Toolset Developer Mailing List
>> > > <wix-devs at lists.wixtoolset.org>
>> > > Cc: Sean Hall <r.sean.hall at gmail.com>
>> > > Subject: [wix-devs] 4822 - Delay ARP registration in Bundles until a
>> > > non-permanent package is installed
>> > >
>> > > I'm interested in implementing
>> > > https://github.com/wixtoolset/issues/issues/4822. This is the hard
>> > > scenario that needs to be solved:
>> > >
>> > > 1. User starts the per-machine bundle on a clean machine.
>> > > 2. The bundle has an MBA and needs to install the .NET Framework.
>> > > 3. The bundle caches itself into the package cache.
>> > > 4. The bundle registers in ARP.
>> > > 5. The bundle creates a RunOnce key.
>> > > 6. The bundle installs the permanent .NET package, which requires a
>> > reboot.
>> > > 7. The bundle updates the RunOnce key to resume after the reboot.
>> > > 8. The user allows the prereq BA to reboot the machine.
>> > > 9. RunOnce starts the bundle elevated.
>> > >
>> > > Because RunOnce always starts the target program elevated, we need
>> > > to cache the bundle into the package cache (or other protected area)
>> > > to be secure.
>> > > In order to allow the user to clean up their machine, we are
>> > > registering in ARP to give them a way to clean the cache.
>> > >
>> > > If we want to implement this feature, I think we're going to have to
>> > > allow the possibility of the bundle being cached without an ARP entry.
>> > > Either Burn removes the ARP registration somewhere between 6 and 8,
>> > > or it never registers in the first place (because all planned
>> > > packages are
>> > permanent).
>> > > Is this acceptable or is this feature not possible?
>> > > ____________________________________________________________________
>> > > WiX Toolset Developer Mailing List provided by FireGiant
>> > > http://www.firegiant.com/
>> > >
>> > ____________________________________________________________________
>> > WiX Toolset Developer Mailing List provided by FireGiant
>> > http://www.firegiant.com/
>> >
>> ____________________________________________________________________
>> WiX Toolset Developer Mailing List provided by FireGiant
>> http://www.firegiant.com/
>> ____________________________________________________________________
>> WiX Toolset Developer Mailing List provided by FireGiant
>> http://www.firegiant.com/
>> ____________________________________________________________________
>> WiX Toolset Developer Mailing List provided by FireGiant
>> http://www.firegiant.com/
>>
>



More information about the wix-devs mailing list