| Commit message (Collapse) | Author | Age |
| |
|
|
|
| |
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.
|
| | |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| | |
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.
|
| |
|
|
|
|
| |
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..
|
| |\
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |/
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
The grutatxt project is dead, so we need to switch to something else
eventually. Fortunately, only little changes are required for the
switch to the markdown markup language as there are only two files in
the source tree which are formated with grutatxt. This patch converts
both files and adjusts the Makefile to run the markdown converter
instead of the grutatxt script.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The man2html project is dead, as is the link on the osl web page. The
URL mentioned in the info of the man2html package for Ubuntu-14.04
still works but might not be the most up to date page on the planet
any more:
http://users.actrix.gen.nz/michael/vhman2html.html
In any case, it's a funny read. Needless to say that the link to the
sunsite FTP server is also dead.
This commit makes osl independent of man2html, simply by running groff
-Thtml instead of man2html. This even simplifies the Makefile a bit.
The patch also removes the dead link on the osl main page. We don't
need a replacement reference to groff because groff should be installed
on all systems anyway.
|
| |
|
|
|
|
| |
The new target allows to update the web page with "make www", followed
by a suitable command to copy the "web" directory to the server. That's
as easy as it gets.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
On make install, the library is installed to $(libdir)/$(realname)
(e.g. /usr/local/lib/libosl.so.0.1.2), and a link is created to
map $(linkername) to $(soname) (e.g. /usr/local/lib/libosl.so ->
/usr/local/lib/libosl.so.0).
This changes the ln command to create a relative link rather than an
absolute link. For example, /usr/local/lib/libosl.so now points to
libosl.so.0 without the leading directory. This shouldn't matter much
but it allows to move both files elsewhere without breaking the link.
|
| |
|
|
|
| |
This commit also adds a NEWS file which contains the release notes
of all previous releases.
|
| |
|
|
|
|
|
|
| |
This allows to build and install the shared library and the oslfsck
executable on systems without help2man via
make shared oslfsck
sudo make install-lib install-bin
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the new target libosl.a which creates an archive that can
be statically linked into applications. Currently this works only on
ELF-based systems including Linux, FreeBSD and NetBSD, but fails on
MacOS. So it is not built automatically.
Unfortunately, creating libosl.a turned out to be trickier than
expected, because -fvisibility=hidden works only for dynamic libraries.
So we need a different method to hide non-static internal symbols
like make_message() which must not be global (external) because they
might clash with symbols used in the application.
objcopy(1) does the trick but we must provide a list of exceptional
symbols that should not be made local. This list is generated from
the osl.h header file.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
As proposed by Sebastian Stark, this introduces the install-lib,
install-bin and install-man targets. The simple "make install" still
installs everything, but splitting the target allows people to install
for example only the library if they do not have all tools available
which are necessary to build the oslfsck binary or its man page.
|
| |
|
|
|
|
|
|
|
| |
This patch adds git's implementation of the sha1 hash algorithm. This
makes osl more self-contained as it allows to build osl without
openssl being installed.
It should also reduce the startup time of applications that link
against libosl.
|
| |
|
|
| |
This does not work with all versions of (gnu) make.
|
| |
|
|
|
|
|
|
|
|
|
| |
On systems where cc != gcc, compilation likely fails because we are
using quite some gccisms in osl. So default to gcc but let the user
override the default by setting CC manually.
The straight-forward CC ?= gcc does not work with gnu make as make
assigns CC the default value "cc".
Thanks to Steffen Schmidt for pointing out this shortcoming.
|
| |
|
|
|
|
|
|
| |
As noted by Steffen Schmidt, in most projects the installation prefix is
spelled in caps, so follow this rule in osl.
Also use ?:= as the assignement operator as it creates a simply expanded
variable which is more suitable for the PREFIX variable.
|
| |
|
|
|
| |
- Fix name of symbolic link used during installation.
- Do not strip the installed library.
|
| | |
|
| |
|
|
| |
Another relict from the paraslash code.
|
| |\ |
|
| | |
| |
| |
| | |
Many thanks to Sebastian Schultheiss who created the logo.
|
| |/ |
|