Skip to content

Commit

Permalink
Makefile: Add new target devel and remove nonroot
Browse files Browse the repository at this point in the history
using devel will:
    * define MXQ_DEVELOPMENT
    * change MXQ_MYSQL_DEFAULT_GROUP to mxqdevel for servers and clients
    * add warning to --help and to the mxqd logfile
    * change the default for --no-log to true in mxqd
  • Loading branch information
mariux committed Oct 24, 2015
1 parent 6f75345 commit dbc742d
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 13 deletions.
15 changes: 10 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,17 @@ CGIDIR = ${LIBEXECDIR}/mxq/cgi
########################################################################

MXQ_MYSQL_DEFAULT_FILE = ${SYSCONFDIR}/mxq/mysql.cnf
MXQ_MYSQL_DEFAULT_GROUP = mxqclient
MXQ_MYSQL_DEFAULT_GROUP_CLIENT = mxqclient
MXQ_MYSQL_DEFAULT_GROUP_SERVER = mxqd
MXQ_MYSQL_DEFAULT_GROUP_DEVELOPMENT = mxqdevel

MXQ_INITIAL_PATH = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
MXQ_INITIAL_TMPDIR = /tmp

CFLAGS_MXQ_MYSQL_DEFAULT_FILE = -DMXQ_MYSQL_DEFAULT_FILE=\"$(MXQ_MYSQL_DEFAULT_FILE)\"
CFLAGS_MXQ_MYSQL_DEFAULT_GROUP = -DMXQ_MYSQL_DEFAULT_GROUP=\"$(MXQ_MYSQL_DEFAULT_GROUP)\"
CFLAGS_MXQ_MYSQL_DEFAULT_GROUP = -DMXQ_MYSQL_DEFAULT_GROUP_CLIENT=\"$(MXQ_MYSQL_DEFAULT_GROUP_CLIENT)\"
CFLAGS_MXQ_MYSQL_DEFAULT_GROUP += -DMXQ_MYSQL_DEFAULT_GROUP_SERVER=\"$(MXQ_MYSQL_DEFAULT_GROUP_SERVER)\"
CFLAGS_MXQ_MYSQL_DEFAULT_GROUP += -DMXQ_MYSQL_DEFAULT_GROUP_DEVELOPMENT=\"$(MXQ_MYSQL_DEFAULT_GROUP_DEVELOPMENT)\"
CFLAGS_MXQ_INITIAL_PATH = -DMXQ_INITIAL_PATH=\"$(MXQ_INITIAL_PATH)\"
CFLAGS_MXQ_INITIAL_TMPDIR = -DMXQ_INITIAL_TMPDIR=\"$(MXQ_INITIAL_TMPDIR)\"

Expand Down Expand Up @@ -184,9 +188,10 @@ manpages/%: manpages/%.xml

all: build

.PHONY: nonroot
nonroot: CFLAGS += -DRUNASNORMALUSER
nonroot: all
.PHONY: devel
devel: CFLAGS += -DRUNASNORMALUSER
devel: CFLAGS += -DMXQ_DEVELOPMENT
devel: all

########################################################################

Expand Down
21 changes: 19 additions & 2 deletions mxq.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,32 @@
# define MXQ_MYSQL_DEFAULT_FILE_STR MXQ_MYSQL_DEFAULT_FILE
#endif

#ifndef MXQ_MYSQL_DEFAULT_GROUP
# define MXQ_MYSQL_DEFAULT_GROUP program_invocation_short_name
#ifdef MXQ_DEVELOPMENT
# undef MXQ_MYSQL_DEFAULT_GROUP
# define MXQ_MYSQL_DEFAULT_GROUP MXQ_MYSQL_DEFAULT_GROUP_DEVELOPMENT
#else
# ifdef MXQ_TYPE_SERVER
# ifdef MXQ_MYSQL_DEFAULT_GROUP_SERVER
# define MXQ_MYSQL_DEFAULT_GROUP MXQ_MYSQL_DEFAULT_GROUP_SERVER
# endif
# else
# ifdef MXQ_MYSQL_DEFAULT_GROUP_CLIENT
# define MXQ_MYSQL_DEFAULT_GROUP MXQ_MYSQL_DEFAULT_GROUP_CLIENT
# endif
# endif
# ifndef MXQ_MYSQL_DEFAULT_GROUP
# define MXQ_MYSQL_DEFAULT_GROUP program_invocation_short_name
# endif
#endif
#define MXQ_MYSQL_DEFAULT_GROUP_STR MXQ_MYSQL_DEFAULT_GROUP

