I have Shoes building. However, upon launch I get a dialog box from the OS saying that the exe is not a valid win32 application. I googled around for this problem and got the hint that I should verify that all library dependencies are being satisfied. So, I ran Dependency Walker on the Shoes.exe and discovered several problems. 1. Most of the dependent libraries are compiled for x64. The Shoes exe and the DLLs that were downloaded for it are all x86. The OS is Win7 x64. I don't know how to solve this. I thought the recipes would automatically compile for the correct target architecture. ??? 2. There are unsatisfied dependencies due to 4 missing DLLs. IESHIMS.DLL LIBFONTCONFIG-1.DLL FREETYPE6.DLL LIBPNG14-14.DLL When I examine the Shoes recipe that *used to work with MRI 1.9.1* I don't see any references to these DLLs. I do see that the build for the Mac OSX platform has libfontconfig and libpng as dependencies, but the Windows recipe never had it. I can download these prebuilt DLLs and drop them in to the directory containing the EXE, but I am curious to know how this worked in the original build recipe. Google tells me that the FREETYPE6.DLL error is a common Windows problem (I've never seen it before). I can easily download a prebuilt binary and drop it in, but I am curious how this got broken. IESHIMS.DLL is apparently a part of Internet Explorer 8. That needs to be on the PATH to discover this DLL. So, how did Shoes get a dependency on IE8 all of a sudden? :( 3. A user on irc (phinze) fixed some of the problems with compiling and linking the C libs in sandbox/shoes/req but he didn't commit those changes anywhere that I can find. Ultimately this is a problem that needs repair before we can "ship" so I'm hopeful he pops back into irc and shares his solution. We are close! cr
On Sep 28, 2011, at 11:21 AM, Chuck Remes wrote: > I have Shoes building. However, upon launch I get a dialog box from the OS saying that the exe is not a valid win32 application. > > I googled around for this problem and got the hint that I should verify that all library dependencies are being satisfied. So, I ran Dependency Walker on the Shoes.exe and discovered several problems. > > 1. Most of the dependent libraries are compiled for x64. The Shoes exe and the DLLs that were downloaded for it are all x86. > > The OS is Win7 x64. > > I don't know how to solve this. I thought the recipes would automatically compile for the correct target architecture. ??? > > > 2. There are unsatisfied dependencies due to 4 missing DLLs. > > IESHIMS.DLL > > LIBFONTCONFIG-1.DLL > > FREETYPE6.DLL > > LIBPNG14-14.DLL I copied these DLLs (except for IESHIMS) from a working installation of Shoes into the build target. Dependency Walker then said I needed LIBEXPAT-1.DLL, so I copied that over too. Dependency Walker gave me the green light (except for IESHIMS and the x86/x64 issue). On irc, phinze lamented the lack of good errors and the ability to run gdb. BUT, we *can* run gdb. So, I fired it up with "gdb --args shoes.exe" and it loaded the symbols. When I tried to run it, it errored out immediately: Error creating process C:\Users\cremes\rubyinstaller\sandbox\shoes\dist/shoes.exe, (error 193). Ideas? cr
On Sep 28, 2011, at 11:21 AM, Chuck Remes wrote: > I have Shoes building. However, upon launch I get a dialog box from the OS saying that the exe is not a valid win32 application. > > I googled around for this problem and got the hint that I should verify that all library dependencies are being satisfied. So, I ran Dependency Walker on the Shoes.exe and discovered several problems. > > 1. Most of the dependent libraries are compiled for x64. The Shoes exe and the DLLs that were downloaded for it are all x86. > > The OS is Win7 x64. > > I don't know how to solve this. I thought the recipes would automatically compile for the correct target architecture. ??? > > > 2. There are unsatisfied dependencies due to 4 missing DLLs. > > IESHIMS.DLL > > LIBFONTCONFIG-1.DLL > > FREETYPE6.DLL > > LIBPNG14-14.DLL > > When I examine the Shoes recipe that *used to work with MRI 1.9.1* I don't see any references to these DLLs. I do see that the build for the Mac OSX platform has libfontconfig and libpng as dependencies, but the Windows recipe never had it. I can download these prebuilt DLLs and drop them in to the directory containing the EXE, but I am curious to know how this worked in the original build recipe. > > Google tells me that the FREETYPE6.DLL error is a common Windows problem (I've never seen it before). I can easily download a prebuilt binary and drop it in, but I am curious how this got broken. > > IESHIMS.DLL is apparently a part of Internet Explorer 8. That needs to be on the PATH to discover this DLL. So, how did Shoes get a dependency on IE8 all of a sudden? :( > > > 3. A user on irc (phinze) fixed some of the problems with compiling and linking the C libs in sandbox/shoes/req but he didn't commit those changes anywhere that I can find. Ultimately this is a problem that needs repair before we can "ship" so I'm hopeful he pops back into irc and shares his solution. I examined the install directory for the last Windows release of Shoes. It contains a copy of LIBFONTCONFIG-1.DLL, FREETYPE6.DLL and LIBPNG14-14.DLL in its directory. However, I cannot find any logic in the various Shoes forks telling me how those DLLs got copied into there. :( cr
Chuck, are you looking at the 3.0 release version of the Rakefile? Maybe something has been removed by mistake. OS X does depend on libfreetype as well. We pick up the system's version and bundle that. Its a transitive dependency, though, so you will see it in Shoes.app/Contents/MacOS/ (at least in HEAD), but not in the Rakefile. I ran into architecture issues with OS X too, and partly it was because the -arch flags were hard coded in multiple places. Specifically, the command for compiling shoes.dylib was in a different place than the command for dependencies, and with a slightly different list of flags. I'd say it's likely to be that way in the windows build as well. I did fix that for OS X, by the way ;) You are so close! Eric On Sep 28, 2011, at 11:38 AM, Chuck Remes <cremes.devlist@mac.com> wrote: > > On Sep 28, 2011, at 11:21 AM, Chuck Remes wrote: > >> I have Shoes building. However, upon launch I get a dialog box from the OS saying that the exe is not a valid win32 application. >> >> I googled around for this problem and got the hint that I should verify that all library dependencies are being satisfied. So, I ran Dependency Walker on the Shoes.exe and discovered several problems. >> >> 1. Most of the dependent libraries are compiled for x64. The Shoes exe and the DLLs that were downloaded for it are all x86. >> >> The OS is Win7 x64. >> >> I don't know how to solve this. I thought the recipes would automatically compile for the correct target architecture. ??? >> >> >> 2. There are unsatisfied dependencies due to 4 missing DLLs. >> >> IESHIMS.DLL >> >> LIBFONTCONFIG-1.DLL >> >> FREETYPE6.DLL >> >> LIBPNG14-14.DLL >> >> When I examine the Shoes recipe that *used to work with MRI 1.9.1* I don't see any references to these DLLs. I do see that the build for the Mac OSX platform has libfontconfig and libpng as dependencies, but the Windows recipe never had it. I can download these prebuilt DLLs and drop them in to the directory containing the EXE, but I am curious to know how this worked in the original build recipe. >> >> Google tells me that the FREETYPE6.DLL error is a common Windows problem (I've never seen it before). I can easily download a prebuilt binary and drop it in, but I am curious how this got broken. >> >> IESHIMS.DLL is apparently a part of Internet Explorer 8. That needs to be on the PATH to discover this DLL. So, how did Shoes get a dependency on IE8 all of a sudden? :( >> >> >> 3. A user on irc (phinze) fixed some of the problems with compiling and linking the C libs in sandbox/shoes/req but he didn't commit those changes anywhere that I can find. Ultimately this is a problem that needs repair before we can "ship" so I'm hopeful he pops back into irc and shares his solution. > > > I examined the install directory for the last Windows release of Shoes. > > It contains a copy of LIBFONTCONFIG-1.DLL, FREETYPE6.DLL and LIBPNG14-14.DLL in its directory. However, I cannot find any logic in the various Shoes forks telling me how those DLLs got copied into there. :( > > cr >