From 61d5dc2242764297de6cdd655d0d6f6339746afa Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 28 Sep 2016 09:41:48 -0700 Subject: Import zxcvbn-c_0.20160925-1.debian.tar.xz [dgit import tarball zxcvbn-c 0.20160925-1 zxcvbn-c_0.20160925-1.debian.tar.xz] --- README.source | 30 ++ changelog | 5 + compat | 1 + control | 34 ++ copyright | 383 +++++++++++++++++++++ libzxcvbn-dev.docs | 1 + libzxcvbn-dev.examples | 1 + libzxcvbn-dev.install | 4 + libzxcvbn-dev.lintian-overrides | 2 + libzxcvbn0.install | 2 + libzxcvbn0.lintian-overrides | 4 + libzxcvbn0.symbols | 3 + .../add-another-missing-file-to-clean-target.patch | 22 ++ patches/patch-README-for-Debian.patch | 46 +++ patches/series | 3 + patches/standardise-makefile-variables.patch | 117 +++++++ rules | 9 + source/format | 1 + source/lintian-overrides | 2 + watch | 3 + 20 files changed, 673 insertions(+) create mode 100644 README.source create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 libzxcvbn-dev.docs create mode 100644 libzxcvbn-dev.examples create mode 100755 libzxcvbn-dev.install create mode 100644 libzxcvbn-dev.lintian-overrides create mode 100755 libzxcvbn0.install create mode 100644 libzxcvbn0.lintian-overrides create mode 100644 libzxcvbn0.symbols create mode 100644 patches/add-another-missing-file-to-clean-target.patch create mode 100644 patches/patch-README-for-Debian.patch create mode 100644 patches/series create mode 100644 patches/standardise-makefile-variables.patch create mode 100755 rules create mode 100644 source/format create mode 100644 source/lintian-overrides create mode 100644 watch diff --git a/README.source b/README.source new file mode 100644 index 0000000..d7c7bbe --- /dev/null +++ b/README.source @@ -0,0 +1,30 @@ +Shared library conversion +------------------------- + +As explained in the unpatched README.md, upstream intends zxcvbn-c to +be embedded in the source trees of projects that require it. For the +purposes of this Debian package, though, it is compiled as a shared +library and as a static library. + +The word lists, *.txt in the source package, may be either + (a) compiled to a file zxcvbn.dict, or + (b) included in the object compiled from zxcvbn.c (in our case, in + libzxcvbn.so.* & libzxcvbn.a). +This choice is made by means of the USE_DICT_FILE compiler macro. + +Contrary to what you might expect, method (a) does not permit swapping +out zxcvbn.dict for a different file: CRCs for zxcvbn.dict are +compiled into the object compiled from zxcvbn.c (in our case, in +libzxcvbn.so.0 & libzxcvbn.a). + +So method (a) is useless when zxcvbn-c is compiled as a shared or +static library. Further, it complicates usage: a library user must +call ZxcvbnInit() with the path to the immutable zxcvbn.dict, and +later ZxcvbnUninit(). + +Given the above facts about option (a), I have opted to use option (b) +for this Debian package. USE_DICT_FILE is unset. Calls to +ZxcvbnInit() and ZxcvbnUninit() are not required, and README.md has +been patched accordingly. + + -- Sean Whitton , Sat, 24 Sep 2016 15:24:12 -0700 diff --git a/changelog b/changelog new file mode 100644 index 0000000..3255cc8 --- /dev/null +++ b/changelog @@ -0,0 +1,5 @@ +zxcvbn-c (0.20160925-1) unstable; urgency=medium + + * Initial release (Closes: #838492). + + -- Sean Whitton Wed, 28 Sep 2016 09:41:48 -0700 diff --git a/compat b/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 diff --git a/control b/control new file mode 100644 index 0000000..d19674c --- /dev/null +++ b/control @@ -0,0 +1,34 @@ +Source: zxcvbn-c +Priority: optional +Maintainer: Sean Whitton +Build-Depends: debhelper (>= 10), dh-exec (>= 0.3) +Standards-Version: 3.9.8 +Section: libs +Homepage: https://github.com/tsyrogit/zxcvbn-c +Vcs-Git: https://git.spwhitton.name/zxcvbn-c +Vcs-Browser: https://git.spwhitton.name/zxcvbn-c + +Package: libzxcvbn-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: libzxcvbn0 (= ${binary:Version}), ${misc:Depends} +Description: password strength estimation library - development files + This library is a C/C++ implementation of the zxcvbn password + strength estimator. It provides functions to rate password strength, + by comparing the password to several word lists, including English + first and last names. + . + This package includes the development headers. + +Package: libzxcvbn0 +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: password strength estimation library + This library is a C/C++ implementation of the zxcvbn password + strength estimator. It provides functions to rate password strength, + by comparing the password to several word lists, including English + first and last names. diff --git a/copyright b/copyright new file mode 100644 index 0000000..aca5560 --- /dev/null +++ b/copyright @@ -0,0 +1,383 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: zxcvbn-c +Source: https://github.com/tsyrogit/zxcvbn-c +Comment: stanzas for *.txt files taken from copyright file for src:python-zxcvbn + +Files: * +Copyright: (C) 2015 Tony Evans +License: BSD-3-clause + +Files: words-10k-pass.txt +Copyright: (C) 2011 Mark Burnett +License: CC-BY-SA-3.0 +Comment: https://xato.net/passwords/more-top-worst-passwords/ + +Files: words-female.txt words-male.txt words-surname.txt +Copyright: (C) 2000 U.S. Census Bureau +License: public-domain + +Files: words-english.txt +Copyright: (C) 2006 Wiktionary Contributors +License: CC-BY-SA-3.0 +Comment: https://en.wiktionary.org/wiki/Wiktionary:Frequency_lists#TV_and_movie_scripts + +Files: debian/* +Copyright: (C) 2016 Sean Whitton +License: BSD-3-clause + +License: BSD-3-clause + All rights reserved. + . + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or other + materials provided with the distribution. + . + 3. Neither the name of the copyright holder nor the names of its contributors may be + used to endorse or promote products derived from this software without specific + prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + +License: public-domain + As a work of the US government, these files are in the public domain in the + United States. The below webpage indicates that the US Census Department is + most likely fine with similar usage worldwide: + . + https://ask.census.gov/faq.php?id=5000&faqId=431 + +License: CC-BY-SA-3.0 + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL + SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT + RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" + BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION + PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + . + License + . + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE + COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY + COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS + AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + . + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO + BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE + CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED + HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + . + 1. Definitions + "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, derivative + work, arrangement of music or other alterations of a literary or + artistic work, or phonogram or performance and includes cinematographic + adaptations or any other form in which the Work may be recast, + transformed, or adapted including in any form recognizably derived from + the original, except that a work that constitutes a Collection will not + be considered an Adaptation for the purpose of this License. For the + avoidance of doubt, where the Work is a musical work, performance or + phonogram, the synchronization of the Work in timed-relation with a + moving image ("synching") will be considered an Adaptation for the + purpose of this License. + "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed in + Section 1(f) below, which, by reason of the selection and arrangement of + their contents, constitute intellectual creations, in which the Work is + included in its entirety in unmodified form along with one or more other + contributions, each constituting separate and independent works in + themselves, which together are assembled into a collective whole. A work + that constitutes a Collection will not be considered an Adaptation (as + defined below) for the purposes of this License. + "Creative Commons Compatible License" means a license that is listed at + http://creativecommons.org/compatiblelicenses that has been approved by + Creative Commons as being essentially equivalent to this License, + including, at a minimum, because that license: (i) contains terms that + have the same purpose, meaning and effect as the License Elements of + this License; and, (ii) explicitly permits the relicensing of + adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same License + Elements as this License. + "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or other + transfer of ownership. + "License Elements" means the following high-level license attributes as + selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + "Original Author" means, in the case of a literary or artistic work, the + individual, individuals, entity or entities who created the Work or if + no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, pamphlet + and other writing; a lecture, address, sermon or other work of the same + nature; a dramatic or dramatico-musical work; a choreographic work or + entertainment in dumb show; a musical composition with or without words; + a cinematographic work to which are assimilated works expressed by a + process analogous to cinematography; a work of drawing, painting, + architecture, sculpture, engraving or lithography; a photographic work + to which are assimilated works expressed by a process analogous to + photography; a work of applied art; an illustration, map, plan, sketch + or three-dimensional work relative to geography, topography, + architecture or science; a performance; a broadcast; a phonogram; a + compilation of data to the extent it is protected as a copyrightable + work; or a work performed by a variety or circus performer to the extent + it is not otherwise considered a literary or artistic work. + "You" means an individual or entity exercising rights under this License + who has not previously violated the terms of this License with respect + to the Work, or who has received express permission from the Licensor to + exercise rights under this License despite a previous violation. + "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a place + individually chosen by them; to perform the Work to the public by any + means or process and the communication to the public of the performances + of the Work, including by public digital performance; to broadcast and + rebroadcast the Work by any means including signs, sounds or images. + "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + . + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, + limit, or restrict any uses free from copyright or rights arising from + limitations or exceptions that are provided for in connection with the + copyright protection under copyright law or other applicable laws. + . + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + . + to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made to + the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a modification + could indicate "The original work has been modified."; + to Distribute and Publicly Perform the Work including as incorporated in + Collections; and, + to Distribute and Publicly Perform Adaptations. + . + For the avoidance of doubt: + Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor reserves + the exclusive right to collect such royalties for any exercise by + You of the rights granted under this License; + Waivable Compulsory License Schemes. In those jurisdictions in which + the right to collect royalties through any statutory or compulsory + licensing scheme can be waived, the Licensor waives the exclusive + right to collect such royalties for any exercise by You of the + rights granted under this License; and, + Voluntary License Schemes. The Licensor waives the right to collect + royalties, whether individually or, in the event that the Licensor + is a member of a collecting society that administers voluntary + licensing schemes, via that society, from any exercise by You of the + rights granted under this License. + . + The above rights may be exercised in all media and formats whether now + known or hereafter devised. The above rights include the right to make such + modifications as are technically necessary to exercise the rights in other + media and formats. Subject to Section 8(f), all rights not expressly + granted by Licensor are hereby reserved. + . + 4. Restrictions. The license granted in Section 3 above is expressly made + subject to and limited by the following restrictions: + . + You may Distribute or Publicly Perform the Work only under the terms of + this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms on + the Work that restrict the terms of this License or the ability of the + recipient of the Work to exercise the rights granted to that recipient + under the terms of the License. You may not sublicense the Work. You + must keep intact all notices that refer to this License and to the + disclaimer of warranties with every copy of the Work You Distribute or + Publicly Perform. When You Distribute or Publicly Perform the Work, You + may not impose any effective technological measures on the Work that + restrict the ability of a recipient of the Work from You to exercise the + rights granted to that recipient under the terms of the License. This + Section 4(a) applies to the Work as incorporated in a Collection, but + this does not require the Collection apart from the Work itself to be + made subject to the terms of this License. If You create a Collection, + upon notice from any Licensor You must, to the extent practicable, + remove from the Collection any credit as required by Section 4(c), as + requested. If You create an Adaptation, upon notice from any Licensor + You must, to the extent practicable, remove from the Adaptation any + credit as required by Section 4(c), as requested. + You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You Distribute + or Publicly Perform; (II) You may not offer or impose any terms on the + Adaptation that restrict the terms of the Applicable License or the + ability of the recipient of the Adaptation to exercise the rights + granted to that recipient under the terms of the Applicable License; + (III) You must keep intact all notices that refer to the Applicable + License and to the disclaimer of warranties with every copy of the Work + as included in the Adaptation You Distribute or Publicly Perform; (IV) + when You Distribute or Publicly Perform the Adaptation, You may not + impose any effective technological measures on the Adaptation that + restrict the ability of a recipient of the Adaptation from You to + exercise the rights granted to that recipient under the terms of the + Applicable License. This Section 4(b) applies to the Adaptation as + incorporated in a Collection, but this does not require the Collection + apart from the Adaptation itself to be made subject to the terms of the + Applicable License. + If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party or + parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party or + parties; (ii) the title of the Work if supplied; (iii) to the extent + reasonably practicable, the URI, if any, that Licensor specifies to be + associated with the Work, unless such URI does not refer to the + copyright notice or licensing information for the Work; and (iv) , + consistent with Ssection 3(b), in the case of an Adaptation, a credit + identifying the use of the Work in the Adaptation (e.g., "French + translation of the Work by Original Author," or "Screenplay based on + original Work by Original Author"). The credit required by this Section + 4(c) may be implemented in any reasonable manner; provided, however, + that in the case of a Adaptation or Collection, at a minimum such credit + will appear, if a credit for all contributing authors of the Adaptation + or Collection appears, then as part of these credits and in a manner at + least as prominent as the credits for the other contributing authors. + For the avoidance of doubt, You may only use the credit required by this + Section for the purpose of attribution in the manner set out above and, + by exercising Your rights under this License, You may not implicitly or + explicitly assert or imply any connection with, sponsorship or + endorsement by the Original Author, Licensor and/or Attribution Parties, + as appropriate, of You or Your use of the Work, without the separate, + express prior written permission of the Original Author, Licensor and/or + Attribution Parties. + Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any Adaptations + or Collections, You must not distort, mutilate, modify or take other + derogatory action in relation to the Work which would be prejudicial to + the Original Author's honor or reputation. Licensor agrees that in those + jurisdictions (e.g. Japan), in which any exercise of the right granted + in Section 3(b) of this License (the right to make Adaptations) would be + deemed to be a distortion, mutilation, modification or other derogatory + action prejudicial to the Original Author's honor and reputation, the + Licensor will waive or not assert, as appropriate, this Section, to the + fullest extent permitted by the applicable national law, to enable You + to reasonably exercise Your right under Section 3(b) of this License + (right to make Adaptations) but not otherwise. + . + 5. Representations, Warranties and Disclaimer + . + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR + OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY + KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, + INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, + FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT + OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER + OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF + IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + . + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE + LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY + SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING + OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + . + 7. Termination + . + This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + . + 8. Miscellaneous + . + Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same terms + and conditions as the license granted to You under this License. + If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that may + appear in any communication from You. This License may not be modified + without the mutual written agreement of the Licensor and You. + The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and + the Universal Copyright Convention (as revised on July 24, 1971). These + rights and subject matter take effect in the relevant jurisdiction in + which the License terms are sought to be enforced according to the + corresponding provisions of the implementation of those treaty + provisions in the applicable national law. If the standard suite of + rights granted under applicable copyright law includes additional rights + not granted under this License, such additional rights are deemed to be + included in the License; this License is not intended to restrict the + license of any rights under applicable law. diff --git a/libzxcvbn-dev.docs b/libzxcvbn-dev.docs new file mode 100644 index 0000000..b43bf86 --- /dev/null +++ b/libzxcvbn-dev.docs @@ -0,0 +1 @@ +README.md diff --git a/libzxcvbn-dev.examples b/libzxcvbn-dev.examples new file mode 100644 index 0000000..609859b --- /dev/null +++ b/libzxcvbn-dev.examples @@ -0,0 +1 @@ +test.c diff --git a/libzxcvbn-dev.install b/libzxcvbn-dev.install new file mode 100755 index 0000000..3c2ab27 --- /dev/null +++ b/libzxcvbn-dev.install @@ -0,0 +1,4 @@ +#!/usr/bin/dh-exec +zxcvbn.h usr/include/ +libzxcvbn.so usr/lib/${DEB_HOST_MULTIARCH}/ +libzxcvbn.a usr/lib/${DEB_HOST_MULTIARCH}/ diff --git a/libzxcvbn-dev.lintian-overrides b/libzxcvbn-dev.lintian-overrides new file mode 100644 index 0000000..9e1c317 --- /dev/null +++ b/libzxcvbn-dev.lintian-overrides @@ -0,0 +1,2 @@ +# not available +no-upstream-changelog diff --git a/libzxcvbn0.install b/libzxcvbn0.install new file mode 100755 index 0000000..645723a --- /dev/null +++ b/libzxcvbn0.install @@ -0,0 +1,2 @@ +#!/usr/bin/dh-exec +libzxcvbn.so.* usr/lib/${DEB_HOST_MULTIARCH}/ diff --git a/libzxcvbn0.lintian-overrides b/libzxcvbn0.lintian-overrides new file mode 100644 index 0000000..3e4566c --- /dev/null +++ b/libzxcvbn0.lintian-overrides @@ -0,0 +1,4 @@ +# binary data; not actually a spelling error +spelling-error-in-binary usr/lib/i386-linux-gnu/libzxcvbn.so.0.0.0 DonT Don't +# not available +no-upstream-changelog diff --git a/libzxcvbn0.symbols b/libzxcvbn0.symbols new file mode 100644 index 0000000..37a7a94 --- /dev/null +++ b/libzxcvbn0.symbols @@ -0,0 +1,3 @@ +libzxcvbn.so.0 libzxcvbn0 #MINVER# + ZxcvbnFreeInfo@Base 0.20150103 + ZxcvbnMatch@Base 0.20150103 diff --git a/patches/add-another-missing-file-to-clean-target.patch b/patches/add-another-missing-file-to-clean-target.patch new file mode 100644 index 0000000..398a0be --- /dev/null +++ b/patches/add-another-missing-file-to-clean-target.patch @@ -0,0 +1,22 @@ +From: Sean Whitton +Date: Wed, 28 Sep 2016 09:15:07 -0700 +Subject: add another missing file to clean target + +Forwarded: https://github.com/tsyrogit/zxcvbn-c/pull/9 +--- + makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/makefile b/makefile +index 2cf5c9e..adf3c9b 100644 +--- a/makefile ++++ b/makefile +@@ -84,7 +84,7 @@ test: test-file test-inline test-c++inline test-c++file test-shlib test-statlib + + clean: + rm -f test-file zxcvbn-file.o test-c++file zxcvbn-c++file.o +- rm -f test-inline zxcvbn-inline.o test-c++inline zxcvbn-c++inline.o ++ rm -f test-inline zxcvbn-inline.o zxcvbn-inline-pic.o test-c++inline zxcvbn-c++inline.o + rm -f dict-*.h zxcvbn.dict zxcvbn.cpp test.cpp + rm -f dictgen + rm -f ${TARGET_LIB} ${SONAME} libzxcvbn.so test-shlib libzxcvbn.a test-statlib diff --git a/patches/patch-README-for-Debian.patch b/patches/patch-README-for-Debian.patch new file mode 100644 index 0000000..260131d --- /dev/null +++ b/patches/patch-README-for-Debian.patch @@ -0,0 +1,46 @@ +From: Sean Whitton +Date: Sat, 24 Sep 2016 13:46:46 -0700 +Subject: patch README for Debian + +Remove build instructions, and functions for when zxcvbn-c ws compiled +with USE_DICT_FILE (see README.source). + +Forwarded: not-needed +--- + README.md | 19 +------------------ + 1 file changed, 1 insertion(+), 18 deletions(-) + +diff --git a/README.md b/README.md +index e42b001..b5fa5bc 100644 +--- a/README.md ++++ b/README.md +@@ -9,28 +9,11 @@ The original coffee script version is available at + An article on the reasons for zxcvbn is at + https://tech.dropox.com/2012/04/zxcvbn-realistic-password-strength-estimation + +-##Building +- +-The makefile will build several test programs to test the code. It shows the steps needed to use the code in C and C++ programs, using the dictionary data read from file or included within the program executable. +-The makefile has only been tried on Linux using GCC version 4.8.4, but should be faily portable to other systems. +- +-When dictionary data is included in your program's executable, the files `zxcvbn.c` , `zxcvbn.h` , `dict-src.h` are used in your program. +- +-When dictionary data is read from file, the files `zxcvbn.c` , `zxcvbn.h` , `dict-crc.h` and `zxcvbn.dict` are used in your program, compiled with `#define USE_DICT_FILE`. The CRC of the dictionary data file is written to `dict-crc.h` so your executable can detect corruption of the data. +- +-Rename `zxcvbn.c` to `zxcvbn.cpp` (or whatever your compiler uses) to compile as C++. +- +-The `dict*.h` and `zxcvbn.dict` files are generated by the dictgen program compiled from dict-generate.cpp (see makefile for details). +- + ##Using + +-Initially call `ZxcvbnInit()` with the pathname of the `zxcvbn.dict` file. This can be omitted when dictionary data is included in the executable. +- + Call `ZxcvbnMatch()` with the password and optional user dictionary to get the entropy estimation and optional information on the password parts (which will need freeing with `ZxcvbnFreeInfo()` after use). Do this for each password to be tested, or as each character of it is entered into your program. The optional user dictionary can change between each call. + +-Finally call `ZxcvbnUninit()` to free the dictionary data from read from file. This can be omitted when dictionary data is included in the executable. +- +-Review the test program in `test.c` for an example. ++Review the test program in `examples/test.c` for an example. + + + ## Differences from the original version. diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..0447f38 --- /dev/null +++ b/patches/series @@ -0,0 +1,3 @@ +patch-README-for-Debian.patch +add-another-missing-file-to-clean-target.patch +standardise-makefile-variables.patch diff --git a/patches/standardise-makefile-variables.patch b/patches/standardise-makefile-variables.patch new file mode 100644 index 0000000..b3e48ed --- /dev/null +++ b/patches/standardise-makefile-variables.patch @@ -0,0 +1,117 @@ +From: Sean Whitton +Date: Wed, 28 Sep 2016 09:07:03 -0700 +Subject: standardise-makefile-variables + +- use $(LDFLAGS) close to end of command to avoid build failures with + linker option --as-needed + +- use $(CC), $(AR), $(CXX) to the user can choose their own compiler + +- use $(CPPFLAGS), $(CFLAGS) and $(CXXFLAGS) are they are intended + +- correct CPPFLAGS -> CXXFLAGS at top of file + +Forwarded: https://github.com/tsyrogit/zxcvbn-c/pull/10 +--- + makefile | 45 +++++++++++++++++++++++++++++---------------- + 1 file changed, 29 insertions(+), 16 deletions(-) + +diff --git a/makefile b/makefile +index adf3c9b..c45c33f 100644 +--- a/makefile ++++ b/makefile +@@ -1,8 +1,12 @@ + CFLAGS ?= -O2 -Wall -Wextra -Wdeclaration-after-statement +-CPPFLAGS ?= -O2 -Wall -Wextra ++CXXFLAGS ?= -O2 -Wall -Wextra ++ ++# default programs ++CC ?= gcc ++AR ?= ar ++CXX ?= g++ + + # need zxcvbn.h prior to package installation +-CFLAGS += -I. + CPPFLAGS += -I. + + # library metadata +@@ -15,32 +19,36 @@ all: test-file test-inline test-c++inline test-c++file test-shlib test-statlib + + test-shlib: test.c $(TARGET_LIB) + if [ ! -e libzxcvbn.so ]; then ln -s $(TARGET_LIB) libzxcvbn.so; fi +- gcc $(CFLAGS) -o $@ $< -L. -lzxcvbn -lm ++ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -L. $(LDFLAGS) -lzxcvbn -lm + + $(TARGET_LIB): zxcvbn-inline-pic.o +- gcc $(CFLAGS) $(LDFLAGS) -fPIC -shared -Wl,-soname,$(SONAME) -o $@ $^ -lm ++ $(CC) $(CPPFLAGS) $(CFLAGS) \ ++ -o $@ $^ -fPIC -shared -Wl,-soname,$(SONAME) $(LDFLAGS) -lm + if [ ! -e $(SONAME) ]; then ln -s $(TARGET_LIB) $(SONAME); fi + + test-statlib: test.c libzxcvbn.a +- gcc $(CFLAGS) $(LDFLAGS) -o $@ $^ -lm ++ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lm + + libzxcvbn.a: zxcvbn-inline.o +- ar cvq $@ $^ ++ $(AR) cvq $@ $^ + + test-file: test.c zxcvbn-file.o +- gcc $(CFLAGS) -DUSE_DICT_FILE -o test-file test.c zxcvbn-file.o -lm ++ $(CC) $(CPPFLAGS) $(CFLAGS) \ ++ -DUSE_DICT_FILE -o test-file test.c zxcvbn-file.o $(LDFLAGS) -lm + + zxcvbn-file.o: zxcvbn.c dict-crc.h zxcvbn.h +- gcc $(CFLAGS) -DUSE_DICT_FILE -c -o zxcvbn-file.o zxcvbn.c ++ $(CC) $(CPPFLAGS) $(CFLAGS) \ ++ -DUSE_DICT_FILE -c -o zxcvbn-file.o zxcvbn.c + + test-inline: test.c zxcvbn-inline.o +- gcc $(CFLAGS) -o test-inline test.c zxcvbn-inline.o -lm ++ $(CC) $(CPPFLAGS) $(CFLAGS) \ ++ -o test-inline test.c zxcvbn-inline.o $(LDFLAGS) -lm + + zxcvbn-inline-pic.o: zxcvbn.c dict-src.h zxcvbn.h +- gcc $(CFLAGS) -fPIC -c -o $@ $< ++ $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c -o $@ $< + + zxcvbn-inline.o: zxcvbn.c dict-src.h zxcvbn.h +- gcc $(CFLAGS) -c -o zxcvbn-inline.o zxcvbn.c ++ $(CC) $(CPPFLAGS) $(CFLAGS) -c -o zxcvbn-inline.o zxcvbn.c + + dict-src.h: dictgen $(WORDS) + ./dictgen -o dict-src.h $(WORDS) +@@ -49,23 +57,28 @@ dict-crc.h: dictgen $(WORDS) + ./dictgen -b -o zxcvbn.dict -h dict-crc.h $(WORDS) + + dictgen: dict-generate.cpp makefile +- g++ -std=c++11 $(CPPFLAGS) -o dictgen dict-generate.cpp ++ $(CXX) $(CPPFLAGS) -std=c++11 $(CXXFLAGS) \ ++ -o dictgen dict-generate.cpp $(LDFLAGS) + + test-c++inline: test.c zxcvbn-c++inline.o + if [ ! -e test.cpp ]; then ln -s test.c test.cpp; fi +- g++ $(CPPFLAGS) -o test-c++inline test.cpp zxcvbn-c++inline.o -lm ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \ ++ -o test-c++inline test.cpp zxcvbn-c++inline.o $(LDFLAGS) -lm + + zxcvbn-c++inline.o: zxcvbn.c dict-src.h zxcvbn.h + if [ ! -e zxcvbn.cpp ]; then ln -s zxcvbn.c zxcvbn.cpp; fi +- g++ $(CPPFLAGS) -c -o zxcvbn-c++inline.o zxcvbn.cpp ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \ ++ -c -o zxcvbn-c++inline.o zxcvbn.cpp + + test-c++file: test.c zxcvbn-c++file.o + if [ ! -e test.cpp ]; then ln -s test.c test.cpp; fi +- g++ $(CPPFLAGS) -DUSE_DICT_FILE -o test-c++file test.cpp zxcvbn-c++file.o -lm ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \ ++ -DUSE_DICT_FILE -o test-c++file test.cpp zxcvbn-c++file.o $(LDFLAGS) -lm + + zxcvbn-c++file.o: zxcvbn.c dict-crc.h zxcvbn.h + if [ ! -e zxcvbn.cpp ]; then ln -s zxcvbn.c zxcvbn.cpp; fi +- g++ $(CPPFLAGS) -DUSE_DICT_FILE -c -o zxcvbn-c++file.o zxcvbn.cpp ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) \ ++ -DUSE_DICT_FILE -c -o zxcvbn-c++file.o zxcvbn.cpp + + test: test-file test-inline test-c++inline test-c++file test-shlib test-statlib testcases.txt + @echo Testing C build, dictionary from file diff --git a/rules b/rules new file mode 100755 index 0000000..84fd4e2 --- /dev/null +++ b/rules @@ -0,0 +1,9 @@ +#!/usr/bin/make -f + +# enable most hardening, but not PIE -- while we build some binary +# executables in order to run the test suite, we only install +# non-executable libraries +export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-pie + +%: + dh $@ diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/lintian-overrides b/source/lintian-overrides new file mode 100644 index 0000000..9230eda --- /dev/null +++ b/source/lintian-overrides @@ -0,0 +1,2 @@ +# unavailable; request submitted to upstream +debian-watch-may-check-gpg-signature diff --git a/watch b/watch new file mode 100644 index 0000000..7fa69dc --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=4 +opts="mode=git" https://github.com/tsyrogit/zxcvbn-c \ + refs/tags/v([\d\.]+) debian uupdate -- cgit v1.2.3