AUTHOR updated to new homepage
This commit is contained in:
2
AUTHORS
2
AUTHORS
@@ -1 +1 @@
|
|||||||
Marc Wäckerlin (http://marc.waeckerlin.org) <marc@waeckerlin.org>
|
Marc Wäckerlin (https://marc.wäckerlin.ch) <marc@waeckerlin.org>
|
||||||
|
121
ax_check_qt.m4
121
ax_check_qt.m4
@@ -1,10 +1,10 @@
|
|||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
#
|
#
|
||||||
# Check if a module exists:
|
# Check if a module exists:
|
||||||
# AX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules])
|
# AX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules] [flags])
|
||||||
#
|
#
|
||||||
# Abort if a module does not exist:
|
# Abort if a module does not exist:
|
||||||
# AX_REQUIRE_QT([qt_prefix], [list-of-qt-modules], [optional-modules])
|
# AX_REQUIRE_QT([qt_prefix], [list-of-qt-modules], [optional-modules] [flags])
|
||||||
#
|
#
|
||||||
# DESCRIPTIONS
|
# DESCRIPTIONS
|
||||||
#
|
#
|
||||||
@@ -35,6 +35,18 @@
|
|||||||
# Optional list of more, optional modules, e.g. modules that
|
# Optional list of more, optional modules, e.g. modules that
|
||||||
# exist only in Qt5, but not in Qt4, such as QtWidgets or
|
# exist only in Qt5, but not in Qt4, such as QtWidgets or
|
||||||
# QtWebKitWidgets
|
# QtWebKitWidgets
|
||||||
|
#
|
||||||
|
# flags
|
||||||
|
#
|
||||||
|
# Optional flages, space separated from this list:
|
||||||
|
#
|
||||||
|
# manualflags
|
||||||
|
#
|
||||||
|
# CXXFLAGS, CPPFLAGS and LIBS variables are not
|
||||||
|
# automatically expanded, but you need to add the
|
||||||
|
# qt_prefix_CXXFLAGS, qt_prefix_CPPFLAGS and qt_prefix_LIBS
|
||||||
|
# variables manually where you need them. This is useful,
|
||||||
|
# if some build targets need a feature and some don't.
|
||||||
|
|
||||||
|
|
||||||
AC_DEFUN([AX_CXX_QT_TOOL], [
|
AC_DEFUN([AX_CXX_QT_TOOL], [
|
||||||
@@ -83,6 +95,7 @@ AC_DEFUN([AX_CXX_QT_TOOLS], [
|
|||||||
AC_DEFUN([AX_CHECK_QT], [
|
AC_DEFUN([AX_CHECK_QT], [
|
||||||
qt_modules="$2"
|
qt_modules="$2"
|
||||||
qt_modules_optional="$3"
|
qt_modules_optional="$3"
|
||||||
|
qt_flags="$4"
|
||||||
AX_CXX_QT_TOOLS
|
AX_CXX_QT_TOOLS
|
||||||
HAVE_$1=0
|
HAVE_$1=0
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
@@ -91,17 +104,37 @@ AC_DEFUN([AX_CHECK_QT], [
|
|||||||
AC_DEFINE([HAVE_$1])
|
AC_DEFINE([HAVE_$1])
|
||||||
QTDIR=$(${PKG_CONFIG} --variable=prefix Qt5Core)
|
QTDIR=$(${PKG_CONFIG} --variable=prefix Qt5Core)
|
||||||
QT_PLUGIN_PATH=${QTDIR}/share/qt5/plugins
|
QT_PLUGIN_PATH=${QTDIR}/share/qt5/plugins
|
||||||
CPPFLAGS+=" ${[$1]5_CFLAGS}"
|
|
||||||
MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}"
|
MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}"
|
||||||
CXXFLAGS+=" ${[$1]5_CFLAGS}"
|
[$1]_CPPFLAGS="${[$1]5_CFLAGS}"
|
||||||
LIBS+=" ${[$1]5_LIBS}"
|
[$1]_CXXFLAGS="${[$1]5_CFLAGS}"
|
||||||
|
[$1]_LIBS="${[$1]5_LIBS}"
|
||||||
|
AC_SUBST([$1]_CPPFLAGS)
|
||||||
|
AC_SUBST([$1]_CXXFLAGS)
|
||||||
|
if test "${qt_flags/manualflags/}" = "${qt_flags}"; then
|
||||||
|
CPPFLAGS+=" ${[$1]_CPPFLAGS}"
|
||||||
|
CXXFLAGS+=" ${[$1]_CXXFLAGS}"
|
||||||
|
LIBS+=" ${[$1]_LIBS}"
|
||||||
|
AC_MSG_NOTICE([Adding flags for $1])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS])
|
||||||
|
fi
|
||||||
PKG_REQUIREMENTS+=" ${qt_modules//Qt/Qt5}"
|
PKG_REQUIREMENTS+=" ${qt_modules//Qt/Qt5}"
|
||||||
if test -n "${qt_modules_optional}"; then
|
if test -n "${qt_modules_optional}"; then
|
||||||
PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [
|
PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [
|
||||||
CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
|
||||||
MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
||||||
CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
[$1]_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
||||||
LIBS+=" ${[$1]5_OPTIONAL_LIBS}"
|
[$1]_CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
||||||
|
[$1]_LIBS+=" ${[$1]5_OPTIONAL_LIBS}"
|
||||||
|
AC_SUBST([$1]_CPPFLAGS)
|
||||||
|
AC_SUBST([$1]_CXXFLAGS)
|
||||||
|
if test "${qt_flags/manualflags/}" = "${qt_flags}"; then
|
||||||
|
CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
||||||
|
CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
|
||||||
|
LIBS+=" ${[$1]5_OPTIONAL_LIBS}"
|
||||||
|
AC_MSG_NOTICE([Adding flags for $1])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS])
|
||||||
|
fi
|
||||||
PKG_REQUIREMENTS+=" ${qt_modules_optional//Qt/Qt5}"
|
PKG_REQUIREMENTS+=" ${qt_modules_optional//Qt/Qt5}"
|
||||||
], [
|
], [
|
||||||
AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}])
|
AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}])
|
||||||
@@ -113,17 +146,36 @@ AC_DEFUN([AX_CHECK_QT], [
|
|||||||
AC_DEFINE([HAVE_$1])
|
AC_DEFINE([HAVE_$1])
|
||||||
QTDIR=$(${PKG_CONFIG} --variable=prefix QtCore)
|
QTDIR=$(${PKG_CONFIG} --variable=prefix QtCore)
|
||||||
QT_PLUGIN_PATH=${QTDIR}/share/qt/plugins
|
QT_PLUGIN_PATH=${QTDIR}/share/qt/plugins
|
||||||
CPPFLAGS+=" ${$1_CFLAGS}"
|
|
||||||
MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}"
|
MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}"
|
||||||
CXXFLAGS+=" ${$1_CFLAGS}"
|
[$1]_CPPFLAGS="${[$1]_CFLAGS}"
|
||||||
LIBS+=" ${$1_LIBS}"
|
[$1]_CXXFLAGS="${[$1]_CFLAGS}"
|
||||||
|
AC_SUBST([$1]_CPPFLAGS)
|
||||||
|
AC_SUBST([$1]_CXXFLAGS)
|
||||||
|
if test "${qt_flags/manualflags/}" = "${qt_flags}"; then
|
||||||
|
CPPFLAGS+=" ${[$1]_CPPFLAGS}"
|
||||||
|
CXXFLAGS+=" ${[$1]_CXXFLAGS}"
|
||||||
|
LIBS+=" ${[$1]_LIBS}"
|
||||||
|
AC_MSG_NOTICE([Adding flags for $1])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS])
|
||||||
|
fi
|
||||||
PKG_REQUIREMENTS+=" ${qt_modules}"
|
PKG_REQUIREMENTS+=" ${qt_modules}"
|
||||||
if test -n "$3"; then
|
if test -n "$3"; then
|
||||||
PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [
|
PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [
|
||||||
CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
|
MOC_FLAGS+="${$1_OPTIONAL_CFLAGS}"
|
||||||
MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}"
|
[$1]_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
|
||||||
CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
|
[$1]_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
|
||||||
LIBS+=" ${$1_OPTIONAL_LIBS}"
|
[$1]_LIBS+=" ${$1_OPTIONAL_LIBS}"
|
||||||
|
AC_SUBST([$1]_CPPFLAGS)
|
||||||
|
AC_SUBST([$1]_CXXFLAGS)
|
||||||
|
if test "${qt_flags/manualflags/}" = "${qt_flags}"; then
|
||||||
|
CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
|
||||||
|
CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
|
||||||
|
LIBS+=" ${$1_OPTIONAL_LIBS}"
|
||||||
|
AC_MSG_NOTICE([Adding flags for $1])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS])
|
||||||
|
fi
|
||||||
PKG_REQUIREMENTS+=" ${qt_modules_optional}"
|
PKG_REQUIREMENTS+=" ${qt_modules_optional}"
|
||||||
], [
|
], [
|
||||||
AC_MSG_NOTICE([Not found: ${qt_modules_optional}])
|
AC_MSG_NOTICE([Not found: ${qt_modules_optional}])
|
||||||
@@ -133,7 +185,7 @@ AC_DEFUN([AX_CHECK_QT], [
|
|||||||
])
|
])
|
||||||
AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1)
|
AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1)
|
||||||
AX_CHECK_VALID_CXX_FLAG([-fPIC -fPIE], [position independent code flag])
|
AX_CHECK_VALID_CXX_FLAG([-fPIC -fPIE], [position independent code flag])
|
||||||
if test "${MINGW}" != "no"; then
|
if test -n "${MINGW}"; then
|
||||||
AX_CHECK_VALID_CXX_FLAG([-Wl,-subsystem,windows], [windows console flag])
|
AX_CHECK_VALID_CXX_FLAG([-Wl,-subsystem,windows], [windows console flag])
|
||||||
fi
|
fi
|
||||||
AC_SUBST(QTDIR)
|
AC_SUBST(QTDIR)
|
||||||
@@ -169,42 +221,8 @@ qrc_%.cxx: %.qrc
|
|||||||
|
|
||||||
'])
|
'])
|
||||||
|
|
||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules])
|
|
||||||
#
|
|
||||||
# DESCRIPTIONS
|
|
||||||
#
|
|
||||||
# qt_prefix
|
|
||||||
#
|
|
||||||
# Each call to AX_CHECK_QT should have a different prefix
|
|
||||||
# value (with a few exceptions discussed later on). This value,
|
|
||||||
# usually provided in uppercase, is used as prefix to the
|
|
||||||
# variables holding the compiler flags and libraries reported by
|
|
||||||
# pkg-config.
|
|
||||||
#
|
|
||||||
# For instance, if your prefix was to be FOO you'll be provided
|
|
||||||
# two variables FOO_CFLAGS and FOO_LIBS.
|
|
||||||
#
|
|
||||||
# This will also be used as message during the configure checks:
|
|
||||||
# checking for FOO....
|
|
||||||
#
|
|
||||||
# list-of-modules
|
|
||||||
#
|
|
||||||
# A single call to the macro can check for the presence of one or
|
|
||||||
# more qt modules; you'll see later how to make good use of this
|
|
||||||
# feature. Each entry in the list can have a version comparison
|
|
||||||
# specifier, with the same syntax as the Requires keyword in the
|
|
||||||
# data files themselves.
|
|
||||||
#
|
|
||||||
# optional-modules
|
|
||||||
#
|
|
||||||
# Optional list of more, optional modules, e.g. modules that
|
|
||||||
# exist only in Qt5, but not in Qt4, such as QtWidgets or
|
|
||||||
# QtWebKitWidgets
|
|
||||||
|
|
||||||
AC_DEFUN([AX_REQUIRE_QT], [
|
AC_DEFUN([AX_REQUIRE_QT], [
|
||||||
AX_CHECK_QT([$1], [$2], [$3])
|
AX_CHECK_QT([$1], [$2], [$3], [$4])
|
||||||
if ! test "$HAVE_$1" -eq 1; then
|
if ! test "$HAVE_$1" -eq 1; then
|
||||||
AC_MSG_ERROR([Required Qt modules not found: $2])
|
AC_MSG_ERROR([Required Qt modules not found: $2])
|
||||||
fi
|
fi
|
||||||
@@ -213,7 +231,6 @@ AC_DEFUN([AX_REQUIRE_QT], [
|
|||||||
|
|
||||||
# Omit Qt Keywords
|
# Omit Qt Keywords
|
||||||
# AX_QT_NO_KEYWORDS
|
# AX_QT_NO_KEYWORDS
|
||||||
|
|
||||||
AC_DEFUN([AX_QT_NO_KEYWORDS], [
|
AC_DEFUN([AX_QT_NO_KEYWORDS], [
|
||||||
CPPFLAGS+=" -DQT_NO_KEYWORDS"
|
CPPFLAGS+=" -DQT_NO_KEYWORDS"
|
||||||
])
|
])
|
||||||
|
@@ -8,7 +8,16 @@ m4_define([mrw_esyscmd_s], [m4_normalize(m4_esyscmd([$1]))])
|
|||||||
|
|
||||||
# define least version number from subversion's revision number:
|
# define least version number from subversion's revision number:
|
||||||
# it is taken modulo 256 due to a bug on Apple's MacOSX
|
# it is taken modulo 256 due to a bug on Apple's MacOSX
|
||||||
m4_define(x_least, mrw_esyscmd_s([
|
m4_define(x_least, m4_ifdef([x_least_diff], mrw_esyscmd_s([
|
||||||
|
SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout"
|
||||||
|
for path in . .. ../..; do
|
||||||
|
if svn info $path 2>&1 > /dev/null; then
|
||||||
|
SVN_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p')
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo $ECHO_N $(($SVN_REVISION))
|
||||||
|
]), mrw_esyscmd_s([
|
||||||
SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout"
|
SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout"
|
||||||
for path in . .. ../..; do
|
for path in . .. ../..; do
|
||||||
if svn info $path 2>&1 > /dev/null; then
|
if svn info $path 2>&1 > /dev/null; then
|
||||||
@@ -18,7 +27,7 @@ m4_define(x_least, mrw_esyscmd_s([
|
|||||||
done
|
done
|
||||||
# Mac does not support LEAST > 255
|
# Mac does not support LEAST > 255
|
||||||
echo $ECHO_N $(($SVN_REVISION%256))
|
echo $ECHO_N $(($SVN_REVISION%256))
|
||||||
]))
|
])))
|
||||||
# define version number from subversion's revision number:
|
# define version number from subversion's revision number:
|
||||||
# it is taken modulo 256 due to a bug on Apple's MacOSX
|
# it is taken modulo 256 due to a bug on Apple's MacOSX
|
||||||
# add to x_minor if revision number is > 256
|
# add to x_minor if revision number is > 256
|
||||||
@@ -34,7 +43,7 @@ m4_define(x_minor_diff, mrw_esyscmd_s([
|
|||||||
echo $ECHO_N $(($SVN_REVISION/256))
|
echo $ECHO_N $(($SVN_REVISION/256))
|
||||||
]))
|
]))
|
||||||
# setup version number
|
# setup version number
|
||||||
m4_define(x_version, [x_major.m4_eval(x_minor+x_minor_diff).x_least])
|
m4_define(x_version, [x_major.m4_ifdef([x_least_diff], x_minor, m4_eval(x_minor+x_minor_diff)).m4_eval(m4_ifdef([x_least_diff], [x_least-x_least_diff], [x_least]))])
|
||||||
|
|
||||||
## bugreport mail address is taken from <user@host> in first line of AUTHORS
|
## bugreport mail address is taken from <user@host> in first line of AUTHORS
|
||||||
m4_define(x_bugreport, mrw_esyscmd_s([
|
m4_define(x_bugreport, mrw_esyscmd_s([
|
||||||
@@ -107,14 +116,27 @@ AC_DEFUN([AX_SUBST], [
|
|||||||
#
|
#
|
||||||
# configures the basic environment
|
# configures the basic environment
|
||||||
AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
|
AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
|
||||||
MINGW=no
|
AC_MSG_CHECKING([target platfrom])
|
||||||
MAC=no
|
UNIX=1
|
||||||
case $host in
|
MINGW=
|
||||||
*mingw*) MINGW=yes;;
|
MACOSX=
|
||||||
*darwin* | *rhapsody* | *macosx*) MAC=yes;;
|
for h in ${target} ${target_os} ${host} ${host_os} \
|
||||||
esac
|
${build} ${build_os} $(uname -s 2> /dev/null); do
|
||||||
AM_CONDITIONAL(MINGW, test "$MINGW" = "yes")
|
p="$h is generic Unix"
|
||||||
AM_CONDITIONAL(MAC, test "$MAC" = "yes")
|
case "$h" in
|
||||||
|
(*mingw*)
|
||||||
|
UNIX=; MINGW=1; p="MinGW"; break;;
|
||||||
|
(*Darwin*|*darwin*|*rhapsody*|*macosx*)
|
||||||
|
UNIX=; MACOSX=1; p="MacOSX"; break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
AC_MSG_RESULT($p)
|
||||||
|
AM_CONDITIONAL(UNIX, test "$UNIX" = "1")
|
||||||
|
AM_CONDITIONAL(MINGW, test "$MINGW" = "1")
|
||||||
|
AM_CONDITIONAL(MACOSX, test "$MACOSX" = "1")
|
||||||
|
AX_SUBST(UNIX)
|
||||||
|
AX_SUBST(MINGW)
|
||||||
|
AX_SUBST(MACOSX)
|
||||||
AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_TARNAME//[^a-zA-Z0-9]/_}'"
|
AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_TARNAME//[^a-zA-Z0-9]/_}'"
|
||||||
AX_SUBST(NUMBERS)
|
AX_SUBST(NUMBERS)
|
||||||
AX_SUBST(HOME)
|
AX_SUBST(HOME)
|
||||||
@@ -127,8 +149,17 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
|
|||||||
AUTHOR=$(head -1 AUTHORS)
|
AUTHOR=$(head -1 AUTHORS)
|
||||||
AX_SUBST(AUTHOR)
|
AX_SUBST(AUTHOR)
|
||||||
_AM_SUBST_NOTMAKE([AUTHOR])
|
_AM_SUBST_NOTMAKE([AUTHOR])
|
||||||
DISTRO=$(lsb_release -sc)
|
DISTRO=$(lsb_release -sc 2>/dev/null || uname -s 2>/dev/null)
|
||||||
AX_SUBST(DISTRO)
|
AX_SUBST(DISTRO)
|
||||||
|
DISTRIBUTOR=$(lsb_release -si 2>/dev/null || uname -s 2>/dev/null)
|
||||||
|
case "${DISTRIBUTOR// /-}" in
|
||||||
|
(Ubuntu) UBUNTU=1; AX_SUBST(UBUNTU);;
|
||||||
|
(Debian) DEBIAN=1; AX_SUBST(DEBIAN);;
|
||||||
|
(SUSE-LINUX) SUSE=1; AX_SUBST(SUSE);;
|
||||||
|
(Fedora) FEDORA=1; AX_SUBST(FEDORA);;
|
||||||
|
(Centos) CENTOS=1; AX_SUBST(CENTOS);;
|
||||||
|
esac
|
||||||
|
AX_SUBST(DISTRIBUTOR)
|
||||||
BUILD_NUMBER=${BUILD_NUMBER:-1}
|
BUILD_NUMBER=${BUILD_NUMBER:-1}
|
||||||
AX_SUBST(BUILD_NUMBER)
|
AX_SUBST(BUILD_NUMBER)
|
||||||
BUILD_DATE=$(LANG= date +"%a, %d %b %Y %H:%M:%S %z")
|
BUILD_DATE=$(LANG= date +"%a, %d %b %Y %H:%M:%S %z")
|
||||||
@@ -156,11 +187,24 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
|
|||||||
- all warnings result in an error
|
- all warnings result in an error
|
||||||
- doxygen warnings are treated as error too]); fi
|
- doxygen warnings are treated as error too]); fi
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(debug,
|
||||||
|
[AS_HELP_STRING([--enable-debug],
|
||||||
|
[compile for debugger])],
|
||||||
|
[have_debug="$enableval"], [have_debug="no"])
|
||||||
|
AM_CONDITIONAL(DEBUG, test "$enableval" = "yes")
|
||||||
|
if test "$have_debug" == "yes"; then
|
||||||
|
AC_MSG_NOTICE([Debug compile mode enabled]);
|
||||||
|
AM_CPPFLAGS="${AM_CPPFLAGS} -DDEBUG"
|
||||||
|
AM_CXXFLAGS="${AM_CXXFLAGS:-} -ggdb3 -O0"
|
||||||
|
AM_LDFLAGS="${AM_LDFLAGS} -ggdb3 -O0"
|
||||||
|
else
|
||||||
|
AM_CPPFLAGS="${AM_CPPFLAGS} -DQT_NO_DEBUG_OUTPUT -DQT_NO_DEBUG"
|
||||||
|
fi
|
||||||
|
|
||||||
AC_CONFIG_FILES([makefile])
|
AC_CONFIG_FILES([makefile])
|
||||||
AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-standard-project-targets], [makefile.in])
|
AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-standard-project-targets], [makefile.in])
|
||||||
AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-standard-project-targets], [makefile.in])
|
AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-standard-project-targets], [makefile.in])
|
||||||
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-standard-project-targets], [makefile.in])
|
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-standard-project-targets], [makefile.in])
|
||||||
test -f makefile.in && sed -i '1iEXTRA_DIST = ' makefile.in
|
|
||||||
test -f makefile.in && cat >> makefile.in <<EOF
|
test -f makefile.in && cat >> makefile.in <<EOF
|
||||||
#### Begin: Appended by $0
|
#### Begin: Appended by $0
|
||||||
EXTRA_DIST += bootstrap.sh ax_init_standard_project.m4 ax_cxx_compile_stdcxx_11.m4 \
|
EXTRA_DIST += bootstrap.sh ax_init_standard_project.m4 ax_cxx_compile_stdcxx_11.m4 \
|
||||||
@@ -172,7 +216,7 @@ clean-standard-project-targets:
|
|||||||
-rm \${PACKAGE_TARNAME}-\${PACKAGE_VERSION}.tar.gz
|
-rm \${PACKAGE_TARNAME}-\${PACKAGE_VERSION}.tar.gz
|
||||||
distclean-standard-project-targets:
|
distclean-standard-project-targets:
|
||||||
-rm -r autom4te.cache
|
-rm -r autom4te.cache
|
||||||
-rm aclocal.m4 config.guess config.sub configure depcomp compile install-sh ltmain.sh makefile missing mkinstalldirs
|
-rm aclocal.m4 config.guess config.sub configure depcomp compile install-sh ltmain.sh makefile missing mkinstalldirs test-driver
|
||||||
maintainer-clean-standard-project-targets:
|
maintainer-clean-standard-project-targets:
|
||||||
-rm makefile.in
|
-rm makefile.in
|
||||||
#### End: $0
|
#### End: $0
|
||||||
@@ -390,6 +434,8 @@ EOF
|
|||||||
# $2 = module name (optional, if different from id)
|
# $2 = module name (optional, if different from id)
|
||||||
# $3 = a header file to find (optional)
|
# $3 = a header file to find (optional)
|
||||||
# $4 = alternative module names (space separated, optional)
|
# $4 = alternative module names (space separated, optional)
|
||||||
|
# $5 = optional flags:
|
||||||
|
# manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged
|
||||||
#
|
#
|
||||||
# uses PKG_CHECK_MODULES to test for a module
|
# uses PKG_CHECK_MODULES to test for a module
|
||||||
# then, if given, looks for the header file
|
# then, if given, looks for the header file
|
||||||
@@ -398,6 +444,7 @@ EOF
|
|||||||
# fails if not found
|
# fails if not found
|
||||||
AC_DEFUN([AX_PKG_REQUIRE], [
|
AC_DEFUN([AX_PKG_REQUIRE], [
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
|
optional_flags="$5"
|
||||||
$1_found=no
|
$1_found=no
|
||||||
secondpar="m4_default([$2], [$1])"
|
secondpar="m4_default([$2], [$1])"
|
||||||
PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
|
PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
|
||||||
@@ -477,26 +524,47 @@ AC_DEFUN([AX_PKG_REQUIRE], [
|
|||||||
AC_MSG_ERROR([Feature $1 not found please install module $secondpar])
|
AC_MSG_ERROR([Feature $1 not found please install module $secondpar])
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
CPPFLAGS+=" ${$1_CFLAGS}"
|
[$1]_CPPFLAGS="${$1_CFLAGS}"
|
||||||
CXXFLAGS+=" ${$1_CFLAGS}"
|
[$1]_CXXFLAGS="${$1_CFLAGS}"
|
||||||
LIBS+=" ${$1_LIBS}"
|
AC_SUBST([$1]_CPPFLAGS)
|
||||||
|
AC_SUBST([$1]_CXXFLAGS)
|
||||||
|
if test "${optional_flags/manualflags/}" = "${optional_flags}"; then
|
||||||
|
CPPFLAGS+=" ${$1_CPPFLAGS}"
|
||||||
|
CXXFLAGS+=" ${$1_CXXFLAGS}"
|
||||||
|
LIBS+=" ${$1_LIBS}"
|
||||||
|
AC_MSG_NOTICE([Adding flags for $1])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS])
|
||||||
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
# check if a specific package exists
|
# check if a specific package exists
|
||||||
# - parameter:
|
# - parameter:
|
||||||
# $1 = unique id (no special characters)
|
# $1 = unique id (no special characters)
|
||||||
# $2 = module name (optional, if different from id)
|
# $2 = module name (optional, if different from id)
|
||||||
|
# $3 = optional flags:
|
||||||
|
# manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged
|
||||||
#
|
#
|
||||||
# uses PKG_CHECK_MODULES to test for a module
|
# uses PKG_CHECK_MODULES to test for a module
|
||||||
# sets automake conditional HAVE_$1 to 0 (not found) or 1 (found)
|
# sets automake conditional HAVE_$1 to 0 (not found) or 1 (found)
|
||||||
# sets all flags, so that the module can be used everywhere
|
# sets all flags, so that the module can be used everywhere
|
||||||
AC_DEFUN([AX_PKG_CHECK], [
|
AC_DEFUN([AX_PKG_CHECK], [
|
||||||
|
optional_flags="$3"
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
|
PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
|
||||||
HAVE_$1=1
|
HAVE_$1=1
|
||||||
CPPFLAGS+=" ${$1_CFLAGS}"
|
[$1]_CPPFLAGS="${$1_CFLAGS}"
|
||||||
CXXFLAGS+=" ${$1_CFLAGS}"
|
[$1]_CXXFLAGS="${$1_CFLAGS}"
|
||||||
LIBS+=" ${$1_LIBS}"
|
AC_SUBST([$1]_CPPFLAGS)
|
||||||
|
AC_SUBST([$1]_CXXFLAGS)
|
||||||
|
if test "${optional_flags/manualflags/}" = "${optional_flags}"; then
|
||||||
|
CPPFLAGS+=" ${$1_CPPFLAGS}"
|
||||||
|
CXXFLAGS+=" ${$1_CXXFLAGS}"
|
||||||
|
LIBS+=" ${$1_LIBS}"
|
||||||
|
AC_MSG_NOTICE([Adding flags for $1])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS])
|
||||||
|
fi
|
||||||
if test -z "$PKG_REQUIREMENTS"; then
|
if test -z "$PKG_REQUIREMENTS"; then
|
||||||
PKG_REQUIREMENTS="m4_default([$2], [$1])"
|
PKG_REQUIREMENTS="m4_default([$2], [$1])"
|
||||||
else
|
else
|
||||||
|
@@ -672,7 +672,7 @@ if testtag AX_USE_DOXYGEN; then
|
|||||||
doxyreplace INLINE_SOURCES YES
|
doxyreplace INLINE_SOURCES YES
|
||||||
doxyreplace GENERATE_TESTLIST YES
|
doxyreplace GENERATE_TESTLIST YES
|
||||||
doxyreplace GENERATE_TREEVIEW NO
|
doxyreplace GENERATE_TREEVIEW NO
|
||||||
doxyreplace SEARCHENGINE YES
|
doxyreplace SEARCHENGINE NO
|
||||||
doxyreplace GENERATE_HTML YES
|
doxyreplace GENERATE_HTML YES
|
||||||
doxyreplace GENERATE_LATEX NO
|
doxyreplace GENERATE_LATEX NO
|
||||||
doxyreplace LATEX_BATCHMODE YES
|
doxyreplace LATEX_BATCHMODE YES
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
m4_define(x_package_name, safechat) # project's name
|
m4_define(x_package_name, safechat) # project's name
|
||||||
m4_define(x_major, 0) # project's major version
|
m4_define(x_major, 0) # project's major version
|
||||||
m4_define(x_minor, 2) # project's minor version
|
m4_define(x_minor, 3) # project's minor version
|
||||||
m4_include(ax_init_standard_project.m4)
|
m4_include(ax_init_standard_project.m4)
|
||||||
AC_INIT(x_package_name, x_version, x_package_name)
|
AC_INIT(x_package_name, x_version, x_package_name)
|
||||||
AM_INIT_AUTOMAKE([1.9 tar-pax])
|
AM_INIT_AUTOMAKE([1.9 tar-pax])
|
||||||
@@ -17,11 +17,11 @@ AX_INIT_STANDARD_PROJECT
|
|||||||
# requirements, uncomment, what you need:
|
# requirements, uncomment, what you need:
|
||||||
#AX_USE_CXX
|
#AX_USE_CXX
|
||||||
#AX_USE_LIBTOOL
|
#AX_USE_LIBTOOL
|
||||||
#AX_USE_SCRIPTS
|
AX_USE_SCRIPTS
|
||||||
AX_USE_DOXYGEN
|
AX_USE_DOXYGEN
|
||||||
AX_USE_DEBIAN_PACKAGING
|
AX_USE_DEBIAN_PACKAGING
|
||||||
AX_BUILD_HTML
|
AX_BUILD_HTML
|
||||||
#AX_USE_RPM_PACKAGING
|
AX_USE_RPM_PACKAGING
|
||||||
#AX_USE_CPPUNIT
|
#AX_USE_CPPUNIT
|
||||||
#AX_BUILD_EXAMPLES
|
#AX_BUILD_EXAMPLES
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<manifest android:hardwareAccelerated="true" android:versionCode="232" android:versionName="0.2.32" package="ch.safechat" xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest android:hardwareAccelerated="true" android:versionCode="333" android:versionName="0.3.33" package="ch.safechat" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
|
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<widget id="ch.safechat" version="0.2.32" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
<widget id="ch.safechat" version="0.3.33" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||||
<preference name="loglevel" value="DEBUG" />
|
<preference name="loglevel" value="DEBUG" />
|
||||||
<feature name="Whitelist">
|
<feature name="Whitelist">
|
||||||
<param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin" />
|
<param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin" />
|
||||||
|
@@ -34,4 +34,53 @@ function success($txt) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getoption($name, $default) {
|
||||||
|
if (!isset($OPTION[$name])) {
|
||||||
|
$q = $db->query("select value from options where name='$name';");
|
||||||
|
if ($q->num_rows==1) {
|
||||||
|
$OPTION[$name]=$q->fetch_row()[0];
|
||||||
|
} else {
|
||||||
|
if (isset($_SERVER[$name]))
|
||||||
|
$OPTION[$name]=$_SERVER[$name];
|
||||||
|
else
|
||||||
|
$OPTION[$name]=$default;
|
||||||
|
$q = $db->query("insert into options (name, value) values ('$name', '$value');");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $OPTION[$name];
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Create user safechat as server's identity
|
||||||
|
/** Server has reserved username @c safechat */
|
||||||
|
function createSafechatUser() {
|
||||||
|
$q = $db->query("select pubkey from user where name='safechat';");
|
||||||
|
if ($q->num_rows!=1 && $user=="safechat") {
|
||||||
|
$KEY_LENGTH=getoption("KEYLEN", "4096");
|
||||||
|
$SAFECHAT_NAME=getoption("NAME", "Safe Chat");
|
||||||
|
$SAFECHAT_COMMENT=getoption("COMMENT", "https://safechat.ch");
|
||||||
|
$SAFECHAT_EMAIL=getoption("EMAIL", "server@safechat.ch");
|
||||||
|
$PASSWORD=getoption("PASSWORD", "s3Cr37");
|
||||||
|
$create_key_cmd=<<<EOT
|
||||||
|
gpg -v -v --gen-key --batch <<EOF
|
||||||
|
Key-Type: RSA
|
||||||
|
Key-Length: 4096
|
||||||
|
Subkey-Type: RSA
|
||||||
|
Subkey-Length: 4096
|
||||||
|
Name-Real: ${SAFECHAT_NAME}
|
||||||
|
Name-Comment: ${SAFECHAT_COMMENT}
|
||||||
|
Name-Email: ${SAFECHAT_EMAIL}
|
||||||
|
Expire-Date: 0
|
||||||
|
Passphrase: ${PASSWORD}
|
||||||
|
%echo generating key for ${SAFECHAT_NAME} ...
|
||||||
|
%commit
|
||||||
|
%echo done.
|
||||||
|
EOF
|
||||||
|
EOT;
|
||||||
|
system($create_key_cmd);
|
||||||
|
gnupg_setarmor($pgp, 1);
|
||||||
|
$export = gnupg_export($pgp, ${SAFECHAT_NAME});
|
||||||
|
$q = $db->query("insert into user (name, pubkey) values ('safechat', '$export');");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@@ -28,8 +28,7 @@ try {
|
|||||||
require_once("usertable.php");
|
require_once("usertable.php");
|
||||||
$user = $db->real_escape_string($_REQUEST['user']);
|
$user = $db->real_escape_string($_REQUEST['user']);
|
||||||
$pubkey = $db->real_escape_string($_REQUEST['pubkey']);
|
$pubkey = $db->real_escape_string($_REQUEST['pubkey']);
|
||||||
$pgp = gnupg_init();
|
if ($user=="safechat") error("username safechat is reserved for server");
|
||||||
if (!$pgp) error("pgp on server failed");
|
|
||||||
$verify = gnupg_import($pgp, $_REQUEST['pubkey']);
|
$verify = gnupg_import($pgp, $_REQUEST['pubkey']);
|
||||||
if (!$verify) error("wrong identity");
|
if (!$verify) error("wrong identity");
|
||||||
$q = $db->query("select * from user where name='$user' and pubkey='$pubkey';");
|
$q = $db->query("select * from user where name='$user' and pubkey='$pubkey';");
|
||||||
|
@@ -21,16 +21,12 @@
|
|||||||
// 1 2 3 4 5 6 7 8
|
// 1 2 3 4 5 6 7 8
|
||||||
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
||||||
|
|
||||||
require_once("functions.php");
|
require_once("opendb.php");
|
||||||
mysqli_report(MYSQLI_REPORT_STRICT);
|
|
||||||
try {
|
try {
|
||||||
$db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]);
|
|
||||||
$db->query("create database if not exists safechat;");
|
|
||||||
$db->select_db("safechat");
|
|
||||||
$db->query('create table if not exists message (id int primary key not null auto_increment, time timestamp default current_timestamp, user varchar(50) not null, msg longtext not null);');
|
$db->query('create table if not exists message (id int primary key not null auto_increment, time timestamp default current_timestamp, user varchar(50) not null, msg longtext not null);');
|
||||||
$db->query('set global max_allowed_packet=1000000000');
|
$db->query('set global max_allowed_packet=1000000000');
|
||||||
$db->query('set global net_buffer_length=1000000');
|
$db->query('set global net_buffer_length=1000000');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
echo json_encode(null);
|
error('database error on server');
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@@ -29,6 +29,11 @@ try {
|
|||||||
require_once("usertable.php");
|
require_once("usertable.php");
|
||||||
$user = $db->real_escape_string($_REQUEST['user']);
|
$user = $db->real_escape_string($_REQUEST['user']);
|
||||||
$q = $db->query("select pubkey from user where name='$user';");
|
$q = $db->query("select pubkey from user where name='$user';");
|
||||||
|
if ($q->num_rows!=1 && $user=="safechat") {
|
||||||
|
require_once("optionstable.php");
|
||||||
|
createSafechatUser();
|
||||||
|
$q = $db->query("select pubkey from user where name='$user';");
|
||||||
|
}
|
||||||
if ($q->num_rows==1) {
|
if ($q->num_rows==1) {
|
||||||
echo json_encode($q->fetch_row()[0]);
|
echo json_encode($q->fetch_row()[0]);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -286,7 +286,7 @@ function checkpartner(user) {
|
|||||||
function createkeypair(user, pwd) {
|
function createkeypair(user, pwd) {
|
||||||
status("generate keys");
|
status("generate keys");
|
||||||
openpgp.generateKeyPair({
|
openpgp.generateKeyPair({
|
||||||
numBits: 1024,
|
numBits: 4096,
|
||||||
userId: user,
|
userId: user,
|
||||||
passphrase: pwd
|
passphrase: pwd
|
||||||
}).then(function(keyPair) {
|
}).then(function(keyPair) {
|
||||||
@@ -403,6 +403,37 @@ function setreceiver(name) {
|
|||||||
$("#msg").focus();
|
$("#msg").focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var userMap = null;
|
||||||
|
/// Get a user's public key.
|
||||||
|
/** The first time, gets it from the server, later from the cache. */
|
||||||
|
function getPublicKey(user) {
|
||||||
|
var deferredObject = $.Deferred();
|
||||||
|
if (userMap == null) {
|
||||||
|
if (localStorage.userMap) {
|
||||||
|
userMap = JSON.parse(localStorage.userMap);
|
||||||
|
console.log("got userMap from localStorage");
|
||||||
|
} else {
|
||||||
|
userMap = new Array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (userMap[user]) {
|
||||||
|
console.log("user "+user+" is in cache");
|
||||||
|
deferredObject.resolve(userMap[user]);
|
||||||
|
} else {
|
||||||
|
$.post("pubkey.php", {user: user}) // get sender's key
|
||||||
|
.done(function(pk) {
|
||||||
|
console.log("got user "+user+" from server");
|
||||||
|
userMap[user] = pk;
|
||||||
|
localStorage.userMap = JSON.stringify(userMap);
|
||||||
|
deferredObject.resolve(pk);
|
||||||
|
}).fail(function(e) {
|
||||||
|
error("offline");
|
||||||
|
deferredObject.reject(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return deferredObject.promise();
|
||||||
|
}
|
||||||
|
|
||||||
var startmsg = 0; ///< number of last downloaded message
|
var startmsg = 0; ///< number of last downloaded message
|
||||||
/// Poll For New Messages, Get And Show Them
|
/// Poll For New Messages, Get And Show Them
|
||||||
/** The global variable @ref startmsg stores the id of the last
|
/** The global variable @ref startmsg stores the id of the last
|
||||||
@@ -421,7 +452,7 @@ function get() {
|
|||||||
if (msgs) {
|
if (msgs) {
|
||||||
msgs.forEach(function(e) { // one single message
|
msgs.forEach(function(e) { // one single message
|
||||||
if (startmsg<Number(e.id)) startmsg = Number(e.id);
|
if (startmsg<Number(e.id)) startmsg = Number(e.id);
|
||||||
$.post("pubkey.php", {user: e.user}) // get sender's key
|
getPublicKey(e.user) // get sender's key
|
||||||
.done(function(pk) {
|
.done(function(pk) {
|
||||||
var res=JSON.parse(pk);
|
var res=JSON.parse(pk);
|
||||||
var key=openpgp.key.readArmored(res);
|
var key=openpgp.key.readArmored(res);
|
||||||
@@ -481,7 +512,7 @@ function get() {
|
|||||||
function sendmessage(recv, txt) {
|
function sendmessage(recv, txt) {
|
||||||
notice("1/3 preparing message ...");
|
notice("1/3 preparing message ...");
|
||||||
$("#message").fadeOut("slow");
|
$("#message").fadeOut("slow");
|
||||||
$.post("pubkey.php", {user: recv}) // get receiver's public key
|
getPublicKey(recv) // get receiver's public key
|
||||||
.done(function(pk) {
|
.done(function(pk) {
|
||||||
var res=JSON.parse(pk);
|
var res=JSON.parse(pk);
|
||||||
var key=openpgp.key.readArmored(res);
|
var key=openpgp.key.readArmored(res);
|
||||||
|
@@ -29,9 +29,7 @@ try {
|
|||||||
require_once("usertable.php");
|
require_once("usertable.php");
|
||||||
$user = $db->real_escape_string($_REQUEST['user']);
|
$user = $db->real_escape_string($_REQUEST['user']);
|
||||||
$msg = $db->real_escape_string($_REQUEST['msg']);
|
$msg = $db->real_escape_string($_REQUEST['msg']);
|
||||||
$pgp = gnupg_init();
|
|
||||||
if (strlen($_REQUEST['msg'])>100000) error("message is too long");
|
if (strlen($_REQUEST['msg'])>100000) error("message is too long");
|
||||||
if (!$pgp) error("pgp on server failed");
|
|
||||||
$q = $db->query("select pubkey from user where name='$user';");
|
$q = $db->query("select pubkey from user where name='$user';");
|
||||||
if (!$q || $q->num_rows!=1) error("user not found on server");
|
if (!$q || $q->num_rows!=1) error("user not found on server");
|
||||||
$pubkey = gnupg_import($pgp, $q->fetch_row()[0]);
|
$pubkey = gnupg_import($pgp, $q->fetch_row()[0]);
|
||||||
|
@@ -22,14 +22,10 @@
|
|||||||
// 1 2 3 4 5 6 7 8
|
// 1 2 3 4 5 6 7 8
|
||||||
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
||||||
|
|
||||||
require_once("functions.php");
|
require_once("opendb.php");
|
||||||
mysqli_report(MYSQLI_REPORT_STRICT);
|
|
||||||
try {
|
try {
|
||||||
$db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]);
|
|
||||||
$db->query("create database if not exists safechat;");
|
|
||||||
$db->select_db("safechat");
|
|
||||||
$db->query('create table if not exists user (name varchar(50) not null unique key, pubkey text not null);');
|
$db->query('create table if not exists user (name varchar(50) not null unique key, pubkey text not null);');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
echo json_encode(null);
|
error('database error on server');
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
## @id $Id$
|
## @id $Id$
|
||||||
#
|
#
|
||||||
# This file has been added by bootstrap.sh on Wed, 15 July 2015 10:02:57 +0200
|
# This file has been added by bootstrap.sh on Sun, 11 October 2015 13:20:54 +0200
|
||||||
# Feel free to change it or even remove and rebuild it, up to your needs
|
# Feel free to change it or even remove and rebuild it, up to your needs
|
||||||
#
|
#
|
||||||
## 1 2 3 4 5 6 7 8
|
## 1 2 3 4 5 6 7 8
|
||||||
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
||||||
|
|
||||||
SUBDIRS = doc html cordova
|
SUBDIRS = scripts doc html
|
||||||
|
|
||||||
|
doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = makefile.in
|
MAINTAINERCLEANFILES = makefile.in
|
||||||
|
@@ -13,17 +13,17 @@
|
|||||||
SCHROOTNAME="$1"
|
SCHROOTNAME="$1"
|
||||||
PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac)
|
PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac)
|
||||||
|
|
||||||
sed 's,@[^@]*@,dummytext,g' ${PACKAGE_NAME}.spec.in > ${PACKAGE_NAME}.spec
|
|
||||||
|
|
||||||
if test -n "${SCHROOTNAME}"; then
|
if test -n "${SCHROOTNAME}"; then
|
||||||
FILES=$(LANG= schroot -c ${SCHROOTNAME} -- rpmbuild -bb --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
schroot -c ${SCHROOTNAME} -- ./bootstrap.sh -t dist
|
||||||
|
FILES=$(LANG= schroot -c ${SCHROOTNAME} -- rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
||||||
if test -n "${FILES}"; then
|
if test -n "${FILES}"; then
|
||||||
schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \
|
schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \
|
||||||
schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \
|
schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \
|
||||||
schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES}
|
schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
FILES=$(LANG= rpmbuild -bb --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
./bootstrap.sh -t dist
|
||||||
|
FILES=$(LANG= rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
||||||
if test -n "${FILES}"; then
|
if test -n "${FILES}"; then
|
||||||
yum install -y ${FILES} || \
|
yum install -y ${FILES} || \
|
||||||
zypper install -y ${FILES} || \
|
zypper install -y ${FILES} || \
|
||||||
|
60
safechat.spec.in
Normal file
60
safechat.spec.in
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
Summary: @DESCRIPTION@
|
||||||
|
Name: @PACKAGE_NAME@
|
||||||
|
Version: @VERSION@
|
||||||
|
Release: @BUILD_NUMBER@%{?dist}
|
||||||
|
License: LGPL
|
||||||
|
Group: Applications/...
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
|
BuildRequires: gnupg, subversion, automake, autoconf, doxygen
|
||||||
|
%if 0%{?fedora} != 20
|
||||||
|
BuildRequires: graphviz
|
||||||
|
%endif
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version}
|
||||||
|
BuildRequires: pkgconfig, redhat-lsb
|
||||||
|
%if ! ( 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} )
|
||||||
|
BuildRequires: mscgen
|
||||||
|
|
||||||
|
%else
|
||||||
|
|
||||||
|
%endif
|
||||||
|
%else%if 0%{?suse_version} || 0%{?sles_version}
|
||||||
|
BuildRequires: pkg-config, lsb-release
|
||||||
|
%if 0%{?suse_version} < 1200 || 0%{?sles_version} < 1200
|
||||||
|
|
||||||
|
%else
|
||||||
|
|
||||||
|
%endif
|
||||||
|
%endif%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
@README@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
./configure --prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--docdir=/usr/share/doc/packages/@PACKAGE_NAME@ \
|
||||||
|
--libdir=/usr/%_lib
|
||||||
|
|
||||||
|
%build
|
||||||
|
make
|
||||||
|
|
||||||
|
%install
|
||||||
|
DESTDIR=$RPM_BUILD_ROOT make install
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
/usr/bin/*
|
||||||
|
%doc
|
||||||
|
/usr/share/*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
|
11
scripts/makefile.am
Normal file
11
scripts/makefile.am
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
## @id $Id$
|
||||||
|
#
|
||||||
|
# This file has been added by bootstrap.sh on Sun, 11 October 2015 12:15:12 +0200
|
||||||
|
# Feel free to change it or even remove and rebuild it, up to your needs
|
||||||
|
#
|
||||||
|
## 1 2 3 4 5 6 7 8
|
||||||
|
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
||||||
|
|
||||||
|
dist_sbin_SCRIPTS = safechat-install.sh
|
||||||
|
|
||||||
|
MAINTAINERCLEANFILES = makefile.in
|
Reference in New Issue
Block a user