--- hashcash-1.21.orig/debian/README
+++ hashcash-1.21/debian/README
@@ -8,3 +8,11 @@
not support hashcash natively, such as mutt. hashcash-request can be used to
pre-request hashcash tokens for future use. The current version of both
scripts are considered ALPHA quality. Use at your own risk.
+
+For users with multi-processor machines or clusters, the examples directory
+also includes a wrapper script, hashfork.py, written in Python, to start
+multiple instances of Hashcash. Running n processes on a machine (with at
+least n processes) will roughly divide the average time required to generate a
+stamp by n. Note that since Hashcash is numeric-intensive, one will not be
+able to get better performance out of a single hyperthreaded processor using
+this technique.
--- hashcash-1.21.orig/debian/changelog
+++ hashcash-1.21/debian/changelog
@@ -1,3 +1,70 @@
+hashcash (1.21-2) unstable; urgency=medium
+
+ * QA upload.
+ * Set Debian QA Group as maintainer (See: #831803)
+ * Update DH level to 10. (Closes: #817490)
+ * debian/compat: updated to 10.
+ * debian/control:
+ - Bumped Standards-Version to 3.9.8.
+
+ -- Giovani Augusto Ferreira Thu, 15 Dec 2016 10:48:59 -0200
+
+hashcash (1.21-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Enable hardened build flags (Closes: #655864)
+
+ -- Moritz Muehlenhoff Sun, 08 Apr 2012 12:24:59 +0200
+
+hashcash (1.21-1) unstable; urgency=low
+
+ * New upstream release.
+ * Fix copyright file.
+
+ -- Hubert Chan Thu, 30 Mar 2006 21:01:13 -0700
+
+hashcash (1.20-1) unstable; urgency=low
+
+ * New upstream release.
+ * Set DEB_HOST_ARCH if it is not set, so that debian/rules works properly
+ even if not run form dpkg-buildpackage.
+ * Bump standards version to 3.6.2.
+
+ -- Hubert Chan Thu, 22 Dec 2005 00:00:43 -0500
+
+hashcash (1.17-1) unstable; urgency=low
+
+ * New upstream release.
+ * Adds hashfork.py script to run multiple instances of Hashcash on
+ multiprocessor machines. (closes: 281918)
+
+ -- Hubert Chan Wed, 30 Mar 2005 15:07:08 -0500
+
+hashcash (1.13-1) unstable; urgency=low
+
+ * New upstream release.
+ * Fix compile flags for amd64 architecture so that it compiles.
+ (closes: 278047)
+
+ -- Hubert Chan Thu, 4 Nov 2004 17:41:28 -0500
+
+hashcash (1.12-1) unstable; urgency=low
+
+ * New upstream release. (closes: 271635)
+ * Add architecture-dependent flags in debian/rules to enable assembly
+ optimizations.
+ * New license from upstream.
+
+ -- Hubert Chan Fri, 8 Oct 2004 23:17:32 -0400
+
+hashcash (1.01-1) unstable; urgency=low
+
+ * New upstream release.
+ * Clarified license as per upstream.
+ * Compile with -Wall.
+
+ -- Hubert Chan Sun, 8 Aug 2004 19:31:43 -0400
+
hashcash (1.00-1) unstable; urgency=low
* New upstream release.
--- hashcash-1.21.orig/debian/compat
+++ hashcash-1.21/debian/compat
@@ -1 +1 @@
-4
+10
--- hashcash-1.21.orig/debian/control
+++ hashcash-1.21/debian/control
@@ -1,9 +1,9 @@
Source: hashcash
Section: mail
Priority: optional
-Maintainer: Hubert Chan
-Build-Depends: debhelper (>= 4.0.0)
-Standards-Version: 3.6.1
+Maintainer: Debian QA Group
+Build-Depends: debhelper (>= 10)
+Standards-Version: 3.9.8
Package: hashcash
Architecture: any
--- hashcash-1.21.orig/debian/copyright
+++ hashcash-1.21/debian/copyright
@@ -3,27 +3,160 @@
It was downloaded from http://www.hashcash.org/
-Upstream Author: Adam Back
+Copyright Holder: Adam Back
-Copyright:
+License:
The source contains getopt.c and getopt.h, which are copyright by the FSF, and
-licensed under the GPL. On Debian systems, the GPL can be found at
+licensed under the GPL.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+On Debian systems, the full text of the GPL can be found at
/usr/share/common-licenses/GPL.
The source contains fip180-1.txt, written by the United States government, and
is in the public domain.
-The hashcash-sendmail and hashcash-request programs in the contrib directory
+The hashcash-sendmail and hashcash-request programs in the examples directory
are copyright Kyle Hasselbacher, and licensed under the GPL.
+The hashfork.py program in the examples directory was written by Hubert Chan,
+and is in the public domain.
+
The rest of the software is licensed under your choice of (in the upstream
author's preference):
+ - Cypherpunks CPL (Cypherpunks anti-License)
- public domain
- - BSD
- - LGPL
- - GPL
+ - modified BSD (without advertising clause)
+ - LGPL 2.1
+ - GPL 2
+
+The text of the Cypherpunks CPL is included below.
On Debian systems, the BSD license can be found at
/usr/share/common-licenses/BSD, the LGPL at /usr/share/common-licenses/LGPL,
and the GPL at /usr/share/common-licenses/GPL.
+
+The upstream author makes the following comments and requests. They are not
+licensing requirements:
+
+- If you have to make changes to make this library work for your system or
+ application it would be useful if you could tell me what you had to
+ do, and optionally send me the source changes so I can include them
+ or update the library. The aim is to make a practically useful
+ library.
+
+- It would be useful if you could inform me if you use or distribute
+ hashcash. The intent here is to give me feedback and insight into the
+ areas of application which people find useful in practice.
+
+- If you are unclear on how to use hashcash there is a FAQ here:
+ http://www.hashcash.org/faq.html. If that doesn't answer your question or
+ doesn't apply to your usage, feel free to discuss in email.
+
+- It may help the deployment of hashcash as an anti-spam system if different
+ systems based on hashcash were interoperable as far as that makes
+ sense for your system. To this end the FAQ
+ http://www.hashcash.org/faq.html and Internet-Draft
+ http://www.hashcash.org/draft-hashcash.txt document my
+ thoughts in this area. See also the hashcash home page
+ http://www.hashcash.org and paper there as I update with links to deployed
+ systems which it might be useful for you to interoperate with.
+
+
+Cypherpunks anti-License
+
+Intent
+
+The intent of the Cypherpunks anti-License (CPL) is to inform users that they
+are free to use and redistribute the indicated work or any derived or modified
+work in any manner they choose. Works distributed under the CPL are in the
+Public Domain.
+
+Licensing
+
+The CPL is not a license, it does not require the user to do or not do
+anything; the user does not agree to any terms, because there are no terms, and
+the user does not need to do anything to indicate acceptance or rejection of
+the CPL.
+
+Non Litigation
+
+The CPL serves to pledge to the user that the distributors will behave in a
+manner consistent with the non-existance of Intellectual Property (IP) laws as
+far as they are able. The distributors will not use or participate as far as
+they are able to government legal systems to attempt to enforce requests
+restricting the use, modifications, or redistribution of the work for
+perpetuity. The distributor may prefer to be anonymous to preclude attempts to
+coerce them into enforcing IP laws relating to this work against their will.
+
+Requests
+
+The work may be distributed with some distributor requests in addition to the
+CPL. The distributor pledges similarly to not attempt to use IP laws to enforce
+these requests.
+
+Redistribution
+
+Users choosing to redistribute this work may change anything about the work,
+including distributing it under a different license, and adding or removing
+previous distributors requests.
+
+Interpretation
+
+The CPL is completely liberal. Here are some examples of implications of this
+which are not true for many licenses. The user can redistribute the work or a
+derived or modified work
+
+ * under a different license of their choosing
+ * with or without source code as they choose
+ * without acknowledging the distributors or authors
+ * with false or innaccurate claims about authorship of the work
+ * advertise without acknowledging the authors
+
+Requests can be arbitrary, but are requests only. Example of requests that the
+distributor may choose to make:
+
+ * that improvements to the work be drawn to the distributors attention
+ * that improvements to the work be released back to the distributor under
+ the CPL
+ * that the distributors name not be used to advertise derived works without
+ the distributors approval
+
+Legacy Considerations
+
+The distributor may choose to inform the user of his opinion of the IP status
+of the work, for example by identifying any IP law restricted aspects such as
+the copyright holders of parts or the whole of the work, trademark owners of
+trademarks used in the work, potentially applicable patents on algorithms or
+ideas contained in the work, but the distributor is not obliged to do so and
+takes no responsibility for the accuracy of such information.
+
+Background
+
+The CPL is written from a mindset which derides the very concept of Intellectual Property restrictions as being incompatible with a free society.
+
+Cryptographically assured anonymity and anonymous use of Internet resources
+mean that denizens of cypherspace can ignore copyright, licenses attempting to
+control use and distribution of works, and patents on ideas. It is not possible
+to enforce IP laws by calls to government legal systems when the flaunter is
+strongly anonymous.
+
+The enforcement of IP law and anonymity are in direct conflict. To fully
+enforce IP laws, anonymity would have to be outlawed. Cypherpunks believe this
+would be a bad thing, because control of information imparts power, and
+anonymity gives individuals control over disclosure of information about
+themselves and their actions.
--- hashcash-1.21.orig/debian/rules
+++ hashcash-1.21/debian/rules
@@ -6,21 +6,35 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
-
-
-CFLAGS = -Wall -g
INSTALL = /usr/bin/install
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
-else
- CFLAGS += -O2
-endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
+CFLAGS = `dpkg-buildflags --get CFLAGS`
+CFLAGS += -Wall -DREGEXP_POSIX
+CFLAGS += `dpkg-buildflags --get CPPFLAGS`
+LDFLAGS = `dpkg-buildflags --get LDFLAGS`
+
+OPTFLAGS = -O3 -funroll-loops
+
+ifeq ($(DEB_HOST_ARCH),amd64)
+OPTFLAGS = -O3 -funroll-loops -D_REENTRANT -D_THREAD_SAFE -fPIC
+endif
+
+ifeq ($(DEB_HOST_ARCH),i386)
+OPTFLAGS = -O3 -funroll-loops -march=i386 -mcpu=i486 -mmmx \
+ -D_REENTRANT -D_THREAD_SAFE -fPIC
+endif
+
+ifeq ($(DEB_HOST_ARCH),powerpc)
+OPTFLAGS = -O3 -funroll-loops -fno-inline -mcpu=powerpc -maltivec \
+ -mabi=altivec
+endif
+
configure: configure-stamp
configure-stamp:
dh_testdir
@@ -35,7 +49,7 @@
dh_testdir
# Add here commands to compile the package.
- $(MAKE) hashcash
+ $(MAKE) "CFLAGS=$(CFLAGS) $(OPTFLAGS)" hashcash
$(MAKE) docs
#/usr/bin/docbook-to-man debian/hashcash.sgml > hashcash.1
@@ -74,7 +88,7 @@
dh_testroot
dh_installchangelogs CHANGELOG
dh_installdocs
- dh_installexamples
+ dh_installexamples -Xhashfork.c
# dh_install
# dh_installmenu
# dh_installdebconf
--- hashcash-1.21.orig/hashcash.1
+++ hashcash-1.21/hashcash.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -129,7 +129,7 @@
.\" ========================================================================
.\"
.IX Title "HASHCASH 1"
-.TH HASHCASH 1 "2005-01-12" "1.15" "hashcash"
+.TH HASHCASH 1 "2005-12-22" "1.20" "hashcash"
.SH "NAME"
hashcash \- hashcash anti\-spam / denial of service counter\-measure tool
.SH "SYNOPSIS"
@@ -170,9 +170,7 @@
.PP
A hashcash stamp constitutes a proof-of-work which takes a
parameterizable amount of work to compute for the sender. The
-recipient can verify received stamps efficiently. This package also
-includes a sha1 implementation which is equivalent in functionality to
-the sha1sum program available on some systems.
+recipient can verify received stamps efficiently.
.PP
The hashcash proof-of-work function is to compute partial hash
collisions (the \s-1SHA1\s0 hash function is used). By choosing the number
@@ -917,4 +915,4 @@
Written by Adam Back
.SH "SEE ALSO"
.IX Header "SEE ALSO"
-\&\fIsha1sum\fR\|(1), \fIsha1\-hashcash\fR\|(1), \fIsha1\fR\|(1), http://www.hashcash.org/
+\&\fIsha1sum\fR\|(1), \fIsha1\fR\|(1), http://www.hashcash.org/
--- hashcash-1.21.orig/hashcash.c
+++ hashcash-1.21/hashcash.c
@@ -78,6 +78,7 @@
#define VPUTS(f,str) VV { fputs(str,f); }
#define HDR_LINE_LEN 80
+int read_append( char**, int*, int*, char* );
char *read_header( FILE* f, char** s, int* slen, int* alloc,
char* a, int alen );
int read_eof( FILE* fp, char* a );
--- hashcash-1.21.orig/hashcash.html
+++ hashcash-1.21/hashcash.html
@@ -110,9 +110,7 @@
filtering rules.
A hashcash stamp constitutes a proof-of-work which takes a
parameterizable amount of work to compute for the sender. The
-recipient can verify received stamps efficiently. This package also
-includes a sha1 implementation which is equivalent in functionality to
-the sha1sum program available on some systems.
+recipient can verify received stamps efficiently.
The hashcash proof-of-work function is to compute partial hash
collisions (the SHA1 hash function is used). By choosing the number
of bits of collision, the work required to compute a collision can be
@@ -1066,7 +1064,7 @@
-sha1sum(1), sha1-hashcash(1), sha1(1), http://www.hashcash.org/
+sha1sum(1), sha1(1), http://www.hashcash.org/