| Commit message (Collapse) | Author | Age |
| | |
|
| |
|
|
|
|
|
|
| |
Build lopsubgen twice during cross compilation since it is both run and
installed. This will enable cross building liblopsub on other distributions
such as Yocto or PtxDist.
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |
|
|
|
| |
Defining .SECONDARY instructs make(1) to never drop the files generated by lex.
This avoids spurious rebuilds, speeding up the build.
|
| |
|
|
|
| |
The unused variables did not cause warnings because we don't compile .c
files generated by flex(1) with STRICT_CFLAGS.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Debian-related changes no longer happen in master. Instead, a
dedicated branch will be created whose commits may only modify
files below debian/. Whenever a new release is cut from the master
branch, the master branch will be merged into the debian branch and
debian/changelog will be updated accordingly.
Suggested-by: Andreas Metzler <ametzler@bebt.de>
|
| |
|
|
|
|
|
|
|
| |
dpkg-buildflags() emits a number of var=val pairs, which specifically
set LDFLAGS. By turning on hardening, the value includes -z,now to
tell the linker to resolve all symbols at startup time, which is a
prerequisite for a read-only global offset table.
Suggested-by: lintian(1)
|
| |
|
|
|
|
|
|
|
|
|
| |
Scanning through the changes listed in
/usr/share/doc/debian-policy/upgrading-checklist.txt.gz
(after installing the debian-policy package) indicated that lopsub
is compliant with the current standard.
Suggested-by: lintian(1)
|
| |
|
|
|
|
|
| |
Packages without explicit section header get libdevel, which is not
correct for liblopsub1t64.
Suggested-by: lintian(1)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This helps dpkg to generate more accurate library dependencies.
This initial version of the file was created with
dpkg-gensymbols -pliblopsub1t64 -q
sed -e 's/-1.1$//g' debian/tmp/DEBIAN/symbols > debian/liblopsub1t64.symbols
The second line (the one which starts with the asterisk) was added
manually. This is the meta-information field used by dpkg-shlibdeps(1).
Suggested-by: lintian(1)
|
| |
|
|
|
|
|
| |
This file contains MD5 checksums of the package contents, and
providing it is recommended.
Suggested-by: lintian(1)
|
| | |
|
| |
|
|
|
|
| |
Maintainers are strongly encouraged to use it.
Suggested-by: lintian(1)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The watch file is an adjusted version of the "direct access to the
git repository (tags)" example of uscan(1) (part of the devscripts
package), which is appropriate for lopsub since the project does not
publish release tarballs.
The key file was created with
gpg --export --export-options export-minimal --armor \
87B45FDC6D91B2CA5BEAAB545ADA35403100930F > signing-key.asc
Suggested-by: lintian(1)
|
| |
|
|
|
|
|
| |
It is generally recommended to use an unencrypted transport protocol.
Thanks to Johannes Wörner for setting up https on the git server.
Suggested-by: lintian(1)
|
| |
|
|
|
|
|
|
|
|
| |
This fixes the
package-name-doesnt-match-sonames
warning that lintian(1) currently emits.
Suggested-by: lintian(1)
|
| |
|
|
| |
It is already listed in the first (source file) stanza.
|
| |
|
|
|
|
|
|
| |
These were missed to add when Steve's patch against an older commit
was converted into an incremental patch on top of b4d4de17a5c8.
This bug is mine, not Steve's.
Fixes: b156a0cabd42582e9c430ae4a284f8815746914e
|
| |
|
|
|
|
| |
It's good practice to include CPPFLAGS, CFLAGS and LDFLAGS in the
rules which invoke the linker. We already do this for the former two,
so do the same with LDFLAGS as well.
|
| |
|
|
|
|
| |
All URLs of the source code work as well with the https transport,
which is generally preferred. The links in the files below debian/
will be adjusted in a separate commit.
|
| |
|
|
| |
There is no tilde in the URL. This affects the lopbsupgen man page.
|
| |
|
|
|
|
|
|
|
|
| |
This partially reverts reverts commit b4d4de17a5c8, replacing it with
the version that has been uploaded to unstable.
It adds a versioned build-dependency on dpkg-dev to guard against
accidental backports with a wrong ABI.
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |
|
|
|
|
|
| |
It's sometimes handy to create a static version of the library,
although this is generally frowned upon. No standard target depends
on the new liblopsub.a target, so the static library is not build by
default. One has to explicitly run "make liblopsub.a" to build it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As part of the 64-bit time_t transition required
to support 32-bit architectures in 2038 and beyond
(https://wiki.debian.org/ReleaseGoals/64bit-time), we have identified
liblopsub as a source package shipping runtime libraries whose ABI
either is affected by the change in size of time_t, or could not be
analyzed via abi-compliance-checker (and therefore to be on the safe
side we assume is affected).
To ensure that inconsistent combinations of libraries with their
reverse-dependencies are never installed together, it is necessary
to have a library transition, which is most easily done by renaming
the runtime library package.
Since turning on 64-bit time_t is being handled
centrally through a change to the default dpkg-buildflags
(https://bugs.debian.org/1037136), it is important that libraries
affected by this ABI change all be uploaded close together in time.
Therefore I have prepared a 0-day NMU for liblopsub which will
initially be uploaded to experimental if possible, then to unstable
after packages have cleared binary NEW.
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |
|
|
|
|
|
|
|
|
| |
The old code misparses the config file if it contains a flag option
which is followed by a newline which starts with whitespace. In this
case, since newlines belong to the [[:space:]] class, the option is
regarded as an option with argumment.
Fix this by s/:space:/:blank:/. The [[:blank:]] class only contains
space and tab. which is what the code expects.
|
| |
|
|
|
|
| |
This code is #ifdef'ed out, so the typo was never noticed. Add a
comment which explains how to create a binary from the .l file while
at it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If yylex() fails, yyget_lineno() should not be called because it
accesses uninitialized memory:
==23686== Use of uninitialised value of size 4
==23686== at 0x46FA85D: _itoa_word (_itoa.c:178)
==23686== by 0x4704E14: __printf_buffer (vfprintf-process-arg.c:155)
==23686== by 0x471B91C: __vsprintf_internal (iovsprintf.c:62)
==23686== by 0x47010DD: sprintf (sprintf.c:30)
==23686== by 0x45A019F: lls_convert_config (config_file.l:272)
==23686== by 0x804F0BA: parse_options (misma.c:741)
==23686== by 0x804A879: main (misma.c:1529)
Just omit printing the line number for now.
|
| |
|
|
| |
This provides a way to support local recipes.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a string option with multiple=false is given twice at the command
line, the second and all subsequent calls to lls_parse_arg() discard
the previous value stored in lor->value[0].
However, if the option takes an optional argument and was first
specified without argument, lor->value remains NULL because the
first call to lls_parse_arg() returned early due to the shortcut
at the beginning of the function while the second call skips the
allocation because lor->given is increased also when no argument is
given, so it equals one during the second call. Thus, the attempt
to free lor->value[0] further down in the function results in a NULL
pointer dereference.
Fix this by checking lor->value rather then lor->given. To make this
work we have to move up the code which frees the old string value.
While at it, reduce memory usage by not over-sizing the array. We
now only allocate space for idx + 1 values rather than lor->given +
1. This is different in the case mentioned above.
|
| |
|
|
|
|
|
|
|
|
|
| |
When min_argc == max_argc, the function checks whether exactly this
many arguments are given. In the error case, it says
exactly N non-option args allowed, M given
which reads a bit weird. With the patch applied the message becomes
exactly N non-option args required, M given
|
| |
|
|
| |
These texts should *not* contain roff source code.
|
| |
|
|
| |
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The build system fails in unexpected ways when required programs like
m4 or flex are not installed. One particular problem is a construct
of the form
$(M4) ... > $@
in the recipe of the lopsub.h target. If m4 is not installed, this
results in an empty lopsub.h file, which is considered up-to-date
by subsequent runs of make(1). The subsequent compilation of lsg.c
succeeds despite of the empty lopsub.h, but the resulting executable
segfaults.
The reason is that lsg1.c includes lopsub.h to declare lls_version(),
but due to lopsub.h being empty, the declaration is missing and the
compiler implicitly assumes an int return value rather than char *.
This patch series addresses this problem in several ways. With the
series applied:
* the build fails early if m4 or flex are not installed,
* missing function declarations are considered errors rather than warnings,
* incompletely written targets are removed by make(1).
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replacing lopsub.h by an empty file builds a buggy lopsubgen-stage1
executable which segfaults due to a format string mismatch caused
by the implicit declaration of lls_version(). In this package all
functions are supposed to be declared, so let's fail the build if
any undeclared functions are found.
Tested-by: Alex Gietz <oss@mcdinner.de>
|
| | |
| |
| |
| |
| |
| |
| | |
Introduce LLS_CFLAGS and STRICT_CFLAGS to avoid duplicating the flags
in the various cc recipes. We don't touch CFLAGS or CPPFLAGS in the
Makefile but include it the cc commands to let the user override
our settings.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since m4 lacks the -o option to specify an output file, we redirect
stdout in several recipes, in particular in the recipe that creates
lopsub.h from lopsub.h.m4. If the m4 command fails, lopsub.h will
be incomplete or empty, yet it will be considered as up-to-date
by make(1).
This patch teaches make(1) to remove such incomplete output files
on errors.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This gives a decent error message on the attempt to run make(1) on a
system where one or both of these essential programs are not installed.
A previous version of the patch used .SHELLSTATUS instead of the
dummy variable, but this did not work with make-4.1 which ships
with Ubuntu-18.04.
Suggested-by: Alex Gietz <oss@mcdinner.de>
|
| |/
|
|
| |
Specifying -g more than once has no effect.
|
| |
|
|
|
| |
This was over-engineered, and only one of the three rules which
create .html files depends on both the header and the footer.
|
| |
|
|
|
|
|
|
| |
This target is supposed to create the html files of the home page.
This broke one year ago when the build system was instructed to create
compressed man pages. Fortunately, the fix is trivial.
Fixes: f35b70fc3e8656f71437cc85062da31488acd781
|
| |
|
|
|
|
| |
These were pointed out by lintian. See the lintian report page:
https://lintian.debian.org/full/maan@tuebingen.mpg.de.html
|
| |
|
|
|
|
|
|
|
|
|
| |
Whilst working on the Reproducible Builds effort [0] we noticed that
liblopsub could not be built reproducibly.
This is because it calls "gzip" manually without the -n
flag. This should have been reported by lintian via the
package-contains-timestamped-gzip tag.
[0] https://reproducible-builds.org/
|
| |
|
|
|
| |
Bump the debian version number to quickly land the two recent fixes
for reproducible builds.
|
| |
|
|
|
|
|
|
| |
Commit bb3a974325f (Don't embed compile-time timestamps into generated
files) from a couple of weeks ago introduced a leading '+' in case
SOURCE_DATE_EPOCH is not set because DATE_FMT already contains the
'+' character for the argument to date(1), The superfluous '+'
becomes part of the generated man pages, which looks a bit weird.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whilst working on the Reproducible Builds effort [0], we noticed that
liblopsub generates output that is not reproducible. The lopsubgen
utility does not respect SOURCE_DATE_EPOCH [1] and thus packages such
as src:tfortune are rendered unreproducible as they then encode the
build date and time.
This patch makes lopsubgen honour SOURCE_DATE_EPOCH.
[0] https://reproducible-builds.org/
[1] https://reproducible-builds.org/specs/source-date-epoch/
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| |
|
|
|
|
|
|
|
|
| |
Currently the build is not reproducible because make(1) runs
date(1) to provide the month and the year for the man page. Fix
this by honouring SOURCE_DATE_EPOCH as described in
https://reproducible-builds.org/specs/source-date-epoch/
Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
|
| | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This octopus merge combines four branches, two of which were created
with the aim of making the package acceptable for inclusion into
Debian: The t/dynamic-lib branch instructs make to create a dynamic
library instead of the static one, the t/debian branch adds the usual
files below debian/.
The remaining two branches, t/lls_check_arg_count and t/news, contain
only a single commit each. The first improves the wording of an error
message while the second introduces the NEWS file, respectively.
The tree which corresponds to this commit was accepted for Debian
unstable on May 15 2019 as version 1.0.2-1.
|
| | | | |
| | | |
| | | |
| | | | |
It's nice to have a concise overview of the changes.
|