View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0003801 | GNUnet | build process | public | 2015-05-29 13:26 | 2018-06-07 00:24 |
| Reporter | lynX | Assigned To | Christian Grothoff | ||
| Priority | high | Severity | tweak | Reproducibility | always |
| Status | closed | Resolution | won't fix | ||
| Product Version | 0.10.1 | ||||
| Target Version | 0.11.0pre66 | Fixed in Version | 0.11.0pre66 | ||
| Summary | 0003801: gnunet-arm looks for config.d in architecture-dependent installation prefix | ||||
| Description | "gnunet-arm -s" terminates with: May 29 13:20:16-925022 util-28125 WARNING `stat' failed on file `<linux-specific-prefix>/share/gnunet/config.d' at disk.c:1215 with error: No such file or directory May 29 13:20:16-925130 gnunet-arm-28125 ERROR Malformed configuration, exit ... configuration was: ./configure --prefix=<architecture-independent-prefix> --exec-prefix=<linux-specific-prefix> explanation: GNUnet should use the architecture-independent prefix when looking for architecture-independent configuration files. | ||||
| Tags | No tags attached. | ||||
|
|
I'm honestly not sure HOW to fix this. The issue is that if exec-prefix and prefix differ, we obviously cannot derive prefix from exec-prefix. OTOH, we must not hard-code paths into the binaries as some package managers require us to install to /foo and later run from /bar -- which is why we have this crazy os_installation.c logic that figures out exec-prefix, and then determine the rest of the locations relative from there. |
|
|
So lynX, if you look at the GNUNET_OS_IPK_-enum values (IPK = installation path kind) and the os_installation.c-logic, I'd be very interested in a portable, generic and clean method that would support different prefix and exec-prefix and also work with different package managers and other nuisances out there. I would be happy to help with hacking it up, I'm just not even sure what the code should look like to do this right. |
|
|
The generated Makefile has lines like… bindir = ${exec_prefix}/bin datarootdir = ${prefix}/share exec_prefix = <arch-dependent-path> prefix = <shared-path> You can cheat by passing both of these prefixes into os_installation.c and have it look for the stuff in there – just expect that binaries may not be in the same path with text files. It's probably actually a historical relict. It was considered good software design style in the 90's, when sysadmins had separate NFS partitions for the architecture dependent and the shared architecture-independent application data. Since disk space was expensive, this actually mattered. Admins typically had to manage a plethora of Sun, IBM, DEC etc systems which would share the same network file system protocol and text file format, but not the executables. I by habit still maintain my software this way as I still have some BSDs under my governance, but I could actually stop this anachronistic behaviour. I'm not surprised that newer software administration systems completely disregard this past tradition and pose new challenges to software packages. So it is up to you. Do you want to support an ages old tradition that lingers on in the default GNU configure settings, or do you prefer to postpone this bug to see if anybody else will ever even notice? Now that I know that it isn't just a tweak on your side I can easily move the shared data into the architecture-dependent depot and forget about the old habits. |
|
|
Right, that's the problem, I can grab those from Makefile, but IIRC with dpkg and/or rpm this won't work because they do use prefix=/foo and then run from /bar (and thus rely on relocatable binaries unless the maintainer jumps through extra hoops). So given the choice between making life hell for modern distributions or supporting 'ancient' shared-arch app-data, I so far picked the 'modernist' style. Doing both would of course be better... Or, maybe the fix is to disallow --exec-prefix in configure somehow... |
|
|
I was able to use DESTDIR instead, since 0003900. The old architecture-independent-prefix semantics is probably not needed by anyone. |
|
|
Probably not going to be needed by anyone alive. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2015-05-29 13:26 | lynX | New Issue | |
| 2015-05-29 14:06 | Christian Grothoff | Assigned To | => Christian Grothoff |
| 2015-05-29 14:06 | Christian Grothoff | Status | new => assigned |
| 2015-05-29 14:08 | Christian Grothoff | Priority | low => high |
| 2015-05-29 14:08 | Christian Grothoff | Target Version | => 0.11.0pre66 |
| 2015-05-29 14:13 | Christian Grothoff | Note Added: 0009160 | |
| 2015-05-29 14:14 | Christian Grothoff | Target Version | 0.11.0pre66 => |
| 2015-05-29 14:15 | Christian Grothoff | Note Added: 0009161 | |
| 2015-05-29 14:15 | Christian Grothoff | Status | assigned => feedback |
| 2015-05-29 14:45 | lynX | Note Added: 0009169 | |
| 2015-05-29 14:45 | lynX | Status | feedback => assigned |
| 2015-05-29 14:52 | Christian Grothoff | Note Added: 0009172 | |
| 2015-05-31 21:49 | Christian Grothoff | View Status | private => public |
| 2016-05-20 04:11 | lynX | Note Added: 0010694 | |
| 2016-05-20 04:12 | lynX | Note Added: 0010695 | |
| 2016-05-20 04:12 | lynX | Status | assigned => resolved |
| 2016-05-20 04:12 | lynX | Resolution | open => won't fix |
| 2017-02-26 02:18 | Christian Grothoff | Fixed in Version | => 0.11.0pre66 |
| 2017-02-26 02:18 | Christian Grothoff | Target Version | => 0.11.0pre66 |
| 2018-06-07 00:24 | Christian Grothoff | Status | resolved => closed |