#52144: mariadb: support for mpkg / mdmg -----------------------------+----------------------- Reporter: ctreleaven@… | Owner: pixilla@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: mariadb-server | -----------------------------+----------------------- Comment (by ctreleaven@…): Attached is a new patch that adds packaging support as well as a couple of small tweaks to my previous patch. At over 150 lines, I know it is a lot to take in but it breaks down into logical groups. As in the previous patch, there are sections to copy the launchd plist out of ${filespath} and update the ${prefix} and port name. Then there are post-activate and pre-deactivate blocks to link/unlink the plist into /Library/LaunchDaemons. Then 29 lines for the plist itself. Now added is a pre-pkg block. This copies the two scripts (preinstall and postinstall) from ${filespath} and fixes the @NAME@ and @PREFIX@ placeholders. Also, ensures that the scripts have 0755 permissions. The preinstall script uses 'launchctl list' to check if the deamon is supposed to be running. If so, it unloads it. The postinstall script: - forces the launchd plist to 0644 permissions. I don't think the _should_ be necessary but sometimes had problems during testing. Easier just to use a sledgehammer and force it. - remove the old link in /Library/LaunchDaemons (if one is there) and put in the new one - force the right user/group on our directories in var/run, var/db and var/log. - run the upstream database initialization script, mysql_install_db. - again checks for a loaded daemon and unloads it if it is. Again ought to be unnecessary but harmless if the preinstall script did its job. - finally, use launchctl to load the daemon. The command line arguments in the launchd plist should bring up a minimally configured db server. Subsequently, the user (or another installer) can add a my.cnf configuration file to customize as desired. In addition, I made a gratuitous change to the long_description. (Wording is a mash-up from the MariaDB About page.) This description appears on the Installer splash screen after packaging and seems a little more descriptive of what the user is about to inflict on their system. Barring objections, I plan commit these changes under openmaintainer in the next few days. I feel the startupitem to launchd plist changes are relatively low risk. I'll try to handle anything that might crop up. My packaging-related changes only have any effect if one is creating an mpkg or mdmg. My impression is that there are very few people doing that --it would not work now because of the daemondo problem. -- Ticket URL: <https://trac.macports.org/ticket/52144#comment:3> MacPorts <https://www.macports.org/> Ports system for macOS