From f11d2c7c56e7a36f0079428152c58bdc812209fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Tue, 3 Nov 2015 22:02:51 +0000 Subject: [PATCH] AUTHOR updated to new homepage --- AUTHORS | 2 +- ax_check_qt.m4 | 121 ++++++++++-------- ax_init_standard_project.m4 | 108 +++++++++++++--- bootstrap.sh | 2 +- configure.ac | 6 +- cordova/platforms/android/AndroidManifest.xml | 2 +- cordova/platforms/android/res/xml/config.xml | 2 +- html/functions.php | 49 +++++++ html/login.php | 3 +- html/messagetable.php | 8 +- html/pubkey.php | 5 + html/safechat.js | 37 +++++- html/send.php | 2 - html/usertable.php | 8 +- makefile.am | 6 +- resolve-rpmbuilddeps.sh | 8 +- safechat.spec.in | 60 +++++++++ scripts/makefile.am | 11 ++ 18 files changed, 336 insertions(+), 104 deletions(-) create mode 100644 safechat.spec.in create mode 100644 scripts/makefile.am diff --git a/AUTHORS b/AUTHORS index bd79912..86ccdef 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1 @@ -Marc Wäckerlin (http://marc.waeckerlin.org) +Marc Wäckerlin (https://marc.wäckerlin.ch) diff --git a/ax_check_qt.m4 b/ax_check_qt.m4 index 1a5dafb..479f65c 100644 --- a/ax_check_qt.m4 +++ b/ax_check_qt.m4 @@ -1,10 +1,10 @@ # SYNOPSIS # # 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: -# AX_REQUIRE_QT([qt_prefix], [list-of-qt-modules], [optional-modules]) +# AX_REQUIRE_QT([qt_prefix], [list-of-qt-modules], [optional-modules] [flags]) # # DESCRIPTIONS # @@ -35,6 +35,18 @@ # Optional list of more, optional modules, e.g. modules that # exist only in Qt5, but not in Qt4, such as QtWidgets or # 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], [ @@ -83,6 +95,7 @@ AC_DEFUN([AX_CXX_QT_TOOLS], [ AC_DEFUN([AX_CHECK_QT], [ qt_modules="$2" qt_modules_optional="$3" + qt_flags="$4" AX_CXX_QT_TOOLS HAVE_$1=0 PKG_PROG_PKG_CONFIG @@ -91,17 +104,37 @@ AC_DEFUN([AX_CHECK_QT], [ AC_DEFINE([HAVE_$1]) QTDIR=$(${PKG_CONFIG} --variable=prefix Qt5Core) QT_PLUGIN_PATH=${QTDIR}/share/qt5/plugins - CPPFLAGS+=" ${[$1]5_CFLAGS}" MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}" - CXXFLAGS+=" ${[$1]5_CFLAGS}" - LIBS+=" ${[$1]5_LIBS}" + [$1]_CPPFLAGS="${[$1]5_CFLAGS}" + [$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}" if test -n "${qt_modules_optional}"; then PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [ - CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" - CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" - LIBS+=" ${[$1]5_OPTIONAL_LIBS}" + [$1]_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" + [$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}" ], [ AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}]) @@ -113,17 +146,36 @@ AC_DEFUN([AX_CHECK_QT], [ AC_DEFINE([HAVE_$1]) QTDIR=$(${PKG_CONFIG} --variable=prefix QtCore) QT_PLUGIN_PATH=${QTDIR}/share/qt/plugins - CPPFLAGS+=" ${$1_CFLAGS}" MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}" - CXXFLAGS+=" ${$1_CFLAGS}" - LIBS+=" ${$1_LIBS}" + [$1]_CPPFLAGS="${[$1]_CFLAGS}" + [$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}" if test -n "$3"; then PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [ - CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}" - MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}" - CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}" - LIBS+=" ${$1_OPTIONAL_LIBS}" + MOC_FLAGS+="${$1_OPTIONAL_CFLAGS}" + [$1]_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}" + [$1]_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}" + [$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}" ], [ 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) 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]) fi 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], [ - AX_CHECK_QT([$1], [$2], [$3]) + AX_CHECK_QT([$1], [$2], [$3], [$4]) if ! test "$HAVE_$1" -eq 1; then AC_MSG_ERROR([Required Qt modules not found: $2]) fi @@ -213,7 +231,6 @@ AC_DEFUN([AX_REQUIRE_QT], [ # Omit Qt Keywords # AX_QT_NO_KEYWORDS - AC_DEFUN([AX_QT_NO_KEYWORDS], [ CPPFLAGS+=" -DQT_NO_KEYWORDS" ]) diff --git a/ax_init_standard_project.m4 b/ax_init_standard_project.m4 index 19e461a..5baecf4 100644 --- a/ax_init_standard_project.m4 +++ b/ax_init_standard_project.m4 @@ -8,7 +8,16 @@ m4_define([mrw_esyscmd_s], [m4_normalize(m4_esyscmd([$1]))]) # define least version number from subversion's revision number: # 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" for path in . .. ../..; do if svn info $path 2>&1 > /dev/null; then @@ -18,7 +27,7 @@ m4_define(x_least, mrw_esyscmd_s([ done # Mac does not support LEAST > 255 echo $ECHO_N $(($SVN_REVISION%256)) -])) +]))) # define version number from subversion's revision number: # it is taken modulo 256 due to a bug on Apple's MacOSX # 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)) ])) # 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 in first line of AUTHORS m4_define(x_bugreport, mrw_esyscmd_s([ @@ -107,14 +116,27 @@ AC_DEFUN([AX_SUBST], [ # # configures the basic environment AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ - MINGW=no - MAC=no - case $host in - *mingw*) MINGW=yes;; - *darwin* | *rhapsody* | *macosx*) MAC=yes;; - esac - AM_CONDITIONAL(MINGW, test "$MINGW" = "yes") - AM_CONDITIONAL(MAC, test "$MAC" = "yes") + AC_MSG_CHECKING([target platfrom]) + UNIX=1 + MINGW= + MACOSX= + for h in ${target} ${target_os} ${host} ${host_os} \ + ${build} ${build_os} $(uname -s 2> /dev/null); do + p="$h is generic Unix" + 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]/_}'" AX_SUBST(NUMBERS) AX_SUBST(HOME) @@ -127,8 +149,17 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ AUTHOR=$(head -1 AUTHORS) AX_SUBST(AUTHOR) _AM_SUBST_NOTMAKE([AUTHOR]) - DISTRO=$(lsb_release -sc) + DISTRO=$(lsb_release -sc 2>/dev/null || uname -s 2>/dev/null) 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} AX_SUBST(BUILD_NUMBER) 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 - 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]) 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([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 < - + diff --git a/cordova/platforms/android/res/xml/config.xml b/cordova/platforms/android/res/xml/config.xml index 58c4e31..71fe8f3 100644 --- a/cordova/platforms/android/res/xml/config.xml +++ b/cordova/platforms/android/res/xml/config.xml @@ -1,5 +1,5 @@ - + diff --git a/html/functions.php b/html/functions.php index 62d1b2b..c4e424f 100644 --- a/html/functions.php +++ b/html/functions.php @@ -34,4 +34,53 @@ function success($txt) { 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=<<query("insert into user (name, pubkey) values ('safechat', '$export');"); + } +} + ?> \ No newline at end of file diff --git a/html/login.php b/html/login.php index 5ba4de0..bdeabf3 100644 --- a/html/login.php +++ b/html/login.php @@ -28,8 +28,7 @@ try { require_once("usertable.php"); $user = $db->real_escape_string($_REQUEST['user']); $pubkey = $db->real_escape_string($_REQUEST['pubkey']); - $pgp = gnupg_init(); - if (!$pgp) error("pgp on server failed"); + if ($user=="safechat") error("username safechat is reserved for server"); $verify = gnupg_import($pgp, $_REQUEST['pubkey']); if (!$verify) error("wrong identity"); $q = $db->query("select * from user where name='$user' and pubkey='$pubkey';"); diff --git a/html/messagetable.php b/html/messagetable.php index f3d351f..15159de 100644 --- a/html/messagetable.php +++ b/html/messagetable.php @@ -21,16 +21,12 @@ // 1 2 3 4 5 6 7 8 // 45678901234567890123456789012345678901234567890123456789012345678901234567890 -require_once("functions.php"); -mysqli_report(MYSQLI_REPORT_STRICT); +require_once("opendb.php"); 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('set global max_allowed_packet=1000000000'); $db->query('set global net_buffer_length=1000000'); } catch (Exception $e) { - echo json_encode(null); + error('database error on server'); } ?> diff --git a/html/pubkey.php b/html/pubkey.php index 36374de..e051a03 100644 --- a/html/pubkey.php +++ b/html/pubkey.php @@ -29,6 +29,11 @@ try { require_once("usertable.php"); $user = $db->real_escape_string($_REQUEST['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) { echo json_encode($q->fetch_row()[0]); } else { diff --git a/html/safechat.js b/html/safechat.js index e11f99d..5640964 100644 --- a/html/safechat.js +++ b/html/safechat.js @@ -286,7 +286,7 @@ function checkpartner(user) { function createkeypair(user, pwd) { status("generate keys"); openpgp.generateKeyPair({ - numBits: 1024, + numBits: 4096, userId: user, passphrase: pwd }).then(function(keyPair) { @@ -403,6 +403,37 @@ function setreceiver(name) { $("#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 /// Poll For New Messages, Get And Show Them /** The global variable @ref startmsg stores the id of the last @@ -421,7 +452,7 @@ function get() { if (msgs) { msgs.forEach(function(e) { // one single message if (startmsgreal_escape_string($_REQUEST['user']); $msg = $db->real_escape_string($_REQUEST['msg']); - $pgp = gnupg_init(); 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';"); if (!$q || $q->num_rows!=1) error("user not found on server"); $pubkey = gnupg_import($pgp, $q->fetch_row()[0]); diff --git a/html/usertable.php b/html/usertable.php index 27bbf43..25c89c7 100644 --- a/html/usertable.php +++ b/html/usertable.php @@ -22,14 +22,10 @@ // 1 2 3 4 5 6 7 8 // 45678901234567890123456789012345678901234567890123456789012345678901234567890 -require_once("functions.php"); -mysqli_report(MYSQLI_REPORT_STRICT); +require_once("opendb.php"); 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);'); } catch (Exception $e) { - echo json_encode(null); + error('database error on server'); } ?> diff --git a/makefile.am b/makefile.am index 0331cad..504d8b8 100644 --- a/makefile.am +++ b/makefile.am @@ -1,11 +1,13 @@ ## @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 # ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 -SUBDIRS = doc html cordova +SUBDIRS = scripts doc html + +doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog MAINTAINERCLEANFILES = makefile.in diff --git a/resolve-rpmbuilddeps.sh b/resolve-rpmbuilddeps.sh index efa546f..f36a875 100755 --- a/resolve-rpmbuilddeps.sh +++ b/resolve-rpmbuilddeps.sh @@ -13,17 +13,17 @@ SCHROOTNAME="$1" 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 - 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 schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \ schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \ schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES} fi 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 yum install -y ${FILES} || \ zypper install -y ${FILES} || \ diff --git a/safechat.spec.in b/safechat.spec.in new file mode 100644 index 0000000..4a3e174 --- /dev/null +++ b/safechat.spec.in @@ -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 + diff --git a/scripts/makefile.am b/scripts/makefile.am new file mode 100644 index 0000000..4c2ccb3 --- /dev/null +++ b/scripts/makefile.am @@ -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