classes/BuildTasks.php
static function run_check_gnu_files( $task=null, $args=array(), $cliopts=array() )
    {
        $opts = self::getOpts( @$args[0], @$args[1], $cliopts );
        if ( !SharedLock::acquire( $opts['extension']['name'], LOCK_SH, $opts ) )
            throw new PakeException( "Source code locked by another process" );

        $destdir = self::getBuildDir( $opts ) . '/' . $opts['extension']['name'];
        if ( $opts['files']['gnu_dir'] )
        {
            $destdir .= '/' . $opts['files']['gnu_dir'];
        }
        $files = pakeFinder::type( 'file' )->name( array( 'README', 'LICENSE' ) )->maxdepth( 0 )->in( $destdir );
        if ( count( $files ) != 2 )
        {
            SharedLock::release( $opts['extension']['name'], LOCK_SH, $opts );
            throw new pakeException( "README and/or LICENSE files missing. Please fix" );
        }

        SharedLock::release( $opts['extension']['name'], LOCK_SH, $opts );
    }
static function run_check_gnu_files( $task=null, $args=array(), $cliopts=array() )
    {
        $opts = self::getOpts( @$args[0], @$args[1], $cliopts );
        if ( !SharedLock::acquire( $opts['extension']['name'], LOCK_SH, $opts ) )
            throw new PakeException( "Source code locked by another process" );

        $destdir = self::getBuildDir( $opts ) . '/' . $opts['extension']['name'];
        if ( $opts['files']['gnu_dir'] )
        {
            $destdir .= '/' . $opts['files']['gnu_dir'];
        }
        $files = pakeFinder::type( 'file' )->name( array( 'README', 'LICENSE' ) )->maxdepth( 0 )->in( $destdir );
        if ( count( $files ) != 2 )
        {
            SharedLock::release( $opts['extension']['name'], LOCK_SH, $opts );
            throw new pakeException( "README and/or LICENSE files missing. Please fix" );
        }

        SharedLock::release( $opts['extension']['name'], LOCK_SH, $opts );
    }
Checks for presence of files README and LICENSE, by default in extension root
directory - but a config parameter is allowed to specify their location