Bug#806630: libnative-platform-java: FTBFS when built with dpkg-buildpackage -A (mh_installjar fails)

Santiago Vila sanvila at debian.org
Sun Nov 29 16:22:53 UTC 2015


Package: src:libnative-platform-java
Version: 0.10+dfsg-1
User: sanvila at debian.org
Usertags: binary-indep
Severity: important

Dear maintainer:

I tried to build this package with "dpkg-buildpackage -A"
(i.e. only architecture-independent packages), and it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --with maven_repo_helper
   dh_testdir -i
   dh_auto_configure -i
   debian/rules override_dh_auto_build
make[1]: Entering directory '/<<BUILDDIR>>/libnative-platform-java-0.10+dfsg'
make -f debian/Makefile
make[2]: Entering directory '/<<BUILDDIR>>/libnative-platform-java-0.10+dfsg'
mkdir -p build/classes
javac -source 1.5 -target 1.5 -d build/classes -classpath /usr/share/java/joptsimple.jar src/main/java/net/rubygrapefruit/platform/Terminals.java src/main/java/net/rubygrapefruit/platform/FileSystems.java src/main/java/net/rubygrapefruit/platform/ProcessLauncher.java src/main/java/net/rubygrapefruit/platform/NativeIntegration.java src/main/java/net/rubygrapefruit/platform/Terminal.java src/main/java/net/rubygrapefruit/platform/SystemInfo.java src/main/java/net/rubygrapefruit/platform/MissingRegistryEntryException.java src/main/java/net/rubygrapefruit/platform/ThreadSafe.java src/main/java/net/rubygrapefruit/platform/Native.java src/main/java/net/rubygrapefruit/platform/TerminalSize.java src/main/java/net/rubygrapefruit/platform/PosixFile.java src/main/java/net/rubygrapefruit/platform/NativeException.java src/main/java/net/rubygrapefruit/platform/FileSystem.java src/main/java/net/rubygrapefruit/platform/package-info.java src/main/java/net/rubygrapefruit/platform/NativeIntegrationUnavailableException.java src/main/java/net/rubygrapefruit/platform/WindowsRegistry.java src/main/java/net/rubygrapefruit/platform/Process.java src/main/java/net/rubygrapefruit/platform/PosixFiles.java src/main/java/net/rubygrapefruit/platform/internal/WrapperProcessLauncher.java src/main/java/net/rubygrapefruit/platform/internal/NativeLibraryLocator.java src/main/java/net/rubygrapefruit/platform/internal/WindowsTerminals.java src/main/java/net/rubygrapefruit/platform/internal/DefaultFileSystem.java src/main/java/net/rubygrapefruit/platform/internal/Platform.java src/main/java/net/rubygrapefruit/platform/internal/WrapperProcess.java src/main/java/net/rubygrapefruit/platform/internal/PosixFileSystems.java src/main/java/net/rubygrapefruit/platform/internal/WrapperTerminal.java src/main/java/net/rubygrapefruit/platform/internal/DefaultPosixFiles.java src/main/java/net/rubygrapefruit/platform/internal/DefaultProcessLauncher.java src/main/java/net/rubygrapefruit/platform/internal/AbstractTerminals.java src/main/java/net/rubygrapefruit/platform/internal/AbstractTerminal.java src/main/java/net/rubygrapefruit/platform/internal/MutableTerminalSize.java src/main/java/net/rubygrapefruit/platform/internal/FileSystemList.java src/main/java/net/rubygrapefruit/platform/internal/DefaultWindowsRegistry.java src/main/java/net/rubygrapefruit/platform/internal/DefaultSystemInfo.java src/main/java/net/rubygrapefruit/platform/internal/TerminalCapabilities.java src/main/java/net/rubygrapefruit/platform/internal/MutableSystemInfo.java src/main/java/net/rubygrapefruit/platform/internal/TerminfoTerminals.java src/main/java/net/rubygrapefruit/platform/internal/NativeLibraryLoader.java src/main/java/net/rubygrapefruit/platform/internal/WindowsProcessLauncher.java src/main/java/net/rubygrapefruit/platform/internal/DefaultProcess.java src/main/java/net/rubygrapefruit/platform/internal/LibraryDef.java src/main/java/net/rubygrapefruit/platform/internal/TerminfoTerminal.java src/main/java/net/rubygrapefruit/platform/internal/FileStat.java src/main/java/net/rubygrapefruit/platform/internal/WindowsTerminal.java src/main/java/net/rubygrapefruit/platform/internal/jni/WindowsConsoleFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/NativeLibraryFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/TerminfoFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/WindowsHandleFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixFileSystemFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixFileFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixProcessFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/WindowsRegistryFunctions.java src/main/java/net/rubygrapefruit/platform/internal/jni/PosixTerminalFunctions.java src/main/java/net/rubygrapefruit/platform/internal/AnsiTerminal.java src/main/java/net/rubygrapefruit/platform/internal/FunctionResult.java
warning: [options] bootstrap class path not set in conjunction with -source 1.5
Note: src/main/java/net/rubygrapefruit/platform/internal/WrapperProcess.java uses unchecked or unsafe operations.

