Skip to content

Commit 5ad41a8

Browse files
committed
Fixup readme, remove emacs dependency, move unboxing to toplevel
1 parent 5b43f03 commit 5ad41a8

7 files changed

Lines changed: 45 additions & 101 deletions

File tree

.github/workflows/CI.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
- name: Install dependencies
1212
run: |
1313
sudo apt-get update
14-
sudo apt-get -y install check doxygen emacs
14+
sudo apt-get -y install check doxygen
1515
1616
- name: Checkout
1717
uses: actions/checkout@v4

.gitmodules

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
[submodule "thirdparty/unboxing"]
2-
path = thirdparty/unboxing
1+
[submodule "unboxing"]
2+
path = unboxing
33
url = git@github.com:piql/unboxing

CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10)
22

33
project(afs)
44

5-
add_subdirectory(thirdparty/unboxing EXCLUDE_FROM_ALL)
5+
add_subdirectory(unboxing EXCLUDE_FROM_ALL)
66

77
add_library(minixml
88
thirdparty/minixml/src/mxml-attr.c
@@ -103,8 +103,6 @@ if(BUILD_TESTING)
103103

104104
add_test(NAME afstest COMMAND afstest)
105105

106-
add_custom_command(OUTPUT ../README.md WORKING_DIRECTORY .. COMMAND emacs README.org --batch -f org-md-export-to-markdown DEPENDS README.org)
107-
add_custom_target(readme ALL DEPENDS README.md)
108106
add_custom_command(OUTPUT ../doc/html/index.html WORKING_DIRECTORY .. COMMAND doxygen doxygen.dox DEPENDS doxygen.dox)
109107
add_custom_target(doxygen ALL DEPENDS doc/html/index.html)
110108
endif()

README.md

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,66 @@
1-
2-
31
# Afslib
42

5-
**afslib** is a library for reading Archival File Systems (**AFS**). The **AFS** has unique preservation capabilites, including support for human readable data, file format ids and other types of metadata. A design goal for **AFS** is to provide a completely self contained file system, containing all information needed to decede and understand its content in the near and distant future. The **AFS** file system is primarily intended for **linear tape storage** mediums.
6-
7-
The key components in the **AFS** is the **zero-reference-mark** indicating the start of the file system, the **control-frame** containing information about how to decode the rest of the reel and the **table-of-content** pointing to all files stored on the reel. The file system is organised into sectors, called **frames**, where a frame occupies a rectangle on the storage medium surface. The frame can contain either visual or digital data. The data on the frame could be encoded using any kind of 2D barcode format. Current instances of AFS uses the boxinglib 2D barcode format.
3+
**afslib** is a library for reading Archival File Systems (**AFS**). The **AFS**
4+
has unique preservation capabilites, including support for human readable data,
5+
file format ids and other types of metadata. A design goal for **AFS** is to
6+
provide a completely self contained file system, containing all information
7+
needed to decede and understand its content in the near and distant future. The
8+
**AFS** file system is primarily intended for **linear tape storage** mediums.
9+
10+
The key components in the **AFS** is the **zero-reference-mark** indicating the
11+
start of the file system, the **control-frame** containing information about how
12+
to decode the rest of the reel and the **table-of-content** pointing to all
13+
files stored on the reel. The file system is organised into sectors, called
14+
**frames**, where a frame occupies a rectangle on the storage medium surface.
15+
The frame can contain either visual or digital data. The data on the frame could
16+
be encoded using any kind of 2D barcode format. Current instances of AFS uses
17+
the boxinglib 2D barcode format.
818

919
See [LICENSE for software licensing.](./LICENSE)
1020

11-
This library contains a version of the third party library Mini-XML, which is Copyright 2003-2016 by Michael R Sweet.
12-
21+
This library contains a version of the third party library Mini-XML, which is
22+
Copyright 2003-2016 by Michael R Sweet.
1323

1424
# Table of Contents
1525

16-
1. [Afslib](#afslib)
17-
2. [Features](#features)
18-
3. [Requirements](#requirements)
19-
4. [Installation](#installation)
20-
1. [iVM](#ivm)
21-
26+
1. [Afslib](#afslib)
27+
2. [Features](#features)
28+
3. [Requirements](#requirements)
29+
4. [Installation](#installation)
30+
1. [iVM](#ivm)
2231

2332
# Features
2433

25-
- Simple file system with unique preservation capabilities
26-
- Portable
27-
- TOC supports both digital and visual data
28-
- TOC supports file metadata in any format
29-
- TOC supports file format identification
30-
- Control frame supports self contained bootstrap for decoding rest of the reel
31-
34+
- Simple file system with unique preservation capabilities
35+
- Portable
36+
- TOC supports both digital and visual data
37+
- TOC supports file metadata in any format
38+
- TOC supports file format identification
39+
- Control frame supports self contained bootstrap for decoding rest of the reel
3240

3341
# Requirements
3442

3543
C language compiler supporting C99 (ISO/IEC 9899:1999).
3644

3745
A design goal is to have as few dependencies as possible.
3846

39-
4047
# Installation
4148

42-
git clone https://github.com/piql/afs
43-
cd afs
44-
./autogen.sh
45-
./configure LIBUNBOXING_DIR=<absolute path to unboxing>
46-
make
47-
49+
```sh
50+
git clone https://github.com/piql/afs --recurse-submodules
51+
cd afs
52+
cmake -Bbuild
53+
cmake --build build -j
54+
pushd build
55+
./afstest
56+
popd
57+
```
4858

4959
## iVM
5060

51-
The iVM virtual machine is a minimal execution environment for file format decoders. Its design goal is to minimize future implementation effort by providing an unambiguous and compact implementation description.
61+
The iVM virtual machine is a minimal execution environment for file format
62+
decoders. Its design goal is to minimize future implementation effort by
63+
providing an unambiguous and compact implementation description.
5264

5365
The afs library is one of the formats the iVM natively supports.
5466

55-
To target the iVM and use the ivm64 compiler:
56-
57-
CC=ivm64-gcc ./configure --host=ivm64 LIBUNBOXING_DIR=<absolute path to unboxing>
58-

README.org

Lines changed: 0 additions & 62 deletions
This file was deleted.

thirdparty/unboxing

Lines changed: 0 additions & 1 deletion
This file was deleted.

unboxing

Submodule unboxing added at d47db6b

0 commit comments

Comments
 (0)