Keyword - Apple

Entries feed - Comments feed

Thursday, November 22 2012

Windows Store and the GPL

FOSS and AppStore

As more and more software distribution are going through so-called App Stores, the question about the compatibility of their terms and conditions with the open source licenses, notably the GPL, often arise.

Personally I don't like those, but I can understand why they are popular and will continue to be popular.

So far, the Android store is open source friendly, and Apple one is not yet open source friendly.

But there is a new one in town, so I will look at the new Windows Store, that will ship WinRT Metro and Windows Phone 8 applications.

I will look at the 3 main liberties (copy, modify, redistribute) and the unrestricted usage liberty.

Legal analysis

Part 1: Store terms of use for users

The referent document can be found here.

The first reaction that those terms of use are way better than the ones from the competition. I don't really like Windows 8 but this is very well executed.

In section named What are my rights for apps I get from the Windows Store?

All apps made available through the Windows Store are licensed, not sold, to you.

This is quite normal for software.

In most cases, that license includes the right to install and use your app on up to five Windows 8 enabled devices simultaneously. If you try to install an app on more than five devices, it may be deactivated automatically from one of these devices, so that no more than five instances are activated at any one time.

5 device limitation, for most cases. This needs clarification for what other cases are. (see the bottom of this mail)

In limited circumstances, such as when a publisher designates the app as eligible for use on only a certain type of device, apps might not install on other types of devices.

Publishers can be assholes or have not ported to ARM or whatever stupidity we add later on, on our devices.

We provide the name of the app provider licensing each app, which may be Microsoft or a third-party app provider."

Microsoft will always tell you the name of who actually licenses the application.

All apps are licensed to you under the Standard App License Terms at the end of these Terms of Use, unless the provider of an app provides you with access to separate terms or agreements in the app listing page, in which case those terms will apply.

Either there is a correct license, or we force our broken terms.

Those terms might also include a privacy policy. The app publisher is the seller and licensor of the app.

Microsoft is not the seller or licensor, they act as a store.

When a third party is the app provider, Microsoft is an agent of the third party that provides the app to you, but we aren’t a party to the license between you and the app provider, and our privacy statement doesn’t apply to treatment of information you might exchange with the app provider when using the app. In such cases, Microsoft isn’t responsible for the app or its content, your use of the app, any warranties or claims relating to the app, or customer support for the app.

Microsoft is not responsible for 3rd party apps, and does not apply neither its terms of conditions nor privacy policy, if there is a license.

But your relationship with Microsoft and your use of the Windows Store will still be governed by Software License Terms for your Windows operating system and these Terms of Use. Because Microsoft processes the app purchase or, in some cases, the in-app purchase transaction as the agent of the seller, you might see Microsoft listed as the seller on sales records.

But even if it is the case, the Microsoft Store software and Microsoft software are govern by Microsoft SLT.

The rest of the terms is not about apps, and then there is their SLT which is clearly not open source, because of the section 3 that forbids the 3 main liberties.

Part 2: Application Developer Agreement

The referent document can be found here.

The important part is named: 3) g. License to Customer for Windows Store apps.

You, not Microsoft, will license the right to install and use each app to customers. You may provide a license agreement to the customer for your app.

Same as above, restated as a developer point of view.

That license agreement or other terms that govern a customer’s use of your app (including any privacy policy), or a link to them, must be delivered to Microsoft for publication via the product description materials you provide to Microsoft.

You must share the license to MS,

If you do not provide such materials, then the Standard Application License Terms, attached as Exhibit A, will apply between you and customers of your app.

or the SLT will apply, automatically.

If you provide your own license agreement, your license must, at a minimum,

Your license must allow, at minimum (so more can be allowed):

(a) permit the customer to download and run the app on up to five Windows 8 enabled devices that are associated with that customer’s Microsoft account, without payment of any additional fees to you (from either Microsoft or customer),

At least 5 devices.

(b) include "disclaimer of warranty" and "limitation on and exclusion of remedies and damages" sections that are at least as protective as Exhibit A

