Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the PathTools CPAN distribution.

Report information
The Basics
Id:
17823
Status:
resolved
Priority:
Low/Low
Queue:

People
Owner:
Nobody in particular
Requestors:
adamk [...] cpan.org
Cc:
AdminCc:

BugTracker
Severity:
Important
Broken in:
3.16
Fixed in:
(no value)



Subject: PathTools cannot recursively install on Win32 due to Cwd.dll locks
PathTools is one of a few things that are almost certainly going to be used by installers. As such, anything that tries to install something that recursively requires PathTools to be upgraded is going to see Cwd.dll almost certainly locked when it comes time to do make install. It's hard for me to see how you can fix this, but I think it's worth having the bug here, so it can be tracked. See example (Module::Build installing on a fresh Vanilla Perl failing to install File::Spec) attached.
Subject: failure_log.txt
CPAN.pm: Going to build K/KW/KWILLIAMS/Module-Build-0.2611.tar.gz # running Build.PL c:\vanilla-perl\perl\bin\perl.exe -Ilib Build.PL Checking whether your kit is complete... Looks good * Optional prerequisite ExtUtils::ParseXS isn't installed * Optional prerequisite ExtUtils::CBuilder isn't installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation. Feature 'YAML_support' disabled because of the following prerequisite failures: * Version 0.58 of YAML is installed, but we need version < 0.49 Creating new 'Build' script for 'Module-Build' version '0.2611' c:\vanilla-perl\perl\bin\perl.exe Build --makefile_env_macros 1 lib\Module\Build\Platform\Default.pm -> blib\lib\Module\Build\Platform\Default.p m lib\Module\Build\Platform\EBCDIC.pm -> blib\lib\Module\Build\Platform\EBCDIC.pm lib\Module\Build\Cookbook.pm -> blib\lib\Module\Build\Cookbook.pm lib\Module\Build\Platform\MacOS.pm -> blib\lib\Module\Build\Platform\MacOS.pm lib\Module\Build\Platform\cygwin.pm -> blib\lib\Module\Build\Platform\cygwin.pm lib\Module\Build\Platform\Amiga.pm -> blib\lib\Module\Build\Platform\Amiga.pm lib\Module\Build\Platform\VMS.pm -> blib\lib\Module\Build\Platform\VMS.pm lib\Module\Build.pm -> blib\lib\Module\Build.pm lib\Module\Build\Platform\MPEiX.pm -> blib\lib\Module\Build\Platform\MPEiX.pm lib\Module\Build\Platform\os2.pm -> blib\lib\Module\Build\Platform\os2.pm lib\Module\Build\Platform\aix.pm -> blib\lib\Module\Build\Platform\aix.pm lib\Module\Build\Base.pm -> blib\lib\Module\Build\Base.pm lib\Module\Build\Compat.pm -> blib\lib\Module\Build\Compat.pm lib\Module\Build\Platform\VOS.pm -> blib\lib\Module\Build\Platform\VOS.pm lib\Module\Build\Platform\darwin.pm -> blib\lib\Module\Build\Platform\darwin.pm lib\Module\Build\Platform\Unix.pm -> blib\lib\Module\Build\Platform\Unix.pm lib\Module\Build\PPMMaker.pm -> blib\lib\Module\Build\PPMMaker.pm lib\Module\Build\PodParser.pm -> blib\lib\Module\Build\PodParser.pm lib\Module\Build\Platform\Windows.pm -> blib\lib\Module\Build\Platform\Windows.p m lib\Module\Build\Platform\RiscOS.pm -> blib\lib\Module\Build\Platform\RiscOS.pm C:\vanilla-perl\perl\bin\pl2bat.bat < blib\script\config_data > blib\script\conf ig_data.bat Writing config notes to blib\lib\Module\Build\ConfigData.pm Manifying blib\script/config_data -> blib\bindoc\config_data.1 Manifying blib\lib/Module/Build/Platform/os2.pm -> blib\libdoc\Module.Build.Plat form.os2.3 Manifying blib\lib/Module/Build/ConfigData.pm -> blib\libdoc\Module.Build.Config Data.3 Manifying blib\lib/Module/Build/Platform/aix.pm -> blib\libdoc\Module.Build.Plat form.aix.3 Manifying blib\lib/Module/Build/Platform/darwin.pm -> blib\libdoc\Module.Build.P latform.darwin.3 Manifying blib\lib/Module/Build/Platform/cygwin.pm -> blib\libdoc\Module.Build.P latform.cygwin.3 Manifying blib\lib/Module/Build/Platform/MPEiX.pm -> blib\libdoc\Module.Build.Pl atform.MPEiX.3 Manifying blib\lib/Module/Build/PPMMaker.pm -> blib\libdoc\Module.Build.PPMMaker .3 Manifying blib\lib/Module/Build.pm -> blib\libdoc\Module.Build.3 Manifying blib\lib/Module/Build/Platform/Amiga.pm -> blib\libdoc\Module.Build.Pl atform.Amiga.3 Manifying blib\lib/Module/Build/Platform/Unix.pm -> blib\libdoc\Module.Build.Pla tform.Unix.3 Manifying blib\lib/Module/Build/Platform/VMS.pm -> blib\libdoc\Module.Build.Plat form.VMS.3 Manifying blib\lib/Module/Build/Compat.pm -> blib\libdoc\Module.Build.Compat.3 Manifying blib\lib/Module/Build/Base.pm -> blib\libdoc\Module.Build.Base.3 Manifying blib\lib/Module/Build/Platform/EBCDIC.pm -> blib\libdoc\Module.Build.P latform.EBCDIC.3 Manifying blib\lib/Module/Build/Platform/RiscOS.pm -> blib\libdoc\Module.Build.P latform.RiscOS.3 Manifying blib\lib/Module/Build/Platform/VOS.pm -> blib\libdoc\Module.Build.Plat form.VOS.3 Manifying blib\lib/Module/Build/Platform/MacOS.pm -> blib\libdoc\Module.Build.Pl atform.MacOS.3 Manifying blib\lib/Module/Build/Platform/Windows.pm -> blib\libdoc\Module.Build. Platform.Windows.3 Manifying blib\lib/Module/Build/Cookbook.pm -> blib\libdoc\Module.Build.Cookbook .3 Manifying blib\lib/Module/Build/Platform/Default.pm -> blib\libdoc\Module.Build. Platform.Default.3 HTMLifying blib\lib/Module/Build/Platform/os2.pm -> blib/html/site/lib/Module/Bu ild/Platform/os2.html HTMLifying blib\lib/Module/Build/ConfigData.pm -> blib/html/site/lib/Module/Buil d/ConfigData.html HTMLifying blib\lib/Module/Build/Platform/aix.pm -> blib/html/site/lib/Module/Bu ild/Platform/aix.html HTMLifying blib\lib/Module/Build/Platform/darwin.pm -> blib/html/site/lib/Module /Build/Platform/darwin.html HTMLifying blib\script/config_data -> blib/html/bin/config_data.html HTMLifying blib\lib/Module/Build/Platform/cygwin.pm -> blib/html/site/lib/Module /Build/Platform/cygwin.html HTMLifying blib\lib/Module/Build/Platform/MPEiX.pm -> blib/html/site/lib/Module/ Build/Platform/MPEiX.html HTMLifying blib\lib/Module/Build/PPMMaker.pm -> blib/html/site/lib/Module/Build/ PPMMaker.html HTMLifying blib\lib/Module/Build.pm -> blib/html/site/lib/Module/Build.html HTMLifying blib\lib/Module/Build/Platform/Amiga.pm -> blib/html/site/lib/Module/ Build/Platform/Amiga.html HTMLifying blib\lib/Module/Build/Platform/Unix.pm -> blib/html/site/lib/Module/B uild/Platform/Unix.html HTMLifying blib\lib/Module/Build/Platform/VMS.pm -> blib/html/site/lib/Module/Bu ild/Platform/VMS.html HTMLifying blib\lib/Module/Build/Compat.pm -> blib/html/site/lib/Module/Build/Co mpat.html HTMLifying blib\lib/Module/Build/Base.pm -> blib/html/site/lib/Module/Build/Base .html HTMLifying blib\lib/Module/Build/Platform/EBCDIC.pm -> blib/html/site/lib/Module /Build/Platform/EBCDIC.html HTMLifying blib\lib/Module/Build/Platform/RiscOS.pm -> blib/html/site/lib/Module /Build/Platform/RiscOS.html HTMLifying blib\lib/Module/Build/Platform/VOS.pm -> blib/html/site/lib/Module/Bu ild/Platform/VOS.html HTMLifying blib\lib/Module/Build/Platform/MacOS.pm -> blib/html/site/lib/Module/ Build/Platform/MacOS.html HTMLifying blib\lib/Module/Build/Platform/Windows.pm -> blib/html/site/lib/Modul e/Build/Platform/Windows.html HTMLifying blib\lib/Module/Build/Cookbook.pm -> blib/html/site/lib/Module/Build/ Cookbook.html HTMLifying blib\lib/Module/Build/Platform/Default.pm -> blib/html/site/lib/Modul e/Build/Platform/Default.html C:\vanilla-perl\bin\dmake.EXE -- OK Running make test c:\vanilla-perl\perl\bin\perl.exe Build --makefile_env_macros 1 test t\basic.........ok t\compat........ok t\ext...........ok t\extend........ok t\files.........ok t\install.......ok t\manifypods....ok t\notes.........ok t\pod_parser....ok t\runthrough....ok 7/28 skipped: YAML.pm is not installed, or disabled t\signature.....skipped all skipped: Skipping unless $ENV{TEST_SIGNATURE} is true t\versions......ok t\xs............ok 2/12 skipped: skipping a couple Unixish-only tests All tests successful, 1 test and 9 subtests skipped. Files=13, Tests=323, 48 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU) C:\vanilla-perl\bin\dmake.EXE test -- OK Running make install c:\vanilla-perl\perl\bin\perl.exe Build --makefile_env_macros 1 install Installing C:\vanilla-perl\perl\man\man1\config_data.1 Installing C:\vanilla-perl\perl\html\bin\config_data.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Base.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Compat.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\ConfigData.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Cookbook.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\PPMMaker.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\aix.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\Amiga.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\cygwin.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\darwin.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\Default.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\EBCDIC.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\MacOS.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\MPEiX.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\os2.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\RiscOS.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\Unix.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\VMS.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\VOS.html Installing C:\vanilla-perl\perl\html\site\lib\Module\Build\Platform\Windows.html Installing C:\vanilla-perl\perl\site\lib\Module\Build.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Base.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Compat.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\ConfigData.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Cookbook.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\PodParser.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\PPMMaker.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\aix.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\Amiga.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\cygwin.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\darwin.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\Default.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\EBCDIC.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\MacOS.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\MPEiX.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\os2.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\RiscOS.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\Unix.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\VMS.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\VOS.pm Installing C:\vanilla-perl\perl\site\lib\Module\Build\Platform\Windows.pm Installing C:\vanilla-perl\perl\man\man3\Module.Build.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Base.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Compat.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.ConfigData.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Cookbook.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.aix.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.Amiga.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.cygwin.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.darwin.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.Default.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.EBCDIC.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.MacOS.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.MPEiX.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.os2.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.RiscOS.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.Unix.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.VMS.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.VOS.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.Platform.Windows.3 Installing C:\vanilla-perl\perl\man\man3\Module.Build.PPMMaker.3 Installing C:\vanilla-perl\perl\bin\config_data Installing C:\vanilla-perl\perl\bin\config_data.bat Writing C:\vanilla-perl\perl\site\lib\auto\Module\Build\.packlist C:\vanilla-perl\bin\dmake.EXE install UNINST=1 -- OK CPAN is up to date (1.86_52). Bundle summary: The following items in bundle Bundle::CPAN had installation problems: File::Spec Module::Build is up to date (0.2611). Running make for K/KW/KWILLIAMS/PathTools-3.16.tar.gz Is already unwrapped into directory C:\DOCUME~1\adam\LOCALS~1\Temp\cpan\build\ PathTools-3.16 CPAN.pm: Going to build K/KW/KWILLIAMS/PathTools-3.16.tar.gz cp lib/File/Spec/Mac.pm blib\lib\File\Spec\Mac.pm cp lib/File/Spec/OS2.pm blib\lib\File\Spec\OS2.pm cp lib/File/Spec/VMS.pm blib\lib\File\Spec\VMS.pm cp lib/File/Spec/Cygwin.pm blib\lib\File\Spec\Cygwin.pm cp lib/File/Spec/Epoc.pm blib\lib\File\Spec\Epoc.pm cp lib/File/Spec/Functions.pm blib\lib\File\Spec\Functions.pm cp lib/File/Spec.pm blib\lib\File\Spec.pm cp Cwd.pm blib\lib\Cwd.pm cp lib/File/Spec/Unix.pm blib\lib\File\Spec\Unix.pm cp lib/File/Spec/Win32.pm blib\lib\File\Spec\Win32.pm C:\vanilla-perl\perl\bin\perl.exe C:\vanilla-perl\perl\lib\ExtUtils\xsubpp -typ emap C:\vanilla-perl\perl\lib\ExtUtils\typemap Cwd.xs > Cwd.xsc && C:\vanilla-p erl\perl\bin\perl.exe -MExtUtils::Command -e mv Cwd.xsc Cwd.c gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_ IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX -s -O2 -DVERSION=\"3. 16\" -DXS_VERSION=\"3.16\" "-IC:\vanilla-perl\perl\lib\CORE" Cwd.c Running Mkbootstrap for Cwd () C:\vanilla-perl\perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Cwd.bs C:\vanilla-perl\perl\bin\perl.exe -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Cwd\", 'DLBASE' => 'Cwd', 'DL_FUNCS' => { }, 'FUN CLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" dlltool --def Cwd.def --output-exp dll.exp g++ -o blib\arch\auto\Cwd\Cwd.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"c:\va nilla-perl\perl\lib\CORE" -L"C:\vanilla-perl\MinGW\lib" Cwd.o -Wl,--image-base,0 x271b0000 C:\vanilla-perl\perl\lib\CORE\libperl58.a -lmsvcrt -lmoldname -lkerne l32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut 32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 dll.ex p dlltool --def Cwd.def --base-file dll.base --output-exp dll.exp g++ -o blib\arch\auto\Cwd\Cwd.dll -mdll -s -L"c:\vanilla-perl\perl\lib\CORE" -L" C:\vanilla-perl\MinGW\lib" Cwd.o -Wl,--image-base,0x271b0000 C:\vanilla-perl\pe rl\lib\CORE\libperl58.a -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspo ol -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 dll.exp C:\vanilla-perl\perl\bin\perl.exe -MExtUtils::Command -e chmod 755 blib\arch\aut o\Cwd\Cwd.dll C:\vanilla-perl\perl\bin\perl.exe -MExtUtils::Command -e cp Cwd.bs blib\arch\aut o\Cwd\Cwd.bs C:\vanilla-perl\perl\bin\perl.exe -MExtUtils::Command -e chmod 644 blib\arch\aut o\Cwd\Cwd.bs C:\vanilla-perl\bin\dmake.EXE -- OK Running make test C:\vanilla-perl\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0 , 'blib\lib', 'blib\arch')" t/*.t t/crossplatform....ok 7/50 skipped: Can't load File::Spec::VMS t/cwd..............ok 2/30 skipped: no symlinks on this platform t/Functions........ok t/rel2abs2rel......ok t/Spec.............ok 83/474 skipped: various reasons t/taint............ok t/tmpdir...........ok t/win32............ok All tests successful, 92 subtests skipped. Files=8, Tests=584, 1 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU) C:\vanilla-perl\bin\dmake.EXE test -- OK Running make install Cannot forceunlink C:\vanilla-perl\perl\lib\auto\Cwd\Cwd.dll: Permission denied at C:/vanilla-perl/perl/lib/File/Find.pm line 918 dmake.EXE: Error code 141, while making 'pure_perl_install' C:\vanilla-perl\bin\dmake.EXE install UNINST=1 -- NOT OK Failed during this command: KWILLIAMS/PathTools-3.16.tar.gz : install NO cpan>
It's worth noting a couple of things here: 1) this only happens when you install using the Build.PL, not with the Makefile.PL. 2) even with the Build.PL, if you have a recent enough version of ExtUtils::Install, it will work. Unfortunately "recent enough" in this case means "as yet unreleased" still, right? -Ken
Subject: Re: [rt.cpan.org #17823] PathTools cannot recursively install on Win32 due to Cwd.dll locks
Date: Sat, 04 Mar 2006 15:33:38 +1100
To: bug-PathTools@rt.cpan.org
From: Adam Kennedy <adam@phase-n.com>
Ken_Williams via RT wrote:
Show quoted text
> It's worth noting a couple of things here: > > 1) this only happens when you install using the Build.PL, not with the Makefile.PL.
This is not so. It will happen in ANY situation in which something else may be using the file. That includes installations using Makefile.PL via CPAN.pm, and situations in which some other program completely is using it (imagine mod_perl on Win32 etc)
Show quoted text
> 2) even with the Build.PL, if you have a recent enough version of ExtUtils::Install, it will work. > > Unfortunately "recent enough" in this case means "as yet unreleased" still, right?
Eeeenteresting... Presumably ExtUtils::Install implements the mechanism I mentioned. I was wondering what happened to the 5p5 conversation on that. Adam K
From: ADAMK@cpan.org
On Fri Mar 03 23:33:55 2006, adam@phase-n.com wrote:
Show quoted text
> > > Ken_Williams via RT wrote:
> > It's worth noting a couple of things here: > > > > 1) this only happens when you install using the Build.PL, not with
> the Makefile.PL. > > This is not so. > > It will happen in ANY situation in which something else may be using > the > file. That includes installations using Makefile.PL via CPAN.pm, and > situations in which some other program completely is using it (imagine > mod_perl on Win32 etc) >
> > 2) even with the Build.PL, if you have a recent enough version of
> ExtUtils::Install, it will work.
> > > > Unfortunately "recent enough" in this case means "as yet unreleased"
> still, right? > > Eeeenteresting... > > Presumably ExtUtils::Install implements the mechanism I mentioned. > > I was wondering what happened to the 5p5 conversation on that. > > Adam K
OK, this has now been released. On Win32 only, you need to have a build-time dependency on ExtUtils::Install 1.39. Otherwise, you can resolve this bug.
Thanks, I'll release a new version with that prereq change. -Ken


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.