Projects
New Ticket     Wiki     Browse Source     Timeline     Roadmap     Bug Reports     Search

Ticket #12914 (new defect)

Opened 13 months ago

Last modified 3 days ago

"cd" TCL procedure should not be used in Portfiles anymore

Reported by: nox@… Owned by: ryandesign@…
Priority: High Milestone: Port Bugs
Component: ports Version: 1.6.0
Keywords: Cc: eridius@…, gwright@…, mww@…, waqar@…
Port:

Description

"cd" will be hidden from the subinterpreter in MacPorts 1.6, so we should not use it anymore. I've attached a small report about which ports still use it.

% find . -mindepth 3 -maxdepth 3 -name Portfile | xargs egrep '^[[:space:]]*cd\>' | tee ~/cd.grep | cut -f 2,3 -d / | uniq | tee ~/cd.ports

Attachments

cd.grep (21.3 KB) - added by nox@… 13 months ago.
cd.ports (4.4 KB) - added by nox@… 13 months ago.
ports_using_cd.php (2.1 KB) - added by ryandesign@… 12 months ago.

Change History

Changed 13 months ago by nox@…

Changed 13 months ago by nox@…

Changed 12 months ago by ryandesign@…

  • cc ryandesign@… added
  • owner changed from macports-dev@… to ryandesign@…

I'm taking the initiative here to fix this problem in as many nomaintainer ports as I can (though I'd appreciate help). I also sent an email to the maintainers of the remaining ports.

Changed 12 months ago by ryandesign@…

I was using a convoluted shell pipeline to see whom to send the mail to:

port file all | \
xargs grep "[[:space:]]cd[[:space:]]" | \
grep -v "system[[:space:]]" | \
sed -E 's%^.*/(.*)/Portfile.*$%\1%' | \
uniq | \
xargs port info --maintainer | \
sed -e 's%^maintainer: %%' -e 's%,%%' | \
xargs -n 1 echo | \
sort | \
uniq

This was unwieldy and besides did not take into account commented out lines or instructions printed in e.g. ui_msgs. So I wrote a more robust php script to figure it out. My current count is that 275 portfiles still need to be fixed, of which 123 are nomaintainer and 29 are openmaintainer. Thankfully jmpp has granted us a reprieve and MacPorts 1.6 will still have the cd command. So we have some more time to fix this.

To use the new script to examine all portfiles, say:

port file all | php ports_using_cd.php

Or you can pipe in the paths of any subset of files you want examined. For example, to examine just the nomaintainer ports:

port file maintainer:nomaintainer | php ports_using_cd.php

I initially sent a mail to 17 maintainers. I'm not sure now how I arrived at that list; I currently count 69 maintainers who need to fix their ports. I'm not sending out a new mail just yet.

Changed 12 months ago by ryandesign@…

Changed 6 weeks ago by jmr@…

  • cc gwright@…, mww@…, waqar@… added; nox@…, ryandesign@… removed

All nomaintainer and openmaintainer ports are now fixed. Ryan's script now shows 72 affected ports (two of which are false hits, incidentally). Adding the main offenders to cc.

Changed 13 days ago by nox@…

Status from r41624:

  • aqua/aquaterm
  • aqua/Chmox
  • aqua/GPGAppKit
  • aqua/SleepTight
  • archivers/arc
  • audio/libsdl_sound-framework
  • devel/gpgme-objc
  • devel/haskell-chunks
  • devel/haskell-hinstaller
  • devel/haskell-parsedate
  • devel/hoard
  • devel/lua-lunit
  • devel/spin
  • devel/subversion-perlbindings
  • devel/xmlwrapp
  • editors/jove
  • editors/nxml-mode
  • emulators/qemu-usermode
  • graphics/blender
  • graphics/exiftags
  • graphics/lablgl
  • java/javancss
  • java/objectweb-asm
  • lang/eiffelstudio
  • lang/eiffelstudio-devel
  • lang/g95
  • lang/gcc33
  • lang/gcc40
  • lang/ghc-devel
  • lang/gprolog
  • lang/jikespg
  • lang/jlint
  • lang/openmcl
  • lang/strategoxt
  • mail/mutt
  • mail/sympa
  • mail/vm-pop3d
  • math/DoCon
  • math/lp_solve
  • net/argus-monitor
  • net/binkd
  • net/cacti
  • net/http-replicator
  • net/monarch
  • net/nagios
  • net/nedi
  • net/netmrg
  • net/network-weathermap
  • net/nrg
  • net/psi-otr
  • net/pwlib
  • net/rancid
  • net/sclj
  • net/smokeping
  • net/xprobe2
  • net/zabbix
  • perl/p5-filesys-diskspace
  • perl/p5-net-dict
  • science/afni
  • security/metasploit2
  • security/metasploit3
  • security/racoon
  • sysutils/boxbackup
  • sysutils/cdargs
  • sysutils/compare
  • sysutils/count
  • sysutils/ipcs
  • tex/gtamacfonts
  • textproc/highlight
  • textproc/rman
  • textproc/tkman
  • textproc/wbxml2
  • www/midgard-php4
  • www/php5-midgard
  • www/tiki
  • x11/efont-unicode

Changed 13 days ago by markd@…

These ports are false positives because 'cd' is used within ui_msg statements:

net/monarch net/nagios net/nedi net/netmrg net/network-weathermap net/nrg net/rancid net/smokeping net/zabbix

Changed 3 days ago by nox@…

libsdl_audio-framework taken care of in r41806

Changed 3 days ago by nox@…

subversion-perlbindings is a false positive.

Note: See TracTickets for help on using tickets.