Package: igv
Version: 2.6.3+dfsg-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source

Hi,

igv recently started to FTBFS, this is probably caused by a change in some 
build-dependency:

   dh_auto_test -O--buildsystem=gradle
        mkdir -p .gradle/init.d
        cp /usr/share/gradle-debian-helper/init.gradle .gradle/init.d/
        gradle --info --console plain --offline --stacktrace --no-daemon 
--refresh-dependencies --gradle-user-home .gradle -Duser.home=. 
-Duser.name=debian -Ddebian.package=igv -Dfile.encoding=UTF-8 --parallel 
--max-workers=3 test
Initialized native services in: /build/igv-2.6.3+dfsg/.gradle/native
To honour the JVM settings for this build a new JVM will be forked. Please 
consider using the daemon: 
https://docs.gradle.org/4.4.1/userguide/gradle_daemon.html.
Starting process 'Gradle build daemon'. Working directory: 
/build/igv-2.6.3+dfsg/.gradle/daemon/4.4.1 Command: 
/usr/lib/jvm/java-11-openjdk-amd64/bin/java 
-Xbootclasspath/a:/usr/share/java/gradle-helper-hook.jar:/usr/share/java/maven-repo-helper.jar
 -Dfile.en
coding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp 
/usr/share/gradle/lib/gradle-launcher-4.4.1.jar 
org.gradle.launcher.daemon.bootstrap.GradleDaemon 4.4.1
Successfully started process 'Gradle build daemon'
An attempt to start the daemon took 0.496 secs.
The client will now receive all logging from the daemon (pid: 18018). The 
daemon log file: /build/igv-2.6.3+dfsg/.gradle/daemon/4.4.1/daemon-18018.out.log
Daemon will be stopped at the end of the build stopping after processing
Closing daemon's stdin at end of input.
The daemon will no longer process any standard input.
Using 3 worker leases.
Creating new cache for fileHashes, path 
/build/igv-2.6.3+dfsg/.gradle/caches/4.4.1/fileHashes/fileHashes.bin, access 
org.gradle.cache.internal.DefaultCacheAccess@675abdc5
Creating new cache for resourceHashesCache, path 
/build/igv-2.6.3+dfsg/.gradle/caches/4.4.1/fileHashes/resourceHashesCache.bin, 
access org.gradle.cache.internal.DefaultCacheAccess@675abdc5
Creating new cache for fileHashes, path 
/build/igv-2.6.3+dfsg/.gradle/4.4.1/fileHashes/fileHashes.bin, access 
org.gradle.cache.internal.DefaultCacheAccess@42ea24b0
Starting Build
Creating new cache for metadata-1.1/results, path 
/build/igv-2.6.3+dfsg/.gradle/caches/transforms-1/metadata-1.1/results.bin, 
access org.gradle.cache.internal.DefaultCacheAccess@521692c9
Settings evaluated using settings file '/build/igv-2.6.3+dfsg/settings.gradle'.
Projects loaded. Root project using build file 
'/build/igv-2.6.3+dfsg/build.gradle'.
Included projects: [root project 'igv']
        Keep-alive timer started
        Adding Debian repository to project 'igv'
Parallel execution is an incubating feature.
Evaluating root project 'igv' using build file 
'/build/igv-2.6.3+dfsg/build.gradle'.
        Adding Maven pom generation to project 'igv'
        Linking the generated javadoc to the system JDK API documentation
All projects evaluated.
Selected primary task 'test' from project :
Creating new cache for annotation-processors, path 
/build/igv-2.6.3+dfsg/.gradle/4.4.1/fileContent/annotation-processors.bin, 
access org.gradle.cache.internal.DefaultCacheAccess@11b080fd
Tasks to be executed: [task ':compileJava', task ':processResources', task 
':classes', task ':compileTestJava', task ':processTestResources', task 
':testClasses', task ':test']
Creating new cache for resourceHashesCache, path 
/build/igv-2.6.3+dfsg/.gradle/4.4.1/fileHashes/resourceHashesCache.bin, access 
org.gradle.cache.internal.DefaultCacheAccess@42ea24b0
Creating new cache for taskHistory, path 
/build/igv-2.6.3+dfsg/.gradle/4.4.1/taskHistory/taskHistory.bin, access 
org.gradle.cache.internal.DefaultCacheAccess@6937ae2c
Creating new cache for outputFiles, path 
/build/igv-2.6.3+dfsg/.gradle/buildOutputCleanup/outputFiles.bin, access 
org.gradle.cache.internal.DefaultCacheAccess@2b1f6e31
:compileJava (Thread[Daemon worker,5,main]) started.
:compileJava
Putting task artifact state for task ':compileJava' into context took 0.003 
secs.
        Loading the Maven rules...
        Passing through org.apache.logging.log4j:log4j-api:jar:debian
        Passing through org.apache.logging.log4j:log4j:jar:debian
