| Commit message (Collapse) | Author | Age |
| |
|
|
|
| |
Shorten the text, improve its wording and mention that the function fails if
the table is empty.
|
| |
|
|
|
| |
Streamline the text a bit and document that it is safe to remove the current
row from the callback.
|
| |
|
|
| |
Make it explicit that it is invalid to pass zero.
|
| |
|
|
| |
It's much safer, they say.
|
| |
|
|
|
| |
Lopsub is available as a Debian package these days, so remove the
lopsub download and installation instructions.
|
| |
|
|
|
| |
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.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| | |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| | |
Identical code is at the top of the Makefile.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| | |
Both files no longer exist in the tree.
|
| | |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| | |
Depending on the browser and the web server config, the reference to
"." may cause the browser to render a directory listing.
|
| | |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
Currently this option is disabled but the number of warnings it
triggers is moderate. This patch fixes all of them and enables the
warning.
|
| | |
| |
| |
| | |
The new comment explains why.
|
| | |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| | |
These targets are not included in the default ("all") target.
|
| | |
| |
| |
| |
| | |
There is no reason for the two-step appoach. After the patch
we generate one file less.
|
| |/
|
|
| |
This fixes the build on NetBSD 9.0_RC1.
|
| |
|
|
| |
Support for these was dropped recently.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
| |
This allows for example to specify an additional -L option if lopsub
is not installed at a standard location.
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
There is no more reason to distinguish between the three supported
operating systems. In particular all three support -Wl,-z,defs by now.
|
| |
|
|
|
| |
Now that only elf is supported we may get rid of the "format" variable
and the conditional.
|
| |
|
|
|
| |
Nobody uses this software on these platforms. It has not been tested
for a decade and is likely broken anyway.
|
| |
|
|
| |
On BSD systems gcc might not be installed while cc should always exist.
|
| |
|
|
|
|
| |
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..
|
| | |
|
| |
|
|
|
| |
Mention that E_OSL_LOOP is the only possible error. Fix a few trivial
whitespace issues and a typo while at it.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
A single commit that was cooking for four months.
* refs/heads/t/build:
build: Fix dependencies for oslfsck.
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|