debian/0000755000000000000000000000000012244421125007163 5ustar debian/watch0000644000000000000000000000021612244420317010215 0ustar version=3 opts=dversionmangle=s/\+(repack|dfsg|ds|deb)\d*$// \ https://github.com/oster/PLM/tags .*/v?(\d.*)\.(?:tgz|tbz2|tar\.(?:gz|bz2|xz)) debian/gbp.conf0000644000000000000000000000010612244420317010601 0ustar [DEFAULT] upstream-branch=debian-upstream debian-branch=debian-debian debian/javabuild0000644000000000000000000000001512244420317011045 0ustar plm.jar src/ debian/plm.manifest0000644000000000000000000000034712244420317011511 0ustar usr/share/java/plm.jar: Main-Class: plm.core.ui.ProgrammersLearningMachine Class-Path: miglayout.jar jsyntaxpane.jar gettext-commons.jar json_simple.jar httpclient.jar httpcore.jar jython.jar scala-compiler.jar scala-library.jar debian/plm.menu0000644000000000000000000000014412244420317010642 0ustar ?package(plm):needs="X11" section="Applications/Education" \ title="PLM" command="/usr/bin/plm" debian/control0000644000000000000000000000371412244420317010575 0ustar Source: plm Section: java Priority: extra Maintainer: Martin Quinson Build-Depends: debhelper (>> 8), javahelper (>= 0.32), ant, quilt Build-Depends-Indep: openjdk-7-jdk, libmiglayout-java, libjsyntaxpane-java, junit4, libgettext-commons-java, libjson-simple-java, libhttpclient-java, libhttpmime-java, jython, libgettext-ant-tasks-java, imagemagick #, scala Standards-Version: 3.9.4 Vcs-Git: git://git.debian.org/pkg-java/plm.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-java/plm.git Homepage: http://www.loria.fr/~quinson/Teaching/PLM/ Package: plm Architecture: all Depends: java-wrappers, ${java:Depends}, ${misc:Depends} Recommends: ${java:Recommends} Description: Programming exerciser in Java, Python, Scala and others The Programmer's Learning Machine (PLM) is a free cross-platform programming exerciser. It lets you explore various concepts of programming through over 160 interactive exercises, that you can solve in either Java, Python or Scala. . The PLM interface and content is througfully translated to English and French; we hope that other translations will be contributed in the future. . The following concepts are included in this package: . - Welcome: teach basics of programming to absolute beginners - Maze: classical maze escaping algorithms for intermediate - Sort: classical sorting algorithms for intermediate. One introduction lesson presents the basics of the sorting algorithms while two additional lessons apply them in more recreative settings. - Recursion: classical logo algorithms for intermediate - Turtle Art: explore a few classical LOGO figures - LightBot: little programmer's brain teaser for intermediate and advanced . Other lessons are planned to explore new concepts, such as the backtracking, dynamic programming, object-oriented programming or the standard libraries of python and Java. Other programming languages (such as Ruby or JavaScript) may be added in the future.debian/plm.sh0000755000000000000000000000210312244420317010310 0ustar #!/bin/sh # # . /usr/lib/java-wrappers/java-wrappers.sh # Jython compiles java bytecode into python bytecode in advance; it needs a user-writable directory to cache it export JYTHON_OPTS="${JYTHON_OPTS} -Dpython.cachedir=${HOME}/.jython_cachedir" # Detect and warn about a possible misconfiguration if [ -n "$JAVA_HOME" ] && [ "x$JAVA_HOME" != x. ] ; then echo "Your JAVA_HOME is set to $JAVA_HOME. Please make sure that this points to a Java7 runtime" fi if [ -n "$JAVA_CMD" ] && [ "x$JAVA_CMD" != x. ] ; then echo "Your JAVA_CMD is set to $JAVA_CMD. Please make sure that this points to a Java7 runtime" fi # We depend on the openjdk runtime find_java_runtime openjdk7 # Use jython if found (this does not work yet, as we build-dep on jython: jh_build adds it to the depends) #if locate_jar jython; then # find_jars jython #fi # For some reason, some people need that jar to be manually loaded find_jars commons-logging # http stuff find_jars httpmime httpcore httpclient # We obviously need our own library find_jars plm run_java plm.core.ui.ProgrammersLearningMachine "$@" debian/patches/0000755000000000000000000000000012244420317010614 5ustar debian/patches/series0000644000000000000000000000004512244420317012030 0ustar system-ant-tasks no-twitter no-scala debian/patches/system-ant-tasks0000644000000000000000000000137712244420317013776 0ustar --- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: b/build.xml =================================================================== --- a/build.xml +++ b/build.xml @@ -163,7 +163,7 @@ - + debian/patches/no-scala0000644000000000000000000002265412244420317012245 0ustar --- src/plm/core/CompilerScala.java | 143 ---------------------------------- src/plm/core/model/Game.java | 2 src/plm/core/ui/PlmHtmlEditorKit.java | 16 ++- 3 files changed, 13 insertions(+), 148 deletions(-) Index: b/src/plm/core/CompilerScala.java =================================================================== --- a/src/plm/core/CompilerScala.java +++ b/src/plm/core/CompilerScala.java @@ -9,18 +9,6 @@ import java.util.Vector; import plm.core.model.Game; -import scala.Option; -import scala.collection.JavaConverters; -import scala.reflect.internal.util.BatchSourceFile; -import scala.reflect.internal.util.Position; -import scala.reflect.internal.util.SourceFile; -import scala.reflect.io.VirtualDirectory; -import scala.reflect.io.VirtualFile; -import scala.tools.nsc.Global; -import scala.tools.nsc.Global.Run; -import scala.tools.nsc.Settings; -import scala.tools.nsc.interpreter.AbstractFileClassLoader; -import scala.tools.nsc.reporters.AbstractReporter; public class CompilerScala { @@ -31,143 +19,16 @@ return instance; } - private PLMReporter reporter; - private Settings settings; - private Map> cache = new HashMap>(); - private Global global; - private VirtualDirectory target; - private ClassLoader classLoader = new AbstractFileClassLoader(target, this.getClass().getClassLoader()); - private CompilerScala() { - super(); - settings = new Settings(); - settings.nowarnings().tryToSetFromPropertyValue("true"); // warnings seem to be exceptions, and we don't want them to mess with us - - Option noAncestor = scala.Option$.MODULE$.apply(null); - target = new VirtualDirectory("(memory)", noAncestor); - settings.outputDirs().setSingleOutput(target); - - settings.usejavacp().tryToSetFromPropertyValue("true"); - //settings.usemanifestcp().tryToSetFromPropertyValue("true"); - reporter = new PLMReporter(settings); - global = new Global(settings,reporter); + /* Scala is too ancient in Debian (need 2.10), so kill that all */ } public void reset() { - reporter.reset(); - reporter.setOffset(0); - target.clear(); - cache = new HashMap>(); - classLoader = new AbstractFileClassLoader(target, this.getClass().getClassLoader()); } public void compile(String name,String content,int offset) throws PLMCompilerException { - - Run compiler = global.new Run(); - List sources = new LinkedList(); - - sources.add(new BatchSourceFile(new VirtualFile(name) , content.toCharArray())); - reporter.setOffset(offset); - - compiler.compileSources(JavaConverters.asScalaBufferConverter(sources).asScala().toList()); - - if (Game.getInstance().isDebugEnabled() && reporter.hasErrors()) - System.out.println("Here is the scala source code of "+name+" (offset:"+offset+"): "+content); - reporter.throwExceptionOnNeed(); } public Class findClass(String className) { - synchronized (this) { - if (!cache.containsKey(className)) { - Class res; - try { - res = classLoader.loadClass(className); - } catch (ClassNotFoundException e) { - res = null; - } - cache.put(className, res); - } - - return cache.get(className); - } - } - - class PLMReporter extends AbstractReporter { - final static int INFO = 0; - final static int WARNING = 1; - final static int ERROR = 2; - int offset=0; - Vector messages = new Vector(); - Settings settings; - - public PLMReporter(Settings s) { - settings = s; - } - public void setOffset(int _offset) { - this.offset = _offset; - } - @Override - public Settings settings() { - return settings; - } - @Override - public void displayPrompt() { - /* Don't do that, pal. */ - } - @Override - public void display(Position pos, String message, Severity _severity) { - String severityName = _severity.toString(); - String label = ""; - int severity = -1; - if (severityName.equals("INFO") || severityName.equals("scala.tools.nsc.reporters.Reporter$Severity@0")) - severity = INFO; - if (severityName.equals("WARNING") || severityName.equals("scala.tools.nsc.reporters.Reporter$Severity@1")) { - severity = WARNING; - label= "warning: "; - } - if (severityName.equals("ERROR") || severityName.equals("scala.tools.nsc.reporters.Reporter$Severity@2")) { - severity = ERROR; - label = "error: "; - } - if (severity == -1) - throw new RuntimeException("Got an unknown severity: "+severityName+". Please adapt the PLM to this new version of scala (or whatever)."); - if (severity == INFO && !Game.getInstance().isDebugEnabled()) - return; - - int lineNum = -1; - try { - lineNum = pos.line() - offset; - } catch (Throwable t) { - // That's fine if the line number is not defined. - } - - String name = pos.source().path(); - int lastDot = name.lastIndexOf('.'); - if (lastDot != -1) - name = name.substring(lastDot+1); - String msg = name+(lineNum == -1? "": ":"+lineNum) +": "+label+message; - - // Append the line content and a position marker, if possible - if (pos != null && pos.isDefined()) { - msg += "\n"+pos.inUltimateSource(pos.source()).lineContent()+"\n"; - for (int i=0;i$1"); } - for (ProgrammingLanguage lang : Game.getProgrammingLanguages()) { + for (ProgrammingLanguage lang : theProgLangs) { String l = lang.getLang().toLowerCase(); - for (ProgrammingLanguage lang2 : Game.getProgrammingLanguages()) { + for (ProgrammingLanguage lang2 : theProgLangs) { if (!lang2.equals(lang)) { String l2 = lang2.getLang().toLowerCase(); res = res.replaceAll("(?s)\\[!"+l+"\\|"+l2+"\\](.*?)\\[/!\\]", @@ -98,7 +102,7 @@ // Process any block with one language first so that they can be nested in blocks with more than one language. res = res.replaceAll( "(?s)\\[!"+cl+"\\](.*?)\\[/!\\]","$1"); //System.out.println("Keep "+"(?s)\\[!"+cl+"\\](.*?)\\[/!\\]"); - for (ProgrammingLanguage lang : Game.getProgrammingLanguages()) { + for (ProgrammingLanguage lang : theProgLangs) { if (!lang.equals(currLang)) { String l = lang.getLang().toLowerCase(); @@ -106,7 +110,7 @@ //System.out.println("Kill "+"(?s)\\[!"+l+"\\](.*?)\\[/!\\]"); } } - for (ProgrammingLanguage lang : Game.getProgrammingLanguages()) { + for (ProgrammingLanguage lang : theProgLangs) { if (!lang.equals(currLang)) { String l = lang.getLang().toLowerCase(); @@ -115,7 +119,7 @@ res = res.replaceAll( "(?s)\\[!"+cl+"\\|"+l +"\\](.*?)\\[/!\\]", "$1"); //System.out.println("Keep "+"(?s)\\[!"+cl+"\\|"+l +"\\](.*?)\\[/!\\]"); - for (ProgrammingLanguage lang2 : Game.getProgrammingLanguages()) { + for (ProgrammingLanguage lang2 : theProgLangs) { if (!lang2.equals(currLang) && !lang2.equals(lang)) { String l2 = lang2.getLang().toLowerCase(); res = res.replaceAll( "(?s)\\[!"+l+"\\|"+l2+"\\](.*?)\\[/!\\]", ""); debian/patches/no-twitter0000644000000000000000000000623612244420317012662 0ustar --- src/plm/core/model/Game.java | 4 +- src/plm/core/model/tracking/TwitterSpy.java | 55 +--------------------------- 2 files changed, 4 insertions(+), 55 deletions(-) Index: b/src/plm/core/model/tracking/TwitterSpy.java =================================================================== --- a/src/plm/core/model/tracking/TwitterSpy.java +++ b/src/plm/core/model/tracking/TwitterSpy.java @@ -2,58 +2,7 @@ import plm.core.model.Game; import plm.core.model.lesson.Exercise; -import twitter4j.Status; -import twitter4j.Twitter; -import twitter4j.TwitterFactory; -import twitter4j.conf.ConfigurationBuilder; - -public class TwitterSpy implements ProgressSpyListener { - private String username; - private Twitter twitter; - - public TwitterSpy() { - username = System.getenv("USER"); - if (username == null) - username = System.getenv("USERNAME"); - if (username == null) - username = "John Doe"; - - ConfigurationBuilder cb = new ConfigurationBuilder(); - cb.setDebugEnabled(true) - .setOAuthConsumerKey(Game.getProperty("plm.oauth.consumerKey")) - .setOAuthConsumerSecret(Game.getProperty("plm.oauth.consumerSecret")) - .setOAuthAccessToken(Game.getProperty("plm.oauth.accessToken")) - .setOAuthAccessTokenSecret(Game.getProperty("plm.oauth.tokenSecret")); - TwitterFactory tf = new TwitterFactory(cb.build()); - twitter = tf.getInstance(); - } - - @Override - public void executed(Exercise exo) { - if (Game.getInstance().studentWork.getPassed(exo, exo.lastResult.language)) { - try { - Status status = twitter.updateStatus(username+" solved "+exo.getName()+" in "+exo.lastResult.language+"!"); - if (Game.getInstance().isDebugEnabled()) - System.out.println("Twitted! Status: "+status.toString()); - } catch (Exception e) { - // silently ignore network unavailability ;) - if (Game.getInstance().isDebugEnabled()) - e.printStackTrace(); - } - } - } - - @Override - public void switched(Exercise exo) { /* i don't care, i'm a viking */ } - - @Override - public void heartbeat() {} - - @Override - public String join() { return ""; } - - @Override - public void leave() { - } +public class TwitterSpy { + /* twitter4j is not packaged in Debian; remove this */ } Index: b/src/plm/core/model/Game.java =================================================================== --- a/src/plm/core/model/Game.java +++ b/src/plm/core/model/Game.java @@ -184,8 +184,8 @@ addProgressSpyListener(new LocalFileSpy(SAVE_DIR)); if (getProperty(PROP_PROGRESS_TWITTER, "true",true).equalsIgnoreCase("true")) { - System.err.println(i18n.tr("Your progress will be posted to https://twitter.com/jlmlovers This can be turned off through the property {0}",Game.PROP_PROGRESS_TWITTER)); - addProgressSpyListener(new TwitterSpy()); + System.err.println(i18n.tr("Twitter logging is not available in Debian, sorry.",Game.PROP_PROGRESS_TWITTER)); +// addProgressSpyListener(new TwitterSpy()); } else { System.err.println(i18n.tr("Your progress will NOT be posted to twitter, as requested by the property {0}",Game.PROP_PROGRESS_TWITTER)); } debian/plm.10000644000000000000000000000531112244420317010037 0ustar .TH PLM 1 "June 16, 2012" PLM "PLM - Programmer's Learning Machine" .SH NAME .B PLM \- Cross-platform Programming Exerciser .SH SYNOPSIS .B "plm " .SH DESCRIPTION The \fBProgrammer's Learning Machine (PLM)\fP is a free cross-platform programming exerciser. It lets you explore various concepts of programming through interactive exercises, that you can solve in either Java, python or scala. The interface and the whole content is througfully translated to English and French. The following lessons are included in this package: .TP 13 .B . Welcome: Teaches the basics of programming to absolute beginners .TP 13 .B . Maze: Presentes some classical maze escaping algorithms for intermediate .TP 13 .B . Sort: Focuses on the classical sorting algorithms for intermediate. One introduction lesson presents the basics of the sorting algorithms while two additional lessons apply them in more recreative settings. .TP 13 .B . Recursion: Dives into classical logo algorithms for intermediate .TP 13 .B . Turtle Art: Presents a few classical LOGO figures; your imagination will certainly explore this world further. .TP 13 .B . LightBot: Constitutes a little programmer's brain teaser for intermediate and advanced .PP This program is released under the GNU General Public License, while the content is released under the CC-BY-SA version. It requires Java version 1.6 or higher, either from OpenJDK or from another vendor. .SH CONFIGURATION \fBPLM\fP does not accept any command-line switch or options; every elements are configured either through the user-defined property file, or within the graphical interface directly. .SH FUTURE EVOLUTIONS Other lessons are planned to explore new concepts, such as the backtracking, dynamic programming, object-oriented programming or the standard libraries of python and Java. Other programming languages (such as ruby or JavaScript) may be added in the future. We hope that the translation of the interface and content to other human languages will be contributed by the community in the future. .SH FILES .TP ~/.plm/plm.properties User-configured properties. .TP ~/.plm/*.zip Save files for each lesson. This contains the text that you provided to solve the exercises. You can copy them over to another machine to continue your work. .SH "LICENSE" The PLM program is distributed under the GNU GPL version 3 or later (GPLv3+) license, available from http://gnu.org/licenses/gpl.html The content is distributed under the CC-BY-SA license. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. .SH "SEE ALSO" .BR java (1) .SH BUGS See https://github.com/oster/JLM/issues?sort=created&state=open to report bugs and other feedback. debian/compat0000644000000000000000000000000212244420317010363 0ustar 8 debian/plm.jlibs0000644000000000000000000000000712244420317010777 0ustar plm.jardebian/plm.desktop0000644000000000000000000000060112244420317011345 0ustar [Desktop Entry] Name=PLM GenericName=Programmer's Learning Machine Comment=Learn programming interactively Comment[fr]=Apprendre la programmation interactivement Exec=plm %U Icon=/usr/share/icons/hicolor/22x22/apps/plm.png Terminal=false Type=Application Categories=Development;TextEditor;Education; StartupNotify=true MimeType=text/plain; Keywords=Code;Programming;Java;Python;Scala; debian/rules0000755000000000000000000000570112244420317010250 0ustar #!/usr/bin/make -f DESTDIR := $(CURDIR)/debian/plm ICONS := $(DESTDIR)/usr/share/icons/hicolor export JAVA_HOME=/usr/lib/jvm/default-java depspath= /usr/share/java/miglayout.jar:/usr/share/java/jsyntaxpane.jar:/usr/share/java/gettext-commons.jar:/usr/share/java/junit4.jar scalapath=. #scalapath=/usr/share/java/scala-compiler.jar:/usr/share/java/scala-library.jar langpath=/usr/share/java/json_simple.jar:/usr/share/java/jython.jar:. httppath=/usr/share/java/httpclient.jar:/usr/share/java/httpcore.jar:/usr/share/java/commons-logging.jar:/usr/share/java/httpmime.jar export CLASSPATH=$(depspath):$(langpath):$(httppath):$(scalapath):. %: dh $@ --with javahelper --with quilt override_jh_build: # Copy our resource within the wannabe jar file mkdir -p debian/_jh_build.plm cp -r lib/resources debian/_jh_build.plm # Copy our image files (but prune the svg files) cp -r img debian/_jh_build.plm find debian/_jh_build.plm -name "*.svg" -print0 | xargs -0 rm # Copy other mandated files in place jarctn=`find src -name "*.py"; \ find src -name "*.java"; \ find src -name "*.scala"; \ find src -name "*.html"; \ find src -name "*.png"; \ find src -name "*.map"`; \ for file in $$jarctn ; do\ whereto=`echo $$file|sed 's|^src/||'` ; \ install -D -m 644 $$file debian/_jh_build.plm/$$whereto; \ done # Generate the translation files ant i18n-generate-jar cd debian/_jh_build.plm && jar xf ../../lib/plm-messages.jar org # Finally, ask the scripts to compile our stuff, too jh_build --no-javadoc override_dh_auto_build: ant -f build.xml clean override_dh_auto_install: dh_install # Icons for i in 16 22 48; do \ mkdir -p $(ICONS)/$${i}x$${i}/apps; \ convert img/logo.png -colorspace RGB \ -resize $${i}x$${i} -colorspace sRGB \ $(ICONS)/$${i}x$${i}/apps/plm.png; \ done install -d -m 755 $(DESTDIR)/usr/share/pixmaps convert img/logo.png -colorspace RGB \ -resize 32x32 -colorspace sRGB \ $(DESTDIR)/usr/share/pixmaps/plm.xpm # desktop install -D -m 644 debian/plm.desktop $(DESTDIR)/usr/share/applications/plm.desktop # wrapper script install -d -m 755 $(DESTDIR)/usr/bin cp debian/plm.sh $(DESTDIR)/usr/bin/plm chmod 755 $(DESTDIR)/usr/bin/plm version=$(shell uscan --report-status | head -2 | tail -1 | cut -d' ' -f7 | cut -d, -f1) tmpdir:=$(shell mktemp -d) wrkdir:=$(shell pwd) get-orig-source: rm -f ${wrkdir}/../plm_${version}+repack.orig.tar.gz rm -f ${wrkdir}/../plm_${version}.orig.tar.gz uscan --verbose --force-download && cp ../${version}.tar.gz ${tmpdir} || true set +ex; cd ${tmpdir} && \ tar xf ${version}.tar.gz && rm -f ${version}.tar.gz && \ cd PLM-${version} && find lib -name '*.jar' | xargs rm && \ tar cf ${wrkdir}/../plm_${version}+repack.orig.tar * ; \ gzip --best ${wrkdir}/../plm_${version}+repack.orig.tar rm -rf ${tmpdir} @echo "successfully created new tarball: ${wrkdir}/../plm_${version}+repack.orig.tar.gz" debian/changelog0000644000000000000000000000557312244420317011051 0ustar plm (2.3+repack-1) unstable; urgency=low * New upstream release. * add missing build-deps on libgettext-ant-tasks-java, imagemagick. Thanks to Andreas Moog for noticing (closes: #730312). -- Martin Quinson Sun, 24 Nov 2013 16:51:07 +0100 plm (2.2.7+repack-2) unstable; urgency=low * Change priority to extra since we depend on an extra package. Cf. policy, section 2.5. * Add a missing Depends: java-wrappers -- Martin Quinson Sun, 06 Oct 2013 13:38:06 +0200 plm (2.2.7+repack-1) unstable; urgency=low * New upstream release. -- Martin Quinson Tue, 01 Oct 2013 16:35:18 +0200 plm (2.2.3+repack-1) unstable; urgency=low * New upstream release. Insane amount of bug fixes and polishing after extensive tests of this year's students and some colleagues. This "report feedback" feature is a beauty to crowdsource the polishing. * Refresh our patches. * Add build-dep on libhttpmime-java, that got added upstream. -- Martin Quinson Thu, 12 Sep 2013 22:26:05 +0200 plm (2.2.1+repack-1) unstable; urgency=low * New upstream release. - add a creative mode that is not checked against the answer - many bug fixes * Depend on openjdk7 as openjdk6 will soon be removed (Closes: #722149) * Correctly specify that we need openjdk7 to the java wappers (Closes: #722128) * d/control: Add Vcs-* fields * d/plm.sh: manually load commons-logging as some people needs it to not get a ClassNotFound exception when using httpclient -- Martin Quinson Sun, 08 Sep 2013 23:29:17 +0200 plm (2.2+repack-1) unstable; urgency=low * New upstream release: - the software was renamed from JLM to PLM. - Scala can now be used to solve the exercises - Two new lessons: recreative applications of sorting, - New lesson: Turtle Art (draw LOGO figures) * Update our packaging to the new upstream release - drop d/p/review_french: integrated upstream - drop d/p/no-xmpp: upstream dropped XMPP too - d/p/no-scala: We need scala 2.10 that is not in debian yet - update the other patches -- Martin Quinson Wed, 04 Sep 2013 15:59:51 +0200 jlm (2.0+repack-1) unstable; urgency=low * New upstream release. - Refresh our patches. * d/p/system-ant-tasks: use system jarfiles for ant tasks definitions * d/p/review-french: integrate a post-release upstream patch that greatly improve the french translations * d/watch: Forgot this file previously. * d/rules::get-orig-source: prune our dependencies.jar from archive. We don't use them in Debian anyway, so let's save space. -- Martin Quinson Mon, 12 Aug 2013 21:30:09 +0200 jlm (1.98-1) unstable; urgency=low * Initial release. (Closes: #622324) -- Martin Quinson Fri, 14 Jun 2013 00:32:27 +0200 debian/plm.manpages0000644000000000000000000000001512244420317011466 0ustar debian/plm.1 debian/copyright0000644000000000000000000000621412244420317011123 0ustar Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=174 Upstream-name: plm Upstream-contact: Martin Quinson and Gerald Oster (first.last@loria.fr) Source: https://github.com/oster/JLM Files: * Copyright: Copyright 2008-2013 the PLM team License: GPLv3+ On Debian systems, the complete text of the GPL-3 can be found in /usr/share/common-licenses/GPL-3. Files: src/lessons/* Copyright: Copyright 2008-2013 the PLM team License: CC-BY-SA-3.0 Files: img/BuggleQuestBack.png img/BuggleQuestBETA.png img/log.png img/edit_leftwall.png img/edit_baggle.png img/edit_topwall.png img/lightbot_f1.png img/lightbot_f2.png img/lightbot_noop.png img/world_arrays.svg img/world_bat.svg img/world_buggle.svg img/world_hanoi.png img/world_sorting.png img/btn-reset.png plm/universe/bugglequest/ui/egg.png plm/universe/bugglequest/ui/rabbit.png img/btn-demo.png img/btn-switch-exo.png img/btn-debug-step.png img/btn-debug.png img/btn-start.png img/btn-stop.png img/lightbot_light.png Copyright: See the upstream COPYING file for more info License: CC-BY-SA-3.0 Files: img/btn-alert-off.png img/btn-alert-on.png img/console_delete.png img/console_add.png img/console_refresh.png img/edit_colors.png img/edit_text.png img/lightbot_forward.png img/lightbot_left.png img/lightbot_right.png img/lightbot_jump.png img/lightbot_light.png img/menu-locale.png Copyright: Copyright (c) 2003-2004 David Vignoni. License: LGPL On Debian systems, the complete text of the LGPL can be found in /usr/share/common-licenses/LGPL. Files: img/busyicon/* img/world_turtle.png Copyright: unknown License: GPLv2 On Debian systems, the complete text of the GPL-2 can be found in /usr/share/common-licenses/GPL-2. Files: img/focus_* img/trophy.png img/world_baseball.png Copyright: unknown (retrieved from http://openclipart.org/, see upstream COPYING for details) License: CC0 Public Domain Files: debian/* Copyright: Copyright 2013 (C) Martin Quinson License: GPLv3+ On Debian systems, the complete text of the GPL-3 can be found in /usr/share/common-licenses/GPL-3. License: CC-BY-SA-3.0 You are free to copy, distribute and transmit the work, to adapt the work and to make commercial use of the work, under the following conditions: . You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). . If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. . This is a summary. The legal code can be retrieved at http://creativecommons.org/licenses/by-sa/3.0/ License: CC0 Public Domain The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. . You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. . This is a summary. The legal code can be retrieved at http://creativecommons.org/publicdomain/zero/1.0/ debian/README.source0000644000000000000000000000114212244420317011342 0ustar Git layout ========== This package does not exactly follows the classical git layout, as advised by git-buildpackage. By default gbp uses one branch to keep the Debian packaging called "master" and a branch to keep the upstream packaging called "upstream". I don't quite like using "master" as a branch for the packaging, because it prevents putting both the packaging git and the upstream git in the same repo. Doing that is maybe hairly, but that will work thanks to git branch handling. So, I put my packaging in a branch called "debian-debian" and my upstream stuff in a branch called "debian-upstream"debian/source/0000755000000000000000000000000012244420317010465 5ustar debian/source/format0000644000000000000000000000001412244420317011673 0ustar 3.0 (quilt)