Skip to content

Instantly share code, notes, and snippets.

@haxpor
Last active November 6, 2021 12:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haxpor/aa2b3e04d9581f1996a06b0fdedf8513 to your computer and use it in GitHub Desktop.
Save haxpor/aa2b3e04d9581f1996a06b0fdedf8513 to your computer and use it in GitHub Desktop.
Verbatim copy of content important configurations files for PPA package for libcurl4-openssl-dev. This is for research purpose.
Source: curl
Section: web
Priority: optional
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
XSBC-Original-Maintainer: Alessandro Ghedini <ghedo@debian.org>
Build-Depends: debhelper (>= 12),
autoconf,
automake,
ca-certificates,
dh-exec,
dpkg-dev (>= 1.17.14~),
groff-base,
libbrotli-dev,
libgnutls28-dev,
libidn2-0-dev,
libkrb5-dev,
libldap2-dev,
libnghttp2-dev,
libnss3-dev,
libpsl-dev,
librtmp-dev (>= 2.4+20131018.git79459a2-3~),
libssh-dev,
libssl-dev (>= 1.1),
libtool,
openssh-server <!nocheck>,
python3:native,
quilt,
stunnel4 <!nocheck>,
zlib1g-dev
Build-Conflicts: autoconf2.13, automake1.4
Standards-Version: 4.5.0
Vcs-Git: https://salsa.debian.org/debian/curl.git
Vcs-Browser: https://salsa.debian.org/debian/curl
Homepage: http://curl.haxx.se
Package: curl
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libcurl4 (= ${binary:Version})
Multi-Arch: foreign
Description: command line tool for transferring data with URL syntax
curl is a command line tool for transferring data with URL syntax, supporting
DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3,
POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form
based upload, proxies, cookies, user+password authentication (Basic, Digest,
NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a
busload of other useful tricks.
Package: libcurl4
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: ca-certificates
Pre-Depends: ${misc:Pre-Depends}
Conflicts: libcurl3
Replaces: libcurl3
Multi-Arch: same
Description: easy-to-use client-side URL transfer library (OpenSSL flavour)
libcurl is an easy-to-use client-side URL transfer library, supporting DICT,
FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S,
RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more!
.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported,
fast, thoroughly documented and is already used by many known, big and
successful companies and numerous applications.
.
SSL support is provided by OpenSSL.
Package: libcurl3-gnutls
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: ca-certificates
Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same
Description: easy-to-use client-side URL transfer library (GnuTLS flavour)
libcurl is an easy-to-use client-side URL transfer library, supporting DICT,
FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S,
RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more!
.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported,
fast, thoroughly documented and is already used by many known, big and
successful companies and numerous applications.
.
SSL support is provided by GnuTLS.
Package: libcurl3-nss
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: ca-certificates
Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same
Description: easy-to-use client-side URL transfer library (NSS flavour)
libcurl is an easy-to-use client-side URL transfer library, supporting DICT,
FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S,
RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more!
.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported,
fast, thoroughly documented and is already used by many known, big and
successful companies and numerous applications.
.
SSL support is provided by NSS.
Package: libcurl4-openssl-dev
Architecture: any
Section: libdevel
Provides: libcurl-dev,
libcurl-ssl-dev,
libcurl3-openssl-dev,
libcurl4-dev,
libcurl3-dev
Conflicts: libcurl4-gnutls-dev, libcurl4-nss-dev, libssl-dev (<< 1.1), libssl1.0-dev
Depends: ${misc:Depends}, libcurl4 (= ${binary:Version})
Suggests: libcurl4-doc,
libidn11-dev,
libkrb5-dev,
libldap2-dev,
librtmp-dev,
libssh2-1-dev,
libssl-dev (>= 1.1),
pkg-config,
zlib1g-dev
Multi-Arch: same
Description: development files and documentation for libcurl (OpenSSL flavour)
libcurl is an easy-to-use client-side URL transfer library, supporting DICT,
FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S,
RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more!
.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported,
fast, thoroughly documented and is already used by many known, big and
successful companies and numerous applications.
.
This package provides the development files (ie. includes, static library,
manual pages) that allow one to build software which uses libcurl.
.
SSL support is provided by OpenSSL.
Package: libcurl4-gnutls-dev
Architecture: any
Section: libdevel
Provides: libcurl-dev,
libcurl-ssl-dev,
libcurl3-gnutls-dev,
libcurl4-dev
Conflicts: libcurl4-openssl-dev, libcurl4-nss-dev
Depends: ${misc:Depends}, libcurl3-gnutls (= ${binary:Version})
Suggests: libcurl4-doc,
libgnutls28-dev,
libidn11-dev,
libkrb5-dev,
libldap2-dev,
librtmp-dev,
libssh2-1-dev,
pkg-config,
zlib1g-dev
Multi-Arch: same
Description: development files and documentation for libcurl (GnuTLS flavour)
libcurl is an easy-to-use client-side URL transfer library, supporting DICT,
FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S,
RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more!
.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported,
fast, thoroughly documented and is already used by many known, big and
successful companies and numerous applications.
.
This package provides the development files (ie. includes, static library,
manual pages) that allow one to build software which uses libcurl.
.
SSL support is provided by GnuTLS.
Package: libcurl4-nss-dev
Architecture: any
Section: libdevel
Provides: libcurl-dev,
libcurl-ssl-dev,
libcurl3-nss-dev,
libcurl4-dev
Conflicts: libcurl4-openssl-dev, libcurl4-gnutls-dev
Depends: ${misc:Depends}, libcurl3-nss (= ${binary:Version})
Suggests: libcurl4-doc,
libidn11-dev,
libkrb5-dev,
libldap2-dev,
libnss3-dev,
librtmp-dev,
libssh2-1-dev,
pkg-config,
zlib1g-dev
Multi-Arch: same
Description: development files and documentation for libcurl (NSS flavour)
libcurl is an easy-to-use client-side URL transfer library, supporting DICT,
FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S,
RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more!
.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported,
fast, thoroughly documented and is already used by many known, big and
successful companies and numerous applications.
.
This package provides the development files (ie. includes, static library,
manual pages) that allow one to build software which uses libcurl.
.
SSL support is provided by NSS.
Package: libcurl4-doc
Section: doc
Architecture: all
Depends: ${misc:Depends}
Replaces: libcurl4-openssl-dev (<< 7.30.0-2),
libcurl4-gnutls-dev (<< 7.30.0-2),
libcurl4-nss-dev (<< 7.30.0-2)
Breaks: libcurl4-openssl-dev (<< 7.30.0-2),
libcurl4-gnutls-dev (<< 7.30.0-2),
libcurl4-nss-dev (<< 7.30.0-2)
Description: documentation for libcurl
libcurl is an easy-to-use client-side URL transfer library, supporting DICT,
FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S,
RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.
.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more!
.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported,
fast, thoroughly documented and is already used by many known, big and
successful companies and numerous applications.
.
This package provides the documentation files for libcurl.
#! /usr/bin/make -f
# this will avoid unneded dependencies
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
# this will catch miss-linking. (e.g. undefined symbols)
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs
# enable all hardening options (see #763372)
export DEB_BUILD_MAINT_OPTIONS := hardening=+all
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
CONFIGURE_ARGS = -- --disable-dependency-tracking \
--disable-symbol-hiding --enable-versioned-symbols \
--enable-threaded-resolver --with-lber-lib=lber \
--with-gssapi=/usr --with-libssh2 --with-nghttp2 \
--includedir=/usr/include/$(DEB_HOST_MULTIARCH) \
--with-zsh-functions-dir=/usr/share/zsh/vendor-completions
# disable libssh2 on Ubuntu (see #888449)
ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
CONFIGURE_ARGS += --without-libssh2 --with-libssh
endif
%:
dh $@
override_dh_auto_configure:
mkdir -p debian/build debian/build-gnutls debian/build-nss
# pop the last patch (nss)
quilt pop
# pop the second last patch (gnutls)
quilt pop
# get the source without nss and gnutls patches
tar -cf - --exclude=debian/build* --exclude=.pc . \
| tar -xf - -C debian/build
# push the second last patch which must be gnutls
quilt push
# get the source with gnutls patch applied
tar -cf - --exclude=debian/build* --exclude=.pc . \
| tar -xf - -C debian/build-gnutls
# push the last patch which must be nss
quilt push
# get the source with nss patch applied
tar -cf - --exclude=debian/build* --exclude=.pc . \
| tar -xf - -C debian/build-nss
# run buildconf and make sure to copy the patched ltmain.sh
for flavour in build build-gnutls build-nss; do \
(cd debian/$$flavour && ./buildconf && cp ../../ltmain.sh .) \
done
cd debian/build && dh_auto_configure ${CONFIGURE_ARGS} \
--with-ca-path=/etc/ssl/certs \
--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
cd debian/build-gnutls && dh_auto_configure ${CONFIGURE_ARGS} \
--with-ca-path=/etc/ssl/certs \
--without-ssl --with-gnutls
cd debian/build-nss && dh_auto_configure ${CONFIGURE_ARGS} \
--without-ssl --with-nss
override_dh_auto_build:
cd debian/build && dh_auto_build
cd debian/build-gnutls && dh_auto_build
cd debian/build-nss && dh_auto_build
override_dh_auto_test:
-cd debian/build && dh_auto_test
-cd debian/build-gnutls && dh_auto_test
-cd debian/build-nss && dh_auto_test
override_dh_install:
${MAKE} -C debian/build \
DESTDIR=$(shell pwd)/debian/tmp install
${MAKE} -C debian/build-gnutls \
DESTDIR=$(shell pwd)/debian/tmp-gnutls install
${MAKE} -C debian/build-nss \
DESTDIR=$(shell pwd)/debian/tmp-nss install
dh_install -plibcurl3-gnutls -plibcurl4-gnutls-dev \
--sourcedir=debian/tmp-gnutls
dh_install -plibcurl3-nss -plibcurl4-nss-dev \
--sourcedir=debian/tmp-nss
dh_install -pcurl -plibcurl4 -plibcurl4-openssl-dev -plibcurl4-doc \
--sourcedir=debian/tmp
sed -i "/dependency_libs/ s/'.*'/''/" `find . -name '*.la'`
# Modify curl-config to make it architecture-independent:
# 1. In --static-libs output, replace the output of krb5-config (which
# currently includes architecture-specific paths) with a call at
# runtime to krb5-config. Of course, this will only work correctly
# if the installed libkrb5-dev matches the architecture of the
# program you're linking, or if libkrb5-dev is made
# multiarch-compatible at some point in the future. For dynamic
# linking this has no impact.
# 2. In --configure output, replace the architecture-specific paths
# used for --libdir and --libexecdir with a literal backquoted call
# to dpkg-architecture. This is functionally equivalent to the way
# debhelper actually invokes configure, and indicates to the user
# (who runs curl-config --configure in order to learn about how the
# library was compiled) that they are in fact using a multi-arch
# package.
# 3. Likewise, replace the architecture name used for --build (and
# build_alias) with a literal backquoted call to dpkg-architecture.
# 4. In --configure output, remove
# -fdebug-prefix-map=/buildd/specific/random/path=.
sed -e "/-lcurl /s|`krb5-config --libs gssapi`|\`krb5-config --libs gssapi\`|" \
-e "/--prefix/s|/$(DEB_HOST_MULTIARCH)'|/'\\\\\`dpkg-architecture -qDEB_HOST_MULTIARCH\\\\\`|g" \
-e "/--prefix/s|=$(DEB_BUILD_GNU_TYPE)'|='\\\\\`dpkg-architecture -qDEB_BUILD_GNU_TYPE\\\\\`|g" \
-e "/-fdebug-prefix-map=/s|\(-fdebug-prefix-map=\)/[^ ]*=.||" \
-i `find . -name curl-config`
override_dh_installchangelogs:
dh_installchangelogs CHANGES
override_dh_compress:
dh_compress -X.pdf
override_dh_auto_clean:
$(RM) -r debian/build* debian/tmp*
dh_auto_clean
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment