[MacPorts] #26406: .packlist files contain each line twice

MacPorts noreply at macports.org
Wed Sep 8 00:39:01 PDT 2010


#26406: .packlist files contain each line twice
-------------------------------------+--------------------------------------
 Reporter:  ryandesign@…             |       Owner:  macports-tickets@…                   
     Type:  defect                   |      Status:  new                                  
 Priority:  Normal                   |   Milestone:                                       
Component:  ports                    |     Version:  1.9.1                                
 Keywords:                           |        Port:  perl5 portgroup                      
-------------------------------------+--------------------------------------
 Take for example p5-variable-magic:

 {{{
 $ cat /opt/local/lib/perl5/vendor_perl//5.8.9/darwin-
 2level/auto/Variable/Magic/.packlist
 /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/Variable/Magic.pm
 /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-
 2level/auto/Variable/Magic/Magic.bs
 /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-
 2level/auto/Variable/Magic/Magic.bundle
 /opt/local/share/man/man3/Variable::Magic.3pm
 /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/Variable/Magic.pm
 /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-
 2level/auto/Variable/Magic/Magic.bs
 /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-
 2level/auto/Variable/Magic/Magic.bundle
 /opt/local/share/man/man3/Variable::Magic.3pm
 }}}

 But this affects all ports that install a .packlist, which is probably
 most or all ports in the perl5 portgroup, and some more.

 The problem only occurs if the port is already installed and active and is
 then rebuilt, for example for an upgrade.

 During the initial install, all is well and only the paths to the items in
 the destroot get added to the .packlist. The perl5 portgroup's post-
 destroot reinplace removes the path to the destroot from each line and
 that's what gets installed.

 On an upgrade install, I think all the lines from the existing .packlist
 are copied into the new .packlist, then new lines are appended for the
 paths in the destroot, then when the perl5 portgroup removes the path to
 the destroot from those lines, they become the same as the first set of
 lines, making them duplicates.

 I think we need some line de-duplication code there, or a way to tell it
 not to look at an existing .packlist.

 A nice shortcut might be to first delete all lines in the new .packlist
 that do not contain the destroot path. Then remove the destroot path from
 the remaining lines. This should be an easy two-statement one-liner with
 sed; I'm not sure if reinplace alone can handle it.

 It might be nice if MacPorts base would take care of this for all ports
 automatically, rather than having to copy a block of code into each port
 that has a .packlist.

-- 
Ticket URL: <http://trac.macports.org/ticket/26406>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list