Opened 8 years ago

Closed 8 years ago

#50103 closed defect (fixed)

perl5: using perl5 port group to create variants results in circular logic

Reported by: dbevans (David B. Evans) Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: perl5

Description

The circular logic derives from the fact that the perl5 port group checks the version of the perl installed by perl5 to determine the default variant. This results in perl5's default variant always being set to the currently installed variant rather than +perl5_22 as it should be. This is the correct behavior for other ports that declare perl variants but not for port perl5 which is a special case.

Because of this, I'm suggesting that you manually set the perl5 variants rather than using the perl5 port group to set them.

Change History (5)

comment:1 Changed 8 years ago by mojca (Mojca Miklavec)

Do you mean just adding

perl5.default_branch    5.22

to the perl5 port?

comment:2 Changed 8 years ago by mojca (Mojca Miklavec)

Unrelated, but weird: while doing some tests and compiling perl5.16, the compilation failed with

error: use of undeclared identifier 'KERN_PROC_PATHNAME'

In the next attempt it ran just fine, so I'm slightly confused.

The above change seems to fix the problem of circular dependency, but I would like your confirmation just in case. Thanks a lot for spotting this.

And another tiny request: can you please try to revbump all the perl5.x ports locally and check if you notice any problems? We had a working perl that I broke for a few hours, but some users upgraded exactly in that time window, so we should revbump. I just want to avoid revbumping to a broken version and risk breaking everyone's installation, not just the one of those who were unlucky enough to upgrade at that time.

comment:3 in reply to:  1 Changed 8 years ago by dbevans (David B. Evans)

Replying to mojca@…:

Do you mean just adding

perl5.default_branch    5.22

to the perl5 port?

Yes, that works (just tested) but it needs to go before the call to perl5.create_variants.

comment:4 in reply to:  2 Changed 8 years ago by dbevans (David B. Evans)

Replying to mojca@…:

And another tiny request: can you please try to revbump all the perl5.x ports locally and check if you notice any problems? We had a working perl that I broke for a few hours, but some users upgraded exactly in that time window, so we should revbump. I just want to avoid revbumping to a broken version and risk breaking everyone's installation, not just the one of those who were unlucky enough to upgrade at that time.

After bumping the revision, all 4 perl5.* subports built for me without problem. Didn't see anything like the transient error that you mentioned for perl5.16 above.

Anything more that I should be looking for?

comment:5 Changed 8 years ago by mojca (Mojca Miklavec)

Resolution: fixed
Status: newclosed
Version: 2.3.4

I committed r143798.

I'm not sure what to look for. I compared my old installation and the revbumped update by extracting the files and running diff -r. Lots of timestamps everywhere that we'll have to fix when we start worrying about reproducible builds. If there were any real differences, I probably missed them in the sea of the rest.

Note: See TracTickets for help on using tickets.