John Marino wrote in August to tell me about a problem with pkg-descr. He pointed out that new ports were not showing the contents of that file. He provided examples:
- devel/commit-patch
- devel/florist-gpl
- archivers/zip-ada
On beta, the results were correct for devel/commit-patch, but devel/florist-gpl and archivers/zip-ada were wrong.
I fixed the problem on dev, but then never took it farther. I was in the midst of moving from cvs to svn and I forgot to move this into production.
Thus, the problem lingered for anther 4 months.
Fortunately, John persisted, and today he wrote in again. This prompted me to look the bug again. The fix was easy:
Index: port.pm =================================================================== --- port.pm (revision 4551) +++ port.pm (working copy) @@ -664,7 +664,7 @@ # if it's defined, and it exists.... my $longdescription = ''; my $homepage = ''; - if (defined($RealDescrPath) && -f $RealDescrPath) { + if (defined($RealDescrPath)) { print "invoking _GetDescrAndHomePage() with '$RealDescrPath'\n"; ($longdescription, $homepage) = _GetDescrAndHomePage($RealDescrPath); }
Why do we no longer test that it’s a file? The script is running outside the chroot where the file is located. This test has existed since the early days. Getting rid of it allows the _GetDescrAndHomePage function to do the right thing.
Pushing the code to production took a few hours. The server was running off code from cvs. It took me an hour or so to configure things and get it running properly.
Then I ran a couple of scripts to refresh any missing data. These are the two queries I used to identify the ports which needed to be refreshed:
SELECT ports_active.id, ports_active.category, ports_active.name FROM ports_active WHERE homepage = '' OR homepage is null ORDER BY category, name; SELECT ports_active.id, ports_active.category, ports_active.name FROM ports_active WHERE long_description = '' OR long_description is null ORDER BY category, name "
There were 411 ports with an empty long_description, and 403 ports with an empty homepage.
Thanks John.