Browse Source

Drop tqmake build support.

Add basic cmake build instructions.
Rework of the README file.

Signed-off-by: gregory guy <gregory-tde@laposte.net>
master
gregory guy 1 week ago
parent
commit
17a1fd9115
No known key found for this signature in database GPG Key ID: 2CC84A1CC6823AF8
8 changed files with 44 additions and 739 deletions
  1. +29
    -0
      INSTALL
  2. +15
    -12
      README
  3. +0
    -598
      configure
  4. +0
    -80
      openssl.qcm
  5. +0
    -5
      prepare
  6. +0
    -26
      qca-tls.pro
  7. +0
    -9
      qca-tls.qc
  8. +0
    -9
      qcextra

+ 29
- 0
INSTALL View File

@@ -0,0 +1,29 @@
Basic Installation
==================

tqca-tls relies on cmake to build.

Here are suggested default options:

-DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DCONFIG_INSTALL_DIR="/etc/trinity" \
-DSYSCONF_INSTALL_DIR="/etc/trinity" \
-DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_VERBOSE_MAKEFILE="ON" \
-DCMAKE_SKIP_RPATH="OFF" \
-DWITH_ALL_OPTIONS="ON"



Requirements:
=============

- OpenSSL


Optional:
=========

- tqca

+ 15
- 12
README View File

@@ -1,16 +1,19 @@
TQCA TLS Plugin v1.0
-------------------
Author: Justin Karneges <justin@affinix.com>
Date: September 15th, 2003

This is a plugin to provide SSL/TLS capability to programs that
utilize the TQt Cryptographic Architecture (TQCA).
tqca-tls - TQCA TLS Plugin

Requirements:
OpenSSL Library (http://www.openssl.org/)

Installation procedure:
./configure
make
su -c "make install"
tqca-tls is a plugin to provide SSL/TLS capability to programs that
use the TQt Cryptographic Architecture (TQCA).



CONTRIBUTING
==============

If you wish to contribute to tqca-tls, you might do so:

- TDE Gitea Workspace (TGW) collaboration tool.
https://mirror.git.trinitydesktop.org/gitea

- TDE Weblate Translation Workspace (TWTW) collaboration tool.
https://mirror.git.trinitydesktop.org/weblate

+ 0
- 598
configure View File

@@ -1,598 +0,0 @@
#!/bin/sh

show_usage() {
cat <<EOT
Usage: ./configure [OPTION]...

This script creates necessary configuration files to build/install.

Main options:
--tqtdir=[path] Directory where TQt is installed.
--help This help text.

Dependency options:
--with-openssl-inc=[path] Path to OpenSSL include files
--with-openssl-lib=[path] Path to OpenSSL library files

EOT
}

while [ $# -gt 0 ]; do
case "$1" in
--tqtdir=*)
TQTDIR=`expr "${1}" : "--tqtdir=\(.*\)"`
shift
;;

--with-openssl-inc=*)
QC_WITH_OPENSSL_INC=`expr "${1}" : "--with-openssl-inc=\(.*\)"`
shift
;;

--with-openssl-lib=*)
QC_WITH_OPENSSL_LIB=`expr "${1}" : "--with-openssl-lib=\(.*\)"`
shift
;;

--debug)
QC_DEBUG="Y"
shift
;;
--help) show_usage; exit ;;
*) show_usage; exit ;;
esac
done


echo "Configuring tqca-tls ..."

if [ "$QC_DEBUG" = "Y" ]; then
echo
echo TQTDIR=$TQTDIR
echo QC_WITH_OPENSSL_INC=$QC_WITH_OPENSSL_INC
echo QC_WITH_OPENSSL_LIB=$QC_WITH_OPENSSL_LIB
echo
fi

printf "Verifying TQt 3.x Multithreaded (MT) build environment ... "

