[Mud-builder-commits] r239 - in trunk: . lib/MUD packages

jaffa at garage.maemo.org jaffa at garage.maemo.org
Sat Jul 12 22:45:37 EEST 2008


Author: jaffa
Date: 2008-07-12 22:45:34 +0300 (Sat, 12 Jul 2008)
New Revision: 239

Modified:
   trunk/ARTISTIC
   trunk/INSTALL
   trunk/lib/MUD/Build.pm
   trunk/lib/MUD/Package.pm
   trunk/mud
   trunk/packages/vim.xml
Log:
Update licence to Artistic v2.0. Start including lots more documentation. Lower-case tags in XML file to correct checking of build-depends vs. build-Depends etc.

Modified: trunk/ARTISTIC
===================================================================
--- trunk/ARTISTIC	2008-07-10 12:24:18 UTC (rev 238)
+++ trunk/ARTISTIC	2008-07-12 19:45:34 UTC (rev 239)
@@ -1,124 +1,178 @@
-The "Artistic License"
+                              Artistic License 2.0
 
+   Copyright (c) 2000-2006, The Perl Foundation.
+
+   Everyone is permitted to copy and distribute verbatim copies of this
+   license document, but changing it is not allowed.
+
   Preamble
 
-   The intent of this document is to state the conditions under which a
-   Package may be copied, such that the Copyright Holder maintains some
-   semblance of artistic control over the development of the package,
-   while giving the users of the package the right to use and distribute
-   the Package in a more-or-less customary fashion, plus the right to
-   make reasonable modifications.
+   This license establishes the terms under which a given free software
+   Package may be copied, modified, distributed, and/or redistributed. The
+   intent is that the Copyright Holder maintains some artistic control over
+   the development of that Package while still keeping the Package available
+   as open source and free software.
 
+   You are always permitted to make arrangements wholly outside of this
+   license directly with the Copyright Holder of a given Package. If the
+   terms of this license do not permit the full use that you propose to make
+   of the Package, you should contact the Copyright Holder and seek a
+   different licensing arrangement.
+
   Definitions
 
-     "Package" refers to the collection of files distributed by the
-     Copyright Holder, and derivatives of that collection of files
-     created through textual modification.
+   "Copyright Holder" means the individual(s) or organization(s) named in the
+   copyright notice for the entire Package.
 
-     "Standard Version" refers to such a Package if it has not been
-     modified, or has been modified in accordance with the wishes of the
-     Copyright Holder as specified below.
+   "Contributor" means any party that has contributed code or other material
+   to the Package, in accordance with the Copyright Holder's procedures.
 
-     "Copyright Holder" is whoever is named in the copyright or
-     copyrights for the package.
+   "You" and "your" means any person who would like to copy, distribute, or
+   modify the Package.
 
-     "You" is you, if you're thinking about copying or distributing this
-     Package.
+   "Package" means the collection of files distributed by the Copyright
+   Holder, and derivatives of that collection and/or of those files. A given
+   Package may consist of either the Standard Version, or a Modified Version.
 
-     "Reasonable copying fee" is whatever you can justify on the basis
-     of media cost, duplication charges, time of people involved, and so
-     on. (You will not be required to justify it to the Copyright
-     Holder, but only to the computing community at large as a market
-     that must bear the fee.)
+   "Distribute" means providing a copy of the Package or making it accessible
+   to anyone else, or in the case of a company or organization, to others
+   outside of your company or organization.
 
-     "Freely Available" means that no fee is charged for the item
-     itself, though there may be fees involved in handling the item. It
-     also means that recipients of the item may redistribute it under
-     the same conditions they received it.
+   "Distributor Fee" means any fee that you charge for Distributing this
+   Package or providing support for this Package to another party. It does
+   not mean licensing fees.
 
-    1. You may make and give away verbatim copies of the source form of
-       the Standard Version of this Package without restriction, provided
-       that you duplicate all of the original copyright notices and
-       associated disclaimers.
-    2. You may apply bug fixes, portability fixes and other modifications
-       derived from the Public Domain or from the Copyright Holder. A
-       Package modified in such a way shall still be considered the
-       Standard Version.
-    3. You may otherwise modify your copy of this Package in any way,
-       provided that you insert a prominent notice in each changed file
-       stating how and when you changed that file, and provided that you
-       do at least ONE of the following:
+   "Standard Version" refers to the Package if it has not been modified, or
+   has been modified only in ways explicitly requested by the Copyright
+   Holder.
 
