Oops, forgot to bundle MSVC DLLs

Bug #376801 reported by Albert Santoni
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Invalid
Critical
Sean M. Pappalardo
1.7
Fix Released
Critical
Sean M. Pappalardo

Bug Description

Quoting Sarah from a blog comment:

"Hey just downloaded [the Win64 build of Mixxx] and tried to install on my 64 bit vista machine. It tells me that the "side-by-side configuration is incorrect" when I try to run it, although the normal version of mixxx works fine."

Doing some googling yields:
http://channel9.msdn.com/forums/TechOff/22266-Side-by-side-screwup/
(and some other random articles about DLL versions being wrong, etc etc etc.)

Read that carefully. I think we might have accidentally bundled a .manifest file that we weren't supposed to. Can anyone confirm that this is or isn't the case?

Thanks,
Albert

Related branches

Albert Santoni (gamegod)
Changed in mixxx:
assignee: nobody → Pegasus (pegasus-renegadetech)
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

The results of trying those will help in determining where exactly the problem lies. Also, if she could grab any relevant events from the Application and System logs in the Event Viewer, that too would help. http://www.mixxx.org/wiki/doku.php/reporting_bugs#gathering_logs

Revision history for this message
reliable-robin-22 (nicolasdiogo) wrote :

hi,

i was trying to install the mixxx x64 on a vista ultimate x64 (amd64) and got the same error message, here is the application log

Activation context generation failed for "C:\Program Files (x86)\Mixxx\mixxx.exe". Dependent Assembly Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis.

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 376801] Re: Side-by-side configuration is incorrect

Uhhh, Sean, are we distributing the 64-bit version of the Microsoft
Visual C++ 2005 runtime DLLs with Mixxx?
http://www.microsoft.com/downloadS/details.aspx?FamilyID=eb4ebe2d-33c0-4a47-9dd4-b9a6d7bd44da&displaylang=en

The ones we distribute with our 32-bit builds are 32-bit. Also, if you
used MSVC 2008, then I think you should be bundling the Microsoft
Visual C++ 2008 (x64) runtime DLLs instead of the 2005 ones.

On Wed, May 20, 2009 at 2:33 AM, Nicolas Diogo <email address hidden> wrote:
> hi,
>
> i was trying to install the mixxx x64 on a vista ultimate x64 (amd64)
> and got the same error message, here is the application log
>
> Activation context generation failed for "C:\Program Files
> (x86)\Mixxx\mixxx.exe". Dependent Assembly
> Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
> could not be found. Please use sxstrace.exe for detailed diagnosis.
>
> --
> Side-by-side configuration is incorrect
> https://bugs.launchpad.net/bugs/376801
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

Revision history for this message
reliable-robin-22 (nicolasdiogo) wrote : Re: Side-by-side configuration is incorrect

hello again,

i believe my problem was related to .Net framework update that did not work properly.
after my failed attenpt to run mixxx i tried installing python and that also gave me the same error.

i rollback the .Net update and run the package again and it is all fine now.

thanks for the prompt response, and apologies for the false alarm.

Nicolas

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

We aren't distributing them at all to my knowledge. Some users may need to install them as explained in the last bullet here: http://mixxx.org/wiki/doku.php/compiling_on_windows#current_issues_fixes_todo

But Nicolas' find is interesting. I'll have to wreck my build environment to try to replicate the problem though.

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 376801] Re: Side-by-side configuration is incorrect

No no, we should be distributing the Visual Studio runtime DLLs. We
used to be at some point, and I don't recall anyone changing that.

Adam, do you remember what's going on with the runtime DLLs?

On Fri, May 22, 2009 at 12:40 PM, Pegasus <email address hidden> wrote:
> We aren't distributing them at all to my knowledge. Some users may need
> to install them as explained in the last bullet here:
> http://mixxx.org/wiki/doku.php/compiling_on_windows#current_issues_fixes_todo
>
> But Nicolas' find is interesting. I'll have to wreck my build
> environment to try to replicate the problem though.
>
> --
> Side-by-side configuration is incorrect
> https://bugs.launchpad.net/bugs/376801
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote : Re: Side-by-side configuration is incorrect