static void mxq_print_generic_version(void)
{
printf(
"%s - " MXQ_VERSIONFULL "\n"
#ifdef MXQ_DEVELOPMENT
"DEVELOPMENT VERSION: Do not use in production environments.\n"
#endif
" by Marius Tolzmann <tolzmann@molgen.mpg.de> " MXQ_VERSIONDATE "\n"
" Max Planck Institute for Molecular Genetics - Berlin Dahlem\n",
program_invocation_short_name
Expand Down
23 changes: 17 additions & 6 deletions mxqd.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

#define _GNU_SOURCE

#define MXQ_TYPE_SERVER

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
Expand Down Expand Up @@ -37,9 +39,6 @@
#include "mxqd.h"
#include "mxq.h"

#define MYSQL_DEFAULT_FILE MXQ_MYSQL_DEFAULT_FILE
#define MYSQL_DEFAULT_GROUP "mxqd"

#ifndef MXQ_INITIAL_PATH
# define MXQ_INITIAL_PATH "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
#endif
Expand Down Expand Up @@ -71,7 +70,11 @@ static void print_usage(void)
"\n"
" --pid-file <pidfile> default: create no pid file\n"
" --daemonize default: run in foreground\n"
#ifdef MXQ_DEVELOPMENT
" --log default (in development): write no logfile\n"
#else
" --no-log default: write a logfile\n"
#endif
" --debug default: info log level\n"
" --recover-only (recover from crash and exit)\n"
"\n"
Expand Down Expand Up @@ -289,6 +292,7 @@ int server_init(struct mxq_server *server, int argc, char *argv[])
MX_OPTION_NO_ARG("version", 'V'),
MX_OPTION_NO_ARG("daemonize", 1),
MX_OPTION_NO_ARG("no-log", 3),
MX_OPTION_NO_ARG("log", 4),
MX_OPTION_NO_ARG("debug", 5),
MX_OPTION_NO_ARG("recover-only", 9),
MX_OPTION_REQUIRED_ARG("pid-file", 2),
Expand All @@ -312,11 +316,11 @@ int server_init(struct mxq_server *server, int argc, char *argv[])

arg_mysql_default_group = getenv("MXQ_MYSQL_DEFAULT_GROUP");
if (!arg_mysql_default_group)
arg_mysql_default_group = MYSQL_DEFAULT_GROUP;
arg_mysql_default_group = MXQ_MYSQL_DEFAULT_GROUP;

arg_mysql_default_file = getenv("MXQ_MYSQL_DEFAULT_FILE");
if (!arg_mysql_default_file)
arg_mysql_default_file = MYSQL_DEFAULT_FILE;
arg_mysql_default_file = MXQ_MYSQL_DEFAULT_FILE;

mx_getopt_init(&optctl, argc-1, &argv[1], opts);

Expand All @@ -340,6 +344,10 @@ int server_init(struct mxq_server *server, int argc, char *argv[])
arg_nolog = 1;
break;

case 4:
arg_nolog = 0;
break;

case 5:
mx_log_level_set(MX_LOG_DEBUG);
break;
Expand Down Expand Up @@ -486,7 +494,7 @@ int server_init(struct mxq_server *server, int argc, char *argv[])
}

if (getuid()) {
#ifdef RUNASNORMALUSER
#if defined(MXQ_DEVELOPMENT) || defined(RUNASNORMALUSER)
mx_log_notice("Running mxqd as non-root user.");
#else
mx_log_err("Running mxqd as non-root user is not supported at the moment.");
Expand Down Expand Up @@ -1815,6 +1823,9 @@ int main(int argc, char *argv[])
mx_log_info("mxqd - " MXQ_VERSIONFULL);
mx_log_info(" by Marius Tolzmann <tolzmann@molgen.mpg.de> " MXQ_VERSIONDATE);
mx_log_info(" Max Planck Institute for Molecular Genetics - Berlin Dahlem");
#ifdef MXQ_DEVELOPMENT
mx_log_warning("DEVELOPMENT VERSION: Do not use in production environments.\n");
#endif
mx_log_info("hostname=%s server_id=%s :: MXQ server started.", server.hostname, server.server_id);
mx_log_info(" host_id=%s", server.host_id);
mx_log_info("slots=%lu memory_total=%lu memory_avg_per_slot=%.0Lf memory_max_per_slot=%ld :: server initialized.",
Expand Down

0 comments on commit dbc742d

Please sign in to comment.