--- libwww-curl-perl-2.0.orig/debian/control +++ libwww-curl-perl-2.0/debian/control @@ -0,0 +1,21 @@ +Source: libwww-curl-perl +Section: perl +Priority: optional +Maintainer: Debian Perl Group +Uploaders: Michael Zehrer , Joachim Breitner +Build-Depends: debhelper (>> 4.1.0), perl (>= 5.8.0-19), libcurl3-dev +Standards-Version: 3.6.1 + +Package: libwww-curl-perl +Architecture: any +Suggests: libcurl2-dev +Depends: ${shlibs:Depends}, ${perl:Depends} +conflicts: libcurl-easy-perl +replaces: libcurl-easy-perl +Description: Perl bindings to libcurl + This package provides the WWW::curl perl module Which contains the Perl + bindings to libcurl. Please refer to + the libcurl documentation available in libcurl2-dev Debian package. + . + More information can be found at the curl web site + http://curl.haxx.se/libcurl/perl/ . --- libwww-curl-perl-2.0.orig/debian/changelog +++ libwww-curl-perl-2.0/debian/changelog @@ -0,0 +1,153 @@ +libwww-curl-perl (2.0-8) unstable; urgency=low + + * Closes: #279459: please rebuild with libcurl3-dev as build dependency + + -- Joachim Breitner Thu, 9 Dec 2004 15:27:33 +0100 + +libwww-curl-perl (2.0-7) unstable; urgency=low + + * Closes: #245606: FTBFS: Duplicate case values + thanks to Matt Kraai for the patch! + + -- Joachim Breitner Sat, 24 Apr 2004 11:06:04 +0200 + +libwww-curl-perl (2.0-6) unstable; urgency=low + + * Corrected Maintainer e-Mail Address + + -- Joachim Breitner Fri, 27 Feb 2004 12:35:37 +0100 + +libwww-curl-perl (2.0-5) unstable; urgency=low + + * Adopted orphaned package for Debian Perl Group (Closes: #228232) + + -- Michael Zehrer Sun, 01 Feb 2004 09:39:00 +0100 + +libwww-curl-perl (2.0-4) unstable; urgency=low + + * Upgraded to new standards version + * Updated build-depends to new versions of debhelper, perl, and libcurl2-dev + + -- Deedra Waters Sun, 10 Aug 2003 14:26:57 -0400 + +libwww-curl-perl (2.0-3) unstable; urgency=low + + * Added the perl module name to the description so that it would be easier to + search for the perl module + + -- Deedra Waters Tue, 3 Jun 2003 09:57:59 -0400 + +libwww-curl-perl (2.0-2) unstable; urgency=low + + * added a lintian override to ignore the warningsthat come from the + perl module when some things are installed into /usr/lib + * Added the two licenses to debian/copyright + + -- Deedra Waters Tue, 20 May 2003 01:22:22 -0400 + +libwww-curl-perl (2.0-1) unstable; urgency=low + + * New upstream release, replaces libcurl-easy-perl + + -- Deedra Waters Mon, 28 Apr 2003 07:37:43 -0400 + +libcurl-easy-perl (1.35-5) unstable; urgency=low + + * First official release as new maintainer (closes: #189624). + * Fixed things in the rules to make the package clean up nicer. + + -- Deedra Waters Wed, 23 Apr 2003 22:14:25 -0400 + +libcurl-easy-perl (1.35-4) unstable; urgency=low + + * Adopted this package from its former maintainer. This is my first + package. + * Fixed an error in its long description. + + -- Deedra Waters Tue, 22 Apr 2003 12:36:52 -0400 + +libcurl-easy-perl (1.35-3) unstable; urgency=low + + * Recompiled with a newer libcurl2 to enable new curl options. + * Changed section to perl. + + -- Domenico Andreoli Wed, 16 Apr 2003 02:46:54 +0200 + +libcurl-easy-perl (1.35-2) unstable; urgency=low + + * Updated build dependencies to libcurl2 >= 7.10.3-1 in order to + enable new curl options. + * It now suggests libcurl2-dev for documentation. + * Improved long description. + + -- Domenico Andreoli Tue, 21 Jan 2003 00:45:41 +0100 + +libcurl-easy-perl (1.35-1) unstable; urgency=low + + * New upstream release. + + -- Domenico Andreoli Wed, 2 Oct 2002 01:16:27 +0200 + +libcurl-easy-perl (1.34-1) unstable; urgency=low + + * New upstream release. + * Build-depend on perl (>= 5.8.0-7), in order to use perlapi-5.8.0 + (closes: #158943). + + -- Domenico Andreoli Mon, 2 Sep 2002 13:56:39 +0200 + +libcurl-easy-perl (1.33-1) unstable; urgency=low + + * New upstream release. + + -- Domenico Andreoli Tue, 6 Aug 2002 05:34:00 +0200 + +libcurl-easy-perl (1.31-1) unstable; urgency=low + + * New upstream release. + + -- Domenico Andreoli Wed, 17 Jul 2002 01:12:28 +0200 + +libcurl-easy-perl (1.20-3) unstable; urgency=low + + * It now depends on libcurl >> 7.9.8 in order to enable new curl + options. + + -- Domenico Andreoli Tue, 25 Jun 2002 23:17:51 +0200 + +libcurl-easy-perl (1.20-2) unstable; urgency=low + + * It now depends on libcurl >> 7.9.5 in order to enable new curl + options. + + -- Domenico Andreoli Tue, 12 Mar 2002 23:30:53 +0100 + +libcurl-easy-perl (1.20-1) unstable; urgency=low + + * New upstream release. + + -- Domenico Andreoli Mon, 18 Feb 2002 15:59:55 +0100 + +libcurl-easy-perl (1.1.9-2) unstable; urgency=low + + * Build-Depends modified in order to make this build on a libcurl 7.9.3. + + -- Domenico Andreoli Tue, 29 Jan 2002 11:20:55 +0100 + +libcurl-easy-perl (1.1.9-1) unstable; urgency=low + + * New upstream release. + + -- Domenico Andreoli Sat, 26 Jan 2002 12:25:48 +0100 + +libcurl-easy-perl (1.1.8-1) unstable; urgency=low + + * New upstream release. + + -- Domenico Andreoli Wed, 26 Sep 2001 00:42:41 +0200 + +libcurl-easy-perl (1.1.7-1) unstable; urgency=low + + * Initial release (closes: #94367). + + -- Domenico Andreoli Thu, 20 Sep 2001 01:52:13 +0200 --- libwww-curl-perl-2.0.orig/debian/copyright +++ libwww-curl-perl-2.0/debian/copyright @@ -0,0 +1,387 @@ +This package was debianized by Domenico Andreoli on +Sun, 22 Apr 2001 19:45:56 +0200. + +It was downloaded from http://curl.haxx.se/libcurl/perl/ + +Upstream Author: Cris Bailiff + Georg Horn + Forrest Cahoon + +Copyright: + + This software is distributed AS IS, WITHOUT WARRANTY OF ANY KIND, + either express or implied. Send praise, patches, money, beer and + pizza to the authors. Send complaints to /dev/null. ;-) + + The original author of this software is Georg Horn + + Parts of the callback support have been added Forrest Cahoon + + + More callback support, many tests additional documentation and Makefile + features have been added by Cris Bailiff + + The current maintainer is Cris Bailiff + + Copyright (C) 2000, Daniel Stenberg, , et al. You may opt to use, + copy, modify, merge, publish, distribute and/or sell copies of the + Software, and permit persons to whom the Software is furnished to do + so, under the terms of the MPL or the MIT/X-derivate licenses. You + may pick one of these licenses. + +The MIT License + + Copyright (c) + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Mozilla Public License Version 1.0 + + 1. Definitions. + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the + Modifications made by that particular Contributor. + 1.3. "Covered Code" means the Original Code or Modifications or + the combination of the Original Code and Modifications, in each + case including portions thereof. + 1.4. "Electronic Distribution Mechanism" means a mechanism + generally accepted in the software development community for the + electronic transfer of data. + 1.5. "Executable" means Covered Code in any form other than Source + Code. + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by + Exhibit A. + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this + License. + 1.8. "License" means this document. + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, + a Modification is: + + A. Any addition to or deletion from the contents of a file containing + Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or a list of source + code differential comparisons against either the Original Code or + another well known, available Covered Code of the Contributor's + choice. The Source Code can be in a compressed or archival form, + provided the appropriate decompression or de-archiving software is + widely available for no charge. + + 1.12. "You" means an individual or a legal entity exercising rights + under, and complying with all of the terms of, this License or a + future version of this License issued under Section 6.1. For legal + entities, "You" includes any entity which controls, is controlled by, + or is under common control with You. For purposes of this definition, + "control" means (a) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (b) ownership of fifty percent (50%) or more of the + outstanding shares or beneficial ownership of such entity. + 2. Source Code License. + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, + royalty-free, non-exclusive license, subject to third party + intellectual property claims: + + (a) to use, reproduce, modify, display, perform, sublicense and + distribute the Original Code (or portions thereof) with or without + Modifications, or as part of a Larger Work; and + (b) under patents now or hereafter owned or controlled by Initial + Developer, to make, have made, use and sell ("Utilize") the + Original Code (or portions thereof), but solely to the extent that + any such patent is reasonably necessary to enable You to Utilize + the Original Code (or portions thereof) and not to any greater + extent that may be necessary to Utilize further Modifications or + combinations. + + 2.2. Contributor Grant. + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) to use, reproduce, modify, display, perform, sublicense and + distribute the Modifications created by such Contributor (or + portions thereof) either on an unmodified basis, with other + Modifications, as Covered Code or as part of a Larger Work; and + (b) under patents now or hereafter owned or controlled by + Contributor, to Utilize the Contributor Version (or portions + thereof), but solely to the extent that any such patent is + reasonably necessary to enable You to Utilize the Contributor + Version (or portions thereof), and not to any greater extent that + may be necessary to Utilize further Modifications or combinations. + + 3. Distribution Obligations. + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without + limitation Section 2.2. The Source Code version of Covered Code + may be distributed only under the terms of this License or a + future version of this License released under Section 6.1, and You + must include a copy of this License with every copy of the Source + Code You distribute. You may not offer or impose any terms on any + Source Code version that alters or restricts the applicable + version of this License or the recipients' rights hereunder. + However, You may include an additional document offering the + additional rights described in Section 3.5. + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must + be made available in Source Code form under the terms of this + License either on the same media as an Executable version or via + an accepted Electronic Distribution Mechanism to anyone to whom + you made an Executable version available; and if made available + via Electronic Distribution Mechanism, must remain available for + at least twelve (12) months after the date it initially became + available, or at least six (6) months after a subsequent version + of that particular Modification has been made available to such + recipients. You are responsible for ensuring that the Source Code + version remains available even if the Electronic Distribution + Mechanism is maintained by a third party. + 3.3. Description of Modifications. + You must cause all Covered Code to which you contribute to contain + a file documenting the changes You made to create that Covered + Code and the date of any change. You must include a prominent + statement that the Modification is derived, directly or + indirectly, from Original Code provided by the Initial Developer + and including the name of the Initial Developer in (a) the Source + Code, and (b) in any notice in an Executable version or related + documentation in which You describe the origin or ownership of the + Covered Code. + 3.4. Intellectual Property Matters + + (a) Third Party Claims. + If You have knowledge that a party claims an intellectual property + right in particular functionality or code (or its utilization + under this License), you must include a text file with the source + code distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If you obtain such knowledge after You make + Your Modification available as described in Section 3.2, You shall + promptly modify the LEGAL file in all copies You make available + thereafter and shall take other steps (such as notifying + appropriate mailing lists or newsgroups) reasonably calculated to + inform those who received the Covered Code that new knowledge has + been obtained. + (b) Contributor APIs. + If Your Modification is an application programming interface and + You own or control patents which are reasonably necessary to + implement that API, you must also include this information in the + LEGAL file. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code, and this License in any documentation for the Source Code, where + You describe recipients' rights relating to Covered Code. If You + created one or more Modification(s), You may add your name as a + Contributor to the notice described in Exhibit A. If it is not + possible to put such notice in a particular Source Code file due to + its structure, then you must include such notice in a location (such + as a relevant directory file) where a user would be likely to look for + such a notice. You may choose to offer, and to charge a fee for, + warranty, support, indemnity or liability obligations to one or more + recipients of Covered Code. However, You may do so only on Your own + behalf, and not on behalf of the Initial Developer or any Contributor. + You must make it absolutely clear than any such warranty, support, + indemnity or liability obligation is offered by You alone, and You + hereby agree to indemnify the Initial Developer and every Contributor + for any liability incurred by the Initial Developer or such + Contributor as a result of warranty, support, indemnity or liability + terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code under a license of Your choice, which may contain terms different + from this License, provided that You are in compliance with the terms + of this License and that the license for the Executable version does + not attempt to limit or alter the recipient's rights in the Source + Code version from the rights set forth in this License. If You + distribute the Executable version under a different license You must + make it absolutely clear that any terms which differ from this License + are offered by You alone, not by the Initial Developer or any + Contributor. You hereby agree to indemnify the Initial Developer and + every Contributor for any liability incurred by the Initial Developer + or such Contributor as a result of any such terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + 4. Inability to Comply Due to Statute or Regulation. + If it is impossible for You to comply with any of the terms of + this License with respect to some or all of the Covered Code due + to statute or regulation then You must: (a) comply with the terms + of this License to the maximum extent possible; and (b) describe + the limitations and the code they affect. Such description must be + included in the LEGAL file described in Section 3.4 and must be + included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must + be sufficiently detailed for a recipient of ordinary skill to be + able to understand it. + + 5. Application of this License. + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A, and to related Covered Code. + + 6. Versions of the License. + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish + revised and/or new versions of the License from time to time. Each + version will be given a distinguishing version number. + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of + the License, You may always continue to use it under the terms of + that version. You may also choose to use such Covered Code under + the terms of any subsequent version of the License published by + Netscape. No one other than Netscape has the right to modify the + terms applicable to Covered Code created under this License. + 6.3. Derivative Works. + If you create or use a modified version of this License (which you + may only do in order to apply it to code which is not already + Covered Code governed by this License), you must (a) rename Your + license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", + "Netscape", "NPL" or any confusingly similar phrase do not appear + anywhere in your license and (b) otherwise make it clear that your + version of the license contains terms which differ from the + Mozilla Public License and Netscape Public License. (Filling in + the name of the Initial Developer, Original Code or Contributor in + the notice described in Exhibit A shall not of themselves be + deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS + FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR + NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE + OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. + All sublicenses to the Covered Code which are properly granted + shall survive any termination of this License. Provisions which, + by their nature, must remain in effect beyond the termination of + this License shall survive. + + 9. LIMITATION OF LIABILITY. + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED + CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR + ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR + LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE + POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL + NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM + SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS + SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT + EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + The Covered Code is a "commercial item," as that term is defined in 48 + C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as + such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent + with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 + (June 1995), all U.S. Government End Users acquire Covered Code + with only those rights set forth herein. + + 11. MISCELLANEOUS. + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed + by California law provisions (except to the extent applicable law, + if any, provides otherwise), excluding its conflict-of-law + provisions. With respect to disputes in which at least one party + is a citizen of, or an entity chartered or registered to do + business in, the United States of America: (a) unless otherwise + agreed in writing, all disputes relating to this License + (excepting any dispute relating to intellectual property rights) + shall be subject to final and binding arbitration, with the losing + party paying all costs of arbitration; (b) any arbitration + relating to this Agreement shall be held in Santa Clara County, + California, under the auspices of JAMS/EndDispute; and (c) any + litigation relating to this Agreement shall be subject to the + jurisdiction of the Federal Courts of the Northern District of + California, with venue lying in Santa Clara County, California, + with the losing party responsible for costs, including without + limitation, court costs and reasonable attorneys fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly + excluded. Any law or regulation which provides that the language + of a contract shall be construed against the drafter shall not + apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + Except in cases where another Contributor has failed to comply with + Section 3.4, You are responsible for damages arising, directly or + indirectly, out of Your utilization of rights under this License, + based on the number of copies of Covered Code you made available, + the revenues you received from utilizing such rights, and other + relevant factors. You agree to work with affected parties to + distribute responsibility on an equitable basis. + + EXHIBIT A. + "The contents of this file are subject to the Mozilla Public License + Version 1.0 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License + at http://www.mozilla.org/MPL/ + Software distributed under the License is distributed on an "AS + IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + implied. See the License for the specific language governing + rights and limitations under the License. + The Original Code is ______________________________________. + The Initial Developer of the Original Code is + ________________________. Portions created by + ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + Contributor(s): ______________________________________." --- libwww-curl-perl-2.0.orig/debian/rules +++ libwww-curl-perl-2.0/debian/rules @@ -0,0 +1,73 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This is the debhelper compatability version to use. +export DH_COMPAT=4 + +PACKAGE=$(shell dh_listpackages) + +ifndef PERL +PERL = /usr/bin/perl +endif + +TMP =$(CURDIR)/debian/$(PACKAGE) + +# Allow disabling build optimation by setting noopt in +# $DEB_BUILD_OPTIONS +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +configure: configure-stamp +configure-stamp: + dh_testdir + perl Makefile.PL INSTALLDIRS=vendor + touch configure-stamp + +build: configure-stamp build-stamp +build-stamp: + dh_testdir + $(MAKE) OPTIMIZE="$(CFLAGS)" + touch build-stamp + +clean: + dh_testdir + dh_testroot + -$(MAKE) clean + rm -f build-stamp configure-stamp Makefile.old curlopt-constants.c + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + $(MAKE) PREFIX=/usr DESTDIR=$(TMP) install + install -m 644 debian/libwww-curl-perl.override -D $(CURDIR)/debian/libwww-curl-perl/usr/share/lintian/overrides/libwww-curl-perl + -rmdir $(CURDIR)/debian/libwww-curl-perl/usr/share/perl5 + +binary-indep: build install + +binary-arch: build install + dh_testdir + dh_testroot + dh_installdocs + dh_installexamples + dh_installchangelogs Changes + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure --- libwww-curl-perl-2.0.orig/debian/libwww-curl-perl.override +++ libwww-curl-perl-2.0/debian/libwww-curl-perl.override @@ -0,0 +1,4 @@ +libwww-curl-perl: package-installs-nonbinary-perl-in-usr-lib-perl5 usr/lib/perl5/Curl/easy.pm +libwww-curl-perl: package-installs-nonbinary-perl-in-usr-lib-perl5 usr/lib/perl5/WWW/Curl.pm +libwww-curl-perl: package-installs-nonbinary-perl-in-usr-lib-perl5 usr/lib/perl5/WWW/Curl/form.pm +libwww-curl-perl: package-installs-nonbinary-perl-in-usr-lib-perl5 usr/lib/perl5/WWW/Curl/easy.pm --- libwww-curl-perl-2.0.orig/debian/examples +++ libwww-curl-perl-2.0/debian/examples @@ -0,0 +1 @@ +t/*.t --- libwww-curl-perl-2.0.orig/lib/WWW/Curl/easy.pm +++ libwww-curl-perl-2.0/lib/WWW/Curl/easy.pm @@ -0,0 +1,459 @@ +# Perl interface for libcurl. Check out the file README for more info. + +package WWW::Curl::easy; + +use strict; +use Carp; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); + +require WWW::Curl; + +require Exporter; +require AutoLoader; + +@ISA = qw(Exporter DynaLoader); +# Items to export into callers namespace by default. Note: do not export +# names by default without a very good reason. Use EXPORT_OK instead. +# Do not simply export all your public functions/methods/constants. +@EXPORT = qw( +CURLOPT_ +CURLOPT_AUTOREFERER +CURLOPT_BUFFERSIZE +CURLOPT_CAINFO +CURLOPT_CAPATH +CURLOPT_CLOSEFUNCTION +CURLOPT_CLOSEPOLICY +CURLOPT_CONNECTTIMEOUT +CURLOPT_COOKIE +CURLOPT_COOKIEFILE +CURLOPT_COOKIEJAR +CURLOPT_COOKIESESSION +CURLOPT_CRLF +CURLOPT_CUSTOMREQUEST +CURLOPT_DEBUGDATA +CURLOPT_DEBUGFUNCTION +CURLOPT_DNS_CACHE_TIMEOUT +CURLOPT_DNS_USE_GLOBAL_CACHE +CURLOPT_EGDSOCKET +CURLOPT_ENCODING +CURLOPT_ERRORBUFFER +CURLOPT_FAILONERROR +CURLOPT_FILE +CURLOPT_FILETIME +CURLOPT_FOLLOWLOCATION +CURLOPT_FORBID_REUSE +CURLOPT_FRESH_CONNECT +CURLOPT_FTPAPPEND +CURLOPT_FTPASCII +CURLOPT_FTPLISTONLY +CURLOPT_FTPPORT +CURLOPT_FTP_CREATE_MISSING_DIRS +CURLOPT_FTP_RESPONSE_TIMEOUT +CURLOPT_FTP_SSL +CURLOPT_FTP_USE_EPRT +CURLOPT_FTP_USE_EPSV +CURLOPT_HEADER +CURLOPT_HEADERFUNCTION +CURLOPT_HTTP200ALIASES +CURLOPT_HTTPAUTH +CURLOPT_HTTPGET +CURLOPT_HTTPHEADER +CURLOPT_HTTPPOST +CURLOPT_HTTPPROXYTUNNEL +CURLOPT_HTTPREQUEST +CURLOPT_HTTP_VERSION +CURLOPT_INFILE +CURLOPT_INFILESIZE +CURLOPT_INFILESIZE_LARGE +CURLOPT_INTERFACE +CURLOPT_IPRESOLVE +CURLOPT_KRB4LEVEL +CURLOPT_LOW_SPEED_LIMIT +CURLOPT_LOW_SPEED_TIME +CURLOPT_MAXCONNECTS +CURLOPT_MAXFILESIZE +CURLOPT_MAXFILESIZE_LARGE +CURLOPT_MAXREDIRS +CURLOPT_MUTE +CURLOPT_NETRC +CURLOPT_NETRC_FILE +CURLOPT_NOBODY +CURLOPT_NOPROGRESS +CURLOPT_NOSIGNAL +CURLOPT_NOTHING +CURLOPT_PASSWDDATA +CURLOPT_PASSWDFUNCTION +CURLOPT_PORT +CURLOPT_POST +CURLOPT_POSTFIELDS +CURLOPT_POSTFIELDSIZE +CURLOPT_POSTQUOTE +CURLOPT_PREQUOTE +CURLOPT_PRIVATE +CURLOPT_PROGRESSDATA +CURLOPT_PROGRESSFUNCTION +CURLOPT_PROXY +CURLOPT_PROXYAUTH +CURLOPT_PROXYPORT +CURLOPT_PROXYTYPE +CURLOPT_PROXYUSERPWD +CURLOPT_PUT +CURLOPT_QUOTE +CURLOPT_RANDOM_FILE +CURLOPT_RANGE +CURLOPT_READFUNCTION +CURLOPT_REFERER +CURLOPT_RESUME_FROM +CURLOPT_RESUME_FROM_LARGE +CURLOPT_SHARE +CURLOPT_SSLCERT +CURLOPT_SSLCERTPASSWD +CURLOPT_SSLCERTTYPE +CURLOPT_SSLENGINE +CURLOPT_SSLENGINE_DEFAULT +CURLOPT_SSLKEY +CURLOPT_SSLKEYPASSWD +CURLOPT_SSLKEYTYPE +CURLOPT_SSLVERSION +CURLOPT_SSL_CIPHER_LIST +CURLOPT_SSL_CTX_DATA +CURLOPT_SSL_CTX_FUNCTION +CURLOPT_SSL_VERIFYHOST +CURLOPT_SSL_VERIFYPEER +CURLOPT_STDERR +CURLOPT_TELNETOPTIONS +CURLOPT_TIMECONDITION +CURLOPT_TIMEOUT +CURLOPT_TIMEVALUE +CURLOPT_TRANSFERTEXT +CURLOPT_UNRESTRICTED_AUTH +CURLOPT_UPLOAD +CURLOPT_URL +CURLOPT_USERAGENT +CURLOPT_USERPWD +CURLOPT_VERBOSE +CURLOPT_WRITEFUNCTION +CURLOPT_WRITEHEADER +CURLOPT_WRITEINFO +CURLINFO_CONNECT_TIME +CURLINFO_CONTENT_LENGTH_DOWNLOAD +CURLINFO_CONTENT_LENGTH_UPLOAD +CURLINFO_CONTENT_TYPE +CURLINFO_DATA_IN +CURLINFO_DATA_OUT +CURLINFO_EFFECTIVE_URL +CURLINFO_END +CURLINFO_FILETIME +CURLINFO_HEADER_IN +CURLINFO_HEADER_OUT +CURLINFO_HEADER_SIZE +CURLINFO_HTTPAUTH_AVAIL +CURLINFO_HTTP_CODE +CURLINFO_HTTP_CONNECTCODE +CURLINFO_LASTONE +CURLINFO_NAMELOOKUP_TIME +CURLINFO_NONE +CURLINFO_PRETRANSFER_TIME +CURLINFO_PRIVATE +CURLINFO_PROXYAUTH_AVAIL +CURLINFO_REDIRECT_COUNT +CURLINFO_REDIRECT_TIME +CURLINFO_REQUEST_SIZE +CURLINFO_RESPONSE_CODE +CURLINFO_SIZE_DOWNLOAD +CURLINFO_SIZE_UPLOAD +CURLINFO_SPEED_DOWNLOAD +CURLINFO_SPEED_UPLOAD +CURLINFO_SSL_VERIFYRESULT +CURLINFO_STARTTRANSFER_TIME +CURLINFO_TEXT +CURLINFO_TOTAL_TIME +USE_INTERNAL_VARS +); + +$VERSION = '2.0'; + + +$WWW::Curl::easy::headers = ""; +$WWW::Curl::easy::content = ""; + +sub AUTOLOAD { + # This AUTOLOAD is used to 'autoload' constants from the constant() + # XS function. + + (my $constname = $AUTOLOAD) =~ s/.*:://; + return constant($constname, 0); +} + +# bootstrap WWW::Curl::easy $VERSION; + +# Preloaded methods go here. + +# Autoload methods go after __END__, and are processed by the autosplit program. + +1; +__END__ +# Below is the documentation. + +=cut + +=head1 NAME + +WWW::Curl::easy - Perl extension interface for libcurl + +=head1 SYNOPSIS + + use WWW::Curl::easy; + + my $curl = WWW::Curl::easy->new(); # an alias for WWW::Curl::easy::init + my $code = $curl->setopt(CURLOPT_option, ....); + $code = $curl->perform($curl); + my $err = $curl->errbuf; # report any error message + my $info = $curl->getinfo(CURLINFO_option); + + $curl->cleanup(); # optional + + WWW::Curl::easy::global_cleanup(); # optional cleanup at exit + +Read the curl man pages, curl_easy_setopt(3) and curl_easy_getinfo(3) for details of CURLOPT_option and CURLINFO_option values. + +=head1 DESCRIPTION + +B provides an interface to the libcurl C library. See +http://curl.haxx.se/ for more information on cURL and libcurl. + +Before v2.0, this modules was called 'Curl::easy'. The name has changed to 'WWW::Curl::easy' (to better suit +CPAN naming guidelines). The new version includes a compatability package, so existing scripts +using the 'Curl::easy' name will continue to work as before. New scripts should use the +'WWW::Curl::easy' name. + +From v1.30, this interface supports the perl OO style of creating +$curl handles, and calling methods to get and set curl parameters. Previous +versions of this interface only supported the straight 'subroutine' call style +of accessing curl. Scripts using the older style are still compatible (but see +COMPATABILITY, below), but this documentation and the test scripts have been +updated to the OO style. + +=head2 FILES and CALLBACKS + +WWW::Curl::easy supports the various options of curl_easy_setopt which require either a FILE * or +a callback (subroutine) reference. + +Callback to perl subroutines are handled by this XS interface through a wrapper which takes +care of converting from C to perl variables and back again. This wrapper also simplifies some +'C' style arguments to make them behave in a more 'perl' like manner. In particular, the +read and write callbacks do not look just like the 'fread' and 'fwrite' C functions - +perl variables do not need separate length parameters, and perl functions can return a list of +variables, instead of needing a pointer to modify. The details are described below. + +=head2 C handles (GLOBS) + +Curl options which take a C, such as C, C, +C +can be passed a perl file handle: + + open BODY,">body.out"; + $code = $curl->setopt(CURLOPT_FILE, *BODY); + +=head2 WRITE callback + +The C option may be set which will cause libcurl to call back to +the referenced perl subroutine: + + sub chunk { my ($data,$pointer)=@_; ...do something...; return length($data) } + + # call the above routine from curl: + $code = $curl->setopt(CURLOPT_WRITEFUNCTION, \&chunk ); + $code = $curl->setopt(CURLOPT_FILE, \$variable ); + $curl->perform(); + +The subroutine will be passed whatever is defined by C. This can be +a reference to a regular variable (as above), or a glob or anything else you like. + +The callback function must return the number of bytes 'handled' ( C ) or +the transfer will abort. A transfer can be aborted by returning a value of 0, for example. + +The option C can be set to pass a different C<$pointer> into the +CURLOPT_WRITEFUNCTION for header values. This lets you collect the headers and body separately, as +shown in the example below: + + use WWW::Curl::easy; + my $headers=""; + my $body=""; + sub chunk { my ($data,$pointer)=@_; ${$pointer}.=$data; return length($data) } + + my $curl=WWW::Curl::easy->new; + ... + my $code = $curl->setopt(CURLOPT_WRITEFUNCTION, \&chunk ); + $code = $curl->setopt(CURLOPT_WRITEHEADER, \$headers ); + $code = $curl->setopt(CURLOPT_FILE, \$body ); + $curl->perform(); + print $body; + +If you have libcurl > 7.7.1, then you could instead set C to a different +callback, and have the header collected that way. + +=head2 READ callback + +WWW::Curl::easy supports C. This function should follow this prototype: + + sub read_callback { + my ($maxlength,$pointer)=@_; + .... + return $data; + } + +The subroutine must return an empty string "" at the end of the data. Note that this function +isn't told how much data to provide - $maxlength is just the maximum size of the buffer +provided by libcurl. If you are doing an HTTP POST or PUT for example, it is important that this +function only returns (in total) as much data as the 'Content-Length' header specifies, followed by +a an empty (0 length) buffer. + +=head2 PROGRESS callback + +WWW::Curl::easy supports C. This function should follow this prototype: + + sub progress_callback { + my ($clientp,$dltotal,$dlnow,$ultotal,$ulnow)=@_; + .... + return 0; + } + +The function should return 0 normally, or -1 which will abort/cancel the +transfer. C<$clientp> is whatever is set using the C option. + +=head2 PASSWD callback + +WWW::Curl::easy supports C. This function should look something like this: + + sub passwd_callback { + my ($clientp,$prompt,$buflen)=@_; + ... + return (0,$data); + } + +C<$clientp> is whatever scalar is set using the C option. +C<$prompt> is a text string which can be used to prompt for a password. +C<$buflen> is the maximum length of the accepted password reply. + +The function must return 0 (for 'OK') and the password data as a list. +Return (-1,"") to indicate an error. + +=head2 STDERR redirection + +You can use set the option C to an alternate file handle glob +to redirect stderr messages from libcurl, if your libcurl version has this option. + + open(OTHERFILE,">/dev/null") or die; + $curl->setopt(CURLOPT_STDERR,*OTHERFILE); + +=head1 COMPATABILITY NOTES + +As noted in the introduction, this module was previously called 'Curl::easy', and has +been renamed for upload to CPAN as 'WWW::Curl'. Scripts should use the 'WWW:Curl::easy' functions +for access basic libcurl functions. At some point, a 'higher level' perl interface is intended to become +'WWW::Curl', and act as a wrapper around WWW::Curl::easy, with more perl-like defaults and interface +syntax. + +=item * + +=over 4 + +Early releases of this module didn't reliably deal with more than a single +curl handle per process, because of the use of a number of global 'glue' variables +in various places. This should now be fixed, but certain interface features could not +be made reliably forward compatible if you intend to use multiple handles or threading: + +=over 4 + +=item * + +The (largely undocumented) USE_INTERNAL_VARS feature, which previously collected data in a +static global buffer, has been ported to use the new threadable structure, but +the method by which it returns it's output (directly into specific global variables) +cannot be made safe without destroying backwards compatibility. The interface is considered +DEPRECATED in this release, and will be removed *VERY SOON* - instead, use a perl subroutine +callback to collect output into a string (as shown in the example above), which should be safe +across multiple threads/handles. + +=item * + +You can build this module without the USE_INTERNAL_VARS interface by compiling with +-UWITH_INTERNAL_VARS. This will become the default in a future release. + +=back + +=item * + +Returning the error buffer by passing the name of a perl variable through C<$curl-Esetopt> +is ugly. It is still supported, but instead, you can get the information by calling the new method +C<$curl->errbuf> directly. + +=item * + +Returning CURLINFO variables by passing the output variable to C<$curl-Egetinfo> is ugly. +It is still supported, but instead, you can get the information as the return value from +getinfo. Instead of: + + my $bytes; + WWW::Curl::easy::getinfo($curl, CURLINFO_SIZE_DOWNLOAD, $bytes); + +use: + my $bytes=$curl->getinfo(CURLINFO_SIZE_DOWNLOAD); + + +=item * + +C<$curl-Ecleanup> ( WWW::Curl::easy::cleanup($curl) ) no longer actually does anything. Curl +handles will be automatically cleaned up by perl when they are no longer used. + +=item * + +curl_global_init is now explicitly called when the module is first loaded, rather than relying on +it hapenning during the first call to curl_easy_init. This should eliminate the chance of a race if +creating two handles simultaneously. (E.g. using perl ithreads). + +=item * + +curl_global_cleanup is not called automatically when perl or the module shuts down, as there +doesn't seem an easy way to arrange this in perl-XS (suggestions welcome). You can call curl +global cleanup explicitly (if you care) by calling the class method WWW::Curl::easy::global_cleanup . +Don't call any other curl functions afterwards! + +=head1 KNOWN BUGS + +There seems to be a slow leak of a few bytes each time a WWW::Curl::easy handle is created and +destroyed (despite careful cleanup efforts) at least when testing with libcurl-7.9.8. +Hopefully this will be fixed in a future release. + +Also note the above problems with the USE_INTERNAL_VARS interface. + +=head1 AUTHOR + +Version 2.00 of WWW::Curl::easy is a renaming of the previous version (named Curl::easy), +to follow CPAN naming guidelines, by Cris Bailiff. + +Versions 1.30, a (hopefully) threadable, object-oriented, multiple-callback compatible +version of Curl::easy was substantially reworked from the previous Curl::easy +release (1.21) by Cris Bailiff. + +Original Author Georg Horn , with additional callback, pod +and test work by Cris Bailiff and Forrest Cahoon + + +Currently maintained by Cris Bailiff + +=head1 Copyright + +Copyright (C) 2000,2001,2002,2003 Daniel Stenberg, Cris Bailiff, et al. + +You may opt to use, copy, modify, merge, publish, distribute and/or sell +copies of the Software, and permit persons to whom the Software is furnished +to do so, under the terms of the MPL or the MIT/X-derivate licenses. You may +pick one of these licenses. + +=head1 SEE ALSO + +http://curl.haxx.se/ + + --- libwww-curl-perl-2.0.orig/Curl.xs +++ libwww-curl-perl-2.0/Curl.xs @@ -100,11 +100,6 @@ case CURLOPT_PROGRESSDATA: return CALLBACK_PROGRESS; break; - - case CURLOPT_PASSWDFUNCTION: - case CURLOPT_PASSWDDATA: - return CALLBACK_PASSWD; - break; } croak("Bad callback index requested\n"); return CALLBACK_LAST; @@ -386,52 +381,6 @@ } -/* Password callback for calling a perl callback */ - -static int passwd_callback_func(void *clientp, char *prompt, char *buffer, int buflen) -{ - dSP; - char *data; - SV *sv; - STRLEN len; - int count; - - perl_curl_easy *self; - self=(perl_curl_easy *)clientp; - - ENTER; - SAVETMPS; - PUSHMARK(sp); - if (self->callback_ctx[CALLBACK_PASSWD]) { - XPUSHs(sv_2mortal(newSVsv(self->callback_ctx[CALLBACK_PASSWD]))); - } else { - XPUSHs(&PL_sv_undef); - } - XPUSHs(sv_2mortal(newSVpv(prompt, 0))); - XPUSHs(sv_2mortal(newSViv(buflen))); - PUTBACK; - count = perl_call_sv(self->callback[CALLBACK_PASSWD], G_ARRAY); - SPAGAIN; - if (count != 2) - croak("callback for CURLOPT_PASSWDFUNCTION didn't return status + data\n"); - - sv = POPs; - count = POPi; - - data = SvPV(sv,len); - - /* only allowed to return the number of bytes asked for */ - len = (len<(buflen-1) ? len : (buflen-1)); - memcpy(buffer,data,len); - buffer[buflen]=0; /* ensure C string terminates */ - - PUTBACK; - FREETMPS; - LEAVE; - return count; -} - - #if 0 /* awaiting closepolicy prototype */ int @@ -536,14 +485,12 @@ curl_easy_setopt(self->curl, CURLOPT_READFUNCTION, read_callback_func); curl_easy_setopt(self->curl, CURLOPT_HEADERFUNCTION, header_callback_func); curl_easy_setopt(self->curl, CURLOPT_PROGRESSFUNCTION, progress_callback_func); - curl_easy_setopt(self->curl, CURLOPT_PASSWDFUNCTION, passwd_callback_func); /* set our own object as the context for all curl callbacks */ curl_easy_setopt(self->curl, CURLOPT_FILE, self); curl_easy_setopt(self->curl, CURLOPT_INFILE, self); curl_easy_setopt(self->curl, CURLOPT_WRITEHEADER, self); curl_easy_setopt(self->curl, CURLOPT_PROGRESSDATA, self); - curl_easy_setopt(self->curl, CURLOPT_PASSWDDATA, self); /* we always collect this, in case it's wanted */ curl_easy_setopt(self->curl, CURLOPT_ERRORBUFFER, self->errbuf); @@ -572,7 +519,6 @@ curl_easy_setopt(clone->curl, CURLOPT_READFUNCTION, read_callback_func); curl_easy_setopt(clone->curl, CURLOPT_HEADERFUNCTION, header_callback_func); curl_easy_setopt(clone->curl, CURLOPT_PROGRESSFUNCTION, progress_callback_func); - curl_easy_setopt(clone->curl, CURLOPT_PASSWDFUNCTION, passwd_callback_func); */ /* set our own object as the context for all curl callbacks */ @@ -580,7 +526,6 @@ curl_easy_setopt(clone->curl, CURLOPT_INFILE, clone); curl_easy_setopt(clone->curl, CURLOPT_WRITEHEADER, clone); curl_easy_setopt(clone->curl, CURLOPT_PROGRESSDATA, clone); - curl_easy_setopt(clone->curl, CURLOPT_PASSWDDATA, clone); /* we always collect this, in case it's wanted */ curl_easy_setopt(clone->curl, CURLOPT_ERRORBUFFER, clone->errbuf); @@ -617,7 +562,6 @@ case CURLOPT_INFILE: case CURLOPT_WRITEHEADER: case CURLOPT_PROGRESSDATA: - case CURLOPT_PASSWDDATA: perl_curl_easy_register_callback(self,&(self->callback_ctx[callback_index(option)]),value); break; @@ -626,7 +570,6 @@ case CURLOPT_READFUNCTION: case CURLOPT_HEADERFUNCTION: case CURLOPT_PROGRESSFUNCTION: - case CURLOPT_PASSWDFUNCTION: perl_curl_easy_register_callback(self,&(self->callback[callback_index(option)]),value); break;