FreeBSD support
I assumed that being Java, this would run pretty much anywhere. I tried running it on FreeBSD and got this error.
Is it necessary?
$ /usr/local/openjdk21/bin/java -jar briar-desktop-linux-0.6.0-beta.jar
2024-02-08 22:46:25,024 [main] INFO org.briarproject.briar.desktop.Main - This is briar-desktop version 0.6.0-beta
2024-02-08 22:46:25,027 [main] INFO org.briarproject.briar.desktop.Main - Build info:
2024-02-08 22:46:25,027 [main] INFO org.briarproject.briar.desktop.Main - Git hash 4cfd685a108890a47a100310204f8a9b450e3087
2024-02-08 22:46:25,028 [main] INFO org.briarproject.briar.desktop.Main - Commit time 2023-08-31 13:38:18
2024-02-08 22:46:25,028 [main] INFO org.briarproject.briar.desktop.Main - Tag 0.6.0-beta
2024-02-08 22:46:25,997 [main] WARN org.briarproject.briar.desktop.Main - Uncaught exception in thread main
java.lang.Error: Unknown OS FreeBSD
at org.jetbrains.skiko.OsArch_jvmKt$hostOs$2.invoke(OsArch.jvm.kt:10)
at org.jetbrains.skiko.OsArch_jvmKt$hostOs$2.invoke(OsArch.jvm.kt:3)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.jetbrains.skiko.OsArch_jvmKt.getHostOs(OsArch.jvm.kt:3)
at org.jetbrains.skiko.OsArch_jvmKt$hostId$2.invoke(OsArch.jvm.kt:24)
at org.jetbrains.skiko.OsArch_jvmKt$hostId$2.invoke(OsArch.jvm.kt:23)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.jetbrains.skiko.OsArch_jvmKt.getHostId(OsArch.jvm.kt:23)
at org.jetbrains.skiko.Library.findAndLoad(Library.kt:73)
at org.jetbrains.skiko.Library.load(Library.kt:59)
at org.jetbrains.skiko.SkiaLayer.<clinit>(SkiaLayer.awt.kt:31)
at androidx.compose.ui.awt.ComposeLayer.<init>(ComposeLayer.desktop.kt:64)
at androidx.compose.ui.awt.ComposeWindowDelegate.<init>(ComposeWindowDelegate.desktop.kt:52)
at androidx.compose.ui.awt.ComposeWindow.<init>(ComposeWindow.desktop.kt:61)
at androidx.compose.ui.awt.ComposeWindow.<init>(ComposeWindow.desktop.kt:59)
at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:178)
at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:172)
at androidx.compose.ui.window.Window_desktopKt$Window$10$1.invoke(Window.desktop.kt:403)
at androidx.compose.ui.window.Window_desktopKt$Window$10$1.invoke(Window.desktop.kt:402)
at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:74)
at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:73)
at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:81)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:1105)
at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:820)
at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:842)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:994)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:519)
at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:219)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)