Bug 11273

Summary: libcurl.a missing in libcurl-devel package
Product: Mageia Reporter: Denis Bitouzé <dbitouze>
Component: RPM PackagesAssignee: Mageia Bug Squad <bugsquad>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: Normal    
Version: 3   
Target Milestone: ---   
Hardware: i586   
OS: Linux   
Whiteboard:
Source RPM: curl-7.28.1-6.1.mga3.src.rpm CVE:
Status comment:

Description Denis Bitouzé 2013-09-23 11:32:46 CEST
Description of problem:
When installing some programms, libcurl.a is necessary. But it is missing on Mageia 3, whereas it is provided by e.g. Mandriva 2011, Fedora 19, RedHat 9.

Reproducible: 

Steps to Reproduce:
Comment 1 Manuel Hiebel 2013-09-24 18:04:23 CEST
it was removed here: 
http://svnweb.mageia.org/packages?view=revision&revision=171780

per policy https://wiki.mageia.org/en/Libraries_policy#.2A.la_files

(I'm not a packager, but I guess the status is ok)

Status: NEW => RESOLVED
Resolution: (none) => WONTFIX

Comment 2 Denis Bitouzé 2013-09-24 18:18:16 CEST
Okay, thanks.

But how to proceed for users who need (because third party programs need) such *.a file?
Comment 3 Manuel Hiebel 2013-09-24 18:28:06 CEST
No ideas, never see such programs, have you an example ?
Comment 4 Denis Bitouzé 2013-09-24 19:28:56 CEST
Yes, with Plone (not provided by Mageia, BTW). The problem arises in 3 steps: 

1. Python 2.7 shipped by Mageia 3 fails for building Plone: for this, I just reported a bug here https://bugs.mageia.org/show_bug.cgi?id=11283.

2. So, I was advised on a Plone list to force the installer to build Python 2.7,
rather than using the version included with your OS (usually, it's the
opposite). The complete way to do so is to run (as a normal user):

wget https://launchpad.net/plone/4.3/4.3.2/+download/Plone-4.3.2-UnifiedInstaller.tgz
tar xfj Plone-4.3.2-UnifiedInstaller.tar.bz2
cd Plone-4.3.2-UnifiedInstaller/
./install.sh standalone --build-python

Then "cd" to the directory where Plone has been installed (by default ~/Plone) and check Plone could start by running:

cd zinstance
./bin/plonetcl fg

and waiting for the message:

  YYYY-MM-DD HH:MM:SS INFO Zope Ready to handle requests

that should appear few seconds later. If so, everything is okay and stop Plone with ^C,

3. Try to install the eea.daviz Plone module by editing the buildout.cfg file and inserting at line #79 the line:

    eea.daviz

Then your file should look like this:

8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<
[...]
# If you update to a later version of Plone, remove the hotfix.
#
eggs =
    Plone
    Pillow
    eea.daviz

############################################
# ZCML Slugs
[...]
8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<

Save this file and rebuild your Plone instance by running:

./bin/buildout

Then, few second later, you'll see the following error message containing:

gcc: error: /usr/lib/libcurl.a: No such file or directory

8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<
Getting distribution for 'pycurl2'.
Using curl-config (libcurl 7.28.1)

Using curl directory: None
warning: no files found matching '*.txt'
warning: no files found matching '*.md'
warning: no files found matching '*.md' under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'docs'
warning: no previously-included files matching '*.pyo' found under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'tests'
warning: no previously-included files matching '*.pyo' found under directory 'tests'
warning: no previously-included files matching '*.pyc' found under directory 'old_tests'
warning: no files found matching '*.pyo' under directory 'old_tests'
src/pycurl.c: In function âmulti_socket_callbackâ:
src/pycurl.c:2408:9: attention : variable âretâ set but not used [-Wunused-but-set-variable]
src/pycurl.c:2412:11: attention : call to â_curl_easy_getinfo_err_stringâ declared with attribute warning: curl_easy_getinfo expects a pointer to char * for this info [enabled by default]
In function âutil_curl_unsetoptâ,
    inlined from âdo_curl_unsetoptâ at src/pycurl.c:1618:5:
src/pycurl.c:1549:9: attention : call to â_curl_easy_setopt_err_CURLSHâ declared with attribute warning: curl_easy_setopt expects a CURLSH* argument for this option [enabled by default]
src/pycurl.c: In function âdo_multi_info_readâ:
src/pycurl.c:2900:15: attention : call to â_curl_easy_getinfo_err_stringâ declared with attribute warning: curl_easy_getinfo expects a pointer to char * for this info [enabled by default]
gcc: erreur: /usr/lib/libcurl.a: Aucun fichier ou dossier de ce type
error: Setup script exited with error: command 'gcc' failed with exit status 1
An error occurred when trying to install pycurl2 7.20.0. Look above this message for any errors that were output by easy_install.
While:
  Installing instance.
  Getting distribution for 'pycurl2'.
Error: Couldn't install: pycurl2 7.20.0
8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<
Comment 5 Denis Bitouzé 2013-09-25 23:13:09 CEST
Even simpler: install python-setuptools and as root, run:

  easy_install pycurl2

You'll see the same kind of message:

Searching for pycurl2                                                                                                                       
Reading https://pypi.python.org/simple/pycurl2/
Best match: pycurl2 7.20.0
Downloading https://pypi.python.org/packages/source/p/pycurl2/pycurl2-7.20.0.tar.gz#md5=784527d7cdbf77822a096e687ad3a5cc
Processing pycurl2-7.20.0.tar.gz
Writing /tmp/easy_install-qPReWz/pycurl2-7.20.0/setup.cfg
Running pycurl2-7.20.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-qPReWz/pycurl2-7.20.0/egg-dist-tmp-CHUFFT
Using curl-config (libcurl 7.28.1)

Using curl directory: None
warning: no files found matching '*.txt'
warning: no files found matching '*.md'
warning: no files found matching '*.md' under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'docs'
warning: no previously-included files matching '*.pyo' found under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'tests'
warning: no previously-included files matching '*.pyo' found under directory 'tests'
warning: no previously-included files matching '*.pyc' found under directory 'old_tests'
warning: no files found matching '*.pyo' under directory 'old_tests'
src/pycurl.c: In function âmulti_socket_callbackâ:
src/pycurl.c:2412:11: attention : call to â_curl_easy_getinfo_err_stringâ declared with attribute warning: curl_easy_getinfo expects a pointer to char * for this info [enabled by default]
src/pycurl.c: In function âdo_multi_info_readâ:
src/pycurl.c:2900:15: attention : call to â_curl_easy_getinfo_err_stringâ declared with attribute warning: curl_easy_getinfo expects a pointer to char * for this info [enabled by default]
In function âutil_curl_unsetoptâ,
    inlined from âdo_curl_unsetoptâ at src/pycurl.c:1618:5:
src/pycurl.c:1549:9: attention : call to â_curl_easy_setopt_err_CURLSHâ declared with attribute warning: curl_easy_setopt expects a CURLSH* argument for this option [enabled by default]
gcc: erreur: /usr/lib/libcurl.a: Aucun fichier ou dossier de ce type
error: Setup script exited with error: command 'gcc' failed with exit status 1