[... snipped ...]

	-V --version: show the version
	-p<package> --package=<package>: name of the Debian package which
	  will contain this jar file
	-e<version>, --set-version=<version>: set the version for the jar,
	  do not use the version declared in the POM file.
	-r<rules> --rules=<rules>: path to the file containing the
	  rules to apply when cleaning the POM.
	  Optional, the default location is debian/maven.rules
	  Maven rules are used here to extract the groupId, artifactId
	  and version from the POM file.
	-l --java-lib: Optional, if given it will install the jar into
	  /usr/share/java to comply with the Debian Java specification.
	  The jar will be installed as /usr/share/java/$name-$version.jar and
	  a versionless link /usr/share/java/$name.jar will point to it, as
	  well as the links installed in /usr/share/maven-repo
	-n<name> --usj-name=<name>: Optional, the name to use when installing the
	  library in /usr/share/java when --java-lib is used.
	  Defaults to the artifact id found in the POM.
	-j<version> --usj-version=<version>: Optional, the version to use when
	  installing the library in /usr/share/java when --java-lib is used.
	  Defaults to the version found in the POM.
	-s --no-usj-versionless: Optional, don't install the versionless link
	  in /usr/share/java.
	  This flag is used only when the -l or --java-lib option is given.
	-d<path> --dest-jar=<path>: Optional, the destination for the real jar.
	  The other places where the jar appears, in the repository or in the
	  list of links, will be symlinks to this jar.
	  Defaults to /usr/share/java/$name-$version.jar if --java-lib is used,
	  otherwise the jar is installed in the versioned path in the Maven repository.
	-c<classifier> --classifier=<classifier>: Optional, the classifier for
	  the jar. Empty by default.
	-v --verbose: show more information while running
	-n --no-act: don't actually do anything, just print the results
	--skip-clean-pom: don't clean the pom, assume that a previous action ran
	  mh_cleanpom with the correct options. mh_cleanpom is run only to extract
	  the groupId, artifactId and version of the jar

See also: mh_installpom(1), mh_installsite(1)
debian/rules:11: recipe for target 'binary-indep' failed
make: *** [binary-indep] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary-indep gave error exit status 2
--------------------------------------------------------------------------------

Sorry not to have a fix, as I am reporting many bugs similar to
this one. The common hints are:

* If the only architecture-independent packages are dummy transitional
ones and they were released with jessie, the easy fix is to drop them
now.

* When using "dh", it is allowed to use (independently)
optional targets override_dh_foo-arch and override_dh_foo-indep
(for several values of "foo").


Once that both "dpkg-buildpackage -A" and "dpkg-buildpackage -B" work
properly, the package would be suitable to be uploaded in source-only
form if you wish.

Thanks.



More information about the pkg-java-maintainers mailing list