SailfishOS SDK installation on Windows 8/8.1 caveats

asked 2015-02-27 06:10:17 +0300

mkld gravatar image

updated 2015-02-27 14:51:52 +0300


I've been struggling recently with SDK installation on Windows 8.1 More precisely, not with SDK installation as such, but with installation guide-through, example Sailfish project "My First App" compilation: it always ended with "Project is outside shared home [folder1] and shared src [folder2]" error. Even if project was either in shared home or in shared srv - or even both!

So that was a goddamn puzzle - no matter what I changed in my SDK installation - folders, paths, names, envvars, projects, Qt parameters... - or even in VirtualBox configuration - shared folders, VM locations, various settings... - it always ended up with the same annoying "Project is outside" issue.

Comparing with another laptop I had which was running Windows 7, I finally found the discrepancy that caused all this mess: Windows logon method.

And Windows logon method is a consequence of your Windows account type. I don't mean here 'Administrator' account or 'User' account.

I mean: LOCAL account vs. MICROSOFT account

On Windows 8/8.1, you can create a local user - I would call that legacy method, as it will behave the same as if it were created on Windows 7, Vista... - or a Microsoft account, that will be tied to your Live/MSN/Outlook/Hotmail account - for better and for worse (like in marriage - heads up : in case of Qt IDE/Sailfish SDK, that will be for worse).

So, on Windows 8/8.1, when using a local account, Windows logon method will be... regular, the old good one we're used to. You can verify that by checking the value of LOGONSERVER envvar - once logged in, of course. If you're using a local account, it will be set to "\\%COMPUTERNAME%" (w/o quotes).

BUT, if using a Microsoft account - tada! - Windows logon method is changed to a brand new, more performant & efficient one - nah, I'm kidding - well, it's changed anyway to "\\MicrosoftAccount". Again, you can verify this by checking value of LOGONSERVER envvar.

In this case, and I don't know exactly why but this is the way it is, Qt IDE/Sailfish SDK couple goes berserk and is unable to properly locate its own home, hence "Project is outside" error thrown into your face.

Switch to local account - that will magically compile & run without any trouble!

To be thorough, since I had to compare a Windows 8.1 environment with a Microsoft account to a Windows 7 installation with a local account, anyone - I would have been the first - could have argued that Windows logon method was not the sole discrepancy one could spot.

So I made similar tests on a VM running Windows 10 Technical Preview. Results remain the same.

Conclusion: DO NOT USE A MICROSOFT ACCOUNT WHEN INSTALLING & USING SAILSFISHOS SDK (and also VirtualBox dependancy, obviously). That will help you save an awful amount of time - and sanity.

I do think this finding is worth a BIG, FAT, RED warning in SailfishOS SDK installation guide-through, and more specifically on this page, in Windows paragraph.


edit retag flag offensive close delete


Just a thought, have you installed the Virtualbox Extensions Pack?

rgp ( 2015-02-27 12:55:24 +0300 )edit

@rgp Yep :) Err... you mean I should remove one of them? Both of them?

mkld ( 2015-02-27 14:45:25 +0300 )edit

No I thought you might not have installed it. :(

rgp ( 2015-02-27 15:21:03 +0300 )edit

@rgp Installed, configured, and tried pretty much every option that could have an impact. If I missed something here, I'm certainly unable to see it :) Still, that would be an explanation I would be happy with.

mkld ( 2015-02-27 18:08:18 +0300 )edit