Skipping task ':compileJava' as it is up-to-date (took 0.49 secs).
:compileJava UP-TO-DATE
:compileJava (Thread[Daemon worker,5,main]) completed. Took 0.517 secs.
:processResources (Thread[Daemon worker,5,main]) started.
:processResources
Putting task artifact state for task ':processResources' into context took 0.0 
secs.
Skipping task ':processResources' as it is up-to-date (took 0.052 secs).
:processResources UP-TO-DATE
:processResources (Thread[Daemon worker,5,main]) completed. Took 0.054 secs.
:classes (Thread[Daemon worker,5,main]) started.
:classes
Skipping task ':classes' as it has no actions.
:classes UP-TO-DATE
:classes (Thread[Daemon worker,5,main]) completed. Took 0.0 secs.
:compileTestJava (Thread[Daemon worker,5,main]) started.
:compileTestJava
Putting task artifact state for task ':compileTestJava' into context took 0.0 
secs.
Up-to-date check for task ':compileTestJava' took 0.778 secs. It is not 
up-to-date because:
  No history is available.
All input files are considered out-of-date for incremental task 
':compileTestJava'.
Compiling with JDK Java compiler API.
error: module not found: junit4
1 error
:compileTestJava FAILED
:compileTestJava (Thread[Daemon worker,5,main]) completed. Took 1.319 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileTestJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --debug option to get more log output. Run with --scan to get full 
insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task 
':compileTestJava'.
        at 
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
        at 
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
        at 
org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at 
org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
        at 
org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at 
org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
        at 
org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
        at 
org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
        at 
org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
        at 
org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at 
org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at 
org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at 
org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at 
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at 
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
        at 
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
        at 
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
        at 
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
        at 
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at 
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at 
org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
        at 
org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
        at 
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        at 
org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:59)
        at 
org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:128)
        at 
org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at 
org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at 
org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at 
org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at 
org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:46)
        at 
org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at 
org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at 
org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:314)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at 
org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:204)
        at 
org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:134)
        at 
org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:109)
        at 
org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:78)
        at 
org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75)
        at 
org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
        at 
org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
        at 
org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)
        at 
org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at 
org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at 
org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at 
org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at 
org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
        at 
org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
        at 
org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
        at 
org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
        at 
org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
        at 
org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
        at 
org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
        at 
org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
        at 
org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:57)
        at 
org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
        at 
org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at 
org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at 
org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at 
org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at 
org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:69)
        at 
org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:30)
        at 
org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
        at 
org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
        at 
org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:45)
        at 
org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
        at 
org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at 
org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at 
org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at 
org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:50)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at 
org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
        at 
org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at 
org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at 
org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at 
org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at 
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at 
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at 
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: 
Compilation failed; see the compiler error output for details.
        at 
org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)
        at 
org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:35)
        at 
org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)
        at 
org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:51)
        at 
org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:37)
        at 
org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35)
        at 
org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)
        at 
org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:207)
        at 
org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:192)
        at 
org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:124)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at 
org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
        at 
org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at 
org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at 
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at 
org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at 
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
        at 
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
        ... 103 more


* Get more help at https://help.gradle.org

BUILD FAILED in 4s
3 actionable tasks: 1 executed, 2 up-to-date
dh_auto_test: error: gradle --info --console plain --offline --stacktrace 
--no-daemon --refresh-dependencies --gradle-user-home .gradle -Duser.home=. 
-Duser.name=debian -Ddebian.package=igv -Dfile.encoding=UTF-8 --parallel 
--max-workers=3 test returned exit code 1
make: *** [debian/rules:9: binary] Error 25


Andreas

Attachment: igv_2.6.3+dfsg-1.log.gz
Description: application/gzip

Reply via email to