From 3f1b0f74c93891dc3841221e386de167f69e3fcd Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Wed, 6 Nov 2013 16:02:17 +0100 Subject: [PATCH] Added git-revision --- Makefile | 7 +++++- src/elog.c | 4 +++ src/elogd.c | 35 ++++++++++++++------------- src/git-revision.h | 1 + xcode/elogd.xcodeproj/project.pbxproj | 14 ++++++++--- 5 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 src/git-revision.h diff --git a/Makefile b/Makefile index ddbf2bfb..88d50712 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,7 @@ CFLAGS += -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-decla CC = gcc IFLAGS = -kr -nut -i3 -l110 EXECS = elog elogd elconv +GIT_REVISION = src/git-revision.h MXMLDIR = ../mxml BINOWNER = bin BINGROUP = bin @@ -98,7 +99,11 @@ ifeq ($(WHOAMI),root) BINFLAGS = -o ${BINOWNER} -g ${BINGROUP} endif -all: $(EXECS) +all: $(EXECS) $(GIT_REVISION) + +# put current GIT revision into header file to be included by programs +$(GIT_REVISION): src/elogd.c + echo \#define GIT_REVISION \"`git log -n 1 --pretty=format:"%ad - %h"`\" > $(GIT_REVISION) regex.o: src/regex.c src/regex.h $(CC) $(CFLAGS) -w -c -o regex.o src/regex.c diff --git a/src/elog.c b/src/elog.c index ca19a248..6f089ad0 100755 --- a/src/elog.c +++ b/src/elog.c @@ -115,6 +115,10 @@ int equal_ustring(char *str1, char *str2) /*---- strlcpy and strlcat to avoid buffer overflow ----------------*/ +#ifdef strlcpy +#define STRLCPY_DEFINED +#endif + #ifndef STRLCPY_DEFINED /* diff --git a/src/elogd.c b/src/elogd.c index 6e70614e..e785278a 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -8,8 +8,9 @@ \********************************************************************/ #include "elogd.h" +#include "git-revision.h" -char svn_revision[] = "$Id$"; +const char *git_revision = GIT_REVISION; BOOL running_as_daemon; /* Running as a daemon/service? */ int elog_tcp_port; /* Server's TCP port */ @@ -6940,7 +6941,7 @@ void redirect(LOGBOOK * lbs, char *rel_path) { /* redirect */ rsprintf("HTTP/1.1 302 Found\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); if (keep_alive) { rsprintf("Connection: Keep-Alive\r\n"); rsprintf("Keep-Alive: timeout=60, max=10\r\n"); @@ -7176,7 +7177,7 @@ void show_http_header(LOGBOOK * lbs, BOOL expires, char *cookie) char str[256]; rsprintf("HTTP/1.1 200 Document follows\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); if (getcfg("global", "charset", str, sizeof(str))) rsprintf("Content-Type: text/html;charset=%s\r\n", str); @@ -7203,7 +7204,7 @@ void show_plain_header(int size, char *file_name) { /* header */ rsprintf("HTTP/1.1 200 Document follows\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); rsprintf("Accept-Ranges: bytes\r\n"); if (keep_alive) { @@ -7878,8 +7879,8 @@ void show_bottom_text(LOGBOOK * lbs) } else /* add little logo */ rsprintf - ("
ELOG V%s-%d
", - loc("Goto ELOG home page"), VERSION, atoi(svn_revision + 13)); + ("
ELOG V%s-%s
", + loc("Goto ELOG home page"), VERSION, git_revision + 33); } /*------------------------------------------------------------------*/ @@ -7932,8 +7933,8 @@ void show_bottom_text_login(LOGBOOK * lbs) } else /* add little logo */ rsprintf - ("
ELOG V%s-%d
", - loc("Goto ELOG home page"), VERSION, atoi(svn_revision + 13)); + ("
ELOG V%s-%s
", + loc("Goto ELOG home page"), VERSION, git_revision + 33); } /*------------------------------------------------------------------*/ @@ -7944,7 +7945,7 @@ void show_error(char *error) /* header */ rsprintf("HTTP/1.1 404 Not Found\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); if (getcfg("global", "charset", str, sizeof(str))) rsprintf("Content-Type: text/html;charset=%s\r\n", str); else @@ -8012,7 +8013,7 @@ void set_sid_cookie(LOGBOOK * lbs, char *sid, char *full_name) BOOL global; rsprintf("HTTP/1.1 302 Found\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); if (keep_alive) { rsprintf("Connection: Keep-Alive\r\n"); rsprintf("Keep-Alive: timeout=60, max=10\r\n"); @@ -8056,7 +8057,7 @@ void remove_all_login_cookies(LOGBOOK * lbs) int i; rsprintf("HTTP/1.1 302 Found\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); if (keep_alive) { rsprintf("Connection: Keep-Alive\r\n"); rsprintf("Keep-Alive: timeout=60, max=10\r\n"); @@ -8102,7 +8103,7 @@ void send_file_direct(char *file_name) lseek(fh, 0, SEEK_SET); rsprintf("HTTP/1.1 200 Document follows\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); rsprintf("Accept-Ranges: bytes\r\n"); /* set expiration time to one day if no thumbnail */ @@ -8445,7 +8446,7 @@ int build_subst_list(LOGBOOK * lbs, char list[][NAME_LENGTH], char value[][NAME_ strcpy(value[i++], VERSION); strcpy(list[i], "revision"); - sprintf(value[i++], "%d", atoi(svn_revision + 13)); + sprintf(value[i++], "%s", git_revision + 33); return i; } @@ -14983,7 +14984,7 @@ int show_md5_page(LOGBOOK * lbs) /* header */ rsprintf("HTTP/1.1 200 Document follows\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); rsprintf("Accept-Ranges: bytes\r\n"); rsprintf("Connection: close\r\n"); rsprintf("Content-Type: text/plain;charset=%s\r\n", DEFAULT_HTTP_CHARSET); @@ -19085,7 +19086,7 @@ void show_rss_feed(LOGBOOK * lbs) struct tm *ts; rsprintf("HTTP/1.1 200 Document follows\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); if (!getcfg("global", "charset", charset, sizeof(charset))) strcpy(charset, DEFAULT_HTTP_CHARSET); @@ -28688,7 +28689,7 @@ void server_loop(void) /* about to entering the server loop, welcome user with a brief info */ eprintf("%s ", ELOGID); - strcpy(str, svn_revision + 13); + strcpy(str, git_revision + 33); if (strchr(str, ' ')) *strchr(str, ' ') = 0; eprintf("revision %s\n", str); @@ -29143,7 +29144,7 @@ void server_loop(void) } else if (strstr(net_buffer, "HEAD") != NULL) { /* just return header */ rsprintf("HTTP/1.1 200 OK\r\n"); - rsprintf("Server: ELOG HTTP %s-%d\r\n", VERSION, atoi(svn_revision + 13)); + rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33); rsprintf("Connection: close\r\n"); rsprintf("Content-Type: text/html\r\n\r\n"); keep_alive = FALSE; diff --git a/src/git-revision.h b/src/git-revision.h new file mode 100644 index 00000000..f580d305 --- /dev/null +++ b/src/git-revision.h @@ -0,0 +1 @@ +#define GIT_REVISION "Wed Sep 25 14:25:38 2013 +0200 - bac715d" diff --git a/xcode/elogd.xcodeproj/project.pbxproj b/xcode/elogd.xcodeproj/project.pbxproj index 53808747..5fdf0f3b 100644 --- a/xcode/elogd.xcodeproj/project.pbxproj +++ b/xcode/elogd.xcodeproj/project.pbxproj @@ -134,7 +134,7 @@ D52BA2F113999DB0000458E3 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0460; + LastUpgradeCheck = 0500; ORGANIZATIONNAME = PSI; }; buildConfigurationList = D52BA2F413999DB0000458E3 /* Build configuration list for PBXProject "elogd" */; @@ -174,8 +174,9 @@ D52BA30113999DB0000458E3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -185,8 +186,11 @@ GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; ONLY_ACTIVE_ARCH = YES; @@ -197,16 +201,20 @@ D52BA30213999DB0000458E3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; SDKROOT = macosx;