diff options
Diffstat (limited to '262')
-rw-r--r-- | 262/index.md | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/262/index.md b/262/index.md new file mode 100644 index 0000000..fa9f3fe --- /dev/null +++ b/262/index.md @@ -0,0 +1,104 @@ +Title: Configure uses `which` which is not POSIX compliant +Author: Kangie +Created: Tue, 01 Oct 2024 01:16:01 +0000 +State: closed + +## Issue + +``` +checking FLTK 1.3... yes +checking whether to link to X11... yes +checking for jpeglib.h... yes +checking for jpeg_destroy_decompress in -ljpeg... yes +checking for zlib.h... yes +checking for zlibVersion in -lz... yes +checking for libpng-config... ./configure: line 7202: which: command not found +./configure: line 7204: which: command not found +./configure: line 7207: which: command not found +``` + +`which` is not listed as a required command by POSIX and should be replaced by `command -v`. + +See also: https://bugs.gentoo.org/940568 + +## Reproducing + +Attempt to configure dillo on a machine without `which`. + +## Resolution + +Exorcise `which` from the codebase. + +Examples: + +https://github.com/dillo-browser/dillo/blob/4f303337cdf3d86b69918a137db19351cdbae581/autogen.sh#L18 + +https://github.com/dillo-browser/dillo/blob/4f303337cdf3d86b69918a137db19351cdbae581/configure.ac#L298-L313 + + +--%-- +From: Kangie +Date: Tue, 01 Oct 2024 01:19:19 +0000 + +Would you accept a PR that switched to the `meson` build system rather than patching autotools? + +It will prove to be more maintainable, will eliminate this issue entirely, and in terms of 'needs to run anywhere' there are [muon](https://github.com/muon-build/muon) and [samurai](https://github.com/michaelforney/samurai) which are C99 implementations of Meson and Ninja respectively. + +--%-- +From: Kangie +Date: Tue, 01 Oct 2024 01:21:29 +0000 + +Re: + +https://github.com/dillo-browser/dillo/blob/4f303337cdf3d86b69918a137db19351cdbae581/configure.ac#L298-L313 + +If autotools is to be retained this whole section (and the checks afterwards) could be trivially simplified to 'query pkg-config'. + +--%-- +From: rodarima +Date: Tue, 01 Oct 2024 17:08:23 +0000 + +I commented on the meson build in the PR. Let's keep this issue to solve *only* the problem of removing `which` to `command -v`, which should be fairly easy to do. + +We don't have a build dependency over `pkg-config`, so I don't think this particular problem needs to pull it. + +--%-- +From: eli-schwartz +Date: Tue, 01 Oct 2024 23:19:23 +0000 + +Instead of using `command -v`, there is preexisting code earlier in this file: +```m4 +AC_PATH_PROG(FLTK_CONFIG,fltk-config) +``` + +indicating the correct way to check for a program while respecting pre-set environment variables, is already known. + +> We don't have a build dependency over `pkg-config`, so I don't think this particular problem needs to pull it. + +"which" isn't the problem that is solved by using pkg-config. You still have to check for and find `pkg-config` as well. + +The problem that is solved by using pkg-config is the cross-compilation problem. :) There are plenty of other dependencies that can use the same treatment... openssl, zlib, jpeg... + +--%-- +From: eli-schwartz +Date: Tue, 01 Oct 2024 23:20:47 +0000 + +It's possible to check pkg-config first and fall back to foobar-config programs only when that fails. + +--%-- +From: rodarima +Date: Wed, 02 Oct 2024 05:15:08 +0000 + +> ...indicating the correct way to check for a program... + +The `which` command is not needed, so I prefer to switch to `command -v` which should be available in a POSIX shell. + +> The problem that is solved by using pkg-config is the cross-compilation problem + +Then I recommend you address it in another issue. I think this may also help #258 and #34. It would be nice to have a cross-compilation build in the CI, but I'm not sure if I know how to set it up. + +--%-- +From: rodarima +Date: Thu, 03 Oct 2024 19:43:02 +0000 + +Fixed in https://github.com/dillo-browser/dillo/commit/9880c1ba603a6080b2493c7c399ae36d656a9834
\ No newline at end of file |