-
Notifications
You must be signed in to change notification settings - Fork 6
/
safekeep.spec.in
284 lines (239 loc) · 11.3 KB
/
safekeep.spec.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
%define name safekeep
%define version TBD
%define release 1
%define homedir %{_localstatedir}/lib/%{name}
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
Summary: The SafeKeep backup system
Group: Applications/System
License: GPLv2+
URL: http://%{name}.sourceforge.net
Source0: https://github.com/dimipaun/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: xmlto, asciidoc > 6.0.3
%description
SafeKeep is a client/server backup system which enhances the
power of rdiff-backup with simple, centralized configuration.
%package common
Summary: The SafeKeep backup system (common component)
Group: Applications/System
Requires: rdiff-backup
Requires: python3 >= 3.4
%description common
SafeKeep is a client/server backup system which enhances the
power of rdiff-backup with simple, centralized configuration.
This is the common component of SafeKeep. It is shared in
between the client/server components.
%package client
Summary: The SafeKeep backup system (client component)
Group: Applications/System
Requires: openssh-server
Requires: coreutils
Requires: util-linux
Requires: %{name}-common = %{version}-%{release}
%description client
SafeKeep is a client/server backup system which enhances the
power of rdiff-backup with simple, centralized configuration.
This is the client component of SafeKeep. It should be
installed on all hosts that need to be backed-up.
%package server
Summary: The SafeKeep backup system (server component)
Group: Applications/System
Requires(pre): %{_sbindir}/useradd
Requires(pre): %{_sbindir}/groupadd
Requires: openssh, openssh-clients
Requires: %{name}-common = %{version}-%{release}
%description server
SafeKeep is a client/server backup system which enhances the
power of rdiff-backup with simple, centralized configuration.
This is the server component of SafeKeep. It should be
installed on the server on which the data will be backed-up to.
%prep
%setup -q
%build
make %{?_smp_mflags} build
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
install -d -m 750 "%{buildroot}%{homedir}"
install -d -m 700 "%{buildroot}%{homedir}/.ssh"
%clean
rm -rf "%{buildroot}"
%pre server
%{_sbindir}/groupadd -f -r %{name}
id %{name} >/dev/null 2>&1 || \
%{_sbindir}/useradd -r -g %{name} -d %{homedir} -s /sbin/nologin \
-c "Used by %{name} to run and store backups." %{name}
%files common
%defattr(-,root,root,-)
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1*
%doc AUTHORS COPYING LICENSE README INSTALL TODO samples/client-script-sample.sh
%files client
%defattr(-,root,root,-)
%files server
%defattr(-,root,root,-)
%attr(750,%{name},%{name}) %dir %{homedir}
%attr(700,%{name},%{name}) %dir %{homedir}/.ssh
%dir %{_sysconfdir}/%{name}
%dir %{_sysconfdir}/%{name}/backup.d
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%{_sysconfdir}/cron.daily/%{name}
%{_mandir}/man5/%{name}.conf.5*
%{_mandir}/man5/%{name}.backup.5*
%doc samples/sample.backup
%changelog
* Sun Nov 15 2020 Frank Crawford <frank@crawford.emu.id.au> 1.5.1-1
- Add configuration options to handle different versions of rdiff-backup.
- Allow specifications of a tempdir.
- Minor bugfixes.
* Sat Feb 23 2019 Frank Crawford <frank@crawford.emu.id.au> 1.5.0-1
- Updated for Python 3
* Sun Feb 10 2019 Frank Crawford <frank@crawford.emu.id.au> 1.4.5-1
- Make ssh StrictHostKeyChecking configurable in safekeep.conf with
'ask' as default if not configured.
- Add make-target debsrc again
- Fix compatibility issue with Python 2.4
* Sat Jul 9 2016 Frank Crawford <frank@crawford.emu.id.au> 1.4.4-1
- Fix error with key deployment.
- Cleanup up some minor issues in the build and deployment process.
* Sun Jun 19 2016 Frank Crawford <frank@crawford.emu.id.au> 1.4.3-1
- See Changelog for full details.
- Optionally remove CREATE DATABASE statement in dumps.
- Attempt normal lvremove before invoking dmsetup for cleanup.
- Added locking on the server to stop overlapping runs.
- Added configuration option to specify ssh-keygen settings.
- Support for SSH ed25519 keys, switch default key type to RSA.
- Added server side startup hook support.
- Sort entries based on IDs.
* Sun Jun 2 2013 Frank Crawford <frank@crawford.emu.id.au> 1.4.2-1
- Report setup errors in summary reports.
- Added a flag to disable a backup configuration file.
- Added new targets for building Debian source packages.
- A number of bug fixes for Python compatibility and other errors.
* Sat Jan 19 2013 Frank Crawford <frank@crawford.emu.id.au> 1.4.1-1
- A major rework of LVM snapshot handling.
- Generate MIME emails with summary reports.
- Better handling of PostgreSQL passwords.
- Added ability to use LVM snapshots with XFS filesystems.
- Allow use of ~/.safekeep for non-root users.
- Allow default and automatic snapshot sizes.
* Sun Feb 12 2012 Frank Crawford <frank@crawford.emu.id.au> 1.4.0-1
- Add the ability to store script files on either client or server.
- Rewritten snapshot creation to remove use of "rbind".
- Automatic cleanup on next run after an abort.
- Support of LVM tagging for snapshots.
- Better handling of messages and tracebacks.
- A number of other code cleanups and bug fixes.
- Updated minimum Python support to Python 2.3.
* Sun Nov 20 2011 Frank Crawford <frank@crawford.emu.id.au> 1.3.3-1
- More fixes for dealing with LVM snapshots.
- Better handling of other failure conditions.
- Updates for Python syntax issues and changes.
- Allow specification of a sender address in e-mail messages.
- Better handling of ionice(1).
* Sun Mar 6 2011 Dimi Paun <dimi@lattica.com> 1.3.2-1
- Fixed some issued introduced by the new subprocess wrappers.
- Always return multi-line output from subprocesses as an array of strings.
- Better source-based installation and documentation.
- Add explanation of the packaging structure.
- Source, documentation, and packaging cleanups.
* Mon Nov 22 2010 Dimi Paun <dimi@lattica.com> 1.3.1-1
- Fix a few serios errors preventing safekeep from running.
- Better reporting of client messages and exceptions.
* Sun Nov 21 2010 Dimi Paun <dimi@lattica.com> 1.3.0-1
- Add ionice(1) support for limiting IO on server side.
- Allow control of nice value on both server and client
- Fix password handling when dumping MySQL databases.
- Fix MySQL dumps when passing a username (for newer versions).
- Handle correctly Unicode strings, such as localized DB names.
- Fix a bug when dumping a specific Postgresql database.
- Prepare the code for newer Python versions
- Try to remove a snapshot up to 10 times in a row to workaround
silly udev bug: https://bugzilla.redhat.com/show_bug.cgi?id=577798
- Multiple internal cleanups, and minor bugs fixes.
* Thu Apr 30 2009 Dimi Paun <dimi@lattica.com> 1.2.1-1
- Fix error while trying to nice the server
* Mon Mar 30 2009 Dimi Paun <dimi@lattica.com> 1.2.0-1
- Rework the handling of device files, fifos and sockets as data attributes.
- Now special files are by default included, unless explicitely excluded.
- A bunch of spelling fixes sprinkled throughout.
- Move the samples to a separate directory
- Add a few trigger points where external scripts can be executed
- Less verbosity from external helpers when invoked with -v
- Avoid errors when dealing with mounts containing spaces.
- Don't send out empty emails.
- Correctly handle LVM names that contain dashes
- Allow passing the pgpasswd to PostgreSQL as well
- Add pass-through options for the DB dump command
- Implement bandwidth limiting, based on trickle
- By default, run safekeep with nice +10 on the server side
- Run ssh/rdiff through nice so we can control the load better on the server
- Do not compress the SSH traffic, it is handled by rdiff-backup
- Add SSH verbosity control
- Fix dopey MySQL dump.
* Tue Oct 7 2008 Dimi Paun <dimi@lattica.com> 1.0.5-1
- Allow providing the password for the DB user used for the DB dump
- Add config option for passing additional flags to rdiff-backup
- Avoid backing up special files by default
- Avoid creating multiple LVM snapshots (avoids some LVM bugs)
- Add new --cleanup option to help recovery from crashes
- Make it easier to package on platforms that don't have asciidoc
* Tue Feb 26 2008 Dimi Paun <dimi@lattica.com> 1.0.4-1
- Add options to allow the query of the backup repository
- Important fixes when dealing with snapshots
- Make it more compatible with Python 2.2 (more work remains)
- Avoid build-time dependency on asciidoc which depends on Python 2.3
- Add some clarifications to the documentation
- Add support for FreeBSD
* Fri Oct 19 2007 Dimi Paun <dimi@lattica.com> 1.0.3-1
- Clarify licensing in lite of the new GPLv3 license;
- New --force option to handle unexpected problems with the data repository;
- Better logging and status handling when we invoke external commands
- Clearer backup status on job end.
- A small packaging bug got fixes.
* Fri Sep 7 2007 Dimi Paun <dimi@lattica.com> 1.0.2-1
- Add missing buildroot removal in install section (Jeff Spaleta)
- Remove references to PACKAGE_VERSION, follow the Fedora
guidelines closer.
- Provide default attr for all packages.
- Clarify the licensing in .rpm package.
- We don't need to include AUTHORS COPYING LICENSE multiple times,
keeping them in -common is enough.
- More acceptable SF link.
* Sun Jun 17 2007 Dimi Paun <dimi@lattica.com> 1.0.1-1
- The safekeep user no longer requires a working shell
- Add support for Fedora 7 to the testing script
- Packaging improvements for integration into Fedora
- Remove the old configuration migration scripts
- Do not package the testing script, it's used only during development
* Wed May 16 2007 Dimi Paun <dimi@lattica.com> 1.0.0-1
- Small documentation inprovements.
* Fri Apr 27 2007 Dimi Paun <dimi@lattica.com> 0.9.3-1
- Use /bin/bash as the shell for the safekeep system account;
- Invoke rdiff-backup with --force when trimming histroy;
- A few small logging bugs got fixed;
- Small documentation tweaks.
* Tue Mar 13 2007 Dimi Paun <dimi@lattica.com> 0.9.2-1
- Client configuration files have been moved to
/etc/safekeep/backup.d, and have the extension '.backup';
- A new global configuration file has been added in
/etc/safekeep/safekeep.conf;
- A number of command line options have been deprecated;
(-e/--email, -s/--smtp), and moved to the global configuration.
- SafeKeep now knows of the user under which the backup will execute,
making it possible to better deploy keys, avoid the need to invoke
safekeep(1) via sudo(8), and execute the backup as root if need be;
- Relative paths now have more intuitive behaviour;
- Some documentation improvements;
- Automatic migration of old configuration to the new format;
- A CRITICAL (e.g. data loss) race has been fixed.
* Mon Feb 12 2007 Dimi Paun <dimi@lattica.com> 0.9.1-1
- Lots of documentation improvements;
- Prepare the RPMs for Fedora acceptance (Jef Spaleta);
- Automatic creation of data store directory;
- A few bug fixes.
* Thu Feb 1 2007 Dimi Paun <dimi@lattica.com> 0.9.0-1
- Initial release