summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* doc: Improve help text of osl_rbtree_first_row().HEADmasterAndre Noll2026-08-23
| | | | | Shorten the text, improve its wording and mention that the function fails if the table is empty.
* doc: Improve help text of osl_rbtree_loop().Andre Noll2026-08-23
| | | | | Streamline the text a bit and document that it is safe to remove the current row from the callback.
* Improve documentation of osl_get_nth_row().Andre Noll2025-04-02
| | | | Make it explicit that it is invalid to pass zero.
* Switch to https URLs.Andre Noll2024-05-19
| | | | It's much safer, they say.
* INSTALL: Simplify dependency section.Andre Noll2024-05-19
| | | | | Lopsub is available as a Debian package these days, so remove the lopsub download and installation instructions.
* osl-0.2.0.Andre Noll2020-10-15
| | | | | It has been several years since the last release, but finally osl-0.2.0 has arrived. The NEWS file contains a summary of the changes.
* Merge branch 'refs/heads/t/sha3' into masterAndre Noll2020-10-15
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was written long ago and was sitting in a development branch for some years. As such it was part of the pu branch and so has seen some testing. There's an easy conflict in fsck.c where one side added a function parameter and the other renamed some variables. * refs/heads/t/sha3: Version 3 tables. Add sha3 implementation, introduce version-2 tables. Prepare hash_function() for multiple hash algorithms. Store table version in struct osl_table. Initialize column name hash *after* table version is known. osl_open_table(): Remove pointless directory check. Remove sha1.h. Remove COMPAT_TABLE_VERSION.
| * Version 3 tables.Andre Noll2020-06-17
| | | | | | | | | | | | | | | | | | | | This adds support for yet another hash function: sha256. We keep the Keccak Hash as version #2, because it works well and has been around for years in an experimental branch of this repo. As for Keccak, we only use 20 bytes of the sha256 hash, which is safe enough and helps to keep the patch as small as possible. The sha256 implementation was taken from git v2.25.1.
| * Add sha3 implementation, introduce version-2 tables.Andre Noll2020-06-17
| | | | | | | | | | | | | | | | | | | | | | This adds support for version-2 tables which use a variant of the Keccec hash family rather than sha1. The only difference between the two table versions is the different hash function. Both hash functions create 20-byte output. Version-1 tables are still supported, but new tables are always created in v2 format.
| * Prepare hash_function() for multiple hash algorithms.Andre Noll2020-06-17
| | | | | | | | | | | | | | In order to transparently support more than one hash function in the future, we now pass the table version to hash_function(). The version is always one at the moment, and only the sha1 hash is implemented so far.
| * Store table version in struct osl_table.Andre Noll2020-06-17
| | | | | | | | | | | | | | This modifies read_table_desc() to return the table version read from the index header. The returned version number is stored in the newly added field of struct osl_table. This will allow us to choose a hash function based on the version.
| * Initialize column name hash *after* table version is known.Andre Noll2020-06-17
| | | | | | | | | | | | | | | | | | | | | | | | We use hash_function() to determine the path of the file/directory which corresponds to columns of type MAPPED_STORAGE or DISK_STORAGE. Currently this happens before the index has been mapped, so we don't know the table version at this point. Future versions of osl will support multiple hash functions, and the hash function to use will be determined from the table version. At this point the modifications of this patch become necessary. At the moment the patch has no visible effect.
| * osl_open_table(): Remove pointless directory check.Andre Noll2020-06-17
| | | | | | | | | | | | | | | | | | The subsequent mmap(2) call will fail if the directory does not exist (or if the path is not a directory), so this check is not needed. This removes the only user of the E_OSL_NOTDIR error code. We must keep it in the errlist file though, because error codes must be considered part of the API.
| * Remove sha1.h.Andre Noll2020-06-17
| | | | | | | | | | | | | | The file contains only the declaration of sha1_hash() and the definition of HASH_SIZE This commit moves HASH_SIZE from sha1.h to hash.h and moves the declaration of sha1_hash() to hash.h, the only file which needs it.
| * Remove COMPAT_TABLE_VERSION.Andre Noll2020-06-17
| | | | | | | | | | | | | | | | | | | | | | | | The compatibility version concept was introduced eight years ago in commit (62d228ec), and was never needed. In fact, COMPAT_TABLE_VERSION has always been zero so far. This commit gets rid of it. Given a library version and the on-disk table version, we can still tell whether the table can be opened by comparing the MIN_TABLE_VERSION and the CURRENT_TABLE_VERSION numbers of the library against the value stored in the table (i.e., the CURRENT_TABLE_VERSION value of the library that created the table).
* | build: Fix manual setting of CC.Andre Noll2020-09-23
| | | | | | | | | | | | We want to set CC not only if its value comes from the default origin but also if it is undefined or empty. It's easiest to set it to "cc" whenever its current value is empty.
* | build: Don't set CC twice.Andre Noll2020-09-23
| | | | | | | | Identical code is at the top of the Makefile.
* | build: Tell make(1) that the compiler creates .d files.Andre Noll2020-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | The best way to convey the information that two files are created by the same command involves rules with grouped targets (indicated by the &: separator between targets and prerequisites). However, since grouped targets is a relatively new feature of make(1) and we would like to keep supporting older versions, we use ordinary rules with multiple targets. This should not be worse because the compiler is still run only once for each source file. The patch also introduces the pre_deps make variable to make sure the files listed in this variable are present before we run the compiler.
* | Update .gitignore.Andre Noll2020-09-23
| | | | | | | | Both files no longer exist in the tree.
* | web: Add style sheet.Andre Noll2020-09-22
| | | | | | | | | | | | The style sheet configures different background colors for even and odd numbered lines of the API summary. This visual aid should make the document easier to follow.
* | web: Streamline INSTALL.Andre Noll2020-09-22
| | | | | | | | | | | | | | | | | | It was a bit too detailed, and inconsistent with respect to usage of sudo. Also the formatting of the commands and the font usage was inconsistent. Provide a link to the lopsub homepage and mention that m4 is required while at it.
* | web: Simplify main page.Andre Noll2020-09-22
| | | | | | | | | | | | | | | | This combines and streamlines the "Download", "License" and "Contact" sections of the home page and moves them to the README file. This reduces the tabs of the main page navigation from 8 to 5 and makes the various URLs more prominent, and part of README.
* | web: Let logo link to index.html rather than ".".Andre Noll2020-09-22
| | | | | | | | | | Depending on the browser and the web server config, the reference to "." may cause the browser to render a directory listing.
* | web: Don't duplicate the html header.Andre Noll2020-09-22
| | | | | | | | | | Now that all web pages are in a single directory, we can get rid of some duplication by using header.html also to create index.html.
* | web: Get rid of doxygen.Andre Noll2020-09-22
| | | | | | | | | | | | | | | | | | | | | | Doxygen is an additional dependency, and it's total overkill for a small project like osl. The self-contained gendoc.m4 script does everything we need, and is much faster. This patch converts osl.h.in to gendoc syntax and removes all traces of doxygen. Since gendoc.m4 relies on features of gnu-m4 we run it with -g to enable gnu extensions. This has been tested on FreeBSD and NetBSD which ship different m4 implementations, both of which understand -g.
* | web: Convert QUICK_START to markdown syntax.Andre Noll2020-09-22
| | | | | | | | | | | | | | | | | | This file is rather simple and we don't need doxygen to convert it to html. After this, the quick start document becomes part of the main page. Although this patch modifies almost every line of QUICK_START, the changes to the actual contents have been kept to a minimum.
* | web: Fix typo in README.Andre Noll2020-09-22
| |
* | Activate -Wsign-compare.Andre Noll2020-09-12
| | | | | | | | | | | | Currently this option is disabled but the number of warnings it triggers is moderate. This patch fixes all of them and enables the warning.
* | build: Deactivate implicit build make(1) rules.Andre Noll2020-06-17
| | | | | | | | The new comment explains why.
* | build: Mark files generated by lopsub as precious.Andre Noll2020-06-17
| | | | | | | | | | | | Without this, running make(1) with no arguments after a previous successful run would re-generate at least the .lsg.c file. This patch avoids that.
* | build: Remove make(1) targets to build a static library.Andre Noll2020-06-17
| | | | | | | | These targets are not included in the default ("all") target.
* | build: Combine make(1) targets osl_errors.h and osl.h.Andre Noll2020-06-17
| | | | | | | | | | There is no reason for the two-step appoach. After the patch we generate one file less.
* | build: Make sure osl.h exists when we run the compiler.Andre Noll2020-06-17
|/ | | | This fixes the build on NetBSD 9.0_RC1.
* Don't mention MacOS and Solaris in README and INSTALL.Andre Noll2020-06-16
| | | | Support for these was dropped recently.
* Makefile: Also build osl.h by default.Andre Noll2020-06-15
| | | | | | Otherwise it gets built as root during make install and is thus owned by root. This may cause problems, for example if the source resides on an NFS mounted directory where root is not allowed to write.
* build: Add $(LDFLAGS) to rule for oslfsck.Andre Noll2020-06-07
| | | | | This allows for example to specify an additional -L option if lopsub is not installed at a standard location.
* build: Prefix CFLAGS and friends with OSL_.Andre Noll2020-06-07
| | | | | | | | | | | It is best practice to leave the "official" CPPFLAGS, CFLAGS and LDFLAGS variables alone and just add them at the end of the command line options. This way the user may override any of our settings by setting the corresponding option in the official variable. For example, to deactivate warnings about unused variables or functions, one may compile with make CFLAGS=-Wno-unused
* build: Reorder make variables.Andre Noll2020-06-07
| | | | | | Move and assignment to LDFLAGS up to have the settings of all three sets of flags at one location. Move libname down to where it is needed.
* build: Combine CFLAGS and LIBCFLAGS.Andre Noll2020-06-07
| | | | | | | | | We stopped compiling some object files twice some time ago. Since then, all object files are build with the concatenation of both sets of options. The two variables are only used at this point, so it is safe to combine them.
* build: Simplify LDFLAGS setting.Andre Noll2020-06-07
| | | | | There is no more reason to distinguish between the three supported operating systems. In particular all three support -Wl,-z,defs by now.
* build: Simplify Makefile.Andre Noll2020-06-07
| | | | | Now that only elf is supported we may get rid of the "format" variable and the conditional.
* build: Drop support for SunOS and MacOS.Andre Noll2020-06-07
| | | | | Nobody uses this software on these platforms. It has not been tested for a decade and is likely broken anyway.
* build: Don't insist on gcc.Andre Noll2020-06-07
| | | | On BSD systems gcc might not be installed while cc should always exist.
* build: Create dependencies on the fly.Andre Noll2020-06-07
| | | | | | This is faster since we run the compiler only once. It is more robust, too, because the build does not break if a random .h file is added to the working directory. Using $(wildcard) is almost always a mistake..
* NEWS: Fix two typos.Andre Noll2020-05-17
|
* Improve documentation of osl_rbtree_loop().Andre Noll2020-05-16
| | | | | Mention that E_OSL_LOOP is the only possible error. Fix a few trivial whitespace issues and a typo while at it.
* Merge branch 'refs/heads/t/lopsub'Andre Noll2019-06-03
|\ | | | | | | | | | | | | | | | | * refs/heads/t/lopsub: Convert oslfsck to lopsub. The merge conflicted twice for the Makefile because of commit ec08b17c7514 which touched the object list of oslfsck and added -DVERSION to the CPPFLAGs. This was easy to fix, though.
| * Convert oslfsck to lopsub.Andre Noll2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | The gengetopt project seems to be dead (last release was five years ago), so we eventually need to switch to something else. This commit migrates the option parser of oslfsck to the lopsub library, which turned out to be rather simple. As a result, the osl package no longer depends on gengetopt and help2man. The change only affects the oslfsck executable. No changes to the library proper.
* | Merge branch 'refs/heads/t/build'Andre Noll2019-05-05
|\ \ | | | | | | | | | | | | | | | | | | A single commit that was cooking for four months. * refs/heads/t/build: build: Fix dependencies for oslfsck.
| * | build: Fix dependencies for oslfsck.Andre Noll2017-04-19
| |/ | | | | | | | | | | | | | | | | | | The autogenerated Makefile.deps does not work for the oslfsck exectutable because we compile the object files for oslfsck without -fPIC to generate more performant code, and name them e.g. util.fsck.o instead of util.o. Geting rid of this optimization not only fixes the dependencies but also simplifies the Makefile and speeds up the build.