10. DISCLAIMER OF WARRANTY. TO THE FULLEST EXTENT PERMITTED BY LAW, (A) THE APPLICATION IS LICENSED "AS-IS," "WITH ALL FAULTS," AND "AS AVAILABLE" AND YOU BEAR ALL RISK OF USING IT; (B) THE APPLICATION DEVELOPER, ON BEHALF OF ITSELF, MICROSOFT (IF MICROSOFT IS NOT THE APPLICATION DEVELOPER), AND EACH OF OUR RESPECTIVE AFFILIATES, VENDORS, AGENTS AND SUPPLIERS, GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS IN RELATION TO THE APPLICATION; (C) YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS THAT THIS AGREEMENT CANNOT CHANGE. APPLICATION DEVELOPER AND MICROSOFT EXCLUDE ANY IMPLIED WARRANTIES OR CONDITIONS, INCLUDING THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.

Usual "NO WARRANTY" section.

(c) disclaim any support services from Microsoft and the customer’s device manufacturer and network operator (if applicable).

Be clear on support services and who is in charge of the support.

Your license terms must also not conflict with the Standard Application License Terms, in any way, except if you include FOSS, your license terms may conflict with the limitations set forth in Section 3 of those Terms, but only to the extent required by the FOSS that you use. "FOSS" means any software licensed under an Open Source Initiative Approved License.

Your license should be compatible with the SLT, except if you include FOSS, in which case you can violate the part of the SLT that disallow reverse engineering, decompile.

Here is the part of the SLT that you can explicitly violate:

work around any technical limitations in the application;

reverse engineer, decompile or disassemble the application, except and only to the extent that applicable law expressly permits, despite this limitation;

make more copies of the application than specified in this agreement or allowed by applicable law, despite this limitation;

publish or otherwise make the application available for others to copy; or rent, lease or lend the application.

Technically

Technically, a contrario from what Microsoft is trying to explain people, WinRT applications are Win32 applications, that have artificial limitations imposed by the Windows Store submission process.

They are usually linked to MSVCR110 for standard calls, which is a major component of the operating system on which the executable runs. Those applications don't ship anything else than the usual executables and a few .xml crap.

tl;dr: Summary

Your usages are not limited; except you cannot use the application on more than 5 devices, unless the license clearly says you can use it on more devices. That might need an extra clarification, to check if you can have unlimited devices.

You can reverse engineer, decompile, disassemble the application, make more copies of the application, publish, distribute, rent, lease or lend, as long as you are FOSS.

Therefore, I think it is quite safe, now, to publish a FOSS application on the Windows Store.

Thursday, October 18 2012

VLC media player 2.0.4 and VLC for Android 0.0.6

VLC 2.0.4

So, yet another release for VLC is around the corner. Why should you care?

Well, first, it shows that the VLC project is still quite alive and that we care about our users, even if we are focusing on 2.1.0.

Then, a bit of stabilization of the 2.0.x branch cannot be bad. :)

For a summary of the most important features, you have:

  • Support for Opus codec, including multi-channel and icecast streams,
  • Support for MSS1 and MSS2 codecs through DMO on Windows and Linux (this can still be hard to use until 2.1.0).
  • Support for Youtube Live Streams,
  • Support for BluRays correctly on OSX,
  • Karaoke control on OSX interface.

For important fixes, we have also:

  • Youtube, Vimeo, Koreus and Soundcloud are back,
  • Ogg duration should be fixed in most cases,
  • HLS, Dash, HTTPS, MKV and Ogg playback fixes,
  • Wallpaper is back on Windows 7 and 8,
  • Huge improvements in the OSX interface,
  • Lots of fixes in the Qt interface,
  • Windows 8 look is now correct,
  • Crashes in subtitles, hardware acceleration fixed,
  • Web interface improvements,
  • Audio devices selections fixes and synchronizations,
  • Security issues.

And of course, translations!

VLC for Android Beta 6

At the same time, you might have seen that we have done quite a few VLC for Android releases:

