diff options
author | Michael Vetter <jubalh@iodoru.org> | 2022-02-18 18:09:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-18 18:09:37 +0100 |
commit | 5957b757ceea36b51dfedec06893d022b1865bce (patch) | |
tree | c3a6c4d577a483ecc7cddac6d399d82a10100e7e | |
parent | 7bbaa11a54b6b32055df604f8bf5dd00fe97388d (diff) | |
parent | 9a8e220770eab402f5940fd6b7a4e80a6bfab919 (diff) | |
download | profani-tty-5957b757ceea36b51dfedec06893d022b1865bce.tar.gz |
Merge pull request #1641 from profanity-im/clean-configure
Clean up configure.ac
-rw-r--r-- | Makefile.am | 10 | ||||
-rwxr-xr-x | configure-plugins | 3 | ||||
-rw-r--r-- | configure.ac | 239 | ||||
-rw-r--r-- | src/omemo/store.c | 12 | ||||
-rw-r--r-- | src/omemo/store.h | 8 | ||||
-rw-r--r-- | src/otr/otrlibv3.c | 231 |
6 files changed, 117 insertions, 386 deletions
diff --git a/Makefile.am b/Makefile.am index d32ae9e9..997607e0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -187,9 +187,6 @@ pgp_sources = \ pgp_unittest_sources = \ tests/unittests/pgp/stub_gpg.c -otr3_sources = \ - src/otr/otrlib.h src/otr/otrlibv3.c src/otr/otr.h src/otr/otr.c - otr4_sources = \ src/otr/otrlib.h src/otr/otrlibv4.c src/otr/otr.h src/otr/otr.c @@ -229,13 +226,8 @@ endif if BUILD_OTR unittest_sources += $(otr_unittest_sources) -if BUILD_OTR3 -core_sources += $(otr3_sources) -endif -if BUILD_OTR4 core_sources += $(otr4_sources) endif -endif if BUILD_OMEMO core_sources += $(omemo_sources) @@ -244,7 +236,7 @@ endif all_c_sources = $(core_sources) $(unittest_sources) \ $(pgp_sources) $(pgp_unittest_sources) \ - $(otr3_sources) $(otr4_sources) $(otr_unittest_sources) \ + $(otr4_sources) $(otr_unittest_sources) \ $(omemo_sources) $(omemo_unittest_sources) \ $(c_sources) $(python_sources) \ $(main_source) diff --git a/configure-plugins b/configure-plugins deleted file mode 100755 index d0d9f98a..00000000 --- a/configure-plugins +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -./configure --enable-python-plugins --enable-c-plugins CFLAGS='-g -O0' CXXFLAGS='-g -O0' diff --git a/configure.ac b/configure.ac index 4a6a8ba2..d260ce50 100644 --- a/configure.ac +++ b/configure.ac @@ -1,24 +1,21 @@ -# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_INIT([profanity],[0.12.0],[jubalh@iodoru.org]) +AC_PREREQ([2.69]) +AC_INIT([profanity],[0.12.0],[jubalh@iodoru.org],[profanity],[https://profanity-im.github.io/]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_HEADERS([src/config.h]) AM_INIT_AUTOMAKE([foreign subdir-objects]) -### Checks for programs. AC_PROG_CC LT_INIT - -## Check for LFS AC_SYS_LARGEFILE -### Get canonical host -AC_CANONICAL_HOST +## Determine platform +AC_CANONICAL_TARGET PLATFORM="unknown" -AS_CASE([$host_os], +AS_CASE([$target_os], [freebsd*], [PLATFORM="freebsd"], [netbsd*], [PLATFORM="netbsd"], [openbsd*], [PLATFORM="openbsd"], @@ -28,7 +25,7 @@ AS_CASE([$host_os], PACKAGE_STATUS="development" -### Get git branch and revision if in development +## Get git branch and revision if in development if test "x$PACKAGE_STATUS" = xdevelopment; then AM_CONDITIONAL([INCLUDE_GIT_VERSION], [true]) AC_DEFINE([HAVE_GIT_VERSION], [1], [Include git info]) @@ -43,10 +40,10 @@ AS_IF([test "x$PLATFORM" = xcygwin], AS_IF([test "x$PLATFORM" = xosx], [AC_DEFINE([PLATFORM_OSX], [1], [OSx])]) -### Environment variables +## Environment variables AC_ARG_VAR([PYTHON_FRAMEWORK], [Set base directory for Python Framework]) -### Options +## Options AC_ARG_ENABLE([notifications], [AS_HELP_STRING([--enable-notifications], [enable desktop notifications])]) AC_ARG_ENABLE([python-plugins], @@ -68,9 +65,31 @@ AC_ARG_WITH([themes], AC_ARG_ENABLE([icons-and-clipboard], [AS_HELP_STRING([--enable-icons-and-clipboard], [enable GTK tray icons and clipboard paste support])]) +# Required dependencies + +AC_CHECK_FUNCS([atexit memset strdup strstr]) + +PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.62.0], [], + [AC_MSG_ERROR([glib 2.62.0 or higher is required])]) +PKG_CHECK_MODULES([gio], [gio-2.0], [], + [AC_MSG_ERROR([libgio-2.0 from glib-2.0 is required])]) + +AC_SEARCH_LIBS([fmod], [m], [], + [AC_MSG_ERROR([math.h is required])], []) + +PKG_CHECK_MODULES([curl], [libcurl >= 7.62.0], [], + [AC_CHECK_LIB([curl], [main], [], + [AC_MSG_ERROR([libcurl 7.62.0 or higher is required])])]) + +PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.22.0], [], + [AC_MSG_ERROR([sqlite3 3.22.0 or higher is required])]) + +ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])]) +AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ]) + ### plugins -# python +## python if test "x$enable_plugins" = xno; then AM_CONDITIONAL([BUILD_PYTHON_API], [false]) elif test "x$enable_python_plugins" != xno; then @@ -101,7 +120,7 @@ else AM_CONDITIONAL([BUILD_PYTHON_API], [false]) fi -# c +## C if test "x$PLATFORM" = xcygwin; then AM_CONDITIONAL([BUILD_C_API], [false]) else @@ -128,18 +147,11 @@ else fi fi -# threading -ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])]) -LIBS="$PTHREAD_LIBS $LIBS" -CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ]) - -### Check for libstrophe +## Check for libstrophe PKG_CHECK_MODULES([libstrophe], [libstrophe >= 0.11.0], - [LIBS="$libstrophe_LIBS $LIBS" CFLAGS="$CFLAGS $libstrophe_CFLAGS" XMPP_LIB="libstrophe" AC_DEFINE([HAVE_LIBSTROPHE], [1], [libstrophe])], - [XMPP_LIB=""]) + [LIBS="$libstrophe_LIBS $LIBS" CFLAGS="$CFLAGS $libstrophe_CFLAGS"]) -AC_MSG_CHECKING([whether ${XMPP_LIB} works]) +AC_MSG_CHECKING([whether libstrophe works]) AC_LINK_IFELSE([AC_LANG_SOURCE([[ #include <strophe.h> @@ -149,9 +161,9 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([[ } ]])], [AC_MSG_RESULT([yes])], - [AC_MSG_ERROR([${XMPP_LIB} is broken, check config.log for details])]) + [AC_MSG_ERROR([libstrophe is broken, check config.log for details])]) -### Check for curses library +## Check for curses library PKG_CHECK_MODULES([ncursesw], [ncursesw], [NCURSES_CFLAGS="$ncursesw_CFLAGS"; NCURSES_LIBS="$ncursesw_LIBS"; CURSES="ncursesw"], [PKG_CHECK_MODULES([ncurses], [ncurses], @@ -161,10 +173,10 @@ PKG_CHECK_MODULES([ncursesw], [ncursesw], [AC_CHECK_LIB([curses], [main], [LIBS="$LIBS -lcurses"; CURSES="curses"], [AC_MSG_ERROR([ncurses or curses is required for profanity])])])])])]) -AM_CPPFLAGS="$AM_CPPFLAGS $NCURSES_CFLAGS" +AM_CFLAGS="$AM_CFLAGS $NCURSES_CFLAGS" LIBS="$NCURSES_LIBS $LIBS" -### Check wide characters support in curses library +## Check wide characters support in curses library CFLAGS_RESTORE="$CFLAGS" CFLAGS="$CFLAGS $NCURSES_CFLAGS" AC_CACHE_CHECK([for wget_wch support in $CURSES], ncurses_cv_wget_wch, @@ -183,32 +195,12 @@ CFLAGS="$CFLAGS_RESTORE" AS_IF([test "x$ncurses_cv_wget_wch" != xyes], [AC_MSG_ERROR([ncurses does not support wide characters])]) -### Check for glib libraries -PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.62.0], [], - [AC_MSG_ERROR([glib 2.62.0 or higher is required for profanity])]) -PKG_CHECK_MODULES([gio], [gio-2.0], [], - [AC_MSG_ERROR([libgio-2.0 from glib-2.0 is required for profanity])]) - -### Check for other profanity dependencies -AC_SEARCH_LIBS([fmod], [m], [], - [AC_MSG_ERROR([math.h is required])], []) - -PKG_CHECK_MODULES([curl], [libcurl >= 7.62.0], [], - [AC_CHECK_LIB([curl], [main], [], - [AC_MSG_ERROR([libcurl is required for profanity])])]) - -PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.22.0], [], - [AC_MSG_ERROR([sqlite3 3.22.0 or higher is required for profanity])]) - -AS_IF([test "x$enable_icons_and_clipboard" != xno], - [PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.24.0], - [AC_DEFINE([HAVE_GTK], [1], [libgtk module])], - [AS_IF([test "x$enable_icons_and_clipboard" = xyes], - [PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24.10], - [AC_DEFINE([HAVE_GTK], [1], [libgtk module])], - [AC_MSG_ERROR([gtk+-2.0 >= 2.24.10 or gtk+-3.0 >= 3.24.0 is required for icons and clipboard])], - [AC_MSG_NOTICE([gtk+-3.0/gtk+2.0 not found, icons and clipboard not enabled])])])])]) +## Check for ncursesw/ncurses.h first, Arch linux uses ncurses.h for ncursesw +AC_CHECK_HEADERS([ncursesw/ncurses.h], [], []) +AC_CHECK_HEADERS([ncurses.h], [], []) +AC_CHECK_HEADERS([curses.h], [], []) +# Check for readline AS_IF([test "x$PLATFORM" = xosx], [AC_PATH_PROG([BREW], [brew], ["failed"], [$PATH:/opt/homebrew/bin:/usr/local/bin]) @@ -229,17 +221,34 @@ AS_IF([test "x$PLATFORM" = xosx], [test "x$PLATFORM" = xopenbsd], [AC_CHECK_FILE([/usr/local/include/ereadline], [LIBS="-lereadline $LIBS" - AM_CPPFLAGS="-I/usr/local/include/ereadline $AM_CPPFLAGS" + AM_CFLAGS="-I/usr/local/include/ereadline $AM_CFLAGS" AM_LDFLAGS="-L/usr/local/lib $AM_LDFLAGS" AC_SUBST(AM_LDFLAGS)])], [AC_CHECK_LIB([readline], [main], [], [AC_MSG_ERROR([libreadline is required for profanity])])]) -### Check for desktop notification support -### Linux/FreeBSD require libnotify -### Windows uses native OS calls -### OSX requires terminal-notifier +## Check for optional dependencies depending on feature flags + +dnl feature: icons-and-clipboard +AS_IF([test "x$enable_icons_and_clipboard" != xno], + [PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.24.0], + [AC_DEFINE([HAVE_GTK], [1], [libgtk module])], + [AS_IF([test "x$enable_icons_and_clipboard" = xyes], + [PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24.10], + [AC_DEFINE([HAVE_GTK], [1], [libgtk module])], + [AC_MSG_ERROR([gtk+-2.0 >= 2.24.10 or gtk+-3.0 >= 3.24.0 is required for icons and clipboard])], + [AC_MSG_NOTICE([gtk+-3.0/gtk+2.0 not found, icons and clipboard not enabled])])])])]) + +ICONS_PATH='${pkgdatadir}/icons' +AC_SUBST(ICONS_PATH) + +dnl feature: notifications + +## Check for desktop notification support +## Linux/FreeBSD require libnotify +## Windows uses native OS calls +## OSX requires terminal-notifier AS_IF([test "x$PLATFORM" = xosx], [AS_IF([test "x$enable_notifications" != xno], @@ -258,19 +267,15 @@ AS_IF([test "x$PLATFORM" = xosx], [AC_MSG_ERROR([libnotify is required but does not exist])], [AC_MSG_NOTICE([libnotify support will be disabled])])])])]) -# TODO: rewrite this -if test "x$with_xscreensaver" = xyes; then - AC_CHECK_LIB([Xss], [main], [], - [AC_MSG_ERROR([libXss is required for x autoaway support])]) - AC_CHECK_LIB([X11], [main], [], - [AC_MSG_ERROR([libX11 is required for x autoaway support])]) -elif test "x$with_xscreensaver" = x; then - AC_CHECK_LIB([Xss], [main], [], - [AC_MSG_NOTICE([libXss not found, falling back to profanity auto-away])]) - AC_CHECK_LIB([X11], [main], [], - [AC_MSG_NOTICE([libX11 not found, falling back to profanity auto-away])]) -fi +dnl feature: xscreensaver +AS_IF([test "x$enable_xscreensaver" != xno], + [PKG_CHECK_MODULES([xscrnsaver], [xscrnsaver], + [AC_MSG_NOTICE([xscreensaver support is enabled])], + [AS_IF([test "x$enable_xscreensaver" = xyes], + [AC_MSG_ERROR([xscreensaver is required but does not exist])], + [AC_MSG_NOTICE([xscreensaver support is disabled])])])]) +dnl feature: pgp AM_CONDITIONAL([BUILD_PGP], [false]) if test "x$enable_pgp" != xno; then AC_CHECK_LIB([gpgme], [main], @@ -279,45 +284,34 @@ if test "x$enable_pgp" != xno; then AC_PATH_PROG([GPGME_CONFIG], [gpgme-config], ["failed"]) AS_IF([test "x$GPGME_CONFIG" = xfailed], [LIBS="-lgpgme $LIBS"], - [LIBS="`$GPGME_CONFIG --libs` $LIBS" AM_CPPFLAGS="`$GPGME_CONFIG --cflags` $AM_CPPFLAGS"])], + [LIBS="`$GPGME_CONFIG --libs` $LIBS" AM_CFLAGS="`$GPGME_CONFIG --cflags` $AM_CFLAGS"])], [AS_IF([test "x$enable_pgp" = xyes], [AC_MSG_ERROR([libgpgme is required for pgp support])], [AC_MSG_NOTICE([libgpgme not found, pgp support not enabled])])]) fi +dnl feature: otr AM_CONDITIONAL([BUILD_OTR], [false]) -AM_CONDITIONAL([BUILD_OTR3], [false]) -AM_CONDITIONAL([BUILD_OTR4], [false]) if test "x$enable_otr" != xno; then AM_CONDITIONAL([BUILD_OTR], [true]) + PKG_CHECK_MODULES([libotr], [libotr >= 4.0], - [AM_CONDITIONAL([BUILD_OTR4], [true])], - [AC_MSG_NOTICE([libotr >= 4.0 not found, checking for libotr-3.x...]) - PKG_CHECK_MODULES([libotr], [libotr >= 3.0], - [AM_CONDITIONAL([BUILD_OTR3], [true])], - [AM_CONDITIONAL([BUILD_OTR], [false])])]) - - AM_COND_IF([BUILD_OTR], - [LIBS="$libotr_LIBS $LIBS" CFLAGS="$CFLAGS $libotr_CFLAGS" - AC_DEFINE([HAVE_LIBOTR], [1], [Have libotr])], - [AS_IF([test "x$enable_otr" = xyes], - [AC_MSG_ERROR([libotr is required for otr encryption support])], - [AC_MSG_NOTICE([libotr not found, otr encryption support not enabled])])]) + [LIBS="$libotr_LIBS $LIBS" CFLAGS="$libotr_CFLAGS $cflags"], + [AM_CONDITIONAL([BUILD_OTR], [false]) + AS_IF([test "x$enable_otr" = xyes], + [AC_MSG_ERROR([libotr >= 4.0 is required for OTR support])], + [AC_MSG_NOTICE([libotr >= 4.0 not found, OTR support not enabled])])]) + + AM_COND_IF([BUILD_OTR], [AC_DEFINE([HAVE_LIBOTR], [1], [Have libotr])]) fi +dnl feature: omemo AM_CONDITIONAL([BUILD_OMEMO], [false]) if test "x$enable_omemo" != xno; then AM_CONDITIONAL([BUILD_OMEMO], [true]) PKG_CHECK_MODULES([libsignal], [libsignal-protocol-c >= 2.3.2], [LIBS="-lsignal-protocol-c $LIBS"], - [AC_MSG_NOTICE([libsignal >= 2.3.2 not found, checking for libsignal 2.3.x...]) - PKG_CHECK_MODULES([libsignal], [libsignal-protocol-c >= 2.3.0], - [LIBS="-lsignal-protocol-c $LIBS" - AC_DEFINE([HAVE_LIBSIGNAL_LT_2_3_2], [1], [Have libsignal-protocol-c < 2.3.2])], - [AM_CONDITIONAL([BUILD_OMEMO], [false]) - AS_IF([test "x$enable_omemo" = xyes], - [AC_MSG_ERROR([libsignal-protocol-c is required for OMEMO support])], - [AC_MSG_NOTICE([libsignal-protocol-c not found, OMEMO support not enabled])])])]) + [AC_MSG_NOTICE([libsignal-protocol-c >= 2.3.2 not found, OMEMO support not enabled])]) AC_CHECK_LIB([gcrypt], [gcry_md_extract], [LIBS="-lgcrypt $LIBS"], @@ -329,6 +323,7 @@ if test "x$enable_omemo" != xno; then AM_COND_IF([BUILD_OMEMO], [AC_DEFINE([HAVE_OMEMO], [1], [Have OMEMO])]) fi +dnl feature: themes AS_IF([test "x$with_themes" = xno], [THEMES_INSTALL="false"], [THEMES_INSTALL="true"]) @@ -338,11 +333,10 @@ AS_IF([test "x$with_themes" = xno -o "x$with_themes" = xyes -o "x$with_themes" = AC_SUBST(THEMES_PATH) AM_CONDITIONAL([THEMES_INSTALL], "$THEMES_INSTALL") -ICONS_PATH='${pkgdatadir}/icons' -AC_SUBST(ICONS_PATH) +## Tests -### cmocka is required only for tests, profanity shouldn't be linked with it -### TODO: pass cmocka_CFLAGS and cmocka_LIBS to Makefile.am +# cmocka is required only for tests, profanity shouldn't be linked with it +# TODO: pass cmocka_CFLAGS and cmocka_LIBS to Makefile.am PKG_CHECK_MODULES([cmocka], [cmocka], [], [AC_MSG_NOTICE([cmocka is not found, will not be able to run tests])]) @@ -353,43 +347,42 @@ AM_CONDITIONAL([HAVE_EXPECT], [false]) AC_CHECK_LIB([expect], [exp_expectl], [AM_CONDITIONAL([HAVE_EXPECT], [true])], [AC_MSG_NOTICE([libexpect not found, will not be able to run functional tests])]) -### Check for ncursesw/ncurses.h first, Arch linux uses ncurses.h for ncursesw -AC_CHECK_HEADERS([ncursesw/ncurses.h], [], []) -AC_CHECK_HEADERS([ncurses.h], [], []) -AC_CHECK_HEADERS([curses.h], [], []) - -### Default parameters +## Default parameters AM_CFLAGS="-Wall -Wno-deprecated-declarations -std=gnu99" +AM_LDFLAGS="$AM_LDFLAGS -export-dynamic" + AS_IF([test "x$PACKAGE_STATUS" = xdevelopment], [AM_CFLAGS="$AM_CFLAGS -Wunused -Werror"]) AS_IF([test "x$PLATFORM" = xosx], [AM_CFLAGS="$AM_CFLAGS -Qunused-arguments"]) -AM_LDFLAGS="$AM_LDFLAGS -export-dynamic" -AM_CPPFLAGS="$AM_CPPFLAGS $glib_CFLAGS $gio_CFLAGS $curl_CFLAGS $libnotify_CFLAGS $PYTHON_CPPFLAGS ${GTK_CFLAGS} ${SQLITE_CFLAGS}" -AM_CPPFLAGS="$AM_CPPFLAGS -DTHEMES_PATH=\"\\\"$THEMES_PATH\\\"\" -DICONS_PATH=\"\\\"$ICONS_PATH\\\"\" -DGLOBAL_PYTHON_PLUGINS_PATH=\"\\\"$GLOBAL_PYTHON_PLUGINS_PATH\\\"\" -DGLOBAL_C_PLUGINS_PATH=\"\\\"$GLOBAL_C_PLUGINS_PATH\\\"\"" -LIBS="$glib_LIBS $gio_LIBS $curl_LIBS $libnotify_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_LDFLAGS ${GTK_LIBS} ${SQLITE_LIBS} $LIBS" + +AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS $glib_CFLAGS $gio_CFLAGS $curl_CFLAGS ${SQLITE_CFLAGS}" +AM_CFLAGS="$AM_CFLAGS $libnotify_CFLAGS ${GTK_CFLAGS} $PYTHON_CPPFLAGS" dnl https://bugs.python.org/issue15018 +AM_CFLAGS="$AM_CFLAGS -DTHEMES_PATH=\"\\\"$THEMES_PATH\\\"\" -DICONS_PATH=\"\\\"$ICONS_PATH\\\"\" -DGLOBAL_PYTHON_PLUGINS_PATH=\"\\\"$GLOBAL_PYTHON_PLUGINS_PATH\\\"\" -DGLOBAL_C_PLUGINS_PATH=\"\\\"$GLOBAL_C_PLUGINS_PATH\\\"\"" +LIBS="$glib_LIBS $gio_LIBS $PTHREAD_LIBS $curl_LIBS $libnotify_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_LDFLAGS ${GTK_LIBS} ${SQLITE_LIBS} $LIBS" AC_SUBST(AM_LDFLAGS) AC_SUBST(AM_CFLAGS) AC_SUBST(AM_CPPFLAGS) -### Checks for library functions. -AC_CHECK_FUNCS([atexit memset strdup strstr]) - +## Output AC_CONFIG_FILES([Makefile]) AC_OUTPUT -echo "" -echo "PLATFORM : $host_os" -echo "PACKAGE_STATUS : $PACKAGE_STATUS" -echo "AM_CFLAGS : $AM_CFLAGS" -echo "AM_CPPFLAGS : $AM_CPPFLAGS" -echo "AM_LDFLAGS : $AM_LDFLAGS" -echo "LIBS : $LIBS" -echo "Install themes : $THEMES_INSTALL" -echo "Themes path : $THEMES_PATH" -echo "Icons path : $ICONS_PATH" -echo "Global Python plugins path : $GLOBAL_PYTHON_PLUGINS_PATH" -echo "Global C plugins path : $GLOBAL_C_PLUGINS_PATH" -echo "" -echo "Now you can run \`make' to build profanity" +AC_MSG_NOTICE([Summary of build options: +PLATFORM : $target_os +PACKAGE_STATUS : $PACKAGE_STATUS +LIBS : $LIBS +Install themes : $THEMES_INSTALL +Themes path : $THEMES_PATH +Icons path : $ICONS_PATH +Global Python plugins path : $GLOBAL_PYTHON_PLUGINS_PATH +Global C plugins path : $GLOBAL_C_PLUGINS_PATH +CFLAGS : $AM_CFLAGS +CPPFLAGS : $AM_CPPFLAGS +LDFLAGS : $AM_LDFLAGS +LIBS : $LIBS + +Run `make' to build profanity]) + +dnl vim: expandtab:ts=4:sts=4:sw=4 diff --git a/src/omemo/store.c b/src/omemo/store.c index d34ebf30..e0fc41ed 100644 --- a/src/omemo/store.c +++ b/src/omemo/store.c @@ -68,15 +68,9 @@ identity_key_store_new(identity_key_store_t* identity_key_store) identity_key_store->public = NULL; } -#ifdef HAVE_LIBSIGNAL_LT_2_3_2 -int -load_session(signal_buffer** record, const signal_protocol_address* address, - void* user_data) -#else int load_session(signal_buffer** record, signal_buffer** user_record, const signal_protocol_address* address, void* user_data) -#endif { GHashTable* session_store = (GHashTable*)user_data; GHashTable* device_store = NULL; @@ -124,17 +118,11 @@ get_sub_device_sessions(signal_int_list** sessions, const char* name, return SG_SUCCESS; } -#ifdef HAVE_LIBSIGNAL_LT_2_3_2 -int -store_session(const signal_protocol_address* address, uint8_t* record, - size_t record_len, void* user_data) -#else int store_session(const signal_protocol_address* address, uint8_t* record, size_t record_len, uint8_t* user_record, size_t user_record_len, void* user_data) -#endif { GHashTable* session_store = (GHashTable*)user_data; GHashTable* device_store = NULL; diff --git a/src/omemo/store.h b/src/omemo/store.h index f84db5ed..bafe2576 100644 --- a/src/omemo/store.h +++ b/src/omemo/store.h @@ -68,11 +68,7 @@ void identity_key_store_new(identity_key_store_t* identity_key_store); * @param address the address of the remote client * @return 1 if the session was loaded, 0 if the session was not found, negative on failure */ -#ifdef HAVE_LIBSIGNAL_LT_2_3_2 -int load_session(signal_buffer** record, const signal_protocol_address* address, void* user_data); -#else int load_session(signal_buffer** record, signal_buffer** user_record, const signal_protocol_address* address, void* user_data); -#endif /** * Returns all known devices with active sessions for a recipient @@ -94,11 +90,7 @@ int get_sub_device_sessions(signal_int_list** sessions, const char* name, size_t * @param record_len length of the serialized session record * @return 0 on success, negative on failure */ -#ifdef HAVE_LIBSIGNAL_LT_2_3_2 -int store_session(const signal_protocol_address* address, uint8_t* record, size_t record_len, void* user_data); -#else int store_session(const signal_protocol_address* address, uint8_t* record, size_t record_len, uint8_t* user_record, size_t user_record_len, void* user_data); -#endif /** * Determine whether there is a committed session record for a diff --git a/src/otr/otrlibv3.c b/src/otr/otrlibv3.c deleted file mode 100644 index c6e7c275..00000000 --- a/src/otr/otrlibv3.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * otrlibv3.c - * vim: expandtab:ts=4:sts=4:sw=4 - * - * Copyright (C) 2012 - 2019 James Booth <boothj5@gmail.com> - * - * This file is part of Profanity. - * - * Profanity is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Profanity is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Profanity. If not, see <https://www.gnu.org/licenses/>. - * - * In addition, as a special exception, the copyright holders give permission to - * link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. - * - * You must obey the GNU General Public License in all respects for all of the - * code used other than OpenSSL. If you modify file(s) with this exception, you - * may extend this exception to your version of the file(s), but you are not - * obligated to do so. If you do not wish to do so, delete this exception - * statement from your version. If you delete this exception statement from all - * source files in the program, then also delete it here. - * - */ -#include "config.h" - -#include <libotr/proto.h> -#include <libotr/privkey.h> -#include <libotr/message.h> - -#include "otr/otr.h" -#include "otr/otrlib.h" -#include "ui/ui.h" -#include "ui/window_list.h" - -OtrlPolicy -otrlib_policy(void) -{ - return OTRL_POLICY_ALLOW_V1 | OTRL_POLICY_ALLOW_V2; -} - -void -otrlib_init_timer(void) -{ -} - -void -otrlib_poll(void) -{ -} - -char* -otrlib_start_query(void) -{ - return "?OTR?v2? This user has requested an Off-the-Record private conversation. However, you do not have a plugin to support that. See http://otr.cypherpunks.ca/ for more information."; -} - -static int -cb_display_otr_message(void* opdata, const char* accountname, - const char* protocol, const char* username, const char* msg) -{ - cons_show_error("%s", msg); - return 0; -} - -void -otrlib_init_ops(OtrlMessageAppOps* ops) -{ - ops->display_otr_message = cb_display_otr_message; -} - -ConnContext* -otrlib_context_find(OtrlUserState user_state, const char* const recipient, char* jid) -{ - return otrl_context_find(user_state, recipient, jid, "xmpp", 0, NULL, NULL, NULL); -} - -void -otrlib_end_session(OtrlUserState user_state, const char* const recipient, char* jid, OtrlMessageAppOps* ops) -{ - ConnContext* context = otrl_context_find(user_state, recipient, jid, "xmpp", - 0, NULL, NULL, NULL); - - if (context) { - otrl_message_disconnect(user_state, ops, NULL, jid, "xmpp", recipient); - } -} - -gcry_error_t -otrlib_encrypt_message(OtrlUserState user_state, OtrlMessageAppOps* ops, char* jid, const char* const to, - const char* const message, char** newmessage) -{ - gcry_error_t err; - err = otrl_message_sending( - user_state, - ops, - NULL, - jid, - "xmpp", - to, - message, - 0, - newmessage, - NULL, - NULL); - - return err; -} - -int -otrlib_decrypt_message(OtrlUserState user_state, OtrlMessageAppOps* ops, char* jid, const char* const from, - const char* const message, char** decrypted, OtrlTLV** tlvs) -{ - return otrl_message_receiving( - user_state, - ops, - NULL, - jid, - "xmpp", - from, - message, - decrypted, - tlvs, - NULL, - NULL); -} - -void -otrlib_handle_tlvs(OtrlUserState user_state, OtrlMessageAppOps* ops, ConnContext* context, OtrlTLV* tlvs, GHashTable* smp_initiators) -{ - NextExpectedSMP nextMsg = context->smstate->nextExpected; - OtrlTLV* tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP1); - if (tlv) { - if (nextMsg != OTRL_SMP_EXPECT1) { - otrl_message_abort_smp(user_state, ops, NULL, context); - } else { - ProfChatWin* chatwin = wins_get_chat(context->username); - if (chatwin) { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_INIT, NULL); - } - g_hash_table_insert(smp_initiators, strdup(context->username), strdup(context->username)); - } - } - tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP1Q); - if (tlv) { - if (nextMsg != OTRL_SMP_EXPECT1) { - otrl_message_abort_smp(user_state, ops, NULL, context); - } else { - ProfChatWin* chatwin = wins_get_chat(context->username); - if (chatwin) { - char* question = (char*)tlv->data; - char* eoq = memchr(question, '\0', tlv->len); - if (eoq) { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_INIT_Q, question); - } - } - } - } - tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP2); - if (tlv) { - if (nextMsg != OTRL_SMP_EXPECT2) { - otrl_message_abort_smp(user_state, ops, NULL, context); - } else { - context->smstate->nextExpected = OTRL_SMP_EXPECT4; - } - } - tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP3); - if (tlv) { - if (nextMsg != OTRL_SMP_EXPECT3) { - otrl_message_abort_smp(user_state, ops, NULL, context); - } else { - context->smstate->nextExpected = OTRL_SMP_EXPECT1; - ProfChatWin* chatwin = wins_get_chat(context->username); - if (chatwin) { - if (context->smstate->received_question == 0) { - if (context->active_fingerprint->trust && (context->active_fingerprint->trust[0] != '\0')) { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SUCCESS, NULL); - chatwin_otr_trust(chatwin); - } else { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SENDER_FAIL, NULL); - chatwin_otr_untrust(chatwin); - } - } else { - if (context->smstate->sm_prog_state == OTRL_SMP_PROG_SUCCEEDED) { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SUCCESS_Q, NULL); - } else { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_FAIL_Q, NULL); - } - } - } - } - } - tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP4); - if (tlv) { - if (nextMsg != OTRL_SMP_EXPECT4) { - otrl_message_abort_smp(user_state, ops, NULL, context); - } else { - context->smstate->nextExpected = OTRL_SMP_EXPECT1; - ProfChatWin* chatwin = wins_get_chat(context->username); - if (chatwin) { - if (context->active_fingerprint->trust && (context->active_fingerprint->trust[0] != '\0')) { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SUCCESS, NULL); - chatwin_otr_trust(chatwin); - } else { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_RECEIVER_FAIL, NULL); - chatwin_otr_untrust(chatwin); - } - } - } - } - tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP_ABORT); - if (tlv) { - context->smstate->nextExpected = OTRL_SMP_EXPECT1; - ProfChatWin* chatwin = wins_get_chat(context->username); - if (chatwin) { - chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_ABORT, NULL); - chatwin_otr_untrust(chatwin); - } - otr_untrust(context->username); - } -} |