cURL / Mailing Lists / curl-library / Single Mail

curl-library

How to setup and maintain parallel 64 bit and 32 bit libcurl4-openssl development packages which both stay intact simultaneous

From: Frank Chang <frank_chang91_at_hotmail.com>
Date: Fri, 18 Mar 2016 00:15:55 -0400

Daniel Stenberg and Dan Fandrich,
  
   You both helped me immensely in 2013 when I was with Melissa Data.

I followed the following procedure yesterday.

1. Purge all libcurl files from my Ubuntu Linux 15.10 Lenovo desktop computer.

2. Get libcurl 7.43 source using: sudo apt-get source libcurl4-openssl-dev=7.43

3. Build it for AMD64 , output 64 bit libcurl.so and headers to /home/frank

4. Build it for i386 , output 32 bit libcurl.so and headers to /home/frank

At step 4 , i get the following error stream:

$ make

Making all in lib
make[1]: Entering directory '/home/vend/curl-7.43.0/lib'
make all-am
make[2]: Entering directory '/home/vend/curl-7.43.0/lib'
/bin/bash ../libtool --tag=CC --mode=compile x86_64-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DBUILDING_LIBCURL -DCURL_HIDDEN_SYMBOLS -fvisibility=hidden -O2 -Wno-system-headers -MT libcurl_la-file.lo -MD -MP -MF .deps/libcurl_la-file.Tpo -c -o libcurl_la-file.lo `test -f 'file.c' || echo './'`file.c
libtool: compile: x86_64-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DBUILDING_LIBCURL -DCURL_HIDDEN_SYMBOLS -fvisibility=hidden -O2 -Wno-system-headers -MT libcurl_la-file.lo -MD -MP -MF .deps/libcurl_la-file.Tpo -c file.c -fPIC -DPIC -o .libs/libcurl_la-file.o
In file included from curl_setup.h:138:0,
                 from file.c:23:
../include/curl/curlrules.h:142:3: error: size of array '__curl_rule_01__' is negative
   __curl_rule_01__
   ^
Makefile:1119: recipe for target 'libcurl_la-file.lo' failed
make[2]: *** [libcurl_la-file.lo] Error 1
make[2]: Leaving directory '/home/vend/curl-7.43.0/lib'
Makefile:700: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/vend/curl-7.43.0/lib'
Makefile:851: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

To recover from these make errors I replaced step 4 with:

sudo apt-get purge libcurl4-openssl-dev*
sudo apt-get install libcurl4-openssl-dev:i386

Our director of software architecture requested that I not use sudo apt-get purge libcurl4-openssl-dev*
because he wants to install parallel 64 bit and 32 bit development packages which both stay intact at the same time.

But when I omit sudo apt-get purge libcurl4-openssl-dev*. all hell breaks loose;

venkat_at_venkat-ThinkStation-S10:~$ sudo apt-get install libcurl4-openssl-dev:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
libcurl4-openssl-dev:i386 is already the newest version.
The following packages were automatically installed and are no longer required:
  libcurl3 liboxideqt-qmlplugin liboxideqtcore0 liboxideqtquick0 libqt5positioning5 libunity-webapps0 oxideqt-codecs qml-module-qt-labs-folderlistmodel
  qml-module-qt-labs-settings qml-module-qtquick-dialogs qml-module-qtquick-privatewidgets qml-module-ubuntu-onlineaccounts qtdeclarative5-accounts-plugin
  qtdeclarative5-ubuntu-web-plugin unity-webapps-qml unity-webapps-service webapp-container webbrowser-app
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 214 not upgraded.
venkat_at_venkat-ThinkStation-S10:~$ sudo apt-get install libcurl4-openssl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  liboxideqt-qmlplugin liboxideqtcore0 liboxideqtquick0 libqt5positioning5 libunity-webapps0 oxideqt-codecs qml-module-qt-labs-folderlistmodel
  qml-module-qt-labs-settings qml-module-qtquick-dialogs qml-module-qtquick-privatewidgets qml-module-ubuntu-onlineaccounts qtdeclarative5-accounts-plugin
  qtdeclarative5-ubuntu-web-plugin unity-webapps-qml unity-webapps-service webapp-container webbrowser-app
Use 'apt-get autoremove' to remove them.
Suggested packages:
  libcurl4-doc libcurl3-dbg
The following NEW packages will be installed:
  libcurl4-openssl-dev
0 upgraded, 1 newly installed, 0 to remove and 214 not upgraded.
Need to get 0 B/261 kB of archives.
After this operation, 1,245 kB of additional disk space will be used.
Selecting previously unselected package libcurl4-openssl-dev:amd64.
(Reading database ... 224583 files and directories currently installed.)
Preparing to unpack .../libcurl4-openssl-dev_7.43.0-1ubuntu2.1_amd64.deb ...
Unpacking libcurl4-openssl-dev:amd64 (7.43.0-1ubuntu2.1) ...
dpkg: error processing archive /var/cache/apt/archives/libcurl4-openssl-dev_7.43.0-1ubuntu2.1_amd64.deb (--unpack):
 trying to overwrite shared '/usr/bin/curl-config', which is different from other instances of package libcurl4-openssl-dev:amd64
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for man-db (2.7.4-1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/libcurl4-openssl-dev_7.43.0-1ubuntu2.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

I would like to know how to setup and maintain parallel 64 bit and 32 bit development packages which both stay intact simultaneously.

Thank you.

                                               

-------------------------------------------------------------------
List admin: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2016-03-18