After 0.0.3 and 0.0.4, 2 weeks ago, 0.0.5 and 0.0.6 have been released in the last week.

So, what are the cool things in?

More devices

One of the big issues we have been facing was to support the maximum of devices with only one package.

The first thing was the port of VLC on Android to Intel x86 chips.

Then, we had to work on NEON autodetection, in order to support all Tegra2 tablets and phones directly. A bit hard to do, but, now, our ARMv7 packages work on both NEON and devices without NEON.

Finally, we've done quite a few fixes for devices like the Nexus 7, that allocate the memory in a different way than other devices...

More Android support

We have also been working quite hard to fix our behaviour on all android versions, from 2.1 to 4.1.

Android 2.1 is really slow and buggy, but we need to support it while adding the coolest features from 4.0 and 4.1.

A lot of fixes for compatibility went in, notably in 0.0.4 and 0.0.5.

New interface

As you can see in the following screenshot, we have also been working in having a better User Interface and User eXperience on both tablets and phones.

VLC 0.0.6 on Android

VLC 0.0.6 on Android - Audio

This is long and difficult, and we move step-by-step, but we are going in the right direction.

Performance

In terms of video performance, VLC is still in beta, in debug mode, and therefore slower than it should be.

We are also improving there, but it is not easy, especially with the very limited numbers of devices we have on our hands. We have still quite a few ideas to improve.

In terms of the UI, we are decreasing the CPU and the memory used for snapshots and audio cover arts, so that the UI is smoother. You can see that in 0.0.6 and will see it more in 0.0.7.

Our background audio service is now completely asleep when not used, and is awaken on phone calls, as needed.

Still in beta

Yet, as you might know about it, this is still not perfect, and needs some work, so this is still a beta!

Monday, February 6 2012

VLC 2.0 pour MacOS X

Intro

La nouvelle version de VLC, nommée TwoFlower ou 2.0, apporte de nombreuses améliorations et modifications spécifiques à MacOS X. Ce petit article permet de passer en revue ces améliorations, qui sont souvent peu décrites dans les articles plus généralistes.

Ces dernières années, le développement de VLC sous OSX a été un peu chaotique et incertain, avec un vrai questionnement sur le futur du projet. Néanmoins, sur l'année passée, Félix, aidé par plusieurs autres développeurs externes, par le reste de l'équipe de VLC et par un jeune designer, a pris le taureau par les cornes. Il est évident que de nombreux bugs resteront sur les premières moutures, mais les versions devraient se suivre rapidement pour réparer vos bugs les plus gênants.

Nouvelle Interface

La modification la plus visible de Twoflower est la nouvelle interface. Cette interface remplace l'ancienne interface, qui datait des premières versions de OSX.

Tout d'abord, cette interface se présente en une seule fenêtre, pour mieux coller au look actuel des applis OS X. Ensuite, elle existe en deux couleurs: une version noire, qui ressemble au look QuickTime X, et une version grise, comme pour Lion. De plus, sous Lion, elle permet de choisir entre le plein écran natif Lion ou le plein écran classique de VLC.

La plupart des fenêtres utiles lors de la visualisation des vidéos, notamment les filtres audio et vidéo, ont migré vers le style gris transparent HUD. De nombreuses autres fenêtres ont évolués, mais sans bouleversement.

Extensions

La nouvelle interface supporte les extensions lua de VLC pour créer des nouvelles fenêtres et fonctionnalités, comme l'intégration IMDB, Wikipedia, OpenSubtitles et autres. Ce support a été fait tardivement dans le développement, donc une période de stabilisation sera probablement nécessaire.

Périphériques

Jusqu'ici, sous Mac, VLC ne pouvait lire que la webcam intégrée. À partir de VLC 2.0, un support générique des périphériques QTKit a été ajouté pour l'audio (QTSound) et pour la vidéo (QTCapture). Cela devrait permettre de visionner et de rediffuser les webcams externes USB et FireWire, les microphones ainsi que les cartes DVB et SDI compatibles.

