debian/0000755000000000000000000000000012175725514007177 5ustar debian/libsikuli-script-java.manpages0000644000000000000000000000002012175725463015117 0ustar debian/sikuli.1 debian/sikuli-ide.10000644000000000000000000000220712175725463011324 0ustar .TH SIKULI-IDE "1" "November 2010" "sikuli-ide 0.10.2" .SH NAME sikuli-ide \- Integrated development environment for the sikuli visual script jython API .SH DESCRIPTION .BR "sikuli-ide" [\-\-args .IR arguments ] [\-h] [\-r .IR "sikuli\-file" ] [\-s] [\-t .IR "sikuli\-test\-case" ] .TP \fB\-\-args\fR \fIarguments\fR specify the arguments passed to Jython's sys.argv .TP \fB\-h\fR,\-\-help print this help message .TP \fB\-r\fR,\-\-run \fIsikuli\-file\fR run .sikuli or .skl file .TP \fB\-s\fR,\-\-stderr print runtime errors to stderr instead of popping up a message box .TP \fB\-t\fR,\-\-test \fIsikuli\-test\-case\fR run .sikuli as a unit test case with junit's text UI runner .SH "SEE ALSO" .IR sikuli (1) .SH AUTHOR Sikuli is a research project developed by User Interface Design Group, MIT Computer Science and Artificial Intelligence Laboratory (CSAIL) and supported in part by the National Science Foundation under award number IIS-0447800 and by Quanta Computer as part of the TParty project. .PP This manual page was written by Gilles Filippini with some help from help2man, for the Debian project (but may be used by others). debian/libsikuli-script-doc.links0000644000000000000000000000106512175725463014302 0ustar # Fix lintian warning embedded-javascript-library by depending on # libjs-sphinxdoc and forcing links to there usr/share/javascript/sphinxdoc/1.0/jquery.js usr/share/doc/libsikuli-script-doc/docs/html/_static/jquery.js usr/share/javascript/sphinxdoc/1.0/doctools.js usr/share/doc/libsikuli-script-doc/docs/html/_static/doctools.js usr/share/javascript/sphinxdoc/1.0/underscore.js usr/share/doc/libsikuli-script-doc/docs/html/_static/underscore.js usr/share/javascript/sphinxdoc/1.0/searchtools.js usr/share/doc/libsikuli-script-doc/docs/html/_static/searchtools.js debian/libsikuli-script-java.lintian-overrides0000644000000000000000000000044712175725463016777 0ustar # Keeping the dependency on a JRE since sikuli-script can be used as # a stand-alone app as well as a library. And splitting the package # doesn't worth the effort: the resulting package for the executable # would be ridiculously small. libsikuli-script-java binary: needless-dependency-on-jre debian/libsikuli-script-doc.doc-base.user-guide0000644000000000000000000000050712175725463016707 0ustar Document: libsikuli-script-doc-user-guide Title: Sikuli User Guide Author: Massachusetts Institute of Technology Abstract: Complete user guide for Sikuli Script Section: Programming/Jython Format: HTML Index: /usr/share/doc/libsikuli-script-doc/docs/html/index.html Files: /usr/share/doc/libsikuli-script-doc/docs/html/*.html debian/control0000644000000000000000000000621512175725463010611 0ustar Source: sikuli Section: java Priority: extra Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian Java maintainers Uploaders: Gilles Filippini Build-Depends: debhelper (>= 8.1.3~), javahelper, default-jdk (>= 1:1.6), cmake, jython, libopencv-dev, libcommons-cli-java, junit, libswing-layout-java, libswingx-java, libjxgrabkey-java, libjgoodies-forms-java, libjson-simple-java, libmac-widgets-java, zip, exuberant-ctags, libtesseract-dev, swig, default-jdk-doc, jython-doc, junit-doc, libswing-layout-java-doc, libswingx-java-doc, libjxgrabkey-doc, libjgoodies-forms-java-doc, libjson-simple-doc, libmac-widgets-doc, python-sphinx Standards-Version: 3.9.3 Homepage: http://sikuli.org Vcs-Git: git://anonscm.debian.org/collab-maint/sikuli.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/sikuli.git;a=summary Package: sikuli-ide Architecture: all Depends: ${java:Depends}, ${misc:Depends}, default-jre (>= 1:1.6) | java6-runtime, libsikuli-script-java, junit, libswingx-java, libswing-layout-java Description: IDE to develop sikuli scripts and use them as junit test cases Sikuli mixes image recognition into jython scripting to automate interactions with graphical user interfaces. . With Sikuli it is very easy to programmatically control a web page, a desktop application, or even an iphone application running in an emulator. . This package features Sikuli IDE, the integrated development environment for writing visual scripts with screenshots. . sikuli-ide also provides junit integration for running sikuli scripts as junit test cases. Package: libsikuli-script-java Architecture: all Depends: ${java:Depends}, ${misc:Depends}, default-jre (>= 1:1.6) | java6-runtime, libsikuli-script-jni, jython, wmctrl, xdotool, tesseract-ocr-eng Suggests: libsikuli-script-doc Description: Visual scripting API for jython Sikuli mixes image recognition into Jython scripting to automate interactions with graphical user interfaces. . With Sikuli it is very easy to programmatically control a web page, a desktop application, or even an iphone application running in an emulator. . This package features the jython sikuli visual scripting API and the sikuli script interpreter. Package: libsikuli-script-jni Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: Native libs for libsikuli-java Sikuli mixes image recognition into jython scripting to automate interactions with graphical user interfaces. . This package holds the architecture dependent jni backend of the java library. Package: libsikuli-script-doc Section: doc Architecture: all Depends: ${misc:Depends}, libjs-sphinxdoc Recommends: default-jdk-doc, jython-doc, junit-doc, libswing-layout-java-doc, libjxgrabkey-doc, libjson-simple-doc, libmac-widgets-doc Description: Documentation for libsikuli-script-java Sikuli mixes image recognition into jython scripting to automate interactions with graphical user interfaces. . This package contains the javadoc API documentation for the java library libsikuli-script-java. debian/sikuli-ide.install0000644000000000000000000000006212175725463012627 0ustar sikuli-ide/target/sikuli-ide.jar usr/share/sikuli debian/watch0000644000000000000000000000017212175725463010233 0ustar # No watch rule: the sikuli source code has to be extracted from launchpad.net # See debian/README.source for the details debian/README.Debian0000644000000000000000000000063512175725463011247 0ustar Sikuli for Debian ----------------- ----------------------------- /!\ Note for Sun Java 6 users ----------------------------- Sun Java 6 isn't aware of multiarch and will fail to load JNI libraries unless you set LD_LIBRARY_PATH to /usr/lib//jni. Use dpkg-architecture from the package dpkg-dev to find out the correct value for DEB_HOST_MULTIARCH: $ dpkg-architecture -qDEB_HOST_MULTIARCH debian/source/0000755000000000000000000000000012175725510010473 5ustar debian/source/format0000644000000000000000000000001412175725463011710 0ustar 3.0 (quilt) debian/sikuli.10000644000000000000000000000134012175725463010562 0ustar .TH SIKULI "1" "November 2010" "sikuli 0.10.2" .SH NAME sikuli \- run sikuli scripts .SH SYNOPSIS .B sikuli .IR sikuli-script-dir .SH DESCRIPTION .B sikuli runs the specified sikuli script. .PP The parameter is the base directory holding the script and the associated screenshots. .SH "SEE ALSO" .IR sikuli-ide (1) .SH AUTHOR Sikuli is a research project developed by User Interface Design Group, MIT Computer Science and Artificial Intelligence Laboratory (CSAIL) and supported in part by the National Science Foundation under award number IIS-0447800 and by Quanta Computer as part of the TParty project. .PP This manual page was written by Gilles Filippini , for the Debian project (but may be used by others). debian/libsikuli-script-jni.lintian-overrides0000644000000000000000000000070212175725463016630 0ustar # Keeping the dependency on a JRE since sikuli-script can be used as # a stand-alone app as well as a library. And splitting the package # doesn't worth the effort: the resulting package for the executable # would be ridiculously small. libsikuli-script-java binary: needless-dependency-on-jre # Spelling error from tesseract-ocr includes libsikuli-script-jni binary: spelling-error-in-binary usr/lib/i386-linux-gnu/jni/libVisionProxy.so Dont Don't debian/libsikuli-script-doc.install0000644000000000000000000000016312175725463014626 0ustar sikuli-script/doc/* usr/share/doc/libsikuli-script-doc/api docs/build/html usr/share/doc/libsikuli-script-doc/docs debian/rules0000755000000000000000000000340312175725463010262 0ustar #!/usr/bin/make -f %: dh $@ --with javahelper override_dh_auto_configure: sed "s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/" debian/libsikuli-script-jni.install.in > debian/libsikuli-script-jni.install # Time stamp to prevent re-generation touch ./sikuli-script/src/main/native/org_sikuli_script_VDictProxy.h override_dh_auto_clean: rm -fr \ sikuli-script/build \ sikuli-script/target/*.jar \ sikuli-script/target/classes \ sikuli-script/target/lib \ sikuli-script/target/jar \ sikuli-script/doc \ sikuli-ide/build \ sikuli-ide/target/*.jar \ sikuli-ide/target/classes \ sikuli-ide/target/linux/Sikuli-IDE/*.jar \ sikuli-ide/target/linux/Sikuli-IDE/classes \ sikuli-ide/target/linux/Sikuli-IDE/libs \ sikuli-ide/target/jar \ lib rm -f debian/libsikuli-script-jni.install override_dh_auto_build: mkdir sikuli-script/build sikuli-ide/build cd sikuli-script/build && cmake .. make -C sikuli-script/build cd sikuli-ide/build && cmake .. make -C sikuli-ide/build app javadoc -windowtitle "Javadoc of Sikuli Script" -sourcepath sikuli-script/src/main/java:sikuli-script/build -d sikuli-script/doc/ -classpath lib:/usr/share/java/jython.jar \ -link /usr/share/doc/default-jdk-doc/api \ -link /usr/share/doc/jython-doc/api-html \ -link /usr/share/doc/junit-doc/doc/api \ -link /usr/share/doc/libswing-layout-java-doc/api \ -link /usr/share/doc/libjxgrabkey-java/api \ org.sikuli.script make -C docs html override_jh_build: # no-op override_dh_auto_install: mkdir -p debian/libsikuli-script-java/usr/bin install sikuli-script/target/sikuli-script.sh debian/libsikuli-script-java/usr/bin/sikuli mkdir -p debian/sikuli-ide/usr/bin install sikuli-ide/target/linux/Sikuli-IDE/sikuli-ide.sh debian/sikuli-ide/usr/bin/sikuli-ide dh_install debian/libsikuli-script-java.jlibs0000644000000000000000000000002612175725463014435 0ustar lib/sikuli-script.jar debian/orig-tar.sh0000755000000000000000000000113312175725463011263 0ustar #!/bin/sh -e # called by uscan with '--upstream-version' SOURCE_NAME=sikuli VERSION=$2 DEBIAN_VERSION=$VERSION-dfsg1 UPSTREAM_SOURCE_DIR=${SOURCE_NAME}-$VERSION DEBIAN_SOURCE_DIR=${SOURCE_NAME}-$DEBIAN_VERSION TAR=../${SOURCE_NAME}_$DEBIAN_VERSION.orig.tar.bz2 # clean up the upstream tarball tar xf $3 # rename upstream source dir mv ${UPSTREAM_SOURCE_DIR} ${DEBIAN_SOURCE_DIR} # Remove excluded files tar -c -j -X debian/orig-tar.exclude -f $TAR ${DEBIAN_SOURCE_DIR}/ rm -rf ${DEBIAN_SOURCE_DIR} echo "${SOURCE_NAME}: Applied DFSG removals and set up tarball to `basename ${TAR}`" debian/compat0000644000000000000000000000000212175725463010400 0ustar 9 debian/libsikuli-script-jni.install.in0000644000000000000000000000007412175725463015247 0ustar sikuli-script/target/lib/* usr/lib/@DEB_HOST_MULTIARCH@/jni debian/source.lintian-overrides0000644000000000000000000000023412175725463014061 0ustar # Temporary override for Multi-Arch. # See http://wiki.debian.org/Multiarch/Implementation sikuli source: package-needs-versioned-debhelper-build-depends 9 debian/libsikuli-script-doc.doc-base.api0000644000000000000000000000053512175725463015410 0ustar Document: libsikuli-script-doc-api Title: Programmer API for Sikuli Script Author: Massachusetts Institute of Technology Abstract: Javadocs for Sikuli Script, a Java + Jython visual scripting API. Section: Programming/Java Format: HTML Index: /usr/share/doc/libsikuli-script-doc/api/index.html Files: /usr/share/doc/libsikuli-script-doc/api/*.html debian/patches/0000755000000000000000000000000012175725510010622 5ustar debian/patches/executable-wrappers.patch0000644000000000000000000000471212175725463015640 0ustar Description: Fix executable wrapper scripts This patch fixes the sikuli-script and sikuli-ide wrapper script regarding the installation on Debian. Since we don't embed external libs we have to set classpath, python path and jni path accordingly. libconstantine-java isn't explicitly required but sikuli-script fails with: ImportError: cannot import name newString when it is missing. Author: Gilles Filippini Index: sikuli-1.0~x~rc3/sikuli-ide/target/linux/Sikuli-IDE/sikuli-ide.sh =================================================================== --- sikuli-1.0~x~rc3.orig/sikuli-ide/target/linux/Sikuli-IDE/sikuli-ide.sh 2013-07-13 17:45:14.000000000 +0200 +++ sikuli-1.0~x~rc3/sikuli-ide/target/linux/Sikuli-IDE/sikuli-ide.sh 2013-07-13 17:45:33.000000000 +0200 @@ -1,3 +1,2 @@ #!/bin/sh -DIR=`dirname $0` -LC_NUMERIC=C java -Dsikuli.console=true -Dsikuli.debug=0 -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -jar $DIR/sikuli-ide.jar $* +LC_NUMERIC=C exec /usr/bin/java -cp "/usr/share/java/jna.jar:/usr/share/java/asm3.jar:/usr/share/java/asm3-commons.jar:/usr/share/java/antlr3-runtime.jar:/usr/share/java/libconstantine-java.jar:/usr/share/java/jython.jar:/usr/share/java/commons-cli.jar:/usr/share/java/JXGrabKey.jar:/usr/share/java/json_simple.jar:/usr/share/java/swing-layout.jar:/usr/share/java/swingx-core.jar:/usr/share/java/forms.jar:/usr/share/java/mac_widgets.jar:/usr/share/java/junit.jar:/usr/share/sikuli/sikuli-ide.jar:/usr/share/java/sikuli-script.jar" -Dsikuli.console=true -Dsikuli.debug=0 -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.home=/usr/share/jython -Dpython.path="/usr/share/sikuli/Lib" -Dpython.cachedir=$HOME/.jython-cache org.sikuli.ide.SikuliIDE "$@" Index: sikuli-1.0~x~rc3/sikuli-script/target/sikuli-script.sh =================================================================== --- sikuli-1.0~x~rc3.orig/sikuli-script/target/sikuli-script.sh 2013-07-13 17:45:14.000000000 +0200 +++ sikuli-1.0~x~rc3/sikuli-script/target/sikuli-script.sh 2013-07-13 17:45:14.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -java -jar sikuli-script.jar $@ +exec /usr/bin/java -cp "/usr/share/java/jna.jar:/usr/share/java/asm3.jar:/usr/share/java/asm3-commons.jar:/usr/share/java/antlr3-runtime.jar:/usr/share/java/libconstantine-java.jar:/usr/share/java/jython.jar:/usr/share/java/sikuli-script.jar" -Dfile.encoding=UTF-8 -Dpython.home=/usr/share/jython -Dpython.path="/usr/share/sikuli/Lib" -Dpython.cachedir=$HOME/.jython-cache org.sikuli.script.SikuliScript "$@" debian/patches/use-java-libs-from-debian.patch0000644000000000000000000001342512175725463016502 0ustar Description: Adapt the build process to use Debian java libraries The upstream makefiles rely on embedded java libraries. This patch tweak the makefiles to use instead the same libraries provided by Debian packages from Build-Depends. Author: Gilles Filippini Index: sikuli/sikuli-ide/CMakeLists.txt =================================================================== --- sikuli.orig/sikuli-ide/CMakeLists.txt 2011-11-10 23:53:01.000000000 +0100 +++ sikuli/sikuli-ide/CMakeLists.txt 2012-02-13 23:18:35.000000000 +0100 @@ -41,13 +41,13 @@ SET(TEST_CLASS_DIR "${CMAKE_BINARY_DIR}/test") SET(SIKULI_SCRIPT_JAR "${COMMON_LIB_DIR}/sikuli-script.jar") -SET(JUNIT_JAR "${COMMON_LIB_DIR}/junit-3.8.1.jar") -SET(SWING_LAYOUT_JAR "${COMMON_LIB_DIR}/swing-layout-1.0.1.jar") -SET(COMMONS_CLI_JAR "${COMMON_LIB_DIR}/commons-cli-1.2.jar") -SET(JSON_SIMPLE_JAR "${COMMON_LIB_DIR}/json_simple-1.1.jar") -SET(SWINGX_JAR "${COMMON_LIB_DIR}/swingx-core-1.6.2.jar") -SET(MAC_WIDGETS_JAR "${COMMON_LIB_DIR}/mac_widgets.jar") -SET(FORMS_JAR "${COMMON_LIB_DIR}/forms-1.2.1.jar") +SET(JUNIT_JAR "/usr/share/java/junit.jar") +SET(SWING_LAYOUT_JAR "/usr/share/java/swing-layout.jar") +SET(COMMONS_CLI_JAR "/usr/share/java/commons-cli.jar") +SET(JSON_SIMPLE_JAR "/usr/share/java/json_simple.jar") +SET(SWINGX_JAR "/usr/share/java/swingx-core.jar") +SET(MAC_WIDGETS_JAR "/usr/share/java/mac_widgets.jar") +SET(FORMS_JAR "/usr/share/java/forms.jar") FILE(MAKE_DIRECTORY ${BINARY_DIR}) @@ -79,7 +79,7 @@ SET(ARGS "") SET(CLASSPATH - ${SIKULI_SCRIPT_JAR}${SEP}${JUNIT_JAR}${SEP}${SWING_LAYOUT_JAR}${SEP}${COMMONS_CLI_JAR}${SEP}${JSON_SIMPLE_JAR}${SEP}${SWINGX_JAR}${SEP}${MAC_WIDGETS_JAR}${SEP}${FORMS_JAR} + ${SIKULI_SCRIPT_JAR}${SEP}${JUNIT_JAR}${SEP}${SWING_LAYOUT_JAR}${SEP}${COMMONS_CLI_JAR}${SEP}${JSON_SIMPLE_JAR}${SEP}${SWINGX_JAR}${SEP}${MAC_WIDGETS_JAR}${SEP}${FORMS_JAR}${SEP}/usr/share/java/jython.jar ) SET(JAR_FILE sikuli-ide.jar) @@ -87,7 +87,7 @@ IF(LINUX) SET(MANIFEST ${RESOURCE_DIR}/META-INF/MANIFEST-linux.MF) - SET(CLASSPATH ${CLASSPATH}${SEP}${JXGRABKEY_JAR}) + #SET(CLASSPATH ${CLASSPATH}${SEP}${JXGRABKEY_JAR}) ELSEIF(WIN32) SET(MANIFEST ${RESOURCE_DIR}/META-INF/MANIFEST-win32.MF) #SET(CLASSPATH ${CLASSPATH}${SEP}${JINTELLITYPE_JAR}) @@ -168,7 +168,7 @@ SET(FRAMEWORKS_IN_APP_DIR ${JAR_IN_APP_DIR}/libs) SET(JAR_LIB_DIR ${JAR_DIR}/META-INF/lib) - LIST(APPEND INCLUDE_JARS ${JXGRABKEY_JAR}) + #LIST(APPEND INCLUDE_JARS ${JXGRABKEY_JAR}) SET(jnilibs "") FILE(GLOB sikuli_script_jnilibs "${BASE_DIR}/../sikuli-script/target/lib/*.so") LIST(APPEND jnilibs ${sikuli_script_jnilibs}) @@ -224,7 +224,6 @@ add_custom_target( ${APP_FILE}.framework COMMAND ${CMAKE_COMMAND} -E make_directory ${FRAMEWORKS_IN_APP_DIR} COMMAND cp ${jnilibs} ${FRAMEWORKS_IN_APP_DIR} - COMMAND cp ${LIB_GRABKEY} ${FRAMEWORKS_IN_APP_DIR}/libJXGrabKey.so COMMENT "Packaging Frameworks in App" ) add_dependencies( ${APP_FILE} ${APP_FILE}.framework ) @@ -239,7 +238,7 @@ SET(LIB_GRABKEY "${COMMON_LIB_DIR}/jintellitype-1.3.6/JIntellitype.dll") add_custom_target( ${JAR_FILE}.framework COMMAND ${CMAKE_COMMAND} -E make_directory ${JAR_LIB_DIR} - COMMAND ${CMAKE_COMMAND} -E copy ${LIB_GRABKEY} ${JAR_LIB_DIR}/ + #COMMAND ${CMAKE_COMMAND} -E copy ${LIB_GRABKEY} ${JAR_LIB_DIR}/ COMMENT "Packaging Frameworks in Jar" ) add_dependencies( ${JAR_FILE} ${JAR_FILE}.framework ) Index: sikuli/sikuli-script/CMakeLists.txt =================================================================== --- sikuli.orig/sikuli-script/CMakeLists.txt 2012-02-13 22:43:36.000000000 +0100 +++ sikuli/sikuli-script/CMakeLists.txt 2012-02-13 23:18:35.000000000 +0100 @@ -38,8 +38,7 @@ SET(COMMON_LIB_DIR "${BASE_DIR}/../lib") # dependent libs -SET(JXGRABKEY_JAR "${COMMON_LIB_DIR}/jxgrabkey/lib/JXGrabKey.jar") -SET(JINTELLITYPE_JAR "${COMMON_LIB_DIR}/jintellitype-1.3.6/jintellitype-1.3.6.jar") +SET(JXGRABKEY_JAR "/usr/share/java/JXGrabKey.jar") #SET(INCLUDE_LIB_DIR "${BASE_DIR}/lib") SET(INCLUDE_LIB_DIR "${COMMON_LIB_DIR}/mx-native-loader-1.2/target/classes") @@ -51,10 +50,10 @@ SET(JAR_DIR "${CMAKE_BINARY_DIR}/jar") SET(JAR_LIB_DIR ${JAR_DIR}/META-INF/lib) -SET(JUNIT_JAR "${COMMON_LIB_DIR}/junit-4.8.2.jar") -SET(MOCKITO_JAR "${COMMON_LIB_DIR}/mockito-all-1.8.5.jar") -SET(JYTHON_JAR "${COMMON_LIB_DIR}/jython-2.5.2.jar") -SET(JYTHON_LIB_FILE "${COMMON_LIB_DIR}/jython-lib-2.5.2.tgz") +SET(JUNIT_JAR "/usr/share/java/junit.jar") +#SET(MOCKITO_JAR "/usr/share/java/mockito-all.jar") +SET(JYTHON_JAR "/usr/share/java/jython.jar") +#SET(JYTHON_LIB_FILE "${COMMON_LIB_DIR}/jython-lib-2.5.2.tgz") SET(CLASSPATH ${INCLUDE_LIB_DIR}${SEP}${JYTHON_JAR}${SEP}. @@ -156,12 +155,12 @@ add_dependencies(${JAR_FILE} ${JAR_FILE}.classes-in-jar - ${JAR_FILE}.python-src-in-jar + #${JAR_FILE}.python-src-in-jar ${JAR_FILE}.tessdata-in-jar - ${JAR_FILE}.libs-in-jar - ${JAR_FILE}.includes-in-jar - ${JAR_FILE}.jython-in-jar - ${JAR_FILE}.jython-libs-in-jar + #${JAR_FILE}.libs-in-jar + #${JAR_FILE}.includes-in-jar + #${JAR_FILE}.jython-in-jar + #${JAR_FILE}.jython-libs-in-jar ) IF(WIN32) @@ -196,9 +195,9 @@ ) ENDIF() - add_dependencies(${JAR_FILE} - ${JAR_FILE}.jxgrabkey-in-jar - ) +# add_dependencies(${JAR_FILE} +# ${JAR_FILE}.jxgrabkey-in-jar +# ) ENDIF(LINUX) IF(LINUX) @@ -213,8 +212,8 @@ COMMENT "Packaging JXGrabKey in Jar" ) ENDIF(LINUX) -add_dependencies( ${JAR_FILE} ${JAR_FILE}.hotkey-lib ) -add_dependencies( ${JAR_FILE}.libs-in-jar ${JAR_FILE}.hotkey-lib ) +#add_dependencies( ${JAR_FILE} ${JAR_FILE}.hotkey-lib ) +#add_dependencies( ${JAR_FILE}.libs-in-jar ${JAR_FILE}.hotkey-lib ) ADD_SUBDIRECTORY(${JAVA_SRC_DIR}) debian/patches/no-opencv-surf-module.patch0000644000000000000000000004246212175725463016026 0ustar Description: Remove unused code with dependency on the opencv SURF module Since release 2.4 the opencv Debian package doesn't ship the SURF module anymore which is considered non-free. Fortunately, Sikuli actually doesn't use the code depending on it. This patch removes the corresponding portions of code. Author: Gilles Filippini Index: sikuli/sikuli-script/src/main/native/cvgui.cpp =================================================================== --- sikuli.orig/sikuli-script/src/main/native/cvgui.cpp 2012-06-21 13:28:17.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/cvgui.cpp 2012-06-24 22:06:30.000000000 +0200 @@ -1548,324 +1548,6 @@ // VLOG("OCR-Result", ocr_result_image); } -void -cvgui::segmentScreenshot(const Mat& screen, vector& text_blobs, vector& image_blobs){ - - VLOG("Input", screen); - - Mat gray, screen_gray; - if(screen.channels() > 1){ - cvtColor(screen,gray,CV_RGB2GRAY); - } - else - gray = screen; - - screen_gray = gray.clone(); - - adaptiveThreshold(gray, gray, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY_INV, 5, 1); - VLOG("AdaptiveThresholded", gray); - - - Mat lines; - cvgui::findLongLines(gray, lines); - - Mat lines_viz = lines.clone(); - dilate(lines_viz, lines_viz, Mat::ones(4,4,CV_8UC1)); - VLOG("LongLinesFound", lines_viz); - - Mat not_lines; - bitwise_not(lines, not_lines); - - Mat foreground; - bitwise_and(gray, not_lines, foreground); - - gray.setTo(0, lines); - VLOG("LongLinesRemoved",gray); - - - denoise(gray); - VLOG("NoiseRemoved", gray); - - dilate(gray,gray,Mat::ones(1,3,CV_8UC1)); - VLOG("Dilated",gray); - - vector rects; - //cvgui::extractRects(gray, rects); - - vector blobs; - cvgui::extractBlobs(gray, blobs); - - - Mat dilated = gray.clone(); - - - // visualization - Mat result; - Mat g; - cvtColor(screen, g, CV_RGB2GRAY); - - Mat ss[3] = {g,g,g}; - merge(ss,3,result); - result = result * 0.5; - - Mat bg = result.clone(); - Mat screen_darken = bg.clone(); - - - text_blobs.clear(); - - for (vector::iterator b = blobs.begin(); b != blobs.end(); ++b){ - - Blob& blob = *b; - Rect& bound = blob; - Mat part(screen, bound); - //paste(part, result, r->x, r->y); - - Mat p = part.clone(); - Mat g; - cvtColor(p, g, CV_RGB2GRAY); - adaptiveThreshold(g, g, 255, - ADAPTIVE_THRESH_MEAN_C, - THRESH_BINARY_INV, 3, 1); - vector rs; - cvgui::extractSmallRects(g, rs); - for (vector::iterator r = rs.begin();r != rs.end(); ++r){ - r->x += bound.x; - r->y += bound.y; - } - - vector rs0; - for (vector::iterator q = rs.begin(); - q != rs.end(); ++q){ - - // exclude overly short element (e.g., dot of i) - if (q->height < 5) - continue; - - rs0.push_back(*q); - } - - rs = rs0; - - // re-calculate the bounds - int x1,y1,x2,y2; - x1 = bound.x + bound.width; - y1 = bound.y + bound.height; - x2 = bound.x; - y2 = bound.y; - - for (vector::iterator r = rs.begin(); - r != rs.end(); ++r){ - x1 = min(x1, r->x); - y1 = min(y1, r->y); - x2 = max(x2, r->x + r->width); - y2 = max(y2, r->y + r->height); - } - - //blob.bound = Rect(x1-2,y1-2,x2-x1+4,y2-y1+4); - //blob.bound = Rect(x1,y1,x2-x1,y2-y1); - - // make the bound bigger to be consistent with the dilated blobs - blob = Blob(Rect(x1-2,y1-1,x2-x1+4,y2-y1+2)); - - - int MINIMUM_NUM_CHARBLOBS = 2; - - if (cvgui::areHorizontallyAligned(rs) && rs.size()>=MINIMUM_NUM_CHARBLOBS) - Painter::drawRects(result, rs, Scalar(0,255,0)); - else - Painter::drawRects(result, rs, Scalar(0,0,255)); - - if (cvgui::areHorizontallyAligned(rs) && rs.size()>=MINIMUM_NUM_CHARBLOBS){ - text_blobs.push_back(blob); - } - - } - - //drawRects(result, rects, Scalar(255,0,0)); - Painter::drawBlobs(result, blobs, Scalar(255,0,0)); - - VLOG("TextBlocksExtracted",result); - - - - Mat text_mask = Mat::zeros(screen.size(), CV_8UC1); - - - for (vector::iterator b = text_blobs.begin(); - b != text_blobs.end(); ++b){ - - Rect& r = *b; - Mat m(text_mask, - Range(r.y,r.y+r.height), - Range(r.x,r.x+r.width)); - - m = 255; - - } - - VLOG("TextBinaryMaskComputed", text_mask); - - - - - gray.setTo(0, text_mask); - VLOG("AfterTextRemoved",gray); - - dilate(gray,gray,Mat()); - VLOG("DilatedAgain",gray); - - Mat dilated_again = gray.clone(); - - vector temp; - //cvgui::extractRects(gray, temp); - cvgui::extractBlobs(gray, temp); - - // only keep image rects larger than n pixels - - const int MIN_IMAGE_RECT_AREA = 150; - - image_blobs.clear(); - for (vector::iterator b = temp.begin(); - b != temp.end(); ++b){ - - if (b->width * b->height < MIN_IMAGE_RECT_AREA) - continue; - - // // blob is too big, something is wrong - // if (b->bound.width > 0.8 * screen.width) - // continue; - // if (b->bound.height > 0.8 * screen.height) - // continue; - - image_blobs.push_back(*b); - - } - - Mat image_result = bg.clone(); - - Painter::drawBlobs(image_result, image_blobs, Scalar(0,0,255)); - VLOG("ImageRecordsExtracted", image_result); - - return; - - Mat ui_mask = Mat::zeros(screen.size(), CV_8UC1); - Mat photo_mask = Mat::zeros(screen.size(), CV_8UC1); - for (vector::iterator b = image_blobs.begin(); - b != image_blobs.end(); ++b){ - - Rect& r = *b; - Mat mask; - if (r.height < 100) - mask = ui_mask; - else - mask = photo_mask; - - Mat m(mask, - Range(r.y,r.y+r.height), - Range(r.x,r.x+r.width)); - - m = 255; - } - - VLOG("UIMask", ui_mask); - VLOG("PhotoMask", photo_mask); - - Mat segmap; - Mat segmapr; - Mat segmapg; - Mat segmapb; - - bitwise_and(dilated,text_mask,segmapr); - bitwise_and(dilated,ui_mask,segmapg); - bitwise_and(dilated_again,photo_mask,segmapb); - //segmapb = photo_mask; - - - Mat cs[3] = {segmapb, segmapg,segmapr}; - merge(cs,3,segmap); - VLOG("SegMap", segmap); - - - //Mat wordmap = screen_darken.clone();//segmap.clone(); - Mat wordmap = Mat::zeros(screen.size(), CV_8UC3); - - - screen.copyTo(wordmap, segmapg); - screen.copyTo(wordmap, photo_mask); - screen.copyTo(wordmap, text_mask); - - - - Mat random_ids = Mat::ones(1,100,CV_8UC1); - randu(random_ids, 22, 80); - - Scalar white(255,255,255); - Scalar black(0,0,0); - Scalar yellow(255,255,0); - - - int i = 0; - - for (vector::iterator b = image_blobs.begin(); - b != image_blobs.end(); ++b){ - - Rect& r = *b; - - - char vwstr[100]; - - - if (r.height < 100){ - - int xc = r.x + r.width/2; - int yc = r.y + r.height/2; - - - // putTextWithBackgroundCentered(black, wordmap, "u12", Point(xc,yc), - // FONT_HERSHEY_SIMPLEX, 0.5, white); - - int id = random_ids.at(0,i++); - sprintf(vwstr,"u%d",id); - -// putTextWithBackgroundCentered(white, wordmap, vwstr, Point(xc,yc), -// FONT_HERSHEY_DUPLEX, 0.5, black); - - - }else{ - - - SURF surf_extractor(6.0e3); - vector keypoints; - - // printf("Extracting keypoints\n"); - surf_extractor(screen_gray, photo_mask, keypoints); - //printf("Extracted %d keypoints from the image\n", (int)keypoints.size()); - - for (vector::iterator it = keypoints.begin(); it != keypoints.end(); ++it){ - KeyPoint& p = *it; - - circle(wordmap, p.pt, p.size*1.5, yellow); - - // putTextWithBackgroundCentered(black, wordmap, "v12", p.pt, - // FONT_HERSHEY_SIMPLEX, 0.5, white); - - int id = random_ids.at(0,i++); - sprintf(vwstr,"s%d",id); - -// putTextWithBackgroundCentered(white, wordmap, vwstr, p.pt, -// FONT_HERSHEY_DUPLEX, 0.5, black); - - } - } - - - } - - VLOG("WordMap", wordmap); -} - - static int L1dist(Vec3b p1, Vec3b p2){ Index: sikuli/sikuli-script/src/main/native/cvgui.h =================================================================== --- sikuli.orig/sikuli-script/src/main/native/cvgui.h 2012-06-21 13:28:17.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/cvgui.h 2012-06-24 22:06:30.000000000 +0200 @@ -179,7 +179,6 @@ public: - static void segmentScreenshot(const Mat& screen, vector& text_blobs, vector& image_blobs); static void getLineBlobsAsIndividualWords(const Mat& screen, vector& lineblobs); static void getParagraphBlobs(const Mat& screen, vector& parablobs); Index: sikuli/sikuli-script/src/main/native/imgdb.cpp =================================================================== --- sikuli.orig/sikuli-script/src/main/native/imgdb.cpp 2012-06-21 13:28:17.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/imgdb.cpp 2012-06-24 22:09:07.000000000 +0200 @@ -24,38 +24,6 @@ } -vector -Database::find(Mat image){ - vector top_matches; - vector records; - - records = create_image_records_from_image(image); - - for (vector::iterator r = records.begin(); - r != records.end(); ++r){ - - //cout << endl << r->area << " : "; - vector matches = find(*r); - for (vector::iterator m = matches.begin(); - m != matches.end(); ++m){ - - //cout << "(" << m->screenshot_id << ":" << m->id << ")"; - } - - if (!matches.empty()) - top_matches.push_back(matches[0]); - } - - return top_matches; - -} - -vector -Database::find(const char* filename){ - Mat image = imread(filename, 1); - return find(image); -} - void Database::insert(const ImageRecord& b){ _image_records.push_back(b); @@ -111,89 +79,6 @@ #include -void -Database::insert_file(const char* filename, int screenshot_id){ - - Mat image = imread(filename, 1); - - - char buf[200]; -// sprintf(buf,"%s.ui",filename); -// std::ofstream fout(buf); - - sprintf(buf,"%s.ui",filename); - std::ofstream fout_loc(buf); - - vector text_blobs, image_blobs; - cvgui::segmentScreenshot(image, text_blobs, image_blobs); - - - vector records; - records = create_image_records_from_blobs(image, image_blobs); - - for (int i = 0; i < image_blobs.size(); ++i){ - - - Blob& b = image_blobs[i]; - ImageRecord& r = records[i]; - - // ignore small elements - if (r.width < 15 || r.height < 15) - continue; - - vector matches; - matches = find(r); - - if (matches.empty()){ - - r.id = word_id; - - insert(r); -#if 0 - char buf[80]; - Mat part(image, b.bound); - sprintf(buf, "research/result/ir-%d-%d.png",word_id,image_record_id); - imwrite(buf, part); -#endif - word_id++; - - }else{ - - r.id = matches[0].id; - } - - //fout << "ui" << r.id << " "; - - - - fout_loc << r.x << " " << r.y << " " << r.width << " " << r.height << " "; - fout_loc << "ui" << r.id; - fout_loc << endl; - } - - //fout << endl; - //fout.close(); - fout_loc.close(); -} - -vector -Database::create_image_records_from_image(Mat image){ - vector text_blobs; - vector image_blobs; - - cvgui::segmentScreenshot(image, text_blobs, image_blobs); - return create_image_records_from_blobs(image, image_blobs); -} - - - -vector -Database::create_image_records_from_imagefile(const char* filename){ - Mat image = imread(filename, 1); - return create_image_records_from_image(image); -} - - vector Database::create_image_records_from_blobs(const Mat& src, const vector image_blobs){ Index: sikuli/sikuli-script/src/main/native/imgdb.h =================================================================== --- sikuli.orig/sikuli-script/src/main/native/imgdb.h 2012-06-21 13:28:17.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/imgdb.h 2012-06-24 22:10:07.000000000 +0200 @@ -56,9 +56,6 @@ vector find(const char* filename); vector find(Mat image); - void insert_file(const char* filename, int screenshot_id); - - void write(std::ostream& output_stream); void read(std::istream& input_stream); @@ -67,8 +64,6 @@ vector _image_records; vector create_image_records_from_blobs(const Mat& src, const vector image_blobs); - vector create_image_records_from_imagefile(const char* imagefile); - vector create_image_records_from_image(Mat image); }; Index: sikuli/sikuli-script/src/main/native/vision.cpp =================================================================== --- sikuli.orig/sikuli-script/src/main/native/vision.cpp 2012-06-21 13:28:17.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/vision.cpp 2012-06-24 22:09:38.000000000 +0200 @@ -409,75 +409,12 @@ return text.getString(); } -string -Vision::query(const char* index_filename, cv::Mat image){ - - Database db; - ifstream in(index_filename, ios::binary); - db.read(in); - in.close(); - - - string ret = ""; - - vector results = db.find(image); - for (vector::iterator r = results.begin(); - r != results.end(); ++r){ - - ImageRecord& record = *r; - - //cout << "ui" << record.id << " "; - char buf[50]; - sprintf(buf,"ui%d",record.id); - ret = ret + string(buf) + " "; - } - - return ret; -} - - OCRText Vision::recognize_as_ocrtext(Mat image){ return OCR::recognize(image); } -vector -Vision::findTextBlobs(const cv::Mat& image){ - return findBlobs(image, true); -} - -vector -Vision::findBlobs(const cv::Mat& image, bool textOnly){ - - vector results; - vector out_text_blobs; - vector out_img_blobs; - - cvgui::segmentScreenshot(image, out_text_blobs, out_img_blobs); - - - for (vector::iterator i = out_text_blobs.begin(); - i != out_text_blobs.end(); ++i){ - - Blob& b = *i; - FindResult fr(b.x,b.y,b.width,b.height,1); - results.push_back(fr); - } - - if(!textOnly){ - for (vector::iterator i = out_img_blobs.begin(); - i != out_img_blobs.end(); ++i){ - - Blob& b = *i; - FindResult fr(b.x,b.y,b.width,b.height,1); - results.push_back(fr); - } - } - - return results; -} - cv::Mat Vision::createMat(int _rows, int _cols, unsigned char* _data){ Mat mat_ref = Mat(_rows, _cols, CV_8UC4, _data); Mat mat; Index: sikuli/sikuli-script/src/main/native/vision.h =================================================================== --- sikuli.orig/sikuli-script/src/main/native/vision.h 2012-06-21 13:28:17.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/vision.h 2012-06-24 22:10:23.000000000 +0200 @@ -93,13 +93,8 @@ static void initOCR(const char* ocrDataPath); - static string query(const char* index_filename, cv::Mat image); - static OCRText recognize_as_ocrtext(cv::Mat image); - static std::vector findBlobs(const cv::Mat& image, bool textOnly=false); - static std::vector findTextBlobs(const cv::Mat& image); - static std::string recognize(cv::Mat image); static std::string recognizeWord(cv::Mat image); Index: sikuli/sikuli-script/src/main/native/vision.i =================================================================== --- sikuli.orig/sikuli-script/src/main/native/vision.i 2012-06-24 22:06:29.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/vision.i 2012-06-24 22:10:31.000000000 +0200 @@ -213,14 +213,8 @@ static void initOCR(const char* ocrDataPath); - static std::string query(const char* index_filename, cv::Mat image); - static OCRText recognize_as_ocrtext(cv::Mat image); - static std::vector findBlobs(const cv::Mat& image, bool textOnly=false); - - static std::vector findTextBlobs(const cv::Mat& image); - static std::string recognize(cv::Mat image); static std::string recognizeWord(cv::Mat image); debian/patches/tess3.patch0000644000000000000000000000373112175725463012717 0ustar Description: Tesseract 3.02 support This patch applies against tesseract3 branch of sikuli to bring support for the 3.02 version of tesseract. Author: Gilles Filippini Index: sikuli/cmake_modules/FindTesseract.cmake =================================================================== --- sikuli.orig/cmake_modules/FindTesseract.cmake 2012-02-15 01:02:23.000000000 +0100 +++ sikuli/cmake_modules/FindTesseract.cmake 2012-02-15 10:10:54.000000000 +0100 @@ -21,23 +21,14 @@ ${Tesseract_PKGCONF_INCLUDE_DIRS} ) -SET(TESSERACT_COMPONENTS - api cutil textord ccstruct dict training ccutil - image viewer classify main wordrec -) - -FOREACH(LIB ${TESSERACT_COMPONENTS}) - find_library(Tesseract_${LIB}_LIBRARY - NAMES libtesseract_${LIB}.a - HINTS "${Tesseract_DIR}/lib" +find_library(Tesseract_LIBRARY + NAMES tesseract + HINTS "${Tesseract_DIR}/lib" "/usr/lib" "/usr/local/lib" ${Tesseract_PKGCONF_LIBRARY_DIRS} ) - set(Tesseract_LIBRARY ${Tesseract_LIBRARY} ${Tesseract_${LIB}_LIBRARY}) -ENDFOREACH(LIB ${TESSERACT_COMPONENTS}) - # Set the include dir variables and the libraries and let libfind_process do the rest. # NOTE: Singular variables for this library, plural for libraries this this lib depends on. Index: sikuli/sikuli-script/src/main/native/tessocr.cpp =================================================================== --- sikuli.orig/sikuli-script/src/main/native/tessocr.cpp 2012-02-15 01:02:23.000000000 +0100 +++ sikuli/sikuli-script/src/main/native/tessocr.cpp 2012-02-15 10:10:07.000000000 +0100 @@ -404,10 +404,9 @@ //we have to use setenv instead. setenv("TESSDATA_PREFIX", datapath, 1); #endif - int ret = _tessAPI.Init(datapath, _lang.c_str()); + int ret = _tessAPI.Init(datapath, _lang.c_str(), OEM_TESSERACT_ONLY); //cout << (ret==0?"done":"failed") << endl; - _tessAPI.SetAccuracyVSpeed(AVS_MOST_ACCURATE); // FIXME: doesn't work? isInitialized = true; } debian/patches/setTextAndMnemonic.patch0000644000000000000000000001134712175725463015431 0ustar Description: Fix deprecated DefaultComponentFactory#setTextAndMnemonic Replace the deprecated method with MnemonicUtils#configure. Author: Gilles Filippini Bug-Debian: http://bugs.debian.org/711310 Index: sikuli/sikuli-ide/src/main/java/org/sikuli/ide/PreferencesWin.java =================================================================== --- sikuli.orig/sikuli-ide/src/main/java/org/sikuli/ide/PreferencesWin.java 2013-06-07 08:02:38.000000000 +0200 +++ sikuli/sikuli-ide/src/main/java/org/sikuli/ide/PreferencesWin.java 2013-06-07 08:02:38.000000000 +0200 @@ -33,6 +33,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.jgoodies.forms.factories.DefaultComponentFactory; +import com.jgoodies.common.swing.MnemonicUtils; import org.jdesktop.layout.*; import org.sikuli.script.Debug; @@ -496,8 +497,8 @@ private void initComponentsI18n() { // JFormDesigner - Component i18n initialization - DO NOT MODIFY //GEN-BEGIN:initI18n - DefaultComponentFactory.setTextAndMnemonic(_titleAppearance, I18N._I("PreferencesWin.titleAppearance.textWithMnemonic")); - DefaultComponentFactory.setTextAndMnemonic(_titleIndentation, I18N._I("PreferencesWin.titleIndentation.textWithMnemonic")); + MnemonicUtils.configure(_titleAppearance, I18N._I("PreferencesWin.titleAppearance.textWithMnemonic")); + MnemonicUtils.configure(_titleIndentation, I18N._I("PreferencesWin.titleIndentation.textWithMnemonic")); _lblHotkey.setText(I18N._I("prefCaptureHotkey")); _lblDelay.setText(I18N._I("prefCaptureDelay")); _lblDelaySecs.setText(I18N._I("prefSeconds")); Index: sikuli/sikuli-ide/CMakeLists.txt =================================================================== --- sikuli.orig/sikuli-ide/CMakeLists.txt 2013-06-07 08:02:38.000000000 +0200 +++ sikuli/sikuli-ide/CMakeLists.txt 2013-06-07 08:02:38.000000000 +0200 @@ -48,6 +48,7 @@ SET(SWINGX_JAR "/usr/share/java/swingx-core.jar") SET(MAC_WIDGETS_JAR "/usr/share/java/mac_widgets.jar") SET(FORMS_JAR "/usr/share/java/forms.jar") +SET(COMMON_JAR "/usr/share/java/jgoodies-common.jar") FILE(MAKE_DIRECTORY ${BINARY_DIR}) @@ -79,7 +80,7 @@ SET(ARGS "") SET(CLASSPATH - ${SIKULI_SCRIPT_JAR}${SEP}${JUNIT_JAR}${SEP}${SWING_LAYOUT_JAR}${SEP}${COMMONS_CLI_JAR}${SEP}${JSON_SIMPLE_JAR}${SEP}${SWINGX_JAR}${SEP}${MAC_WIDGETS_JAR}${SEP}${FORMS_JAR}${SEP}/usr/share/java/jython.jar + ${SIKULI_SCRIPT_JAR}${SEP}${JUNIT_JAR}${SEP}${SWING_LAYOUT_JAR}${SEP}${COMMONS_CLI_JAR}${SEP}${JSON_SIMPLE_JAR}${SEP}${SWINGX_JAR}${SEP}${MAC_WIDGETS_JAR}${SEP}${FORMS_JAR}${SEP}${COMMON_JAR}${SEP}/usr/share/java/jython.jar ) SET(JAR_FILE sikuli-ide.jar) @@ -141,6 +142,7 @@ ${SWING_LAYOUT_JAR} ${COMMONS_CLI_JAR} ${BINARY_DIR}/${JAR_FILE} ${JSON_SIMPLE_JAR} ${SWINGX_JAR} ${MAC_WIDGETS_JAR} ${FORMS_JAR} + ${COMMON_JAR} ) ## Windows Package Index: sikuli/sikuli-ide/target/linux/Sikuli-IDE/sikuli-ide.sh =================================================================== --- sikuli.orig/sikuli-ide/target/linux/Sikuli-IDE/sikuli-ide.sh 2013-06-07 08:02:38.000000000 +0200 +++ sikuli/sikuli-ide/target/linux/Sikuli-IDE/sikuli-ide.sh 2013-06-07 08:03:30.000000000 +0200 @@ -1,2 +1,2 @@ #!/bin/sh -LC_NUMERIC=C exec /usr/bin/java -cp "/usr/share/java/jna.jar:/usr/share/java/asm3.jar:/usr/share/java/asm3-commons.jar:/usr/share/java/antlr3-runtime.jar:/usr/share/java/libconstantine-java.jar:/usr/share/java/jython.jar:/usr/share/java/commons-cli.jar:/usr/share/java/JXGrabKey.jar:/usr/share/java/json_simple.jar:/usr/share/java/swing-layout.jar:/usr/share/java/swingx-core.jar:/usr/share/java/forms.jar:/usr/share/java/mac_widgets.jar:/usr/share/java/junit.jar:/usr/share/sikuli/sikuli-ide.jar:/usr/share/java/sikuli-script.jar" -Dsikuli.console=true -Dsikuli.debug=0 -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.home=/usr/share/jython -Dpython.path="/usr/share/sikuli/Lib" -Dpython.cachedir=$HOME/.jython-cache org.sikuli.ide.SikuliIDE "$@" +LC_NUMERIC=C exec /usr/bin/java -cp "/usr/share/java/jna.jar:/usr/share/java/asm3.jar:/usr/share/java/asm3-commons.jar:/usr/share/java/antlr3-runtime.jar:/usr/share/java/libconstantine-java.jar:/usr/share/java/jython.jar:/usr/share/java/commons-cli.jar:/usr/share/java/JXGrabKey.jar:/usr/share/java/json_simple.jar:/usr/share/java/swing-layout.jar:/usr/share/java/swingx-core.jar:/usr/share/java/forms.jar:/usr/share/java/jgoodies-common.jar:/usr/share/java/mac_widgets.jar:/usr/share/java/junit.jar:/usr/share/sikuli/sikuli-ide.jar:/usr/share/java/sikuli-script.jar" -Dsikuli.console=true -Dsikuli.debug=0 -Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dpython.home=/usr/share/jython -Dpython.path="/usr/share/sikuli/Lib" -Dpython.cachedir=$HOME/.jython-cache org.sikuli.ide.SikuliIDE "$@" debian/patches/force-java6-target.patch0000644000000000000000000000260012175725463015237 0ustar Description: Force java 6 when building targets This patch forces Java 6 when building targets. If not, it builds for Java 7 by default. Author: Yolanda Robla Index: sikuli-1.0~x~rc3/sikuli-ide/src/main/java/CMakeLists.txt =============================================================== --- sikuli/sikuli-ide/src/main/java/CMakeLists.txt 2013-06-21 15:37:19.488132999 +0000 +++ sikuli.orig/sikuli-ide/src/main/java/CMakeLists.txt 2013-06-25 09:26:31.936132999 +0000 @@ -68,7 +68,7 @@ add_custom_target( ${PROJECT_NAME}.classes COMMAND ${JAVA_COMPILE} -d ${BINARY_CLASS_DIR} -classpath "${CLASSPATH}" - ${JAVA_SOURCE_FILES} + ${JAVA_SOURCE_FILES} -source 1.6 -target 1.6 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) Index: sikuli-1.0~x~rc3/sikuli-script/src/main/java/CMakeLists.txt ================================================================== --- sikuli/sikuli-script/src/main/java/CMakeLists.txt 2013-06-25 11:20:48.357858000 +0000 +++ sikuli/sikuli-script/src/main/java/CMakeLists.txt 2013-06-25 11:21:08.328132999 +0000 @@ -70,7 +70,7 @@ add_custom_target( ${PROJECT_NAME}.classes COMMAND ${JAVA_COMPILE} -d ${BINARY_CLASS_DIR} -classpath "${CLASSPATH}" - ${JAVA_SOURCE_FILES} + ${JAVA_SOURCE_FILES} -source 1.6 -target 1.6 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) debian/patches/series0000644000000000000000000000036112175725463012046 0ustar executable-wrappers.patch native.patch use-java-libs-from-debian.patch install-extension.patch fix-cmake-sikuli-ide.patch tess3.patch tessdata.patch gcc-4.7.patch no-opencv-surf-module.patch setTextAndMnemonic.patch force-java6-target.patch debian/patches/native.patch0000644000000000000000000001203312175725463013137 0ustar Description: Use System's native library loader Sikuli upstream binary archives come with the native library loader mx-native-loader from http://opensource.mxtelecom.com/ which permits to embed native libraries into the jar archive. This is not compatible with the Debian policy for java. Hence native libraries are shipped in their own binary package and we use the standard native library loader. Author: Gilles Filippini Index: sikuli/sikuli-script/src/main/java/org/sikuli/script/VDictProxy.java =================================================================== --- sikuli.orig/sikuli-script/src/main/java/org/sikuli/script/VDictProxy.java 2012-02-13 23:18:12.000000000 +0100 +++ sikuli/sikuli-script/src/main/java/org/sikuli/script/VDictProxy.java 2012-02-13 23:18:28.000000000 +0100 @@ -12,7 +12,6 @@ import java.util.HashMap; import java.util.Map; import java.util.List; -import com.wapmx.nativeutils.jniloader.NativeLoader; public class VDictProxy { private long _instance; @@ -22,10 +21,10 @@ // load libScreenMatchProxy.{so,jnilib} //System.loadLibrary("ScreenMatchProxy"); try{ - NativeLoader.loadLibrary("VDictProxy"); + System.loadLibrary("VDictProxy"); Debug.info("VDictProxy loaded."); } - catch(IOException e){ + catch(Exception e){ e.printStackTrace(); } } Index: sikuli/sikuli-script/src/main/java/org/sikuli/script/Finder.java =================================================================== --- sikuli.orig/sikuli-script/src/main/java/org/sikuli/script/Finder.java 2012-02-13 23:18:12.000000000 +0100 +++ sikuli/sikuli-script/src/main/java/org/sikuli/script/Finder.java 2012-02-13 23:18:28.000000000 +0100 @@ -18,8 +18,6 @@ import org.sikuli.script.natives.TARGET_TYPE; import org.sikuli.script.natives.Vision; -import com.wapmx.nativeutils.jniloader.NativeLoader; - public class Finder implements Iterator{ private Region _region = null; private Pattern _pattern = null; @@ -30,10 +28,10 @@ static { try{ - NativeLoader.loadLibrary("VisionProxy"); + System.loadLibrary("VisionProxy"); Debug.info("Sikuli vision engine loaded."); } - catch(IOException e){ + catch(Exception e){ e.printStackTrace(); } //Vision.setParameter("GPU", 1); Index: sikuli/sikuli-script/src/main/java/org/sikuli/script/TextRecognizer.java =================================================================== --- sikuli.orig/sikuli-script/src/main/java/org/sikuli/script/TextRecognizer.java 2012-02-13 23:18:12.000000000 +0100 +++ sikuli/sikuli-script/src/main/java/org/sikuli/script/TextRecognizer.java 2012-02-13 23:18:28.000000000 +0100 @@ -17,18 +17,16 @@ import org.sikuli.script.natives.OCRWord; import org.sikuli.script.natives.OCRWords; -import com.wapmx.nativeutils.jniloader.NativeLoader; - // Singleton public class TextRecognizer { protected static TextRecognizer _instance = null; static { try{ - NativeLoader.loadLibrary("VisionProxy"); + System.loadLibrary("VisionProxy"); TextRecognizer tr = TextRecognizer.getInstance(); } - catch(IOException e){ + catch(Exception e){ e.printStackTrace(); } } Index: sikuli/sikuli-script/src/main/java/org/sikuli/script/internal/hotkey/LinuxHotkeyManager.java =================================================================== --- sikuli.orig/sikuli-script/src/main/java/org/sikuli/script/internal/hotkey/LinuxHotkeyManager.java 2012-02-13 23:18:12.000000000 +0100 +++ sikuli/sikuli-script/src/main/java/org/sikuli/script/internal/hotkey/LinuxHotkeyManager.java 2012-02-13 23:18:28.000000000 +0100 @@ -15,16 +15,15 @@ import org.sikuli.script.HotkeyListener; import org.sikuli.script.HotkeyEvent; -import com.wapmx.nativeutils.jniloader.NativeLoader; import jxgrabkey.HotkeyConflictException; import jxgrabkey.JXGrabKey; public class LinuxHotkeyManager extends HotkeyManager { static{ try{ - NativeLoader.loadLibrary("JXGrabKey"); + System.loadLibrary("JXGrabKey"); } - catch(IOException e){ + catch(Exception e){ Debug.error("Can't load native lib JXGrabKey"); e.printStackTrace(); } Index: sikuli/sikuli-script/src/main/native/vision.i =================================================================== --- sikuli.orig/sikuli-script/src/main/native/vision.i 2012-02-13 23:18:12.000000000 +0100 +++ sikuli/sikuli-script/src/main/native/vision.i 2012-02-13 23:18:28.000000000 +0100 @@ -13,14 +13,14 @@ %include "typemaps.i" %include "various.i" -%pragma(java) jniclassimports=%{ - import com.wapmx.nativeutils.jniloader.NativeLoader; -%} +//%pragma(java) jniclassimports=%{ +// import com.wapmx.nativeutils.jniloader.NativeLoader; +//%} %pragma(java) jniclasscode=%{ static { try { - NativeLoader.loadLibrary("VisionProxy"); + System.loadLibrary("VisionProxy"); } catch (Exception e) { System.err.println("Failed to load VisionProxy.\n" + e); } debian/patches/tessdata.patch0000644000000000000000000000636212175725463013471 0ustar Description: Fix tessdata directory location The default path for the tessdata parent directory should be set to "/usr/share/tesseract-ocr/" except when overriden by the TESSDATA_PREFIX environment variable. Author: Gilles Filippini Bug-Debian: http://bugs.debian.org/667513 Index: sikuli/sikuli-script/CMakeLists.txt =================================================================== --- sikuli.orig/sikuli-script/CMakeLists.txt 2012-04-15 22:14:18.000000000 +0200 +++ sikuli/sikuli-script/CMakeLists.txt 2012-04-15 22:14:18.000000000 +0200 @@ -156,7 +156,7 @@ add_dependencies(${JAR_FILE} ${JAR_FILE}.classes-in-jar #${JAR_FILE}.python-src-in-jar - ${JAR_FILE}.tessdata-in-jar + #${JAR_FILE}.tessdata-in-jar #${JAR_FILE}.libs-in-jar #${JAR_FILE}.includes-in-jar #${JAR_FILE}.jython-in-jar Index: sikuli/sikuli-script/src/main/java/org/sikuli/script/TextRecognizer.java =================================================================== --- sikuli.orig/sikuli-script/src/main/java/org/sikuli/script/TextRecognizer.java 2012-04-15 22:14:18.000000000 +0200 +++ sikuli/sikuli-script/src/main/java/org/sikuli/script/TextRecognizer.java 2012-04-15 22:54:45.000000000 +0200 @@ -11,6 +11,7 @@ import java.util.Enumeration; import java.util.List; import java.util.LinkedList; +import java.lang.System; import org.sikuli.script.natives.Mat; import org.sikuli.script.natives.Vision; @@ -40,19 +41,14 @@ public void init(){ Debug.info("Text Recognizer inited."); try{ - String path = ResourceExtractor.extract("tessdata"); - // TESSDATA_PREFIX doesn't contain tessdata/ - if(path.endsWith("tessdata/")) - path = path.substring(0,path.length()-9); + String path = System.getenv("TESSDATA_PREFIX"); Settings.OcrDataPath = path; Debug.log(3, "OCR data path: " + path); Vision.initOCR(Settings.OcrDataPath); _init_succeeded = true; } - catch(IOException e){ - e.printStackTrace(); - }catch(Exception e){ + catch(Exception e){ e.printStackTrace(); } } Index: sikuli/sikuli-script/src/main/native/tessocr.cpp =================================================================== --- sikuli.orig/sikuli-script/src/main/native/tessocr.cpp 2012-04-15 22:14:18.000000000 +0200 +++ sikuli/sikuli-script/src/main/native/tessocr.cpp 2012-04-16 00:11:53.000000000 +0200 @@ -362,7 +362,7 @@ } bool OCR::isInitialized = false; -string OCR::_datapath = "tessdata"; +string OCR::_datapath = "/usr/share/tesseract-ocr/"; string OCR::_lang = "eng"; void OCR::setParameter(std::string param, std::string value){ @@ -394,16 +394,8 @@ if (isInitialized) return; - _datapath = datapath; + if (datapath) _datapath = datapath; -#ifdef WIN32 - string env_datapath = string("TESSDATA_PREFIX=") + string(datapath); - putenv(const_cast(env_datapath.c_str())); -#else - //putenv on Mac breaks the "open" command somehow. - //we have to use setenv instead. - setenv("TESSDATA_PREFIX", datapath, 1); -#endif int ret = _tessAPI.Init(datapath, _lang.c_str(), OEM_TESSERACT_ONLY); //cout << (ret==0?"done":"failed") << endl; debian/patches/fix-cmake-sikuli-ide.patch0000644000000000000000000000107612175725463015557 0ustar Description: Fix build-time dependencies for sikuli-ide Author: Gilles Filippini Index: sikuli/sikuli-ide/CMakeLists.txt =================================================================== --- sikuli.orig/sikuli-ide/CMakeLists.txt 2011-10-04 23:27:53.000000000 +0200 +++ sikuli/sikuli-ide/CMakeLists.txt 2011-10-04 23:32:05.000000000 +0200 @@ -307,6 +307,8 @@ ENDFOREACH(JAR ${INCLUDE_JARS}) +get_filename_component(target ${JAR_FILE} NAME_WE) +add_dependencies( include_${target} ${JAR_FILE}) add_dependencies( app ${APP_FILE}) ## Language files debian/patches/gcc-4.7.patch0000644000000000000000000000122612175725463012715 0ustar Description: Fix FTBFS with gcc-4.7 Author: Gilles Filippini Bug-Debian: http://bugs.debian.org/671990 Index: sikuli/sikuli-script/src/main/native/sikuli-debug.h =================================================================== --- sikuli.orig/sikuli-script/src/main/native/sikuli-debug.h 2011-11-10 23:53:01.000000000 +0100 +++ sikuli/sikuli-script/src/main/native/sikuli-debug.h 2012-05-11 23:34:39.000000000 +0200 @@ -34,7 +34,7 @@ std::basic_ios(&m_sbuf), std::basic_ostream(&m_sbuf) { - init(&m_sbuf); + this->init(&m_sbuf); } private: debian/patches/install-extension.patch0000644000000000000000000000226512175725463015337 0ustar Description: Fix extensions installation in user space Author: Gilles Filippini Index: sikuli/sikuli-script/src/main/java/org/sikuli/script/ExtensionManager.java =================================================================== --- sikuli.orig/sikuli-script/src/main/java/org/sikuli/script/ExtensionManager.java 2011-09-22 23:37:18.000000000 +0200 +++ sikuli/sikuli-script/src/main/java/org/sikuli/script/ExtensionManager.java 2011-09-26 11:52:00.000000000 +0200 @@ -132,13 +132,14 @@ File targetFile = new File(extPath, extName); if(targetFile.exists()) targetFile.delete(); - if( !localFile.renameTo(targetFile) ){ + Runtime.getRuntime().exec("mv " + localFile.getAbsolutePath() + " " + targetFile.getAbsolutePath()).waitFor(); + if( !targetFile.exists() ){ Debug.error("Failed to install " + localFile.getName() + " to " + targetFile.getAbsolutePath()); return false; } addExtension(name, url_, version_); } - catch(IOException e){ + catch(Exception e){ Debug.error("Failed to download " + url_); e.printStackTrace(); return false; debian/orig-tar.exclude0000644000000000000000000000020612175725463012277 0ustar design extensions release sikuli-ide/target/win32 sikuli-ide/target/osx-* utils lib MacUtil.java Win32Util.java .gitignore .bzrignore debian/sikuli-ide.manpages0000644000000000000000000000002412175725463012752 0ustar debian/sikuli-ide.1 debian/libsikuli-script-java.install0000644000000000000000000000007212175725463015001 0ustar sikuli-script/src/main/python/sikuli usr/share/sikuli/Lib debian/changelog0000644000000000000000000001703312175725463011060 0ustar sikuli (1.0~x~rc3.tesseract3-dfsg1-7ubuntu1) saucy; urgency=low * Merge from Debian unstable. * Dropped patches: - jgoodies-1.6-compat.patch: superseeded by new snapshot * debian/patches/force-java6-target.patch: fix lintian warning for java bytecode -- Yolanda Robla Wed, 24 Jul 2013 13:10:29 +0200 sikuli (1.0~x~rc3.tesseract3-dfsg1-7) unstable; urgency=low * Revert fix for java.lang.UnsatisfiedLinkError which was arch dependent while sikuli-ide is arch all /o\. By the way the corresponding bug (#714393) is now tagged wontfix since it's sun-java6 related. * debian/control: fix VCS fields * Add description for patch setTextAndMnemonic.patch -- Gilles Filippini Sat, 13 Jul 2013 18:44:41 +0200 sikuli (1.0~x~rc3.tesseract3-dfsg1-6) unstable; urgency=low [tony mancill ] * fix typo in d/control (Closes: #682011) [Gilles Filippini ] * new patch: + setTextAndMnemonic.patch: replace deprecated DefaultComponentFactory#setTextAndMnemonic with MnemonicUtils#configure (Closes: #711310) * Updated patch: + executable-wrappers.patch: add /usr/lib//jni to LD_LIBRARY_PATH (fix java.lang.UnsatisfiedLinkError for JXGrabKey) -- Gilles Filippini Sat, 08 Jun 2013 00:28:24 +0200 sikuli (1.0~x~rc3.tesseract3-dfsg1-5ubuntu1) raring; urgency=low * Fix FTBFS with jgoodies >= 1.5: - d/control: BD on libjgoodies-common-java. - d/p/jgoodies-1.6-compat.patch: Compatibility patch which removes use of deprecated/removed methods and adds jgoodies-common to the build classpath. -- James Page Fri, 07 Dec 2012 22:13:08 +0000 sikuli (1.0~x~rc3.tesseract3-dfsg1-5) unstable; urgency=low * New patch no-opencv-surf-module.patch: Remove unsused portions of source code with dependency on the opencv SURF module which isn't shipped anymore starting with opencv 2.4 because of being non-free (Closes: #678230) -- Gilles Filippini Mon, 25 Jun 2012 12:33:23 +0200 sikuli (1.0~x~rc3.tesseract3-dfsg1-4) unstable; urgency=low * d/control: Depends: libopencv-dev to have OpenCVConfig.cmake (fix FTBFS) * Fix patch executable-wrappers.patch: + Remove /usr/share/java/jna-posix.jar from the classpath so that it doesn't take precedence on /usr/share/java/jnr-posix.jar required by jython (Closes: #675160) * d/README.Debian: + Add a note about Sun Java 6 and multiarch (workaround for java.lang.UnsatisfiedLinkError with java-6-sun) -- Gilles Filippini Mon, 04 Jun 2012 18:39:45 +0200 sikuli (1.0~x~rc3.tesseract3-dfsg1-3) unstable; urgency=low * New patch: + gcc-4.7.patch: Fix FTBFS with gcc-4.7 (Closes: #671990) -- Gilles Filippini Fri, 11 May 2012 23:51:05 +0200 sikuli (1.0~x~rc3.tesseract3-dfsg1-2) unstable; urgency=low * d/control: + sikuli-ide: Add missing dependency libswing-layout-java (fix ClassDefNotFound exception when opening the preferences dialog) + libsikuli-script-java: Add dependency tesseract-ocr-eng as a workaround for there is no way for the user to change the language setting for tesseract + Bump Standards-Version to 3.9.3 * d/copyright: Update URL of the Machine-readable format specification version 1.0 * New patch: + tessdata.patch: Use the default path for tesseract data, overridable with the TESSDATA_PREFIX environment variable (Closes: #667513, LP: #976352, LP: #979524) -- Gilles Filippini Mon, 16 Apr 2012 11:21:08 +0200 sikuli (1.0~x~rc3.tesseract3-dfsg1-1) unstable; urgency=low * Merge with the feature/tesseract3 branch from upstream * debian/control: Build-Depends: libtesseract-dev instead of deprecated tesseract-ocr-dev (Closes: #659598) * The upstream source code repository moved to github * New patch: + tess3.patch: - Fix build with tesseract3 - use OCR strategie OEM_TESSERACT_ONLY for now. Upstream has reported a 4x slowdown when using OEM_TESSERACT_CUBE_COMBINED * Patch fix-cmake-sikuli-ide.patch: + Add a DEP3 style description * debian/copyright: + Update DEP5 Format URL + Bump copyright years -- Gilles Filippini Wed, 15 Feb 2012 15:17:58 +0100 sikuli (1.0~x~rc3-dfsg1-3) unstable; urgency=low [ Torsten Werner ] * Improve executable-wrappers.patch to add asm3-commons.jar to runtime CLASSPATH. (Closes: #643563) -- Gilles Filippini Thu, 10 Nov 2011 22:37:06 +0100 sikuli (1.0~x~rc3-dfsg1-2) unstable; urgency=low * New patch fix-cmake-sikuli-ide.patch: + Fix random FTBFS due to missing inter target dependency -- Gilles Filippini Tue, 04 Oct 2011 23:32:13 +0200 sikuli (1.0~x~rc3-dfsg1-1) unstable; urgency=low * New upstream release: + Sikuli IDE - Auto indentation - New settings in preferences: expand tab, tab width, font style, font size - locale setting - ESC cancels screen capture mode - Sikuli code (including images) can be copied across tabs - Sikuli code can be copied as plain text to other programs/text editors - Window size and opened files are remembered and restored automatically + Sikuli Script - App class supports Linux now (wmctrl and xdotool required.) - Java APIs are more consistent with Jython's - New hotkey API allows the user to register hotkeys that trigger a Sikuli function - A parameter of Sikuli's vision engine MinTargetSize can be changed to adjust the robustness/speed of the engine - Pure color templates matching - popup() accepts an optional parameter for setting the title of the dialog - Some error messages are improved + Bug fixes - Closes: #642794. - Many bugs in the matching preview window are fixed - not hanging anymore, preview is consistent with the result of findAll. * orig.tar.gz: + drop extensions which should ship into their own source packages since they have their own versioning * debian/control + Multi-Arch support + libsikuli-script-java: Depends wmctrl, xdotool * debian/rules + Multi-Arch support * debian/copyright, debian/README.source: + More accurate information about how to download the source + Updated removed parts list -- Gilles Filippini Tue, 04 Oct 2011 00:57:09 +0200 sikuli (1.0~x~rc2-dfsg1-2) unstable; urgency=low * debian/control, debian/copyright: + Fix pkg-java-maintainers address. * debian/copyright: + Update to DEP5 format specification rev174 -- Gilles Filippini Sat, 16 Apr 2011 12:48:15 +0200 sikuli (1.0~x~rc2-dfsg1-1) unstable; urgency=low * New upstream release: + Redesigned user interface for Sikuli-IDE + Support for extensions for Sikuli Script * debian/control, debian/copyright: The package is now maintained by the Debian Java maintainers Team -- Gilles Filippini Sat, 16 Apr 2011 00:23:53 +0200 sikuli (1.0~x~rc1-dfsg1-2) unstable; urgency=low * debian/control: enforce java6 dependency using a versioned [Build-]Depends against default-jdk and default-jre (>= 1:1.6) instead of depending on java6-sdk and java6-runtime. -- Gilles Filippini Mon, 24 Jan 2011 01:07:30 +0100 sikuli (1.0~x~rc1-dfsg1-1) unstable; urgency=low * Initial release (Closes: #578125) -- Gilles Filippini Thu, 20 Jan 2011 22:37:52 +0100 debian/copyright0000644000000000000000000000427412175725463011144 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Sikuli Upstream-Contact: Tsung-Hsiang Chang Tom Yeh Source: https://github.com/sikuli/sikuli See debian/README.source for details as well as for removed parts from upstream source. Files: * Copyright: 2009-2012 Massachusetts Institute of Technology License: MIT Files: debian/* Copyright: 2010-2012 Debian Java maintainers License: GPL-3+ License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. License: GPL-3+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems the full text of the GNU General Public License version 3 can be found in the `/usr/share/common-licenses/GPL-3' file. debian/README.source0000644000000000000000000000230212175725463011356 0ustar sikuli for Debian ----------------- 1- Source tarball 1.1- Obtaining upstream source Upstream has its source code repository on github: https://github.com/sikuli/sikuli Our git repo has the upstream one set as remote. 1.2- Removing non DFSG parts Upstream source comes with files which shouldn't be part of a source tarball, such as external java libraries already packaged for Debian. Since we need to remove these files, we also remove other unneeded parts: * win32 and OS-X target files * mx-native-loader Native JNI library loader ; let's use System.loadLibrary(). * presentation made with MS-Powerpoint * utils dir (upstream dev tools, coverage tests, useless for the end-user) * extensions (see below) The removal is done manually when merging upstream's 'master' branch into our local 'upstream' branch. Paths to remove are listed into debian/orig-tar.exclude. Note: We don't use jh_repack because it would only remove jar files, here. 2- Extensions Extensions such as Guide follow their own versionning scheme and should be shipped into via separate source packages as such. That's why I remove the 'extensions' subdirectory as well from the source tarball. Sikuli Guide will need its own ITP.