voxpupuli / voxpupuli/puppet-php

memcached extension is listed as created when it is not

Open
#332 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Puppet
Stars
86
Forks
264
Avg merge
29m
Merged PRs (30d)
1

Description

Attempted to use puppet-php to install memcached.
After puppet apply, ran php -v which displayed the following error Warning: Could not match PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/memcached.so' - /usr/lib/php/20151012/memcached.so: cannot open shared object file: No such file or directory in Unknown on line 0

attempting to run pecl install memcached manually
returned

pkg-config not found
configure: error: Please reinstall the pkg-config distribution
ERROR: `/tmp/pear/temp/memcached/configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=no' failed

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 3.8.5
  • Ruby: 2.3.1p112
  • Distribution: ubuntu 16.04.2 LTS
  • Module version: 4.0.0

How to reproduce (e.g Puppet code you use)

    extensions => {
      memcached => {
        provider        => 'pecl',
        header_packages => [ 'libmemcached-dev', ],
      },
    },

What are you seeing

Notice: /Stage[main]/Php/Php::Extension[memcached]/Package[memcached]/ensure: created

What behaviour did you expect instead

Notice: /Stage[main]/Php/Php::Extension[memcached] :Skipping because of failed dependencies

Output log

Any additional information you'd like to impart

Was able to successfully have puppet install memcached extension by sudo apt-get install pkgconf then re-running puppet apply.

as I see it there are two issue

  1. the user should be notified if a particular extension does not compile properly
  2. since pecl relies on pkg-config it would be good to check for the presence of pkg-config, and install it if necessary

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the memcached extension declaration on Ubuntu 16.04 with puppet-php 4.0.0, then inspect the PECL provider and extension dependency handling described in the issue. Done should mean missing pkg-config is handled before compilation and a failed build is reported instead of the package being marked created.

Written by the indexing model from the issue text.

Assessment

Tech stack
php, ubuntu
Domain
devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.