[SourceForge.net Logo]

Meqaris -

[SourceForge] [Sonar Cloud]

Contents:


Description

Meqaris (Meeting Equipment and Room Invitation System) is a system that allows booking resources using e-mail invitations.

Meqaris allows you to:

Meqaris is NOT:

Meqaris is a program that an e-mail server calls and the user interacts with by sending e-mails.

The most up-to-date documentation can be found in the package itself, a generated copy is available here, in the docs directory.
You can also read the Meqaris wiki.

Features:

Features not currently supported (usually ignored, these don't need to always generate an error):


Meqaris GUI

Meqaris also has a new GUI written in Java, available for download together with the program itself, at SourceForge Meqaris UI downloads.


Screenshots of Meqaris

Screenshots are available on the SourceForge project page.


Download Meqaris

Current version is 2.0.
Current GUI version is 1.2.
[Codacy]
[CodeQL] [Semgrep] [PMD]
[Sonar security rating] [Sonar vulnerabilities] [Sonar bugs]
Download these at SourceForge.

Download Meqaris

[Feed] Meqaris release file feed


Installing the software

The most up-to-date documentation can be found in the package itself, a generated copy is available here, in the docs directory.
You can also read the Meqaris wiki.

Initial steps - most are one-time

  1. Install Perl, along with the following modules (available from CPAN / metacpan):

    with all their dependencies (the list may include but not be limited to: Module::Install, Test::NoWarnings, Test::LongString, Class::Accessor, DateTime, DateTime::TimeZone, Moo, Set::Infinite, Test::Requires, Class::Accessor-Chained, Class::ReturnValue, DateTime::Event::ICal, DateTime::Event::Recurrence, Params::Validate, Text::vFile::asData).

    Actual mail sending requires the Net::SMTP and Net::Domain Perl modules,

  2. A PostgreSQL database server, version 9.2 or newer, must be running.
    On a Linux system, you would do one of:
  3. A mail (SMTP) server must be running.
    On a Linux system with Postfix, you would do one of (as root):
    	systemctl start postfix
    	service postfix start
  4. A database user must be created within the database server.
    With PostgreSQL, you would login to the system as the database user postgres and run:
    	createuser -P meqaris
    It's advised for the user to be the owner of the database that will be created.
    It's easiest to create a user with the same name as the system user name and create the database as the system user.

  5. A logical database must be created within the database server.
    With PostgreSQL, you would login to the system as the database user postgres and run:
    	createdb -O meqaris meqaris
    (for the specified user to be the database owner)
  6. NOTE for older database versions
    On PostgreSQL versions older than 13.0, you may need to perform one additional step before running Meqaris - install the btree_gist extension manually in the Meqaris database you've just created. Meqaris cannot do this, because only the database superuser (usually postgres) is allowed to do it. Substitute the hostname and port number where necessary and run this command to install the extension:
    	psql -U postgres -h hostname -p port_number -d meqaris -c 'create extension if not exists btree_gist;'
  7. Database access rules must be created within the database server unless you wish to leave the default rules.
    With PostgreSQL, you would do (as the database user postgres or root):
    	cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf-backup
    	echo local meqaris meqaris scram-sha-256 >> /var/lib/pgsql/data/pg_hba.conf
    	echo host all all 127.0.0.1/32 scram-sha-256 >> /var/lib/pgsql/data/pg_hba.conf
    (Note the double ">>" - it's CRUCIAL to use double ">>", a single ">" would OVERWRITE the target file).
    With older PostgreSQL versions, replace scram-sha-256 with md5.
    If you'll need to access the database from another computer:
  8. After changing the access rules for the database server, restart it.
    With Linux with PostgreSQL, you would do one of:

Installation

  1. Choose 4 paths:
  2. Copy bin/meqaris to BINDIR
  3. Edit config/meqaris.ini to match your directories and database settings (see below)
  4. Edit config/meqaris-log4perl.cfg and choose your log file's location
  5. Copy the whole sql directory and the config/meqaris-log4perl.cfg file to DATADIR.
  6. Copy config/meqaris.ini to CONFDIR
  7. Copy config/meqaris.logrotate to a directory expected to contain logrotate configuration files (like CONFDIR/logrotate.d)
  8. Copy the manual to a place suitable for documentation, like /usr/share/doc

Alternatively, if you have the make program and some common Linux utilities, you can run make install, passing the target directories. Examples:

	make install BINDIR=/usr/bin CONFDIR=/etc DATADIR=/var/lib DOCDIR=/usr/share/doc MANDIR=/usr/share/man
	make install BINDIR=$HOME/tools/meqaris/bin \
		CONFDIR=$HOME/tools/meqaris/etc \
		DATADIR=$HOME/tools/meqaris/data \
		DOCDIR=$HOME/tools/meqaris/doc \
		MANDIR=$HOME/tools/meqaris/man

All the above directories and their parent directories must be reachable by your mail server.

The log file (/var/log/meqaris.log by default) must be created writeable for your mail server. Alternatively, the directory which would contain it must be writeable by your mail server.

The necessary database structures will be automatically created by the application itself while operating, but to avoid concurrent database upgrades (all of which except one would fail), it is recommended to run the database installation/upgrade scripts manually by calling

	meqaris --upgrade-db

Meqaris configuration

The most up-to-date documentation can be found in the package itself, a generated copy is available here, in the docs directory.
You can also read the Meqaris wiki.

You need to edit the meqaris.ini file to set the proper values for database access in the [postgresql] section and your chosen application data files' directory in the [meqaris] section under:

	[meqaris]
	dbtype=postgresql
	datadir=/path/to/meqaris/data
	log4perl_config_location=/path/to/meqaris/data/meqaris-log4perl.cfg
	lock_dir=/var/lock

	[postgresql]
	username=meqaris
	password=meqaris-pass
	dbname=meqaris
	host=127.0.0.1
	port=5432
	connect_timeout=30

Make sure that the datadir directory, the log4perl_config_location file and the actual log file have the right permission so that Meqaris, which will run under the mail server's privileges, has the right access to all of those locations.

Mail server configuration

Consult your mail server manual about how to make it send e-mails addressed to your resources (rooms, etc.) to the Meqaris script and how to accept the replies.

For Postfix, you can edit the /etc/postfix/aliases file and add the right command there. It must being with the "pipe" symbol - "|" - so that the Meqaris script receives the mail on the so-called "standard input".

Assuming you want a "room 1" alias and everything is installed in the default paths, the simplest entry in the /etc/postfix/aliases file could be:

	room1: |"meqaris"

Assuming you want a "room 1" alias and everything is installed NOT in the default paths, the most complicated entry in the /etc/postfix/aliases file could be:

	room1: |"SMTPHOSTS=smtp-host-name /path/to/perl -I /path/to/perl/modules /path/to/meqaris --conf /path/to/meqaris.ini"

By using just the cat command as the output instead of sending e-mails (see the Manual for administrators in the documentation), you can pipe the reply from Meqaris to other commands, including the mail server's own commands and since you know e.g. the alias which is being processed, you can add it to the other command's options, like so:

	room1: |"meqaris"| some-other-command "room1"

Meqaris itself can also pipe the reply to another program when you set the mail_command and mail_sending_method parameters. Read the Administrator's manual in the documentation for more details.

For a password-less, local-only mail submission, add this to your /etc/postfix/main.cf file:

	inet_interfaces = localhost
	inet_protocols = all
	mynetworks_style = host
	smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
	smtp_sasl_auth_enable = no
	smtp_tls_security_level =
	smtpd_sasl_auth_enable = no
	smtpd_tls_security_level = 

Restart the Postfix server (or reload its configuration) afterwards.


Compatibility

Various versions of Meqaris have successfully been used with the following components in the following versions:

  1. PostgreSQL:
  2. Perl:
  3. Postfix:
  4. Cyrus IMAP (CalDAV module):

Other versions may also work.


Reporting issues

Any defects or issues can be reported by e-mail or in the SourceForge project defect manager (in English).

Any improvement suggestions can be reported by e-mail or in the SourceForge project ticket manager (in English).

To report usage problems, include:

  1. the Meqaris version you're using, e.g. Meqaris 2.0,
  2. the PostgreSQL version you're using, e.g. PostgreSQL 14.1,
  3. the Perl version you're using, e.g. the output of perl --version:
    	This is perl 5, version 34, subversion 0 (v5.34.0) built for x86_64-linux-thread-multi
  4. a description of the problem that the software causes,
  5. any error messages that are displayed or written to the log file (set the log level to TRACE, if possible),
  6. precise steps for reproducing the error, if possible. This will make finding the problem easier,
  7. the anonymized (all names and e-mail addresses changed to fakes) iCalendar attachment (if it may have caused the problem),
  8. any other information that you think could lead to solving the problem.

-- Help in victory, play a game, send regards, or at least stop using some products


My projects on SourceForge

The always-up-to-date list of my SourceForge projects is on my profile page on SourceForge.


My other software


See my other free software:
  1. Certificate and key generators
  2. E-mail address verifiers
  3. LastMod - a script that inserts or updates a META element with the Last-Modified HTTP header
  4. Atom2Rss - a script that converts an Atom (RFC 4287) channel XML file to an RSS 2.0 XML file
  5. List2Atom - a script that generates an Atom (RFC 4287) channel XML file from a list of files
  6. InSyTrack - telemetry software to track program flow (calls) across libraries, threads, programming languages or even different systems on different machines
See also my assembly-related free software:
  1. Kate/KWrite syntax highlighting for NASM/fasm



Contact information

[mail] Contact me: bogdro AT users . sourceforge . net (English accepted, just say '[SOFT]' in the title).

Keys for the bogdro aliases

[certificate] The public certificate for the e-mail: crt format, cer format, pem format, p7b format, p7c format
Certificate's RIPEMD160 fingerprint: 99:4E:9C:0F:D9:1B:F8:D2:F2:AE:E5:18:9F:3B:5C:61:E6:6C:B4:A8
Certificate's SHA256 fingerprint: 26:22:FE:0F:D7:3A:DE:0A:60:4A:99:29:CB:66:3D:DF:10:45:8B:B6:EC:3E:04:31:DA:67:A5:6E:C4:70:30:B9

[certificate] The public certificate for bogdro-soft: crt format, cer format, pem format, p7b format, p7c format
Certificate's RIPEMD160 fingerprint: 01:A7:57:30:52:EB:F6:58:70:AC:EF:DF:C9:74:50:B1:B3:40:BD:47
Certificate's SHA256 fingerprint: D2:B3:73:22:C0:10:DB:62:3F:DB:1D:FC:EC:44:5C:48:21:0C:C5:9B:E1:7D:E3:63:26:CB:3A:B5:94:45:8C:A5

[certificate] The public certificate for bogdro-perl: crt format, cer format, pem format, p7b format, p7c format
Certificate's RIPEMD160 fingerprint: BF:66:A2:24:6C:87:55:53:90:2C:2B:A5:62:26:D8:11:93:AC:41:98
Certificate's SHA256 fingerprint: 45:C6:17:13:CD:19:FF:39:6C:8D:EC:02:86:5E:E5:90:B5:0B:B6:3F:86:68:E2:7F:60:B7:19:FF:7D:B4:0D:24

[certificate] Issuer's certificate: der format
Issuer's certificate's RIPEMD160 fingerprint: D8:F4:50:F0:8F:79:25:CC:65:20:C9:8D:70:1F:63:14:22:B0:12:24
Issuer's certificate's SHA256 fingerprint: 5E:B4:48:78:F7:58:C6:94:D9:C8:04:B2:42:63:24:9F:5F:03:D0:22:E1:C6:55:18:3E:21:D8:4B:F0:7E:7F:11

[keys] The public GnuPG / PGP keys:
Bogdro-sf e-mail, asc format, key number 476249B50EE1F2E59C4005AF67FFC0790E2D6D3C. A verified version is available at PGP® Global Directory entry for bogdro-sf
Bogdro-soft, asc format, key number 7E05C1468119E8C32B69F72E11B90C14CAE8F72A. A verified version is available at PGP® Global Directory entry for bogdro-soft
Bogdro-perl, asc format, key number A17EBF519B8D55F43472997BFCDBA236678656EA. A verified version is available at PGP® Global Directory entry for bogdro-perl

PGP® and Pretty Good Privacy® are registered trademarks of Symantec Corporation in the United States and other countries.

[certificate] The certificate of the timestamping server which confirms the signature time, can be found on freeTSA.org.


Page information

This page is hosted at SourceForge.net.
This page is written using valid HTML 4.01 [Check my HTML 4.01], [Checked by HTML Validator (based on HTML Tidy)], for all browsers: [For all browsers]

This page uses a valid CSS [Check my CSS]

This page has a content security policy.

This page doesn't use GIF images and doesn't use JPG images.

This page is pure HTML and CSS.

The project icon was created using Inkscape™.


Legal information

LINUX® is a registered trademark of Linus Torvalds.

Postgres® and PostgreSQL® and the Elephant Logo (Slonik) are all registered trademarks of the PostgreSQL Community Association of Canada.

Oracle®, Java, and MySQL are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

All other trademarks, logos and names on this page and all subpages are properties of their respective owners and are given here only as an example.