chiark / gitweb /
Clean up a bit and add copyright notices.
authorianmdlvl <ianmdlvl>
Sun, 7 Oct 2001 18:09:42 +0000 (18:09 +0000)
committerianmdlvl <ianmdlvl>
Sun, 7 Oct 2001 18:09:42 +0000 (18:09 +0000)
19 files changed:
backup/Makefile
backup/Makefile-etc
backup/backuplib.pl
backup/bringup
backup/checkallused
backup/driver
backup/full
backup/increm
backup/iwjbackup.txt
backup/junk [deleted file]
backup/loaded
backup/old-increm [deleted file]
backup/readbuffer [deleted file]
backup/readbuffer.c
backup/settings.pl
backup/takedown
backup/whatsthis
backup/writebuffer [deleted file]
backup/writebuffer.c

index 1315c88abf7a628b8582c692b81437dc2fa8edf7..59a3c11185d34041b854036f3c0aa9d13d93c96a 100644 (file)
@@ -1,2 +1,25 @@
+# Makefile
+# simple make settings
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
 CC=gcc
 CFLAGS=-Wall -Wwrite-strings -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -O2 -g
index 89bee041172b6393e7666dcfa0e43d306084e45f..62b0b2fc16bce0bd5df7fbe11490632a38fec27e 100644 (file)
@@ -1,3 +1,25 @@
+# Makefile-etc
+# for putting in /etc/backup to make fsys.* from ifsys.*
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 all:           fsys.pt0 fsys.pt1 fsys.pt2 fsys.all
 
@@ -6,3 +28,4 @@ fsys.pt%:      ifsys.prefixes ifsys.pt% ifsys.end
 
 fsys.all:      ifsys.prefixes ifsys.pt0 ifsys.pt1 ifsys.pt2 ifsys.end
                cat $^ >$@.new && mv -f $@.new $@
+
index 9acd7a0147c4072209d5181a75fb045350a9f31e..37b3d7936f6c8bf3568739f77e5b56bcc315c6fd 100644 (file)
@@ -1,6 +1,25 @@
+# backuplib.pl
+# core common routines
 #
