1 /*
2 BAREOS® - Backup Archiving REcovery Open Sourced
3
4 Copyright (C) 2019-2019 Bareos GmbH & Co. KG
5
6 This program is Free Software; you can redistribute it and/or
7 modify it under the terms of version three of the GNU Affero General Public
8 License as published by the Free Software Foundation and included
9 in the file LICENSE.
10
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Affero General Public License for more details.
15
16 You should have received a copy of the GNU Affero General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301, USA.
20 */
21 #include <stdio.h>
22 #include "include/host.h"
23 #include "version.h"
24
25 #if !defined BAREOS_VERSION
26 #warning should define BAREOS_VERSION when building version.c
27 #define BAREOS_VERSION "x.y.z"
28 #endif
29
30 #if !defined BAREOS_DATE
31 #warning should define BAREOS_DATE when building version.c
32 #define BAREOS_DATE "unknown date"
33 #endif
34
35 #if !defined BAREOS_SHORT_DATE
36 #warning should define BAREOS_SHORT_DATE when building version.c
37 #define BAREOS_SHORT_DATE "unknown date"
38 #endif
39
40 #if !defined BAREOS_PROG_DATE_TIME
41 #warning should define BAREOS_PROG_DATE_TIME when building version.c
42 #define BAREOS_PROG_DATE_TIME __DATE__ " " __TIME__
43 #endif
44
45 #if !defined BAREOS_YEAR
46 #warning should define BAREOS_YEAR when building version.c
47 #define BAREOS_YEAR "2019"
48 #endif
49
50 #if !defined BAREOS_BINARY_INFO
51 #define BAREOS_BINARY_INFO "self-compiled"
52 #endif
53
54 #if !defined BAREOS_SERVICES_MESSAGE
55 #define BAREOS_SERVICES_MESSAGE \
56 "self-compiled binaries are UNSUPPORTED by bareos.com.\n" \
57 "Get official binaries and vendor support on https://www.bareos.com"
58 #endif
59
60 #if !defined BAREOS_JOBLOG_MESSAGE
61 #define BAREOS_JOBLOG_MESSAGE \
62 "self-compiled: Get official binaries and vendor support on bareos.com"
63 #endif
64
65 #define BAREOS_COPYRIGHT_MESSAGE_WITH_FSF_AND_PLANETS \
66 "\n%s" \
67 "\n" \
68 "Copyright (C) 2013-%s Bareos GmbH & Co. KG\n" \
69 "Copyright (C) %d-2012 Free Software Foundation Europe e.V.\n" \
70 "Copyright (C) 2010-2017 Planets Communications B.V.\n" \
71 "\n" \
72 "Version: %s (%s) %s %s %s\n" \
73 "\n"
74
75
FormatCopyrightWithFsfAndPlanets(char * out,size_t len,int FsfYear)76 static void FormatCopyrightWithFsfAndPlanets(char* out, size_t len, int FsfYear)
77 {
78 snprintf(out, len, BAREOS_COPYRIGHT_MESSAGE_WITH_FSF_AND_PLANETS,
79 kBareosVersionStrings.ServicesMessage, kBareosVersionStrings.Year,
80 FsfYear, kBareosVersionStrings.Full, kBareosVersionStrings.Date,
81 HOST_OS, DISTNAME, DISTVER);
82 }
PrintCopyrightWithFsfAndPlanets(FILE * fh,int FsfYear)83 static void PrintCopyrightWithFsfAndPlanets(FILE* fh, int FsfYear)
84 {
85 fprintf(fh, BAREOS_COPYRIGHT_MESSAGE_WITH_FSF_AND_PLANETS,
86 kBareosVersionStrings.ServicesMessage, kBareosVersionStrings.Year,
87 FsfYear, kBareosVersionStrings.Full, kBareosVersionStrings.Date,
88 HOST_OS, DISTNAME, DISTVER);
89 }
90
91
92 #define BAREOS_COPYRIGHT_MESSAGE \
93 "\n%s" \
94 "\n" \
95 "Copyright (C) %d-%s Bareos GmbH & Co. KG\n" \
96 "\n" \
97 "Version: %s (%s) %s %s %s\n" \
98 "\n"
99
FormatCopyright(char * out,size_t len,int StartYear)100 static void FormatCopyright(char* out, size_t len, int StartYear)
101 {
102 snprintf(out, len, BAREOS_COPYRIGHT_MESSAGE,
103 kBareosVersionStrings.ServicesMessage, StartYear,
104 kBareosVersionStrings.Year, kBareosVersionStrings.Full,
105 kBareosVersionStrings.Date, HOST_OS, DISTNAME, DISTVER);
106 }
PrintCopyright(FILE * fh,int StartYear)107 static void PrintCopyright(FILE* fh, int StartYear)
108 {
109 fprintf(fh, BAREOS_COPYRIGHT_MESSAGE, kBareosVersionStrings.ServicesMessage,
110 StartYear, kBareosVersionStrings.Year, kBareosVersionStrings.Full,
111 kBareosVersionStrings.Date, HOST_OS, DISTNAME, DISTVER);
112 }
113
114 const struct BareosVersionStrings kBareosVersionStrings = {
115 .Full = BAREOS_VERSION,
116 .Date = BAREOS_DATE,
117 .ShortDate = BAREOS_SHORT_DATE,
118 .ProgDateTime = BAREOS_PROG_DATE_TIME,
119 .FullWithDate = BAREOS_VERSION " (" BAREOS_DATE ")",
120 .Year = BAREOS_YEAR,
121 .BinaryInfo = BAREOS_BINARY_INFO,
122 .ServicesMessage = BAREOS_SERVICES_MESSAGE,
123 .JoblogMessage = BAREOS_JOBLOG_MESSAGE,
124 .FormatCopyrightWithFsfAndPlanets = FormatCopyrightWithFsfAndPlanets,
125 .PrintCopyrightWithFsfAndPlanets = PrintCopyrightWithFsfAndPlanets,
126 .FormatCopyright = FormatCopyright,
127 .PrintCopyright = PrintCopyright};
128