I am already working on it. But I have a question to ask you.
I browse other PECL packages, and find that the package under 'Downloads" contains the extension's project files such as source files and test files. So I add the package.xml file just now, and create a svn tag for 8.3.0. But I still can't see the package. Maybe they will appear after the PECL daily build?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What do you mean by package? Do you mean the final .tgz archived package to download? I can see that you have uploaded the package.xml and created the 8.3.0 tag.
As I know in order to see the final package file, we have to upload it manually through http://pecl.php.net/package/CUBRID. You can see on the left menu bar the link to "Upload Release".
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yifan, do you plan to upload the PECL package for CUBRID-PHP API? Is it ready to be uploaded? If so, please send me a short guide how to install it or manually build it, so that I create a thorough tutorial on cubrid.org.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have another question. In php_cubrid_version.h you set the constant for PHP_CUBRID_VERSION as 8.3.0.100914. What is the reason behind when you set this version?
The reason why I am asking is when I run phpinfo() I should see the CUBRID DBMS version, NOT CUBRID-PHP API version. However, you display the PHP API version. Why? The latest version for 3.0 is CUBRID 3.0.0331.
Or am I misunderstanding something?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The version displayed in phpinfo() result is CUBRID-PHP API version. We can get this version by calling cubrid_version(). I think the version info display in php.ini should be extension's version, not DBMS. But I am not quite sure of this.
If we want get DBMS version, we can use cubrid_get_server_info and cubrid_get_client_info. The output will be:
Server info: 8.3.0.0331
Client info:8.3.0
The 100914 is CUBRID-PHP build number. It stands for the date 2010-09-14.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for your explanations. Personally I think it should indicate the Database Version, not API. Anyway, could you please check it with that of MySQL version info?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
MySQL display the "Client API version:mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $."
Maybe the key to the info displayed in phpinfo() is not API version info or DBMS version info, but is whether the info is clearly displayed and easy to understand. I think it's better to display like this:
CUBRID
API version : 8.3.0.100904
DBMS version: 8.3.0
What do you think?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The CUBRID package is available through "pecl install cubrid" command. However, when I install it, I have the following ERROR:
C:\Program Files\PHP>pecl install cubrid
downloading CUBRID-8.3.0.100903.tgz …
Starting to download CUBRID-8.3.0.100903.tgz (36,752 bytes)
……….done: 36,752 bytes
17 source files, building
WARNING: php_bin .\php.exe appears to have a suffix .exe, but config variable php_suffix does not match
ERROR: The DSP CUBRID.dsp does not exist.
Any suggestions?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have noticed you have uploaded a new package for CUBRID PHP API with new version number CUBRID-8.3.0.0001.tgz. Here is what:
In the previous version the installation steps were different. During the installation it asked me two questions: 1) If I want to indicate the Include path; 2) If I want to indicate the Lib path. In the new version of PHP API, these two questions are absent. Instead there is another question which asks 'if I want CUBRID support".
First, when you make such changes, ALWAYS let me know. Because I have written a quick tutorial how to install CUBRID-PHP API using PECL at http://www.cubrid.org/php_api_for_cubrid#instructions, which no longer works, and I didn't know that. Please do not keep silent when you have major changes especially related to the installation instructions.
Second, what does that "Do you want CUBRID support?" mean? Users will be confused whether to type "yes" or "no". Please explain me.
Third, I have problems installing the new CUBRID-PHP API. I am using:
- Ubuntu 10.4 Desktop x86
- PHP 5.3.2
- PHP5-dev
- PEAR package
- CUBRID 2.2 x86
And I receive the following errors:
/home/cubridtest/programfiles/CUBRID/include/cas_cci.h:38:2: warning: #ident is a deprecated GCC extension
/tmp/pear/temp/CUBRID/php_cubrid.c: In function ‘zif_cubrid_field_flags’:
/tmp/pear/temp/CUBRID/php_cubrid.c:2621: error: ‘T_CCI_COL_INFO’ has no member named ‘is_primary_key’
/tmp/pear/temp/CUBRID/php_cubrid.c:2625: error: ‘T_CCI_COL_INFO’ has no member named ‘is_unique_key’
/tmp/pear/temp/CUBRID/php_cubrid.c:2629: error: ‘T_CCI_COL_INFO’ has no member named ‘is_foreign_key’
/tmp/pear/temp/CUBRID/php_cubrid.c:2633: error: ‘T_CCI_COL_INFO’ has no member named ‘is_auto_increment’
/tmp/pear/temp/CUBRID/php_cubrid.c:2637: error: ‘T_CCI_COL_INFO’ has no member named ‘is_shared’
/tmp/pear/temp/CUBRID/php_cubrid.c:2641: error: ‘T_CCI_COL_INFO’ has no member named ‘is_reverse_index’
/tmp/pear/temp/CUBRID/php_cubrid.c:2645: error: ‘T_CCI_COL_INFO’ has no member named ‘is_reverse_unique’
/tmp/pear/temp/CUBRID/php_cubrid.c: In function ‘zif_cubrid_fetch_field’:
/tmp/pear/temp/CUBRID/php_cubrid.c:2849: error: ‘T_CCI_COL_INFO’ has no member named ‘default_value’
/tmp/pear/temp/CUBRID/php_cubrid.c:2852: error: ‘T_CCI_COL_INFO’ has no member named ‘is_unique_key’
/tmp/pear/temp/CUBRID/php_cubrid.c:2853: error: ‘T_CCI_COL_INFO’ has no member named ‘is_unique_key’
make: *** [php_cubrid.lo] Error 1
ERROR: `make' failed
The complete installation output
cubridtest@ubuntu:~$sudo-EpeclinstallcubriddownloadingCUBRID-8.3.0.0001.tgz...StartingtodownloadCUBRID-8.3.0.0001.tgz(36,934bytes)..........done:36,934bytes18sourcefiles,buildingrunning:phpizeConfiguringfor:PHPApiVersion:20090626ZendModuleApiNo:20090626ZendExtensionApiNo:220090626IncludeCUBRIDsupport[yes]:yesbuildingin/var/tmp/pear-build-root/CUBRID-8.3.0.0001running:/tmp/pear/temp/CUBRID/configure--with-cubridcheckingforgrepthathandleslonglinesand-e.../bin/grepcheckingforegrep.../bin/grep-Echeckingforasedthatdoesnottruncateoutput.../bin/sedcheckingforcc...cccheckingwhethertheCcompilerworks...yescheckingforCcompilerdefaultoutputfilename...a.outcheckingforsuffixofexecutables...checkingwhetherwearecrosscompiling...nocheckingforsuffixofobjectfiles...ocheckingwhetherweareusingtheGNUCcompiler...yescheckingwhetherccaccepts-g...yescheckingforccoptiontoacceptISOC89...noneneededcheckinghowtoruntheCpreprocessor...cc-Echeckingforicc...nocheckingforsuncc...nocheckingwhetherccunderstands-cand-otogether...yescheckingforsystemlibrarydirectory...libcheckingifcompilersupports-R...nocheckingifcompilersupports-Wl,-rpath,...yescheckingbuildsystemtype...i686-pc-linux-gnucheckinghostsystemtype...i686-pc-linux-gnucheckingtargetsystemtype...i686-pc-linux-gnucheckingforPHPprefix.../usrcheckingforPHPincludes...-I/usr/include/php5-I/usr/include/php5/main-I/usr/include/php5/TSRM-I/usr/include/php5/Zend-I/usr/include/php5/ext-I/usr/include/php5/ext/date/lib-D_LARGEFILE_SOURCE-D_FILE_OFFSET_BITS=64checkingforPHPextensiondirectory.../usr/lib/php5/20090626+lfscheckingforPHPinstalledheadersprefix.../usr/include/php5checkingifdebugisenabled...nocheckingifztsisenabled...nocheckingforre2c...noconfigure:WARNING:Youwillneedre2c0.13.4orlaterifyouwanttoregeneratePHPparsers.checkingforgawk...gawkcheckingforCUBRIDsupport...yes,sharedcheckingforcci_initin-l"cascci"...yescheckingforasedthatdoesnottruncateoutput...(cached)/bin/sedcheckingforfgrep.../bin/grep-Fcheckingforldusedbycc.../usr/bin/ldcheckingifthelinker(/usr/bin/ld)isGNUld...yescheckingforBSD-orMS-compatiblenamelister(nm).../usr/bin/nm-Bcheckingthenamelister(/usr/bin/nm-B)interface...BSDnmcheckingwhetherln-sworks...yescheckingthemaximumlengthofcommandlinearguments...1572864checkingwhethertheshellunderstandssomeXSIconstructs...yescheckingwhethertheshellunderstands"+="...yescheckingfor/usr/bin/ldoptiontoreloadobjectfiles...-rcheckingforobjdump...objdumpcheckinghowtorecognizedependentlibraries...pass_allcheckingforar...archeckingforstrip...stripcheckingforranlib...ranlibcheckingcommandtoparse/usr/bin/nm-Boutputfromccobject...okcheckingforANSICheaderfiles...yescheckingforsys/types.h...yescheckingforsys/stat.h...yescheckingforstdlib.h...yescheckingforstring.h...yescheckingformemory.h...yescheckingforstrings.h...yescheckingforinttypes.h...yescheckingforstdint.h...yescheckingforunistd.h...yescheckingfordlfcn.h...yescheckingforobjdir....libscheckingifccsupports-fno-rtti-fno-exceptions...nocheckingforccoptiontoproducePIC...-fPIC-DPICcheckingifccPICflag-fPIC-DPICworks...yescheckingifccstaticflag-staticworks...yescheckingifccsupports-c-ofile.o...yescheckingifccsupports-c-ofile.o...(cached)yescheckingwhetherthecclinker(/usr/bin/ld)supportssharedlibraries...yescheckingwhether-lcshouldbeexplicitlylinkedin...nocheckingdynamiclinkercharacteristics...GNU/Linuxld.socheckinghowtohardcodelibrarypathsintoprograms...immediatecheckingwhetherstrippinglibrariesispossible...yescheckingiflibtoolsupportssharedlibraries...yescheckingwhethertobuildsharedlibraries...yescheckingwhethertobuildstaticlibraries...noconfigure:creating./config.statusconfig.status:creatingconfig.hconfig.status:executinglibtoolcommandsrunning:make/bin/bash/var/tmp/pear-build-root/CUBRID-8.3.0.0001/libtool--mode=compilecc-I.-I/tmp/pear/temp/CUBRID-DPHP_ATOM_INC-I/var/tmp/pear-build-root/CUBRID-8.3.0.0001/include-I/var/tmp/pear-build-root/CUBRID-8.3.0.0001/main-I/tmp/pear/temp/CUBRID-I/usr/include/php5-I/usr/include/php5/main-I/usr/include/php5/TSRM-I/usr/include/php5/Zend-I/usr/include/php5/ext-I/usr/include/php5/ext/date/lib-D_LARGEFILE_SOURCE-D_FILE_OFFSET_BITS=64-I/home/cubridtest/programfiles/CUBRID/include-DHAVE_CONFIG_H-g-O2-c/tmp/pear/temp/CUBRID/php_cubrid.c-ophp_cubrid.lolibtool:compile:cc-I.-I/tmp/pear/temp/CUBRID-DPHP_ATOM_INC-I/var/tmp/pear-build-root/CUBRID-8.3.0.0001/include-I/var/tmp/pear-build-root/CUBRID-8.3.0.0001/main-I/tmp/pear/temp/CUBRID-I/usr/include/php5-I/usr/include/php5/main-I/usr/include/php5/TSRM-I/usr/include/php5/Zend-I/usr/include/php5/ext-I/usr/include/php5/ext/date/lib-D_LARGEFILE_SOURCE-D_FILE_OFFSET_BITS=64-I/home/cubridtest/programfiles/CUBRID/include-DHAVE_CONFIG_H-g-O2-c/tmp/pear/temp/CUBRID/php_cubrid.c-fPIC-DPIC-o.libs/php_cubrid.oInfileincludedfrom/tmp/pear/temp/CUBRID/php_cubrid.h:46,from/tmp/pear/temp/CUBRID/php_cubrid.c:55:/home/cubridtest/programfiles/CUBRID/include/cas_cci.h:38:2:warning:#ident is a deprecated GCC extension/tmp/pear/temp/CUBRID/php_cubrid.c:Infunction‘zif_cubrid_field_flags’:/tmp/pear/temp/CUBRID/php_cubrid.c:2621:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_primary_key’/tmp/pear/temp/CUBRID/php_cubrid.c:2625:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_unique_key’/tmp/pear/temp/CUBRID/php_cubrid.c:2629:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_foreign_key’/tmp/pear/temp/CUBRID/php_cubrid.c:2633:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_auto_increment’/tmp/pear/temp/CUBRID/php_cubrid.c:2637:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_shared’/tmp/pear/temp/CUBRID/php_cubrid.c:2641:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_reverse_index’/tmp/pear/temp/CUBRID/php_cubrid.c:2645:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_reverse_unique’/tmp/pear/temp/CUBRID/php_cubrid.c:Infunction‘zif_cubrid_fetch_field’:/tmp/pear/temp/CUBRID/php_cubrid.c:2849:error:‘T_CCI_COL_INFO’hasnomembernamed‘default_value’/tmp/pear/temp/CUBRID/php_cubrid.c:2852:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_unique_key’/tmp/pear/temp/CUBRID/php_cubrid.c:2853:error:‘T_CCI_COL_INFO’hasnomembernamed‘is_unique_key’make:***[php_cubrid.lo]Error1ERROR:`make' failedcubridtest@ubuntu:~$
Please get me back as soon as possible.
Regards,
Esen.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It was my fault for not telling you about these changes.
1) After comparing configure options with other extensions such as PHP_MySQL, I think CUBRID
PHP Driver needs only one configure option '-with-cubrid'. The options '-with-cubrid-
includedir' and '-with-cubrid-libdir' may be useful, but not necessary. When CUBRID is
installed, the header files are installed under dir '$CUBRID/include' and libraries under
dir '$CUBRID/lib'. So we only need to know the value of '$CUBRID'. Three configure options
may seem to be cumbersome.
Example:
-with-zlib-dir=DIR ZIP: Set the path to libz install prefix
-with-pcre-dir ZIP: pcre install prefix
-with-zlib-dir=DIR mysqlnd: Set the path to libz install prefix
-with-mysql=DIR Include MySQL support. DIR is the MySQL base
directory. If mysqlnd is passed as DIR,
the MySQL native driver will be used /usr/local
2) The question "Do you want CUBRID support?" means the CUBRID PHP Driver support. If
system envirable CUBRID is not set correctly, there will be error message reminding user
that give correct CUBRID install path with option '-with-cubrid'.
3) is_primary_key, is_unique_key and so on are not supported by 8.2.2 CCI. So maybe we can put a version 8.2.2 package on PECL. What do you think?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can you please give a short guide how to install the pecl library. Where should I "set CUBRID base install dir with -with-cubrid=/home/testuser/CUBRID"?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, you can type "sudo pecl install cubrid" with "-with-cubrid=/home/testuser/CUBRID". You can also install it with "-with-cubrid=shared" if you have set environment variable CUBRID.
I will send you compiled libraries as soon as possible.
There are difference between 32-bit and 64-bit libraries. 32-bit libraries can be used on 64-bit system. But if other applications such as PHP are compiled 64-bit, the cubrid php driver should also be compiled to 64.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Yifan,
We need to build the PECL package for CUBRID-PHP Extension and upload to our CUBRID account at PECL (http://pecl.php.net/package/CUBRID).
For this, here are a few guides:
http://wiki.php.net/internals/windows/peclbuilds
http://wiki.php.net/internals/windows/libs
Please, let me know when you can start it. It should be very quick, I think. Shouldn't take much time.
Thank you!
Esen.
I am already working on it. But I have a question to ask you.
I browse other PECL packages, and find that the package under 'Downloads" contains the extension's project files such as source files and test files. So I add the package.xml file just now, and create a svn tag for 8.3.0. But I still can't see the package. Maybe they will appear after the PECL daily build?
Dear Yifan,
What do you mean by package? Do you mean the final .tgz archived package to download? I can see that you have uploaded the package.xml and created the 8.3.0 tag.
As I know in order to see the final package file, we have to upload it manually through http://pecl.php.net/package/CUBRID. You can see on the left menu bar the link to "Upload Release".
oh, I see it. It is so stupid that I haven't notice that before. ^_^
Yifan, do you plan to upload the PECL package for CUBRID-PHP API? Is it ready to be uploaded? If so, please send me a short guide how to install it or manually build it, so that I create a thorough tutorial on cubrid.org.
OK, I will send you the install guide after I finish this work.
The CUBRID PECL package has been uploaded. But the package can't be seen by calling "pecl list-all". Maybe the package need review by PECL.
Maybe we have to wait a little bit more.
I have another question. In php_cubrid_version.h you set the constant for PHP_CUBRID_VERSION as 8.3.0.100914. What is the reason behind when you set this version?
The reason why I am asking is when I run phpinfo() I should see the CUBRID DBMS version, NOT CUBRID-PHP API version. However, you display the PHP API version. Why? The latest version for 3.0 is CUBRID 3.0.0331.
Or am I misunderstanding something?
The version displayed in phpinfo() result is CUBRID-PHP API version. We can get this version by calling cubrid_version(). I think the version info display in php.ini should be extension's version, not DBMS. But I am not quite sure of this.
If we want get DBMS version, we can use cubrid_get_server_info and cubrid_get_client_info. The output will be:
Server info: 8.3.0.0331
Client info:8.3.0
The 100914 is CUBRID-PHP build number. It stands for the date 2010-09-14.
Thank you for your explanations. Personally I think it should indicate the Database Version, not API. Anyway, could you please check it with that of MySQL version info?
OK, I will check it.
MySQL display the "Client API version:mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $."
Maybe the key to the info displayed in phpinfo() is not API version info or DBMS version info, but is whether the info is clearly displayed and easy to understand. I think it's better to display like this:
CUBRID
API version : 8.3.0.100904
DBMS version: 8.3.0
What do you think?
That's right!
Client API version: 8.3.0.100904
CUBRID DBMS Version: 8.3.0.0331.
But I think we cannot retrieve the CUBRID DBMS version for this, can we?
We can't retrieve the detailed version info about CUBRID DBMS . We can only tell user that this PHP API is for 8.3.0 (or 2008 R3.0) version DBMS.
Yifan,
The CUBRID package is available through "pecl install cubrid" command. However, when I install it, I have the following ERROR:
C:\Program Files\PHP>pecl install cubrid
downloading CUBRID-8.3.0.100903.tgz …
Starting to download CUBRID-8.3.0.100903.tgz (36,752 bytes)
……….done: 36,752 bytes
17 source files, building
WARNING: php_bin .\php.exe appears to have a suffix .exe, but config variable php_suffix does not match
ERROR: The DSP CUBRID.dsp does not exist.
Any suggestions?
There are indeed some problems about the installation configuration in package.xml, and I will fix them soon. Thank you for reminding me.
Now on linux the installation is success.
And now CUBRID-PHP can't be installed by PECL on Windows. And I will try to support Windows installation later.
Dear Yifan,
I have noticed you have uploaded a new package for CUBRID PHP API with new version number CUBRID-8.3.0.0001.tgz. Here is what:
In the previous version the installation steps were different. During the installation it asked me two questions: 1) If I want to indicate the Include path; 2) If I want to indicate the Lib path. In the new version of PHP API, these two questions are absent. Instead there is another question which asks 'if I want CUBRID support".
First, when you make such changes, ALWAYS let me know. Because I have written a quick tutorial how to install CUBRID-PHP API using PECL at http://www.cubrid.org/php_api_for_cubrid#instructions, which no longer works, and I didn't know that. Please do not keep silent when you have major changes especially related to the installation instructions.
Second, what does that "Do you want CUBRID support?" mean? Users will be confused whether to type "yes" or "no". Please explain me.
Third, I have problems installing the new CUBRID-PHP API. I am using:
- Ubuntu 10.4 Desktop x86
- PHP 5.3.2
- PHP5-dev
- PEAR package
- CUBRID 2.2 x86
And I receive the following errors:
The complete installation output
Please get me back as soon as possible.
Regards,
Esen.
Sorrry kadishmal,
It was my fault for not telling you about these changes.
1) After comparing configure options with other extensions such as PHP_MySQL, I think CUBRID
PHP Driver needs only one configure option '-with-cubrid'. The options '-with-cubrid-
includedir' and '-with-cubrid-libdir' may be useful, but not necessary. When CUBRID is
installed, the header files are installed under dir '$CUBRID/include' and libraries under
dir '$CUBRID/lib'. So we only need to know the value of '$CUBRID'. Three configure options
may seem to be cumbersome.
Example:
-with-zlib-dir=DIR ZIP: Set the path to libz install prefix
-with-pcre-dir ZIP: pcre install prefix
-with-zlib-dir=DIR mysqlnd: Set the path to libz install prefix
-with-mysql=DIR Include MySQL support. DIR is the MySQL base
directory. If mysqlnd is passed as DIR,
the MySQL native driver will be used /usr/local
2) The question "Do you want CUBRID support?" means the CUBRID PHP Driver support. If
system envirable CUBRID is not set correctly, there will be error message reminding user
that give correct CUBRID install path with option '-with-cubrid'.
3) is_primary_key, is_unique_key and so on are not supported by 8.2.2 CCI. So maybe we can put a version 8.2.2 package on PECL. What do you think?
I have commit 8.2.2 CUBRID PHP driver to soureforge before. The svn is below:
http://cubridinterface.svn.sourceforge.net/viewvc/cubridinterface/php/branches/RB-8.2.2/
I think I was too hasty to make changes to product that impacts so many users.
And from now on, I will ask you for advice before I make changes.
Ok, I got it. So, in order to install CUBRID-PHP API I should type "sudo pecl install cubrid -with-cubrid=/home/testuser/CUBRID". Is it correct?
Could you please send me the compiled libraries for:
1) Windows, CUBRID 2.2, PHP 5.2.x
2) Linux, CUBRID 2.2, PHP 5.3.x
3) Linux, CUBRID 2.2, PHP 5.2.x
Just to confirm, there is no difference between x86 and x64 libs, right? We do not need separate libs, right?
1) sudo pecl install cubrid
2) Include CUBRID support : ***Here I typed*** /home/testuser/CUBRID
It gives the following error:
Can you please give a short guide how to install the pecl library. Where should I "set CUBRID base install dir with -with-cubrid=/home/testuser/CUBRID"?
Yes, you can type "sudo pecl install cubrid" with "-with-cubrid=/home/testuser/CUBRID". You can also install it with "-with-cubrid=shared" if you have set environment variable CUBRID.
I will send you compiled libraries as soon as possible.
There are difference between 32-bit and 64-bit libraries. 32-bit libraries can be used on 64-bit system. But if other applications such as PHP are compiled 64-bit, the cubrid php driver should also be compiled to 64.
Both:
"sudo pecl install cubrid -with-cubrid=/home/kadishmal/CUBRID"
"sudo pecl install cubrid -with-cubrid=shared"
do not work. I checked with "printenv" and I see that environment variables for CUBRID are set:
But I still have the same error.
And this also does not work: