# php 7.0.3 pecl-memcache error



## bagas (Feb 16, 2016)

Hello.
Installmemcachefor PHP7.0.3 .
Prompt what to do in this case?


```
# php -v
PHP 7.0.3 (cli) (built: Feb 16 2016 16:20:02) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
  with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
```


```
# uname -rm
10.1-RELEASE-p27 amd64
```


```
root@UUU:/ # pkg2ng
Converting packages from /var/db/pkg
Analysing shared libraries, this will take a while...
Checking all packages: 100%
root@UUU:/ # rehash
root@UUU:/ # cd /usr/ports/databases/pecl-memcache
root@UUU:/usr/ports/databases/pecl-memcache # make install clean
===>  Found saved configuration for pecl-memcache-3.0.8
===>  pecl-memcache-3.0.8 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by pecl-memcache-3.0.8 for building
===>  Extracting for pecl-memcache-3.0.8
=> SHA256 Checksum OK for PECL/memcache-3.0.8.tgz.
===>  Patching for pecl-memcache-3.0.8
===>  Converting DOS text files to UNIX text files
===>  pecl-memcache-3.0.8 depends on file: /usr/local/include/php/main/php.h - found
===>  pecl-memcache-3.0.8 depends on file: /usr/local/bin/phpize - found
===>  pecl-memcache-3.0.8 depends on file: /usr/local/lib/php/20151012/zlib.so - found
===>  pecl-memcache-3.0.8 depends on file: /usr/local/lib/php/20151012/session.so - found
===>  pecl-memcache-3.0.8 depends on file: /usr/local/bin/autoconf-2.69 - found
===>  PHPizing for pecl-memcache-3.0.8
Configuring for:
PHP Api Version:  20151012
Zend Module Api No:  20151012
Zend Extension Api No:  320151012
===>  Configuring for pecl-memcache-3.0.8
configure: loading site script /usr/ports/Templates/config.site
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... (cached) /usr/bin/egrep
checking for a sed that does not truncate output... /usr/bin/sed
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cpp
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... amd64-portbld-freebsd10.1
checking host system type... amd64-portbld-freebsd10.1
checking target system type... amd64-portbld-freebsd10.1
checking for PHP prefix... /usr/local
checking for PHP includes... -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/lib/php/20151012
checking for PHP installed headers prefix... /usr/local/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... re2c
checking for re2c version... 0.14.3 (ok)
checking for gawk... (cached) /usr/bin/awk
checking if /usr/bin/awk is broken... no
checking whether to enable memcache support... yes, shared
checking whether to enable memcache session handler support... yes
checking for the location of ZLIB... /usr
checking for the location of zlib... /usr
checking for session includes... /usr/local/include/php
checking for memcache session support... enabled
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognize dependent libraries... pass_all
checking for ANSI C header files... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for memory.h... (cached) yes
checking for strings.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking for dlfcn.h... (cached) yes
checking the maximum length of command line arguments... (cached) 262144
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if cc supports -fno-rtti -fno-exceptions... yes
checking for cc option to produce PIC... -fPIC
checking if cc PIC flag -fPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking whether the cc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... freebsd10.1 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no

creating libtool
appending configuration tag "CXX" to libtool
checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes
checking for c++ option to produce PIC...
checking if c++ static flag  works... yes
checking if c++ supports -c -o file.o... yes
checking whether the c++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... freebsd10.1 ld.so
(cached) (cached) checking how to hardcode library paths into programs... unsupported
configure: creating ./config.status
config.status: creating config.h
===>  Building for pecl-memcache-3.0.8
/bin/sh /usr/ports/databases/pecl-memcache/work/memcache-3.0.8/libtool --mode=compile cc -I/usr/local/include/php -I. -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8 -DPHP_ATOM_INC -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8/include -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8/main -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE_CONFIG_H  -O2 -pipe -fstack-protector -fno-strict-aliasing -std=gnu89  -c /usr/ports/databases/pecl-memcache/work/memcache-3.0.8/memcache.c -o memcache.lo
mkdir .libs
 cc -I/usr/local/include/php -I. -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8 -DPHP_ATOM_INC -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8/include -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8/main -I/usr/ports/databases/pecl-memcache/work/memcache-3.0.8 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -O2 -pipe -fstack-protector -fno-strict-aliasing -std=gnu89 -c /usr/ports/databases/pecl-memcache/work/memcache-3.0.8/memcache.c  -fPIC -DPIC -o .libs/memcache.o
In file included from /usr/ports/databases/pecl-memcache/work/memcache-3.0.8/memcache.c:30:
In file included from ./php_memcache.h:34:
./memcache_pool.h:45:10: fatal error: 'ext/standard/php_smart_str_public.h' file not found
#include "ext/standard/php_smart_str_public.h"
  ^
1 error generated.
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/databases/pecl-memcache/work/memcache-3.0.8
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/databases/pecl-memcache
*** Error code 1

Stop.
make: stopped in /usr/ports/databases/pecl-memcache
```


----------



## julp (Feb 16, 2016)

This extension seems unmaintained since more than 2 years and is not "ported" to PHP 7 (php_smart_str_public.h was renamed to php_smart_string_public.h in PHP 7 - but the whole extension needs to be rewritten).

