aboutsummaryrefslogtreecommitdiff
path: root/262
diff options
context:
space:
mode:
Diffstat (limited to '262')
-rw-r--r--262/index.md104
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