Commit f0c6b8e1 authored by cypherpunk's avatar cypherpunk
Browse files

Merged Version_3_Dev branch

parent c0964cbf
......@@ -2,6 +2,6 @@ Off-the-Record Messaging plugin for pidgin
Authors:
Nikita Borisov and Ian Goldberg <otr@cypherpunks.ca>
Ian Goldberg, Chris Alexander, Nikita Borisov <otr@cypherpunks.ca>
See the README file for mailing list information
2007-07-24
* INSTALL: Added information about i18n; added information about
linking libgcrypt statically
* otr-plugin.c: Added support for transparent fragmentation of
large messages
* Most files: Updated copyright information
2007-07-22
* configure.ac: Check for libpurple and use a recent format for
AC_INIT/AM_INIT_AUTOMAKE, based on a patch from <synx13@sf.net>.
2007-07-18
* gtk-ui.c: Simplify account list option menu in Config UI,
thanks to Gabriel Schulhof <nix@go-nix.ca>.
* gtk-ui.c: Reorder the tabs in the Config UI so that Config is
first.
* README: Updated to reflect new tab ordering, and new
"Don't log OTR conversations" option.
* gtk-dialog.c: Fixed a bug in the verify fingerprint dialog in
the unlikely event that a fingerprint exists in the fingerprints
file with no corresponding key for the local account in the
private keys file.
2007-07-17
* dialogs.c:
* dialogs.h:
* gtk-dialog.c: Removed Verify fingerprint and View secure
session id menu options. Added "Advanced..." button to
Authenticate buddy dialog, which brings up the old Verify
fingerprint dialog. The Authenticate buddy dialog now allows
users to authenticate their buddies without ever seeing a
fingerprint.
2007-07-10
* dialogs.c:
* dialogs.h:
* gtk-dialog.c:
* gtk-ui.c:
* otr-plugin.c:
* ui.c:
* ui.h: Added init() and cleanup() callbacks to the ui and
dialog subsystems that are called when the plugin is loaded and
unloaded respectively.
* gtk-dialog.c: Fixed bug where multiple OTR buttons in one
window would cause pidgin to crash when the window is closed.
2007-07-08
* otr-plugin.c:
* gtk-dialog.c:
* gtk-ui.c: Added an option to not log OTR conversations.
* gtk-ui.c:
* ui.c:
* ui.h: Generalized find_policy to get_prefs, allowing for other
preferences to be available.
2007-07-07
* INSTALL: Update dependency information
* Makefile.am:
* Makefile.mingw:
* configure.ac:
* gtk-dialog.c:
* gtk-ui.c:
* makedist:
* otr-plugin.c:
* ui.c: i18n, thanks to Thomas B. <Tommy.B@gmx.net>.
2007-05-06
* Makefile.am:
......
REQUIREMENTS
To compile the OTR plugin for gaim, you'll need at least:
To compile the OTR plugin for pidgin, you'll need at least:
- libgpg-error 1.0 [ftp://ftp.gnupg.org/gcrypt/libgpg-error/]
- libgcrypt 1.2.0 [ftp://ftp.gnupg.org/gcrypt/libgcrypt/]
- libotr 1.99.0 [http://www.cypherpunks.ca/otr/]
- glib 2.4 [http://www.gtk.org/download/]
- gtk+ 2.4 [http://www.gtk.org/download/]
- gaim 1.x [http://gaim.sourceforge.net/downloads.php]
- libotr 3.1.0 [http://otr.cypherpunks.ca/]
- glib 2.6 [http://www.gtk.org/download/]
- gtk+ 2.6 [http://www.gtk.org/download/]
- pidgin 2.x [http://pidgin.im/]
You'll also need the usual autotools, such as automake-1.9, autoreconf,
libtool, intltool, etc.
If you install these with a package manager, you'll probably need the
-dev or -devel versions of the packages.
......@@ -16,6 +19,7 @@ COMPILING (non-Win32)
If you're got a CVS copy, you will need to regenerate the configure
script using:
intltoolize --force --copy
autoreconf -s -i
[If you installed libotr.m4 somewhere that autoreconf can't find it,
......@@ -36,6 +40,11 @@ NETBSD:
Once the configure script writes a Makefile, you should be able to just
run "make".
If you want a plugin that has libgcrypt linked statically, use
"make -f Makefile.static". Makefile.static assumes libotr.a and libgcrypt.a
are available in /usr/lib. If they're somewhere else, use something like
"LIBOTRDIR=/usr/local/lib make -f Makefile.static".
COMPILING (Win32)
Use the provided Makefile.mingw:
......
AM_CFLAGS= @LIBGCRYPT_CFLAGS@ @LIBOTR_CFLAGS@ @EXTRA_CFLAGS@
AM_CFLAGS+= -DUSING_GTK -DPURPLE_PLUGINS \
-DPIDGIN_OTR_VERSION=\"@VERSION@\"
-DPIDGIN_OTR_VERSION=\"@VERSION@\" \
-DLOCALEDIR=\"$(datadir)/locale\"
SUBDIRS= po
plugindir= ${libdir}/pidgin
plugin_LTLIBRARIES= pidgin-otr.la
pidgin_otr_la_SOURCES= otr-plugin.c ui.c dialogs.c gtk-ui.c gtk-dialog.c
pidgin_otr_la_LDFLAGS= -module -avoid-version
pidgin_otr_la_SOURCES= otr-plugin.c ui.c dialogs.c gtk-ui.c gtk-dialog.c
pidgin_otr_la_LDFLAGS= -module -avoid-version
pidgin_otr_la_LDFLAGS+= @LIBGCRYPT_LIBS@ @LIBOTR_LIBS@
EXTRA_DIST= dialogs.h gtk-dialog.h gtk-ui.h otr-plugin.h ui.h \
Makefile.mingw packaging
Makefile.mingw packaging/windows/pidgin-otr.nsi \
packaging/fedora/pidgin-otr.spec po/Makefile.mingw \
po/README intltool-extract.in intltool-merge.in \
intltool-update.in Makefile.static
DISTCLEANFILES= intltool-extract intltool-merge intltool-update
WIN32=1
# The version number to put in the plugin info
PIDGIN_OTR_VERSION = 3.0.0
PIDGIN_OTR_VERSION = 3.1.0
# Name of the gettext domain
GETTEXT_PACKAGE = pidgin-otr
# Replace this with the path to the pidgin and purple headers
PIDGIN_HEADERS ?= /usr/i586-mingw32msvc/include/pidgin
......@@ -18,6 +21,12 @@ LIBOTRINCDIR = /usr/include
# The locataion of libotr.a.
LIBOTRLIBDIR = /usr/lib
# Location of libintl.h
LIBINTLINCDIR = /usr/i586-mingw32msvc/include
# Location of libintl.a
LIBINTLLIBDIR = /usr/i586-mingw32msvc/lib
# The target
TARGET = pidgin-otr.so
......@@ -28,7 +37,8 @@ LIBOTRLIBDIR = /usr/i586-mingw32msvc/lib
TARGET = pidgin-otr.dll
LDFLAGS = -Wl,--enable-auto-image-base
LDLIBS = $(LIBOTRLIBDIR)/libotr.a -lgtk-win32-2.0 -lglib-2.0 -lgdk_pixbuf-2.0 \
-lgobject-2.0 -lpidgin -llibpurple -lgcrypt -lgpg-error
-lgobject-2.0 -lpidgin -llibpurple -lgcrypt -lgpg-error \
-L$(LIBINTLLIBDIR) -lintl
else
FPIC = -fPIC
LDFLAGS = -module -avoid-version
......@@ -42,7 +52,9 @@ INSTALLDIR = $(DESTDIR)$(PIDGINDIR)
CC ?= gcc
override CFLAGS += -g -Wall -I$(PIDGIN_HEADERS) -I$(PURPLE_HEADERS) \
$(GTK_HDRS) -I$(LIBOTRINCDIR) $(FPIC) -DUSING_GTK -DPURPLE_PLUGINS \
-DPIDGIN_OTR_VERSION=\"$(PIDGIN_OTR_VERSION)\" -DPIDGIN_NAME=\"Pidgin\"
-DPIDGIN_OTR_VERSION=\"$(PIDGIN_OTR_VERSION)\" \
-DPIDGIN_NAME=\"Pidgin\" -I$(LIBINTLINCDIR) -DENABLE_NLS \
-DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\"
all: $(TARGET)
......@@ -52,6 +64,8 @@ $(TARGET): otr-plugin.o ui.o dialogs.o gtk-ui.o gtk-dialog.o
install: all
install -d $(INSTALLDIR)
install -m 0755 $(TARGET) $(INSTALLDIR)
$(MAKE) -C po -f Makefile.mingw install
clean:
rm -f *.o
rm -f $(TARGET)
......
LIBOTRDIR?=/usr/lib
LIBGCRYPTDIR?=/usr/lib
.libs/pidgin-otr.so: FORCE
# Build everything from the standard Makefile
make
# Link everything, including libotr and libgcrypt, together into
# a single .o file
ld -r .libs/otr-plugin.o .libs/ui.o .libs/dialogs.o .libs/gtk-ui.o \
.libs/gtk-dialog.o $(LIBOTRDIR)/libotr.a \
$(LIBGCRYPTDIR)/libgcrypt.a /usr/lib/libgpg-error.a \
-o .libs/pidgin-otr-shared.o
# Make all the libgcrypt references local to that .o file
objcopy -w -L '*gcry*' .libs/pidgin-otr-shared.o \
.libs/pidgin-otr-static.o
# Turn the .o into a .so
gcc -shared .libs/pidgin-otr-static.o -Wl,-soname -Wl,pidgin-otr.so \
-o .libs/pidgin-otr.so
FORCE:
24 Jul 2007:
- Added option to not log OTR conversations
- Large messages are now fragmented transparently instead of failing
- Removed "view secure session id" and "verify fingerprint" options from
OTR button menu. Added "authenticate buddy" option in its place. This
new option allows you to authenticate your buddies by entering some
secret that only the two of you know, rather than by using a long
user-unfriendly sequence of hex characters. [The old "verify
fingerprint" dialog is still available via an "Advanced..." button
from the new "authenticate buddy" dialog.]
06 May 2007:
- Ported to Pidgin 2.0.0
......
Off-the-Record Messaging plugin for pidgin
v3.0.0, 6 May 2007
v3.1.0, XX XXX 2007
This is a pidgin plugin which implements Off-the-Record (OTR) Messaging.
It is known to work (at least) under the Linux and Windows versions of
......@@ -21,7 +21,7 @@ OTR allows you to have private conversations over IM by providing:
is compromised.
For more information on Off-the-Record Messaging, see
http://www.cypherpunks.ca/otr/
http://otr.cypherpunks.ca/
USAGE
......@@ -29,7 +29,7 @@ Run pidgin, and open the Plugins panel. (If you had a copy of pidgin
running before you installed pidgin-otr, you will need to restart it.)
Find the Off-the-Record Messaging plugin, and enable it by selecting the
checkbox next to it. Click "Configure Plugin" to bring up the OTR UI.
The UI has two "pages": "Known fingerprints" and "Config".
The UI has two "pages": "Config" and "Known fingerprints".
The "Config" page allows you generate private keys, and to set OTR
options.
......@@ -52,6 +52,7 @@ options.
[X] Enable private messaging
[X] Automatically initiate private messaging
[ ] Require private messaging
[ ] Don't log OTR conversations
If the "enable private messaging" box is unchecked, private messages
will be disabled completely (and the other two boxes will be greyed
......@@ -68,9 +69,13 @@ options.
understand OTR private messages, and if so, automatically start a
private conversation.
If all three boxes are checked, messages will not be sent to your
If the first three boxes are checked, messages will not be sent to your
buddy unless you are in a private conversation.
If the fourth box is checked, OTR-protected conversations will not
be logged, even if logging of instant messages is turned on in
pidgin.
The "Known fingerprints" page allows you to see the fingerprints of any
buddies you have previously communicated with privately.
......@@ -222,7 +227,7 @@ The Off-the-Record Messaging plugin for pidgin is covered by the following
(GPL) license:
Off-the-Record Messaging plugin for pidgin
Copyright (C) 2004-2005 Nikita Borisov and Ian Goldberg
Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
<otr@cypherpunks.ca>
This program is free software; you can redistribute it and/or modify
......@@ -244,7 +249,7 @@ CONTACT
To report problems, comments, suggestions, patches, etc., you can email
the authors:
Nikita Borisov and Ian Goldberg <otr@cypherpunks.ca>
Ian Goldberg, Chris Alexander, and Nikita Borisov <otr@cypherpunks.ca>
For more information on Off-the-Record Messaging, visit
http://www.cypherpunks.ca/otr/
http://otr.cypherpunks.ca/
dnl Process this file with autoconf to produce configure.
dnl XXX Check for headers, etc.
dnl Not yet used.
AC_INIT(otr-plugin.c)
AC_INIT(pidgin-otr, 3.1.0)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(pidgin-otr, 3.0.0)
AM_INIT_AUTOMAKE([-Wall -Werror])
AC_PROG_CC
......@@ -17,8 +14,17 @@ AM_PROG_LIBTOOL
AM_PATH_LIBGCRYPT(1:1.2.0,,AC_MSG_ERROR(libgcrypt 1.2.0 or newer is required.))
AM_PATH_LIBOTR(3.0.0,,AC_MSG_ERROR(libotr 3.0.0 or newer is required.))
AM_PATH_LIBOTR(3.1.0,,AC_MSG_ERROR(libotr 3.1.0 or newer is required.))
PKG_CHECK_MODULES(EXTRA, glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0, , AC_MSG_ERROR(glib, gtk, pidgin and purple required))
AC_PROG_INTLTOOL
GETTEXT_PACKAGE=pidgin-otr
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
PKG_CHECK_MODULES(EXTRA, glib-2.0 >= 2.4 gtk+-2.0 >= 2.4 pidgin >= 2.0, , AC_MSG_ERROR(glib, gtk and pidgin required))
ALL_LINGUAS=""
AM_GLIB_GNU_GETTEXT
AC_OUTPUT([Makefile])
AC_OUTPUT([Makefile po/Makefile.in])
/*
* Off-the-Record Messaging plugin for pidgin
* Copyright (C) 2004-2005 Nikita Borisov and Ian Goldberg
* Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
* <otr@cypherpunks.ca>
*
* This program is free software; you can redistribute it and/or modify
......@@ -49,6 +49,18 @@ const OtrgDialogUiOps *otrg_dialog_get_ui_ops(void)
return ui_ops;
}
/* Initialize the OTR dialog subsystem */
void otrg_dialog_init(void)
{
ui_ops->init();
}
/* Deinitialize the OTR dialog subsystem */
void otrg_dialog_cleanup(void)
{
ui_ops->cleanup();
}
/* This is just like pidgin_notify_message, except: (a) it doesn't grab
* keyboard focus, (b) the button is "OK" instead of "Close", and (c)
* the labels aren't limited to 2K. */
......@@ -125,6 +137,18 @@ void otrg_dialog_verify_fingerprint(Fingerprint *fprint)
ui_ops->verify_fingerprint(fprint);
}
/* Show a dialog asking the user to give an SMP secret. */
void otrg_dialog_socialist_millionaires(ConnContext *context)
{
ui_ops->socialist_millionaires(context, TRUE);
}
/* Update the status of an ongoing socialist millionaires protocol. */
void otrg_dialog_update_smp(ConnContext *context, double progress_level)
{
ui_ops->update_smp(context, progress_level);
}
/* Call this when a context transitions to ENCRYPTED. */
void otrg_dialog_connected(ConnContext *context)
{
......
/*
* Off-the-Record Messaging plugin for pidgin
* Copyright (C) 2004-2005 Nikita Borisov and Ian Goldberg
* Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
* <otr@cypherpunks.ca>
*
* This program is free software; you can redistribute it and/or modify
......@@ -29,6 +29,7 @@
/* The various help URLs */
#define BASE_HELPURL "http://otr-help.cypherpunks.ca/"
#define AUTHENTICATE_HELPURL BASE_HELPURL "authenticate.php"
#define FINGERPRINT_HELPURL BASE_HELPURL "fingerprint.php"
#define SESSIONID_HELPURL BASE_HELPURL "sessionid.php"
#define UNVERIFIED_HELPURL BASE_HELPURL "unverified.php"
......@@ -37,6 +38,10 @@
typedef struct s_OtrgDialogWait *OtrgDialogWaitHandle;
typedef struct {
void (*init)(void);
void (*cleanup)(void);
void (*notify_message)(PurpleNotifyMsgType type,
const char *accountname, const char *protocol, const char *username,
const char *title, const char *primary, const char *secondary);
......@@ -54,6 +59,10 @@ typedef struct {
void (*verify_fingerprint)(Fingerprint *fprint);
void (*socialist_millionaires)(ConnContext *context, gboolean responder);
void (*update_smp)(ConnContext *context, double progress_level);
void (*connected)(ConnContext *context);
void (*disconnected)(ConnContext *context);
......@@ -76,6 +85,12 @@ void otrg_dialog_set_ui_ops(const OtrgDialogUiOps *ops);
/* Get the UI ops */
const OtrgDialogUiOps *otrg_dialog_get_ui_ops(void);
/* Initialize the OTR dialog subsystem */
void otrg_dialog_init(void);
/* Deinitialize the OTR dialog subsystem */
void otrg_dialog_cleanup(void);
/* This is just like pidgin_notify_message, except: (a) it doesn't grab
* keyboard focus, (b) the button is "OK" instead of "Close", and (c)
* the labels aren't limited to 2K. */
......@@ -121,6 +136,12 @@ void otrg_dialog_unknown_fingerprint(OtrlUserState us, const char *accountname,
/* Show a dialog asking the user to verify the given fingerprint. */
void otrg_dialog_verify_fingerprint(Fingerprint *fprint);
/* Show a dialog asking the user to give an SMP secret. */
void otrg_dialog_socialist_millionaires(ConnContext *context);
/* Update the status of an ongoing socialist millionaires protocol. */
void otrg_dialog_update_smp(ConnContext *context, double progress_level);
/* Call this when a context transitions to ENCRYPTED. */
void otrg_dialog_connected(ConnContext *context);
......
This diff is collapsed.
/*
* Off-the-Record Messaging plugin for pidgin
* Copyright (C) 2004-2005 Nikita Borisov and Ian Goldberg
* Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
* <otr@cypherpunks.ca>
*
* This program is free software; you can redistribute it and/or modify
......
This diff is collapsed.
/*
* Off-the-Record Messaging plugin for pidgin
* Copyright (C) 2004-2005 Nikita Borisov and Ian Goldberg
* Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
* <otr@cypherpunks.ca>
*
* This program is free software; you can redistribute it and/or modify
......
......@@ -2,6 +2,7 @@
# Make the distribution tar.gz file from the CVS exported version
intltoolize --force --copy
autoreconf -s -i
./configure --mandir=/usr/share/man --prefix=/usr
fakeroot make dist
This diff is collapsed.
/*
* Off-the-Record Messaging plugin for pidgin
* Copyright (C) 2004-2005 Nikita Borisov and Ian Goldberg
* Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
* <otr@cypherpunks.ca>
*
* This program is free software; you can redistribute it and/or modify
......@@ -30,6 +30,7 @@
#define PRIVKEYFNAME "otr.private_key"
#define STOREFNAME "otr.fingerprints"
#define MAXMSGSIZEFNAME "otr.max_message_size"
extern PurplePlugin *otrg_plugin_handle;
......@@ -44,6 +45,17 @@ void otrg_plugin_inject_message(PurpleAccount *account, const char *recipient,
void otrg_plugin_create_privkey(const char *accountname,
const char *protocol);
/* Start or continue the Socialist Millionaires' Protocol over the current
* connection, using the given initial secret. */
void otrg_plugin_start_smp(ConnContext *context,
const unsigned char *secret, size_t secretlen);
void otrg_plugin_continue_smp(ConnContext *context,
const unsigned char *secret, size_t secretlen);
/* Abort the SMP protocol. Used when malformed or unexpected messages
* are received. */
void otrg_plugin_abort_smp(ConnContext *context);
/* Send the default OTR Query message to the correspondent of the given
* context, from the given account. [account is actually a
* PurpleAccount*, but it's declared here as void* so this can be passed
......@@ -64,6 +76,11 @@ void otrg_plugin_write_fingerprints(void);
/* Find the ConnContext appropriate to a given PurpleConversation. */
ConnContext *otrg_plugin_conv_to_context(PurpleConversation *conv);
/* Find the PurpleConversation appropriate to the given userinfo. If
* one doesn't yet exist, create it if force_create is true. */
PurpleConversation *otrg_plugin_userinfo_to_conv(const char *accountname,
const char *protocol, const char *username, int force_create);
/* Find the PurpleConversation appropriate to the given ConnContext. If
* one doesn't yet exist, create it if force_create is true. */
PurpleConversation *otrg_plugin_context_to_conv(ConnContext *context,
......
Summary: Off-The-Record Messaging plugin for GAIM
Name: gaim-otr
Version: 3.0.0
Summary: Off-The-Record Messaging plugin for pidgin
Name: pidgin-otr
Version: 3.1.0
Release: 1%{?dist}
Source: http://www.cypherpunks.ca/otr/%{name}-%{version}.tar.gz
Url: http://www.cypherpunks.ca/otr/
......@@ -9,14 +9,14 @@ Group: Applications/Internet
Provides: otr-plugin = %{version}
Obsoletes: otr-plugin
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: gaim >= 1.0.0, libotr >= 3.0.0
BuildRequires: glib2-devel, gtk2-devel, libgcrypt-devel >= 1.2.0, libgpg-error-devel, gaim >= 1.0.0, libotr-devel >= 3.0.0
Requires: pidgin >= 2.0.0, libotr >= 3.1.0
BuildRequires: glib2-devel, gtk2-devel, libgcrypt-devel >= 1.2.0, libgpg-error-devel, pidgin >= 2.0.0, libotr-devel >= 3.1.0
%description
This is a gaim plugin which implements Off-the-Record (OTR) Messaging.
This is a pidgin plugin which implements Off-the-Record (OTR) Messaging.
It is known to work (at least) under the Linux and Windows versions of
gaim (1.x).
pidgin (2.x).
%prep
%setup -q
......@@ -30,7 +30,7 @@ make %{?_smp_mflags} all
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
# libtool insists on creating this
rm $RPM_BUILD_ROOT/%{_libdir}/gaim/gaim-otr.la
rm $RPM_BUILD_ROOT/%{_libdir}/pidgin/pidgin-otr.la
%clean
rm -rf $RPM_BUILD_ROOT
......@@ -38,7 +38,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root, 0755)
%doc README COPYING
%{_libdir}/gaim/gaim-otr.so
%{_libdir}/pidgin/pidgin-otr.so
%changelog
* Mon Oct 17 2005 Paul Wouters <paul@cypherpunks.ca> 3.0.0
......
; Script based on generated HM NIS Edit Script Wizard.
; Forgive me, i am new at this. -- paul@cypherpunks.ca
;
; known issue. installer induced uninstaller abortion causes overwrite by installer without
; uninstall.
; v3.0.1 - Version for gaim-2.0.0 beta5
; v3.0.0 - Bump version number.
; v2.0.2 - Bump version number.
; v2.0.1 - Bump version number.
; v2.0.0-2 - linking to libotr-2.0.1
; v2.0.0 - Bump version number. Fixed upgrading gaim2-otr (it didn't overwrite the dll)
; bug reported by Aldert Hazenberg <aldert@xelerance.com>
; - Added many safeguards and fixed conditions of failures when gaim is running
; during install, or failed to (un)install previously.
; - Removed popup signifying gaim is found
; v1.99.0-1 - Bump version number, install Protocol.txt file
; v1.0.3-2 - Fix for detecting gaim if not installed by Administrator
; bug report by Joanna Rutkowska <joanna@mailsnare.net>
; - Fix for uninstalling the dll when not installed as Administrator
; v1.0.3 - Initial version
; todo: SetBrandingImage
; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "gaim-otr"
!define PRODUCT_VERSION "3.0.1"
!define PRODUCT_PUBLISHER "Cypherpunks CA"
!define PRODUCT_WEB_SITE "http://www.cypherpunks.ca/otr/"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
; MUI 1.67 compatible ------
!include "MUI.nsh"
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; License page
!insertmacro MUI_PAGE_LICENSE "c:\otr\COPYING.txt"
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "English"
; MUI end ------
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\gaim2-otr"
InstallDirRegKey HKEY_LOCAL_MACHINE SOFTWARE\gaim-otr "Install_Dir"
;WriteRegStr HKLM "SOFTWARE\gaim2-otr" "gaimdir" ""
Var "GaimDir"
ShowInstDetails show
ShowUnInstDetails show
Section "MainSection" SEC01
;InstallDir "$PROGRAMFILES\Gaim\plugins"
; uninstall previous gaim2-otr install if found.
Call UnInstOld
;Check for gaim installation
Call GetGaimInstPath