if [ -z "$TQTDIR" ]; then
if [ "$QC_DEBUG" = "Y" ]; then
echo \$TQTDIR not set... trying to find TQt manually
fi
for p in /usr/lib/tqt /usr/share/tqt /usr/share/tqt3 /usr/local/lib/tqt /usr/local/share/tqt /usr/lib/tqt3 /usr/local/lib/tqt3 /usr/lib/qt /usr/share/qt /usr/share/qt3 /usr/local/lib/qt /usr/local/share/qt /usr/lib/qt3 /usr/local/lib/qt3 /usr/lib64/tqt /usr/local/lib64/tqt /usr/lib64/tqt3 /usr/local/lib64/tqt3 /usr/lib64/qt /usr/local/lib64/qt /usr/lib64/qt3 /usr/local/lib64/qt3 /usr/X11R6/share/qt /usr/qt/3 ; do
if [ -d "$p/mkspecs" ]; then
TQTDIR=$p
break;
fi;
done
if [ -z "$TQTDIR" ]; then
echo fail
echo
echo Unable to find TQt 'mkspecs'. Please set TQTDIR
echo manually. Perhaps you need to install TQt 3
echo development utilities. You may download them
echo the repos of your distribution or from
echo https://mirror.git.trinitydesktop.org/gitea/TDE/tqt3/.
echo
exit 1;
fi
fi

if [ ! -x "$TQTDIR/bin/tqmake" ]; then
if [ "$QC_DEBUG" = "Y" ]; then
echo Warning: tqmake not in \$TQTDIR/bin/tqmake
echo trying to find it in \$PATH
fi
qm=`type -p tqmake`
if [ -x "$qm" ]; then
if [ "$QC_DEBUG" = "Y" ]; then
echo tqmake found in $qm
fi
else
echo fail
echo
echo Sorry, you seem to have a very unusual setup,
echo or I missdetected \$TQTDIR=$TQTDIR
echo
echo Please set \$TQTDIR manually and make sure that
echo \$TQTDIR/bin/tqmake exists.
echo
exit 1;
fi
else
qm=$TQTDIR/bin/tqmake
fi

