[Python-modules-commits] r17751 - in packages/sphinx/trunk/debian (16 files)
jwilk at users.alioth.debian.org
jwilk at users.alioth.debian.org
Fri Jul 8 19:39:45 UTC 2011
Date: Friday, July 8, 2011 @ 19:39:43
Author: jwilk
Revision: 17751
Move all JavaScript code into a separate package, libjs-sphinxdoc.
Added:
packages/sphinx/trunk/debian/libjs-sphinxdoc.dirs
packages/sphinx/trunk/debian/libjs-sphinxdoc.links
packages/sphinx/trunk/debian/python-sphinx.dirs
(from rev 17611, packages/sphinx/trunk/debian/dirs)
packages/sphinx/trunk/debian/python-sphinx.doc-base
(from rev 17611, packages/sphinx/trunk/debian/doc-base)
packages/sphinx/trunk/debian/python-sphinx.docs
(from rev 17612, packages/sphinx/trunk/debian/docs)
packages/sphinx/trunk/debian/python-sphinx.manpages
(from rev 17611, packages/sphinx/trunk/debian/manpages)
Modified:
packages/sphinx/trunk/debian/changelog
packages/sphinx/trunk/debian/clean
packages/sphinx/trunk/debian/control
packages/sphinx/trunk/debian/dh_sphinxdoc
packages/sphinx/trunk/debian/python-sphinx.links
packages/sphinx/trunk/debian/rules
Deleted:
packages/sphinx/trunk/debian/dirs
packages/sphinx/trunk/debian/doc-base
packages/sphinx/trunk/debian/docs
packages/sphinx/trunk/debian/manpages
Modified: packages/sphinx/trunk/debian/changelog
===================================================================
--- packages/sphinx/trunk/debian/changelog 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/changelog 2011-07-08 19:39:43 UTC (rev 17751)
@@ -19,11 +19,12 @@
documentation in Debian packages.
+ Update debian/rules, debian/control and debian/*.links to use
dh_sphinxdoc.
+ * Move all JavaScript code into a separate package, libjs-sphinxdoc.
* Fix test_build_latex to not fail in a directory with special characters.
* Use debian/clean rather than listing files to clean directly in
debian/rules.
- -- Jakub Wilk <jwilk at debian.org> Thu, 07 Jul 2011 21:13:50 +0200
+ -- Jakub Wilk <jwilk at debian.org> Fri, 08 Jul 2011 21:38:20 +0200
sphinx (1.0.7-5) unstable; urgency=low
Modified: packages/sphinx/trunk/debian/clean
===================================================================
--- packages/sphinx/trunk/debian/clean 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/clean 2011-07-08 19:39:43 UTC (rev 17751)
@@ -1,5 +1,5 @@
*.pyc
*.pyo
sphinx/pycode/*.pickle
-sphinx/themes/basic/static/jquery.js underscore.js
-sphinx/themes/basic/static/undersocre.js
+sphinx/themes/basic/static/jquery.js
+sphinx/themes/basic/static/underscore.js
Modified: packages/sphinx/trunk/debian/control
===================================================================
--- packages/sphinx/trunk/debian/control 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/control 2011-07-08 19:39:43 UTC (rev 17751)
@@ -16,7 +16,7 @@
Package: python-sphinx
Architecture: all
Depends: ${misc:Depends}, ${python:Depends}, python-docutils (>= 0.5), python-pygments (>= 0.8), python-jinja2 (>= 2.2),
- ${sphinxdoc:Depends}
+ ${sphinxdoc:Depends}, libjs-sphinxdoc (= ${source:Version})
Recommends: python (>= 2.6) | python-simplejson, python-imaging
Suggests: jsmath
Description: tool for producing documentation for Python projects
@@ -31,3 +31,13 @@
* Extensibility. Existing extensions:
- automatic testing of code snippets,
- including doctrings from Python modules.
+
+Package: libjs-sphinxdoc
+Section: web
+Architecture: all
+Depends: ${misc:Depends}, libjs-jquery (>= 1.4), libjs-underscore
+Description: JavaScript support for Sphinx documentation
+ Sphinx is a tool for producing documentation for Python projects, using
+ reStructuredText as markup language.
+ .
+ This package provides JavaScript code for documentation generated by Sphinx.
Modified: packages/sphinx/trunk/debian/dh_sphinxdoc
===================================================================
--- packages/sphinx/trunk/debian/dh_sphinxdoc 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/dh_sphinxdoc 2011-07-08 19:39:43 UTC (rev 17751)
@@ -3,14 +3,52 @@
use strict;
use warnings;
+use Digest::MD5;
use File::Find;
use Debian::Debhelper::Dh_Lib;
-my @packaged_js = (
- ['jquery.js', '/usr/share/javascript/jquery/jquery.js', 'libjs-jquery (>= 1.4)'],
- ['underscore.js', '/usr/share/javascript/underscore/underscore.js', 'libjs-underscore'],
-);
+my %packaged_js = ();
+sub md5($)
+{
+ my ($filename) = @_;
+ my $md5 = Digest::MD5->new;
+ open(F, '<', $filename) or error("cannot open $filename");
+ $md5->addfile(*F);
+ close(F);
+ return $md5->digest;
+}
+
+sub load_packaged_js()
+{
+ my $root = tmpdir('libjs-sphinxdoc');
+ $root = '' unless -d $root;
+ find({
+ wanted => sub {
+ my $js = $_;
+ my ($version, $name) = m{([0-9.]+)/(\w+[.]js)$} or return;
+ if (-l $js)
+ {
+ my $js_target = readlink($js);
+ if ($js_target =~ m{^/})
+ {
+ $js = $js_target;
+ }
+ else
+ {
+ $js =~ s{[^/]+$}{$js_target};
+ while ($js =~ s{[^./][^/]+/[.][.]/}{}) {};
+ }
+ }
+ $js =~ s{^\Q$root\E}{} unless -f $js;
+ my $md5 = md5($js);
+ $js =~ s{^\Q$root\E}{};
+ $packaged_js{$md5} = [$js, "libjs-sphinxdoc (>= $version)"];
+ },
+ no_chdir => 1
+ }, "$root/usr/share/javascript/sphinxdoc/");
+}
+
sub looks_like_sphinx_doc($)
{
my ($path) = @_;
@@ -39,42 +77,53 @@
my ($url_root) = $search =~ m{URL_ROOT:\s*'([^']*)'};
(@js and $loads_searchindex and defined $has_source and defined $url_root) or error("$searchfn doesn't look like Sphinx search page");
$url_root =~ m{^([a-z]+:/)?/} and error("URL_ROOT in $searchfn is not relative");
- my $static_root;
for my $js (@js)
{
- if ($js =~ m{/\Qsearchtools.js\E$})
- {
- open(F, '<', "$path/$js") or error("cannot open $path/$js");
- my $searchtools = <F>;
- close F;
- ($static_root) = $searchtools =~ m{\Qget(DOCUMENTATION_OPTIONS.URL_ROOT\E\s*[+]\s*'([^']+)/'};
- defined $static_root or error("$path/$js doesn't look like Sphinx code");
- $searchtools =~ m/"text"/ or error("$path/$js doesn't look like if it was built with up-to-date Sphinx");
- $static_root = "$url_root/$static_root"
- }
-f "$path/$js" or -l "$path/$js" or error("$path/$js is missing");
}
for my $page (split(/","/, $index))
{
-f "$path/$page.html" or error("$path/$page.html is missing");
- -f "$path$static_root/$page.txt" or error("$path$static_root/$page.txt is missing") if $has_source;
+ -f "$path/_sources/$page.txt" or error("$path/_sources/$page.txt is missing") if $has_source;
}
return @js;
}
+sub unknown_javascript($)
+{
+ my ($js) = @_;
+ my $message = "unknown JavaScript code: $js";
+ $js =~ s{.*/}{};
+ my $basic = grep { $_ eq $js } qw(searchtools.js doctools.js jquery.js underscore.js);
+ if ($basic)
+ {
+ error($message);
+ }
+ else
+ {
+ warning($message);
+ }
+}
+
sub fix_symlinks($@)
{
my @deps = ();
my ($path, @js) = @_;
for my $js (@js)
{
- for (@packaged_js)
+ next if -l "$path/$js" and readlink("$path/$js") =~ m{/sphinxdoc/};
+ -f "$path/$js" or unknown_javascript("$path/$js");
+ my $md5 = md5("$path/$js");
+ if (exists $packaged_js{$md5})
{
- my ($source, $target, $dependency) = @{$_};
- next unless $js =~ m{/\Q$source\E$};
+ my ($target, $dependency) = @{$packaged_js{$md5}};
doit('ln', '-sf', "$target", "$path/$js");
push @deps, $dependency;
}
+ else
+ {
+ unknown_javascript("$path/$js");
+ }
}
return @deps;
}
@@ -100,6 +149,8 @@
init();
+load_packaged_js();
+
my @paths = @ARGV;
@paths = (undef) unless @paths;
Deleted: packages/sphinx/trunk/debian/dirs
===================================================================
--- packages/sphinx/trunk/debian/dirs 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/dirs 2011-07-08 19:39:43 UTC (rev 17751)
@@ -1,3 +0,0 @@
-/usr/share/sphinx/locale
-/usr/share/sphinx/pycode
-/usr/share/sphinx/ext/autosummary
Deleted: packages/sphinx/trunk/debian/doc-base
===================================================================
--- packages/sphinx/trunk/debian/doc-base 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/doc-base 2011-07-08 19:39:43 UTC (rev 17751)
@@ -1,12 +0,0 @@
-Document: sphinx-manual
-Title: Sphinx documentation builder manual
-Author: Georg Brandl
-Abstract: Sphinx is a tool that translates a set of reStructuredText_ source
- files into various output formats, automatically producing cross-references,
- indices etc. It can also generate a LaTeX file that you can compile into a PDF
- version of the documents.
-Section: Text
-
-Format: HTML
-Index: /usr/share/doc/python-sphinx/html/index.html
-Files: /usr/share/doc/python-sphinx/html/*
Deleted: packages/sphinx/trunk/debian/docs
===================================================================
--- packages/sphinx/trunk/debian/docs 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/docs 2011-07-08 19:39:43 UTC (rev 17751)
@@ -1,3 +0,0 @@
-README
-AUTHORS
-build/html
Added: packages/sphinx/trunk/debian/libjs-sphinxdoc.dirs
===================================================================
--- packages/sphinx/trunk/debian/libjs-sphinxdoc.dirs (rev 0)
+++ packages/sphinx/trunk/debian/libjs-sphinxdoc.dirs 2011-07-08 19:39:43 UTC (rev 17751)
@@ -0,0 +1 @@
+/usr/share/javascript/sphinxdoc/1.0/
Added: packages/sphinx/trunk/debian/libjs-sphinxdoc.links
===================================================================
--- packages/sphinx/trunk/debian/libjs-sphinxdoc.links (rev 0)
+++ packages/sphinx/trunk/debian/libjs-sphinxdoc.links 2011-07-08 19:39:43 UTC (rev 17751)
@@ -0,0 +1,2 @@
+/usr/share/javascript/jquery/jquery.js /usr/share/javascript/sphinxdoc/1.0/jquery.js
+/usr/share/javascript/underscore/underscore.js /usr/share/javascript/sphinxdoc/1.0/underscore.js
Deleted: packages/sphinx/trunk/debian/manpages
===================================================================
--- packages/sphinx/trunk/debian/manpages 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/manpages 2011-07-08 19:39:43 UTC (rev 17751)
@@ -1,3 +0,0 @@
-debian/sphinx-build.1
-debian/sphinx-quickstart.1
-debian/sphinx-autogen.1
Copied: packages/sphinx/trunk/debian/python-sphinx.dirs (from rev 17611, packages/sphinx/trunk/debian/dirs)
===================================================================
--- packages/sphinx/trunk/debian/python-sphinx.dirs (rev 0)
+++ packages/sphinx/trunk/debian/python-sphinx.dirs 2011-07-08 19:39:43 UTC (rev 17751)
@@ -0,0 +1,3 @@
+/usr/share/sphinx/locale
+/usr/share/sphinx/pycode
+/usr/share/sphinx/ext/autosummary
Copied: packages/sphinx/trunk/debian/python-sphinx.doc-base (from rev 17611, packages/sphinx/trunk/debian/doc-base)
===================================================================
--- packages/sphinx/trunk/debian/python-sphinx.doc-base (rev 0)
+++ packages/sphinx/trunk/debian/python-sphinx.doc-base 2011-07-08 19:39:43 UTC (rev 17751)
@@ -0,0 +1,12 @@
+Document: sphinx-manual
+Title: Sphinx documentation builder manual
+Author: Georg Brandl
+Abstract: Sphinx is a tool that translates a set of reStructuredText_ source
+ files into various output formats, automatically producing cross-references,
+ indices etc. It can also generate a LaTeX file that you can compile into a PDF
+ version of the documents.
+Section: Text
+
+Format: HTML
+Index: /usr/share/doc/python-sphinx/html/index.html
+Files: /usr/share/doc/python-sphinx/html/*
Copied: packages/sphinx/trunk/debian/python-sphinx.docs (from rev 17612, packages/sphinx/trunk/debian/docs)
===================================================================
--- packages/sphinx/trunk/debian/python-sphinx.docs (rev 0)
+++ packages/sphinx/trunk/debian/python-sphinx.docs 2011-07-08 19:39:43 UTC (rev 17751)
@@ -0,0 +1,3 @@
+README
+AUTHORS
+build/html
Modified: packages/sphinx/trunk/debian/python-sphinx.links
===================================================================
--- packages/sphinx/trunk/debian/python-sphinx.links 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/python-sphinx.links 2011-07-08 19:39:43 UTC (rev 17751)
@@ -1,4 +1 @@
-/usr/share/javascript/jquery/jquery.js /usr/share/sphinx/themes/basic/static/jquery.js
-/usr/share/javascript/underscore/underscore.js /usr/share/sphinx/themes/basic/static/underscore.js
-
/usr/share/doc/python-sphinx/html/_sources/ /usr/share/doc/python-sphinx/rst
Copied: packages/sphinx/trunk/debian/python-sphinx.manpages (from rev 17611, packages/sphinx/trunk/debian/manpages)
===================================================================
--- packages/sphinx/trunk/debian/python-sphinx.manpages (rev 0)
+++ packages/sphinx/trunk/debian/python-sphinx.manpages 2011-07-08 19:39:43 UTC (rev 17751)
@@ -0,0 +1,3 @@
+debian/sphinx-build.1
+debian/sphinx-quickstart.1
+debian/sphinx-autogen.1
Modified: packages/sphinx/trunk/debian/rules
===================================================================
--- packages/sphinx/trunk/debian/rules 2011-07-08 07:57:28 UTC (rev 17750)
+++ packages/sphinx/trunk/debian/rules 2011-07-08 19:39:43 UTC (rev 17751)
@@ -11,6 +11,8 @@
PACKAGE_DIR=$(CURDIR)/debian/$(PACKAGE_NAME)
SITE_PACKAGES_DIR=$(PACKAGE_DIR)$(call py_libdir,$(shell pyversions -d))
+javascript_path = /usr/share/javascript/sphinxdoc/1.0/
+
build-arch:
build-indep build: build-stamp
@@ -66,6 +68,12 @@
install -m 755 $(CURDIR)/sphinx-build.py $(PACKAGE_DIR)/usr/bin/sphinx-build
install -m 755 $(CURDIR)/sphinx-quickstart.py $(PACKAGE_DIR)/usr/bin/sphinx-quickstart
install -m 755 $(CURDIR)/sphinx-autogen.py $(PACKAGE_DIR)/usr/bin/sphinx-autogen
+ # Move JavaScript code to libjs-sphinxdoc:
+ set -e; \
+ for js in $$(find $(PACKAGE_DIR)/usr/share/sphinx/themes/ -name '*.js'); do \
+ mv $$js debian/libjs-sphinxdoc/$(javascript_path); \
+ ln -sf "$(javascript_path)/$${js##*/}" $$js; \
+ done
binary-indep: build install
dh_testdir
More information about the Python-modules-commits
mailing list