-
-# Assorted useful functions used by the backup scripts.
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 sub printdate () {
     print scalar(localtime),"\n";
index ffca871f0588c8249e40acbb025e85769436fb4e..ff6107d4330b7f7d7bebc81360d48d6f571cfe11 100755 (executable)
@@ -1,8 +1,32 @@
 #!/bin/sh
+# bringup
+# script for going back to defaultrunlevel
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
 # Very simple: extract the default runlevel from /etc/inittab
 # and change to it with telinit.
 
 runlevel=`sed -ne '/^id:/ s/.*:\([0-9]\):.*/\1/p' /etc/inittab`
 telinit $runlevel
+
 # This switches to virtual console 11, but I don't think I want that -- PMM 
 #chvt 11
index 8fb446831687dca891a236d3519ab70d5e72e9c4..ab2dcd63d8de5999461b174284f3549892bdd776 100755 (executable)
@@ -1,8 +1,29 @@
 #!/usr/bin/perl
+# checkallused
+# check that the configuration is sane and backs up everything it should
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-# Read all the configuration files and check that all filesystems
-# are either backed up in both full and incremental dumps or 
-# listed as exceptions.
+# All filesystems must either be backed up in both full and
+# incremental dumps or listed as exceptions.
 
 BEGIN {
     $etc= '/etc/backup';
index 3cede61e8e0926ea27756dadd9a40d51cfd41c2f..c143bd897c141453c602ef58c53f9f141be43a73 100755 (executable)
@@ -1,5 +1,26 @@
 #!/bin/sh
-# This is the driver script that actually runs backups.
+# driver
+# entry point for inittab (or perhaps cron) to run the backups.
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 cd /var/local/backup
 PATH=/usr/local/lib/backup:$PATH export PATH
index 5e6d23e0f0231c062ece1830bb9b445da6f72855..dddb343be2b12ed0fc5b520f62d4b8ecefd56b57 100755 (executable)
@@ -1,4 +1,26 @@
 #!/usr/bin/perl
+# full
+# Main backup script - does a full dump or execs increm.  Do NOT run directly!
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 BEGIN {
     $etc= '/etc/backup';
index 63d56d428b4bcee8d87dbc7767b56b3fe165dbaf..fc20b3a32b85e6ef49114cabdd337d2c8db70099 100755 (executable)
@@ -1,10 +1,31 @@
 #!/usr/bin/perl
-
-# Do an incremental backup. We are invoked by full if the tape 
-# description file says that it is for an incremental backup.
-# We expect two commandline argument which is the ID string
-# of the tape to use, and the description (which includes ID
-# and function).
+# increm
+# Do an incremental backup; ONLY for invocation by full !
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# We are invoked by full if the tape description file says that it is
+# for an incremental backup.  We expect two commandline argument which
+# is the ID string of the tape to use, and the description (which
+# includes ID and function).
 
 BEGIN {
     $etc= '/etc/backup';
index 1424a3a98abd20043d5a818956cb5a45add8a17f..9866f0969d1aea147b1a90d70ba9b4ce802690fd 100644 (file)
@@ -5,6 +5,30 @@ source is the sources, as always :->
 
 WARNING - this file is out of date !
 
+# iwjbackup.txt
+# Documentation file
+#
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
 
 The three tarfiles in this directory should go in the following 
 places (the paths can probably be configured/hacked, but this is
diff --git a/backup/junk b/backup/junk
deleted file mode 100644 (file)
index 92769e4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-timestamp () {
-       echo "Checking timestamp of last full dump of $1;"
-       if ! test lfull.$which -ot lfull.$1
-       then
-               which=$1
-       fi
-}
-
-ok=1
-
-for dsk in `cat allincs`
-do
-       which='.'
-       . inc.$dsk
-       if test -f "lfull.$which"
-       then
-               echo "Using timestamp of last full dump of $which."
-       else
-               echo >&2 "No full dump of $which done yet."
-               exit 1
-       fi
-
-       since="`cat lfull.$which`"
-       doing="incremental of $filesys to $device
- files changed since dump of $which at `cat lfull.$which`"
-
-       rm -f log
-       (umask 007; >log)
-
-       echo Doing "$doing" ...
-
-       
index 7a8335f46620cd83993e1af406e6fc130363de18..69adcb4dfa2f9c1034f1b6d6c4a792c7c7eb17f6 100755 (executable)
@@ -1,6 +1,26 @@
 #!/bin/sh
+# loaded
+# Entry point for sysadmin to state that we've loaded a tape
 #
-# State that we have loaded a tape
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 set -e
 cd /var/local/backup
diff --git a/backup/old-increm b/backup/old-increm
deleted file mode 100755 (executable)
index b036b89..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/sh
-
-set -e
-false
-dir=/var/local/backup
-device=/dev/sda4
-blocksize=2048
-filesystems=all
-
-cd $dir
-PATH=/usr/local/lib/backup:$PATH export PATH
-
-echo "FAILED during startup of incremental" >this-status
-
-timestamp='.'
-for tsfs in `cat all-fsys-n`
-do
-       echo "Checking timestamp of last full dump of $tsfs;"
-       if ! test "lfull.$timestamp" -ot "lfull.$tsfs"
-       then
-               timestamp="$tsfs"
-       fi
-done
-
-if test -f "lfull.$timestamp"
-then
-       echo "Using timestamp of last full dump of $timestamp."
-else
-       echo >&2 "No full dump of $timestamp done yet."
-       exit 1
-fi
-
-rm -f this-fulldump
-since="`cat lfull.$timestamp`"
-doing="incremental since dump of $timestamp at `cat lfull.$timestamp` to $device"
-
->increm-log
-chmod 660 increm-log
-
-echo Doing "$doing" ...
-echo "$doing": >>increm-log
-cat fsys.all
-echo "tar -lvvc \"-N$since\" -T$dir/fsys.all -f - \\"
-echo "  2>>increm-log | dd of=$device bs=${blocksize}b"
-echo "FAILED during incremental" >this-status
-cd /
-tar -lvvc "-N$since" -T$dir/fsys.all -f - 2>>$dir/increm-log \
-       | dd of=$device bs=${blocksize}b
-cd $dir
-
-echo "FAILED during cleanup" >this-status
-
-test -f this-fulldump && mv this-fulldump "lfull.$filesystems"
-echo "$doing" completed.
-
-echo "Next dump tape to use would be `cat next-full`".
-
-echo "INCREMENTAL successful" >this-status
diff --git a/backup/readbuffer b/backup/readbuffer
deleted file mode 100755 (executable)
index b5ab670..0000000
Binary files a/backup/readbuffer and /dev/null differ
index b733fd6dc81a2b94c48026c1cdfdd2eb773a5634..ec03c6a390a08022529e12d3727b287e3327718b 100644 (file)
@@ -1,7 +1,15 @@
 /*
  * readbuffer.c
  *
- * Copyright (C) 1997,1998 Ian Jackson <ian@chiark.greenend.org.uk>
+ * A program for reading input from devices which don't like constant
+ * stopping and starting, such as tape drives.  readbuffer is:
+ *  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+ *
+ * readbuffer is part of chiark backup, a system for backing up GNU/Linux and
+ * other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+ * chiark backup is:
+ *  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+ *  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
  *
  * This is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as
index a550206ffd8141f01d69b7e6bf21ba440c9254cd..b503f917ce5915abb916bcd9d4f36305b39267f6 100644 (file)
@@ -1,4 +1,5 @@
-#
+# configuration, for putting in /etc/backup
+
 chdir '/var/local/backup' or die $!;
 push(@INC,'/usr/local/lib/backup');
 $ENV{'PATH'} =~ s,^/usr/local/lib/backup:/usr/local/bin:,,;
index e41c7836ca7b28cad4c395c0f1a11881d6fe693d..76f68b43e18eb9a354dcd65e45ed2e0aba696389 100755 (executable)
@@ -1,6 +1,27 @@
 #!/bin/sh
+# takedown
+# Entry point for cron to take the system down for backups
 #
-# Take the system down for backups and then bring it back up.
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
 # Expects a single (possibly empty) argument X which is used to select
 # a file /etc/backup/warnings.X. This file will contain lines like:
 # T 300 "in 10 minutes"
index 00d5dfff0ec4bc910ae88f7ec137cb33613d4bd2..d631869aecac90c45262ea47b677269c2ea615ab 100755 (executable)
@@ -1,7 +1,27 @@
 #!/usr/bin/perl
+# whatsthis
+# read an id off the tape and display it to the user
+
+# This file is part of chiark backup, a system for backing up GNU/Linux and
+# other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+#
+# chiark backup is:
+#  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+#  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+#
+# This is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2, or (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-# whatsthis : just read an ID off the tape and display it to the user.
-# Peter Maydell <pmaydell@chiark.greenend.org.uk>
 # First rough hack; mostly just code nabbed from full. 
 # --list assumes the dump type was 'zafio', which is a bit bogus.
 
diff --git a/backup/writebuffer b/backup/writebuffer
deleted file mode 100755 (executable)
index 67db196..0000000
Binary files a/backup/writebuffer and /dev/null differ
index 02254dca7a2ed5ee4661d5c4f7dcc5b7bc3fa6f7..bb1d26f71e358e0d4c369435bdd956fb97f4bdb3 100644 (file)
@@ -1,7 +1,15 @@
 /*
  * writebuffer.c
  *
- * Copyright (C) 1997,1998 Ian Jackson <ian@chiark.greenend.org.uk>
+ * A program for writing output to devices which don't like constant
+ * stopping and starting, such as tape drives.  writebuffer is:
+ *  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+ *
+ * writebuffer is part of chiark backup, a system for backing up GNU/Linux
+ * and other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+ * chiark backup is:
+ *  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+ *  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
  *
  * This is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as