summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-04-23 03:02:25 +0000
committerNorbert Preining <norbert@preining.info>2020-04-23 03:02:25 +0000
commitb86f6f3256611ce04f593d897b9cf412d18fa062 (patch)
treec5fecf75a10834f6ca5b39548a48f67d6294918c /support
parente0e2537ccbac6924b371be81092c1177e817162c (diff)
CTAN sync 202004230302
Diffstat (limited to 'support')
-rw-r--r--support/lacheck/Makefile.in40
-rw-r--r--support/lacheck/aclocal.m450
-rwxr-xr-xsupport/lacheck/configure.texk4
-rw-r--r--support/tlcockpit/ChangeLog82
-rw-r--r--support/tlcockpit/NEWS6
-rw-r--r--support/tlcockpit/README.md36
-rw-r--r--support/tlcockpit/build.sbt-jdk1255
-rw-r--r--support/tlcockpit/build.sbt-jdk14 (renamed from support/tlcockpit/build.sbt-jdk11)12
-rw-r--r--support/tlcockpit/build.sbt-jdk86
-rw-r--r--support/tlcockpit/project/build.properties2
-rwxr-xr-xsupport/tlcockpit/scripts/tlcockpit.sh2
-rw-r--r--support/tlcockpit/src/main/scala/TLCockpit/ApplicationMain.scala126
-rw-r--r--support/tlcockpit/src/main/scala/TLCockpit/LocationDialog.scala2
-rw-r--r--support/tlcockpit/src/main/scala/TLCockpit/OptionsDialog.scala3
-rw-r--r--support/tlcockpit/src/main/scala/TLCockpit/PaperDialog.scala2
-rw-r--r--support/tlcockpit/src/main/scala/TLCockpit/PkgInfoDialog.scala2
16 files changed, 270 insertions, 160 deletions
diff --git a/support/lacheck/Makefile.in b/support/lacheck/Makefile.in
index ec6f6ff382..5d6b9adc85 100644
--- a/support/lacheck/Makefile.in
+++ b/support/lacheck/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.2 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -180,8 +180,8 @@ am__uninstall_files_from_dir = { \
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(nodist_man1_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)config.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
@@ -952,6 +952,10 @@ dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@@ -994,6 +998,8 @@ distcheck: dist
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
@@ -1184,19 +1190,19 @@ uninstall-man: uninstall-man1
check-TESTS check-am clean clean-binPROGRAMS clean-cscope \
clean-generic cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-compile \
- distclean-generic distclean-hdr distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-binPROGRAMS install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-man1 install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
- uninstall uninstall-am uninstall-binPROGRAMS uninstall-man \
- uninstall-man1
+ dist-xz dist-zip dist-zstd distcheck distclean \
+ distclean-compile distclean-generic distclean-hdr \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ ps ps-am recheck tags tags-am uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-man uninstall-man1
.PRECIOUS: Makefile
diff --git a/support/lacheck/aclocal.m4 b/support/lacheck/aclocal.m4
index b054514204..524bba3434 100644
--- a/support/lacheck/aclocal.m4
+++ b/support/lacheck/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.2], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.2])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -371,7 +371,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
done
if test $am_rc -ne 0; then
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).])
fi
@@ -398,7 +400,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -595,7 +597,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -616,7 +618,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -638,7 +640,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -673,7 +675,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -716,7 +718,7 @@ AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -755,7 +757,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -784,7 +786,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -831,7 +833,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -850,7 +852,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -931,7 +933,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -991,7 +993,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1019,7 +1021,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1038,7 +1040,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/support/lacheck/configure.texk b/support/lacheck/configure.texk
index 422c0fa12a..50fb5fa189 100755
--- a/support/lacheck/configure.texk
+++ b/support/lacheck/configure.texk
@@ -5202,7 +5202,9 @@ $as_echo X/"$am_mf" |
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See \`config.log' for more details" "$LINENO" 5; }
diff --git a/support/tlcockpit/ChangeLog b/support/tlcockpit/ChangeLog
index 662d0a6d4c..498f8099e6 100644
--- a/support/tlcockpit/ChangeLog
+++ b/support/tlcockpit/ChangeLog
@@ -1,10 +1,86 @@
+2020-04-23 Norbert Preining <norbert@preining.info>
+
+ * Release 1.2 (HEAD -> master) [a35c518]
+
+2020-04-23 Norbert Preining <norbert@preining.info>
+
+ * update release script [ecd7160]
+
+2020-04-23 Norbert Preining <norbert@preining.info>
+
+ * update jars [cac100a]
+
+2020-04-19 Norbert Preining <norbert@preining.info>
+
+ * disable another forced dialog size (origin/master, origin/HEAD) [22ada11]
+
+2020-04-18 Norbert Preining <norbert@preining.info>
+
+ * update jar (jdk14 from OpenJDK/Debian, jdk8 from Oracle) [38c9dfe]
+
+2020-04-18 Norbert Preining <norbert@preining.info>
+
+ * update release version number [e2f8707]
+
+2020-04-10 Norbert Preining <norbert@preining.info>
+
+ * use lfs for storing jar files, update attributes [2e3e78a]
+
+2020-04-10 Norbert Preining <norbert@preining.info>
+
+ * update jars [7d8c1f9]
+
+2020-04-10 Norbert Preining <norbert@preining.info>
+
+ * bump jdk8 scala and scalafx versions, bump tlcockpit version [420c7a6]
+
+2020-04-10 Norbert Preining <norbert@preining.info>
+
+ * do not request 1500 height of dialogs, should auto-size [e3a8d44]
+
+2020-04-10 Norbert Preining <norbert@preining.info>
+
+ * update scalafx version [d7f57bc]
+
+2020-04-10 Norbert Preining <norbert@preining.info>
+
+ * update README, bump copyright year to 2020 [7baf6c7]
+
+2020-04-09 Norbert Preining <norbert@preining.info>
+
+ * use java.specification.version, support single number versions [96ad401]
+
+2020-04-09 Norbert Preining <norbert@preining.info>
+
+ * build default with JDK14, result runs on JDK11, too [67aa7f2]
+
+2020-04-09 Norbert Preining <norbert@preining.info>
+
+ * configuration of startup tab via menu and .tlcockpit.conf [f9a3835]
+
+2020-04-09 Norbert Preining <norbert@preining.info>
+
+ * switch to newer sbt on jdk14 builds, add sbt file for jdk14 [afdf9e1]
+
+2019-09-30 Norbert Preining <norbert@preining.info>
+
+ * add HiDPI info to README [d0f9a73]
+
+2019-09-03 Norbert Preining <norbert@preining.info>
+
+ * bump sbt build version to 1.2.8 [48ae3bf]
+
+2019-07-14 Norbert Preining <norbert@preining.info>
+
+ * update README and app copyright, add explanation about JDKs [0b04518]
+
2019-07-11 Norbert Preining <norbert@preining.info>
- * Release 1.1 (HEAD -> master) [c62030d]
+ * Release 1.1 (tag: v1.1) [c62030d]
2019-07-11 Norbert Preining <norbert@preining.info>
- * ship both jdk8 and jdk11 jars, wrapper checks version (origin/master, origin/HEAD) [cf285a0]
+ * ship both jdk8 and jdk11 jars, wrapper checks version [cf285a0]
2019-07-11 Norbert Preining <norbert@preining.info>
@@ -168,7 +244,7 @@
2018-04-08 Norbert Preining <norbert@preining.info>
- * update jar and runner to add exec (tag: v0.9) [d8bfe81]
+ * update jar and runner to add exec [d8bfe81]
2018-04-08 Norbert Preining <norbert@preining.info>
diff --git a/support/tlcockpit/NEWS b/support/tlcockpit/NEWS
index e84482445f..3262041900 100644
--- a/support/tlcockpit/NEWS
+++ b/support/tlcockpit/NEWS
@@ -1,5 +1,11 @@
NEWS for tlcockpit
+version 1.2 (20200419)
+----------------------
+- Allow configuration of startup tab from menu, configuration is
+ saved into ~/.tlcockpit.conf
+- build with jdk14 (result still runs on jdk11)
+
version 1.1 (20190711)
----------------------
- build jdk8 and jdk11 versions - jdk11 includes javafx
diff --git a/support/tlcockpit/README.md b/support/tlcockpit/README.md
index c5b9bbd8d2..cdcf61d699 100644
--- a/support/tlcockpit/README.md
+++ b/support/tlcockpit/README.md
@@ -27,11 +27,15 @@ Debugging can be enabled by passing the option `-d` or, for more detailed debugg
Requirements
------------
-You need at least `tlmgr` from after 2017-11-23, in TeX Live language at least
-version 45888 or `texlive.infra`.
+Currently TLCockpit is shipped with two jars, one for JDK8 and one for JDK9+.
+The JDK8 version does *not* contain the JavaFX as it is normally shipped together
+with the JDK. The JDK9+ version contains JavaFX modules and thus should work
+without the need for additional installations.
-A recent Java (at least Java 8) installation that includes JavaFX is required. If you see
-errors like
+The default for TLCockpit shell wrapper (used on Unix and Mac) is to check for the
+version of Java (using `java -version`) and use the appropriate jar.
+
+If you are running Java 8 and see the following errors
```
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/event/EventTarget
@@ -44,11 +48,19 @@ that means that the Java installation does not provides JavaFX.
On Windows the latest JRE from Oracle include JavaFX. On Linux one might
need to install some extra packages (Debian/Ubuntu: openjfx).
-With recent release of Java 11 problems are getting worse, since JavaFX is now
-separately packaged, and ScalaFX only supports (by now) JavaFX8. That means, for
-now it is necessary to have a Java 8 installation. As soon as ScalaFX supports
-JavaFX11 we will move to use it.
+HiDPI support
+-------------
+Depending on your JDK version and operating system, Java might not correctly
+detect the presence of a HiDPI screen.
+
+Upgrading to JDK14 should help in this case.
+For other versions, you might be able to fix it by setting the environment
+variable
+```
+export GDK_SCALE=2
+```
+(or even `=3`) might help.
Development
-----------
@@ -110,10 +122,12 @@ The Tools menu, as well as the expert and debug panes open
![Menu, Expert, Debug](screenshots/tlcockpit-menu-debug-expert.jpg)
-License
--------
+Copyright and License
+---------------------
-GPL3+
+Copyright 2017-2020 Norbert Preining
+Licenced under the GNU General Public License, version 3 or any higher version
+(GPL3+)
Author
diff --git a/support/tlcockpit/build.sbt-jdk12 b/support/tlcockpit/build.sbt-jdk12
deleted file mode 100644
index 0e31eb3423..0000000000
--- a/support/tlcockpit/build.sbt-jdk12
+++ /dev/null
@@ -1,55 +0,0 @@
-name := "tlcockpit"
-
-version := "1.1"
-
-scalaVersion := "2.12.7"
-
-val javaVersion:Int = 12
-
-libraryDependencies += "io.spray" %% "spray-json" % "1.3.3"
-libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.7.2"
-libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.2.3"
-libraryDependencies += "org.json4s" %% "json4s-native" % "3.6.0-M3"
-libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.6.0-M3"
-
-// Add dependency on ScalaFX library
-// libraryDependencies += "org.scalafx" %% "scalafx" % "11-R16"
-libraryDependencies += "org.scalafx" % "scalafx_2.12" % "12.0.1-R17"
-
-lazy val root = (project in file(".")).
- enablePlugins(BuildInfoPlugin).
- settings(
- buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion, BuildInfoKey(("javaVersion", javaVersion))),
- buildInfoPackage := "TLCockpit"
- )
-
-
-// Determine OS version of JavaFX binaries
-lazy val osName = System.getProperty("os.name") match {
- case n if n.startsWith("Linux") => "linux"
- case n if n.startsWith("Mac") => "mac"
- case n if n.startsWith("Windows") => "win"
- case _ => throw new Exception("Unknown platform!")
-}
-
-lazy val javaFXModules = Seq("base", "controls", "fxml", "graphics", "media", "swing", "web")
-libraryDependencies ++= javaFXModules.map( m =>
- // with this the modules will NOT be included in the fat jar!
- // "org.openjfx" % s"javafx-$m" % javaVersion % "provided" classifier osName
- "org.openjfx" % s"javafx-$m" % javaVersion.toString classifier osName
-)
-
-assemblyMergeStrategy in assembly := {
- case PathList("module-info.class", xs @ _*) => MergeStrategy.discard
- case PathList("META-INF", "MANIFEST.MF", xs @ _*) => MergeStrategy.discard
- case x => MergeStrategy.first
-}
-
-mainClass in assembly := Some("TLCockpit.ApplicationMain")
-
-assemblyJarName in assembly := "tlcockpit-jdk12.jar"
-assemblyOutputPath in assembly := file("jar/tlcockpit-jdk12.jar")
-
-
-// for scalafx
-fork := true
diff --git a/support/tlcockpit/build.sbt-jdk11 b/support/tlcockpit/build.sbt-jdk14
index bf490132f5..4beec43b95 100644
--- a/support/tlcockpit/build.sbt-jdk11
+++ b/support/tlcockpit/build.sbt-jdk14
@@ -1,10 +1,10 @@
name := "tlcockpit"
-version := "1.1"
+version := "1.2"
-scalaVersion := "2.12.7"
+scalaVersion := "2.12.11"
-val javaVersion:Int = 11
+val javaVersion:Int = 14
libraryDependencies += "io.spray" %% "spray-json" % "1.3.3"
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.7.2"
@@ -14,7 +14,7 @@ libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.6.0-M3"
// Add dependency on ScalaFX library
// libraryDependencies += "org.scalafx" %% "scalafx" % "11-R16"
-libraryDependencies += "org.scalafx" % "scalafx_2.12" % "12.0.1-R17"
+libraryDependencies += "org.scalafx" % "scalafx_2.12" % "12.0.2-R18"
lazy val root = (project in file(".")).
enablePlugins(BuildInfoPlugin).
@@ -47,8 +47,8 @@ assemblyMergeStrategy in assembly := {
mainClass in assembly := Some("TLCockpit.ApplicationMain")
-assemblyJarName in assembly := "tlcockpit-jdk11.jar"
-assemblyOutputPath in assembly := file("jar/tlcockpit-jdk11.jar")
+assemblyJarName in assembly := "tlcockpit.jar"
+assemblyOutputPath in assembly := file("jar/tlcockpit.jar")
// for scalafx
diff --git a/support/tlcockpit/build.sbt-jdk8 b/support/tlcockpit/build.sbt-jdk8
index ac19d09077..026ba15e18 100644
--- a/support/tlcockpit/build.sbt-jdk8
+++ b/support/tlcockpit/build.sbt-jdk8
@@ -1,12 +1,12 @@
name := "tlcockpit"
-version := "1.1"
+version := "1.2"
-scalaVersion := "2.12.7"
+scalaVersion := "2.12.11"
val javaVersion:Int = 8
-libraryDependencies += "org.scalafx" %% "scalafx" % "8.0.181-R13"
+libraryDependencies += "org.scalafx" %% "scalafx" % "8.0.192-R14"
libraryDependencies += "io.spray" %% "spray-json" % "1.3.3"
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.7.2"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.2.3"
diff --git a/support/tlcockpit/project/build.properties b/support/tlcockpit/project/build.properties
index 091249b92e..77ee500d9b 100644
--- a/support/tlcockpit/project/build.properties
+++ b/support/tlcockpit/project/build.properties
@@ -1 +1 @@
-sbt.version = 1.2.6
+sbt.version = 1.3.9
diff --git a/support/tlcockpit/scripts/tlcockpit.sh b/support/tlcockpit/scripts/tlcockpit.sh
index 1b2e8d9cb0..11da62a683 100755
--- a/support/tlcockpit/scripts/tlcockpit.sh
+++ b/support/tlcockpit/scripts/tlcockpit.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Public domain. Originally written by Norbert Preining and Karl Berry, 2018-2019.
+# Public domain. Originally written by Norbert Preining and Karl Berry, 2018-2020.
scriptname=`basename "$0"`
javaVersion=$(java -version 2>&1 | head -1)
diff --git a/support/tlcockpit/src/main/scala/TLCockpit/ApplicationMain.scala b/support/tlcockpit/src/main/scala/TLCockpit/ApplicationMain.scala
index 4574ac4966..1864c8ab21 100644
--- a/support/tlcockpit/src/main/scala/TLCockpit/ApplicationMain.scala
+++ b/support/tlcockpit/src/main/scala/TLCockpit/ApplicationMain.scala
@@ -47,6 +47,10 @@ import scalafx.event.ActionEvent
import scalafx.collections.ObservableBuffer
import scalafx.collections.ObservableMap
+// configuration file handling support
+import java.util.Properties
+import java.io.{ File, FileOutputStream, FileInputStream }
+
// JSON support - important load TLPackageJsonProtocol later!
import spray.json._
import TeXLive.JsonProtocol._
@@ -88,47 +92,50 @@ object ApplicationMain extends JFXApp with LazyLogging {
logger.trace("starting program tlcockpit")
- val javaVersion = System.getProperty("java.version")
+ val javaVersion = System.getProperty("java.specification.version")
val javaVersionSplit: Array[String] = javaVersion.split('.')
logger.debug(s"Got javaVersion ${javaVersion}")
- if (javaVersionSplit.length == 1) {
- logger.warn(s"Cannot find Java version from ${javaVersion}, continuing anyway!")
- } else {
- val major = toInt(javaVersionSplit(0))
- val minor = toInt(javaVersionSplit(1))
- major match {
- case Some(i) =>
- if (major.get == 1) {
- minor match {
- case Some(j) =>
- if (minor.get < 8) {
- logger.error(s"Java version ${javaVersion} too old, need >= 1.8, terminating!")
- Platform.exit()
- sys.exit(1)
- } else if (minor.get == 8) {
- if (BuildInfo.javaVersion != 8) {
- logger.warn(s"Build and run versions disagree: build: ${BuildInfo.javaVersion}, run: ${major.get}.${minor.get}, trying anyway!")
- }
+ val major = toInt(javaVersionSplit(0))
+ major match {
+ case Some(i) =>
+ if (major.get == 1) {
+ val minor = toInt(javaVersionSplit(1))
+ minor match {
+ case Some(j) =>
+ if (minor.get < 8) {
+ logger.error(s"Java version ${javaVersion} too old, need >= 1.8, terminating!")
+ Platform.exit()
+ sys.exit(1)
+ } else if (minor.get == 8) {
+ if (BuildInfo.javaVersion != 8) {
+ logger.warn(s"Build and run versions disagree: build: ${BuildInfo.javaVersion}, run: ${major.get}.${minor.get}, trying anyway!")
}
- case None =>
- logger.warn(s"Cannot find Java version from ${javaVersion}, continuing anyway!")
- }
- } else {
- if (major.get > 9) {
- if (major.get != BuildInfo.javaVersion) {
- logger.warn(s"Build and run versions disagree: build: ${BuildInfo.javaVersion}, run: ${major.get}, trying anyway!")
}
- } else {
- logger.warn(s"Strange version number, please report: ${javaVersion}, continuing anyway!")
+ case None =>
+ logger.warn(s"Cannot find Java version from ${javaVersion}, continuing anyway!")
+ }
+ } else {
+ if (major.get > 9) {
+ if (major.get != BuildInfo.javaVersion) {
+ logger.warn(s"Build and run versions disagree: build: ${BuildInfo.javaVersion}, run: ${major.get}, trying anyway!")
}
+ } else {
+ logger.warn(s"Strange version number, please report: ${javaVersion}, continuing anyway!")
}
- case None =>
- logger.warn(s"Cannot find Java version from ${javaVersion}, continuing anyway!")
- }
- // in all other cases just hope it is fine
- logger.info(s"Running on Java Version ${javaVersion}")
+ }
+ case None =>
+ logger.warn(s"Cannot find Java version from ${javaVersion}, continuing anyway!")
}
+ logger.info(s"Running on Java Version ${javaVersion}")
+
+ val userHomeDirectory = System.getProperty("user.home")
+ val confPath = userHomeDirectory + "/.tlcockpit.conf"
+ val props = new Properties()
+ val propsFile = new File(confPath)
+ if (propsFile.exists()) {
+ props.load(new FileInputStream(propsFile))
+ }
var tlmgrBusy = BooleanProperty(false)
@@ -362,7 +369,7 @@ object ApplicationMain extends JFXApp with LazyLogging {
title = "About TLCockpit"
graphic = new ImageView(logoImage)
headerText = "TLCockpit version " + version + "\n\nManage your TeX Live with speed!"
- contentText = "Copyright 2017-2018 Norbert Preining\nLicense: GPL3+\nSources: https://github.com/TeX-Live/tlcockpit"
+ contentText = "Copyright 2017-2020 Norbert Preining\nLicense: GPL3+\nSources: https://github.com/TeX-Live/tlcockpit"
}.showAndWait()
}
@@ -1068,10 +1075,39 @@ tlmgr>
})
}
+ def save_properties(): Unit = {
+ props.store(new FileOutputStream(confPath), null)
+ }
+ val StartTabPkgs = new RadioMenuItem("Packages") {
+ onAction = (ae) => {
+ props.setProperty("StartupTab", "packages")
+ save_properties()
+ }
+ }
+ val StartTabUpds = new RadioMenuItem("Updates") {
+ onAction = (ae) => {
+ props.setProperty("StartupTab","updates")
+ save_properties()
+ }
+ }
+ val StartTabBcks = new RadioMenuItem("Backups") {
+ onAction = (ae) => {
+ props.setProperty("StartupTab","backups")
+ save_properties()
+ }
+ }
+
+ val startupTabMenu: Menu = new Menu("Startup Tab") {
+ val foo = new ToggleGroup
+ foo.toggles = Seq(StartTabPkgs, StartTabUpds, StartTabBcks)
+ items = List(StartTabPkgs, StartTabUpds, StartTabBcks)
+ }
+
val optionsMenu: Menu = new Menu("Options") {
items = List(
new MenuItem("General ...") { onAction = (ae) => callback_general_options() },
new MenuItem("Paper ...") { onAction = (ae) => callback_paper() },
+ startupTabMenu
/* new MenuItem("Platforms ...") { disable = true; onAction = (ae) => not_implemented_info() },
new SeparatorMenuItem,
new CheckMenuItem("Expert options") { disable = true },
@@ -1415,6 +1451,27 @@ tlmgr>
stage.width = 800
+ val selectedTab = props.getOrDefault("StartupTab", "packages")
+ StartTabPkgs.selected = true
+ StartTabUpds.selected = false
+ StartTabBcks.selected = false
+ var StartupTab = 0
+ selectedTab match {
+ case "packages" => {}
+ case "updates" => {
+ StartTabPkgs.selected = false
+ StartTabUpds.selected = true
+ StartupTab = 1
+ }
+ case "backups" => {
+ StartTabPkgs.selected = false
+ StartTabBcks.selected = true
+ StartupTab = 2
+ }
+ case _ => {
+ logger.warn(s"Unrecognized setting for StartupTab in config file: $selectedTab")
+ }
+ }
var currentPromise = Promise[(String,Array[String])]()
val pendingJobs = scala.collection.mutable.Queue[(String,(String, Array[String]) => Unit)]()
@@ -1567,6 +1624,7 @@ tlmgr>
logger.debug("Before loading tlpdb")
load_tlpdb_update_pkgs_view_no_json()
logger.debug("after loading tlpdb")
+ pkgstabs.selectionModel().select(StartupTab)
})
}
diff --git a/support/tlcockpit/src/main/scala/TLCockpit/LocationDialog.scala b/support/tlcockpit/src/main/scala/TLCockpit/LocationDialog.scala
index 647e0cc038..2a45fb3db5 100644
--- a/support/tlcockpit/src/main/scala/TLCockpit/LocationDialog.scala
+++ b/support/tlcockpit/src/main/scala/TLCockpit/LocationDialog.scala
@@ -109,7 +109,7 @@ class LocationDialog(locs: Map[String,String]) extends LazyLogging {
grid.columnConstraints = Seq(new ColumnConstraints(100, 100, 200), new ColumnConstraints(250, 250, 5000, Priority.Always, HPos.LEFT, true))
dialog.dialogPane().content = grid
dialog.width = 500
- dialog.height = 1500
+ // dialog.height = 1500
dialog.resultConverter = dialogButton =>
if (dialogButton == ButtonType.OK) {
diff --git a/support/tlcockpit/src/main/scala/TLCockpit/OptionsDialog.scala b/support/tlcockpit/src/main/scala/TLCockpit/OptionsDialog.scala
index 52a9d5d0ce..3e23270d95 100644
--- a/support/tlcockpit/src/main/scala/TLCockpit/OptionsDialog.scala
+++ b/support/tlcockpit/src/main/scala/TLCockpit/OptionsDialog.scala
@@ -109,7 +109,8 @@ class OptionsDialog(opts: List[TLOption]) extends LazyLogging {
grid.columnConstraints = Seq(new ColumnConstraints(300, 300, 500), new ColumnConstraints(200, 200, 5000, Priority.Always, HPos.LEFT, true))
dialog.dialogPane().content = grid
dialog.width = 500
- dialog.height = 1500
+ // This seems to be necessary for some old versions of ScalaFX or JavaFX or Java??
+ // dialog.height = 1500
dialog.resultConverter = dialogButton =>
if (dialogButton == ButtonType.OK) {
diff --git a/support/tlcockpit/src/main/scala/TLCockpit/PaperDialog.scala b/support/tlcockpit/src/main/scala/TLCockpit/PaperDialog.scala
index 3d7a2e8403..cb3e28907c 100644
--- a/support/tlcockpit/src/main/scala/TLCockpit/PaperDialog.scala
+++ b/support/tlcockpit/src/main/scala/TLCockpit/PaperDialog.scala
@@ -64,7 +64,7 @@ class PaperDialog(paperconf: Map[String, TLPaperConf]) extends LazyLogging {
grid.columnConstraints = Seq(new ColumnConstraints(100, 100, 150), new ColumnConstraints(150, 150, 5000, Priority.Always, HPos.LEFT, true))
dialog.dialogPane().content = grid
dialog.width = 300
- dialog.height = 1500
+ // dialog.height = 1500
dialog.resultConverter = dialogButton =>
if (dialogButton == ButtonType.OK)
diff --git a/support/tlcockpit/src/main/scala/TLCockpit/PkgInfoDialog.scala b/support/tlcockpit/src/main/scala/TLCockpit/PkgInfoDialog.scala
index 89ba164de2..fbea1ecd62 100644
--- a/support/tlcockpit/src/main/scala/TLCockpit/PkgInfoDialog.scala
+++ b/support/tlcockpit/src/main/scala/TLCockpit/PkgInfoDialog.scala
@@ -116,7 +116,7 @@ class PkgInfoDialog(tlp: TLPackage) extends Dialog {
grid.columnConstraints = Seq(new ColumnConstraints(100, 200, 200), new ColumnConstraints(100, 400, 5000, Priority.Always, HPos.LEFT, true))
dialog.dialogPane().content = grid
dialog.width = 600
- dialog.height = 1500
+ // dialog.height = 1500
// dialog
def showAndWait(): Unit = this.dialog.showAndWait()