Opened 9 years ago

Closed 6 years ago

#48045 closed defect (fixed)

dbus "no_root" fails to install

Reported by: ocroquette (Olivier Croquette) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc:
Port: dbus

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Command: "port install dbus +no_root", with the target directory in my user directory

The first error is:

error renaming "/Users/user/bin/macports/var/macports/software/dbus/mpextractNk3f1e8H/Library/LaunchAgents/org.freedesktop.dbus-session.plist" to "/Library/LaunchAgents/org.freedesktop.dbus-session.plist": permission denied

A workaround is to set startupitem_install no in macports.conf

The second error is:

:debug:activate Backtrace: could not set group for file "/Users/user/bin/macports/var/run/dbus": not owner

(at that point however, the port is already activated, so it's possible to install other ports that depend directly or indirectly on dbus)

Change History (5)

comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: mcalhoun removed
Description: modified (diff)
Owner: changed from macports-tickets@… to mcalhoun@…

The first error is expected, in that it is known that you cannot install files into root-owned locations like /Library if you are not root, so you should ask MacPorts not to attempt to do so. To do that, you should set startupitem_install no in macports.conf as you already discovered. This is not specific to the dbus port.

I'm not certain about the second issue.

comment:2 Changed 9 years ago by ocroquette (Olivier Croquette)

Thanks for the reply. Can't "startupitem_install" be set set implicitly for the no_root variant?

Last edited 9 years ago by ocroquette (Olivier Croquette) (previous) (diff)

comment:3 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

I feel that the "no_root" variant should not exist. Instead, the port should detect if the MacPorts prefix was created with a non-root user, and act accordingly.

As far as I know, the inability of dbus no_root to install a launchd plist is not specific to the dbus port. Any port attempting to install a launchd plist would experience this failure in a non-root MacPorts prefix. Therefore, it is not up to each port to fix this, but rather it is up to the user to configure their MacPorts installation properly. If any change is needed in MacPorts related to this, it would be a change in MacPorts base to either alert the user to their improper configuration and/or for the installation process to automatically disable startupitems if the installation isn't going to use root.

comment:4 Changed 9 years ago by ocroquette (Olivier Croquette)

I tend to agree with that. Some things that might help:

  • maintain an official "non-root" howto
  • support it in the official installer (AFAIK, currently on has to compile MacPorts him/herself)
  • provider helpers/automatism's for Portfile maintainers

comment:5 Changed 6 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: newclosed

Currently, dbus does not attempt to do anything requiring root access if the no_root variant is selected (see here), so I will mark this ticket as fixed.
Please feel free to reopen if this is not, in fact, the case.

Note: See TracTickets for help on using tickets.