-    a. place your modifications in the Public Domain or otherwise make
-       them Freely Available, such as by posting said modifications to
-       Usenet or an equivalent medium, or placing the modifications on a
-       major archive site such as uunet.uu.net, or by allowing the
-       Copyright Holder to include your modifications in the Standard
-       Version of the Package.
-    b. use the modified Package only within your corporation or
-       organization.
-    c. rename any non-standard executables so the names do not conflict
-       with standard executables, which must also be provided, and
-       provide a separate manual page for each non-standard executable
-       that clearly documents how it differs from the Standard Version.
-    d. make other distribution arrangements with the Copyright Holder.
+   "Modified Version" means the Package, if it has been changed, and such
+   changes were not explicitly requested by the Copyright Holder.
 
-     You may distribute the programs of this Package in object code or
-   executable form, provided that you do at least ONE of the following:
+   "Original License" means this Artistic License as Distributed with the
+   Standard Version of the Package, in its current version or as it may be
+   modified by The Perl Foundation in the future.
 
-    a. distribute a Standard Version of the executables and library
-       files, together with instructions (in the manual page or
-       equivalent) on where to get the Standard Version.
-    b. accompany the distribution with the machine-readable source of the
-       Package with your modifications.
-    c. give non-standard executables non-standard names, and clearly
-       document the differences in manual pages (or equivalent), together
-       with instructions on where to get the Standard Version.
-    d. make other distribution arrangements with the Copyright Holder.
+   "Source" form means the source code, documentation source, and
+   configuration files for the Package.
 
-     You may charge a reasonable copying fee for any distribution of this
-   Package. You may charge any fee you choose for support of this
-   Package. You may not charge a fee for this Package itself. However,
-   you may distribute this Package in aggregate with other (possibly
-   commercial) programs as part of a larger (possibly commercial)
-   software distribution provided that you do not advertise this Package
-   as a product of your own. You may embed this Package's interpreter
-   within an executable of yours (by linking); this shall be construed as
-   a mere form of aggregation, provided that the complete Standard
-   Version of the interpreter is so embedded.
+   "Compiled" form means the compiled bytecode, object code, binary, or any
+   other form resulting from mechanical transformation or translation of the
+   Source form.
 
-     The scripts and library files supplied as input to or produced as
-   output from the programs of this Package do not automatically fall
-   under the copyright of this Package, but belong to whomever generated
-   them, and may be sold commercially, and may be aggregated with this
-   Package. If such scripts or library files are aggregated with this
-   Package via the so-called "undump" or "unexec" methods of producing a
-   binary executable image, then distribution of such an image shall
-   neither be construed as a distribution of this Package nor shall it
-   fall under the restrictions of Paragraphs 3 and 4, provided that you
-   do not represent such an executable image as a Standard Version of
-   this Package.
+  Permission for Use and Modification Without Distribution
 
-     C subroutines (or comparably compiled subroutines in other
-   languages) supplied by you and linked into this Package in order to
-   emulate subroutines and variables of the language defined by this
-   Package shall not be considered part of this Package, but are the
-   equivalent of input as in Paragraph 6, provided these subroutines do
-   not change the language in any way that would cause it to fail the
-   regression tests for the language.
+   (1) You are permitted to use the Standard Version and create and use
+   Modified Versions for any purpose without restriction, provided that you
+   do not Distribute the Modified Version.
 
-     Aggregation of this Package with a commercial distribution is always
-   permitted provided that the use of this Package is embedded; that is,
-   when no overt attempt is made to make this Package's interfaces
-   visible to the end user of the commercial distribution. Such use shall
-   not be construed as a distribution of this Package.
+  Permissions for Redistribution of the Standard Version
 
-     The name of the Copyright Holder may not be used to endorse or
-   promote products derived from this software without specific prior
-   written permission.
+   (2) You may Distribute verbatim copies of the Source form of the Standard
+   Version of this Package in any medium without restriction, either gratis
+   or for a Distributor Fee, provided that you duplicate all of the original
+   copyright notices and associated disclaimers. At your discretion, such
+   verbatim copies may or may not include a Compiled form of the Package.
 
-     THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
-   WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-   MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+   (3) You may apply any bug fixes, portability changes, and other
+   modifications made available from the Copyright Holder. The resulting
+   Package will still be considered the Standard Version, and as such will be
+   subject to the Original License.
 