gen_files() {
cat >$1/modules.cpp <<EOT
/*
-----BEGIN QCMOD-----
name: OpenSSL
arg: with-openssl-inc=[path],Path to OpenSSL include files
arg: with-openssl-lib=[path],Path to OpenSSL library files
-----END QCMOD-----
*/
class qc_openssl : public ConfObj
{
public:
qc_openssl(Conf *c) : ConfObj(c) {}
TQString name() const { return "OpenSSL"; }
TQString shortname() const { return "openssl"; }
bool exec()
{
TQString inc, lib;
TQString s;
bool kb = false;
TQString kbdir = "/usr/kerberos/include";

// Redhat 9?
if(TQFileInfo(kbdir).exists())
kb = true;

s = conf->getenv("QC_WITH_OPENSSL_INC");
if(!s.isEmpty()) {
if(!conf->checkHeader(s, "openssl/ssl.h"))
return false;
inc = s;
}
else {
if(!conf->findHeader("openssl/ssl.h", TQStringList(), &s))
return false;
inc = s;
}

s = conf->getenv("QC_WITH_OPENSSL_LIB");
if(!s.isEmpty()) {
if(!conf->checkLibrary(s, "ssl"))
return false;
lib = s;
}
else {
if(!conf->findLibrary("ssl", &s))
return false;
lib = s;
}

// is it at least openssl 0.9.7?
TQString str =
"#include<openssl/opensslv.h>\n"
"int main()\n"
"{\n"
" unsigned long x = OPENSSL_VERSION_NUMBER;\n"
" if(x >= 0x00907000) return 0; else return 1;\n"
"}\n";
TQString ext;
if(!inc.isEmpty())
ext += TQString("-I") + inc + ' ';
if(kb)
ext += TQString("-I") + kbdir + ' ';
if(!lib.isEmpty())
ext += TQString("-L") + lib + " -lssl -lcrypto ";
int ret;
if(!conf->doCompileAndLink(str, ext, &ret))
return false;
if(ret == 0)
conf->addDefine("OSSL_097");

if(!inc.isEmpty())
conf->addIncludePath(inc);
if(kb)
conf->addIncludePath(kbdir);
if(!lib.isEmpty())
conf->addLib(TQString("-L") + s);
conf->addLib("-lssl -lcrypto");

// Make sure tqtinterface can be found
conf->addIncludePath("/usr/include/tqt");

return true;
}
};

EOT
cat >$1/modules_new.cpp <<EOT
o = new qc_openssl(conf);
o->required = true;
o->disabled = false;

EOT
cat >$1/conf.cpp <<EOT
#include<stdio.h>
#include<stdlib.h>
#include<tqstring.h>
#include<tqdict.h>
#include<tqptrlist.h>
#include<tqfileinfo.h>
#include<tqfile.h>
#include<tqdir.h>
#include<tqstringlist.h>

class Conf;

class ConfObj
{
public:
ConfObj(Conf *c);
virtual ~ConfObj();

virtual TQString name() const=0;
virtual TQString shortname() const=0;
virtual bool exec()=0;

Conf *conf;
bool required;
bool disabled;
};

typedef TQPtrList<ConfObj> ConfObjList;
typedef TQPtrListIterator<ConfObj> ConfObjListIt;

class Conf
{
public:
Conf() : vars(17)
{
list.setAutoDelete(true);
vars.setAutoDelete(true);

vars.insert("QMAKE_INCDIR_X11", new TQString(X11_INC));
vars.insert("QMAKE_LIBDIR_X11", new TQString(X11_LIBDIR));
vars.insert("QMAKE_LIBS_X11", new TQString(X11_LIB));
vars.insert("QMAKE_CC", new TQString(CC));
}

~Conf()
{
}

void added(ConfObj *o)
{
list.append(o);
}

TQString getenv(const TQString &var)
{
char *p = ::getenv(var.latin1());
if(!p)
return TQString::null;
return TQString(p);
}

bool exec()
{
ConfObjListIt it(list);
for(ConfObj *o; (o = it.current()); ++it) {
// if this was a disabled-by-default option, check if it was enabled
if(o->disabled) {
TQString v = TQString("QC_ENABLE_") + o->shortname();
if(getenv(v) != "Y")
continue;
}
// and the opposite?
else {
TQString v = TQString("QC_DISABLE_") + o->shortname();
if(getenv(v) == "Y")
continue;
}

printf("Checking for %s ...", o->name().latin1());
fflush(stdout);
bool ok = o->exec();
if(ok)
printf(" yes\n");
else
printf(" no\n");
if(!ok && o->required) {
printf("\nError: need %s!\n", o->name().latin1());
return false;
}
}
return true;
}

const TQString & qvar(const TQString &s)
{
TQString *p = vars.find(s);
if(p)
return *p;
else
return blank;
}

TQString expandIncludes(const TQString &inc)
{
return TQString("-I") + inc;
}

TQString expandLibs(const TQString &lib)
{
return TQString("-L") + lib;
}

int doCommand(const TQString &s)
{
//printf("[%s]\n", s.latin1());
int r = system((s + " 1>/dev/null 2>/dev/null").latin1());
//printf("returned: %d\n", r);
return r;
}

bool doCompileAndLink(const TQString &filedata, const TQString &flags, int *retcode=0)
{
TQDir dir(".");
TQString fname = "atest.c";
TQString out = "atest";
TQFile f(fname);
TQCString cs = filedata.latin1();
if(!f.open(IO_WriteOnly | IO_Truncate))
return false;
f.writeBlock(cs.data(), cs.length());
f.close();

TQString str = qvar("QMAKE_CC") + ' ' + fname + " -o " + out + ' ' + flags;
int r = doCommand(str);
if(r == 0 && retcode)
*retcode = doCommand(TQString("./") + out);
dir.remove(fname);
dir.remove(out);
if(r != 0)
return false;
return true;
}

bool checkHeader(const TQString &path, const TQString &h)
{
TQFileInfo fi(path + '/' + h);
if(fi.exists())
return true;
return false;
}

bool findHeader(const TQString &h, const TQStringList &ext, TQString *inc)
{
if(checkHeader("/usr/include", h)) {
*inc = "";
return true;
}
TQStringList dirs;
dirs += "/usr/local/include";
dirs += ext;
for(TQStringList::ConstIterator it = dirs.begin(); it != dirs.end(); ++it) {
if(checkHeader(*it, h)) {
*inc = *it;
return true;
}
}
return false;
}

bool checkLibrary(const TQString &path, const TQString &name)
{
TQString str =
"int main()\n"
"{\n"
" return 0;\n"
"}\n";

TQString extra;
if(!path.isEmpty())
extra += TQString("-L") + path + ' ';
extra += TQString("-l") + name;
if(!doCompileAndLink(str, extra))
return false;
return true;
}

bool findLibrary(const TQString &name, TQString *lib)
{
if(checkLibrary("", name)) {
*lib = "";
return true;
}
if(checkLibrary("/usr/local/lib", name)) {
*lib = "/usr/local/lib";
return true;
}
if(checkLibrary("/usr/local/lib64", name)) {
*lib = "/usr/local/lib64";
return true;
}
return false;
}

void addDefine(const TQString &str)
{
if(DEFINES.isEmpty())
DEFINES = str;
else
DEFINES += TQString(" ") + str;
}

void addLib(const TQString &str)
{
if(LIBS.isEmpty())
LIBS = str;
else
LIBS += TQString(" ") + str;
}

void addIncludePath(const TQString &str)
{
if(INCLUDEPATH.isEmpty())
INCLUDEPATH = str;
else
INCLUDEPATH += TQString(" ") + str;
}

void addExtra(const TQString &str)
{
extra += str + '\n';
}

TQString DEFINES;
TQString INCLUDEPATH;
TQString LIBS;
TQString extra;

private:
ConfObjList list;
TQDict<TQString> vars;
TQString blank;
};

ConfObj::ConfObj(Conf *c)
{
conf = c;
conf->added(this);
required = false;
disabled = false;
}

ConfObj::~ConfObj()
{
}

#include"modules.cpp"

//----------------------------------------------------------------------------
// main
//----------------------------------------------------------------------------
int main()
{
Conf *conf = new Conf;
ConfObj *o;
o = 0;
#include"modules_new.cpp"

printf("ok\n");
bool success = false;
if(conf->exec()) {
TQFile f("conf.pri");
if(!f.open(IO_WriteOnly | IO_Truncate)) {
printf("Error writing %s\n", f.name().latin1());
return 1;
}

TQString str;
str += "# qconf\n";
str += "QT_PATH_PLUGINS = " + TQString(tqInstallPathPlugins()) + '\n';
if(!conf->DEFINES.isEmpty())
str += "DEFINES += " + conf->DEFINES + '\n';
if(!conf->INCLUDEPATH.isEmpty())
str += "INCLUDEPATH += " + conf->INCLUDEPATH + '\n';
if(!conf->LIBS.isEmpty())
str += "LIBS += " + conf->LIBS + '\n';
if(!conf->extra.isEmpty())
str += conf->extra;
str += '\n';

char *p = getenv("BINDIR");
if(p) {
str += TQString("target.path = ") + p + '\n';
str += "INSTALLS += target\n";
}

TQCString cs = str.latin1();
f.writeBlock(cs.data(), cs.length());
f.close();
success = true;
}
delete conf;

if(success)
return 0;
else
return 1;
}

EOT
cat >$1/conf.pro <<EOT
TEMPLATE = app
CONFIG += qt x11 thread console
TARGET = conf
INCLUDEPATH += '/usr/include/tqt'

DEFINES += X11_INC='"\$\$QMAKE_INCDIR_X11"'
DEFINES += X11_LIBDIR='"\$\$QMAKE_LIBDIR_X11"'
DEFINES += X11_LIB='"\$\$QMAKE_LIBS_X11"'
DEFINES += CC='"\$\$QMAKE_CC"'

SOURCES += conf.cpp

EOT
}