This is not a FreeBSD issue: keep PHP 5 to use it or try to find an alternate extension for memcache which would be compatible with PHP 7.


----------



## SirDice (Feb 16, 2016)

bagas said:


> ```
> root@UUU:/ # pkg2ng
> Converting packages from /var/db/pkg
> Analysing shared libraries, this will take a while...
> ...


Why are you running pkg2ng? It's a tool to convert the old package databases to the new one, FreeBSD 10 never had the old ones.


----------



## bagas (Feb 16, 2016)

SirDice said:


> Why are you running pkg2ng? It's a tool to convert the old package databases to the new one, FreeBSD 10 never had the old ones.


hz, habit.
Pecl-memcache is not supported in php 7?


----------



## bagas (Feb 18, 2016)

Hello.
Update software.
Ports updated.

```
# portupgrade -arR
[Reading data from pkg(8) ... - 113 packages found - done]
make: "/usr/ports/Mk/bsd.php.mk" line 342: Malformed conditional (${_USE_PHP_VER${PHP_VER}:M${:Uzlib}} != "")
make: "/usr/ports/Mk/bsd.php.mk" line 342: Malformed conditional (${_USE_PHP_VER${PHP_VER}:M${:Usession}} != "")
make: Fatal errors encountered -- cannot continue** Makefile possibly broken: databases/pecl-memcache:
** Please report this to the maintainer for databases/pecl-memcache
  
    make: stopped in /usr/ports/databases/pecl-memcache
/usr/local/sbin/portupgrade:1575:in `get_pkgname': Makefile broken (MakefileBrokenError)
    from /usr/local/sbin/portupgrade:637:in `block (4 levels) in main'
    from /usr/local/sbin/portupgrade:621:in `each'
    from /usr/local/sbin/portupgrade:621:in `block (3 levels) in main'
    from /usr/local/sbin/portupgrade:594:in `catch'
    from /usr/local/sbin/portupgrade:594:in `block (2 levels) in main'
    from /usr/local/lib/ruby/2.1/optparse.rb:1403:in `call'
    from /usr/local/lib/ruby/2.1/optparse.rb:1403:in `block (2 levels) in parse_in_order'
    from /usr/local/lib/ruby/2.1/optparse.rb:1398:in `catch'
    from /usr/local/lib/ruby/2.1/optparse.rb:1398:in `block in parse_in_order'
    from /usr/local/lib/ruby/2.1/optparse.rb:1346:in `catch'
    from /usr/local/lib/ruby/2.1/optparse.rb:1346:in `parse_in_order'
    from /usr/local/lib/ruby/2.1/optparse.rb:1340:in `order!'
    from /usr/local/lib/ruby/2.1/optparse.rb:1332:in `order'
    from /usr/local/sbin/portupgrade:571:in `block in main'
    from /usr/local/lib/ruby/2.1/optparse.rb:880:in `initialize'
    from /usr/local/sbin/portupgrade:238:in `new'
    from /usr/local/sbin/portupgrade:238:in `main'
    from /usr/local/sbin/portupgrade:2380:in `<main>'
root@DDD:/ # cd /usr/ports/databases/pecl-memcache
root@DDD:/usr/ports/databases/pecl-memcache # make deinstall clean
make: "/usr/ports/Mk/bsd.php.mk" line 342: Malformed conditional (${_USE_PHP_VER${PHP_VER}:M${:Uzlib}} != "")
make: "/usr/ports/Mk/bsd.php.mk" line 342: Malformed conditional (${_USE_PHP_VER${PHP_VER}:M${:Usession}} != "")
make: Fatal errors encountered -- cannot continue
make: stopped in /usr/ports/databases/pecl-memcache
root@DDD:/usr/ports/databases/pecl-memcache #
```


```
root@DDD:/usr/ports/databases/pecl-memcache # cat distinfo
SHA256 (PECL/memcache-3.0.8.tgz) = 2cae5b423ffbfd33a259829849f6000d4db018debe3e29ecf3056f06642e8311
SIZE (PECL/memcache-3.0.8.tgz) = 70523
```


```
# pkg version | grep "memc"
memcached-1.4.24_2                 >
pecl-memcache-3.0.8                =
```


```
# uname -rm
10.1-RELEASE-p27 amd64
```


```
# php -v
PHP 5.4.45 (cli) (built: Sep 11 2015 15:55:02)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
  with XCache v3.2.0, Copyright (c) 2005-2014, by mOo
  with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo
```
What to do?


----------



## junovitch@ (Feb 19, 2016)

I would advise keeping an eye on the mailing lists.  Given that PHP 7 was just added to ports thing will change quickly.
https://lists.FreeBSD.org/pipermail/freebsd-ports/2016-February/102146.html


----------



## bagas (Feb 19, 2016)

What united theme???
One theme php 7.0!
In another topic php 5.4 !!!


----------



## OlivierW (Jun 29, 2016)

As I already answered last month, but the forum's database crashed and my message and account got lost, you can find a version of pecl-memcache for PHP 7 here: https://github.com/O2Graphics/php70-pecl-memcache
I tested it with PHP 7.0.5 to 7.0.8 on FreeBSD 10.3 64bits and it works very well.


I hope I won't be as unlucky as last time and my message won't mysteriously disappear...


----------



## frijsdijk (Jul 27, 2016)

Awesome!


----------

