[dev] Web accessible git folder on OS X

Luis Felipe Marzagao lfbm.andamentos at gmail.com
Wed Aug 8 00:50:38 UTC 2012


Em 05/08/2012, às 14:41, Michael J Rubinsky escreveu:

> 
> Quoting Luis Felipe Marzagao <lfbm.andamentos at gmail.com>:
> 
>> Em 31/07/2012, às 16:08, Vilius ?umskas <vilius at lnk.lt> escreveu:
>> 
>>> Luis Felipe Marzagao <lfbm.andamentos at gmail.com> ra??:
>>> 
>>>> Hello:
>>>> 
>>>> Probably a non-horde question, but I would like to hear from others if possible.
>>>> 
>>>> Is it just me or is it extremely difficult to run a horde web accessible git tree in Mac OS X?
>>>> 
>>>> After several tries with MAMP and having a lot of trouble with pear, I decided to use native php+pear that comes with OS X (snow leopard).
>>>> 
>>>> After hours configuring it all and being able to successfully run web apps such as phpMyAdmin, I followed instructions from here (http://www.horde.org/development/git#making-development-repos-web-accessible) and horde test.php page gave an error msg about not finding textdomain() function in Registry.php.
>>>> 
>>>> God! In Ubuntu, CentOS and alikes its so easy to get it working.
>>>> 
>>>> What am I missing? Why is it so hard in OS X? Any tips or advices?
>>> 
>>> And one more thing: textdomain() is a gettext function, so it would be a good idea to check if native PHP on Mac OS X has gettext support.
>>> 
>> 
>> Okay, after installing macports things were much easier. Enabling gettext support was easy as 'sudo por install php5-gettext', and now horde test page loads.
>> 
>> But I'm still facing an issue I couldn't solve.
>> 
>> Horde test.php page says I have PEAR and the php's include_path shows the correct pear path in the list:
>> 
>> PEAR Search Path (PHP's include_path):  /Users/duli/git/horde/horde/lib:/Users/duli/Sites/horde/libs:/Users/duli/git/horde/horde/lib:.:/opt/local/lib/php
>> PEAR: Yes
>> The pear packages are inside /opt/local/lib/php:
>> 
>> MacBook:~ duli$ pear config-show | grep php_dir
>> PEAR directory                 php_dir          /opt/local/lib/php
>> 
>> But for some reason horde still says I don't have pear packages, although they are installed:
>> 
>> Crypt_Blowfish: No
>> Crypt_Blowfish is required to store authentication credentials securely within the session data. THIS IS A REQUIRED MODULE!
>> 
>> MacBook:~ duli$ pear list
>> Installed packages, channel pear.php.net:
>> =========================================
>> Package          Version State
>> Archive_Tar      1.3.7   stable
>> Auth_SASL        1.0.6   stable
>> Cache            1.5.6   stable
>> Console_Color    1.0.3   stable
>> Console_Getopt   1.3.0   stable
>> Console_Table    1.1.4   stable
>> Crypt_Blowfish   1.0.1   stable
>> DB               1.7.14  stable
>> File_Find        1.3.1   stable
>> HTTP_Request     1.4.4   stable
>> MDB2             2.4.1   stable
>> Net_DNS2         1.2.1   stable
>> Net_IMAP         1.1.1   stable
>> Net_SMTP         1.6.1   stable
>> Net_Socket       1.0.10  stable
>> Net_URL          1.0.15  stable
>> PEAR             1.9.4   stable
>> Services_Weather 1.4.6   stable
>> Structures_Graph 1.0.4   stable
>> Text_Figlet      1.0.2   stable
>> XML_SVG          1.1.0   stable
>> XML_Util         1.2.1   stable
>> 
>> The strange thing is if I install horde by the normal pear method, the resulting test page recognizes pear packages just fine. It's just the git web accessible method that fails.
>> 
>> How can I debug this? Any pointers are really appreciated.
>> 
> 
> Check to make sure that there isn't a local .pearrc file being loaded that you are not expecting to be loaded.

Hello, Mike. Thanks for answering.

I have discovered the issue. Include path and Autoload functionalities are all working just fine, just as pear config files.

The problem lies in Autoloader_Cache.  When you have no other cache system enabled (apc, xcache etc.), horde creates a temp file in /private/var/tmp with all the class names and paths found in include_path variable. This file just stays there in filesystem for future reference. 

So, if you run horde test page *before* you install necessary pear modules, the cache for class names will be stored with no paths as values (they will be null, since pear modules do not exist yet). Since this temp file is not recreated, then even *after* you install pear modules, horde will still think there are no pear modules installed, because it will check the cache temp file, and, thus, it will report and act as you were missing those pear modules, making the whole system fail.

But If you install pear modules *before* running horde test page for the first time (and, therefore, before the temp cache file is created), then correct paths for necessary classes will be created just fine and everything will work.

This is why things work when you install horde via pear. The dependencies are installed automatically while you install horde and when you run the horde test page for the first time, pear modules will already be there and will be cached just fine.

But if you want to work with git tree, you could run into the situation where you run horde test page *before* you install pear modules and then the issue happens.

To make things harder, in OS X the cache temp file is not erased, even after a computer restart. So you keep wondering what in hell is wrong with your system, because no matter what you do with pear modules, horde will keep telling you they are not present, until you manually delete the cache temp file. In Linux, the file goes away when you restart the computer, which is why I was thinking the problem was within OS X.

It appears to me horde should have a mechanism to delete the cache temp file when it's needed or, at least, advise the admin the temp file should be erased if pear modules are not being correctly detected.

Do you think it's the case of opening a bug report?

Sorry about the size of this message. It took me a while to discover what was going on.

Thanks again.

Luis Felipe

> -- 
> mike
> 
> The Horde Project (www.horde.org)
> mrubinsk at horde.org
> 
> -- 
> dev mailing list
> Frequently Asked Questions: http://wiki.horde.org/FAQ
> To unsubscribe, mail: dev-unsubscribe at lists.horde.org



More information about the dev mailing list