Au niveau du support Blu-Ray, VLC 2.0 permet de lire des disques et des dossiers non chiffrés de façon limitée, sous Linux et Windows. Une fois que certains bugs seront résolus, cela devrait être aussi le cas sous MacOS X, mais probablement seulement sous Snow Leopard et Lion. Pour les Blu-Rays chiffrés, la bibliothèque libaacs, n'est pas encore porté sous MacOS X. Avis aux amateurs!

Codecs

La version MacOS X de VLC 2.0 bénéficiera du même support amélioré des codecs, des formats et des filtres vidéos que les versions des autres plate-formes. La partie la plus intéressante concerne le décodage multi-threadé des codecs majeurs pour profiter des machines modernes multi-cores. De nouveaux codecs sont supportés, comme le ProRes, l'AVC/Intra, les codecs 10bits et certaines nouvelles variantes WMV. Le support des formats de fichiers existants a aussi nettement été amélioré, notamment pour le MKV et le MOV.

Le décodage GPU sous OSX, aka VDADecoder, n'est pas de la partie dans cette version, pour des raisons de priorité de développement. Sébastien, développeur VLC, a porté le code dans FFmpeg, mais la partie VLC n'est pas encore prête. On espère que cela arrivera dans une version mineure suivante.

Sortie vidéo

La sortie vidéo, en OpenGL a subit quelques modifications, simplifications et améliorations. Dorénavant, les sous-titres sont rendus à la taille de la fenêtre de sortie, quel que soit la source et directement fusionnés avec la vidéos en OpenGL. Cela améliore la qualité et la netteté des sous-titres. De plus, l'utilisation de fragment shaders pour faire les conversions d'espace de couleurs, même lorsque la source est en 10bits, devrait améliorer les performances.

Support OS X et PowerPC

Cette version 2.0 est compatible Leopard, Snow Leopard et Lion. La version intel 64 bits est la version prioritaire pour Snow Leopard et Lion, car elle seule a le support natif du plein écran sous Lion. La version intel 32 bits fonctionne quant à elle aussi sous Leopard. Il existe toujours une version powerpc pour Leopard, mais qui n'est testée que sous G5, faute de matériel. Cette version powerpc supporte aussi le multi-threading pour le décodage des formats HD, pour ne pas jeter tout de suite les derniers Mac Pro G5 ;) Il est cependant possible que la prochaine version majeure (2013?) ne supporte plus cette architecture.

Le futur

Plusieurs pistes de travail sont en cours: finir l'interface et la peaufiner pour palier aux manques qui seront forcément présents dans les premières versions, travailler sur le support Blu-Ray qui reste trop basique, intégrer le code pour le décodage GPU et changer la licence de VLCKit vers la LGPL afin de permettre de construire des applications non-GPL au-dessus du moteur de VLC.

Nota Bene: Cet article a été écrit par mes soins et donné gracieusement à MacBidouille et Mac4ever.

Friday, August 28 2009

Snow Leopard is out! And why you will not have VLC 64bits right now...

Apple OS X 10.6 is out

If you have missed the news, then you are not on the same techy blogs than I am.

So, Apple new operating system Mac OS X.6, named Snow Leopard is out, and it improves a lot the speed, and ports most of its application to 64bits, but doesn’t introduce any important new feature. Learn more about it !

VLC and 64bits

Do you really need 64bits for a video application? I seriously doubt it. But well, you might want/need it in the future.

Linux

VLC 64bits runs on 64bits linux since a long time, and I use it a lot. No majors problems since Linux is cleverly engineered.

Windows

VLC runs on Windows 64 as a Win32 application, but we haven’t finished the port to Win64, especially because of external libraries issues. It will come eventually.

Mac OS X

Since the WWDC ‘08, we know we have to remove all Carbon code, and we have mostly done it.

Leopard

VLC 64bits runs on 32bits Leopard without issues.

Snow Leopard

As one of our OSX developers says: I’ve you had asked me a month ago, I had said that everything is cool and VLC64 will be released the same day as Snow Leopard.

BUT

It doesn’t work now, because of a change in the Cocoa runtime. VLC stopped working in the last two seeds (the GM and the one prior to it).

