Rationale behind naming "dot d" (.d) directories
Ryan Schmidt
ryandesign at macports.org
Wed Apr 22 23:25:31 PDT 2009
On Apr 23, 2009, at 00:46, Jordan K. Hubbard wrote:
> On Apr 22, 2009, at 10:33 PM, Ryan Schmidt wrote:
>
>> The reason I ask is for a change I'm working on for the php5
>> extension ports. Currently, ports like php5-memcache just print a
>> message telling the user to add these lines to their php.ini:
>>
>> extension_dir=/opt/local/lib/php/extensions/no-debug-non-zts-20060613
>> extension=memcache.so
>>
>> But php can be configured to look for additional ini files in a
>> certain directory. So I would like to modify the php5 port to do
>> this, and then modify ports like php5-memcache to just install a
>> file like e.g. memcache.ini which contains these lines. Then the
>> extension will automatically be loaded and the user won't have to
>> do it manually.
>
> Sounds laudable, just as long as you also figure out how to undo
> this when the php port is removed. Nothing worse than something
> which installs itself with side-effects yet fails to remove those
> side-effects when it's removed / upgraded away. :)
There shouldn't be side-effects. All files will be registered to the
corresponding ports, and will be uninstalled by MacPorts if the ports
are uninstalled. So e.g. uninstalling php5-memcache would remove
memcache.ini.
>> Currently, the php.ini is in /opt/local/etc. This is a little out
>> in the open and I would like to move it into a directory of its
>> own, probably named for the port, so, say, /opt/local/etc/php5.
>> This would also be a step toward allowing php4 and php5 (and a
>> hypothetical future php6) to be installed simultaneously which is
>> desirable.
>
> Sounds entirely reasonable.
>
>> Now I need a directory in which php5 extension ports will install
>> their small additional .ini files. I don't think it should be the
>> same /opt/local/etc/php5 directory because php is set up to first
>> look for its one true php.ini and then load all the additional ini
>> files in a directory; this might cause php.ini to be parsed twice,
>> which is at best wasteful and at worst could cause problems.
>
> How about having a "system" path of ${prefix}/etc/php5 and $
> {prefix}/var/db/php5 for the additional bits?
"man porthier" says ${prefix}/var/db is for "misc. automatically
generated system-specific database files". These would only be small
text files containing configuration information, so they're not
databases, so I don't know if this would be the right place... though
getting them out of ${prefix}/etc isn't entirely a bad idea, since I
don't want users modifying them. Would a place under ${prefix}/share
be something to consider? They are "architecture-independent
files"... Then again, though the user shouldn't modify the .ini files
we install, the user may want to add her own .ini files.
More information about the macports-dev
mailing list