export TQTDIR
export QC_WITH_OPENSSL_INC
export QC_WITH_OPENSSL_LIB
rm -rf .qconftemp
(
mkdir .qconftemp
gen_files .qconftemp
cd .qconftemp
$qm conf.pro >/dev/null
TQTDIR=$TQTDIR make clean >/dev/null 2>&1
TQTDIR=$TQTDIR make >../conf.log 2>&1
)

if [ "$?" != "0" ]; then
rm -rf .qconftemp
echo fail
echo
echo "There was an error compiling 'conf'. Be sure you have a proper"
echo "TQt 3.x Multithreaded (MT) build environment set up."
if [ ! -f "$TQTDIR/lib/libtqt-mt.so.3" ]; then
if [ ! -f "$TQTDIR/lib64/libtqt-mt.so.3" ]; then
echo
echo "One possible reason is that you don't have"
echo "libtqt-mt.so.3 installed in $TQTDIR/lib/"
echo "or $TQTDIR/lib64/."
fi
fi
echo
exit 1;
fi

.qconftemp/conf
ret="$?"
if [ "$ret" = "1" ]; then
rm -rf .qconftemp
echo
exit 1;
else
if [ "$ret" != "0" ]; then
rm -rf .qconftemp
echo fail
echo
echo Unexpected error launching 'conf'
echo
exit 1;
fi
fi
rm -rf .qconftemp

