I'd really like to see the underlying issue here fixed.  (Specifically
I'd like to have i386 and amd64 -dev packages installed, and usable,
at the same time.)  I'll be happy to provide patches if that will
help.

So from what I can tell there are 4 problems:

1. curl-config --libs: This is pretty trivial to fix; if libcurl is
installed in /usr/lib/x86_64-linux-gnu/, there's no need to include
that path in the linker flags.  Just change curl-config.in to
unconditionally set CURLLIBDIR="".

(As a side issue, it'd also be good if 'pkg-config --libs libcurl'
behaved the same way, i.e. omit -L${libdir} from libcurl.pc.)

2. curl-config --static-libs: Is there a real need to support this
option?  Specifically, is there a situation where it's useful to link
statically with libcurl while linking dynamically with the other
libraries (e.g., -lgssapi_krb5, which in Debian is only available as a
shared library)?  I guess the only way to preserve the exact semantics
of this command would be to rename libcurl.a to (e.g.)
libcurl-static.a, and replace "@libdir@/libcurl.@libext@" with
-lcurl-static.  Alternatively it could be changed to something like
"-Wl,-Bstatic -lcurl -Wl,-Bdynamic" but that might break some weird
configurations.

3. Barely worth mentioning, curl-config --configure: I seriously doubt
anyone is using this option for anything important.  But one way, I
suppose, to more-or-less preserve the semantics would be to replace
the architecture triplets with the literal string "$(dpkg-architecture
-qDEB_HOST_MULTIARCH)".

4. curlbuild.h: The simplest way to fix this would be to move all of
/usr/include/curl/ to /usr/include/<triplet>/curl/.  (Is that include
path supported by all C compilers in Debian?  It's a little unclear to
me; some of the multi-arch documents mention that path, while others
imply that there isn't any standard way to do arch-dependent header
files.)  Alternatively, just curlbuild.h could be moved, and curl.h
could be modified to #include <curl/curlbuild.h> instead of #include
"curlbuild.h".

Of course, curl-config --cflags, and pkg-config --cflags libcurl,
should continue to output nothing (the whole exercise is wasted if
curl-config --cflags outputs "-I/usr/include/x86_64-linux-gnu".)

The other option would be to replace curlbuild.h with a version that
uses #ifdefs to include the appropriate curlbuild.h for the
architecture.  (This is what Fedora/RHEL have done in their
libcurl-devel packages.)  This could be quite complicated, given the
number of architectures Debian supports.

Benjamin Moody


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to