Haggis archive library
Find a file
2024-02-11 01:14:31 -05:00
include Minor refactor and formatting changes 2024-02-11 01:09:21 -05:00
man Update function parameters in man page 2023-09-19 00:40:14 -04:00
test Minor refactor and formatting changes 2024-02-11 01:09:21 -05:00
.gitignore Remove includes added by lsp server; Check in confg.mk; 2023-08-24 00:18:13 -04:00
bytes.c Fix NetBSD compilation 2023-08-22 03:27:03 -04:00
compile_flags.txt Added prototypes for many functions 2023-07-20 01:06:38 -04:00
config.mk Add manpages to make install 2023-08-28 20:50:29 -04:00
Format.md Add README and Format files 2023-08-10 10:22:09 -04:00
haggis.c Merge branch 'odin' of git.hitchhiker-linux.org:jeang3nie/seahag into odin 2024-02-11 01:14:31 -05:00
jobq.c Minor refactor and formatting changes 2024-02-11 01:09:21 -05:00
linkmap.c Minor refactor and formatting changes 2024-02-11 01:09:21 -05:00
Makefile Get device file ezxtraction working and tested 2023-10-03 01:53:59 -04:00
mq.c Minor refactor and formatting changes 2024-02-11 01:09:21 -05:00
README.md Add info to README about using dash shell 2024-02-04 00:26:49 -05:00

SeaHag

This is a C implementation of the haggis archive format. It does not follow any particular C standard (c99, c11 etc) but has been written with portability in mind, being developed simultaneously on FreeBSD and Linux. It is implemented as a library and by default both shared and static versions will be built.

Building

Do a quick check of config.mk to be ensure the variables set therein work for your system, and edit as needed.

SeaHag is built using a portable Makefile which works with both BSD and GNU Make. Due to the limited subset of features used it may be portable to other versions of Make, but that is untested as is the code on systems other than BSD or Linux. The default target builds both shared and static libraries. If you prefer to build one or the other, use the shared or static targets. The Makefile also follows the Destdir pattern for ease of packaging.

Tests

There is a simple test harness which can be invoked via make test. If you wish to port this software to an untested platform the tests will greatly assist in that process.

Note: if your OS uses dash as /bin/sh then the builtin echo command will not be up to the task of printing the escape sequences used by the test runner. If this bothers you, you can call make with the SHELL environment variable overridden by calling make SHELL=/bin/bash all test.

Contributing

Contributions are always welcome and can be made via pull request or git send-email, sent to jeang3nie at hitchhiker-linux dot org. Coding style is four space indent, no tabs, with function signatures on one line unless that line would go past the long line marker in which case each parameter goes on a new line. The intention is that the software should remain portable with no further dependencies beyond libmd and libpthread, so contributions which introduce further dependencies will be rejected. Of particular interest are contributions in the form of documentation or porting to untested platforms.