Garchive -- a project archive utility for gEDA

Change log
11.14.2003 -- Initial posting. SDB
11.15.2003 -- Changed #!/usr/local/bin/python to #!/usr/bin/env python. Also added more future goals. SDB
11.21.2003 -- New version. Added spice-sdb model file handling capability. Now get /tmp from environment if env var exists. RC files are now created if they don't already exist.
12.5.2003 -- Changed archive filename suffix to .tar.gz by popular demand.


What is garchive?

Garchive is a project archive utility for the gEDA project. It runs from the unix command line. Garchive allows one to create a compressed, portable archive file of a project, useful for sharing a design, or for storing your old designs in a format which "future-proofs" them against changes in the gEDA libraries. It is also used to extract the original design files from the archive. Garchive automatically takes care of saving the symbol files and other associated parts of your design.

When creating an archive, garchive looks through your design and automatically copies all the .sym and SPICE files you have used into a local archive directory. It places other gschem support files (like gschemrc) into your archive, and automatically munges your .sch files to point into the local archive directory for the .sym and SPICE files. Garchive then tars and gzips everything up into a single, portable archive file.

When opening an archive, garchive performs careful checks to ensure that the unarchived files don't alread exist in your local directory so that you won't overwrite a file by mistake.

Using garchive to archive and re-open a project means that you won't have to worry about changes in the .sym files, or worry about where the symbol libraries live -- garchive makes sure your schematics will always point to the archived version of the .sym and SPICE files, giving your archived design complete portability.

Garchive is written in Python, and runs fine with Python 2.2. Older versions of Python should also work -- but no guarantees! Garchive has been tested using gEDA-20030901, but should work with older versions also.


Where do I get garchive?

Garchive is currently available on this web page. Perhaps later it will become part of the gEDA distribution.

Download and installation instructions --.

  1. Please download this source file into your ${geda-source}/geda-utils-20030901/scripts (or equivalent) directory:
  2. Make the following changes to the Makefile in your ${geda-source}/geda-utils-20030901/scripts directory:
  3. Then do "make && make install" while in your ${geda-source}/geda-utils-20030901/scripts directory. Now you should have a working copy of garchive!
  4. For those who know what to do with it, or are maintaining the distribution, here is the updated Makefile.am which lives in the scripts directory. I have incorporated my changes into this Makefile.am; it should generate a valid Makefile for garchive the next time you do autoconf and automake.

How do I use garchive?

Garchive runs in two modes, archive creation and archive extraction. To create an archive, just do (for example):

garchive -v -o OutputArchive.tar.gz Schematic1.sch Schematic2.sch Schematic3.sch

To extract an archive, just do (for example):

garchive -e ProjectArchive.tar.gz

To get a help string explaining garchive's usage and command line flags, just do (for example):

garchive -h

Note that the archive produced is a .tar.gz file, so you can use standard unix tools to handle the file if desired. You can read about further documentation below.


Where's the garchive documentation?

There is currently no "official" documentation. I may do a man page some time in the future. Meanwhile, if you do "garchive -h" it will print out a help string listing the valid flags, as well as comand line options. I have also put some instructions in the code itself, which should help you if you have questions.


What will happen to garchive in the future?

Moving forward, I have the following goals:


Please send comments to Stuart Brorson.