if [ -x "./qcextra" ]; then
./qcextra
fi
# run tqmake
if expr "$DEB_BUILD_OPTIONS" : ".*nostrip"; then
$qm QMAKE_STRIP=true qca-tls.pro
else
$qm qca-tls.pro
fi
if [ "$?" != "0" ]; then
echo
exit 1;
fi
cat >Makefile.tmp <<EOT
export TQTDIR = $TQTDIR
EOT
cat Makefile >> Makefile.tmp
rm -f Makefile
cp -f Makefile.tmp Makefile
rm -f Makefile.tmp

echo
echo Good, your configure finished. Now run \'make\'.
echo

+ 0
- 80
openssl.qcm View File

@@ -1,80 +0,0 @@
/*
-----BEGIN QCMOD-----
name: OpenSSL
arg: with-openssl-inc=[path],Path to OpenSSL include files
arg: with-openssl-lib=[path],Path to OpenSSL library files
-----END QCMOD-----
*/
class qc_openssl : public ConfObj
{
public:
qc_openssl(Conf *c) : ConfObj(c) {}
QString name() const { return "OpenSSL"; }
QString shortname() const { return "openssl"; }
bool exec()
{
QString inc, lib;
QString s;
bool kb = false;
QString kbdir = "/usr/kerberos/include";

// Redhat 9?
if(QFileInfo(kbdir).exists())
kb = true;

s = conf->getenv("QC_WITH_OPENSSL_INC");
if(!s.isEmpty()) {
if(!conf->checkHeader(s, "openssl/ssl.h"))
return false;
inc = s;
}
else {
if(!conf->findHeader("openssl/ssl.h", QStringList(), &s))
return false;
inc = s;
}

s = conf->getenv("QC_WITH_OPENSSL_LIB");
if(!s.isEmpty()) {
if(!conf->checkLibrary(s, "ssl"))
return false;
lib = s;
}
else {
if(!conf->findLibrary("ssl", &s))
return false;
lib = s;
}

// is it at least openssl 0.9.7?
QString str =
"#include<openssl/opensslv.h>\n"
"int main()\n"
"{\n"
" unsigned long x = OPENSSL_VERSION_NUMBER;\n"
" if(x >= 0x00907000) return 0; else return 1;\n"
"}\n";
QString ext;
if(!inc.isEmpty())
ext += QString("-I") + inc + ' ';
if(kb)
ext += QString("-I") + kbdir + ' ';
if(!lib.isEmpty())
ext += QString("-L") + lib + " -lssl -lcrypto ";
int ret;
if(!conf->doCompileAndLink(str, ext, &ret))
return false;
if(ret == 0)
conf->addDefine("OSSL_097");

if(!inc.isEmpty())
conf->addIncludePath(inc);
if(kb)
conf->addIncludePath(kbdir);
if(!lib.isEmpty())
conf->addLib(QString("-L") + s);
conf->addLib("-lssl -lcrypto");

return true;
}
};

+ 0
- 5
prepare View File

@@ -1,5 +0,0 @@
#!/bin/sh

cp ../../src/qca.h .
cp ../../src/qcaprovider.h .


+ 0
- 26
qca-tls.pro View File

@@ -1,26 +0,0 @@
# tqca-tls qmake profile

TEMPLATE = lib
CONFIG += qt thread release plugin
TARGET = tqca-tls

!exists(qcaprovider.h) {
Q_PREFIX = ../../src
INCLUDEPATH += $$Q_PREFIX
}
HEADERS += ($$Q_PREFIX)qcaprovider.h

HEADERS = tqca-tls.h
SOURCES = tqca-tls.cpp

DEFINES += TQCA_PLUGIN
win32:{
DEFINES += TQCA_PLUGIN_DLL OSSL_097
INCLUDEPATH += c:\local\include
LIBS += c:\local\lib\libeay32.lib c:\local\lib\ssleay32.lib
}

include(conf.pri)
include(extra.pri)

QMAKE_PROJECT_DEPTH=0

+ 0
- 9
qca-tls.qc View File

@@ -1,9 +0,0 @@
<qconf>
<name>tqca-tls</name>
<profile>qca-tls.pro</profile>
<noprefix/>
<dep type='openssl'>
<required/>
</dep>
<moddir>.</moddir>
</qconf>

+ 0
- 9
qcextra View File

@@ -1,9 +0,0 @@
#!/bin/sh

cat >extra.pri <<EOT
target.path=\$\$QT_PATH_PLUGINS/crypto
INSTALLS += target

INSTALL_ROOT = $PREFIX

EOT

Loading…
Cancel
Save