diff options
| author | Cash Costello <cash.costello@gmail.com> | 2011-12-11 06:38:23 -0500 | 
|---|---|---|
| committer | Cash Costello <cash.costello@gmail.com> | 2011-12-11 06:38:23 -0500 | 
| commit | d9bf22a0e29c2a70049443a0ae8521a2c0492c8b (patch) | |
| tree | c7599a9169d5def7df56c480ad6d67f312443d6f /models/openid-php-openid-782224d/admin | |
| download | elgg-d9bf22a0e29c2a70049443a0ae8521a2c0492c8b.tar.gz elgg-d9bf22a0e29c2a70049443a0ae8521a2c0492c8b.tar.bz2  | |
initial commit for git repository
Diffstat (limited to 'models/openid-php-openid-782224d/admin')
33 files changed, 1201 insertions, 0 deletions
diff --git a/models/openid-php-openid-782224d/admin/adminutil.php b/models/openid-php-openid-782224d/admin/adminutil.php new file mode 100644 index 000000000..738983866 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/adminutil.php @@ -0,0 +1,30 @@ +<?php + +/** + * Add a directory to the include path + * + * @param dir: The directory to add to the path + * @param at_start: If true, place this directory at the beginning of + * the include path. Otherwise, place it at the end. + */ +function includeAdd($dir, $at_start=false) +{ +    $path = ini_get('include_path'); +    if (strlen($path)) { +        $newpath = $at_start ? "$dir:$path" : "$path:$dir"; +    } else { +        $newpath = $dir; +    } + +    ini_set('include_path', $newpath); +} + +/** + * Return the parent directory of this module. + */ +function getParent() +{ +    return dirname(dirname(realpath(__FILE__))); +} + +?>
\ No newline at end of file diff --git a/models/openid-php-openid-782224d/admin/brace_style.pl b/models/openid-php-openid-782224d/admin/brace_style.pl new file mode 100644 index 000000000..ed8332f31 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/brace_style.pl @@ -0,0 +1,81 @@ +#!/usr/bin/env perl -w + +use strict; + +my $filename = $ARGV[0]; + +if (!$filename) { +    print "Usage: modified_otb.pl <filename>\n"; +    exit(1); +} + +my @results = (); +my $line_num = 0; +my ($NONE, $BRACE, $PAREN) = (0, 1, 2); +my $looking_for = $NONE; +my $last_func_name = ""; + +open(HANDLE, "<", $filename) or die "Cannot open $filename\n"; + +# Read the file and track the lines with length > $max_length. +while (<HANDLE>) { +    $line_num++; +    # Subtract one because the newline doesn't count toward the +    # length. +    chomp; + +    if (!$looking_for && +        ($_ =~ /^\s*function/) && +        ($_ =~ /\{/)) { +        # Done (bad): we found a function whose opening line ends with +        # a brace, which goes against the PEAR coding guidelines. + +        ($last_func_name) = $_ =~ /function\s*(.*)\(/; + +        push @results, "'$last_func_name' prototype ends with opening ". +            "brace, line $line_num"; +    } elsif (!$looking_for && +               ($_ =~ /^\s*function/) && +               ($_ !~ /\)/)) { +        ($last_func_name) = $_ =~ /function\s*(.*)\(/; +        $looking_for = $PAREN; +    } elsif (($looking_for == $PAREN) && +               ($_ =~ /\)/) && +               ($_ =~ /\{/)) { +        # Done (bad): function prototype and brace are on the same +        # line. +        push @results, "'$last_func_name' prototype ends with with ". +            "opening brace, line $line_num"; +        $looking_for = $NONE; +    } elsif (($looking_for == $PAREN) && +               ($_ =~ /\)/) && +               ($_ !~ /\{/)) { +        $looking_for = $BRACE; +    } elsif (!$looking_for && +               ($_ =~ /^\s*function/) && +               ($_ =~ /\)/) && +               ($_ !~ /\{/)) { +        ($last_func_name) = $_ =~ /function\s*(.*)\(/; +        $looking_for = $BRACE; +    } elsif (($looking_for == $BRACE) && +               ($_ eq "{")) { +        $looking_for = $NONE; +        # Done (good): the brace was found on the line after the +        # function prototype. +    } else { +        # We got here because we got a line that we're not interested +        # in. +        $looking_for = $NONE; +    } +} + +# If any long lines were found, notify and exit(1); otherwise, +# exit(0). +if (@results) { +    foreach my $result (@results) { +        print "$filename: $result\n"; +    } +    exit(1); +} else { +    exit(0); +} diff --git a/models/openid-php-openid-782224d/admin/checkimport b/models/openid-php-openid-782224d/admin/checkimport new file mode 100644 index 000000000..05776d8f4 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/checkimport @@ -0,0 +1,4 @@ +#!/usr/bin/env php +<?php +require_once $argv[1]; +?>
\ No newline at end of file diff --git a/models/openid-php-openid-782224d/admin/checkimports b/models/openid-php-openid-782224d/admin/checkimports new file mode 100644 index 000000000..c4fa471a6 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/checkimports @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +./admin/findphp | xargs -L 1 ./admin/checkimport
\ No newline at end of file diff --git a/models/openid-php-openid-782224d/admin/darcs-ignore b/models/openid-php-openid-782224d/admin/darcs-ignore new file mode 100644 index 000000000..8291ce2e0 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/darcs-ignore @@ -0,0 +1,3 @@ +~$ +^doc(/|$) +^CHANGELOG$ diff --git a/models/openid-php-openid-782224d/admin/docblocks b/models/openid-php-openid-782224d/admin/docblocks new file mode 100644 index 000000000..a7f05c3b8 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/docblocks @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +#set -e + +bad_files=$(./admin/findphp | xargs -L 1 /usr/bin/env perl admin/docblocks.pl) + +if [ "$bad_files" ] +    then +    cat <<EOF 1>&2 +These files do not start with docblocks: + +$bad_files + +EOF +    exit 1 +fi diff --git a/models/openid-php-openid-782224d/admin/docblocks.pl b/models/openid-php-openid-782224d/admin/docblocks.pl new file mode 100644 index 000000000..0483dbb06 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/docblocks.pl @@ -0,0 +1,26 @@ +#!/usr/bin/env perl -w + +use strict; + +my $filename = $ARGV[0]; + +if (!$filename) { +    print "Usage: docblocks.pl <filename>\n"; +    exit(1); +} + +my %allowed = ("" => 1, +               "<?php" => 1); + +open(HANDLE, "<", $filename) or die "Cannot open $filename\n"; + +while (<HANDLE>) { +    chomp; + +    if ($_ =~ /\/\*\*/) { +        exit(0); +    } elsif (!$allowed{$_}) { +        print $filename."\n"; +        exit(1); +    } +} diff --git a/models/openid-php-openid-782224d/admin/findallphp b/models/openid-php-openid-782224d/admin/findallphp new file mode 100644 index 000000000..59a7306ab --- /dev/null +++ b/models/openid-php-openid-782224d/admin/findallphp @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +find Auth Tests \ +    -name _darcs -prune -o \ +    \( -type f \ +    -a -name \*.php \ +    -a ! -name .\* \ +    \)  diff --git a/models/openid-php-openid-782224d/admin/findglobals b/models/openid-php-openid-782224d/admin/findglobals new file mode 100644 index 000000000..2fcb0e61e --- /dev/null +++ b/models/openid-php-openid-782224d/admin/findglobals @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Find all PHP modules that are likely to have global variables +set -e + +./admin/findphp | xargs grep '^\$' diff --git a/models/openid-php-openid-782224d/admin/findphp b/models/openid-php-openid-782224d/admin/findphp new file mode 100644 index 000000000..d529af716 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/findphp @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +find Auth Tests \ +    -name _darcs -prune -o \ +    \( -type f \ +    -a -name \*.php \ +    -a ! -name .\* \ +    \) | grep -v Tests diff --git a/models/openid-php-openid-782224d/admin/fixperms b/models/openid-php-openid-782224d/admin/fixperms new file mode 100644 index 000000000..0ea094427 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/fixperms @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +cat <<EOF | xargs chmod +x +admin/checkimport +admin/checkimports +admin/docblocks +admin/findphp +admin/findglobals +admin/fixperms +admin/makedoc.sh +admin/mathlib +admin/prepare-release +admin/runtests +admin/findallphp +admin/syntaxcheck +EOF diff --git a/models/openid-php-openid-782224d/admin/gettlds.py b/models/openid-php-openid-782224d/admin/gettlds.py new file mode 100644 index 000000000..430063808 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/gettlds.py @@ -0,0 +1,47 @@ +""" +Fetch the current TLD list from the IANA Web site, parse it, and print +an expression suitable for direct insertion into each library's trust +root validation module + +Usage: +  python gettlds.py (php|python|ruby) + +Then cut-n-paste. +""" + +import urllib2 + +import sys + +langs = { +    'php': (r"'/\.(", +            "'", "|", "|' .", +            r")\.?$/'"), +    'python': ("['", +               "'", "', '", "',", +               "']"), +    'ruby': ("%w'", +             "", " ", "", +             "'"), +    } + +lang = sys.argv[1] +prefix, line_prefix, separator, line_suffix, suffix = langs[lang] + +f = urllib2.urlopen('http://data.iana.org/TLD/tlds-alpha-by-domain.txt') +tlds = [] +output_line = "" +for input_line in f: +    if input_line.startswith('#'): +        continue + +    tld = input_line.strip().lower() +    new_output_line = output_line + prefix + tld +    if len(new_output_line) > 60: +        print output_line + line_suffix +        output_line = line_prefix + tld +    else: +        output_line = new_output_line +    prefix = separator + +print output_line + suffix diff --git a/models/openid-php-openid-782224d/admin/library-name b/models/openid-php-openid-782224d/admin/library-name new file mode 100644 index 000000000..c67163c1f --- /dev/null +++ b/models/openid-php-openid-782224d/admin/library-name @@ -0,0 +1 @@ +php-openid
\ No newline at end of file diff --git a/models/openid-php-openid-782224d/admin/longlines.pl b/models/openid-php-openid-782224d/admin/longlines.pl new file mode 100644 index 000000000..6ce65e87a --- /dev/null +++ b/models/openid-php-openid-782224d/admin/longlines.pl @@ -0,0 +1,46 @@ +#!/usr/bin/env perl -w + +use strict; + +my $filename = $ARGV[0]; + +if (!$filename) { +    print "Usage: longlines.pl <filename> [length]\n"; +    exit(1); +} + +# Set a default maximum line length. +my $max_length = $ARGV[1] || 80; + +my @lines = (); +my $line_num = 0; + +open(HANDLE, "<", $filename) or die "Cannot open $filename\n"; + +# Read the file and track the lines with length > $max_length. +while (<HANDLE>) { +    $line_num++; +    # Subtract one because the newline doesn't count toward the +    # length. +    if (length($_) - 1 > $max_length) { +        push @lines, $line_num; +    } +} + +# If more than five long lines were found, truncate to five and +# indicate that others were present, too. +if (@lines > 5) { +    @lines = @lines[0..4]; +    push @lines, "and others"; +} + +# If any long lines were found, notify and exit(1); otherwise, +# exit(0). +if (@lines) { +    print $filename." (line".((@lines > 1) ? "s" : "")." ". +        join(", ", @lines)." exceed".((@lines == 1) ? "s" : ""). +        " length $max_length)\n"; +    exit(1); +} else { +    exit(0); +} diff --git a/models/openid-php-openid-782224d/admin/makedoc.sh b/models/openid-php-openid-782224d/admin/makedoc.sh new file mode 100644 index 000000000..f07f6c682 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/makedoc.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -v +phpdoc -p on -t doc -d Auth,admin/tutorials -ti "JanRain OpenID Library" \ +    --ignore \*~,BigMath.php,Discover.php,CryptUtil.php,DiffieHellman.php,HMACSHA1.php,KVForm.php,Parse.php,TrustRoot.php,HTTPFetcher.php,ParanoidHTTPFetcher.php,PlainHTTPFetcher.php,ParseHTML.php,URINorm.php,XRI.php,XRIRes.php,Misc.php \ +    -dn "OpenID" -o "HTML:frames:phphtmllib" diff --git a/models/openid-php-openid-782224d/admin/mathlib b/models/openid-php-openid-782224d/admin/mathlib new file mode 100644 index 000000000..53f50d06c --- /dev/null +++ b/models/openid-php-openid-782224d/admin/mathlib @@ -0,0 +1,18 @@ +#!/usr/bin/env php +<?php + +require_once 'adminutil.php'; +includeAdd(getParent()); + +require_once 'Auth/OpenID/CryptUtil.php'; + +$lib =& Auth_OpenID_MathLibrary::getLibWrapper(); + +if ($lib === null) { +    fwrite(STDERR, 'No math library present\n'); +    exit(1); +} else { +    print $lib->type; +} + +?> diff --git a/models/openid-php-openid-782224d/admin/nobadbraces b/models/openid-php-openid-782224d/admin/nobadbraces new file mode 100644 index 000000000..ee060dccd --- /dev/null +++ b/models/openid-php-openid-782224d/admin/nobadbraces @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -e + +./admin/findphp | xargs -L 1 /usr/bin/env perl admin/brace_style.pl diff --git a/models/openid-php-openid-782224d/admin/nobadcase b/models/openid-php-openid-782224d/admin/nobadcase new file mode 100644 index 000000000..c2c266237 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/nobadcase @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +bad=$(./admin/findphp | xargs egrep -n "^[^\'\"]*\b(TRUE|FALSE|NULL)\b") + +if [ ! -z "$bad" ] +    then +    cat <<EOF 1>&2 +These files contain wrongly capitalized constants: + +$bad + +EOF +    exit 1 +fi diff --git a/models/openid-php-openid-782224d/admin/nolonglines b/models/openid-php-openid-782224d/admin/nolonglines new file mode 100644 index 000000000..3e2addc70 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/nolonglines @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +files_with_long_lines=$(./admin/findphp | +            xargs -L 1 -I FILENAME /usr/bin/env perl admin/longlines.pl FILENAME 80) + +if [ "$files_with_long_lines" ] +    then +    cat <<EOF 1>&2 +Found lines > 80 characters in: + +$files_with_long_lines +EOF +    exit 1 +fi diff --git a/models/openid-php-openid-782224d/admin/notabs b/models/openid-php-openid-782224d/admin/notabs new file mode 100644 index 000000000..b6a7df012 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/notabs @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# +# Look in the local directory for PHP files that have tabs in them. If +# there are files with tabs, print the list of files and exit with +# non-zero status. + +tabs=$(./admin/findphp | xargs egrep -n '	' | sort) + +if [ ! -z "$tabs" ] +    then +    cat <<EOF 1>&2 +Found tabs in: +$tabs +EOF +    exit 1 +fi diff --git a/models/openid-php-openid-782224d/admin/open_tag b/models/openid-php-openid-782224d/admin/open_tag new file mode 100644 index 000000000..27fe1c5c5 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/open_tag @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +bad_files=$(./admin/findphp | +      xargs -L 1 grep -H -m 1 "<?php" -c | +      grep ":0" | +      awk -F: '{ print $1 }') + +if [ "$bad_files" ] +    then +    cat <<EOF 1>&2 +These PHP files do NOT begin with <?php : + +$bad_files + +EOF +    exit 1 +fi diff --git a/models/openid-php-openid-782224d/admin/otb_test.php b/models/openid-php-openid-782224d/admin/otb_test.php new file mode 100644 index 000000000..b2fc99ff9 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/otb_test.php @@ -0,0 +1,20 @@ +<?php + +function fail1() { +} + +function pass1() +{ +} + +function fail2( +   ) { + +} + +function pass2( +   ) +{ +} + +?>
\ No newline at end of file diff --git a/models/openid-php-openid-782224d/admin/package.xml b/models/openid-php-openid-782224d/admin/package.xml new file mode 100644 index 000000000..c959ba9ec --- /dev/null +++ b/models/openid-php-openid-782224d/admin/package.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<package version="1.0"> + <name>%(package_name)s</name> + <summary>%(package_summary)s</summary> + <description> + %(package_description)s + </description> + <license>%(license_name)s</license> + %(maintainers)s + <release> +  <version>%(version)s</version> +  <date>%(date)s</date> +  <state>%(release_stability)s</state> +  <notes> +  <![CDATA[ +  %(release_notes)s +  ]]> +  </notes> +  %(contents_version_1)s + </release> + <deps> +  <dep type="php" rel="ge" version="4.3.0" /> + </deps> +</package> diff --git a/models/openid-php-openid-782224d/admin/package2.xml b/models/openid-php-openid-782224d/admin/package2.xml new file mode 100644 index 000000000..d3bd5251f --- /dev/null +++ b/models/openid-php-openid-782224d/admin/package2.xml @@ -0,0 +1,74 @@ +<?xml version="1.0"?> +<package version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" +    xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +    xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 +http://pear.php.net/dtd/tasks-1.0.xsd +http://pear.php.net/dtd/package-2.0 +http://pear.php.net/dtd/package-2.0.xsd"> + <name>%(package_name)s</name> + <uri>%(uri)s</uri> + <summary>%(package_summary)s</summary> + <description> +   %(package_description)s + </description> + %(leads)s + <date>%(date)s</date> + <version> +   <release>%(version)s</release> +   <api>%(version)s</api> + </version> + <stability> +   <release>%(release_stability)s</release> +   <api>%(release_stability)s</api> + </stability> + <license uri="%(license_uri)s">%(license_name)s</license> + <notes> + <![CDATA[ + %(release_notes)s + ]]> + </notes> + <contents> + %(contents)s + </contents> + <dependencies> +   <required> +     <php> +       <min>4.3.0</min> +     </php> +     <pearinstaller> +       <min>1.4.5</min> +     </pearinstaller> +   </required> +   <optional> +     <package> +       <name>PHPUnit</name> +       <channel>pear.php.net</channel> +       <min>1.1.1</min> +     </package> +     <package> +       <name>PEAR_DB</name> +       <channel>pear.php.net</channel> +       <min>1.80</min> +     </package> +     <extension> +       <name>pgsql</name> +     </extension> +     <extension> +       <name>mysql</name> +     </extension> +     <extension> +       <name>sqlite</name> +     </extension> +     <extension> +       <name>bcmath</name> +     </extension> +     <extension> +       <name>gmp</name> +     </extension> +   </optional> + </dependencies> + <!-- There really isn't much we should put in the phprelease tag, + although we should probably make a windows-specific release tag. --> + <phprelease/> +</package> diff --git a/models/openid-php-openid-782224d/admin/packagexml.py b/models/openid-php-openid-782224d/admin/packagexml.py new file mode 100644 index 000000000..e83240594 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/packagexml.py @@ -0,0 +1,155 @@ +#!/usr/bin/python + +import os +import os.path + +def makeMaintainerXML(leads): +    maintainer_template = """ +  <maintainer> +   <user>%(user)s</user> +   <name>%(name)s</name> +   <email>%(email)s</email> +   <role>lead</role> +  </maintainer> +  """ + +    return "<maintainers>" + \ +           "".join([maintainer_template % l for l in leads]) + \ +           "</maintainers>" + +def makeLeadXML(leads): +    lead_template = """ +<lead> +  <name>%(name)s</name> +  <user>%(user)s</user> +  <email>%(email)s</email> +  <active>%(active)s</active> +</lead> +    """ + +    return "".join([lead_template % l for l in leads]) + +INDENT_STRING = "  " + +def buildContentsXMLFordir(dir_or_file, roles, depth=0, dir_role=None, +                           all_files=False): +    """ +    Returns a list of strings, each of which is either a <file> XML +    element for the given file or a <dir> element which contains other +    <file> elements. +    """ + +    try: +        entries = os.listdir(dir_or_file) +        dir_role_s = '' +        if dir_role: +            dir_role_s = ' role="%s"' % (dir_role) +        lines = ['%s<dir name="%s"%s>' % (INDENT_STRING * depth, +                                          os.path.basename(dir_or_file), +                                          dir_role_s)] + +        for entry in entries: +            lines += buildContentsXMLFordir(dir_or_file + os.sep + entry, roles, +                                            depth + 1, dir_role, all_files) + +        lines.append('%s</dir>' % (INDENT_STRING * depth)) + +        return lines +    except OSError: +        try: +            extension = dir_or_file.split(".")[-1] +        except: +            if not all_files: +                return [] + +        if all_files and dir_role: +            return ['%s<file name="%s" role="%s" />' % +                    (INDENT_STRING * depth, os.path.basename(dir_or_file), dir_role)] +        elif extension in roles: # Ends in an extension we care about +            return ['%s<file name="%s" role="%s" />' % +                    (INDENT_STRING * depth, os.path.basename(dir_or_file), +                     roles[extension])] +        else: +            return [] + +def buildContentsXML(roles, *dirs): +    lines = [] + +    for directory in dirs: +        lines.append("\n".join(buildContentsXMLFordir(directory, roles, 1))) + +    return "\n".join(lines) + +def buildDocsXML(*dirs): +    lines = [] + +    for directory in dirs: +        lines.append("\n".join(buildContentsXMLFordir(directory, {}, 1, 'doc', +                                                      all_files=True))) + +    return "\n".join(lines) + +if __name__ == "__main__": +    def usage(progname): +        print "Usage: %s <package version> <xml template file> <release notes file>" % (progname) + +    import sys +    import time + +    try: +        import xmlconfig +    except: +        print "Could not import XML configuration module xmlconfig" +        sys.exit(1) + +    # Expect sys.argv[2] to be the name of the XML file template to +    # use for processing. +    try: +        template_f = open(sys.argv[2], 'r') +    except Exception, e: +        usage(sys.argv[0]) +        print "Could not open template file:", str(e) +        sys.exit(1) + +    # Expect sys.argv[1] to be the version number to include in the +    # package.xml file. +    try: +        version = sys.argv[1] +    except: +        usage(sys.argv[0]) +        sys.exit(2) + +    # Expect sys.argv[3] to be the name of the release notes file. +    try: +        release_file = sys.argv[3] +        release_file_h = open(release_file, 'r') +        release_notes = release_file_h.read().strip() +        release_file_h.close() +    except Exception, e: +        usage(sys.argv[0]) +        print str(e) +        sys.exit(3) + +    data = xmlconfig.__dict__.copy() + +    contentsXml = buildContentsXML({'php': 'php'}, *xmlconfig.contents_dirs) +    docsXml = buildDocsXML(*xmlconfig.docs_dirs) + +    contents = '<dir name="/">\n' + contentsXml + \ +               "\n" + docsXml + '\n  </dir>' + +    contents_v1 = '<filelist><dir name="/" baseinstalldir="Auth">\n' + contentsXml + \ +                  "\n" + docsXml + '\n  </dir></filelist>' + +    data['contents'] = contents +    data['contents_version_1'] = contents_v1 +    data['leads'] = makeLeadXML(xmlconfig.leads) +    data['maintainers'] = makeMaintainerXML(xmlconfig.leads) +    data['date'] = time.strftime("%Y-%m-%d") +    data['version'] = version +    data['uri'] = "%s%s-%s.tgz" % (data['package_base_uri'], data['package_name'], +                                   version) +    data['release_notes'] = release_notes + +    template_data = template_f.read() +    print template_data % data diff --git a/models/openid-php-openid-782224d/admin/phpaliases.py b/models/openid-php-openid-782224d/admin/phpaliases.py new file mode 100644 index 000000000..c4ce21684 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/phpaliases.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python + +"""This script searches files for functions that are just aliases in +PHP source code. This is not 100% reliable, so it should not be +automated, but it's useful to run once in a while to make sure that +all of the matches it finds are not really legitimate aliases. + +Usage: + +  parse_aliases.py <name of alias file> [PHP source code filename]... +""" + +import sys + +# Fetch this URL to get the file that is parsed into the aliases list +alias_url = 'http://www.zend.com/phpfunc/all_aliases.php' + +header_tok = '<!-- END OF HEADER -->'; +footer_tok = '<!-- FOOTER -->'; + +# Example line of the table that we parse: +# '<tr bgcolor="#EFEFFF"><td><a href="function.bzclose.php">bzclose</a></td><td><a href="http://lxr.php.net/source/php-src/ext/bz2/bz2.c#48">php-src/ext/bz2/bz2.c</a></td><td><a href="function.fclose.php">fclose</a></td></tr>' + +import re + +line_re = re.compile(r''' +\A + +<tr\ bgcolor="[^">]+"> + +<td><a\ href="[^>"]+\.php">([^<>]+)</a></td> + +<td><a\ href="[^">]+">[^<>]+</a></td> + +<td> +(?: +    <a\ href="[^">]+\.php"> +    ( [^<>]+ ) +    </a> +|   ( [^<>]+ ) +) +</td> + +</tr> + +\Z +''', re.VERBOSE) + +def parseString(s): +    _, rest = s.split(header_tok, 1) +    body, _ = rest.split(footer_tok, 1) + +    lines = body.split('\n') +    assert [s.strip() for s in lines[-2:]] == ['</table>', ''] +    assert lines[0].strip().startswith('<table') +    del lines[0], lines[-2:] +    aliases = {} +    for line in lines: +        mo = line_re.match(line) +        assert mo, line +        alias, master1, master2 = mo.groups() +        if master1: +            master = master1 +        else: +            assert master2 +            master = master2 +        aliases[alias] = master + +    return aliases + +def parseFile(f): +    return parseString(f.read()) + +def parseFileName(fn): +    return parseFile(file(fn, 'r')) + +def parseURL(url): +    return parseFile(urllib2.urlopen(url)) + +def getAliasRE(aliases): +    return re.compile(r'(->|\$|)\s*\b(%s)\b' % ('|'.join(aliases.keys()))) + +def checkAliasesFile(alias_re, f): +    found = [] +    line_num = 1 +    for line in f: +        for mo in alias_re.finditer(line): +            if mo.group(1): +                continue +            alias = mo.group(2) +            found.append((line_num, alias)) +        line_num += 1 +    return found + +def checkAliases(alias_re, filename): +    return checkAliasesFile(alias_re, file(filename, 'r')) + +def checkAliasesFiles(alias_re, filenames): +    found = [] +    for filename in filenames: +        file_found = checkAliases(alias_re, filename) +        found.extend([(filename, n, a) for (n, a) in file_found]) +    return found + +def dumpResults(aliases, found, out=sys.stdout): +    for filename, n, a in found: +        print >>out, "%s:%d %s -> %s" % (filename, n, a, aliases[a]) + +def main(alias_file, *filenames): +    aliases = parseFileName(alias_file) +    alias_re = getAliasRE(aliases) +    found = checkAliasesFiles(alias_re, filenames) +    dumpResults(aliases, found) +    return found + +if __name__ == '__main__': +    found = main(*sys.argv[1:]) +    if found: +        sys.exit(1) diff --git a/models/openid-php-openid-782224d/admin/prepare-release b/models/openid-php-openid-782224d/admin/prepare-release new file mode 100644 index 000000000..98415a9da --- /dev/null +++ b/models/openid-php-openid-782224d/admin/prepare-release @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# +# Prepare this repository for release + +REPO_ROOT=$(dirname $(dirname $(readlink --canonicalize "$0"))) +cd "$REPO_ROOT" + +bash ./admin/fixperms + +./admin/makedoc.sh + +darcs changes --from-tag=. --summary > CHANGELOG diff --git a/models/openid-php-openid-782224d/admin/runtests b/models/openid-php-openid-782224d/admin/runtests new file mode 100644 index 000000000..b018c8749 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/runtests @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +# Get the absolute path containing this script +cd $(dirname "$0") +HERE=$PWD + +test_import () { +    ./admin/checkimports +} + +test_syntax () { +    ./admin/syntaxcheck +} + +test_tabs () { +    /usr/bin/env bash "$HERE/notabs" +} + +test_longlines () { +    /usr/bin/env bash "$HERE/nolonglines" +} + +test_nobadbraces () { +    /usr/bin/env bash "$HERE/nobadbraces" +} + +test_nobadcase () { +    /usr/bin/env bash "$HERE/nobadcase" +} + +test_opentag () { +    /usr/bin/env bash "$HERE/open_tag" +} + +test_docblocks () { +    /usr/bin/env bash "$HERE/docblocks" +} + +test_php () { +    if uname -a | grep -i cygwin >/dev/null 2>/dev/null ; then +        /usr/bin/env php "$(dirname "$0")/texttest.php" --insecure-rand \ +            $TEXTTEST_ARGS +    else +        /usr/bin/env php "$HERE/texttest.php" $TEXTTEST_ARGS +    fi +} + +tests="syntax tabs longlines nobadbraces nobadcase opentag docblocks php import" + +failures= + +# Run in repository root (parent of this directory) +cd $(dirname "$HERE") + +chmod +x ./admin/fixperms +./admin/fixperms + +for test_name in $tests +  do +  echo "Running test $test_name" 1>&2 +  if ! eval "test_$test_name" +      then +      failures="$failures $test_name" +  fi +done + +if [ ! -z "$failures" ] +    then +    echo "Failures in: $failures" 1>&2 +    exit 1 +fi diff --git a/models/openid-php-openid-782224d/admin/syntaxcheck b/models/openid-php-openid-782224d/admin/syntaxcheck new file mode 100644 index 000000000..f94b7fad0 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/syntaxcheck @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +for file in `./admin/findallphp` +  do php -l $file +done diff --git a/models/openid-php-openid-782224d/admin/texttest.php b/models/openid-php-openid-782224d/admin/texttest.php new file mode 100644 index 000000000..422dd1de0 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/texttest.php @@ -0,0 +1,197 @@ +<?php + +require_once 'Tests/TestDriver.php'; +require_once 'PHPUnit/Framework.php'; +require_once 'Console/Getopt.php'; + +class TextTestResult extends PHPUnit_Framework_TestResult { +  function addError(&$test, &$t, $time=0) +    { +      parent::addError($test, $t, $time); +        echo "E"; +    } + +    function addFailure(&$test, &$t, $time=0) +    { +        parent::addFailure($test, $t, $time); +        echo "F"; +    } + +    function addPassedTest(&$test) +    { +        parent::addPassedTest($test); +        echo "."; +    } + +    function dumpBadResults() +    { +        foreach ($this->failures() as $failure) { +            echo $failure->toString(); +        } + +        foreach ($this->errors() as $failure) { +            echo $failure->toString(); +        } +    } +} + +function microtime_float() +{ +   list($usec, $sec) = explode(" ", microtime()); +   return ((float)$usec + (float)$sec); +} + +$longopts = array('no-math', +                  'buggy-gmp', +                  'no-curl', +                  'math-lib=', +                  'insecure-rand', +                  'thorough', +                  'extra-tests='); + +$con  = new Console_Getopt; +$args = $con->readPHPArgv(); +array_shift($args); +$options = $con->getopt2($args, "", $longopts); + +if (PEAR::isError($options)) { +    print $options->message . "\n"; +    exit(1); +} + +list($flags, $tests_to_run) = $options; + +$math_type = array(); +$extra_test_modules = array(); +$thorough = false; +foreach ($flags as $flag) { +    list($option, $value) = $flag; +    switch ($option) { +    case '--insecure-rand': +        define('Auth_OpenID_RAND_SOURCE', null); +        break; +    case '--no-math': +        define('Auth_OpenID_NO_MATH_SUPPORT', true); +        break; +    case '--buggy-gmp': +        define('Auth_OpenID_BUGGY_GMP', true); +        break; +    case '--no-curl': +        define('Auth_Yadis_CURL_OVERRIDE', true); +        break; +    case '--thorough': +        define('Tests_Auth_OpenID_thorough', true); +        break; +    case '--extra-tests': +        $extra_test_modules[] = $value; +        break; +    default: +        print "Unrecognized option: $option\n"; +        exit(1); +    } +} + +// ******** Math library selection *********** +// XXX FIXME +//     case '--math-lib': +//         $math_type[] = $value; +//         break; +if ($math_type && false) { +    if (defined('Auth_OpenID_NO_MATH_SUPPORT')) { +        print "--no-math and --math-lib are mutually exclusive\n"; +        exit(1); +    } +    require_once('Auth/OpenID/BigMath.php'); +    $new_extensions = array(); +    foreach ($math_type as $lib) { +        $found = false; +        foreach (Auth_OpenID_math_extensions() as $ext) { +            if ($ext['extension'] == $lib) { +                $new_extensions[] = $ext; +                $found = true; +                break; +            } +        } + +        if (!$found) { +            print "Unknown math library specified: $lib\n"; +            exit(1); +        } +    } +    $_Auth_OpenID_math_extensions = $new_extensions; +} + +// ******** End math library selection ********** + +$suites = loadSuite($tests_to_run); + +// ******** Load additional test suites ******** +foreach ($extra_test_modules as $filename) { +    if (!global_require_once($filename)) { +        continue; +    } +    $module_name = basename($filename, '.php'); +    $class_name = "Tests_Auth_OpenID_${module_name}_Test"; +    $suites[] = makeSuite($class_name); +} + + +$totals = array( +    'run' => 0, +    'error' => 0, +    'failure' => 0, +    'time' => 0 +    ); + +foreach ($suites as $suite) { +    $name = $suite->getName(); +    echo "========================================== +Test suite: $name +------------------------------------------ +"; + +    $result = new TextTestResult(); +    $before = microtime_float(); +    $suite->run($result); +    $after = microtime_float(); + +    $run = $result->count(); +    $error = $result->errorCount(); +    $failure = $result->failureCount(); +    $delta = $after - $before; +    $totals['run'] += $run; +    $totals['error'] += $error; +    $totals['failure'] += $failure; +    $totals['time'] += $delta; +    $human_delta = round($delta, 3); +    echo "\nRan $run tests in $human_delta seconds"; +    if ($error || $failure) { +        echo " with $error errors, $failure failures"; +    } +    echo " +========================================== + +"; + +    $failures = $result->failures(); +    foreach($failures as $failure) { +        $test = $failure->failedTest(); +        $testName = $test->getName(); +        $exception = $failure->thrownException(); +        echo "* Failure in $testName: $exception + +"; +    } +} + +$before = microtime_float(); +$run = $totals['run']; +$error = $totals['error']; +$failure = $totals['failure']; +$time = round($totals['time'], 3); +echo "Ran a total of $run tests in $time seconds with $error errors, $failure failures\n"; +if ($totals['error'] || $totals['failure']) { +    exit(1); +} + +?> diff --git a/models/openid-php-openid-782224d/admin/tutorials/OpenID/OpenID.pkg b/models/openid-php-openid-782224d/admin/tutorials/OpenID/OpenID.pkg new file mode 100644 index 000000000..cb0aa620a --- /dev/null +++ b/models/openid-php-openid-782224d/admin/tutorials/OpenID/OpenID.pkg @@ -0,0 +1,78 @@ +<refentry id="{@id}"> + <refnamediv> +  <refname>PHP OpenID API</refname> + + </refnamediv> + <refsynopsisdiv> +  <author> +   JanRain, Inc. +   <authorblurb> +    {@link mailto:openid@janrain.com openid@janrain.com} +   </authorblurb> +  </author> + </refsynopsisdiv> + + <para> + This is a complete implementation of the OpenID authentication + protocol.  This package contains: + +   <itemizedlist> +     <listitem>An OpenID server</listitem> +     <listitem>An OpenID consumer</listitem> +     <listitem>Stores for MySQL, PostgreSQL, SQLite, and filesystem-based OpenID data storage</listitem> +     <listitem>PHPUnit unit tests</listitem> +     <listitem>An example server and consumer</listitem> +   </itemizedlist> + </para> + + <refsect1 id="{@id users}"> +   <title>For Package Users</title> + +   <para> +    To install this package, copy the <literal>Auth/</literal> +    directory in this package to a directory in your PHP include path. +    Alternatively, modify your PHP include path to include the +    directory that contains <literal>Auth/</literal>.  Any +    applications that need this package will then be able to use it. +   </para> + + </refsect1> + + <refsect1 id="{@id developers}"> +   <title>For Developers</title> + +   <para> + +    See the server and consumer examples in the +    <literal>examples/</literal> directory of the package.  For +    details on how to run the examples, see +    <literal>examples/README</literal>.  If you want to create your +    own OpenID data storage class, please see the {@link Auth_OpenID_OpenIDStore} +     class.  For information on integrating OpenID relying party support into your site, see +    the class documentation for {@link Consumer.php}. + +   </para> + + </refsect1> + + <refsect1 id="{@id references}"> +  <title>References</title> +  <para> +   <itemizedlist> +    <listitem> +     {@link http://github.com/openid/php-openid PHP OpenID Library} +    </listitem> + +    <listitem> +     {@link http://www.janrain.com JanRain, Inc.} +    </listitem> + +    <listitem> +     {@link http://openid.net/developers/dev-mailing-lists/ OpenID Development Discussion Lists} +    </listitem> +   </itemizedlist> +  </para> + </refsect1> + +</refentry> + diff --git a/models/openid-php-openid-782224d/admin/webtest.php b/models/openid-php-openid-782224d/admin/webtest.php new file mode 100644 index 000000000..1076623f0 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/webtest.php @@ -0,0 +1,12 @@ +<?php + +require_once 'Tests/TestDriver.php'; + +$suites = loadSuite(); + +// Create and run the user interface +$gui = new PHPUnit_GUI_HTML(); +$gui->addSuites($suites); +$gui->show(); + +?> diff --git a/models/openid-php-openid-782224d/admin/xmlconfig.py b/models/openid-php-openid-782224d/admin/xmlconfig.py new file mode 100644 index 000000000..ac029b518 --- /dev/null +++ b/models/openid-php-openid-782224d/admin/xmlconfig.py @@ -0,0 +1,55 @@ + +""" +This is the package.xml data needed for the PHP OpenID PEAR +package.xml file.  Use the 'packagexml.py' program to generate a +package.xml file for a release of this library. +""" + +# This is a list of dicts describing the project leads.  This will be +# used to generate <lead> XML elements. +leads = [ +    {'name': 'Jonathan Daugherty', +     'user': 'cygnus', +     'email': 'cygnus@janrain.com', +     'active': 'yes'}, +    {'name': 'Josh Hoyt', +     'user': 'jhoyt', +     'email': 'josh@janrain.com', +     'active': 'yes'} +    ] + +# The package name. +package_name = 'Auth_OpenID' + +# The package description. +package_description = 'An implementation of the OpenID single sign-on authentication protocol.' + +# Package summary. +package_summary = 'PHP OpenID' + +# License string. +license_name = 'Apache' + +# License URI. +license_uri = 'http://www.apache.org/licenses/LICENSE-2.0' + +# Director(ies) containing package source, relative to the admin/ +# directory.  All .php files in these directories will be included in +# the <contents> element of the output XML and will be assigned the +# role 'php'. +contents_dirs = ['../Auth',] + +# Director(ies) containing package documentation.  All files and +# subdirectories in these directories will be included in the +# <contents> element in the output XML and will be assigned the role +# 'doc'. +docs_dirs = ['../doc', '../examples'] + +# The HTTP package base URI.  This is the place on the web where the +# PEAR-installable tarballs will live, and this (plus the package +# tarball name) will be the URL that users pass to "pear install". +package_base_uri = 'http://www.openidenabled.com/resources/downloads/php-openid/pear/' + +# The release stability.  Maybe this should be a commandline parameter +# since it might differ from release to release. +release_stability = 'stable'  | 
