Opened 5 years ago

Last modified 4 years ago

#43648 new defect

mpkg missing daemondo

Reported by: ctreleaven (Craig Treleaven) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 2.2.1
Keywords: Cc: cooljeanius (Eric Gallager), pixilla (Bradley Giesbrecht), robertoschwald@…
Port:

Description

I'm testing building a installer using 'port mpkg blah' where blah has a depends_run on mysql5-server. The /Library/LaunchDaemons /org.macports.mysql5.plist soft link is present but ${prefix}/bin/daemondo is not. Obviously, launchctl can't start the database without it.

Attachments (2)

Portfile (848 bytes) - added by ctreleaven (Craig Treleaven) 5 years ago.
HACK workaround
Portfile.2 (1.0 KB) - added by pixilla (Bradley Giesbrecht) 5 years ago.
Build daemondo as a port sourcing from base.

Download all attachments as: .zip

Change History (13)

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

True, daemondo would not be included. Your suggestion is that we include a copy of daemondo in every pkg that uses it?

I would guess that for most daemons, daemondo isn't needed. It dates from before launchd existed which probably makes daemondo largely unnecessary.

comment:2 Changed 5 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:3 Changed 5 years ago by ctreleaven (Craig Treleaven)

I'd didn't suggest a solution--I don't know much about the nuts and bolts of installer packages. I tried to research the topic on Apple Developer Connection but the only useful lead I got was to look at the help for PackageMaker. Which really didn't help much.

OTOH, daemondo is pretty small (37k on my system). Maybe the expedient solution is to throw in a copy whether it is used or not! I wish I knew how to kludge that right now...

comment:4 Changed 5 years ago by pixilla (Bradley Giesbrecht)

Cc: pixilla@… added

Cc Me!

comment:5 Changed 5 years ago by pixilla (Bradley Giesbrecht)

Would it be practical to make daemondo a port and have base depend on it when startupitem.create eq yes?

comment:6 Changed 5 years ago by ctreleaven (Craig Treleaven)

I've created a hack based on pixilla's idea. The attached 'MacPorts_daemondo' port copies daemondo into destroot and then (with -f to force), installs it back over itself. But then I can make MacPorts_daemondo a dependency and that gets it into the mpkg. Rude and crude but it works!

Changed 5 years ago by ctreleaven (Craig Treleaven)

Attachment: Portfile added

HACK workaround

Changed 5 years ago by pixilla (Bradley Giesbrecht)

Attachment: Portfile.2 added

Build daemondo as a port sourcing from base.

comment:7 in reply to:  5 Changed 5 years ago by cooljeanius (Eric Gallager)

Replying to pixilla@…:

Would it be practical to make daemondo a port and have base depend on it when startupitem.create eq yes?

With what sort of dependency? I would say it should be a depends_pkg-type dependency, except that that type of dependency does not exist yet: #38112

comment:8 Changed 4 years ago by robertoschwald@…

Cc: robertoschwald@… added

Cc Me!

comment:9 Changed 4 years ago by ctreleaven (Craig Treleaven)

Nasty hack to workaround:

r126918

comment:10 in reply to:  5 Changed 4 years ago by ryandesign (Ryan Schmidt)

Replying to pixilla@…:

Would it be practical to make daemondo a port and have base depend on it when startupitem.create eq yes?

We already want to make MacPorts itself a port. I had not considered separating daemondo out of that port, but doing that would help this scenario.

comment:11 Changed 4 years ago by ctreleaven (Craig Treleaven)

I would like to be able to use 'port [un]load' and 'port select' in my distributed package, as well. If MacPorts was a port, that would be possible, right?

Note: See TracTickets for help on using tickets.