smartsynchronize: init at 4.6.1

similar to "smartgit"
This commit is contained in:
Thomas Singer
2025-04-14 14:46:31 +02:00
parent 6ac47a1bcd
commit 3ac049fabe
@@ -0,0 +1,104 @@
{
lib,
stdenv,
fetchurl,
makeDesktopItem,
openjdk21,
gtk3,
glib,
adwaita-icon-theme,
wrapGAppsHook3,
libXtst,
which,
}:
let
jre = openjdk21;
in
stdenv.mkDerivation (finalAttrs: {
pname = "smartsynchronize";
version = "4.6.1";
src = fetchurl {
url = "https://www.syntevo.com/downloads/smartsynchronize/smartsynchronize-linux-${
builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version
}.tar.gz";
hash = "sha256-oc1GFwiA6LPbCsCsGGENEz9ktcu0NINfQ9dsL27VIpI=";
};
nativeBuildInputs = [ wrapGAppsHook3 ];
buildInputs = [
jre
adwaita-icon-theme
gtk3
];
preFixup = ''
gappsWrapperArgs+=( \
--prefix PATH : ${
lib.makeBinPath [
jre
which
]
} \
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
gtk3
glib
libXtst
]
} \
--prefix JAVA_HOME : ${jre} \
)
'';
installPhase = ''
runHook preInstall
mkdir -pv $out/{bin,share/applications,share/icons/hicolor/scalable/apps/}
cp -av ./lib $out/
cp -av bin/smartsynchronize.sh $out/bin/smartsynchronize
cp -av $desktopItem/share/applications/* $out/share/applications/
for icon_size in 32 48 64 128 256; do
path=$icon_size'x'$icon_size
icon=bin/smartsynchronize-$icon_size.png
mkdir -p $out/share/icons/hicolor/$path/apps
cp $icon $out/share/icons/hicolor/$path/apps/smartsynchronize.png
done
cp -av bin/smartsynchronize.svg $out/share/icons/hicolor/scalable/apps/
runHook postInstall
'';
desktopItem = makeDesktopItem {
name = "smartsynchronize";
exec = "smartsynchronize";
comment = finalAttrs.meta.description;
icon = "smartsynchronize";
desktopName = "SmartSynchronize";
categories = [ "Development" ];
startupNotify = true;
startupWMClass = "smartsynchronize";
keywords = [
"compare"
"file manager"
];
};
meta = {
description = "File Manager, File/Directory Compare";
longDescription = ''
SmartSynchronize is a dual-pane, keyboard-centric, multi-platform file manager.
It also is known for its file compare, directory compare and file merge.
SmartSynchronize is free to use for active Open Source developers and users from academic institutions.
'';
homepage = "https://www.syntevo.com/smartsynchronize/";
changelog = "https://www.syntevo.com/smartsynchronize/changelog-${lib.versions.majorMinor finalAttrs.version}.txt";
license = lib.licenses.unfree;
mainProgram = "smartsynchronize";
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ tmssngr ];
};
})