Projet

Général

Profil

Tcl-tk

Vu qu'il semble interdit (ref: http://www.activestate.com/activetcl/license-agreement) de prendre un morceau d'active-tcl pour le diffuser à nos utilisateurs je me suis lancé dans la compilation de TCL/TK sous windows à partir du code source du projet.

Licence de activestate

On croit rêver et on se demande si c'est possible de restreindre ainsi les droits d'un logiciel qui est sous licence GNU/GPL:

4. Restrictions.

1. a. Except as expressly provided herein You may not: (i) permit others outside Your organization to use the Software; (ii) modify or translate the Software; (iii) reverse engineer, decompile, or disassemble the Software, except to the extent this restriction is expressly prohibited by applicable law; (iv) create derivative works based on the Software; (v) merge the Software with another product; (vi) copy the Software; (vii) remove or obscure any proprietary rights notices or labels on the Software; (vii) (a) redistribute the Software as a whole whether as a wrapped application or on a stand alone basis, (b) use its parts to create a language distribution, or (c) redistribute the ACTIVESTATE components with Your Wrapped Application.

Compilation à partir des sources

pour chaque répertoire de ce dossier, par exemple pour tcl

  • cd tcl*/tcl*
  • win/configure --prefix=/opt/tcl --with-tcl=/opt/tcl/lib --with-tk=/opt/tcl/lib --includedir=/src/include
  • make
  • make install

Le résultat se trouve dans /opt/tcl. Par rapport à la racine windows, ça se trouve ici: C:\MinGW\msys\1.0\opt\tcl

Création du paquet de déploiement pour les utilisateurs

Pour créer l'équivalent du setup-tcl.exe que nous utilisons depuis des années, il faut créer un fichier iss comme suit:


; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "TCL/TK pour AbulEdu" 
#define MyAppVersion "8.5.9" 
#define MyAppPublisher "RyXeo SARL" 
#define MyAppURL "http://www.abuledu.org/" 

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{F5429D87-D7E1-47C4-B69D-507BD91EA92F}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\TCL
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl" 
Name: "french"; MessagesFile: "compiler:Languages\French.isl" 

[Files]
Source: opt\tcl\bin\*.*; DestDir: {app}\bin\
Source: opt\tcl\bin\wish85.exe; DestDir: {app}\bin\; DestName: wish.exe
Source: opt\tcl\lib\*.*; DestDir: {app}\lib\; Flags: recursesubdirs

[Registry]
Root: HKCR; SubKey: .tcl; ValueType: string; ValueData: TclScript; Flags: uninsdeletekey
Root: HKCR; SubKey: TclScript; ValueType: string; ValueData: TclScript; Flags: uninsdeletekey
Root: HKCR; SubKey: TclScript\Shell\Open\Command; ValueType: string; ValueData: """{app}\bin\wish.exe"" ""%1"""; Flags: uninsdeletevalue

Remarques:

Il manque libkidis.dll

Il faut compiler la DLL de kidistb à partir de cette nouvelle version de TCL/TK

Modification du code

Modification pour passage à snack 2.2 cf tcl.tk (eric) à tester et valider, notes prises rapidement:

package require -exact snack 2.2

au lieu de

#switch [info tclversion] {

  1. #8.4 {load [file join Snack1.dll]}
    #8.3 {load [file join Snack.dll]} #
    #}

+ modification du code pour avoir

set currentson [file join $Home sons $son$ext]
snack::sound s -file $currentson
s play -block 1

-> semble pb de play (son haché)

Redmine Appliance - Powered by TurnKey Linux