Sun, 20 Jan 2008 15:32:02 -0500
[svn] Steel FilenameChecker against race conditions.
Since FilenameChecker was just using os.path.exists() to see whether or not
a filename was free, it had a time of check vs. time of use vulnerability.
Matthew was prodding me about the inconsistency with DirectoryChecker, so
that inspired me to fix this. This also entailed some refactoring. Thanks
Matthew.
42 | 1 | dtrx Installation Documentation |
2 | =============================== | |
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
3 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
4 | Requirements |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
5 | ------------ |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
6 | |
42 | 7 | dtrx will work out of the box with Python_ 2.4 or greater. You can also |
8 | use Python 2.3 if you separately install the `subprocess module`_. | |
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
9 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
10 | .. _Python: http://www.python.org/ |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
11 | .. _`subprocess module`: http://www.lysator.liu.se/~astrand/popen5/ |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
12 | |
42 | 13 | dtrx calls out to different external tools to support different archive |
14 | types. Most of these are already installed on most GNU/Linux systems, so | |
15 | you probably won't have to worry about these too much, but just for | |
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
16 | completeness, the exact requirements for each format are as follows: |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
17 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
18 | tar archives |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
19 | tar |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
20 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
21 | zip archives |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
22 | unzip, zipinfo |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
23 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
24 | cpio archives |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
25 | cpio |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
26 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
27 | rpm archives |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
28 | rpm2cpio, cpio |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
29 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
30 | deb archives |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
31 | ar, tar, zcat |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
32 | |
42 | 33 | gem archives |
34 | tar, zcat | |
35 | ||
36 | 7z archives | |
37 | 7z | |
38 | ||
39 | Microsoft Cabinet archives | |
40 | cabextract | |
41 | ||
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
42 | Files compressed with gzip or compress |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
43 | zcat |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
44 | |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
45 | Files compressed with bzip2 |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
46 | bzcat |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
47 | |
42 | 48 | Files compressed with lzma |
49 | lzcat | |
50 | ||
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
51 | Installation |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
52 | ------------ |
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
53 | |
42 | 54 | dtrx is just a simple script, making it easy to stash wherever you need it. |
55 | Just copy ``scripts/dtrx`` to a location that's convenient for you. If | |
56 | you'd like to install the program system-wide, you can run the following as | |
57 | root or equivalent:: | |
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff
changeset
|
58 | |
56 | 59 | python setup.py install --prefix=/usr/local |
60 | ||
61 | Running Tests | |
62 | ------------- | |
63 | ||
64 | dtrx comes with a suite of tests that are designed to ensure it's running | |
65 | properly. If you'd like, you can run these tests on your own system. | |
66 | Simply run the following command from the dtrx source directory:: | |
67 | ||
68 | python tests/compare.py | |
69 | ||
57 | 70 | To run the tests, you'll need the `syck module`_. |
71 | ||
72 | .. _syck module: http://whytheluckystiff.net/syck/ | |
73 | ||
56 | 74 | If everything's in order, all the tests should pass. Note that some of |
75 | them will fail if some of the programs listed above aren't installed on | |
76 | your system. Many of the tests will fail if for some reason you're missing | |
77 | the very common commands, like tar and zcat. |