Contenu | Rechercher | Menus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Both sides previous revision Révision précédente
Prochaine révision
Révision précédente
subsonic [Le 22/08/2013, 16:50]
164.138.240.21 [Fork de Subsonic : Supersonic]
subsonic [Le 24/09/2014, 18:00] (Version actuelle)
109.88.213.139 [Ça marche pas...]
Ligne 8: Ligne 8:
 La musique est encodée à la volée, par défaut grâce à ffmpeg et lame en MP3 pour l'​audio et FLV pour la vidéo. Ces paramètres se changent très aisément. Un grand nombre de format est reconnu par défaut, ainsi que les tags correspondant avec la possibilité d'​édition,​ notamment pour les formats MP3, AAC, OGG, FLAC, WMA et APE. La musique est encodée à la volée, par défaut grâce à ffmpeg et lame en MP3 pour l'​audio et FLV pour la vidéo. Ces paramètres se changent très aisément. Un grand nombre de format est reconnu par défaut, ainsi que les tags correspondant avec la possibilité d'​édition,​ notamment pour les formats MP3, AAC, OGG, FLAC, WMA et APE.
  
-Subsonic est traduit dans de nombreuses langues, dont le français, avec 24 thèmes par défaut. Il offre la possibilité de lire la musique dans le lecteur web, comme dans un lecteur externe (avec gestion des playlists), de contrôler la musique à distance grâce à votre téléphone,​ ainsi que de télécharger la musique, piste par piste, comme un album entier. Des applications existent pour Android, iPhone/​iPad,​ Windows Phone 7, Windows, Mac, Linux et BlackBerry PlayBook.+Subsonic est traduit dans de nombreuses langues, dont le français, avec 24 thèmes par défaut. Il offre la possibilité de lire la musique dans le lecteur web, comme dans un lecteur externe (avec gestion des playlists), de contrôler la musique à distance grâce à votre téléphone,​ ainsi que de télécharger la musique, piste par piste, comme un album entier. Des applications existent pour Android, iPhone/​iPad,​ Windows Phone 7/8, Windows, Mac, Linux et BlackBerry PlayBook.
  
 Il y a une gestion de la bande passante en limitant le bitrate, la musique sera automatiquement réencodée avec le bon débit binaire. Il y a une gestion de la bande passante en limitant le bitrate, la musique sera automatiquement réencodée avec le bon débit binaire.
  