-                                  The End
+  Distribution of Modified Versions of the Package as Source
+
+   (4) You may Distribute your Modified Version as Source (either gratis or
+   for a Distributor Fee, and with or without a Compiled form of the Modified
+   Version) provided that you clearly document how it differs from the
+   Standard Version, including, but not limited to, documenting any
+   non-standard features, executables, or modules, and provided that you do
+   at least ONE of the following:
+
+   (a) make the Modified Version available to the Copyright Holder of the
+   Standard Version, under the Original License, so that the Copyright Holder
+   may include your modifications in the Standard Version.
+   (b) ensure that installation of your Modified Version does not prevent the
+   user installing or running the Standard Version. In addition, the Modified
+   Version must bear a name that is different from the name of the Standard
+   Version.
+   (c) allow anyone who receives a copy of the Modified Version to make the
+   Source form of the Modified Version available to others under
+   (i) the Original License or
+   (ii) a license that permits the licensee to freely copy, modify and
+   redistribute the Modified Version using the same licensing terms that
+   apply to the copy that the licensee received, and requires that the Source
+   form of the Modified Version, and of any works derived from it, be made
+   freely available in that license fees are prohibited but Distributor Fees
+   are allowed.
+   Distribution of Compiled Forms of the Standard Version or Modified
+   Versions without the Source
+
+   (5) You may Distribute Compiled forms of the Standard Version without the
+   Source, provided that you include complete instructions on how to get the
+   Source of the Standard Version. Such instructions must be valid at the
+   time of your distribution. If these instructions, at any time while you
+   are carrying out such distribution, become invalid, you must provide new
+   instructions on demand or cease further distribution. If you provide valid
+   instructions or cease distribution within thirty days after you become
+   aware that the instructions are invalid, then you do not forfeit any of
+   your rights under this license.
+
+   (6) You may Distribute a Modified Version in Compiled form without the
+   Source, provided that you comply with Section 4 with respect to the Source
+   of the Modified Version.
+
+  Aggregating or Linking the Package
+
+   (7) You may aggregate the Package (either the Standard Version or Modified
+   Version) with other packages and Distribute the resulting aggregation
+   provided that you do not charge a licensing fee for the Package.
+   Distributor Fees are permitted, and licensing fees for other components in
+   the aggregation are permitted. The terms of this license apply to the use
+   and Distribution of the Standard or Modified Versions as included in the
+   aggregation.
+
+   (8) You are permitted to link Modified and Standard Versions with other
+   works, to embed the Package in a larger work of your own, or to build
+   stand-alone binary or bytecode versions of applications that include the
+   Package, and Distribute the result without restriction, provided the
+   result does not expose a direct interface to the Package.
+
+  Items That are Not Considered Part of a Modified Version
+
+   (9) Works (including, but not limited to, modules and scripts) that merely
+   extend or make use of the Package, do not, by themselves, cause the
+   Package to be a Modified Version. In addition, such works are not
+   considered parts of the Package itself, and are not subject to the terms
+   of this license.
+
+  General Provisions
+
+   (10) Any use, modification, and distribution of the Standard or Modified
+   Versions is governed by this Artistic License. By using, modifying or
+   distributing the Package, you accept this license. Do not use, modify, or
+   distribute the Package, if you do not accept this license.
+
+   (11) If your Modified Version has been derived from a Modified Version
+   made by someone other than you, you are nevertheless required to ensure
+   that your Modified Version complies with the requirements of this license.
+
+   (12) This license does not grant you the right to use any trademark,
+   service mark, tradename, or logo of the Copyright Holder.
+
+   (13) This license includes the non-exclusive, worldwide, free-of-charge
+   patent license to make, have made, use, offer to sell, sell, import and
+   otherwise transfer the Package with respect to any patent claims
+   licensable by the Copyright Holder that are necessarily infringed by the
+   Package. If you institute patent litigation (including a cross-claim or
+   counterclaim) against any party alleging that the Package constitutes
+   direct or contributory patent infringement, then this Artistic License to
+   you shall terminate on the date that such litigation is filed.
+
+   (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT
+   HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED
+   WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+   PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT
+   PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER
+   OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR
+   CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE,
+   EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL	2008-07-10 12:24:18 UTC (rev 238)
+++ trunk/INSTALL	2008-07-12 19:45:34 UTC (rev 239)
@@ -1 +1,5 @@
 Don't install, just run in-place for now.
+
+The following packages are required: xsltproc, devscripts.
+
+In future, gnupg will be required for `mud upload'

Modified: trunk/lib/MUD/Build.pm
===================================================================
--- trunk/lib/MUD/Build.pm	2008-07-10 12:24:18 UTC (rev 238)
+++ trunk/lib/MUD/Build.pm	2008-07-12 19:45:34 UTC (rev 239)
@@ -1,8 +1,23 @@
-#
-# MUD::Build                                (c) Andrew Flegg 2007
-# ~~~~~~~~~~                                Relased under the Artistic Licence
-#                                           http://mud-builder.garage.maemo.org/
 
+=head1 NAME
+
+MUD::Build - Build packages suitable for upload
+
+=head1 SYNOPSIS
+
+This class is primarily responsible for controlling the build process
+used by C<mud>.
+
+    use MUD::Build;
+    my $mud = MUD::Build->new( package => 'vim' );
+    $mud->build();
+
+=head1 DESCRIPTION
+
+=over 12
+
+=cut
+
 package MUD::Build;
 
 use strict;
@@ -22,6 +37,21 @@
 $VERSION = '0.10';
 @PREVENT_INSTALL = qw(changelogs docs examples info man);
 
+
+=item new( OPTS )
+
+Create a new instance. OPTS is a hash containing name/value pairs:
+
+=over 10
+
+=item package
+
+Name of the package. This is required.
+
+=back
+
+=cut
+
 sub new {
     my $that = shift;
     $that = ref($that) || $that;
@@ -31,6 +61,13 @@
     return $self;
 }
 
+
+=item _init
+
+Initialise a new instance.
+
+=cut
+
 sub _init {
     my $self = shift;
 
@@ -51,6 +88,14 @@
     $self->{data}->{build} = $buildDir if -d $buildDir;
 }
 
+
+=item build
+
+Build the configured package and place the deb files ready for upload
+in the C<uploads/> directory.
+
+=cut 
+
 sub build {
     my $self = shift;
 
@@ -64,6 +109,13 @@
     $self->compile();
 }
 
+
+=item fetch
+
+Download the source for the package and unpack it in the build directory.
+
+=cut
+
 sub fetch {
     my $self = shift;
 
@@ -116,8 +168,15 @@
         $self->genDebControl();
     }
 }
- 
 
+
+=item patch
+
+Apply any patches for the given package and modify Debian control structures
+to apply to the Maemo SDK. 
+
+=cut
+
 sub patch {
     my $self = shift;
 
@@ -167,6 +226,13 @@
     }
 }
 
+
+=item compile
+
+Build the unpacked, and potentially patched, source.
+
+=cut
+
 sub compile {
     my $self = shift;
 
@@ -207,6 +273,13 @@
     system("$dpkgBuildpackage -S | tee -a ../log"); 
 }
 
+
+=item clean
+
+Remove the build directory and any temporary files used therein.
+
+=cut
+
 sub clean {
     my $self = shift;
 
@@ -214,6 +287,14 @@
     system('rm', '-rf', $self->{workdir});
 }
 
+
+=item copy
+
+Copy output files - including debs, tarballs, dsc and changes files - to
+the upload directory.
+
+=cut
+
 sub copy {
     my $self = shift;
     my %debs = ();
@@ -398,6 +479,7 @@
     
     # -- Modify changelog to contain this build...
     #
+    # debchange doesn't do anything if the version is already there except moan
     system('debchange', '-v', $self->{data}->{version},
                         '-p', '--noquery',
                         'Build using mud-builder by '.($ENV{USER} || 'unknown'));
@@ -406,3 +488,14 @@
     #
     system('echo 4 >debian/compat');
 }
+
+=back
+
+=head1 COPYRIGHT
+
+(c) Andrew Flegg 2007 - 2008. Released under the Artistic Licence:
+L<http://www.opensource.org/licenses/artistic-license-2.0.php>
+
+=head1 SEE ALSO
+
+L<http://mud-builder.garage.maemo.org/>

Modified: trunk/lib/MUD/Package.pm
===================================================================
--- trunk/lib/MUD/Package.pm	2008-07-10 12:24:18 UTC (rev 238)
+++ trunk/lib/MUD/Package.pm	2008-07-12 19:45:34 UTC (rev 239)
@@ -61,6 +61,9 @@
     $file = <XMLFILE>;
     close(XMLFILE);
     $/ = $holdTerminator;
+    
+    # Lower case all the tags for normalisation
+    $file =~ s!(</?[\w-]+)!lc($1)!egx;
 
     $self->{data} = XMLin($file) or croak("Unable to parse configuration for '$name': error in [$file]?");
     $self->{name} = $name;

Modified: trunk/mud
===================================================================
--- trunk/mud	2008-07-10 12:24:18 UTC (rev 238)
+++ trunk/mud	2008-07-12 19:45:34 UTC (rev 239)
@@ -1,9 +1,15 @@
 #!/usr/bin/perl
-#
-# Main MUD-Builder script                 (c) Andrew Flegg 2007
-#                                         Released under the Artistic Licence
-#                                         http://mud-builder.garage.maemo.org/
 
+=head1 NAME
+
+mud-builder - Easily create Maemo packages
+
+=head1 DESCRIPTION
+
+=over 12
+
+=cut
+
 use strict;
 use warnings;
 
@@ -86,11 +92,18 @@
 	clean($n);
     }
 }
-
     
 exit;
 
 
+=item get($)
+
+Get a package and unpack its source ready for editing. This can be
+called with C<mud get I<package>>. The source code is expanded at
+C<build/I<package>/.build>.
+
+=cut
+
 sub get {
     my ($pkg) = @_;
 
@@ -122,6 +135,17 @@
     print "\n\n--- $pkg can now be compiled and tested in:\n       $builder->{data}->{build}\n";
 }
 
+
+=item compile($)
+
+Compile the given package which has been expanded to a working copy
+with L</get($)>. This can be called with C<mud compile I<package>>.
+
+C<mud get I<package>> && C<mud compile I<package>> will result in the
+same output as C<mud build I<package>>.
+
+=cut
+
 sub compile {
     my ($pkg) = @_;
 
@@ -133,6 +157,17 @@
 }
 
 
+=item diff($)
+
+Generate a patch for I<package> from the base position to the current state
+of the build directory. Subversion commands such as C<svn add> can be used to
+add new files to the patchset.
+
+In future versions of C<mud>, this may be removed and L<quilt> used
+instead. 
+
+=cut
+
 sub diff {
     my ($pkg) = @_;
 
@@ -159,6 +194,14 @@
 }
  
 
+=item clean($)
+
+Remove the expanded build directory for I<package>. The directory will
+have been created with L</get($)>. If the directory does not exist,
+no action is taken.
+
+=cut
+
 sub clean {
     my ($pkg) = @_;
 
@@ -167,6 +210,14 @@
 }
 
 
+=item build($)
+
+Build the package specified. Output will be put in the C<upload/> directory
+ready for uploading to the autobuilder, or installation locally for
+testing.
+
+=cut
+
 sub build {
     my ($pkg) = @_;
 
@@ -177,9 +228,28 @@
 #    $builder->clean();
 }
 
+
+=item show($)
+
+Show the information used to build the package given. This is sourced from
+the XML file describing the package.
+
+=cut
+
 sub show {
     my ($pkg) = @_;
 
     my $data = new MUD::Package(config => $config)->load( $pkg);
     print Dumper($data);
 }
+
+=back
+
+=head1 COPYRIGHT
+
+(c) Andrew Flegg 2007 - 2008. Released under the Artistic Licence:
+L<http://www.opensource.org/licenses/artistic-license-2.0.php>
+
+=head1 SEE ALSO
+
+L<http://mud-builder.garage.maemo.org/>

Modified: trunk/packages/vim.xml
===================================================================
--- trunk/packages/vim.xml	2008-07-10 12:24:18 UTC (rev 238)
+++ trunk/packages/vim.xml	2008-07-12 19:45:34 UTC (rev 239)
@@ -1,5 +1,9 @@
 <?xml version="1.0"?>
 <package>
+  <!--
+    - Icons used in vim package, (c) Matthew Webb 2004:
+    -              http://www.cs.princeton.edu/~mtwebb/vim_icon/vim_icons.html
+    -->
   <fetch type="tarball">
     <url>ftp://ftp.vim.org/pub/vim/unix/vim-7.0.tar.bz2</url>
   </fetch>



More information about the Mud-builder-commits mailing list