Re: I did something stupid and now can't uninstall a port

2017-12-19 Thread Kuba Ober


> 19 dec. 2017 kl. 20:24 skrev Ken Cunningham :
> 
> I have a port I'm working on, with a gui subport:
> 
> sheepshaver
> sheepshaver-gui
> 
> I accidentally made a typo installing the subport, and I typed this:
> 
> sudo port -v install  subport=sheepshaver=gui
> 
> 
> now I have a port installed like this:
> 
> $ port -v installed | grep sheep
> sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
> date='2017-12-19T16:50:16-0800'
> 
> 
> and I can't uninstall it:

Seems like this family of errors could be vanquished by judicious application 
of a fuzzer. I don’t know if there are any ready made interfaces between tcl 
and popular fuzzers, though. Perhaps one could be of use to MacPorts. I don’t 
have any time to offer to mess with that so this is merely to document my 
thoughts.

Cheers, Kuba

Re: I did something stupid and now can't uninstall a port

2017-12-19 Thread Ken Cunningham

On 2017-12-19, at 6:51 PM, Joshua Root wrote:
> 
> Well, that's unfortunate. We probably shouldn't allow port names that
> parseFullPortSpec doesn't recognise as such. (Or add a syntax to
> explicitly specify name,version,revision,variants separately and
> unambiguously.)
> 
> This particular case at least isn't possible in master any more, since
> specifying nonexistent subports causes an error.
> 
> If you add the mistake-name to the index, you should be able to select
> it for uninstallation with an expression like "installed and
> sheepshaver\*". Just need to add
> 
> subport sheepshaver=gui {}
> 
> to the portfile and run portindex.
> 
> - Josh

That worked, thanks!

I added the weird subport as you said, and then 

sudo port uninstall sheepshaver\*

cleaned it out. 

Much appreciated.

Ken


Re: I did something stupid and now can't uninstall a port

2017-12-19 Thread Ken Cunningham
No luck with either -- thanks for suggestion. K

On 2017-12-19, at 6:32 PM, Jeremy Lavergne wrote:

> Just a couple shell things to try:
> 
> Have you tried using single quotes around the portname?
> 
> How about using a double hyphen before portname e.g. `-- portname`?
> 
> On 12/19/2017 08:24 PM, Ken Cunningham wrote:
>> I have a port I'm working on, with a gui subport:
>> 
>> sheepshaver
>> sheepshaver-gui
>> 
>> I accidentally made a typo installing the subport, and I typed this:
>> 
>> sudo port -v install  subport=sheepshaver=gui
>> 
>> 
>> now I have a port installed like this:
>> 
>> $ port -v installed | grep sheep
>> sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
>> date='2017-12-19T16:50:16-0800'
>> 
>> 
>> and I can't uninstall it:
>> 
>> $ sudo port uninstall sheepshaver=gui
>> 
>> (does nothing)
>> 
>> $ sudo port uninstall sheepshaver
>> 
>> (does nothing)
>> 
>> $ port -v installed | grep sheep
>> sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
>> date='2017-12-19T16:50:16-0800'
>> 
>> 
>> I can't seem to uninstall, deactivate, or otherwise work with this port.
>> 
>> If I install sheepshaver, and then try to 
>> 
>> $ sudo port uninstall sheepshaver=gui
>> 
>> it uninstalls sheepshaver, but leaves sheepshaver=gui behind.
>> 
>> Weirdness.
>> 
>> Ken
>> 
> 



Re: I did something stupid and now can't uninstall a port

2017-12-19 Thread Joshua Root
On 2017-12-20 12:24 , Ken Cunningham wrote:
> I have a port I'm working on, with a gui subport:
> 
> sheepshaver
> sheepshaver-gui
> 
> I accidentally made a typo installing the subport, and I typed this:
> 
> sudo port -v install  subport=sheepshaver=gui
> 
> 
> now I have a port installed like this:
> 
> $ port -v installed | grep sheep
>  sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
> date='2017-12-19T16:50:16-0800'
> 
> 
> and I can't uninstall it:
> 
> $ sudo port uninstall sheepshaver=gui

Well, that's unfortunate. We probably shouldn't allow port names that
parseFullPortSpec doesn't recognise as such. (Or add a syntax to
explicitly specify name,version,revision,variants separately and
unambiguously.)

This particular case at least isn't possible in master any more, since
specifying nonexistent subports causes an error.

If you add the mistake-name to the index, you should be able to select
it for uninstallation with an expression like "installed and
sheepshaver\*". Just need to add

subport sheepshaver=gui {}

to the portfile and run portindex.

- Josh


Re: I did something stupid and now can't uninstall a port

2017-12-19 Thread Jeremy Lavergne
Just a couple shell things to try:

Have you tried using single quotes around the portname?

How about using a double hyphen before portname e.g. `-- portname`?

On 12/19/2017 08:24 PM, Ken Cunningham wrote:
> I have a port I'm working on, with a gui subport:
> 
> sheepshaver
> sheepshaver-gui
> 
> I accidentally made a typo installing the subport, and I typed this:
> 
> sudo port -v install  subport=sheepshaver=gui
> 
> 
> now I have a port installed like this:
> 
> $ port -v installed | grep sheep
>  sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
> date='2017-12-19T16:50:16-0800'
> 
> 
> and I can't uninstall it:
> 
> $ sudo port uninstall sheepshaver=gui
> 
> (does nothing)
> 
> $ sudo port uninstall sheepshaver
> 
> (does nothing)
> 
> $ port -v installed | grep sheep
>  sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
> date='2017-12-19T16:50:16-0800'
> 
> 
> I can't seem to uninstall, deactivate, or otherwise work with this port.
> 
> If I install sheepshaver, and then try to 
> 
> $ sudo port uninstall sheepshaver=gui
> 
> it uninstalls sheepshaver, but leaves sheepshaver=gui behind.
> 
> Weirdness.
> 
> Ken
> 



I did something stupid and now can't uninstall a port

2017-12-19 Thread Ken Cunningham
I have a port I'm working on, with a gui subport:

sheepshaver
sheepshaver-gui

I accidentally made a typo installing the subport, and I typed this:

sudo port -v install  subport=sheepshaver=gui


now I have a port installed like this:

$ port -v installed | grep sheep
 sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
date='2017-12-19T16:50:16-0800'


and I can't uninstall it:

$ sudo port uninstall sheepshaver=gui

(does nothing)

$ sudo port uninstall sheepshaver

(does nothing)

$ port -v installed | grep sheep
 sheepshaver=gui @20171215_0 (active) platform='darwin 10' archs='x86_64' 
date='2017-12-19T16:50:16-0800'


I can't seem to uninstall, deactivate, or otherwise work with this port.

If I install sheepshaver, and then try to 

$ sudo port uninstall sheepshaver=gui

it uninstalls sheepshaver, but leaves sheepshaver=gui behind.

Weirdness.

Ken