On 2018-04-09 01:20, Joshua Root wrote: > On 2018-4-9 08:43 , Rainer Müller wrote: >> This handles ports that create .plist files via startupitem.* or the new >> startupitems. However, there are also ports that install custom .plist >> file to ${destroot}/Library/Launch*. Some ports even do that >> unconditionally. > > Ports that do this should set 'startupitem.create no' and > 'startupitem.type launchd', plus whatever other variables like > startupitem.name are needed based on what they called their plist.
I found no port in or ports tree that does it that way. There are only exactly two ports that use 'startupitem.create no': mpstats and certsync. But these do not set startupitem.type either. And even they create the symlink in /Library/Launch* manually... Other ports just install a .plist to ${prefix}/etc/Launch*/org.macports.${name}/*.plist and creates the symlink at /Library/Launch*/*.plist without setting any startupitem.* option. For example, mysql*-server (and the percona and mariadb forks). As far as I can see, 'startupitem.create no' is not required right now and not used. I do not think Portfile authors will understand why it would be necessary. We should find a solution without it. > I've been wondering if we should also have an option called something > like startupitem.file that could be set to a path, e.g. > ${filespath}/my_job.plist, and then base would install it to the right > place. This could work, except for ports where the upstream build system already installs the .plist. For example, xinit. https://github.com/macports/macports-ports/blob/master/x11/xinit/Portfile#L53 Rainer