[MacPorts] #62994: various ports fail to install on Leopard due to gnulib issue: /confdir-14B---: No space left on device

MacPorts noreply at macports.org
Tue Jul 19 20:17:27 UTC 2022


#62994: various ports fail to install on Leopard due to gnulib issue: /confdir-
14B---: No space left on device
-------------------------------------------+----------------------
  Reporter:  kencu                         |      Owner:  mascguy
      Type:  defect                        |     Status:  assigned
  Priority:  Normal                        |  Milestone:
 Component:  ports                         |    Version:
Resolution:                                |   Keywords:  leopard
      Port:  m4 bison findutils coreutils  |
-------------------------------------------+----------------------

Comment (by ballapete):

 Replying to [comment:32 mascguy]:
 > Replying to [comment:31 kakuhen]:

 I just let MacPorts **build** the two packages. Both `ports` built, and
 both could be `clean`ed as well. The clue is the length of the path. My
 observation is that you can easily create an object that has a path name
 longer than allowed, longer than `#define`d in some C header file. When
 this happens then you cannot delete the last created directory, because it
 has now an illegal path length. What helps is to move (`mv`) some final
 part of the directory hierarchy into some other directory, / for example.

 This behaviour depends on the length of the starting point, i.e. the
 length of the path name leading to the directory in which the `port` was
 outpaced and will be built. The value also depends on the site from where
 `port` fetches the sources or into which category it falls. You can check
 this length by invoking

 {{{
 port work <the port's name> | wc -c
 }}}

 The `-devel` variation adds six characters to the path name's length –
 this can make the difference. Other ways to make the `port` build and
 install is to edit the `configure` file and lengthen or shorten the
 directory name `confdir-14B---` by adding or removing a minus sign or
 another character. The problem is that this to happen on more than one
 place since the `inline C code` of the test programmes does not use a
 shell variable set to the test directory name. And this can be done be
 letting `port` outpack the sources, kill the build process, edit the shell
 script, and let the build process start again. This the state of the build
 process was recorded in a DB (I presume), the build process just starts
 where it was interrupted and has the opportunity to succeed this time. If
 it fails again you'll have to clean, including some manual work, start
 again, kill, edit differently, continue – until installing succeeds.

-- 
Ticket URL: <https://trac.macports.org/ticket/62994#comment:33>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list