Ah so...opening the win32 build you made as a 7-Zip file indeed shows msvcm80, p80, and r80 dlls while my x64 build has none of those. They are commented out in the NSI file too, so I thought they were old or something. Do I need libflac and cmetrics too? (FLAC files work find in the x64 build for me as-is.) What's dbghelp.dll?

Albert Santoni (gamegod)
summary: - Side-by-side configuration is incorrect
+ Oops, forgot to bundle MSVC DLLs
Changed in mixxx:
importance: Undecided → Critical
milestone: none → 1.7.0
status: New → Confirmed
Changed in mixxx:
milestone: 1.7.0 → none
status: Confirmed → Invalid
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

r2444 of the 1.7 branch now contains a much more intelligent makerelease process which requires the presence of the msvc*.dll files. See http://mixxx.org/wiki/doku.php/build_windows_installer for full details.

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 376801] Re: Oops, forgot to bundle MSVC DLLs

Ahhh very nice, thank you!

On Tue, Jul 7, 2009 at 5:58 PM, Pegasus<email address hidden> wrote:
> r2444 of the 1.7 branch now contains a much more intelligent makerelease
> process which requires the presence of the msvc*.dll files. See
> http://mixxx.org/wiki/doku.php/build_windows_installer for full details.
>
> ** Changed in: mixxx/1.7
>       Status: Confirmed => Fix Committed
>
> ** Branch linked: lp:mixxx/1.7
>
> --
> Oops, forgot to bundle MSVC DLLs
> https://bugs.launchpad.net/bugs/376801
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

I'm still getting this error testing on Win32. The DLLs are in place. I'm afraid we'll have to include the MSM from the redistribution installer and get NSIS to install it as part of the Mixxx installation, so the DLLs end up in the SideBySide cache. I'm going to need help on this. Otherwise, we just package the entire vc redist and call its installer (wasting space on the users' HD.)

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Okay, it's related to the pre-built dependencies. The DLLs listed in the winXX_build\mixxx.exe.manifest file need to be included in the package along with _their_ .manifest files.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :
Revision history for this message
Albert Santoni (gamegod) wrote :

http://doc.trolltech.com/4.5/deployment-windows.html#visual-studio-2005-onwards
This is also a good read.
Check out that Dependency Walker tool they recommend (
http://www.dependencywalker.com/ ). Seems like the equivalent of ldd
on Linux or otool on OS X, and would probably help us out.

What are the other DLLs that needed bundling?

I thought we came to the conclusion that we could just totally ignore
the .manifest stuff and throw the required DLLs in Mixxx's folder. ???

On Sun, Jul 26, 2009 at 10:16 PM, Pegasus<email address hidden> wrote:
> For reference: http://msdn.microsoft.com/en-us/library/ms235342(VS.80).aspx
> and: http://msdn.microsoft.com/en-us/library/ms235265(VS.80).aspx
> and: http://msdn.microsoft.com/en-us/library/8kche8ah(VS.80).aspx
>
> --
> Oops, forgot to bundle MSVC DLLs
> https://bugs.launchpad.net/bugs/376801
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

Revision history for this message
ironstorm (ironstorm-gmail) wrote :

You gents asked me to take it out of the rewritten NSIS installer script on Mar 11...

> Hey Garth,
>
> Can you remove this part of the NSIS file?
>
> 78
> 79 ; We include the MSVC CRT manifest if it exists, otherwise we continue... MSVC builds need this, MinGW builds do not.
> 80 File /nonfatal "..\mixxx-winlib\Microsoft.VC80.CRT.manifest"
> 81
>
> Sean discovered at our first coding sprint that the presence of a .manifest file makes Mixxx simply not run on certain Windows machines. To the best of my knowledge, a .manifest file is never required, so I don't think it does anything other than cause problems for us.
>
>Anyone?
>
>Thanks,
>Albert

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Or I can just rebuild ALL of the dependencies myself so we have control over the dependent DLLs.

Revision history for this message
Albert Santoni (gamegod) wrote :

On Mon, Jul 27, 2009 at 1:50 PM, Pegasus<email address hidden> wrote:
> Or I can just rebuild ALL of the dependencies myself so we have control
> over the dependent DLLs.

Sorry, why would that solve the problem?

Re: what Garth said, yeah, I thought we could just delete the
.manifest file and we done with it. I talked to someone who worked at
Microsoft about manifest files and even he couldn't explain it
properly.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

> Sorry, why would that solve the problem?

Because we're having problems with DLLs that the pre-built Mixxx dependencies depend on, evidenced by the fact that their versions are VS 2005, and I'm using VS 2008.

> I thought we could just delete the .manifest file and be done with it.

I didn't understand why it helped before, but I have a good idea now, having read the first article I linked to above (look toward the bottom of the article.) Last time, we were carrying around a manifest for an old/wrong version of a DLL, so removing it helped, at least on systems that had the correct version installed (or we just didn't need that DLL at all anymore.)

This time, at least right now, according to the mixxx.exe.manifest, for win32, we need a particular version of msvcrt80.dll. Win64 wants a debug and runtime build of that same version of that same DLL as well as msvcrt90.dll.

So we have a few choices: 1) for each of the x86 and x64 version of Mixxx, read the mixxx.exe.manifest files and make sure to include the listed versions of the DLLs (and _their_ manifest files, so Windows will try them first) in the Mixxx install packages, 2) don't use any pre-built dependencies but build them ourselves, making sure to specify to embed the manifest in the DLL (we may still need to include msvcrt90.dll however,) or 3) Forget all this crap and move to a MinGW build process in earnest.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

