| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
Gentoo-Bug: 491866
|
| |
|
|
|
|
|
|
|
|
| |
The update_sapi() function was not working due to a call to set_$sapi
that was never caught. Some of the logic in both do_update() and
update_sapi() was clarified, and the update_sapi() function was
documented. The "update" action and "cleanup" (which uses it) now work
as expected.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The cleanup_sapis() function was only called in one place, so it was a
pointless layer of indirection. Move it into do_cleanup(). Also, make
sure we don't remove libphp[57].so symlinks unless they're actually
symlinks and in fact dead.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The last few commits introduced a problem: by passing
php.eselect.in.in through autoconf, we unwittingly replace things like
@bindir@ with ${exec_prefix}. This is because lowercase @bindir@
gets defined for automake and is intended to be based on the other
directory variables like @exec_prefix@. Since we're replacing them
after the fact in the Makefile, this commit avoids the autoconf
mangling by making them all uppercase.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The get_libdirs() function is a heuristic to determine which libdirs
are available on the system. The get_active_libdir() function then
chose the first one as the "active" libdir. In a few places we either
chose the "active" libdir, or looped through all of them to find some
other thing of interest (like the valid targets).
Now that we compute @libdir@ at build time, we can replace all of that
with the one correct value of @libdir@. The functions get_libdirs()
and get_active_libdir() are removed entirely.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are currently shipping 70_mod_php.conf as part of the Gentoo ebuild
for eselect-php. This introduces a potential disconnect between the
path in php.eselect and the path in 70_mod_php.conf. By adding the
conf file to the project, we are able to ensure that they are both
set to the same value. Moreover, the new autotools directory magic
lets us set them both based on @localstatedir@. So, for example, in
the conf file we have "@localstatedir@/lib/eselect-php/mod_php.conf"
and in php.eselect we have "@localstatedir@/lib/eselect-php".
We have followed the PHP project's lead in assuming that
$localstatedir will be set to (for example) /var and not /var/lib.
See Gentoo bug 572002. For testing, you should now use something like,
./configure --bindir=/usr/bin --sysconfdir=/etc --localstatedir=/var
Of course, the ebuild for eselect-php will automatically pass the
correct values to ./configure.
|
|
|
|
|
|
|
|
|
| |
As a first test of the new directory substitution, replace one
instance of custom bindir handling. Use @bindir@ instead of
"${EROOT}/usr/bin" sapi_active_link_dir(). The results should
coincide when configured with,
./configure --bindir="${EROOT}"/usr/bin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we create php.eselect from php.eselect.in using autoconf, we
don't have a way to get the full, expanded value of @bindir@,
@libdir@, and the other paths that we need. The autoconf documentation
suggests a workaround for this: add another layer of indirection, and
use the Makefile to substitute those values into the output files.
This commit sets the stage by renaming php.eselect.in to
php.eselect.in.in. The first round of processing by autoconf takes
php.eselect.in.in to php.eselect.in. The Makefile will then generate
php.eselect from php.eselect.in after substituting @bindir@, @libdir@,
and @localstatedir@.
|
|
|
|
|
|
|
|
|
| |
The cleanup() action is supposed to remove the old links to libphp5.so
and libphp7.so, but the pattern was accidentally quoted and thus
nothing was removed. Unquote it so that those symlinks will actually
be removed.
Gentoo-Bug: 572436
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
There was a special case in set_sapi() for apache2's mod_php.so. Now
that has been factored out into a new function sapi_link_name_target()
which acts more or less like a hash table (dictionary lookup).
|
|
|
|
|
|
|
| |
With a little bit of mangling and a new (trivial) function, the
set_sapi() function now does the work of set_apache2(). There is
probably a better "big picture" to handle the symlinking, but this
works for now and is an improvement.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The set_sapi() function was accidentally introduced in commit 91160d1
but was not used until now. This commit finishes its implementation,
and refactors the "easy" SAPI set_* functions to use set_sapi(). The
set_apache2() function still requires more work.
|
| |
|
|
|
|
|
|
|
| |
In preparation for refactoting the set_foo() functions, refactor the
function that gets the (one) active link path into two functions that
get the (one) active link directory and (more than one, potentially)
active link names.
|
| |
|
|
|
|
|
| |
The first parameter to resolv_target should be the name of a SAPI. The
current call passes "phpdbg" which is incorrect. Change it to "dbg".
|
|
|
|
|
|
| |
The resolv_target() function was making a call to find_targets_$1.
This was incorrectly refacored to "find_targets $1" instead of
"find_sapi_targets $1" and has been fixed.
|
|
|
|
|
|
| |
This follows in the same vein as the other recent refactorings. With
the machinery in place, list_cli, list_cgi, etc. are all replaced by
one function list_sapi() taking a SAPI name as an argument.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new function find_sapi_targets() takes a SAPI name as an argument
and outputs the valid targets for that SAPI. With it we replace the
following five functions that all did more or less the same thing:
1. find_targets_apache2()
2. find_targets_cli()
3. find_targets_fpm()
4. find_targets_cgi()
5. find_targets_phpdbg()
|
| |
|
|
|
|
|
| |
The documentation for the get_sapi_active_target() was copy/pasted and
never updated. Whoops. It's been fixed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We had five functions doing essentially the same thing:
1. get_active_cli()
2. get_active_cgi()
3. get_active_fpm()
4. get_active_phpdbg()
5. get_active_apache2()
Now that we have the sapi_active_link_path() function taking a SAPI
name as an argument, these have been refactored. One new function
get_sapi_active_target() takes a SAPI name as an argument and returns
the name of the active target (using sapi_active_link_path).
|
|
|
|
|
|
|
|
|
|
| |
Generalize the sapi_active_bin_link_path() to work with the "apache2"
SAPI, too. Basically we just return the path of the mod_php symlink
for that SAPI even though it's not an executable. After doing so, it
makes sense to remove "bin" from the function name.
The sapi_active_link_path() function, called with "apache2" as its
argument, now replaces the get_apache2_active_symlink_path() function.
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Brian Evans <grknight@gentoo.org>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the mod_php.so symlinking done, we realize a new problem: each
apache module has its "module name" hardcoded into the binary. For
example, in mod_php7.c, we find,
AP_MODULE_DECLARE_DATA module php7_module
and likewise with php5_module in the 5.x series of PHP. This means
that we can't load both of these modules with one LoadModule statement
regardless of its filename -- we need to know the module name too.
This commit adds a function to write out an apache config file for the
current active module. The main apache config file should Include this
file, which will be updated whenever an apache2 target is set.
|
|
|
|
|
| |
These variables were all defined but not used. There were a few places
where they could be profitably inserted.
|
| |
|