summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* lopsub-1.0.6HEADv1.0.6masterAndre Noll2025-09-24
|
* Rework Makefile to support cross compilation.Helmut Grohne2025-09-20
| | | | | | | | 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>
* build: Never remove any intermediate files.Andre Noll2025-09-20
| | | | | Defining .SECONDARY instructs make(1) to never drop the files generated by lex. This avoids spurious rebuilds, speeding up the build.
* lopsubgen.l: Remove some unused variables.Andre Noll2025-09-20
| | | | | The unused variables did not cause warnings because we don't compile .c files generated by flex(1) with STRICT_CFLAGS.
* lopsub-1.0.5v1.0.5Andre Noll2024-05-11
|
* Remove debian/.Andre Noll2024-05-11
| | | | | | | | | | 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>
* debian: use fortified libc.Andre Noll2024-05-10
| | | | | | | | | 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)
* debian: Update Standards-Version.Andre Noll2024-05-10
| | | | | | | | | | | 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)
* debian: Add missing Section header for liblopsub1t64.Andre Noll2024-05-10
| | | | | | | Packages without explicit section header get libdevel, which is not correct for liblopsub1t64. Suggested-by: lintian(1)
* debian: Add symbols control file.Andre Noll2024-05-10
| | | | | | | | | | | | | | 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)
* debian: Create an md5sums control file.Andre Noll2024-05-10
| | | | | | | This file contains MD5 checksums of the package contents, and providing it is recommended. Suggested-by: lintian(1)
* debian: Remove an unused variable from rules file.Andre Noll2024-05-10
|
* debian: Activate the dh sequencer.Andre Noll2024-05-10
| | | | | | Maintainers are strongly encouraged to use it. Suggested-by: lintian(1)
* debian: Add watch file and public signing key.Andre Noll2024-05-10
| | | | | | | | | | | | | | 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)
* debian: Prefer https over http and git.Andre Noll2024-05-10
| | | | | | | 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)
* debian: Add the lintian override to the binary package.Andre Noll2024-05-10
| | | | | | | | | | This fixes the package-name-doesnt-match-sonames warning that lintian(1) currently emits. Suggested-by: lintian(1)
* debian: Remove duplicate homepage link from control file.Andre Noll2024-05-10
| | | | It is already listed in the first (source file) stanza.
* debian: Add two missing files.Andre Noll2024-05-10
| | | | | | | | 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
* build: Honor LDFLAGSAndre Noll2024-05-10
| | | | | | 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.
* Switch to https.Andre Noll2024-05-10
| | | | | | 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.
* lopsubgen.suite: Fix homepage link.Andre Noll2024-04-29
| | | | There is no tilde in the URL. This affects the lopbsupgen man page.
* debian: Final version of 64-bit time_t transition.Steve Langasek2024-03-03
| | | | | | | | | | 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>
* Add target to create a static library.Andre Noll2024-02-25
| | | | | | | 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.
* debian: 64-bit time_t transition.Steve Langasek2024-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix flag option parsing bug in config file parser.Andre Noll2023-11-07
| | | | | | | | | | 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.
* Fix typo in config file test program.Andre Noll2023-11-07
| | | | | | 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.
* Don't print invalid line numbers in error messages.Andre Noll2023-11-07
| | | | | | | | | | | | | | | | 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.
* Makefile: Include Makefile.local if it exists.Andre Noll2023-11-07
| | | | This provides a way to support local recipes.
* lopsub-1.0.4v1.0.4Andre Noll2023-07-02
|
* lls_parse_arg(): Avoid NULL pointer dereference.Andre Noll2023-06-28
| | | | | | | | | | | | | | | | | | | | | | 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.
* Improve error message of lls_check_arg_count().Andre Noll2023-06-28
| | | | | | | | | | | 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
* Fix documentation of [introduction] and [conclusion].Andre Noll2023-06-28
| | | | These texts should *not* contain roff source code.
* Makefile: Add -ffile-prefix-map to CC to avoid embedding build paths.Vagrant Cascadian2023-06-27
| | | | Signed-off-by: Andre Noll <maan@tuebingen.mpg.de>
* Merge branch 't/build-improvements'Andre Noll2021-05-09
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * build: Error out on implicit function declarations.Andre Noll2021-04-28
| | | | | | | | | | | | | | | | | | | | 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>
| * build: Improve handling of compiler options.Andre Noll2021-04-28
| | | | | | | | | | | | | | 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.
| * build: Activate .DELETE_ON_ERROR.Andre Noll2021-04-28
| | | | | | | | | | | | | | | | | | | | | | 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.
| * build: Bail out early if m4 or lex don't exist.Andre Noll2021-04-28
| | | | | | | | | | | | | | | | | | | | | | 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>
| * build: Remove duplicate -g in cc command.Andre Noll2021-04-26
|/ | | | Specifying -g more than once has no effect.
* build: Avoid "html" rule with empty recipe.Andre Noll2020-07-07
| | | | | This was over-engineered, and only one of the three rules which create .html files depends on both the header and the footer.
* Fix build target www.Andre Noll2020-07-07
| | | | | | | | 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
* Fix three typos.Andre Noll2019-12-12
| | | | | | These were pointed out by lintian. See the lintian report page: https://lintian.debian.org/full/maan@tuebingen.mpg.de.html
* Make the build reproducible.Chris Lamb2019-12-02
| | | | | | | | | | | 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/
* lopsub-1.0.3-2Andre Noll2019-07-13
| | | | | Bump the debian version number to quickly land the two recent fixes for reproducible builds.
* Makefile: Get rid of superfluous '+' character in date.Andre Noll2019-07-13
| | | | | | | | 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.
* lsg.c: Make the output of lopsubgen reproducible.Chris Lamb2019-07-12
| | | | | | | | | | | | | | | 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>
* Don't embed compile-time timestamps into generated files.Chris Lamb2019-06-05
| | | | | | | | | | 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>
* lopsub 1.0.3v1.0.3Andre Noll2019-05-19
|
*---. Merge branches 't/debian', 't/dynamic-lib', 't/lls_check_arg_count' and 't/news'Andre Noll2019-05-17
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | * Add NEWS file containing release notes.Andre Noll2019-05-11
| | | | | | | | | | | | | | | | It's nice to have a concise overview of the changes.