[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