Code source du lecteur legacy Winamp
(github.com/WinampDesktop)Winamp
Présentation
- Winamp est un lecteur multimédia lancé en 1997, réputé pour sa compatibilité avec de nombreux formats audio et sa flexibilité
- Développé par Nullsoft, il a connu une grande popularité auprès de millions d'utilisateurs
- Son développement avait été interrompu pendant un temps, mais le code source est désormais publié, permettant à la communauté d'améliorer et de moderniser le lecteur
Utilisation
- La compilation du client desktop Winamp repose actuellement sur Visual Studio 2019 (VS2019) et les bibliothèques Intel IPP
- Il existe plusieurs façons de compiler Winamp
- Utiliser le script
build_winampAll_2019.cmdpour compiler 4 versions x86/x64 (debug et release). Dans ce cas, l'IDE Visual Studio ne se lance pas - Utiliser le fichier
winampAll_2019.slnpour effectuer la compilation et le débogage dans l'IDE Visual Studio
- Utiliser le script
Dépendances
- Utiliser le script
build_winampAll_2019.cmdpour compiler 4 versions x86/x64 (debug et release). Dans ce cas, l'IDE Visual Studio ne se lance pas - Utiliser le fichier
winampAll_2019.slnpour effectuer la compilation et le débogage dans l'IDE Visual Studio
libvpx
libvpxest récupéré depuis https://github.com/ShiftMediaProject/libvpx, puis modifié et empaqueté sous forme d'archive- Exécuter
unpack_libvpx_v1.8.2_msvc16.cmdpour le décompresser
libmpg123
libmpg123est récupéré depuis https://www.mpg123.de/download.shtml, puis modifié et empaqueté sous forme d'archive- Exécuter
unpack_libmpg123.cmdpour traiter les fichiers dll
OpenSSL
- Il faut utiliser
openssl-1.0.1u - Exécuter
build_vs_2019_openssl_x86.cmdetbuild_vs_2019_openssl_64.cmdpour compiler la version statique des bibliothèques - Pour compiler OpenSSL, il faut installer 7-Zip, NASM et Perl
DirectX 9 SDK
- Le DirectX 9 SDK (juin 2010) est récupéré depuis Microsoft, puis modifié et empaqueté sous forme d'archive
- Exécuter
unpack_microsoft_directx_sdk_2010.cmdpour le décompresser
Correctif de la bibliothèque Microsoft ATLMFC
- Dans le fichier
C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.h, modifier la ligne 427 dereturn ::DeleteFile((LPTSTR)lpFileName);enreturn DeleteFile((LPTSTR)lpFileName);
Intel IPP 6.1.1.035
- Intel IPP 6.1.1.035 est récupéré, puis modifié et empaqueté sous forme d'archive
- Exécuter
unpack_intel_ipp_6.1.1.035.cmdpour le décompresser
Résumé de GN⁺
- Winamp reste apprécié par de nombreux utilisateurs grâce à sa compatibilité avec divers formats audio
- La publication du code source offre à la communauté l'occasion d'améliorer et de moderniser le lecteur
- Il peut être compilé avec Visual Studio 2019 et plusieurs bibliothèques, en gérant diverses dépendances
- Parmi les autres lecteurs multimédia offrant des fonctionnalités similaires à Winamp figurent VLC Media Player et foobar2000
2 commentaires
À voir le problème, il semble y avoir beaucoup de discussions autour de la licence.
Avis sur Hacker News
Je me demande comment ils s’attendent à ce que les gens contribuent au projet. L’article 4 de la licence dit de soumettre les améliorations, ajouts de fonctionnalités et corrections de bugs au dépôt officiel, mais les restrictions de l’article 5 interdisent les forks du code ou la distribution de versions modifiées.
Du coup, le flux standard de GitHub — « forker le dépôt, modifier dans une branche, envoyer une pull request » — devient lui-même une violation de la licence.
En revanche, impossible de le tester ou de le déboguer. Ce serait créer une version modifiée du codebase, donc interdit. Il n’y a qu’à écrire directement, sans l’aide des pratiques habituelles, ce qui vous vient dans une sorte de délire fiévreux. Si c’est assez bon pour la licence, ça l’est sûrement aussi pour le code.
L’autre signifie « forker un projet », c’est-à-dire développer et distribuer activement une lignée alternative sous un autre nom. Je pense que le flux de pull requests de GitHub reste acceptable. Ici, c’est dommage que GitHub ait choisi un nom qui entre en conflit avec le sens déjà établi de “fork”. En fait, cela aurait dû s’appeler “clone”.
GitHub utilise simplement aussi le mot “fork” pour créer une copie de dépôt destinée à contribuer.
La plupart le feront, ils ne menaceront probablement pas les contributeurs avec des avocats, et le monde continuera de tourner.
Le mieux à faire maintenant pour l’avenir de ce projet, c’est de ne pas s’en mêler. Même le cloner dans un espace de travail personnel pour l’examiner ou le compiler est déjà une participation excessive au regard de leur position actuelle sur la licence.
Si un post HN indique qu’ils ont changé de position sur la licence, j’irai revoir, mais d’ici là mieux vaut fermer cet onglet et l’oublier.
Question : Le code source de WinAMP a été officiellement publié ; est-ce que tu as envie d’y bricoler de nouvelles fonctionnalités sympas ?
Réponse : Même si j’en avais eu envie, les conditions de licence m’auraient refroidi, lol. La façon dont elles sont rédigées est complètement absurde. Par exemple, il est écrit qu’on ne peut pas « créer, maintenir ou distribuer une version forkée du logiciel ». Donc n’importe quelle modification pourrait être considérée comme « créer une version forkée ». Même en interprétant cela de façon un peu plus généreuse, comme ils l’ont probablement voulu, les conditions sont nulles. Je passe mon tour.
Il y a très longtemps, je traînais sur #mpeg3 sur EFNet, et je me souviens avoir connu Justin Frankel à l’époque où il travaillait là-dessus.
Je lui avais fait quelques skins pour l’app et quelques icônes de zone de notification, dont certaines sont incluses ici. Je ne me souviens pas à 100 % lesquelles sont toutes de moi, mais punchlabel est clairement de moi. Mon nom figure aussi dans les crédits : https://github.com/WinampDesktop/winamp/blob/0695744fd658c42...
Ils vont probablement envoyer en masse des demandes DMCA à GitHub et finir par faire retirer leur propre dépôt de GitHub, ou bien le retirer eux-mêmes de GitHub au risque de perdre leurs droits d’auteur.
Le fork est une fonctionnalité centrale de GitHub. Les règles de fork ne peuvent être configurées que pour les dépôts privés, or celui-ci est public. La licence n’autorise pas les forks, et il y en a déjà 6. En général, contrairement aux marques, on ne perd pas un copyright par application sélective, mais dans ce cas les ayants droit ont rendu la violation de licence très facile, et la liste des contrevenants leur est entièrement accessible. S’ils ne défendent pas activement leurs droits, ils risquent de se faire ridiculiser au tribunal. C’est aussi une situation que GitHub n’a probablement pas envie de gérer : une expérience utilisateur catastrophique où cliquer sur l’un des boutons les plus utilisés de la plateforme devient soudain un problème juridique.
J’ai un petit lien avec Winamp. J’avais créé à l’époque un plugin assez populaire.
Ceci est le code source de Winamp 3, qui était une réécriture complète de Winamp 2 en C++. À mon avis, c’était excessivement complexe et surconçu. Le code original de Justin Frankel était en C.
C’est donc, pour ainsi dire, un sacré bazar mêlant des années de développement de 1.x → 2.x → 5.x et les contributions de nombreuses personnes au fil du temps. De grandes parties de Winamp3 y figurent aussi, mais celles-ci avaient déjà été correctement publiées en open source à l’époque d’AOL, contrairement à cette licence très restrictive. Cela dit, si ma mémoire d’il y a 11 ans est bonne, aucun dépôt Winamp3 dédié n’avait été fourni au moment de constituer la livraison du code.
-dro
À l’été 1999, quand j’étais à la fac, notre maison était la première à utiliser des MP3 en soirée. La plupart des gens utilisaient des changeurs de CD, avec beaucoup de disques rayés et tachés, et la musique sautait sans arrêt.
Nous, nous étions passés au tout numérique, et nous étions en avance sur notre temps. La fête avait lieu au sous-sol ; l’ordinateur était enfermé dans une chambre libre, avec les câbles et les enceintes tirés jusqu’à l’espace principal en bas. Winamp tournait en shuffle, ça n’a pas sauté une seule fois pendant des heures, et personne n’avait besoin de s’occuper de la musique. Merci à Winamp pour ces bons souvenirs.
C’est une déformation du mot « open ». Les conditions de la licence n’autorisent ni la redistribution ni la revente, alors que c’est généralement une condition acceptée de l’open source
Il faut noter que ni le titre ni le dépôt n’emploient l’expression « open source ». Ce n’est pas « le source est désormais ouvert », il aurait fallu parler de source available
Il faudrait soit retirer l’affirmation « licence copyleft », soit assouplir la restriction de distribution en quelque chose comme : « si vous distribuez une version modifiée de ce programme, vous ne devez pas l’appeler Winamp »
C’était le seul lecteur de musique qui n’était pas agaçant. Sans le fatras ni les graphismes grossiers que ses concurrents semblaient considérer comme la bonne réponse, il faisait simplement son boulot avec une interface épurée
Si j’étais recruteur, quelqu’un venant de Tidal n’aurait aucune chance
Depuis que j’ai rencontré ce monstre, je ne suis jamais revenu à autre chose
Le plus drôle, c’est que le dernier commit s’intitule « Removing code which is not open »[0], ce qui signifie qu’en conservant ce code dans l’historique Git, ils enfreignent les conditions de licence de quelqu’un d’autre
[0] https://github.com/WinampDesktop/winamp/commit/0a4b7d32d0906...
Copyright 2000-2002 Dolby Laboratories, Inc. All Rights
Reserved. Do not copy. Do not distribute.
Confidential information.
(C) copyright Fraunhofer - IIS (1998)
All Rights Reserved
Si vous voulez une copie gratuite du logiciel serveur SHOUTcast, ce dépôt en partage le code illégalement
https://github.com/WinampDesktop/winamp/tree/3ab19235a69d96b...
Source : https://en.wikipedia.org/wiki/Radionomy#List_of_properties_f...