For now, I'm doing option #1. I sent Albert new packages that contain the relevant MSVC DLLs and manifests. Tests good on an x86 XP system. I have no clean x64 system to test on so I bundled all of the MSVC files for each requested version to be safe. Marking Fixed for 1.7.

Revision history for this message
Albert Santoni (gamegod) wrote :

Grabbing your packages from your site now. I'm going to throw them on
downloads.mixxx.org under 1.7.0-beta2-repack. I'll post links to the
forums and mixxx-devel asking for testers.

Thanks,
Albert

On Tue, Jul 28, 2009 at 8:29 AM, Pegasus<email address hidden> wrote:
> For now, I'm doing option #1. I sent Albert new packages that contain
> the relevant MSVC DLLs and manifests. Tests good on an x86 XP system. I
> have no clean x64 system to test on so I bundled all of the MSVC files
> for each requested version to be safe. Marking Fixed for 1.7.
>
> ** Changed in: mixxx/1.7
>       Status: Confirmed => Fix Committed
>
> --
> Oops, forgot to bundle MSVC DLLs
> https://bugs.launchpad.net/bugs/376801
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

Revision history for this message
reliable-robin-22 (nicolasdiogo) wrote :

Hi Albert,

i also would like to ask you to post links on this list as well.
so i can try the new option.

thanks,

Nicolas

________________________________
From: Albert Santoni <email address hidden>
To: <email address hidden>
Sent: Tuesday, 28 July, 2009 21:15:30
Subject: Re: [Bug 376801] Re: Oops, forgot to bundle MSVC DLLs

Grabbing your packages from your site now. I'm going to throw them on
downloads.mixxx.org under 1.7.0-beta2-repack. I'll post links to the
forums and mixxx-devel asking for testers.

Thanks,
Albert

On Tue, Jul 28, 2009 at 8:29 AM, Pegasus<email address hidden> wrote:
> For now, I'm doing option #1. I sent Albert new packages that contain
> the relevant MSVC DLLs and manifests. Tests good on an x86 XP system. I
> have no clean x64 system to test on so I bundled all of the MSVC files
> for each requested version to be safe. Marking Fixed for 1.7.
>
> ** Changed in: mixxx/1.7
> Status: Confirmed => Fix Committed
>
> --
> Oops, forgot to bundle MSVC DLLs
> https://bugs.launchpad.net/bugs/376801
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

--
Oops, forgot to bundle MSVC DLLs
https://bugs.launchpad.net/bugs/376801
You received this bug notification because you are a direct subscriber
of the bug.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Nicolas: Have you not checked out the forums? http://mixxx.org/forums/viewtopic.php?f=1&t=731

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/5173

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.