-Subsonic fonctionne sur la plus plus part des plateformes grâce à la technologie Java, notamment sur Windows, Mac, Linux et autres variantes Unix.+Subsonic fonctionne sur la plupart ​des plateformes grâce à la technologie Java, notamment sur Windows, Mac, Linux et autres variantes Unix.
  
 Subsonic est un logiciel open-source sous licence [[http://​www.gnu.org/​copyleft/​gpl.html|GPL]]. Subsonic est un logiciel open-source sous licence [[http://​www.gnu.org/​copyleft/​gpl.html|GPL]].
Ligne 31: Ligne 31:
 Télécharger le paquet .deb disponible sur la page suivante avec votre navigateur préféré ​ : [[http://​www.subsonic.org/​pages/​download.jsp]].\\ ​ Télécharger le paquet .deb disponible sur la page suivante avec votre navigateur préféré ​ : [[http://​www.subsonic.org/​pages/​download.jsp]].\\ ​
 Double-cliquer ensuite sur le fichier téléchargé,​ ceci lancera l'​installation. Double-cliquer ensuite sur le fichier téléchargé,​ ceci lancera l'​installation.
-==== via la ligne de commande (version 4.7) ====+==== via la ligne de commande (version 4.9) ====
 Ouvrez un terminal Ouvrez un terminal
-<​code>​wget http://​sourceforge.net/​projects/subsonic/files/​subsonic/​4.7/​subsonic-4.7.deb</​code>​ +<​code>​wget http://freefr.dl.sourceforge.net/​project/​subsonic/​subsonic/​4.9/​subsonic-4.9.deb</​code>​ 
- Puis [[:​tutoriel:​comment_installer_un_paquet|installer le paquet]]\\ <​code>​sudo dpkg -i subsonic-4.7.deb</​code>​+ Puis [[:​tutoriel:​comment_installer_un_paquet|installer le paquet]]\\ <​code>​sudo dpkg -i subsonic-4.9.deb</​code>​
 ==== post-installation ==== ==== post-installation ====
 Le service n'est pas démarré automatiquement a la fin de l'​installation,​ il faut le démarrer manuellement en ligne de commande Le service n'est pas démarré automatiquement a la fin de l'​installation,​ il faut le démarrer manuellement en ligne de commande
Ligne 64: Ligne 64:
 Un autre fork nommé Madsonic est toujours actif ici http://​www.madsonic.org/​ Un autre fork nommé Madsonic est toujours actif ici http://​www.madsonic.org/​
  
 +
 +===== Désactivation de la licence =====
 +
 +Subsonic requiert une licence (1 $ par mois) pour les fonctions suivantes :
 +  * streaming vidéo;
 +  * connexion depuis un smartphone grâce à l'​application officielle.
 +Nous allons voir comment désactiver la licence. Pour cela, nous allons modifier le code Java et recompiler l'​application. ​
 +
 +==== Installation des outils nécessaires et récupération des sources ====
 +
 +Installons les outils nécessaires :
 +<​code>​sudo apt-get install maven openjdk-7-jdk subversion lintian</​code>​
 +
 +Récupérons la dernière version des souces :
 +<​code>​svn checkout svn://​svn.code.sf.net/​p/​subsonic/​code/​trunk subsonic-code</​code>​
 +
 +Les sources seront téléchargées dans le dossier subsonic-code.
 +
 +==== Modification des sources ====
 +
 +Se placer dans le dossier contenant les sources :
 +<​code>​cd subsonic-code</​code>​
 +
 +Le patch à appliquer est le suivant :
 +<​code>​Index:​ subsonic-main/​src/​main/​java/​net/​sourceforge/​subsonic/​service/​SettingsService.java
 +===================================================================
 +--- subsonic-main/​src/​main/​java/​net/​sourceforge/​subsonic/​service/​SettingsService.java (revision 4101)
 ++++ subsonic-main/​src/​main/​java/​net/​sourceforge/​subsonic/​service/​SettingsService.java (working copy)
 +@@ -647,14 +647,11 @@
 +     }
 + 
 +     ​public boolean isLicenseValid() {
 +-        return isLicenseValid(getLicenseEmail(),​ getLicenseCode()) && licenseValidated;​
 ++        return true;
 +     }
 + 
 +     ​public boolean isLicenseValid(String email, String license) {
 +-        if (email == null || license == null) {
 +-            return false;
 +-        }
 +-        return license.equalsIgnoreCase(StringUtil.md5Hex(email.toLowerCase()));​
 ++        return true;
 +     }
 + 
 +     ​public LicenseInfo getLicenseInfo() {
 +@@ -1264,36 +1261,8 @@
 +     ​private void validateLicense() {
 +         ​String email = getLicenseEmail();​
 +         Date date = getLicenseDate();​
 +-
 +-        if (email == null || date == null) {
 +-            licenseValidated = false;
 +-            return;
 +-        }
 +-
 +         ​licenseValidated = true;
 +-
 +-        HttpClient client = new DefaultHttpClient();​
 +-        HttpConnectionParams.setConnectionTimeout(client.getParams(),​ 120000);
 +-        HttpConnectionParams.setSoTimeout(client.getParams(),​ 120000);
 +-        HttpGet method = new HttpGet("​http://​subsonic.org/​backend/​validateLicense.view"​ + "?​email="​ + StringUtil.urlEncode(email) +
 +-                "&​date="​ + date.getTime() + "&​version="​ + versionService.getLocalVersion());​
 +-        try {
 +-            ResponseHandler<​String>​ responseHandler = new BasicResponseHandler();​
 +-            String content = client.execute(method,​ responseHandler);​
 +-            licenseValidated = content != null && !content.contains("​false"​);​
 +-            if (!licenseValidated) {
 +-                LOG.warn("​License key is not valid."​);​
 +-            }
 +-            String[] lines = StringUtils.split(content);​
 +-            if (lines.length > 1) {
 +-                licenseExpires = new Date(Long.parseLong(lines[1]));​
 +-            }
 +-
 +-        } catch (Throwable x) {
 +-            LOG.warn("​Failed to validate license.",​ x);
 +-        } finally {
 +-            client.getConnectionManager().shutdown();​
 +-        }
 ++        return;
 +     }
 + 
 +     ​public synchronized void scheduleLicenseValidation() {
 +Index: pom.xml
 +===================================================================
 +--- pom.xml (revision 4101)
 ++++ pom.xml (working copy)
 +@@ -102,6 +102,13 @@
 +                 <​module>​subsonic-assembly</​module>​
 +             </​modules>​
 +         </​profile>​
 ++        <​profile>​
 ++            <​id>​debian</​id>​
 ++            <​modules>​
 ++                <​module>​subsonic-booter</​module>​
 ++                <​module>​subsonic-installer-debian</​module>​
 ++            </​modules>​
 ++        </​profile>​
 + 
 +     </​profiles>​
 + 
 +@@ -170,4 +177,4 @@
 + 
 +         </​plugins>​
 +     </​build>​
 +-</​project>​
 +\ No newline at end of file
 ++</​project>​
 +</​code>​
 +
 +Pour appliquer un patch, copiez le contenu du patch ci-dessus dans un nouveau fichier nommé "​no_license.patch",​ et placez-le dans le dossier "​subsonic-code"​. Appliquez ensuite le patch grâce à la commande :
 +<​code>​patch -p0 < no_license.patch</​code>​
 +
 +Il reste à compiler tout ça :
 +<​code>​mvn -P debian install</​code>​
 +Maven va télécharger de nombreux plugins, cela peut prendre du temps ;) Si tout s'est bien passé, vous devriez obtenir :
 +<​code>​[INFO] ------------------------------------------------------------------------
 +[INFO] Reactor Summary:
 +[INFO] ​
 +[INFO] Subsonic .......................................... SUCCESS [1.889s]
 +[INFO] Subsonic Main ..................................... SUCCESS [15.290s]
 +[INFO] Subsonic Booter ................................... SUCCESS [5.499s]
 +[INFO] Subsonic Installer for Debian ..................... SUCCESS [10.345s]
 +[INFO] ------------------------------------------------------------------------
 +[INFO] BUILD SUCCESS
 +[INFO] ------------------------------------------------------------------------
 +[INFO] Total time: 33.277s
 +[INFO] Finished at: Thu Jan 09 22:06:15 CET 2014
 +[INFO] Final Memory: 13M/106M
 +[INFO] ------------------------------------------------------------------------
 +</​code>​
 +
 +Il ne nous reste plus qu'à installer le paquet créé :
 +<​code>​sudo dpkg -i subsonic-installer-debian/​target/​subsonic*.deb</​code>​
 +
 +==== Ça marche pas... ====
 +
 +Si vous avez un problème de compilation (le patch fonctionne pour la révision 4101, version 5.0 de Subsonic, mais il ne pourrait plus fonctionner pour les versions ultérieures),​ voici quelques explications qui vous permettront d'​adapter les modifications vous-même.
 +
 +Tout d'​abord,​ dans le fichier "​pom.xml",​ on ajoute le profil "​debian",​ pour ne compiler que ce qui est nécessaire à Ubuntu, grâce aux lignes 105 à 111 ([[http://​pastebin.com/​dybE0N5B|fichier exemple modifié, révision 4101]]) :
 +<​code> ​       <​profile>​
 +            <​id>​debian</​id>​
 +            <​modules>​
 +                <​module>​subsonic-booter</​module>​
 +                <​module>​subsonic-installer-debian</​module>​
 +            </​modules>​
 +        </​profile></​code>​
 +
 +Ensuite, pour le fichier de licence proprement dit "​subsonic-main/​src/​main/​java/​net/​sourceforge/​subsonic/​service/​SettingsService.java",​ 3 méthodes sont modifiées :
 +<​code> ​   public boolean isLicenseValid() {
 +        return true;
 +    }
 +
 +    public boolean isLicenseValid(String email, String license) {
 +        return true; 
 +    }
 +    ​
 +    private void validateLicense() {
 +        String email = getLicenseEmail();​
 +        Date date = getLicenseDate();​
 +        licenseValidated = true;
 +        return;
 +    }</​code>​
 +    ​
 +Voici la source avec la [[http://​pastebin.com/​4Znmw8Pz|licence active]], et la source avec la [[http://​pastebin.com/​58CKtqmZ|licence désactivée]] (valable pour la révision 4101). Bon courage !
  
 ===== Voir aussi ===== ===== Voir aussi =====


Le contenu de ce wiki est sous licence : CC BY-SA v3.0