Opened 10 years ago

Last modified 10 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 (Robert Oschwald)
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) 10 years ago.
HACK workaround
Portfile.2 (1.0 KB) - added by pixilla (Bradley Giesbrecht) 10 years ago.
Build daemondo as a port sourcing from base.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 10 years ago by ryandesign (Ryan Carsten 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 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:3 Changed 10 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 10 years ago by pixilla (Bradley Giesbrecht)

Cc: pixilla@… added

Cc Me!

comment:5 Changed 10 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 10 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 10 years ago by ctreleaven (Craig Treleaven)

Attachment: Portfile added

HACK workaround

Changed 10 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 10 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 10 years ago by robertoschwald (Robert Oschwald)

Cc: robertoschwald@… added

Cc Me!

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

Nasty hack to workaround:

r126918

comment:10 in reply to:  5 Changed 10 years ago by ryandesign (Ryan Carsten 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 10 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.