Launching VLC results in crashes in a low level function called _NSBundleCreate, which is triggered by a whole bunch of Cocoa and IOKit methods. Basically every method of these frameworks results in a crash on Snow Leopard. This is strange, as exactly the same code runs nicely in 64bit on Leopard and prior seeds of Snow Leopard.

The problem is that VLC is not an ordinary NSApplication, but a plain C app, that loads a Cocoa plugin, which instantiates NSApp itself. Therefore, you cannot reproduce the crashes in normal Cocoa apps.

Conclusion

Apple, once again, breaks everything with a new OS, as it happens often, or when a new version of Xcode gets out. Last version of Xcode forced us to drop X.4 if we wanted to go 64bits and compatible with Snow Leopard. Seriously, I don’t get it.

I have applications that are running on the Win7 64bit setup that are Win98 games!

Anyway, to not finish on a bad note, Snow Leopard looks gorgeous!

Saturday, June 7 2008

VideoLAN at WWDC 08

Just a small post about VideoLAN presence at WWDC in San Francisco this year.

Felix and I will be there all week long. If you want to meet, contact us.

Wednesday, February 27 2008

MacBook install: triple boot: linux, windows, Mac OS

This details the installation of a MacBook white, shipped in the beginning of 2008.

Set up Mac OS X

Updates

First before anything, update to the latest MacOS X.5.2, and all the necessary downloads... Reboot as many times as needed

Software

Then, install VLC, Firefox 3 béta, Adium and Xcode if you need it.

Done.

Quite easy, so far, no ?

Install Windows XP

Be sure to have your Windows XP SP2 CD and a legit license number.

Bootcamp

Go to spotlight, look for Boot Camp assistant or find it from your Applications folder.

  • Run it.
  • Prepare a disk space for Windows ( 16GB is ok, I think )
  • Quit and re-run it.
  • Install Windows with your CD Rom inside.
  • Reboot and wait during all the Windows installation that is long and needs a couple of reboots. Mine did fail once, for no obvious reasons.

Windows XP

Once you have your complete Windows XP installation, you will see a Boot Camp icon on your task bar. Keep it.

  • Put the Apple OS X CD-ROM in, and let it do all the installation of the drivers. It may require some reboots, but at the end, you have a very new and completely functional Windows XP!
  • Reboot
  • Do your Windows Update and reboot and again, and reboot, and again... Until nothing appears there.
  • Launch the Boot Camp assistant and Default Mac OS HD

Mac OS again

Reboot to mac OS. Be pleased.

Linux

This should work with any distribution and was tested with Debian and Ubuntu

Resize

  • Go to Applications/Utils and launch Disk Tool
  • Split and resize the main partition in order to have a new partition that you name Linux and format in HFS. (16GB here)
  • Check everything.

Reboot on linux

  • Put your linux live CD and reboot
  • Press `C` to boot on the CD
  • Launch your live-CD and install linux.

Install

During the install I deleted the new partition and added two in place:

  • One root partition /
  • One swap 1GB
  • Finish everything, reboot

You should be careful to install your grub in your linux partition and NOT in the MBR, to let reFit do it correctly.

rEFIt

On Mac OS X, install rEFIt and configure it quite quickly.

Reboot and use rEFIt to boot on linux using the "option" key.

Configure linux

You have all you want working except the wireless... Which is a Broadcom BCM4328

sudo apt-get install ndiswrapper-utils-1.9

Find in your Windows partition your wireless drivers:

sudo su

cp -r /media/Windows/WINDOWS/DRVSTORE/bcmwl5_**/ /root/

mv bcmwl5_*** bcmw

cd bcmw

ndiswrapper -i bcmwl5.inf

ndiswrapper -l

ndiswrapper -m

modprobe ndiswrapper

ifconfig

Updates

Uncomment what is needed in your sources.list.

Reboot.

Problems

If you have any issues, like not having the linux partition shown anymore, reinstall grub on your linux partition with a live-CD.

- page 1 of 2