diff options
author | René Schümann <white06tiger@gmail.com> | 2015-03-26 20:36:44 +0000 |
---|---|---|
committer | René Schümann <white06tiger@gmail.com> | 2015-03-26 20:36:44 +0000 |
commit | 52c68e0b3cf78f578da1754fbd6589d1936804f9 (patch) | |
tree | cc904ae4d781db1c184775364519d3232b2ec4bc /plugins | |
parent | c42ecf6c0bd9f0c12bad6b3cda158f004cbec0fe (diff) |
MirOTR: added files required by libotr while configuring it from source and updated DEPENDENCIES.txt accordingly (also added Git hash for libotr)
git-svn-id: http://svn.miranda-ng.org/main/trunk@12501 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/MirOTR/DEPENDENCIES.txt | 16 | ||||
-rw-r--r-- | plugins/MirOTR/Libgcrypt/src/libgcrypt-config | 189 | ||||
-rw-r--r-- | plugins/MirOTR/Libgcrypt/src/libgcrypt.m4 | 122 |
3 files changed, 322 insertions, 5 deletions
diff --git a/plugins/MirOTR/DEPENDENCIES.txt b/plugins/MirOTR/DEPENDENCIES.txt index 855d7eb456..4a005e605b 100644 --- a/plugins/MirOTR/DEPENDENCIES.txt +++ b/plugins/MirOTR/DEPENDENCIES.txt @@ -5,12 +5,12 @@ Libgpg-error ( https://gnupg.org/download/ ) Libgcrypt ( https://gnupg.org/download/ )
1.6.3
libotr ( https://otr.cypherpunks.ca/ )
- 3.2.0
+ 3.2.0 (hash 2deecec)
-HOW TO UPDATE DEPENDENCIES
+HOW_TO_UPDATE_DEPENDENCIES
in theory, it's possible to use MSYS + MSVC to do the following, but I've used GCC for convenience as my MSVC didn't want to :P
I've used MSYS2 and its own GCC (used 32bit as reference in hope that it will work for 64bit as well)
@@ -37,7 +37,7 @@ HOW TO UPDATE DEPENDENCIES since we don't build Libgpg-error but include it directly into Libgcrypt, config.h isn't really needed
- Libgcrypt (from tarball)
- - run MSYS
+ - run MSYS from MirOTR directory
tar xvf libgcrypt-1.6.3.tar.bz2
cd libgcrypt-1.6.3
export GPG_ERROR_CONFIG=$(pwd)/../Libgpg-error/gpg-error-config
@@ -45,15 +45,18 @@ HOW TO UPDATE DEPENDENCIES - copy .c and .h files from cipher/ to our Libgcrypt
- copy .c and .h files from compat/ to our Libgcrypt
- copy mpi/ and random/ to our Libgcrypt
- - copy .c,.h,.def files from src/ to our Libgcrypt
- - copy config.h to our Libgcrypt custom/
+ - copy .c,.h,.def,.m4 and libgcrypt-config from src/ to our Libgcrypt
- cipher/cipher-ccm.c: replace "tmp[blocksize];" with "tmp[16];" as MSVC is quite dumb
- cipher/stribog.c: replace "u64 Z[8] = {};" with "u64 Z[8] = {0};"
+ - copy config.h to our Libgcrypt custom/
- config.h: see CONVERT_CONFIG_H_FROM_GCC_TO_MSVC
- libotr (from Git)
- tbd
+
+
+
CONVERT_CONFIG_H_FROM_GCC_TO_MSVC
convert from GCC configured config to MSVC settings
- define disabling ( simply comment them out or replace with /* #undef <define> */ )
@@ -82,6 +85,9 @@ CONVERT_CONFIG_H_FROM_GCC_TO_MSVC - see CUSTOM_CONFIG_H_MODIFICATIONS
+
+
+
CUSTOM_CONFIG_H_MODIFICATIONS
we do some Miranda NG / MSVC related modifications to *config.h files
simply append:
diff --git a/plugins/MirOTR/Libgcrypt/src/libgcrypt-config b/plugins/MirOTR/Libgcrypt/src/libgcrypt-config new file mode 100644 index 0000000000..6a808634af --- /dev/null +++ b/plugins/MirOTR/Libgcrypt/src/libgcrypt-config @@ -0,0 +1,189 @@ +#!/bin/sh +# Copyright (C) 1999, 2002, 2003, 2004, 2011 Free Software Foundation, Inc. +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This file is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# File: src/libgcrypt-config. Generated from libgcrypt-config.in by configure. + +# General. +prefix="/usr/local" +exec_prefix="${prefix}" +version="1.6.3" +includedir="${prefix}/include" +libdir="${exec_prefix}/lib" +gpg_error_libs="-L/usr/local/lib -lgpg-error" +gpg_error_cflags="-I/usr/local/include" + +# libgcrypt values. +libs="-lgcrypt" +cflags="" + +# API info +api_version="1" + +# Configured for host +my_host="x86_64-pc-mingw32" + +# Misc information. +symmetric_ciphers="arcfour blowfish cast5 des aes twofish serpent rfc2268 seed camellia idea salsa20 gost28147" +asymmetric_ciphers="dsa elgamal rsa ecc" +digests="crc gostr3411-94 md4 md5 rmd160 sha1 sha256 sha512 tiger whirlpool stribog" + +# State variables. +echo_libs=no +echo_cflags=no +echo_prefix=no +echo_algorithms=no +echo_exec_prefix=no +echo_version=no +echo_api_version=no +echo_host=no + +# Prints usage information. +usage() +{ + cat <<EOF +Usage: $0 [OPTIONS] +Options: + [--prefix] + [--exec-prefix] + [--version] + [--api-version] + [--libs] + [--cflags] + [--algorithms] + [--host] +EOF + exit $1 +} + +if test $# -eq 0; then + # Nothing to do. + usage 1 1>&2 +fi + +while test $# -gt 0; do + case "$1" in + # Set up `optarg'. + --*=*) + optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` + ;; + *) + optarg="" + ;; + esac + + case $1 in + --thread=*) + echo "$0: --thread option obsolete: use the thread callback interface" 1>&2 + exit 1 + ;; + --prefix=*) + # For compatibility reasons with old M4 macros, we ignore + # setting of prefix. + ;; + --prefix) + echo_prefix=yes + ;; + --exec-prefix=*) + ;; + --exec-prefix) + echo_exec_prefix=yes + ;; + --version) + echo_version=yes + ;; + --api-version) + echo_api_version=yes + ;; + --cflags) + echo_cflags=yes + ;; + --libs) + echo_libs=yes + ;; + --algorithms) + echo_algorithms=yes + ;; + --host) + echo_host=yes + ;; + *) + usage 1 1>&2 + ;; + esac + shift +done + +if test "$echo_prefix" = "yes"; then + echo "$prefix" +fi + +if test "$echo_exec_prefix" = "yes"; then + echo "$exec_prefix" +fi + +if test "$echo_cflags" = "yes"; then + includes="" + cflags_final="$cflags" + + # Set up `includes'. + if test "x$includedir" != "x/usr/include" -a "x$includedir" != "x/include"; then + includes="-I$includedir" + fi + # Set up `cflags_final'. + cflags_final="$cflags_final $gpg_error_cflags" + + tmp="" + for i in $includes $cflags_final; do + if echo "$tmp" | fgrep -v -- "$i" >/dev/null; then + tmp="$tmp $i" + fi + done + echo $tmp +fi + +if test "$echo_libs" = "yes"; then + libdirs="" + libs_final="$libs" + + # Set up `libdirs'. + if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/lib"; then + libdirs="-L$libdir" + fi + + # Set up `libs_final'. + libs_final="$libs_final $gpg_error_libs" + + tmp="" + for i in $libdirs $libs_final; do + if echo "$tmp" | fgrep -v -- "$i" >/dev/null; then + tmp="$tmp $i" + fi + done + echo $tmp +fi + +if test "$echo_version" = "yes"; then + echo "$version" +fi + +if test "$echo_api_version" = "yes"; then + echo "$api_version" +fi + +if test "$echo_host" = "yes"; then + echo "$my_host" +fi + +if test "$echo_algorithms" = "yes"; then + echo "Symmetric cipher algorithms: $symmetric_ciphers" + echo "Public-key cipher algorithms: $asymmetric_ciphers" + echo "Message digest algorithms: $digests" +fi diff --git a/plugins/MirOTR/Libgcrypt/src/libgcrypt.m4 b/plugins/MirOTR/Libgcrypt/src/libgcrypt.m4 new file mode 100644 index 0000000000..6cf482fcba --- /dev/null +++ b/plugins/MirOTR/Libgcrypt/src/libgcrypt.m4 @@ -0,0 +1,122 @@ +dnl Autoconf macros for libgcrypt +dnl Copyright (C) 2002, 2004, 2011 Free Software Foundation, Inc. +dnl +dnl This file is free software; as a special exception the author gives +dnl unlimited permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl +dnl This file is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + +dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, +dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) +dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. +dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed +dnl with the API version to also check the API compatibility. Example: +dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed +dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using +dnl this features allows to prevent build against newer versions of libgcrypt +dnl with a changed API. +dnl +AC_DEFUN([AM_PATH_LIBGCRYPT], +[ AC_REQUIRE([AC_CANONICAL_HOST]) + AC_ARG_WITH(libgcrypt-prefix, + AC_HELP_STRING([--with-libgcrypt-prefix=PFX], + [prefix where LIBGCRYPT is installed (optional)]), + libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") + if test x$libgcrypt_config_prefix != x ; then + if test x${LIBGCRYPT_CONFIG+set} != xset ; then + LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config + fi + fi + + AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no) + tmp=ifelse([$1], ,1:1.2.0,$1) + if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then + req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` + min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` + else + req_libgcrypt_api=0 + min_libgcrypt_version="$tmp" + fi + + AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) + ok=no + if test "$LIBGCRYPT_CONFIG" != "no" ; then + req_major=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` + req_minor=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` + req_micro=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` + libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` + major=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` + minor=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` + micro=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` + if test "$major" -gt "$req_major"; then + ok=yes + else + if test "$major" -eq "$req_major"; then + if test "$minor" -gt "$req_minor"; then + ok=yes + else + if test "$minor" -eq "$req_minor"; then + if test "$micro" -ge "$req_micro"; then + ok=yes + fi + fi + fi + fi + fi + fi + if test $ok = yes; then + AC_MSG_RESULT([yes ($libgcrypt_config_version)]) + else + AC_MSG_RESULT(no) + fi + if test $ok = yes; then + # If we have a recent libgcrypt, we should also check that the + # API is compatible + if test "$req_libgcrypt_api" -gt 0 ; then + tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` + if test "$tmp" -gt 0 ; then + AC_MSG_CHECKING([LIBGCRYPT API version]) + if test "$req_libgcrypt_api" -eq "$tmp" ; then + AC_MSG_RESULT([okay]) + else + ok=no + AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) + fi + fi + fi + fi + if test $ok = yes; then + LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` + LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` + ifelse([$2], , :, [$2]) + libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` + if test x"$libgcrypt_config_host" != xnone ; then + if test x"$libgcrypt_config_host" != x"$host" ; then + AC_MSG_WARN([[ +*** +*** The config script $LIBGCRYPT_CONFIG was +*** built for $libgcrypt_config_host and thus may not match the +*** used host $host. +*** You may want to use the configure option --with-libgcrypt-prefix +*** to specify a matching config script. +***]]) + fi + fi + else + LIBGCRYPT_CFLAGS="" + LIBGCRYPT_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(LIBGCRYPT_CFLAGS) + AC_SUBST(LIBGCRYPT_LIBS) +]) |