diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc')
850 files changed, 43680 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/1password-gui/default.nix b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix new file mode 100644 index 000000000000..0803b495b2fa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix @@ -0,0 +1,118 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, dbus +, expat +, gdk-pixbuf +, glib +, gtk3 +, libX11 +, libXcomposite +, libXdamage +, libXext +, libXfixes +, libXrandr +, libdrm +, libxcb +, libxkbcommon +, libxshmfence +, mesa +, nspr +, nss +, pango +, systemd +, udev +, xdg-utils +}: +stdenv.mkDerivation rec { + pname = "1password"; + version = "8.1.1"; + + src = fetchurl { + url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz"; + sha256 = "0y39sfhj9xrgprh01i9apzfkqzm6pdhjc8x59x5p5djjjvxbcwmy"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontConfigure = true; + dontBuild = true; + dontPatchELF = true; + + installPhase = + let rpath = lib.makeLibraryPath [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + gdk-pixbuf + glib + gtk3 + libX11 + libXcomposite + libXdamage + libXext + libXfixes + libXrandr + libdrm + libxcb + libxkbcommon + libxshmfence + mesa + nspr + nss + pango + systemd + ] + ":${stdenv.cc.cc.lib}/lib64"; + in '' + runHook preInstall + + mkdir -p $out/bin $out/share/1password + cp -a * $out/share/1password + + # Desktop file + install -Dt $out/share/applications resources/${pname}.desktop + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=/opt/1Password/${pname}' 'Exec=${pname}' + + # Icons + cp -a resources/icons $out/share + + interp="$(cat $NIX_CC/nix-support/dynamic-linker)" + patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper} + patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper} + for file in $(find $out -type f -name \*.so\* ); do + patchelf --set-rpath ${rpath}:$out/share/1password $file + done + + # Electron is trying to open udev via dlopen() + # and for some reason that doesn't seem to be impacted from the rpath. + # Adding udev to LD_LIBRARY_PATH fixes that. + makeWrapper $out/share/1password/1password $out/bin/1password \ + --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]} + + runHook postInstall + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "Multi-platform password manager"; + homepage = "https://1password.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ timstott savannidgerinel ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/1password-gui/update.sh b/nixpkgs/pkgs/applications/misc/1password-gui/update.sh new file mode 100755 index 000000000000..8ebdaca71173 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/1password-gui/update.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused common-updater-scripts + +version="$(curl -sL https://onepassword.s3.amazonaws.com/linux/debian/dists/edge/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)/\1/p' | head -n1)" +update-source-version _1password-gui "$version" diff --git a/nixpkgs/pkgs/applications/misc/1password/default.nix b/nixpkgs/pkgs/applications/misc/1password/default.nix new file mode 100644 index 000000000000..afe15949ee82 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/1password/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchzip, autoPatchelfHook, fetchurl, xar, cpio }: + +stdenv.mkDerivation rec { + pname = "1password"; + version = "1.9.1"; + src = + if stdenv.isLinux then fetchzip { + url = { + "i686-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip"; + "x86_64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip"; + "aarch64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_arm_v${version}.zip"; + }.${stdenv.hostPlatform.system}; + sha256 = { + "i686-linux" = "1x5khnp6yqrjf513x3y6l38rb121nib7d4aiz4cz7fh029kxjhd1"; + "x86_64-linux" = "1ar8lzkndl7xzcinv93rzg8q25vb23fggbjkhgchgc5x9wkwk8hw"; + "aarch64-linux" = "1q81pk6qmp96p1dbhx1ijln8f54rac8r81d4ghqx9v756s9szrr1"; + }.${stdenv.hostPlatform.system}; + stripRoot = false; + } else fetchurl { + url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg"; + sha256 = "0904wwy3wdhfvbkvpdap8141a9gqmn0dw45ikrzsqpg7pv1r2zch"; + }; + + buildInputs = lib.optionals stdenv.isDarwin [ xar cpio ]; + + unpackPhase = lib.optionalString stdenv.isDarwin '' + xar -xf $src + zcat op.pkg/Payload | cpio -i + ''; + + installPhase = '' + install -D op $out/bin/op + ''; + + dontStrip = stdenv.isDarwin; + + nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; + + doInstallCheck = true; + + installCheckPhase = '' + $out/bin/op --version + ''; + + meta = with lib; { + description = "1Password command-line tool"; + homepage = "https://support.1password.com/command-line/"; + downloadPage = "https://app-updates.agilebits.com/product_history/CLI"; + maintainers = with maintainers; [ joelburget marsam ]; + license = licenses.unfree; + platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/9menu/default.nix b/nixpkgs/pkgs/applications/misc/9menu/default.nix new file mode 100644 index 000000000000..8e6b7b3bcbec --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/9menu/default.nix @@ -0,0 +1,32 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, meson +, ninja +, libX11 +, libXext +}: + +stdenv.mkDerivation rec { + pname = "9menu"; + version = "unstable-2021-02-24"; + + src = fetchFromGitHub { + owner = "arnoldrobbins"; + repo = pname; + rev = "00cbf99c48dc580ca28f81ed66c89a98b7a182c8"; + sha256 = "arca8Gbr4ytiCk43cifmNj7SUrDgn1XB26zAhZrVDs0="; + }; + + nativeBuildInputs = [ pkg-config meson ninja ]; + buildInputs = [ libX11 libXext ]; + + meta = with lib; { + homepage = "https://github.com/arnoldrobbins/9menu"; + description = "Simple X11 menu program for running commands"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = libX11.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix b/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix new file mode 100644 index 000000000000..cc6b1eab5de4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, unzip, makeWrapper, dotnetCorePackages, jq }: + +stdenv.mkDerivation rec { + pname = "ArchiSteamFarm"; + version = "4.3.1.0"; + + src = fetchurl { + url = "https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/${version}/ASF-generic.zip"; + sha256 = "1q28byshh4wkfsfdb0sfdqq9a5da9k7i4nagsfpk0fzyajvzd4lx"; + }; + + nativeBuildInputs = [ unzip makeWrapper jq ]; + + sourceRoot = "."; + + installPhase = '' + dist=$out/opt/asf + mkdir -p $dist + cp -r * $dist + + jq "del(.runtimeOptions.framework.version)" ArchiSteamFarm.runtimeconfig.json > $dist/ArchiSteamFarm.runtimeconfig.json + + makeWrapper ${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet $out/bin/ArchiSteamFarm \ + --add-flags $dist/ArchiSteamFarm.dll \ + --add-flags "--path ~/.config/asf" \ + --run "mkdir -p ~/.config/asf" \ + --run "cd ~/.config/asf" \ + --run "[ -d config ] || cp --no-preserve=mode -r $dist/config ." \ + --run "[ -d logs ] || cp --no-preserve=mode -r $dist/logs ." \ + --run "[ -d plugins ] || cp --no-preserve=mode -r $dist/plugins ." \ + --run "ln -sf $dist/www ." + ''; + + meta = with lib; { + description = "Application with primary purpose of idling Steam cards from multiple accounts simultaneously"; + homepage = "https://github.com/JustArchiNET/ArchiSteamFarm"; + license = licenses.asl20; + platforms = dotnetCorePackages.aspnetcore_3_1.meta.platforms; + maintainers = with maintainers; [ ]; + hydraPlatforms = []; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/OSCAR/default.nix b/nixpkgs/pkgs/applications/misc/OSCAR/default.nix new file mode 100644 index 000000000000..7115801d00bb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/OSCAR/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, mkDerivation, fetchFromGitLab, qmake, qtbase, qttools, qtserialport, libGLU }: +mkDerivation rec { + pname = "OSCAR"; + version = "1.2.0"; + + src = fetchFromGitLab { + owner = "pholy"; + repo = "OSCAR-code"; + rev = "v${version}"; + sha256 = "10r37d8c2avr167n2s9lhld1c9hmckm444fq163z1jsy9jpid6mg"; + }; + + buildInputs = [ qtbase qttools qtserialport libGLU ]; + nativeBuildInputs = [ qmake ]; + postPatch = '' + substituteInPlace oscar/oscar.pro --replace "/bin/bash" "${stdenv.shell}" + ''; + + qmakeFlags = [ "OSCAR_QT.pro" ]; + + installPhase = '' + install -d $out/bin + install -d $out/share/OSCAR/Help + install -d $out/share/OSCAR/Html + install -d $out/share/OSCAR/Translations + install -d $out/share/icons/OSCAR + install -d $out/share/applications + install -T oscar/OSCAR $out/bin/OSCAR + # help browser was removed 'temporarily' in https://gitlab.com/pholy/OSCAR-code/-/commit/57c3e4c33ccdd2d0eddedbc24c0e4f2969da3841 + # install oscar/Help/* $out/share/OSCAR/Help + install oscar/Html/* $out/share/OSCAR/Html + install oscar/Translations/* $out/share/OSCAR/Translations + install -T Building/Linux/OSCAR.png $out/share/icons/OSCAR/OSCAR.png + install -T Building/Linux/OSCAR.desktop $out/share/applications/OSCAR.desktop + ''; + + meta = with lib; { + homepage = "https://www.sleepfiles.com/OSCAR/"; + description = "Software for reviewing and exploring data produced by CPAP and related machines used in the treatment of sleep apnea"; + license = licenses.gpl3; + maintainers = [ maintainers.roconnor ]; + # Someone needs to create a suitable installPhase for Darwin and Windows. + # See https://gitlab.com/pholy/OSCAR-code/-/tree/master/Building. + broken = !stdenv.hostPlatform.isLinux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/abook/default.nix b/nixpkgs/pkgs/applications/misc/abook/default.nix new file mode 100644 index 000000000000..62cba4a5b736 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/abook/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, fetchpatch, pkg-config, ncurses, readline, autoreconfHook }: + +stdenv.mkDerivation rec { + name = "abook-0.6.1"; + + src = fetchurl { + url = "http://abook.sourceforge.net/devel/${name}.tar.gz"; + sha256 = "1yf0ifyjhq2r003pnpn92mn0924bn9yxjifxxj2ldcsgd7w0vagh"; + }; + + patches = [ + (fetchpatch { + url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc5.patch?h=packages/abook"; + name = "gcc5.patch"; + sha256 = "13n3qd6yy45i5n8ppjn9hj6y63ymjrq96280683xk7f7rjavw5nn"; + }) + ]; + + nativeBuildInputs = [ pkg-config autoreconfHook ]; + buildInputs = [ ncurses readline ]; + + meta = { + homepage = "http://abook.sourceforge.net/"; + description = "Text-based addressbook program designed to use with mutt mail client"; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.edwtjo ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh b/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh new file mode 100644 index 000000000000..41281385c990 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh @@ -0,0 +1,42 @@ +source $stdenv/setup + +echo "unpacking $src..." +tar xvfa $src + +echo "unpacking reader..." +p=$out/libexec/adobe-reader +mkdir -p $out/libexec +tar xvf AdobeReader/COMMON.TAR -C $out +tar xvf AdobeReader/ILINXR.TAR -C $out +mv $out/Adobe/Reader9 $p +rmdir $out/Adobe + +# Disable this plugin for now (it needs LDAP, and I'm too lazy to add it). +rm $p/Reader/intellinux/plug_ins/PPKLite.api + +# More pointless files. +rm $p/bin/UNINSTALL + +patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath $libPath \ + $p/Reader/intellinux/bin/acroread + +# The "xargs -r" is to shut up a warning when Mozilla can't be found. +substituteInPlace $p/bin/acroread \ + --replace /bin/pwd $(type -P pwd) \ + --replace /bin/ls $(type -P ls) \ + --replace xargs "xargs -r" + +mkdir -p $out/bin +ln -s $p/bin/acroread $out/bin/acroread + +mkdir -p $out/share/applications +mv $p/Resource/Support/AdobeReader.desktop $out/share/applications/ +icon=$p/Resource/Icons/128x128/AdobeReader9.png +[ -e $icon ] +sed -i $out/share/applications/AdobeReader.desktop \ + -e "s|Icon=.*|Icon=$icon|" + +# Not sure if this works. +mkdir -p $out/share/mimelnk/application +mv $p/Resource/Support/vnd*.desktop $out/share/mimelnk/application diff --git a/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix b/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix new file mode 100644 index 000000000000..8f1b3f5ca88f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchurl, libX11, cups, zlib, libxml2, pango, atk, gtk2, glib +, gdk-pixbuf, gdk-pixbuf-xlib }: + +assert stdenv.hostPlatform.system == "i686-linux"; + +let version = "9.5.5"; in + +stdenv.mkDerivation { + name = "adobe-reader-${version}-1"; + + builder = ./builder.sh; + + src = fetchurl { + url = "http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/${version}/enu/AdbeRdr${version}-1_i486linux_enu.tar.bz2"; + sha256 = "0h35misxrqkl5zlmmvray1bqf4ywczkm89n9qw7d9arqbg3aj3pf"; + }; + + # !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu. + # We should probably remove those and use the regular Nixpkgs + # versions. + + libPath = lib.makeLibraryPath + [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ]; + + passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux"; + + meta = { + description = "Adobe Reader, a viewer for PDF documents"; + homepage = "http://www.adobe.com/products/reader"; + license = lib.licenses.unfree; + knownVulnerabilities = [ + "Numerous unresolved vulnerabilities" + "See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53" + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/airtame/default.nix b/nixpkgs/pkgs/applications/misc/airtame/default.nix new file mode 100644 index 000000000000..90373b6b00c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/airtame/default.nix @@ -0,0 +1,79 @@ +{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper +, alsa-lib, atk, cairo, cups, curl, dbus, expat, ffmpeg_3, fontconfig, freetype +, gdk-pixbuf, glib, glibc, gnome2, gtk2, libX11, libXScrnSaver, libXcomposite +, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender +, libXtst, libopus, libpulseaudio, libxcb, nspr, nss, pango, udev, x264 +}: + +let libPath = lib.makeLibraryPath [ + alsa-lib atk cairo cups curl dbus expat ffmpeg_3 fontconfig freetype gdk-pixbuf + glib glibc gnome2.GConf gtk2 libopus nspr nss pango stdenv.cc.cc udev x264 + libX11 libXScrnSaver libXcomposite libXcursor libXdamage libXext libXfixes + libXi libXrandr libXrender libXtst libpulseaudio libxcb +]; +in stdenv.mkDerivation rec { + pname = "airtame"; + version = "3.3.0"; + longName = "${pname}-application"; + + src = fetchurl { + url = "https://downloads.airtame.com/application/ga/lin_x64/releases/${longName}-${version}.tar.gz"; + sha256 = "16ca1vcxpka26jcrfbxpq74kcizgrm138j94bby6kzqp2swhrl76"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + desktopItem = makeDesktopItem rec { + name = "airtame"; + exec = longName; + comment = "Airtame Streaming Client"; + desktopName = "Airtame"; + icon = name; + genericName = comment; + categories = "Network;"; + }; + + installPhase = '' + opt="$out/opt/airtame" + mkdir -p "$opt" + cp -R . "$opt" + mkdir -p "$out/bin" + ln -s "$opt/${longName}" "$out/bin/" + mkdir -p "$out/share" + cp -r "${desktopItem}/share/applications" "$out/share/" + mkdir -p "$out/share/icons" + ln -s "$opt/icon.png" "$out/share/icons/airtame.png" + + # Flags and rpath are copied from launch-airtame.sh. + vendorlib="\ + $opt/resources/app.asar.unpacked/modules/streamer/dist/deps/airtame-modules:\ + $opt/resources/app.asar.unpacked/encryption/out/lib:\ + $opt/resources/deps/airtame-core/lib:\ + $opt/resources/deps/airtame-encryption/lib" + + echo $vendorlib + + rpath="${libPath}:$opt:$vendorlib" + + find "$opt" \( -type f -executable -o -name "*.so" -o -name "*.so.*" \) \ + -exec patchelf --set-rpath "$rpath" {} \; + + # The main binary also needs libudev which was removed by --shrink-rpath. + interp="$(< $NIX_CC/nix-support/dynamic-linker)" + patchelf --set-interpreter "$interp" $opt/${longName} + + wrapProgram $opt/${longName} \ + --prefix LD_LIBRARY_PATH=$rpath \ + --add-flags "--disable-gpu --enable-transparent-visuals" + ''; + + dontPatchELF = true; + + meta = with lib; { + homepage = "https://airtame.com/download"; + description = "Wireless streaming client for Airtame devices"; + license = licenses.unfree; + maintainers = with maintainers; [ thanegill ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/albert/default.nix b/nixpkgs/pkgs/applications/misc/albert/default.nix new file mode 100644 index 000000000000..c862872a7938 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/albert/default.nix @@ -0,0 +1,45 @@ +{ mkDerivation, lib, fetchFromGitHub, makeWrapper, qtbase, + qtdeclarative, qtsvg, qtx11extras, muparser, cmake, python3, + qtcharts }: + +mkDerivation rec { + pname = "albert"; + version = "0.17.2"; + + src = fetchFromGitHub { + owner = "albertlauncher"; + repo = "albert"; + rev = "v${version}"; + sha256 = "0lpp8rqx5b6rwdpcdldfdlw5327harr378wnfbc6rp3ajmlb4p7w"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake makeWrapper ]; + + buildInputs = [ qtbase qtdeclarative qtsvg qtx11extras muparser python3 qtcharts ]; + + # We don't have virtualbox sdk so disable plugin + cmakeFlags = [ "-DBUILD_VIRTUALBOX=OFF" "-DCMAKE_INSTALL_LIBDIR=libs" ]; + + postPatch = '' + sed -i "/QStringList dirs = {/a \"$out/libs\"," \ + src/app/main.cpp + ''; + + preBuild = '' + mkdir -p "$out/" + ln -s "$PWD/lib" "$out/lib" + ''; + + postBuild = '' + rm "$out/lib" + ''; + + meta = with lib; { + homepage = "https://albertlauncher.github.io/"; + description = "Desktop agnostic launcher"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ericsagnes synthetica ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/almanah/default.nix b/nixpkgs/pkgs/applications/misc/almanah/default.nix new file mode 100644 index 000000000000..a4ef9b34318c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/almanah/default.nix @@ -0,0 +1,75 @@ +{ lib, stdenv +, fetchurl +, atk +, cairo +, desktop-file-utils +, evolution-data-server +, evolution +, gcr +, gettext +, glib +, gnome +, gpgme +, gtk3 +, gtksourceview3 +, gtkspell3 +, libcryptui +, libxml2 +, meson +, ninja +, pkg-config +, python3 +, sqlite +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "almanah"; + version = "0.12.3"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "lMpDQOxlGljP66APR49aPbTZnfrGakbQ2ZcFvmiPMFo="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + libxml2 + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + atk + cairo + evolution-data-server + gcr + glib + evolution + gpgme + gtk3 + gtksourceview3 + gtkspell3 + libcryptui + sqlite + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + versionPolicy = "none"; # it is quite odd + }; + }; + + meta = with lib; { + description = "Small GTK application to allow to keep a diary of your life"; + homepage = "https://wiki.gnome.org/Apps/Almanah_Diary"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = teams.gnome.members; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix b/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix new file mode 100644 index 000000000000..516b786222db --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix @@ -0,0 +1,22 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication { + pname = "antfs-cli"; + version = "unstable-2017-02-11"; + + meta = with lib; { + homepage = "https://github.com/Tigge/antfs-cli"; + description = "Extracts FIT files from ANT-FS based sport watches"; + license = licenses.mit; + platforms = platforms.linux; + }; + + src = fetchFromGitHub { + owner = "Tigge"; + repo = "antfs-cli"; + rev = "85a6cc6fe6fc0ec38399f5aa30fb39177c565b52"; + sha256 = "0v8y64kldfbs809j1g9d75dd1vxq7mfxnp4b45pz8anpxhjf64fy"; + }; + + propagatedBuildInputs = [ python3Packages.openant ]; +} diff --git a/nixpkgs/pkgs/applications/misc/anup/default.nix b/nixpkgs/pkgs/applications/misc/anup/default.nix new file mode 100644 index 000000000000..9c99c84eabee --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/anup/default.nix @@ -0,0 +1,27 @@ +{ lib, rustPlatform, fetchFromGitHub, sqlite, xdg-utils}: + +rustPlatform.buildRustPackage rec { + pname = "anup"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "Acizza"; + repo = "anup"; + rev = version; + sha256 = "sha256-4pXF4p4K8+YihVB9NdgT6bOidmQEgWXUbcbvgXJ0IDA="; + }; + + buildInputs = [ + sqlite + xdg-utils + ]; + + cargoSha256 = "sha256-1TA2HDHKA3twFtlAWaC2zcRzS8TJwcbBt1OTQ3hC3qM="; + + meta = with lib; { + homepage = "https://github.com/Acizza/anup"; + description = "An anime tracker for AniList featuring a TUI"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ natto1784 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ape/apeclex.nix b/nixpkgs/pkgs/applications/misc/ape/apeclex.nix new file mode 100644 index 000000000000..81096d9877f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ape/apeclex.nix @@ -0,0 +1,8 @@ +{ lib, attemptoClex, callPackage }: + +callPackage ./. { + pname = "ape-clex"; + lexiconPath = "${attemptoClex}/clex_lexicon.pl"; + description = "Parser for Attempto Controlled English (ACE) with a large lexicon (~100,000 entries)"; + license = with lib; [ licenses.lgpl3 licenses.gpl3 ]; +} diff --git a/nixpkgs/pkgs/applications/misc/ape/clex.nix b/nixpkgs/pkgs/applications/misc/ape/clex.nix new file mode 100644 index 000000000000..a98695dab682 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ape/clex.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "attempto-clex"; + version = "5133afe"; + + src = fetchFromGitHub { + owner = "Attempto"; + repo = "Clex"; + rev = version; + sha256 = "0p9s64g1jic213bwm6347jqckszgnni9szrrz31qjgaf32kf7nkp"; + }; + + installPhase = '' + mkdir -p $out + cp clex_lexicon.pl $out + ''; + + meta = with lib; { + description = "Large lexicon for APE (~100,000 entries)"; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ yrashk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ape/default.nix b/nixpkgs/pkgs/applications/misc/ape/default.nix new file mode 100644 index 000000000000..c359d606a859 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ape/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, swiProlog, makeWrapper, + fetchFromGitHub, + lexiconPath ? "prolog/lexicon/clex_lexicon.pl", + pname ? "ape", + description ? "Parser for Attempto Controlled English (ACE)", + license ? with lib; licenses.lgpl3 +}: + +stdenv.mkDerivation rec { + inherit pname; + version = "2019-08-10"; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ swiProlog ]; + + src = fetchFromGitHub { + owner = "Attempto"; + repo = "APE"; + rev = "113b81621262d7a395779465cb09397183e6f74c"; + sha256 = "0xyvna2fbr18hi5yvm0zwh77q02dfna1g4g53z9mn2rmlfn2mhjh"; + }; + + patchPhase = '' + # We move the file first to avoid "same file" error in the default case + cp ${lexiconPath} new_lexicon.pl + rm prolog/lexicon/clex_lexicon.pl + cp new_lexicon.pl prolog/lexicon/clex_lexicon.pl + ''; + + buildPhase = '' + make SHELL=${stdenv.shell} build + ''; + + installPhase = '' + mkdir -p $out/bin + cp ape.exe $out + makeWrapper $out/ape.exe $out/bin/ape --add-flags ace + ''; + + meta = with lib; { + description = description; + license = license; + platforms = platforms.unix; + maintainers = with maintainers; [ yrashk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/appeditor/default.nix b/nixpkgs/pkgs/applications/misc/appeditor/default.nix new file mode 100644 index 000000000000..d0db2b12dfdb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/appeditor/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, vala +, meson +, ninja +, pkg-config +, pantheon +, python3 +, gettext +, glib +, gtk3 +, libgee +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "appeditor"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "donadigo"; + repo = "appeditor"; + rev = version; + sha256 = "04x2f4x4dp5ca2y3qllqjgirbyl6383pfl4bi9bkcqlg8b5081rg"; + }; + + nativeBuildInputs = [ + gettext + meson + ninja + vala + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + pantheon.granite + libgee + ]; + + patches = [ + # See: https://github.com/donadigo/appeditor/issues/88 + ./fix-build-vala-0.46.patch + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Edit the Pantheon desktop application menu"; + homepage = "https://github.com/donadigo/appeditor"; + maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch b/nixpkgs/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch new file mode 100644 index 000000000000..f6c0b4cfd287 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/appeditor/fix-build-vala-0.46.patch @@ -0,0 +1,22 @@ +diff --git a/src/DesktopApp.vala b/src/DesktopApp.vala +index 0e6fa47..ebcde0c 100644 +--- a/src/DesktopApp.vala ++++ b/src/DesktopApp.vala +@@ -130,7 +130,7 @@ public class AppEditor.DesktopApp : Object { + + public unowned string get_path () { + if (path == null) { +- unowned string _path = info.get_string (KeyFileDesktop.KEY_PATH); ++ string _path = info.get_string (KeyFileDesktop.KEY_PATH); + if (_path == null) { + _path = ""; + } +@@ -150,7 +150,7 @@ public class AppEditor.DesktopApp : Object { + } + + public bool get_should_show () { +- return info.should_show () && !get_terminal (); ++ return info.should_show () && !get_terminal (); + } + + public string[] get_categories () { diff --git a/nixpkgs/pkgs/applications/misc/apvlv/default.nix b/nixpkgs/pkgs/applications/misc/apvlv/default.nix new file mode 100644 index 000000000000..140d6eb7d086 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/apvlv/default.nix @@ -0,0 +1,74 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, pcre, libxkbcommon, epoxy +, gtk3, poppler, freetype, libpthreadstubs, libXdmcp, libxshmfence, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + version = "0.1.5"; + pname = "apvlv"; + + src = fetchFromGitHub { + owner = "naihe2010"; + repo = "apvlv"; + rev = "v${version}"; + sha256 = "1n4xiic8lqnv3mqi7wpdv866gyyakax71gffv3n9427rmcld465i"; + }; + + NIX_CFLAGS_COMPILE = "-I${poppler.dev}/include/poppler"; + + nativeBuildInputs = [ + cmake + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + poppler pcre libxkbcommon epoxy + freetype gtk3 + libpthreadstubs libXdmcp libxshmfence # otherwise warnings in compilation + ]; + + patches = [ + (fetchpatch { + url = "https://github.com/naihe2010/apvlv/commit/d432635b9c5ea6c052a2ae1fb71aedec5c4ad57a.patch"; + sha256 = "1am8dgv2kkpqmm2vaysa61czx8ppdx94zb3c59sx88np50jpy70w"; + }) + (fetchpatch { + url = "https://github.com/naihe2010/apvlv/commit/4c7a583e8431964def482e5471f02e6de8e62a7b.patch"; + sha256 = "1dszm120lwm90hcg5zmd4vr6pjyaxc84qmb7k0fr59mmb3qif62j"; + }) + # fix build with gcc7 + (fetchpatch { + url = "https://github.com/naihe2010/apvlv/commit/a3a895772a27d76dab0c37643f0f4c73f9970e62.patch"; + sha256 = "1fpc7wr1ajilvwi5gjsy5g9jcx4bl03gp5dmajg90ljqbhwz2bfi"; + }) + ./fix-build-with-poppler-0.73.0.patch + ]; + + installPhase = '' + # binary + mkdir -p $out/bin + cp src/apvlv $out/bin/apvlv + + # displays pdfStartup.pdf as default pdf entry + mkdir -p $out/share/doc/apvlv/ + cp ../Startup.pdf $out/share/doc/apvlv/Startup.pdf + cp ../main_menubar.glade $out/share/doc/apvlv/main_menubar.glade + '' + + lib.optionalString (!stdenv.isDarwin) '' + install -D ../apvlv.desktop $out/share/applications/apvlv.desktop + ''; + + meta = with lib; { + homepage = "http://naihe2010.github.io/apvlv/"; + description = "PDF viewer with Vim-like behaviour"; + longDescription = '' + apvlv is a PDF/DJVU/UMD/TXT Viewer Under Linux/WIN32 + with Vim-like behaviour. + ''; + + license = licenses.lgpl2; + platforms = platforms.linux; + maintainers = [ maintainers.ardumont ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/apvlv/fix-build-with-poppler-0.73.0.patch b/nixpkgs/pkgs/applications/misc/apvlv/fix-build-with-poppler-0.73.0.patch new file mode 100644 index 000000000000..d2a7831dca63 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/apvlv/fix-build-with-poppler-0.73.0.patch @@ -0,0 +1,13 @@ +diff --git a/src/ApvlvPdf.cc b/src/ApvlvPdf.cc +index 765b112..83d133f 100644 +--- a/src/ApvlvPdf.cc ++++ b/src/ApvlvPdf.cc +@@ -29,7 +29,7 @@ + #include "ApvlvPdf.h" + + #ifndef POPPLER_WITH_GDK +-#include <goo/gtypes.h> ++#include <goo/gfile.h> + + static void + copy_cairo_surface_to_pixbuf (cairo_surface_t *surface, diff --git a/nixpkgs/pkgs/applications/misc/archiver/default.nix b/nixpkgs/pkgs/applications/misc/archiver/default.nix new file mode 100644 index 000000000000..1691ab073610 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/archiver/default.nix @@ -0,0 +1,29 @@ +{ buildGoModule +, fetchFromGitHub +, lib +}: + +buildGoModule rec { + pname = "archiver"; + version = "3.5.0"; + + src = fetchFromGitHub { + owner = "mholt"; + repo = pname; + rev = "v${version}"; + sha256 = "0fdkqfs87svpijccz8m11gvby8pvmznq6fs9k94vbzak0kxhw1wg"; + }; + + vendorSha256 = "0avnskay23mpl3qkyf1h75rr7szpsxis2bj5pplhwf8q8q0212xf"; + + buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=unknown" ]; + + doCheck = false; + + meta = with lib; { + description = "Easily create & extract archives, and compress & decompress files of various formats"; + homepage = "https://github.com/mholt/archiver"; + license = licenses.mit; + maintainers = with maintainers; [ kalbasit ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/archivy/default.nix b/nixpkgs/pkgs/applications/misc/archivy/default.nix new file mode 100644 index 000000000000..0a89e4f47658 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/archivy/default.nix @@ -0,0 +1,76 @@ +{ lib +, buildPythonApplication +, fetchPypi +, appdirs +, attrs +, beautifulsoup4 +, click-plugins +, elasticsearch +, flask-compress +, flask_login +, flask_wtf +, html2text +, python-dotenv +, python-frontmatter +, requests +, tinydb +, validators +, werkzeug +, wtforms +}: + +buildPythonApplication rec { + pname = "archivy"; + version = "1.4.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-wQuR7cltDLr2u8BQ851MSjKmeLW8mQ/3bdEF5c9nxL0="; + }; + + # Relax some dependencies + postPatch = '' + substituteInPlace requirements.txt \ + --replace 'WTForms ==' 'WTForms >=' \ + --replace 'attrs == 20.2.0' 'attrs' \ + --replace 'elasticsearch ==' 'elasticsearch >=' \ + --replace 'python_dotenv ==' 'python_dotenv >=' \ + --replace 'python_frontmatter == 0.5.0' 'python_frontmatter' \ + --replace 'requests ==' 'requests >=' \ + --replace 'validators ==' 'validators >=' \ + --replace 'tinydb ==' 'tinydb >=' \ + --replace 'Flask_WTF == 0.14.3' 'Flask_WTF' \ + --replace 'Werkzeug ==' 'Werkzeug >=' \ + --replace 'Flask ==' 'Flask >=' + ''; + + propagatedBuildInputs = [ + appdirs + attrs + beautifulsoup4 + click-plugins + elasticsearch + flask-compress + flask_login + flask_wtf + html2text + python-dotenv + python-frontmatter + requests + tinydb + validators + werkzeug + wtforms + ]; + + # __init__.py attempts to mkdir in read-only file system + doCheck = false; + + meta = with lib; { + description = "Self-hosted knowledge repository"; + homepage = "https://archivy.github.io"; + license = licenses.mit; + maintainers = with maintainers; [ siraben ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/artha/default.nix b/nixpkgs/pkgs/applications/misc/artha/default.nix new file mode 100644 index 000000000000..37a1cee79a65 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/artha/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, autoreconfHook, fetchurl, dbus-glib, gtk2, pkg-config, wordnet }: + +stdenv.mkDerivation { + pname = "artha"; + version = "1.0.3"; + + src = fetchurl { + url = "mirror://sourceforge/artha/1.0.3/artha-1.0.3.tar.bz2"; + sha256 = "0qr4ihl7ma3cq82xi1fpzvf74mm9vsg0j035xvmcp3r6rmw2fycx"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ dbus-glib gtk2 wordnet ]; + + patches = [ + ./gio-underlink.patch + ]; + + meta = with lib; { + description = "An offline thesaurus based on WordNet"; + homepage = "http://artha.sourceforge.net"; + license = licenses.gpl2; + maintainers = [ maintainers.goibhniu ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/artha/gio-underlink.patch b/nixpkgs/pkgs/applications/misc/artha/gio-underlink.patch new file mode 100644 index 000000000000..08d9c4787369 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/artha/gio-underlink.patch @@ -0,0 +1,13 @@ +diff --git a/src/Makefile.am b/src/Makefile.am +index 0236d72..bcc1182 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -38,7 +38,7 @@ artha_LDADD = libwni.a $(WORDNET_LIB) + + if POSIX + AM_CFLAGS += @libdbus_CFLAGS@ +-artha_LDADD += -lX11 -ldbus-1 -ldbus-glib-1 -lgtk-x11-2.0 \ ++artha_LDADD += -lX11 -ldbus-1 -ldbus-glib-1 -lgio-2.0 -lgtk-x11-2.0 \ + -lgdk-x11-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 + else + artha_LDADD += @GTK_LIBS@ diff --git a/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix b/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix new file mode 100644 index 000000000000..a4276dac1d1f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, makeWrapper, perlPackages }: + +let version = "1.1"; +in stdenv.mkDerivation { + pname = "asciiquarium"; + inherit version; + src = fetchurl { + url = "https://robobunny.com/projects/asciiquarium/asciiquarium_${version}.tar.gz"; + sha256 = "0qfkr5b7sxzi973nh0h84blz2crvmf28jkkgaj3mxrr56mhwc20v"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ perlPackages.perl ]; + + installPhase = '' + mkdir -p $out/bin + cp asciiquarium $out/bin + chmod +x $out/bin/asciiquarium + wrapProgram $out/bin/asciiquarium \ + --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.TermAnimation ] } + ''; + + meta = with lib; { + description = "Enjoy the mysteries of the sea from the safety of your own terminal!"; + homepage = "https://robobunny.com/projects/asciiquarium/html/"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = [ maintainers.utdemir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch b/nixpkgs/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch new file mode 100644 index 000000000000..6aacbcc65bcb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch @@ -0,0 +1,24 @@ +From e7446c9bcb47674c9d0ee3b5bab129e9b86eb1c9 Mon Sep 17 00:00:00 2001 +From: Walter Franzini <walter.franzini@gmail.com> +Date: Fri, 7 Jun 2019 17:57:11 +0200 +Subject: [PATCH] musl does not support rewind pipe, make it build anyway + +--- + src/formats.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/formats.c b/src/formats.c +index f3efe764..477bf451 100644 +--- a/src/formats.c ++++ b/src/formats.c +@@ -424,7 +424,6 @@ static void UNUSED rewind_pipe(FILE * fp) + /* To fix this #error, either simply remove the #error line and live without + * file-type detection with pipes, or add support for your compiler in the + * lines above. Test with cat monkey.wav | ./sox --info - */ +- #error FIX NEEDED HERE + #define NO_REWIND_PIPE + (void)fp; + #endif +-- +2.19.2 + diff --git a/nixpkgs/pkgs/applications/misc/audio/sox/default.nix b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix new file mode 100644 index 000000000000..9baf2d4d2f24 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix @@ -0,0 +1,54 @@ +{ config, lib, stdenv, fetchurl, pkg-config, CoreAudio +, enableAlsa ? true, alsa-lib ? null +, enableLibao ? true, libao ? null +, enableLame ? config.sox.enableLame or false, lame ? null +, enableLibmad ? true, libmad ? null +, enableLibogg ? true, libogg ? null, libvorbis ? null +, enableOpusfile ? true, opusfile ? null +, enableFLAC ? true, flac ? null +, enablePNG ? true, libpng ? null +, enableLibsndfile ? true, libsndfile ? null +, enableWavpack ? true, wavpack ? null +# amrnb and amrwb are unfree, disabled by default +, enableAMR ? false, amrnb ? null, amrwb ? null +, enableLibpulseaudio ? true, libpulseaudio ? null +}: + +with lib; + +stdenv.mkDerivation rec { + name = "sox-14.4.2"; + + src = fetchurl { + url = "mirror://sourceforge/sox/${name}.tar.gz"; + sha256 = "0v2znlxkxxcd3f48hf3dx9pq7i6fdhb62kgj7wv8xggz8f35jpxl"; + }; + + # configure.ac uses pkg-config only to locate libopusfile + nativeBuildInputs = optional enableOpusfile pkg-config; + + patches = [ ./0001-musl-rewind-pipe-workaround.patch ]; + + buildInputs = + optional (enableAlsa && stdenv.isLinux) alsa-lib ++ + optional enableLibao libao ++ + optional enableLame lame ++ + optional enableLibmad libmad ++ + optionals enableLibogg [ libogg libvorbis ] ++ + optional enableOpusfile opusfile ++ + optional enableFLAC flac ++ + optional enablePNG libpng ++ + optional enableLibsndfile libsndfile ++ + optional enableWavpack wavpack ++ + optionals enableAMR [ amrnb amrwb ] ++ + optional enableLibpulseaudio libpulseaudio ++ + optional (stdenv.isDarwin) CoreAudio; + + meta = { + description = "Sample Rate Converter for audio"; + homepage = "http://sox.sourceforge.net/"; + maintainers = [ lib.maintainers.marcweber ]; + license = if enableAMR then lib.licenses.unfree else lib.licenses.gpl2Plus; + platforms = lib.platforms.linux ++ lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/audio/soxr/arm64-check.patch b/nixpkgs/pkgs/applications/misc/audio/soxr/arm64-check.patch new file mode 100644 index 000000000000..ac16a214c3aa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/audio/soxr/arm64-check.patch @@ -0,0 +1,79 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Misty De Meo <mistydemeo@gmail.com> +Date: Tue, 15 Sep 2020 16:57:26 -0700 +Subject: [PATCH] Check for __arm64__, not just __arm__ + +On at least one 64-bit ARM processor I've tested (Apple Silicon on macOS), +__arm__ isn't defined but __arm64__ is. As a result, some of the +ARM-specific macros are missing and calls to them fail. +--- + src/cr-core.c | 2 +- + src/dev32s.h | 2 +- + src/pffft-wrap.c | 2 +- + src/pffft.c | 4 ++-- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/cr-core.c b/src/cr-core.c +index 159a5d9..fe5ea8a 100644 +--- a/src/cr-core.c ++++ b/src/cr-core.c +@@ -80,7 +80,7 @@ static void cubic_stage_fn(stage_t * p, fifo_t * output_fifo) + #define DEFINED_X86 0 + #endif + +-#if defined __arm__ ++#if defined(__arm__) || defined(__arm64__) + #define DEFINED_ARM 1 + #else + #define DEFINED_ARM 0 +diff --git a/src/dev32s.h b/src/dev32s.h +index 7edae86..a14d7ad 100644 +--- a/src/dev32s.h ++++ b/src/dev32s.h +@@ -31,7 +31,7 @@ SIMD_INLINE(void) vStorSum(float * a, v4_t b) { + v4_t t = vAdd(_mm_movehl_ps(b, b), b); + _mm_store_ss(a, vAdd(t, _mm_shuffle_ps(t,t,1)));} + +-#elif defined __arm__ ++#elif defined(__arm__) || defined(__arm64__) + + #include <arm_neon.h> + +diff --git a/src/pffft-wrap.c b/src/pffft-wrap.c +index c920f06..1641fc4 100644 +--- a/src/pffft-wrap.c ++++ b/src/pffft-wrap.c +@@ -40,7 +40,7 @@ static void pffft_zconvolve(PFFFT_Setup *s, const float *a, const float *b, floa + + float ar, ai, br, bi; + +-#ifdef __arm__ ++#if defined(__arm__) || defined(__arm64__) + __builtin_prefetch(va); + __builtin_prefetch(vb); + __builtin_prefetch(va+2); +diff --git a/src/pffft.c b/src/pffft.c +index 46c841e..8c775a9 100644 +--- a/src/pffft.c ++++ b/src/pffft.c +@@ -157,7 +157,7 @@ typedef __m128 v4sf; + /* + ARM NEON support macros + */ +-#elif !defined(PFFFT_SIMD_DISABLE) && defined(__arm__) ++#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(__arm64__)) + # include <arm_neon.h> + typedef float32x4_t v4sf; + # define SIMD_SZ 4 +@@ -1732,7 +1732,7 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b, + const v4sf * RESTRICT vb = (const v4sf*)b; + v4sf * RESTRICT vab = (v4sf*)ab; + +-#ifdef __arm__ ++#if defined(__arm__) || defined(__arm64__) + __builtin_prefetch(va); + __builtin_prefetch(vb); + __builtin_prefetch(vab); +-- +2.30.1 + diff --git a/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix b/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix new file mode 100644 index 000000000000..8460b4856dcc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, cmake }: + +stdenv.mkDerivation rec { + name = "soxr-0.1.3"; + + src = fetchurl { + url = "mirror://sourceforge/soxr/${name}-Source.tar.xz"; + sha256 = "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di"; + }; + + patches = [ + # Remove once https://sourceforge.net/p/soxr/code/merge-requests/5/ is merged. + ./arm64-check.patch + ]; + + outputs = [ "out" "doc" ]; # headers are just two and very small + + preConfigure = if stdenv.isDarwin then '' + export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}"`pwd`/build/src + '' else '' + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}"`pwd`/build/src + ''; + + nativeBuildInputs = [ cmake ]; + + meta = { + description = "An audio resampling library"; + homepage = "http://soxr.sourceforge.net"; + license = lib.licenses.lgpl21Plus; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix b/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix new file mode 100644 index 000000000000..b7e738cfc125 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, snack, tcl, tk, makeWrapper }: + +stdenv.mkDerivation { + name = "wavesurfer-1.8.5"; + + src = fetchurl { + url = "https://www.speech.kth.se/wavesurfer/wavesurfer-1.8.5.tar.gz"; + sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ snack tcl tk ]; + + installPhase = '' + mkdir -p $out/{bin,nix-support,share/wavesurfer/} + mv doc $out/share/wavesurfer + mv * $out/nix-support + ln -s $out/{nix-support,bin}/wavesurfer.tcl + wrapProgram "$out/nix-support/wavesurfer.tcl" \ + --set TCLLIBPATH "${snack}/lib" \ + --prefix PATH : "${lib.makeBinPath [ tcl tk ]}" + ''; + + meta = { + description = "Tool for recording, playing, editing, viewing and labeling of audio"; + homepage = "http://www.speech.kth.se/wavesurfer/"; + license = lib.licenses.bsd0; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix b/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix new file mode 100644 index 000000000000..3b32f0d7f30b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "wavrsocvt-1.0.2.0"; + + src = fetchurl { + url = "http://bricxcc.sourceforge.net/wavrsocvt.tgz"; + sha256 = "15qlvdfwbiclljj7075ycm78yzqahzrgl4ky8pymix5179acm05h"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + unpackPhase = '' + tar -zxf $src + ''; + + installPhase = '' + mkdir -p $out/bin + cp wavrsocvt $out/bin + ''; + + meta = with lib; { + description = "Convert .wav files into sound files for Lego NXT brick"; + longDescription = '' + wavrsocvt is a command-line utility which can be used from a + terminal window or script to convert .wav files into sound + files for the NXT brick (.rso files). It can also convert the + other direction (i.e., .rso -> .wav). It can produce RSO files + with a sample rate between 2000 and 16000 (the min/max range of + supported sample rates in the standard NXT firmware). + You can then upload these with e.g. nxt-python. + ''; + homepage = "http://bricxcc.sourceforge.net/"; + license = licenses.mpl11; + maintainers = with maintainers; [ leenaars ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix b/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix new file mode 100644 index 000000000000..bd3194e3fea2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix @@ -0,0 +1,27 @@ +{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, pcsclite, qtsvg, qttools, qtwebsockets +, qtquickcontrols2, qtgraphicaleffects }: + +mkDerivation rec { + pname = "AusweisApp2"; + version = "1.22.0"; + + src = fetchFromGitHub { + owner = "Governikus"; + repo = "AusweisApp2"; + rev = version; + sha256 = "00isb8xcbm419nvxx2ri0n8x5d403733h2whjqjcd3hmpx3x4q1h"; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + + buildInputs = [ qtsvg qttools qtwebsockets qtquickcontrols2 qtgraphicaleffects pcsclite ]; + + meta = with lib; { + description = "Authentication software for the German ID card"; + downloadPage = "https://github.com/Governikus/AusweisApp2/releases"; + homepage = "https://www.ausweisapp.bund.de/ausweisapp2/"; + license = licenses.eupl12; + maintainers = with maintainers; [ b4dm4n ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/authenticator/default.nix b/nixpkgs/pkgs/applications/misc/authenticator/default.nix new file mode 100644 index 000000000000..ffa34d041e9c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/authenticator/default.nix @@ -0,0 +1,100 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, appstream-glib +, desktop-file-utils +, meson +, ninja +, pkg-config +, python3 +, rustPlatform +, wrapGAppsHook +, gdk-pixbuf +, glib +, gst_all_1 +, gtk4 +, libadwaita +, openssl +, sqlite +, wayland +, zbar +}: + +stdenv.mkDerivation rec { + pname = "authenticator"; + version = "4.0.3"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "Authenticator"; + rev = version; + sha256 = "0fvs76f3fm5pxn7wg6sjbqpgip5w2j7xrh4siasdcl2bx6vsld8b"; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + sha256 = "1s97jyszxf24rs3ni11phiyvmp1wm8sicb0rh1jgwz4bn1cnakx4"; + }; + + postPatch = '' + patchShebangs build-aux + ''; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + meson + ninja + pkg-config + python3 + wrapGAppsHook + ] ++ (with rustPlatform; [ + cargoSetupHook + rust.cargo + rust.rustc + ]); + + buildInputs = [ + gdk-pixbuf + glib + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + + # gst-plugins-good needs gtk4 support: + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/767 + # We copy the way it is built from the Flatpak: + # https://gitlab.gnome.org/World/Authenticator/-/blob/master/build-aux/com.belmoussaoui.Authenticator.Devel.json + (gst_all_1.gst-plugins-good.overrideAttrs (old: { + patches = old.patches or [ ] ++ [ + "${src}/build-aux/767.patch" + ]; + mesonFlags = old.mesonFlags ++ [ + "-Dgtk3=disabled" + "-Dgtk4=enabled" + "-Dgtk4-experiments=true" + ]; + buildInputs = old.buildInputs ++ [ + gtk4 + ]; + })) + + (gst_all_1.gst-plugins-bad.override { enableZbar = true; }) + gtk4 + libadwaita + openssl + sqlite + wayland + zbar + ]; + + meta = with lib; { + broken = true; # https://gitlab.gnome.org/World/Authenticator/-/issues/271 + description = "Two-factor authentication code generator for GNOME"; + homepage = "https://gitlab.gnome.org/World/Authenticator"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/authy/default.nix b/nixpkgs/pkgs/applications/misc/authy/default.nix new file mode 100644 index 000000000000..dc8786dcce2b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/authy/default.nix @@ -0,0 +1,110 @@ +{ alsa-lib, at-spi2-atk, at-spi2-core, atk, autoPatchelfHook, cairo, cups +, dbus, electron_9, expat, fetchurl, gdk-pixbuf, glib, gtk3, lib +, libappindicator-gtk3, libdbusmenu-gtk3, libuuid, makeWrapper +, nspr, nss, pango, squashfsTools, stdenv, systemd, xorg +}: + +let + # Currently only works with electron 9 + electron = electron_9; +in + +stdenv.mkDerivation rec { + pname = "authy"; + version = "1.8.3"; + rev = "5"; + + buildInputs = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + gdk-pixbuf + glib + gtk3 + libappindicator-gtk3 + libdbusmenu-gtk3 + libuuid + nspr + nss + pango + stdenv.cc.cc + systemd + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + ]; + + src = fetchurl { + url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap"; + sha256 = "1yfvkmy34mc1dan9am11yka88jv7a4dslsszy4kcc8vap4cjmgpn"; + }; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ]; + + unpackPhase = '' + runHook preUnpack + unsquashfs "$src" + cd squashfs-root + if ! grep -q '${version}' meta/snap.yaml; then + echo "Package version differs from version found in snap metadata:" + grep 'version: ' meta/snap.yaml + echo "While the nix package specifies: ${version}." + echo "You probably chose the wrong revision or forgot to update the nix version." + exit 1 + fi + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/ + + cp -r ./* $out/ + rm -R ./* + + # The snap package has the `ffmpeg.so` file which is copied over with other .so files + mv $out/*.so $out/lib/ + + # Replace icon name in Desktop file + sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/meta/gui/authy.desktop" + + # Move the desktop file, icon, binary to their appropriate locations + mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps + cp $out/meta/gui/authy.desktop $out/share/applications/ + cp $out/meta/gui/icon.png $out/share/pixmaps/authy.png + cp $out/${pname} $out/bin/${pname} + + # Cleanup + rm -r $out/{data-dir,gnome-platform,meta,scripts,usr,*.sh,*.so} + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/resources/app.asar + ''; + + meta = with lib; { + homepage = "https://www.authy.com"; + description = "Twilio Authy two factor authentication desktop application"; + license = licenses.unfree; + maintainers = with maintainers; [ iammrinal0 ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/autospotting/default.nix b/nixpkgs/pkgs/applications/misc/autospotting/default.nix new file mode 100644 index 000000000000..ac929bfa5b15 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/autospotting/default.nix @@ -0,0 +1,28 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage { + pname = "autospotting"; + version = "unstable-2018-11-17"; + goPackagePath = "github.com/AutoSpotting/AutoSpotting"; + + src = fetchFromGitHub { + owner = "AutoSpotting"; + repo = "AutoSpotting"; + rev = "122ab8f292a2f718dd85e79ec22acd455122907e"; + sha256 = "0p48lgig9kblxvgq1kggczkn4qdbx6ciq9c8x0179i80vl4jf7v6"; + }; + + # patching path where repository used to exist + postPatch = '' + sed -i "s+github.com/cristim/autospotting/core+github.com/AutoSpotting/AutoSpotting/core+" autospotting.go + ''; + + meta = with lib; { + homepage = "https://github.com/AutoSpotting/AutoSpotting"; + description = "Automatically convert your existing AutoScaling groups to up to 90% cheaper spot instances with minimal configuration changes"; + license = licenses.free; + maintainers = [ maintainers.costrouc ]; + platforms = platforms.unix; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix b/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix new file mode 100644 index 000000000000..45d4f69075d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "avell-unofficial-control-center"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "rodgomesc"; + repo = "avell-unofficial-control-center"; + # https://github.com/rodgomesc/avell-unofficial-control-center/issues/58 + rev = "e32e243e31223682a95a719bc58141990eef35e6"; + sha256 = "1qz1kv7p09nxffndzz9jlkzpfx26ppz66f8603zyamjq9dqdmdin"; + }; + + # No tests included + doCheck = false; + + propagatedBuildInputs = with python3Packages; [ pyusb elevate ]; + + meta = with lib; { + homepage = "https://github.com/rodgomesc/avell-unofficial-control-center"; + description = "Software for controlling RGB keyboard lights on some gaming laptops that use ITE Device(8291) Rev 0.03"; + license = licenses.mit; + maintainers = with maintainers; [ rkitover ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/avrdudess/default.nix b/nixpkgs/pkgs/applications/misc/avrdudess/default.nix new file mode 100644 index 000000000000..14b372d91e59 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/avrdudess/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, runtimeShell, fetchurl, unzip, mono, avrdude, gtk2, xdg-utils }: + +stdenv.mkDerivation { + name = "avrdudess-2.2.20140102"; + + src = fetchurl { + url = "http://blog.zakkemble.co.uk/download/avrdudess_20140102.zip"; + sha256 = "18llpvjsfhypzijrvfbzmcg3g141f307mzsrg11wcdxh9syxqak6"; + }; + + nativeBuildInputs = [ unzip ]; + + phases = [ "buildPhase" ]; + + buildPhase = '' + mkdir -p "$out/avrdudess" + mkdir -p "$out/bin" + + unzip "$src" -d "$out/avrdudess" + + cat >> "$out/bin/avrdudess" << __EOF__ + #!${runtimeShell} + export LD_LIBRARY_PATH="${lib.makeLibraryPath [gtk2 mono]}" + # We need PATH from user env for xdg-open to find its tools, which + # typically depend on the currently running desktop environment. + export PATH="${lib.makeBinPath [ avrdude xdg-utils ]}:\$PATH" + + # avrdudess must have its resource files in its current working directory + cd $out/avrdudess && exec ${mono}/bin/mono "$out/avrdudess/avrdudess.exe" "\$@" + __EOF__ + + chmod a+x "$out/bin/"* + ''; + + meta = with lib; { + description = "GUI for AVRDUDE (AVR microcontroller programmer)"; + homepage = "https://github.com/zkemble/AVRDUDESS"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix b/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix new file mode 100644 index 000000000000..56894a29a662 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/azuredatastudio/default.nix @@ -0,0 +1,115 @@ +{ stdenv +, lib +, fetchurl +, makeWrapper +, libuuid +, libunwind +, icu +, openssl +, zlib +, curl +, at-spi2-core +, at-spi2-atk +, gnutar +, atomEnv +, libkrb5 +}: + +# from justinwoo/azuredatastudio-nix +# https://github.com/justinwoo/azuredatastudio-nix/blob/537c48aa3981cd1a82d5d6e508ab7e7393b3d7c8/default.nix + +stdenv.mkDerivation rec { + + pname = "azuredatastudio"; + version = "1.17.1"; + + src = fetchurl { + url = "https://azuredatastudiobuilds.blob.core.windows.net/releases/${version}/azuredatastudio-linux-${version}.tar.gz"; + sha256 = "0px9n9vyjvyddca4x7d0zindd0dim7350vkjg5dd0506fm8dc38k"; + }; + + nativeBuildInputs = [ + makeWrapper + ]; + + buildInputs = [ + libuuid + at-spi2-core + at-spi2-atk + ]; + + phases = "unpackPhase fixupPhase"; + + # change this to azuredatastudio-insiders for insiders releases + edition = "azuredatastudio"; + targetPath = "$out/${edition}"; + + unpackPhase = '' + mkdir -p ${targetPath} + ${gnutar}/bin/tar xf $src --strip 1 -C ${targetPath} + ''; + + sqltoolsserviceRpath = lib.makeLibraryPath [ + stdenv.cc.cc + libunwind + libuuid + icu + openssl + zlib + curl + ]; + + # this will most likely need to be updated when azuredatastudio's version changes + sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/2.0.0-release.56"; + + rpath = lib.concatStringsSep ":" [ + atomEnv.libPath + ( + lib.makeLibraryPath [ + libuuid + at-spi2-core + at-spi2-atk + stdenv.cc.cc.lib + libkrb5 + ] + ) + targetPath + sqltoolsserviceRpath + ]; + + fixupPhase = '' + fix_sqltoolsservice() + { + mv ${sqltoolsservicePath}/$1 ${sqltoolsservicePath}/$1_old + patchelf \ + --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \ + ${sqltoolsservicePath}/$1_old + + makeWrapper \ + ${sqltoolsservicePath}/$1_old \ + ${sqltoolsservicePath}/$1 \ + --set LD_LIBRARY_PATH ${sqltoolsserviceRpath} + } + + fix_sqltoolsservice MicrosoftSqlToolsServiceLayer + fix_sqltoolsservice MicrosoftSqlToolsCredentials + fix_sqltoolsservice SqlToolsResourceProviderService + + patchelf \ + --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \ + ${targetPath}/${edition} + + mkdir -p $out/bin + makeWrapper \ + ${targetPath}/bin/${edition} \ + $out/bin/azuredatastudio \ + --set LD_LIBRARY_PATH ${rpath} + ''; + + meta = { + maintainers = with lib.maintainers; [ xavierzwirtz ]; + description = "A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW"; + homepage = "https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio"; + license = lib.licenses.unfreeRedistributable; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/barrier/default.nix b/nixpkgs/pkgs/applications/misc/barrier/default.nix new file mode 100644 index 000000000000..b9dbcf529be1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/barrier/default.nix @@ -0,0 +1,42 @@ +{ lib, fetchFromGitHub, cmake, curl, xorg, avahi, qtbase, mkDerivation, + openssl, wrapGAppsHook, + avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; } +}: + +mkDerivation rec { + pname = "barrier"; + version = "2.3.3"; + + src = fetchFromGitHub { + owner = "debauchee"; + repo = pname; + rev = "v${version}"; + sha256 = "11vqkzpcjiv3pq6ps022223j6skgm1d23dj18n4a5nsf53wsvvp4"; + fetchSubmodules = true; + }; + + buildInputs = [ curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat qtbase ]; + nativeBuildInputs = [ cmake wrapGAppsHook ]; + + postFixup = '' + substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier" + ''; + + qtWrapperArgs = [ + ''--prefix PATH : ${lib.makeBinPath [ openssl ]}'' + ]; + + meta = { + description = "Open-source KVM software"; + longDescription = '' + Barrier is KVM software forked from Symless's synergy 1.9 codebase. + Synergy was a commercialized reimplementation of the original + CosmoSynergy written by Chris Schoeneman. + ''; + homepage = "https://github.com/debauchee/barrier"; + downloadPage = "https://github.com/debauchee/barrier/releases"; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.phryneas ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/base16-universal-manager/default.nix b/nixpkgs/pkgs/applications/misc/base16-universal-manager/default.nix new file mode 100644 index 000000000000..3d43a2870945 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/base16-universal-manager/default.nix @@ -0,0 +1,22 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "base16-universal-manager"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "pinpox"; + repo = "base16-universal-manager"; + rev = "v${version}"; + sha256 = "11kal7x0lajzydbc2cvbsix9ympinsiqzfib7dg4b3xprqkyb9zl"; + }; + + vendorSha256 = "19rba689319w3wf0b10yafydyz01kqg8b051vnijcyjyk0khwvsk"; + + meta = with lib; { + description = "A universal manager to set base16 themes for any supported application"; + homepage = "https://github.com/pinpox/base16-universal-manager"; + license = licenses.mit; + maintainers = with maintainers; [ jo1gi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix b/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix new file mode 100644 index 000000000000..cec4e8dd8c91 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix @@ -0,0 +1,51 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper +, curl, python3, bind, iproute2, bc, gitMinimal }: +let + version = "1.23.0"; + deps = lib.makeBinPath [ + curl + python3 + bind.dnsutils + iproute2 + bc + gitMinimal + ]; +in +stdenv.mkDerivation { + pname = "bashSnippets"; + inherit version; + + src = fetchFromGitHub { + owner = "alexanderepstein"; + repo = "Bash-Snippets"; + rev = "v${version}"; + sha256 = "044nxgd3ic2qr6hgq5nymn3dyf5i4s8mv5z4az6jvwlrjnvbg8cp"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + postPatch = '' + patchShebangs install.sh + substituteInPlace install.sh --replace /usr/local "$out" + ''; + + strictDeps = true; + + dontBuild = true; + + installPhase = '' + mkdir -p "$out"/bin "$out"/share/man/man1 + ./install.sh all + for file in "$out"/bin/*; do + wrapProgram "$file" --prefix PATH : "${deps}" + done + ''; + + meta = with lib; { + description = "A collection of small bash scripts for heavy terminal users"; + homepage = "https://github.com/alexanderepstein/Bash-Snippets"; + license = licenses.mit; + maintainers = with maintainers; [ infinisil ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/batsignal/default.nix b/nixpkgs/pkgs/applications/misc/batsignal/default.nix new file mode 100644 index 000000000000..93e16ea3469d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/batsignal/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, libnotify, pkg-config, glib }: + +stdenv.mkDerivation rec { + pname = "batsignal"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "electrickite"; + repo = "batsignal"; + rev = version; + sha256 = "0yc7xgwb3i4m8m9kg2xspqig3s2qgh2i9bkalvnkziayjb7y59qn"; + }; + + buildInputs = [ libnotify glib ]; + nativeBuildInputs = [ pkg-config ]; + installFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + homepage = "https://github.com/electrickite/batsignal"; + description = "Lightweight battery daemon written in C"; + license = licenses.isc; + maintainers = with maintainers; [ SlothOfAnarchy ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/bb/default.nix b/nixpkgs/pkgs/applications/misc/bb/default.nix new file mode 100644 index 000000000000..fd7eb4990f06 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bb/default.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, fetchurl, darwin, aalib, ncurses, xorg, libmikmod }: + +stdenv.mkDerivation rec { + pname = "bb"; + version = "1.3rc1"; + + src = fetchurl { + url = "mirror://sourceforge/aa-project/bb/${version}/${pname}-${version}.tar.gz"; + sha256 = "1i411glxh7g4pfg4gw826lpwngi89yrbmxac8jmnsfvrfb48hgbr"; + }; + + buildInputs = [ + aalib ncurses libmikmod + xorg.libXau xorg.libXdmcp xorg.libX11 + ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreAudio; + + postPatch = lib.optionalString stdenv.isDarwin '' + sed -i -e '/^#include <malloc.h>$/d' *.c + ''; + + meta = with lib; { + homepage = "http://aa-project.sourceforge.net/bb"; + description = "AA-lib demo"; + license = licenses.gpl2; + maintainers = [ maintainers.rnhmjoj ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/bemenu/default.nix b/nixpkgs/pkgs/applications/misc/bemenu/default.nix new file mode 100644 index 000000000000..371bb3a3ef92 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bemenu/default.nix @@ -0,0 +1,52 @@ +{ stdenv, lib, fetchFromGitHub, cairo, libxkbcommon +, pango, fribidi, harfbuzz, pcre, pkg-config +, ncursesSupport ? true, ncurses ? null +, waylandSupport ? true, wayland ? null, wayland-protocols ? null +, x11Support ? true, xorg ? null +}: + +assert ncursesSupport -> ncurses != null; +assert waylandSupport -> ! lib.elem null [wayland wayland-protocols]; +assert x11Support -> xorg != null; + +stdenv.mkDerivation rec { + pname = "bemenu"; + version = "0.6.2"; + + src = fetchFromGitHub { + owner = "Cloudef"; + repo = pname; + rev = version; + sha256 = "sha256-2xmi/Mh5iU50yc2R1x1yzP8Xaz+mUgLnH73tAeLwxI8="; + }; + + nativeBuildInputs = [ pkg-config pcre ]; + + makeFlags = ["PREFIX=$(out)"]; + + buildFlags = ["clients"] + ++ lib.optional ncursesSupport "curses" + ++ lib.optional waylandSupport "wayland" + ++ lib.optional x11Support "x11"; + + buildInputs = with lib; [ + cairo + fribidi + harfbuzz + libxkbcommon + pango + ] ++ optional ncursesSupport ncurses + ++ optionals waylandSupport [ wayland wayland-protocols ] + ++ optionals x11Support [ + xorg.libX11 xorg.libXinerama xorg.libXft + xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb + ]; + + meta = with lib; { + homepage = "https://github.com/Cloudef/bemenu"; + description = "Dynamic menu library and client program inspired by dmenu"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ lheckemann ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/bibletime/default.nix b/nixpkgs/pkgs/applications/misc/bibletime/default.nix new file mode 100644 index 000000000000..aae4a960a371 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bibletime/default.nix @@ -0,0 +1,47 @@ +{ lib, mkDerivation, fetchurl, cmake, pkg-config, sword, boost, clucene_core +, qtbase, qttools, qtsvg, perlPackages, docbook_xml_dtd_45 +, docbook_xsl_ns }: + +mkDerivation rec { + + version = "3.0"; + + pname = "bibletime"; + + src = fetchurl { + url = + "https://github.com/bibletime/bibletime/releases/download/v${version}/${pname}-${version}.tar.xz"; + sha256 = "08i6nb9a7z0jpsq76q0kr62hw6ph9chqjpjcvkimbcj4mmifzgnn"; + }; + + nativeBuildInputs = [ cmake pkg-config docbook_xml_dtd_45 ]; + buildInputs = [ + sword + boost + clucene_core + qtbase + qttools + qtsvg + perlPackages.Po4a + ]; + + preConfigure = '' + export CLUCENE_HOME=${clucene_core}; + export SWORD_HOME=${sword}; + ''; + + cmakeFlags = [ + "-DBUILD_HOWTO_PDF=OFF" + "-DBUILD_HANDBOOK_PDF=OFF" + "-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=${docbook_xsl_ns}/share/xml/docbook-xsl-ns/html/chunk.xsl" + "-DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=${docbook_xsl_ns}/share/xml/docbook-xsl-ns/html/chunk.xsl" + ]; + + meta = { + description = "A Qt4 Bible study tool"; + homepage = "http://www.bibletime.info/"; + platforms = lib.platforms.linux; + license = lib.licenses.gpl2Plus; + maintainers = [ lib.maintainers.piotr ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/bicon/default.nix b/nixpkgs/pkgs/applications/misc/bicon/default.nix new file mode 100644 index 000000000000..72f5a639f11f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bicon/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv + , fetchFromGitHub + , autoreconfHook + , pkg-config + , perl + , fribidi + , kbd + , xkbutils +}: + +stdenv.mkDerivation rec { + pname = "bicon"; + version = "unstable-2018-09-10"; + + src = fetchFromGitHub { + owner = "behdad"; + repo = pname; + rev = "38725c062a83ab19c4e4b4bc20eb9535561aa76c"; + sha256 = "0hdslrci8pq300f3rrjsvl5psfrxdwyxf9g2m5g789sr049dksnq"; + }; + + buildInputs = [ fribidi kbd xkbutils perl ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; + + preConfigure = '' + patchShebangs . + ''; + + meta = with lib; { + description = "A bidirectional console"; + homepage = "https://github.com/behdad/bicon"; + license = [ licenses.lgpl21 licenses.psfl licenses.bsd0 ]; + maintainers = [ maintainers.linarcx ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/birdtray/default.nix b/nixpkgs/pkgs/applications/misc/birdtray/default.nix new file mode 100644 index 000000000000..f007fb71377b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/birdtray/default.nix @@ -0,0 +1,50 @@ +{ mkDerivation + , lib + , fetchFromGitHub + + , cmake + , pkg-config + , qtbase + , qttools + , qtx11extras + , qttranslations +}: + +mkDerivation rec { + pname = "birdtray"; + version = "1.9.0"; + + src = fetchFromGitHub { + owner = "gyunaev"; + repo = pname; + rev = "v${version}"; + sha256 = "1469ng6zk0qx0qfsihrnlz1j9i1wk0hx4vqdaplz9mdpyxvmlryk"; + }; + + patches = [ + # See https://github.com/NixOS/nixpkgs/issues/86054 + ./fix-qttranslations-path.diff + ]; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ + qtbase qttools qtx11extras + ]; + + postPatch = '' + substituteInPlace src/birdtrayapp.cpp \ + --subst-var-by qttranslations ${qttranslations} + ''; + + # Wayland support is broken. + # https://github.com/gyunaev/birdtray/issues/113#issuecomment-621742315 + qtWrapperArgs = [ "--set QT_QPA_PLATFORM xcb" ]; + + meta = with lib; { + description = "Mail system tray notification icon for Thunderbird"; + homepage = "https://github.com/gyunaev/birdtray"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ Flakebi oxalica ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff b/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff new file mode 100644 index 000000000000..2a379b5e2744 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff @@ -0,0 +1,13 @@ +diff --git a/src/birdtrayapp.cpp b/src/birdtrayapp.cpp +index 847b4d3..3a3709a 100644 +--- a/src/birdtrayapp.cpp ++++ b/src/birdtrayapp.cpp +@@ -130,7 +130,7 @@ bool BirdtrayApp::loadTranslations() { + [](QString path) { return path.append("/translations"); }); + QLocale locale = QLocale::system(); + bool success = loadTranslation( +- qtTranslator, locale, "qt", {QLibraryInfo::location(QLibraryInfo::TranslationsPath)}); ++ qtTranslator, locale, "qt", {QLatin1String("@qttranslations@/translations")}); + success &= loadTranslation(dynamicTranslator, locale, "dynamic", locations); + success &= loadTranslation(mainTranslator, locale, "main", locations); + return success; diff --git a/nixpkgs/pkgs/applications/misc/bleachbit/default.nix b/nixpkgs/pkgs/applications/misc/bleachbit/default.nix new file mode 100644 index 000000000000..4b78cda35648 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bleachbit/default.nix @@ -0,0 +1,70 @@ +{ lib +, python3Packages +, fetchurl +, gettext +, gobject-introspection +, wrapGAppsHook +, glib +, gtk3 +, libnotify +, scandir ? null +}: + +python3Packages.buildPythonApplication rec { + pname = "bleachbit"; + version = "4.0.0"; + + format = "other"; + + src = fetchurl { + url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2"; + sha256 = "1dn3h6lr9ldbfpvgq9sdlk972sxhwalgj2f377qbqibm3yfxzpil"; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + libnotify + ]; + + propagatedBuildInputs = with python3Packages; [ + chardet + pygobject3 + requests + scandir + ]; + + # Patch the many hardcoded uses of /usr/share/ and /usr/bin + postPatch = '' + find -type f -exec sed -i -e 's@/usr/share@${placeholder "out"}/share@g' {} \; + find -type f -exec sed -i -e 's@/usr/bin@${placeholder "out"}/bin@g' {} \; + ''; + + dontBuild = true; + + installFlags = [ + "prefix=${placeholder "out"}" + ]; + + # prevent double wrapping from wrapGApps and wrapPythonProgram + dontWrapGApps = true; + makeWrapperArgs = [ + "\${gappsWrapperArgs[@]}" + ]; + + strictDeps = false; + + meta = with lib; { + homepage = "http://bleachbit.sourceforge.net"; + description = "A program to clean your computer"; + longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy."; + license = licenses.gpl3; + maintainers = with maintainers; [ leonardoce ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/blender/darwin.patch b/nixpkgs/pkgs/applications/misc/blender/darwin.patch new file mode 100644 index 000000000000..72db79245941 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/blender/darwin.patch @@ -0,0 +1,59 @@ +diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake +--- a/build_files/cmake/platform/platform_apple.cmake ++++ b/build_files/cmake/platform/platform_apple.cmake +@@ -77,7 +77,6 @@ else() + message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}") + endif() + if(NOT EXISTS "${LIBDIR}/") +- message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'") + endif() + + # Prefer lib directory paths +@@ -114,10 +113,6 @@ if(WITH_CODEC_SNDFILE) + find_library(_sndfile_VORBIS_LIBRARY NAMES vorbis HINTS ${LIBDIR}/ffmpeg/lib) + find_library(_sndfile_VORBISENC_LIBRARY NAMES vorbisenc HINTS ${LIBDIR}/ffmpeg/lib) + list(APPEND LIBSNDFILE_LIBRARIES +- ${_sndfile_FLAC_LIBRARY} +- ${_sndfile_OGG_LIBRARY} +- ${_sndfile_VORBIS_LIBRARY} +- ${_sndfile_VORBISENC_LIBRARY} + ) + + print_found_status("SndFile libraries" "${LIBSNDFILE_LIBRARIES}") +@@ -134,7 +129,7 @@ if(WITH_PYTHON) + # normally cached but not since we include them with blender + set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}") + set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}") +- set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}.a) ++ set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}.dylib) + set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}") + # set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled + else() +@@ -175,9 +170,7 @@ endif() + if(WITH_CODEC_FFMPEG) + set(FFMPEG_FIND_COMPONENTS + avcodec avdevice avformat avutil +- mp3lame ogg opus swresample swscale +- theora theoradec theoraenc vorbis vorbisenc +- vorbisfile vpx x264 xvidcore) ++ swresample swscale) + find_package(FFmpeg) + endif() + +@@ -275,7 +268,6 @@ if(WITH_BOOST) + endif() + + if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG) +- string(APPEND PLATFORM_LINKFLAGS " -liconv") # boost_locale and ffmpeg needs it ! + endif() + + if(WITH_PUGIXML) +@@ -476,7 +468,7 @@ else() + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic") + endif() + +-if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5) ++if(FALSE) + # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv + string(APPEND CMAKE_CXX_FLAGS " -ftemplate-depth=1024") + endif() diff --git a/nixpkgs/pkgs/applications/misc/blender/default.nix b/nixpkgs/pkgs/applications/misc/blender/default.nix new file mode 100644 index 000000000000..26ca38981341 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/blender/default.nix @@ -0,0 +1,167 @@ +{ config, stdenv, lib, fetchurl, fetchzip, boost, cmake, ffmpeg, gettext, glew +, ilmbase, libXi, libX11, libXext, libXrender +, libjpeg, libpng, libsamplerate, libsndfile +, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimagedenoise, openimageio2, openjpeg, python39Packages +, openvdb, libXxf86vm, tbb, alembic +, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath +, jackaudioSupport ? false, libjack2 +, cudaSupport ? config.cudaSupport or false, cudatoolkit +, colladaSupport ? true, opencollada +, spaceNavSupport ? stdenv.isLinux, libspnav +, makeWrapper +, pugixml, llvmPackages, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL +, potrace +, openxr-loader +, embree, gmp, libharu +}: + +with lib; +let + python = python39Packages.python; + optix = fetchzip { + url = "https://developer.download.nvidia.com/redist/optix/v7.0/OptiX-7.0.0-include.zip"; + sha256 = "1b3ccd3197anya2bj3psxdrvrpfgiwva5zfv2xmyrl73nb2dvfr7"; + }; + +in +stdenv.mkDerivation rec { + pname = "blender"; + version = "2.93.1"; + + src = fetchurl { + url = "https://download.blender.org/source/${pname}-${version}.tar.xz"; + sha256 = "sha256-IdriOBw/DlpH6B0GKqC1nKnhTZwrIL8U9hkMS20BHNg="; + }; + + patches = lib.optional stdenv.isDarwin ./darwin.patch; + + nativeBuildInputs = [ cmake makeWrapper python39Packages.wrapPython llvmPackages.llvm.dev ] + ++ optionals cudaSupport [ addOpenGLRunpath ]; + buildInputs = + [ boost ffmpeg gettext glew ilmbase + freetype libjpeg libpng libsamplerate libsndfile libtiff + opencolorio openexr openimagedenoise openimageio2 openjpeg python zlib fftw jemalloc + alembic + (opensubdiv.override { inherit cudaSupport; }) + tbb + embree + gmp + pugixml + potrace + libharu + ] + ++ (if (!stdenv.isDarwin) then [ + libXi libX11 libXext libXrender + libGLU libGL openal + libXxf86vm + openxr-loader + # OpenVDB currently doesn't build on darwin + openvdb + ] + else [ + llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL + ]) + ++ optional jackaudioSupport libjack2 + ++ optional cudaSupport cudatoolkit + ++ optional colladaSupport opencollada + ++ optional spaceNavSupport libspnav; + pythonPath = with python39Packages; [ numpy requests ]; + + postPatch = '' + # allow usage of dynamically linked embree + rm build_files/cmake/Modules/FindEmbree.cmake + '' + + (if stdenv.isDarwin then '' + : > build_files/cmake/platform/platform_apple_xcode.cmake + substituteInPlace source/creator/CMakeLists.txt \ + --replace '${"$"}{LIBDIR}/python' \ + '${python}' \ + --replace '${"$"}{LIBDIR}/openmp' \ + '${llvmPackages.openmp}' + substituteInPlace build_files/cmake/platform/platform_apple.cmake \ + --replace '${"$"}{LIBDIR}/python' \ + '${python}' \ + --replace '${"$"}{LIBDIR}/opencollada' \ + '${opencollada}' \ + --replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \ + '${python39Packages.numpy}/${python.sitePackages}/numpy' + '' else '' + substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"' + ''); + + cmakeFlags = + [ + "-DWITH_ALEMBIC=ON" + "-DWITH_MOD_OCEANSIM=ON" + "-DWITH_CODEC_FFMPEG=ON" + "-DWITH_CODEC_SNDFILE=ON" + "-DWITH_INSTALL_PORTABLE=OFF" + "-DWITH_FFTW3=ON" + "-DWITH_SDL=OFF" + "-DWITH_OPENCOLORIO=ON" + "-DWITH_OPENSUBDIV=ON" + "-DPYTHON_LIBRARY=${python.libPrefix}" + "-DPYTHON_LIBPATH=${python}/lib" + "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}" + "-DPYTHON_VERSION=${python.pythonVersion}" + "-DWITH_PYTHON_INSTALL=OFF" + "-DWITH_PYTHON_INSTALL_NUMPY=OFF" + "-DPYTHON_NUMPY_PATH=${python39Packages.numpy}/${python.sitePackages}" + "-DPYTHON_NUMPY_INCLUDE_DIRS=${python39Packages.numpy}/${python.sitePackages}/numpy/core/include" + "-DWITH_PYTHON_INSTALL_REQUESTS=OFF" + "-DWITH_OPENVDB=ON" + "-DWITH_TBB=ON" + "-DWITH_IMAGE_OPENJPEG=ON" + "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}" + ] + ++ optionals stdenv.isDarwin [ + "-DWITH_CYCLES_OSL=OFF" # requires LLVM + "-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin + + "-DLIBDIR=/does-not-exist" + ] + # Clang doesn't support "-export-dynamic" + ++ optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS=" + ++ optional jackaudioSupport "-DWITH_JACK=ON" + ++ optional cudaSupport [ + "-DWITH_CYCLES_CUDA_BINARIES=ON" + "-DWITH_CYCLES_DEVICE_OPTIX=ON" + "-DOPTIX_ROOT_DIR=${optix}" + ]; + + NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}"; + + # Since some dependencies are built with gcc 6, we need gcc 6's + # libstdc++ in our RPATH. Sigh. + NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib"; + + blenderExecutable = + placeholder "out" + (if stdenv.isDarwin then "/Blender.app/Contents/MacOS/Blender" else "/bin/blender"); + postInstall = '' + buildPythonPath "$pythonPath" + wrapProgram $blenderExecutable \ + --prefix PATH : $program_PATH \ + --prefix PYTHONPATH : "$program_PYTHONPATH" \ + --add-flags '--python-use-system-env' + ''; + + # Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be + # found. See the explanation in libglvnd. + postFixup = optionalString cudaSupport '' + for program in $out/bin/blender $out/bin/.blender-wrapped; do + isELF "$program" || continue + addOpenGLRunpath "$program" + done + ''; + + meta = with lib; { + description = "3D Creation/Animation/Publishing System"; + homepage = "https://www.blender.org"; + # They comment two licenses: GPLv2 and Blender License, but they + # say: "We've decided to cancel the BL offering for an indefinite period." + # OptiX, enabled with cudaSupport, is non-free. + license = with licenses; [ gpl2Plus ] ++ optional cudaSupport unfree; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + maintainers = with maintainers; [ goibhniu veprbl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/blender/fix-include.patch b/nixpkgs/pkgs/applications/misc/blender/fix-include.patch new file mode 100644 index 000000000000..44e2147d073c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/blender/fix-include.patch @@ -0,0 +1,12 @@ +diff --git a/intern/smoke/intern/WAVELET_NOISE.h b/intern/smoke/intern/WAVELET_NOISE.h +index fce901b..1f73c5e 100644 +--- a/intern/smoke/intern/WAVELET_NOISE.h ++++ b/intern/smoke/intern/WAVELET_NOISE.h +@@ -43,6 +43,7 @@ + #ifndef WAVELET_NOISE_H + #define WAVELET_NOISE_H + ++#include <string.h> + #include <MERSENNETWISTER.h> + + #ifdef WIN32 diff --git a/nixpkgs/pkgs/applications/misc/blogc/default.nix b/nixpkgs/pkgs/applications/misc/blogc/default.nix new file mode 100644 index 000000000000..86d52625dc2e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/blogc/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, ronn, git, cmocka }: + +stdenv.mkDerivation rec { + pname = "blogc"; + version = "0.20.1"; + + src = fetchFromGitHub { + owner = "blogc"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-YAwGgV5Vllz8JlIASbGIkdRzpciQbgPiXl5DjiSEJyE="; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + + buildInputs = [ ronn git cmocka ]; + + configureFlags = [ + "--enable-git-receiver" + "--enable-make" + "--enable-runserver" + ]; + + doCheck = true; + + meta = with lib; { + description = "A blog compiler"; + license = licenses.bsd3; + homepage = "https://blogc.rgm.io"; + platforms = platforms.unix; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix b/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix new file mode 100644 index 000000000000..c0c76b4ef49d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix @@ -0,0 +1,32 @@ +{ stdenv, lib, makeWrapper, ghcWithPackages, packages ? (_:[]) }: +let + blucontrolEnv = ghcWithPackages (self: [ self.blucontrol ] ++ packages self); +in + stdenv.mkDerivation { + pname = "blucontrol-with-packages"; + version = blucontrolEnv.version; + + nativeBuildInputs = [ makeWrapper ]; + + buildCommand = '' + makeWrapper ${blucontrolEnv}/bin/blucontrol $out/bin/blucontrol \ + --prefix PATH : ${lib.makeBinPath [ blucontrolEnv ]} + ''; + + # trivial derivation + preferLocalBuild = true; + allowSubstitues = false; + + meta = with lib; { + description = "Configurable blue light filter"; + longDescription = '' + This application is a blue light filter, with the main focus on configurability. + Configuration is done in Haskell in the style of xmonad. + Blucontrol makes use of monad transformers and allows monadic calculation of gamma values and recoloring. The user chooses, what will be captured in the monadic state. + ''; + license = licenses.bsd3; + homepage = "https://github.com/jumper149/blucontrol"; + platforms = platforms.unix; + maintainers = with maintainers; [ jumper149 ]; + }; + } diff --git a/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix b/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix new file mode 100644 index 000000000000..19c2f3b99a4d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix @@ -0,0 +1,30 @@ +{ lib, fetchFromGitHub, buildPythonApplication, pybluez }: + +buildPythonApplication rec { + pname = "bluetooth_battery"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "TheWeirdDev"; + repo = "Bluetooth_Headset_Battery_Level"; + rev = "v${version}"; + sha256 = "121pkaq9z8p2i35cqs32aygjvf82r961w0axirpmsrbmrwq2hh6g"; + }; + + propagatedBuildInputs = [ pybluez ]; + + format = "other"; + + installPhase = '' + mkdir -p $out/bin + cp $src/bluetooth_battery.py $out/bin/bluetooth_battery + ''; + + meta = with lib; { + description = "Fetch the battery charge level of some Bluetooth headsets"; + homepage = "https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ cheriimoya ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/blugon/default.nix b/nixpkgs/pkgs/applications/misc/blugon/default.nix new file mode 100644 index 000000000000..d11a61e440fb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/blugon/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, python3, libX11, libXrandr }: + +stdenv.mkDerivation rec { + pname = "blugon"; + version = "1.12.1"; + + src = fetchFromGitHub { + owner = "jumper149"; + repo = pname; + rev = version; + sha256 = "1i67v8jxvavgax3dwvns200iwwdcvgki04liq0x64q52lg0vrh7m"; + }; + + buildInputs = [ python3 libX11 libXrandr ]; + + # Remove at next release + # https://github.com/jumper149/blugon/commit/d262cd05 + postPatch = '' + sed -i 's,CC = gcc,CC ?= gcc,g' backends/scg/Makefile + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Simple and configurable Blue Light Filter for X"; + longDescription = '' + blugon is a simple and fast Blue Light Filter, that is highly configurable and provides a command line interface. + The program can be run just once or as a daemon (manually or via systemd). + There are several different backends available. + blugon calculates the screen color from your local time and configuration. + ''; + license = licenses.asl20; + homepage = "https://github.com/jumper149/blugon"; + platforms = platforms.unix; + maintainers = with maintainers; [ jumper149 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/bottles/default.nix b/nixpkgs/pkgs/applications/misc/bottles/default.nix new file mode 100644 index 000000000000..04003f6a9b5c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/bottles/default.nix @@ -0,0 +1,78 @@ +{ lib, fetchFromGitHub +, meson, ninja, pkg-config, wrapGAppsHook +, desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy +, python3Packages, gettext +, appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3 +, steam-run-native +}: + +python3Packages.buildPythonApplication rec { + pname = "bottles"; + version = "3.1.6"; + + src = fetchFromGitHub { + owner = "bottlesdevs"; + repo = pname; + rev = version; + sha256 = "1izks01010akjf83xvi70dr4yzgk6yr84kd0slzz22yq204pdh5m"; + }; + + postPatch = '' + chmod +x build-aux/meson/postinstall.py + patchShebangs build-aux/meson/postinstall.py + ''; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wrapGAppsHook + gettext + appstream-glib + desktop-file-utils + ]; + + buildInputs = [ + gdk-pixbuf + glib + gobject-introspection + gsettings-desktop-schemas + gspell + gtk3 + libhandy + libnotify + ]; + + propagatedBuildInputs = with python3Packages; [ + pycairo + pygobject3 + lxml + dbus-python + gst-python + liblarch + ] ++ [ steam-run-native ]; + + format = "other"; + strictDeps = false; # broken with gobject-introspection setup hook, see https://github.com/NixOS/nixpkgs/issues/56943 + dontWrapGApps = true; # prevent double wrapping + + preConfigure = '' + substituteInPlace build-aux/meson/postinstall.py \ + --replace "'update-desktop-database'" "'${desktop-file-utils}/bin/update-desktop-database'" + substituteInPlace src/runner.py \ + --replace " {runner}" " ${steam-run-native}/bin/steam-run {runner}" \ + --replace " {dxvk_setup}" " ${steam-run-native}/bin/steam-run {dxvk_setup}" + ''; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "An easy-to-use wineprefix manager"; + homepage = "https://usebottles.com/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ bloomvdomino shamilton ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/break-time/default.nix b/nixpkgs/pkgs/applications/misc/break-time/default.nix new file mode 100644 index 000000000000..8d9a872a1022 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/break-time/default.nix @@ -0,0 +1,45 @@ +{ fetchFromGitHub +, glib +, gtk3 +, openssl +, pkg-config +, python3 +, rustPlatform +, lib +, wrapGAppsHook +}: + +rustPlatform.buildRustPackage rec { + pname = "break-time"; + version = "0.1.1"; + + src = fetchFromGitHub { + owner = "cdepillabout"; + repo = "break-time"; + rev = "v${version}"; + sha256 = "18p9gfp0inbnjsc7af38fghyklr7qnl2kkr25isfy9d5m8cpxqc6"; + }; + + cargoSha256 = "01y1p40vz30h2jkh37zipqvmfybgpq6wdcdglkab85jivmd1lslx"; + + nativeBuildInputs = [ + pkg-config + python3 # needed for Rust xcb package + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + openssl + ]; + + meta = with lib; { + description = "Break timer that forces you to take a break"; + homepage = "https://github.com/cdepillabout/break-time"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ cdepillabout ]; + platforms = platforms.linux; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/brewtarget/default.nix b/nixpkgs/pkgs/applications/misc/brewtarget/default.nix new file mode 100644 index 000000000000..118245034500 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/brewtarget/default.nix @@ -0,0 +1,38 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, bash +, cmake +, qtbase +, qttools +, qtmultimedia +, qtwebkit +, qtsvg +}: + +mkDerivation rec { + pname = "brewtarget"; + version = "2.3.1"; + + src = fetchFromGitHub { + owner = "Brewtarget"; + repo = pname; + rev = "v${version}"; + sha256 = "14xmm6f8xmvypagx4qdw8q9llzmyi9zzfhnzh4kbbflhjbcr7isz"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ qtbase qttools qtmultimedia qtwebkit qtsvg ]; + + preConfigure = '' + chmod +x configure + substituteInPlace configure --replace /bin/bash "${bash}/bin/bash" + ''; + + meta = with lib; { + description = "Open source beer recipe creation tool"; + homepage = "http://www.brewtarget.org/"; + license = licenses.gpl3; + maintainers = [ maintainers.mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/buku/default.nix b/nixpkgs/pkgs/applications/misc/buku/default.nix new file mode 100644 index 000000000000..e8b8714ca2ab --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/buku/default.nix @@ -0,0 +1,102 @@ +{ lib, python3, fetchFromGitHub }: + +let + python3' = python3.override { + packageOverrides = self: super: { + sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec { + version = "1.3.24"; + src = oldAttrs.src.override { + inherit version; + sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519"; + }; + }); + sqlalchemy-utils = super.sqlalchemy-utils.overridePythonAttrs (oldAttrs: rec { + version = "0.36.6"; + src = oldAttrs.src.override { + inherit version; + sha256 = "0srs5w486wp5zydjs70igi5ypgxhm6h73grb85jz03fqpqaanzvs"; + }; + }); + }; + }; +in +with python3'.pkgs; buildPythonApplication rec { + version = "4.6"; + pname = "buku"; + + src = fetchFromGitHub { + owner = "jarun"; + repo = "buku"; + rev = "v${version}"; + sha256 = "sha256-hr9qiP7SbloigDcs+6KVWu0SOlggMaBr7CCfY8zoJG0="; + }; + + checkInputs = [ + pytest-cov + hypothesis + pytest + pytest-vcr + pylint + flake8 + pyyaml + mypy-extensions + ]; + + propagatedBuildInputs = [ + cryptography + beautifulsoup4 + requests + urllib3 + flask + flask-admin + flask-api + flask-bootstrap + flask-paginate + flask-reverse-proxy-fix + flask_wtf + arrow + werkzeug + click + html5lib + vcrpy + toml + ]; + + postPatch = '' + # Jailbreak problematic dependencies + sed -i \ + -e "s,'PyYAML.*','PyYAML',g" \ + setup.py + ''; + + preCheck = '' + # Fixes two tests for wrong encoding + export PYTHONIOENCODING=utf-8 + + # Disables a test which requires internet + substituteInPlace tests/test_bukuDb.py \ + --replace "@pytest.mark.slowtest" "@unittest.skip('skipping')" \ + --replace "self.assertEqual(shorturl, \"http://tny.im/yt\")" "" \ + --replace "self.assertEqual(url, \"https://www.google.com\")" "" + substituteInPlace setup.py \ + --replace mypy-extensions==0.4.1 mypy-extensions>=0.4.1 + ''; + + postInstall = '' + make install PREFIX=$out + + mkdir -p $out/share/zsh/site-functions $out/share/bash-completion/completions $out/share/fish/vendor_completions.d + cp auto-completion/zsh/* $out/share/zsh/site-functions + cp auto-completion/bash/* $out/share/bash-completion/completions + cp auto-completion/fish/* $out/share/fish/vendor_completions.d + ''; + + meta = with lib; { + description = "Private cmdline bookmark manager"; + homepage = "https://github.com/jarun/Buku"; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ matthiasbeyer infinisil ma27 ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/caerbannog/default.nix b/nixpkgs/pkgs/applications/misc/caerbannog/default.nix new file mode 100644 index 000000000000..6f4558b868fa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/caerbannog/default.nix @@ -0,0 +1,59 @@ +{ lib +, fetchFromSourcehut +, python3 +, glib +, gobject-introspection +, meson +, ninja +, pkg-config +, wrapGAppsHook +, atk +, libhandy +, libnotify +, pango +}: + +python3.pkgs.buildPythonApplication rec { + pname = "caerbannog"; + version = "0.3"; + format = "other"; + + src = fetchFromSourcehut { + owner = "~craftyguy"; + repo = "caerbannog"; + rev = version; + sha256 = "0wqkb9zcllxm3fdsr5lphknkzy8r1cr80f84q200hbi99qql1dxh"; + }; + + nativeBuildInputs = [ + glib + gobject-introspection + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + atk + gobject-introspection + libhandy + libnotify + pango + ]; + + propagatedBuildInputs = with python3.pkgs; [ + anytree + fuzzyfinder + gpgme + pygobject3 + ]; + + meta = with lib; { + description = "Mobile-friendly Gtk frontend for password-store"; + homepage = "https://sr.ht/~craftyguy/caerbannog/"; + changelog = "https://git.sr.ht/~craftyguy/caerbannog/refs/${version}"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/calcurse/default.nix b/nixpkgs/pkgs/applications/misc/calcurse/default.nix new file mode 100644 index 000000000000..837fcc5c27d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/calcurse/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl, ncurses, gettext, python3, python3Packages, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "calcurse"; + version = "4.7.1"; + + src = fetchurl { + url = "https://calcurse.org/files/${pname}-${version}.tar.gz"; + sha256 = "sha256-CnxV0HZ0Vp0WbAsOdYeyly09qBYM231gsdvSiVgDr7A="; + }; + + buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ]; + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + patchShebangs . + buildPythonPath "${python3Packages.httplib2} ${python3Packages.oauth2client}" + patchPythonScript $out/bin/calcurse-caldav + ''; + + meta = with lib; { + description = "A calendar and scheduling application for the command line"; + longDescription = '' + calcurse is a calendar and scheduling application for the command line. It helps + keep track of events, appointments and everyday tasks. A configurable notification + system reminds users of upcoming deadlines, the curses based interface can be + customized to suit user needs and a very powerful set of command line options can + be used to filter and format appointments, making it suitable for use in scripts. + ''; + homepage = "https://calcurse.org/"; + license = licenses.bsd2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix new file mode 100644 index 000000000000..d27c9c9af653 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/calibre/default.nix @@ -0,0 +1,173 @@ +{ lib +, mkDerivation +, fetchurl +, poppler_utils +, pkg-config +, libpng +, imagemagick +, libjpeg +, fontconfig +, podofo +, qtbase +, qmake +, icu +, sqlite +, hunspell +, hyphen +, unrarSupport ? false +, chmlib +, python3Packages +, libusb1 +, libmtp +, xdg-utils +, removeReferencesTo +}: + +mkDerivation rec { + pname = "calibre"; + version = "5.17.0"; + + src = fetchurl { + url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz"; + hash = "sha256-rdiBL3Y3q/0wFfWGE4jGkWakgV8hA9HjDcKXso6tVrs="; + }; + + patches = [ + # Plugin installation (very insecure) disabled (from Debian) + ./disable_plugins.patch + # Automatic version update disabled by default (from Debian) + ./no_updates_dialog.patch + ] + ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch; + + prePatch = '' + sed -i "s@\[tool.sip.project\]@[tool.sip.project]\nsip-include-dirs = [\"${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings\"]@g" \ + setup/build.py + sed -i "s/\[tool.sip.bindings.pictureflow\]/[tool.sip.bindings.pictureflow]\ntags = [\"${python3Packages.sip.platform_tag}\"]/g" \ + setup/build.py + + # Remove unneeded files and libs + rm -rf src/odf resources/calibre-portable.* + ''; + + dontUseQmakeConfigure = true; + + nativeBuildInputs = [ pkg-config qmake removeReferencesTo ]; + + buildInputs = [ + chmlib + fontconfig + hunspell + hyphen + icu + imagemagick + libjpeg + libmtp + libpng + libusb1 + podofo + poppler_utils + qtbase + sqlite + xdg-utils + ] ++ ( + with python3Packages; [ + apsw + beautifulsoup4 + cchardet + css-parser + cssselect + python-dateutil + dnspython + feedparser + html2text + html5-parser + lxml + markdown + mechanize + msgpack + netifaces + pillow + pyqt-builder + pyqt5 + pyqtwebengine + python + regex + sip + zeroconf + # the following are distributed with calibre, but we use upstream instead + odfpy + ] ++ lib.optional (unrarSupport) unrardll + ); + + installPhase = '' + runHook preInstall + + export HOME=$TMPDIR/fakehome + export POPPLER_INC_DIR=${poppler_utils.dev}/include/poppler + export POPPLER_LIB_DIR=${poppler_utils.out}/lib + export MAGICK_INC=${imagemagick.dev}/include/ImageMagick + export MAGICK_LIB=${imagemagick.out}/lib + export FC_INC_DIR=${fontconfig.dev}/include/fontconfig + export FC_LIB_DIR=${fontconfig.lib}/lib + export PODOFO_INC_DIR=${podofo.dev}/include/podofo + export PODOFO_LIB_DIR=${podofo.lib}/lib + export XDG_DATA_HOME=$out/share + export XDG_UTILS_INSTALL_MODE="user" + + ${python3Packages.python.interpreter} setup.py install --root=$out \ + --prefix=$out \ + --libdir=$out/lib \ + --staging-root=$out \ + --staging-libdir=$out/lib \ + --staging-sharedir=$out/share + + PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py + $out/lib/calibre/calibre/ebooks/metadata/*.py + $out/lib/calibre/calibre/ebooks/rtf2xml/*.py" + + sed -i "s/env python[0-9.]*/python/" $PYFILES + sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre + + mkdir -p $out/share + cp -a man-pages $out/share/man + + runHook postInstall + ''; + + # Wrap manually + dontWrapQtApps = true; + dontWrapGApps = true; + + # Remove some references to shrink the closure size. This reference (as of + # 2018-11-06) was a single string like the following: + # /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-podofo-0.9.6-dev/include/podofo/base/PdfVariant.h + preFixup = '' + remove-references-to -t ${podofo.dev} \ + $out/lib/calibre/calibre/plugins/podofo.so + + for program in $out/bin/*; do + wrapProgram $program \ + ''${qtWrapperArgs[@]} \ + ''${gappsWrapperArgs[@]} \ + --prefix PYTHONPATH : $PYTHONPATH \ + --prefix PATH : ${poppler_utils.out}/bin + done + ''; + + disallowedReferences = [ podofo.dev ]; + + meta = with lib; { + homepage = "https://calibre-ebook.com"; + description = "Comprehensive e-book software"; + longDescription = '' + calibre is a powerful and easy to use e-book manager. Users say it’s + outstanding and a must-have. It’ll allow you to do nearly everything and + it takes things a step beyond normal e-book software. It’s also completely + free and open source and great for both casual users and computer experts. + ''; + license = with licenses; if unrarSupport then unfreeRedistributable else gpl3Plus; + maintainers = with maintainers; [ pSub AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch b/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch new file mode 100644 index 000000000000..9ef1dd04251d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch @@ -0,0 +1,17 @@ +Description: Disable plugin dialog. It uses a totally non-authenticated and non-trusted way of installing arbitrary code. +Author: Martin Pitt <mpitt@debian.org> +Bug-Debian: http://bugs.debian.org/640026 + +Index: calibre-0.8.29+dfsg/src/calibre/gui2/actions/preferences.py +=================================================================== +--- calibre-0.8.29+dfsg.orig/src/calibre/gui2/actions/preferences.py 2011-12-16 05:49:14.000000000 +0100 ++++ calibre-0.8.29+dfsg/src/calibre/gui2/actions/preferences.py 2011-12-20 19:29:04.798468930 +0100 +@@ -28,8 +28,6 @@ + pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config) + cm('welcome wizard', _('Run welcome wizard'), + icon='wizard.png', triggered=self.gui.run_wizard) +- cm('plugin updater', _('Get plugins to enhance calibre'), +- icon='plugins/plugin_updater.png', triggered=self.get_plugins) + if not DEBUG: + pm.addSeparator() + cm('restart', _('Restart in debug mode'), icon='debug.png', diff --git a/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch b/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch new file mode 100644 index 000000000000..5164b80a0bee --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch @@ -0,0 +1,12 @@ +diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py +index 938ab24..1e095f8 100644 +--- a/src/calibre/ebooks/metadata/archive.py ++++ b/src/calibre/ebooks/metadata/archive.py +@@ -44,7 +44,7 @@ + description = _('Extract common e-book formats from archive files ' + '(ZIP/RAR). Also try to autodetect if they are actually ' + 'CBZ/CBR files.') +- file_types = {'zip', 'rar'} ++ file_types = {'zip'} + supported_platforms = ['windows', 'osx', 'linux'] + on_import = True diff --git a/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch b/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch new file mode 100644 index 000000000000..faaaf2c19949 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch @@ -0,0 +1,15 @@ +diff -burN calibre-2.9.0.orig/src/calibre/gui2/main.py calibre-2.9.0/src/calibre/gui2/main.py +--- calibre-2.9.0.orig/src/calibre/gui2/main.py 2014-11-09 20:09:54.081231882 +0800 ++++ calibre-2.9.0/src/calibre/gui2/main.py 2014-11-09 20:15:48.193033844 +0800 +@@ -37,8 +37,9 @@ + help=_('Start minimized to system tray.')) + parser.add_option('-v', '--verbose', default=0, action='count', + help=_('Ignored, do not use. Present only for legacy reasons')) +- parser.add_option('--no-update-check', default=False, action='store_true', +- help=_('Do not check for updates')) ++ parser.add_option('--update-check', dest='no_update_check', default=True, ++ action='store_false', ++ help=_('Check for updates')) + parser.add_option('--ignore-plugins', default=False, action='store_true', + help=_('Ignore custom plugins, useful if you installed a plugin' + ' that is preventing calibre from starting')) diff --git a/nixpkgs/pkgs/applications/misc/candle/default.nix b/nixpkgs/pkgs/applications/misc/candle/default.nix new file mode 100644 index 000000000000..8df75b0cbd19 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/candle/default.nix @@ -0,0 +1,32 @@ +{ mkDerivation, lib, fetchFromGitHub, qtbase, qtserialport, qmake }: + +mkDerivation rec { + pname = "candle"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "Denvi"; + repo = "Candle"; + rev = "v${version}"; + sha256 = "1gpx08gdz8awbsj6lsczwgffp19z3q0r2fvm72a73qd9az29pmm0"; + }; + + nativeBuildInputs = [ qmake ]; + + sourceRoot = "source/src"; + + installPhase = '' + runHook preInstall + install -Dm755 Candle $out/bin/candle + runHook postInstall + ''; + + buildInputs = [ qtbase qtserialport ]; + + meta = with lib; { + description = "GRBL controller application with G-Code visualizer written in Qt"; + homepage = "https://github.com/Denvi/Candle"; + license = licenses.gpl3; + maintainers = with maintainers; [ matti-kariluoma ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cardpeek/default.nix b/nixpkgs/pkgs/applications/misc/cardpeek/default.nix new file mode 100644 index 000000000000..1d5baf9f6b34 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cardpeek/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, + glib, gtk3, pcsclite, lua5_2, curl, readline }: +let + version = "0.8.4"; +in + stdenv.mkDerivation { + pname = "cardpeek"; + inherit version; + + src = fetchFromGitHub { + owner = "L1L1"; + repo = "cardpeek"; + rev = "cardpeek-${version}"; + sha256 = "1ighpl7nvcvwnsd6r5h5n9p95kclwrq99hq7bry7s53yr57l6588"; + }; + + nativeBuildInputs = [ pkg-config autoreconfHook ]; + buildInputs = [ glib gtk3 pcsclite lua5_2 curl readline ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://github.com/L1L1/cardpeek"; + description = "A tool to read the contents of ISO7816 smart cards"; + license = licenses.gpl3Plus; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ embr ]; + }; + } diff --git a/nixpkgs/pkgs/applications/misc/cataract/build.nix b/nixpkgs/pkgs/applications/misc/cataract/build.nix new file mode 100644 index 000000000000..0adab84830d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cataract/build.nix @@ -0,0 +1,43 @@ +{ lib, stdenv +, fetchgit +, autoreconfHook +, glib +, pkg-config +, libxml2 +, exiv2 +, imagemagick6 +, version +, sha256 +, rev }: + +stdenv.mkDerivation { + inherit version; + pname = "cataract"; + + src = fetchgit { + url = "git://git.bzatek.net/cataract"; + inherit sha256 rev; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ glib libxml2 exiv2 imagemagick6 ]; + + prePatch = '' + sed -i 's|#include <exiv2/exif.hpp>|#include <exiv2/exiv2.hpp>|' src/jpeg-utils.cpp + ''; + + installPhase = '' + mkdir $out/{bin,share} -p + cp src/cgg{,-dirgen} $out/bin/ + ''; + + meta = with lib; { + homepage = "http://cgg.bzatek.net/"; + description = "A simple static web photo gallery, designed to be clean and easily usable"; + license = licenses.gpl2; + maintainers = [ maintainers.matthiasbeyer ]; + platforms = with platforms; linux ++ darwin; + }; +} + + diff --git a/nixpkgs/pkgs/applications/misc/cataract/default.nix b/nixpkgs/pkgs/applications/misc/cataract/default.nix new file mode 100644 index 000000000000..3a9f20289227 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cataract/default.nix @@ -0,0 +1,8 @@ +{ callPackage }: + +callPackage ./build.nix { + version = "1.1.0"; + rev = "675e647dc8ae918d29f520a29be9201ae85a94dd"; + sha256 = "13b9rvcy9k2ay8w36j28kc7f4lnxp4jc0494ck3xsmwgqsawmzdj"; +} + diff --git a/nixpkgs/pkgs/applications/misc/cataract/unstable.nix b/nixpkgs/pkgs/applications/misc/cataract/unstable.nix new file mode 100644 index 000000000000..397aed355a95 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cataract/unstable.nix @@ -0,0 +1,8 @@ +{ callPackage }: + +callPackage ./build.nix { + version = "unstable-2016-10-18"; + rev = "db3d992febbe703931840e9bdad95c43081694a5"; + sha256 = "04f85piy675lq36w1mw6mw66n8911mmn4ifj8h9x47z8z806h3rf"; +} + diff --git a/nixpkgs/pkgs/applications/misc/catclock/default.nix b/nixpkgs/pkgs/applications/misc/catclock/default.nix new file mode 100644 index 000000000000..9c6b1812683a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/catclock/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, xlibsWrapper, motif }: + +stdenv.mkDerivation { + name = "catclock-2015-10-04"; + + src = fetchFromGitHub { + owner = "BarkyTheDog"; + repo = "catclock"; + rev = "d20b8825b38477a144e8a2a4bbd4779adb3620ac"; + sha256 = "0fiv9rj8p8mifv24cxljdrrmh357q70zmzdci9bpbxnhs1gdpr63"; + }; + + preInstall = '' + mkdir -p $out/bin + mkdir -p $out/share/man/man1 + cp xclock.man $out/share/man/man1/xclock.1 + ''; + + makeFlags = [ + "DESTINATION=$(out)/bin/" + ]; + + buildInputs = [ xlibsWrapper motif ]; + + meta = with lib; { + homepage = "http://codefromabove.com/2014/05/catclock/"; + license = with licenses; mit; + maintainers = with maintainers; [ ramkromberg ]; + platforms = with platforms; linux ++ darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cbatticon/default.nix b/nixpkgs/pkgs/applications/misc/cbatticon/default.nix new file mode 100644 index 000000000000..482bec9d0549 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cbatticon/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, gettext, glib, gtk3, libnotify, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "cbatticon"; + version = "1.6.10"; + + src = fetchFromGitHub { + owner = "valr"; + repo = pname; + rev = version; + sha256 = "0ivm2dzhsa9ir25ry418r2qg2llby9j7a6m3arbvq5c3kaj8m9jr"; + }; + + nativeBuildInputs = [ pkg-config gettext wrapGAppsHook ]; + + buildInputs = [ glib gtk3 libnotify ]; + + patchPhase = '' + sed -i -e 's/ -Wno-format//g' Makefile + ''; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + description = "Lightweight and fast battery icon that sits in the system tray"; + homepage = "https://github.com/valr/cbatticon"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.domenkozar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/charm/default.nix b/nixpkgs/pkgs/applications/misc/charm/default.nix new file mode 100644 index 000000000000..97e8227e6c96 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/charm/default.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "charm"; + version = "0.8.6"; + + src = fetchFromGitHub { + owner = "charmbracelet"; + repo = "charm"; + rev = "v${version}"; + sha256 = "0mjq0yy60czsw40h5n515qmi6bbvhrddll4sn5r2q1nf9pvviqr6"; + }; + + vendorSha256 = "1spzawnk2fslc1m14dp8lx4vpnxwz7xgm1hxbpz4bqlqz1hfd6ax"; + + doCheck = false; + + buildFlagsArray = [ "-ldflags= -s -w -X=main.Version=${version}" ]; + + meta = with lib; { + description = "Manage your charm account on the CLI"; + homepage = "https://github.com/charmbracelet/charm"; + license = licenses.mit; + maintainers = with maintainers; [ penguwin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cheat/default.nix b/nixpkgs/pkgs/applications/misc/cheat/default.nix new file mode 100644 index 000000000000..f7a56a48fc72 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cheat/default.nix @@ -0,0 +1,34 @@ +{ lib, fetchFromGitHub +, buildGoModule, installShellFiles }: + +buildGoModule rec { + pname = "cheat"; + version = "4.2.2"; + + src = fetchFromGitHub { + owner = "cheat"; + repo = "cheat"; + rev = version; + sha256 = "sha256-YKGCZm0BaFLi+kujl04B4IU1qay15XNfvelxfUkCP8o="; + }; + + subPackages = [ "cmd/cheat" ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installManPage doc/cheat.1 + installShellCompletion scripts/cheat.{bash,fish,zsh} + ''; + + vendorSha256 = null; + + doCheck = false; + + meta = with lib; { + description = "Create and view interactive cheatsheets on the command-line"; + maintainers = with maintainers; [ mic92 ]; + license = with licenses; [ gpl3 mit ]; + inherit (src.meta) homepage; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix new file mode 100644 index 000000000000..daef73a56796 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix @@ -0,0 +1,67 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, python3 +, wrapGAppsHook +, gtkmm3 +, gtksourceview +, gtksourceviewmm +, gspell +, libxmlxx +, sqlite +, curl +, libuchardet +, fmt +, spdlog +}: + +stdenv.mkDerivation rec { + pname = "cherrytree"; + version = "0.99.39"; + + src = fetchFromGitHub { + owner = "giuspen"; + repo = "cherrytree"; + rev = version; + sha256 = "sha256-QSRYtnZxLAaq42PvPd5+LxSzq/Hd/Cz5bquBTiGWnAE="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + gtkmm3 + gtksourceview + gtksourceviewmm + gspell + libxmlxx + sqlite + curl + libuchardet + fmt + spdlog + ]; + + meta = with lib; { + description = "An hierarchical note taking application"; + longDescription = '' + Cherrytree is an hierarchical note taking application, featuring rich + text, syntax highlighting and powerful search capabilities. It organizes + all information in units called "nodes", as in a tree, and can be very + useful to store any piece of information, from tables and links to + pictures and even entire documents. All those little bits of information + you have scattered around your hard drive can be conveniently placed into + a Cherrytree document where you can easily find it. + ''; + homepage = "https://www.giuspen.com/cherrytree"; + changelog = "https://raw.githubusercontent.com/giuspen/cherrytree/${version}/changelog.txt"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix b/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix new file mode 100644 index 000000000000..13ee17999fe1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix @@ -0,0 +1,30 @@ +{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, libchewing, qtbase +, qttools }: + +mkDerivation rec { + pname = "chewing-editor"; + version = "0.1.1"; + + src = fetchFromGitHub { + owner = "chewing"; + repo = pname; + rev = version; + sha256 = "0kc2hjx1gplm3s3p1r5sn0cyxw3k1q4gyv08q9r6rs4sg7xh2w7w"; + }; + + doCheck = true; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ libchewing qtbase qttools ]; + + meta = with lib; { + description = "Cross platform chewing user phrase editor"; + longDescription = '' + chewing-editor is a cross platform chewing user phrase editor. It provides a easy way to manage user phrase. With it, user can customize their user phrase to increase input performance. + ''; + homepage = "https://github.com/chewing/chewing-editor"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.ShamrockLee ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/chrysalis/default.nix b/nixpkgs/pkgs/applications/misc/chrysalis/default.nix new file mode 100644 index 000000000000..4d6a6943cdeb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/chrysalis/default.nix @@ -0,0 +1,32 @@ +{ lib, appimageTools, fetchurl, gtk3, gsettings-desktop-schemas }: + +let + pname = "chrysalis"; + version = "0.8.4"; +in appimageTools.wrapType2 rec { + name = "${pname}-${version}-binary"; + + src = fetchurl { + url = "https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}.AppImage"; + sha256 = "b41f3e23dac855b1588cff141e3d317f96baff929a0543c79fccee0c6f095bc7"; + }; + + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; + extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ + p.glib + ]; + + extraInstallCommands = "mv $out/bin/${name} $out/bin/${pname}"; + + meta = with lib; { + description = "A graphical configurator for Kaleidoscope-powered keyboards"; + homepage = "https://github.com/keyboardio/Chrysalis"; + license = licenses.gpl3; + maintainers = with maintainers; [ aw ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cipher/default.nix b/nixpkgs/pkgs/applications/misc/cipher/default.nix new file mode 100644 index 000000000000..eab1185edd81 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cipher/default.nix @@ -0,0 +1,64 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, meson +, ninja +, vala +, pkg-config +, pantheon +, python3 +, gettext +, glib +, gtk3 +, libgee +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "cipher"; + version = "2.5.0"; + + src = fetchFromGitHub { + owner = "arshubham"; + repo = "cipher"; + rev = version; + sha256 = "00azc5ck17zkdypfza6x1viknwhimd9fqgk2ybff3mx6aphmla7a"; + }; + + nativeBuildInputs = [ + gettext + meson + ninja + vala + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + pantheon.granite + libgee + ]; + + postPatch = '' + substituteInPlace data/com.github.arshubham.cipher.desktop.in \ + --replace "gio" "${glib.bin}/bin/gio" + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A simple application for encoding and decoding text, designed for elementary OS"; + homepage = "https://github.com/arshubham/cipher"; + maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix new file mode 100644 index 000000000000..524f89855370 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchFromGitHub, cmake, fftw, ncurses5, libpulseaudio, makeWrapper }: + +stdenv.mkDerivation rec { + version = "1.8"; + pname = "cli-visualizer"; + + src = fetchFromGitHub { + owner = "dpayne"; + repo = "cli-visualizer"; + rev = "v${version}"; + sha256 = "003mbbwsz43mg3d7llphpypqa9g7rs1p1cdbqi1mbc2bfrc1gcq2"; + }; + + postPatch = '' + sed '1i#include <cmath>' -i src/Transformer/SpectrumCircleTransformer.cpp + ''; + + nativeBuildInputs = [ cmake makeWrapper ]; + + buildInputs = [ fftw ncurses5 libpulseaudio ]; + + buildFlags = [ "ENABLE_PULSE=1" ]; + + postInstall = '' + # See https://github.com/dpayne/cli-visualizer/issues/62#issuecomment-330738075 + wrapProgram $out/bin/vis --set TERM rxvt-256color + ''; + + meta = { + homepage = "https://github.com/dpayne/cli-visualizer"; + description = "CLI based audio visualizer"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.matthiasbeyer ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/clifm/default.nix b/nixpkgs/pkgs/applications/misc/clifm/default.nix new file mode 100644 index 000000000000..7fc130700aa9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/clifm/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchFromGitHub, libcap, acl, file, readline }: + +stdenv.mkDerivation rec { + pname = "clifm"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "leo-arch"; + repo = pname; + rev = "v${version}"; + sha256 = "0mf9lrq0l532vyf4ycsikrw8imn4gkavyn3cr42nhjsr1drygrp8"; + }; + + buildInputs = [ libcap acl file readline ]; + + makeFlags = [ + "INSTALLPREFIX=${placeholder "out"}/bin" + "DESKTOPPREFIX=${placeholder "out"}/share" + ]; + + preInstall = '' + mkdir -p $out/bin $out/share + ''; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://github.com/leo-arch/clifm"; + description = "CliFM is a CLI-based, shell-like, and non-curses terminal file manager written in C: simple, fast, extensible, and lightweight as hell"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ vonfry ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/clight/clightd.nix b/nixpkgs/pkgs/applications/misc/clight/clightd.nix new file mode 100644 index 000000000000..7b52145f794b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/clight/clightd.nix @@ -0,0 +1,78 @@ +{ lib, stdenv, fetchFromGitHub +, dbus, cmake, pkg-config +, glib, udev, polkit, libusb1, libjpeg, libmodule +, pcre, libXdmcp, util-linux, libpthreadstubs +, enableDdc ? true, ddcutil +, enableDpms ? true, libXext +, enableGamma ? true, libdrm, libXrandr, wayland +, enableScreen ? true }: + +stdenv.mkDerivation rec { + pname = "clightd"; + version = "5.4"; + + src = fetchFromGitHub { + owner = "FedeDP"; + repo = "Clightd"; + rev = version; + sha256 = "sha256-ppaxfnZB3+aOzvc/wk1f8D2mFYngQspEOl9XArNMdBE="; + }; + + # dbus-1.pc has datadir=/etc + SYSTEM_BUS_DIR = "${placeholder "out"}/share/dbus-1/system-services"; + # polkit-gobject-1.pc has prefix=${polkit.out} + POLKIT_ACTION_DIR = "${placeholder "out"}/share/polkit-1/actions"; + + postPatch = '' + sed -i "s@pkg_get_variable(SYSTEM_BUS_DIR.*@set(SYSTEM_BUS_DIR $SYSTEM_BUS_DIR)@" CMakeLists.txt + sed -i "s@pkg_get_variable(POLKIT_ACTION_DIR.*@set(POLKIT_ACTION_DIR $POLKIT_ACTION_DIR)@" CMakeLists.txt + ''; + + cmakeFlags = with lib; + [ "-DSYSTEMD_SERVICE_DIR=${placeholder "out"}/lib/systemd/system" + "-DDBUS_CONFIG_DIR=${placeholder "out"}/etc/dbus-1/system.d" + # systemd.pc has prefix=${systemd.out} + "-DMODULE_LOAD_DIR=${placeholder "out"}/lib/modules-load.d" + ] ++ optional enableDdc "-DENABLE_DDC=1" + ++ optional enableDpms "-DENABLE_DPMS=1" + ++ optional enableGamma "-DENABLE_GAMMA=1" + ++ optional enableScreen "-DENABLE_SCREEN=1"; + + nativeBuildInputs = [ + dbus + cmake + pkg-config + ]; + + buildInputs = with lib; [ + glib + udev + polkit + libusb1 + libjpeg + libmodule + + pcre + libXdmcp + util-linux + libpthreadstubs + ] ++ optionals enableDdc [ ddcutil ] + ++ optionals enableDpms [ libXext ] + ++ optionals enableGamma [ libXrandr ] + ++ optionals (enableDpms || enableGamma || enableScreen) [ libdrm wayland ]; + + postInstall = '' + mkdir -p $out/bin + ln -svT $out/libexec/clightd $out/bin/clightd + ''; + + meta = with lib; { + description = "Linux bus interface that changes screen brightness/temperature"; + homepage = "https://github.com/FedeDP/Clightd"; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ + eadwu + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/clight/default.nix b/nixpkgs/pkgs/applications/misc/clight/default.nix new file mode 100644 index 000000000000..10ddb2902043 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/clight/default.nix @@ -0,0 +1,61 @@ +{ lib, stdenv, fetchFromGitHub +, dbus, cmake, pkg-config, bash-completion +, gsl, popt, clightd, systemd, libconfig, libmodule +, withGeoclue ? true, geoclue2 +, withUpower ? true, upower }: + +stdenv.mkDerivation rec { + pname = "clight"; + version = "4.5"; + + src = fetchFromGitHub { + owner = "FedeDP"; + repo = "Clight"; + rev = version; + sha256 = "sha256-fvi0JGNNDoxE0iH//HneYwQBBP4mY75AeViLHKQUI30="; + }; + + # dbus-1.pc has datadir=/etc + SESSION_BUS_DIR = "${placeholder "out"}/share/dbus-1/services"; + + postPatch = '' + sed -i "s@/usr@$out@" CMakeLists.txt + sed -i "s@/etc@$out\0@" CMakeLists.txt + sed -i "s@pkg_get_variable(SESSION_BUS_DIR.*@set(SESSION_BUS_DIR $SESSION_BUS_DIR)@" CMakeLists.txt + ''; + + nativeBuildInputs = [ + dbus + cmake + pkg-config + bash-completion + ]; + + buildInputs = with lib; [ + gsl + popt + upower + clightd + systemd + geoclue2 + libconfig + libmodule + ] ++ optional withGeoclue geoclue2 + ++ optional withUpower upower; + + cmakeFlags = [ + # bash-completion.pc completionsdir=${bash-completion.out} + "-DBASH_COMPLETIONS_DIR=${placeholder "out"}/share/bash-completions/completions" + "-DZSH_COMPLETIONS_DIR=${placeholder "out"}/share/zsh/site-functions" + ]; + + meta = with lib; { + description = "A C daemon that turns your webcam into a light sensor"; + homepage = "https://github.com/FedeDP/Clight"; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ + eadwu + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/clipcat/default.nix b/nixpkgs/pkgs/applications/misc/clipcat/default.nix new file mode 100644 index 000000000000..b28b33d56c91 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/clipcat/default.nix @@ -0,0 +1,53 @@ +{ lib, fetchFromGitHub, installShellFiles, rustPlatform, rustfmt, xorg +, pkg-config, llvmPackages, clang, protobuf, python3 }: + +rustPlatform.buildRustPackage rec { + pname = "clipcat"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "xrelkd"; + repo = pname; + rev = "v${version}"; + sha256 = "0rxl3ksjinw07q3p2vjqg80k3c6wx2q7pzpf2344zyfb4gkqzx1c"; + }; + + cargoSha256 = "1n4il3l59m2a6ca54vfaivzg25abf8s4w5kpd5q51p13624iz0kb"; + + LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + + # needed for internal protobuf c wrapper library + PROTOC = "${protobuf}/bin/protoc"; + PROTOC_INCLUDE = "${protobuf}/include"; + + nativeBuildInputs = [ + pkg-config + + clang + llvmPackages.libclang + + rustfmt + protobuf + + python3 + + installShellFiles + ]; + buildInputs = [ xorg.libxcb ]; + + cargoBuildFlags = [ "--features=all" ]; + + postInstall = '' + installShellCompletion --bash completions/bash-completion/completions/* + installShellCompletion --fish completions/fish/completions/* + installShellCompletion --zsh completions/zsh/site-functions/* + ''; + + meta = with lib; { + description = "Clipboard Manager written in Rust Programming Language"; + homepage = "https://github.com/xrelkd/clipcat"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ xrelkd ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/clipit/default.nix b/nixpkgs/pkgs/applications/misc/clipit/default.nix new file mode 100644 index 000000000000..fafcf3d54404 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/clipit/default.nix @@ -0,0 +1,35 @@ +{ fetchFromGitHub, lib, stdenv +, autoreconfHook, intltool, pkg-config +, gtk3, libayatana-appindicator, xdotool, which, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "clipit"; + version = "1.4.5"; + + src = fetchFromGitHub { + owner = "CristianHenzel"; + repo = "ClipIt"; + rev = "45e2ea386d04dbfc411ea370299502450d589d0c"; + sha256 = "0byqz9hanwmdc7i55xszdby2iqrk93lws7hmjda2kv17g34apwl7"; + }; + + preConfigure = '' + intltoolize --copy --force --automake + ''; + + nativeBuildInputs = [ pkg-config wrapGAppsHook autoreconfHook intltool ]; + configureFlags = [ "--with-gtk3" "--enable-appindicator=yes" ]; + buildInputs = [ gtk3 libayatana-appindicator ]; + + gappsWrapperArgs = [ + "--prefix" "PATH" ":" "${lib.makeBinPath [ xdotool which ]}" + ]; + + meta = with lib; { + description = "Lightweight GTK Clipboard Manager"; + inherit (src.meta) homepage; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ kamilchm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/clipmenu/default.nix b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix new file mode 100644 index 000000000000..c47dd972ccfd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix @@ -0,0 +1,48 @@ +{ stdenv +, lib +, fetchFromGitHub +, makeWrapper +, clipnotify +, coreutils +, dmenu +, gawk +, util-linux +, xdotool +, xsel +}: +stdenv.mkDerivation rec { + pname = "clipmenu"; + version = "6.2.0"; + + src = fetchFromGitHub { + owner = "cdown"; + repo = "clipmenu"; + rev = version; + sha256 = "sha256-nvctEwyho6kl4+NXi76jT2kG7nchmI2a7mgxlgjXA5A="; + }; + + postPatch = '' + sed -i init/clipmenud.service \ + -e "s,/usr/bin,$out/bin," + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + nativeBuildInputs = [ makeWrapper xsel clipnotify ]; + + postFixup = '' + sed -i "$out/bin/clipctl" -e 's,clipmenud\$,\.clipmenud-wrapped\$,' + + wrapProgram "$out/bin/clipmenu" \ + --prefix PATH : "${lib.makeBinPath [ xsel ]}" + + wrapProgram "$out/bin/clipmenud" \ + --set PATH "${lib.makeBinPath [ clipnotify coreutils gawk util-linux xdotool xsel ]}" + ''; + + meta = with lib; { + description = "Clipboard management using dmenu"; + inherit (src.meta) homepage; + maintainers = with maintainers; [ jb55 ]; + license = licenses.publicDomain; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cmatrix/default.nix b/nixpkgs/pkgs/applications/misc/cmatrix/default.nix new file mode 100644 index 000000000000..8008edf09969 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cmatrix/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, ncurses }: + +stdenv.mkDerivation rec { + pname = "cmatrix"; + version = "2.0"; + + src = fetchFromGitHub { + owner = "abishekvashok"; + repo = "cmatrix"; + rev = "v${version}"; + sha256 = "1h9jz4m4s5l8c3figaq46ja0km1gimrkfxm4dg7mf4s84icmasbm"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ ncurses ]; + + meta = with lib; { + description = "Simulates the falling characters theme from The Matrix movie"; + license = licenses.gpl3; + longDescription = '' + CMatrix simulates the display from "The Matrix" and is based + on the screensaver from the movie's website. + ''; + homepage = "https://github.com/abishekvashok/cmatrix"; + platforms = ncurses.meta.platforms; + maintainers = [ maintainers.AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cobalt/default.nix b/nixpkgs/pkgs/applications/misc/cobalt/default.nix new file mode 100644 index 000000000000..6e13cc4728e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cobalt/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices }: + +rustPlatform.buildRustPackage rec { + pname = "cobalt"; + version = "0.16.5"; + + src = fetchFromGitHub { + owner = "cobalt-org"; + repo = "cobalt.rs"; + rev = "v${version}"; + sha256 = "wSvjPifnA8oc0vVmHBMdsMKzX7Gg6TdbPzIXl/SHqn8="; + }; + + cargoSha256 = "27LcoGBI4elt80uQkTwvToOyEmd2+/3ma5Y32OFrJaw="; + + buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ]; + + meta = with lib; { + description = "Static site generator written in Rust"; + homepage = "https://github.com/cobalt-org/cobalt.rs/"; + license = licenses.mit; + maintainers = with maintainers; [ ethancedwards8 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cointop/default.nix b/nixpkgs/pkgs/applications/misc/cointop/default.nix new file mode 100644 index 000000000000..66d73c94b460 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cointop/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "cointop"; + version = "1.6.5"; + + src = fetchFromGitHub { + owner = "miguelmota"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-pnh4z7vk8xazdBPNbwR5BrKFbi8df8UTM2SOU+KDvsk="; + }; + + goPackagePath = "github.com/miguelmota/cointop"; + + buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/cointop.version=${version}" ]; + + meta = with lib; { + description = "The fastest and most interactive terminal based UI application for tracking cryptocurrencies"; + longDescription = '' + cointop is a fast and lightweight interactive terminal based UI + application for tracking and monitoring cryptocurrency coin stats in + real-time. + + The interface is inspired by htop and shortcut keys are inspired by vim. + ''; + homepage = "https://cointop.sh"; + maintainers = [ maintainers.marsam ]; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/colort/default.nix b/nixpkgs/pkgs/applications/misc/colort/default.nix new file mode 100644 index 000000000000..a4283e5ebb93 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/colort/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + name = "colort-unstable-2017-03-12"; + + src = fetchFromGitHub { + owner = "neeasade"; + repo = "colort"; + rev = "8470190706f358dc807b4c26ec3453db7f0306b6"; + sha256 = "10n8rbr2h6hz86hcx73f86pjbbfiaw2rvxsk0yfajnma7bpxgdxw"; + }; + + makeFlags = ["PREFIX=$(out)"]; + + meta = with lib; { + description = "A program for 'tinting' color values"; + homepage = "https://github.com/neeasade/colort"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.neeasade ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/confclerk/default.nix b/nixpkgs/pkgs/applications/misc/confclerk/default.nix new file mode 100644 index 000000000000..fb89d2a7e373 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/confclerk/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, qt4, qmake4Hook }: + +let version = "0.6.4"; in +stdenv.mkDerivation { + pname = "confclerk"; + inherit version; + + src = fetchurl { + url = "https://www.toastfreeware.priv.at/tarballs/confclerk/confclerk-${version}.tar.gz"; + sha256 = "10rhg44px4nvbkd3p341cmp2ds43jn8r4rvgladda9v8zmsgr2b3"; + }; + + buildInputs = [ qt4 ]; + + nativeBuildInputs = [ qmake4Hook ]; + + installPhase = '' + mkdir -p $out/bin + cp src/bin/confclerk $out/bin + ''; + + meta = { + description = "Offline conference schedule viewer"; + homepage = "http://www.toastfreeware.priv.at/confclerk"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ ehmry ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/coolreader/default.nix b/nixpkgs/pkgs/applications/misc/coolreader/default.nix new file mode 100644 index 000000000000..e1cbaf320eae --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/coolreader/default.nix @@ -0,0 +1,26 @@ +{ mkDerivation, fetchFromGitHub, cmake, pkg-config, lib, + qttools, fribidi, libunibreak }: + +mkDerivation rec { + pname = "coolreader"; + version = "3.2.57"; + + src = fetchFromGitHub { + owner = "buggins"; + repo = pname; + rev = "cr${version}"; + sha256 = "sha256-ZfgaLCLvBU6xP7nx7YJTsJSpvpdQgLpSMWH+BsG8E1g="; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + + buildInputs = [ qttools fribidi libunibreak ]; + + meta = with lib; { + homepage = "https://github.com/buggins/coolreader"; + description = "Cross platform open source e-book reader"; + license = licenses.gpl2Plus; # see https://github.com/buggins/coolreader/issues/80 + maintainers = with maintainers; [ gebner ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/copyq/default.nix b/nixpkgs/pkgs/applications/misc/copyq/default.nix new file mode 100644 index 000000000000..5c96a3282243 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/copyq/default.nix @@ -0,0 +1,68 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, extra-cmake-modules +, qtbase +, qtscript +, libXfixes +, libXtst +, qtx11extras +, git +, knotifications +, qtwayland +, wayland +, fetchpatch +}: + +mkDerivation rec { + pname = "CopyQ"; + version = "4.1.0"; + + src = fetchFromGitHub { + owner = "hluk"; + repo = "CopyQ"; + rev = "v${version}"; + sha256 = "1iacnd9dn0mrajff80r2g5nlks5sch9lmpl633mnyqmih9dwx2li"; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + buildInputs = [ + qtbase + qtscript + libXfixes + libXtst + qtx11extras + knotifications + qtwayland + wayland + ]; + + patches = [ + # Install the bash completion script correctly + # Remove once 4.1.1 is released + (fetchpatch { + url = "https://github.com/hluk/CopyQ/commit/aca7222ec28589af0b08f63686104b992d63ee42.patch"; + sha256 = "0d440d0zsdzm9cd0b6c42y9qbrvxg7gdam0qmif62mr8qa0ylidl"; + }) + ]; + + postPatch = '' + substituteInPlace shared/com.github.hluk.copyq.desktop.in \ + --replace copyq "$out/bin/copyq" + ''; + + meta = with lib; { + homepage = "https://hluk.github.io/CopyQ"; + description = "Clipboard Manager with Advanced Features"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ willtim artturin ]; + # NOTE: CopyQ supports windows and osx, but I cannot test these. + # OSX build requires QT5. + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/corectrl/default.nix b/nixpkgs/pkgs/applications/misc/corectrl/default.nix new file mode 100644 index 000000000000..32ca4b0e06c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/corectrl/default.nix @@ -0,0 +1,77 @@ +{ lib, stdenv +, fetchFromGitLab +, extra-cmake-modules +, botan2 +, karchive +, kauth +, libdrm +, hwdata +, mesa-demos +, procps +, util-linux +, vulkan-tools +, qtbase +, qtcharts +, qtquickcontrols2 +, qtsvg +, qttools +, qtxmlpatterns +, wrapQtAppsHook +} : + +stdenv.mkDerivation rec{ + pname = "corectrl"; + version = "1.1.3"; + + src = fetchFromGitLab { + owner = "corectrl"; + repo = "corectrl"; + rev = "v${version}"; + sha256 = "sha256-xRyc7FYzG8MnhQ8DjIUHYLeUZCZQdi4j1v1fG7F0+G8="; + }; + + nativeBuildInputs = [ + extra-cmake-modules + wrapQtAppsHook + ]; + buildInputs = [ + botan2 + karchive + kauth + libdrm + mesa-demos + procps + util-linux + vulkan-tools + qtbase + qtcharts + qtquickcontrols2 + qtsvg + qttools + qtxmlpatterns + ]; + + cmakeFlags = [ "-DWITH_PCI_IDS_PATH=${hwdata}/share/hwdata/pci.ids" ]; + + runtimeDeps = [ hwdata mesa-demos vulkan-tools ]; + binPath = lib.makeBinPath runtimeDeps; + + dontWrapQtApps = true; + + postInstall = '' + wrapQtApp $out/bin/corectrl --prefix PATH ":" ${binPath} + ''; + + meta = with lib; { + homepage = "https://gitlab.com/corectrl/corectrl/"; + description = "Control your computer hardware via application profiles"; + longDescription = '' + CoreCtrl is a Free and Open Source GNU/Linux application that allows you + to control with ease your computer hardware using application profiles. It + aims to be flexible, comfortable and accessible to regular users. + ''; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} +# TODO: report upstream that libdrm is not detected at configure time diff --git a/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix b/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix new file mode 100644 index 000000000000..954501c0b7fe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix @@ -0,0 +1,46 @@ +{ lib, fetchFromGitHub, glibcLocales, pandoc, python3 }: + +let + pythonPackages = python3.pkgs; + +in pythonPackages.buildPythonApplication rec { + pname = "coursera-dl"; + version = "0.11.5"; + + src = fetchFromGitHub { + owner = "coursera-dl"; + repo = "coursera-dl"; + rev = version; + sha256 = "0akgwzrsx094jj30n4bd2ilwgva4qxx38v3bgm69iqfxi8c2bqbk"; + }; + + nativeBuildInputs = with pythonPackages; [ pandoc ]; + + buildInputs = with pythonPackages; [ glibcLocales ]; + + propagatedBuildInputs = with pythonPackages; [ attrs beautifulsoup4 configargparse keyring pyasn1 requests six urllib3 ]; + + checkInputs = with pythonPackages; [ pytest mock ]; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace '==' '>=' + ''; + + preConfigure = '' + export LC_ALL=en_US.utf-8 + ''; + + checkPhase = '' + # requires dbus service + py.test -k 'not test_get_credentials_with_keyring' . + ''; + + meta = with lib; { + description = "CLI for downloading Coursera.org videos and naming them"; + homepage = "https://github.com/coursera-dl/coursera-dl"; + license = licenses.lgpl3Plus; + maintainers = with maintainers; [ alexfmpe ]; + platforms = platforms.darwin ++ platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cpu-x/default.nix b/nixpkgs/pkgs/applications/misc/cpu-x/default.nix new file mode 100644 index 000000000000..8f68a512c211 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cpu-x/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gtk3, ncurses +, libcpuid, pciutils, procps, wrapGAppsHook, nasm, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "cpu-x"; + version = "4.2.0"; + + src = fetchFromGitHub { + owner = "X0rg"; + repo = "CPU-X"; + rev = "v${version}"; + sha256 = "sha256-LWIcE86o+uU8G9DtumiH6iTqHhvq4y/QyQX7J3FhKEc="; + }; + + nativeBuildInputs = [ cmake pkg-config wrapGAppsHook nasm makeWrapper ]; + buildInputs = [ + gtk3 ncurses libcpuid pciutils procps + ]; + + postInstall = '' + wrapProgram $out/bin/cpu-x \ + --prefix PATH : ${lib.makeBinPath [ stdenv.cc ]} + ''; + + meta = with lib; { + description = "Free software that gathers information on CPU, motherboard and more"; + homepage = src.meta.homepage; + license = licenses.gpl3; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/crow-translate/default.nix b/nixpkgs/pkgs/applications/misc/crow-translate/default.nix new file mode 100644 index 000000000000..76a5541f6dba --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/crow-translate/default.nix @@ -0,0 +1,94 @@ +{ lib +, mkDerivation +, nix-update-script +, fetchFromGitHub +, substituteAll +, cmake +, extra-cmake-modules +, qttools +, leptonica +, tesseract4 +, qtmultimedia +, qtx11extras +, qttranslations +}: +let + singleapplication = fetchFromGitHub { + owner = "itay-grudev"; + repo = "SingleApplication"; + rev = "v3.2.0"; + sha256 = "0w3z97dcqcz3bf7w6fja4smkafmx9kvhzb9px4k2nfmmyxh4yfma"; + }; + qtaskbarcontrol = fetchFromGitHub { + owner = "Skycoder42"; + repo = "QTaskbarControl"; + rev = "2.0.2"; + sha256 = "0iymcvq3pv07fs9l4kh6hi1igqr7957iqndhsmg9fqkalf8nqyad"; + }; + qhotkey = fetchFromGitHub { + owner = "Skycoder42"; + repo = "QHotkey"; + rev = "1.4.2"; + sha256 = "0391fkqrxqmzpvms4rk06aq05l308k6sadp6y3czq0gx2kng8mn9"; + }; + qonlinetranslator = fetchFromGitHub { + owner = "crow-translate"; + repo = "QOnlineTranslator"; + rev = "1.4.1"; + sha256 = "1c6a8mdxms5vh8l7shi2kqdhafbzm50pbz6g1hhgg6qslla0vfn0"; + }; + circleflags = fetchFromGitHub { + owner = "HatScripts"; + repo = "circle-flags"; + rev = "v2.0.0"; + sha256 = "1xz5b6nhcxxzalcgwnw36npap71i70s50g6b63avjgjkwz1ys5j4"; + }; +in +mkDerivation rec { + pname = "crow-translate"; + version = "2.8.1"; + + src = fetchFromGitHub { + owner = "crow-translate"; + repo = "crow-translate"; + rev = version; + sha256 = "sha256-fmlNUhNorV/MUdfdDXM6puAblTTa6p2slVT/EKy5THg="; + }; + + patches = [ + (substituteAll { + src = ./dont-fetch-external-libs.patch; + inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator circleflags; + }) + (substituteAll { + # See https://github.com/NixOS/nixpkgs/issues/86054 + src = ./fix-qttranslations-path.patch; + inherit qttranslations; + }) + ]; + + postPatch = "cp -r ${circleflags}/flags/* data/icons"; + + nativeBuildInputs = [ cmake extra-cmake-modules qttools ]; + + buildInputs = [ leptonica tesseract4 qtmultimedia qtx11extras ]; + + postInstall = '' + substituteInPlace $out/share/applications/io.crow_translate.CrowTranslate.desktop \ + --replace "Exec=qdbus" "Exec=${lib.getBin qttools}/bin/qdbus" + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A simple and lightweight translator that allows to translate and speak text using Google, Yandex and Bing"; + homepage = "https://crow-translate.github.io/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch b/nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch new file mode 100644 index 000000000000..eff303a852c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch @@ -0,0 +1,57 @@ +diff --git i/CMakeLists.txt w/CMakeLists.txt +index 2576203..26162a0 100644 +--- i/CMakeLists.txt ++++ w/CMakeLists.txt +@@ -91,12 +91,11 @@ qt5_add_translation(QM_FILES + ) + + configure_file(src/cmake.h.in cmake.h) +-configure_file(data/icons/flags.qrc ${CircleFlags_SOURCE_DIR}/flags/flags.qrc COPYONLY) + + add_executable(${PROJECT_NAME} + ${QM_FILES} + data/icons/engines/engines.qrc +- ${CircleFlags_SOURCE_DIR}/flags/flags.qrc ++ data/icons/flags.qrc + src/addlanguagedialog.cpp + src/addlanguagedialog.ui + src/cli.cpp +diff --git i/cmake/ExternalLibraries.cmake w/cmake/ExternalLibraries.cmake +index 21eba0a..b613d3e 100644 +--- i/cmake/ExternalLibraries.cmake ++++ w/cmake/ExternalLibraries.cmake +@@ -2,29 +2,24 @@ include(FetchContent) + + set(QAPPLICATION_CLASS QApplication) + FetchContent_Declare(SingleApplication +- GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication +- GIT_TAG v3.2.0 ++ SOURCE_DIR @singleapplication@ + ) + + FetchContent_Declare(QTaskbarControl +- GIT_REPOSITORY https://github.com/Skycoder42/QTaskbarControl +- GIT_TAG 2.0.2 ++ SOURCE_DIR @qtaskbarcontrol@ + ) + + option(QHOTKEY_INSTALL OFF) + FetchContent_Declare(QHotkey +- GIT_REPOSITORY https://github.com/Skycoder42/QHotkey +- GIT_TAG 1.4.2 ++ SOURCE_DIR @qhotkey@ + ) + + FetchContent_Declare(QOnlineTranslator +- GIT_REPOSITORY https://github.com/crow-translate/QOnlineTranslator +- GIT_TAG 1.4.1 ++ SOURCE_DIR @qonlinetranslator@ + ) + + FetchContent_Declare(CircleFlags +- GIT_REPOSITORY https://github.com/HatScripts/circle-flags +- GIT_TAG v2.0.0 ++ SOURCE_DIR @circleflags@ + ) + + FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator CircleFlags) diff --git a/nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch b/nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch new file mode 100644 index 000000000000..9e0f587ec7a4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch @@ -0,0 +1,13 @@ +diff --git c/src/settings/appsettings.cpp i/src/settings/appsettings.cpp +index ff99f64..fa929ae 100644 +--- c/src/settings/appsettings.cpp ++++ i/src/settings/appsettings.cpp +@@ -80,7 +80,7 @@ void AppSettings::applyLanguage(QLocale::Language lang) + QLocale::setDefault(locale); + + s_appTranslator.load(locale, QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory)); +- s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); ++ s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations")); + } + + QLocale::Language AppSettings::defaultLanguage() diff --git a/nixpkgs/pkgs/applications/misc/crumbs/default.nix b/nixpkgs/pkgs/applications/misc/crumbs/default.nix new file mode 100644 index 000000000000..5bb422058168 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/crumbs/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "crumbs"; + version = "0.0.3"; + + src = fetchFromGitHub + { owner = "fasseg"; + repo = "crumbs"; + rev = version; + sha256 = "0jjvydn4i4n9xv8vsal2jxpa95mk2lw6myv0gx9wih242k9vy0l7"; + }; + + prePatch = '' + sed -i 's|gfind|find|' crumbs-completion.fish + ''; + + postInstall = '' + mkdir -p $out/share/bash-completion/completions + mkdir -p $out/share/fish/vendor_completions.d + + cp crumbs-completion.bash $out/share/bash-completion/completions/crumbs + cp crumbs-completion.fish $out/share/fish/vendor_completions.d/crumbs.fish + ''; + + meta = with lib; + { description = "Bookmarks for the command line"; + homepage = "https://github.com/fasseg/crumbs"; + license = licenses.wtfpl; + platforms = platforms.all; + maintainers = with maintainers; [ thesola10 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ctodo/default.nix b/nixpkgs/pkgs/applications/misc/ctodo/default.nix new file mode 100644 index 000000000000..224a79881e04 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ctodo/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchFromGitHub, cmake, ncurses, readline }: + +stdenv.mkDerivation rec { + pname = "ctodo"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "Acolarh"; + repo = pname; + rev = "v${version}"; + sha256 = "0mqy5b35cbdwfpbs91ilsgz3wc4cky38xfz9pnr4q88q1vybigna"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ ncurses readline ]; + + meta = with lib; { + homepage = "http://ctodo.apakoh.dk/"; + description = "A simple ncurses-based task list manager"; + license = licenses.mit; + maintainers = [ maintainers.matthiasbeyer ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cum/default.nix b/nixpkgs/pkgs/applications/misc/cum/default.nix new file mode 100644 index 000000000000..42df68f6721a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cum/default.nix @@ -0,0 +1,36 @@ +{ lib, python3Packages }: + +with python3Packages; + +buildPythonApplication rec { + pname = "cum"; + version = "0.9.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "15qc6agka2g3kcnpnz0hbjic1s3260cr9bda0rlcyninxs1vndq0"; + }; + + propagatedBuildInputs = [ + alembic beautifulsoup4 click natsort requests sqlalchemy + ]; + + # tests seem to fail for `config` not being defined, + # but it works once installed + doCheck = false; + + # remove the top-level `tests` and `LICENSE` file + # they should not be installed, and there can be issues if another package + # has a collision (especially with the license file) + postInstall = '' + rm -rf $out/tests $out/LICENSE + ''; + + meta = with lib; { + description = "comic updater, mangafied"; + homepage = "https://github.com/Hamuko/cum"; + license = licenses.asl20; + maintainers = with maintainers; [ tadeokondrak ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cura/default.nix b/nixpkgs/pkgs/applications/misc/cura/default.nix new file mode 100644 index 000000000000..32b9085b3de2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/default.nix @@ -0,0 +1,65 @@ +{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, + qtquickcontrols2, qtgraphicaleffects, curaengine, plugins ? [] }: + +mkDerivation rec { + pname = "cura"; + version = "4.10.0"; + + src = fetchFromGitHub { + owner = "Ultimaker"; + repo = "Cura"; + rev = version; + sha256 = "0v65xg31rw4kc7f98k8zz0kmhrp9m55k8ahblha9r1vr4krcf30z"; + }; + + materials = fetchFromGitHub { + owner = "Ultimaker"; + repo = "fdm_materials"; + rev = version; + sha256 = "0ykf14j4yx4cf12qw0d4bff9ixrx96m6wxqvi83sn721y7dsd2rs"; + }; + + buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ]; + propagatedBuildInputs = with python3.pkgs; [ + libsavitar numpy-stl pyserial requests uranium zeroconf pynest2d + sentry-sdk trimesh keyring + ] ++ plugins; + nativeBuildInputs = [ cmake python3.pkgs.wrapPython ]; + + cmakeFlags = [ + "-DURANIUM_DIR=${python3.pkgs.uranium.src}" + "-DCURA_VERSION=${version}" + ]; + + makeWrapperArgs = [ + # hacky workaround for https://github.com/NixOS/nixpkgs/issues/59901 + "--set OMP_NUM_THREADS 1" + ]; + + postPatch = '' + sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt + sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py + ''; + + postInstall = '' + mkdir -p $out/share/cura/resources/materials + cp ${materials}/*.fdm_material $out/share/cura/resources/materials/ + mkdir -p $out/lib/cura/plugins + for plugin in ${toString plugins}; do + ln -s $plugin/lib/cura/plugins/* $out/lib/cura/plugins + done + ''; + + postFixup = '' + wrapPythonPrograms + wrapQtApp $out/bin/cura + ''; + + meta = with lib; { + description = "3D printer / slicing GUI built on top of the Uranium framework"; + homepage = "https://github.com/Ultimaker/Cura"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar gebner ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch b/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch new file mode 100644 index 000000000000..3826e92440f0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine-openmp-compat.patch @@ -0,0 +1,47 @@ +# Notes by Charles Duffy <charles@dyfis.net> -- +# +# - The new version of OpenMP does not allow outside variables to be referenced +# *at all* without an explicit declaration of how they're supposed to be +# handled. Thus, this was an outright build failure beforehand. The new +# pragmas copy the initial value from the outer scope into each parallel +# thread. Since these variables are all constant within the loops, this is +# clearly correct. (Not sure it's *optimal*, but quite sure it isn't +# *wrong*). +# - Upstream has been contacted -- I'm a Lulzbot customer with an active +# support contract and sent them the patch. That said, they're in the middle +# of some major corporate churn (sold themselves out of near-bankruptcy to an +# out-of-state business entity formed as a holding company; moved to that +# state; have been slowly restaffing after), so a response may take a while. +# - The patch is purely my own work. + +--- curaengine/src/support.cpp.orig 2020-03-28 10:38:01.953912363 -0500 ++++ curaengine/src/support.cpp 2020-03-28 10:45:28.999791908 -0500 +@@ -854,7 +854,7 @@ + const double tan_angle = tan(angle) - 0.01; // the XY-component of the supportAngle + xy_disallowed_per_layer[0] = storage.getLayerOutlines(0, false).offset(xy_distance); + // for all other layers (of non support meshes) compute the overhang area and possibly use that when calculating the support disallowed area +- #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic) ++ #pragma omp parallel for default(none) firstprivate(layer_count, is_support_mesh_place_holder, use_xy_distance_overhang, z_distance_top, tan_angle, xy_distance, xy_distance_overhang) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic) + for (unsigned int layer_idx = 1; layer_idx < layer_count; layer_idx++) + { + Polygons outlines = storage.getLayerOutlines(layer_idx, false); +@@ -1054,7 +1054,7 @@ + const int max_checking_layer_idx = std::min(static_cast<int>(storage.support.supportLayers.size()) + , static_cast<int>(layer_count - (layer_z_distance_top - 1))); + const size_t max_checking_idx_size_t = std::max(0, max_checking_layer_idx); +-#pragma omp parallel for default(none) shared(support_areas, storage) schedule(dynamic) ++#pragma omp parallel for default(none) firstprivate(max_checking_idx_size_t, layer_z_distance_top) shared(support_areas, storage) schedule(dynamic) + for (size_t layer_idx = 0; layer_idx < max_checking_idx_size_t; layer_idx++) + { + support_areas[layer_idx] = support_areas[layer_idx].difference(storage.getLayerOutlines(layer_idx + layer_z_distance_top - 1, false)); +--- curaengine/src/layerPart.cpp.orig 2020-03-28 10:36:40.381023651 -0500 ++++ curaengine/src/layerPart.cpp 2020-03-28 10:39:54.584140465 -0500 +@@ -49,7 +49,7 @@ + { + const auto total_layers = slicer->layers.size(); + assert(mesh.layers.size() == total_layers); +-#pragma omp parallel for default(none) shared(mesh, slicer) schedule(dynamic) ++#pragma omp parallel for default(none) firstprivate(total_layers) shared(mesh, slicer) schedule(dynamic) + for (unsigned int layer_nr = 0; layer_nr < total_layers; layer_nr++) + { + SliceLayer& layer_storage = mesh.layers[layer_nr]; diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine.nix new file mode 100644 index 000000000000..5d1df20e224b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/curaengine.nix @@ -0,0 +1,27 @@ +{ lib, gcc8Stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }: + +gcc8Stdenv.mkDerivation rec { + pname = "curaengine-lulzBot"; + version = "3.6.21"; + + src = fetchgit { + url = "https://code.alephobjects.com/source/curaengine-lulzbot.git"; + rev = "ec6a1a0f0aa387ef97e5c106633cf8d7fb9cd00d"; + sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8"; + }; + + patches = [ ./curaengine-openmp-compat.patch ]; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libarcusLulzbot stb protobuf ]; + + cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ]; + + meta = with lib; { + description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction"; + homepage = "https://code.alephobjects.com/source/curaengine-lulzbot/"; + license = licenses.agpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ chaduffy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix new file mode 100644 index 000000000000..360ef47ecf1d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix @@ -0,0 +1,82 @@ +{ lib, mkDerivation, wrapQtAppsHook, callPackage, fetchgit, cmake, jq, python3, qtbase, qtquickcontrols2 }: + +let + # admittedly, we're using (printer firmware) blobs when we could compile them ourselves. + curaBinaryDataVersion = "3.6.21"; # Marlin v2.0.0.174 for Bio, v2.0.0.144 for others. + curaBinaryData = fetchgit { + url = "https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git"; + rev = "5c75d0f6c10d8b7a903e2072a48cd1f08059509e"; + sha256 = "1qdsj6rczwzdwzyr7nz7fnypbphckjrnwl8c9dr6izsxyzs465c4"; + }; + + libarcusLulzbot = callPackage ./libarcus.nix { + inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder; + }; + libsavitarLulzbot = callPackage ./libsavitar.nix { + inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder; + }; + + inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; + curaengine = callPackage ./curaengine.nix { + inherit libarcusLulzbot; + }; + uraniumLulzbot = callPackage ./uranium.nix { + inherit callPackage libarcusLulzbot; + inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; + }; +in +mkDerivation rec { + pname = "cura-lulzbot"; + version = "3.6.21"; + + src = fetchgit { + url = "https://code.alephobjects.com/source/cura-lulzbot.git"; + rev = "7faeb18604c83004846a02c60cb240708db0034f"; + sha256 = "10q38s8c8x6xkh1vns4p3iqa5y267vrjh5vq8h55mg1q5001scyq"; + }; + + buildInputs = [ qtbase qtquickcontrols2 ]; + # numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415 + propagatedBuildInputs = with python3.pkgs; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl + nativeBuildInputs = [ cmake python3.pkgs.wrapPython ]; + + cmakeFlags = [ + "-DURANIUM_DIR=${uraniumLulzbot.src}" + "-DCURA_VERSION=${version}" + ]; + + postPatch = '' + sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt + sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py + ''; + + preFixup = '' + substituteInPlace "$out/bin/cura-lulzbot" --replace 'import cura.CuraApplication' 'import Savitar; import cura.CuraApplication' + ln -sT "${curaBinaryData}/cura/resources/firmware" "$out/share/cura/resources/firmware" + ln -sT "${uraniumLulzbot}/share/uranium" "$out/share/uranium" + ${jq}/bin/jq --arg out "$out" '.build=$out' >"$out/version.json" <<'EOF' + ${builtins.toJSON { + cura = version; + cura_version = version; + binarydata = curaBinaryDataVersion; + engine = curaengine.version; + libarcus = libarcusLulzbot.version; + libsavitar = libsavitarLulzbot.version; + uranium = uraniumLulzbot.version; + }} + EOF + ''; + + postFixup = '' + wrapPythonPrograms + wrapQtApp "$out/bin/cura-lulzbot" + ''; + + meta = with lib; { + description = "3D printer / slicing GUI built on top of the Uranium framework"; + homepage = "https://code.alephobjects.com/diffusion/CURA/"; + license = licenses.agpl3; # a partial relicense to LGPL has happened, but not certain that all AGPL bits are expunged + platforms = platforms.linux; + maintainers = with maintainers; [ chaduffy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix new file mode 100644 index 000000000000..15e221a8f743 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix @@ -0,0 +1,33 @@ +{ lib, buildPythonPackage, fetchgit, fetchurl, cmake, sip_4, protobuf, pythonOlder }: + +buildPythonPackage { + pname = "libarcus"; + version = "3.6.21"; + format = "other"; + + src = fetchgit { + url = "https://code.alephobjects.com/source/arcus.git"; + rev = "aeda02d7727f45b657afb72cef203283fbf09325"; + sha256 = "1ak0d4k745sx7paic27was3s4987z9h3czscjs21hxbi6qy83g99"; + }; + + disabled = pythonOlder "3.4.0"; + + propagatedBuildInputs = [ sip_4 ]; + nativeBuildInputs = [ cmake ]; + buildInputs = [ protobuf ]; + + postPatch = '' + # To workaround buggy SIP detection which overrides PYTHONPATH + sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake + ''; + + meta = with lib; { + description = "Communication library between internal components for Ultimaker software"; + homepage = "https://code.alephobjects.com/source/arcus/"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ chaduffy ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix new file mode 100644 index 000000000000..dd84173ffce1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix @@ -0,0 +1,33 @@ +{ lib, buildPythonPackage, pythonOlder, fetchgit, cmake, sip_4 }: + +buildPythonPackage { + pname = "libsavitar-lulzbot"; + name = "libsavitar-lulzbot"; + version = "3.6.21"; + format = "other"; + + src = fetchgit { + url = "https://code.alephobjects.com/source/savitar.git"; + rev = "ee8ada42c55f54727ce4d275c294ba426d3d8234"; + sha256 = "1wm5ii3cmni8dk3c65kw4wglpypkdsfpgd480d3hc1r5bqpq0d6j"; + }; + + postPatch = '' + # To workaround buggy SIP detection which overrides PYTHONPATH + sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake + ''; + + nativeBuildInputs = [ cmake ]; + + propagatedBuildInputs = [ sip_4 ]; + + disabled = pythonOlder "3.4.0"; + + meta = with lib; { + description = "C++ implementation of 3mf loading with SIP python bindings"; + homepage = "https://github.com/Ultimaker/libSavitar"; + license = licenses.lgpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ chaduffy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/uranium.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/uranium.nix new file mode 100644 index 000000000000..01166092b2b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/uranium.nix @@ -0,0 +1,38 @@ +{ lib, callPackage, fetchurl, fetchgit, buildPythonPackage, fetchFromGitHub, python, cmake +, pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }: + +buildPythonPackage { + version = "3.6.21"; + pname = "uranium"; + name = "uraniumLulzbot"; + format = "other"; + + src = fetchgit { + url = "https://code.alephobjects.com/diffusion/U/uranium.git"; + rev = "54d911edd2551c5875c554928896122835a0dd6c"; + sha256 = "04bym3vwikaxw8ab0mymv9sc9n8i7yw5kfsv99ic811g9lzz3j1i"; + }; + + disabled = pythonOlder "3.5.0"; + + buildInputs = [ python gettext ]; + propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ]; + nativeBuildInputs = [ cmake doxygen ]; + + postPatch = '' + sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt + sed -i \ + -e "s,Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,Resources.addSearchPath(\"$out/share/uranium/resources\")," \ + -e "s,self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,self._plugin_registry.addPluginLocation(\"$out/lib/uranium/plugins\")," \ + UM/Application.py + ''; + + meta = with lib; { + description = "A Python framework for building Desktop applications"; + homepage = "https://code.alephobjects.com/diffusion/U/"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ chaduffy ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch b/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch new file mode 100644 index 000000000000..efb14182b3e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch @@ -0,0 +1,12 @@ +diff -urN Cura-15.04.old/Cura/util/sliceEngine.py Cura-15.04/Cura/util/sliceEngine.py +--- Cura-15.04.old/Cura/util/sliceEngine.py 2016-05-07 20:34:17.305020334 +0200 ++++ Cura-15.04/Cura/util/sliceEngine.py 2016-05-07 20:40:02.993286467 +0200 +@@ -343,7 +343,7 @@ + objMax[1] = max(oMax[1], objMax[1]) + if objMin is None: + return +- pos += (objMin + objMax) / 2.0 * 1000 ++ pos = numpy.add( pos, (objMin + objMax) / 2.0 * 1000, out=pos, casting='unsafe') + commandList += ['-s', 'posx=%d' % int(pos[0]), '-s', 'posy=%d' % int(pos[1])] + + vertexTotal = [0] * 4 diff --git a/nixpkgs/pkgs/applications/misc/cura/plugins.nix b/nixpkgs/pkgs/applications/misc/cura/plugins.nix new file mode 100644 index 000000000000..76a5808963f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/plugins.nix @@ -0,0 +1,76 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages, libspnav, jq }: + +let + + self = { + + octoprint = stdenv.mkDerivation rec { + pname = "Cura-OctoPrintPlugin"; + version = "3.5.18"; + + src = fetchFromGitHub { + owner = "fieldOfView"; + repo = pname; + rev = "7bd73946fbf22d18337dc900a81a011ece26bee0"; + sha256 = "057b2f5f49p96lkh2wsr9w6yh2003x4a85irqsgbzp6igmk8imdn"; + }; + + propagatedBuildInputs = with python3Packages; [ + netifaces + ]; + + installPhase = '' + mkdir -p $out/lib/cura/plugins/OctoPrintPlugin + cp -rv . $out/lib/cura/plugins/OctoPrintPlugin/ + ''; + + meta = with lib; { + description = "Enables printing directly to OctoPrint and monitoring the process"; + homepage = "https://github.com/fieldOfView/Cura-OctoPrintPlugin"; + license = licenses.agpl3; + maintainers = with maintainers; [ gebner ]; + }; + }; + + rawmouse = stdenv.mkDerivation rec { + pname = "RawMouse"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "smartavionics"; + repo = pname; + rev = version; + sha256 = "0hvi7qwd4xfnqnhbj9dgfjmvv9df7s42asf3fdfxv43n6nx74scw"; + }; + + nativeBuildInputs = [ jq ]; + + propagatedBuildInputs = with python3Packages; [ + hidapi + ]; + + buildPhase = '' + jq 'del(.devices) | .libspnav="${libspnav}/lib/libspnav.so"' \ + <RawMouse/config.json >RawMouse/config.json.new + mv RawMouse/config.json.new RawMouse/config.json + + # remove prebuilt binaries + rm -r RawMouse/hidapi + ''; + + installPhase = '' + mkdir -p $out/lib/cura/plugins/RawMouse + cp -rv . $out/lib/cura/plugins/RawMouse/ + ''; + + meta = with lib; { + description = "Cura plugin for HID mice such as 3Dconnexion spacemouse"; + homepage = "https://github.com/smartavionics/RawMouse"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ gebner ]; + }; + }; + + }; + +in self diff --git a/nixpkgs/pkgs/applications/misc/cura/stable.nix b/nixpkgs/pkgs/applications/misc/cura/stable.nix new file mode 100644 index 000000000000..5383cbe9a23a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/cura/stable.nix @@ -0,0 +1,73 @@ +{ lib, stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }: +let + py = python27Packages; + version = "15.04"; +in +stdenv.mkDerivation rec { + pname = "cura"; + inherit version; + + src = fetchurl { + url = "https://github.com/daid/Cura/archive/${version}.tar.gz"; + sha256 = "0xbjvzhp8wzq9lnpmcg1fjf7j5h39bj5463sd5c8jzdjl96izizl"; + }; + + desktopItem = makeDesktopItem { + name = "Cura"; + exec = "cura"; + icon = "cura"; + comment = "Cura"; + desktopName = "Cura"; + genericName = "3D printing host software"; + categories = "GNOME;GTK;Utility;"; + }; + + python_deps = with py; [ pyopengl pyserial numpy wxPython30 power setuptools ]; + + pythonPath = python_deps; + + propagatedBuildInputs = python_deps; + + buildInputs = [ curaengine py.wrapPython ]; + + configurePhase = ""; + buildPhase = ""; + + patches = [ ./numpy-cast.patch ]; + + installPhase = '' + # Install Python code. + site_packages=$out/lib/python2.7/site-packages + mkdir -p $site_packages + cp -r Cura $site_packages/ + + # Install resources. + resources=$out/share/cura + mkdir -p $resources + cp -r resources/* $resources/ + sed -i 's|os.path.join(os.path.dirname(__file__), "../../resources")|"'$resources'"|g' $site_packages/Cura/util/resources.py + + # Install executable. + mkdir -p $out/bin + cp Cura/cura.py $out/bin/cura + chmod +x $out/bin/cura + sed -i 's|#!/usr/bin/python|#!/usr/bin/env python|' $out/bin/cura + wrapPythonPrograms + + # Make it find CuraEngine. + echo "def getEngineFilename(): return '${curaengine}/bin/CuraEngine'" >> $site_packages/Cura/util/sliceEngine.py + + # Install desktop item. + mkdir -p "$out"/share/applications + cp "$desktopItem"/share/applications/* "$out"/share/applications/ + mkdir -p "$out"/share/icons + ln -s "$resources/images/c.png" "$out"/share/icons/cura.png + ''; + + meta = with lib; { + description = "3D printing host software"; + homepage = "https://github.com/daid/Cura"; + license = licenses.agpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix b/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix new file mode 100644 index 000000000000..a8d041de1079 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix @@ -0,0 +1,78 @@ +{ stdenv, runtimeShell, lib, fetchurl, python2Packages, unzip }: + +# This package uses a precompiled "binary" distribution of CuraByDagoma, +# distributed by the editor. +# +# To update the package, follow the links on https://dist.dagoma.fr/: +# * Cura By Dagoma +# * Linux +# * 64 bits +# * Genric archive +# +# I made the arbitrary choice to compile this package only for x86_64. +# I guess people owning a 3D printer generally don't use i686. +# If, however, someone needs it, we certainly can find a solution. + +let + pythonPackages = python2Packages; +in stdenv.mkDerivation rec { + pname = "curabydagoma"; + # Version is the date, UNIX format + version = "1520506579"; + # Hash of the user's choice: os, arch, package type... + hash = "58228cce5bbdcf764b7116850956f1e5"; + + src = fetchurl { + url = "https://dist.dagoma.fr/get/zip/CuraByDagoma/${version}/${hash}"; + sha256 = "16wfipdyjkf6dq8awjzs4zgkmqk6230277mf3iz8swday9hns8pq"; + }; + unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz"; + nativeBuildInputs = [ unzip ]; + buildInputs = [ pythonPackages.python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ]; + + # Compile all pyc files because the included pyc files may be older than the + # py files. However, Python doesn't realize that because the packages + # have all dates set to epoch. + buildPhase = '' + python -m compileall -f curabydago + ''; + + # * Simply copy the stuff there + # * Create an executable with the correct path etc + # * Create a .desktop file to have a launcher in the desktop environments + installPhase = '' + mkdir $out + cp -r * $out/ + + mkdir $out/bin + cat > $out/bin/curabydago <<EOF + #!${runtimeShell} + export PYTHONPATH=$PYTHONPATH + ${pythonPackages.python.interpreter} $out/curabydago/cura.py + EOF + chmod a+x $out/bin/curabydago + + mkdir -p $out/share/applications + cat > $out/share/applications/curabydago.desktop <<EOF + [Desktop Entry] + Type=Application + Name=Cura-by-dagoma + Comment=CuraByDagoma is a fork of Legacy Cura made by Dagoma for its own printers. + Icon=$out/curabydago/resources/images/cura.ico + Exec=$out/bin/curabydago + Path=$out/ + StartupNotify=true + Terminal=false + Categories=GNOME;GTK;Utility; + EOF + + ''; + + meta = with lib; { + description = "Slicer for 3D printers built by Dagoma"; + homepage = "https://dagoma.fr/cura-by-dagoma.html"; + license = licenses.agpl3; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ tiramiseb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/curaengine/default.nix b/nixpkgs/pkgs/applications/misc/curaengine/default.nix new file mode 100644 index 000000000000..d0dfde5b3820 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/curaengine/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchFromGitHub, cmake, libarcus, stb, protobuf }: + +stdenv.mkDerivation rec { + pname = "curaengine"; + version = "4.10.0"; + + src = fetchFromGitHub { + owner = "Ultimaker"; + repo = "CuraEngine"; + rev = version; + sha256 = "sha256-t5i6s0KKcaoMqzDxZ6JL1NyKP33uxWdmyziK3xh8q88="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libarcus stb protobuf ]; + + cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ]; + + meta = with lib; { + description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction"; + homepage = "https://github.com/Ultimaker/CuraEngine"; + license = licenses.agpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar gebner ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/curaengine/stable.nix b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix new file mode 100644 index 000000000000..148553da1621 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl }: +let + version = "15.04.6"; +in +stdenv.mkDerivation { + pname = "curaengine"; + inherit version; + + src = fetchurl { + url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz"; + sha256 = "1cd4dikzvqyj5g80rqwymvh4nwm76vsf78clb37kj6q0fig3qbjg"; + }; + + postPatch = '' + substituteInPlace Makefile --replace "--static" "" + '' + lib.optionalString stdenv.isi686 '' + substituteInPlace Makefile --replace "-flto" "" + ''; + + installPhase = '' + mkdir -p $out/bin + cp build/CuraEngine $out/bin/ + ''; + + meta = with lib; { + description = "Engine for processing 3D models into 3D printing instructions"; + homepage = "https://github.com/Ultimaker/CuraEngine"; + license = licenses.agpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dasel/default.nix b/nixpkgs/pkgs/applications/misc/dasel/default.nix new file mode 100644 index 000000000000..ded30233d4cb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dasel/default.nix @@ -0,0 +1,45 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "dasel"; + version = "1.15.0"; + + src = fetchFromGitHub { + owner = "TomWright"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-XJSWdXGa1qkkMfETUV8xx9oaMdNVFdO27/GvDvczjG8="; + }; + + vendorSha256 = "sha256-BdX4DO77mIf/+aBdkNVFUzClsIml1UMcgvikDbbdgcY="; + + buildFlagsArray = '' + -ldflags=-s -w -X github.com/tomwright/dasel/internal.Version=${version} + ''; + + doInstallCheck = true; + installCheckPhase = '' + if [[ "$("$out/bin/${pname}" --version)" == "${pname} version ${version}" ]]; then + echo "" | $out/bin/dasel put object -p yaml -t string -t int "my.favourites" colour=red number=3 | grep -q red + echo '${pname} smoke check passed' + else + echo '${pname} smoke check failed' + return 1 + fi + ''; + + meta = with lib; { + description = "Query and update data structures from the command line"; + longDescription = '' + Dasel (short for data-selector) allows you to query and modify data structures using selector strings. + Comparable to jq / yq, but supports JSON, YAML, TOML and XML with zero runtime dependencies. + ''; + homepage = "https://github.com/TomWright/dasel"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ _0x4A6F ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix new file mode 100644 index 000000000000..a15157a9370b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix @@ -0,0 +1,155 @@ +{ lib +, stdenv +, copyDesktopItems +, fetchFromGitHub +, makeDesktopItem +, makeWrapper +, fontconfig +, freetype +, glib +, gtk3 +, jdk +, libX11 +, libXrender +, libXtst +, zlib +, maven +}: + +stdenv.mkDerivation rec { + pname = "dbeaver"; + version = "21.1.2"; # When updating also update fetchedMavenDeps.sha256 + + src = fetchFromGitHub { + owner = "dbeaver"; + repo = "dbeaver"; + rev = version; + sha256 = "sha256-3q5LTllyqw7s8unJHTuasBCM4iaJ9lLpwgbXwBGUtIw="; + }; + + fetchedMavenDeps = stdenv.mkDerivation { + name = "dbeaver-${version}-maven-deps"; + inherit src; + + buildInputs = [ + maven + ]; + + buildPhase = "mvn package -Dmaven.repo.local=$out/.m2 -P desktop,all-platforms"; + + # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside + installPhase = '' + find $out -type f \ + -name \*.lastUpdated -or \ + -name resolver-status.properties -or \ + -name _remote.repositories \ + -delete + ''; + + # don't do any fixup + dontFixup = true; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "sha256-QPDnIXP3yB1Dn0LBbBBLvRDbCyguWvG9Zzb1Vjh72UA="; + }; + + nativeBuildInputs = [ + copyDesktopItems + makeWrapper + maven + ]; + + buildInputs = [ + fontconfig + freetype + glib + gtk3 + jdk + libX11 + libXrender + libXtst + zlib + ]; + + desktopItems = [ + (makeDesktopItem { + name = "dbeaver"; + exec = "dbeaver"; + icon = "dbeaver"; + desktopName = "dbeaver"; + comment = "SQL Integrated Development Environment"; + genericName = "SQL Integrated Development Environment"; + categories = "Development;"; + }) + ]; + + buildPhase = '' + runHook preBuild + + mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 -P desktop,all-platforms + + runHook postBuild + ''; + + installPhase = + let + productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product"; + + platformMap = { + aarch64-linux = "aarch64"; + x86_64-darwin = "x86_64"; + x86_64-linux = "x86_64"; + }; + + systemPlatform = platformMap.${stdenv.hostPlatform.system} or (throw "dbeaver not supported on ${stdenv.hostPlatform.system}"); + in + if stdenv.isDarwin then '' + runHook preInstall + + mkdir -p $out/Applications $out/bin + cp -r ${productTargetPath}/macosx/cocoa/${systemPlatform}/DBeaver.app $out/Applications + + sed -i "/^-vm/d; /bin\/java/d" $out/Applications/DBeaver.app/Contents/Eclipse/dbeaver.ini + + ln -s $out/Applications/DBeaver.app/Contents/MacOS/dbeaver $out/bin/dbeaver + + wrapProgram $out/Applications/DBeaver.app/Contents/MacOS/dbeaver \ + --prefix JAVA_HOME : ${jdk.home} \ + --prefix PATH : ${jdk}/bin + + runHook postInstall + '' else '' + runHook preInstall + + mkdir -p $out/ + cp -r ${productTargetPath}/linux/gtk/${systemPlatform}/dbeaver $out/dbeaver + + # Patch binaries. + interpreter=$(cat $NIX_CC/nix-support/dynamic-linker) + patchelf --set-interpreter $interpreter $out/dbeaver/dbeaver + + makeWrapper $out/dbeaver/dbeaver $out/bin/dbeaver \ + --prefix PATH : ${jdk}/bin \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst ])} \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + + mkdir -p $out/share/pixmaps + ln -s $out/dbeaver/icon.xpm $out/share/pixmaps/dbeaver.xpm + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://dbeaver.io/"; + description = "Universal SQL Client for developers, DBA and analysts. Supports MySQL, PostgreSQL, MariaDB, SQLite, and more"; + longDescription = '' + Free multi-platform database tool for developers, SQL programmers, database + administrators and analysts. Supports all popular databases: MySQL, + PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, + Teradata, Firebird, Derby, etc. + ''; + license = licenses.asl20; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; + maintainers = with maintainers; [ jojosch ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ddcui/default.nix b/nixpkgs/pkgs/applications/misc/ddcui/default.nix new file mode 100644 index 000000000000..1ec288c678a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ddcui/default.nix @@ -0,0 +1,42 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, pkg-config +, qtbase +, qttools +, ddcutil +}: + +mkDerivation rec { + pname = "ddcui"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "rockowitz"; + repo = "ddcui"; + rev = "v${version}"; + sha256 = "0myma1zw6dlygv3xbin662d91zcnwss10syf12q2fppkrd8qdgqf"; + }; + + nativeBuildInputs = [ + # Using cmake instead of the also-supported qmake because ddcui's qmake + # file is not currently written to support PREFIX installations. + cmake + pkg-config + ]; + + buildInputs = [ + qtbase + qttools + ddcutil + ]; + + meta = with lib; { + description = "Graphical user interface for ddcutil - control monitor settings"; + homepage = "https://www.ddcutil.com/ddcui_main/"; + license = licenses.gpl2; + maintainers = with maintainers; [ nh2 ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ddgr/default.nix b/nixpkgs/pkgs/applications/misc/ddgr/default.nix new file mode 100644 index 000000000000..850bca3320ea --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ddgr/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, python3, installShellFiles }: + +stdenv.mkDerivation rec { + version = "1.9"; + pname = "ddgr"; + + src = fetchFromGitHub { + owner = "jarun"; + repo = "ddgr"; + rev = "v${version}"; + sha256 = "0qbdq7k0mmvkjp6qzz88n7vf29liqn6y5w4y39ldqdc8hzw5sld7"; + }; + + nativeBuildInputs = [ installShellFiles ]; + + buildInputs = [ python3 ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + installShellCompletion --bash --name ddgr.bash auto-completion/bash/ddgr-completion.bash + installShellCompletion --fish auto-completion/fish/ddgr.fish + installShellCompletion --zsh auto-completion/zsh/_ddgr + ''; + + meta = with lib; { + homepage = "https://github.com/jarun/ddgr"; + description = "Search DuckDuckGo from the terminal"; + license = licenses.gpl3; + maintainers = with maintainers; [ ceedubs markus1189 ]; + platforms = python3.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix b/nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix new file mode 100644 index 000000000000..5d77f301c821 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/deadd-notification-center/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoPatchelfHook +, wrapGAppsHook +, hicolor-icon-theme +, gtk3 +, gobject-introspection +, libxml2 +, fetchpatch +}: +stdenv.mkDerivation rec { + pname = "deadd-notification-center"; + version = "2021-03-10"; + + src = fetchFromGitHub { + owner = "phuhl"; + repo = "linux_notification_center"; + rev = "640ce0f"; + sha256 = "12ldr8vppylr90849g3mpjphmnr4lp0vsdkj01a5f4bv4ksx35fm"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/phuhl/linux_notification_center/commit/5244e1498574983322be97925e1ff7ebe456d974.patch"; + sha256 = "sha256-hbqbgBmuewOhtx0na2tmFa5W128ZrBvDcyPme/mRzlI="; + }) + ]; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + gobject-introspection + libxml2 + hicolor-icon-theme + ]; + + buildFlags = [ + # Exclude stack from `make all` to use the prebuilt binary from .out/ + "service" + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "SERVICEDIR_SYSTEMD=${placeholder "out"}/etc/systemd/user" + "SERVICEDIR_DBUS=${placeholder "out"}/share/dbus-1/services" + # Override systemd auto-detection. + "SYSTEMD=1" + ]; + + meta = with lib; { + description = "A haskell-written notification center for users that like a desktop with style"; + homepage = "https://github.com/phuhl/linux_notification_center"; + license = licenses.bsd3; + maintainers = [ maintainers.pacman99 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/deco/default.nix b/nixpkgs/pkgs/applications/misc/deco/default.nix new file mode 100644 index 000000000000..2ea3483f1bac --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/deco/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, scsh, feh, xorg }: + +stdenv.mkDerivation rec { + pname = "deco"; + version = "0.0.2"; + + src = fetchFromGitHub { + owner = "ebzzry"; + repo = pname; + rev = "49cded5ad123b0169f47cd0dc0f5420f4b581837"; + sha256 = "19rvqhw0blwga8ck86yy8hj7j1l9hriphlld6yrfd3yip4jprjzz"; + }; + + installPhase = '' + mkdir -p $out/bin + cp ${pname} $out/bin + chmod +x $out/bin/${pname} + ''; + + postFixup = '' + substituteInPlace $out/bin/deco --replace "/usr/bin/env scsh" "${scsh}/bin/scsh" + substituteInPlace $out/bin/deco --replace "feh" "${feh}/bin/feh" + substituteInPlace $out/bin/deco --replace "xdpyinfo" "${xorg.xdpyinfo}/bin/xdpyinfo" + ''; + + meta = with lib; { + homepage = "https://github.com/ebzzry/deco"; + description = "A simple root image setter"; + license = licenses.mit; + maintainers = [ maintainers.ebzzry ]; + platforms = platforms.unix; + }; + + dontBuild = true; +} diff --git a/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix b/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix new file mode 100644 index 000000000000..85298bc3c753 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix @@ -0,0 +1,43 @@ +{ lib, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3 }: + +let + version = "0.7.2"; + pname = "devdocs-desktop"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/egoist/devdocs-desktop/releases/download/v${version}/DevDocs-${version}.AppImage"; + sha256 = "sha256-4ugpzh0Dweae6tKb6uqRhEW9HT+iVIo8MQRbVKTdRFw="; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + +in appimageTools.wrapType2 rec { + inherit name src; + + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/devdocs.desktop $out/share/applications/devdocs.desktop + install -m 444 -D ${appimageContents}/devdocs.png $out/share/icons/hicolor/0x0/apps/devdocs.png + substituteInPlace $out/share/applications/devdocs.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "A full-featured desktop app for DevDocs.io"; + longDescription = '' + DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it. + ''; + homepage = "https://github.com/egoist/devdocs-desktop"; + downloadPage = "https://github.com/egoist/devdocs-desktop/releases"; + license = licenses.mit; + maintainers = with maintainers; [ ymarkus ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/devilspie2/default.nix b/nixpkgs/pkgs/applications/misc/devilspie2/default.nix new file mode 100644 index 000000000000..b9d8b0f9797d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/devilspie2/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchurl, intltool, pkg-config, glib, gtk, lua, libwnck }: + +stdenv.mkDerivation rec { + pname = "devilspie2"; + version = "0.43"; + + src = fetchurl { + url = "https://download.savannah.gnu.org/releases/devilspie2/devilspie2_${version}-src.tar.gz"; + sha256 = "0a7qjl2qd4099kkkbwa1y2fk48s21jlr409lf9mij7mlc9yc3zzc"; + }; + + nativeBuildInputs = [ intltool pkg-config ]; + buildInputs = [ glib gtk lua libwnck ]; + + installPhase = '' + mkdir -p $out/bin $out/share/man/man1 + cp bin/devilspie2 $out/bin + cp devilspie2.1 $out/share/man/man1 + ''; + + meta = with lib; { + description = "A window matching utility"; + longDescription = '' + Devilspie2 is a window matching utility, allowing the user to + perform scripted actions on windows as they are created. For + example you can script a terminal program to always be + positioned at a specific screen position, or position a window + on a specific workspace. + ''; + homepage = "https://www.gusnan.se/devilspie2/"; + license = licenses.gpl3; + maintainers = [ maintainers.ebzzry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix b/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix new file mode 100644 index 000000000000..19cfa95a88e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix @@ -0,0 +1,25 @@ +{ lib, mkDerivation, fetchFromGitHub, cmake, file, qtbase, qttools, solid }: + +mkDerivation { + pname = "dfilemanager"; + version = "git-2020-09-04"; + + src = fetchFromGitHub { + owner = "probonopd"; + repo = "dfilemanager"; + rev = "c592d643d76942dc2c2ccb6e4bfdf53f5e805e48"; + sha256 = "7hIgaWjjOck5i4QbeVeQK7yrjK4yDoAZ5qY9RhM5ABY="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ qtbase qttools file solid ]; + + cmakeFlags = [ "-DQT5BUILD=true" ]; + + meta = { + homepage = "http://dfilemanager.sourceforge.net/"; + description = "File manager written in Qt/C++"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix b/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix new file mode 100644 index 000000000000..186826e6f7d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config, cairo, poppler, wxGTK ? null, wxmac ? null, darwin ? null }: + +let + wxInputs = + if stdenv.isDarwin then + [ wxmac darwin.apple_sdk.frameworks.Cocoa ] + else + [ wxGTK ]; +in +stdenv.mkDerivation rec { + pname = "diff-pdf"; + version = "0.5"; + + src = fetchFromGitHub { + owner = "vslavik"; + repo = "diff-pdf"; + rev = "v${version}"; + sha256 = "sha256-Si8v5ZY1Q/AwQTaxa1bYG8bgqxWj++c4Hh1LzXSmSwE="; + }; + + nativeBuildInputs = [ autoconf automake pkg-config ]; + buildInputs = [ cairo poppler ] ++ wxInputs; + + preConfigure = "./bootstrap"; + + meta = with lib; { + homepage = "https://vslavik.github.io/diff-pdf/"; + description = "Simple tool for visually comparing two PDF files"; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/diffpdf/default.nix b/nixpkgs/pkgs/applications/misc/diffpdf/default.nix new file mode 100644 index 000000000000..0eb432bc734d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/diffpdf/default.nix @@ -0,0 +1,58 @@ +{ lib, mkDerivation, fetchurl, fetchpatch, qmake, qttools, qtbase, poppler }: + +mkDerivation rec { + version = "2.1.3"; + pname = "diffpdf"; + + src = fetchurl { + url = "http://www.qtrac.eu/${pname}-${version}.tar.gz"; + sha256 = "0cr468fi0d512jjj23r5flfzx957vibc9c25gwwhi0d773h2w566"; + }; + + patches = [ + (fetchpatch { + url = "https://raw.githubusercontent.com/gentoo/gentoo/9b971631588ff46e7c2d501bc35cd0d9ce2d98e2/app-text/diffpdf/files/diffpdf-2.1.3-qt5.patch"; + sha256 = "0sax8gcqcmzf74hmdr3rarqs4nsxmml9qmh6pqyjmgl3lypxhafg"; + }) + ./fix_path_poppler_qt5.patch + ]; + + nativeBuildInputs = [ qmake qttools ]; + buildInputs = [ qtbase poppler ]; + + preConfigure = '' + substituteInPlace diffpdf.pro --replace @@NIX_POPPLER_QT5@@ ${poppler.dev} + lrelease diffpdf.pro + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/man/man1 + + install -Dpm755 -D diffpdf $out/bin/diffpdf + install -Dpm644 -D diffpdf.1 $out/share/man/man1/diffpdf.1 + + install -dpm755 $out/share/doc/${pname}-${version} $out/share/licenses/${pname}-${version} $out/share/icons $out/share/pixmaps $out/share/applications + install -Dpm644 CHANGES README help.html $out/share/doc/${pname}-${version}/ + install -Dpm644 gpl-2.0.txt $out/share/licenses/${pname}-${version}/ + install -Dpm644 images/icon.png $out/share/pixmaps/diffpdf.png + + cat > $out/share/applications/diffpdf.desktop <<EOF + [Desktop Entry] + Type=Application + Version=1.0 + Name=diffpdf + Icon=diffpdf + Comment=PDF diffing tool + Exec=$out/bin/diffpdf + Terminal=false + EOF + ''; + + meta = { + homepage = "http://www.qtrac.eu/diffpdfc.html"; + description = "Tool for diffing pdf files visually or textually"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ tstrobel ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch b/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch new file mode 100644 index 000000000000..9535ea2c6b0d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch @@ -0,0 +1,16 @@ +diff -uNr diffpdf-2.1.3/diffpdf.pro diffpdf-2.1.3-new/diffpdf.pro +--- diffpdf-2.1.3/diffpdf.pro 2013-10-15 09:01:22.000000000 +0200 ++++ diffpdf-2.1.3-new/diffpdf.pro 2015-07-07 23:13:36.445572148 +0200 +@@ -47,9 +47,9 @@ + INCLUDEPATH += /c/poppler_lib/include/poppler/qt5 + LIBS += -Wl,-rpath -Wl,/c/poppler_lib/bin -Wl,-L/c/poppler_lib/bin + } else { +- exists(/usr/include/poppler/qt5) { +- INCLUDEPATH += /usr/include/poppler/cpp +- INCLUDEPATH += /usr/include/poppler/qt5 ++ exists(@@NIX_POPPLER_QT5@@/include/poppler/qt5) { ++ INCLUDEPATH += @@NIX_POPPLER_QT5@@/include/poppler/cpp ++ INCLUDEPATH += @@NIX_POPPLER_QT5@@/include/poppler/qt5 + } else { + INCLUDEPATH += /usr/local/include/poppler/cpp + INCLUDEPATH += /usr/local/include/poppler/qt5 diff --git a/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix b/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix new file mode 100644 index 000000000000..4771cebc3411 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix @@ -0,0 +1,142 @@ +{ mkDerivation +, lib +, autoreconfHook +, curl +, fetchFromGitHub +, git +, libevent +, libtool +, qrencode +, udev +, libusb1 +, makeWrapper +, pkg-config +, qtbase +, qttools +, qtwebsockets +, qtmultimedia +, udevRule51 ? '' +, SUBSYSTEM=="usb", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbb%n", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402" +, '' +, udevRule52 ? '' +, KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbbf%n" +, '' +, writeText +}: + +# Enabling the digitalbitbox program +# +# programs.digitalbitbox.enable = true; +# +# will install the digitalbitbox package and enable the corresponding hardware +# module and is by far the easiest way to get started with the Digital Bitbox on +# NixOS. + +# In case you install the package only, please be aware that you may need to +# apply some udev rules to allow the application to identify and access your +# wallet. In a nixos-configuration, one may accomplish this by enabling the +# digitalbitbox hardware module +# +# hardware.digitalbitbox.enable = true; +# +# or by adding the digitalbitbox package to system.udev.packages +# +# system.udev.packages = [ pkgs.digitalbitbox ]; + +# See https://digitalbitbox.com/start_linux for more information. +let + copyUdevRuleToOutput = name: rule: + "cp ${writeText name rule} $out/etc/udev/rules.d/${name}"; +in mkDerivation rec { + pname = "digitalbitbox"; + version = "3.0.0"; + + src = fetchFromGitHub { + owner = "digitalbitbox"; + repo = "dbb-app"; + rev = "v${version}"; + sha256 = "ig3+TdYv277D9GVnkRSX6nc6D6qruUOw/IQdQCK6FoA="; + }; + + nativeBuildInputs = with lib; [ + autoreconfHook + curl + git + makeWrapper + pkg-config + qttools + ]; + + buildInputs = [ + libevent + libtool + udev + libusb1 + qrencode + + qtbase + qtwebsockets + qtmultimedia + ]; + + LUPDATE="${qttools.dev}/bin/lupdate"; + LRELEASE="${qttools.dev}/bin/lrelease"; + MOC="${qtbase.dev}/bin/moc"; + QTDIR=qtbase.dev; + RCC="${qtbase.dev}/bin/rcc"; + UIC="${qtbase.dev}/bin/uic"; + + configureFlags = [ + "--enable-libusb" + ]; + + hardeningDisable = [ + "format" + ]; + + qtWrapperArgs = [ "--prefix LD_LIBRARY_PATH : $out/lib" ]; + + postInstall = '' + mkdir -p "$out/lib" + cp src/libbtc/.libs/*.so* $out/lib + cp src/libbtc/src/secp256k1/.libs/*.so* $out/lib + cp src/hidapi/libusb/.libs/*.so* $out/lib + cp src/univalue/.libs/*.so* $out/lib + + # [RPATH][patchelf] Avoid forbidden reference error + rm -rf $PWD + + # Provide udev rules as documented in https://digitalbitbox.com/start_linux + mkdir -p "$out/etc/udev/rules.d" + ${copyUdevRuleToOutput "51-hid-digitalbox.rules" udevRule51} + ${copyUdevRuleToOutput "52-hid-digitalbox.rules" udevRule52} + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "A QT based application for the Digital Bitbox hardware wallet"; + longDescription = '' + Digital Bitbox provides dbb-app, a GUI tool, and dbb-cli, a CLI tool, to manage Digital Bitbox devices. + + This package will only install the dbb-app and dbb-cli, however; in order for these applications to identify and access Digital Bitbox devices, one may want to enable the digitalbitbox hardware module by adding + + hardware.digitalbitbox.enable = true; + + to the configuration which is equivalent to adding this package to the udev.packages list. + + + The easiest way to use the digitalbitbox package in NixOS is by adding + + programs.digitalbitbox.enable = true; + + to the configuration which installs the package and enables the hardware module. + ''; + homepage = "https://digitalbitbox.com/"; + license = licenses.mit; + maintainers = with maintainers; [ + vidbina + ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ding/default.nix b/nixpkgs/pkgs/applications/misc/ding/default.nix new file mode 100644 index 000000000000..649fbe55fae2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ding/default.nix @@ -0,0 +1,56 @@ +{ aspell, aspellDicts_de, aspellDicts_en, buildEnv, fetchurl, fortune, gnugrep, makeWrapper, lib, stdenv, tk, tre }: +let + aspellEnv = buildEnv { + name = "env-ding-aspell"; + paths = [ + aspell + aspellDicts_de + aspellDicts_en + ]; + }; +in +stdenv.mkDerivation rec { + name = "ding-1.9"; + + src = fetchurl { + url = "http://ftp.tu-chemnitz.de/pub/Local/urz/ding/${name}.tar.gz"; + sha256 = "sha256-aabIH894WihsBTo1LzIBzIZxxyhRYVxLcHpDQwmwmOU="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ aspellEnv fortune gnugrep tk tre ]; + + patches = [ ./dict.patch ]; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/dict + mkdir -p $out/share/man/man1 + mkdir -p $out/share/applications + mkdir -p $out/share/pixmaps + + for f in ding ding.1; do + sed -i "s@/usr/share@$out/share@g" "$f" + done + + sed -i "s@/usr/bin/fortune@fortune@g" ding + + sed -i "s@/usr/bin/ding@$out/bin/ding@g" ding.desktop + + cp -v ding $out/bin/ + cp -v de-en.txt $out/share/dict/ + cp -v ding.1 $out/share/man/man1/ + cp -v ding.png $out/share/pixmaps/ + cp -v ding.desktop $out/share/applications/ + + wrapProgram $out/bin/ding --prefix PATH : ${lib.makeBinPath [ gnugrep aspellEnv tk fortune ]} --prefix ASPELL_CONF : "\"prefix ${aspellEnv};\"" + ''; + + meta = with lib; { + description = "Simple and fast dictionary lookup tool"; + homepage = "https://www-user.tu-chemnitz.de/~fri/ding/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; # homepage says: unix-like except darwin + maintainers = [ maintainers.exi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ding/dict.patch b/nixpkgs/pkgs/applications/misc/ding/dict.patch new file mode 100644 index 000000000000..70ecea10550e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ding/dict.patch @@ -0,0 +1,26 @@ +Ding persists its settings to $HOME/.dingrc on startup, this sadly includes the path to the dictionary. +On all other distributions, that would be /usr/share/dict/de-en.txt and would hardly ever change. +On nixos, this will indeed change on ever update and would break it for all users. +This just comments out the dictionary path in the .dingrc so the user can still set it if she wants to, but it will not affect normal operations. +--- a/ding ++++ b/ding +@@ -899,7 +899,9 @@ if { ! [info exists ding_version]} { + } + + # Change path of default ger-eng.txt when upgrading from version 1.1 +- if {$searchmeth($i,dictfile) == {/usr/dict/ger-eng.txt} && ++ if {! [info exists searchmeth($i,dictfile)]} { ++ set searchmeth($i,dictfile) $default_searchmeth(0,dictfile) ++ } elseif {$searchmeth($i,dictfile) == {/usr/dict/ger-eng.txt} && + $ding_version == {1.1}} { + set searchmeth($i,dictfile) $default_searchmeth(0,dictfile) + debug 2 "New path and name of ger-eng.txt configured: $default_searchmeth(0,dictfile)" +@@ -5065,7 +5067,7 @@ proc saveOptions {} { + foreach i $searchmpos { + puts $fd "set searchmeth($n,name) {$searchmeth($i,name)}" + puts $fd "set searchmeth($n,type) {$searchmeth($i,type)}" +- puts $fd "set searchmeth($n,dictfile) {$searchmeth($i,dictfile)}" ++ puts $fd "#set searchmeth($n,dictfile) {$searchmeth($i,dictfile)}" + puts $fd "set searchmeth($n,separator) {$searchmeth($i,separator)}" + puts $fd "set searchmeth($n,language1) {$searchmeth($i,language1)}" + puts $fd "set searchmeth($n,language2) {$searchmeth($i,language2)}" diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/default.nix b/nixpkgs/pkgs/applications/misc/djvulibre/default.nix new file mode 100644 index 000000000000..5119dd48e0da --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/djvulibre/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv +, fetchurl +, libjpeg +, libtiff +, librsvg +, libiconv +}: + +stdenv.mkDerivation rec { + pname = "djvulibre"; + version = "3.5.28"; + + src = fetchurl { + url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz"; + sha256 = "1p1fiygq9ny8aimwc4vxwjc6k9ykgdsq1sq06slfbzalfvm0kl7w"; + }; + + outputs = [ "bin" "dev" "out" ]; + + buildInputs = [ + libjpeg + libtiff + librsvg + libiconv + ]; + + meta = with lib; { + description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files"; + homepage = "http://djvu.sourceforge.net"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ Anton-Latukha ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix new file mode 100644 index 000000000000..d5208ea7b02d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix @@ -0,0 +1,34 @@ +{ lib, buildPythonApplication, fetchFromGitHub, substituteAll, requests, dmenu }: + +buildPythonApplication rec { + pname = "dmensamenu"; + version = "1.2.2"; + + src = fetchFromGitHub { + owner = "dotlambda"; + repo = "dmensamenu"; + rev = version; + sha256 = "1ck1i1k40bli6m3n49ff6987hglby9fn4vfr28jpkm3h70s2km3n"; + }; + + patches = [ + (substituteAll { + src = ./dmenu-path.patch; + inherit dmenu; + }) + ]; + + propagatedBuildInputs = [ + requests + ]; + + # No tests implemented + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/dotlambda/dmensamenu"; + description = "Print German canteen menus using dmenu and OpenMensa"; + license = licenses.mit; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dmensamenu/dmenu-path.patch b/nixpkgs/pkgs/applications/misc/dmensamenu/dmenu-path.patch new file mode 100644 index 000000000000..1508e5142d29 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dmensamenu/dmenu-path.patch @@ -0,0 +1,13 @@ +diff --git a/dmensamenu/dmensamenu.py b/dmensamenu/dmensamenu.py +index 7df49f2..052ef1b 100644 +--- a/dmensamenu/dmensamenu.py ++++ b/dmensamenu/dmensamenu.py +@@ -99,7 +99,7 @@ def main(): + parser.add_argument('--city', + help='When searching for a canteen, only show the ones from the city specified' + +' (case-insensitive).') +- parser.add_argument('--dmenu', metavar='CMD', default='dmenu -i -l "$lines" -p "$date"', ++ parser.add_argument('--dmenu', metavar='CMD', default='@dmenu@/bin/dmenu -i -l "$lines" -p "$date"', + help='Command to execute. ' + 'Can be used to pass custom parameters to dmenu. ' + 'The shell variable $lines will be set to the number of items on the menu ' diff --git a/nixpkgs/pkgs/applications/misc/dmenu/default.nix b/nixpkgs/pkgs/applications/misc/dmenu/default.nix new file mode 100644 index 000000000000..62f02ce67142 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dmenu/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }: + +stdenv.mkDerivation rec { + name = "dmenu-5.0"; + + src = fetchurl { + url = "https://dl.suckless.org/tools/${name}.tar.gz"; + sha256 = "1lvfxzg3chsgcqbc2vr0zic7vimijgmbvnspayx73kyvqi1f267y"; + }; + + buildInputs = [ libX11 libXinerama zlib libXft ]; + + inherit patches; + + postPatch = '' + sed -ri -e 's!\<(dmenu|dmenu_path|stest)\>!'"$out/bin"'/&!g' dmenu_run + sed -ri -e 's!\<stest\>!'"$out/bin"'/&!g' dmenu_path + ''; + + preConfigure = '' + sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk + ''; + + makeFlags = [ "CC:=$(CC)" ]; + + meta = with lib; { + description = "A generic, highly customizable, and efficient menu for the X Window System"; + homepage = "https://tools.suckless.org/dmenu"; + license = licenses.mit; + maintainers = with maintainers; [ pSub globin ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix b/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix new file mode 100644 index 000000000000..6b8f92ddb1c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, meson, ninja, cairo, pango, pkg-config, wayland-protocols +, glib, wayland, libxkbcommon, makeWrapper, wayland-scanner +, fetchpatch +}: + +stdenv.mkDerivation rec { + pname = "dmenu-wayland-unstable"; + version = "2020-07-06"; + + src = fetchFromGitHub { + owner = "nyyManni"; + repo = "dmenu-wayland"; + rev = "304c8e917651ee02b16ebf0b7097a5c53fa2236b"; + sha256 = "0rkpmpk7xkcfbnv9vpg8n65423z5xpgp0hm2vg0rxf9354bjin7k"; + }; + + outputs = [ "out" "man" ]; + + depsBuildBuild = [ pkg-config ]; + nativeBuildInputs = [ meson ninja pkg-config makeWrapper wayland-scanner ]; + buildInputs = [ cairo pango wayland-protocols glib wayland libxkbcommon ]; + + # Patch to support cross-compilation, see https://github.com/nyyManni/dmenu-wayland/pull/23/ + patches = [ + # can be removed when https://github.com/nyyManni/dmenu-wayland/pull/23 is included + (fetchpatch { + url = "https://github.com/nyyManni/dmenu-wayland/commit/3434410de5dcb007539495395f7dc5421923dd3a.patch"; + sha256 = "sha256-im16kU8RWrCY0btYOYjDp8XtfGEivemIPlhwPX0C77o="; + }) + ]; + + postInstall = '' + wrapProgram $out/bin/dmenu-wl_run \ + --prefix PATH : $out/bin + ''; + + meta = with lib; { + license = licenses.mit; + platforms = platforms.linux; + description = "dmenu for wayland-compositors"; + homepage = "https://github.com/nyyManni/dmenu-wayland"; + maintainers = with maintainers; [ ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dnd-tools/default.nix b/nixpkgs/pkgs/applications/misc/dnd-tools/default.nix new file mode 100644 index 000000000000..3b0d0ec90e25 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dnd-tools/default.nix @@ -0,0 +1,28 @@ +{ python3, fetchFromGitHub, fetchpatch, lib }: + +python3.pkgs.buildPythonApplication rec { + pname = "dnd-tools"; + version = "unstable-2021-02-18"; + + src = fetchFromGitHub { + owner = "savagezen"; + repo = pname; + rev = "baefb9e4b4b8279be89ec63d256dde9704dee078"; + sha256 = "1rils3gzbfmwvgy51ah77qihwwbvx50q82lkc1kwcb55b3yinnmj"; + }; + + # gives warning every time unless patched, see https://github.com/savagezen/dnd-tools/pull/20 + patches = [ + (fetchpatch { + url = "https://github.com/savagezen/dnd-tools/commit/0443f3a232056ad67cfb09eb3eadcb6344659198.patch"; + sha256 = "00k8rsz2aj4sfag6l313kxbphcb5bjxb6z3aw66h26cpgm4kysp0"; + }) + ]; + + meta = with lib; { + homepage = "https://github.com/savagezen/dnd-tools"; + description = "A set of interactive command line tools for Dungeons and Dragons 5th Edition"; + license = licenses.agpl3Only; + maintainers = [ maintainers.urlordjames ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dockbarx/default.nix b/nixpkgs/pkgs/applications/misc/dockbarx/default.nix new file mode 100644 index 000000000000..9471751844e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dockbarx/default.nix @@ -0,0 +1,84 @@ +{ lib +, fetchFromGitHub +, glib +, gobject-introspection +, gtk3 +, keybinder3 +, libwnck +, python3Packages +, wrapGAppsHook +}: + +python3Packages.buildPythonApplication rec { + pname = "dockbarx"; + version = "${ver}-${rev}"; + ver = "1.0-beta"; + rev = "d98020ec49f3e3a5692ab2adbb145bbe5a1e80fe"; + + src = fetchFromGitHub { + owner = "xuzhen"; + repo = "dockbarx"; + rev = rev; + sha256 = "0xwqxh5mr2bi0sk54b848705awp0lfpd91am551811j2bdkbs04m"; + }; + + nativeBuildInputs = [ + glib.dev + python3Packages.polib + wrapGAppsHook + ]; + + buildInputs = [ + gobject-introspection + gtk3 + libwnck + keybinder3 + ]; + + propagatedBuildInputs = with python3Packages; [ + dbus-python + pillow + pygobject3 + pyxdg + xlib + ]; + + # no tests + doCheck = false; + + dontWrapGApps = true; + + postPatch = '' + substituteInPlace setup.py \ + --replace /usr/ "" \ + --replace '"/", "usr", "share",' '"share",' + + for f in \ + dbx_preference \ + dockbarx/applets.py \ + dockbarx/dockbar.py \ + dockbarx/iconfactory.py \ + dockbarx/theme.py \ + mate_panel_applet/dockbarx_mate_applet + do + substituteInPlace $f --replace /usr/share/ $out/share/ + done + ''; + + postInstall = '' + glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + # Arguments to be passed to `makeWrapper`, only used by buildPython* + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + homepage = "https://github.com/xuzhen/dockbarx"; + description = "Lightweight taskbar/panel replacement which works as a stand-alone dock"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/doing/Gemfile b/nixpkgs/pkgs/applications/misc/doing/Gemfile new file mode 100644 index 000000000000..2706a85e9d89 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/doing/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'doing', '1.0.10pre' diff --git a/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock b/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock new file mode 100644 index 000000000000..1b969869f76c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock @@ -0,0 +1,25 @@ +GEM + remote: https://rubygems.org/ + specs: + chronic (0.10.2) + deep_merge (1.2.1) + doing (1.0.10pre) + chronic (~> 0.10, >= 0.10.2) + deep_merge + gli (~> 2.17.1) + haml (= 4.0.3) + json (~> 1.8.1) + gli (2.17.1) + haml (4.0.3) + tilt + json (1.8.6) + tilt (2.0.8) + +PLATFORMS + ruby + +DEPENDENCIES + doing (= 1.0.10pre) + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/misc/doing/default.nix b/nixpkgs/pkgs/applications/misc/doing/default.nix new file mode 100644 index 000000000000..e539cf3ae19e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/doing/default.nix @@ -0,0 +1,25 @@ +{ lib, bundlerEnv, ruby, bundlerUpdateScript +}: + +bundlerEnv { + pname = "doing"; + version = (import ./gemset.nix).doing.version; + + inherit ruby; + gemdir = ./.; + + passthru.updateScript = bundlerUpdateScript "doing"; + + meta = with lib; { + description = "A command line tool for keeping track of what you’re doing and tracking what you’ve done"; + longDescription = '' + doing is a basic CLI for adding and listing "what was I doing" reminders + in a TaskPaper-formatted text file. It allows for multiple + sections/categories and flexible output formatting. + ''; + homepage = "https://brettterpstra.com/projects/doing/"; + license = licenses.mit; + maintainers = with maintainers; [ ktf nicknovitski ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/doing/gemset.nix b/nixpkgs/pkgs/applications/misc/doing/gemset.nix new file mode 100644 index 000000000000..1e39123a83ba --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/doing/gemset.nix @@ -0,0 +1,60 @@ +{ + chronic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn"; + type = "gem"; + }; + version = "0.10.2"; + }; + deep_merge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q3picw7zx1xdkybmrnhmk2hycxzaa0jv4gqrby1s90dy5n7fmsb"; + type = "gem"; + }; + version = "1.2.1"; + }; + doing = { + dependencies = ["chronic" "deep_merge" "gli" "haml" "json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y42yc7h45sz9hqj3g1dd77ipx58l7v64i7mrsj3is2f5rszd1rv"; + type = "gem"; + }; + version = "1.0.10pre"; + }; + gli = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g7g3lxhh2b4h4im58zywj9vcfixfgndfsvp84cr3x67b5zm4kaq"; + type = "gem"; + }; + version = "2.17.1"; + }; + haml = { + dependencies = ["tilt"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l9zhfdk9z7xjfdp108r9fw4xa55hflin7hh3lpafbf9bdz96knr"; + type = "gem"; + }; + version = "4.0.3"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5"; + type = "gem"; + }; + version = "1.8.6"; + }; + tilt = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra"; + type = "gem"; + }; + version = "2.0.8"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/doomseeker/default.nix b/nixpkgs/pkgs/applications/misc/doomseeker/default.nix new file mode 100644 index 000000000000..48ea1a0296cf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/doomseeker/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, mkDerivation, cmake, fetchFromBitbucket, pkg-config, qtbase, qttools, qtmultimedia, zlib, bzip2, xxd }: + +mkDerivation { + pname = "doomseeker"; + version = "2018-03-05"; + + src = fetchFromBitbucket { + owner = "Doomseeker"; + repo = "doomseeker"; + rev = "c2c7f37b1afb"; + sha256 = "17fna3a604miqsvply3klnmypps4ifz8axgd3pj96z46ybxs8akw"; + }; + + patches = [ ./fix_paths.patch ./qt_build_fix.patch ]; + + nativeBuildInputs = [ cmake qttools pkg-config xxd ]; + buildInputs = [ qtbase qtmultimedia zlib bzip2 ]; + + hardeningDisable = lib.optional stdenv.isDarwin "format"; + + meta = with lib; { + homepage = "http://doomseeker.drdteam.org/"; + description = "Multiplayer server browser for many Doom source ports"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = [ maintainers.MP2E ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch b/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch new file mode 100644 index 000000000000..08654c2384cb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch @@ -0,0 +1,40 @@ +diff -ru3 source-old/src/core/datapaths.cpp source-new/src/core/datapaths.cpp +--- source-old/src/core/datapaths.cpp 1970-01-01 03:00:01.000000000 +0300 ++++ source-new/src/core/datapaths.cpp 2018-03-04 00:10:25.247262567 +0300 +@@ -335,7 +335,7 @@ + paths.append(workingDirectory()); + paths.append("./"); + #ifndef Q_OS_WIN32 +- paths.append(INSTALL_PREFIX "/" INSTALL_LIBDIR "/doomseeker/"); ++ paths.append(INSTALL_PREFIX "/lib/doomseeker/"); + #endif + paths = uniquePaths(paths); + return Strings::combineManyPaths(paths, "engines/"); +diff -ru3 source-old/src/core/pathfinder/pathfinder.cpp source-new/src/core/pathfinder/pathfinder.cpp +--- source-old/src/core/pathfinder/pathfinder.cpp 1970-01-01 03:00:01.000000000 +0300 ++++ source-new/src/core/pathfinder/pathfinder.cpp 2018-03-04 00:09:34.862556976 +0300 +@@ -128,9 +128,7 @@ + << DataPaths::programFilesDirectory(DataPaths::x64) + << DataPaths::programFilesDirectory(DataPaths::x86); + #else +- paths << "/usr/bin" << "/usr/local/bin" << "/usr/share/bin" +- << "/usr/games/" << "/usr/local/games/" +- << "/usr/share/games/" << gDefaultDataPaths->workingDirectory() << "."; ++ paths << gDefaultDataPaths->workingDirectory() << "."; + #endif + QStringList pathsCopy(paths); + foreach (const QString &path, pathsCopy) +diff -ru3 source-old/src/core/pathfinder/wadpathfinder.cpp source-new/src/core/pathfinder/wadpathfinder.cpp +--- source-old/src/core/pathfinder/wadpathfinder.cpp 1970-01-01 03:00:01.000000000 +0300 ++++ source-new/src/core/pathfinder/wadpathfinder.cpp 2018-03-04 00:09:56.822865339 +0300 +@@ -84,10 +84,6 @@ + QStringList defaultPaths() + { + QStringList paths; +- #ifdef Q_OS_UNIX +- paths << "/usr/local/share/games/doom/" +- << "/usr/share/games/doom/"; +- #endif + return paths; + } + }; diff --git a/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch b/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch new file mode 100644 index 000000000000..e21b53b3cc53 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch @@ -0,0 +1,47 @@ +diff -r c2c7f37b1afb src/core/gui/irc/ircdock.cpp +--- a/src/core/gui/irc/ircdock.cpp Tue Mar 06 00:14:23 2018 +0100 ++++ b/src/core/gui/irc/ircdock.cpp Sat Jul 28 16:53:04 2018 -0700 +@@ -32,6 +32,7 @@ + #include <QInputDialog> + #include <QMessageBox> + #include <QToolBar> ++#include <QTabBar> + + DClass<IRCDock> : public Ui::IRCDock + { +diff -r c2c7f37b1afb src/core/gui/logdock.cpp +--- a/src/core/gui/logdock.cpp Tue Mar 06 00:14:23 2018 +0100 ++++ b/src/core/gui/logdock.cpp Sat Jul 28 16:53:04 2018 -0700 +@@ -21,6 +21,8 @@ + // Copyright (C) 2009 "Zalewa" <zalewapl@gmail.com> + //------------------------------------------------------------------------------ + ++#include <QAction> ++ + #include "clipboard.h" + #include "logdock.h" + #include "log.h" +diff -r c2c7f37b1afb src/core/gui/serverdetailsdock.cpp +--- a/src/core/gui/serverdetailsdock.cpp Tue Mar 06 00:14:23 2018 +0100 ++++ b/src/core/gui/serverdetailsdock.cpp Sat Jul 28 16:53:04 2018 -0700 +@@ -21,6 +21,7 @@ + // Copyright (C) 2014 Braden "Blzut3" Obrzut <admin@maniacsvault.net> + //------------------------------------------------------------------------------ + ++#include <QAction> + #include <QBoxLayout> + + #include "serverdetailsdock.h" +diff -r c2c7f37b1afb src/core/gui/serverfilterdock.cpp +--- a/src/core/gui/serverfilterdock.cpp Tue Mar 06 00:14:23 2018 +0100 ++++ b/src/core/gui/serverfilterdock.cpp Sat Jul 28 16:53:04 2018 -0700 +@@ -20,6 +20,9 @@ + //------------------------------------------------------------------------------ + // Copyright (C) 2011 "Zalewa" <zalewapl@gmail.com> + //------------------------------------------------------------------------------ ++ ++#include <QAction> ++ + #include "serverfilterdock.h" + #include "ui_serverfilterdock.h" + diff --git a/nixpkgs/pkgs/applications/misc/dotfiles/default.nix b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix new file mode 100644 index 000000000000..b62d154feb15 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix @@ -0,0 +1,23 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "dotfiles"; + version = "0.6.4"; + + src = python3Packages.fetchPypi { + inherit version pname; + sha256 = "03qis6m9r2qh00sqbgwsm883s4bj1ibwpgk86yh4l235mdw8jywv"; + }; + + # No tests in archive + doCheck = false; + + checkInputs = with python3Packages; [ pytest ]; + propagatedBuildInputs = with python3Packages; [ click ]; + + meta = with lib; { + description = "Easily manage your dotfiles"; + homepage = "https://github.com/jbernard/dotfiles"; + license = licenses.isc; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dozenal/default.nix b/nixpkgs/pkgs/applications/misc/dozenal/default.nix new file mode 100644 index 000000000000..ae5dd170eb92 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dozenal/default.nix @@ -0,0 +1,61 @@ +{ lib, stdenv, fetchFromGitHub, ncurses, hdate, lua5_2 }: + +stdenv.mkDerivation rec { + version = "12010904"; + pname = "dozenal"; + src = fetchFromGitHub { + owner = "dgoodmaniii"; + repo = "dozenal"; + rev = "v${version}"; + sha256 = "1ic63gpdda762x6ks3al71dwgmsy2isicqyr2935bd245jx8s209"; + }; + makeFlags = [ + # author do not use configure and prefix directly using $prefix + "prefix=$(out)" + # graphical version of dozdc requires xforms, which is not i nixpkgs so I turned it down + "XFORMS_FLAGS=-UXFORMS" + "LUALIB=-llua" + "bindir=$(prefix)/bin/" + ]; + # some include hardcodes the lua libraries path. This is a patch for that + patches = [ ./lua-header.patch ]; + preBuild = "cd dozenal"; + buildInputs = [ ncurses hdate lua5_2 ]; + # I remove gdozdc, as I didn't figure all it's dependency yet. + postInstall = "rm $out/bin/gdozdc"; + + meta = { + description = "A complete suite of dozenal (base twelve) programs"; + longDescription = '' + Programs + + doz --- a converter; converts decimal numbers into dozenal. Accepts + input in standard or exponential notation (i.e., "1492.2" or "1.4922e3"). + dec --- a converter; converts dozenal numbers into decimal. Accepts input + in standard or exponential notation (i.e., "X44;4" or "X;444e2"). + dozword --- converts a dozenal number (integers only) into words, + according to the Pendlebury system. + dozdc --- a full-featured scientific calculator which works in the + dozenal base. RPN command line. + tgmconv --- a converter for all standard measurements; converts to and + from TGM, Imperial, customary, and SI metric. + dozpret --- a pretty-printer for dozenal numbers; inserts spacing (or + other characters) as desired, and can also transform transdecimal digits + from 'X' to 'E' into any character or sequence of characters desired. + dozdate --- a more-or-less drop-in replacement for GNU and BSD date, it + outputs the date and time in dozenal, as well as containing some TGM + extensions. + dozstring --- a simple byte converter; absorbs a string either from + standard input or a command line argument, leaving it identical but + for the numbers, which it converts into dozenal. Options for padding + and for not converting specific numbers. + doman --- a converter which takes a dozenal integer and + emits its equivalent in a non-place-value system, such as + Roman numerals. Arbitrary ranks and symbols may be used. + Defaults to dozenal Roman numerals. + ''; + homepage = "https://github.com/dgoodmaniii/dozenal/"; + maintainers = with lib.maintainers; [ CharlesHD ]; + license = lib.licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch b/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch new file mode 100644 index 000000000000..45b76e159a11 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch @@ -0,0 +1,16 @@ +diff -ruN dozenal-12010904/dozenal/dozcal/call_lua.c dozenal-patched/dozenal/dozcal/call_lua.c +--- dozenal-12010904/dozenal/dozcal/call_lua.c 2017-09-04 19:25:01.000000000 +0200 ++++ dozenal-patched/dozenal/dozcal/call_lua.c 2018-06-13 10:19:57.821950327 +0200 +@@ -38,9 +38,9 @@ + #include"utility.h" + #include"conv.h" + #include"proc_date.h" +-#include<lua5.2/lua.h> +-#include<lua5.2/lauxlib.h> +-#include<lua5.2/lualib.h> ++#include<lua.h> ++#include<lauxlib.h> ++#include<lualib.h> + + void bail(lua_State *L, int err_code, char *filename); + int file_prefix(char **s, char *t); diff --git a/nixpkgs/pkgs/applications/misc/dstask/default.nix b/nixpkgs/pkgs/applications/misc/dstask/default.nix new file mode 100644 index 000000000000..c17ed9b3af5e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dstask/default.nix @@ -0,0 +1,42 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "dstask"; + version = "0.23.1"; + + src = fetchFromGitHub { + owner = "naggie"; + repo = pname; + rev = "v${version}"; + sha256 = "0rfz8jim0xqcwdb5n28942v9r3hbvhjrwdgzvbwc9f9psqg2s8d2"; + }; + + # Set vendorSha256 to null because dstask vendors its dependencies (meaning + # that third party dependencies are stored in the repository). + # + # Ref <https://github.com/NixOS/nixpkgs/pull/87383#issuecomment-633204382> + # and <https://github.com/NixOS/nixpkgs/blob/d4226e3a4b5fcf988027147164e86665d382bbfa/pkgs/development/go-modules/generic/default.nix#L18> + vendorSha256 = null; + + doCheck = false; + + # The ldflags reduce the executable size by stripping some debug stuff. + # The other variables are set so that the output of dstask version shows the + # git ref and the release version from github. + # Ref <https://github.com/NixOS/nixpkgs/pull/87383#discussion_r432097657> + buildFlagsArray = [ '' + -ldflags=-w -s + -X "github.com/naggie/dstask.VERSION=${version}" + -X "github.com/naggie/dstask.GIT_COMMIT=v${version}" + '' ]; + + subPackages = [ "cmd/dstask.go" ]; + + meta = with lib; { + description = "Command line todo list with super-reliable git sync"; + homepage = src.meta.homepage; + license = licenses.mit; + maintainers = with maintainers; [ stianlagstad ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dunst/default.nix b/nixpkgs/pkgs/applications/misc/dunst/default.nix new file mode 100644 index 000000000000..5dffbf56a36a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dunst/default.nix @@ -0,0 +1,50 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper +, pkg-config, which, perl, libXrandr +, cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver +, gtk3, wayland, wayland-protocols +, libXinerama, libnotify, pango, xorgproto, librsvg +}: + +stdenv.mkDerivation rec { + pname = "dunst"; + version = "1.6.1"; + + src = fetchFromGitHub { + owner = "dunst-project"; + repo = "dunst"; + rev = "v${version}"; + sha256 = "0lga1kj2vjbj9g9rl93nivngjmk5fkxdxwal8w96x9whwk9jvdga"; + }; + + nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ]; + + buildInputs = [ + cairo dbus gdk-pixbuf glib libX11 libXScrnSaver + libXinerama libnotify pango xorgproto librsvg libXrandr + gtk3 wayland wayland-protocols + ]; + + outputs = [ "out" "man" ]; + + makeFlags = [ + "PREFIX=$(out)" + "VERSION=$(version)" + "SYSCONFDIR=$(out)/etc" + "SERVICEDIR_DBUS=$(out)/share/dbus-1/services" + "SERVICEDIR_SYSTEMD=$(out)/lib/systemd/user" + ]; + + postInstall = '' + wrapProgram $out/bin/dunst \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" + ''; + + meta = with lib; { + description = "Lightweight and customizable notification daemon"; + homepage = "https://dunst-project.org/"; + license = licenses.bsd3; + # NOTE: 'unix' or even 'all' COULD work too, I'm not sure + platforms = platforms.linux; + maintainers = with maintainers; [ domenkozar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dupeguru/default.nix b/nixpkgs/pkgs/applications/misc/dupeguru/default.nix new file mode 100644 index 000000000000..d2332b4d9c7d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dupeguru/default.nix @@ -0,0 +1,71 @@ +{lib, python3Packages, fetchpatch, gettext, qt5, fetchFromGitHub}: + +python3Packages.buildPythonApplication rec { + pname = "dupeguru"; + version = "4.0.4"; + + format = "other"; + + src = fetchFromGitHub { + owner = "arsenetar"; + repo = "dupeguru"; + rev = version; + sha256 = "0ma4f1c6vmpz8gi4sdy43x1ik7wh42wayvk1iq520d3i714kfcpy"; + fetchSubmodules = true; + }; + + patches = [ + # already merged to master, remove next version bump + (fetchpatch { + name = "remove-m-from-so-var.patch"; + url = "https://github.com/arsenetar/dupeguru/commit/bd0f53bcbe463c48fe141b73af13542da36d82ba.patch"; + sha256 = "07iisz8kcr7v8lb21inzj1avlpfhh9k8wcivbd33w49cr3mmnr26"; + }) + ]; + + nativeBuildInputs = [ + gettext + python3Packages.pyqt5 + qt5.wrapQtAppsHook + ]; + + pythonPath = with python3Packages; [ + pyqt5 + send2trash + sphinx + polib + hsaudiotag3k + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "NO_VENV=1" + ]; + + # TODO: package pytest-monkeyplus for running tests + # https://github.com/NixOS/nixpkgs/pull/75054/files#r357690123 + doCheck = false; + + # Avoid double wrapping Python programs. + dontWrapQtApps = true; + + # TODO: A bug in python wrapper + # see https://github.com/NixOS/nixpkgs/pull/75054#discussion_r357656916 + preFixup = '' + makeWrapperArgs="''${qtWrapperArgs[@]}" + ''; + + # Executable in $out/bin is a symlink to $out/share/dupeguru/run.py + # so wrapPythonPrograms hook does not handle it automatically. + postFixup = '' + wrapPythonProgramsIn "$out/share/dupeguru" "$out $pythonPath" + ''; + + meta = with lib; { + description = "GUI tool to find duplicate files in a system"; + homepage = "https://github.com/arsenetar/dupeguru"; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = [ maintainers.novoxudonoser ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/dwmblocks/default.nix b/nixpkgs/pkgs/applications/misc/dwmblocks/default.nix new file mode 100644 index 000000000000..c31a1a4b0630 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/dwmblocks/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, libX11, patches ? [ ], writeText, conf ? null }: + +stdenv.mkDerivation { + pname = "dwmblocks"; + version = "unstable-2020-12-27"; + + src = fetchFromGitHub { + owner = "torrinfail"; + repo = "dwmblocks"; + rev = "96cbb453e5373c05372fd4bf3faacfa53e409067"; + sha256 = "00lxfxsrvhm60zzqlcwdv7xkqzya69mgpi2mr3ivzbc8s9h8nwqx"; + }; + + buildInputs = [ libX11 ]; + + inherit patches; + + postPatch = + let + configFile = + if lib.isDerivation conf || builtins.isPath conf + then conf else writeText "blocks.def.h" conf; + in + lib.optionalString (conf != null) "cp ${configFile} blocks.def.h"; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Modular status bar for dwm written in c"; + homepage = "https://github.com/torrinfail/dwmblocks"; + license = licenses.isc; + maintainers = with maintainers; [ sophrosyne ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/eaglemode/default.nix b/nixpkgs/pkgs/applications/misc/eaglemode/default.nix new file mode 100644 index 000000000000..65a74c4aca48 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/eaglemode/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff, pkg-config, +librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xine-lib, ghostscript, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "eaglemode"; + version = "0.94.2"; + + src = fetchurl { + url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2"; + sha256 = "10zxih7gmyhq0az1mnsw2x563l4bbwcns794s4png8rf4d6hjszm"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ perl libX11 libXinerama libjpeg libpng libtiff + librsvg glib gtk2 libXxf86vm libXext poppler xine-lib ghostscript makeWrapper ]; + + # The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the + # trick on NIX_LDFLAGS and dontPatchELF to make it find them. + # I use 'yes y' to skip a build error linking with xine-lib, + # because xine stopped exporting "_x_vo_new_port" + # https://sourceforge.net/projects/eaglemode/forums/forum/808824/topic/5115261 + buildPhase = '' + export NIX_LDFLAGS="$NIX_LDFLAGS -lXxf86vm -lXext -lXinerama" + perl make.pl build + ''; + + dontPatchELF = true; + # eaglemode expects doc to be in the root directory + forceShare = [ "man" "info" ]; + + installPhase = '' + perl make.pl install dir=$out + wrapProgram $out/bin/eaglemode --set EM_DIR "$out" --prefix LD_LIBRARY_PATH : "$out/lib" --prefix PATH : "${ghostscript}/bin" + ''; + + meta = with lib; { + homepage = "http://eaglemode.sourceforge.net"; + description = "Zoomable User Interface"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch b/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch new file mode 100644 index 000000000000..4f56b82368fa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch @@ -0,0 +1,1091 @@ +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..55e4495 +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,1085 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "aho-corasick" ++version = "0.7.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "arrayvec" ++version = "0.4.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "atk" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "atk-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "autocfg" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "backtrace" ++version = "0.3.41" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "backtrace-sys" ++version = "0.1.35" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "bitflags" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "cairo-rs" ++version = "0.7.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cairo-sys-rs" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cc" ++version = "1.0.50" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "cfg-if" ++version = "0.1.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "chrono" ++version = "0.4.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "effitask" ++version = "0.1.0" ++dependencies = [ ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "filetime" ++version = "0.2.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fragile" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "fsevent" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fsevent-sys" ++version = "2.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fuchsia-zircon" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fuchsia-zircon-sys" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "gdk" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gdk-pixbuf" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gdk-pixbuf-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gdk-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "getopts" ++version = "0.2.21" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "getrandom" ++version = "0.1.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gio" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gio-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "glib" ++version = "0.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "glib-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gobject-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gtk" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gtk-sys" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "human-panic" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)", ++ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", ++ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "inotify" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "inotify-sys" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "iovec" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "kernel32-sys" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "lazy_static" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "lazycell" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "lexical-core" ++version = "0.6.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "libc" ++version = "0.2.68" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "log" ++version = "0.4.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "memchr" ++version = "2.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "mio" ++version = "0.6.21" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "mio-extras" ++version = "2.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "miow" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "net2" ++version = "0.2.33" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "nodrop" ++version = "0.1.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "nom" ++version = "5.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "notify" ++version = "4.0.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "num-integer" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "num-traits" ++version = "0.2.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "os_type" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pango" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pango-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pkg-config" ++version = "0.3.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "proc-macro2" ++version = "0.4.30" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "proc-macro2" ++version = "1.0.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pulldown-cmark" ++version = "0.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "quote" ++version = "0.6.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "quote" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.7.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "redox_syscall" ++version = "0.1.56" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "regex" ++version = "1.3.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", ++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex-syntax" ++version = "0.6.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "relm" ++version = "0.18.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "relm-attributes" ++version = "0.16.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "relm-derive" ++version = "0.18.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "relm-gen-widget" ++version = "0.16.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rustc-demangle" ++version = "0.1.16" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "rustc_version" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ryu" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "same-file" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver-parser" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "serde" ++version = "1.0.106" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "serde_derive" ++version = "1.0.106" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "slab" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "static_assertions" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "syn" ++version = "0.15.44" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "syn" ++version = "1.0.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "termcolor" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "thread_local" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "time" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "todo-txt" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "toml" ++version = "0.5.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicase" ++version = "2.6.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-width" ++version = "0.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "uuid" ++version = "0.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "version_check" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "walkdir" ++version = "2.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "wasi" ++version = "0.9.0+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi" ++version = "0.3.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-build" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi-util" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "ws2_32-sys" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "xdg" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[metadata] ++"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" ++"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" ++"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a" ++"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f" ++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" ++"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba" ++"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118" ++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" ++"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c" ++"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63" ++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" ++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" ++"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2" ++"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e" ++"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9" ++"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" ++"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" ++"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" ++"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" ++"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5" ++"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc" ++"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0" ++"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb" ++"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" ++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" ++"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3" ++"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911" ++"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b" ++"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2" ++"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9" ++"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60" ++"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1" ++"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36" ++"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8" ++"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0" ++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" ++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" ++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" ++"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" ++"checksum lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f" ++"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0" ++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" ++"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" ++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" ++"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" ++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" ++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" ++"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" ++"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" ++"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd" ++"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" ++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" ++"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb" ++"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786" ++"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d" ++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" ++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" ++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" ++"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3" ++"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e" ++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" ++"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" ++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" ++"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" ++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" ++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" ++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" ++"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3" ++"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" ++"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714" ++"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f" ++"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69" ++"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0" ++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" ++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" ++"checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" ++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" ++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" ++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" ++"checksum serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" ++"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" ++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" ++"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" ++"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" ++"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03" ++"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" ++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" ++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" ++"checksum todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417" ++"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" ++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" ++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" ++"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" ++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" ++"checksum uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" ++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" ++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" ++"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" ++"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" ++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" ++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" ++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++"checksum winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e" ++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" ++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" ++"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" diff --git a/nixpkgs/pkgs/applications/misc/effitask/default.nix b/nixpkgs/pkgs/applications/misc/effitask/default.nix new file mode 100644 index 000000000000..a01d55ae20e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/effitask/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv +, rustPlatform +, fetchFromGitHub +, pkg-config +, openssl +, gtk3 +, rust +}: + +rustPlatform.buildRustPackage rec { + pname = "effitask"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "sanpii"; + repo = pname; + rev = version; + sha256 = "09bffxdp43s8b1rpmsgqr2kyz3i4jbd2yrwbxw21fj3sf3mwb9ig"; + }; + + # workaround for missing Cargo.lock file https://github.com/sanpii/effitask/issues/48 + cargoPatches = [ ./cargo-lock.patch ]; + + cargoSha256 = "1a80kf95kr94l6jzxdj4i09x1342x358fqjy6119qjg3q3bj0y3p"; + + buildInputs = [ openssl gtk3 ]; + + nativeBuildInputs = [ pkg-config ]; + + # default installPhase don't install assets + installPhase = '' + runHook preInstall + make install PREFIX="$out" TARGET="target/${rust.toRustTarget stdenv.hostPlatform}/release/effitask" + runHook postInstall + ''; + + meta = with lib; { + description = "Graphical task manager, based on the todo.txt format"; + longDescription = '' + To use it as todo.sh add-on, create a symlink like this: + mkdir ~/.todo.actions.d/ + ln -s $(which effitask) ~/.todo.actions.d/et + + Or use it as standalone program by defining some environment variables + like described in the projects readme. + ''; + homepage = "https://github.com/sanpii/effitask"; + maintainers = with maintainers; [ davidak ]; + license = with licenses; [ mit ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/electron-cash/default.nix b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix new file mode 100644 index 000000000000..4f8c5f8bb8b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix @@ -0,0 +1,99 @@ +{ lib, stdenv, fetchFromGitHub, python3Packages, qtbase, fetchpatch, wrapQtAppsHook +, secp256k1 }: + +python3Packages.buildPythonApplication rec { + pname = "electron-cash"; + version = "4.2.4"; + + src = fetchFromGitHub { + owner = "Electron-Cash"; + repo = "Electron-Cash"; + rev = version; + sha256 = "sha256-hiOS0cTaPqllb31p+6nU4GYvw/E1Hdn8yd3sppzGkqg="; + }; + + propagatedBuildInputs = with python3Packages; [ + # requirements + pyaes + ecdsa + requests + qrcode + protobuf + jsonrpclib-pelix + pysocks + qdarkstyle + python-dateutil + stem + certifi + pathvalidate + dnspython + + # requirements-binaries + pyqt5 + psutil + pycryptodomex + cryptography + + # requirements-hw + cython + trezor + keepkey + btchip + hidapi + pyscard + pysatochip + ]; + + nativeBuildInputs = [ wrapQtAppsHook ]; + + postPatch = '' + substituteInPlace contrib/requirements/requirements.txt \ + --replace "qdarkstyle==2.6.8" "qdarkstyle<3" + + substituteInPlace setup.py \ + --replace "(share_dir" "(\"share\"" + ''; + + checkInputs = with python3Packages; [ pytest ]; + + checkPhase = '' + unset HOME + pytest electroncash/tests + ''; + + postInstall = lib.optionalString stdenv.isLinux '' + substituteInPlace $out/share/applications/electron-cash.desktop \ + --replace "Exec=electron-cash" "Exec=$out/bin/electron-cash" + ''; + + # If secp256k1 wasn't added to the library path, the following warning is given: + # + # Electron Cash was unable to find the secp256k1 library on this system. + # Elliptic curve cryptography operations will be performed in slow + # Python-only mode. + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + makeWrapperArgs+=( + "--prefix" "LD_LIBRARY_PATH" ":" "${secp256k1}/lib" + ) + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/electron-cash help >/dev/null + ''; + + meta = with lib; { + description = "A Bitcoin Cash SPV Wallet"; + longDescription = '' + An easy-to-use Bitcoin Cash client featuring wallets generated from + mnemonic seeds (in addition to other, more advanced, wallet options) + and the ability to perform transactions without downloading a copy + of the blockchain. + ''; + homepage = "https://www.electroncash.org/"; + platforms = platforms.unix; + maintainers = with maintainers; [ lassulus nyanloutre oxalica ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/electrum/dash.nix b/nixpkgs/pkgs/applications/misc/electrum/dash.nix new file mode 100644 index 000000000000..d0606001ad43 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/electrum/dash.nix @@ -0,0 +1,47 @@ +{ lib, fetchurl, python2Packages }: + +python2Packages.buildPythonApplication rec { + version = "2.9.3.1"; + pname = "electrum-dash"; + + src = fetchurl { + url = "https://github.com/akhavr/electrum-dash/releases/download/${version}/Electrum-DASH-${version}.tar.gz"; + #"https://github.com/dashpay/electrum-dash/releases/download/v${version}/Electrum-DASH-${version}.tar.gz"; + sha256 = "9b7ac205f63fd4bfb15d77a34a4451ef82caecf096f31048a7603bd276dfc33e"; + }; + + propagatedBuildInputs = with python2Packages; [ + dnspython + ecdsa + pbkdf2 + protobuf + pyasn1 + pyasn1-modules + pycrypto + pyqt4 + qrcode + requests + pyaes + tlslite-ng + x11_hash + mnemonic + jsonrpclib + + # plugins + trezor + ]; + + preInstall = '' + mkdir -p $out/share + sed -i 's@usr_share = .*@usr_share = os.getenv("out")+"/share"@' setup.py + pyrcc4 icons.qrc -o gui/qt/icons_rc.py + ''; + + meta = with lib; { + description = "Electrum DASH"; + homepage = "https://github.com/dashpay/electrum-dash"; + license = licenses.gpl3; + maintainers = with maintainers; [ np ]; + knownVulnerabilities = [ "CVE-2018-1000022" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/electrum/default.nix b/nixpkgs/pkgs/applications/misc/electrum/default.nix new file mode 100644 index 000000000000..28c965a72b5c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/electrum/default.nix @@ -0,0 +1,163 @@ +{ lib +, stdenv +, fetchurl +, fetchFromGitHub +, wrapQtAppsHook +, python3 +, zbar +, secp256k1 +, enableQt ? true +# for updater.nix +, writeScript +, common-updater-scripts +, bash +, coreutils +, curl +, gnugrep +, gnupg +, gnused +, nix +}: + +let + version = "4.1.5"; + + libsecp256k1_name = + if stdenv.isLinux then "libsecp256k1.so.0" + else if stdenv.isDarwin then "libsecp256k1.0.dylib" + else "libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}"; + + libzbar_name = + if stdenv.isLinux then "libzbar.so.0" + else "libzbar${stdenv.hostPlatform.extensions.sharedLibrary}"; + + # Not provided in official source releases, which are what upstream signs. + tests = fetchFromGitHub { + owner = "spesmilo"; + repo = "electrum"; + rev = version; + sha256 = "1ps8yaps5kfd7yv7bpdvssbwm6f5qivxcvhwn17cpddc2760a7nk"; + + extraPostFetch = '' + mv $out ./all + mv ./all/electrum/tests $out + ''; + }; +in + +python3.pkgs.buildPythonApplication { + pname = "electrum"; + inherit version; + + src = fetchurl { + url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; + sha256 = "188r4zji985z8pm9b942xhmvv174yndk6jxagxl7ljk03wl2wiwi"; + }; + + postUnpack = '' + # can't symlink, tests get confused + cp -ar ${tests} $sourceRoot/electrum/tests + ''; + + prePatch = '' + substituteInPlace contrib/requirements/requirements.txt \ + --replace "dnspython>=2.0,<2.1" "dnspython>=2.0" + ''; + + nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ]; + + propagatedBuildInputs = with python3.pkgs; [ + aiohttp + aiohttp-socks + aiorpcx + attrs + bitstring + cryptography + dnspython + jsonrpclib-pelix + matplotlib + pbkdf2 + protobuf + pysocks + qrcode + requests + tlslite-ng + # plugins + btchip + ckcc-protocol + keepkey + trezor + ] ++ lib.optionals enableQt [ pyqt5 qdarkstyle ]; + + preBuild = '' + sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py + substituteInPlace ./electrum/ecc_fast.py \ + --replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary} + '' + (if enableQt then '' + substituteInPlace ./electrum/qrscanner.py \ + --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary} + '' else '' + sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt + ''); + + postInstall = lib.optionalString stdenv.isLinux '' + # Despite setting usr_share above, these files are installed under + # $out/nix ... + mv $out/${python3.sitePackages}/nix/store"/"*/share $out + rm -rf $out/${python3.sitePackages}/nix + + substituteInPlace $out/share/applications/electrum.desktop \ + --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum %u"' \ + "Exec=$out/bin/electrum %u" \ + --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum --testnet %u"' \ + "Exec=$out/bin/electrum --testnet %u" + + ''; + + postFixup = lib.optionalString enableQt '' + wrapQtApp $out/bin/electrum + ''; + + checkInputs = with python3.pkgs; [ pytestCheckHook pyaes pycryptodomex ]; + + pytestFlagsArray = [ "electrum/tests" ]; + + disabledTests = [ + "test_loop" # test tries to bind 127.0.0.1 causing permission error + ]; + + postCheck = '' + $out/bin/electrum help >/dev/null + ''; + + passthru.updateScript = import ./update.nix { + inherit lib; + inherit + writeScript + common-updater-scripts + bash + coreutils + curl + gnupg + gnugrep + gnused + nix + ; + }; + + meta = with lib; { + description = "A lightweight Bitcoin wallet"; + longDescription = '' + An easy-to-use Bitcoin client featuring wallets generated from + mnemonic seeds (in addition to other, more advanced, wallet options) + and the ability to perform transactions without downloading a copy + of the blockchain. + ''; + homepage = "https://electrum.org/"; + downloadPage = "https://electrum.org/#download"; + changelog = "https://github.com/spesmilo/electrum/blob/master/RELEASE-NOTES"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ joachifm np prusnak ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/electrum/ltc.nix b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix new file mode 100644 index 000000000000..bd015afdc572 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix @@ -0,0 +1,63 @@ +{ lib +, fetchurl +, python3Packages +, wrapQtAppsHook +}: + +python3Packages.buildPythonApplication rec { + pname = "electrum-ltc"; + version = "3.3.8.1"; + + src = fetchurl { + url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz"; + sha256 = "0kxcx1xf6h9z8x0k483d6ykpnmfr30n6z3r6lgqxvbl42pq75li7"; + }; + + nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ]; + + propagatedBuildInputs = with python3Packages; [ + pyaes + ecdsa + pbkdf2 + requests + qrcode + py_scrypt + pyqt5 + protobuf + dnspython + jsonrpclib-pelix + pysocks + trezor + btchip + ]; + + preBuild = '' + sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py + pyrcc5 icons.qrc -o gui/qt/icons_rc.py + # Recording the creation timestamps introduces indeterminism to the build + sed -i '/Created: .*/d' gui/qt/icons_rc.py + ''; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + checkPhase = '' + $out/bin/electrum-ltc help >/dev/null + ''; + + meta = with lib; { + description = "Litecoin thin client"; + longDescription = '' + Electrum-LTC is a simple, but powerful Litecoin wallet. A twelve-word + security passphrase (or “seed”) leaves intruders stranded and your peace + of mind intact. Keep it on paper, or in your head... and never worry + about losing your litecoins to theft or hardware failure. No waiting, no + lengthy blockchain downloads and no syncing to the network. + ''; + homepage = "https://electrum-ltc.org/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/electrum/update.nix b/nixpkgs/pkgs/applications/misc/electrum/update.nix new file mode 100644 index 000000000000..247fabe3891f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/electrum/update.nix @@ -0,0 +1,59 @@ +{ lib +, writeScript +, common-updater-scripts +, bash +, coreutils +, curl +, gnugrep +, gnupg +, gnused +, nix +}: + +with lib; + +let + downloadPageUrl = "https://download.electrum.org"; + + signingKeys = ["6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6"]; +in + +writeScript "update-electrum" '' +#! ${bash}/bin/bash + +set -eu -o pipefail + +export PATH=${makeBinPath [ + common-updater-scripts + coreutils + curl + gnugrep + gnupg + gnused + nix +]} + +version=$(curl -L --list-only -- '${downloadPageUrl}' \ + | grep -Po '<a href="\K([[:digit:]]+\.?)+' \ + | sort -Vu \ + | tail -n1) + +srcName=Electrum-$version +srcFile=$srcName.tar.gz +srcUrl="${downloadPageUrl}/$version/$srcFile" +sigUrl=$srcUrl.asc +sigFile=$srcFile.asc + +[[ -e "$srcFile" ]] || curl -L -o "$srcFile" -- "$srcUrl" +[[ -e "$sigFile" ]] || curl -L -o "$sigFile" -- "$sigUrl" + +export GNUPGHOME=$PWD/gnupg +mkdir -m 700 -p "$GNUPGHOME" + +gpg --batch --recv-keys ${concatStringsSep " " (map (x: "'${x}'") signingKeys)} +gpg --batch --verify "$sigFile" "$srcFile" + +sha256=$(nix-prefetch-url --type sha256 "file://$PWD/$srcFile") + +update-source-version electrum "$version" "$sha256" +'' diff --git a/nixpkgs/pkgs/applications/misc/elf-dissector/default.nix b/nixpkgs/pkgs/applications/misc/elf-dissector/default.nix new file mode 100644 index 000000000000..6edbcc0cce2e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/elf-dissector/default.nix @@ -0,0 +1,24 @@ +{ mkDerivation, fetchgit, lib, cmake, extra-cmake-modules, kitemmodels +, libiberty, libelf, libdwarf, libopcodes }: + +mkDerivation rec { + pname = "elf-dissector"; + version = "unstable-2020-11-14"; + + src = fetchgit { + url = "https://invent.kde.org/sdk/elf-dissector.git"; + rev = "d1700e76e3f60aff0a2a9fb63bc001251d2be522"; + sha256 = "1h1xr3ag1sbf005drcx8g8dc5mk7fb2ybs73swrld7clcawhxnk8"; + }; + + nativeBuildInputs = [ cmake extra-cmake-modules ]; + + buildInputs = [ kitemmodels libiberty libelf libdwarf libopcodes ]; + + meta = with lib; { + homepage = "https://invent.kde.org/sdk/elf-dissector"; + description = "Tools for inspecting, analyzing and optimizing ELF files"; + license = licenses.gpl2; + maintainers = with maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/elfx86exts/cargo-lock.patch b/nixpkgs/pkgs/applications/misc/elfx86exts/cargo-lock.patch new file mode 100644 index 000000000000..4f56b82368fa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/elfx86exts/cargo-lock.patch @@ -0,0 +1,1091 @@ +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..55e4495 +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,1085 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "aho-corasick" ++version = "0.7.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "arrayvec" ++version = "0.4.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "atk" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "atk-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "autocfg" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "backtrace" ++version = "0.3.41" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "backtrace-sys" ++version = "0.1.35" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "bitflags" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "cairo-rs" ++version = "0.7.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cairo-sys-rs" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cc" ++version = "1.0.50" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "cfg-if" ++version = "0.1.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "chrono" ++version = "0.4.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "effitask" ++version = "0.1.0" ++dependencies = [ ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "filetime" ++version = "0.2.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fragile" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "fsevent" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fsevent-sys" ++version = "2.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fuchsia-zircon" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fuchsia-zircon-sys" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "gdk" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gdk-pixbuf" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gdk-pixbuf-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gdk-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "getopts" ++version = "0.2.21" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "getrandom" ++version = "0.1.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gio" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gio-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "glib" ++version = "0.8.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "glib-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gobject-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gtk" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "gtk-sys" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "human-panic" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)", ++ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", ++ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "inotify" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "inotify-sys" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "iovec" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "kernel32-sys" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "lazy_static" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "lazycell" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "lexical-core" ++version = "0.6.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "libc" ++version = "0.2.68" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "log" ++version = "0.4.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "memchr" ++version = "2.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "mio" ++version = "0.6.21" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "mio-extras" ++version = "2.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", ++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "miow" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "net2" ++version = "0.2.33" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "nodrop" ++version = "0.1.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "nom" ++version = "5.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "notify" ++version = "4.0.15" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)", ++ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "num-integer" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "num-traits" ++version = "0.2.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "os_type" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pango" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pango-sys" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pkg-config" ++version = "0.3.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "proc-macro2" ++version = "0.4.30" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "proc-macro2" ++version = "1.0.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "pulldown-cmark" ++version = "0.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "quote" ++version = "0.6.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "quote" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.7.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "redox_syscall" ++version = "0.1.56" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "regex" ++version = "1.3.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", ++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex-syntax" ++version = "0.6.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "relm" ++version = "0.18.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "relm-attributes" ++version = "0.16.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "relm-derive" ++version = "0.18.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "relm-gen-widget" ++version = "0.16.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rustc-demangle" ++version = "0.1.16" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "rustc_version" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ryu" ++version = "1.0.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "same-file" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver-parser" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "serde" ++version = "1.0.106" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "serde_derive" ++version = "1.0.106" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "slab" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "static_assertions" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "syn" ++version = "0.15.44" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "syn" ++version = "1.0.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "termcolor" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "thread_local" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "time" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "todo-txt" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "toml" ++version = "0.5.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicase" ++version = "2.6.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-width" ++version = "0.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "uuid" ++version = "0.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "version_check" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "walkdir" ++version = "2.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "wasi" ++version = "0.9.0+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi" ++version = "0.3.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-build" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi-util" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "ws2_32-sys" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "xdg" ++version = "2.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[metadata] ++"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" ++"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" ++"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a" ++"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f" ++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" ++"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba" ++"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118" ++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" ++"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c" ++"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63" ++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" ++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" ++"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2" ++"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e" ++"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9" ++"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" ++"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" ++"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" ++"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" ++"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5" ++"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc" ++"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0" ++"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb" ++"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" ++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" ++"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3" ++"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911" ++"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b" ++"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2" ++"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9" ++"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60" ++"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1" ++"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36" ++"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8" ++"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0" ++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" ++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" ++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" ++"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" ++"checksum lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f" ++"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0" ++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" ++"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" ++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" ++"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" ++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" ++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" ++"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" ++"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" ++"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd" ++"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" ++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" ++"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb" ++"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786" ++"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d" ++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" ++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" ++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" ++"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3" ++"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e" ++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" ++"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" ++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" ++"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" ++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" ++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" ++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" ++"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3" ++"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" ++"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714" ++"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f" ++"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69" ++"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0" ++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" ++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" ++"checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" ++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" ++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" ++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" ++"checksum serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" ++"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" ++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" ++"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" ++"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" ++"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03" ++"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" ++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" ++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" ++"checksum todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417" ++"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" ++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" ++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" ++"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" ++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" ++"checksum uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" ++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" ++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" ++"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" ++"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" ++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" ++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" ++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++"checksum winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e" ++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" ++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" ++"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" diff --git a/nixpkgs/pkgs/applications/misc/elfx86exts/default.nix b/nixpkgs/pkgs/applications/misc/elfx86exts/default.nix new file mode 100644 index 000000000000..91598db76d01 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/elfx86exts/default.nix @@ -0,0 +1,30 @@ +{ lib +, rustPlatform +, fetchFromGitHub +}: + +rustPlatform.buildRustPackage rec { + pname = "elfx86exts"; + version = "0.4.3"; + + src = fetchFromGitHub { + owner = "pkgw"; + repo = pname; + rev = "${pname}@${version}"; + sha256 = "1j9ca2lyxjsrf0rsfv83xi53vj6jz5nb76xibh367brcsc26mvd6"; + }; + + cargoSha256 = "0n3b9vdk5n32jmd7ks50d55z4dfahjincd2s1d8m9z17ip2qw2c4"; + + meta = with lib; { + description = "Decode x86 binaries and print out which instruction set extensions they use."; + longDescription = '' + Disassemble a binary containing x86 instructions and print out which extensions it uses. + Despite the utterly misleading name, this tool supports ELF and MachO binaries, and + perhaps PE-format ones as well. (It used to be more limited.) + ''; + homepage = "https://github.com/pkgw/elfx86exts"; + maintainers = with maintainers; [ rmcgibbo ]; + license = with licenses; [ mit ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/elogind/default.nix b/nixpkgs/pkgs/applications/misc/elogind/default.nix new file mode 100644 index 000000000000..a3919648f749 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/elogind/default.nix @@ -0,0 +1,82 @@ +{ stdenv +, lib +, fetchFromGitHub +, meson +, ninja +, m4 +, gperf +, getent +, libcap +, gettext +, pkg-config +, udev +, eudev +, libxslt +, python3 +, docbook5 +, docbook_xsl +, docbook_xsl_ns +, docbook_xml_dtd_42 +, docbook_xml_dtd_45 + +# Defaulting to false because usually the rationale for using elogind is to +# use it in situation where a systemd dependency does not work (especially +# when building with musl, which elogind explicitly supports). +, enableSystemd ? false +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "elogind"; + version = "243.7"; + + src = fetchFromGitHub { + owner = "elogind"; + repo = pname; + rev = "v${version}"; + sha256 = "0cihdf7blhncm2359qxli24j9l3dkn15gjys5vpjwny80zlym5ma"; + }; + + nativeBuildInputs = [ + meson + ninja + m4 + pkg-config + gperf + getent + libcap + gettext + libxslt.bin # xsltproc + docbook5 docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 docbook_xml_dtd_45 # needed for docbook without Internet + (python3.withPackages (p: with p; [ lxml ])) # fixes: man/meson.build:111:0: ERROR: Could not execute command "/build/source/tools/xml_helper.py". + ]; + + buildInputs = + if enableSystemd then [ udev ] else [ eudev ]; + + # Inspired by the systemd `preConfigure`. + # Conceptually we should patch all files required during the build, but not scripts + # supposed to run at run-time of the software (important for cross-compilation). + # This package seems to have mostly scripts that run at build time. + preConfigure = '' + for dir in tools src/test; do + patchShebangs $dir + done + + patchShebangs src/basic/generate-*.{sh,py} + ''; + + mesonFlags = [ + "-Drootprefix=${placeholder "out"}" + "-Dsysconfdir=${placeholder "out"}/etc" + ]; + + meta = { + homepage = "https://github.com/elogind/elogind"; + description = ''The systemd project's "logind", extracted to a standalone package''; + platforms = platforms.linux; # probably more + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ nh2 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/emem/default.nix b/nixpkgs/pkgs/applications/misc/emem/default.nix new file mode 100644 index 000000000000..ab718cdffcf2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/emem/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl, jdk }: + +stdenv.mkDerivation rec { + pname = "emem"; + version = "0.2.50"; + + inherit jdk; + + src = fetchurl { + url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar"; + sha256 = "18x3s3jrph8k3pc75jgwkfqazygpsx93zjxx68zms58my17cybh1"; + }; + + phases = [ "buildPhase" "installPhase" ]; + + buildPhase = '' + mkdir -p $out/bin $out/share/java + ''; + + installPhase = '' + cp $src $out/share/java/${pname}.jar + + cat > $out/bin/${pname} << EOF +#! $SHELL +$jdk/bin/java -jar $out/share/java/${pname}.jar "\$@" +EOF + + chmod +x $out/bin/${pname} + ''; + + meta = with lib; { + homepage = "https://github.com/ebzzry/emem"; + description = "A trivial Markdown to HTML converter"; + license = licenses.epl10; + maintainers = [ maintainers.ebzzry ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/epdfview/default.nix b/nixpkgs/pkgs/applications/misc/epdfview/default.nix new file mode 100644 index 000000000000..9eea30e74f86 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/epdfview/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, fetchpatch, pkg-config, gtk2, poppler }: + +stdenv.mkDerivation rec { + pname = "epdfview"; + version = "0.1.8"; + + src = fetchurl { + url = "mirror://debian/pool/main/e/epdfview/epdfview_${version}.orig.tar.gz"; + sha256 = "0ibyb60a0b4n34bsjgvhdw8yf24463ky0hpmf6a2jjqsbm5g4v64"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk2 poppler ]; + + hardeningDisable = [ "format" ]; + + patches = [ (fetchpatch { + name = "epdfview-0.1.8-glib2-headers.patch"; + url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk/epdfview-0.1.8-glib2-headers.patch?h=packages/epdfview&id=40ba115c860bdec31d03a30fa594a7ec2864d634"; + sha256 = "17df6s1zij5ficj67xszq6kd88cy620az3ic55065ccnmsd73f8h"; + }) + (fetchpatch { + name = "epdfview-0.1.8-modern-cups.patch"; + url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk/epdfview-0.1.8-modern-cups.patch?h=packages/epdfview&id=40ba115c860bdec31d03a30fa594a7ec2864d634"; + sha256 = "07yvgvai2bvbr5fa1mv6lg7nqr0qyryjn1xyjlh8nidg9k9vv001"; + }) + ]; + + meta = with lib; { + homepage = "https://packages.debian.org/wheezy/epdfview"; + description = "A lightweight PDF document viewer using Poppler and GTK"; + longDescription = '' + ePDFView is a free lightweight PDF document viewer using Poppler and + GTK libraries. The aim of ePDFView is to make a simple PDF document + viewer, in the lines of Evince but without using the Gnome libraries. + ''; + license = licenses.gpl2; + maintainers = [ maintainers.astsmtl ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/epr/default.nix b/nixpkgs/pkgs/applications/misc/epr/default.nix new file mode 100644 index 000000000000..478422a1c5c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/epr/default.nix @@ -0,0 +1,21 @@ +{ lib, python3Packages, fetchFromGitHub }: + +python3Packages.buildPythonApplication rec { + pname = "epr"; + version = "2.3.0b"; + + src = fetchFromGitHub { + owner = "wustho"; + repo = pname; + rev = "v${version}"; + sha256 = "1a6md3015284hzmx0sby5kl59p7lwv73sq7sid35vrr15zrl0aw7"; + }; + + meta = with lib; { + description = "CLI Epub Reader"; + homepage = "https://github.com/wustho/epr"; + license = licenses.mit; + maintainers = [ maintainers.Br1ght0ne ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/et/default.nix b/nixpkgs/pkgs/applications/misc/et/default.nix new file mode 100644 index 000000000000..de47efc07ef5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/et/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, libnotify, gdk-pixbuf }: + +stdenv.mkDerivation rec { + pname = "et"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "oxzi"; + repo = "et"; + rev = version; + sha256 = "0i0lgmnly8n7y4y6pb10pxgxyz8s5zk26k8z1g1578v1wan01lnq"; + }; + + buildInputs = [ libnotify gdk-pixbuf ]; + nativeBuildInputs = [ pkg-config ]; + + installPhase = '' + mkdir -p $out/bin + cp et $out/bin + cp et-status.sh $out/bin/et-status + ''; + + meta = with lib; { + description = "Minimal libnotify-based (egg) timer"; + homepage = "https://github.com/oxzi/et"; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ oxzi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix b/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix new file mode 100644 index 000000000000..ba3568f862c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, python3Packages, radicale3 }: + +python3Packages.buildPythonApplication rec { + pname = "etesync-dav"; + version = "0.30.7"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "16b3105834dd6d9e374e976cad0978e1acfed0f0328c5054bc214550aea3e2c5"; + }; + + propagatedBuildInputs = with python3Packages; [ + etebase + etesync + flask + flask_wtf + radicale3 + ]; + + doCheck = false; + + meta = with lib; { + homepage = "https://www.etesync.com/"; + description = "Secure, end-to-end encrypted, and privacy respecting sync for contacts, calendars and tasks"; + license = licenses.gpl3; + maintainers = with maintainers; [ valodim ]; + broken = stdenv.isDarwin; # pyobjc-framework-Cocoa is missing + }; +} diff --git a/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix b/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix new file mode 100644 index 000000000000..2e70beb6173c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchzip, fltk, zlib, xdg-utils, xorg, libjpeg, libGL }: + +stdenv.mkDerivation rec { + pname = "eureka-editor"; + version = "1.21"; + shortver = "121"; + + src = fetchzip { + url = "mirror://sourceforge/eureka-editor/Eureka/${version}/eureka-${shortver}-source.tar.gz"; + sha256 = "0fpj13aq4wh3f7473cdc5jkf1c71jiiqmjc0ihqa0nm3hic1d4yv"; + }; + + buildInputs = [ fltk zlib xdg-utils libjpeg xorg.libXinerama libGL ]; + + enableParallelBuilding = true; + + preBuild = '' + substituteInPlace src/main.cc \ + --replace /usr/local $out + substituteInPlace Makefile \ + --replace /usr/local $out \ + --replace "-o root " "" + ''; + + preInstall = '' + mkdir -p $out/bin $out/share/applications $out/share/icons $out/man/man6 + cp misc/eureka.desktop $out/share/applications + cp misc/eureka.ico $out/share/icons + cp misc/eureka.6 $out/man/man6 + ''; + + meta = with lib; { + homepage = "http://eureka-editor.sourceforge.net"; + description = "A map editor for the classic DOOM games, and a few related games such as Heretic and Hexen"; + license = licenses.gpl2; + platforms = platforms.all; + broken = stdenv.isDarwin; + maintainers = with maintainers; [ neonfuz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix b/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix new file mode 100644 index 000000000000..86f2d0070923 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix @@ -0,0 +1,25 @@ +{ mkDerivation, lib, qtbase, cmake, fetchFromGitHub }: + +mkDerivation rec { + pname = "evtest-qt"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "Grumbel"; + repo = pname; + rev = "v${version}"; + sha256 = "1wfzkgq81764qzxgk0y5vvpxcrb3icvrr4dd4mj8njrqgbwmn0mw"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtbase ]; + + meta = with lib; { + description = "Simple input device tester for linux with Qt GUI"; + homepage = "https://github.com/Grumbel/evtest-qt"; + maintainers = with maintainers; [ alexarice ]; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/evtest/default.nix b/nixpkgs/pkgs/applications/misc/evtest/default.nix new file mode 100644 index 000000000000..84fae703a0c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/evtest/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchgit, autoreconfHook, pkg-config, libxml2 }: + +stdenv.mkDerivation rec { + pname = "evtest"; + version = "1.34"; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ libxml2 ]; + + src = fetchgit { + url = "git://anongit.freedesktop.org/${pname}"; + rev = "refs/tags/${pname}-${version}"; + sha256 = "168gdhzj11f4nk94a6z696sm8v1njzwww69bn6wr97l17897913g"; + }; + + meta = with lib; { + description = "Simple tool for input event debugging"; + license = lib.licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/exercism/default.nix b/nixpkgs/pkgs/applications/misc/exercism/default.nix new file mode 100644 index 000000000000..79420eacec82 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/exercism/default.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "exercism"; + version = "3.0.13"; + + src = fetchFromGitHub { + owner = "exercism"; + repo = "cli"; + rev = "v${version}"; + sha256 = "17gvz9a0sn4p36hf4l77bxhhfipf4x998iay31layqwbnzmb4xy7"; + }; + + vendorSha256 = "0b2m9xkac60k5rbxmb03cxf530m23av14pnsjk8067l998sm4vqi"; + + doCheck = false; + + subPackages = [ "./exercism" ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A Go based command line tool for exercism.io"; + license = licenses.mit; + maintainers = [ maintainers.rbasso maintainers.nobbz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/expenses/default.nix b/nixpkgs/pkgs/applications/misc/expenses/default.nix new file mode 100644 index 000000000000..cd40b381cb74 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/expenses/default.nix @@ -0,0 +1,35 @@ +{ lib + +, buildGoModule +, fetchFromGitHub +, sqlite +}: + +buildGoModule rec { + pname = "expenses"; + version = "0.2.2"; + + src = fetchFromGitHub { + owner = "manojkarthick"; + repo = "expenses"; + rev = "v${version}"; + sha256 = "sha256-CaIbLtP7ziv9UBQE+QsNnqX65OV+6GIvkLwKm1G++iY="; + }; + + vendorSha256 = "sha256-NWTFxF4QCH1q1xx+hmVmpvDeOlqH5Ai2+0ParE5px9M="; + + # package does not contain any tests as of v0.2.2 + doCheck = false; + + buildInputs = [ sqlite ]; + + buildFlagsArray = [ + "-ldflags=-s -w -X github.com/manojkarthick/expenses/cmd.Version=${version}" + ]; + + meta = with lib; { + description = "An interactive command line expense logger"; + license = licenses.mit; + maintainers = [ maintainers.manojkarthick ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/extract_url/default.nix b/nixpkgs/pkgs/applications/misc/extract_url/default.nix new file mode 100644 index 000000000000..35ea33bde3a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/extract_url/default.nix @@ -0,0 +1,41 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper, perlPackages +, cursesSupport ? true +, uriFindSupport ? true +}: + +let + perlDeps = + [ perlPackages.MIMETools perlPackages.HTMLParser ] + ++ lib.optional cursesSupport perlPackages.CursesUI + ++ lib.optional uriFindSupport perlPackages.URIFind; + +in stdenv.mkDerivation rec { + pname = "extract_url"; + version = "1.6.2"; + + src = fetchFromGitHub { + owner = "m3m0ryh0l3"; + repo = "extracturl"; + rev = "v${version}"; + sha256 = "05589lp15jmcpbj4y9a3hmf6n2gsqrm4ybcyh3hd4j6pc7hmnhny"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ perlPackages.perl ] ++ perlDeps; + + makeFlags = [ "prefix=$(out)" ]; + installFlags = [ "INSTALL=install" ]; + + postFixup = '' + wrapProgram "$out/bin/extract_url" \ + --set PERL5LIB "${perlPackages.makeFullPerlPath perlDeps}" + ''; + + meta = with lib; { + homepage = "https://www.memoryhole.net/~kyle/extract_url/"; + description = "Extracts URLs from MIME messages or plain text"; + license = licenses.bsd2; + maintainers = [ maintainers.qyliss ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/far2l/default.nix b/nixpkgs/pkgs/applications/misc/far2l/default.nix new file mode 100644 index 000000000000..87eaed975352 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/far2l/default.nix @@ -0,0 +1,79 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, cmake, pkg-config, wxGTK30, glib, pcre, m4, bash +, xdg-utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick +, libuchardet, spdlog, xercesc, fmt, openssl, libssh, samba, neon, libnfs, libarchive }: + +stdenv.mkDerivation rec { + pname = "far2l"; + version = "2020-12-30.git${builtins.substring 0 7 src.rev}"; + + src = fetchFromGitHub { + owner = "elfmz"; + repo = "far2l"; + rev = "52c1372441443aafd1a7dff6f17969a6ec19885d"; + sha256 = "0s7427fgxzj5zkyy6mhb4y5hqa6adsr30m0bigycp12b0495ryx0"; + }; + + nativeBuildInputs = [ cmake pkg-config m4 makeWrapper imagemagick ]; + + buildInputs = [ wxGTK30 glib pcre libuchardet spdlog xercesc fmt ] # base requirements of the build + ++ [ openssl libssh samba neon libnfs libarchive ]; # optional feature packages, like protocol support for Network panel, or archive formats + #++ lib.optional stdenv.isDarwin Cocoa # Mac support -- disabled, see "meta.broken" below + + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace far2l/bootstrap/trash.sh \ + --replace 'gvfs-trash' '${gvfs}/bin/gvfs-trash' + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace far2l/CMakeLists.txt \ + --replace "-framework System" -lSystem + '' + '' + echo 'echo ${version}' > far2l/bootstrap/scripts/vbuild.sh + substituteInPlace far2l/bootstrap/open.sh \ + --replace 'xdg-open' '${xdg-utils}/bin/xdg-open' + substituteInPlace far2l/vtcompletor.cpp \ + --replace '"/bin/bash"' '"${bash}/bin/bash"' + substituteInPlace multiarc/src/formats/zip/zip.cpp \ + --replace '"unzip ' '"${unzip}/bin/unzip ' \ + --replace '"zip ' '"${zip}/bin/zip ' + substituteInPlace multiarc/src/formats/7z/7z.cpp \ + --replace '"^7z ' '"^${p7zip}/lib/p7zip/7z ' \ + --replace '"7z ' '"${p7zip}/lib/p7zip/7z ' + substituteInPlace multiarc/src/formats/targz/targz.cpp \ + --replace '"xz ' '"${xz}/bin/xz ' \ + --replace '"gzip ' '"${gzip}/bin/gzip ' \ + --replace '"bzip2 ' '"${bzip2}/bin/bzip2 ' \ + --replace '"tar ' '"${gnutar}/bin/tar ' + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/applications $out/share/icons/hicolor/scalable/apps + cp -dpR install $out/share/far2l + mv $out/share/far2l/far2l $out/bin/ + ln -s -r --force $out/bin/far2l $out/share/far2l/far2l_askpass + ln -s -r --force $out/bin/far2l $out/share/far2l/far2l_sudoapp + + cp ../far2l/DE/far2l.desktop $out/share/applications/far2l.desktop + substituteInPlace $out/share/applications/far2l.desktop --replace \''${CMAKE_INSTALL_PREFIX} "$out" + + cp ../far2l/DE/icons/hicolor/1024x1024/apps/far2l.svg $out/share/icons/hicolor/scalable/apps/ + convert -size 128x128 ../far2l/DE/icons/far2l.svg $out/share/icons/far2l.png + for size in 16x16 24x24 32x32 48x48 64x64 72x72 96x96 128x128 192x192 256x256 512x512 1024x1024; do + mkdir -p $out/share/icons/hicolor/$size/apps + convert -size $size ../far2l/DE/icons/hicolor/$size/apps/far2l.svg $out/share/icons/hicolor/$size/apps/far2l.png + done + '' + lib.optionalString stdenv.isDarwin '' + wrapProgram $out/bin/far2l --argv0 $out/bin/far2l + ''; + + stripDebugList = [ "bin" "share" ]; + + meta = with lib; { + description = "Linux port of FAR Manager v2, a program for managing files and archives in Windows operating systems"; + homepage = "https://github.com/elfmz/far2l"; + license = licenses.gpl2Plus; # NOTE: might change in far2l repo soon, check next time + maintainers = with maintainers; [ volth hypersw ]; + platforms = platforms.all; + # fails to compile with: + # error: no member named 'st_ctim' in 'stat' + broken = stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch b/nixpkgs/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch new file mode 100644 index 000000000000..b52aeafb5f36 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fbmenugen/0001-Fix-paths.patch @@ -0,0 +1,69 @@ +From 76c25147328d71960c70bbdd5a9396aac4a362a2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com> +Date: Wed, 20 May 2020 14:19:07 -0300 +Subject: [PATCH] Fix paths + +--- + fbmenugen | 14 ++++++-------- + 1 file changed, 6 insertions(+), 8 deletions(-) + +diff --git a/fbmenugen b/fbmenugen +index 46a18dc..0c8eb08 100755 +--- a/fbmenugen ++++ b/fbmenugen +@@ -214,9 +214,7 @@ my %CONFIG = ( + + #<<< + desktop_files_paths => [ +- '/usr/share/applications', +- '/usr/local/share/applications', +- '/usr/share/applications/kde4', ++ '/run/current-system/sw/share/applications', + "$home_dir/.local/share/applications", + ], + #>>> +@@ -232,7 +230,7 @@ my %CONFIG = ( + force_icon_size => 0, + generic_fallback => 0, + locale_support => 1, +- use_gtk3 => 0, ++ use_gtk3 => 1, + + VERSION => $version, + ); +@@ -252,7 +250,7 @@ if (not -e $config_file) { + } + + if (not -e $schema_file) { +- if (-e (my $etc_schema_file = "/etc/xdg/$pkgname/schema.pl")) { ++ if (-e (my $etc_schema_file = "@fbmenugen@/etc/xdg/$pkgname/schema.pl")) { + require File::Copy; + File::Copy::copy($etc_schema_file, $schema_file) + or warn "$0: can't copy file `$etc_schema_file' to `$schema_file': $!\n"; +@@ -570,7 +568,7 @@ EXIT + $generated_menu .= begin_category(@{$schema->{fluxbox}}) . <<"FOOTER"; + [config] (Configure) + [submenu] (System Styles) {Choose a style...} +- [stylesdir] (/usr/share/fluxbox/styles) ++ [stylesdir] (@fluxbox@/share/fluxbox/styles) + [end] + [submenu] (User Styles) {Choose a style...} + [stylesdir] (~/.fluxbox/styles) +@@ -580,12 +578,12 @@ EXIT + [exec] (Screenshot - JPG) {import screenshot.jpg && display -resize 50% screenshot.jpg} + [exec] (Screenshot - PNG) {import screenshot.png && display -resize 50% screenshot.png} + [exec] (Run) {fbrun} +- [exec] (Regen Menu) {fluxbox-generate_menu} ++ [exec] (Regen Menu) {@fluxbox@/bin/fluxbox-generate_menu} + [end] + [commanddialog] (Fluxbox Command) + [reconfig] (Reload config) + [restart] (Restart) +- [exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center} ++ [exec] (About) {(@fluxbox@/bin/fluxbox -v; @fluxbox@/bin/fluxbox -info | @gnused@/bin/sed 1d) | @xmessage@/bin/xmessage -file - -center} + [separator] + [exit] (Exit) + [end] +-- +2.26.2 + diff --git a/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix b/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix new file mode 100644 index 000000000000..36629179ab58 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix @@ -0,0 +1,75 @@ +{ lib +, fetchFromGitHub +, fluxbox +, gnused +, makeWrapper +, perlPackages +, substituteAll +, xorg +, wrapGAppsHook +}: + +perlPackages.buildPerlPackage rec { + pname = "fbmenugen"; + version = "0.85"; + + src = fetchFromGitHub { + owner = "trizen"; + repo = pname; + rev = version; + sha256 = "1pmms3wzkm8h41a8zrkpn6gq9m9yy5wr5rrzmb84lbacprqq6q7q"; + }; + + patches = [ + (substituteAll { + src = ./0001-Fix-paths.patch; + xmessage = xorg.xmessage; + inherit fluxbox gnused; + }) + ]; + + outputs = [ "out" ]; + + nativeBuildInputs = [ + makeWrapper + wrapGAppsHook + ]; + + buildInputs = [ + fluxbox + gnused + perlPackages.DataDump + perlPackages.FileDesktopEntry + perlPackages.Gtk3 + perlPackages.LinuxDesktopFiles + perlPackages.perl + xorg.xmessage + ]; + + dontConfigure = true; + + dontBuild = true; + + postPatch = '' + substituteInPlace fbmenugen --subst-var-by fbmenugen $out + ''; + + installPhase = '' + runHook preInstall + install -D -t $out/bin ${pname} + install -D -t $out/etc/xdg/${pname} schema.pl + runHook postInstall + ''; + + postFixup = '' + wrapProgram "$out/bin/${pname}" --prefix PERL5LIB : "$PERL5LIB" + ''; + + meta = with lib; { + homepage = "https://github.com/trizen/fbmenugen"; + description = "Simple menu generator for the Fluxbox Window Manager"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fbreader/default.nix b/nixpkgs/pkgs/applications/misc/fbreader/default.nix new file mode 100644 index 000000000000..c2347d5fbb8b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fbreader/default.nix @@ -0,0 +1,75 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config +, bzip2, curl, expat, fribidi, libunibreak, sqlite, zlib +, uiTarget ? if !stdenv.isDarwin then "desktop" else "macosx" +, uiType ? if !stdenv.isDarwin then "qt4" else "cocoa" +, qt4, gtk2 +, AppKit, Cocoa +}: + +with lib; + +assert elem uiTarget [ "desktop" "macosx" ]; +assert elem uiType [ "qt4" "gtk" "cocoa" ]; +assert uiTarget == "macosx" -> uiType == "cocoa"; + +# Note: "qt" uiType option mentioned in ${src}/README.build is qt3, +# which is way to old and no longer in nixpkgs. + +stdenv.mkDerivation { + name = "fbreader-${uiType}-0.99.6"; + + src = fetchFromGitHub { + owner = "geometer"; + repo = "FBReader"; + rev = "9e608db14372ae580beae4976eec7241fa069e75"; + sha256 = "0lzafk02mv0cf2l2a61q5y4743zi913byik4bw1ix0gr1drnsa7y"; + }; + + patches = [ + ./typecheck.patch + (fetchpatch { + name = "curl-7_62.diff"; # see https://github.com/geometer/FBReader/pull/311 + url = "https://github.com/geometer/FBReader/commit/b7c78e965d06f780.diff"; + sha256 = "1dgnx9wps7hcf8fkidc7037vcf92fr3ccnjx7bgxm9x02j0hngjg"; + }) + ]; + + postPatch = '' + cat << EOF > makefiles/target.mk + TARGET_ARCH = ${uiTarget} + TARGET_STATUS = release + UI_TYPE = ${uiType} + EOF + + substituteInPlace makefiles/arch/desktop.mk \ + --replace ccache "" \ + --replace moc-qt4 moc + + # libunibreak supersedes liblinebreak + substituteInPlace zlibrary/text/Makefile \ + --replace -llinebreak -lunibreak + ''; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + bzip2 curl expat fribidi libunibreak sqlite zlib + ] + ++ optional (uiType == "qt4") qt4 + ++ optional (uiType == "gtk") gtk2 + ++ optionals (uiType == "cocoa") [ AppKit Cocoa ]; + + makeFlags = [ "INSTALLDIR=$(out)" ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=narrowing"; + + meta = with lib; { + description = "An e-book reader for Linux"; + homepage = "http://www.fbreader.org/"; + license = licenses.gpl3; + broken = stdenv.isDarwin # untested, might work + || uiType == "gtk"; # builds, but the result is unusable, hangs a lot + platforms = platforms.unix; + maintainers = [ maintainers.coroa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch b/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch new file mode 100644 index 000000000000..cbac290e69c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch @@ -0,0 +1,11 @@ +diff --git a/fbreader/src/database/booksdb/BooksDB.cpp b/fbreader/src/database/booksdb/BooksDB.cpp +index e33a22e76..1b6092800 100644 +--- a/fbreader/src/database/booksdb/BooksDB.cpp ++++ b/fbreader/src/database/booksdb/BooksDB.cpp +@@ -146,5 +146,5 @@ shared_ptr<Book> BooksDB::loadBook(const std::string &fileName) { + myFindFileId->setFileName(fileName); + if (!myFindFileId->run()) { +- return false; ++ return 0; + } + ((DBIntValue&)*myLoadBook->parameter("@file_id").value()) = myFindFileId->fileId(); diff --git a/nixpkgs/pkgs/applications/misc/feedbackd/default.nix b/nixpkgs/pkgs/applications/misc/feedbackd/default.nix new file mode 100644 index 000000000000..4cdf3399135a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/feedbackd/default.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, fetchFromGitLab +, docbook-xsl-nons +, gobject-introspection +, gtk-doc +, libxslt +, meson +, ninja +, pkg-config +, vala +, wrapGAppsHook +, glib +, gsound +, json-glib +, libgudev +, dbus +}: + +stdenv.mkDerivation rec { + pname = "feedbackd"; + # Not an actual upstream project release, + # only a Debian package release that is tagged in the upstream repo + version = "0.0.0+git20210426"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = "feedbackd"; + rev = "v${version}"; + sha256 = "12kdchv11c5ynpv6fbagcx755x5p2kd7acpwjxi9khwdwjsqxlmn"; + }; + + nativeBuildInputs = [ + docbook-xsl-nons + gobject-introspection + gtk-doc + libxslt + meson + ninja + pkg-config + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + gsound + json-glib + libgudev + ]; + + mesonFlags = [ "-Dgtk_doc=true" "-Dman=true" ]; + + checkInputs = [ + dbus + ]; + + doCheck = true; + + postInstall = '' + mkdir -p $out/lib/udev/rules.d + sed "s|/usr/libexec/|$out/libexec/|" < $src/debian/feedbackd.udev > $out/lib/udev/rules.d/90-feedbackd.rules + ''; + + meta = with lib; { + description = "A daemon to provide haptic (and later more) feedback on events"; + homepage = "https://source.puri.sm/Librem5/feedbackd"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ pacman99 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fehlstart/default.nix b/nixpkgs/pkgs/applications/misc/fehlstart/default.nix new file mode 100644 index 000000000000..992b62780828 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fehlstart/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, pkg-config, gtk2, keybinder, fetchFromGitLab }: + +stdenv.mkDerivation { + name = "fehlstart-9f4342d7"; + + src = fetchFromGitLab { + owner = "fehlstart"; + repo = "fehlstart"; + rev = "9f4342d75ec5e2a46c13c99c34894bc275798441"; + sha256 = "1rfzh7w6n2s9waprv7m1bhvqrk36a77ada7w655pqiwkhdj5q95i"; + }; + + patches = [ ./use-nix-profiles.patch ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk2 keybinder ]; + + preConfigure = '' + export PREFIX=$out + ''; + + meta = with lib; { + description = "Small desktop application launcher with reasonable memory footprint"; + homepage = "https://gitlab.com/fehlstart/fehlstart"; + license = licenses.gpl3; + maintainers = [ maintainers.mounium ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch b/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch new file mode 100644 index 000000000000..0c06e53f9814 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch @@ -0,0 +1,21 @@ +--- fehlstart-9f4342d75ec5e2a46c13c99c34894bc275798441-src/fehlstart.c 1970-01-01 01:00:01.000000000 +0100 ++++ fehlstart.c 2016-08-10 12:21:11.231638418 +0200 +@@ -779,8 +779,15 @@ + read_settings(setting_file, &settings); + update_commands(); + g_hash_table_foreach(action_map, update_launcher, NULL); +- add_launchers(STR_S(APPLICATIONS_DIR_0)); +- add_launchers(STR_S(APPLICATIONS_DIR_1)); +- add_launchers(STR_S(USER_APPLICATIONS_DIR)); ++ const char* nixprofiles = getenv("NIX_PROFILES"); ++ if(nixprofiles != NULL) { ++ const char* pch = strtok(nixprofiles, " "); ++ while (pch != NULL) ++ { ++ String nix_dir = str_concat((String) { pch, strlen(pch), false },STR_S("/share/applications")); ++ add_launchers(nix_dir); ++ pch = strtok(NULL, " "); ++ } ++ } + return NULL; + } diff --git a/nixpkgs/pkgs/applications/misc/fetchmail/default.nix b/nixpkgs/pkgs/applications/misc/fetchmail/default.nix new file mode 100644 index 000000000000..d1659822bb2d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fetchmail/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchurl, openssl }: + +let + version = "6.4.16"; +in +stdenv.mkDerivation { + pname = "fetchmail"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz"; + sha256 = "sha256-BEuaCsA6+653RJed7+Pi4y45FBvKaP0Mje2i7UCIT7k="; + }; + + buildInputs = [ openssl ]; + + configureFlags = [ "--with-ssl=${openssl.dev}" ]; + + meta = { + homepage = "https://www.fetchmail.info/"; + description = "A full-featured remote-mail retrieval and forwarding utility"; + longDescription = '' + A full-featured, robust, well-documented remote-mail retrieval and + forwarding utility intended to be used over on-demand TCP/IP links + (such as SLIP or PPP connections). It supports every remote-mail + protocol now in use on the Internet: POP2, POP3, RPOP, APOP, KPOP, + all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and + IPSEC. + ''; + + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.peti ]; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fff/default.nix b/nixpkgs/pkgs/applications/misc/fff/default.nix new file mode 100644 index 000000000000..a3f791940cbf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fff/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, bashInteractive, xdg-utils, file, coreutils, w3m, xdotool }: + +stdenv.mkDerivation rec { + pname = "fff"; + version = "2.2"; + + src = fetchFromGitHub { + owner = "dylanaraps"; + repo = pname; + rev = version; + sha256 = "14ymdw6l6phnil0xf1frd5kgznaiwppcic0v4hb61s1zpf4wrshg"; + }; + + pathAdd = lib.makeSearchPath "bin" ([ xdg-utils file coreutils w3m xdotool ]); + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ bashInteractive ]; + dontBuild = true; + + makeFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + wrapProgram "$out/bin/fff" --prefix PATH : $pathAdd + ''; + + meta = with lib; { + description = "Fucking Fast File-Manager"; + homepage = "https://github.com/dylanaraps/fff"; + license = licenses.mit; + maintainers = [ maintainers.tadeokondrak ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/filet/default.nix b/nixpkgs/pkgs/applications/misc/filet/default.nix new file mode 100644 index 000000000000..0ee3f6fb221a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/filet/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "filet"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "buffet"; + repo = "filet"; + rev = version; + sha256 = "0hm7589ih30axafqxhhs4fg1pvfhlqzyzzmfi2ilx8haq5111fsf"; + }; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "A fucking fucking fast file fucker (afffff)"; + homepage = "https://github.com/buffet/filet"; + license = licenses.mpl20; + platforms = platforms.all; + maintainers = with maintainers; [ buffet ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/firestarter/default.nix b/nixpkgs/pkgs/applications/misc/firestarter/default.nix new file mode 100644 index 000000000000..7215cc564490 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/firestarter/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchFromGitHub, glibc, python3, cudatoolkit, + withCuda ? true +}: + +with lib; +stdenv.mkDerivation rec { + pname = "firestarter"; + version = "1.7.4"; + + src = fetchFromGitHub { + owner = "tud-zih-energy"; + repo = "FIRESTARTER"; + rev = "v${version}"; + sha256 = "0zqfqb7hf48z39g1qhbl1iraf8rz4d629h1q6ikizckpzfq23kd0"; + }; + + nativeBuildInputs = [ python3 ]; + buildInputs = [ glibc.static ] ++ optionals withCuda [ cudatoolkit ]; + preBuild = '' + mkdir -p build + cd build + python ../code-generator.py ${optionalString withCuda "--enable-cuda"} + ''; + makeFlags = optionals withCuda [ "LINUX_CUDA_PATH=${cudatoolkit}" ]; + enableParallelBuilding = true; + + installPhase = '' + mkdir -p $out/bin + cp FIRESTARTER $out/bin/firestarter + ''; + + meta = with lib; { + homepage = "https://tu-dresden.de/zih/forschung/projekte/firestarter"; + description = "Processor Stress Test Utility"; + platforms = platforms.linux; + maintainers = with maintainers; [ astro marenz ]; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix b/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix new file mode 100644 index 000000000000..ea1dd18d18c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix @@ -0,0 +1,45 @@ +{ fetchFromGitHub +, glib +, gtk3 +, lib +, rustPlatform +, wrapGAppsHook +}: + +rustPlatform.buildRustPackage rec { + pname = "fitnesstrax"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "luminescent-dreams"; + repo = "fitnesstrax"; + rev = "${pname}-${version}"; + sha256 = "1k6zhnbs0ggx7q0ig2abcnzprsgrychlpvsh6d36dw6mr8zpfkp7"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + glib + gtk3 + ]; + + buildInputs = [ + glib + gtk3 + ]; + + cargoSha256 = "0dlnlb3hqyh98y916wvdb4rd20az73brs8hqna2lgr7kv1pd77j7"; + + postInstall = '' + mkdir -p $out/share/glib-2.0/schemas + cp -r $src/share/* $out/share/ + glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + meta = with lib; { + description = "Privacy-first fitness tracking"; + homepage = "https://github.com/luminescent-dreams/fitnesstrax"; + license = licenses.bsd3; + maintainers = with maintainers; [ savannidgerinel ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/flamerobin/default.nix b/nixpkgs/pkgs/applications/misc/flamerobin/default.nix new file mode 100644 index 000000000000..8178288ba56e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/flamerobin/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, wxGTK30, boost, firebird }: + +stdenv.mkDerivation rec { + version = "0.9.3.1"; + pname = "flamerobin"; + + src = fetchFromGitHub { + owner = "mariuz"; + repo = "flamerobin"; + rev = version; + sha256 = "1wwcsca01hpgi9z5flvbdhs9zv7jvahnbn97j6ymy0hdyb8lv6si"; + }; + + enableParallelBuilding = true; + + buildInputs = [ wxGTK30 boost firebird ]; + + preBuild = '' + sed -i 's/CXXFLAGS = -g -O2/CXXFLAGS = -g -O2 -nostartfiles/' Makefile + ''; + + configureFlags = [ + "--disable-debug" + ]; + + meta = with lib; { + description = "Database administration tool for Firebird RDBMS"; + homepage = "https://github.com/mariuz/flamerobin"; + license = licenses.bsdOriginal; + maintainers = with maintainers; [ uralbash ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/flavours/default.nix b/nixpkgs/pkgs/applications/misc/flavours/default.nix new file mode 100644 index 000000000000..94fc91dfdb9c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/flavours/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv, installShellFiles }: + +rustPlatform.buildRustPackage rec { + pname = "flavours"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "Misterio77"; + repo = pname; + rev = "v${version}"; + sha256 = "1bgi6p7l0bh9k4vkwvngk7q19ynia0z1ninb1cq8qnwwpll6kbya"; + }; + + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; + + cargoSha256 = "07hwxhfcbqbwb3hz18w92h1lhdiwwy7abhwpimzx7syyavp4rmn4"; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion --cmd flavours \ + --zsh <($out/bin/flavours --completions zsh) \ + --fish <($out/bin/flavours --completions fish) \ + --bash <($out/bin/flavours --completions bash) + ''; + + meta = with lib; { + description = "An easy to use base16 scheme manager/builder that integrates with any workflow"; + homepage = "https://github.com/Misterio77/flavours"; + changelog = "https://github.com/Misterio77/flavours/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ fortuneteller2k ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix b/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix new file mode 100755 index 000000000000..4794e14b4698 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix @@ -0,0 +1,56 @@ +{ lib +, fetchFromGitHub +, python3 +, gtk3 +, wrapGAppsHook +, glibcLocales +, gobject-introspection +, gettext +, pango +, gdk-pixbuf +, atk +, fluxbox +}: + +python3.pkgs.buildPythonApplication rec { + pname = "fluxboxlauncher"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "mothsart"; + repo = "fluxboxlauncher"; + rev = "0.2.1"; + sha256 = "024h1dk0bhc5s4dldr6pqabrgcqih9p8cys5lqgkgz406y4vyzvf"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + gobject-introspection + pango + gdk-pixbuf + atk + gettext + ]; + + buildInputs = [ + glibcLocales + gtk3 + python3 + fluxbox + ]; + + makeWrapperArgs = [ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive" + "--set CHARSET en_us.UTF-8" ]; + + propagatedBuildInputs = with python3.pkgs; [ + pygobject3 + ]; + + meta = with lib; { + description = "A Gui editor (gtk) to configure applications launching on a fluxbox session"; + homepage = "https://github.com/mothsART/fluxboxlauncher"; + maintainers = with maintainers; [ mothsart ]; + license = licenses.bsdOriginal; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fme/default.nix b/nixpkgs/pkgs/applications/misc/fme/default.nix new file mode 100644 index 000000000000..6f6a143ae8e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fme/default.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, fetchurl +, autoconf +, automake +, bc +, fluxbox +, gettext +, glibmm +, gtkmm2 +, libglademm +, libsigcxx +, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "fme"; + version = "1.1.3"; + + src = fetchurl { + url = "https://github.com/rdehouss/fme/archive/v${version}.tar.gz"; + hash = "sha256-0cgaajjA+q0ClDrWXW0DFL0gXG3oQWaaLv5D5MUD5j0="; + }; + + nativeBuildInputs = [ + autoconf + automake + gettext + pkg-config + ]; + buildInputs = [ + bc + fluxbox + glibmm + gtkmm2 + libglademm + libsigcxx + ]; + + preConfigure = '' + ./autogen.sh + ''; + + meta = with lib; { + homepage = "https://github.com/rdehouss/fme/"; + description = "Editor for Fluxbox menus"; + longDescription = '' + Fluxbox Menu Editor is a menu editor for the Window Manager Fluxbox + written in C++ with the libraries Gtkmm, Glibmm, libglademm and gettext + for internationalization. Its user-friendly interface will help you to + edit, delete, move (Drag and Drop) a row, a submenu, etc very easily. + ''; + license = licenses.gpl2Plus; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/nixpkgs/pkgs/applications/misc/font-manager/default.nix new file mode 100644 index 000000000000..29399ab2f5b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/font-manager/default.nix @@ -0,0 +1,111 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, fetchpatch +, ninja +, gettext +, python3 +, pkg-config +, libxml2 +, json-glib +, sqlite +, itstool +, yelp-tools +, vala +, gsettings-desktop-schemas +, gtk3 +, gnome +, desktop-file-utils +, wrapGAppsHook +, gobject-introspection +, libsoup +, glib-networking +, webkitgtk +}: + +stdenv.mkDerivation rec { + pname = "font-manager"; + version = "0.8.6"; + + src = fetchFromGitHub { + owner = "FontManager"; + repo = "master"; + rev = version; + sha256 = "0a18rbdy9d0fj0vnsc2rm7xlh17vjqn4kdyrq0ldzlzkb6zbdk2k"; + }; + + patches = [ + # Fix some Desktop Settings with GNOME 40. + # https://github.com/FontManager/font-manager/issues/215 + (fetchpatch { + url = "https://github.com/FontManager/font-manager/commit/b28f325d7951a66ebf1a2a432ee09fd22048a033.patch"; + sha256 = "dKbrXGb9a4JuG/4x9vprMlh5J17HKJFifRWq9BWp1ow="; + }) + (fetchpatch { + url = "https://github.com/FontManager/font-manager/commit/2147204d4c4c6b58161230500186c3a5d4eeb1c1.patch"; + sha256 = "2/PFLwf7h76fIIN4+lyjg/L0KVU1hhRQCfwCAGDpb00="; + }) + (fetchpatch { + url = "https://github.com/FontManager/font-manager/commit/3abc541ef8606727c72af7631c021809600336ac.patch"; + sha256 = "rJPnW+7uuFLxTf5tk+Rzo+xkw2+uzU6BkzPXLeR/RGc="; + }) + (fetchpatch { + url = "https://github.com/FontManager/font-manager/commit/03a822f0d7b72442cd2ffcc8668da265d3535e0d.patch"; + sha256 = "3Z2UqK5VV2bIwpGd1tA7fivd7ooIuV6CxTJhzgOAkIM="; + }) + ]; + + nativeBuildInputs = [ + pkg-config + meson + ninja + gettext + python3 + itstool + desktop-file-utils + vala + yelp-tools + wrapGAppsHook + # For https://github.com/FontManager/master/blob/master/lib/unicode/meson.build + gobject-introspection + ]; + + buildInputs = [ + libxml2 + json-glib + sqlite + gsettings-desktop-schemas # for font settings + gtk3 + gnome.adwaita-icon-theme + libsoup + glib-networking # for SSL so that Google Fonts can load + webkitgtk + ]; + + mesonFlags = [ + "-Dreproducible=true" # Do not hardcode build directory… + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + meta = with lib; { + homepage = "https://fontmanager.github.io/"; + description = "Simple font management for GTK desktop environments"; + longDescription = '' + Font Manager is intended to provide a way for average users to + easily manage desktop fonts, without having to resort to command + line tools or editing configuration files by hand. While designed + primarily with the Gnome Desktop Environment in mind, it should + work well with other GTK desktop environments. + + Font Manager is NOT a professional-grade font management solution. + ''; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fontpreview/default.nix b/nixpkgs/pkgs/applications/misc/fontpreview/default.nix new file mode 100644 index 000000000000..7fa2e4d89102 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fontpreview/default.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper, xdotool, fzf, imagemagick, sxiv, getopt }: + +stdenv.mkDerivation rec { + pname = "fontpreview"; + version = "1.0.6"; + + src = fetchFromGitHub { + owner = "sdushantha"; + repo = pname; + rev = version; + sha256 = "0g3i2k6n2yhp88rrcf0hp6ils7836db7hx73hw9qnpcbmckz0i4w"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + preInstall = "mkdir -p $out/bin"; + + installFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + wrapProgram $out/bin/fontpreview \ + --prefix PATH : ${lib.makeBinPath [ xdotool fzf imagemagick sxiv getopt ]} + ''; + + meta = with lib; { + homepage = "https://github.com/sdushantha/fontpreview"; + description = "Highly customizable and minimal font previewer written in bash"; + longDescription = '' + fontpreview is a commandline tool that lets you quickly search for fonts + that are installed on your machine and preview them. The fuzzy search + feature is provided by fzf and the preview is generated with imagemagick + and then displayed using sxiv. This tool is highly customizable, almost + all of the variables in this tool can be changed using the commandline + flags or you can configure them using environment variables. + ''; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.erictapen ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/formatter/default.nix b/nixpkgs/pkgs/applications/misc/formatter/default.nix new file mode 100644 index 000000000000..e8f329ecb0da --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/formatter/default.nix @@ -0,0 +1,78 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, meson +, ninja +, vala +, pkg-config +, pantheon +, python3 +, substituteAll +, glib +, gtk3 +, dosfstools +, e2fsprogs +, exfat +, hfsprogs +, ntfs3g +, libgee +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "formatter"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "Djaler"; + repo = "Formatter"; + rev = version; + sha256 = "sha256-8lZ0jUwHuc3Kntz73Btj6dJvkW2bvShu2KWTSQszbJo="; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + ext4 = "${e2fsprogs}/bin/mkfs.ext4"; + exfat = "${exfat}/bin/mkfs.exfat"; + fat = "${dosfstools}/bin/mkfs.fat"; + ntfs = "${ntfs3g}/bin/mkfs.ntfs"; + hfsplus = "${hfsprogs}/bin/mkfs.hfsplus"; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + vala + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + libgee + pantheon.granite + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A simple formatter designed for elementary OS"; + homepage = "https://github.com/Djaler/Formatter"; + maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.lgpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/formatter/fix-paths.patch b/nixpkgs/pkgs/applications/misc/formatter/fix-paths.patch new file mode 100644 index 000000000000..67c1d2b43ccc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/formatter/fix-paths.patch @@ -0,0 +1,53 @@ +diff --git a/src/Objects/DeviceFormatter.vala b/src/Objects/DeviceFormatter.vala +index cf6a3b8..0de10a9 100644 +--- a/src/Objects/DeviceFormatter.vala ++++ b/src/Objects/DeviceFormatter.vala +@@ -62,42 +62,42 @@ namespace Formatter { + string drive_identifier = drive.get_identifier ("unix-device"); + switch (filesystem) { + case Formatter.Filesystems.EXT4: +- spawn_args = {"pkexec", "mkfs.ext4", drive_identifier, "-F"}; ++ spawn_args = {"pkexec", "@ext4@", drive_identifier, "-F"}; + if (label != "") { + spawn_args += "-L"; + spawn_args += label; + } + break; + case Formatter.Filesystems.EXFAT: +- spawn_args = {"pkexec", "mkfs.exfat", drive_identifier}; ++ spawn_args = {"pkexec", "@exfat@", drive_identifier}; + if (label != "") { + spawn_args += "-n"; + spawn_args += label; + } + break; + case Formatter.Filesystems.FAT16: +- spawn_args = {"pkexec", "mkfs.fat", "-F16", "-I", drive_identifier}; ++ spawn_args = {"pkexec", "@fat@", "-F16", "-I", drive_identifier}; + if (label != "") { + spawn_args += "-n"; + spawn_args += label; + } + break; + case Formatter.Filesystems.FAT32: +- spawn_args = {"pkexec", "mkfs.fat", "-F32", "-I", drive_identifier}; ++ spawn_args = {"pkexec", "@fat@", "-F32", "-I", drive_identifier}; + if (label != "") { + spawn_args += "-n"; + spawn_args += label; + } + break; + case Formatter.Filesystems.NTFS: +- spawn_args = {"pkexec", "mkfs.ntfs", drive_identifier, "-f", "-F"}; ++ spawn_args = {"pkexec", "@ntfs@", drive_identifier, "-f", "-F"}; + if (label != "") { + spawn_args += "-L"; + spawn_args += label; + } + break; + case Formatter.Filesystems.HFS_PLUS: +- spawn_args = {"pkexec", "mkfs.hfsplus", drive_identifier}; ++ spawn_args = {"pkexec", "@hfsplus@", drive_identifier}; + if (label != "") { + spawn_args += "-v"; + spawn_args += label; diff --git a/nixpkgs/pkgs/applications/misc/foxitreader/default.nix b/nixpkgs/pkgs/applications/misc/foxitreader/default.nix new file mode 100644 index 000000000000..e69361dbd93e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/foxitreader/default.nix @@ -0,0 +1,79 @@ +{ mkDerivation, lib, fetchzip, libarchive, autoPatchelfHook, libsecret, libGL, zlib, openssl, qtbase, qtwebkit, qtxmlpatterns }: + +mkDerivation rec { + pname = "foxitreader"; + version = "2.4.4.0911"; + + src = fetchzip { + url = "https://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/linux/${lib.versions.major version}.x/${lib.versions.majorMinor version}/en_us/FoxitReader.enu.setup.${version}.x64.run.tar.gz"; + sha256 = "0ff4xs9ipc7sswq0czfhpsd7qw7niw0zsf9wgsqhbbgzcpbdhcb7"; + stripRoot = false; + }; + + buildInputs = [ libGL libsecret openssl qtbase qtwebkit qtxmlpatterns zlib ]; + + nativeBuildInputs = [ autoPatchelfHook libarchive ]; + + buildPhase = '' + runHook preBuild + + input_file=$src/*.run + mkdir -p extracted + # Look for all 7z files and extract them + grep --only-matching --byte-offset --binary \ + --text -P '7z\xBC\xAF\x27\x1C\x00\x03' $input_file | cut -d: -f1 | + while read position; do + tail -c +$(($position + 1)) $input_file > file.7z + bsdtar xf file.7z -C extracted + done + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + cd extracted + + cp -r \ + CollectStrategy.txt \ + cpdf_settings \ + fxplugins \ + lang \ + resource \ + run \ + stamps \ + welcome \ + Wrappers \ + $out/lib/ + + patchelf $out/lib/fxplugins/librms.so \ + --replace-needed libssl.so.10 libssl.so \ + --replace-needed libcrypto.so.10 libcrypto.so + + # FIXME: Doing this with one invocation is broken right now + patchelf $out/lib/fxplugins/librmscrypto.so \ + --replace-needed libssl.so.10 libssl.so + patchelf $out/lib/fxplugins/librmscrypto.so \ + --replace-needed libcrypto.so.10 libcrypto.so + + install -D -m 755 FoxitReader -t $out/bin + + # Install icon and desktop files + install -D -m 644 images/FoxitReader.png -t $out/share/pixmaps/ + install -D -m 644 FoxitReader.desktop -t $out/share/applications/ + echo Exec=FoxitReader %F >> $out/share/applications/FoxitReader.desktop + + runHook postInstall + ''; + + qtWrapperArgs = [ "--set appname FoxitReader" "--set selfpath $out/lib" ]; + + meta = with lib; { + description = "A viewer for PDF documents"; + homepage = "https://www.foxitsoftware.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ p-h rhoriguchi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix b/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix new file mode 100644 index 000000000000..8692ac98933b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/foxtrotgps/default.nix @@ -0,0 +1,63 @@ +{ lib, stdenv, fetchbzr, autoreconfHook, texinfo, help2man, imagemagick, pkg-config +, curl, gnome2, gpsd, gtk2, wrapGAppsHook +, intltool, libexif, python3Packages, sqlite }: + +let + srcs = { + foxtrot = fetchbzr { + url = "lp:foxtrotgps"; + rev = "329"; + sha256 = "0fwgnsrah63h1xdgm5xdi5ancrz89shdp5sdzw1qc1m7i9a03rid"; + }; + screenshots = fetchbzr { + url = "lp:foxtrotgps/screenshots"; + rev = "2"; + sha256 = "1sgysn3dhfhrv7rj7wf8f2119vmhc1s1zzsp4r3nlrr45d20wmsv"; + }; + }; +in stdenv.mkDerivation rec { + pname = "foxtrotgps"; + version = "1.2.2+329"; + + # Pull directly from bzr because gpsd API version 9 is not supported on latest release + src = srcs.foxtrot; + + nativeBuildInputs = [ + pkg-config autoreconfHook texinfo help2man + imagemagick wrapGAppsHook intltool + ]; + + buildInputs = [ + curl.dev + gnome2.libglade.dev + gpsd + gtk2.dev + libexif + sqlite.dev + (python3Packages.python.withPackages (pythonPackages: with python3Packages; + [ beautifulsoup4 feedparser sqlalchemy ])) + ]; + + postUnpack = '' + cp -R ${srcs.screenshots} $sourceRoot/doc/screenshots + chmod -R u+w $sourceRoot/doc/screenshots + ''; + + preConfigure = '' + intltoolize --automake --copy --force + ''; + + meta = with lib; { + description = "GPS/GIS application optimized for small screens"; + longDescription = '' + An easy to use, free & open-source GPS/GIS application that works well on + small screens, and is especially suited to touch input. It spun off of + tangoGPS in 2010 with a focus on cooperation and fostering community + innovation. + ''; + homepage = "https://www.foxtrotgps.org/"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ wucke13 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/free42/default.nix b/nixpkgs/pkgs/applications/misc/free42/default.nix new file mode 100644 index 000000000000..2dd70acb9a73 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/free42/default.nix @@ -0,0 +1,90 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeDesktopItem +, copyDesktopItems +, pkg-config +, gtk3 +, alsa-lib +}: + +stdenv.mkDerivation rec { + pname = "free42"; + version = "3.0.5"; + + src = fetchFromGitHub { + owner = "thomasokken"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-ytRPIBE8KcuM+pyfdKt/b+Vi03x8nowdgZjSt8EddSc="; + }; + + nativeBuildInputs = [ copyDesktopItems pkg-config ]; + buildInputs = [ gtk3 alsa-lib ]; + + postPatch = '' + sed -i -e "s|/bin/ls|ls|" gtk/Makefile + ''; + + dontConfigure = true; + + buildPhase = '' + runHook preBuild + make -C gtk cleaner + make --jobs=$NIX_BUILD_CORES -C gtk + make -C gtk clean + make --jobs=$NIX_BUILD_CORES -C gtk BCD_MATH=1 + runHook postBuild + ''; + + preInstall = '' + install --directory $out/bin \ + $out/share/doc/${pname} \ + $out/share/${pname}/skins \ + $out/share/icons/hicolor/48x48/apps \ + $out/share/icons/hicolor/128x128/apps + ''; + + installPhase = '' + runHook preInstall + install -m755 gtk/free42dec gtk/free42bin $out/bin + install -m644 gtk/README $out/share/doc/${pname}/README-GTK + install -m644 README $out/share/doc/${pname}/README + + install -m644 gtk/icon-48x48.xpm $out/share/icons/hicolor/48x48/apps + install -m644 gtk/icon-128x128.xpm $out/share/icons/hicolor/128x128/apps + install -m644 skins/* $out/share/${pname}/skins + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "com.thomasokken.free42bin"; + desktopName = "Free42Bin"; + genericName = "Calculator"; + exec = "free42bin"; + type = "Application"; + comment = meta.description; + categories = "Utility;Calculator;"; + terminal = "false"; + }) + (makeDesktopItem { + name = "com.thomasokken.free42dec"; + desktopName = "Free42Dec"; + genericName = "Calculator"; + exec = "free42dec"; + type = "Application"; + comment = meta.description; + categories = "Utility;Calculator;"; + terminal = "false"; + }) + ]; + + meta = with lib; { + homepage = "https://github.com/thomasokken/free42"; + description = "A software clone of HP-42S Calculator"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ AndersonTorres plabadens ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/freemind/default.nix b/nixpkgs/pkgs/applications/misc/freemind/default.nix new file mode 100644 index 000000000000..b87c43226e0a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/freemind/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, jdk, jre, ant }: + +stdenv.mkDerivation rec { + pname = "freemind"; + version = "1.0.1"; + + src = fetchurl { + url = "mirror://sourceforge/freemind/freemind-src-${version}.tar.gz"; + sha256 = "06c6pm7hpwh9hbmyah3lj2wp1g957x8znfwc5cwygsi7dc98b0h1"; + }; + + buildInputs = [ jdk ant ]; + + preConfigure = '' + chmod +x check_for_duplicate_resources.sh + sed 's,/bin/bash,${stdenv.shell},' -i check_for_duplicate_resources.sh + + ## work around javac encoding errors + export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8" + ''; + + buildPhase = "ant dist"; + + installPhase = '' + mkdir -p $out/{bin,nix-support} + cp -r ../bin/dist $out/nix-support + sed -i 's/which/type -p/' $out/nix-support/dist/freemind.sh + + cat >$out/bin/freemind <<EOF + #! ${stdenv.shell} + JAVA_HOME=${jre} $out/nix-support/dist/freemind.sh + EOF + chmod +x $out/{bin/freemind,nix-support/dist/freemind.sh} + ''; + + meta = with lib; { + description = "Mind-mapping software"; + homepage = "http://freemind.sourceforge.net/wiki/index.php/Main_Page"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/freeplane/default.nix b/nixpkgs/pkgs/applications/misc/freeplane/default.nix new file mode 100644 index 000000000000..f9c04fedfdd9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/freeplane/default.nix @@ -0,0 +1,117 @@ +{ stdenv, lib, fetchpatch, fetchFromGitHub, makeWrapper, writeText, runtimeShell, jdk11, perl, gradle_5, which }: + +let + pname = "freeplane"; + version = "1.8.11"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "release-${version}"; + sha256 = "07xjx9pf62dvy8lx6vnbwwcn1zqy89cmdmwy792k7gb12wz81nnc"; + }; + + deps = stdenv.mkDerivation { + name = "${pname}-deps"; + inherit src; + + nativeBuildInputs = [ jdk11 perl gradle_5 ]; + + buildPhase = '' + GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon jar + ''; + + # Mavenize dependency paths + # e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar + installPhase = '' + find ./caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0r7f6713m0whh5hlk1id7z9j5v9494r41sivn9fzl63q70kzz92g"; + }; + + # Point to our local deps repo + gradleInit = writeText "init.gradle" '' + logger.lifecycle 'Replacing Maven repositories with ${deps}...' + gradle.projectsLoaded { + rootProject.allprojects { + buildscript { + repositories { + clear() + maven { url '${deps}' } + } + } + repositories { + clear() + maven { url '${deps}' } + } + } + } + settingsEvaluated { settings -> + settings.pluginManagement { + repositories { + maven { url '${deps}' } + } + } + } + ''; + + # downloaded from unicode.org and twemoji.maxcdn.com by code in freeplane/emoji.gradle + # the below hash is for versions of freeplane that use twemoji 12.1.4, and emoji 12.1 + emoji = stdenv.mkDerivation rec { + name = "${pname}-emoji"; + inherit src; + + nativeBuildInputs = [ jdk11 gradle_5 ]; + + buildPhase = '' + GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon --offline --init-script ${gradleInit} emojiGraphicsClasses emojiListClasses + ''; + + installPhase = '' + mkdir -p $out/emoji/txt $out/resources/images + cp freeplane/build/emoji/txt/emojilist.txt $out/emoji/txt + cp -r freeplane/build/emoji/resources/images/emoji/. $out/resources/images/emoji + ''; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0zikbakbr2fhyv4h4h52ajhznjka0hg6hiqfy1528a39i6psipn3"; + }; + +in stdenv.mkDerivation rec { + inherit pname version src; + + nativeBuildInputs = [ makeWrapper jdk11 gradle_5 ]; + + buildPhase = '' + mkdir -p -- ./freeplane/build/emoji/{txt,resources/images} + cp ${emoji}/emoji/txt/emojilist.txt ./freeplane/build/emoji/txt/emojilist.txt + cp -r ${emoji}/resources/images/emoji ./freeplane/build/emoji/resources/images/emoji + GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon --offline --init-script ${gradleInit} -x test -x :freeplane:downloadEmoji build + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin $out/share + + cp -a ./BIN/. $out/share/${pname} + makeWrapper $out/share/${pname}/${pname}.sh $out/bin/${pname} \ + --set FREEPLANE_BASE_DIR $out/share/${pname} \ + --set JAVA_HOME ${jdk11} \ + --prefix PATH : ${lib.makeBinPath [ jdk11 which ]} + runHook postInstall + ''; + + meta = with lib; { + description = "Mind-mapping software"; + homepage = "https://freeplane.org/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ chaduffy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fslint/default.nix b/nixpkgs/pkgs/applications/misc/fslint/default.nix new file mode 100644 index 000000000000..1f2ec2805490 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fslint/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchFromGitHub, python2, makeWrapper }: + +let pythonEnv = python2.withPackages(ps: [ ps.pyGtkGlade]); +in stdenv.mkDerivation rec { + pname = "fslint"; + version = "2.46"; + + src = fetchFromGitHub { + owner = "pixelb"; + repo = "fslint"; + rev = version; + sha256 = "048pc1rsslbsrfchl2wmdd4hpa2gycglib7kdx8vqs947zcm0sfv"; + }; + + buildInputs = [ + pythonEnv makeWrapper + ]; + + prePatch = '' + substituteInPlace fslint-gui --replace "liblocation=os.path.dirname(os.path.abspath(sys.argv[0]))" "liblocation='$out'" + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp * -R $out/ + cp fslint-gui $out/bin/fslint + + wrapProgram "$out/bin/fslint" \ + --prefix PYTHONPATH : "${pythonEnv.interpreter}" + runHook postInstall + ''; + + meta = with lib; { + description = "A utility to find and clean various forms of lint on a filesystem"; + homepage = "https://www.pixelbeat.org/fslint/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.dasj19 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fsv/default.nix b/nixpkgs/pkgs/applications/misc/fsv/default.nix new file mode 100644 index 000000000000..a965c615dfd3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fsv/default.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, fetchurl, fetchFromGitHub, autoreconfHook +, libtool, pkg-config, gtk2, libGLU, file +}: + +let + gtkglarea = stdenv.mkDerivation rec { + pname = "gtkglarea"; + version = "2.1.0"; + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1pl2vdj6l64j864ilhkq1bcggb3hrlxjwk5m029i7xfjfxc587lf"; + }; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk2 libGLU ]; + hardeningDisable = [ "format" ]; + }; + +in stdenv.mkDerivation rec { + pname = "fsv"; + version = "0.9-1"; + + src = fetchFromGitHub { + owner = "mcuelenaere"; + repo = "fsv"; + rev = "${pname}-${version}"; + sha256 = "0n09jd7yqj18mx6zqbg7kab4idg5llr15g6avafj74fpg1h7iimj"; + }; + + postPatch = '' + # fix build with gettext 0.20 + sed -i 's/AM_GNU_GETTEXT/AM_GNU_GETTEXT([external])/' configure.in + ''; + + nativeBuildInputs = [ autoreconfHook libtool pkg-config ]; + buildInputs = [ file gtk2 libGLU gtkglarea ]; + + meta = with lib; { + description = "File system visualizer in cyberspace"; + longDescription = '' + fsv (pronounced eff-ess-vee) is a file system visualizer in cyberspace. + It lays out files and directories in three dimensions, geometrically + representing the file system hierarchy to allow visual overview + and analysis. fsv can visualize a modest home directory, a workstation's + hard drive, or any arbitrarily large collection of files, limited only + by the host computer's memory and graphics hardware. + ''; + homepage = "https://github.com/mcuelenaere/fsv"; + license = licenses.lgpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix b/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix new file mode 100644 index 000000000000..813b8113ee30 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv , fetchFromGitHub , python3 , makeWrapper }: + +let pythonEnv = python3.withPackages(ps: [ ps.tkinter ps.pyusb ]); +in stdenv.mkDerivation rec { + pname = "fusee-interfacee-tk"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "nh-server"; + repo = pname; + rev = "V${version}"; + sha256 = "0ngwbwsj999flprv14xvhk7lp51nprrvcnlbnbk6y4qx5casm5md"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ pythonEnv ]; + + installPhase = '' + mkdir -p $out/bin + + # The program isn't just called app, so I'm renaming it based on the repo name + # It also isn't a standard program, so we need to append the shebang to the top + echo "#!${pythonEnv.interpreter}" > $out/bin/fusee-interfacee-tk + cat app.py >> $out/bin/fusee-interfacee-tk + chmod +x $out/bin/fusee-interfacee-tk + + # app.py depends on these to run + cp *.py $out/bin/ + cp intermezzo.bin $out/bin/intermezzo.bin + ''; + + meta = with lib; { + homepage = "https://github.com/nh-server/fusee-interfacee-tk"; + description = "A tool to send .bin files to a Nintendo Switch in RCM mode"; + longDescription = "A mod of falquinhos Fusée Launcher for use with Nintendo Homebrew Switch Guide. It also adds the ability to mount SD while in RCM. + Must be run as sudo."; + maintainers = with maintainers; [ kristian-brucaj ]; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/fuzzel/default.nix b/nixpkgs/pkgs/applications/misc/fuzzel/default.nix new file mode 100644 index 000000000000..1e51f69f1c1f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/fuzzel/default.nix @@ -0,0 +1,23 @@ +{ stdenv, lib, fetchzip, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, scdoc, git, tllist, fcft}: + +stdenv.mkDerivation rec { + pname = "fuzzel"; + version = "1.6.0"; + + src = fetchzip { + url = "https://codeberg.org/dnkl/fuzzel/archive/${version}.tar.gz"; + sha256 = "sha256-iTpUWvQszDtNc1gDqkPbhvgUVNWydpivhnOCHMJVtSw="; + }; + + nativeBuildInputs = [ pkg-config meson ninja scdoc git ]; + buildInputs = [ wayland pixman cairo librsvg wayland-protocols wlroots libxkbcommon tllist fcft ]; + + meta = with lib; { + description = "Wayland-native application launcher, similar to rofi’s drun mode"; + homepage = "https://codeberg.org/dnkl/fuzzel"; + license = licenses.mit; + maintainers = with maintainers; [ fionera ]; + platforms = with platforms; linux; + changelog = "https://codeberg.org/dnkl/fuzzel/releases/tag/${version}"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gImageReader/default.nix b/nixpkgs/pkgs/applications/misc/gImageReader/default.nix new file mode 100644 index 000000000000..2e1afa8053b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gImageReader/default.nix @@ -0,0 +1,70 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libuuid +, sane-backends, podofo, libjpeg, djvulibre, libxmlxx3, libzip, tesseract +, intltool, poppler, json-glib +, ninja +, python3 + +# Gtk deps +# upstream gImagereader supports Qt too +, gobject-introspection, wrapGAppsHook +, gtkmm3, gtksourceview3, gtksourceviewmm, gtkspell3, gtkspellmm, cairomm +}: + +let + variant = "gtk"; + pythonEnv = python3.withPackages( ps: with ps;[ pygobject3 ] ); +in +stdenv.mkDerivation rec { + pname = "gImageReader"; + version = "3.3.1"; + + src = fetchFromGitHub { + owner= "manisandro"; + repo = "gImageReader"; + rev = "v${version}"; + sha256 = "17hz2dgxx2j7hsk0lx3riidqvlsg0ylnicjd2gphsi3yp7w20zdj"; + }; + + nativeBuildInputs = [ + cmake ninja + intltool + pkg-config + pythonEnv + + # Gtk specific + wrapGAppsHook + gobject-introspection + ]; + + buildInputs = [ + libxmlxx3 + libzip + libuuid + sane-backends + podofo + libjpeg + djvulibre + tesseract + poppler + + # Gtk specific + gtkmm3 + gtkspell3 + gtkspellmm + gtksourceview3 + gtksourceviewmm + cairomm + json-glib + ]; + + # interface type can be where <type> is either gtk, qt5, qt4 + cmakeFlags = [ "-DINTERFACE_TYPE=${variant}" ]; + + meta = with lib; { + description = "A simple Gtk/Qt front-end to tesseract-ocr"; + homepage = "https://github.com/manisandro/gImageReader"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [teto]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/galculator/default.nix b/nixpkgs/pkgs/applications/misc/galculator/default.nix new file mode 100644 index 000000000000..287a2fca3637 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/galculator/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub +, autoreconfHook, intltool +, gtk, pkg-config, flex }: + +stdenv.mkDerivation rec { + pname = "galculator"; + version = "2.1.4"; + + src = fetchFromGitHub { + owner = "galculator"; + repo = "galculator"; + rev = "v${version}"; + sha256 = "0q0hb62f266709ncyq96bpx4a40a1i6dc5869byvd7x285sx1c2w"; + }; + + nativeBuildInputs = [ autoreconfHook intltool pkg-config ]; + buildInputs = [ gtk flex ]; + + meta = with lib; { + description = "A GTK 2/3 algebraic and RPN calculator"; + longDescription = '' + galculator is a GTK 2 / GTK 3 based calculator. Its main features include: + + - Algebraic, RPN (Reverse Polish Notation), Formula Entry and Paper modes; + - Basic and Scientific Modes + - Decimal, hexadecimal, octal and binary number base + - Radiant, degree and grad support + - User defined constants and functions + - A bunch of common functions + - Binary arithmetic of configurable bit length and signedness + - Quad-precision floating point arithmetic, and 112-bit binary arithmetic + ''; + homepage = "http://galculator.sourceforge.net/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix new file mode 100644 index 000000000000..b617e7b2ea19 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix @@ -0,0 +1,28 @@ +{ lib, buildPythonApplication, fetchPypi, requests, pytestCheckHook }: + +buildPythonApplication rec { + pname = "gallery_dl"; + version = "1.18.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "1e231ed7122a753430d92f8c6240a99defa2b307d57f1a4cc3e48910269331a9"; + }; + + propagatedBuildInputs = [ requests ]; + + checkInputs = [ pytestCheckHook ]; + pytestFlagsArray = [ + # requires network access + "--ignore=test/test_results.py" + "--ignore=test/test_downloader.py" + ]; + + meta = with lib; { + description = "Command-line program to download image-galleries and -collections from several image hosting sites"; + homepage = "https://github.com/mikf/gallery-dl"; + license = licenses.gpl2; + maintainers = with maintainers; [ dawidsowa ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch b/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch new file mode 100644 index 000000000000..de402595cd38 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch @@ -0,0 +1,11 @@ +--- a/contrib/CMakeLists.txt ++++ b/contrib/CMakeLists.txt +@@ -85,7 +85,7 @@ endif (INSTALL_PHP_EXAMPLES) + if (INSTALL_BASH_COMPLETION) + macro_optional_find_package (BashCompletion) + if (NOT BASH_COMPLETION_FOUND) +- set (BASH_COMPLETION_COMPLETIONSDIR "/etc/bash_completion.d" CACHE PATH "Location of bash_completion.d") ++ set (BASH_COMPLETION_COMPLETIONSDIR "${CMAKE_INSTALL_PREFIX}/share/bash-completion/completions" CACHE PATH "Location of bash_completion.d") + endif (NOT BASH_COMPLETION_FOUND) + install ( + FILES bash-completion/gammu diff --git a/nixpkgs/pkgs/applications/misc/gammu/default.nix b/nixpkgs/pkgs/applications/misc/gammu/default.nix new file mode 100644 index 000000000000..736685f5eb1f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gammu/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, bluez, libusb1, curl +, libiconv, gettext, sqlite +, dbiSupport ? false, libdbi ? null, libdbiDrivers ? null +, postgresSupport ? false, postgresql ? null +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "gammu"; + version = "1.40.0"; + + src = fetchFromGitHub { + owner = "gammu"; + repo = "gammu"; + rev = version; + sha256 = "1jjaa9r3x6i8gv3yn1ngg815s6gsxblsw4wb5ddm77kamn2qyvpf"; + }; + + patches = [ ./bashcomp-dir.patch ./systemd.patch ]; + + nativeBuildInputs = [ pkg-config cmake ]; + + strictDeps = true; + + buildInputs = [ bluez libusb1 curl gettext sqlite libiconv ] + ++ optionals dbiSupport [ libdbi libdbiDrivers ] + ++ optionals postgresSupport [ postgresql ]; + + meta = { + homepage = "https://wammu.eu/gammu/"; + description = "Command line utility and library to control mobile phones"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.coroa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gammu/systemd.patch b/nixpkgs/pkgs/applications/misc/gammu/systemd.patch new file mode 100644 index 000000000000..22b49a5a2ffe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gammu/systemd.patch @@ -0,0 +1,30 @@ +diff --git a/cmake/templates/gammu.spec.in b/cmake/templates/gammu.spec.in +index 8302353..e3ca59a 100644 +--- a/cmake/templates/gammu.spec.in ++++ b/cmake/templates/gammu.spec.in +@@ -387,9 +387,9 @@ fi + %doc %{_mandir}/man7/gammu-smsd-run.7* + %doc %{_mandir}/man7/gammu-smsd-sql.7* + %doc %{_mandir}/man7/gammu-smsd-tables.7* +-%dir %{_libexecdir}/systemd +-%dir %{_libexecdir}/systemd/system +-%{_libexecdir}/systemd/system/gammu-smsd.service ++%dir %{_prefix}/systemd ++%dir %{_prefix}/systemd/system ++%{_prefix}/systemd/system/gammu-smsd.service + + %files -n libGammu%{so_ver} -f libgammu.lang + %defattr(-,root,root,-) +diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt +index 78cc7fc..d674c36 100644 +--- a/contrib/CMakeLists.txt ++++ b/contrib/CMakeLists.txt +@@ -97,7 +97,7 @@ endif (INSTALL_BASH_COMPLETION) + if (WITH_SYSTEMD) + install ( + FILES init/gammu-smsd.service +- DESTINATION "${SYSTEMD_SERVICES_INSTALL_DIR}" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/systemd" + COMPONENT "systemd" + ) + endif (WITH_SYSTEMD) diff --git a/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix b/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix new file mode 100644 index 000000000000..2b4504a1dce2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv, fetchzip, makeDesktopItem, makeWrapper +, jre +}: + +stdenv.mkDerivation rec { + pname = "ganttproject-bin"; + version = "2.8.10"; + + src = let build = "r2364"; in fetchzip { + sha256 = "0cclgyqv4f9pjsdlh93cqvgbzrp8ajvrpc2xszs03sknqz2kdh7r"; + url = "https://dl.ganttproject.biz/ganttproject-${version}/" + + "ganttproject-${version}-${build}.zip"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jre ]; + + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + + installPhase = let + + desktopItem = makeDesktopItem { + name = "ganttproject"; + exec = "ganttproject"; + icon = "ganttproject"; + desktopName = "GanttProject"; + genericName = "Shedule and manage projects"; + comment = meta.description; + categories = "Office;"; + }; + + javaOptions = [ + "-Dawt.useSystemAAFontSettings=on" + ]; + + in '' + mkdir -pv "$out/share/ganttproject" + cp -rv * "$out/share/ganttproject" + + mkdir -pv "$out/bin" + wrapProgram "$out/share/ganttproject/ganttproject" \ + --set JAVA_HOME "${jre}" \ + --set _JAVA_OPTIONS "${builtins.toString javaOptions}" + + mv -v "$out/share/ganttproject/ganttproject" "$out/bin" + + cp -rv "${desktopItem}/share/applications" "$out/share" + ''; + + meta = with lib; { + description = "Project scheduling and management"; + homepage = "https://www.ganttproject.biz/"; + downloadPage = "https://www.ganttproject.biz/download"; + # GanttProject itself is GPL3+. All bundled libraries are declared + # ‘GPL3-compatible’. See ${downloadPage} for detailed information. + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = [ maintainers.vidbina ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix b/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix new file mode 100644 index 000000000000..c2c3a69140b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, garmintools, libgcrypt, libusb-compat-0_1, pkg-config, tinyxml, zlib }: +stdenv.mkDerivation { + name = "garmin-plugin-0.3.26"; + src = fetchurl { + url = "https://github.com/adiesner/GarminPlugin/archive/V0.3.26.tar.gz"; + sha256 = "15gads1fj4sj970m5960dgnhys41ksi4cm53ldkf67wn8dc9i4k0"; + }; + sourceRoot = "GarminPlugin-0.3.26/src"; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ garmintools libusb-compat-0_1 libgcrypt tinyxml zlib ]; + configureFlags = [ + "--with-libgcrypt-prefix=${libgcrypt.dev}" + "--with-garmintools-incdir=${garmintools}/include" + "--with-garmintools-libdir=${garmintools}/lib" + ]; + installPhase = '' + mkdir -p $out/lib/mozilla/plugins + cp npGarminPlugin.so $out/lib/mozilla/plugins + ''; + meta = { + homepage = "http://www.andreas-diesner.de/garminplugin"; + license = lib.licenses.gpl3; + maintainers = [ ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gcal/default.nix b/nixpkgs/pkgs/applications/misc/gcal/default.nix new file mode 100644 index 000000000000..da190218d095 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gcal/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchurl, ncurses, gettext, fetchpatch }: + +stdenv.mkDerivation rec { + pname = "gcal"; + version = "4.1"; + + src = fetchurl { + url = "mirror://gnu/gcal/${pname}-${version}.tar.xz"; + sha256 = "1av11zkfirbixn05hyq4xvilin0ncddfjqzc4zd9pviyp506rdci"; + }; + + patches = [ + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/gcal/raw/master/f/gcal-glibc-no-libio.patch"; + sha256 = "0l4nw9kgzsay32rsdwvs75pbp4fhx6pfm85paynfbd20cdm2n2kv"; + }) + ]; + + enableParallelBuilding = true; + + buildInputs = [ ncurses ] ++ lib.optional stdenv.isDarwin gettext; + + meta = { + description = "Program for calculating and printing calendars"; + longDescription = '' + Gcal is the GNU version of the trusty old cal(1). Gcal is a + program for calculating and printing calendars. Gcal displays + hybrid and proleptic Julian and Gregorian calendar sheets. It + also displays holiday lists for many countries around the globe. + ''; + homepage = "https://www.gnu.org/software/gcal/"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gcalcli/default.nix b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix new file mode 100644 index 000000000000..90b4883ec290 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix @@ -0,0 +1,37 @@ +{ stdenv, lib, fetchFromGitHub, python3 +, libnotify ? null }: + +with python3.pkgs; + +buildPythonApplication rec { + pname = "gcalcli"; + version = "4.3.0"; + + src = fetchFromGitHub { + owner = "insanum"; + repo = pname; + rev = "v${version}"; + sha256 = "0s5fhcmz3n0dwh3vkqr4aigi59q43v03ch5jhh6v75149icwr0df"; + }; + + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace gcalcli/argparsers.py \ + --replace "'notify-send" "'${libnotify}/bin/notify-send" + ''; + + propagatedBuildInputs = [ + python-dateutil gflags httplib2 parsedatetime six vobject + google-api-python-client oauth2client uritemplate + libnotify + ]; + + # There are no tests as of 4.0.0a4 + doCheck = false; + + meta = with lib; { + description = "CLI for Google Calendar"; + homepage = "https://github.com/insanum/gcalcli"; + license = licenses.mit; + maintainers = with maintainers; [ nocoolnametom ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gcstar/default.nix b/nixpkgs/pkgs/applications/misc/gcstar/default.nix new file mode 100644 index 000000000000..0ab40b034503 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gcstar/default.nix @@ -0,0 +1,73 @@ +{ lib, stdenv +, fetchFromGitLab +, perlPackages +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "gcstar"; + version = "1.7.3"; + + src = fetchFromGitLab { + owner = "Kerenoc"; + repo = "GCstar"; + rev = "v${version}"; + sha256 = "1hah8ijh9mvcgbh36y3d3s6y79mzz27w24f2i29qllv7cayf6129"; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + + buildInputs = with perlPackages; [ + perl + ArchiveZip + DateCalc + DateTimeFormatStrptime + Glib + Gtk3 + Gtk3SimpleList + GD + GDGraph + GDText + HTMLParser + JSON + ImageExifTool + librelative + LWP + LWPProtocolHttps + MP3Info + MP3Tag + NetFreeDB + OggVorbisHeaderPurePerl + Pango + XMLSimple + XMLParser + ]; + + installPhase = '' + runHook preInstall + + cd gcstar + perl install --text --prefix=$out + + runHook postInstall + ''; + + postFixup = '' + wrapProgram $out/bin/gcstar --prefix PERL5LIB : $PERL5LIB + ''; + + meta = with lib; { + homepage = "https://gitlab.com/Kerenoc/GCstar"; + description = "Manage your collections of movies, games, books, music and more"; + longDescription = '' + GCstar is an application for managing your collections. + It supports many types of collections, including movies, books, games, comics, stamps, coins, and many more. + You can even create your own collection type for whatever unique thing it is that you collect! + Detailed information on each item can be automatically retrieved from the internet and you can store additional data, such as the location or who you've lent it to. + You may also search and filter your collections by many criteria. + ''; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ dasj19 ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/genxword/default.nix b/nixpkgs/pkgs/applications/misc/genxword/default.nix new file mode 100644 index 000000000000..f443618c685a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/genxword/default.nix @@ -0,0 +1,54 @@ +{ lib +, python3 +, fetchFromGitHub +, gettext +, gobject-introspection +, wrapGAppsHook +, pango +, gtksourceview3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "genxword"; + version = "2.1.0"; + + src = fetchFromGitHub { + owner = "riverrun"; + repo = pname; + rev = "v${version}"; + sha256 = "17h8saja45bv612yk0pra9ncbp2mjnx5n10q25nqhl765ks4bmb5"; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + gobject-introspection + pango + gtksourceview3 + ]; + + propagatedBuildInputs = with python3.pkgs; [ + pycairo + pygobject3 + ]; + + # to prevent double wrapping + dontWrapGApps = true; + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + # there are no tests + doCheck = false; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Crossword generator"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix b/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix new file mode 100644 index 000000000000..e85ada2253fe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "geoipupdate"; + version = "4.7.1"; + + src = fetchFromGitHub { + owner = "maxmind"; + repo = "geoipupdate"; + rev = "v${version}"; + sha256 = "sha256-nshQxr6y3TxKsAVSA9mzL7LJfCtpv0QuuTTqk3/lENc="; + }; + + vendorSha256 = "sha256-fqQWFhFeyW4GntRBxEeN6WSOo0G+1hH9vSEZmBKglz8="; + + doCheck = false; + + meta = with lib; { + description = "Automatic GeoIP database updater"; + homepage = "https://github.com/maxmind/geoipupdate"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ das_j ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix new file mode 100644 index 000000000000..f2692243db6b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix @@ -0,0 +1,41 @@ +{ lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}: + +with lib; + +perlPackages.buildPerlPackage rec { + pname = "get_iplayer"; + version = "3.27"; + + src = fetchFromGitHub { + owner = "get-iplayer"; + repo = "get_iplayer"; + rev = "v${version}"; + sha256 = "077y31gg020wjpx5pcivqgkqawcjxh5kjnvq97x2gd7i3wwc30qi"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ perl ]; + propagatedBuildInputs = with perlPackages; [ + HTMLParser HTTPCookies LWP LWPProtocolHttps XMLLibXML XMLSimple + ]; + + preConfigure = "touch Makefile.PL"; + doCheck = false; + outputs = [ "out" "man" ]; + + installPhase = '' + mkdir -p $out/bin $out/share/man/man1 + cp get_iplayer $out/bin + wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB + cp get_iplayer.1 $out/share/man/man1 + ''; + + meta = { + description = "Downloads TV and radio from BBC iPlayer"; + license = licenses.gpl3Plus; + homepage = "https://squarepenguin.co.uk/"; + platforms = platforms.all; + maintainers = with maintainers; [ rika ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/getxbook/default.nix b/nixpkgs/pkgs/applications/misc/getxbook/default.nix new file mode 100644 index 000000000000..6ac5f2327f02 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/getxbook/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, openssl }: + +stdenv.mkDerivation rec { + pname = "getxbook"; + version = "1.2"; + + src = fetchurl { + url = "https://njw.me.uk/getxbook/${pname}-${version}.tar.xz"; + sha256 = "0ihwrx4gspj8l7fc8vxch6dpjrw1lvv9z3c19f0wxnmnxhv1cjvs"; + }; + + NIX_CFLAGS_COMPILE = builtins.toString ( + [ "-Wno-error=deprecated-declarations" ] + ++ lib.optionals (!stdenv.cc.isClang) [ + "-Wno-error=format-truncation" + "-Wno-error=stringop-overflow" + ] + ); + + buildInputs = [ openssl ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "A collection of tools to download books from Google Books"; + homepage = "https://njw.me.uk/getxbook/"; + license = licenses.isc; + maintainers = with maintainers; [ obadz ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/girara/default.nix b/nixpkgs/pkgs/applications/misc/girara/default.nix new file mode 100644 index 000000000000..802c1532979b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/girara/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchurl, meson, ninja, pkg-config, check, dbus, xvfb-run, glib, gtk, gettext, libiconv, json_c, libintl +}: + +stdenv.mkDerivation rec { + pname = "girara"; + version = "0.3.6"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "https://git.pwmt.org/pwmt/${pname}/-/archive/${version}/${pname}-${version}.tar.gz"; + sha256 = "sha256-GPECj0CVxKh+gTfAkkvs13tdiy93il97iqbSTxLQSiM="; + }; + + nativeBuildInputs = [ meson ninja pkg-config gettext check dbus ]; + buildInputs = [ libintl libiconv json_c ]; + propagatedBuildInputs = [ glib gtk ]; + checkInputs = [ xvfb-run ]; + + doCheck = !stdenv.isDarwin; + + mesonFlags = [ + "-Ddocs=disabled" # docs do not seem to be installed + ]; + + checkPhase = '' + export NO_AT_BRIDGE=1 + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --print-errorlogs + ''; + + meta = with lib; { + homepage = "https://git.pwmt.org/pwmt/girara"; + description = "User interface library"; + longDescription = '' + girara is a library that implements a GTK based VIM-like user interface + that focuses on simplicity and minimalism. + ''; + license = licenses.zlib; + platforms = platforms.linux ++ platforms.darwin; + maintainers = [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gitit/default.nix b/nixpkgs/pkgs/applications/misc/gitit/default.nix new file mode 100644 index 000000000000..a4ffd3bf88d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gitit/default.nix @@ -0,0 +1,61 @@ +{ lib, haskellPackages, haskell, removeReferencesTo +# “Plugins” are a fancy way of saying gitit will invoke +# GHC at *runtime*, which in turn makes it pull GHC +# into its runtime closure. Only enable if you really need +# that feature. But if you do you’ll want to use gitit +# as a library anyway. +, pluginSupport ? false +}: + +# this is similar to what we do with the pandoc executable + +let + plain = haskellPackages.gitit; + plugins = + if pluginSupport + then plain + else haskell.lib.disableCabalFlag plain "plugins"; + static = haskell.lib.justStaticExecutables plugins; + +in + (haskell.lib.overrideCabal static (drv: { + buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ]; + })).overrideAttrs (drv: { + + # These libraries are still referenced, because they generate + # a `Paths_*` module for figuring out their version. + # The `Paths_*` module is generated by Cabal, and contains the + # version, but also paths to e.g. the data directories, which + # lead to a transitive runtime dependency on the whole GHC distribution. + # This should ideally be fixed in haskellPackages (or even Cabal), + # but a minimal gitit is important enough to patch it manually. + disallowedReferences = [ + haskellPackages.pandoc-types + haskellPackages.HTTP + haskellPackages.pandoc + haskellPackages.happstack-server + haskellPackages.filestore + ]; + postInstall = '' + remove-references-to \ + -t ${haskellPackages.pandoc-types} \ + $out/bin/gitit + remove-references-to \ + -t ${haskellPackages.HTTP} \ + $out/bin/gitit + remove-references-to \ + -t ${haskellPackages.pandoc} \ + $out/bin/gitit + remove-references-to \ + -t ${haskellPackages.happstack-server} \ + $out/bin/gitit + remove-references-to \ + -t ${haskellPackages.filestore} \ + $out/bin/gitit + ''; + + meta = drv.meta // { + maintainers = drv.meta.maintainers or [] + ++ [ lib.maintainers.Profpatsch ]; + }; + }) diff --git a/nixpkgs/pkgs/applications/misc/gkrellm/default.nix b/nixpkgs/pkgs/applications/misc/gkrellm/default.nix new file mode 100644 index 000000000000..aaaab255c763 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gkrellm/default.nix @@ -0,0 +1,64 @@ +{ lib, fetchurl, stdenv, gettext, pkg-config, glib, gtk2, libX11, libSM, libICE, which +, IOKit, copyDesktopItems, makeDesktopItem, wrapGAppsHook +}: + +with lib; + +stdenv.mkDerivation rec { + name = "gkrellm-2.3.11"; + + src = fetchurl { + url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2"; + sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y"; + }; + + nativeBuildInputs = [ copyDesktopItems pkg-config which wrapGAppsHook ]; + buildInputs = [gettext glib gtk2 libX11 libSM libICE] + ++ optionals stdenv.isDarwin [ IOKit ]; + + hardeningDisable = [ "format" ]; + + # Makefiles are patched to fix references to `/usr/X11R6' and to add + # `-lX11' to make sure libX11's store path is in the RPATH. + postPatch = '' + echo "patching makefiles..." + for i in Makefile src/Makefile server/Makefile + do + sed -i "$i" -e "s|/usr/X11R6|${libX11.dev}|g ; s|-lICE|-lX11 -lICE|g" + done + ''; + + makeFlags = [ "STRIP=-s" ]; + installFlags = [ "DESTDIR=$(out)" ]; + + # This icon is used by the desktop file. + postInstall = '' + install -Dm444 -T src/icon.xpm $out/share/pixmaps/gkrellm.xpm + ''; + + desktopItems = [ + (makeDesktopItem { + name = "gkrellm"; + exec = "gkrellm"; + icon = "gkrellm"; + desktopName = "GKrellM"; + genericName = "System monitor"; + comment = "The GNU Krell Monitors"; + categories = "System;Monitor;"; + }) + ]; + + meta = { + description = "Themeable process stack of system monitors"; + longDescription = '' + GKrellM is a single process stack of system monitors which + supports applying themes to match its appearance to your window + manager, Gtk, or any other theme. + ''; + + homepage = "http://gkrellm.srcbox.net"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ khumba ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gksu/default.nix b/nixpkgs/pkgs/applications/misc/gksu/default.nix new file mode 100644 index 000000000000..c1a4ea2b6789 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gksu/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchurl, pkg-config, gtk2, gnome2, gnome, libgksu, + intltool, libstartup_notification, gtk-doc, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + version = "2.0.2"; + pname = "gksu"; + + src = fetchurl { + url = "http://people.debian.org/~kov/gksu/${pname}-${version}.tar.gz"; + sha256 = "0npfanlh28daapkg25q4fncxd89rjhvid5fwzjaw324x0g53vpm1"; + }; + + nativeBuildInputs = [ + pkg-config intltool gtk-doc wrapGAppsHook + ]; + + buildInputs = [ + gtk2 gnome2.GConf libstartup_notification gnome.libgnome-keyring + ]; + + propagatedBuildInputs = [ + libgksu + ]; + + hardeningDisable = [ "format" ]; + + patches = [ + # https://savannah.nongnu.org/bugs/index.php?36127 + ./gksu-2.0.2-glib-2.31.patch + ]; + + postPatch = '' + sed -i -e 's|/usr/bin/x-terminal-emulator|-l gnome-terminal|g' gksu.desktop + ''; + + configureFlags = [ "--disable-nautilus-extension" ]; + + meta = { + description = "A graphical frontend for libgksu"; + longDescription = '' + GKSu is a library that provides a GTK frontend to su and sudo. + It supports login shells and preserving environment when acting as + a su frontend. It is useful to menu items or other graphical + programs that need to ask a user's password to run another program + as another user. + ''; + homepage = "https://www.nongnu.org/gksu/"; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.romildo ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch b/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch new file mode 100644 index 000000000000..fd711a321acf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch @@ -0,0 +1,29 @@ +From 10c7e67e11a56e2fe1acf9b085772bc995d35bc0 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gentoo.org> +Date: Sat, 7 Apr 2012 17:57:36 -0400 +Subject: [PATCH] Fix glib includes for building with >=glib-2.31 + +glib-2.31 and newer no longer allow most glib subheaders to be included +directly. + +https://savannah.nongnu.org/bugs/index.php?36127 +--- + nautilus-gksu/libnautilus-gksu.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/nautilus-gksu/libnautilus-gksu.c b/nautilus-gksu/libnautilus-gksu.c +index 8e44d29..4acf3f8 100644 +--- a/nautilus-gksu/libnautilus-gksu.c ++++ b/nautilus-gksu/libnautilus-gksu.c +@@ -5,7 +5,7 @@ + #include <string.h> + #include <pthread.h> + +-#include <glib/gkeyfile.h> ++#include <glib.h> + #include <gtk/gtk.h> + #include <gio/gio.h> + #include <libnautilus-extension/nautilus-extension-types.h> +-- +1.7.8.5 + diff --git a/nixpkgs/pkgs/applications/misc/glava/default.nix b/nixpkgs/pkgs/applications/misc/glava/default.nix new file mode 100644 index 000000000000..a0af30ac84b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/glava/default.nix @@ -0,0 +1,92 @@ +{ lib, stdenv, writeScript, fetchFromGitHub +, libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite +, enableGlfw ? false, glfw, runtimeShell }: + +let + inherit (lib) optional makeLibraryPath; + + wrapperScript = writeScript "glava" '' + #!${runtimeShell} + case "$1" in + --copy-config|-C) + # The binary would symlink it, which won't work in Nix because the + # garbage collector will eventually remove the original files after + # updates + echo "Nix wrapper: Copying glava config to ~/.config/glava" + cp -r --no-preserve=all @out@/etc/xdg/glava ~/.config/glava + ;; + *) + exec @out@/bin/.glava-unwrapped "$@" + esac + ''; +in + stdenv.mkDerivation rec { + pname = "glava"; + version = "1.6.3"; + + src = fetchFromGitHub { + owner = "wacossusca34"; + repo = "glava"; + rev = "v${version}"; + sha256 = "0kqkjxmpqkmgby05lsf6c6iwm45n33jk5qy6gi3zvjx4q4yzal1i"; + }; + + buildInputs = [ + libX11 + libXext + libXrandr + libXrender + libpulseaudio + libXcomposite + ] ++ optional enableGlfw glfw; + + nativeBuildInputs = [ + python3 + ]; + + preConfigure = '' + for f in $(find -type f);do + substituteInPlace $f \ + --replace /etc/xdg $out/etc/xdg + done + + substituteInPlace Makefile \ + --replace '$(DESTDIR)$(SHADERDIR)' '$(SHADERDIR)' + + substituteInPlace Makefile \ + --replace 'unknown' 'v${version}' + + export CFLAGS="-march=native" + ''; + + makeFlags = optional (!enableGlfw) "DISABLE_GLFW=1"; + + installFlags = [ + "DESTDIR=$(out)" + ]; + + fixupPhase = '' + mkdir -p $out/bin + mv $out/usr/bin/glava $out/bin/.glava-unwrapped + rm -rf $out/usr + + patchelf \ + --set-rpath "$(patchelf --print-rpath $out/bin/.glava-unwrapped):${makeLibraryPath [ libGL ]}" \ + $out/bin/.glava-unwrapped + + substitute ${wrapperScript} $out/bin/glava --subst-var out + chmod +x $out/bin/glava + ''; + + meta = with lib; { + description = '' + OpenGL audio spectrum visualizer + ''; + homepage = "https://github.com/wacossusca34/glava"; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ + eadwu + ]; + }; + } diff --git a/nixpkgs/pkgs/applications/misc/glom/default.nix b/nixpkgs/pkgs/applications/misc/glom/default.nix new file mode 100644 index 000000000000..47d56288ed2f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/glom/default.nix @@ -0,0 +1,131 @@ +{ lib, stdenv +, fetchurl +, pkg-config +, autoconf +, automake +, libtool +, mm-common +, intltool +, itstool +, doxygen +, graphviz +, makeFontsConf +, freefont_ttf +, boost +, libxmlxx3 +, libxslt +, libgdamm +, libarchive +, libepc +, python3 +, ncurses +, glibmm +, gtk3 +, openssl +, gtkmm3 +, goocanvasmm2 +, evince +, isocodes +, gtksourceview +, gtksourceviewmm +, postgresql +, gobject-introspection +, yelp-tools +, wrapGAppsHook +}: + +let + gda = libgdamm.override { + mysqlSupport = true; + postgresSupport = true; + }; + python = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]); + sphinx-build = python3.pkgs.sphinx.overrideAttrs (super: { + postFixup = super.postFixup or "" + '' + # Do not propagate Python + rm $out/nix-support/propagated-build-inputs + ''; + }); + boost_python = boost.override { enablePython = true; inherit python; }; +in stdenv.mkDerivation rec { + pname = "glom"; + version = "1.32.0"; + + outputs = [ "out" "lib" "dev" "doc" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1wcd4kd3crwqjv0jfp73jkyyf5ws8mvykg37kqxmcb58piz21gsk"; + }; + + nativeBuildInputs = [ + pkg-config + autoconf + automake + libtool + mm-common + intltool + yelp-tools + itstool + doxygen + graphviz + sphinx-build + wrapGAppsHook + gobject-introspection # for setup hook + ]; + + buildInputs = [ + boost_python + glibmm + gtk3 + openssl + libxmlxx3 + libxslt + gda + libarchive + libepc + python + ncurses # for python + gtkmm3 + goocanvasmm2 + evince + isocodes + python3.pkgs.pygobject3 + gtksourceview + gtksourceviewmm + postgresql # for pg_config + ]; + + enableParallelBuilding = true; + + preConfigure = "NOCONFIGURE=1 ./autogen.sh"; + + configureFlags = [ + "--with-boost-python=boost_python${lib.versions.major python3.version}${lib.versions.minor python3.version}" + ]; + + makeFlags = [ + "libdocdir=${placeholder "doc"}/share/doc/$(book_name)" + "devhelpdir=${placeholder "devdoc"}/share/devhelp/books/$(book_name)" + ]; + + # Fontconfig error: Cannot load default config file + FONTCONFIG_FILE = makeFontsConf { + fontDirectories = [ freefont_ttf ]; + }; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PYTHONPATH : "${placeholder "out"}/${python3.sitePackages}" + --set PYTHONHOME "${python}" + ) + ''; + + meta = with lib; { + description = "An easy-to-use database designer and user interface"; + homepage = "http://www.glom.org/"; + license = [ licenses.lgpl2 licenses.gpl2 ]; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gmnitohtml/default.nix b/nixpkgs/pkgs/applications/misc/gmnitohtml/default.nix new file mode 100644 index 000000000000..a4b6f9403c64 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gmnitohtml/default.nix @@ -0,0 +1,46 @@ +{ lib, buildGoModule, fetchFromSourcehut, scdoc, installShellFiles }: + +buildGoModule rec { + pname = "gmnitohtml"; + version = "0.1.1"; + + src = fetchFromSourcehut { + owner = "~adnano"; + repo = pname; + rev = version; + hash = "sha256-XcHJbqmfSkW6lt2xRlrf9AJfwLOZqdgsL1v0aK2bQwo="; + }; + vendorSha256 = "sha256-Cx8x8AISRVTA4Ufd73vOVky97LX23NkizHDingr/zVk="; + + ldflags = [ "-s" "-w" ]; + + # Build and install the man pages + nativeBuildInputs = [ scdoc installShellFiles ]; + + postBuild = '' + make gmnitohtml.1 + ''; + + postInstall = '' + installManPage gmnitohtml.1 + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/gmnitohtml --help + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://git.sr.ht/~adnano/gmnitohtml"; + changelog = "https://git.sr.ht/~adnano/gmnitohtml/log"; + description = "Gemini text to HTML converter"; + longDescription = '' + he gmnitohtml utility reads Gemini text from the standard input and writes + HTML to the standard output. + ''; + license = licenses.mit; + maintainers = with maintainers; [ jk sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gmrun/default.nix b/nixpkgs/pkgs/applications/misc/gmrun/default.nix new file mode 100644 index 000000000000..bd99adf94359 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gmrun/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, glib, gtk2, pkg-config, popt }: + +let + version = "0.9.2"; +in + +stdenv.mkDerivation rec { + pname = "gmrun"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/gmrun/${pname}-${version}.tar.gz"; + sha256 = "180z6hbax1qypy5cyy2z6nn7fzxla4ib47ck8mqwr714ag77na8p"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ glib gtk2 popt ]; + + doCheck = true; + + enableParallelBuilding = true; + + patches = [ + ./gcc43.patch + ./find-config-file-in-system-etc-dir.patch + ./gmrun-0.9.2-xdg.patch + ]; + + meta = with lib; { + description = "Gnome Completion-Run Utility"; + longDescription = '' + A simple program which provides a "run program" window, featuring a bash-like TAB completion. + It uses GTK interface. + Also, supports CTRL-R / CTRL-S / "!" for searching through history. + Running commands in a terminal with CTRL-Enter. URL handlers. + ''; + homepage = "https://sourceforge.net/projects/gmrun/"; + license = licenses.gpl2; + maintainers = []; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gmrun/find-config-file-in-system-etc-dir.patch b/nixpkgs/pkgs/applications/misc/gmrun/find-config-file-in-system-etc-dir.patch new file mode 100644 index 000000000000..12d5370961c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gmrun/find-config-file-in-system-etc-dir.patch @@ -0,0 +1,18 @@ +diff -ur gmrun-0.9.2-orig/src/prefs.cc gmrun-0.9.2/src/prefs.cc +--- gmrun-0.9.2-orig/src/prefs.cc 2019-05-02 12:56:39.025088361 +0200 ++++ gmrun-0.9.2/src/prefs.cc 2019-05-02 13:21:51.179778620 +0200 +@@ -31,9 +31,11 @@ + + Prefs::Prefs() + { +- string file_name = PACKAGE_DATA_DIR"/"; +- file_name += GMRUNRC; +- init(file_name); ++ string file_name = "/etc/" GMRUNRC; ++ if (!init(file_name)) { ++ file_name = PACKAGE_DATA_DIR "/" GMRUNRC;; ++ init(file_name); ++ } + + file_name = getenv("HOME"); + if (!file_name.empty()) { diff --git a/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch b/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch new file mode 100644 index 000000000000..60e4338e893d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch @@ -0,0 +1,51 @@ +--- a/src/gtkcompletionline.cc.orig 2003-11-16 11:55:07.000000000 +0100 ++++ a/src/gtkcompletionline.cc 2008-05-08 08:51:22.000000000 +0200 +@@ -29,6 +29,7 @@ + #include <set> + #include <sstream> + #include <string> ++#include <cstring> + #include <vector> + using namespace std; + +--- a/src/ci_string.h.orig 2001-05-16 16:39:31.000000000 +0200 ++++ a/src/ci_string.h 2008-05-08 08:51:33.000000000 +0200 +@@ -7,6 +7,7 @@ + #define __CI_STRING_H__ + + #include <string> ++#include <cstring> + #include <ctype.h> + + struct ci_char_traits : public std::char_traits<char> +--- a/src/prefs.cc.orig 2002-08-16 12:48:22.000000000 +0200 ++++ a/src/prefs.cc 2008-05-08 08:51:54.000000000 +0200 +@@ -13,6 +13,7 @@ + #include <fstream> + #include <iostream> + #include <stdio.h> ++#include <stdlib.h> + + #include <list> + +--- a/src/main.cc.orig 2003-11-16 11:55:07.000000000 +0100 ++++ a/src/main.cc 2008-05-08 09:03:11.000000000 +0200 +@@ -14,6 +14,7 @@ + #include <gdk/gdkkeysyms.h> + + #include <string> ++#include <cstring> + #include <iostream> + #include <sstream> + #include <vector> + +--- a/src/gtkcompletionline.cc.orig 2009-06-19 22:38:14.000000000 +0400 ++++ a/src/gtkcompletionline.cc 2009-06-19 22:37:14.000000000 +0400 +@@ -376,7 +377,7 @@ + return 0; + } + +-int my_alphasort(const void* va, const void* vb) { ++int my_alphasort(const dirent** va, const dirent** vb) { + const struct dirent** a = (const struct dirent**)va; + const struct dirent** b = (const struct dirent**)vb; diff --git a/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch b/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch new file mode 100644 index 000000000000..b5cd41a3c5b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch @@ -0,0 +1,58 @@ +diff -ur a/src/history.cc src/history.cc +--- a/src/history.cc 2002-08-17 15:19:31.000000000 +0200 ++++ a/src/history.cc 2012-06-04 23:42:35.314653414 +0200 +@@ -24,8 +24,15 @@ + HistoryFile::HistoryFile() + { + m_file_entries = 0; +- m_filename = g_get_home_dir(); +- m_filename += "/.gmrun_history"; ++ const char* filename = getenv("XDG_CACHE_HOME"); ++ if (filename != 0 && *filename != '\0') { ++ m_filename = filename; ++ m_filename += "/gmrun_history"; ++ } ++ else { ++ m_filename = g_get_home_dir(); ++ m_filename += "/.gmrun_history"; ++ } + m_current = 0; + m_default_set = false; + read_the_file(); +diff -ur a/src/prefs.cc src/prefs.cc +--- a/src/prefs.cc 2012-06-04 22:35:00.671949439 +0200 ++++ a/src/prefs.cc 2012-06-04 23:24:24.184445962 +0200 +@@ -35,12 +35,29 @@ + file_name += GMRUNRC; + init(file_name); + +- file_name = getenv("HOME"); +- if (!file_name.empty()) { ++ file_name.clear(); ++ const char* filename = getenv("XDG_CONFIG_HOME"); ++ if (filename != 0 && *filename != '\0') { ++ file_name = filename; + string::iterator i = file_name.end() - 1; +- if (*i == '/') file_name.erase(i); +- file_name += "/."; ++ if (*i != '/') { ++ file_name += '/'; ++ } + file_name += GMRUNRC; ++ } ++ else { ++ filename = getenv("HOME"); ++ if (filename != 0 && *filename != '\0') { ++ file_name = filename; ++ string::iterator i = file_name.end() - 1; ++ if (*i != '/') { ++ file_name += '/'; ++ } ++ file_name += '.'; ++ file_name += GMRUNRC; ++ } ++ } ++ if (!file_name.empty()) { + init(file_name); + } + } diff --git a/nixpkgs/pkgs/applications/misc/gmtp/default.nix b/nixpkgs/pkgs/applications/misc/gmtp/default.nix new file mode 100644 index 000000000000..1479fe7bc7d8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gmtp/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, pkg-config, libmtp, libid3tag, flac, libvorbis, gtk3 +, gsettings-desktop-schemas, wrapGAppsHook +}: + +let version = "1.3.11"; in + +stdenv.mkDerivation { + pname = "gmtp"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/gmtp/gMTP-${version}/gmtp-${version}.tar.gz"; + sha256 = "04q6byyq002fhzkc2rkkahwh5b6272xakaj4m3vwm8la8jf0r0ss"; + }; + + nativeBuildInputs = [ pkg-config wrapGAppsHook ]; + buildInputs = [ libmtp libid3tag flac libvorbis gtk3 gsettings-desktop-schemas ]; + + enableParallelBuilding = true; + + preFixup = '' + gappsWrapperArgs+=(--add-flags "--datapath \"$out/share\""); + ''; + + meta = { + description = "A simple MP3 and Media player client for UNIX and UNIX like systems"; + homepage = "https://gmtp.sourceforge.io"; + platforms = lib.platforms.linux; + maintainers = [ ]; + license = lib.licenses.bsd3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gnome-firmware-updater/default.nix b/nixpkgs/pkgs/applications/misc/gnome-firmware-updater/default.nix new file mode 100644 index 000000000000..30d3b57003d1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gnome-firmware-updater/default.nix @@ -0,0 +1,75 @@ +{ lib, stdenv +, fetchFromGitLab +, fetchpatch +, appstream-glib +, desktop-file-utils +, fwupd +, gettext +, glib +, gtk3 +, libsoup +, libxmlb +, meson +, ninja +, pkg-config +, systemd +, help2man +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "gnome-firmware-updater"; + version = "3.34.0"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "hughsie"; + repo = "gnome-firmware-updater"; + rev = version; + sha256 = "04pll0fzf4nr276kfw89r0524s6ppmls5rz4vq2j8c8gb50g0b6l"; + }; + + patches = [ + # Fixes manual build + (fetchpatch { + url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/006b64dcb401d8c81a33222bc4be8274c23f3c9c.patch"; + sha256 = "02303ip4ri5pv1bls8c0njb00qhn0jd0d8rmvsrig0fmacwfvc06"; + }) + (fetchpatch { + url = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater/commit/c4f076f2c902080618e0c27dec924fd0019f68a3.patch"; + sha256 = "1yfxd7qsg3gwpamg0m2sbcfrgks59w70r9728arrc4pwx1hia2q1"; + }) + ]; + + nativeBuildInputs = [ + appstream-glib # for ITS rules + desktop-file-utils + gettext + help2man + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + fwupd + glib + gtk3 + libsoup + libxmlb + systemd + ]; + + mesonFlags = [ + "-Dconsolekit=false" + ]; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/hughsie/gnome-firmware-updater"; + description = "Tool for installing firmware on devices"; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix b/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix new file mode 100644 index 000000000000..31d81a332790 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix @@ -0,0 +1,62 @@ +{ lib, stdenv +, fetchurl +, appstream-glib +, desktop-file-utils +, gettext +, glib +, gnome +, gtk3 +, gusb +, libcanberra-gtk3 +, libgudev +, meson +, ninja +, pkg-config +, wrapGAppsHook +, polkit +, udisks +}: + +stdenv.mkDerivation rec { + pname = "gnome-multi-writer"; + version = "3.35.90"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"; + }; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + gettext + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + gusb + libcanberra-gtk3 + libgudev + polkit + udisks + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + description = "Tool for writing an ISO file to multiple USB devices at once"; + homepage = "https://wiki.gnome.org/Apps/MultiWriter"; + license = licenses.gpl2Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix b/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix new file mode 100644 index 000000000000..34f4aa71a38a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gnome-passwordsafe/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv +, meson +, ninja +, pkg-config +, gettext +, fetchFromGitLab +, python3Packages +, libhandy +, libpwquality +, wrapGAppsHook +, gtk3 +, glib +, gdk-pixbuf +, gobject-introspection +, desktop-file-utils +, appstream-glib }: + +python3Packages.buildPythonApplication rec { + pname = "gnome-passwordsafe"; + version = "5.0"; + format = "other"; + strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943 + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "PasswordSafe"; + rev = version; + sha256 = "8EFKLNK7rZlYL2g/7FmaC5r5hcdblsnod/aB8NYiBvY="; + }; + + nativeBuildInputs = [ + meson + ninja + gettext + pkg-config + wrapGAppsHook + desktop-file-utils + appstream-glib + gobject-introspection + ]; + + buildInputs = [ + gtk3 + glib + gdk-pixbuf + libhandy + ]; + + propagatedBuildInputs = with python3Packages; [ + pygobject3 + construct + pykeepass + ] ++ [ + libpwquality # using the python bindings + ]; + + meta = with lib; { + broken = stdenv.hostPlatform.isStatic; # libpwquality doesn't provide bindings when static + description = "Password manager for GNOME which makes use of the KeePass v.4 format"; + homepage = "https://gitlab.gnome.org/World/PasswordSafe"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ mvnetbiz ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix b/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix new file mode 100644 index 000000000000..b35319c38630 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix @@ -0,0 +1,79 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, gnome +, desktop-file-utils +, gettext +, itstool +, python3 +, wrapGAppsHook +, gtk3 +, glib +, libsoup +, gnome-online-accounts +, librest +, json-glib +, gnome-autoar +, gspell +, libcanberra }: + +let + pname = "gnome-recipes"; + version = "2.0.2"; +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz"; + sha256 = "1yymii3yf823d9x28fbhqdqm1wa30s40j94x0am9fjj0nzyd5s8v"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + desktop-file-utils + gettext + itstool + python3 + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + glib + libsoup + gnome-online-accounts + librest + json-glib + gnome-autoar + gspell + libcanberra + ]; + + # https://github.com/NixOS/nixpkgs/issues/36468 + # https://gitlab.gnome.org/GNOME/recipes/issues/76 + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + postPatch = '' + chmod +x src/list_to_c.py + patchShebangs src/list_to_c.py + patchShebangs meson_post_install.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + description = "Recipe management application for GNOME"; + homepage = "https://wiki.gnome.org/Apps/Recipes"; + maintainers = teams.gnome.members; + license = licenses.gpl3; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix new file mode 100644 index 000000000000..a1b92572679c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, vala +, gettext +, libxml2 +, desktop-file-utils +, wrapGAppsHook +, glib +, gtk3 +, libgtop +, libdazzle +, gnome +, tracker +, libhandy +}: + +stdenv.mkDerivation rec { + pname = "gnome-usage"; + version = "3.38.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "mMdm4X4VZXEfx0uaJP0u0NX618y0VRlhLdTiFHaO05M="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + libxml2 + meson + ninja + pkg-config + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + gnome.adwaita-icon-theme + gtk3 + libdazzle + libgtop + tracker + libhandy + ]; + + postPatch = '' + chmod +x build-aux/meson/postinstall.sh + patchShebangs build-aux/meson/postinstall.sh + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + description = "A nice way to view information about use of system resources, like memory and disk space"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = teams.gnome.members; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/go-jira/default.nix b/nixpkgs/pkgs/applications/misc/go-jira/default.nix new file mode 100644 index 000000000000..4a368e92ec33 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/go-jira/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "go-jira"; + version = "1.0.28"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "go-jira"; + repo = "jira"; + sha256 = "sha256-h/x77xGqdOxPBxdchElZU9GFgjnNo89o9gx4fYM5dME="; + }; + + vendorSha256 = "sha256-r69aFl3GwgZ1Zr4cEy4oWlqsrjNCrqjwW9BU9+d8xDQ="; + + doCheck = false; + + meta = with lib; { + description = "Simple command line client for Atlassian's Jira service written in Go"; + homepage = "https://github.com/go-jira/jira"; + license = licenses.asl20; + maintainers = with maintainers; [ carlosdagos timstott ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/go-org/default.nix b/nixpkgs/pkgs/applications/misc/go-org/default.nix new file mode 100644 index 000000000000..3e3bc67e8978 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/go-org/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "go-org"; + version = "1.5.0"; + + src = fetchFromGitHub { + owner = "niklasfasching"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-Wp8WEfRcrtn+VdcbehYcOJI5FkPQiyo6nLsTDvR7riE="; + }; + + vendorSha256 = "sha256-njx89Ims7GZql8sbVmH/E9gM/ONRWiPRLVs+FzsCSzI="; + + postInstallCheck = '' + $out/bin/go-org > /dev/null + ''; + + meta = with lib; { + description = "Org-mode parser and static site generator in go"; + homepage = "https://niklasfasching.github.io/go-org"; + license = licenses.mit; + maintainers = with maintainers; [ payas ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix new file mode 100644 index 000000000000..53c0a96060e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix @@ -0,0 +1,74 @@ +{ lib, fetchFromGitHub, fetchpatch, mkDerivation +, qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools +, qtconnectivity, qtcharts, libusb-compat-0_1, gsl, blas +, bison, flex, zlib, qmake, makeDesktopItem, makeWrapper +}: + +let + desktopItem = makeDesktopItem { + name = "goldencheetah"; + exec = "GoldenCheetah"; + icon = "goldencheetah"; + desktopName = "GoldenCheetah"; + genericName = "GoldenCheetah"; + comment = "Performance software for cyclists, runners and triathletes"; + categories = "Utility;"; + }; +in mkDerivation rec { + pname = "golden-cheetah"; + version = "3.6-DEV2107"; + + src = fetchFromGitHub { + owner = "GoldenCheetah"; + repo = "GoldenCheetah"; + rev = "v${version}"; + sha256 = "1d54x3pv27w1ys2f5l7gnfhyijhgcgdjnq1c1mj7hvg35dmh054d"; + }; + + buildInputs = [ + qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib + qtconnectivity qtcharts libusb-compat-0_1 gsl blas + ]; + nativeBuildInputs = [ flex makeWrapper qmake bison ]; + + patches = [ + # allow building with bison 3.7 + # PR at https://github.com/GoldenCheetah/GoldenCheetah/pull/3590 + (fetchpatch { + url = "https://github.com/GoldenCheetah/GoldenCheetah/commit/e1f42f8b3340eb4695ad73be764332e75b7bce90.patch"; + sha256 = "1h0y9vfji5jngqcpzxna5nnawxs77i1lrj44w8a72j0ah0sznivb"; + }) + ]; + + NIX_LDFLAGS = "-lz -lgsl -lblas"; + + qtWrapperArgs = [ "--prefix" "LD_LIBRARY_PATH" ":" "${zlib.out}/lib" ]; + + preConfigure = '' + cp src/gcconfig.pri.in src/gcconfig.pri + cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri + echo 'QMAKE_LRELEASE = ${qttools.dev}/bin/lrelease' >> src/gcconfig.pri + echo 'LIBUSB_INSTALL = ${libusb-compat-0_1}' >> src/gcconfig.pri + echo 'LIBUSB_INCLUDE = ${libusb-compat-0_1.dev}/include' >> src/gcconfig.pri + echo 'LIBUSB_LIBS = -L${libusb-compat-0_1}/lib -lusb' >> src/gcconfig.pri + sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp src/GoldenCheetah $out/bin + install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/ + install -Dm644 src/Resources/images/gc.png $out/share/pixmaps/goldencheetah.png + + runHook postInstall + ''; + + meta = with lib; { + description = "Performance software for cyclists, runners and triathletes"; + platforms = platforms.linux; + maintainers = [ ]; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-check-for-updates.patch b/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-check-for-updates.patch new file mode 100644 index 000000000000..31c7a6382292 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-check-for-updates.patch @@ -0,0 +1,49 @@ +diff --git i/config.cc w/config.cc +index 04b63f5..7a453d9 100644 +--- i/config.cc ++++ w/config.cc +@@ -182,7 +182,7 @@ Preferences::Preferences(): + pronounceOnLoadPopup( false ), + useInternalPlayer( InternalPlayerBackend::anyAvailable() ), + internalPlayerBackend( InternalPlayerBackend::defaultBackend() ), +- checkForNewReleases( true ), ++ checkForNewReleases( false ), + disallowContentFromOtherSites( false ), + enableWebPlugins( false ), + hideGoldenDictHeader( false ), +@@ -867,8 +867,8 @@ Class load() THROW_SPEC( exError ) + c.preferences.proxyServer.systemProxyPassword = proxy.namedItem( "systemProxyPassword" ).toElement().text(); + } + +- if ( !preferences.namedItem( "checkForNewReleases" ).isNull() ) +- c.preferences.checkForNewReleases = ( preferences.namedItem( "checkForNewReleases" ).toElement().text() == "1" ); ++ //if ( !preferences.namedItem( "checkForNewReleases" ).isNull() ) ++ // c.preferences.checkForNewReleases = ( preferences.namedItem( "checkForNewReleases" ).toElement().text() == "1" ); + + if ( !preferences.namedItem( "disallowContentFromOtherSites" ).isNull() ) + c.preferences.disallowContentFromOtherSites = ( preferences.namedItem( "disallowContentFromOtherSites" ).toElement().text() == "1" ); +@@ -1819,9 +1819,9 @@ void save( Class const & c ) THROW_SPEC( exError ) + proxy.appendChild( opt ); + } + +- opt = dd.createElement( "checkForNewReleases" ); +- opt.appendChild( dd.createTextNode( c.preferences.checkForNewReleases ? "1" : "0" ) ); +- preferences.appendChild( opt ); ++ //opt = dd.createElement( "checkForNewReleases" ); ++ //opt.appendChild( dd.createTextNode( c.preferences.checkForNewReleases ? "1" : "0" ) ); ++ //preferences.appendChild( opt ); + + opt = dd.createElement( "disallowContentFromOtherSites" ); + opt.appendChild( dd.createTextNode( c.preferences.disallowContentFromOtherSites ? "1" : "0" ) ); +diff --git i/preferences.cc w/preferences.cc +index 72c3147..7e48f00 100644 +--- i/preferences.cc ++++ w/preferences.cc +@@ -314,6 +314,7 @@ Preferences::Preferences( QWidget * parent, Config::Class & cfg_ ): + this, SLOT( customProxyToggled( bool ) ) ); + + ui.checkForNewReleases->setChecked( p.checkForNewReleases ); ++ ui.checkForNewReleases->setEnabled( false ); + ui.disallowContentFromOtherSites->setChecked( p.disallowContentFromOtherSites ); + ui.enableWebPlugins->setChecked( p.enableWebPlugins ); + ui.hideGoldenDictHeader->setChecked( p.hideGoldenDictHeader ); diff --git a/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch b/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch new file mode 100644 index 000000000000..7a5ca0f7f3c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch @@ -0,0 +1,62 @@ +diff --git i/goldendict.pro w/goldendict.pro +index 4a4a3094..082b728f 100644 +--- i/goldendict.pro ++++ w/goldendict.pro +@@ -212,22 +212,19 @@ mac { + -llzo2 + !CONFIG( no_ffmpeg_player ) { + LIBS += -lao \ +- -lswresample-gd \ +- -lavutil-gd \ +- -lavformat-gd \ +- -lavcodec-gd ++ -lswresample \ ++ -lavutil \ ++ -lavformat \ ++ -lavcodec + } +- INCLUDEPATH = $${PWD}/maclibs/include +- LIBS += -L$${PWD}/maclibs/lib -framework AppKit -framework Carbon ++ LIBS += -framework AppKit -framework Carbon + OBJECTIVE_SOURCES += lionsupport.mm \ + machotkeywrapper.mm \ + macmouseover.mm \ + speechclient_mac.mm + ICON = icons/macicon.icns + QMAKE_INFO_PLIST = myInfo.plist +- QMAKE_POST_LINK = mkdir -p GoldenDict.app/Contents/Frameworks & \ +- cp -nR $${PWD}/maclibs/lib/ GoldenDict.app/Contents/Frameworks/ & \ +- mkdir -p GoldenDict.app/Contents/MacOS/locale & \ ++ QMAKE_POST_LINK = mkdir -p GoldenDict.app/Contents/MacOS/locale & \ + cp -R locale/*.qm GoldenDict.app/Contents/MacOS/locale/ & \ + mkdir -p GoldenDict.app/Contents/MacOS/help & \ + cp -R $${PWD}/help/*.qch GoldenDict.app/Contents/MacOS/help/ +@@ -235,15 +232,6 @@ mac { + CONFIG += zim_support + !CONFIG( no_chinese_conversion_support ) { + CONFIG += chinese_conversion_support +- CONFIG( x86 ) { +- QMAKE_POST_LINK += & mkdir -p GoldenDict.app/Contents/MacOS/opencc & \ +- cp -R $${PWD}/opencc/*.json GoldenDict.app/Contents/MacOS/opencc/ & \ +- cp -R $${PWD}/opencc/*.ocd GoldenDict.app/Contents/MacOS/opencc/ +- } else { +- QMAKE_POST_LINK += & mkdir -p GoldenDict.app/Contents/MacOS/opencc & \ +- cp -R $${PWD}/opencc/x64/*.json GoldenDict.app/Contents/MacOS/opencc/ & \ +- cp -R $${PWD}/opencc/x64/*.ocd GoldenDict.app/Contents/MacOS/opencc/ +- } + } + } + DEFINES += PROGRAM_VERSION=\\\"$$VERSION\\\" +diff --git i/tiff.cc w/tiff.cc +index e3cb8bf5..95dd812f 100644 +--- i/tiff.cc ++++ w/tiff.cc +@@ -5,7 +5,7 @@ + + #include "tiff.hh" + +-#if defined (Q_OS_MAC) || defined (Q_OS_WIN) ++#if defined (Q_OS_WIN) + #include "tiff/tiff.h" + #include "tiff/tiffio.h" + #else diff --git a/nixpkgs/pkgs/applications/misc/goldendict/default.nix b/nixpkgs/pkgs/applications/misc/goldendict/default.nix new file mode 100644 index 000000000000..03668e586117 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/goldendict/default.nix @@ -0,0 +1,69 @@ +{ lib, stdenv, mkDerivation, fetchFromGitHub, pkg-config +, libXtst, libvorbis, hunspell, lzo, xz, bzip2, libiconv +, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake +, withCC ? true, opencc +, withEpwing ? true, libeb +, withExtraTiff ? true, libtiff +, withFFmpeg ? true, libao, ffmpeg +, withMultimedia ? true +, withZim ? true, zstd }: + +mkDerivation rec { + pname = "goldendict"; + version = "2021-03-09"; + + src = fetchFromGitHub { + owner = "goldendict"; + repo = pname; + rev = "b2e673961d28ca5eb920a909091252d3321f09d6"; + sha256 = "sha256-+AAamnICq0/B54ggFpgF/Uupm1a4YiEYgHXrhIK4M0E="; + }; + + patches = [ + ./0001-dont-check-for-updates.patch + ] ++ lib.optionals stdenv.isDarwin [ + ./0001-dont-use-maclibs.patch + ]; + + postPatch = '' + substituteInPlace goldendict.pro \ + --replace "hunspell-1.6.1" "hunspell-${lib.versions.majorMinor hunspell.version}" + ''; + + nativeBuildInputs = [ pkg-config qmake ]; + buildInputs = [ + qtbase qtsvg qtwebkit qttools + libvorbis hunspell xz lzo + ] ++ lib.optionals stdenv.isLinux [ qtx11extras libXtst ] + ++ lib.optionals stdenv.isDarwin [ bzip2 libiconv ] + ++ lib.optional withCC opencc + ++ lib.optional withEpwing libeb + ++ lib.optional withExtraTiff libtiff + ++ lib.optionals withFFmpeg [ libao ffmpeg ] + ++ lib.optional withZim zstd; + + qmakeFlags = with lib; [ + "goldendict.pro" + (optional withCC "CONFIG+=chinese_conversion_support") + (optional (!withCC) "CONFIG+=no_chinese_conversion_support") + (optional (!withEpwing) "CONFIG+=no_epwing_support") + (optional (!withExtraTiff) "CONFIG+=no_extra_tiff_handler") + (optional (!withFFmpeg) "CONFIG+=no_ffmpeg_player") + (optional (!withMultimedia)"CONFIG+=no_qtmultimedia_player") + (optional withZim "CONFIG+=zim_support") + ]; + + postInstall = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + mv GoldenDict.app $out/Applications + wrapQtApp $out/Applications/GoldenDict.app/Contents/MacOS/GoldenDict + ''; + + meta = with lib; { + homepage = "http://goldendict.org/"; + description = "A feature-rich dictionary lookup program"; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ gebner astsmtl sikmir ]; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gollum/Gemfile b/nixpkgs/pkgs/applications/misc/gollum/Gemfile new file mode 100644 index 000000000000..525f54838b75 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gollum/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'gollum' diff --git a/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock new file mode 100644 index 000000000000..73bc5d068d73 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock @@ -0,0 +1,116 @@ +GEM + remote: https://rubygems.org/ + specs: + concurrent-ruby (1.1.8) + crass (1.0.6) + execjs (2.7.0) + ffi (1.14.2) + gemojione (4.3.3) + json + github-markup (3.0.5) + gollum (5.2.1) + gemojione (~> 4.1) + gollum-lib (~> 5.1) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.1.0) + mustache-sinatra (~> 1.0) + octicons (~> 12.0) + rss (~> 0.2.9) + sass (~> 3.5) + sinatra (~> 2.0) + sinatra-contrib (~> 2.0) + sprockets (~> 3.7) + sprockets-helpers (~> 1.2) + therubyrhino (~> 2.1.0) + uglifier (~> 4.2) + useragent (~> 0.16.2) + gollum-lib (5.1) + gemojione (~> 4.1) + github-markup (~> 3.0) + gollum-rugged_adapter (~> 1.0) + loofah (~> 2.3) + nokogiri (~> 1.8) + octicons (~> 12.0) + rouge (~> 3.1) + twitter-text (= 1.14.7) + gollum-rugged_adapter (1.0) + mime-types (>= 1.15) + rugged (~> 0.99) + json (2.5.1) + kramdown (2.3.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + loofah (2.9.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mime-types (3.3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2021.0225) + mini_portile2 (2.5.0) + multi_json (1.15.0) + mustache (0.99.8) + mustache-sinatra (1.0.1) + mustache (<= 0.99.8) + mustermann (1.1.1) + ruby2_keywords (~> 0.0.1) + nokogiri (1.11.1) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) + octicons (12.1.0) + nokogiri (>= 1.6.3.1) + racc (1.5.2) + rack (2.2.3) + rack-protection (2.1.0) + rack + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.4) + rouge (3.26.0) + rss (0.2.9) + rexml + ruby2_keywords (0.0.4) + rugged (0.99.0) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sinatra (2.1.0) + mustermann (~> 1.0) + rack (~> 2.2) + rack-protection (= 2.1.0) + tilt (~> 2.0) + sinatra-contrib (2.1.0) + multi_json + mustermann (~> 1.0) + rack-protection (= 2.1.0) + sinatra (= 2.1.0) + tilt (~> 2.0) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-helpers (1.4.0) + sprockets (>= 2.2) + therubyrhino (2.1.2) + therubyrhino_jar (>= 1.7.4, < 1.7.9) + therubyrhino_jar (1.7.8) + tilt (2.0.10) + twitter-text (1.14.7) + unf (~> 0.1.0) + uglifier (4.2.0) + execjs (>= 0.3.0, < 3) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.7) + useragent (0.16.10) + +PLATFORMS + ruby + +DEPENDENCIES + gollum + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/misc/gollum/default.nix b/nixpkgs/pkgs/applications/misc/gollum/default.nix new file mode 100644 index 000000000000..4a365b5a17ed --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gollum/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, bundlerEnv, ruby, makeWrapper, bundlerUpdateScript +, git }: + +stdenv.mkDerivation rec { + pname = "gollum"; + # nix-shell -p bundix icu zlib cmake pkg-config openssl + version = (import ./gemset.nix).gollum.version; + + nativeBuildInputs = [ makeWrapper ]; + + phases = [ "installPhase" ]; + + installPhase = let + env = bundlerEnv { + name = "${pname}-${version}-gems"; + inherit pname ruby; + gemdir = ./.; + }; + in '' + mkdir -p $out/bin + makeWrapper ${env}/bin/gollum $out/bin/gollum \ + --prefix PATH ":" ${lib.makeBinPath [ git ]} + makeWrapper ${env}/bin/gollum-migrate-tags $out/bin/gollum-migrate-tags \ + --prefix PATH ":" ${lib.makeBinPath [ git ]} + ''; + + passthru.updateScript = bundlerUpdateScript "gollum"; + + meta = with lib; { + description = "A simple, Git-powered wiki with a sweet API and local frontend"; + homepage = "https://github.com/gollum/gollum"; + changelog = "https://github.com/gollum/gollum/blob/v${version}/HISTORY.md"; + license = licenses.mit; + maintainers = with maintainers; [ erictapen jgillich nicknovitski ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gollum/gemset.nix b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix new file mode 100644 index 000000000000..690eba645dc1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix @@ -0,0 +1,487 @@ +{ + concurrent-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3"; + type = "gem"; + }; + version = "1.1.8"; + }; + crass = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; + type = "gem"; + }; + version = "1.0.6"; + }; + execjs = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1"; + type = "gem"; + }; + version = "2.7.0"; + }; + ffi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx"; + type = "gem"; + }; + version = "1.14.2"; + }; + gemojione = { + dependencies = ["json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fwd523pgr72w3w6jwpz9i6sggvz52d7831a1s4y3lv8m50j6ima"; + type = "gem"; + }; + version = "4.3.3"; + }; + github-markup = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rlq9hnvhhndqskl087xwabbvfbfnrvx8ac79iin35wmzpyagl96"; + type = "gem"; + }; + version = "3.0.5"; + }; + gollum = { + dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache-sinatra" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0n89c77amabvv4aq8jq5r6581hqzw79w8khr13w6kvv6iabq1vaz"; + type = "gem"; + }; + version = "5.2.1"; + }; + gollum-lib = { + dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p721ymkf2xcskjgr9308b6g581cbxgvhprj9srqskssxvsfdsln"; + type = "gem"; + }; + version = "5.1"; + }; + gollum-rugged_adapter = { + dependencies = ["mime-types" "rugged"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ln12976vm1ks74yyrssdx576b1z0hs8r82fivr366knv5hlcrdm"; + type = "gem"; + }; + version = "1.0"; + }; + json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci"; + type = "gem"; + }; + version = "2.5.1"; + }; + kramdown = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7"; + type = "gem"; + }; + version = "2.3.0"; + }; + kramdown-parser-gfm = { + dependencies = ["kramdown"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"; + type = "gem"; + }; + version = "1.1.0"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck"; + type = "gem"; + }; + version = "2.9.0"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; + type = "gem"; + }; + version = "3.3.1"; + }; + mime-types-data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi"; + type = "gem"; + }; + version = "3.2021.0225"; + }; + mini_portile2 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + type = "gem"; + }; + version = "2.5.0"; + }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z"; + type = "gem"; + }; + version = "1.15.0"; + }; + mustache = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2"; + type = "gem"; + }; + version = "0.99.8"; + }; + mustache-sinatra = { + dependencies = ["mustache"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rvdwg1zk3sybpi9hzn6jj0k8rndkq19y7cl0jmqr0g2xx21z7mr"; + type = "gem"; + }; + version = "1.0.1"; + }; + mustermann = { + dependencies = ["ruby2_keywords"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ccm54qgshr1lq3pr1dfh7gphkilc19dp63rw6fcx7460pjwy88a"; + type = "gem"; + }; + version = "1.1.1"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2"; + type = "gem"; + }; + version = "1.11.1"; + }; + octicons = { + dependencies = ["nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kpy7h7pffjqb2xbmld7nwnb2x6rll3yz5ccr7nrqnrk2d3cmpmn"; + type = "gem"; + }; + version = "12.1.0"; + }; + racc = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"; + type = "gem"; + }; + version = "1.5.2"; + }; + rack = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16"; + type = "gem"; + }; + version = "2.2.3"; + }; + rack-protection = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz"; + type = "gem"; + }; + version = "2.1.0"; + }; + rb-fsevent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87"; + type = "gem"; + }; + version = "0.10.4"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + type = "gem"; + }; + version = "3.2.4"; + }; + rouge = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3"; + type = "gem"; + }; + version = "3.26.0"; + }; + rss = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0"; + type = "gem"; + }; + version = "0.2.9"; + }; + ruby2_keywords = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs"; + type = "gem"; + }; + version = "0.0.4"; + }; + rugged = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04rkxwzaa6897da3mnm70g720gpxwyh71krfn6ag1dkk80x8a8yz"; + type = "gem"; + }; + version = "0.99.0"; + }; + sass = { + dependencies = ["sass-listen"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0"; + type = "gem"; + }; + version = "3.7.4"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; + }; + sinatra = { + dependencies = ["mustermann" "rack" "rack-protection" "tilt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dd53rzpkxgs697pycbhhgc9vcnxra4ly4xar8ni6aiydx2f88zk"; + type = "gem"; + }; + version = "2.1.0"; + }; + sinatra-contrib = { + dependencies = ["multi_json" "mustermann" "rack-protection" "sinatra" "tilt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl1iiafz51yzjd0vchl2lni7lmwppjql6cn1fnfxbma707qlcja"; + type = "gem"; + }; + version = "2.1.0"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-helpers = { + dependencies = ["sprockets"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0513ma356g05lsskhsb363263177h6ccmp475il0p69y18his2ij"; + type = "gem"; + }; + version = "1.4.0"; + }; + therubyrhino = { + dependencies = ["therubyrhino_jar"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "034mzpkxm3zjsi4rwa45dhhgq2b9vkabs5bnzbl1d3ka7210b3fc"; + type = "gem"; + }; + version = "2.1.2"; + }; + therubyrhino_jar = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "149a5lsvn2n7k7vcfs77n836q1alv8yjh0503sf9cs65p974ah25"; + type = "gem"; + }; + version = "1.7.8"; + }; + tilt = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv"; + type = "gem"; + }; + version = "2.0.10"; + }; + twitter-text = { + dependencies = ["unf"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg"; + type = "gem"; + }; + version = "1.14.7"; + }; + uglifier = { + dependencies = ["execjs"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f"; + type = "gem"; + }; + version = "4.2.0"; + }; + unf = { + dependencies = ["unf_ext"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + type = "gem"; + }; + version = "0.1.4"; + }; + unf_ext = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4"; + type = "gem"; + }; + version = "0.0.7.7"; + }; + useragent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fv5kvq494swy0p17h9qya9r50w15xsi9zmvhzb8gh55kq6ki50p"; + type = "gem"; + }; + version = "0.16.10"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gomatrix/default.nix b/nixpkgs/pkgs/applications/misc/gomatrix/default.nix new file mode 100644 index 000000000000..c903f1ba1bbe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gomatrix/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "gomatrix"; + version = "101.0.0"; + + src = fetchFromGitHub { + owner = "GeertJohan"; + repo = "gomatrix"; + rev = "v${version}"; + sha256 = "1wq55rvpyz0gjn8kiwwj49awsmi86zy1fdjcphzgb7883xalgr2m"; + }; + + vendorSha256 = "1yw0gph4zfg8w4343882l6b9lggwyak2zz8ic1l1m2m44p3aq169"; + + doCheck = false; + + meta = with lib; { + description = ''Displays "The Matrix" in a terminal''; + license = licenses.bsd2; + maintainers = with maintainers; [ skykanin ]; + homepage = "https://github.com/GeertJohan/gomatrix"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix b/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix new file mode 100644 index 000000000000..e7cfe04da6e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix @@ -0,0 +1,163 @@ +{ lib +, stdenv +, mkDerivation +, fetchurl +, ffmpeg_3 +, freetype +, gdal_2 +, glib +, libGL +, libGLU +, libICE +, libSM +, libXi +, libXv +, libav_12 + +, libXrender +, libXrandr +, libXfixes +, libXcursor +, libXinerama +, libXext +, libX11 +, libXcomposite + +, libxcb +, sqlite +, zlib +, fontconfig +, dpkg +, libproxy +, libxml2 +, gst_all_1 +, dbus +, makeWrapper + +, qtlocation +, qtwebkit +, qtx11extras +, qtsensors +, qtscript + +, xkeyboardconfig +, autoPatchelfHook +}: +let + arch = + if stdenv.hostPlatform.system == "x86_64-linux" then "amd64" + else throw "Unsupported system ${stdenv.hostPlatform.system} "; +in +mkDerivation rec { + pname = "googleearth-pro"; + version = "7.3.3.7786"; + + src = fetchurl { + url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-pro-stable/google-earth-pro-stable_${version}-r0_${arch}.deb"; + sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3"; + }; + + nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ]; + propagatedBuildInputs = [ xkeyboardconfig ]; + buildInputs = [ + dbus + ffmpeg_3 + fontconfig + freetype + gdal_2 + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + libGL + libGLU + libICE + libSM + libX11 + libXcomposite + libXcursor + libXext + libXfixes + libXi + libXinerama + libXrandr + libXrender + libXv + libav_12 + libproxy + libxcb + libxml2 + qtlocation + qtscript + qtsensors + qtwebkit + qtx11extras + sqlite + zlib + ]; + + doInstallCheck = true; + + dontBuild = true; + + unpackPhase = '' + # deb file contains a setuid binary, so 'dpkg -x' doesn't work here + dpkg --fsys-tarfile ${src} | tar --extract + ''; + + installPhase ='' + runHook preInstall + + mkdir $out + mv usr/* $out/ + rmdir usr + mv * $out/ + rm $out/bin/google-earth-pro $out/opt/google/earth/pro/googleearth + + # patch and link googleearth binary + ln -s $out/opt/google/earth/pro/googleearth-bin $out/bin/googleearth-pro + + # patch and link gpsbabel binary + ln -s $out/opt/google/earth/pro/gpsbabel $out/bin/gpsbabel + + # Add desktop config file and icons + mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps} + ln -s $out/opt/google/earth/pro/google-earth-pro.desktop $out/share/applications/google-earth-pro.desktop + sed -i -e "s|Exec=.*|Exec=$out/bin/googleearth-pro|g" $out/opt/google/earth/pro/google-earth-pro.desktop + for size in 16 22 24 32 48 64 128 256; do + ln -s $out/opt/google/earth/pro/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth-pro.png + done + ln -s $out/opt/google/earth/pro/product_logo_256.png $out/share/pixmaps/google-earth-pro.png + + runHook postInstall + ''; + + postInstall = '' + find "$out/opt/google/earth/pro" -name "*.so.*" | \ + egrep -v 'libssl*|libcrypto*|libicu*' | \ + xargs rm + find "$out/opt/google/earth/pro" -name "*.so" | \ + egrep -v 'libgoogle*|libauth*|libbase*|libcommon*|libcommon_gui*|libcommon_platform*|libcommon_webbrowser*|libcomponentframework*|libgeobase*|libgeobaseutils*|libge_net*|libgdata*|libgoogleapi*|libmath*|libmoduleframework*|libmaps*|libport*|libprintmodule*|libprofile*|librender*|libreporting*|libsgutil*|libspatial*|libxsltransform*|libbase*|libport*|libport*|libbase*|libcomponentframework*|libIGCore*|libIGUtils*|libaction*|libapiloader*|libapiloader*|libIGCore*|libIGUtils*|libIGMath*|libfusioncommon*|libge_exif*|libaction*|libfusioncommon*|libapiloader*|liblayer*|libapiloader*|libIGAttrs*|libIGCore*|libIGGfx*|libIGMath*|libIGSg*|libIGUtils*|libwmsbase*|libwebbrowser*|libevllpro*|libalchemyext*|libge_cache*|libflightsim*|libnpgeinprocessplugin*|libmeasure*|libviewsync*|libcapture*|libtheme*|libgps*|libgisingest*|libsearchmodule*|libinput_plugin*|libnavigate*|libspnav*|libsearch*|libLeap*' | \ + xargs rm + ''; + + autoPatchelfIgnoreMissingDeps=true; + + installCheckPhase = '' + $out/bin/gpsbabel -V > /dev/null + ''; + + # wayland is not supported by Qt included in binary package, so make sure it uses xcb + postFixup = '' + wrapProgram $out/bin/googleearth-pro \ + --set QT_QPA_PLATFORM xcb \ + --set QT_XKB_CONFIG_ROOT "${xkeyboardconfig}/share/X11/xkb" + ''; + + meta = with lib; { + description = "A world sphere viewer"; + homepage = "https://www.google.com/earth/"; + license = licenses.unfree; + maintainers = with maintainers; [ friedelino shamilton ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/googleearth/default.nix b/nixpkgs/pkgs/applications/misc/googleearth/default.nix new file mode 100644 index 000000000000..edf1fc54ba9f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/googleearth/default.nix @@ -0,0 +1,106 @@ +{ lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv +, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11 +, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus }: + +let + arch = + if stdenv.hostPlatform.system == "x86_64-linux" then "amd64" + else if stdenv.hostPlatform.system == "i686-linux" then "i386" + else throw "Unsupported system ${stdenv.hostPlatform.system}"; + sha256 = + if arch == "amd64" + then "0dwnppn5snl5bwkdrgj4cyylnhngi0g66fn2k41j3dvis83x24k6" + else "0gndbxrj3kgc2dhjqwjifr3cl85hgpm695z0wi01wvwzhrjqs0l2"; + version = "7.1.8.3036"; + fullPath = lib.makeLibraryPath [ + glibc + glib + stdenv.cc.cc + libSM + libICE + libXi + libXv + libGLU libGL + libXrender + libXrandr + libXfixes + libXcursor + libXinerama + freetype + libXext + libX11 + zlib + fontconfig + libproxy + libxml2 + dbus + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + ]; +in +stdenv.mkDerivation rec { + pname = "googleearth"; + inherit version; + src = fetchurl { + url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-stable/google-earth-stable_${version}-r0_${arch}.deb"; + inherit sha256; + }; + + phases = [ "unpackPhase" "installPhase" "checkPhase" ]; + + doCheck = true; + + buildInputs = [ dpkg ]; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + installPhase ='' + mkdir $out + mv usr/* $out/ + rmdir usr + mv * $out/ + rm $out/bin/google-earth $out/opt/google/earth/free/googleearth + + # patch and link googleearth binary + ln -s $out/opt/google/earth/free/googleearth-bin $out/bin/googleearth + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${fullPath}:\$ORIGIN" \ + $out/opt/google/earth/free/googleearth-bin + + # patch and link gpsbabel binary + ln -s $out/opt/google/earth/free/gpsbabel $out/bin/gpsbabel + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${fullPath}:\$ORIGIN" \ + $out/opt/google/earth/free/gpsbabel + + # patch libraries + for a in $out/opt/google/earth/free/*.so* ; do + patchelf --set-rpath "${fullPath}:\$ORIGIN" $a + done + + # Add desktop config file and icons + mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps} + ln -s $out/opt/google/earth/free/google-earth.desktop $out/share/applications/google-earth.desktop + sed -i -e "s|Exec=.*|Exec=$out/bin/googleearth|g" $out/opt/google/earth/free/google-earth.desktop + for size in 16 22 24 32 48 64 128 256; do + ln -s $out/opt/google/earth/free/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth.png + done + ln -s $out/opt/google/earth/free/product_logo_256.png $out/share/pixmaps/google-earth.png + ''; + + checkPhase = '' + $out/bin/gpsbabel -V > /dev/null + ''; + + dontPatchELF = true; + + meta = with lib; { + description = "A world sphere viewer"; + homepage = "http://earth.google.com"; + license = licenses.unfree; + maintainers = with maintainers; [ markus1189 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/googler/default.nix b/nixpkgs/pkgs/applications/misc/googler/default.nix new file mode 100644 index 000000000000..a7cd5ec64abd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/googler/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, python, installShellFiles }: + +stdenv.mkDerivation rec { + pname = "googler"; + version = "4.3.2"; + + src = fetchFromGitHub { + owner = "jarun"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-PgWg396AQ15CAnfTXGDpSg1UXx7mNCtknEjJd/KV4MU="; + }; + + buildInputs = [ python ]; + + nativeBuildInputs = [ installShellFiles ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + installShellCompletion --bash --name googler.bash auto-completion/bash/googler-completion.bash + installShellCompletion --fish auto-completion/fish/googler.fish + installShellCompletion --zsh auto-completion/zsh/_googler + ''; + + meta = with lib; { + homepage = "https://github.com/jarun/googler"; + description = "Google Search, Google Site Search, Google News from the terminal"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ koral Br1ght0ne ]; + platforms = python.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gopacked/default.nix b/nixpkgs/pkgs/applications/misc/gopacked/default.nix new file mode 100644 index 000000000000..42b886e4c72b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gopacked/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "gopacked"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "tulir"; + repo = "gopacked"; + rev = "v${version}"; + sha256 = "03qr8rlnipziy16nbcpf631jh42gsyv2frdnh8yzsh8lm0p8p4ry"; + }; + + vendorSha256 = "0fklr3lxh8g7gda65wf2wdkqv15869h7m1bwbzbiv8pasrf5b352"; + + doCheck = false; + + meta = with lib; { + description = "A simple text-based Minecraft modpack manager"; + license = licenses.agpl3; + homepage = src.meta.homepage; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gosmore/default.nix b/nixpkgs/pkgs/applications/misc/gosmore/default.nix new file mode 100644 index 000000000000..854fec8642a8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gosmore/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchsvn, libxml2, gtk2, curl, pkg-config } : + +let + version = "31801"; +in +stdenv.mkDerivation { + name = "gosmore-r${version}"; + # the gosmore svn repository does not lock revision numbers of its externals + # so we explicitly disable them to avoid breaking the hash + # especially as the externals appear to be unused + src = fetchsvn { + url = "http://svn.openstreetmap.org/applications/rendering/gosmore"; + sha256 = "0qsckpqx7i7f8gkqhkzdamr65250afk1rpnh3nbman35kdv3dsxi"; + rev = version; + ignoreExternals = true; + }; + + buildInputs = [ libxml2 gtk2 curl ]; + + nativeBuildInputs = [ pkg-config ]; + + prePatch = '' + sed -e '/curl.types.h/d' -i *.{c,h,hpp,cpp} + ''; + + patches = [ ./pointer_int_comparison.patch ]; + patchFlags = [ "-p1" "--binary" ]; # patch has dos style eol + + meta = with lib; { + description = "Open Street Map viewer"; + homepage = "https://sourceforge.net/projects/gosmore/"; + maintainers = with maintainers; [ + raskin + ]; + platforms = platforms.linux; + license = licenses.bsd2; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch b/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch new file mode 100644 index 000000000000..4a715b6d8591 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch @@ -0,0 +1,11 @@ +--- blah_/jni/gosmore.cpp 1970-01-01 01:00:01.000000000 +0100 ++++ /dev/stdin 2018-03-18 00:21:08.474217132 +0100 +@@ -1273,7 +1273,7 @@ + if (deg[i] < -180 || deg[i] > 180) break; + if (i == 0 && (strncasecmp (t, "lat", 3) == 0 || + strncasecmp (t, "lon", 3) == 0)) { // lat=-25.7 lon=28.2 +- for (t += 3; t != '\0' && !isalnum (*t); t++) {} ++ for (t += 3; *t != '\0' && !isalnum (*t); t++) {} + } + if (i == 1) { // Success ! + //printf ("%lf %lf %u\n", deg[lonFirst ? 1 : 0], deg[lonFirst ? 0 : 1], diff --git a/nixpkgs/pkgs/applications/misc/gpa/default.nix b/nixpkgs/pkgs/applications/misc/gpa/default.nix new file mode 100644 index 000000000000..63bba909b6d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpa/default.nix @@ -0,0 +1,20 @@ +{ lib, stdenv, fetchurl, intltool, pkg-config, gtk2, gpgme, libgpgerror, libassuan }: + +stdenv.mkDerivation rec { + name = "gpa-0.10.0"; + + src = fetchurl { + url = "mirror://gnupg/gpa/${name}.tar.bz2"; + sha256 = "1cbpc45f8qbdkd62p12s3q2rdq6fa5xdzwmcwd3xrj55bzkspnwm"; + }; + + nativeBuildInputs = [ intltool pkg-config ]; + buildInputs = [ gtk2 gpgme libgpgerror libassuan ]; + + meta = with lib; { + description = "Graphical user interface for the GnuPG"; + homepage = "https://www.gnupg.org/related_software/gpa/"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix b/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix new file mode 100644 index 000000000000..48c7c7724ebf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix @@ -0,0 +1,35 @@ +{ fetchurl, lib, stdenv, ncurses, gnupg }: + +let version = "0.7.4"; +in stdenv.mkDerivation { + # mdp renamed to gpg-mdp because there is a mdp package already. + pname = "gpg-mdp"; + inherit version; + meta = { + homepage = "https://tamentis.com/projects/mdp/"; + license = [lib.licenses.isc]; + description = "Manage your passwords with GnuPG and a text editor"; + }; + src = fetchurl { + url = "https://tamentis.com/projects/mdp/files/mdp-${version}.tar.gz"; + sha256 = "04mdnx4ccpxf9m2myy9nvpl9ma4jgzmv9bkrzv2b9affzss3r34g"; + }; + buildInputs = [ ncurses ]; + prePatch = '' + substituteInPlace ./configure \ + --replace "alias echo=/bin/echo" "" + + substituteInPlace ./src/config.c \ + --replace "/usr/bin/gpg" "${gnupg}/bin/gpg" \ + --replace "/usr/bin/vi" "vi" + + substituteInPlace ./mdp.1 \ + --replace "/usr/bin/gpg" "${gnupg}/bin/gpg" + ''; + # we add symlinks to the binary and man page with the name 'gpg-mdp', in case + # the completely unrelated program also named 'mdp' is already installed. + postFixup = '' + ln -s $out/bin/mdp $out/bin/gpg-mdp + ln -s $out/share/man/man1/mdp.1.gz $out/share/man/man1/gpg-mdp.1.gz + ''; +} diff --git a/nixpkgs/pkgs/applications/misc/gphoto2/default.nix b/nixpkgs/pkgs/applications/misc/gphoto2/default.nix new file mode 100644 index 000000000000..8d612ceb413d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gphoto2/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config +, gettext +, libexif +, libgphoto2 +, libjpeg +, libtool +, popt +, readline +}: + +stdenv.mkDerivation rec { + pname = "gphoto2"; + version = "2.5.27"; + + src = fetchFromGitHub { + owner = "gphoto"; + repo = "gphoto2"; + rev = "v${version}"; + sha256 = "sha256-zzlyA2IedyBZ4/TdSmrqbe2le8rFMQ6tY6jF5skJ7l4="; + }; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + gettext + libtool + ]; + + buildInputs = [ + libexif + libgphoto2 + libjpeg + popt + readline + ]; + + meta = with lib; { + description = "A ready to use set of digital camera software applications"; + longDescription = '' + + A set of command line utilities for manipulating over 1400 different + digital cameras. Through libgphoto2, it supports PTP, MTP, and much more.. + + ''; + homepage = "http://www.gphoto.org/"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = [ maintainers.jcumming ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix b/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix new file mode 100644 index 000000000000..afb02c9937f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchurl, libtool, pkg-config, libgphoto2, fuse, glib }: + +stdenv.mkDerivation rec { + pname = "gphoto2fs"; + version = "0.5.0"; + src = fetchurl { + url="mirror://sourceforge/gphoto/gphotofs/${version}/gphotofs-0.5.tar.bz2"; + sha256 = "1k23ncbsbh64r7kz050bg31jqamchyswgg9izhzij758d7gc8vk7"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libgphoto2 fuse glib libtool + ]; + + meta = with lib; { + description = "Fuse FS to mount a digital camera"; + homepage = "http://www.gphoto.org/"; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; + license = with licenses; [ lgpl2 gpl2 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix new file mode 100644 index 000000000000..85c7fbae789f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix @@ -0,0 +1,82 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, libusb1, qtbase, zlib, IOKit, which, expat }: + +stdenv.mkDerivation rec { + pname = "gpsbabel"; + version = "1.7.0"; + + src = fetchFromGitHub { + owner = "gpsbabel"; + repo = "gpsbabel"; + rev = "gpsbabel_${lib.replaceStrings ["."] ["_"] version}"; + sha256 = "010g0vd2f5knpq5p7qfnl31kv3r8m5sjdsafcinbj5gh02j2nzpy"; + }; + + patches = [ + (fetchpatch { + url = "https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip"; + sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr"; + }) + ]; + + buildInputs = [ libusb1 qtbase zlib ] + ++ lib.optionals stdenv.isDarwin [ IOKit ]; + + checkInputs = [ expat.dev which ]; # Avoid ./testo.d/kml.test: line 74: which: command not found. Skipping KML validation phase. + + /* FIXME: Building the documentation, with "make doc", requires this: + + [ libxml2 libxslt perl docbook_xml_dtd_412 docbook_xsl fop ] + + But FOP isn't packaged yet. */ + + configureFlags = [ "--with-zlib=system" ] + # Floating point behavior on i686 causes test failures. Preventing + # extended precision fixes this problem. + ++ lib.optionals stdenv.isi686 [ + "CFLAGS=-ffloat-store" "CXXFLAGS=-ffloat-store" + ]; + + enableParallelBuilding = true; + + dontWrapQtApps = true; + + doCheck = true; + preCheck = '' + patchShebangs testo + substituteInPlace testo \ + --replace "-x /usr/bin/hexdump" "" + + rm -v testo.d/alantrl.test + '' + # The raymarine and gtm tests fail on i686 despite -ffloat-store. + + lib.optionalString stdenv.isi686 "rm -v testo.d/raymarine.test testo.d/gtm.test;" + # The gtm, kml and tomtom asc tests fail on darwin, see PR #23572. + + lib.optionalString stdenv.isDarwin "rm -v testo.d/gtm.test testo.d/kml.test testo.d/tomtom_asc.test testo.d/classic-2.test" + # The arc-project test fails on aarch64. + + lib.optionalString stdenv.isAarch64 "rm -v testo.d/arc-project.test"; + + meta = with lib; { + description = "Convert, upload and download data from GPS and Map programs"; + longDescription = '' + GPSBabel converts waypoints, tracks, and routes between popular + GPS receivers and mapping programs. It also has powerful + manipulation tools for such data. + + By flattening the Tower of Babel that the authors of various + programs for manipulating GPS data have imposed upon us, it + returns to us the ability to freely move our own waypoint data + between the programs and hardware we choose to use. + + It contains extensive data manipulation abilities making it a + convenient for server-side processing or as the backend for + other tools. + + It does not convert, transfer, send, or manipulate maps. We + process data that may (or may not be) placed on a map, such as + waypoints, tracks, and routes. + ''; + homepage = "http://www.gpsbabel.org/"; + license = licenses.gpl2Plus; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix b/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix new file mode 100644 index 000000000000..8501b7c0875b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpsbabel/gui.nix @@ -0,0 +1,51 @@ +{ lib, mkDerivation, qmake, qttools, qtwebkit, qttranslations, gpsbabel }: + +mkDerivation { + pname = "gpsbabel-gui"; + + inherit (gpsbabel) src version; + + sourceRoot = "source/gui"; + + nativeBuildInputs = [ qmake qttools ]; + buildInputs = [ qtwebkit ]; + + dontWrapQtApps = true; + + postPatch = '' + substituteInPlace mainwindow.cc \ + --replace "QApplication::applicationDirPath() + \"/" "\"" \ + --replace "QApplication::applicationDirPath() + '/' + " "" \ + --replace "translator.load(full_filename)" "translator.load(filename)" \ + --replace "gpsbabelfe_%1.qm" "$out/share/gpsbabel/translations/gpsbabelfe_%1.qm" \ + --replace "gpsbabel_%1.qm" "$out/share/gpsbabel/translations/gpsbabel_%1.qm" \ + --replace "qt_%1.qm" "${qttranslations}/translations/qt_%1.qm" + substituteInPlace formatload.cc \ + --replace "QApplication::applicationDirPath() + \"/" "\"" + substituteInPlace gpsbabel.desktop \ + --replace "gpsbabelfe-bin" "gpsbabelfe" + ''; + + preConfigure = '' + lrelease *.ts coretool/*.ts + ''; + + qtWrapperArgs = [ + "--prefix PATH : ${lib.makeBinPath [ gpsbabel ]}" + ]; + + postInstall = '' + install -Dm755 objects/gpsbabelfe -t $out/bin + install -Dm644 gpsbabel.desktop -t $out/share/applications + install -Dm644 images/appicon.png $out/share/icons/hicolor/512x512/apps/gpsbabel.png + install -Dm644 *.qm coretool/*.qm -t $out/share/gpsbabel/translations + ''; + + meta = with lib; { + description = "Qt-based GUI for gpsbabel"; + homepage = "http://www.gpsbabel.org/"; + license = licenses.gpl2; + maintainers = with maintainers; [ sikmir ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix b/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix new file mode 100644 index 000000000000..00a3914e1735 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix @@ -0,0 +1,65 @@ +{ fetchFromGitHub, lib, stdenv, fetchpatch, pkg-config, exiv2, libxml2, gtk3 +, libxslt, docbook_xsl, docbook_xml_dtd_42, desktop-file-utils, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "gpscorrelate"; + version = "2.0"; + + src = fetchFromGitHub { + owner = "dfandrich"; + repo = pname; + rev = version; + sha256 = "1wkpb0nqnm0ik46hp2sibf96h2gxi6n951zm8c72scgmh4ciq4fl"; + }; + + nativeBuildInputs = [ + desktop-file-utils + docbook_xml_dtd_42 + docbook_xsl + libxslt + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + exiv2 + gtk3 + libxml2 + ]; + + makeFlags = [ + "prefix=${placeholder "out"}" + "CC=${stdenv.cc.targetPrefix}cc" + "CXX=${stdenv.cc.targetPrefix}c++" + "CFLAGS=-DENABLE_NLS" + ]; + + doCheck = true; + + installTargets = [ "install" "install-po" "install-desktop-file" ]; + + meta = with lib; { + description = "A GPS photo correlation tool, to add EXIF geotags"; + + longDescription = '' + Digital cameras are cool. So is GPS. And, EXIF tags are really + cool too. + + What happens when you merge the three? You end up with a set of + photos taken with a digital camera that are "stamped" with the + location at which they were taken. + + The EXIF standard defines a number of tags that are for use with GPS. + + A variety of programs exist around the place to match GPS data + with digital camera photos, but most of them are Windows or + MacOS only. Which doesn't really suit me that much. Also, each + one takes the GPS data in a different format. + ''; + + license = licenses.gpl2Plus; + homepage = "https://dfandrich.github.io/gpscorrelate/"; + platforms = platforms.linux; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpsprune/default.nix b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix new file mode 100644 index 000000000000..583a8a1931b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix @@ -0,0 +1,43 @@ +{ fetchurl, lib, stdenv, makeDesktopItem, makeWrapper, unzip, jdk }: + +stdenv.mkDerivation rec { + pname = "gpsprune"; + version = "20.4"; + + src = fetchurl { + url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar"; + sha256 = "sha256-ZTYkKyu0/axf2uLUmQHRW/2bQ6p2zK7xBF66ozbPS2c="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jdk ]; + + desktopItem = makeDesktopItem { + name = "gpsprune"; + exec = "gpsprune"; + icon = "gpsprune"; + desktopName = "GpsPrune"; + genericName = "GPS Data Editor"; + comment = meta.description; + categories = "Education;Geoscience;"; + }; + + buildCommand = '' + mkdir -p $out/bin $out/share/java + cp -v $src $out/share/java/gpsprune.jar + makeWrapper ${jdk}/bin/java $out/bin/gpsprune \ + --add-flags "-jar $out/share/java/gpsprune.jar" + mkdir -p $out/share/applications + cp $desktopItem/share/applications"/"* $out/share/applications + mkdir -p $out/share/pixmaps + ${unzip}/bin/unzip -p $src tim/prune/gui/images/window_icon_64.png > $out/share/pixmaps/gpsprune.png + ''; + + meta = with lib; { + description = "Application for viewing, editing and converting GPS coordinate data"; + homepage = "https://activityworkshop.net/software/gpsprune/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.rycee ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix new file mode 100644 index 000000000000..1619f7f43342 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, intltool, libxml2, pkg-config, gnome, libchamplain, gdl, shared-mime-info, desktop-file-utils, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "gpx-viewer"; + version = "0.4.0"; + + src = fetchurl { + url = "https://launchpad.net/gpx-viewer/trunk/${version}/+download/${pname}-${version}.tar.gz"; + sha256 = "956acfaf870ac436300cd9953dece630df7fd7dff8e4ae2577a6002884466f80"; + }; + + patches = fetchurl { + url = "https://code.launchpad.net/~chkr/gpx-viewer/gtk3-bugfix/+merge/260766/+preview-diff/628965/+files/preview.diff"; + sha256 = "1yl7jk7skkcx10nny5zdixswcymjd9s9c1zhm1i5y3aqhchvmfs7"; + }; + patchFlags = [ "-p0" ]; + + configureFlags = [ "--disable-database-updates" ]; + + nativeBuildInputs = [ + intltool pkg-config + wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system + ]; + buildInputs = [ gdl libchamplain gnome.adwaita-icon-theme libxml2 ]; + + meta = with lib; { + homepage = "https://blog.sarine.nl/tag/gpxviewer/"; + description = "Simple tool to visualize tracks and waypoints stored in a gpx file"; + platforms = with platforms; linux; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpx/default.nix b/nixpkgs/pkgs/applications/misc/gpx/default.nix new file mode 100644 index 000000000000..04ebd491c28d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpx/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook }: + +stdenv.mkDerivation rec { + pname = "gpx"; + version = "2.6.8"; + + nativeBuildInputs = [ autoreconfHook ]; + + src = fetchFromGitHub { + owner = "markwal"; + repo = "GPX"; + rev = version; + sha256 = "1izs8s5npkbfrsyk17429hyl1vyrbj9dp6vmdlbb2vh6mfgl54h8"; + }; + + meta = { + description = "Gcode to x3g conversion postprocessor"; + homepage = "https://github.com/markwal/GPX/"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.leo60228 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpxlab/default.nix b/nixpkgs/pkgs/applications/misc/gpxlab/default.nix new file mode 100644 index 000000000000..c8d6eb3b84c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpxlab/default.nix @@ -0,0 +1,45 @@ +{ stdenv, mkDerivation, lib, fetchFromGitHub, substituteAll +, qmake, qttools, qttranslations +}: + +mkDerivation rec { + pname = "gpxlab"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "BourgeoisLab"; + repo = "GPXLab"; + rev = "v${version}"; + sha256 = "080vnwcciqblfrbfyz9gjhl2lqw1hkdpbgr5qfrlyglkd4ynjd84"; + }; + + patches = (substituteAll { + # See https://github.com/NixOS/nixpkgs/issues/86054 + src = ./fix-qttranslations-path.patch; + inherit qttranslations; + }); + + nativeBuildInputs = [ qmake qttools ]; + + preConfigure = '' + lrelease GPXLab/locale/*.ts + ''; + + postInstall = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + mv GPXLab/GPXLab.app $out/Applications + wrapQtApp $out/Applications/GPXLab.app/Contents/MacOS/GPXLab + ''; + + meta = with lib; { + homepage = "https://github.com/BourgeoisLab/GPXLab"; + description = "Program to show and manipulate GPS tracks"; + longDescription = '' + GPXLab is an application to display and manage GPS tracks + previously recorded with a GPS tracker. + ''; + license = licenses.gpl3Only; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpxlab/fix-qttranslations-path.patch b/nixpkgs/pkgs/applications/misc/gpxlab/fix-qttranslations-path.patch new file mode 100644 index 000000000000..8dcba75d764f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpxlab/fix-qttranslations-path.patch @@ -0,0 +1,17 @@ +diff --git i/GPXLab/main.cpp w/GPXLab/main.cpp +index b12d2dd..58d37c5 100644 +--- i/GPXLab/main.cpp ++++ w/GPXLab/main.cpp +@@ -19,10 +19,10 @@ int main(int argc, char *argv[]) + app.installTranslator(&gpxlab); + + QTranslator qt; +-#if defined(Q_OS_WIN32) || defined(Q_OS_MAC) ++#if defined(Q_OS_WIN32) + qt.load(QLocale::system(), "qt", "_", TRANSLATIONS_DIR); + #else +- qt.load(QLocale::system(), "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath)); ++ qt.load(QLocale::system(), "qt", "_", QLatin1String("@qttranslations@/translations")); + #endif + app.installTranslator(&qt); + diff --git a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix new file mode 100644 index 000000000000..a2280e8bb012 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, mkDerivation, fetchFromGitHub, qmake, qttools, qttranslations, substituteAll }: + +mkDerivation rec { + pname = "gpxsee"; + version = "9.2"; + + src = fetchFromGitHub { + owner = "tumic0"; + repo = "GPXSee"; + rev = version; + sha256 = "sha256-pU02Eaq6tB7X6EPOo8YAyryJRbSV3KebQv8VELxXaBw="; + }; + + patches = (substituteAll { + # See https://github.com/NixOS/nixpkgs/issues/86054 + src = ./fix-qttranslations-path.diff; + inherit qttranslations; + }); + + nativeBuildInputs = [ qmake qttools ]; + + preConfigure = '' + lrelease gpxsee.pro + ''; + + postInstall = with stdenv; lib.optionalString isDarwin '' + mkdir -p $out/Applications + mv GPXSee.app $out/Applications + wrapQtApp $out/Applications/GPXSee.app/Contents/MacOS/GPXSee + ''; + + meta = with lib; { + description = "GPS log file viewer and analyzer"; + longDescription = '' + GPXSee is a Qt-based GPS log file viewer and analyzer that supports + all common GPS log file formats. + ''; + homepage = "https://www.gpxsee.org/"; + changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ womfoo sikmir ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff b/nixpkgs/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff new file mode 100644 index 000000000000..757d9b8c6571 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff @@ -0,0 +1,18 @@ +diff --git i/src/GUI/app.cpp w/src/GUI/app.cpp +index 37e9d3f..d4a065c 100644 +--- i/src/GUI/app.cpp ++++ w/src/GUI/app.cpp +@@ -35,11 +35,10 @@ App::App(int &argc, char **argv) : QApplication(argc, argv) + installTranslator(gpxsee); + + QTranslator *qt = new QTranslator(this); +-#if defined(Q_OS_WIN32) || defined(Q_OS_MAC) ++#if defined(Q_OS_WIN32) + if (qt->load(QLocale::system(), "qt", "_", ProgramPaths::translationsDir())) + #else // Q_OS_WIN32 || Q_OS_MAC +- if (qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location( +- QLibraryInfo::TranslationsPath))) ++ if (qt->load(QLocale::system(), "qt", "_", QLatin1String("@qttranslations@/translations"))) + #endif // Q_OS_WIN32 || Q_OS_MAC + installTranslator(qt); + diff --git a/nixpkgs/pkgs/applications/misc/gramps/default.nix b/nixpkgs/pkgs/applications/misc/gramps/default.nix new file mode 100644 index 000000000000..1628f0473fa6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gramps/default.nix @@ -0,0 +1,63 @@ +{ lib, fetchFromGitHub, gtk3, pythonPackages, intltool, gexiv2, + pango, gobject-introspection, wrapGAppsHook, gettext, +# Optional packages: + enableOSM ? true, osm-gps-map, + enableGraphviz ? true, graphviz, + enableGhostscript ? true, ghostscript + }: + +let + inherit (pythonPackages) python buildPythonApplication; +in buildPythonApplication rec { + version = "5.1.3"; + pname = "gramps"; + + nativeBuildInputs = [ wrapGAppsHook intltool gettext ]; + buildInputs = [ gtk3 gobject-introspection pango gexiv2 ] + # Map support + ++ lib.optional enableOSM osm-gps-map + # Graphviz support + ++ lib.optional enableGraphviz graphviz + # Ghostscript support + ++ lib.optional enableGhostscript ghostscript + ; + + src = fetchFromGitHub { + owner = "gramps-project"; + repo = "gramps"; + rev = "v${version}"; + sha256 = "109dwkswz2h2328xkqk2zj736d117s9pp7rz5cc1qg2vxn1lpm93"; + }; + + pythonPath = with pythonPackages; [ bsddb3 PyICU pygobject3 pycairo ]; + + # Same installPhase as in buildPythonApplication but without --old-and-unmanageble + # install flag. + installPhase = '' + runHook preInstall + + mkdir -p "$out/lib/${python.libPrefix}/site-packages" + + export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH" + + ${python}/bin/${python.executable} setup.py install \ + --install-lib=$out/lib/${python.libPrefix}/site-packages \ + --prefix="$out" + + eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth + if [ -e "$eapth" ]; then + # move colliding easy_install.pth to specifically named one + mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth + fi + + rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py* + + runHook postInstall + ''; + + meta = with lib; { + description = "Genealogy software"; + homepage = "https://gramps-project.org"; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix b/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix new file mode 100644 index 000000000000..fe21631c0d67 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, poppler, pkg-config, gdk-pixbuf, SDL, gtk2 }: + +stdenv.mkDerivation { + pname = "green-pdfviewer"; + version = "nightly-2014-04-22"; + + src = fetchFromGitHub { + owner = "schandinat"; + repo = "green"; + rev = "0b516aec17915d9742d8e505d2ed383a3bdcea61"; + sha256 = "0d0lv33flhgsxhc77kfp2avdz5gvml04r8l1j95yjz2rr096lzlj"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ poppler gdk-pixbuf SDL gtk2 ]; + + patches = [ + ./gdk-libs.patch + ]; + + buildPhase = '' + make PREFIX=$out + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/man1 + make install PREFIX=$out MANDIR=$out/share + ''; + + meta = with lib; { + homepage = "https://github.com/schandinat/green/"; + description = "Viewer for PDF files, uses SDL and libpoppler"; + + platforms = platforms.unix; + license = licenses.gpl3; + maintainers = [ maintainers.vrthra ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch b/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch new file mode 100644 index 000000000000..cfcab32aac99 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch @@ -0,0 +1,55 @@ +Common subdirectories: green.old/debian and green.new/debian +diff -u green.old/green.h green.new/green.h +--- green.old/green.h 2016-06-12 18:11:56.779434416 -0700 ++++ green.new/green.h 2016-06-12 18:14:38.830557379 -0700 +@@ -19,7 +19,14 @@ + + + #include <stdbool.h> +-#include "glib/poppler.h" ++#include "poppler.h" ++#include "gdk-pixbuf/gdk-pixbuf.h" ++#include "gdk-pixbuf/gdk-pixbuf-core.h" ++#include "gdk-pixbuf/gdk-pixbuf-features.h" ++#include "gdk-pixbuf/gdk-pixbuf-enum-types.h" ++ ++ #define GREEN_FULLSCREEN 0x0001 ++ + + + #define GREEN_FULLSCREEN 0x0001 +diff -u green.old/Makefile green.new/Makefile +--- green.old/Makefile 2016-06-12 18:11:56.779434416 -0700 ++++ green.new/Makefile 2016-06-12 18:13:09.591974048 -0700 +@@ -17,6 +17,12 @@ + SDL_CFLAGS := $$(sdl-config --cflags) + SDL_LIBS := $$(sdl-config --libs) + ++GDKPIXBUF_CFLAGS := $$(pkg-config gdk-pixbuf-2.0 --cflags) ++GDKPIXBUF_LIBS := $$(pkg-config gdk-pixbuf-2.0 --libs) ++ ++GTK_CFLAGS := $$(pkg-config gtk+-2.0 --cflags) ++GTK_LIBS := $$(pkg-config gtk+-2.0 --libs) ++ + + all: green + +@@ -28,13 +34,14 @@ + $(INSTALL) green.1 $(MANDIR)/man1/ + + green: main.o green.o sdl.o +- $(CC) $^ $(POPPLER_LIBS) $(SDL_LIBS) -o $@ ++ $(CC) $^ $(POPPLER_LIBS) $(SDL_LIBS) $(GDKPIXBUF_LIBS) $(GTK_LIBS) -o $@ + + main.o: main.c green.h +- $(CC) $(CONFIG) $(CFLAGS) -c $< $(POPPLER_CFLAGS) -o $@ ++ $(CC) $(CONFIG) $(CFLAGS) $(GDKPIXBUF_CFLAGS) -c $< $(POPPLER_CFLAGS) -o $@ + + green.o: green.c green.h +- $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) -o $@ ++ $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) $(GDKPIXBUF_CFLAGS) -o $@ + + sdl.o: sdl.c green.h +- $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) $(SDL_CFLAGS) -o $@ ++ $(CC) $(CFLAGS) -c $< $(POPPLER_CFLAGS) $(SDL_CFLAGS) $(GDKPIXBUF_CFLAGS) $(GTK_CFLAGS) -o $@ ++ diff --git a/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix new file mode 100644 index 000000000000..3204a4a0e853 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix @@ -0,0 +1,31 @@ +{ fetchzip, lib, stdenv, makeWrapper, openjdk }: + +stdenv.mkDerivation rec { + pname = "gremlin-console"; + version = "3.5.0"; + src = fetchzip { + url = "https://downloads.apache.org/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip"; + sha256 = "sha256-aVhDbOYhgYaWjttGjJvBKbov7OGWh2/llBTePFPGXDM="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/opt + cp -r ext lib $out/opt/ + install -D bin/gremlin.sh $out/opt/bin/gremlin-console + makeWrapper $out/opt/bin/gremlin-console $out/bin/gremlin-console \ + --prefix PATH ":" "${openjdk}/bin/" \ + --set CLASSPATH "$out/opt/lib/" + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://tinkerpop.apache.org/"; + description = "Console of the Apache TinkerPop graph computing framework"; + license = licenses.asl20; + maintainers = [ maintainers.lewo ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/grip/default.nix b/nixpkgs/pkgs/applications/misc/grip/default.nix new file mode 100644 index 000000000000..c182db8fdd3a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/grip/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchurl +, gtk2 +, glib +, pkg-config +, libgnome +, libgnomeui +, vte +, curl +, cdparanoia +, libid3tag +, ncurses +, libtool +}: + +stdenv.mkDerivation rec { + name = "grip-4.2.2"; + + src = fetchurl { + url = "mirror://sourceforge/grip/${name}.tar.gz"; + sha256 = "sha256-nXtGgJeNYM8lyllNi9UdmsnVcHOCXfryWmKGZ9QFTHE="; + }; + + nativeBuildInputs = [ pkg-config libtool ]; + buildInputs = [ + gtk2 + glib + libgnome + libgnomeui + vte + curl + cdparanoia + libid3tag + ncurses + ]; + enableParallelBuilding = true; + + meta = { + description = "GTK-based audio CD player/ripper"; + homepage = "http://nostatic.org/grip"; + license = lib.licenses.gpl2Plus; + + maintainers = with lib.maintainers; [ marcweber peti ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/grsync/default.nix b/nixpkgs/pkgs/applications/misc/grsync/default.nix new file mode 100644 index 000000000000..f4d1b0852591 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/grsync/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, dee, gtk2, intltool, libdbusmenu-gtk2, libunity, pkg-config, rsync }: + +stdenv.mkDerivation rec { + version = "1.2.8"; + pname = "grsync"; + + src = fetchurl { + url = "mirror://sourceforge/grsync/grsync-${version}.tar.gz"; + sha256 = "1c86jch73cy7ig9k4shvcd3jnaxk7jppfcr8nmkz8gbylsn5zsll"; + }; + + nativeBuildInputs = [ + intltool + pkg-config + ]; + + buildInputs = [ + dee + gtk2 + libdbusmenu-gtk2 + libunity + rsync + ]; + + meta = with lib; { + description = "Synchronize folders, files and make backups"; + homepage = "http://www.opbyte.it/grsync/"; + license = licenses.gpl1; + platforms = platforms.linux; + maintainers = [ maintainers.kuznero ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gsctl/default.nix b/nixpkgs/pkgs/applications/misc/gsctl/default.nix new file mode 100644 index 000000000000..15d8b9663960 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gsctl/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "gsctl"; + version = "0.15.4"; + + goPackagePath = "github.com/giantswarm/gsctl"; + + src = fetchFromGitHub { + owner = "giantswarm"; + repo = pname; + rev = version; + sha256 = "0s5bli08wfd9xszx3kc90k51vlgjc00r0qg4mikb6qdc4pxpgsxj"; + }; + + meta = with lib; { + description = "The Giant Swarm command line interface"; + homepage = "https://github.com/giantswarm/gsctl"; + license = licenses.asl20; + maintainers = with maintainers; [ joesalisbury ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix b/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix new file mode 100644 index 000000000000..2d855d0c9fcc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, automake, autoconf, pkg-config, gtk3 }: + +stdenv.mkDerivation rec { + pname = "gsimplecal"; + version = "2.2"; + + src = fetchurl { + url = "https://github.com/dmedvinsky/gsimplecal/archive/v${version}.tar.gz"; + sha256 = "sha256-f19cnTX83LZT2d01B1EdWSaHcfHqpFPTo5glYkAokq8="; + }; + + postPatch = '' + sed -ie '/sys\/sysctl.h/d' src/Unique.cpp + ''; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ automake autoconf gtk3 ]; + + preConfigure = "./autogen.sh"; + + meta = { + homepage = "http://dmedvinsky.github.io/gsimplecal/"; + description = "Lightweight calendar application written in C++ using GTK"; + longDescription = '' + gsimplecal was intentionally made for use with tint2 panel in the + openbox environment to be launched upon clock click, but of course it + will work without it. In fact, binding the gsimplecal to some hotkey in + you window manager will probably make you happy. The thing is that when + it is started it first shows up, when you run it again it closes the + running instance. In that way it is very easy to integrate anywhere. No + need to write some wrapper scripts or whatever. + + Also, you can configure it to not only show the calendar, but also + display multiple clocks for different world time zones. + ''; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.romildo ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix b/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix new file mode 100644 index 000000000000..d635fa8d8657 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix @@ -0,0 +1,29 @@ +{lib, stdenv, fetchurl, pkg-config, gtk2 }: + +stdenv.mkDerivation rec { + version = "0.1"; + pname = "gtk2fontsel"; + + src = fetchurl { + url = "mirror://sourceforge/gtk2fontsel/${pname}-${version}.tar.gz"; + sha256 = "0s2sj19n8ys92q9832hkn36ld91bb4qavicc6nygkry6qdpkkmjw"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ stdenv gtk2 ]; + + preferLocalBuild = true; + + meta = with lib; { + description = "A font selection program for X11 using the GTK 2 toolkit"; + longDescription = '' + Font selection tool similar to xfontsel implemented using GTK 2. + Trivial, but useful nonetheless. + ''; + homepage = "http://gtk2fontsel.sourceforge.net/"; + downloadPage = "https://sourceforge.net/projects/gtk2fontsel/"; + license = licenses.gpl2; + maintainers = [ maintainers.prikhi ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gummi/default.nix b/nixpkgs/pkgs/applications/misc/gummi/default.nix new file mode 100644 index 000000000000..8943fc17de43 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gummi/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, pkgs +, glib, gnome, gtk3, gtksourceview3, gtkspell3, poppler, texlive +, pkg-config, intltool, autoreconfHook, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + version = "0.8.2"; + pname = "gummi"; + + src = pkgs.fetchFromGitHub { + owner = "alexandervdm"; + repo = "gummi"; + rev = version; + sha256 = "sha256-7txAyzJrEoGPjchXstMWIF1Vy+aoba6aa6+JNUYnKQs="; + }; + + nativeBuildInputs = [ + pkg-config intltool autoreconfHook wrapGAppsHook + ]; + buildInputs = [ + glib gtksourceview3 gtk3 gtkspell3 poppler + texlive.bin.core # needed for synctex + ]; + + postInstall = '' + install -Dpm644 COPYING $out/share/licenses/$name/COPYING + ''; + + meta = { + homepage = "https://gummi.app"; + description = "Simple LaTex editor for GTK users"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ flokli ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gv/default.nix b/nixpkgs/pkgs/applications/misc/gv/default.nix new file mode 100644 index 000000000000..aa07058dc808 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gv/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, Xaw3d, ghostscriptX, perl, pkg-config, libiconv }: + +let + name = "gv-3.7.4"; +in +stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "mirror://gnu/gv/${name}.tar.gz"; + sha256 = "0q8s43z14vxm41pfa8s5h9kyyzk1fkwjhkiwbf2x70alm6rv6qi1"; + }; + + configureFlags = lib.optionals stdenv.isDarwin [ + "--enable-SIGCHLD-fallback" + ]; + + buildInputs = [ + Xaw3d + ghostscriptX + perl + pkg-config + ] ++ lib.optionals stdenv.isDarwin [ + libiconv + ]; + + patchPhase = '' + sed 's|\<gs\>|${ghostscriptX}/bin/gs|g' -i "src/"*.in + sed 's|"gs"|"${ghostscriptX}/bin/gs"|g' -i "src/"*.c + ''; + + doCheck = true; + + meta = { + homepage = "https://www.gnu.org/software/gv/"; + description = "PostScript/PDF document viewer"; + + longDescription = '' + GNU gv allows users to view and navigate through PostScript and + PDF documents on an X display by providing a graphical user + interface for the Ghostscript interpreter. + ''; + + license = lib.licenses.gpl3Plus; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gxkb/default.nix b/nixpkgs/pkgs/applications/misc/gxkb/default.nix new file mode 100644 index 000000000000..16268bc76c73 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gxkb/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3, libwnck, libxklavier +, appindicatorSupport ? true, libayatana-appindicator-gtk3 +}: + +stdenv.mkDerivation rec { + pname = "gxkb"; + version = "0.9.2"; + + src = fetchFromGitHub { + owner = "zen-tools"; + repo = "gxkb"; + rev = "v${version}"; + sha256 = "sha256-KIlosBNfGSYCgtxBuSVeSfHaLsANdLgG/P5UtAL6Hms="; + }; + + nativeBuildInputs = [ pkg-config autoreconfHook ]; + buildInputs = [ gtk3 libwnck libxklavier ] ++ lib.optional appindicatorSupport libayatana-appindicator-gtk3; + + configureFlags = lib.optional appindicatorSupport "--enable-appindicator=yes"; + outputs = [ "out" "man" ]; + + meta = with lib; { + description = "X11 keyboard indicator and switcher"; + homepage = "https://zen-tools.github.io/gxkb/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.omgbebebe ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gxmessage/default.nix b/nixpkgs/pkgs/applications/misc/gxmessage/default.nix new file mode 100644 index 000000000000..9f09e3d978e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gxmessage/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, gtk3, intltool, pkg-config, texinfo }: + +stdenv.mkDerivation rec { + pname = "gxmessage"; + version = "3.4.3"; + + src = fetchurl { + url = "http://homepages.ihug.co.nz/~trmusson/stuff/${pname}-${version}.tar.gz"; + sha256 = "db4e1655fc58f31e5770a17dfca4e6c89028ad8b2c8e043febc87a0beedeef05"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ intltool gtk3 texinfo ]; + + meta = { + description = "A GTK enabled dropin replacement for xmessage"; + homepage = "http://homepages.ihug.co.nz/~trmusson/programs.html#gxmessage"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [jfb]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/gxneur/default.nix b/nixpkgs/pkgs/applications/misc/gxneur/default.nix new file mode 100644 index 000000000000..9e8c5ddaef4a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/gxneur/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchurl, pkg-config, intltool, gtk2, xorg, glib, xneur, libglade, GConf, libappindicator-gtk2, pcre }: + +stdenv.mkDerivation { + name = "gxneur-0.20.0"; + + src = fetchurl { + url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/0.20.0/gxneur_0.20.0.orig.tar.gz"; + sha256 = "0avmhdcj0hpr55fc0iih8fjykmdhn34c8mwdnqvl8jh4nhxxchxr"; + }; + + # glib-2.62 deprecations + NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS"; + + nativeBuildInputs = [ pkg-config intltool ]; + buildInputs = [ + xorg.libX11 glib gtk2 xorg.libXpm xorg.libXt xorg.libXext xneur + libglade GConf pcre libappindicator-gtk2 + ]; + + meta = with lib; { + description = "GUI for XNEUR keyboard layout switcher"; + platforms = platforms.linux; + license = with licenses; [ gpl2 gpl3 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hamster/default.nix b/nixpkgs/pkgs/applications/misc/hamster/default.nix new file mode 100644 index 000000000000..dbf7e1aee746 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hamster/default.nix @@ -0,0 +1,62 @@ +{ lib, fetchFromGitHub, python3Packages, intltool, glib, itstool +, wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, wafHook }: + +python3Packages.buildPythonApplication rec { + pname = "hamster"; + version = "3.0.2"; + + format = "other"; + + src = fetchFromGitHub { + owner = "projecthamster"; + repo = pname; + rev = "v${version}"; + sha256 = "09ikiwc2izjvwqbbyp8knn190x5y4anwslkmb9k2h3r3jwrg2vd2"; + }; + + nativeBuildInputs = [ + python3Packages.setuptools + wrapGAppsHook + intltool + itstool + wafHook + glib + gobject-introspection + ]; + + buildInputs = [ + pango + gdk-pixbuf + atk + ]; + + propagatedBuildInputs = with python3Packages; [ + pygobject3 + pycairo + pyxdg + dbus-python + ]; + + # Setup hooks have trouble with strict deps. + # https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + dontWrapGApps = true; + + # Arguments to be passed to `makeWrapper`, only used by buildPython* + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + postFixup = '' + wrapPythonProgramsIn $out/libexec "$out $pythonPath" + ''; + + meta = with lib; { + description = "Time tracking application"; + homepage = "http://projecthamster.org/"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = [ maintainers.fabianhauser ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/haunt/default.nix b/nixpkgs/pkgs/applications/misc/haunt/default.nix new file mode 100644 index 000000000000..87656d730b27 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/haunt/default.nix @@ -0,0 +1,72 @@ +{ lib +, stdenv +, fetchurl +, guile +, guile-commonmark +, guile-reader +, makeWrapper +, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "haunt"; + version = "0.2.4"; + + src = fetchurl { + url = "https://files.dthompson.us/${pname}/${pname}-${version}.tar.gz"; + hash = "sha256-zOkICg7KmJJhPWPtJRT3C9sYB1Oig1xLtgPNGe0n3xQ="; + }; + + nativeBuildInputs = [ + makeWrapper + pkg-config + ]; + buildInputs = [ + guile + guile-commonmark + guile-reader + ]; + + doCheck = true; + + postInstall = + let + guileVersion = lib.versions.majorMinor guile.version; + in + '' + wrapProgram $out/bin/haunt \ + --prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \ + --prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH" + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/haunt --version + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://dthompson.us/projects/haunt.html"; + description = "Guile-based static site generator"; + longDescription = '' + Haunt is a simple, functional, hackable static site generator that gives + authors the ability to treat websites as Scheme programs. + + By giving authors the full expressive power of Scheme, they are able to + control every aspect of the site generation process. Haunt provides a + simple, functional build system that can be easily extended for this + purpose. + + Haunt has no opinion about what markup language authors should use to + write posts, though it comes with support for the popular Markdown + format. Likewise, Haunt has no opinion about how authors structure their + sites. Though it comes with support for building simple blogs or Atom + feeds, authors should feel empowered to tweak, replace, or create builders + to do things that aren't provided out-of-the-box. + ''; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ AndersonTorres AluisioASG ]; + platforms = guile.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/haxor-news/default.nix b/nixpkgs/pkgs/applications/misc/haxor-news/default.nix new file mode 100644 index 000000000000..fc9607e7be6b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/haxor-news/default.nix @@ -0,0 +1,60 @@ +{ lib, fetchFromGitHub, python3, fetchpatch }: + + +let + py = python3.override { + packageOverrides = self: super: { + self = py; + + # not compatible with prompt_toolkit >=2.0 + prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec { + name = "${oldAttrs.pname}-${version}"; + version = "1.0.18"; + src = oldAttrs.src.override { + inherit version; + sha256 = "09h1153wgr5x2ny7ds0w2m81n3bb9j8hjb8sjfnrg506r01clkyx"; + }; + }); + }; + }; +in +with py.pkgs; + +buildPythonApplication rec { + pname = "haxor-news"; + version = "unstable-2020-10-20"; + + # haven't done a stable release in 3+ years, but actively developed + src = fetchFromGitHub { + owner = "donnemartin"; + repo = pname; + rev = "811a5804c09406465b2b02eab638c08bf5c4fa7f"; + sha256 = "1g3dfsyk4727d9jh9w6j5r51ag07851cls7v7a7hmdvdixpvbzp6"; + }; + + propagatedBuildInputs = [ + click + colorama + requests + pygments + prompt_toolkit + six + ]; + + # will fail without pre-seeded config files + doCheck = false; + + checkInputs = [ mock ]; + + checkPhase = '' + ${python.interpreter} -m unittest discover -s tests -v + ''; + + meta = with lib; { + homepage = "https://github.com/donnemartin/haxor-news"; + description = "Browse Hacker News like a haxor"; + license = licenses.asl20; + maintainers = with maintainers; [ matthiasbeyer ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/hdate/default.nix b/nixpkgs/pkgs/applications/misc/hdate/default.nix new file mode 100644 index 000000000000..899630b69099 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hdate/default.nix @@ -0,0 +1,16 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + version = "1.6.02"; + pname = "hdate"; + src = fetchurl { + url = "https://sourceforge.net/projects/libhdate/files/libhdate/libhdate-${version}/libhdate-${version}.tar.bz2"; + sha256 = "3c930a8deb57c01896dc37f0d7804e5a330ee8e88c4ff610b71f9d2b02c17762"; + }; + meta = { + description = "Hebrew calendar and solar astronomical times library and utilities"; + homepage = "https://sourceforge.net/projects/libhdate/"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ CharlesHD ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/heimer/default.nix b/nixpkgs/pkgs/applications/misc/heimer/default.nix new file mode 100644 index 000000000000..d3d369368af7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/heimer/default.nix @@ -0,0 +1,24 @@ +{ mkDerivation, lib, fetchFromGitHub, cmake, qttools, qtbase }: + +mkDerivation rec { + pname = "heimer"; + version = "2.6.0"; + + src = fetchFromGitHub { + owner = "juzzlin"; + repo = pname; + rev = version; + sha256 = "sha256-VSj6bSb92XMsfvDH+cey2GXLnJajUBaCqLMgkv2fnSo="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ qttools qtbase ]; + + meta = with lib; { + description = "Simple cross-platform mind map and note-taking tool written in Qt"; + homepage = "https://github.com/juzzlin/Heimer"; + license = licenses.gpl3; + maintainers = with maintainers; [ dtzWill ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix b/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix new file mode 100644 index 000000000000..7c54c3201111 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, runtimeShell }: + +stdenv.mkDerivation { + pname = "example-unfree-package"; + version = "1.0"; + + phases = [ "installPhase" "fixupPhase" ]; + + installPhase = '' + mkdir -p $out/bin + cat > $out/bin/hello-unfree << EOF + #!${runtimeShell} + echo "Hello, you are running an unfree system!" + EOF + chmod +x $out/bin/hello-unfree + ''; + + meta = { + description = "An example package with unfree license (for testing)"; + license = lib.licenses.unfree; + maintainers = [ lib.maintainers.oxij ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hello/default.nix b/nixpkgs/pkgs/applications/misc/hello/default.nix new file mode 100644 index 000000000000..b446fe6223df --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hello/default.nix @@ -0,0 +1,34 @@ +{ lib +, stdenv +, fetchurl +, testVersion +, hello +}: + +stdenv.mkDerivation rec { + pname = "hello"; + version = "2.10"; + + src = fetchurl { + url = "mirror://gnu/hello/${pname}-${version}.tar.gz"; + sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"; + }; + + doCheck = true; + + passthru.tests.version = + testVersion { package = hello; }; + + meta = with lib; { + description = "A program that produces a familiar, friendly greeting"; + longDescription = '' + GNU Hello is a program that prints "Hello, world!" when you run it. + It is fully customizable. + ''; + homepage = "https://www.gnu.org/software/hello/manual/"; + changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.eelco ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/herbe/default.nix b/nixpkgs/pkgs/applications/misc/herbe/default.nix new file mode 100644 index 000000000000..0d05228b63eb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/herbe/default.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, fetchFromGitHub, libX11, libXft, freetype, patches ? [ ], + extraLibs ? [ ] }: + +stdenv.mkDerivation rec { + pname = "herbe"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "dudik"; + repo = pname; + rev = version; + sha256 = "0358i5jmmlsvy2j85ij7m1k4ar2jr5lsv7y1c58dlf9710h186cv"; + }; + + inherit patches; + + postPatch = '' + sed -i 's_/usr/include/freetype2_${freetype.dev}/include/freetype2_' Makefile + ''; + + buildInputs = [ libX11 libXft freetype ] ++ extraLibs; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Daemon-less notifications without D-Bus"; + homepage = "https://github.com/dudik/herbe"; + license = licenses.mit; + # NOTE: Could also work on 'unix'. + platforms = platforms.linux; + maintainers = with maintainers; [ wishfort36 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hivemind/default.nix b/nixpkgs/pkgs/applications/misc/hivemind/default.nix new file mode 100644 index 000000000000..6ada1fd749bd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hivemind/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub, runtimeShell }: + +buildGoPackage rec { + pname = "hivemind"; + version = "1.0.6"; + goPackagePath = "github.com/DarthSim/hivemind"; + + postPatch = '' + substituteInPlace process.go --replace \"/bin/sh\" \"${runtimeShell}\" + ''; + + src = fetchFromGitHub { + owner = "DarthSim"; + repo = "hivemind"; + rev = "v${version}"; + sha256 = "0afcnd03wsdphbbpha65rv5pnv0x6ldnnm6rnv1m6xkkywgnzx95"; + }; + + meta = with lib; { + homepage = "https://github.com/DarthSim/"; + description = "Process manager for Procfile-based applications"; + license = with licenses; [ mit ]; + maintainers = [ maintainers.sveitser ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/houdini/default.nix b/nixpkgs/pkgs/applications/misc/houdini/default.nix new file mode 100644 index 000000000000..db06efd6a2a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/houdini/default.nix @@ -0,0 +1,18 @@ +{ callPackage, buildFHSUserEnv, undaemonize, unwrapped ? callPackage ./runtime.nix {} }: + +let + houdini-runtime = callPackage ./runtime.nix { }; +in buildFHSUserEnv { + name = "houdini-${houdini-runtime.version}"; + + extraBuildCommands = '' + mkdir -p $out/usr/lib/sesi + ''; + + passthru = { + unwrapped = houdini-runtime; + }; + + runScript = "${undaemonize}/bin/undaemonize ${houdini-runtime}/bin/houdini"; +} + diff --git a/nixpkgs/pkgs/applications/misc/houdini/runtime.nix b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix new file mode 100644 index 000000000000..8436b66719f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix @@ -0,0 +1,88 @@ +{ lib, stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsa-lib +, dbus, xkeyboardconfig, nss, nspr, expat, pciutils, libxkbcommon, bc, addOpenGLRunpath +}: + +let + # NOTE: Some dependencies only show in errors when run with QT_DEBUG_PLUGINS=1 + ld_library_path = builtins.concatStringsSep ":" [ + "${stdenv.cc.cc.lib}/lib64" + (lib.makeLibraryPath [ + libGLU + libGL + xorg.libXmu + xorg.libXi + xorg.libXext + xorg.libX11 + xorg.libXrender + xorg.libXcursor + xorg.libXfixes + xorg.libXrender + xorg.libXcomposite + xorg.libXdamage + xorg.libXtst + xorg.libxcb + xorg.libXScrnSaver + alsa-lib + fontconfig + libSM + libICE + zlib + libpng + dbus + addOpenGLRunpath.driverLink + nss + nspr + expat + pciutils + libxkbcommon + ]) + ]; + license_dir = "~/.config/houdini"; +in +stdenv.mkDerivation rec { + version = "18.0.460"; + pname = "houdini-runtime"; + src = requireFile rec { + name = "houdini-${version}-linux_x86_64_gcc6.3.tar.gz"; + sha256 = "18rbwszcks2zfn9zbax62rxmq50z9mc3h39b13jpd39qjqdd3jsd"; + url = meta.homepage; + }; + + buildInputs = [ bc ]; + installPhase = '' + patchShebangs houdini.install + mkdir -p $out + sed -i "s|/usr/lib/sesi|${license_dir}|g" houdini.install + ./houdini.install --install-houdini \ + --no-install-menus \ + --no-install-bin-symlink \ + --auto-install \ + --no-root-check \ + --accept-EULA \ + $out + echo -e "localValidatorDir = ${license_dir}\nlicensingMode = localValidator" > $out/houdini/Licensing.opt + sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd_safe + sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd.startup + echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/bin/app_init.sh + echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/bin/app_init.sh + echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/houdini/sbin/app_init.sh + echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/houdini/sbin/app_init.sh + ''; + postFixup = '' + INTERPRETER="$(cat "$NIX_CC"/nix-support/dynamic-linker)" + for BIN in $(find $out/bin -type f -executable); do + if patchelf $BIN 2>/dev/null ; then + echo "Patching ELF $BIN" + patchelf --set-interpreter "$INTERPRETER" "$BIN" + fi + done + ''; + meta = { + description = "3D animation application software"; + homepage = "https://www.sidefx.com"; + license = lib.licenses.unfree; + platforms = lib.platforms.linux; + hydraPlatforms = [ ]; # requireFile src's should be excluded + maintainers = with lib.maintainers; [ canndrew kwohlfahrt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hovercraft/default.nix b/nixpkgs/pkgs/applications/misc/hovercraft/default.nix new file mode 100644 index 000000000000..5a03cfe23bac --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hovercraft/default.nix @@ -0,0 +1,35 @@ +{ lib +, buildPythonApplication +, isPy3k +, fetchFromGitHub +, manuel +, setuptools +, docutils +, lxml +, svg-path +, pygments +, watchdog +}: + +buildPythonApplication rec { + pname = "hovercraft"; + version = "2.7"; + disabled = ! isPy3k; + + src = fetchFromGitHub { + owner = "regebro"; + repo = "hovercraft"; + rev = version; + sha256 = "0k0gjlqjz424rymcfdjpj6a71ppblfls5f8y2hd800d1as4im8az"; + }; + + checkInputs = [ manuel ]; + propagatedBuildInputs = [ setuptools docutils lxml svg-path pygments watchdog ]; + + meta = with lib; { + description = "Makes impress.js presentations from reStructuredText"; + homepage = "https://github.com/regebro/hovercraft"; + license = licenses.mit; + maintainers = with maintainers; [ goibhniu makefu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hr/default.nix b/nixpkgs/pkgs/applications/misc/hr/default.nix new file mode 100644 index 000000000000..706a8ff74955 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hr/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "hr"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "LuRsT"; + repo = "hr"; + rev = version; + sha256 = "068kq37lbqfjzh28rlvkprni38ii991naawylwvq6d43y9dpzs2b"; + }; + + dontBuild = true; + installFlags = [ "PREFIX=$(out)" "MANPREFIX=$(out)/share" ]; + + preInstall = '' + mkdir -p $out/{bin,share} + ''; + + meta = with lib; { + homepage = "https://github.com/LuRsT/hr"; + description = "A horizontal bar for your terminal"; + license = licenses.mit; + maintainers = [ maintainers.matthiasbeyer ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hstr/default.nix b/nixpkgs/pkgs/applications/misc/hstr/default.nix new file mode 100644 index 000000000000..3cda6d0a3181 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hstr/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, readline, ncurses +, autoreconfHook, pkg-config, gettext }: + +stdenv.mkDerivation rec { + pname = "hstr"; + version = "2.3"; + + src = fetchFromGitHub { + owner = "dvorka"; + repo = "hstr"; + rev = version; + sha256 = "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ readline ncurses gettext ]; + + configureFlags = [ "--prefix=$(out)" ]; + + meta = { + homepage = "https://github.com/dvorka/hstr"; + description = "Shell history suggest box - easily view, navigate, search and use your command history"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.matthiasbeyer ]; + platforms = with lib.platforms; linux ++ darwin; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/html5validator/default.nix b/nixpkgs/pkgs/applications/misc/html5validator/default.nix new file mode 100644 index 000000000000..657996d1da9f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/html5validator/default.nix @@ -0,0 +1,25 @@ +{ buildPythonApplication, fetchFromGitHub, nose, openjdk, lib }: + +buildPythonApplication rec { + pname = "html5validator"; + version = "0.3.3"; + + src = fetchFromGitHub { + owner = "svenkreiss"; + repo = "html5validator"; + rev = "v${version}"; + sha256 = "130acqi0dsy3midg7hwslykzry6crr4ln6ia0f0avyywkz4bplsv"; + }; + + propagatedBuildInputs = [ openjdk ]; + + checkInputs = [ nose ]; + checkPhase = "PATH=$PATH:$out/bin nosetests"; + + meta = with lib; { + homepage = "https://github.com/svenkreiss/html5validator"; + description = "Command line tool that tests files for HTML5 validity"; + license = licenses.mit; + maintainers = [ maintainers.phunehehe ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hubstaff/default.nix b/nixpkgs/pkgs/applications/misc/hubstaff/default.nix new file mode 100644 index 000000000000..1bc22b6613d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hubstaff/default.nix @@ -0,0 +1,77 @@ +{ lib, stdenv, fetchurl, unzip, makeWrapper, libX11, zlib, libSM, libICE +, libXext , freetype, libXrender, fontconfig, libXft, libXinerama +, libXfixes, libXScrnSaver, libnotify, glib , gtk3, libappindicator-gtk3 +, curl, writeShellScript, common-updater-scripts }: + +let + url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.5.19-9e79d1da/Hubstaff-1.5.19-9e79d1da.sh"; + version = "1.5.19-9e79d1da"; + sha256 = "1l4sq8cblpl1kclkx5pgy0ldfmqa3n8bvdl5qml0n78r0lpk382j"; + + rpath = lib.makeLibraryPath + [ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft + libXinerama stdenv.cc.cc.lib libnotify glib gtk3 libappindicator-gtk3 + curl libXfixes libXScrnSaver ]; + +in + +stdenv.mkDerivation { + pname = "hubstaff"; + inherit version; + + src = fetchurl { inherit sha256 url; }; + + nativeBuildInputs = [ unzip makeWrapper ]; + + unpackCmd = '' + # MojoSetups have a ZIP file at the end. ZIP’s magic string is + # most often PK\x03\x04. This has worked for all past updates, + # but feel free to come up with something more reasonable. + dataZipOffset=$(grep --max-count=1 --byte-offset --only-matching --text ''$'PK\x03\x04' $curSrc | cut -d: -f1) + dd bs=$dataZipOffset skip=1 if=$curSrc of=data.zip 2>/dev/null + unzip -q data.zip "data/*" + rm data.zip + ''; + + dontBuild = true; + + installPhase = '' + # TODO: handle 32-bit arch? + rm -r x86 + rm -r x86_64/lib64 + + opt=$out/opt/hubstaff + mkdir -p $out/bin $opt + cp -r . $opt/ + + for f in "$opt/x86_64/"*.bin.x86_64 ; do + patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $f + wrapProgram $f --prefix LD_LIBRARY_PATH : ${rpath} + done + + ln -s $opt/x86_64/HubstaffClient.bin.x86_64 $out/bin/HubstaffClient + + # Why is this needed? SEGV otherwise. + ln -s $opt/data/resources $opt/x86_64/resources + ''; + + updateScript = writeShellScript "hubstaff-updater" '' + set -eu -o pipefail + + installation_script_url=$(curl --fail --head --location --silent --output /dev/null --write-out %{url_effective} https://app.hubstaff.com/download/linux) + + version=$(echo "$installation_script_url" | sed -r 's/^https:\/\/hubstaff\-production\.s3\.amazonaws\.com\/downloads\/HubstaffClient\/Builds\/Release\/([^\/]+)\/Hubstaff.+$/\1/') + + sha256=$(nix-prefetch-url "$installation_script_url") + + ${common-updater-scripts}/bin/update-source-version hubstaff "$version" "$sha256" "$installation_script_url" + ''; + + meta = with lib; { + description = "Time tracking software"; + homepage = "https://hubstaff.com/"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ michalrus srghma ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hugo/default.nix b/nixpkgs/pkgs/applications/misc/hugo/default.nix new file mode 100644 index 000000000000..a0491a09884d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hugo/default.nix @@ -0,0 +1,41 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "hugo"; + version = "0.85.0"; + + src = fetchFromGitHub { + owner = "gohugoio"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-IW41e4imaXKcXJKa7dAB60ulvRrk3qvF1//Lo55TLVI="; + }; + + vendorSha256 = "sha256-ZIGw349m6k8qqrzUN/oYV/HrgBvfOo/ovjo1SUDRmyk="; + + doCheck = false; + + runVend = true; + + buildFlags = [ "-tags" "extended" ]; + + subPackages = [ "." ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + $out/bin/hugo gen man + installManPage man/* + installShellCompletion --cmd hugo \ + --bash <($out/bin/hugo gen autocomplete --type=bash) \ + --fish <($out/bin/hugo gen autocomplete --type=fish) \ + --zsh <($out/bin/hugo gen autocomplete --type=zsh) + ''; + + meta = with lib; { + description = "A fast and modern static website engine"; + homepage = "https://gohugo.io"; + license = licenses.asl20; + maintainers = with maintainers; [ schneefux Br1ght0ne Frostman ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/hunter/default.nix b/nixpkgs/pkgs/applications/misc/hunter/default.nix new file mode 100644 index 000000000000..6c0c9b2955ab --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/hunter/default.nix @@ -0,0 +1,77 @@ +{ lib, stdenv, pkg-config, rustPlatform, fetchFromGitHub, fetchpatch +, makeWrapper, glib, gst_all_1, CoreServices, IOKit, Security }: + +rustPlatform.buildRustPackage rec { + pname = "hunter"; + version = "2020-05-25-unstable"; + + src = fetchFromGitHub { + owner = "rabite0"; + repo = "hunter"; + rev = "355d9a3101f6d8dc375807de79e368602f1cb87d"; + sha256 = "sha256-R2wNkG8bFP7X2pdlebHK6GD15qmD/zD3L0MwVthvzzQ="; + }; + + patches = [ + (fetchpatch { + name = "remove-dependencies-on-rust-nightly"; + url = "https://github.com/06kellyjac/hunter/commit/a5943578e1ee679c8bc51b0e686c6dddcf74da2a.diff"; + sha256 = "sha256-eOwBFfW5m8tPnu+whWY/53X9CaqiVj2WRr25G+Yy7qE="; + }) + (fetchpatch { + name = "fix-accessing-core-when-moved-with-another-clone"; + url = "https://github.com/06kellyjac/hunter/commit/2e95cc567c751263f8c318399f3c5bb01d36962a.diff"; + sha256 = "sha256-yTzIXUw5qEaR2QZHwydg0abyZVXfK6fhJLVHBI7EAro="; + }) + (fetchpatch { + name = "fix-resolve-breaking-changes-from-package-updates"; + url = "https://github.com/06kellyjac/hunter/commit/2484f0db580bed1972fd5000e1e949a4082d2f01.diff"; + sha256 = "sha256-K+WUxEr1eE68XejStj/JwQpMHlhkiOw6PmiSr1GO0kc="; + }) + ]; + + cargoPatches = [ + (fetchpatch { + name = "chore-cargo-update"; + url = "https://github.com/06kellyjac/hunter/commit/b0be49a82191a4420b6900737901a71140433efd.diff"; + sha256 = "sha256-ctxoDwyIJgEhMbMUfrjCTy2SeMUQqMi971szrqEOJeg="; + }) + (fetchpatch { + name = "chore-cargo-upgrade-+-cargo-update"; + url = "https://github.com/06kellyjac/hunter/commit/1b8de9248312878358afaf1dac569ebbccc4321a.diff"; + sha256 = "sha256-+4DZ8SaKwKNmr2SEgJJ7KZBIctnYFMQFKgG+yCkbUv0="; + }) + ]; + + RUSTC_BOOTSTRAP = 1; + + nativeBuildInputs = [ makeWrapper pkg-config ]; + buildInputs = [ + glib + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-ugly + gst-plugins-bad + ]) ++ lib.optionals stdenv.isDarwin [ CoreServices IOKit Security ]; + + cargoBuildFlags = [ "--no-default-features" "--features=img,video" ]; + + postInstall = '' + wrapProgram $out/bin/hunter --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" + ''; + + cargoSha256 = "sha256-Bd/gilebxC4H+/1A41OSSfWBlHcSczsFcU2b+USnI74="; + + meta = with lib; { + description = "The fastest file manager in the galaxy!"; + homepage = "https://github.com/rabite0/hunter"; + license = licenses.wtfpl; + maintainers = with maintainers; [ fufexan ]; + # error[E0308]: mismatched types + # --> src/files.rs:502:62 + # expected raw pointer `*const u8`, found raw pointer `*const i8` + broken = stdenv.isAarch64; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/icesl/default.nix b/nixpkgs/pkgs/applications/misc/icesl/default.nix new file mode 100644 index 000000000000..5c50ac245381 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/icesl/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchzip, freeglut, libXmu, libXi, libX11, libICE, libGLU, libGL, libSM, libXext, dialog, makeWrapper }: +let + lpath = lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE libGLU libGL libSM libXext ]; +in +stdenv.mkDerivation rec { + pname = "iceSL"; + version = "2.1.10"; + + src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchzip { + url = "https://gforge.inria.fr/frs/download.php/file/37268/icesl${version}-amd64.zip"; + sha256 = "0dv3mq6wy46xk9blzzmgbdxpsjdaxid3zadfrysxlhmgl7zb2cn2"; + } else if stdenv.hostPlatform.system == "i686-linux" then fetchzip { + url = "https://gforge.inria.fr/frs/download.php/file/37267/icesl${version}-i386.zip"; + sha256 = "0sl54fsb2gz6dy0bwdscpdq1ab6ph5b7zald3bwzgkqsvna7p1jr"; + } else throw "Unsupported architecture"; + + nativeBuildInputs = [ makeWrapper ]; + installPhase = '' + cp -r ./ $out + mkdir $out/oldbin + mv $out/bin/IceSL-slicer $out/oldbin/IceSL-slicer + runHook postInstall + ''; + + postInstall = '' + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${lpath}" \ + $out/oldbin/IceSL-slicer + makeWrapper $out/oldbin/IceSL-slicer $out/bin/icesl --prefix PATH : ${dialog}/bin + ''; + + meta = with lib; { + description = "GPU-accelerated procedural modeler and slicer for 3D printing"; + homepage = "http://shapeforge.loria.fr/icesl/index.html"; + license = licenses.inria-icesl; + platforms = [ "i686-linux" "x86_64-linux" ]; + maintainers = with maintainers; [ mgttlinger ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ideamaker/default.nix b/nixpkgs/pkgs/applications/misc/ideamaker/default.nix new file mode 100644 index 000000000000..1996ba5c1ea0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ideamaker/default.nix @@ -0,0 +1,78 @@ +{ stdenv +, autoPatchelfHook +, curl +, dpkg +, fetchurl +, gcc +, lib +, libGLU +, libcork +, makeDesktopItem +, qt5 +, quazip +, zlib +}: +stdenv.mkDerivation rec { + pname = "ideamaker"; + version = "4.0.1"; + + src = fetchurl { + # N.B. Unfortunately ideamaker adds a number after the patch number in + # their release scheme which is not referenced anywhere other than in + # the download URL. Because of this, I have chosen to not use ${version} + # and just handwrite the correct values in the following URL, hopefully + # avoiding surprises for the next person that comes to update this + # package. + url = "https://download.raise3d.com/ideamaker/release/4.0.1/ideaMaker_4.0.1.4802-ubuntu_amd64.deb"; + sha256 = "0a1jcakdglcr4kz0kyq692dbjk6aq2yqcp3i6gzni91k791h49hp"; + }; + + nativeBuildInputs = [ autoPatchelfHook dpkg qt5.wrapQtAppsHook ]; + buildInputs = [ + curl + gcc.cc.lib + libGLU + libcork + qt5.qtbase + qt5.qtserialport + quazip + zlib + ]; + + unpackPhase = '' + runHook preUnpack + dpkg-deb -x $src . + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,share/pixmaps} + + cp usr/lib/x86_64-linux-gnu/ideamaker/ideamaker $out/bin + ln -s "${desktopItem}/share/applications" $out/share/ + cp usr/share/ideamaker/icons/ideamaker-icon.png $out/share/pixmaps/${pname}.png + + runHook postInstall + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + desktopName = "Ideamaker"; + genericName = meta.description; + categories = "Utility;Viewer;Engineering;"; + mimeType = "application/sla"; + }; + + meta = with lib; { + homepage = "https://www.raise3d.com/ideamaker/"; + description = "Raise3D's 3D slicer software"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ lovesegfault ]; + broken = true; # Segfaults on startup. + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix b/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix new file mode 100644 index 000000000000..8865435339c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix @@ -0,0 +1,90 @@ +{ lib, stdenv, fetchurl, perlPackages, gettext, makeWrapper, PerlMagick, which, highlight +, gitSupport ? false, git ? null +, docutilsSupport ? false, python ? null, docutils ? null +, monotoneSupport ? false, monotone ? null +, bazaarSupport ? false, breezy ? null +, cvsSupport ? false, cvs ? null, cvsps ? null +, subversionSupport ? false, subversion ? null +, mercurialSupport ? false, mercurial ? null +, extraUtils ? [] +}: + +assert docutilsSupport -> (python != null && docutils != null); +assert gitSupport -> (git != null); +assert monotoneSupport -> (monotone != null); +assert bazaarSupport -> (breezy != null); +assert cvsSupport -> (cvs != null && cvsps != null && perlPackages.Filechdir != null); +assert subversionSupport -> (subversion != null); +assert mercurialSupport -> (mercurial != null); + +let + name = "ikiwiki"; + version = "3.20200202.3"; +in +stdenv.mkDerivation { + name = "${name}-${version}"; + + src = fetchurl { + url = "mirror://debian/pool/main/i/ikiwiki/${name}_${version}.orig.tar.xz"; + sha256 = "0skrc8r4wh4mjfgw1c94awr5sacfb9nfsbm4frikanc9xsy16ksr"; + }; + + buildInputs = [ which highlight ] + ++ (with perlPackages; [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate + TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext + RpcXML XMLSimple PerlMagick YAML YAMLLibYAML HTMLTree AuthenPassphrase + NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay ]) + ++ lib.optionals docutilsSupport [python docutils] + ++ lib.optionals gitSupport [git] + ++ lib.optionals monotoneSupport [monotone] + ++ lib.optionals bazaarSupport [breezy] + ++ lib.optionals cvsSupport [cvs cvsps perlPackages.Filechdir] + ++ lib.optionals subversionSupport [subversion] + ++ lib.optionals mercurialSupport [mercurial]; + + # A few markdown tests fail, but this is expected when using Text::Markdown + # instead of Text::Markdown::Discount. + patches = [ ./remove-markdown-tests.patch ]; + + postPatch = '' + sed -i s@/usr/bin/perl@${perlPackages.perl}/bin/perl@ pm_filter mdwn2man + sed -i s@/etc/ikiwiki@$out/etc@ Makefile.PL + sed -i /ENV{PATH}/d ikiwiki.in + # State the gcc dependency, and make the cgi use our wrapper + sed -i -e 's@$0@"'$out/bin/ikiwiki'"@' \ + -e "s@'cc'@'${stdenv.cc}/bin/gcc'@" IkiWiki/Wrapper.pm + ''; + + configurePhase = "perl Makefile.PL PREFIX=$out"; + + postInstall = '' + for a in "$out/bin/"*; do + wrapProgram $a --suffix PERL5LIB : $PERL5LIB --prefix PATH : ${perlPackages.perl}/bin:$out/bin \ + ${lib.optionalString gitSupport "--prefix PATH : ${git}/bin "} \ + ${lib.optionalString monotoneSupport "--prefix PATH : ${monotone}/bin "} \ + ${lib.optionalString bazaarSupport "--prefix PATH : ${breezy}/bin "} \ + ${lib.optionalString cvsSupport "--prefix PATH : ${cvs}/bin "} \ + ${lib.optionalString cvsSupport "--prefix PATH : ${cvsps}/bin "} \ + ${lib.optionalString subversionSupport "--prefix PATH : ${subversion.out}/bin "} \ + ${lib.optionalString mercurialSupport "--prefix PATH : ${mercurial}/bin "} \ + ${lib.optionalString docutilsSupport ''--prefix PYTHONPATH : "$(toPythonPath ${docutils})" ''} \ + ${lib.concatMapStrings (x: "--prefix PATH : ${x}/bin ") extraUtils} + done + ''; + + preCheck = '' + # Git needs some help figuring this out during test suite run. + export EMAIL="nobody@example.org" + ''; + + checkTarget = "test"; + doCheck = true; + + meta = { + description = "Wiki compiler, storing pages and history in a RCS"; + homepage = "http://ikiwiki.info/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.peti ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch b/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch new file mode 100644 index 000000000000..bae63a10bf67 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch @@ -0,0 +1,35 @@ +diff --git a/t/mdwn.t b/t/mdwn.t +index 966aad2..2756173 100755 +--- a/t/mdwn.t ++++ b/t/mdwn.t +@@ -22,30 +22,13 @@ foreach my $multimarkdown (qw(1 0)) { + "<p>C. S. Lewis wrote books</p>\n", + "alphalist off by default for multimarkdown = $multimarkdown"); + +- like(IkiWiki::htmlize("foo", "foo", "mdwn", +- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"), +- qr{<p>This works.*fnref:1.*}, +- "footnotes on by default for multimarkdown = $multimarkdown"); +- + $config{mdwn_footnotes} = 0; + unlike(IkiWiki::htmlize("foo", "foo", "mdwn", + "An unusual link label: [^1]\n\n[^1]: http://example.com/\n"), + qr{<p>An unusual link label: .*fnref:1.*}, + "footnotes can be disabled for multimarkdown = $multimarkdown"); +- +- $config{mdwn_footnotes} = 1; +- like(IkiWiki::htmlize("foo", "foo", "mdwn", +- "This works[^1]\n\n[^1]: Sometimes it doesn't.\n"), +- qr{<p>This works.*fnref:1.*}, +- "footnotes can be enabled for multimarkdown = $multimarkdown"); + } + +-$config{mdwn_alpha_lists} = 1; +-like(IkiWiki::htmlize("foo", "foo", "mdwn", +- "A. One\n". +- "B. Two\n"), +- qr{<ol\W}, "alphalist can be enabled"); +- + $config{mdwn_alpha_lists} = 0; + like(IkiWiki::htmlize("foo", "foo", "mdwn", + "A. One\n". diff --git a/nixpkgs/pkgs/applications/misc/imag/default.nix b/nixpkgs/pkgs/applications/misc/imag/default.nix new file mode 100644 index 000000000000..b637cd077d76 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/imag/default.nix @@ -0,0 +1,63 @@ +{ lib, stdenv +, rustPlatform +, fetchFromGitHub +, llvmPackages +, openssl +, pkg-config +, installShellFiles +, Security +, gitMinimal +, util-linuxMinimal +}: + +rustPlatform.buildRustPackage rec { + pname = "imag"; + version = "0.10.1"; + + src = fetchFromGitHub { + owner = "matthiasbeyer"; + repo = pname; + rev = "v${version}"; + sha256 = "0f9915f083z5qqcxyavj0w6m973c8m1x7kfb89pah5agryy5mkaq"; + }; + + nativeBuildInputs = [ installShellFiles pkg-config ]; + buildInputs = [ openssl ] + ++ lib.optional stdenv.isDarwin Security; + checkInputs = [ gitMinimal util-linuxMinimal ]; + + LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + + cargoSha256 = "1vnrc72g2271i2p847z30kplxmdpi60n3dzpw0s7dahg33g14ai6"; + + checkPhase = '' + export HOME=$TMPDIR + git config --global user.email "nobody@example.com" + git config --global user.name "Nobody" + + # UI tests uses executables directly, so we need to build them before + # launching the tests + cargo build + '' + ( + # CLI uses the presence of a controlling TTY to check if arguments are + # passed in stdin, or in the command-line, so we use script to create + # a PTY for us. + if !stdenv.isDarwin then '' + script -qfec "cargo test --workspace" + '' else '' + script -q "cargo test --workspace" + '' + ); + + postInstall = '' + installShellCompletion target/imag.{bash,fish} --zsh target/_imag + ''; + + meta = with lib; { + description = "Commandline personal information management suite"; + homepage = "https://imag-pim.org/"; + license = licenses.lgpl21; + maintainers = with maintainers; [ Br1ght0ne minijackson ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/index-fm/default.nix b/nixpkgs/pkgs/applications/misc/index-fm/default.nix new file mode 100644 index 000000000000..149e571fea22 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/index-fm/default.nix @@ -0,0 +1,54 @@ +{ lib +, mkDerivation +, fetchFromGitLab +, cmake +, extra-cmake-modules +, applet-window-buttons +, karchive +, kcoreaddons +, ki18n +, kio +, kirigami2 +, mauikit +, mauikit-filebrowsing +, qtmultimedia +, qtquickcontrols2 +}: + +mkDerivation rec { + pname = "index"; + version = "1.2.2"; + + src = fetchFromGitLab { + domain = "invent.kde.org"; + owner = "maui"; + repo = "index-fm"; + rev = "v${version}"; + sha256 = "sha256-N9/Jt18QRqDMWtEfxWn22e5Ud3YMwJ9B7OQRwTvwX8g="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + buildInputs = [ + applet-window-buttons + karchive + kcoreaddons + ki18n + kio + kirigami2 + mauikit + mauikit-filebrowsing + qtmultimedia + qtquickcontrols2 + ]; + + meta = with lib; { + description = "Multi-platform file manager"; + homepage = "https://invent.kde.org/maui/index-fm"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/inkcut/default.nix b/nixpkgs/pkgs/applications/misc/inkcut/default.nix new file mode 100644 index 000000000000..300423cb7f67 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/inkcut/default.nix @@ -0,0 +1,73 @@ +{ lib +, python3Packages +, fetchFromGitHub +, wrapQtAppsHook +, cups +}: + +with python3Packages; + +buildPythonApplication rec { + pname = "inkcut"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "0px0xdv6kyzkkpmvryrdfavv1qy2xrqdxkpmhvx1gj649xcabv32"; + }; + + postPatch = '' + substituteInPlace inkcut/device/transports/printer/plugin.py \ + --replace ", 'lpr', " ", '${cups}/bin/lpr', " + ''; + + nativeBuildInputs = [ wrapQtAppsHook ]; + + propagatedBuildInputs = [ + enamlx + twisted + lxml + qreactor + jsonpickle + pyserial + pycups + qtconsole + pyqt5 + ]; + + # QtApplication.instance() does not work during tests? + doCheck = false; + + pythonImportsCheck = [ + "inkcut" + "inkcut.cli" + "inkcut.console" + "inkcut.core" + "inkcut.device" + "inkcut.job" + "inkcut.joystick" + "inkcut.monitor" + "inkcut.preview" + ]; + + dontWrapQtApps = true; + makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ]; + + postInstall = '' + mkdir -p $out/share/inkscape/extensions + + cp plugins/inkscape/* $out/share/inkscape/extensions + + sed -i "s|cmd = \['inkcut'\]|cmd = \['$out/bin/inkcut'\]|" $out/share/inkscape/extensions/inkcut_cut.py + sed -i "s|cmd = \['inkcut'\]|cmd = \['$out/bin/inkcut'\]|" $out/share/inkscape/extensions/inkcut_open.py + ''; + + meta = with lib; { + homepage = "https://www.codelv.com/projects/inkcut/"; + description = "Control 2D plotters, cutters, engravers, and CNC machines"; + license = licenses.gpl3; + maintainers = with maintainers; [ raboof ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix b/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix new file mode 100644 index 000000000000..120affb988c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchzip }: + +stdenv.mkDerivation rec { + pname = "ipmicfg"; + version = "1.32.0"; + buildVersion = "200910"; + + src = fetchzip { + url = "https://www.supermicro.com/wftp/utility/IPMICFG/IPMICFG_${version}_build.${buildVersion}.zip"; + sha256 = "1mncinwgx5d8jkvnvhccqlj2xp0xa5xjsab4r5mblmcnvm609rr3"; + }; + + installPhase = '' + mkdir -p "$out/bin" "$out/opt/ipmicfg" + cp Linux/64bit/* "$out/opt/ipmicfg" + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc ]}" \ + "$out/opt/ipmicfg/IPMICFG-Linux.x86_64" + + ln -s "$out/opt/ipmicfg/IPMICFG-Linux.x86_64" "$out/bin/ipmicfg" + ''; + + dontPatchShebangs = true; # There are no scripts and it complains about null bytes. + + meta = with lib; { + description = "Supermicro IPMI configuration tool"; + homepage = "http://www.supermicro.com/products/nfo/ipmi.cfm"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ sorki ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ipmiview/default.nix b/nixpkgs/pkgs/applications/misc/ipmiview/default.nix new file mode 100644 index 000000000000..92491f4508e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ipmiview/default.nix @@ -0,0 +1,79 @@ +{ lib, stdenv +, fetchurl +, makeDesktopItem +, makeWrapper +, patchelf +, fontconfig +, freetype +, gcc +, gcc-unwrapped +, iputils +, psmisc +, xorg }: + +stdenv.mkDerivation rec { + pname = "IPMIView"; + version = "2.19.0"; + buildVersion = "210401"; + + src = fetchurl { + url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz"; + sha256 = "sha256-6hxOu/Wkcrp9MaMYlxOR2DZW21Wi3BIFZp3Vm8NRBWs="; + }; + + nativeBuildInputs = [ patchelf makeWrapper ]; + buildPhase = with xorg; + let + stunnelBinary = if stdenv.hostPlatform.system == "x86_64-linux" then "linux/stunnel64" + else if stdenv.hostPlatform.system == "i686-linux" then "linux/stunnel32" + else throw "IPMIView is not supported on this platform"; + in + '' + runHook preBuild + + patchelf --set-rpath "${lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/libawt_xawt.so + patchelf --set-rpath "${lib.makeLibraryPath [ freetype ]}" ./jre/lib/libfontmanager.so + patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./BMCSecurity/${stunnelBinary} + + runHook postBuild + ''; + + desktopItem = makeDesktopItem rec { + name = "IPMIView"; + exec = "IPMIView"; + desktopName = name; + genericName = "Supermicro BMC manager"; + categories = "Network"; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp -R . $out/ + + ln -s ${desktopItem}/share $out/share + + # LD_LIBRARY_PATH: fontconfig is used from java code + # PATH: iputils is used for ping, and psmisc is for killall + # WORK_DIR: unfortunately the ikvm related binaries are loaded from + # and user configuration is written to files in the CWD + makeWrapper $out/jre/bin/java $out/bin/IPMIView \ + --set LD_LIBRARY_PATH "${lib.makeLibraryPath [ fontconfig gcc-unwrapped.lib ]}" \ + --prefix PATH : "$out/jre/bin:${iputils}/bin:${psmisc}/bin" \ + --add-flags "-jar $out/IPMIView20.jar" \ + --run 'WORK_DIR=''${XDG_DATA_HOME:-~/.local/share}/ipmiview + mkdir -p $WORK_DIR + ln -snf '$out'/iKVM.jar '$out'/iKVM_ssl.jar '$out'/libiKVM* '$out'/libSharedLibrary* $WORK_DIR + cd $WORK_DIR' + + runHook postInstall + ''; + + meta = with lib; { + license = licenses.unfree; + maintainers = with maintainers; [ vlaci ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/iptsd/default.nix b/nixpkgs/pkgs/applications/misc/iptsd/default.nix new file mode 100644 index 000000000000..c5a23840264d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/iptsd/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, systemd, inih }: + +stdenv.mkDerivation rec { + pname = "iptsd"; + version = "0.4"; + + src = fetchFromGitHub { + owner = "linux-surface"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-CoPgkt7n2kk7WlQHe0RjNlxfp2Nd8BbIE2gyf0bOBy4="; + }; + + nativeBuildInputs = [ meson ninja pkg-config ]; + + buildInputs = [ systemd inih ]; + + # Original installs udev rules and service config into global paths + postPatch = '' + substituteInPlace meson.build \ + --replace "install_dir: unitdir" "install_dir: datadir" \ + --replace "install_dir: rulesdir" "install_dir: datadir" \ + ''; + mesonFlags = [ + "-Dsystemd=true" + "-Dsample_config=false" + "-Ddebug_tool=false" + ]; + + meta = with lib; { + description = "Userspace daemon for Intel Precise Touch & Stylus"; + homepage = "https://github.com/linux-surface/iptsd"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ tomberek ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix b/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix new file mode 100644 index 000000000000..eca79c6521c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, cmake, dmenu }: + +stdenv.mkDerivation rec { + pname = "j4-dmenu-desktop"; + version = "2.18"; + + src = fetchFromGitHub { + owner = "enkore"; + repo = pname; + rev = "r${version}"; + sha256 = "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26"; + }; + + postPatch = '' + sed -e 's,dmenu -i,${dmenu}/bin/dmenu -i,g' -i ./src/Main.hh + ''; + + nativeBuildInputs = [ cmake ]; + + # tests are fetching an external git repository + cmakeFlags = [ + "-DWITH_TESTS=OFF" + "-DWITH_GIT_CATCH=OFF" + ]; + + meta = with lib; { + description = "A wrapper for dmenu that recognize .desktop files"; + homepage = "https://github.com/enkore/j4-dmenu-desktop"; + license = licenses.gpl3; + maintainers = with maintainers; [ ericsagnes ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile new file mode 100644 index 000000000000..c4ba46e2ac6a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile @@ -0,0 +1,8 @@ +source "https://rubygems.org" +gem "jekyll" +# jekyll alone might be enough for most use-cases +gem "jekyll-avatar" +gem "jekyll-mentions" +gem "jekyll-seo-tag" +gem "jekyll-sitemap" +gem "jemoji" diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock new file mode 100644 index 000000000000..15ef5d3b4c60 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock @@ -0,0 +1,104 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (6.1.3.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + colorator (1.1.0) + concurrent-ruby (1.1.8) + em-websocket (0.5.2) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.7) + ffi (1.15.0) + forwardable-extended (2.6.0) + gemoji (3.0.1) + html-pipeline (2.14.0) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (1.8.10) + concurrent-ruby (~> 1.0) + jekyll (4.2.0) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (~> 2.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.4.0) + pathutil (~> 0.9) + rouge (~> 3.0) + safe_yaml (~> 1.0) + terminal-table (~> 2.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-sass-converter (2.1.0) + sassc (> 2.0.1, < 3.0) + jekyll-seo-tag (2.7.1) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.12.0) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.3) + listen (3.5.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + mini_portile2 (2.5.0) + minitest (5.14.4) + nokogiri (1.11.2) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.6) + racc (1.5.2) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.4) + rouge (3.26.0) + safe_yaml (1.0.5) + sassc (2.4.0) + ffi (~> 1.9) + terminal-table (2.0.0) + unicode-display_width (~> 1.1, >= 1.1.1) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + unicode-display_width (1.7.0) + zeitwerk (2.4.2) + +PLATFORMS + ruby + +DEPENDENCIES + jekyll + jekyll-avatar + jekyll-mentions + jekyll-seo-tag + jekyll-sitemap + jemoji + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix new file mode 100644 index 000000000000..fadbf8e32ba8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix @@ -0,0 +1,434 @@ +{ + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc"; + type = "gem"; + }; + version = "6.1.3.1"; + }; + addressable = { + dependencies = ["public_suffix"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; + type = "gem"; + }; + version = "2.7.0"; + }; + colorator = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; + type = "gem"; + }; + version = "1.1.0"; + }; + concurrent-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3"; + type = "gem"; + }; + version = "1.1.8"; + }; + em-websocket = { + dependencies = ["eventmachine" "http_parser.rb"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mg1mx735a0k1l8y14ps2mxdwhi5r01ikydf34b0sp60v66nvbkb"; + type = "gem"; + }; + version = "0.5.2"; + }; + eventmachine = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + ffi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432"; + type = "gem"; + }; + version = "1.15.0"; + }; + forwardable-extended = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; + type = "gem"; + }; + version = "2.6.0"; + }; + gemoji = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0"; + type = "gem"; + }; + version = "3.0.1"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1"; + type = "gem"; + }; + version = "2.14.0"; + }; + "http_parser.rb" = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a"; + type = "gem"; + }; + version = "1.8.10"; + }; + jekyll = { + dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cqkh78jw8scrajyx5nla0vwm9fvp2qql3kdcvvplcq9mazy8snq"; + type = "gem"; + }; + version = "4.2.0"; + }; + jekyll-avatar = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03bys2pl60vq92skfhlfqr2j68zhfjc86jffpg32f94wzjk8n0wk"; + type = "gem"; + }; + version = "0.7.0"; + }; + jekyll-mentions = { + dependencies = ["html-pipeline" "jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n8y67plydfmay3jn865igvgb3h6s2crk8kq7ydk3wmn9h103s1r"; + type = "gem"; + }; + version = "1.6.0"; + }; + jekyll-sass-converter = { + dependencies = ["sassc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04ncr44wrilz26ayqwlg7379yjnkb29mvx4j04i62b7czmdrc9dv"; + type = "gem"; + }; + version = "2.1.0"; + }; + jekyll-seo-tag = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fsi75hymk2wswy216fs224p5ycrzjw1kshw1bsl5czhv42wr2w3"; + type = "gem"; + }; + version = "2.7.1"; + }; + jekyll-sitemap = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d"; + type = "gem"; + }; + version = "1.4.0"; + }; + jekyll-watch = { + dependencies = ["listen"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w"; + type = "gem"; + }; + version = "2.2.1"; + }; + jemoji = { + dependencies = ["gemoji" "html-pipeline" "jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09sxbnrqz5vf6rxmh6lzism31gz2g3hw86ymg37r1ccknclv3cp9"; + type = "gem"; + }; + version = "0.12.0"; + }; + kramdown = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar"; + type = "gem"; + }; + version = "2.3.1"; + }; + kramdown-parser-gfm = { + dependencies = ["kramdown"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"; + type = "gem"; + }; + version = "1.1.0"; + }; + liquid = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by"; + type = "gem"; + }; + version = "4.0.3"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj"; + type = "gem"; + }; + version = "3.5.1"; + }; + mercenary = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj"; + type = "gem"; + }; + version = "0.4.0"; + }; + mini_portile2 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + type = "gem"; + }; + version = "2.5.0"; + }; + minitest = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"; + type = "gem"; + }; + version = "5.14.4"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p"; + type = "gem"; + }; + version = "1.11.2"; + }; + pathutil = { + dependencies = ["forwardable-extended"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4"; + type = "gem"; + }; + version = "0.16.2"; + }; + public_suffix = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9"; + type = "gem"; + }; + version = "4.0.6"; + }; + racc = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"; + type = "gem"; + }; + version = "1.5.2"; + }; + rb-fsevent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87"; + type = "gem"; + }; + version = "0.10.4"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + type = "gem"; + }; + version = "3.2.4"; + }; + rouge = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3"; + type = "gem"; + }; + version = "3.26.0"; + }; + safe_yaml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56"; + type = "gem"; + }; + version = "1.0.5"; + }; + sassc = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c"; + type = "gem"; + }; + version = "2.4.0"; + }; + terminal-table = { + dependencies = ["unicode-display_width"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18rbrh464ysqbdv53iwj0r8frshn65566kyj044cp3x9c2754jwh"; + type = "gem"; + }; + version = "2.0.0"; + }; + tzinfo = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z"; + type = "gem"; + }; + version = "2.0.4"; + }; + unicode-display_width = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna"; + type = "gem"; + }; + version = "1.7.0"; + }; + zeitwerk = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl"; + type = "gem"; + }; + version = "2.4.2"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jekyll/default.nix b/nixpkgs/pkgs/applications/misc/jekyll/default.nix new file mode 100644 index 000000000000..8c25e3774b14 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/default.nix @@ -0,0 +1,55 @@ +{ lib, bundlerApp, ruby +, writeShellScriptBin, makeWrapper +, withOptionalDependencies ? false +}: + +let + rubyWrapper = writeShellScriptBin "ruby" '' + if [[ "$#" -eq 2 ]]; then + if [[ "''${1##*/}" == "bundle" && "$2" == "install" ]]; then + # See https://github.com/NixOS/nixpkgs/issues/58126 for more details. + echo 'Skipping "bundle install" as it fails due to the Nix wrapper.' + echo 'Please enter the new directory and run the following commands to serve the page:' + echo 'nix-shell -p bundler --run "bundle install --gemfile=Gemfile --path vendor/cache"' + echo 'nix-shell -p bundler --run "bundle exec jekyll serve"' + exit 0 + # The following nearly works: + unset BUNDLE_FROZEN + exec ${ruby}/bin/ruby "$@" --gemfile=Gemfile --path=vendor/cache + fi + fi + # Else: Don't modify the arguments: + exec ${ruby}/bin/ruby "$@" + ''; +in bundlerApp { + pname = "jekyll"; + exes = [ "jekyll" ]; + + inherit ruby; + gemdir = if withOptionalDependencies + then ./full + else ./basic; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/jekyll --prefix PATH : ${rubyWrapper}/bin + ''; + + meta = with lib; { + description = "A blog-aware, static site generator, written in Ruby"; + longDescription = '' + Jekyll is a simple, blog-aware, static site generator, written in Ruby. + Think of it like a file-based CMS, without all the complexity. Jekyll + takes your content, renders Markdown and Liquid templates, and spits out a + complete, static website ready to be served by Apache, Nginx or another + web server. Jekyll is the engine behind GitHub Pages, which you can use to + host sites right from your GitHub repositories. + ''; + homepage = "https://jekyllrb.com/"; + #changelog = "https://raw.githubusercontent.com/jekyll/jekyll/v${version}/History.markdown"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile new file mode 100644 index 000000000000..2e72350f7e5e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile @@ -0,0 +1,28 @@ +source "https://rubygems.org" + +gem "jekyll" + +gem "jekyll-avatar" +gem "jekyll-mentions" +gem "jekyll-seo-tag" +gem "jekyll-sitemap" +gem "jemoji" + +# Optional dependencies: +gem "jekyll-coffeescript" +#gem "jekyll-docs" +gem "jekyll-feed", "~> 0.9" +gem "jekyll-gist" +gem "jekyll-paginate" +gem "jekyll-polyglot" +gem "jekyll-redirect-from" +gem "kramdown-syntax-coderay" +gem "mime-types", "~> 3.0" +gem "rdoc", "~> 6.0" +gem "tomlrb", "~> 1.2" + +platform :ruby, :mswin, :mingw, :x64_mingw do + gem "classifier-reborn", "~> 2.2" + gem "liquid-c", "~> 4.0" + gem "yajl-ruby", "~> 1.4" +end diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock new file mode 100644 index 000000000000..b3d3b9ca4993 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock @@ -0,0 +1,162 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (6.1.3.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + classifier-reborn (2.2.0) + fast-stemmer (~> 1.0) + coderay (1.1.3) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + colorator (1.1.0) + concurrent-ruby (1.1.8) + em-websocket (0.5.2) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.7) + execjs (2.7.0) + faraday (1.3.0) + faraday-net_http (~> 1.0) + multipart-post (>= 1.2, < 3) + ruby2_keywords + faraday-net_http (1.0.1) + fast-stemmer (1.0.2) + ffi (1.15.0) + forwardable-extended (2.6.0) + gemoji (3.0.1) + html-pipeline (2.14.0) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (1.8.10) + concurrent-ruby (~> 1.0) + jekyll (4.2.0) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (~> 2.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.4.0) + pathutil (~> 0.9) + rouge (~> 3.0) + safe_yaml (~> 1.0) + terminal-table (~> 2.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (2.0.0) + coffee-script (~> 2.2) + coffee-script-source (~> 1.12) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-paginate (1.1.0) + jekyll-polyglot (1.4.0) + jekyll (>= 3.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-sass-converter (2.1.0) + sassc (> 2.0.1, < 3.0) + jekyll-seo-tag (2.7.1) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.12.0) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + kramdown-syntax-coderay (1.0.1) + coderay (~> 1.1) + kramdown (~> 2.0) + liquid (4.0.3) + liquid-c (4.0.0) + liquid (>= 3.0.0) + listen (3.5.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + mime-types (3.3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2021.0225) + mini_portile2 (2.5.0) + minitest (5.14.4) + multipart-post (2.1.1) + nokogiri (1.11.2) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) + octokit (4.20.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.6) + racc (1.5.2) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + rdoc (6.3.0) + rexml (3.2.4) + rouge (3.26.0) + ruby2_keywords (0.0.4) + safe_yaml (1.0.5) + sassc (2.4.0) + ffi (~> 1.9) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + terminal-table (2.0.0) + unicode-display_width (~> 1.1, >= 1.1.1) + tomlrb (1.3.0) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + unicode-display_width (1.7.0) + yajl-ruby (1.4.1) + zeitwerk (2.4.2) + +PLATFORMS + ruby + +DEPENDENCIES + classifier-reborn (~> 2.2) + jekyll + jekyll-avatar + jekyll-coffeescript + jekyll-feed (~> 0.9) + jekyll-gist + jekyll-mentions + jekyll-paginate + jekyll-polyglot + jekyll-redirect-from + jekyll-seo-tag + jekyll-sitemap + jemoji + kramdown-syntax-coderay + liquid-c (~> 4.0) + mime-types (~> 3.0) + rdoc (~> 6.0) + tomlrb (~> 1.2) + yajl-ruby (~> 1.4) + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix new file mode 100644 index 000000000000..7a6814aaa32d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix @@ -0,0 +1,757 @@ +{ + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc"; + type = "gem"; + }; + version = "6.1.3.1"; + }; + addressable = { + dependencies = ["public_suffix"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; + type = "gem"; + }; + version = "2.7.0"; + }; + classifier-reborn = { + dependencies = ["fast-stemmer"]; + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "mswin"; + } { + engine = "rbx"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nxmm5b7j7r0ij9pcpdr7xqpig559gfzrw042ycxcfyav2pv6ij"; + type = "gem"; + }; + version = "2.2.0"; + }; + coderay = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; + type = "gem"; + }; + version = "1.1.3"; + }; + coffee-script = { + dependencies = ["coffee-script-source" "execjs"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2"; + type = "gem"; + }; + version = "2.4.1"; + }; + coffee-script-source = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1907v9q1zcqmmyqzhzych5l7qifgls2rlbnbhy5vzyr7i7yicaz1"; + type = "gem"; + }; + version = "1.12.2"; + }; + colorator = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; + type = "gem"; + }; + version = "1.1.0"; + }; + concurrent-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3"; + type = "gem"; + }; + version = "1.1.8"; + }; + em-websocket = { + dependencies = ["eventmachine" "http_parser.rb"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mg1mx735a0k1l8y14ps2mxdwhi5r01ikydf34b0sp60v66nvbkb"; + type = "gem"; + }; + version = "0.5.2"; + }; + eventmachine = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + execjs = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1"; + type = "gem"; + }; + version = "2.7.0"; + }; + faraday = { + dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz"; + type = "gem"; + }; + version = "1.3.0"; + }; + faraday-net_http = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; + type = "gem"; + }; + version = "1.0.1"; + }; + fast-stemmer = { + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "mswin"; + } { + engine = "rbx"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0688clyk4xxh3kdb18vi089k90mca8ji5fwaknh3da5wrzcrzanh"; + type = "gem"; + }; + version = "1.0.2"; + }; + ffi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432"; + type = "gem"; + }; + version = "1.15.0"; + }; + forwardable-extended = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; + type = "gem"; + }; + version = "2.6.0"; + }; + gemoji = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0"; + type = "gem"; + }; + version = "3.0.1"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1"; + type = "gem"; + }; + version = "2.14.0"; + }; + "http_parser.rb" = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a"; + type = "gem"; + }; + version = "1.8.10"; + }; + jekyll = { + dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cqkh78jw8scrajyx5nla0vwm9fvp2qql3kdcvvplcq9mazy8snq"; + type = "gem"; + }; + version = "4.2.0"; + }; + jekyll-avatar = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03bys2pl60vq92skfhlfqr2j68zhfjc86jffpg32f94wzjk8n0wk"; + type = "gem"; + }; + version = "0.7.0"; + }; + jekyll-coffeescript = { + dependencies = ["coffee-script" "coffee-script-source"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17fjk0bfm0rs3myid24y2scsf5vzzza185bissjmcc44cbxp571j"; + type = "gem"; + }; + version = "2.0.0"; + }; + jekyll-feed = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zxqkrnix0xiw98531h5ga6h69jhzlx2jh9qhvcl67p8nq3sgza9"; + type = "gem"; + }; + version = "0.15.1"; + }; + jekyll-gist = { + dependencies = ["octokit"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03wz9j6yq3552nzf4g71qrdm9pfdgbm68abml9sjjgiaan1n8ns9"; + type = "gem"; + }; + version = "1.5.0"; + }; + jekyll-mentions = { + dependencies = ["html-pipeline" "jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n8y67plydfmay3jn865igvgb3h6s2crk8kq7ydk3wmn9h103s1r"; + type = "gem"; + }; + version = "1.6.0"; + }; + jekyll-paginate = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; + type = "gem"; + }; + version = "1.1.0"; + }; + jekyll-polyglot = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0klf363dsdsi90rsnc9047b3hbg88gagkq2sqzmmg5r1nhy7hyyr"; + type = "gem"; + }; + version = "1.4.0"; + }; + jekyll-redirect-from = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nz6kd6qsa160lmjmls4zgx7fwcpp8ac07mpzy80z6zgd7jwldb6"; + type = "gem"; + }; + version = "0.16.0"; + }; + jekyll-sass-converter = { + dependencies = ["sassc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04ncr44wrilz26ayqwlg7379yjnkb29mvx4j04i62b7czmdrc9dv"; + type = "gem"; + }; + version = "2.1.0"; + }; + jekyll-seo-tag = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fsi75hymk2wswy216fs224p5ycrzjw1kshw1bsl5czhv42wr2w3"; + type = "gem"; + }; + version = "2.7.1"; + }; + jekyll-sitemap = { + dependencies = ["jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d"; + type = "gem"; + }; + version = "1.4.0"; + }; + jekyll-watch = { + dependencies = ["listen"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w"; + type = "gem"; + }; + version = "2.2.1"; + }; + jemoji = { + dependencies = ["gemoji" "html-pipeline" "jekyll"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09sxbnrqz5vf6rxmh6lzism31gz2g3hw86ymg37r1ccknclv3cp9"; + type = "gem"; + }; + version = "0.12.0"; + }; + kramdown = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar"; + type = "gem"; + }; + version = "2.3.1"; + }; + kramdown-parser-gfm = { + dependencies = ["kramdown"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"; + type = "gem"; + }; + version = "1.1.0"; + }; + kramdown-syntax-coderay = { + dependencies = ["coderay" "kramdown"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03vpfpmxcdbqyh6kxrjf5xa9qgvwqj0cfv2khz5h32fp5f5dmrda"; + type = "gem"; + }; + version = "1.0.1"; + }; + liquid = { + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "mswin"; + } { + engine = "rbx"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by"; + type = "gem"; + }; + version = "4.0.3"; + }; + liquid-c = { + dependencies = ["liquid"]; + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "mswin"; + } { + engine = "rbx"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ibcpajsgq530xrz3dk578mfvivrlfd624j6ifz6ms4w69j8jqj6"; + type = "gem"; + }; + version = "4.0.0"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj"; + type = "gem"; + }; + version = "3.5.1"; + }; + mercenary = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj"; + type = "gem"; + }; + version = "0.4.0"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; + type = "gem"; + }; + version = "3.3.1"; + }; + mime-types-data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi"; + type = "gem"; + }; + version = "3.2021.0225"; + }; + mini_portile2 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + type = "gem"; + }; + version = "2.5.0"; + }; + minitest = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl"; + type = "gem"; + }; + version = "5.14.4"; + }; + multipart-post = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; + type = "gem"; + }; + version = "2.1.1"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p"; + type = "gem"; + }; + version = "1.11.2"; + }; + octokit = { + dependencies = ["faraday" "sawyer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq"; + type = "gem"; + }; + version = "4.20.0"; + }; + pathutil = { + dependencies = ["forwardable-extended"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4"; + type = "gem"; + }; + version = "0.16.2"; + }; + public_suffix = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9"; + type = "gem"; + }; + version = "4.0.6"; + }; + racc = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"; + type = "gem"; + }; + version = "1.5.2"; + }; + rb-fsevent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87"; + type = "gem"; + }; + version = "0.10.4"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rdoc = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rz1492df18161qwzswm86gav0dnqz715kxzw5yfnv0ka43d4zc4"; + type = "gem"; + }; + version = "6.3.0"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + type = "gem"; + }; + version = "3.2.4"; + }; + rouge = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3"; + type = "gem"; + }; + version = "3.26.0"; + }; + ruby2_keywords = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs"; + type = "gem"; + }; + version = "0.0.4"; + }; + safe_yaml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56"; + type = "gem"; + }; + version = "1.0.5"; + }; + sassc = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c"; + type = "gem"; + }; + version = "2.4.0"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz"; + type = "gem"; + }; + version = "0.8.2"; + }; + terminal-table = { + dependencies = ["unicode-display_width"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18rbrh464ysqbdv53iwj0r8frshn65566kyj044cp3x9c2754jwh"; + type = "gem"; + }; + version = "2.0.0"; + }; + tomlrb = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00x5y9h4fbvrv4xrjk4cqlkm4vq8gv73ax4alj3ac2x77zsnnrk8"; + type = "gem"; + }; + version = "1.3.0"; + }; + tzinfo = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z"; + type = "gem"; + }; + version = "2.0.4"; + }; + unicode-display_width = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna"; + type = "gem"; + }; + version = "1.7.0"; + }; + yajl-ruby = { + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "mswin"; + } { + engine = "rbx"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf"; + type = "gem"; + }; + version = "1.4.1"; + }; + zeitwerk = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl"; + type = "gem"; + }; + version = "2.4.2"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jekyll/update.sh b/nixpkgs/pkgs/applications/misc/jekyll/update.sh new file mode 100755 index 000000000000..528f1062c733 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jekyll/update.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bundix zlib + +set -o errexit +set -o nounset + +readonly BASEDIR="$(dirname $(readlink -f $0))" + +for directory in "basic" "full"; do + pushd "$BASEDIR/$directory" + rm -f Gemfile.lock gemset.nix + bundix --magic + rm -rf .bundle vendor + popd +done diff --git a/nixpkgs/pkgs/applications/misc/jgmenu/default.nix b/nixpkgs/pkgs/applications/misc/jgmenu/default.nix new file mode 100644 index 000000000000..88274b8664d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jgmenu/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv +, fetchFromGitHub +, pkg-config +, python3Packages +, pango +, librsvg +, libxml2 +, menu-cache +, xorg +, makeWrapper +, enableXfcePanelApplet ? false +, xfce +, gtk3 +}: + +stdenv.mkDerivation rec { + pname = "jgmenu"; + version = "4.3.0"; + + src = fetchFromGitHub { + owner = "johanmalm"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-+JO/A7+6/yeYz0tP7vxSi04cS1bEet+3sAs7CYXKxI8="; + }; + + nativeBuildInputs = [ + pkg-config + makeWrapper + python3Packages.wrapPython + ]; + + buildInputs = [ + pango + librsvg + libxml2 + menu-cache + xorg.libXinerama + xorg.libXrandr + python3Packages.python + ] ++ lib.optionals enableXfcePanelApplet [ + gtk3 + xfce.libxfce4util + xfce.xfce4-panel + ]; + + configureFlags = [ + ] + ++ lib.optionals enableXfcePanelApplet [ + "--with-xfce4-panel-applet" + ]; + + postFixup = '' + wrapPythonProgramsIn "$out/lib/jgmenu" + for f in $out/bin/jgmenu{,_run}; do + wrapProgram $f --prefix PATH : $out/bin + done + ''; + + meta = with lib; { + homepage = "https://github.com/johanmalm/jgmenu"; + description = "Small X11 menu intended to be used with openbox and tint2"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jigdo/default.nix b/nixpkgs/pkgs/applications/misc/jigdo/default.nix new file mode 100644 index 000000000000..b4573a816359 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jigdo/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, db, gtk2, bzip2 }: + +stdenv.mkDerivation { + name = "jigdo-0.7.3"; + + # Debian sources + src = fetchurl { + url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3.orig.tar.gz"; + sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv"; + }; + + patches = [ + (fetchurl { + url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-4.diff.gz"; + sha256 = "03zsh57fijciiv23lf55k6fbfhhzm866xjhx83x54v5s1g2h6m8y"; + }) + ./sizewidth.patch + ]; + + buildInputs = [ db gtk2 bzip2 ]; + + configureFlags = [ "--without-libdb" ]; + + meta = { + description = "Download utility that can fetch files from several sources simultaneously"; + homepage = "http://atterer.net/jigdo/"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch b/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch new file mode 100644 index 000000000000..17b1749fcf77 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch @@ -0,0 +1,40 @@ +diff --git i/src/mkimage.cc w/src/mkimage.cc +index 02e65b1..b263796 100755 +--- i/src/mkimage.cc ++++ w/src/mkimage.cc +@@ -285,27 +285,27 @@ bostream& JigdoDescVec::put(bostream& file, MD5Sum* md) const { + //______________________________________________________________________ + + namespace { +- const int SIZE_WIDTH = 12; ++ const int MKIMAGE_SIZE_WIDTH = 12; + } + + ostream& JigdoDesc::ImageInfo::put(ostream& s) const { +- s << "image-info " << setw(SIZE_WIDTH) << size() << " " ++ s << "image-info " << setw(MKIMAGE_SIZE_WIDTH) << size() << " " + << md5() << ' ' << blockLength() << '\n'; + return s; + } + ostream& JigdoDesc::UnmatchedData::put(ostream& s) const { +- s << "in-template " << setw(SIZE_WIDTH) << offset() << ' ' +- << setw(SIZE_WIDTH) << size() << '\n'; ++ s << "in-template " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' ' ++ << setw(MKIMAGE_SIZE_WIDTH) << size() << '\n'; + return s; + } + ostream& JigdoDesc::MatchedFile::put(ostream& s) const { +- s << "need-file " << setw(SIZE_WIDTH) << offset() << ' ' +- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; ++ s << "need-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' ' ++ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; + return s; + } + ostream& JigdoDesc::WrittenFile::put(ostream& s) const { +- s << "have-file " << setw(SIZE_WIDTH) << offset() << ' ' +- << setw(SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; ++ s << "have-file " << setw(MKIMAGE_SIZE_WIDTH) << offset() << ' ' ++ << setw(MKIMAGE_SIZE_WIDTH) << size() << ' ' << md5() << ' ' << rsync() << '\n'; + return s; + } + diff --git a/nixpkgs/pkgs/applications/misc/jiten/default.nix b/nixpkgs/pkgs/applications/misc/jiten/default.nix new file mode 100644 index 000000000000..efd28fabae3a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jiten/default.nix @@ -0,0 +1,105 @@ +{ lib +, fetchFromGitHub +, python3 +, bash +, makeWrapper +, kanjidraw +, pcre +, sqlite +, nodejs +}: + +python3.pkgs.buildPythonApplication rec { + pname = "jiten"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "obfusk"; + repo = "jiten"; + rev = "v${version}"; + sha256 = "13bdx136sirbhxdhvpq5kf0r6q1xvm5zyzp454z51gy0v6rn0qrp"; + }; + + nonFreeData = fetchFromGitHub { + owner = "obfusk"; + repo = "jiten-nonfree-data"; + rev = "v${version}"; + sha256 = "16sz8i0sw7ggy6kijcx4qyl2zr6xj789x4iav0yyllx12dfgp5b1"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ pcre sqlite ]; + propagatedBuildInputs = with python3.pkgs; [ click flask kanjidraw ]; + checkInputs = [ nodejs ]; + + preBuild = '' + export JITEN_VERSION=${version} # override `git describe` + export JITEN_FINAL=yes # build & package *.sqlite3 + ''; + + postPatch = '' + rmdir nonfree-data + ln -s ${nonFreeData} nonfree-data + substituteInPlace Makefile --replace /bin/bash ${bash}/bin/bash + substituteInPlace jiten/res/jmdict/Makefile \ + --replace /bin/bash ${bash}/bin/bash + ''; + + checkPhase = '' + make test + ''; + + postInstall = '' + # requires pywebview + rm $out/bin/jiten-gui + ''; + + meta = with lib; { + description = "Japanese android/cli/web dictionary based on jmdict/kanjidic"; + longDescription = '' + Jiten is a Japanese dictionary based on JMDict/Kanjidic + + Fine-grained search using regexes (regular expressions) + • simple searches don't require knowledge of regexes + • quick reference available in the web interface and android app + + JMDict multilingual japanese dictionary + • kanji, readings (romaji optional), meanings & more + • meanings in english, dutch, german, french and/or spanish + • pitch accent (from Wadoku) + • browse by frequency/jlpt + + Kanji dictionary + • readings (romaji optional), meanings (english), jmdict entries, radicals & more + • search using SKIP codes + • search by radical + • handwritten kanji recognition + • browse by frequency/level/jlpt/SKIP + + Example sentences (from Tatoeba) + • with english, dutch, german, french and/or spanish translation + • some with audio + + Stroke order + • input a word or sentence and see how it's written + + Web interface + • available online at https://jiten.obfusk.dev + • light/dark mode + • search history (stored locally) + • tooltips to quickly see meanings and readings for kanji and words + • use long press for tooltips on mobile + • converts romaji to hiragana and between hiragana and katakana + • can be run on your own computer + + Command-line interface + ''; + homepage = "https://github.com/obfusk/jiten"; + license = with licenses; [ + agpl3Plus # code + cc-by-sa-30 # jmdict/kanjidic + unfreeRedistributable # pitch data & audio are non-commercial + ]; + maintainers = [ maintainers.obfusk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix new file mode 100644 index 000000000000..527c2f3bab11 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix @@ -0,0 +1,77 @@ +{ lib, stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }: + +let + pname = "joplin-desktop"; + version = "2.1.9"; + name = "${pname}-${version}"; + + inherit (stdenv.hostPlatform) system; + throwSystem = throw "Unsupported system: ${system}"; + + suffix = { + x86_64-linux = "AppImage"; + x86_64-darwin = "dmg"; + }.${system} or throwSystem; + + src = fetchurl { + url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}"; + sha256 = { + x86_64-linux = "1s7zydi90yzafii42m3aaf3niqlmdy2m494j2b3yrz2j26njj4q9"; + x86_64-darwin = "1pvl08yhcrnrvdybfmkigaidhfrrg42bb6rzv96zyq9w4k0l0lm8"; + }.${system} or throwSystem; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + + meta = with lib; { + description = "An open source note taking and to-do application with synchronisation capabilities"; + longDescription = '' + Joplin is a free, open source note taking and to-do application, which can + handle a large number of notes organised into notebooks. The notes are + searchable, can be copied, tagged and modified either from the + applications directly or from your own text editor. The notes are in + Markdown format. + ''; + homepage = "https://joplinapp.org"; + license = licenses.mit; + maintainers = with maintainers; [ hugoreeves ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; + + linux = appimageTools.wrapType2 rec { + inherit name src meta; + + profile = '' + export LC_ALL=C.UTF-8 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = '' + mv $out/bin/{${name},${pname}} + install -Dm444 ${appimageContents}/@joplinapp-desktop.desktop -t $out/share/applications + install -Dm444 ${appimageContents}/@joplinapp-desktop.png -t $out/share/pixmaps + substituteInPlace $out/share/applications/@joplinapp-desktop.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + }; + + darwin = stdenv.mkDerivation { + inherit name src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "Joplin.app"; + + installPhase = '' + mkdir -p $out/Applications/Joplin.app + cp -R . $out/Applications/Joplin.app + ''; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/misc/josm/default.nix b/nixpkgs/pkgs/applications/misc/josm/default.nix new file mode 100644 index 000000000000..96ea01f53740 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/josm/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm +, extraJavaOpts ? "-Djosm.restart=true -Djava.net.useSystemProxies=true" +}: +let + pname = "josm"; + version = "17919"; + srcs = { + jar = fetchurl { + url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar"; + sha256 = "sha256-Bj1s3vFSHPiZNTjp7hQhu1X2v8nlynC37Cm6sMNOi3g="; + }; + macosx = fetchurl { + url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java16.zip"; + sha256 = "sha256-W+s6ARA5lyRwTuRD89wm4HChb2Up5AXQwh5uk0U7pQk="; + }; + pkg = fetchsvn { + url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested"; + rev = version; + sha256 = "sha256-IjCFngixh2+7SifrV3Ohi1BjIOP+QSWg/QjeqbbP7aw="; + }; + }; +in +stdenv.mkDerivation rec { + inherit pname version; + + dontUnpack = true; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = lib.optionals (!stdenv.isDarwin) [ jre ]; + + installPhase = + if stdenv.isDarwin then '' + mkdir -p $out/Applications + ${unzip}/bin/unzip ${srcs.macosx} 'JOSM.app/*' -d $out/Applications + '' else '' + install -Dm644 ${srcs.jar} $out/share/josm/josm.jar + cp -R ${srcs.pkg}/usr/share $out + + # Add libXxf86vm to path because it is needed by at least Kendzi3D plugin + makeWrapper ${jre}/bin/java $out/bin/josm \ + --add-flags "${extraJavaOpts} -jar $out/share/josm/josm.jar" \ + --prefix LD_LIBRARY_PATH ":" '${libXxf86vm}/lib' + ''; + + meta = with lib; { + description = "An extensible editor for OpenStreetMap"; + homepage = "https://josm.openstreetmap.de/"; + changelog = "https://josm.openstreetmap.de/wiki/Changelog"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ rycee sikmir ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix b/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix new file mode 100644 index 000000000000..08ca65630143 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchzip }: + +let + arch = "amd64"; +in +stdenv.mkDerivation rec { + pname = "jotta-cli"; + version = "0.11.44593"; + src = fetchzip { + url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz"; + sha256 = "1f06zmcpvm0f3phwc43ai6v4ykhkrd4f3br2j89nx9bfmj6ss2ic"; + stripRoot = false; + }; + + installPhase = '' + install -D usr/bin/jotta-cli usr/bin/jottad -t $out/bin/ + mkdir -p $out/share/bash-completion/completions + ''; + + postFixup = '' + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jotta-cli + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jottad + $out/bin/jotta-cli completion bash > $out/share/bash-completion/completions/jotta-cli.bash + ''; + + meta = with lib; { + description = "Jottacloud CLI"; + homepage = "https://www.jottacloud.com/"; + downloadPage = "https://repo.jotta.us/archives/linux/"; + maintainers = with maintainers; [ evenbrenden ]; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jp2a/default.nix b/nixpkgs/pkgs/applications/misc/jp2a/default.nix new file mode 100644 index 000000000000..96d506b556e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jp2a/default.nix @@ -0,0 +1,43 @@ +{ lib +, stdenv +, fetchFromGitHub +, libjpeg +, libpng +, ncurses +, autoreconfHook +, autoconf-archive +, pkg-config +, bash-completion +}: + +stdenv.mkDerivation rec { + version = "1.1.0"; + pname = "jp2a"; + + src = fetchFromGitHub { + owner = "Talinx"; + repo = "jp2a"; + rev = "v${version}"; + sha256 = "1dz2mrhl45f0vwyfx7qc3665xma78q024c10lfsgn6farrr0c2lb"; + }; + + makeFlags = [ "PREFIX=$(out)" ]; + + nativeBuildInputs = [ + autoreconfHook + autoconf-archive + pkg-config + bash-completion + ]; + buildInputs = [ libjpeg libpng ncurses ]; + + installFlags = [ "bashcompdir=\${out}/share/bash-completion/completions" ]; + + meta = with lib; { + homepage = "https://csl.name/jp2a/"; + description = "A small utility that converts JPG images to ASCII"; + license = licenses.gpl2Only; + maintainers = [ maintainers.FlorianFranzen ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jquake/default.nix b/nixpkgs/pkgs/applications/misc/jquake/default.nix new file mode 100644 index 000000000000..2a3f1aec4136 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jquake/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv, fetchurl, copyDesktopItems, makeDesktopItem, unzip, jre8 +, logOutput ? false +}: + +stdenv.mkDerivation rec { + pname = "jquake"; + version = "1.6.1"; + + src = fetchurl { + url = "https://fleneindre.github.io/downloads/JQuake_${version}_linux.zip"; + sha256 = "0nw6xjc3i1b8rk15arc5d0ji2bycc40rz044qd03vzxvh0h8yvgl"; + }; + + nativeBuildInputs = [ unzip copyDesktopItems ]; + + sourceRoot = "."; + + postPatch = '' + # JQuake emits a lot of debug-like messages on stdout. Either drop the output + # stream entirely or log them at 'user.debug' level. + sed -i "/^java/ s/$/ ${if logOutput then "| logger -p user.debug" else "> \\/dev\\/null"}/" JQuake.sh + + # By default, an 'errors.log' file is created in the current directory. + # cd into a temporary directory and let it be created there. + substituteInPlace JQuake.sh \ + --replace "java -jar " "exec ${jre8.outPath}/bin/java -jar $out/lib/" \ + --replace "[JAR FOLDER]" "\$(mktemp -p /tmp -d jquake-errlog-XXX)" + ''; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + chmod +x JQuake.sh + + mkdir -p $out/{bin,lib} + mv JQuake.sh $out/bin/JQuake + mv {JQuake.jar,JQuake_lib} $out/lib + mv sounds $out/lib + + mkdir -p $out/share/licenses/jquake + mv LICENSE* $out/share/licenses/jquake + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "JQuake"; + desktopName = "JQuake"; + exec = "JQuake"; + comment = "Real-time earthquake map of Japan"; + }) + ]; + + meta = with lib; { + description = "Real-time earthquake map of Japan"; + homepage = "http://jquake.net"; + downloadPage = "https://jquake.net/?down"; + changelog = "https://jquake.net/?docu"; + maintainers = with maintainers; [ nessdoor ]; + license = licenses.unfree; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/jrnl/default.nix b/nixpkgs/pkgs/applications/misc/jrnl/default.nix new file mode 100644 index 000000000000..37142cd20eb5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/jrnl/default.nix @@ -0,0 +1,56 @@ +{ lib +, ansiwrap +, asteval +, buildPythonApplication +, colorama +, cryptography +, fetchFromGitHub +, keyring +, parsedatetime +, poetry +, pytestCheckHook +, python-dateutil +, pytz +, pyxdg +, pyyaml +, tzlocal +}: + +buildPythonApplication rec { + pname = "jrnl"; + version = "2.8"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "jrnl-org"; + repo = pname; + rev = "v${version}"; + sha256 = "1zpsvrjhami9y7204yjbdzi04bkkz6i3apda9fh3hbq83y6wzprz"; + }; + + nativeBuildInputs = [ poetry ]; + + propagatedBuildInputs = [ + ansiwrap + asteval + colorama + cryptography + keyring + parsedatetime + python-dateutil + pytz + pyxdg + pyyaml + tzlocal + ]; + + checkInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "jrnl" ]; + + meta = with lib; { + homepage = "http://maebert.github.io/jrnl/"; + description = "A simple command line journal application that stores your journal in a plain text file"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ zalakain ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch new file mode 100644 index 000000000000..8f9271ac996b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch @@ -0,0 +1,49 @@ +From 2629af4ed00d7ca65359178203d80fb146901cdb Mon Sep 17 00:00:00 2001 +From: Daniel Fullmer <danielrf12@gmail.com> +Date: Fri, 3 Jul 2020 21:00:45 -0700 +Subject: [PATCH 1/2] Fix CMakeLists + +--- + CMakeLists.txt | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e218279..4341de9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -57,6 +57,7 @@ endif(JPEG_FOUND) + include(FindJasper) + if(JASPER_FOUND) + set(HAVE_JASPER_LIB 1) ++ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY}) + endif(JASPER_FOUND) + + # paths from willuslib/wgs.c +@@ -71,9 +72,12 @@ else() + message(STATUS "Could NOT find ghostscript executable") + endif(GHOSTSCRIPT_EXECUTABLE) + +-# willus.h +-# HAVE_GSL_LIB +- ++pkg_check_modules(GSL gsl) ++if(GSL_FOUND) ++ set(HAVE_GSL_LIB 1) ++ include_directories(SYSTEM ${GSL_INCLUDEDIR}) ++ set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS}) ++endif(GSL_FOUND) + + # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0) + # MUPDF_STATIC_LDFLAGS misses mupdf-js-none, and doubles libs ... +@@ -85,7 +89,7 @@ if(MUPDF_FOUND) + include_directories(SYSTEM ${MUPDF_INCLUDEDIR}) + message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}") + set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} +- -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype ++ + ) + endif(MUPDF_FOUND) + +-- +2.27.0 + diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix b/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix new file mode 100644 index 000000000000..6b594f196c94 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix @@ -0,0 +1,172 @@ +{ lib, stdenv, runCommand, fetchzip, fetchurl, fetchpatch, fetchFromGitHub +, cmake, pkg-config, zlib, libpng, makeWrapper +, enableGSL ? true, gsl +, enableGhostScript ? true, ghostscript +, enableMuPDF ? true, mupdf_1_17 +, enableDJVU ? true, djvulibre +, enableGOCR ? false, gocr # Disabled by default due to crashes +, enableTesseract ? true, leptonica, tesseract4 +}: + +with lib; + +# k2pdfopt is a pain to package. It requires modified versions of mupdf, +# leptonica, and tesseract. Instead of shipping patches for these upstream +# packages, k2pdfopt includes just the modified source files for these +# packages. The individual files from the {mupdf,leptonica,tesseract}_mod/ +# directories are intended to replace the corresponding source files in the +# upstream packages, for a particular version of that upstream package. +# +# There are a few ways we could approach packaging these modified versions of +# mupdf, leptonica, and mupdf: +# 1) Override the upstream source with a new derivation that involves copying +# the modified source files from k2pdfopt and replacing the corresponding +# source files in the upstream packages. Since the files are intended for a +# particular version of the upstream package, this would not allow us to easily +# use updates to those packages in nixpkgs. +# 2) Manually produce patches which can be applied against the upstream +# project, and have the same effect as replacing those files. This is what I +# believe k2pdfopt should do this for us anyway. The benefit of creating and +# applying patches in this way is that minor updates (esp. security fixes) to +# upstream packages might still allow these patches to apply successfully. +# 3) Automatically produce these patches inside a nix derivation. This is the +# approach taken here, using the "mkPatch" provided below. This has the +# benefit of easier review and should hopefully be simpler to update in the +# future. + +let + # Create a patch against src based on changes applied in patchCommands + mkPatch = { name, src, patchCommands }: runCommand "${name}-k2pdfopt.patch" { inherit src; } '' + source $stdenv/setup + unpackPhase + + orig=$sourceRoot + new=$sourceRoot-modded + cp -r $orig/. $new/ + + pushd $new >/dev/null + ${patchCommands} + popd >/dev/null + + diff -Naur $orig $new > $out || true + ''; + + pname = "k2pdfopt"; + version = "2.53"; + k2pdfopt_src = fetchzip { + url = "http://www.willus.com/${pname}/src/${pname}_v${version}_src.zip"; + sha256 = "1fna8bg3pascjfc3hmc6xn0xi2yh7f1qp0d344mw9hqanbnykyy8"; + }; +in stdenv.mkDerivation rec { + inherit pname version; + src = k2pdfopt_src; + + patches = [ + ./0001-Fix-CMakeLists.patch + ]; + + postPatch = '' + substituteInPlace willuslib/bmpdjvu.c \ + --replace "<djvu.h>" "<libdjvu/ddjvuapi.h>" + ''; + + nativeBuildInputs = [ cmake pkg-config makeWrapper ]; + + buildInputs = + let + # We use specific versions of these sources below to match the versions + # used in the k2pdfopt source. Note that this does _not_ need to match the + # version used elsewhere in nixpkgs, since it is only used to create the + # patch that can then be applied to the version in nixpkgs. + mupdf_patch = mkPatch { + name = "mupdf"; + src = fetchurl { + url = "https://mupdf.com/downloads/archive/mupdf-1.17.0-source.tar.gz"; + sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0"; + }; + patchCommands = '' + cp ${k2pdfopt_src}/mupdf_mod/{filter-basic,font,stext-device,string}.c ./source/fitz/ + cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/ + ''; + }; + mupdf_modded = mupdf_1_17.overrideAttrs ({ patches ? [], ... }: { + patches = patches ++ [ mupdf_patch ]; + # This function is missing in font.c, see font-win32.c + postPatch = '' + echo "void pdf_install_load_system_font_funcs(fz_context *ctx) {}" >> source/fitz/font.c + ''; + }); + + leptonica_patch = mkPatch { + name = "leptonica"; + src = fetchurl { + url = "http://www.leptonica.org/source/leptonica-1.79.0.tar.gz"; + sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84"; + }; + patchCommands = "cp -r ${k2pdfopt_src}/leptonica_mod/. ./src/"; + }; + leptonica_modded = leptonica.overrideAttrs ({ patches ? [], ... }: { + patches = patches ++ [ leptonica_patch ]; + }); + + tesseract_patch = mkPatch { + name = "tesseract"; + src = fetchFromGitHub { + owner = "tesseract-ocr"; + repo = "tesseract"; + rev = "4.1.1"; + sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn"; + }; + patchCommands = '' + cp ${k2pdfopt_src}/tesseract_mod/{baseapi,tesscapi,tesseract}.* src/api/ + cp ${k2pdfopt_src}/tesseract_mod/{tesscapi,tessedit,tesseract}.* src/ccmain/ + cp ${k2pdfopt_src}/tesseract_mod/dotproduct{avx,fma,sse}.* src/arch/ + cp ${k2pdfopt_src}/tesseract_mod/{intsimdmatrixsse,simddetect}.* src/arch/ + cp ${k2pdfopt_src}/tesseract_mod/{errcode,genericvector,mainblk,params,serialis,tessdatamanager,tess_version,tprintf,unicharset}.* src/ccutil/ + cp ${k2pdfopt_src}/tesseract_mod/{input,lstmrecognizer}.* src/lstm/ + cp ${k2pdfopt_src}/tesseract_mod/openclwrapper.* src/opencl/ + ''; + }; + tesseract_modded = tesseract4.override { + tesseractBase = tesseract4.tesseractBase.overrideAttrs ({ patches ? [], ... }: { + patches = patches ++ [ tesseract_patch ]; + # Additional compilation fixes + postPatch = '' + echo libtesseract_api_la_SOURCES += tesscapi.cpp >> src/api/Makefile.am + substituteInPlace src/api/tesseract.h \ + --replace "#include <leptonica.h>" "//#include <leptonica.h>" + ''; + }); + }; + in + [ zlib libpng ] ++ + optional enableGSL gsl ++ + optional enableGhostScript ghostscript ++ + optional enableMuPDF mupdf_modded ++ + optional enableDJVU djvulibre ++ + optional enableGOCR gocr ++ + optionals enableTesseract [ leptonica_modded tesseract_modded ]; + + dontUseCmakeBuildDir = true; + + cmakeFlags = [ "-DCMAKE_C_FLAGS=-I${src}/include_mod" ]; + + NIX_LDFLAGS = "-lpthread"; + + installPhase = '' + install -D -m 755 k2pdfopt $out/bin/k2pdfopt + ''; + + preFixup = optionalString enableTesseract '' + wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract4}/share/tessdata + ''; + + meta = with lib; { + description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones"; + homepage = "http://www.willus.com/k2pdfopt"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ bosu danielfullmer ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix b/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix new file mode 100644 index 000000000000..467945af6ac8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix @@ -0,0 +1,33 @@ +{ mkDerivation +, extra-cmake-modules +, fetchFromGitHub +, kdoctools +, kiconthemes +, kio +, kjobwidgets +, kxmlgui +, lib +}: + +mkDerivation rec { + pname = "k4dirstat"; + version = "3.2.2"; + + src = fetchFromGitHub { + owner = "jeromerobert"; + repo = pname; + rev = version; + sha256 = "sha256-U5p/gW5GPxRoM9XknP8G7iVhLDoqmvgspeRsmCRdxDg="; + }; + + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ kiconthemes kio kjobwidgets kxmlgui ]; + + meta = with lib; { + homepage = "https://github.com/jeromerobert/k4dirstat"; + description = "A small utility program that sums up disk usage for directory trees"; + license = licenses.gpl2; + maintainers = [ maintainers.raboof ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kanboard/default.nix b/nixpkgs/pkgs/applications/misc/kanboard/default.nix new file mode 100644 index 000000000000..4b13eaa1e7c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kanboard/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "kanboard"; + version = "1.2.20"; + + src = fetchFromGitHub { + owner = "kanboard"; + repo = "kanboard"; + rev = "v${version}"; + sha256 = "sha256-IB+GhUZvjngjf1UHKc7B/PkZHVXKYUTk6CVA5XSiF5Y="; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/kanboard + cp -rv . $out/share/kanboard + ''; + + meta = with lib; { + description = "Kanban project management software"; + homepage = "https://kanboard.net"; + license = licenses.mit; + maintainers = with maintainers; [ fpletz lheckemann ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kanjidraw/default.nix b/nixpkgs/pkgs/applications/misc/kanjidraw/default.nix new file mode 100644 index 000000000000..53c752651d2d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kanjidraw/default.nix @@ -0,0 +1,47 @@ +{ lib +, fetchFromGitHub +, python3 +, bash +}: + +python3.pkgs.buildPythonApplication rec { + pname = "kanjidraw"; + version = "0.2.3"; + + src = fetchFromGitHub { + owner = "obfusk"; + repo = "kanjidraw"; + rev = "v${version}"; + sha256 = "03ag8vkbf85qww857ii8hcnn8bh5qa7rsmhka0v9vfxk272ifbyq"; + }; + + propagatedBuildInputs = with python3.pkgs; [ tkinter ]; + + postPatch = '' + substituteInPlace Makefile --replace /bin/bash ${bash}/bin/bash + ''; + + checkPhase = '' + make test + ''; + + meta = with lib; { + description = "Handwritten kanji recognition"; + longDescription = '' + kanjidraw is a simple Python library + GUI for matching (the strokes of a) + handwritten kanji against its database. + + You can use the GUI to draw and subsequently select a kanji from the list of + probable matches, which will then be copied to the clipboard. + + The database is based on KanjiVG and the algorithms are based on the + Kanji draw Android app. + ''; + homepage = "https://github.com/obfusk/kanjidraw"; + license = with licenses; [ + agpl3Plus # code + cc-by-sa-30 # data.json + ]; + maintainers = [ maintainers.obfusk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kapow/default.nix b/nixpkgs/pkgs/applications/misc/kapow/default.nix new file mode 100644 index 000000000000..49fbed7b1efb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kapow/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, qmake, fetchFromGitHub, qtbase, qttools, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "kapow"; + version = "1.5.10"; + + src = fetchFromGitHub { + owner = "gottcode"; + repo = pname; + rev = "v${version}"; + sha256 = "1fz9fb4w21ax8hjs6dwfn2410ig4lqvzdlijq0jcj3jbgxd4i1gw"; + }; + + nativeBuildInputs = [ qmake qttools wrapQtAppsHook ]; + + buildInputs = [ qtbase ]; + + meta = with lib; { + description = "Punch clock to track time spent on projects"; + homepage = "https://gottcode.org/kapow/"; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kdbplus/default.nix b/nixpkgs/pkgs/applications/misc/kdbplus/default.nix new file mode 100644 index 000000000000..8ee8337bea2a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kdbplus/default.nix @@ -0,0 +1,75 @@ +{ lib, stdenv, requireFile, unzip, rlwrap, bash, zlib }: + +assert (stdenv.hostPlatform.system == "i686-linux"); + +let + libPath = lib.makeLibraryPath + [ stdenv.cc.libc stdenv.cc.cc zlib ]; +in +stdenv.mkDerivation rec { + pname = "kdbplus"; + version = "3.6"; + + src = requireFile rec { + message = '' + Nix can't download kdb+ for you automatically. Go to + http://kx.com and download the free, 32-bit version for + Linux. Then run "nix-prefetch-url file://\$PWD/${name}" in + the directory where you saved it. Note you need version ${version}. + ''; + name = "linuxx86.zip"; + sha256 = "0w6znd9warcqx28vf648n0vgmxyyy9kvsfpsfw37d1kp5finap4p"; + }; + + dontStrip = true; + nativeBuildInputs = [ unzip ]; + + phases = "unpackPhase installPhase"; + unpackPhase = "mkdir ${pname}-${version} && cd ${pname}-${version} && unzip -qq ${src}"; + installPhase = '' + mkdir -p $out/bin $out/libexec + + patchelf \ + --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${libPath} \ + ./q/l32/q + mv ./q/l32/q $out/libexec/q + + # Shell script wrappers to make things more convenient... + + cat > $out/bin/q-install <<- EOF + #!${bash}/bin/bash + if [ -f \$HOME/q/q.k ]; then + echo "kdb has already been unpacked in \$HOME. Skipping..." + exit 0 + fi + echo -n "Unzipping ${src} into \$HOME... " + cd \$HOME && ${unzip}/bin/unzip -qq ${src} + echo "Done" + EOF + + cat > $out/bin/q <<- EOF + #!${bash}/bin/bash + if [ ! -f \$HOME/q/q.k ]; then + echo "ERROR: You need to unzip the Q sources into \$HOME before running q." + echo + echo "Try:" + echo " cd \$HOME && unzip ${src}" + echo "(or run q-install)" + exit 1 + fi + + exec ${rlwrap}/bin/rlwrap $out/libexec/q \$@ + EOF + + chmod +x $out/bin/q $out/bin/q-install + ''; + + meta = { + description = "Analytics and time-series database"; + homepage = "http://www.kx.com/"; + license = lib.licenses.unfree; + platforms = [ "i686-linux" ]; + maintainers = [ lib.maintainers.thoughtpolice ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix b/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix new file mode 100644 index 000000000000..7dc75f604265 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, buildEnv, fetchzip, mono }: + +let + version = "0.12.0"; + drv = stdenv.mkDerivation { + pname = "keeagent"; + inherit version; + + src = fetchzip { + url = "https://lechnology.com/wp-content/uploads/2020/05/KeeAgent_v0.12.0.zip"; + sha256 = "0fcfbj3yikiv3dmp69236h9r3c416amdq849kn131w1129gb68xd"; + stripRoot = false; + }; + + meta = { + description = "KeePass plugin to allow other programs to access SSH keys stored in a KeePass database for authentication"; + homepage = "http://lechnology.com/software/keeagent"; + platforms = with lib.platforms; linux; + license = lib.licenses.gpl2; + maintainers = [ ]; + }; + + pluginFilename = "KeeAgent.plgx"; + + installPhase = '' + mkdir -p $out/lib/dotnet/keepass/ + cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename + ''; + }; +in + # Mono is required to compile plugin at runtime, after loading. + buildEnv { name = drv.name; paths = [ mono drv ]; } diff --git a/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix new file mode 100644 index 000000000000..be58f0e34cb3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, buildEnv, fetchFromGitHub, mono }: + +let + version = "1.8.4.2"; + drv = stdenv.mkDerivation { + pname = "keepasshttp"; + inherit version; + src = fetchFromGitHub { + owner = "pfn"; + repo = "keepasshttp"; + # rev = version; + # for 1.8.4.2 the tag is at the wrong commit (they fixed stuff + # afterwards and didn't move the tag), hence reference by commitid + rev = "c2c4eb5388a02169400cba7a67be325caabdcc37"; + sha256 = "0bkzxggbqx7sql3sp46bqham6r457in0vrgh3ai3lw2jrw79pwmh"; + }; + + meta = { + description = "KeePass plugin to expose password entries securely (256bit AES/CBC) over HTTP"; + homepage = "https://github.com/pfn/keepasshttp"; + platforms = with lib.platforms; linux; + license = lib.licenses.gpl3; + }; + + pluginFilename = "KeePassHttp.plgx"; + + installPhase = '' + mkdir -p $out/lib/dotnet/keepass/ + cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename + ''; + }; +in + # Mono is required to compile plugin at runtime, after loading. + buildEnv { name = drv.name; paths = [ mono drv ]; } diff --git a/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix new file mode 100644 index 000000000000..cbcb88b9d1a8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, buildEnv, fetchurl, mono }: + +let + version = "1.14.0"; + drv = stdenv.mkDerivation { + pname = "keepassrpc"; + inherit version; + src = fetchurl { + url = "https://github.com/kee-org/keepassrpc/releases/download/v${version}/KeePassRPC.plgx"; + sha256 = "1c410cc93c0252e7cfdb02507b8172c13e18d12c97f08630b721d897dc9b8b24"; + }; + + meta = with lib; { + description = "The KeePassRPC plugin that needs to be installed inside KeePass in order for Kee to be able to connect your browser to your passwords"; + homepage = "https://github.com/kee-org/keepassrpc"; + platforms = [ "x86_64-linux" ]; + license = licenses.gpl2; + maintainers = with maintainers; [ mjanczyk svsdep mgregoire ]; + }; + + pluginFilename = "KeePassRPC.plgx"; + + unpackCmd = '' + mkdir deps/ + cp -p $src deps/$pluginFilename + ''; + sourceRoot = "deps"; + + installPhase = '' + mkdir -p $out/lib/dotnet/keepass/ + cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename + ''; + }; +in + # Mono is required to compile plugin at runtime, after loading. + buildEnv { name = drv.name; paths = [ mono drv ]; } diff --git a/nixpkgs/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix b/nixpkgs/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix new file mode 100644 index 000000000000..780de142c5fd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, buildEnv, fetchzip, mono }: + +let + version = "2.6"; + drv = stdenv.mkDerivation { + pname = "otpkeyprov"; + inherit version; + + src = fetchzip { + url = "https://keepass.info/extensions/v2/otpkeyprov/OtpKeyProv-${version}.zip"; + sha256 = "1p60k55v2sxnv1varmp0dgbsi2rhjg9kj19cf54mkc87nss5h1ki"; + stripRoot = false; + }; + + meta = { + description = "OtpKeyProv is a key provider based on one-time passwords"; + homepage = "https://keepass.info/plugins.html#otpkeyprov"; + platforms = with lib.platforms; linux; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.ente ]; + }; + + pluginFilename = "OtpKeyProv.plgx"; + + installPhase = '' + mkdir -p $out/lib/dotnet/keepass/ + cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename + ''; + }; +in + # Mono is required to compile plugin at runtime, after loading. + buildEnv { name = drv.name; paths = [ mono drv ]; } diff --git a/nixpkgs/pkgs/applications/misc/keepass/default.nix b/nixpkgs/pkgs/applications/misc/keepass/default.nix new file mode 100644 index 000000000000..843193bba182 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass/default.nix @@ -0,0 +1,119 @@ +{ lib, fetchurl, buildDotnetPackage, substituteAll, makeWrapper, makeDesktopItem, + unzip, icoutils, gtk2, xorg, xdotool, xsel, coreutils, unixtools, glib, plugins ? [] }: + +with builtins; buildDotnetPackage rec { + baseName = "keepass"; + version = "2.46"; + + src = fetchurl { + url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip"; + sha256 = "0zyclydgyg8nhwxrzw7x4f82975cqdmp12py33k6sballx6jhgiy"; + }; + + sourceRoot = "."; + + nativeBuildInputs = [ makeWrapper unzip ]; + buildInputs = [ icoutils ]; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + xsel = "${xsel}/bin/xsel"; + xprop = "${xorg.xprop}/bin/xprop"; + xdotool = "${xdotool}/bin/xdotool"; + uname = "${coreutils}/bin/uname"; + whereis = "${unixtools.whereis}/bin/whereis"; + gsettings = "${glib}/bin/gsettings"; + }) + ]; + + # KeePass looks for plugins in under directory in which KeePass.exe is + # located. It follows symlinks where looking for that directory, so + # buildEnv is not enough to bring KeePass and plugins together. + # + # This derivation patches KeePass to search for plugins in specified + # plugin derivations in the Nix store and nowhere else. + pluginLoadPathsPatch = + let outputLc = toString (add 7 (length plugins)); + patchTemplate = readFile ./keepass-plugins.patch; + loadTemplate = readFile ./keepass-plugins-load.patch; + loads = + lib.concatStrings + (map + (p: replaceStrings ["$PATH$"] [ (unsafeDiscardStringContext (toString p)) ] loadTemplate) + plugins); + in replaceStrings ["$OUTPUT_LC$" "$DO_LOADS$"] [outputLc loads] patchTemplate; + + passAsFile = [ "pluginLoadPathsPatch" ]; + postPatch = '' + sed -i 's/\r*$//' KeePass/Forms/MainForm.cs + patch -p1 <$pluginLoadPathsPatchPath + ''; + + preConfigure = '' + rm -rvf Build/* + find . -name "*.sln" -print -exec sed -i 's/Format Version 10.00/Format Version 11.00/g' {} \; + find . -name "*.csproj" -print -exec sed -i ' + s#ToolsVersion="3.5"#ToolsVersion="4.0"#g + s#<TargetFrameworkVersion>.*</TargetFrameworkVersion>##g + s#<PropertyGroup>#<PropertyGroup><TargetFrameworkVersion>v4.5</TargetFrameworkVersion>#g + s#<SignAssembly>.*$#<SignAssembly>false</SignAssembly>#g + s#<PostBuildEvent>.*sgen.exe.*$## + ' {} \; + ''; + + desktopItem = makeDesktopItem { + name = "keepass"; + exec = "keepass"; + comment = "Password manager"; + icon = "keepass"; + desktopName = "Keepass"; + genericName = "Password manager"; + categories = "Utility;"; + mimeType = lib.concatStringsSep ";" [ + "application/x-keepass2" + "" + ]; + }; + + outputFiles = [ "Build/KeePass/Release/*" "Build/KeePassLib/Release/*" ]; + dllFiles = [ "KeePassLib.dll" ]; + exeFiles = [ "KeePass.exe" ]; + + # plgx plugin like keefox requires mono to compile at runtime + # after loading. It is brought into plugins bin/ directory using + # buildEnv in the plugin derivation. Wrapper below makes sure it + # is found and does not pollute output path. + binPaths = lib.concatStrings (lib.intersperse ":" (map (x: x + "/bin") plugins)); + + dynlibPath = lib.makeLibraryPath [ gtk2 ]; + + postInstall = + let + extractFDeskIcons = ./extractWinRscIconsToStdFreeDesktopDir.sh; + in + '' + mkdir -p "$out/share/applications" + cp ${desktopItem}/share/applications/* $out/share/applications + wrapProgram $out/bin/keepass \ + --prefix PATH : "$binPaths" \ + --prefix LD_LIBRARY_PATH : "$dynlibPath" + + ${extractFDeskIcons} \ + "./Translation/TrlUtil/Resources/KeePass.ico" \ + '[^\.]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png' \ + '\1' \ + '([^\.]+).+' \ + 'keepass' \ + "$out" \ + "./tmp" + ''; + + meta = { + description = "GUI password manager with strong cryptography"; + homepage = "http://www.keepass.info/"; + maintainers = with lib.maintainers; [ amorsillo obadz ]; + platforms = with lib.platforms; all; + license = lib.licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh b/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh new file mode 100755 index 000000000000..dec7367379e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +# The file from which to extract *.ico files. +#rscFile="./KeePass.exe" +rscFile=$1 + +# A regexp that can extract the image size from the file name. +# sizeRegex='[^\.]+\.exe_[0-9]+_[0-9]+_[0-9]+_[0-9]+_([0-9]+x[0-9]+)x[0-9]+\.png' +sizeRegex=$2 + +# sizeReplaceExp='\1' +sizeReplaceExp=$3 + +# A regexp that can extract the name of the target image from the file name. +# nameRegex='([^\.]+)\.exe.+' +nameRegex=$4 + +# nameReplaceExp='\1' +nameReplaceExp=$5 + +# out=./myOut +out=$6 + +# An optional temp dir. TODO: Generate it randomly by default instead. +tmp=./tmp +if [ "" != "$4" ]; then + tmp=$7 +fi + + + +rm -rf $tmp/png $tmp/ico +mkdir -p $tmp/png $tmp/ico + +# Extract the ressource file's extension. +rscFileExt=`echo "$rscFile" | sed -re 's/.+\.(.+)$/\1/'` + +# Debug ressource file extension. +echo "rscFileExt=$rscFileExt" + +if [ "ico" = "$rscFileExt" ]; then + cp -p $rscFile $tmp/ico +else + wrestool -x --output=$tmp/ico -t14 $rscFile +fi + +icotool --icon -x --palette-size=0 -o $tmp/png $tmp/ico/*.ico + +mkdir -p $out + +for i in $tmp/png/*.png; do + fn=`basename "$i"` + size=$(echo $fn | sed -re 's/'${sizeRegex}'/'${sizeReplaceExp}'/') + name=$(echo $fn | sed -re 's/'${nameRegex}'/'${nameReplaceExp}'/') + targetDir=$out/share/icons/hicolor/$size/apps + targetFile=$targetDir/$name.png + mkdir -p $targetDir + mv $i $targetFile +done + +rm -rf $tmp/png $tmp/ico diff --git a/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch b/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch new file mode 100644 index 000000000000..5ff36a21c002 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch @@ -0,0 +1,144 @@ +From 830d0db80f2fce09e12c117f8338b8e4b05866ff Mon Sep 17 00:00:00 2001 +From: Pascal Winkelmann <pascal@wnklmnn.de> +Date: Tue, 19 May 2020 10:28:31 +0200 +Subject: [PATCH] fixpaths + +--- + KeePass/Native/NativeMethods.Unix.cs | 2 +- + KeePass/UI/UISystemFonts.cs | 2 +- + KeePass/Util/AppLocator.cs | 2 +- + KeePass/Util/ClipboardUtil.Unix.cs | 14 +++++++------- + KeePassLib/Native/ClipboardU.cs | 2 +- + KeePassLib/Native/NativeLib.cs | 2 +- + KeePassLib/Utility/MonoWorkarounds.cs | 4 ++-- + 7 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/KeePass/Native/NativeMethods.Unix.cs b/KeePass/Native/NativeMethods.Unix.cs +index 4c47258..79cfdb2 100644 +--- a/KeePass/Native/NativeMethods.Unix.cs ++++ b/KeePass/Native/NativeMethods.Unix.cs +@@ -130,7 +130,7 @@ namespace KeePass.Native + try + { + Application.DoEvents(); // E.g. for clipboard updates +- string strOutput = NativeLib.RunConsoleApp("xdotool", strParams); ++ string strOutput = NativeLib.RunConsoleApp("@xdotool@", strParams); + Application.DoEvents(); // E.g. for clipboard updates + return (strOutput ?? string.Empty); + } +diff --git a/KeePass/UI/UISystemFonts.cs b/KeePass/UI/UISystemFonts.cs +index 08d6134..2bfa4a2 100644 +--- a/KeePass/UI/UISystemFonts.cs ++++ b/KeePass/UI/UISystemFonts.cs +@@ -188,7 +188,7 @@ namespace KeePass.UI + + private static void UbuntuLoadFonts() + { +- string strDef = NativeLib.RunConsoleApp("gsettings", ++ string strDef = NativeLib.RunConsoleApp("@gsettings@", + "get org.gnome.desktop.interface font-name"); + if(strDef == null) return; + +diff --git a/KeePass/Util/AppLocator.cs b/KeePass/Util/AppLocator.cs +index af02803..8a32c9d 100644 +--- a/KeePass/Util/AppLocator.cs ++++ b/KeePass/Util/AppLocator.cs +@@ -429,7 +429,7 @@ namespace KeePass.Util + if(NativeLib.GetPlatformID() == PlatformID.MacOSX) + strArgPrefix = string.Empty; // FR 3535696 + +- string str = NativeLib.RunConsoleApp("whereis", strArgPrefix + strApp); ++ string str = NativeLib.RunConsoleApp("@whereis@", strArgPrefix + strApp); + if(str == null) return null; + + str = str.Trim(); +diff --git a/KeePass/Util/ClipboardUtil.Unix.cs b/KeePass/Util/ClipboardUtil.Unix.cs +index ab49ee2..7f6c50f 100644 +--- a/KeePass/Util/ClipboardUtil.Unix.cs ++++ b/KeePass/Util/ClipboardUtil.Unix.cs +@@ -62,7 +62,7 @@ namespace KeePass.Util + // "-out -selection clipboard"); + // if(str != null) return str; + +- string str = NativeLib.RunConsoleApp("xsel", ++ string str = NativeLib.RunConsoleApp("@xsel@", + "--output --clipboard", null, XSelFlags); + if(str != null) return str; + +@@ -83,10 +83,10 @@ namespace KeePass.Util + if(string.IsNullOrEmpty(str)) + { + // xsel with an empty input can hang, thus use --clear +- if(NativeLib.RunConsoleApp("xsel", "--clear --primary", ++ if(NativeLib.RunConsoleApp("@xsel@", "--clear --primary", + null, XSelFlags) != null) + { +- NativeLib.RunConsoleApp("xsel", "--clear --clipboard", ++ NativeLib.RunConsoleApp("@xsel@", "--clear --clipboard", + null, XSelFlags); + return; + } +@@ -97,10 +97,10 @@ namespace KeePass.Util + } + + // xsel does not support --primary and --clipboard together +- if(NativeLib.RunConsoleApp("xsel", "--input --primary", ++ if(NativeLib.RunConsoleApp("@xsel@", "--input --primary", + str, XSelFlags) != null) + { +- NativeLib.RunConsoleApp("xsel", "--input --clipboard", ++ NativeLib.RunConsoleApp("@xsel@", "--input --clipboard", + str, XSelFlags); + return; + } +diff --git a/KeePassLib/Native/ClipboardU.cs b/KeePassLib/Native/ClipboardU.cs +index 291c51d..3c76380 100644 +--- a/KeePassLib/Native/ClipboardU.cs ++++ b/KeePassLib/Native/ClipboardU.cs +@@ -27,7 +27,7 @@ namespace KeePassLib.Native + { + internal static class ClipboardU + { +- internal const string XSel = "xsel"; ++ internal const string XSel = "@xsel@"; + private const string XSelV = "--version"; + private const string XSelR = "--output --clipboard"; + private const string XSelC = "--clear --clipboard"; +diff --git a/KeePassLib/Native/NativeLib.cs b/KeePassLib/Native/NativeLib.cs +index 2d227a3..243f4ee 100644 +--- a/KeePassLib/Native/NativeLib.cs ++++ b/KeePassLib/Native/NativeLib.cs +@@ -145,7 +145,7 @@ namespace KeePassLib.Native + // Mono returns PlatformID.Unix on Mac OS X, workaround this + if(m_platID.Value == PlatformID.Unix) + { +- if((RunConsoleApp("uname", null) ?? string.Empty).Trim().Equals( ++ if((RunConsoleApp("@uname@", null) ?? string.Empty).Trim().Equals( + "Darwin", StrUtil.CaseIgnoreCmp)) + m_platID = PlatformID.MacOSX; + } +diff --git a/KeePassLib/Utility/MonoWorkarounds.cs b/KeePassLib/Utility/MonoWorkarounds.cs +index e20bb3a..4fd875b 100644 +--- a/KeePassLib/Utility/MonoWorkarounds.cs ++++ b/KeePassLib/Utility/MonoWorkarounds.cs +@@ -41,7 +41,7 @@ namespace KeePassLib.Utility + { + public static class MonoWorkarounds + { +- private const string AppXDoTool = "xdotool"; ++ private const string AppXDoTool = "@xdotool@"; + + private static Dictionary<uint, bool> g_dForceReq = new Dictionary<uint, bool>(); + private static Thread g_thFixClip = null; +@@ -335,7 +335,7 @@ namespace KeePassLib.Utility + // } + // else { Debug.Assert(false); } + +- string strWmClass = (NativeLib.RunConsoleApp("xprop", ++ string strWmClass = (NativeLib.RunConsoleApp("@xprop@", + "-id " + strHandle + " WM_CLASS") ?? string.Empty); + + if(strWmClass.IndexOf("\"" + PwDefs.ResClass + "\"", +-- +2.25.4 + diff --git a/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch new file mode 100644 index 000000000000..e6a6bff8dad3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch @@ -0,0 +1 @@ ++ m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass", System.IO.SearchOption.TopDirectoryOnly, new string[] {}); diff --git a/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch new file mode 100644 index 000000000000..891be1ffa314 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch @@ -0,0 +1,25 @@ +From 4cb0b18f5326a07927453897180289a4b254ac4f Mon Sep 17 00:00:00 2001 +From: Pascal Winkelmann <pascal@wnklmnn.de> +Date: Tue, 19 May 2020 10:43:49 +0200 +Subject: [PATCH] loadplugin + +--- + KeePass/Forms/MainForm.cs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/KeePass/Forms/MainForm.cs b/KeePass/Forms/MainForm.cs +index 347eaf5..b92e1e2 100644 +--- a/KeePass/Forms/MainForm.cs ++++ b/KeePass/Forms/MainForm.cs +@@ -440,7 +440,$OUTPUT_LC$ @@ namespace KeePass.Forms + ToolStripItemCollection tsicT = m_ctxTray.Items; + ToolStripItem tsiPrevT = m_ctxTrayOptions; + +- m_pluginManager.LoadAllPlugins(); +$DO_LOADS$+ + + m_pluginManager.AddMenuItems(PluginMenuType.Main, tsicM, tsiPrevM); + m_pluginManager.AddMenuItems(PluginMenuType.Group, tsicGM, tsiPrevGM); +-- +2.25.4 + diff --git a/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix b/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix new file mode 100644 index 000000000000..86bd7d0849ec --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, cmake, libgcrypt, qt4, xorg }: + +stdenv.mkDerivation rec { + pname = "keepassx2"; + version = "2.0.3"; + + src = fetchurl { + url = "https://www.keepassx.org/releases/${version}/keepassx-${version}.tar.gz"; + sha256 = "1ia7cqx9ias38mnffsl7da7g1f66bcbjsi23k49sln0c6spb9zr3"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libgcrypt qt4 xorg.libXtst ]; + + meta = { + description = "Qt password manager compatible with its Win32 and Pocket PC versions"; + homepage = "https://www.keepassx.org/"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ qknight ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/nixpkgs/pkgs/applications/misc/keepassx/community.nix new file mode 100644 index 000000000000..b4beab05acd1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepassx/community.nix @@ -0,0 +1,139 @@ +{ lib, stdenv +, fetchFromGitHub +, cmake +, qttools +, darwin + +, asciidoctor +, curl +, glibcLocales +, libXi +, libXtst +, libargon2 +, libgcrypt +, libgpgerror +, libsodium +, libyubikey +, pkg-config +, qrencode +, qtbase +, qtmacextras +, qtsvg +, qtx11extras +, quazip +, readline +, wrapQtAppsHook +, yubikey-personalization +, zlib + +, withKeePassBrowser ? true +, withKeePassKeeShare ? true +, withKeePassKeeShareSecure ? true +, withKeePassSSHAgent ? true +, withKeePassNetworking ? true +, withKeePassTouchID ? true +, withKeePassFDOSecrets ? true + +, nixosTests +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "keepassxc"; + version = "2.6.6"; + + src = fetchFromGitHub { + owner = "keepassxreboot"; + repo = "keepassxc"; + rev = version; + sha256 = "15rm3avdmc2x2n92zq6w1zbcranak4j6dds2sxmgdqi1ffc0a3ci"; + }; + + NIX_CFLAGS_COMPILE = optionalString stdenv.cc.isClang [ + "-Wno-old-style-cast" + "-Wno-error" + "-D__BIG_ENDIAN__=${if stdenv.isBigEndian then "1" else "0"}" + ]; + + NIX_LDFLAGS = optionalString stdenv.isDarwin "-rpath ${libargon2}/lib"; + + patches = [ + ./darwin.patch + ]; + + cmakeFlags = [ + "-DKEEPASSXC_BUILD_TYPE=Release" + "-DWITH_GUI_TESTS=ON" + "-DWITH_XC_AUTOTYPE=ON" + "-DWITH_XC_UPDATECHECK=OFF" + "-DWITH_XC_YUBIKEY=ON" + ] + ++ (optional withKeePassBrowser "-DWITH_XC_BROWSER=ON") + ++ (optional withKeePassKeeShare "-DWITH_XC_KEESHARE=ON") + ++ (optional withKeePassKeeShareSecure "-DWITH_XC_KEESHARE_SECURE=ON") + ++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON") + ++ (optional (withKeePassTouchID && stdenv.isDarwin) "-DWITH_XC_TOUCHID=ON") + ++ (optional (withKeePassFDOSecrets && stdenv.isLinux) "-DWITH_XC_FDOSECRETS=ON") + ++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON"); + + doCheck = true; + checkPhase = '' + runHook preCheck + + export LC_ALL="en_US.UTF-8" + export QT_QPA_PLATFORM=offscreen + export QT_PLUGIN_PATH="${qtbase.bin}/${qtbase.qtPluginPrefix}" + # testcli and testgui are flaky - skip them both + make test ARGS+="-E 'testcli|testgui' --output-on-failure" + + runHook postCheck + ''; + + nativeBuildInputs = [ asciidoctor cmake wrapQtAppsHook qttools pkg-config ]; + + buildInputs = [ + curl + glibcLocales + libXi + libXtst + libargon2 + libgcrypt + libgpgerror + libsodium + libyubikey + qrencode + qtbase + qtsvg + qtx11extras + readline + yubikey-personalization + zlib + ] + ++ optional withKeePassKeeShareSecure quazip + ++ optional stdenv.isDarwin qtmacextras + ++ optional (stdenv.isDarwin && withKeePassTouchID) + darwin.apple_sdk.frameworks.LocalAuthentication; + + preFixup = optionalString stdenv.isDarwin '' + # Make it work without Qt in PATH. + wrapQtApp $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC + ''; + + passthru.tests = nixosTests.keepassxc; + + meta = { + description = "Offline password manager with many features."; + longDescription = '' + A community fork of KeePassX, which is itself a port of KeePass Password Safe. + The goal is to extend and improve KeePassX with new features and bugfixes, + to provide a feature-rich, fully cross-platform and modern open-source password manager. + Accessible via native cross-platform GUI, CLI, has browser integration + using the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser) + ''; + homepage = "https://keepassxc.org/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ jonafato turion ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch b/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch new file mode 100644 index 000000000000..95ca5d4587fe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch @@ -0,0 +1,53 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 74b1a7ff..0a713a32 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -307,6 +307,7 @@ if(MINGW) + set(PLUGIN_INSTALL_DIR ".") + set(DATA_INSTALL_DIR "share") + elseif(APPLE AND WITH_APP_BUNDLE) ++ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications") + set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents") + set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man") + set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") +@@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON) + + if(APPLE) + set(CMAKE_MACOSX_RPATH TRUE) +- find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH) +- if(NOT MACDEPLOYQT_EXE) +- message(FATAL_ERROR "macdeployqt is required to build on macOS") +- else() +- message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}") +- endif() + elseif(MINGW) + find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH) + if(NOT WINDEPLOYQT_EXE) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index f142f368..0742512d 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -351,11 +351,6 @@ if(APPLE AND WITH_APP_BUNDLE) + set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}") + include(CPack) + +- add_custom_command(TARGET ${PROGNAME} +- POST_BUILD +- COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app +- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src +- COMMENT "Deploying app bundle") + endif() + + install(TARGETS ${PROGNAME} +diff --git a/src/autotype/mac/CMakeLists.txt b/src/autotype/mac/CMakeLists.txt +index 7427450a..a0a58d71 100644 +--- a/src/autotype/mac/CMakeLists.txt ++++ b/src/autotype/mac/CMakeLists.txt +@@ -8,7 +8,6 @@ if(WITH_APP_BUNDLE) + add_custom_command(TARGET keepassx-autotype-cocoa + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR} +- COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src + COMMENT "Deploying autotype plugin") + else() diff --git a/nixpkgs/pkgs/applications/misc/keepassx/default.nix b/nixpkgs/pkgs/applications/misc/keepassx/default.nix new file mode 100644 index 000000000000..0fad28d94d3f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepassx/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchurl, bzip2, qt4, qmake4Hook, libX11, xorgproto, libXtst }: + +stdenv.mkDerivation rec { + pname = "keepassx"; + version = "0.4.4"; + + src = fetchurl { + url = "https://www.keepassx.org/releases/${version}/${pname}-${version}.tar.gz"; + sha256 = "1i5dq10x28mg7m4c0yacm32xfj4j7imir4ph8x9p0s2ym260c9ry"; + }; + + patches = [ ./random.patch ]; + + buildInputs = [ bzip2 qt4 libX11 xorgproto libXtst ]; + + nativeBuildInputs = [ qmake4Hook ]; + + meta = { + description = "Qt password manager compatible with its Win32 and Pocket PC versions"; + homepage = "https://www.keepassx.org/"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ qknight ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/keepassx/random.patch b/nixpkgs/pkgs/applications/misc/keepassx/random.patch new file mode 100644 index 000000000000..0a0b26f6e8c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keepassx/random.patch @@ -0,0 +1,13 @@ +--- a/src/lib/random.cpp 2014-01-21 21:15:55.829312723 +0000 ++++ b/src/lib/random.cpp 2014-01-21 21:16:36.752535839 +0000 +@@ -28,6 +28,10 @@ + #include <wincrypt.h> + #include <QSysInfo> + #endif ++#ifndef Q_WS_WIN ++ #include <sys/types.h> ++ #include <unistd.h> ++#endif + + #include <QCryptographicHash> + #include <QCursor> diff --git a/nixpkgs/pkgs/applications/misc/keeweb/default.nix b/nixpkgs/pkgs/applications/misc/keeweb/default.nix new file mode 100644 index 000000000000..40b176b0fb8b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keeweb/default.nix @@ -0,0 +1,66 @@ +{ lib, stdenv, fetchurl, appimageTools, undmg, libsecret, libxshmfence }: +let + pname = "keeweb"; + version = "1.18.6"; + name = "${pname}-${version}"; + + srcs = { + x86_64-linux = fetchurl { + url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.linux.AppImage"; + sha256 = "sha256-hxXs8Dfh5YQy1zaFb20KDWNl8eqFjuN5QY7tsO6+E/U="; + }; + x86_64-darwin = fetchurl { + url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.mac.x64.dmg"; + sha256 = "sha256-8+7NzaHVcLinKb57SAcJmF2Foy9RfxFhcTxzvL0JSJQ="; + }; + aarch64-darwin = fetchurl { + url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.mac.arm64.dmg"; + sha256 = "sha256-1BNY6kRS0F+AUI+80ZGFi/ek28NMP1uexo1UORz5D6g="; + }; + }; + src = srcs.${stdenv.hostPlatform.system}; + + appimageContents = appimageTools.extract { + inherit name src; + }; + + meta = with lib; { + description = "Free cross-platform password manager compatible with KeePass"; + homepage = "https://keeweb.info/"; + changelog = "https://github.com/keeweb/keeweb/blob/v${version}/release-notes.md"; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + platforms = builtins.attrNames srcs; + }; + + linux = appimageTools.wrapType2 rec { + inherit name src meta; + + extraPkgs = pkgs: with pkgs; [ libsecret libxshmfence ]; + + extraInstallCommands = '' + mv $out/bin/{${name},${pname}} + install -Dm644 ${appimageContents}/keeweb.desktop -t $out/share/applications + install -Dm644 ${appimageContents}/keeweb.png -t $out/share/icons/hicolor/256x256/apps + install -Dm644 ${appimageContents}/usr/share/mime/keeweb.xml -t $out/share/mime + substituteInPlace $out/share/applications/keeweb.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/Applications + cp -r *.app $out/Applications + ''; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix b/nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix new file mode 100644 index 000000000000..f98e21edf5bc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix @@ -0,0 +1,40 @@ +{ fetchzip, lib, stdenv, jdk8, runtimeShell }: + +stdenv.mkDerivation rec { + version = "5.4.4"; + pname = "keystore-explorer"; + src = fetchzip { + url = "https://github.com/kaikramer/keystore-explorer/releases/download/v${version}/kse-544.zip"; + sha256 = "01kpa8g6p6vcqq9y70w5bm8jbw4kp55pbywj2zrhgjibrhgjqi0b"; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + mkdir -p $out/share/keystore-explorer + cp -R icons licenses lib kse.jar $out/share/keystore-explorer/ + + # keystore-explorer's kse.sh tries to detect the path of Java by using + # Python on Darwin; just write our own start script to avoid unnecessary dependencies + cat > $out/bin/keystore-explorer <<EOF + #!${runtimeShell} + export JAVA_HOME=${jdk8.home} + exec ${jdk8}/bin/java -jar $out/share/keystore-explorer/kse.jar "\$@" + EOF + chmod +x $out/bin/keystore-explorer + + runHook postInstall + ''; + + dontStrip = true; + dontBuild = true; + dontConfigure = true; + + meta = { + description = "Open source GUI replacement for the Java command-line utilities keytool and jarsigner"; + license = lib.licenses.gpl3Only; + maintainers = [ lib.maintainers.numinit ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/khal/default.nix b/nixpkgs/pkgs/applications/misc/khal/default.nix new file mode 100644 index 000000000000..8ad7578adebb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/khal/default.nix @@ -0,0 +1,65 @@ +{ lib, stdenv, pkgs, python3, fetchpatch, glibcLocales }: + +with python3.pkgs; buildPythonApplication rec { + pname = "khal"; + version = "0.10.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-L92PwU/ll+Wn1unGPHho2WC07QIbVjxoSnHwcJDtpDI="; + }; + + propagatedBuildInputs = [ + atomicwrites + click + click-log + configobj + python-dateutil + icalendar + lxml + pkgs.vdirsyncer + pytz + pyxdg + requests-toolbelt + tzlocal + urwid + pkginfo + freezegun + ]; + nativeBuildInputs = [ setuptools-scm sphinx sphinxcontrib_newsfeed ]; + checkInputs = [ + glibcLocales + pytestCheckHook + ]; + LC_ALL = "en_US.UTF-8"; + + postInstall = '' + # zsh completion + install -D misc/__khal $out/share/zsh/site-functions/__khal + + # man page + PATH="${python3.withPackages (ps: with ps; [ sphinx sphinxcontrib_newsfeed ])}/bin:$PATH" \ + make -C doc man + install -Dm755 doc/build/man/khal.1 -t $out/share/man/man1 + + # desktop + install -Dm755 misc/khal.desktop -t $out/share/applications + ''; + + doCheck = !stdenv.isAarch64; + + disabledTests = [ + # This test is failing due to https://github.com/pimutils/khal/issues/1065 + "test_print_ics_command" + + # Mocking breaks in this testcase + "test_import_from_stdin" + ]; + + meta = with lib; { + homepage = "http://lostpackets.de/khal/"; + description = "CLI calendar application"; + license = licenses.mit; + maintainers = with maintainers; [ gebner ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/khard/default.nix b/nixpkgs/pkgs/applications/misc/khard/default.nix new file mode 100644 index 000000000000..64e41eaa3d25 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/khard/default.nix @@ -0,0 +1,41 @@ +{ lib, python3 }: + +python3.pkgs.buildPythonApplication rec { + version = "0.17.0"; + pname = "khard"; + + src = python3.pkgs.fetchPypi { + inherit pname version; + sha256 = "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn"; + }; + + SETUPTOOLS_SCM_PRETEND_VERSION = version; + nativeBuildInputs = [ + python3.pkgs.setuptools-scm + ]; + + propagatedBuildInputs = with python3.pkgs; [ + atomicwrites + configobj + vobject + ruamel_yaml + ruamel_base + unidecode + ]; + + postInstall = '' + install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard + ''; + + preCheck = '' + # see https://github.com/scheibler/khard/issues/263 + export COLUMNS=80 + ''; + + meta = { + homepage = "https://github.com/scheibler/khard"; + description = "Console carddav client"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ matthiasbeyer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kile-wl/default.nix b/nixpkgs/pkgs/applications/misc/kile-wl/default.nix new file mode 100644 index 000000000000..9146f38df369 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kile-wl/default.nix @@ -0,0 +1,35 @@ +{ lib, fetchFromGitLab, unstableGitUpdater, rustPlatform, scdoc }: + +rustPlatform.buildRustPackage rec { + pname = "kile-wl"; + version = "unstable-2021-06-24"; + + src = fetchFromGitLab { + owner = "snakedye"; + repo = "kile"; + rev = "6a306b0b5af0f250135eb88e0e72a5038fccd6a8"; + sha256 = "sha256-DznIDzI5rNrlKJdXjpOpsLL8IO6tuIvW0pNdRN8N6Go="; + }; + + passthru.updateScript = unstableGitUpdater { + url = "https://gitlab.com/snakedye/kile.git"; + }; + + cargoSha256 = "sha256-LFRqhgvziQ7a8OWRzXqNIfziP6bRHTe2oF55N09rFy8="; + + nativeBuildInputs = [ scdoc ]; + + postInstall = '' + mkdir -p $out/share/man + scdoc < doc/kile.1.scd > $out/share/man/kile.1 + ''; + + meta = with lib; { + description = "A tiling layout generator for river"; + homepage = "https://gitlab.com/snakedye/kile"; + license = licenses.mit; + platforms = platforms.linux; # It's meant for river, a wayland compositor + maintainers = with maintainers; [ fortuneteller2k ]; + mainProgram = "kile"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kiln/default.nix b/nixpkgs/pkgs/applications/misc/kiln/default.nix new file mode 100644 index 000000000000..dfa114f446a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kiln/default.nix @@ -0,0 +1,30 @@ +{ lib, buildGoModule, fetchFromSourcehut, scdoc }: + +buildGoModule rec { + pname = "kiln"; + version = "0.2.1"; + + src = fetchFromSourcehut { + owner = "~adnano"; + repo = pname; + rev = version; + hash = "sha256-c6ed62Nn++qw+U/DCiYeGwF77YsBxexWKZ7UQ3LE4fI="; + }; + + nativeBuildInputs = [ scdoc ]; + + vendorSha256 = "sha256-bMpzebwbVHAbBtw0uuGyWd4wnM9z6tlsEQN4S/iucgk="; + + installPhase = '' + runHook preInstall + make PREFIX=$out install + runHook postInstall + ''; + + meta = with lib; { + description = "A simple static site generator for Gemini"; + homepage = "https://git.sr.ht/~adnano/kiln"; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kiwix/default.nix b/nixpkgs/pkgs/applications/misc/kiwix/default.nix new file mode 100644 index 000000000000..f3406d4159b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kiwix/default.nix @@ -0,0 +1,48 @@ +{ lib, mkDerivation, fetchFromGitHub +, callPackage +, pkg-config +, makeWrapper +, qmake +, qtbase +, qtwebengine +, qtsvg +, qtimageformats +, aria2 +}: + +mkDerivation rec { + pname = "kiwix"; + version = "2.0.5"; + + src = fetchFromGitHub { + owner = pname; + repo = "${pname}-desktop"; + rev = version; + sha256 = "12v43bcg4g8fcp02y2srsfdvcb7dpl4pxb9z7a235006s0kfv8yn"; + }; + + nativeBuildInputs = [ + qmake + pkg-config + ]; + + buildInputs = [ + qtbase + qtwebengine + qtsvg + qtimageformats + (callPackage ./lib.nix {}) + ]; + + qtWrapperArgs = [ + "--prefix PATH : ${lib.makeBinPath [ aria2 ]}" + ]; + + meta = with lib; { + description = "An offline reader for Web content"; + homepage = "https://kiwix.org"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ajs124 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kiwix/lib.nix b/nixpkgs/pkgs/applications/misc/kiwix/lib.nix new file mode 100644 index 000000000000..dcde5c390a47 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kiwix/lib.nix @@ -0,0 +1,55 @@ +{ stdenv, lib, fetchFromGitHub +, meson, ninja, pkg-config +, python3 +, curl +, icu +, pugixml +, zimlib +, zlib +, libmicrohttpd +, mustache-hpp +, gtest +}: + + +stdenv.mkDerivation rec { + pname = "kiwix-lib"; + version = "9.4.1"; + + src = fetchFromGitHub { + owner = "kiwix"; + repo = pname; + rev = version; + sha256 = "034nk6l623v78clrs2d0k1vg69sbzrd8c0q79qiqmlkinck1nkxw"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + ]; + + buildInputs = [ + icu + zlib + mustache-hpp + ]; + + propagatedBuildInputs = [ + curl + libmicrohttpd + pugixml + zimlib + ]; + + checkInputs = [ + gtest + ]; + + doCheck = true; + + postPatch = '' + patchShebangs scripts + ''; +} diff --git a/nixpkgs/pkgs/applications/misc/kjv/default.nix b/nixpkgs/pkgs/applications/misc/kjv/default.nix new file mode 100644 index 000000000000..08a1b5a71af6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kjv/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, readline }: + +let + patchPrefix = "https://github.com/samuelgrf/kjv/commit/"; + + add-apocrypha = fetchpatch { + url = patchPrefix + "0856fa0d37b45de0d6b47d163b5ea9a0b7f2c061.patch"; + sha256 = "1jkajdg4wvpbbwc5mn37i4c8nfis4z0pv5rl7gqs0laj0gpj7jn8"; + }; + + add-install-target = fetchpatch { + url = patchPrefix + "50a83256ee45430fb06b7aea1945dd91c6813bc3.patch"; + sha256 = "0bv9yma67jdj496a6vn6y007c9gwjpg3rzld1i9m9y9xmlzq4yzv"; + }; +in + +stdenv.mkDerivation { + pname = "kjv"; + version = "unstable-2021-03-11"; + + src = fetchFromGitHub { + owner = "bontibon"; + repo = "kjv"; + rev = "108595dcbb9bb12d40e0309f029b6fb3ccd81309"; + hash = "sha256-Z6myd9Xn23pYizG+IZVDrP988pYU06QIcpqXtWTcPiw="; + }; + + patches = [ add-apocrypha add-install-target ]; + + buildInputs = [ readline ]; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + description = "The Bible, King James Version"; + homepage = "https://github.com/bontibon/kjv"; + license = licenses.unlicense; + maintainers = with maintainers; [ jtobin samuelgrf ]; + mainProgram = "kjv"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/klayout/default.nix b/nixpkgs/pkgs/applications/misc/klayout/default.nix new file mode 100644 index 000000000000..d1326848d2d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/klayout/default.nix @@ -0,0 +1,63 @@ +{ lib, mkDerivation, fetchFromGitHub, fetchpatch +, python3, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns +, which, perl, makeWrapper +}: + +mkDerivation rec { + pname = "klayout"; + version = "0.26.10"; + + src = fetchFromGitHub { + owner = "KLayout"; + repo = "klayout"; + rev = "v${version}"; + sha256 = "sha256-h2jCmLZ2pRlK8VblQosBX0ZcoHDnn4oYeSqzA3y1Tzg="; + }; + + postPatch = '' + substituteInPlace src/klayout.pri --replace "-Wno-reserved-user-defined-literal" "" + patchShebangs . + ''; + + nativeBuildInputs = [ + which + python3 + ruby + ]; + + buildInputs = [ + qtbase + qtmultimedia + qttools + qtxmlpatterns + ]; + + buildPhase = '' + runHook preBuild + mkdir -p $out/lib + ./build.sh -qt5 -prefix $out/lib -j$NIX_BUILD_CORES + runHook postBuild + ''; + + postBuild = '' + mkdir $out/bin + mv $out/lib/klayout $out/bin/ + ''; + + NIX_CFLAGS_COMPILE = [ "-Wno-parentheses" ]; + + dontInstall = true; # Installation already happens as part of "build.sh" + + # Fix: "gsiDeclQMessageLogger.cc:126:42: error: format not a string literal + # and no format arguments [-Werror=format-security]" + hardeningDisable = [ "format" ]; + + meta = with lib; { + description = "High performance layout viewer and editor with support for GDS and OASIS"; + license = with licenses; [ gpl3 ]; + homepage = "https://www.klayout.de/"; + platforms = platforms.linux; + maintainers = with maintainers; [ knedlsepp ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/kondo/default.nix b/nixpkgs/pkgs/applications/misc/kondo/default.nix new file mode 100644 index 000000000000..64cae5b64e5e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kondo/default.nix @@ -0,0 +1,22 @@ +{ lib, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "kondo"; + version = "0.4"; + + src = fetchFromGitHub { + owner = "tbillington"; + repo = pname; + rev = "v${version}"; + sha256 = "0kl2zn6ir3w75ny25ksgxl93vlyb13gzx2795zyimqqnsrdpbbrf"; + }; + + cargoSha256 = "0sddsm0jys1bsj2bsr39lcyx8k2hzw17nlsv6aql0v82x8qbsiv4"; + + meta = with lib; { + description = "Save disk space by cleaning unneeded files from software projects"; + homepage = "https://github.com/tbillington/kondo"; + license = licenses.mit; + maintainers = with maintainers; [ Br1ght0ne ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/koreader/default.nix b/nixpkgs/pkgs/applications/misc/koreader/default.nix new file mode 100644 index 000000000000..249569ffbab0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/koreader/default.nix @@ -0,0 +1,63 @@ +{ lib, stdenv +, fetchurl +, makeWrapper +, dpkg +, glib +, gnutar +, gtk3-x11 +, luajit +, sdcv +, SDL2 +, noto-fonts +, nerdfonts }: +let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; }; +in stdenv.mkDerivation rec { + pname = "koreader"; + version = "2021.03"; + + src = fetchurl { + url = + "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb"; + sha256 = "sha256-XdCyx+SdcV1QitDVkOl9EZCHpU8Qiwu0qhcXkU6b+9o="; + }; + + sourceRoot = "."; + nativeBuildInputs = [ makeWrapper dpkg ]; + buildInputs = [ + glib + gnutar + gtk3-x11 + luajit + sdcv + SDL2 + ]; + unpackCmd = "dpkg-deb -x ${src} ."; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out + cp -R usr/* $out/ + ln -sf ${luajit}/bin/luajit $out/lib/koreader/luajit + ln -sf ${sdcv}/bin/sdcv $out/lib/koreader/sdcv + ln -sf ${gnutar}/bin/tar $out/lib/koreader/tar + find $out -xtype l -delete + for i in ${noto-fonts}/share/fonts/truetype/noto/*; do + ln -s "$i" $out/lib/koreader/fonts/noto/ + done + ln -s "${font-droid}/share/fonts/opentype/NerdFonts/Droid Sans Mono Nerd Font Complete Mono.otf" $out/lib/koreader/fonts/droid/DroidSansMono.ttf + wrapProgram $out/bin/koreader --prefix LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ gtk3-x11 SDL2 glib ] + } + ''; + + meta = with lib; { + homepage = "https://github.com/koreader/koreader"; + description = + "An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices"; + platforms = intersectLists platforms.x86_64 platforms.linux; + license = licenses.agpl3Only; + maintainers = with maintainers; [ contrun neonfuz]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kratos/default.nix b/nixpkgs/pkgs/applications/misc/kratos/default.nix new file mode 100644 index 000000000000..65b32c458638 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kratos/default.nix @@ -0,0 +1,42 @@ +{ fetchFromGitHub, buildGoModule, lib, stdenv }: + +buildGoModule rec { + pname = "kratos"; + version = "0.6.0-alpha.2"; + + src = fetchFromGitHub { + owner = "ory"; + repo = "kratos"; + rev = "v${version}"; + sha256 = "0zg6afzqi5fmr7hmy1cd7fknd1bcplz3h0f7z67l75v8k2n73md1"; + }; + + vendorSha256 = "16qg44k97l6719hib8vbv0j15x6gvs9d6738d2y990a2qiqbsqpw"; + + subPackages = [ "." ]; + + buildFlags = [ "-tags sqlite" ]; + + doCheck = false; + + preBuild = '' + # Patch shebangs + files=( + test/e2e/run.sh + script/testenv.sh + script/test-envs.sh + persistence/sql/migratest/update_fixtures.sh + ) + patchShebangs "''${files[@]}" + + # patchShebangs doesn't work for this Makefile, do it manually + substituteInPlace Makefile --replace '/bin/bash' '${stdenv.shell}' + ''; + + meta = with lib; { + maintainers = with maintainers; [ mrmebelman ]; + homepage = "https://www.ory.sh/kratos/"; + license = licenses.asl20; + description = "An API-first Identity and User Management system that is built according to cloud architecture best practices"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/krename/default.nix b/nixpkgs/pkgs/applications/misc/krename/default.nix new file mode 100644 index 000000000000..c1e031b7277d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/krename/default.nix @@ -0,0 +1,35 @@ +{ + mkDerivation, fetchurl, lib, + extra-cmake-modules, kdoctools, wrapGAppsHook, + kconfig, kinit, kjsembed, taglib, exiv2, podofo, + kcrash +}: + +let + pname = "krename"; + version = "5.0.1"; + +in mkDerivation rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz"; + sha256 = "0zbadxjp13jqxgb58wslhm0wy2lhpdq1bgbvyhyn21mssfppib6a"; + }; + + buildInputs = [ taglib exiv2 podofo ]; + + nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ]; + + propagatedBuildInputs = [ kconfig kcrash kinit kjsembed ]; + + NIX_LDFLAGS = "-ltag"; + + meta = with lib; { + description = "A powerful batch renamer for KDE"; + homepage = "https://kde.org/applications/utilities/krename/"; + license = licenses.gpl2; + maintainers = with maintainers; [ peterhoeg ]; + inherit (kconfig.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/krusader/default.nix b/nixpkgs/pkgs/applications/misc/krusader/default.nix new file mode 100644 index 000000000000..585dfe3e04f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/krusader/default.nix @@ -0,0 +1,26 @@ +{ + mkDerivation, fetchurl, lib, + extra-cmake-modules, kdoctools, wrapGAppsHook, + karchive, kconfig, kcrash, kguiaddons, kinit, kparts, kwindowsystem +}: + +mkDerivation rec { + pname = "krusader"; + version = "2.7.2"; + + src = fetchurl { + url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz"; + sha256 = "02b1jz5a7cjr13v6c7fczrhs1xmg1krnva5fxk8x2bf4nd1rm8s1"; + }; + + nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ]; + + propagatedBuildInputs = [ karchive kconfig kcrash kguiaddons kinit kparts kwindowsystem ]; + + meta = with lib; { + description = "Norton/Total Commander clone for KDE"; + homepage = "http://www.krusader.org"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ sander turion ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix b/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix new file mode 100644 index 000000000000..e5cb6f5816e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix @@ -0,0 +1,48 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, fetchpatch +, cmake +, extra-cmake-modules +, kactivities +, qtbase +}: + +mkDerivation rec { + pname = "KSmoothDock"; + version = "6.2"; + + src = fetchFromGitHub { + owner = "dangvd"; + repo = "ksmoothdock"; + rev = "v${version}"; + sha256 = "182x47cymgnp5xisa0xx93hmd5wrfigy8zccrr23p4r9hp8xbnam"; + }; + + patches = [ + # Fixed hard coded installation path to use CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_PREFIX instead + (fetchpatch { + url = "https://github.com/dangvd/ksmoothdock/commit/00799bef8a1c1fe61ef9274866267d9fe9194041.patch"; + sha256 = "1nmb7gf1ggzicxz8k4fd67xhwjy404myqzjpgjym66wqxm0arni4"; + }) + # Pull request to fix build on Qt 5.15 https://github.com/dangvd/ksmoothdock/pull/123 + (fetchpatch { + url = "https://github.com/dangvd/ksmoothdock/commit/259527aacadb0fd9110d4425b9bf41a15bedce72.patch"; + sha256 = "12nj58v9qqrynarn3gpywih3w27mr4n51z1b8mh0rfbnd2kib8dc"; + }) + ]; + + nativeBuildInputs = [ cmake extra-cmake-modules ]; + + buildInputs = [ kactivities qtbase ]; + + cmakeDir = "../src"; + + meta = with lib; { + description = "A cool desktop panel for KDE Plasma 5"; + license = licenses.mit; + homepage = "https://dangvd.github.io/ksmoothdock/"; + maintainers = with maintainers; [ shamilton ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/kupfer/default.nix b/nixpkgs/pkgs/applications/misc/kupfer/default.nix new file mode 100644 index 000000000000..47e310fb7658 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/kupfer/default.nix @@ -0,0 +1,60 @@ +{ lib +, fetchurl +, intltool +, python3Packages +, gobject-introspection +, gtk3 +, itstool +, libwnck +, keybinder3 +, desktop-file-utils +, shared-mime-info +, wrapGAppsHook +, wafHook +}: + +with python3Packages; + +buildPythonApplication rec { + pname = "kupfer"; + version = "321"; + + format = "other"; + + src = fetchurl { + url = "https://github.com/kupferlauncher/kupfer/releases/download/v${version}/kupfer-v${version}.tar.bz2"; + sha256 = "0nagjp63gxkvsgzrpjk78cbqx9a7rbnjivj1avzb2fkhrlxa90c7"; + }; + + nativeBuildInputs = [ + wrapGAppsHook intltool + # For setup hook + gobject-introspection wafHook + itstool # for help pages + desktop-file-utils # for update-desktop-database + shared-mime-info # for update-mime-info + ]; + buildInputs = [ docutils libwnck keybinder3 ]; + propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ]; + + # without strictDeps kupfer fails to build: Could not find the python module 'gi.repository.Gtk' + # see https://github.com/NixOS/nixpkgs/issues/56943 for details + strictDeps = false; + + postInstall = '' + gappsWrapperArgs+=( + "--prefix" "PYTHONPATH" : "${makePythonPath propagatedBuildInputs}" + "--set" "PYTHONNOUSERSITE" "1" + ) + ''; + + doCheck = false; # no tests + + meta = with lib; { + description = "A smart, quick launcher"; + homepage = "https://kupferlauncher.github.io/"; + license = licenses.gpl3; + maintainers = with maintainers; [ cobbal ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/latte-dock/default.nix b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix new file mode 100644 index 000000000000..1840804ce739 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix @@ -0,0 +1,30 @@ +{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchurl +, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash, knewstuff }: + +mkDerivation rec { + pname = "latte-dock"; + version = "0.9.12"; + + src = fetchurl { + url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz"; + sha256 = "sha256-srivjGnrEizLvph7AP/02dOsnMyTnL3a6f0xm8oGML4="; + name = "${pname}-${version}.tar.xz"; + }; + + buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp xorg.libSM ]; + + nativeBuildInputs = [ extra-cmake-modules cmake karchive kwindowsystem + qtx11extras kcrash knewstuff ]; + + + + meta = with lib; { + description = "Dock-style app launcher based on Plasma frameworks"; + homepage = "https://github.com/psifidotos/Latte-Dock"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = [ maintainers.benley maintainers.ysndr ]; + }; + + +} diff --git a/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix b/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix new file mode 100644 index 000000000000..533d3757a6ef --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lavalauncher/default.nix @@ -0,0 +1,55 @@ +{ lib +, stdenv +, fetchgit +, meson +, ninja +, pkg-config +, scdoc +, cairo +, librsvg +, wayland +, wayland-protocols +}: + +stdenv.mkDerivation rec { + pname = "lavalauncher"; + version = "2.0.0"; + + src = fetchgit { + url = "https://git.sr.ht/~leon_plickat/lavalauncher"; + rev = "v${version}"; + sha256 = "MXREycR4ZetTe71ZwEqyozMJN9OLTDvU0W4J8qkTQAs="; + }; + + nativeBuildInputs = [ meson ninja pkg-config scdoc ]; + buildInputs = [ + cairo + librsvg + wayland + wayland-protocols + ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~leon_plickat/lavalauncher"; + description = "A simple launcher panel for Wayland desktops"; + longDescription = '' + LavaLauncher is a simple launcher panel for Wayland desktops. + + It displays a dynamically sized bar with user defined buttons. Buttons + consist of an image, which is displayed as the button icon on the bar, and + at least one shell command, which is executed when the user activates the + button. + + Buttons can be activated with pointer and touch events. + + A single LavaLauncher instance can provide multiple such bars, across + multiple outputs. + + The Wayland compositor must implement the Layer-Shell and XDG-Output for + LavaLauncher to work. + ''; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/lenmus/default.nix b/nixpkgs/pkgs/applications/misc/lenmus/default.nix new file mode 100644 index 000000000000..a9aef85753ec --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lenmus/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, pkg-config, fetchFromGitHub, fetchpatch +, cmake, boost +, portmidi, sqlite +, freetype, libpng, pngpp, zlib +, wxGTK30, wxsqlite3 +}: + +stdenv.mkDerivation rec { + pname = "lenmus"; + version = "5.4.2"; + + src = fetchFromGitHub { + owner = "lenmus"; + repo = "lenmus"; + rev = "Release_${version}"; + sha256 = "1n639xr1qxx6rhqs0c6sjxp3bv8cwkmw1vfk1cji7514gj2a9v3p"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/lenmus/lenmus/commit/421760d84694a0e6e72d0e9b1d4fd30a7e129c6f.patch"; + sha256 = "1z1wwh0pcr8w1zlr8swx99si9y2kxx5bmavgwvy6bvdhxgm58yqs"; + }) + (fetchpatch { + url = "https://github.com/lenmus/lenmus/commit/6613d20d4051effc782203c9c6d92962a3f66b5f.patch"; + sha256 = "01vvzzpamv90jpqbbq1f2m2b4gb9xab9z70am8i41d90nqvg6agn"; + }) + ]; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ + boost + portmidi sqlite + freetype libpng pngpp zlib + wxGTK30 wxsqlite3 + ]; + + meta = with lib; { + description = "LenMus Phonascus is a program for learning music"; + longDescription = '' + LenMus Phonascus is a free open source program (GPL v3) for learning music. + It allows you to focus on specific skills and exercises, on both theory and aural training. + The different activities can be customized to meet your needs + ''; + homepage = "http://www.lenmus.org/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ramkromberg ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/libosmocore/default.nix b/nixpkgs/pkgs/applications/misc/libosmocore/default.nix new file mode 100644 index 000000000000..273ca0245a2b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/libosmocore/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config +, pcsclite, talloc, python2, gnutls +}: + +stdenv.mkDerivation rec { + pname = "libosmocore"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "osmocom"; + repo = "libosmocore"; + rev = version; + sha256 = "1535y6r4csvslrxcki80ya6zhhc5jw2nvy9bymb55ln77pf853vg"; + }; + + propagatedBuildInputs = [ + talloc + ]; + + nativeBuildInputs = [ + autoreconfHook pkg-config + ]; + + buildInputs = [ + pcsclite python2 gnutls + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Set of Osmocom core libraries"; + homepage = "https://github.com/osmocom/libosmocore"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mog ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/librecad/default.nix b/nixpkgs/pkgs/applications/misc/librecad/default.nix new file mode 100644 index 000000000000..691ebb4ba682 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/librecad/default.nix @@ -0,0 +1,81 @@ +{ lib +, boost +, fetchFromGitHub +, installShellFiles +, mkDerivationWith +, muparser +, pkg-config +, qmake +, qtbase +, qtsvg +, qttools +, runtimeShell +, stdenv +}: + +mkDerivationWith stdenv.mkDerivation rec { + pname = "librecad"; + version = "2.2.0-rc2"; + + src = fetchFromGitHub { + owner = "LibreCAD"; + repo = "LibreCAD"; + rev = version; + sha256 = "sha256-RNg7ioMriH4A7V65+4mh8NhsUHs/8IbTt38nVkYilCE="; + }; + + postPatch = '' + substituteInPlace scripts/postprocess-unix.sh \ + --replace /bin/sh ${runtimeShell} + + substituteInPlace librecad/src/lib/engine/rs_system.cpp \ + --replace /usr/share $out/share + + substituteInPlace librecad/src/main/qc_applicationwindow.cpp \ + --replace __DATE__ 0 + ''; + + qmakeFlags = [ + "MUPARSER_DIR=${muparser}" + "BOOST_DIR=${boost.dev}" + ]; + + installPhase = '' + runHook preInstall + + install -Dm555 -t $out/bin unix/{librecad,ttf2lff} + install -Dm444 -t $out/share/applications desktop/librecad.desktop + install -Dm644 -t $out/share/pixmaps librecad/res/main/librecad.png + install -Dm444 desktop/librecad.sharedmimeinfo $out/share/mime/packages/librecad.xml + install -Dm444 desktop/graphics_icons_and_splash/Icon\ LibreCAD/Icon_Librecad.svg \ + $out/share/icons/hicolor/scalable/apps/librecad.svg + + installManPage desktop/librecad.? + + cp -R unix/resources $out/share/librecad + + runHook postInstall + ''; + + buildInputs = [ + boost + muparser + qtbase + qtsvg + ]; + + nativeBuildInputs = [ + installShellFiles + pkg-config + qmake + qttools + ]; + + meta = with lib; { + description = "2D CAD package based on Qt"; + homepage = "https://librecad.org"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ kiwi viric ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/lifelines/default.nix b/nixpkgs/pkgs/applications/misc/lifelines/default.nix new file mode 100644 index 000000000000..50827355cac0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lifelines/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, gettext, libiconv, bison, ncurses, perl, autoreconfHook }: + +stdenv.mkDerivation rec { + pname = "lifelines"; + version = "unstable-2019-05-07"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "43f29285ed46fba322b6a14322771626e6b02c59"; + sha256 = "1agszzlmkxmznpc1xj0vzxkskrcfagfjvqsdyw1yp5yg6bsq272y"; + }; + + buildInputs = [ + gettext + libiconv + ncurses + perl + ]; + nativeBuildInputs = [ autoreconfHook bison ]; + + meta = with lib; { + description = "Genealogy tool with ncurses interface"; + homepage = "https://lifelines.github.io/lifelines/"; + license = licenses.mit; + maintainers = with maintainers; [ disassembler ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/lighthouse/default.nix b/nixpkgs/pkgs/applications/misc/lighthouse/default.nix new file mode 100644 index 000000000000..e9aa79dcdd83 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lighthouse/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config +, libX11, libxcb, cairo, gtk2, pango, python27, python3 +}: + +stdenv.mkDerivation rec { + name = "lighthouse-${date}"; + date = "2016-07-20"; + + src = fetchFromGitHub { + owner = "emgram769"; + repo = "lighthouse"; + rev = "d1813ef8e2aca9f6b3609b1e0c6d1d5ee683281a"; + sha256 = "0v6ylm49f1b44zwq1y1gqxp2csyqblplr24ajllc2q3r0sc9m1ys"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 libxcb cairo gtk2 pango python27 python3 + ]; + + makeFlags = [ "PREFIX=\${out}" ]; + + preFixup = "chmod +x $out/share/lighthouse/.config/lighthouse/google.py"; + + postFixup = "chmod -x $out/share/lighthouse/.config/lighthouse/google.py"; + + meta = with lib; { + description = "A simple flexible popup dialog to run on X"; + homepage = "https://github.com/emgram769/lighthouse"; + license = licenses.mit; + maintainers = with maintainers; [ ramkromberg ]; + platforms = platforms.linux; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/llpp/default.nix b/nixpkgs/pkgs/applications/misc/llpp/default.nix new file mode 100644 index 000000000000..7004d0dce34f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/llpp/default.nix @@ -0,0 +1,57 @@ +{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11, jbig2dec, openjpeg, libjpeg , lcms2, harfbuzz, +libGLU, libGL, gumbo, freetype, zlib, xclip, inotify-tools, procps }: + +assert lib.versionAtLeast (lib.getVersion ocaml) "4.07"; + +stdenv.mkDerivation rec { + pname = "llpp"; + version = "33"; + + src = fetchgit { + url = "git://repo.or.cz/llpp.git"; + rev = "v${version}"; + sha256 = "0shqzhaflm2yhkx6c0csq9lxp1s1r7lh5kgpx9q5k06xya2a7yvs"; + fetchSubmodules = false; + }; + + patches = (substituteAll { + inherit version; + src = ./fix-build-bash.patch; + }); + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ ocaml mupdf libX11 libGLU libGL freetype zlib gumbo jbig2dec openjpeg libjpeg lcms2 harfbuzz ]; + + dontStrip = true; + + configurePhase = '' + mkdir -p build/mupdf/thirdparty + ln -s ${freetype.dev} build/mupdf/thirdparty/freetype + ''; + + buildPhase = '' + bash ./build.bash build + ''; + + installPhase = '' + install -d $out/bin + install build/llpp $out/bin + install misc/llpp.inotify $out/bin/llpp.inotify + + wrapProgram $out/bin/llpp \ + --prefix PATH ":" "${xclip}/bin" + + wrapProgram $out/bin/llpp.inotify \ + --prefix PATH ":" "$out/bin" \ + --prefix PATH ":" "${inotify-tools}/bin" \ + --prefix PATH ":" "${procps}/bin" + ''; + + meta = with lib; { + homepage = "https://repo.or.cz/w/llpp.git"; + description = "A MuPDF based PDF pager written in OCaml"; + platforms = platforms.linux; + maintainers = with maintainers; [ pSub ]; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch b/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch new file mode 100644 index 000000000000..c12828f2d94d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch @@ -0,0 +1,80 @@ +diff --git a/build.bash b/build.bash +index 7c278b6..41494c5 100755 +with manual adjustments +--- a/build.bash ++++ b/build.bash +@@ -30,7 +30,6 @@ srcd="$(dirname $0)" + mudir=$outd/mupdf + muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include" + +-test -d "$mudir" || die muPDF not found, consult $(dirname $0)/BUILDING + + mkdir -p $outd/{$wsid,lablGL} + :>$outd/ordered +@@ -41,12 +40,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; } + mulibst="$mudir/build/$mbt/libs" + mulibs="$mudir/build/$mbt/libmupdf.a $mudir/build/$mbt/libmupdf-third.a" + +-keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs" +-isfresh "$mulibst" "$(eval $keycmd)" || ( +- make -C "$mudir" build=$mbt -j $mjobs libs +- eval $keycmd >${mulibst}.past +-) && vecho "fresh mupdf" +- + oincs() { + local i= + local incs1= +@@ -100,35 +93,6 @@ mflags() { + } + + overs="$(ocamlc -vnum 2>/dev/null)" || overs="" +-test "$overs" = "4.11.1" || { +- url=https://caml.inria.fr/pub/distrib/ocaml-4.11/ocaml-4.11.1.tar.xz +- txz=$outd/$(basename $url) +- keycmd="printf $url; digest $txz;" +- isfresh $txz "$(eval $keycmd)" || { +- executable_p() { command -v "$1" >/dev/null 2>&1; } +- if executable_p wget; then dl() { wget -q "$1" -O "$2"; } +- elif executable_p curl; then dl() { curl -L "$1" -o "$2"; } +- else die "no program to fetch remote urls found" +- fi +- dl $url $txz +- eval $keycmd >$txz.past +- } && vecho "fresh $txz" +- absprefix=$(cd $outd &>/dev/null; pwd -P) +- export PATH=$absprefix/bin:$PATH +- ocamlc=$absprefix/bin/ocamlc +- keycmd="printf $url; digest $ocamlc;" +- isfresh $ocamlc "$(eval $keycmd)" || ( +- tar xf $txz -C $outd +- bn=$(basename $url) +- cd $outd/${bn%.tar.xz} +- ./configure --disable-ocamldoc --disable-ocamltest \ +- --enable-debugger=no --prefix=$absprefix +- make -j $mjobs world +- make install +- eval $keycmd >$absprefix/bin/ocamlc.past +- ) && vecho "fresh ocamlc" +- overs=$(ocamlc -vnum 2>/dev/null) +-} + + ccomp=${LLPP_CC-$(ocamlc -config | grep "^c_compiler: " | \ + { read _ c; echo $c; })} +@@ -243,7 +208,7 @@ bobjc() { + } && vecho "fresh $o" + } + +-ver=$(cd $srcd && git describe --tags --dirty) || ver=unknown ++ver=@version@ + + cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)" + keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml" +@@ -291,7 +256,7 @@ for m in ml_gl ml_glarray ml_raw; do + done + + libs="str.cma unix.cma" +-clibs="-L$mudir/build/$mbt -lmupdf -lmupdf-third -lpthread" ++clibs="-lmupdf -lmupdf-third -lfreetype -lgumbo -ljpeg -lopenjp2 -ljbig2dec -llcms2 -lharfbuzz -lpthread -lz" + if $darwin; then + mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; }) + clibs="$clibs -framework Cocoa -framework OpenGL" diff --git a/nixpkgs/pkgs/applications/misc/logseq/default.nix b/nixpkgs/pkgs/applications/misc/logseq/default.nix new file mode 100644 index 000000000000..7367d18ddf8b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/logseq/default.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron }: + +stdenv.mkDerivation rec { + pname = "logseq"; + version = "0.2.6"; + + src = fetchurl { + url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; + sha256 = "/tpegRGyGPviYpaSbWw7fH9ntvR7vUSD5rmwDMST5+Y="; + name = "${pname}-${version}.AppImage"; + }; + + appimageContents = appimageTools.extract { + name = "${pname}-${version}"; + inherit src; + }; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/${pname} $out/share/applications + cp -a ${appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${appimageContents}/Logseq.desktop $out/share/applications/${pname}.desktop + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace Exec=Logseq Exec=${pname} \ + --replace Icon=Logseq Icon=$out/share/${pname}/resources/app/icons/logseq.png + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base"; + homepage = "https://github.com/logseq/logseq"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ weihua ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/logseq/update.sh b/nixpkgs/pkgs/applications/misc/logseq/update.sh new file mode 100755 index 000000000000..9f83eefad191 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/logseq/update.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq common-updater-scripts + +version="$(curl -sL "https://api.github.com/repos/logseq/logseq/releases" | jq '.[0].tag_name' --raw-output)" +update-source-version logseq "$version" diff --git a/nixpkgs/pkgs/applications/misc/loxodo/default.nix b/nixpkgs/pkgs/applications/misc/loxodo/default.nix new file mode 100644 index 000000000000..65f9a9f0f17e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/loxodo/default.nix @@ -0,0 +1,37 @@ +{ lib, python27Packages, fetchgit }: +let + py = python27Packages; + python = py.python; +in +py.buildPythonApplication { + name = "loxodo-0.20150124"; + + src = fetchgit { + url = "https://github.com/sommer/loxodo.git"; + rev = "6c56efb4511fd6f645ad0f8eb3deafc8071c5795"; + sha256 = "1cg0dfcv57ps54f1a0ksib7hgkrbdi9q699w302xyyfyvjcb5dd2"; + }; + + propagatedBuildInputs = with py; [ wxPython ]; + + postInstall = '' + mv $out/bin/loxodo.py $out/bin/loxodo + mkdir -p $out/share/applications + cat > $out/share/applications/loxodo.desktop <<EOF + [Desktop Entry] + Type=Application + Exec=$out/bin/loxodo + Icon=$out/lib/${python.libPrefix}/site-packages/resources/loxodo-icon.png + Name=Loxodo + GenericName=Password Vault + Categories=Application;Other; + EOF + ''; + + meta = with lib; { + description = "A Password Safe V3 compatible password vault"; + homepage = "https://www.christoph-sommer.de/loxodo/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/lscolors/cargo.lock.patch b/nixpkgs/pkgs/applications/misc/lscolors/cargo.lock.patch new file mode 100644 index 000000000000..2f233a0667b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lscolors/cargo.lock.patch @@ -0,0 +1,159 @@ +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..3528c6c +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,153 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "ansi_term" ++version = "0.12.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" ++dependencies = [ ++ "winapi", ++] ++ ++[[package]] ++name = "bitflags" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" ++ ++[[package]] ++name = "cfg-if" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" ++ ++[[package]] ++name = "getrandom" ++version = "0.2.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" ++dependencies = [ ++ "cfg-if", ++ "libc", ++ "wasi", ++] ++ ++[[package]] ++name = "libc" ++version = "0.2.86" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c" ++ ++[[package]] ++name = "lscolors" ++version = "0.7.1" ++dependencies = [ ++ "ansi_term", ++ "tempfile", ++] ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" ++ ++[[package]] ++name = "rand" ++version = "0.8.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" ++dependencies = [ ++ "libc", ++ "rand_chacha", ++ "rand_core", ++ "rand_hc", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" ++dependencies = [ ++ "ppv-lite86", ++ "rand_core", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" ++dependencies = [ ++ "getrandom", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" ++dependencies = [ ++ "rand_core", ++] ++ ++[[package]] ++name = "redox_syscall" ++version = "0.2.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" ++dependencies = [ ++ "bitflags", ++] ++ ++[[package]] ++name = "remove_dir_all" ++version = "0.5.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" ++dependencies = [ ++ "winapi", ++] ++ ++[[package]] ++name = "tempfile" ++version = "3.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" ++dependencies = [ ++ "cfg-if", ++ "libc", ++ "rand", ++ "redox_syscall", ++ "remove_dir_all", ++ "winapi", ++] ++ ++[[package]] ++name = "wasi" ++version = "0.10.2+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" ++ ++[[package]] ++name = "winapi" ++version = "0.3.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu", ++ "winapi-x86_64-pc-windows-gnu", ++] ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/nixpkgs/pkgs/applications/misc/lscolors/default.nix b/nixpkgs/pkgs/applications/misc/lscolors/default.nix new file mode 100644 index 000000000000..85ed493da5aa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lscolors/default.nix @@ -0,0 +1,26 @@ +{ lib, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "lscolors"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "sharkdp"; + repo = pname; + rev = "v${version}"; + sha256 = "0av3v31fvanvn59bdm9d0v9zh5lzrq0f4vqhg6xlvabkgsa8jk04"; + }; + + cargoPatches = [ + ./cargo.lock.patch + ]; + + cargoSha256 = "0kfm1pq22dhiw138bf7jvf7amlkal90n1hc9fq44wr4chr9b2fmx"; + + meta = with lib; { + description = "Rust library and tool to colorize paths using LS_COLORS"; + homepage = "https://github.com/sharkdp/lscolors"; + license = with licenses; [ asl20 mit ]; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix b/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix new file mode 100644 index 000000000000..b30d652584f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lsd2dsl/default.nix @@ -0,0 +1,38 @@ +{ stdenv, mkDerivation, lib, fetchFromGitHub, cmake +, boost, libvorbis, libsndfile, minizip, gtest, qtwebkit }: + +mkDerivation rec { + pname = "lsd2dsl"; + version = "0.5.2"; + + src = fetchFromGitHub { + owner = "nongeneric"; + repo = pname; + rev = "v${version}"; + sha256 = "0s0la6zkg584is93p4nj1ha3pbnvadq84zgsv8nym3r35n7k8czi"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ boost libvorbis libsndfile minizip gtest qtwebkit ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=unused-result -Wno-error=missing-braces"; + + installPhase = '' + install -Dm755 console/lsd2dsl gui/lsd2dsl-qtgui -t $out/bin + '' + lib.optionalString stdenv.isDarwin '' + wrapQtApp $out/bin/lsd2dsl + wrapQtApp $out/bin/lsd2dsl-qtgui + ''; + + meta = with lib; { + homepage = "https://rcebits.com/lsd2dsl/"; + description = "Lingvo dictionaries decompiler"; + longDescription = '' + A decompiler for ABBYY Lingvo’s proprietary dictionaries. + ''; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + platforms = with platforms; linux ++ darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix b/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix new file mode 100644 index 000000000000..52fac4941562 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, libusb1, pkg-config, fetchFromGitHub }: + +stdenv.mkDerivation { + pname = "ltwheelconf"; + version = "0.2.7"; + + src = fetchFromGitHub { + owner = "thk"; + repo = "ltwheelconf"; + rev = "df55451f059d593b0259431662612ab5c2bef859"; + sha256 = "1fsz7k73yln987gcx1jvb5irxfbp1x2c457a60a8yap27nkp5y2w"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libusb1 ]; + + installPhase = '' + mkdir -p $out/bin + cp ltwheelconf $out/bin + ''; + + meta = with lib; { + homepage = "https://github.com/thk/LTWheelConf"; + description = "Logitech wheels configuration tool"; + license = licenses.gpl3; + maintainers = [ maintainers.ebzzry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/lutris/default.nix b/nixpkgs/pkgs/applications/misc/lutris/default.nix new file mode 100644 index 000000000000..2d70daa94ecb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lutris/default.nix @@ -0,0 +1,133 @@ +{ buildPythonApplication +, lib +, fetchFromGitHub + + # build inputs +, atk +, gdk-pixbuf +, glib-networking +, gnome-desktop +, gobject-introspection +, gst_all_1 +, gtk3 +, libnotify +, pango +, webkitgtk +, wrapGAppsHook + + # python dependencies +, dbus-python +, distro +, evdev +, lxml +, pillow +, pygobject3 +, pyyaml +, requests +, keyring +, python_magic + + # commands that lutris needs +, xrandr +, pciutils +, psmisc +, glxinfo +, vulkan-tools +, xboxdrv +, pulseaudio +, p7zip +, xgamma +, libstrangle +, wine +, fluidsynth +, xorgserver +, xorg +}: + +let + # See lutris/util/linux.py + binPath = lib.makeBinPath [ + xrandr + pciutils + psmisc + glxinfo + vulkan-tools + xboxdrv + pulseaudio + p7zip + xgamma + libstrangle + wine + fluidsynth + xorgserver + xorg.setxkbmap + xorg.xkbcomp + ]; + + gstDeps = with gst_all_1; [ + gst-libav + gst-plugins-bad + gst-plugins-base + gst-plugins-good + gst-plugins-ugly + gstreamer + ]; + +in +buildPythonApplication rec { + pname = "lutris-original"; + version = "0.5.8.4"; + + src = fetchFromGitHub { + owner = "lutris"; + repo = "lutris"; + rev = "v${version}"; + sha256 = "sha256-5ivXIgDyM9PRvuUhPFPgziXDvggcL+p65kI2yOaiS1M="; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + buildInputs = [ + atk + gdk-pixbuf + glib-networking + gnome-desktop + gobject-introspection + gtk3 + libnotify + pango + webkitgtk + ] ++ gstDeps; + + propagatedBuildInputs = [ + evdev + distro + lxml + pyyaml + pygobject3 + requests + pillow + dbus-python + keyring + python_magic + ]; + + # avoid double wrapping + dontWrapGApps = true; + makeWrapperArgs = [ + "--prefix PATH : ${binPath}" + "\${gappsWrapperArgs[@]}" + ]; + # needed for glib-schemas to work correctly (will crash on dialogues otherwise) + # see https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + preCheck = "export HOME=$PWD"; + + meta = with lib; { + homepage = "https://lutris.net"; + description = "Open Source gaming platform for GNU/Linux"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ chiiruno ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix b/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix new file mode 100644 index 000000000000..19cb7f6c5526 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix @@ -0,0 +1,120 @@ +{ lib, buildFHSUserEnv, lutris-unwrapped +, steamSupport ? true +}: + +let + + qt5Deps = pkgs: with pkgs.qt5; [ qtbase qtmultimedia ]; + gnomeDeps = pkgs: with pkgs; [ gnome.zenity gtksourceview gnome.gnome-desktop gnome.libgnome-keyring webkitgtk ]; + xorgDeps = pkgs: with pkgs.xorg; [ + libX11 libXrender libXrandr libxcb libXmu libpthreadstubs libXext libXdmcp + libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite + ]; + +in buildFHSUserEnv { + name = "lutris"; + + runScript = "lutris"; + + targetPkgs = pkgs: with pkgs; [ + lutris-unwrapped + + # Adventure Game Studio + allegro dumb + + # Desmume + lua agg soundtouch openal desktop-file-utils atk + + # DGen // TODO: libarchive is broken + + # Dolphin + bluez ffmpeg gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm + wavpack orc nettle gmp pcre vulkan-loader + + # DOSBox + SDL_net SDL_sound + + # GOG + glib-networking + + # Higan // TODO: "higan is not available for the x86_64 architecture" + + # Libretro + fluidsynth hidapi mesa libdrm + + # MAME + qt48 fontconfig SDL2_ttf + + # Mednafen + freeglut mesa_glu + + # MESS + expat + + # Minecraft + nss + + # Mupen64Plus + boost dash + + # Osmose + qt4 + + # PPSSPP + glew snappy + + # Redream // "redream is not available for the x86_64 architecture" + + # ResidualVM + flac + + # rpcs3 // TODO: "error while loading shared libraries: libz.so.1..." + llvm + + # ScummVM + nasm sndio + + # Snes9x + epoxy minizip + + # Vice + bison flex + + # WINE + xorg.xrandr perl which p7zip gnused gnugrep psmisc opencl-headers + + # ZDOOM + soundfont-fluid bzip2 game-music-emu + ] ++ qt5Deps pkgs + ++ gnomeDeps pkgs + ++ lib.optional steamSupport pkgs.steam; + + multiPkgs = pkgs: with pkgs; [ + # Common + libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio + libao libevdev udev libgcrypt libxml2 libusb-compat-0_1 libpng libmpeg2 libv4l + libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio + libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib + alsa-lib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils + readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd + vulkan-loader xdg-utils sqlite gnutls p11-kit libbsd harfbuzz + + # PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64" + + # WINE + cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap + ocl-icd util-linux libkrb5 + + # Proton + libselinux + + # Winetricks + fribidi + ] ++ xorgDeps pkgs; + + extraInstallCommands = '' + mkdir -p $out/share + ln -sf ${lutris-unwrapped}/share/applications $out/share + ln -sf ${lutris-unwrapped}/share/icons $out/share + ''; +} diff --git a/nixpkgs/pkgs/applications/misc/lyx/default.nix b/nixpkgs/pkgs/applications/misc/lyx/default.nix new file mode 100644 index 000000000000..7cab86df9671 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lyx/default.nix @@ -0,0 +1,45 @@ +{ fetchurl, lib, mkDerivation, pkg-config, python, file, bc +, qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost +}: + +mkDerivation rec { + version = "2.3.6.1"; + pname = "lyx"; + + src = fetchurl { + url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz"; + sha256 = "sha256-xr7SYzQZiY4Bp8w1AxDX2TS/WRyrcln8JYGqTADq+ng="; + }; + + # LaTeX is used from $PATH, as people often want to have it with extra pkgs + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + qtbase qtsvg python file/*for libmagic*/ bc + hunspell makeWrapper # enchant + ]; + + configureFlags = [ + "--enable-qt5" + #"--without-included-boost" + /* Boost is a huge dependency from which 1.4 MB of libs would be used. + Using internal boost stuff only increases executable by around 0.2 MB. */ + #"--without-included-mythes" # such a small library isn't worth a separate package + ]; + + enableParallelBuilding = true; + doCheck = true; + + # python is run during runtime to do various tasks + qtWrapperArgs = [ + " --prefix PATH : ${python}/bin" + ]; + + meta = with lib; { + description = "WYSIWYM frontend for LaTeX, DocBook"; + homepage = "http://www.lyx.org"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.vcunat ]; + platforms = platforms.linux; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/madonctl/default.nix b/nixpkgs/pkgs/applications/misc/madonctl/default.nix new file mode 100644 index 000000000000..2a65fc25af2f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/madonctl/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "madonctl"; + version = "1.1.0"; + + goPackagePath = "github.com/McKael/madonctl"; + + src = fetchFromGitHub { + owner = "McKael"; + repo = "madonctl"; + rev = "v${version}"; + sha256 = "1dnc1xaafhwhhf5afhb0wc2wbqq0s1r7qzj5k0xzc58my541gadc"; + }; + + # How to update: + # go get -u github.com/McKael/madonctl + # cd $GOPATH/src/github.com/McKael/madonctl + # git checkout v<version-number> + # go2nix save + + goDeps = ./deps.nix; + + meta = with lib; { + description = "CLI for the Mastodon social network API"; + homepage = "https://github.com/McKael/madonctl"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/madonctl/deps.nix b/nixpkgs/pkgs/applications/misc/madonctl/deps.nix new file mode 100644 index 000000000000..9f94bb09ce4e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/madonctl/deps.nix @@ -0,0 +1,228 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.0 +[ + { + goPackagePath = "github.com/McKael/madon"; + fetch = { + type = "git"; + url = "https://github.com/McKael/madon"; + rev = "e580cd41ac42bbb0b2ea5b3843b3f1f854db357c"; + sha256 = "0jvvfkf3wlzisvcq54xv3jxncx178ks5wxd6cx8k8215437b3hra"; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "4da3e2cfbabc9f751898f250b49f2439785783a1"; + sha256 = "1y2l9jaf99j6gidcfdgq3hifxyiwv4f7awpll80p170ixdbqxvl3"; + }; + } + { + goPackagePath = "github.com/ghodss/yaml"; + fetch = { + type = "git"; + url = "https://github.com/ghodss/yaml"; + rev = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7"; + sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "a91eba7f97777409bc2c443f5534d41dd20c5720"; + sha256 = "13cg6wwkk2ddqbm0nh9fpx4mq7f6qym12ch4lvs53n028ycdgw87"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "392dba7d905ed5d04a5794ba89f558b27e2ba1ca"; + sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb"; + }; + } + { + goPackagePath = "github.com/kr/text"; + fetch = { + type = "git"; + url = "https://github.com/kr/text"; + rev = "7cafcd837844e784b526369c9bce262804aebc60"; + sha256 = "0br693pf6vdr1sfvzdz6zxq7hjpdgci0il4wj0v636r8lyy21vsx"; + }; + } + { + goPackagePath = "github.com/m0t0k1ch1/gomif"; + fetch = { + type = "git"; + url = "https://github.com/m0t0k1ch1/gomif"; + rev = "f5864f63e1ed5a138f015cc2cb71a2e99c148d21"; + sha256 = "0djg8chax1g0m02xz84ic19758jzv5m50b7vpwjkpjk3181j5z9k"; + }; + } + { + goPackagePath = "github.com/magiconair/properties"; + fetch = { + type = "git"; + url = "https://github.com/magiconair/properties"; + rev = "51463bfca2576e06c62a8504b5c0f06d61312647"; + sha256 = "0d7hr78y8gg2mrm5z4jjgm2w3awkznz383b7wvyzk3l33jw6i288"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "fc9e8d8ef48496124e79ae0df75490096eccf6fe"; + sha256 = "1r5f9gkavkb1w6sr0qs5kj16706xirl3qnlq3hqpszkw9w27x65a"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "cc8532a8e9a55ea36402aa21efdf403a60d34096"; + sha256 = "0705c0hq7b993sabnjy65yymvpy9w1j84bg9bjczh5607z16nw86"; + }; + } + { + goPackagePath = "github.com/pelletier/go-buffruneio"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-buffruneio"; + rev = "c37440a7cf42ac63b919c752ca73a85067e05992"; + sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2"; + }; + } + { + goPackagePath = "github.com/pelletier/go-toml"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-toml"; + rev = "5c26a6ff6fd178719e15decac1c8196da0d7d6d1"; + sha256 = "0f4l7mq0nb2p2vjfjqx251s6jzkl646n1vw45chykwvv1sbad8nq"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "c605e284fe17294bda444b34710735b29d1a9d90"; + sha256 = "1izjk4msnc6wn1mclg0ypa6i31zfwb1r3032k8q4jfbd57hp0bz6"; + }; + } + { + goPackagePath = "github.com/sendgrid/rest"; + fetch = { + type = "git"; + url = "https://github.com/sendgrid/rest"; + rev = "14de1ac72d9ae5c3c0d7c02164c52ebd3b951a4e"; + sha256 = "0wrggvgnqdmhscim52hvhg77jhksprxp52sc4ipd69kasd32b5dm"; + }; + } + { + goPackagePath = "github.com/spf13/afero"; + fetch = { + type = "git"; + url = "https://github.com/spf13/afero"; + rev = "9be650865eab0c12963d8753212f4f9c66cdcf12"; + sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34"; + }; + } + { + goPackagePath = "github.com/spf13/cast"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cast"; + rev = "acbeb36b902d72a7a4c18e8f3241075e7ab763e4"; + sha256 = "0w25s6gjbbwv47b9208hysyqqphd6pib3d2phg24mjy4wigkm050"; + }; + } + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "ca5710c94eabe15aa1f74490b8e5976dc652e8c6"; + sha256 = "1z5fxh9akwn95av6ra8p6804nhyxjc63m0s6abxi3l424n30b08i"; + }; + } + { + goPackagePath = "github.com/spf13/jwalterweatherman"; + fetch = { + type = "git"; + url = "https://github.com/spf13/jwalterweatherman"; + rev = "8f07c835e5cc1450c082fe3a439cf87b0cbb2d99"; + sha256 = "1dhl6kdbyczhnsgiyc8mcb7kmxd9garx8gy3q2gx5mmv96xxzxx7"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66"; + sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2"; + }; + } + { + goPackagePath = "github.com/spf13/viper"; + fetch = { + type = "git"; + url = "https://github.com/spf13/viper"; + rev = "0967fc9aceab2ce9da34061253ac10fb99bba5b2"; + sha256 = "016syis0rvccp2indjqi1vnz3wk7c9dhkvkgam0j79sb019kl80f"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "513929065c19401a1c7b76ecd942f9f86a0c061b"; + sha256 = "19ziin0k3n45nccjbk094f61hr198wzqnas93cmcxdja8f8fz27q"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "f047394b6d14284165300fd82dad67edb3a4d7f6"; + sha256 = "1l1a2iz1nmfmzzbjj1h8066prag4jvjqh13iv1jdlh05fgv6769i"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "a2e06a18b0d52d8cb2010e04b372a1965d8e3439"; + sha256 = "0m0r2w2qk8jkdk21h52n66g4yqckmzpx3mph73cilkhvdfgwfd21"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "19e51611da83d6be54ddafce4a4af510cb3e9ea4"; + sha256 = "09pcfzx7nrma0gjv93jx57c28farf8m1qm4x07vk5505wlcgvvfl"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "cd8b52f8269e0feb286dfeef29f8fe4d5b397e0b"; + sha256 = "1hj2ag9knxflpjibck0n90jrhsrqz7qvad4qnif7jddyapi9bqzl"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/misc/makeself/default.nix b/nixpkgs/pkgs/applications/misc/makeself/default.nix new file mode 100644 index 000000000000..12d4f62a7834 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/makeself/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchFromGitHub, which, zstd, pbzip2 }: + +stdenv.mkDerivation rec { + version = "2.4.2"; + pname = "makeself"; + + src = fetchFromGitHub { + owner = "megastep"; + repo = "makeself"; + rev = "release-${version}"; + fetchSubmodules = true; + sha256 = "07cq7q71bv3fwddkp2863ylry2ivds00f8sjy8npjpdbkailxm21"; + }; + + postPatch = "patchShebangs test"; + + # Issue #110149: our default /bin/sh apparently has 32-bit math only + # (attribute busybox-sandbox-shell), and that causes problems + # when running these tests inside build, based on free disk space. + doCheck = false; + checkTarget = "test"; + checkInputs = [ which zstd pbzip2 ]; + + installPhase = '' + mkdir -p $out/{bin,share/{${pname}-${version},man/man1}} + cp makeself.lsm README.md $out/share/${pname}-${version} + cp makeself.sh $out/bin/makeself + cp makeself.1 $out/share/man/man1/ + cp makeself-header.sh $out/share/${pname}-${version} + ''; + + fixupPhase = '' + sed -e "s|^HEADER=.*|HEADER=$out/share/${pname}-${version}/makeself-header.sh|" -i $out/bin/makeself + ''; + + meta = with lib; { + homepage = "https://makeself.io"; + description = "Utility to create self-extracting packages"; + license = licenses.gpl2; + maintainers = [ maintainers.wmertens ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mako/default.nix b/nixpkgs/pkgs/applications/misc/mako/default.nix new file mode 100644 index 000000000000..8f984db7df52 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mako/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, scdoc +, systemd, pango, cairo, gdk-pixbuf +, wayland, wayland-protocols +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "mako"; + version = "1.6"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-RcPwZ5NeO9vxwPWfgj5x3wVdCYGKumnYT3ngHEAWfW0="; + }; + + nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook ]; + buildInputs = [ systemd pango cairo gdk-pixbuf wayland ]; + + mesonFlags = [ + "-Dzsh-completions=true" + "-Dsd-bus-provider=libsystemd" + ]; + + meta = with lib; { + description = "A lightweight Wayland notification daemon"; + homepage = "https://wayland.emersion.fr/mako/"; + license = licenses.mit; + maintainers = with maintainers; [ dywedir synthetica ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mapproxy/default.nix b/nixpkgs/pkgs/applications/misc/mapproxy/default.nix new file mode 100644 index 000000000000..48e2a3960ee7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mapproxy/default.nix @@ -0,0 +1,41 @@ +{ lib +, pkgs +, python3 +}: + +with python3.pkgs; +buildPythonApplication rec { + pname = "MapProxy"; + version = "1.13.0"; + src = fetchPypi { + inherit pname version; + sha256 = "0qi63ap8yi5g2cas33jv4jsmdrl6yv3qp6bh0zxrfpkb704lcng4"; + }; + prePatch = '' + substituteInPlace mapproxy/util/ext/serving.py --replace "args = [sys.executable] + sys.argv" "args = sys.argv" + ''; + propagatedBuildInputs = [ + boto3 # needed for caches service + pillow + pyyaml + pyproj + shapely + gdal + lxml + setuptools + ]; + # Tests are disabled: + # 1) Dependency list is huge. + # https://github.com/mapproxy/mapproxy/blob/master/requirements-tests.txt + # + # 2) There are security issues with package Riak + # https://github.com/NixOS/nixpkgs/issues/33876 + # https://github.com/NixOS/nixpkgs/pull/56480 + doCheck = false; + meta = with lib; { + description = "Open source proxy for geospatial data"; + homepage = "https://mapproxy.org/"; + license = licenses.asl20; + maintainers = with maintainers; [ rakesh4g ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/marktext/default.nix b/nixpkgs/pkgs/applications/misc/marktext/default.nix new file mode 100644 index 000000000000..c98d40ab2e14 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/marktext/default.nix @@ -0,0 +1,41 @@ +{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }: + +let + pname = "marktext"; + version = "v0.16.2"; +in +appimageTools.wrapType2 rec { + name = "${pname}-${version}-binary"; + + src = fetchurl { + url = "https://github.com/marktext/marktext/releases/download/${version}/marktext-x86_64.AppImage"; + sha256 = "0ivf9lvv2jk7dvxmqprzcsxgya3617xmx5bppjvik44z14b5x8r7"; + }; + + profile = '' + export LC_ALL=C.UTF-8 + '' + # Fixes file open dialog error + # GLib-GIO-ERROR **: 20:36:48.243: No GSettings schemas are installed on the system + # See https://github.com/NixOS/nixpkgs/pull/83701#issuecomment-608034097 + + '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ + p.libsecret + p.xorg.libxkbfile + ]; + + # Strip version from binary name. + extraInstallCommands = "mv $out/bin/${name} $out/bin/${pname}"; + + meta = with lib; { + description = "A simple and elegant markdown editor, available for Linux, macOS and Windows"; + homepage = "https://marktext.app"; + license = licenses.mit; + maintainers = with maintainers; [ nh2 ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix b/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix new file mode 100644 index 000000000000..72028478e6ee --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, nss, autoPatchelfHook, lib, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "masterpdfeditor"; + version = "5.7.20"; + + src = fetchurl { + url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.x86_64.tar.gz"; + sha256 = "0lyfss0r0dc6skhdlkslcdagdp9k1mi0w8n5pbrskwcd09c9mxym"; + }; + + nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ]; + + buildInputs = [ nss qtbase qtsvg sane-backends stdenv.cc.cc ]; + + dontStrip = true; + + installPhase = '' + runHook preInstall + + p=$out/opt/masterpdfeditor + mkdir -p $out/bin + + substituteInPlace masterpdfeditor5.desktop \ + --replace 'Exec=/opt/master-pdf-editor-5' "Exec=$out/bin" \ + --replace 'Path=/opt/master-pdf-editor-5' "Path=$out/bin" \ + --replace 'Icon=/opt/master-pdf-editor-5' "Icon=$out/share/pixmaps" + + install -Dm644 -t $out/share/pixmaps masterpdfeditor5.png + install -Dm644 -t $out/share/applications masterpdfeditor5.desktop + install -Dm755 -t $p masterpdfeditor5 + install -Dm644 license.txt $out/share/$name/LICENSE + ln -s $p/masterpdfeditor5 $out/bin/masterpdfeditor5 + cp -v -r stamps templates lang fonts $p + + runHook postInstall + ''; + + meta = with lib; { + description = "Master PDF Editor"; + homepage = "https://code-industry.net/free-pdf-editor/"; + license = licenses.unfreeRedistributable; + platforms = with platforms; [ "x86_64-linux" ]; + broken = true; + maintainers = with maintainers; [ cmcdragonkai ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/masterpdfeditor4/default.nix b/nixpkgs/pkgs/applications/misc/masterpdfeditor4/default.nix new file mode 100644 index 000000000000..b4b9a4d62446 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/masterpdfeditor4/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, autoPatchelfHook, lib, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "masterpdfeditor4"; + version = "4.3.89"; + + src = fetchurl { + url = "https://code-industry.net/public/master-pdf-editor-${version}_qt5.amd64.tar.gz"; + sha256 = "0k5bzlhqglskiiq86nmy18mnh5bf2w3mr9cq3pibrwn5pisxnxxc"; + }; + + nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ]; + + buildInputs = [ qtbase qtsvg sane-backends stdenv.cc.cc ]; + + installPhase = '' + runHook preInstall + + app_dir=$out/opt/masterpdfeditor4 + mkdir -p $out/bin + + substituteInPlace masterpdfeditor4.desktop \ + --replace 'Exec=/opt/master-pdf-editor-4' "Exec=$out/bin" \ + --replace 'Path=/opt/master-pdf-editor-4' "Path=$out/bin" \ + --replace 'Icon=/opt/master-pdf-editor-4' "Icon=$out/share/pixmaps" + + install -Dm644 -t $out/share/pixmaps masterpdfeditor4.png + install -Dm644 -t $out/share/applications masterpdfeditor4.desktop + install -Dm755 -t $app_dir masterpdfeditor4 + install -Dm644 license.txt $out/share/$name/LICENSE + ln -s $app_dir/masterpdfeditor4 $out/bin/masterpdfeditor4 + cp -v -r stamps templates lang fonts $app_dir + + runHook postInstall + ''; + + meta = with lib; { + description = "Master PDF Editor - version 4, without watermark"; + homepage = "https://code-industry.net/free-pdf-editor/"; + license = licenses.unfreeRedistributable; + platforms = with platforms; [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mbutil/default.nix b/nixpkgs/pkgs/applications/misc/mbutil/default.nix new file mode 100644 index 000000000000..b108d1a5647e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mbutil/default.nix @@ -0,0 +1,24 @@ +{ lib, buildPythonApplication, fetchFromGitHub, nose }: + +buildPythonApplication rec { + pname = "mbutil"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "mapbox"; + repo = pname; + rev = "v${version}"; + sha256 = "06d62r89h026asaa4ryzb23m86j0cmbvy54kf4zl5f35sgiha45z"; + }; + + checkInputs = [ nose ]; + checkPhase = "nosetests"; + + meta = with lib; { + description = "An importer and exporter for MBTiles"; + homepage = "https://github.com/mapbox/mbutil"; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mdp/default.nix b/nixpkgs/pkgs/applications/misc/mdp/default.nix new file mode 100644 index 000000000000..2c13ed4ecc9e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mdp/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, ncurses }: + +stdenv.mkDerivation rec { + version = "1.0.15"; + pname = "mdp"; + + src = fetchFromGitHub { + owner = "visit1985"; + repo = "mdp"; + rev = version; + sha256 = "1m9a0vvyw2m55cn7zcq011vrjkiaj5a3g5g6f2dpq953gyi7gff9"; + }; + + makeFlags = [ "PREFIX=$(out)" ]; + + buildInputs = [ ncurses ]; + + meta = with lib; { + homepage = "https://github.com/visit1985/mdp"; + description = "A command-line based markdown presentation tool"; + maintainers = with maintainers; [ matthiasbeyer vrthra ]; + license = licenses.gpl3; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mediaelch/default.nix b/nixpkgs/pkgs/applications/misc/mediaelch/default.nix new file mode 100644 index 000000000000..f39b88f27d7d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mediaelch/default.nix @@ -0,0 +1,43 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, qmake +, curl +, ffmpeg +, libmediainfo +, libzen +, qtbase +, qtdeclarative +, qtmultimedia +, qtsvg +, qttools +}: + +mkDerivation rec { + pname = "mediaelch"; + version = "2.8.12"; + + src = fetchFromGitHub { + owner = "Komet"; + repo = "MediaElch"; + rev = "v${version}"; + sha256 = "1gx4m9cf81d0b2nk2rlqm4misz67f5bpkjqx7d1l76rw2pwc6azf"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ qmake qttools ]; + + buildInputs = [ curl libmediainfo libzen ffmpeg qtbase qtdeclarative qtmultimedia qtsvg ]; + + prePatch = '' + substituteInPlace MediaElch.pro --replace "/usr" "$out" + ''; + + meta = with lib; { + homepage = "https://mediaelch.de/mediaelch/"; + description = "Media Manager for Kodi"; + license = licenses.lgpl3Only; + maintainers = with maintainers; [ stunkymonkey ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix new file mode 100644 index 000000000000..89d7c2df741a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, wxGTK30-gtk3 +, desktop-file-utils, libSM, imagemagick }: + +stdenv.mkDerivation rec { + version = "21.03"; + pname = "mediainfo-gui"; + src = fetchurl { + url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; + sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ libzen libmediainfo wxGTK30-gtk3 desktop-file-utils libSM + imagemagick ]; + + sourceRoot = "./MediaInfo/Project/GNU/GUI/"; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Supplies technical and tag information about a video or audio file (GUI version)"; + longDescription = '' + MediaInfo is a convenient unified display of the most relevant technical + and tag data for video and audio files. + ''; + homepage = "https://mediaarea.net/"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = [ maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mediainfo/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix new file mode 100644 index 000000000000..70f463c02364 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }: + +stdenv.mkDerivation rec { + version = "21.03"; + pname = "mediainfo"; + src = fetchurl { + url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; + sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ libzen libmediainfo zlib ]; + + sourceRoot = "./MediaInfo/Project/GNU/CLI/"; + + configureFlags = [ "--with-libmediainfo=${libmediainfo}" ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Supplies technical and tag information about a video or audio file"; + longDescription = '' + MediaInfo is a convenient unified display of the most relevant technical + and tag data for video and audio files. + ''; + homepage = "https://mediaarea.net/"; + license = licenses.bsd2; + platforms = platforms.unix; + maintainers = [ maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/megacmd/default.nix b/nixpkgs/pkgs/applications/misc/megacmd/default.nix new file mode 100644 index 000000000000..9a8d26cc70ef --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/megacmd/default.nix @@ -0,0 +1,90 @@ +{ lib +, stdenv +, autoconf +, automake +, c-ares +, cryptopp +, curl +, fetchFromGitHub + # build fails with latest ffmpeg, see https://github.com/meganz/MEGAcmd/issues/523. + # to be re-enabled when patch available + # , ffmpeg +, freeimage +, gcc-unwrapped +, libmediainfo +, libraw +, libsodium +, libtool +, libuv +, libzen +, pcre-cpp +, pkg-config +, readline +, sqlite +}: + +stdenv.mkDerivation rec { + pname = "megacmd"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "meganz"; + repo = "MEGAcmd"; + rev = "${version}_Linux"; + sha256 = "sha256-Q1SZSDTPGgBA/W/ZVYfTQsiP41RE1LJ+esQ3PK9EjIc="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + autoconf + automake + libtool + pkg-config + ]; + + buildInputs = [ + c-ares + cryptopp + curl + # ffmpeg + freeimage + gcc-unwrapped + libmediainfo + libraw + libsodium + libuv + libzen + pcre-cpp + readline + sqlite + ]; + + preConfigure = '' + ./autogen.sh + ''; + + configureFlags = [ + "--disable-curl-checks" + "--disable-examples" + "--with-cares" + "--with-cryptopp" + "--with-curl" + # "--with-ffmpeg" + "--with-freeimage" + "--with-libmediainfo" + "--with-libuv" + "--with-libzen" + "--with-pcre" + "--with-readline" + "--with-sodium" + "--with-termcap" + ]; + + meta = with lib; { + description = "MEGA Command Line Interactive and Scriptable Application"; + homepage = "https://mega.nz/cmd"; + license = with licenses; [ bsd2 gpl3Only ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + maintainers = with maintainers; [ lunik1 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/megasync/default.nix b/nixpkgs/pkgs/applications/misc/megasync/default.nix new file mode 100644 index 000000000000..07dc364fe0bb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/megasync/default.nix @@ -0,0 +1,128 @@ +{ lib +, stdenv +, autoconf +, automake +, c-ares +, cryptopp +, curl +, doxygen +, fetchFromGitHub + #, ffmpeg +, libmediainfo +, libraw +, libsodium +, libtool +, libuv +, libzen +, lsb-release +, mkDerivation +, pkg-config +, qtbase +, qttools +, qtx11extras +, sqlite +, swig +, unzip +, wget +}: +mkDerivation rec { + pname = "megasync"; + version = "4.4.0.0"; + + src = fetchFromGitHub { + owner = "meganz"; + repo = "MEGAsync"; + rev = "v${version}_Linux"; + sha256 = "1xggca7283943070mmpsfhh7c9avy809h0kgmf7497f4ca5zkg2y"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + autoconf + automake + doxygen + libtool + lsb-release + pkg-config + qttools + swig + unzip + ]; + buildInputs = [ + c-ares + cryptopp + curl + # temporarily disable until patched for ffmpeg 4.4 + #ffmpeg + libmediainfo + libraw + libsodium + libuv + libzen + qtbase + qtx11extras + sqlite + wget + ]; + + patches = [ + # Distro and version targets attempt to use lsb_release which is broken + # (see issue: https://github.com/NixOS/nixpkgs/issues/22729) + ./noinstall-distro-version.patch + # megasync target is not part of the install rule thanks to a commented block + ./install-megasync.patch + ]; + + postPatch = '' + for file in $(find src/ -type f \( -iname configure -o -iname \*.sh \) ); do + substituteInPlace "$file" --replace "/bin/bash" "${stdenv.shell}" + done + ''; + + dontUseQmakeConfigure = true; + enableParallelBuilding = true; + + preConfigure = '' + cd src/MEGASync/mega + ./autogen.sh + ''; + + configureFlags = [ + "--disable-examples" + "--disable-java" + "--disable-php" + "--enable-chat" + "--with-cares" + "--with-cryptopp" + "--with-curl" + # temporarily disable until patched for ffmpeg 4.4 + #"--with-ffmpeg" + "--without-freeimage" # unreferenced even when found + "--without-readline" + "--without-termcap" + "--with-sodium" + "--with-sqlite" + "--with-zlib" + ]; + + postConfigure = '' + cd ../.. + ''; + + preBuild = '' + qmake CONFIG+="release" MEGA.pro + pushd MEGASync + lrelease MEGASync.pro + DESKTOP_DESTDIR="$out" qmake PREFIX="$out" -o Makefile MEGASync.pro CONFIG+=release + popd + ''; + + meta = with lib; { + description = + "Easy automated syncing between your computers and your MEGA Cloud Drive"; + homepage = "https://mega.nz/"; + license = licenses.unfree; + platforms = [ "i686-linux" "x86_64-linux" ]; + maintainers = [ maintainers.michojel ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/megasync/install-megasync.patch b/nixpkgs/pkgs/applications/misc/megasync/install-megasync.patch new file mode 100644 index 000000000000..7d8748528e7f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/megasync/install-megasync.patch @@ -0,0 +1,21 @@ +Index: source/src/MEGASync/MEGASync.pro +=================================================================== +--- source.orig/src/MEGASync/MEGASync.pro ++++ source/src/MEGASync/MEGASync.pro +@@ -28,11 +28,11 @@ unix:!macx { + TARGET = megasync + + # Uncomment the following if "make install" doesn't copy megasync in /usr/bin directory +-# isEmpty(PREFIX) { +-# PREFIX = /usr +-# } +-# target.path = $$PREFIX/bin +-# INSTALLS += target ++ isEmpty(PREFIX) { ++ PREFIX = /usr ++ } ++ target.path = $$PREFIX/bin ++ INSTALLS += target + } + else { + TARGET = MEGAsync diff --git a/nixpkgs/pkgs/applications/misc/megasync/noinstall-distro-version.patch b/nixpkgs/pkgs/applications/misc/megasync/noinstall-distro-version.patch new file mode 100644 index 000000000000..bbf100737bc4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/megasync/noinstall-distro-version.patch @@ -0,0 +1,13 @@ +Index: source/src/MEGASync/platform/platform.pri +=================================================================== +--- source.orig/src/MEGASync/platform/platform.pri ++++ source/src/MEGASync/platform/platform.pri +@@ -37,7 +37,7 @@ unix:!macx { + system(command -v lsb_release): version.commands = lsb_release -rs > $$version.target + version.files = $$version.target + +- INSTALLS += distro version ++ # INSTALLS += distro version + + QT += dbus + SOURCES += $$PWD/linux/LinuxPlatform.cpp \ diff --git a/nixpkgs/pkgs/applications/misc/memo/default.nix b/nixpkgs/pkgs/applications/misc/memo/default.nix new file mode 100644 index 000000000000..885e5466f8b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/memo/default.nix @@ -0,0 +1,52 @@ +{ fetchFromGitHub, silver-searcher, tree, man, lib, stdenv, + git, + pandocSupport ? true, pandoc ? null + , ... }: + +assert pandocSupport -> pandoc != null; + +stdenv.mkDerivation rec { + + pname = "memo"; + + version = "0.8"; + + src = fetchFromGitHub { + owner = "mrVanDalo"; + repo = "memo"; + rev = version; + sha256 = "0azx2bx6y7j0637fg3m8zigcw09zfm2mw9wjfg218sx88cm1wdkp"; + }; + + installPhase = let + pandocReplacement = if pandocSupport then + "pandoc_cmd=${pandoc}/bin/pandoc" + else + "#pandoc_cmd=pandoc"; + in '' + mkdir -p $out/{bin,share/man/man1,share/bash-completion/completions,share/zsh/site-functions} + substituteInPlace memo \ + --replace "ack_cmd=ack" "ack_cmd=${silver-searcher}/bin/ag" \ + --replace "tree_cmd=tree" "tree_cmd=${tree}/bin/tree" \ + --replace "man_cmd=man" "man_cmd=${man}/bin/man" \ + --replace "git_cmd=git" "git_cmd=${git}/bin/git" \ + --replace "pandoc_cmd=pandoc" "${pandocReplacement}" + mv memo $out/bin/ + mv doc/memo.1 $out/share/man/man1/memo.1 + mv completion/bash/memo.sh $out/share/bash-completion/completions/memo.sh + mv completion/zsh/_memo $out/share/zsh/site-functions/_memo + ''; + + meta = { + description = "A simple tool written in bash to memorize stuff"; + longDescription = '' + A simple tool written in bash to memorize stuff. + Memo organizes is structured through topics which are folders in ~/memo. + ''; + homepage = "http://palovandalo.com/memo/"; + downloadPage = "https://github.com/mrVanDalo/memo/releases"; + license = lib.licenses.gpl3; + maintainers = [ lib.maintainers.mrVanDalo ]; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mencal/default.nix b/nixpkgs/pkgs/applications/misc/mencal/default.nix new file mode 100644 index 000000000000..806d6a53cfaa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mencal/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, perl }: + +stdenv.mkDerivation rec { + name = "mencal-3.0"; + + src = fetchurl { + url = "http://kyberdigi.cz/projects/mencal/files/${name}.tar.gz"; + sha256 = "9328d0b2f3f57847e8753c5184531f4832be7123d1b6623afdff892074c03080"; + }; + + installPhase = '' + mkdir -p $out/bin + cp mencal $out/bin/ + ''; + + buildInputs = [ perl ]; + + meta = with lib; { + description = "Menstruation calendar"; + longDescription = '' + Mencal is a simple variation of the well-known unix command cal. + The main difference is that you can have some periodically repeating + days highlighted in color. This can be used to track + menstruation (or other) cycles conveniently. + ''; + homepage = "http://www.kyberdigi.cz/projects/mencal/english.html"; + license = licenses.gpl2; + maintainers = [ maintainers.mmahut ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/menumaker/default.nix b/nixpkgs/pkgs/applications/misc/menumaker/default.nix new file mode 100644 index 000000000000..086db35a5ad5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/menumaker/default.nix @@ -0,0 +1,21 @@ +{ lib, fetchurl, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + pname = "menumaker"; + version = "0.99.12"; + + src = fetchurl { + url = "mirror://sourceforge/menumaker/${pname}-${version}.tar.gz"; + sha256 = "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3"; + }; + + format = "other"; + + meta = with lib; { + description = "Heuristics-driven menu generator for several window managers"; + homepage = "http://menumaker.sourceforge.net"; + license = licenses.bsd2; + platforms = platforms.unix; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/merkaartor/default.nix b/nixpkgs/pkgs/applications/misc/merkaartor/default.nix new file mode 100644 index 000000000000..010d28eef591 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/merkaartor/default.nix @@ -0,0 +1,75 @@ +{ mkDerivation +, lib +, stdenv +, fetchFromGitHub +, fetchpatch +, qmake +, qttools +, qttranslations +, gdal +, proj +, qtsvg +, qtwebkit +, withGeoimage ? true, exiv2 +, withGpsdlib ? (!stdenv.isDarwin), gpsd +, withLibproxy ? false, libproxy +, withZbar ? false, zbar +}: + +mkDerivation rec { + pname = "merkaartor"; + version = "0.18.4"; + + src = fetchFromGitHub { + owner = "openstreetmap"; + repo = "merkaartor"; + rev = version; + sha256 = "vwO4/a7YF9KbpxcFGTFCdG6SfwEyhISlEtcA+rMebUA="; + }; + + patches = [ + # Fix build with Qt 5.15 (missing QPainterPath include) + (fetchpatch { + url = "https://github.com/openstreetmap/merkaartor/commit/e72553a7ea2c7ba0634cc3afcd27a9f7cfef089c.patch"; + sha256 = "NAisplnS3xHSlRpX+fH15NpbaD+uM57OCsTYGKlIR7U="; + }) + # Added a condition to use the new timespec_t on gpsd APIs >= 9 + (fetchpatch { + url = "https://github.com/openstreetmap/merkaartor/commit/13b358fa7899bb34e277b32a4c0d92833050f2c6.patch"; + sha256 = "129fpjm7illz7ngx3shps5ivrxwf14apw55842xhskwwb0rf5szb"; + }) + ]; + + nativeBuildInputs = [ qmake qttools ]; + + buildInputs = [ gdal proj qtsvg qtwebkit ] + ++ lib.optional withGeoimage exiv2 + ++ lib.optional withGpsdlib gpsd + ++ lib.optional withLibproxy libproxy + ++ lib.optional withZbar zbar; + + preConfigure = '' + lrelease src/src.pro + ''; + + qmakeFlags = [ "TRANSDIR_SYSTEM=${qttranslations}/translations" ] + ++ lib.optional withGeoimage "GEOIMAGE=1" + ++ lib.optional withGpsdlib "GPSDLIB=1" + ++ lib.optional withLibproxy "LIBPROXY=1" + ++ lib.optional withZbar "ZBAR=1"; + + postInstall = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + mv binaries/bin/merkaartor.app $out/Applications + mv binaries/bin/plugins $out/Applications/merkaartor.app/Contents + wrapQtApp $out/Applications/merkaartor.app/Contents/MacOS/merkaartor + ''; + + meta = with lib; { + description = "OpenStreetMap editor"; + homepage = "http://merkaartor.be/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix new file mode 100644 index 000000000000..46da03b8a882 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix @@ -0,0 +1,61 @@ +{ lib +, python3 +, fetchFromGitLab +, appstream +, desktop-file-utils +, glib +, gobject-introspection +, gtk3 +, libhandy +, librsvg +, meson +, ninja +, pkg-config +, poppler_gi +, wrapGAppsHook +}: + +python3.pkgs.buildPythonApplication rec { + pname = "metadata-cleaner"; + version = "1.0.7"; + + format = "other"; + + src = fetchFromGitLab { + owner = "rmnvgr"; + repo = "metadata-cleaner"; + rev = "v${version}"; + sha256 = "sha256-HlP/QahVFCAct06pKanjozFqeyTdHoHanIemq5ID2CQ="; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + glib + gtk3 + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + gobject-introspection + gtk3 + libhandy + librsvg + poppler_gi + ]; + + propagatedBuildInputs = with python3.pkgs; [ + mat2 + pygobject3 + ]; + + meta = with lib; { + description = "Python GTK application to view and clean metadata in files, using mat2"; + homepage = "https://gitlab.com/rmnvgr/metadata-cleaner"; + license = with licenses; [ gpl3Plus cc-by-sa-40 ]; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix b/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix new file mode 100644 index 000000000000..277d00fe050b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchgit, makeWrapper, gettext +, python27, python2Packages +}: + +stdenv.mkDerivation { + pname = "metamorphose2"; + version = "0.9.0beta"; + + # exif-py vendored via submodule + # mutagen vendored via copy + src = fetchgit { + url = "https://github.com/metamorphose/metamorphose2.git"; + #rev = "refs/tags/v2.${version}"; #for when wxPython3 support is released + rev = "d2bdd6a86340b9668e93b35a6a568894c9909d68"; + sha256 = "0ivcb3c8hidrff0ivl4dnwa2p3ihpqjdbvdig8dhg9mm5phdbabn"; + }; + + postPatch = '' + substituteInPlace messages/Makefile \ + --replace "\$(shell which msgfmt)" "${gettext}/bin/msgfmt" + ''; + + postInstall = '' + rm $out/bin/metamorphose2 + makeWrapper ${python27}/bin/python $out/bin/metamorphose2 \ + --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ + --add-flags "-O $out/share/metamorphose2/metamorphose2.py -w=3" + ''; + + buildInput = [ gettext python27 ]; + nativeBuildInputs = [ makeWrapper ]; + propagatedBuildInputs = [ python2Packages.wxPython python2Packages.pillow ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "a graphical mass renaming program for files and folders"; + homepage = "https://github.com/metamorphose/metamorphose2"; + license = with licenses; gpl3Plus; + maintainers = with maintainers; [ ramkromberg ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/metar/default.nix b/nixpkgs/pkgs/applications/misc/metar/default.nix new file mode 100644 index 000000000000..d9e1922f1c48 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/metar/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchgit, curl }: + +stdenv.mkDerivation { + name = "metar-20161013.1"; + + src = fetchgit { + url = "https://github.com/keesL/metar.git"; + rev = "20e9ca69faea330f6c2493b6829131c24cb55147"; + sha256 = "1fgrlnpasqf1ihh9y6zy6mzzybqx0lxvh7gmv03rjdb55dr42dxj"; + }; + + buildInputs = [ curl ]; + + meta = with lib; { + homepage = "https://github.com/keesL/metar"; + license = licenses.gpl2; + maintainers = [ maintainers.zalakain ]; + description = "Downloads weather reports and optionally decodes them"; + longDescription = '' + METAR reports are meteorogical weather reports for aviation. Metar is a small + program which downloads weather reports for user-specified stations and + optionally decodes them into a human-readable format. + + Currently, metar supports decoding date/time, wind, visibility, cloud layers, + temperature, air pressure and weather phenomena, such as rain, fog, etc. Also, + more work in the area of clouds need to be done, as support for Cumulus or + Cumulunimbus is not yet decoded. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/michabo/default.nix b/nixpkgs/pkgs/applications/misc/michabo/default.nix new file mode 100644 index 000000000000..015a326fdc9b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/michabo/default.nix @@ -0,0 +1,53 @@ +{ lib +, mkDerivation +, makeDesktopItem +, fetchFromGitLab +, qmake +# qt +, qtbase +, qtwebsockets +}: + +let + desktopItem = makeDesktopItem { + type = "Application"; + name = "Michabo"; + desktopName = "Michabo"; + exec = "Michabo"; + }; + +in mkDerivation rec { + pname = "michabo"; + version = "0.1"; + + src = fetchFromGitLab { + domain = "git.pleroma.social"; + owner = "kaniini"; + repo = "michabo"; + rev = "v${version}"; + sha256 = "0pl4ymdb36r0kwlclfjjp6b1qml3fm9ql7ag5inprny5y8vcjpzn"; + }; + + nativeBuildInputs = [ + qmake + ]; + buildInputs = [ + qtbase + qtwebsockets + ]; + + qmakeFlags = [ "michabo.pro" "DESTDIR=${placeholder "out"}/bin" ]; + + postInstall = '' + ln -s ${desktopItem}/share $out/share + ''; + + meta = with lib; { + description = "A native desktop app for Pleroma and Mastodon servers"; + homepage = "https://git.pleroma.social/kaniini/michabo"; + license = licenses.gpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/milu/default.nix b/nixpkgs/pkgs/applications/misc/milu/default.nix new file mode 100644 index 000000000000..a941f6251498 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/milu/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchFromGitHub, unzip, pkg-config, glib, llvmPackages }: + +stdenv.mkDerivation { + pname = "milu-nightly"; + version = "2016-05-09"; + + src = fetchFromGitHub { + sha256 = "14cglw04cliwlpvw7qrs6rfm5sv6qa558d7iby5ng3wdjcwx43nk"; + rev = "b5f2521859c0319d321ad3c1ad793b826ab5f6e1"; + repo = "Milu"; + owner = "yuejia"; + }; + + hardeningDisable = [ "format" ]; + + preConfigure = '' + sed -i 's#/usr/bin/##g' Makefile + ''; + + installPhase = '' + mkdir -p $out/bin + cp bin/milu $out/bin + ''; + + nativeBuildInputs = [ pkg-config unzip ]; + buildInputs = [ + glib + llvmPackages.libclang + ]; + + meta = { + description = "Higher Order Mutation Testing Tool for C and C++ programs"; + homepage = "https://github.com/yuejia/Milu"; + license = lib.licenses.bsd2; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.vrthra ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/minder/default.nix b/nixpkgs/pkgs/applications/misc/minder/default.nix new file mode 100644 index 000000000000..16fa17609e1e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/minder/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchFromGitHub +, pkg-config, meson, ninja, python3 +, wrapGAppsHook, vala, shared-mime-info +, cairo, pantheon, glib, gtk3, libxml2, libgee, libarchive +, discount, gtksourceview3 +, hicolor-icon-theme # for setup-hook +}: + +stdenv.mkDerivation rec { + pname = "minder"; + version = "1.11.3"; + + src = fetchFromGitHub { + owner = "phase1geo"; + repo = pname; + rev = version; + sha256 = "137kyf82n5a2v0cm9q02rhv8rmbjgnj60h64prq90h0d42prj3gd"; + }; + + nativeBuildInputs = [ pkg-config meson ninja python3 wrapGAppsHook vala shared-mime-info ]; + buildInputs = [ cairo pantheon.granite glib gtk3 libxml2 libgee libarchive hicolor-icon-theme discount gtksourceview3 ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + postFixup = '' + for x in $out/bin/*; do + ln -vrs $x "$out/bin/''${x##*.}" + done + ''; + + meta = with lib; { + description = "Mind-mapping application for Elementary OS"; + homepage = "https://github.com/phase1geo/Minder"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ dtzWill ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix b/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix new file mode 100644 index 000000000000..0fe4103f613c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix @@ -0,0 +1,36 @@ +{ fetchurl, lib, stdenv, dpkg, makeWrapper, openssl }: + +stdenv.mkDerivation { + version = "8.2"; + pname = "minergate-cli"; + src = fetchurl { + url = "https://minergate.com/download/ubuntu-cli"; + sha256 = "393c5ba236f6f92c449496fcda9509f4bfd3887422df98ffa59b3072124a99d8"; + }; + + nativeBuildInputs = [ dpkg makeWrapper ]; + + phases = [ "installPhase" ]; + + installPhase = '' + dpkg-deb -x $src $out + pgm=$out/opt/minergate-cli/minergate-cli + + interpreter=${stdenv.glibc}/lib/ld-linux-x86-64.so.2 + patchelf --set-interpreter "$interpreter" $pgm + + wrapProgram $pgm --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl stdenv.cc.cc ]} + + rm $out/usr/bin/minergate-cli + mkdir -p $out/bin + ln -s $pgm $out/bin + ''; + + meta = with lib; { + description = "Minergate CPU/GPU console client mining software"; + homepage = "https://www.minergate.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ bfortz ]; + platforms = [ "x86_64-linux" ]; +}; +} diff --git a/nixpkgs/pkgs/applications/misc/minergate/default.nix b/nixpkgs/pkgs/applications/misc/minergate/default.nix new file mode 100644 index 000000000000..f6ec20b0df7e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/minergate/default.nix @@ -0,0 +1,36 @@ +{ fetchurl, lib, stdenv, dpkg, makeWrapper, fontconfig, freetype, openssl, xorg, xkeyboard_config }: + +stdenv.mkDerivation { + version = "8.1"; + pname = "minergate"; + src = fetchurl { + url = "https://minergate.com/download/ubuntu"; + sha256 = "1dbbbb8e0735cde239fca9e82c096dcc882f6cecda20bba7c14720a614c16e13"; + }; + + nativeBuildInputs = [ dpkg makeWrapper ]; + + phases = [ "installPhase" ]; + + installPhase = '' + dpkg-deb -x $src $out + pgm=$out/opt/minergate/minergate + + interpreter=${stdenv.glibc}/lib/ld-linux-x86-64.so.2 + patchelf --set-interpreter "$interpreter" $pgm + + wrapProgram $pgm --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ fontconfig freetype openssl stdenv.cc.cc xorg.libX11 xorg.libxcb ]} --prefix "QT_XKB_CONFIG_ROOT" ":" "${xkeyboard_config}/share/X11/xkb" + + rm $out/usr/bin/minergate + mkdir -p $out/bin + ln -s $out/opt/minergate/minergate $out/bin + ''; + + meta = with lib; { + description = "Minergate CPU/GPU mining software"; + homepage = "https://www.minergate.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ bfortz ]; + platforms = [ "x86_64-linux" ]; +}; +} diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch b/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch new file mode 100644 index 000000000000..2aced4452062 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch @@ -0,0 +1,46 @@ +--- a/build.xml (revision 4555) ++++ a/build.xml (working copy) +@@ -222,13 +222,13 @@ + <property name="svn.version.build" value="none"/> + + <propertyfile file="${build.classes}/mkgmap-version.properties"> +- <entry key="svn.version" value="${svn.version.build}" /> +- <entry key="build.timestamp" value="${build.timestamp}" /> ++ <entry key="svn.version" value="@version@" /> ++ <entry key="build.timestamp" value="unknown" /> + </propertyfile> + </target> + + <!-- Compile the product itself (no tests). --> +- <target name="compile" depends="prepare, resolve-compile" ++ <target name="compile" depends="prepare" + description="main compilation"> + + <javac srcdir="${src}" destdir="${build.classes}" encoding="utf-8" debug="true" includeantruntime="false"> +@@ -263,7 +263,7 @@ + </target> + + <!-- Compile the test classes --> +- <target name="build-test" depends="build, resolve-test"> ++ <target name="build-test" depends="build"> + <mkdir dir="${build.test}" /> + <javac srcdir="${test}" destdir="${build.test}" encoding="utf-8" debug="true" includeantruntime="false"> + <include name="**/*.java" /> +@@ -271,7 +271,7 @@ + </javac> + </target> + +- <target name="test" depends="build-test, obtain-test-input-files" description="Run the junit tests"> ++ <target name="test" depends="build-test" description="Run the junit tests"> + <mkdir dir="tmp/report"/> + <junit printsummary="yes" failureproperty="junit.failure" forkmode="once"> + +@@ -351,7 +351,7 @@ + ignoreerrors="true"/> + </target> + +- <target name="dist" depends="build, check-version, version-file" ++ <target name="dist" depends="build, version-file" + description="Make the distribution area"> + + <mkdir dir="${dist}"/> diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/default.nix b/nixpkgs/pkgs/applications/misc/mkgmap/default.nix new file mode 100644 index 000000000000..f82881eb5bdf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/default.nix @@ -0,0 +1,81 @@ +{ lib, stdenv +, fetchurl +, substituteAll +, jdk +, jre +, ant +, makeWrapper +, doCheck ? true +, withExamples ? false +}: +let + deps = import ./deps.nix { inherit fetchurl; }; + testInputs = import ./testinputs.nix { inherit fetchurl; }; +in +stdenv.mkDerivation rec { + pname = "mkgmap"; + version = "4608"; + + src = fetchurl { + url = "http://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz"; + sha256 = "uj/iZZHML4nqEKdFBQSDdegkalZFJdzEE4xQrOruEp0="; + }; + + patches = [ + (substituteAll { + # Disable automatic download of dependencies + src = ./build.xml.patch; + inherit version; + }) + ]; + + postPatch = with deps; '' + mkdir -p lib/compile + cp ${fastutil} lib/compile/${fastutil.name} + cp ${osmpbf} lib/compile/${osmpbf.name} + cp ${protobuf} lib/compile/${protobuf.name} + '' + lib.optionalString doCheck '' + mkdir -p lib/test + cp ${fastutil} lib/test/${fastutil.name} + cp ${osmpbf} lib/test/${osmpbf.name} + cp ${protobuf} lib/test/${protobuf.name} + cp ${jaxb-api} lib/test/${jaxb-api.name} + cp ${junit} lib/test/${junit.name} + cp ${hamcrest-core} lib/test/${hamcrest-core.name} + + mkdir -p test/resources/in/img + ${lib.concatMapStringsSep "\n" (res: '' + cp ${res} test/resources/in/${builtins.replaceStrings [ "__" ] [ "/" ] res.name} + '') testInputs} + ''; + + nativeBuildInputs = [ jdk ant makeWrapper ]; + + buildPhase = "ant"; + + inherit doCheck; + + checkPhase = "ant test"; + + installPhase = '' + install -Dm644 dist/mkgmap.jar -t $out/share/java/mkgmap + install -Dm644 dist/doc/mkgmap.1 -t $out/share/man/man1 + cp -r dist/lib/ $out/share/java/mkgmap/ + makeWrapper ${jre}/bin/java $out/bin/mkgmap \ + --add-flags "-jar $out/share/java/mkgmap/mkgmap.jar" + '' + lib.optionalString withExamples '' + mkdir -p $out/share/mkgmap + cp -r dist/examples $out/share/mkgmap/ + ''; + + passthru.updateScript = [ ./update.sh "mkgmap" meta.downloadPage ]; + + meta = with lib; { + description = "Create maps for Garmin GPS devices from OpenStreetMap (OSM) data"; + homepage = "http://www.mkgmap.org.uk"; + downloadPage = "http://www.mkgmap.org.uk/download/mkgmap.html"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix b/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix new file mode 100644 index 000000000000..22b5410d6bbc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/deps.nix @@ -0,0 +1,31 @@ +{ fetchurl }: +{ + fastutil = fetchurl { + url = "http://ivy.mkgmap.org.uk/repo/it.unimi.dsi/fastutil/6.5.15-mkg.1b/jars/fastutil.jar"; + sha256 = "0d88m0rpi69wgxhnj5zh924q4zsvxq8m4ybk7m9mr3gz1hx0yx8c"; + }; + osmpbf = fetchurl { + url = "http://ivy.mkgmap.org.uk/repo/crosby/osmpbf/1.3.3/jars/osmpbf.jar"; + sha256 = "0zb4pqkwly5z30ww66qhhasdhdrzwmrw00347yrbgyk2ii4wjad3"; + }; + protobuf = fetchurl { + url = "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar"; + sha256 = "0x6c4pbsizvk3lm6nxcgi1g2iqgrxcna1ip74lbn01f0fm2wdhg0"; + }; + xpp3 = fetchurl { + url = "https://repo1.maven.org/maven2/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar"; + sha256 = "1f9ifnxxj295xb1494jycbfm76476xm5l52p7608gf0v91d3jh83"; + }; + jaxb-api = fetchurl { + url = "https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar"; + sha256 = "00rxpc0m30d3jc572ni01ryxq8gcbnr955xsabrijg9pknc0fc48"; + }; + junit = fetchurl { + url = "https://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar"; + sha256 = "1zh6klzv8w30dx7jg6pkhllk4587av4znflzhxz8x97c7rhf3a4h"; + }; + hamcrest-core = fetchurl { + url = "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"; + sha256 = "1sfqqi8p5957hs9yik44an3lwpv8ln2a6sh9gbgli4vkx68yzzb6"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch new file mode 100644 index 000000000000..a028dbef0314 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch @@ -0,0 +1,54 @@ +--- a/build.xml (revision 597) ++++ a/build.xml (working copy) +@@ -207,12 +207,12 @@ + <property name="svn.version.build" value="unknown"/> + + <propertyfile file="${build.classes}/splitter-version.properties"> +- <entry key="svn.version" value="${svn.version.build}" /> +- <entry key="build.timestamp" value="${build.timestamp}" /> ++ <entry key="svn.version" value="@version@" /> ++ <entry key="build.timestamp" value="unknown" /> + </propertyfile> + </target> + +- <target name="compile" depends="prepare, resolve-compile" description="main compilation"> ++ <target name="compile" depends="prepare" description="main compilation"> + <javac srcdir="${src}" destdir="${build.classes}" debug="yes" includeantruntime="false"> + <include name="**/*.java"/> + <classpath refid="classpath"/> +@@ -219,7 +219,7 @@ + </javac> + </target> + +- <target name="compile.tests" depends="prepare, resolve-test" description="test compilation"> ++ <target name="compile.tests" depends="prepare" description="test compilation"> + <javac srcdir="${test}" destdir="${build.test-classes}" debug="yes" includeantruntime="false"> + <include name="**/*.java"/> + <classpath refid="test.classpath"/> +@@ -261,7 +261,7 @@ + <fail if="junit.failure" message="Test failed. See test-reports/index.html"/> + </target> + +- <target name="dist" depends="build, check-version, version-file" description="Make the distribution area"> ++ <target name="dist" depends="build, version-file" description="Make the distribution area"> + + <mkdir dir="${dist}"/> + <mkdir dir="${dist}/doc/api"/> +@@ -324,7 +324,7 @@ + </target> + + <!-- Main --> +- <target name="build" depends="compile,compile.tests,run.tests"> ++ <target name="build" depends="compile"> + <copy todir="${build.classes}"> + <fileset dir="${resources}"> + <include name="*.properties"/> +@@ -349,7 +349,7 @@ + ignoreerrors="true"/> + </target> + +- <target name="run.func-tests" depends="compile,compile.tests,obtain-test-input-files" description="Run the functional tests"> ++ <target name="run.func-tests" depends="compile,compile.tests" description="Run the functional tests"> + <mkdir dir="tmp/report"/> + <junit printsummary="yes" failureproperty="junit.failure" forkmode="once"> + diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix new file mode 100644 index 000000000000..c78d81771caa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix @@ -0,0 +1,77 @@ +{ lib, stdenv +, fetchurl +, substituteAll +, jdk +, jre +, ant +, makeWrapper +, doCheck ? true +}: +let + deps = import ../deps.nix { inherit fetchurl; }; + testInputs = import ./testinputs.nix { inherit fetchurl; }; +in +stdenv.mkDerivation rec { + pname = "splitter"; + version = "598"; + + src = fetchurl { + url = "http://www.mkgmap.org.uk/download/splitter-r${version}-src.tar.gz"; + sha256 = "gpbJpDBXA9tmSmx9oKLa7xWtIOHBTYd1iPPgNTC2C2M="; + }; + + patches = [ + (substituteAll { + # Disable automatic download of dependencies + src = ./build.xml.patch; + inherit version; + }) + + # Fix func.SolverAndProblemGeneratorTest test + ./fix-failing-test.patch + ]; + + postPatch = with deps; '' + mkdir -p lib/compile + cp ${fastutil} lib/compile/${fastutil.name} + cp ${osmpbf} lib/compile/${osmpbf.name} + cp ${protobuf} lib/compile/${protobuf.name} + cp ${xpp3} lib/compile/${xpp3.name} + '' + lib.optionalString doCheck '' + mkdir -p lib/test + cp ${junit} lib/test/${junit.name} + cp ${hamcrest-core} lib/test/${hamcrest-core.name} + + mkdir -p test/resources/in/osm + ${lib.concatMapStringsSep "\n" (res: '' + cp ${res} test/resources/in/${builtins.replaceStrings [ "__" ] [ "/" ] res.name} + '') testInputs} + ''; + + nativeBuildInputs = [ jdk ant makeWrapper ]; + + buildPhase = "ant"; + + inherit doCheck; + + checkPhase = "ant run.tests && ant run.func-tests"; + + installPhase = '' + install -Dm644 dist/splitter.jar -t $out/share/java/splitter + install -Dm644 doc/splitter.1 -t $out/share/man/man1 + cp -r dist/lib/ $out/share/java/splitter/ + makeWrapper ${jre}/bin/java $out/bin/splitter \ + --add-flags "-jar $out/share/java/splitter/splitter.jar" + ''; + + passthru.updateScript = [ ../update.sh "mkgmap-splitter" meta.downloadPage ]; + + meta = with lib; { + description = "Utility for splitting OpenStreetMap maps into tiles"; + homepage = "http://www.mkgmap.org.uk"; + downloadPage = "http://www.mkgmap.org.uk/download/splitter.html"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/fix-failing-test.patch b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/fix-failing-test.patch new file mode 100644 index 000000000000..9248fb025361 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/fix-failing-test.patch @@ -0,0 +1,11 @@ +--- a/test/func/SolverAndProblemGeneratorTest.java (revision 597) ++++ a/test/func/SolverAndProblemGeneratorTest.java (working copy) +@@ -89,7 +89,7 @@ + for (String l : lines) { + realSize += l.length(); + } +- assertEquals(f + " has wrong size", expectedSize, realSize); ++ //assertEquals(f + " has wrong size", expectedSize, realSize); + } + } + diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/testinputs.nix b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/testinputs.nix new file mode 100644 index 000000000000..ab81b07ed8dd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/testinputs.nix @@ -0,0 +1,18 @@ +{ fetchurl }: +let + fetchTestInput = { res, sha256 }: fetchurl { + inherit sha256; + url = "http://www.mkgmap.org.uk/testinput/${res}"; + name = builtins.replaceStrings [ "/" ] [ "__" ] res; + }; +in +[ + (fetchTestInput { + res = "osm/alaska-2016-12-27.osm.pbf"; + sha256 = "0hmb5v71a1bxgvrg1cbfj5l27b3vvdazs4pyggpmhcdhbwpw7ppm"; + }) + (fetchTestInput { + res = "osm/hamburg-2016-12-26.osm.pbf"; + sha256 = "08bny4aavwm3z2114q99fv3fi2w905zxi0fl7bqgjyhgk0fxjssf"; + }) +] diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/testinputs.nix b/nixpkgs/pkgs/applications/misc/mkgmap/testinputs.nix new file mode 100644 index 000000000000..0c4516190e00 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/testinputs.nix @@ -0,0 +1,66 @@ +{ fetchurl }: +let + fetchTestInput = { res, sha256 }: fetchurl { + inherit sha256; + url = "http://www.mkgmap.org.uk/testinput/${res}"; + name = builtins.replaceStrings [ "/" ] [ "__" ] res; + }; +in +[ + (fetchTestInput { + res = "osm/lon1.osm.gz"; + sha256 = "1r8sl67hayjgybxy9crqwp7f1w0ljxvxh0apqcvr888yhsbb8drv"; + }) + (fetchTestInput { + res = "osm/uk-test-1.osm.gz"; + sha256 = "0jdngkjn22jvi8q7hrzpqb9mnjlz82h1dwdmc4qrb64kkhzm4dfk"; + }) + (fetchTestInput { + res = "osm/uk-test-2.osm.gz"; + sha256 = "05mw0qcdgki151ldmxayry0gqlb72jm5wrvxq3dkwq5i7jb21qs4"; + }) + (fetchTestInput { + res = "osm/is-in-samples.osm"; + sha256 = "18vqfbq25ys59bj6dl6dq3q4m2ri3ki2xazim14fm94k1pbyhbh3"; + }) + (fetchTestInput { + res = "mp/test1.mp"; + sha256 = "1dykr0z84c3fqgm9kdp2dzvxc3galjbx0dn9zxjw8cfk7mvnspj2"; + }) + (fetchTestInput { + res = "img/63240001.img"; + sha256 = "1wmqgy940q1svazw85z8di20xyjm3vpaiaj9hizr47b549klw74q"; + }) + (fetchTestInput { + res = "img/63240002.img"; + sha256 = "12ivywkiw6lrglyk0clnx5ff2wqj4z0c3f5yqjsqlsaawbmxqa1f"; + }) + (fetchTestInput { + res = "img/63240003.img"; + sha256 = "19mgxqv6kqk8ahs8s819sj7cc79id67373ckwfsq7vvqyfrbasz1"; + }) + (fetchTestInput { + res = "hgt/N00W090.hgt.zip"; + sha256 = "16hb06bgf47sz2mfbbx3xqmrh1nmm04wj4ngm512sng4rjhksxgn"; + }) + (fetchTestInput { + res = "hgt/N00W091.hgt.zip"; + sha256 = "153j4wj7170qj81nr7sr6dp9zar62gnrkh6ww62bygpfqqyzdr1x"; + }) + (fetchTestInput { + res = "hgt/S01W090.hgt.zip"; + sha256 = "0czgs9rhp7bnzmzm7907vprj3nhm2lj6q1piafk8dm9rcqkfg8sj"; + }) + (fetchTestInput { + res = "hgt/S01W091.hgt.zip"; + sha256 = "0z58q3ai499mflxfjqhqv9i1di3fmp05pkv39886k1na107g3wbn"; + }) + (fetchTestInput { + res = "hgt/S02W090.hgt.zip"; + sha256 = "0q7817gdxk2vq73ci6ffks288zqywc21f5ns73b6p5ds2lrxhf5n"; + }) + (fetchTestInput { + res = "hgt/S02W091.hgt.zip"; + sha256 = "1mwpgd85v9n99gmx2bn8md7d312wvhq86w3c9k92y8ayrs20lmdr"; + }) +] diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/update.sh b/nixpkgs/pkgs/applications/misc/mkgmap/update.sh new file mode 100755 index 000000000000..ddfca9359359 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mkgmap/update.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl common-updater-scripts + +set -euo pipefail + +version=$(curl -s $2 | sed -n 's#.*<span data-bind="text: current().version">\(.*\)</span>.*#\1#p') +update-source-version $1 "$version" diff --git a/nixpkgs/pkgs/applications/misc/mnamer/default.nix b/nixpkgs/pkgs/applications/misc/mnamer/default.nix new file mode 100644 index 000000000000..dd634ae7f137 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mnamer/default.nix @@ -0,0 +1,46 @@ +{ python3Packages, fetchFromGitHub, lib }: + +python3Packages.buildPythonApplication rec { + pname = "mnamer"; + version = "2.5.3"; + + src = fetchFromGitHub { + owner = "jkwill87"; + repo = "mnamer"; + rev = version; + sha256 = "1frrvfhp85fh82yw9yb6n61by8qp1v7f3c0f623njxk1afawhccd"; + }; + + propagatedBuildInputs = with python3Packages; [ + babelfish + requests + appdirs + teletype + requests-cache + guessit + ]; + + patches = [ + # requires specific old versions of dependencies which have been updated in nixpkgs + ./remove_requirements.patch + + # author reads a private property that changed between versions + ./update_hack.patch + ]; + + checkInputs = [ python3Packages.pytestCheckHook ]; + + # disable test that fail (networking, etc) + disabledTests = [ + "network" + "e2e" + "test_utils.py" + ]; + + meta = with lib; { + homepage = "https://github.com/jkwill87/mnamer"; + description = "An intelligent and highly configurable media organization utility"; + license = licenses.mit; + maintainers = with maintainers; [ urlordjames ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mnamer/remove_requirements.patch b/nixpkgs/pkgs/applications/misc/mnamer/remove_requirements.patch new file mode 100644 index 000000000000..46fc0571ce5e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mnamer/remove_requirements.patch @@ -0,0 +1,21 @@ +diff --git a/setup.py b/setup.py +index 245c1dd..fdc17ab 100755 +--- a/setup.py ++++ b/setup.py +@@ -7,16 +7,12 @@ from mnamer.__version__ import VERSION + with open("readme.md", "r", encoding="utf8") as fp: + LONG_DESCRIPTION = fp.read() + +-with open("requirements.txt", "r", encoding="utf8") as fp: +- REQUIREMENTS = fp.read().splitlines() +- + setup( + author="Jessy Williams", + author_email="jessy@jessywilliams.com", + description="A media file organiser", + entry_points={"console_scripts": ["mnamer=mnamer.__main__:main"]}, + include_package_data=True, +- install_requires=REQUIREMENTS, + license="MIT", + long_description=LONG_DESCRIPTION, + long_description_content_type="text/markdown", diff --git a/nixpkgs/pkgs/applications/misc/mnamer/update_hack.patch b/nixpkgs/pkgs/applications/misc/mnamer/update_hack.patch new file mode 100644 index 000000000000..56c83a20a9ce --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mnamer/update_hack.patch @@ -0,0 +1,13 @@ +diff --git a/mnamer/utils.py b/mnamer/utils.py +index 636b596..e52bd37 100644 +--- a/mnamer/utils.py ++++ b/mnamer/utils.py +@@ -280,7 +280,7 @@ def request_json( + "like Gecko) Chrome/79.0.3945.88 Safari/537.36" + ) + +- initial_cache_state = session._is_cache_disabled # yes, i'm a bad person ++ initial_cache_state = session._disabled # yes, i'm a bad person + try: + session._is_cache_disabled = not cache + response = session.request( diff --git a/nixpkgs/pkgs/applications/misc/mob/default.nix b/nixpkgs/pkgs/applications/misc/mob/default.nix new file mode 100644 index 000000000000..50e95e311729 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mob/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoPackage, fetchFromGitHub}: + +buildGoPackage rec { + pname = "mob"; + version = "1.4.0"; + goPackagePath = "github.com/remotemobprogramming/mob"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "remotemobprogramming"; + repo = pname; + sha256 = "sha256-JiTRTH8ai27H1xySyKTWiu/MG0C61Tz+hVI6tkSRp+k="; + }; + + meta = with lib; { + description = "Tool for swift git handover"; + homepage = "https://github.com/remotemobprogramming/mob"; + license = licenses.mit; + maintainers = [ maintainers.ericdallo ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/moolticute/default.nix b/nixpkgs/pkgs/applications/misc/moolticute/default.nix new file mode 100644 index 000000000000..eabc93492378 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/moolticute/default.nix @@ -0,0 +1,46 @@ +{ lib, mkDerivation, fetchFromGitHub +, libusb1 +, pkg-config +, qmake +, qtbase +, qttools +, qtwebsockets +}: + +mkDerivation rec { + pname = "moolticute"; + version = "0.45.0"; + + src = fetchFromGitHub { + owner = "mooltipass"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-azJ63NI0wzzv3acgoPaeF+lTM1WKpXg595FrK908k1U="; + }; + + outputs = [ "out" "udev" ]; + + nativeBuildInputs = [ pkg-config qmake qttools ]; + buildInputs = [ libusb1 qtbase qtwebsockets ]; + + preConfigure = "mkdir -p build && cd build"; + qmakeFlags = [ "../Moolticute.pro" ]; + + preInstall = '' + mkdir -p $udev/lib/udev/rules.d + sed -n '/^ \+cat > "$tmpfile" <<- EOF$/,/^EOF$/p' ../data/moolticute.sh | + sed '1d;$d' > $udev/lib/udev/rules.d/50-mooltipass.rules + ''; + + meta = with lib; { + description = "GUI app and daemon to work with Mooltipass device via USB"; + longDescription = '' + To install udev rules, add `services.udev.packages == [ moolticute.udev ]` + into `nixos/configuration.nix`. + ''; + homepage = "https://github.com/mooltipass/moolticute"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.kirikaza ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix b/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix new file mode 100644 index 000000000000..ef8023614802 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, cmake, perl +, alsa-lib, libevdev, libopus, udev, SDL2 +, ffmpeg, pkg-config, xorg, libvdpau, libpulseaudio, libcec +, curl, expat, avahi, enet, libuuid, libva +}: + +stdenv.mkDerivation rec { + pname = "moonlight-embedded"; + version = "2.4.11"; + + src = fetchFromGitHub { + owner = "irtimmer"; + repo = "moonlight-embedded"; + rev = "v${version}"; + sha256 = "19wm4gizj8q6j4jwqfcn3bkhms97d8afwxmqjmjnqqxzpd2gxc16"; + fetchSubmodules = true; + }; + + outputs = [ "out" "man" ]; + + nativeBuildInputs = [ cmake perl ]; + buildInputs = [ + alsa-lib libevdev libopus udev SDL2 + ffmpeg pkg-config xorg.libxcb libvdpau libpulseaudio libcec + xorg.libpthreadstubs curl expat avahi enet libuuid libva + ]; + + meta = with lib; { + description = "Open source implementation of NVIDIA's GameStream"; + homepage = "https://github.com/irtimmer/moonlight-embedded"; + license = licenses.gpl3; + maintainers = [ maintainers.globin ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix b/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix new file mode 100644 index 000000000000..0845299c55b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, fetchFromGitHub +, wrapQtAppsHook +, pkg-config +, qmake +, qtquickcontrols2 +, SDL2 +, SDL2_ttf +, libva +, libvdpau +, libxkbcommon +, alsa-lib +, libpulseaudio +, openssl +, libopus +, ffmpeg +, wayland +}: + +stdenv.mkDerivation rec { + pname = "moonlight-qt"; + version = "3.1.4"; + + src = fetchFromGitHub { + owner = "moonlight-stream"; + repo = pname; + rev = "v${version}"; + sha256 = "1sg8svb6xvkczp9slqnlm0b6k0z3bzdi4zzvwzzy21kpj6im9002"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + wrapQtAppsHook + pkg-config + qmake + ]; + + buildInputs = [ + qtquickcontrols2 + SDL2 + SDL2_ttf + libva + libvdpau + libxkbcommon + alsa-lib + libpulseaudio + openssl + libopus + ffmpeg + wayland + ]; + + meta = with lib; { + description = "Play your PC games on almost any device"; + homepage = "https://moonlight-stream.org"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ luc65r ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mop/default.nix b/nixpkgs/pkgs/applications/misc/mop/default.nix new file mode 100644 index 000000000000..007965f868b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mop/default.nix @@ -0,0 +1,30 @@ +{ lib, buildGoPackage, fetchgit }: + +buildGoPackage rec { + pname = "mop"; + version = "0.2.0"; + rev = "bc666ec165d08b43134f7ec0bf29083ad5466243"; + + goPackagePath = "github.com/michaeldv/mop"; + goDeps = ./deps.nix; + + preConfigure = '' + for i in $(find . -type f);do + substituteInPlace $i --replace michaeldv/termbox-go nsf/termbox-go + done + substituteInPlace Makefile --replace mop/cmd mop/mop + mv cmd mop + ''; + + src = fetchgit { + inherit rev; + url = "https://github.com/mop-tracker/mop"; + sha256 = "0zp51g9i8rw6acs4vnrxclbxa5z1v0a0m1xx27szszp0rphcczkx"; + }; + + meta = with lib; { + description = "Simple stock tracker implemented in go"; + homepage = "https://github.com/mop-tracker/mop"; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mop/deps.nix b/nixpkgs/pkgs/applications/misc/mop/deps.nix new file mode 100644 index 000000000000..4081cd1ddaa2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mop/deps.nix @@ -0,0 +1,11 @@ +[ + { + goPackagePath = "github.com/nsf/termbox-go"; + fetch = { + type = "git"; + url = "https://github.com/nsf/termbox-go"; + rev = "9aecf65084a5754f12d27508fa2e6ed56851953b"; + sha256 = "16sak07bgvmax4zxfrd4jia1dgygk733xa8vk8cdx28z98awbfsh"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/misc/mps-youtube/default.nix b/nixpkgs/pkgs/applications/misc/mps-youtube/default.nix new file mode 100644 index 000000000000..b1118cfc5977 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mps-youtube/default.nix @@ -0,0 +1,34 @@ +{ lib, python3Packages, fetchFromGitHub }: + +with python3Packages; + +buildPythonApplication rec { + pname = "mps-youtube"; + version = "unstable-2020-01-28"; + + src = fetchFromGitHub { + owner = "mps-youtube"; + repo = "mps-youtube"; + rev = "b808697133ec2ad7654953232d1e841b20aa7cc3"; + sha256 = "0lqprlpc0v092xqkjc0cc395ag45lijwgd34dpg2jy6i0f2szywv"; + }; + + propagatedBuildInputs = [ pafy ]; + + # disabled due to error in loading unittest + # don't know how to make test from: <mps_youtube. ...> + doCheck = false; + + # before check create a directory and redirect XDG_CONFIG_HOME to it + preCheck = '' + mkdir -p check-phase + export XDG_CONFIG_HOME=$(pwd)/check-phase + ''; + + meta = with lib; { + description = "Terminal based YouTube player and downloader"; + homepage = "https://github.com/mps-youtube/mps-youtube"; + license = licenses.gpl3; + maintainers = with maintainers; [ koral odi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mpvc/default.nix b/nixpkgs/pkgs/applications/misc/mpvc/default.nix new file mode 100644 index 000000000000..69aca239d311 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mpvc/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, socat, fetchFromGitHub, makeWrapper }: + +stdenv.mkDerivation { + name = "mpvc-unstable-2017-03-18"; + + src = fetchFromGitHub { + owner = "wildefyr"; + repo = "mpvc"; + rev = "aea5c661455248cde7ac9ddba5f63cc790d26512"; + sha256 = "0qiyvb3ck1wyd3izajwvlq4bwgsbq7x8ya3fgi5i0g2qr39a1qml"; + }; + + makeFlags = [ "PREFIX=$(out)" ]; + installFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + wrapProgram $out/bin/mpvc --prefix PATH : "${socat}/bin/" + ''; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ socat ]; + + meta = with lib; { + description = "A mpc-like control interface for mpv"; + homepage = "https://github.com/wildefyr/mpvc"; + license = licenses.mit; + maintainers = [ maintainers.neeasade ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix b/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix new file mode 100644 index 000000000000..657ac9645deb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix @@ -0,0 +1,32 @@ +{ lib, buildGoPackage, fetchFromGitHub, fetchpatch }: + +buildGoPackage rec { + pname = "mqtt-bench"; + version = "0.3.0"; + rev = "v${version}"; + + goPackagePath = "github.com/takanorig/mqtt-bench"; + + src = fetchFromGitHub { + inherit rev; + owner = "takanorig"; + repo = "mqtt-bench"; + sha256 = "03b9ak2j303iwq6abd7j10f2cs2ianwnbflwmyx9g96i7zd74f5m"; + }; + + patches = [ + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/takanorig/mqtt-bench/pull/13.patch"; + name = "mqtt-paho-changes.patch"; + sha256 = "17c8ajrp5dmbsasj6njxrlhy0x08b65fignzm3yccqbhb4ijcvha"; + }) + ]; + + goDeps = ./deps.nix; + + meta = with lib; { + description = "Mosquitto benchmark tool"; + homepage = "https://github.com/takanorig/mqtt-bench"; + maintainers = with maintainers; [ disassembler ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix b/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix new file mode 100644 index 000000000000..d93d3c468145 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix @@ -0,0 +1,21 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/eclipse/paho.mqtt.golang"; + fetch = { + type = "git"; + url = "https://github.com/eclipse/paho.mqtt.golang"; + rev = "65f43bda5f7edbbf6b7533d3a5a13b2c67cf3545"; + sha256 = "1ad136xf78br599ya43j45f8dycjip1k0hkplayy1slg8ckwrhdr"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "8351a756f30f1297fe94bbf4b767ec589c6ea6d0"; + sha256 = "0b6m579i3wrx1m69mqkdng5gjfssprxx0pg45kzrdi68sh0zr5d1"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/misc/mu-repo/default.nix b/nixpkgs/pkgs/applications/misc/mu-repo/default.nix new file mode 100644 index 000000000000..eacd1971610f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mu-repo/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchFromGitHub, buildPythonApplication, pytestCheckHook, git }: + +buildPythonApplication rec { + pname = "mu-repo"; + version = "1.8.1"; + + src = fetchFromGitHub { + owner = "fabioz"; + repo = pname; + rev = "mu_repo_${lib.replaceStrings [ "." ] [ "_" ] version}"; + sha256 = "0mmjdkvmdlsndi2q56ybxyz2988ppxsbbr1g54nzzkkvab2bc2na"; + }; + + propagatedBuildInputs = [ git ]; + + checkInputs = [ pytestCheckHook git ]; + + meta = with lib; { + description = "Tool to help in dealing with multiple git repositories"; + homepage = "http://fabioz.github.io/mu-repo/"; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mucommander/default.nix b/nixpkgs/pkgs/applications/misc/mucommander/default.nix new file mode 100644 index 000000000000..c42ae1e815b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mucommander/default.nix @@ -0,0 +1,89 @@ +{ lib, stdenv, fetchFromGitHub, gradle_6, perl, makeWrapper, jdk11, gsettings-desktop-schemas }: + +let + version = "0.9.3-3"; + name = "mucommander-${version}"; + + src = fetchFromGitHub { + owner = "mucommander"; + repo = "mucommander"; + rev = version; + sha256 = "1zhglsx3b5k6np3ppfkkrqz9wg0j7ip598xxfgn75gjl020w0can"; + }; + + postPatch = '' + # there is no .git anyway + substituteInPlace build.gradle \ + --replace "git = org.ajoberstar.grgit.Grgit.open(file('.'))" "" \ + --replace "revision = git.head().id" "revision = 'abcdefgh'" \ + --replace "proguard.enabled =" "// proguard.enabled =" \ + --replace "version = '0.9.4'" "version = '${version}'" + + # disable gradle plugins with native code and their targets + perl -i.bak1 -pe "s#(^\s*id '.+' version '.+'$)#// \1#" build.gradle + perl -i.bak2 -pe "s#(.*)#// \1# if /^(buildscript|task portable|task nsis|task proguard|task tgz|task\(afterEclipseImport\)|launch4j|macAppBundle|buildRpm|buildDeb|shadowJar)/ ... /^}/" build.gradle + + # fix source encoding + find . -type f -name build.gradle \ + -exec perl -i.bak3 -pe "s#(repositories\.jcenter\(\))# + \1 + compileJava.options.encoding = 'UTF-8' + compileTestJava.options.encoding = 'UTF-8' + #" {} \; + ''; + + # fake build to pre-download deps into fixed-output derivation + deps = stdenv.mkDerivation { + name = "${name}-deps"; + inherit src postPatch; + nativeBuildInputs = [ gradle_6 perl ]; + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + gradle --no-daemon build + ''; + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "1v5a76pvk7llbyv2rg50wlxc2wf468l2cslz1vi20aihycbyky7j"; + }; + +in stdenv.mkDerivation { + inherit name src postPatch; + nativeBuildInputs = [ gradle_6 perl makeWrapper ]; + + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + + # point to offline repo + find . -type f -name build.gradle \ + -exec perl -i.bak3 -pe "s#repositories\.jcenter\(\)# + repositories { mavenLocal(); maven { url '${deps}' } } + #" {} \; + + gradle --offline --no-daemon distTar + ''; + + installPhase = '' + mkdir $out + tar xvf build/distributions/mucommander-${version}.tar --directory=$out --strip=1 + wrapProgram $out/bin/mucommander \ + --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name} \ + --set JAVA_HOME ${jdk11} + ''; + + meta = with lib; { + homepage = "http://www.mucommander.com/"; + description = "Cross-platform file manager"; + license = licenses.gpl3; + maintainers = with maintainers; [ volth ]; + # build is broken on MacOS + # https://github.com/NixOS/nixpkgs/pull/105784 + broken = stdenv.isDarwin; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/multibootusb/default.nix b/nixpkgs/pkgs/applications/misc/multibootusb/default.nix new file mode 100644 index 000000000000..1d625a67b7b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/multibootusb/default.nix @@ -0,0 +1,115 @@ +{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, qemu, unzip, zip, + coreutils, gnugrep, which, gnused, e2fsprogs, autoPatchelfHook, gptfdisk, + python36Packages, qt5, runtimeShell, lib, util-linux, wrapQtAppsHook }: + +# Note: Multibootusb is tricky to maintain. It relies on the +# $PYTHONPATH variable containing some of their code, so that +# something like: +# +# from scripts import config +# +# works. It also relies on the current directory to find some runtime +# resources thanks to a use of __file__. +# +# https://github.com/mbusb/multibootusb/blob/0d34d70c3868f1d7695cfd141141b17c075de967/scripts/osdriver.py#L59 + +python36Packages.buildPythonApplication rec { + pname = "multibootusb"; + name = "${pname}-${version}"; + version = "9.2.0"; + + nativeBuildInputs = [ + wrapQtAppsHook + autoPatchelfHook + unzip + zip + ]; + + runTimeDeps = [ + coreutils + gnugrep + which + parted + util-linux + qemu + p7zip + gnused + mtools + procps + e2fsprogs + gptfdisk + ]; + + buildInputs = [ + libxcb + python36Packages.python + qt5.full + ]; + + src = fetchFromGitHub { + owner = "mbusb"; + repo = pname; + rev = "v${version}"; + + sha256 = "0wlan0cp6c2i0nahixgpmkm0h4n518gj8rc515d579pqqp91p2h3"; + }; + + # Tests can't run inside the NixOS sandbox + # "Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory" + doCheck = false; + + pythonPath = [ + python36Packages.dbus-python + python36Packages.pyqt5 + python36Packages.pytest-shutil + python36Packages.pyudev + python36Packages.six + ]; + + # multibootusb ships zips with various versions of syslinux, we need to patchelf them + postPatch = '' + for zip in $(find . -name "*.zip"); do + zip=$(readlink -f $zip) + target="$(mktemp -d)" + pushd $target + unzip $zip + rm $zip + autoPatchelf . + zip -r $zip * + popd + done + ''; + + postInstall = '' + # This script doesn't work and it doesn't add much anyway + rm $out/bin/multibootusb-pkexec + + # The installed data isn't sufficient for whatever reason, missing gdisk/gdisk.exe + mkdir -p "$out/share/${pname}" + cp -r data "$out/share/${pname}/data" + ''; + + preFixup = '' + makeWrapperArgs+=( + # Firstly, add all necessary QT variables + "''${qtWrapperArgs[@]}" + + # Then, add the installed scripts/ directory to the python path + --prefix "PYTHONPATH" ":" "$out/lib/${python36Packages.python.libPrefix}/site-packages" + + # Add some runtime dependencies + --prefix "PATH" ":" "${lib.makeBinPath runTimeDeps}" + + # Finally, move to directory that contains data + --run "cd $out/share/${pname}" + ) + ''; + + meta = with lib; { + description = "Multiboot USB creator for Linux live disks"; + homepage = "http://multibootusb.org/"; + license = licenses.gpl2; + maintainers = []; # Looking for a maintainer! + broken = true; # "name 'config' is not defined", added 2021-02-06 + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mupdf/1.17.nix b/nixpkgs/pkgs/applications/misc/mupdf/1.17.nix new file mode 100644 index 000000000000..95e9c7c3307a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mupdf/1.17.nix @@ -0,0 +1,95 @@ +{ stdenv, lib, fetchurl, fetchpatch, pkg-config, freetype, harfbuzz, openjpeg +, jbig2dec, libjpeg , darwin +, enableX11 ? true, libX11, libXext, libXi, libXrandr +, enableCurl ? true, curl, openssl +, enableGL ? true, freeglut, libGLU +}: + +let + + # OpenJPEG version is hardcoded in package source + openJpegVersion = with stdenv; + lib.versions.majorMinor (lib.getVersion openjpeg); + + +in stdenv.mkDerivation rec { + version = "1.17.0"; + pname = "mupdf"; + + src = fetchurl { + url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz"; + sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0"; + }; + + patches = + # Use shared libraries to decrease size + lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch + ++ lib.optional stdenv.isDarwin ./darwin.patch + ; + + postPatch = '' + sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c + ''; + + makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ] + ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ] + ++ lib.optionals enableCurl [ curl openssl ] + ++ lib.optionals enableGL ( + if stdenv.isDarwin then + with darwin.apple_sdk.frameworks; [ GLUT OpenGL ] + else + [ freeglut libGLU ]) + ; + outputs = [ "bin" "dev" "out" "man" "doc" ]; + + preConfigure = '' + # Don't remove mujs because upstream version is incompatible + rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib} + ''; + + postInstall = '' + mkdir -p "$out/lib/pkgconfig" + cat >"$out/lib/pkgconfig/mupdf.pc" <<EOF + prefix=$out + libdir=$out/lib + includedir=$out/include + + Name: mupdf + Description: Library for rendering PDF documents + Version: ${version} + Libs: -L$out/lib -lmupdf -lmupdf-third + Cflags: -I$dev/include + EOF + + moveToOutput "bin" "$bin" + ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf" + mkdir -p $bin/share/applications + cat > $bin/share/applications/mupdf.desktop <<EOF + [Desktop Entry] + Type=Application + Version=1.0 + Name=mupdf + Comment=PDF viewer + Exec=$bin/bin/mupdf-x11 %f + Terminal=false + MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;application/epub+zip + EOF + ''; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://mupdf.com"; + repositories.git = "git://git.ghostscript.com/mupdf.git"; + description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ vrthra fpletz ]; + platforms = platforms.unix; + knownVulnerabilities = [ + "CVE-2020-26519: denial of service when parsing JBIG2" + "CVE-2017-5991: NULL pointer dereference" + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch b/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch new file mode 100644 index 000000000000..be1b84b0012f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch @@ -0,0 +1,30 @@ +diff -ruN mupdf-1.14.0-source.orig/Makerules mupdf-1.14.0-source/Makerules +--- mupdf-1.14.0-source.orig/Makerules 2018-11-02 06:57:12.114012496 +0100 ++++ mupdf-1.14.0-source/Makerules 2018-11-02 10:11:56.717232992 +0100 +@@ -80,13 +80,6 @@ + HAVE_GLUT := yes + SYS_GLUT_CFLAGS := -Wno-deprecated-declarations + SYS_GLUT_LIBS := -framework GLUT -framework OpenGL +- CC = xcrun cc +- AR = xcrun ar +- LD = xcrun ld +- RANLIB = xcrun ranlib +- +-else ifeq ($(OS),Linux) +- HAVE_OBJCOPY := yes + + ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes) + SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2) +@@ -119,12 +112,6 @@ + SYS_CURL_LIBS := $(shell pkg-config --libs libcurl) + endif + +- HAVE_GLUT := yes +- ifeq ($(HAVE_GLUT),yes) +- SYS_GLUT_CFLAGS := +- SYS_GLUT_LIBS := -lglut -lGL +- endif +- + HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes) + ifeq ($(HAVE_X11),yes) + X11_CFLAGS := $(shell pkg-config --cflags x11 xext) diff --git a/nixpkgs/pkgs/applications/misc/mupdf/default.nix b/nixpkgs/pkgs/applications/misc/mupdf/default.nix new file mode 100644 index 000000000000..21c699da3fac --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mupdf/default.nix @@ -0,0 +1,134 @@ +{ stdenv +, lib +, fetchurl +, fetchpatch +, pkg-config +, freetype +, harfbuzz +, openjpeg +, jbig2dec +, libjpeg +, darwin +, gumbo +, enableX11 ? true +, libX11 +, libXext +, libXi +, libXrandr +, enableCurl ? true +, curl +, openssl +, enableGL ? true +, freeglut +, libGLU +}: +let + + # OpenJPEG version is hardcoded in package source + openJpegVersion = with stdenv; + lib.versions.majorMinor (lib.getVersion openjpeg); + + +in +stdenv.mkDerivation rec { + version = "1.18.0"; + pname = "mupdf"; + + src = fetchurl { + url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz"; + sha256 = "0rljl44y8p8hgaqializlyrgpij1wbnrzyp0ll5kcg7w05nylq48"; + }; + + patches = lib.optional stdenv.isDarwin ./darwin.patch ++ [ + (fetchpatch { + name = "pdfocr.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84"; + sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3"; + }) + (fetchpatch { + name = "pdf-layer.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54"; + sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm"; + }) + (fetchpatch { + name = "pixmap.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603"; + sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj"; + }) + (fetchpatch { + name = "CVE-2021-3407.patch"; + url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=cee7cefc610d42fd383b3c80c12cbc675443176a"; + sha256 = "18g9jsj90jnqibaff8pqi70a7x8ygc3sh4jl4xnvlv8vr7fxxbh6"; + }) + ]; + + postPatch = '' + sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c + ''; + + # Use shared libraries to decrease size + buildFlags = [ "shared" ]; + + makeFlags = [ "prefix=$(out)" "USE_SYSTEM_LIBS=yes" ] + ++ lib.optionals (!enableX11) [ "HAVE_X11=no" ] + ++ lib.optionals (!enableGL) [ "HAVE_GLUT=no" ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg gumbo ] + ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ] + ++ lib.optionals enableCurl [ curl openssl ] + ++ lib.optionals enableGL ( + if stdenv.isDarwin then + with darwin.apple_sdk.frameworks; [ GLUT OpenGL ] + else + [ freeglut libGLU ] + ) + ; + outputs = [ "bin" "dev" "out" "man" "doc" ]; + + preConfigure = '' + # Don't remove mujs because upstream version is incompatible + rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib} + ''; + + postInstall = '' + mkdir -p "$out/lib/pkgconfig" + cat >"$out/lib/pkgconfig/mupdf.pc" <<EOF + prefix=$out + libdir=$out/lib + includedir=$out/include + + Name: mupdf + Description: Library for rendering PDF documents + Version: ${version} + Libs: -L$out/lib -lmupdf -lmupdf-third + Cflags: -I$dev/include + EOF + + moveToOutput "bin" "$bin" + '' + lib.optionalString enableX11 '' + ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf" + mkdir -p $bin/share/applications + cat > $bin/share/applications/mupdf.desktop <<EOF + [Desktop Entry] + Type=Application + Version=1.0 + Name=mupdf + Comment=PDF viewer + Exec=$bin/bin/mupdf-x11 %f + Terminal=false + MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;application/epub+zip + EOF + ''; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://mupdf.com"; + repositories.git = "git://git.ghostscript.com/mupdf.git"; + description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ vrthra fpletz ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mupdf/default.upstream b/nixpkgs/pkgs/applications/misc/mupdf/default.upstream new file mode 100644 index 000000000000..852233633ca5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mupdf/default.upstream @@ -0,0 +1,7 @@ +url https://mupdf.com/downloads/archive/ +do_overwrite(){ + ensure_hash + ensure_version + set_var_value version $CURRENT_VERSION + set_var_value sha256 $CURRENT_HASH +} diff --git a/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch b/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch new file mode 100644 index 000000000000..131a1bbbf6bd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch @@ -0,0 +1,39 @@ +--- mupdf-1.14.0-source.orig/Makefile 2018-11-02 06:57:12.114012496 +0100 ++++ mupdf-1.14.0-source/Makefile 2018-11-02 09:57:10.067945307 +0100 +@@ -20,7 +20,7 @@ + # Do not specify CFLAGS or LIBS on the make invocation line - specify + # XCFLAGS or XLIBS instead. Make ignores any lines in the makefile that + # set a variable that was set on the command line. +-CFLAGS += $(XCFLAGS) -Iinclude ++CFLAGS += $(XCFLAGS) -Iinclude -fPIC + LIBS += $(XLIBS) -lm + + ifneq ($(threading),no) +@@ -190,17 +190,21 @@ + + # --- Library --- + +-MUPDF_LIB = $(OUT)/libmupdf.a +-THIRD_LIB = $(OUT)/libmupdf-third.a +-THREAD_LIB = $(OUT)/libmupdf-threads.a +-PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a ++MUPDF_LIB = $(OUT)/libmupdf.so ++THIRD_LIB = $(OUT)/libmupdf-third.so ++THREAD_LIB = $(OUT)/libmupdf-threads.so ++PKCS7_LIB = $(OUT)/libmupdf-pkcs7.so + +-$(MUPDF_LIB) : $(MUPDF_OBJ) ++$(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_LIB) $(THREAD_LIB) ++ $(LINK_CMD) $(THIRD_LIBS) -shared -Wl,-soname -Wl,libmupdf.so -Wl,--no-undefined + $(THIRD_LIB) : $(THIRD_OBJ) ++ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-third.so -Wl,--no-undefined + $(THREAD_LIB) : $(THREAD_OBJ) ++ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-threads.so -Wl,--no-undefined -lpthread + $(PKCS7_LIB) : $(PKCS7_OBJ) ++ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-pkcs7.so + +-INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB) ++INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB) + + # --- Main tools and viewers --- + diff --git a/nixpkgs/pkgs/applications/misc/mwic/default.nix b/nixpkgs/pkgs/applications/misc/mwic/default.nix new file mode 100644 index 000000000000..970c89b2acfc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mwic/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, pythonPackages }: + +stdenv.mkDerivation rec { + version = "0.7.8"; + pname = "mwic"; + + src = fetchurl { + url = "https://github.com/jwilk/mwic/releases/download/${version}/${pname}-${version}.tar.gz"; + sha256 = "0nnhziz9v523hpciylnxfajmxabh2ig5iawzwrfpf7aww70v330x"; + }; + + makeFlags=["PREFIX=\${out}"]; + + nativeBuildInputs = [ + pythonPackages.wrapPython + ]; + + propagatedBuildInputs = with pythonPackages; [ pyenchant regex ]; + + postFixup = '' + wrapPythonPrograms + ''; + + meta = with lib; { + homepage = "http://jwilk.net/software/mwic"; + description = "spell-checker that groups possible misspellings and shows them in their contexts"; + license = licenses.mit; + maintainers = with maintainers; [ matthiasbeyer ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix b/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix new file mode 100644 index 000000000000..63dde76fabcc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix @@ -0,0 +1,189 @@ +{ lib, stdenv +, fetchurl +, substituteAll +, cmake +, ninja +, pkg-config +, glibc +, gtk3 +, gtkmm3 +, pcre +, swig +, antlr4_8 +, sudo +, mysql +, libxml2 +, libmysqlconnectorcpp +, vsqlite +, gdal +, libiodbc +, libpthreadstubs +, libXdmcp +, libuuid +, libzip +, libsecret +, libssh +, python2 +, jre +, boost +, libsigcxx +, libX11 +, openssl +, rapidjson +, proj +, cairo +, libxkbcommon +, epoxy +, wrapGAppsHook +, at-spi2-core +, dbus +, bash +, coreutils +}: + +let + inherit (python2.pkgs) paramiko pycairo pyodbc; +in stdenv.mkDerivation rec { + pname = "mysql-workbench"; + version = "8.0.21"; + + src = fetchurl { + url = "http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz"; + sha256 = "0rqgr1dcbf6yp60hninbw5dnwykx5ngbyhhx0sbhgv0m0cq5a44h"; + }; + + patches = [ + ./fix-gdal-includes.patch + + (substituteAll { + src = ./hardcode-paths.patch; + catchsegv = "${glibc.bin}/bin/catchsegv"; + bash = "${bash}/bin/bash"; + cp = "${coreutils}/bin/cp"; + dd = "${coreutils}/bin/dd"; + ls = "${coreutils}/bin/ls"; + mkdir = "${coreutils}/bin/mkdir"; + nohup = "${coreutils}/bin/nohup"; + rm = "${coreutils}/bin/rm"; + rmdir = "${coreutils}/bin/rmdir"; + sudo = "${sudo}/bin/sudo"; + }) + + # Fix swig not being able to find headers + # https://github.com/NixOS/nixpkgs/pull/82362#issuecomment-597948461 + (substituteAll { + src = ./fix-swig-build.patch; + cairoDev = "${cairo.dev}"; + }) + ]; + + # have it look for 4.7.2 instead of 4.7.1 + preConfigure = '' + substituteInPlace CMakeLists.txt \ + --replace "antlr-4.7.1-complete.jar" "antlr-4.8-complete.jar" + ''; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + jre + swig + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + gtkmm3 + libX11 + antlr4_8.runtime.cpp + python2 + mysql + libxml2 + libmysqlconnectorcpp + vsqlite + gdal + boost + libssh + openssl + rapidjson + libiodbc + pcre + cairo + libuuid + libzip + libsecret + libsigcxx + proj + + # python dependencies: + paramiko + pycairo + pyodbc + # TODO: package sqlanydb and add it here + + # transitive dependencies: + libpthreadstubs + libXdmcp + libxkbcommon + epoxy + at-spi2-core + dbus + ]; + + postPatch = '' + patchShebangs tools/get_wb_version.sh + ''; + + # error: 'OGRErr OGRSpatialReference::importFromWkt(char**)' is deprecated + NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; + + cmakeFlags = [ + "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config" + "-DIODBC_CONFIG_PATH=${libiodbc}/bin/iodbc-config" + "-DWITH_ANTLR_JAR=${antlr4_8.jarLocation}" + # mysql-workbench 8.0.21 depends on libmysqlconnectorcpp 1.1.8. + # Newer versions of connector still provide the legacy library when enabled + # but the headers are in a different location. + "-DMySQLCppConn_INCLUDE_DIR=${libmysqlconnectorcpp}/include/jdbc" + ]; + + # There is already an executable and a wrapper in bindir + # No need to wrap both + dontWrapGApps = true; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : "${python2}/bin" + --prefix PROJSO : "${proj}/lib/libproj.so" + --set PYTHONPATH $PYTHONPATH + ) + ''; + + # Let’s wrap the programs not ending with bin + # until https://bugs.mysql.com/bug.php?id=91948 is fixed + postFixup = '' + find -L "$out/bin" -type f -executable -print0 \ + | while IFS= read -r -d ''' file; do + if [[ "''${file}" != *-bin ]]; then + echo "Wrapping program $file" + wrapGApp "$file" + fi + done + ''; + + meta = with lib; { + description = "Visual MySQL database modeling, administration and querying tool"; + longDescription = '' + MySQL Workbench is a modeling tool that allows you to design + and generate MySQL databases graphically. It also has administration + and query development modules where you can manage MySQL server instances + and execute SQL queries. + ''; + + homepage = "http://wb.mysql.com/"; + license = licenses.gpl2; + maintainers = [ maintainers.kkallio ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch b/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch new file mode 100644 index 000000000000..0a5c31fd40a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch @@ -0,0 +1,47 @@ +--- a/backend/wbpublic/grt/spatial_handler.h ++++ b/backend/wbpublic/grt/spatial_handler.h +@@ -24,12 +24,12 @@ + #ifndef SPATIAL_HANDLER_H_ + #define SPATIAL_HANDLER_H_ + +-#include <gdal/ogrsf_frmts.h> +-#include <gdal/ogr_api.h> +-#include <gdal/gdal_pam.h> +-#include <gdal/memdataset.h> +-#include <gdal/gdal_alg.h> +-#include <gdal/gdal.h> ++#include <ogrsf_frmts.h> ++#include <ogr_api.h> ++#include <gdal_pam.h> ++#include <memdataset.h> ++#include <gdal_alg.h> ++#include <gdal.h> + #include <deque> + #include "base/geometry.h" + #include "wbpublic_public_interface.h" +--- a/backend/wbpublic/grtui/geom_draw_box.h ++++ b/backend/wbpublic/grtui/geom_draw_box.h +@@ -25,7 +25,7 @@ + #define _GEOM_DRAW_BOX_H_ + + #include <mforms/drawbox.h> +-#include <gdal/ogr_geometry.h> ++#include <ogr_geometry.h> + #include "wbpublic_public_interface.h" + + class WBPUBLICBACKEND_PUBLIC_FUNC GeomDrawBox : public mforms::DrawBox { +--- a/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp ++++ b/backend/wbpublic/objimpl/db.query/db_query_Resultset.cpp +@@ -21,9 +21,9 @@ + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +-#include <gdal/ogrsf_frmts.h> +-#include <gdal/ogr_api.h> +-#include <gdal/gdal.h> ++#include <ogrsf_frmts.h> ++#include <ogr_api.h> ++#include <gdal.h> + + #include <grts/structs.db.query.h> + #include <grtpp_util.h> diff --git a/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch b/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch new file mode 100644 index 000000000000..ace1e5add43f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch @@ -0,0 +1,12 @@ +--- a/library/forms/swig/CMakeLists.txt ++++ b/library/forms/swig/CMakeLists.txt +@@ -57,7 +57,7 @@ + + set(CMAKE_SWIG_FLAGS -w312) + set_source_files_properties(cairo.i PROPERTIES CPLUSPLUS ON) +-set_property(SOURCE cairo.i PROPERTY SWIG_FLAGS -DCAIRO_HAS_PNG_FUNCTIONS=1 -fcompact -DSWIG_PYTHON_LEGACY_BOOL -I/usr/include) ++set_property(SOURCE cairo.i PROPERTY SWIG_FLAGS -DCAIRO_HAS_PNG_FUNCTIONS=1 -fcompact -DSWIG_PYTHON_LEGACY_BOOL -I@cairoDev@/include) + if(CMAKE_VERSION VERSION_LESS 3.8) + swig_add_module(cairo python cairo.i) + else() + diff --git a/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch b/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch new file mode 100644 index 000000000000..dddf992e4c12 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch @@ -0,0 +1,187 @@ +--- a/frontend/linux/workbench/mysql-workbench.in ++++ b/frontend/linux/workbench/mysql-workbench.in +@@ -99,8 +99,8 @@ + if test "$WB_DEBUG" != ""; then + $WB_DEBUG $MWB_BINARIES_DIR/mysql-workbench-bin "$@" + else +- if type -p catchsegv > /dev/null; then +- catchsegv $MWB_BINARIES_DIR/mysql-workbench-bin "$@" ++ if type -p @catchsegv@ > /dev/null; then ++ @catchsegv@ $MWB_BINARIES_DIR/mysql-workbench-bin "$@" + else + $MWB_BINARIES_DIR/mysql-workbench-bin "$@" + fi +--- a/plugins/migration/frontend/migration_bulk_copy_data.py ++++ b/plugins/migration/frontend/migration_bulk_copy_data.py +@@ -110,7 +110,7 @@ + return 'sh' + + def generate_import_script(self, connection_args, path_to_file, schema_name): +- output = ['#!/bin/bash'] ++ output = ['#!/usr/bin/env bash'] + output.append('MYPATH=\`pwd\`') + + output.append('if [ -f \$MYPATH/%s ] ; then' % self.error_log_name) +@@ -164,7 +164,7 @@ + return 'sh' + + def generate_import_script(self, connection_args, path_to_file, schema_name): +- output = ['#!/bin/bash'] ++ output = ['#!/usr/bin/env bash'] + output.append('MYPATH=\`pwd\`') + + output.append('if [ -f \$MYPATH/%s ] ; then' % self.error_log_name) +@@ -417,7 +417,7 @@ + + with open(script_path, 'w+') as f: + os.chmod(script_path, 0700) +- f.write('#!/bin/bash\n\n') ++ f.write('#!/usr/bin/env bash\n\n') + f.write('MYPATH=`pwd`\n') + + f.write("arg_source_password=\"<put source password here>\"\n") +@@ -521,7 +521,7 @@ + + with open(script_path, 'w+') as f: + os.chmod(script_path, 0700) +- f.write('#!/bin/bash\n\n') ++ f.write('#!/usr/bin/env bash\n\n') + f.write('MYPATH=`pwd`\n') + + f.write("arg_source_password=\"<put source password here>\"\n") +--- a/plugins/wb.admin/backend/wb_server_control.py ++++ b/plugins/wb.admin/backend/wb_server_control.py +@@ -39,7 +39,7 @@ + + UnixVariant = { + "" : { +- 'sudo_command' : "/usr/bin/sudo -k -S -p EnterPasswordHere ", ++ 'sudo_command' : "@sudo@ -k -S -p EnterPasswordHere ", + } + } + +--- a/plugins/wb.admin/backend/wb_server_management.py ++++ b/plugins/wb.admin/backend/wb_server_management.py +@@ -40,7 +40,7 @@ + + def reset_sudo_prefix(): + global default_sudo_prefix +- default_sudo_prefix = '/usr/bin/sudo -k -S -p EnterPasswordHere' ++ default_sudo_prefix = '@sudo@ -k -S -p EnterPasswordHere' + + reset_sudo_prefix() + +@@ -100,7 +100,7 @@ + + if to_spawn: + command += ' &' +- sudo_prefix += ' /usr/bin/nohup' ++ sudo_prefix += ' @nohup@' + + # If as_user is the CURRENT then there's no need to sudo + if as_user != Users.CURRENT: +@@ -111,7 +111,7 @@ + if '/bin/sh' in sudo_prefix or '/bin/bash' in sudo_prefix: + command = "LANG=C " + sudo_prefix + " \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\"" + else: +- command = "LANG=C " + sudo_prefix + " /bin/bash -c \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\"" ++ command = "LANG=C " + sudo_prefix + " @bash@ -c \"" + command.replace('\\', '\\\\').replace('"', r'\"').replace('$','\\$') + "\"" + + return command + +@@ -896,9 +896,9 @@ + if as_user == Users.CURRENT: + raise PermissionDeniedError("Cannot set owner of directory %s" % path) + else: +- command = "/bin/mkdir %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path)) ++ command = "@mkdir@ %s && chown %s %s" % (quote_path(path), with_owner, quote_path(path)) + else: +- command = "/bin/mkdir %s" % (quote_path(path)) ++ command = "@mkdir@ %s" % (quote_path(path)) + + res = self.process_ops.exec_cmd(command, + as_user = as_user, +@@ -927,7 +927,7 @@ + @useAbsPath("path") + def remove_directory(self, path, as_user = Users.CURRENT, user_password = None): + output = StringIO.StringIO() +- res = self.process_ops.exec_cmd('/bin/rmdir ' + quote_path(path), ++ res = self.process_ops.exec_cmd('@rmdir@ ' + quote_path(path), + as_user = as_user, + user_password = user_password, + output_handler = output.write, +@@ -940,7 +940,7 @@ + @useAbsPath("path") + def remove_directory_recursive(self, path, as_user = Users.CURRENT, user_password = None): + output = StringIO.StringIO() +- res = self.process_ops.exec_cmd('/bin/rm -R ' + quote_path(path), ++ res = self.process_ops.exec_cmd('@rm@ -R ' + quote_path(path), + as_user = as_user, + user_password = user_password, + output_handler = output.write, +@@ -953,7 +953,7 @@ + @useAbsPath("path") + def delete_file(self, path, as_user = Users.CURRENT, user_password = None): + output = StringIO.StringIO() +- res = self.process_ops.exec_cmd("/bin/rm " + quote_path(path), ++ res = self.process_ops.exec_cmd("@rm@ " + quote_path(path), + as_user = as_user, + user_password = user_password, + output_handler = output.write, +@@ -1001,7 +1001,7 @@ + def _copy_file(self, source, dest, as_user = Users.CURRENT, user_password = None): + output = StringIO.StringIO() + +- res = self.process_ops.exec_cmd("LC_ALL=C /bin/cp " + quote_path(source) + " " + quote_path(dest), ++ res = self.process_ops.exec_cmd("LC_ALL=C @cp@ " + quote_path(source) + " " + quote_path(dest), + as_user = as_user, + user_password = user_password, + output_handler = output.write, +@@ -1077,9 +1077,9 @@ + # for ls -l, the output format changes depending on stdout being a terminal or not + # since both cases are possible, we need to handle both at the same time (1st line being total <nnnn> or not) + # the good news is that if the line is there, then it will always start with total, regardless of the locale +- command = 'LC_ALL=C /bin/ls -l -p %s' % quote_path(path) ++ command = 'LC_ALL=C @ls@ -l -p %s' % quote_path(path) + else: +- command = 'LC_ALL=C /bin/ls -1 -p %s' % quote_path(path) ++ command = 'LC_ALL=C @ls@ -1 -p %s' % quote_path(path) + + output = StringIO.StringIO() + res = self.process_ops.exec_cmd(command, +@@ -2160,9 +2160,9 @@ + def get_range(self, start, end): + f = StringIO.StringIO() + if not self._need_sudo: +- ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write) ++ ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.CURRENT, user_password=None, output_handler=f.write) + else: +- ret = self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write) ++ ret = self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i count=%i 2> /dev/null" % (quote_path(self.path), start, end-start), as_user = Users.ADMIN, user_password=self.get_password, output_handler=f.write) + + if ret != 0: + raise RuntimeError("Could not get data from file %s" % self.path) +@@ -2170,9 +2170,9 @@ + + def read_task(self, offset, file): + if not self._need_sudo: +- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write) ++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=file.write) + else: +- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write) ++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self.get_password, output_handler=file.write) + # this will signal the reader end that there's no more data + file.close() + +@@ -2198,9 +2198,9 @@ + self._pos = offset + f = StringIO.StringIO() + if not self._need_sudo: +- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write) ++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.CURRENT, user_password=None, output_handler=f.write) + else: +- self.server_helper.execute_command("/bin/dd if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write) ++ self.server_helper.execute_command("@dd@ if=%s ibs=1 skip=%i 2> /dev/null" % (quote_path(self.path), offset), as_user = Users.ADMIN, user_password=self._password, output_handler=f.write) + self.data = f + self.data.seek(0) + if self.skip_first_newline: diff --git a/nixpkgs/pkgs/applications/misc/mystem/default.nix b/nixpkgs/pkgs/applications/misc/mystem/default.nix new file mode 100644 index 000000000000..62c1834d26ad --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/mystem/default.nix @@ -0,0 +1,26 @@ +{lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "mystem"; + version = "3.1"; + + src = fetchurl { + url = "http://download.cdn.yandex.net/mystem/${pname}-${version}-linux-64bit.tar.gz"; + sha256 = "0qha7jvkdmil3jiwrpsfhkqsbkqn9dzgx3ayxwjdmv73ikmg95j6"; + }; + + buildCommand = '' + tar -xaf "$src" + mkdir -p $out/bin + install -Dm755 mystem $out/bin/mystem + patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $out/bin/mystem + ''; + + meta = with lib; { + description = "Morphological analysis of Russian text"; + homepage = "https://yandex.ru/dev/mystem/"; + license = licenses.unfreeRedistributable; + maintainers = with maintainers; [ abbradar ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix b/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix new file mode 100644 index 000000000000..e8fa4d4fd379 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix @@ -0,0 +1,30 @@ +{ fetchurl, lib, stdenv, bash }: + +stdenv.mkDerivation rec { + version = "3.5-rc1"; + pname = "nanoblogger"; + + src = fetchurl { + url = "mirror://sourceforge/nanoblogger/${pname}-${version}.tar.gz"; + sha256 = "09mv52a5f0h3das8x96irqyznm69arfskx472b7w3b9q4a2ipxbq"; + }; + + buildInputs = [ ]; + + installPhase = '' + mkdir -p $out/bin + cp -r * $out + cat > $out/bin/nb << EOF + #!${bash}/bin/bash + $out/nb "\$@" + EOF + chmod 755 $out/bin/nb + ''; + + meta = { + description = "Small weblog engine written in Bash for the command line"; + homepage = "http://nanoblogger.sourceforge.net/"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/natural-docs/default.nix b/nixpkgs/pkgs/applications/misc/natural-docs/default.nix new file mode 100644 index 000000000000..15816b669286 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/natural-docs/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchzip, makeWrapper, mono, lib }: + +stdenv.mkDerivation rec { + pname = "natural-docs"; + version = "2.1.1"; + + src = fetchzip { + url = "https://naturaldocs.org/download/natural_docs/${version}/Natural_Docs_${version}.zip"; + sha256 = "03fizjgvhiw3lqyykqw1whdh97xyiy3f226c1348ll61ryjxamqw"; + }; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + cp -r . $out/ + makeWrapper ${mono}/bin/mono $out/bin/NaturalDocs --add-flags "$out/NaturalDocs.exe" + ''; + + meta = with lib; { + description = "Documentation generator for multiple programming languages."; + longDescription = '' + Natural Docs is an open source documentation generator for multiple + programming languages. You document your code in a natural syntax that + reads like plain English. Natural Docs then scans your code and builds + high-quality HTML documentation from it. + ''; + homepage = "https://naturaldocs.org"; + license = licenses.agpl3Only; + maintainers = [ maintainers.nkpvk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/navi/default.nix b/nixpkgs/pkgs/applications/misc/navi/default.nix new file mode 100644 index 000000000000..9b96fea718bf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/navi/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, fzf, lib, makeWrapper, rustPlatform, wget, libiconv }: + +rustPlatform.buildRustPackage rec { + pname = "navi"; + version = "2.16.0"; + + src = fetchFromGitHub { + owner = "denisidoro"; + repo = "navi"; + rev = "v${version}"; + sha256 = "sha256-ngSZFYGE+Varul/qwavMO3xcMIp8w2WETWXc573wYhQ="; + }; + + cargoSha256 = "sha256-qtxFTk0iCxPa4Z7H9+QWSii+iYrLUV2LfiAEbePdhOQ="; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; + + postInstall = '' + wrapProgram $out/bin/navi \ + --prefix PATH : "$out/bin" \ + --prefix PATH : ${lib.makeBinPath [ fzf wget ]} + ''; + + meta = with lib; { + description = "An interactive cheatsheet tool for the command-line and application launchers"; + homepage = "https://github.com/denisidoro/navi"; + license = licenses.asl20; + platforms = platforms.unix; + maintainers = with maintainers; [ cust0dian ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/navipowm/default.nix b/nixpkgs/pkgs/applications/misc/navipowm/default.nix new file mode 100644 index 000000000000..0727f8672910 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/navipowm/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, qt4, qmake4Hook }: +stdenv.mkDerivation rec { + name = "navipowm-0.2.4"; + + src = fetchurl { + url = "mirror://sourceforge/navipowm/NaviPOWM-0.2.4.tar.gz"; + sha256 = "1kdih8kwpgcgfh6l6njkr9gq2j5hv39xvzmzgvhip553kn6bss7b"; + }; + + preConfigure = '' + cd Qt/KDevelop + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/${name}/Icons + cp bin/NaviPOWM $out/bin + cp ../../common/Config/navipowm.ini $out/share/${name} + cp ../../common/Images/* $out/share/${name} + ''; + + buildInputs = [ qt4 ]; + nativeBuildInputs = [ qmake4Hook ]; + + meta = { + homepage = "http://navipowm.sourceforge.net/"; + description = "Car navigation system"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/neap/default.nix b/nixpkgs/pkgs/applications/misc/neap/default.nix new file mode 100644 index 000000000000..e5f50dd33706 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/neap/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, python2Packages }: + +stdenv.mkDerivation rec { + pname = "neap"; + version = "0.7.2"; + + src = fetchFromGitHub { + owner = "vzxwco"; + repo = "neap"; + rev = "v${version}"; + sha256 = "04da8rq23rl1qcvrdm5m3l90xbwyli7x601sckv7hmkip2q3g1kz"; + }; + + nativeBuildInputs = [ + python2Packages.wrapPython + ]; + + buildInputs = [ + python2Packages.python + ]; + + pythonPath = [ + python2Packages.xlib + python2Packages.pygtk + ]; + + installPhase = '' + install -D -t $out/bin neap + install -D -t $out/share/man/man1 neap.1 + install -D -t $out/share/applications neap.desktop + ''; + + postFixup = '' + wrapPythonPrograms + ''; + + meta = with lib; { + description = "Systray workspace pager"; + homepage = "https://github.com/vzxwco/neap"; + license = licenses.bsd2; + platforms = platforms.unix; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/neo4j-desktop/default.nix b/nixpkgs/pkgs/applications/misc/neo4j-desktop/default.nix new file mode 100644 index 000000000000..967c3db4c651 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/neo4j-desktop/default.nix @@ -0,0 +1,33 @@ +{ appimageTools, lib, fetchurl }: +let + pname = "neo4j-desktop"; + version = "1.4.7"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://s3-eu-west-1.amazonaws.com/dist.neo4j.org/${pname}/linux-offline/${name}-x86_64.AppImage"; + hash = "sha256-oEcSW7UIeiGY2fCPJQ5EtDBRtd73Q04HaSk+7ObLKJc="; + }; + + appimageContents = appimageTools.extract { inherit name src; }; +in appimageTools.wrapType2 { + inherit name src; + + extraPkgs = pkgs: with pkgs; [ libsecret ]; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + cp -r ${appimageContents}/usr/share/icons $out/share + ''; + + meta = with lib; { + description = "A GUI front-end for Neo4j"; + homepage = "https://neo4j.com/"; + license = licenses.unfree; + maintainers = [ maintainers.bobvanderlinden ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nimbo/default.nix b/nixpkgs/pkgs/applications/misc/nimbo/default.nix new file mode 100644 index 000000000000..802a9f9a32c1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nimbo/default.nix @@ -0,0 +1,36 @@ +{ lib, setuptools, boto3, requests, click, pyyaml, pydantic +, buildPythonApplication, pythonOlder, installShellFiles, fetchFromGitHub +, awscli }: + +buildPythonApplication rec { + pname = "nimbo"; + version = "0.2.4"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "nimbo-sh"; + repo = pname; + rev = "v${version}"; + sha256 = "1fs28s9ynfxrb4rzba6cmik0kl0q0vkpb4zdappsq62jqf960k24"; + }; + nativeBuildInputs = [ installShellFiles ]; + propagatedBuildInputs = [ setuptools boto3 awscli requests click pyyaml pydantic ]; + + # nimbo tests require an AWS instance + doCheck = false; + pythonImportsCheck = [ "nimbo" ]; + + postInstall = '' + installShellCompletion --cmd nimbo \ + --zsh <(_NIMBO_COMPLETE=source_zsh $out/bin/nimbo) \ + --bash <(_NIMBO_COMPLETE=source_bash $out/bin/nimbo) \ + --fish <(_NIMBO_COMPLETE=source_fish $out/bin/nimbo) + ''; + + meta = with lib; { + description = "Run machine learning jobs on AWS with a single command"; + homepage = "https://github.com/nimbo-sh/nimbo"; + license = licenses.bsl11; + maintainers = with maintainers; [ alex-eyre noreferences ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nix-tour/default.nix b/nixpkgs/pkgs/applications/misc/nix-tour/default.nix new file mode 100644 index 000000000000..dda4dcb47e57 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nix-tour/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchgit, electron, runtimeShell } : + +stdenv.mkDerivation rec { + pname = "nix-tour"; + version = "0.0.1"; + + buildInputs = [ electron ]; + + src = fetchgit { + url = "https://github.com/nixcloud/tour_of_nix"; + rev = "v${version}"; + sha256 = "09b1vxli4zv1nhqnj6c0vrrl51gaira94i8l7ww96fixqxjgdwvb"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share + cp -R * $out/share + chmod 0755 $out/share/ -R + echo "#!${runtimeShell}" > $out/bin/nix-tour + echo "cd $out/share/" >> $out/bin/nix-tour + echo "${electron}/bin/electron $out/share/electron-main.js" >> $out/bin/nix-tour + chmod 0755 $out/bin/nix-tour + ''; + + meta = with lib; { + description = "'the tour of nix' from nixcloud.io/tour as offline version"; + homepage = "https://nixcloud.io/tour"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ qknight ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/nixnote2/default.nix b/nixpkgs/pkgs/applications/misc/nixnote2/default.nix new file mode 100644 index 000000000000..cbb7a110c4c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nixnote2/default.nix @@ -0,0 +1,45 @@ +{ lib, mkDerivation, fetchFromGitHub, boost +, qtbase, qtwebkit, poppler, qmake, hunspell, html-tidy}: + +mkDerivation rec { + pname = "nixnote2"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "baumgarr"; + repo = "nixnote2"; + rev = "v${version}"; + sha256 = "0cfq95mxvcgby66r61gclm1a2c6zck5aln04xmg2q8kg6p9d31fr"; + }; + + buildInputs = [ boost qtbase qtwebkit poppler hunspell ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ qmake ]; + + postPatch = '' + # Fix location of poppler-qt5.h + for f in threads/indexrunner.cpp html/noteformatter.cpp utilities/noteindexer.cpp gui/plugins/popplerviewer.h gui/plugins/pluginfactory.h gui/plugins/popplerviewer.cpp ; do + substituteInPlace $f \ + --replace '#include <poppler-qt5.h>' '#include <poppler/qt5/poppler-qt5.h>' + done + + substituteInPlace help/about.html --replace '__VERSION__' '${version}' + + substituteInPlace nixnote.cpp --replace 'tidyProcess.start("tidy' 'tidyProcess.start("${html-tidy}/bin/tidy' + ''; + + postInstall = '' + cp images/windowIcon.png $out/share/pixmaps/nixnote2.png + cp theme.ini $out/share/nixnote2/theme.ini + ''; + + meta = with lib; { + description = "An unofficial client of Evernote"; + homepage = "http://www.nixnote.org/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ htr ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nnn/default.nix b/nixpkgs/pkgs/applications/misc/nnn/default.nix new file mode 100644 index 000000000000..d6b121081b42 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nnn/default.nix @@ -0,0 +1,60 @@ +{ lib +, stdenv +, fetchFromGitHub +, installShellFiles +, makeWrapper +, pkg-config +, file +, ncurses +, readline +, which +# options +, conf ? null +, withIcons ? false +, withNerdIcons ? false +}: + +# Mutually exclusive options +assert withIcons -> withNerdIcons == false; +assert withNerdIcons -> withIcons == false; + +stdenv.mkDerivation rec { + pname = "nnn"; + version = "4.1.1"; + + src = fetchFromGitHub { + owner = "jarun"; + repo = pname; + rev = "v${version}"; + sha256 = "09z37lv57nbp0l1ax28558jk5jv91lb22bgaclirvdyz2qp47xhj"; + }; + + configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf); + preBuild = lib.optionalString (conf != null) "cp ${configFile} src/nnn.h"; + + nativeBuildInputs = [ installShellFiles makeWrapper pkg-config ]; + buildInputs = [ readline ncurses ]; + + makeFlags = [ "PREFIX=${placeholder "out"}" ] + ++ lib.optional withIcons [ "O_ICONS=1" ] + ++ lib.optional withNerdIcons [ "O_NERD=1" ]; + + binPath = lib.makeBinPath [ file which ]; + + postInstall = '' + installShellCompletion --bash --name nnn.bash misc/auto-completion/bash/nnn-completion.bash + installShellCompletion --fish misc/auto-completion/fish/nnn.fish + installShellCompletion --zsh misc/auto-completion/zsh/_nnn + + wrapProgram $out/bin/nnn --prefix PATH : "$binPath" + ''; + + meta = with lib; { + description = "Small ncurses-based file browser forked from noice"; + homepage = "https://github.com/jarun/nnn"; + changelog = "https://github.com/jarun/nnn/blob/v${version}/CHANGELOG"; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ jfrankenau Br1ght0ne ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/noice/default.nix b/nixpkgs/pkgs/applications/misc/noice/default.nix new file mode 100644 index 000000000000..73648d896d08 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/noice/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchgit, ncurses, conf ? null }: + +with lib; + +stdenv.mkDerivation rec { + pname = "noice"; + version = "0.8"; + + src = fetchgit { + url = "git://git.2f30.org/noice.git"; + rev = "refs/tags/v${version}"; + sha256 = "0975j4m93s9a21pazwdzn4gqhkngwq7q6ghp0q8a75r6c4fb7aar"; + }; + + configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf); + preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h"; + + buildInputs = [ ncurses ]; + + buildFlags = [ "LDLIBS=-lncurses" ]; + + installFlags = [ "DESTDIR=$(out)" "PREFIX=" ]; + + meta = { + description = "Small ncurses-based file browser"; + homepage = "https://git.2f30.org/noice/"; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ jfrankenau ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/notable/default.nix b/nixpkgs/pkgs/applications/misc/notable/default.nix new file mode 100644 index 000000000000..923f5fb4528e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/notable/default.nix @@ -0,0 +1,47 @@ +{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }: + +let + pname = "notable"; + version = "1.8.4"; + sha256 = "0rvz8zwsi62kiq89pv8n2wh9h5yb030kvdr1vf65xwqkhqcrzrby"; + + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/notable/notable/releases/download/v${version}/Notable-${version}.AppImage"; + inherit sha256; + }; + + appimageContents = appimageTools.extract { + inherit name src; + }; + +in +appimageTools.wrapType2 rec { + + inherit name src; + + profile = '' + export LC_ALL=C.UTF-8 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [ p.at-spi2-atk p.at-spi2-core ]; + extraInstallCommands = '' + mv $out/bin/{${name},${pname}} + install -m 444 -D ${appimageContents}/notable.desktop $out/share/applications/notable.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/1024x1024/apps/notable.png \ + $out/share/icons/hicolor/1024x1024/apps/notable.png + substituteInPlace $out/share/applications/notable.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "The markdown-based note-taking app that doesn't suck"; + homepage = "https://github.com/notable/notable"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/notejot/default.nix b/nixpkgs/pkgs/applications/misc/notejot/default.nix new file mode 100644 index 000000000000..bd30fa2bb211 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/notejot/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, fetchFromGitHub +, gtk4 +, gtksourceview +, json-glib +, libadwaita +, libgee +, meson +, ninja +, nix-update-script +, pantheon +, pkg-config +, python3 +, vala +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "notejot"; + version = "3.0.4"; + + src = fetchFromGitHub { + owner = "lainsce"; + repo = pname; + rev = version; + hash = "sha256-p8rca3PsnT/3Lp6W30VvqR9aPr6EIuNrH5gsxL0lZ0Q="; + }; + + nativeBuildInputs = [ + meson + ninja + vala + pkg-config + python3 + wrapGAppsHook + ]; + buildInputs = [ + gtk4 + gtksourceview + json-glib + libadwaita + libgee + pantheon.elementary-icon-theme + pantheon.granite + ]; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + meta = with lib; { + homepage = "https://github.com/lainsce/notejot"; + description = "Stupidly-simple sticky notes applet"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.linux; + }; + + passthru.updateScript = nix-update-script { + attrPath = pname; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix new file mode 100644 index 000000000000..820eceabb511 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv +, dbus-glib +, fetchurl +, glib +, gnome +, libnotify +, libtool +, libwnck +, makeWrapper +, pkg-config +, gsettings-desktop-schemas +}: + +let baseURI = "https://launchpad.net/~leolik/+archive/leolik"; +in stdenv.mkDerivation rec { + pname = "notify-osd"; + version = "0.9.35+16.04.20160415"; + + src = fetchurl { + url = "${baseURI}/+files/notify-osd_${version}-0ubuntu1-leolik~ppa0.tar.gz"; + sha256 = "026dr46jh3xc4103wnslzy7pxbxkkpflh52c59j8vzwaa7bvvzkv"; + name = "notify-osd-customizable.tar.gz"; + }; + + preConfigure = "./autogen.sh --libexecdir=$(out)/bin"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + glib libwnck libnotify dbus-glib makeWrapper + gsettings-desktop-schemas gnome.gnome-common + libtool + ]; + + configureFlags = [ "--libexecdir=$(out)/bin" ]; + + preFixup = '' + wrapProgram "$out/bin/notify-osd" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with lib; { + description = "Daemon that displays passive pop-up notifications"; + homepage = "https://launchpad.net/notify-osd"; + license = licenses.gpl3; + maintainers = [ maintainers.imalison ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/notify-osd/default.nix b/nixpkgs/pkgs/applications/misc/notify-osd/default.nix new file mode 100644 index 000000000000..005d0273466c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/notify-osd/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, pkg-config, glib, libwnck, libnotify, dbus-glib, makeWrapper, gsettings-desktop-schemas }: + +stdenv.mkDerivation rec { + pname = "notify-osd"; + version = "0.9.34"; + + src = fetchurl { + url = "https://launchpad.net/notify-osd/precise/${version}/+download/notify-osd-${version}.tar.gz"; + sha256 = "0g5a7a680b05x27apz0y1ldl5csxpp152wqi42s107jymbp0s20j"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + glib libwnck libnotify dbus-glib makeWrapper + gsettings-desktop-schemas + ]; + + configureFlags = [ "--libexecdir=$(out)/bin" ]; + + preFixup = '' + wrapProgram "$out/bin/notify-osd" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with lib; { + description = "Daemon that displays passive pop-up notifications"; + homepage = "https://launchpad.net/notify-osd"; + license = licenses.gpl3; + maintainers = [ maintainers.bodil ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nrsc5/default.nix b/nixpkgs/pkgs/applications/misc/nrsc5/default.nix new file mode 100644 index 000000000000..e55438f0eb11 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nrsc5/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchFromGitHub, + autoconf, automake, libtool, cmake, + rtl-sdr, libao, fftwFloat +} : +let + src_faad2 = fetchFromGitHub { + owner = "dsvensson"; + repo = "faad2"; + rev = "b7aa099fd3220b71180ed2b0bc19dc6209a1b418"; + sha256 = "0pcw2x9rjgkf5g6irql1j4m5xjb4lxj6468z8v603921bnir71mf"; + }; + + version = "1.0"; + +in stdenv.mkDerivation { + pname = "nrsc5"; + inherit version; + + src = fetchFromGitHub { + owner = "theori-io"; + repo = "nrsc5"; + rev = "v${version}"; + sha256 = "09zzh3h1zzf2lwrbz3i7rif2hw36d9ska8irvxaa9lz6xc1y68pg"; + }; + + postUnpack = '' + export srcRoot=`pwd` + export faadSrc="$srcRoot/faad2-prefix/src/faad2_external" + mkdir -p $faadSrc + cp -r ${src_faad2}/* $faadSrc + chmod -R u+w $faadSrc + ''; + + postPatch = '' + sed -i '/GIT_REPOSITORY/d' CMakeLists.txt + sed -i '/GIT_TAG/d' CMakeLists.txt + sed -i "s:set (FAAD2_PREFIX .*):set (FAAD2_PREFIX \"$srcRoot/faad2-prefix\"):" CMakeLists.txt + ''; + + nativeBuildInputs = [ cmake autoconf automake libtool ]; + buildInputs = [ rtl-sdr libao fftwFloat ]; + + cmakeFlags = [ "-DUSE_COLOR=ON" "-DUSE_FAAD2=ON" ]; + + meta = with lib; { + homepage = "https://github.com/theori-io/nrsc5"; + description = "HD-Radio decoder for RTL-SDR"; + platforms = lib.platforms.linux; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ markuskowa ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/numberstation/default.nix b/nixpkgs/pkgs/applications/misc/numberstation/default.nix new file mode 100644 index 000000000000..c51306bb93fe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/numberstation/default.nix @@ -0,0 +1,68 @@ +{ lib +, python3 +, fetchFromSourcehut +, desktop-file-utils +, glib +, gobject-introspection +, gtk3 +, libhandy +, librsvg +, meson +, ninja +, pkg-config +, wrapGAppsHook +}: + +python3.pkgs.buildPythonApplication rec { + pname = "numberstation"; + version = "0.4.0"; + + format = "other"; + + src = fetchFromSourcehut { + owner = "~martijnbraam"; + repo = "numberstation"; + rev = version; + sha256 = "038yyffqknr274f7jh5z12y68pjxr37f8y2cn2pwhf605jmbmpwv"; + }; + + postPatch = '' + patchShebangs build-aux/meson + ''; + + nativeBuildInputs = [ + desktop-file-utils + glib + gtk3 + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + gobject-introspection + gtk3 + libhandy + librsvg + ]; + + propagatedBuildInputs = with python3.pkgs; [ + keyring + pygobject3 + pyotp + ]; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "TOTP Authentication application for mobile"; + homepage = "https://sr.ht/~martijnbraam/numberstation/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nut/default.nix b/nixpkgs/pkgs/applications/misc/nut/default.nix new file mode 100644 index 000000000000..4694c243b391 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nut/default.nix @@ -0,0 +1,58 @@ +{ lib, stdenv, fetchurl, pkg-config, neon, libusb-compat-0_1, openssl, udev, avahi, freeipmi +, libtool, makeWrapper, autoreconfHook, fetchpatch +}: + +stdenv.mkDerivation rec { + pname = "nut"; + version = "2.7.4"; + + src = fetchurl { + url = "https://networkupstools.org/source/2.7/${pname}-${version}.tar.gz"; + sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq"; + }; + + patches = [ + (fetchpatch { + # Fix build with openssl >= 1.1.0 + url = "https://github.com/networkupstools/nut/commit/612c05efb3c3b243da603a3a050993281888b6e3.patch"; + sha256 = "0jdbii1z5sqyv24286j5px65j7b3gp8zk3ahbph83pig6g46m3hs"; + }) + ]; + + buildInputs = [ neon libusb-compat-0_1 openssl udev avahi freeipmi ]; + + nativeBuildInputs = [ autoreconfHook libtool pkg-config makeWrapper ]; + + configureFlags = + [ "--with-all" + "--with-ssl" + "--without-snmp" # Until we have it ... + "--without-powerman" # Until we have it ... + "--without-cgi" + "--without-hal" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + "--with-udev-dir=$(out)/etc/udev" + ]; + + enableParallelBuilding = true; + + postInstall = '' + wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \ + "$out/lib:${neon}/lib:${libusb-compat-0_1.out}/lib:${avahi}/lib:${freeipmi}/lib" + ''; + + meta = with lib; { + description = "Network UPS Tools"; + longDescription = '' + Network UPS Tools is a collection of programs which provide a common + interface for monitoring and administering UPS, PDU and SCD hardware. + It uses a layered approach to connect all of the parts. + ''; + homepage = "https://networkupstools.org/"; + repositories.git = "https://github.com/networkupstools/nut.git"; + platforms = platforms.linux; + maintainers = [ maintainers.pierron ]; + license = with licenses; [ gpl1Plus gpl2Plus gpl3Plus ]; + priority = 10; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nwg-drawer/default.nix b/nixpkgs/pkgs/applications/misc/nwg-drawer/default.nix new file mode 100644 index 000000000000..4e6518c6ffd2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nwg-drawer/default.nix @@ -0,0 +1,35 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, pkg-config +, cairo +, gobject-introspection +, gtk3 +, gtk-layer-shell +}: + +buildGoModule rec { + pname = "nwg-drawer"; + version = "0.1.4"; + + src = fetchFromGitHub { + owner = "nwg-piotr"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-YjMuXSBAgRh6vZUxKHLTqT2lEU/f+AuI/dX4PHfftZg="; + }; + + vendorSha256 = "sha256-HyrjquJ91ddkyS8JijHd9HjtfwSQykXCufa2wzl8RNk="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ cairo gobject-introspection gtk3 gtk-layer-shell ]; + + meta = with lib; { + description = "Application drawer for sway Wayland compositor"; + homepage = "https://github.com/nwg-piotr/nwg-drawer"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ plabadens ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix b/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix new file mode 100644 index 000000000000..2dbcef8779f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv +, fetchFromGitHub +, cmake +, gtkmm3 +, meson +, ninja +, nlohmann_json +, pkg-config +, swaylock +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "nwg-launchers"; + version = "0.4.4"; + + src = fetchFromGitHub { + owner = "nwg-piotr"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-krhFtFQZSwfKPHmVxPGNySPL2Y9+kA0fxjZ/D+mNks4="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + cmake + makeWrapper + ]; + + buildInputs = [ + gtkmm3 + nlohmann_json + ]; + + postInstall = '' + wrapProgram $out/bin/nwgbar \ + --prefix PATH : "${swaylock}/bin" + ''; + + meta = with lib; { + description = "GTK-based launchers: application grid, button bar, dmenu for sway and other window managers"; + homepage = "https://github.com/nwg-piotr/nwg-launchers"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ bbigras ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nwg-menu/default.nix b/nixpkgs/pkgs/applications/misc/nwg-menu/default.nix new file mode 100644 index 000000000000..5c4b508bb6bd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nwg-menu/default.nix @@ -0,0 +1,48 @@ +{ lib, fetchFromGitHub +, buildGoModule, pkg-config, wrapGAppsHook, gobject-introspection +, gtk-layer-shell, gtk3, pango, gdk-pixbuf, atk +}: + +buildGoModule rec { + pname = "nwg-menu"; + version = "unstable-2021-06-12"; + + src = fetchFromGitHub { + owner = "nwg-piotr"; + repo = "nwg-menu"; + rev = "b0746e26514a047ed9c6b975a71b7263aa39bd56"; + hash = "sha256-rxyf3CfpfWnRAlIR/pl+s7LGAZbZjdtNWPPK7BecdhQ="; + }; + + vendorSha256 = "sha256-nN5iBleK12SKY9PBiDA+tM4B8FiVGZLXbtJM2+YrEfA="; + + runVend = true; + + doCheck = false; + + buildInputs = [ atk gtk3 gdk-pixbuf gtk-layer-shell pango ]; + nativeBuildInputs = [ pkg-config wrapGAppsHook gobject-introspection ]; + + prePatch = '' + for file in main.go tools.go; do + substituteInPlace $file --replace '/usr/share/nwg-menu' $out/share + done + ''; + + postInstall = '' + mkdir -p $out/share/ + cp menu-start.css $out/share/ + ''; + + preFixup = '' + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$out/share") + ''; + + meta = with lib; { + homepage = "https://github.com/nwg-piotr/nwg-menu"; + description = "MenuStart plugin for nwg-panel"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ berbiche ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nwg-panel/default.nix b/nixpkgs/pkgs/applications/misc/nwg-panel/default.nix new file mode 100644 index 000000000000..4636477c1c51 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nwg-panel/default.nix @@ -0,0 +1,57 @@ +{ lib, fetchFromGitHub +, python3Packages, wrapGAppsHook, gobject-introspection +, gtk-layer-shell, pango, gdk-pixbuf, atk +# Extra packages called by various internal nwg-panel modules +, sway # swaylock, swaymsg +, systemd # systemctl +, wlr-randr # wlr-randr +, nwg-menu # nwg-menu +, light # light +, pamixer # pamixer +, pulseaudio # pactl +}: + +python3Packages.buildPythonApplication rec { + pname = "nwg-panel"; + version = "0.3.2"; + + src = fetchFromGitHub { + owner = "nwg-piotr"; + repo = "nwg-panel"; + rev = "v${version}"; + hash = "sha256-x5lGVF6eRhOVXrsBatdsiUiWs/+FxRlCtp79zA206RY="; + }; + + # No tests + doCheck = false; + + # Because of wrapGAppsHook + strictDeps = false; + dontWrapGApps = true; + + buildInputs = [ atk gdk-pixbuf gtk-layer-shell pango ]; + nativeBuildInputs = [ wrapGAppsHook gobject-introspection ]; + propagatedBuildInputs = with python3Packages; [ i3ipc netifaces psutil pybluez pygobject3 ]; + + postInstall = '' + mkdir -p $out/share/{applications,pixmaps} + cp $src/nwg-panel-config.desktop $out/share/applications/ + cp $src/nwg-shell.svg $src/nwg-panel.svg $out/share/pixmaps/ + ''; + + preFixup = '' + makeWrapperArgs+=( + "''${gappsWrapperArgs[@]}" + --prefix XDG_DATA_DIRS : "$out/share" + --prefix PATH : "${lib.makeBinPath [ light nwg-menu pamixer pulseaudio sway systemd wlr-randr ]}" + ) + ''; + + meta = with lib; { + homepage = "https://github.com/nwg-piotr/nwg-panel"; + description = "GTK3-based panel for Sway window manager"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ berbiche ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix b/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix new file mode 100644 index 000000000000..9567b051f591 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix @@ -0,0 +1,41 @@ +{ lib, python3Packages, fetchFromGitHub, gtk-layer-shell, gtk3, gobject-introspection, wrapGAppsHook, wlr-randr }: + +python3Packages.buildPythonPackage rec { + pname = "nwg-wrapper"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "nwg-piotr"; + repo = pname; + rev = "v${version}"; + sha256 = "1rpkcjr0chmgsfkan88lsi476bamg9a6y7h0x9zsh60a9rdf7dl8"; + }; + + nativeBuildInputs = [ gobject-introspection wrapGAppsHook ]; + + buildInputs = [ gtk3 gtk-layer-shell ]; + + propagatedBuildInputs = with python3Packages; [ i3ipc pygobject3 ]; + + # ValueError: Namespace GtkLayerShell not available + strictDeps = false; + + # No tests + doCheck = false; + + preFixup = '' + makeWrapperArgs+=( + "''${gappsWrapperArgs[@]}" + --prefix PATH : "${lib.makeBinPath [ wlr-randr ]}" + ) + ''; + + pythonImportsCheck = [ "nwg_wrapper" ]; + + meta = with lib; { + description = "Wrapper to display a script output or a text file content on the desktop in sway or other wlroots-based compositors"; + homepage = "https://github.com/nwg-piotr/nwg-wrapper/"; + license = licenses.mit; + maintainers = with maintainers; [ artturin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/obinskit/default.nix b/nixpkgs/pkgs/applications/misc/obinskit/default.nix new file mode 100644 index 000000000000..5e37e74902e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/obinskit/default.nix @@ -0,0 +1,64 @@ +{ stdenv +, lib +, fetchurl +, libxkbcommon +, systemd +, xorg +, electron_3 +, makeWrapper +, makeDesktopItem +}: +let + desktopItem = makeDesktopItem rec { + name = "Obinskit"; + exec = "obinskit"; + icon = "obinskit"; + desktopName = "Obinskit"; + genericName = "Obinskit keyboard configurator"; + categories = "Utility"; + }; + electron = electron_3; +in +stdenv.mkDerivation rec { + pname = "obinskit"; + version = "1.1.4"; + + src = fetchurl { + url = "http://releases.obins.net/occ/linux/tar/ObinsKit_${version}_x64.tar.gz"; + sha256 = "0q422rmfn4k4ww1qlgrwdmxz4l10dxkd6piynbcw5cr4i5icnh2l"; + }; + + unpackPhase = "tar -xzf $src"; + + sourceRoot = "ObinsKit_${version}_x64"; + + nativeBuildInputs = [ makeWrapper ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/opt/obinskit + + cp -r resources $out/opt/obinskit/ + cp -r locales $out/opt/obinskit/ + + mkdir -p $out/share/{applications,pixmaps} + install resources/icons/tray-darwin@2x.png $out/share/pixmaps/obinskit.png + ln -s ${desktopItem}/share/applications/* $out/share/applications + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/opt/obinskit/resources/app.asar \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon (lib.getLib systemd) xorg.libXt ]}" + ''; + + meta = with lib; { + description = "Graphical configurator for Anne Pro and Anne Pro II keyboards"; + homepage = "http://en.obins.net/obinskit/"; # https is broken + license = licenses.unfree; + maintainers = with maintainers; [ shou ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/obsidian/default.nix b/nixpkgs/pkgs/applications/misc/obsidian/default.nix new file mode 100644 index 000000000000..39044301ec7c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/obsidian/default.nix @@ -0,0 +1,74 @@ +{ stdenv, fetchurl, lib, makeWrapper, electron, makeDesktopItem, graphicsmagick +, writeScript }: + +let + icon = fetchurl { + url = + "https://forum.obsidian.md/uploads/default/original/1X/bf119bd48f748f4fd2d65f2d1bb05d3c806883b5.png"; + sha256 = "18ylnbvxr6k4x44c4i1d55wxy2dq4fdppp43a4wl6h6zar0sc9s2"; + }; + + desktopItem = makeDesktopItem { + name = "obsidian"; + desktopName = "Obsidian"; + comment = "Knowledge base"; + icon = "obsidian"; + exec = "obsidian"; + categories = "Office"; + }; + + updateScript = writeScript "obsidian-updater" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl jq common-updater-scripts + + set -eu -o pipefail + + latestVersion="$(curl -sS https://raw.githubusercontent.com/obsidianmd/obsidian-releases/master/desktop-releases.json | jq -r '.latestVersion')" + + update-source-version obsidian "$latestVersion" + ''; + +in stdenv.mkDerivation rec { + pname = "obsidian"; + version = "0.12.3"; + + src = fetchurl { + url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz"; + sha256 = "sha256-nwtQp7BkMZwMzfnA5wdcMAhfezM//Lm9cf0pbvnOVZE="; + }; + + nativeBuildInputs = [ makeWrapper graphicsmagick ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + + makeWrapper ${electron}/bin/electron $out/bin/obsidian \ + --add-flags $out/share/obsidian/app.asar + + install -m 444 -D resources/app.asar $out/share/obsidian/app.asar + install -m 444 -D resources/obsidian.asar $out/share/obsidian/obsidian.asar + + install -m 444 -D "${desktopItem}/share/applications/"* \ + -t $out/share/applications/ + + for size in 16 24 32 48 64 128 256 512; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + gm convert -resize "$size"x"$size" ${icon} $out/share/icons/hicolor/"$size"x"$size"/apps/obsidian.png + done + + runHook postInstall + ''; + + passthru.updateScript = updateScript; + + meta = with lib; { + description = + "A powerful knowledge base that works on top of a local folder of plain text Markdown files"; + homepage = "https://obsidian.md"; + license = licenses.obsidian; + maintainers = with maintainers; [ conradmearns zaninime ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ocropus/default.nix b/nixpkgs/pkgs/applications/misc/ocropus/default.nix new file mode 100644 index 000000000000..507399c012bb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ocropus/default.nix @@ -0,0 +1,59 @@ +{ lib, fetchFromGitHub, fetchurl, pythonPackages, curl }: + +let + getmodel = name: sha256: { + inherit name; + src = fetchurl { + url = "http://www.tmbdev.net/ocropy/${name}"; + inherit sha256; + }; + }; + + models = [ + (getmodel "en-default.pyrnn.gz" + "1xyi3k3p81mfw0491gb1haisazfyi2i18f1wjs1m34ak39qfqjdp") + (getmodel "fraktur.pyrnn.gz" + "1wlwvxn91ilgmlri1hj81arl3mbzxc24ycdnkf5icq4hdi4c6y8b") + ]; + +in +pythonPackages.buildPythonApplication rec { + pname = "ocropus"; + version = "1.3.3"; + + src = fetchFromGitHub { + sha256 = "02p1334mic5cfhvpfphfrbim4036yfd8s2zzpwm0xmm829z71nr7"; + rev = "v${version}"; + repo = "ocropy"; + owner = "tmbdev"; + }; + + propagatedBuildInputs = with pythonPackages; [ curl numpy scipy pillow + matplotlib beautifulsoup4 pygtk lxml ]; + + enableParallelBuilding = true; + + preConfigure = with lib; '' + ${concatStrings (map (x: "cp -R ${x.src} models/`basename ${x.name}`;") + models)} + + substituteInPlace ocrolib/common.py --replace /usr/local $out + substituteInPlace ocrolib/default.py --replace /usr/local $out + ''; + + doCheck = false; # fails + checkPhase = '' + patchShebangs . + substituteInPlace ./run-test \ + --replace 'ocropus-rpred' 'ocropus-rpred -Q $NIX_BUILD_CORES' + PATH=".:$PATH" ./run-test + ''; + + meta = with lib; { + description = "Open source document analysis and OCR system"; + license = licenses.asl20; + homepage = "https://github.com/tmbdev/ocropy/"; + maintainers = with maintainers; [ domenkozar ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/octoprint/default.nix b/nixpkgs/pkgs/applications/misc/octoprint/default.nix new file mode 100644 index 000000000000..d7393313c151 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/octoprint/default.nix @@ -0,0 +1,219 @@ +{ pkgs +, stdenv +, lib +, fetchFromGitHub +, python3 +, nix-update-script + # To include additional plugins, pass them here as an overlay. +, packageOverrides ? self: super: {} +}: +let + mkOverride = attrname: version: sha256: + self: super: { + ${attrname} = super.${attrname}.overridePythonAttrs ( + oldAttrs: { + inherit version; + src = oldAttrs.src.override { + inherit version sha256; + }; + } + ); + }; + + py = python3.override { + self = py; + packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) ( + [ + # the following dependencies are non trivial to update since later versions introduce backwards incompatible + # changes that might affect plugins, or due to other observed problems + (mkOverride "flask-babel" "1.0.0" "0gmb165vkwv5v7dxsxa2i3zhafns0fh938m2zdcrv4d8z5l099yn") + (mkOverride "rsa" "4.0" "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487") + (mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a") + (mkOverride "tornado" "5.1.1" "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409") + (mkOverride "unidecode" "0.04.21" "280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051") + (mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s") + + # Requires websocket-client <1.0, >=0.57. Cannot do mkOverride b/c differing underscore/hyphen in pypi source name + ( + self: super: { + websocket-client = super.websocket-client.overridePythonAttrs ( + oldAttrs: rec { + version = "0.58.0"; + src = oldAttrs.src.override { + pname = "websocket_client"; + inherit version; + sha256 = "63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f"; + }; + propagatedBuildInputs = [ self.six ]; + } + ); + } + ) + + # Octoprint needs zeroconf >=0.24 <0.25. This can't be done via mkOverride, because in zeroconf 0.32 + # the super package was migrated to fetchFromGitHub. + ( + self: super: { + zeroconf = super.zeroconf.overrideAttrs (oldAttrs: rec { + version = "0.24.5"; + src = super.fetchPypi { + inherit (oldAttrs) pname; + inherit version; + sha256 = "0jpgd0rk91si93857mjrizan5gc42kj1q4fi4160qgk68la88fl9"; + }; + pythonImportsCheck = [ + "zeroconf" + ]; + buildInputs = with self; [ + pytestCheckHook + nose + ]; + pytestFlagsArray = [ "zeroconf/test.py" ]; + }); + } + ) + + # Built-in dependency + ( + self: super: { + octoprint-filecheck = self.buildPythonPackage rec { + pname = "OctoPrint-FileCheck"; + version = "2020.08.07"; + + src = fetchFromGitHub { + owner = "OctoPrint"; + repo = "OctoPrint-FileCheck"; + rev = version; + sha256 = "05ys05l5x7d2bkg3yqrga6m65v3g5fcnnzbfab7j9w2pzjdapx5b"; + }; + doCheck = false; + }; + } + ) + + # Built-in dependency + ( + self: super: { + octoprint-firmwarecheck = self.buildPythonPackage rec { + pname = "OctoPrint-FirmwareCheck"; + version = "2020.09.23"; + + src = fetchFromGitHub { + owner = "OctoPrint"; + repo = "OctoPrint-FirmwareCheck"; + rev = version; + sha256 = "1l1ajhnsc39prgk59mp93h90dgl9gh660cci00z5b5gj2h6dv1d1"; + }; + doCheck = false; + }; + } + ) + + ( + self: super: { + octoprint = self.buildPythonPackage rec { + pname = "OctoPrint"; + version = "1.5.3"; + + src = fetchFromGitHub { + owner = "OctoPrint"; + repo = "OctoPrint"; + rev = version; + sha256 = "sha256-ZL/P/YIHynPmP8ssZZUKZDJscBsSsCq3UtOHrTVLpec="; + }; + + propagatedBuildInputs = with super; [ + blinker + cachelib + click + emoji + feedparser + filetype + flask + flask-babel + flask_assets + flask_login + frozendict + future + itsdangerous + jinja2 + markdown + markupsafe + netaddr + netifaces + octoprint-filecheck + octoprint-firmwarecheck + pkginfo + psutil + pylru + pyserial + pyyaml + regex + requests + rsa + sarge + semantic-version + sentry-sdk + tornado + unidecode + watchdog + websocket-client + werkzeug + wrapt + zeroconf + ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ]; + + checkInputs = with super; [ pytestCheckHook mock ddt ]; + + postPatch = let + ignoreVersionConstraints = [ + "emoji" + "sentry-sdk" + "watchdog" + ]; + in + '' + sed -r -i \ + ${lib.concatStringsSep "\n" ( + map ( + e: + ''-e 's@${e}[<>=]+.*@${e}",@g' \'' + ) ignoreVersionConstraints + )} + setup.py + ''; + + dontUseSetuptoolsCheck = true; + + preCheck = '' + export HOME=$(mktemp -d) + rm pytest.ini + ''; + + disabledTests = [ + "test_check_setup" # Why should it be able to call pip? + ] ++ lib.optionals stdenv.isDarwin [ + "test_set_external_modification" + ]; + + passthru = { + python = self.python; + updateScript = nix-update-script { attrPath = "octoprint"; }; + }; + + meta = with lib; { + homepage = "https://octoprint.org/"; + description = "The snappy web interface for your 3D printer"; + license = licenses.agpl3; + maintainers = with maintainers; [ abbradar gebner WhittlesJr ]; + }; + }; + } + ) + (import ./plugins.nix { inherit pkgs; }) + packageOverrides + ] + ); + }; +in + with py.pkgs; toPythonApplication octoprint diff --git a/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix new file mode 100644 index 000000000000..ae2151383bcf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix @@ -0,0 +1,415 @@ +{ pkgs }: + +with pkgs; + +self: super: let + buildPlugin = args: self.buildPythonPackage (args // { + pname = "OctoPrintPlugin-${args.pname}"; + inherit (args) version; + propagatedBuildInputs = (args.propagatedBuildInputs or []) ++ [ super.octoprint ]; + # none of the following have tests + doCheck = false; + }); +in { + inherit buildPlugin; + + m86motorsoff = buildPlugin rec { + pname = "M84MotorsOff"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "ntoff"; + repo = "Octoprint-M84MotOff"; + rev = "v${version}"; + sha256 = "1w6h4hia286lbz2gy33rslq02iypx067yqn413xcipb07ivhvdq7"; + }; + + meta = with lib; { + description = "Changes the \"Motors off\" button in octoprint's control tab to issue an M84 command to allow compatibility with Repetier firmware Resources"; + homepage = "https://github.com/ntoff/OctoPrint-M84MotOff"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ stunkymonkey ]; + }; + }; + + abl-expert = buildPlugin rec { + pname = "ABL_Expert"; + version = "0.6"; + + src = fetchgit { + url = "https://framagit.org/razer/Octoprint_ABL_Expert/"; + rev = version; + sha256 = "0ij3rvdwya1sbymwm5swlh2j4jagb6fal945g88zrzh5xf26hzjh"; + }; + + meta = with lib; { + description = "Marlin auto bed leveling control, mesh correction, and z probe handling"; + homepage = "https://framagit.org/razer/Octoprint_ABL_Expert/"; + license = licenses.agpl3; + maintainers = with maintainers; [ WhittlesJr ]; + }; + }; + + bedlevelvisualizer = buildPlugin rec { + pname = "BedLevelVisualizer"; + version = "0.1.15"; + + src = fetchFromGitHub { + owner = "jneilliii"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "1bq39fnarnpk8phxfbpx6l4n9anf358z1cgid5r89nadmn2a0cny"; + }; + + propagatedBuildInputs = with super; [ numpy ]; + + meta = with lib; { + description = "Displays 3D mesh of bed topography report"; + homepage = "https://github.com/jneilliii/OctoPrint-BedLevelVisualizer"; + license = licenses.agpl3; + maintainers = with maintainers; [ lovesegfault ]; + }; + }; + + costestimation = buildPlugin rec { + pname = "CostEstimation"; + version = "3.2.0"; + + src = fetchFromGitHub { + owner = "OllisGit"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "1j476jcw7gh8zqqdc5vddwv5wpjns7cd1hhpn7m9fxq3d5bi077w"; + }; + + meta = with lib; { + description = "Plugin to display the estimated print cost for the loaded model."; + homepage = "https://github.com/malnvenshorn/OctoPrint-CostEstimation"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ stunkymonkey ]; + }; + }; + + curaenginelegacy = buildPlugin rec { + pname = "CuraEngineLegacy"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "OctoPrint"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "1a7pxlmj1a7blkv97sn1k390pbjcxx2860011pbjcdnli74zpvv5"; + }; + + meta = with lib; { + description = "Plugin for slicing via Cura Legacy from within OctoPrint"; + homepage = "https://github.com/OctoPrint/OctoPrint-CuraEngineLegacy"; + license = licenses.agpl3; + maintainers = with maintainers; [ gebner ]; + }; + }; + + displayprogress = buildPlugin rec { + pname = "DisplayProgress"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "OctoPrint"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "080prvfwggl4vkzyi369vxh1n8231hrl8a44f399laqah3dn5qw4"; + }; + + meta = with lib; { + description = "Displays the job progress on the printer's display"; + homepage = "https://github.com/OctoPrint/OctoPrint-DisplayProgress"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ stunkymonkey ]; + }; + }; + + displaylayerprogress = buildPlugin rec { + pname = "OctoPrint-DisplayLayerProgress"; + version = "1.24.0"; + + src = fetchFromGitHub { + owner = "OllisGit"; + repo = pname; + rev = version; + sha256 = "1lbivg3rcjzv8zqvp8n8gcaczxdm7gvd5ihjb6jq0fgf958lv59n"; + }; + + meta = with lib; { + description = "OctoPrint-Plugin that sends the current progress of a print via M117 command"; + homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress"; + license = licenses.agpl3; + maintainers = with maintainers; [ j0hax ]; + }; + }; + + gcodeeditor = buildPlugin rec { + pname = "GcodeEditor"; + version = "0.2.9"; + + src = fetchFromGitHub { + owner = "ieatacid"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "1yjj9lmxbzmzrn7gahw9lj7554fphalbjjp8ns0rr9py3rshwxkm"; + }; + + meta = with lib; { + description = "Edit gcode on OctoPrint"; + homepage = "https://github.com/ieatacid/OctoPrint-GcodeEditor"; + license = licenses.agpl3; + maintainers = with maintainers; [ WhittlesJr ]; + }; + }; + + marlingcodedocumentation = buildPlugin rec { + pname = "MarlinGcodeDocumentation"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "costas-basdekis"; + repo = pname; + rev = "v${version}"; + sha256 = "0vx06w9hqwy0k4r8g67y8gdckfdx7wl8ghfx6hmxc1s8fgkghfkc"; + }; + + meta = with lib; { + description = "Displays GCode documentation for Marlin in the Octoprint terminal command line"; + homepage = "https://github.com/costas-basdekis/MarlinGcodeDocumentation"; + license = licenses.agpl3; + maintainers = with maintainers; [ lovesegfault ]; + }; + }; + + mqtt = buildPlugin rec { + pname = "MQTT"; + version = "0.8.7"; + + src = fetchFromGitHub { + owner = "OctoPrint"; + repo = "OctoPrint-MQTT"; + rev = version; + sha256 = "0k82h7wafbcqdvk5wjw4dp9lydwszfj1lf8vvymwbqdn7pf5h0dy"; + }; + + propagatedBuildInputs = with super; [ paho-mqtt ]; + + meta = with lib; { + description = "Publish printer status MQTT"; + homepage = "https://github.com/OctoPrint/OctoPrint-MQTT"; + license = licenses.agpl3; + maintainers = with maintainers; [ peterhoeg ]; + }; + }; + + printtimegenius = buildPlugin rec { + pname = "PrintTimeGenius"; + version = "2.2.6"; + + src = fetchFromGitHub { + owner = "eyal0"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "04zfgd3x3lbriyzwhpqnwdcfdm19fsqgsb7l2ix5d0ssmqxwg2r6"; + }; + + preConfigure = '' + # PrintTimeGenius ships with marlin-calc binaries for multiple architectures + rm */analyzers/marlin-calc* + sed 's@"{}.{}".format(binary_base_name, machine)@"${pkgs.marlin-calc}/bin/marlin-calc"@' -i */analyzers/analyze_progress.py + ''; + + patches = [ + ./printtimegenius-logging.patch + ]; + + meta = with lib; { + description = "Better print time estimation for OctoPrint"; + homepage = "https://github.com/eyal0/OctoPrint-PrintTimeGenius"; + license = licenses.agpl3; + maintainers = with maintainers; [ gebner ]; + }; + }; + + psucontrol = buildPlugin rec { + pname = "PSUControl"; + version = "0.1.9"; + + src = fetchFromGitHub { + owner = "kantlivelong"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "1cn009bdgn6c9ba9an5wfj8z02wi0xcsmbhkqggiqlnqy1fq45ca"; + }; + + preConfigure = '' + # optional; RPi.GPIO is broken on vanilla kernels + sed /RPi.GPIO/d -i requirements.txt + ''; + + meta = with lib; { + description = "OctoPrint plugin to control ATX/AUX power supply"; + homepage = "https://github.com/kantlivelong/OctoPrint-PSUControl"; + license = licenses.agpl3; + maintainers = with maintainers; [ gebner ]; + }; + }; + + simpleemergencystop = buildPlugin rec { + pname = "SimpleEmergencyStop"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "Sebclem"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "0hhh5grmn32abkix1b9fr1d0pcpdi2r066iypcxdxcza9qzwjiyi"; + }; + + meta = with lib; { + description = "A simple plugin that add an emergency stop buton on NavBar of OctoPrint"; + homepage = "https://github.com/Sebclem/OctoPrint-SimpleEmergencyStop"; + license = licenses.agpl3; + maintainers = with maintainers; [ WhittlesJr ]; + }; + }; + + stlviewer = buildPlugin rec { + pname = "STLViewer"; + version = "0.4.2"; + + src = fetchFromGitHub { + owner = "jneilliii"; + repo = "OctoPrint-STLViewer"; + rev = version; + sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b"; + }; + + meta = with lib; { + description = "A simple stl viewer tab for OctoPrint"; + homepage = "https://github.com/jneilliii/Octoprint-STLViewer"; + license = licenses.agpl3; + maintainers = with maintainers; [ abbradar ]; + }; + }; + + telegram = buildPlugin rec { + pname = "Telegram"; + version = "1.6.4"; + + src = fetchFromGitHub { + owner = "fabianonline"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "14d9f9a5m1prcikd7y26qks6c2ls6qq4b97amn24q5a8k5hbgl94"; + }; + + propagatedBuildInputs = with super; [ pillow ]; + + meta = with lib; { + description = "Plugin to send status messages and receive commands via Telegram messenger."; + homepage = "https://github.com/fabianonline/OctoPrint-Telegram"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ stunkymonkey ]; + }; + }; + + themeify = buildPlugin rec { + pname = "Themeify"; + version = "1.2.2"; + + src = fetchFromGitHub { + owner = "Birkbjo"; + repo = "Octoprint-${pname}"; + rev = "v${version}"; + sha256 = "0j1qs6kyh947npdy7pqda25fjkqinpas3sy0qyscqlxi558lhvx2"; + }; + + meta = with lib; { + description = "Beautiful themes for OctoPrint"; + homepage = "https://github.com/birkbjo/OctoPrint-Themeify"; + license = licenses.agpl3; + maintainers = with maintainers; [ lovesegfault ]; + }; + }; + + titlestatus = buildPlugin rec { + pname = "TitleStatus"; + version = "0.0.5"; + + src = fetchFromGitHub { + owner = "MoonshineSG"; + repo = "OctoPrint-TitleStatus"; + rev = version; + sha256 = "10nxjrixg0i6n6x8ghc1ndshm25c97bvkcis5j9kmlkkzs36i2c6"; + }; + + meta = with lib; { + description = "Show printers status in window title"; + homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus"; + license = licenses.agpl3; + maintainers = with maintainers; [ abbradar ]; + }; + }; + + touchui = buildPlugin rec { + pname = "TouchUI"; + version = "0.3.16"; + + src = fetchFromGitHub { + owner = "BillyBlaze"; + repo = "OctoPrint-${pname}"; + rev = version; + sha256 = "1jlqjirc4ygl4k7jp93l2h6b18jap3mzz8sf2g61j9w0kgv9l365"; + }; + + meta = with lib; { + description = "Touch friendly interface for a small TFT module or phone for OctoPrint"; + homepage = "https://github.com/BillyBlaze/OctoPrint-TouchUI"; + license = licenses.agpl3; + maintainers = with maintainers; [ gebner ]; + }; + }; + + octoklipper = buildPlugin rec { + pname = "OctoKlipper"; + version = "0.3.2"; + + src = fetchFromGitHub { + owner = "AliceGrey"; + repo = "OctoprintKlipperPlugin"; + rev = version; + sha256 = "15yg2blbgqp2gdpsqqm8qiiznq5qaq8wss07jimkl0865vrvlz7l"; + }; + + meta = with lib; { + description = "A plugin for a better integration of Klipper into OctoPrint"; + homepage = "https://github.com/AliceGrey/OctoprintKlipperPlugin"; + license = licenses.agpl3; + maintainers = with maintainers; [ lovesegfault ]; + }; + }; + + octoprint-dashboard = buildPlugin rec { + pname = "OctoPrint-Dashboard"; + version = "1.15.2"; + + src = fetchFromGitHub { + owner = "StefanCohen"; + repo = pname; + rev = version; + sha256 = "0p94jwd7kagh3sixhcrqmsgbay4aaf9l1pgyi2b45jym8pvld5n4"; + }; + + meta = with lib; { + description = "A dashboard for Octoprint"; + homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard"; + license = licenses.agpl3; + maintainers = with maintainers; [ j0hax ]; + }; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/octoprint/printtimegenius-logging.patch b/nixpkgs/pkgs/applications/misc/octoprint/printtimegenius-logging.patch new file mode 100644 index 000000000000..66c2e83d62ca --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/octoprint/printtimegenius-logging.patch @@ -0,0 +1,17 @@ +diff --git a/setup.py b/setup.py +index 6a6610e..cc45902 100644 +--- a/setup.py ++++ b/setup.py +@@ -35,9 +35,9 @@ plugin_license = "AGPLv3" + # Any additional requirements besides OctoPrint should be listed here + # For now, require the working release, which is only 1.3.9rc1. + plugin_requires = ["OctoPrint>=1.3.9rc1", "psutil", "sarge"] +-from sys import version_info +-if version_info[0] < 3: +- plugin_requires.append("logging") ++#from sys import version_info ++#if version_info[0] < 3: ++# plugin_requires.append("logging") + + ### -------------------------------------------------------------------------------------------------------------------- + ### More advanced options that you usually shouldn't have to touch follow after this point diff --git a/nixpkgs/pkgs/applications/misc/ola/default.nix b/nixpkgs/pkgs/applications/misc/ola/default.nix new file mode 100644 index 000000000000..224b5921baa8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ola/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv +, fetchFromGitHub +, autoreconfHook +, bison +, flex +, pkg-config +, libuuid +, cppunit +, protobuf +, zlib +, avahi +, libmicrohttpd +, perl +, python3 +}: + +stdenv.mkDerivation rec { + pname = "ola"; + version = "unstable-2020-07-17"; + + src = fetchFromGitHub { + owner = "OpenLightingProject"; + repo = "ola"; + rev = "e2cd699c7792570500578fd092fb6bfb3d511023"; # HEAD of "0.10" branch + sha256 = "17a3z3zhx00rjk58icd3zlqfw3753f3y8bwy2sza0frdim09lqr4"; + }; + + nativeBuildInputs = [ autoreconfHook bison flex pkg-config perl ]; + buildInputs = [ libuuid cppunit protobuf zlib avahi libmicrohttpd python3 ]; + propagatedBuildInputs = [ + python3.pkgs.protobuf + python3.pkgs.numpy + ]; + + configureFlags = [ "--enable-python-libs" ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "A framework for controlling entertainment lighting equipment"; + homepage = "https://www.openlighting.org/ola/"; + maintainers = with maintainers; [ globin ]; + license = with licenses; [ lgpl21 gpl2Plus ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/olifant/default.nix b/nixpkgs/pkgs/applications/misc/olifant/default.nix new file mode 100644 index 000000000000..bde2ae07c922 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/olifant/default.nix @@ -0,0 +1,69 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, fetchpatch +, vala +, meson +, ninja +, pkg-config +, python3 +, libgee +, gsettings-desktop-schemas +, gnome +, pantheon +, wrapGAppsHook +, gtk3 +, json-glib +, glib +, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "olifant"; + version = "0.2.1-beta6"; + + src = fetchFromGitHub { + owner = "cleac"; + repo = pname; + rev = version; + sha256 = "sha256-3hnEa4Q1dH0R8Jp+Ew0+dH1PEm3F+56jYwqhJ+vll4M="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + glib-networking + gnome.libsoup + gsettings-desktop-schemas + gtk3 + json-glib + libgee + pantheon.granite + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A simple Mastodon client designed for elementary OS, originally developed by @bleakgrey"; + homepage = "https://github.com/cleac/olifant"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/omegat.nix b/nixpkgs/pkgs/applications/misc/omegat.nix new file mode 100644 index 000000000000..0a46393bd220 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/omegat.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl, unzip, jdk, makeWrapper}: + +stdenv.mkDerivation { + version = "4.3.0"; + pname = "omegat"; + + src = fetchurl { # their zip has repeated files or something, so no fetchzip + url = "mirror://sourceforge/project/omegat/OmegaT%20-%20Standard/OmegaT%204.3.0/OmegaT_4.3.0_Without_JRE.zip"; + sha256 = "0axz7r30p34z5hgvdglznc82g7yvm3g56dv5190jixskx6ba58rs"; + }; + + nativeBuildInputs = [ makeWrapper unzip ]; + + unpackCmd = "unzip -o $curSrc"; # tries to go interactive without -o + + installPhase = '' + mkdir -p $out/bin + cp -r lib docs images plugins scripts *.txt *.html OmegaT.jar $out/ + + cat > $out/bin/omegat <<EOF + #! $SHELL -e + CLASSPATH="$out/lib" + exec ${jdk}/bin/java -jar -Xmx1024M $out/OmegaT.jar "\$@" + EOF + chmod +x $out/bin/omegat + ''; + + meta = with lib; { + description = "The free computer aided translation (CAT) tool for professionals"; + longDescription = '' + OmegaT is a free and open source multiplatform Computer Assisted Translation + tool with fuzzy matching, translation memory, keyword search, glossaries, and + translation leveraging into updated projects. + ''; + homepage = "http://www.omegat.org/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ t184256 ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/onboard/default.nix b/nixpkgs/pkgs/applications/misc/onboard/default.nix new file mode 100644 index 000000000000..745d03bb189e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/onboard/default.nix @@ -0,0 +1,179 @@ +{ fetchurl +, lib +, substituteAll +, aspellWithDicts +, at-spi2-core ? null +, atspiSupport ? true +, bash +, glib +, dconf +, gobject-introspection +, gsettings-desktop-schemas +, gtk3 +, hunspell +, hunspellDicts +, hunspellWithDicts +, intltool +, isocodes +, libcanberra-gtk3 +, mousetweaks +, udev +, libxkbcommon +, pkg-config +, procps +, python3 +, wrapGAppsHook +, xorg +, yelp +}: + +let + + customHunspell = hunspellWithDicts [ + hunspellDicts.en-us + ]; + + majorVersion = "1.4"; + +in + +python3.pkgs.buildPythonApplication rec { + pname = "onboard"; + version = "${majorVersion}.1"; + + src = fetchurl { + url = "https://launchpad.net/onboard/${majorVersion}/${version}/+download/${pname}-${version}.tar.gz"; + sha256 = "0r9q38ikmr4in4dwqd8m9gh9xjbgxnfxglnjbfcapw8ybfnf3jh1"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit mousetweaks; + }) + # Allow loading hunspell dictionaries installed in NixOS system path + ./hunspell-use-xdg-datadirs.patch + ]; + + nativeBuildInputs = [ + gobject-introspection + intltool + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + bash + glib + dconf + gsettings-desktop-schemas + gtk3 + hunspell + isocodes + libcanberra-gtk3 + libxkbcommon + mousetweaks + udev + xorg.libXtst + xorg.libxkbfile + ] ++ lib.optional atspiSupport at-spi2-core; + + propagatedBuildInputs = with python3.pkgs; [ + dbus-python + distutils_extra + pyatspi + pycairo + pygobject3 + systemd + ]; + + propagatedUserEnvPkgs = [ + dconf + ]; + + checkInputs = [ + # for Onboard.SpellChecker.aspell_cmd doctests + (aspellWithDicts (dicts: with dicts; [ en ])) + + # for Onboard.SpellChecker.hunspell_cmd doctests + customHunspell + + # for Onboard.SpellChecker.hunspell doctests + hunspellDicts.en-us + hunspellDicts.es-es + hunspellDicts.it-it + + python3.pkgs.nose + ]; + + # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + doCheck = false; + + preBuild = '' + # Unnecessary file, has been removed upstream + # https://github.com/NixOS/nixpkgs/pull/24986#issuecomment-296114062 + rm -r Onboard/pypredict/attic + + substituteInPlace ./scripts/sokSettings.py \ + --replace "#!/usr/bin/python3" "" \ + --replace "PYTHON_EXECUTABLE," "\"$out/bin/onboard-settings\"" \ + --replace '"-cfrom Onboard.settings import Settings\ns = Settings(False)"' "" + + chmod -x ./scripts/sokSettings.py + + patchShebangs . + + substituteInPlace setup.py \ + --replace "/etc" "$out/etc" + + substituteInPlace ./Onboard/LanguageSupport.py \ + --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes" + + substituteInPlace ./Onboard/Indicator.py \ + --replace "/usr/bin/yelp" "${yelp}/bin/yelp" + + substituteInPlace ./gnome/Onboard_Indicator@onboard.org/extension.js \ + --replace "/usr/bin/yelp" "${yelp}/bin/yelp" + + substituteInPlace ./Onboard/SpellChecker.py \ + --replace "/usr/lib" "$out/lib" + + substituteInPlace ./data/org.onboard.Onboard.service \ + --replace "/usr/bin" "$out/bin" + + substituteInPlace ./Onboard/utils.py \ + --replace "/usr/share" "$out/share" + substituteInPlace ./onboard-defaults.conf.example \ + --replace "/usr/share" "$out/share" + substituteInPlace ./Onboard/Config.py \ + --replace "/usr/share/onboard" "$out/share/onboard" + + substituteInPlace ./Onboard/WordSuggestions.py \ + --replace "/usr/bin" "$out/bin" + + # killall is dangerous on non-gnu platforms. Use pkill instead. + substituteInPlace ./setup.py \ + --replace '"killall",' '"${procps}/bin/pkill", "-x",' + ''; + + installPhase = '' + ${python3.interpreter} setup.py install --prefix="$out" + + cp onboard-default-settings.gschema.override.example $out/share/glib-2.0/schemas/10_onboard-default-settings.gschema.override + glib-compile-schemas $out/share/glib-2.0/schemas/ + ''; + + # Remove ubuntu icons. + postFixup = '' + rm -rf $out/share/icons/ubuntu-mono-* + ''; + + meta = with lib; { + homepage = "https://launchpad.net/onboard"; + description = "Onscreen keyboard useful for tablet PC users and for mobility impaired users"; + maintainers = with maintainers; [ johnramsden ]; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/onboard/fix-paths.patch b/nixpkgs/pkgs/applications/misc/onboard/fix-paths.patch new file mode 100644 index 000000000000..64acc9b138c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/onboard/fix-paths.patch @@ -0,0 +1,11 @@ +--- a/Onboard/ClickSimulator.py ++++ b/Onboard/ClickSimulator.py +@@ -479,7 +479,7 @@ class CSMousetweaks(ConfigObject, ClickSimulator): + self._daemon_running_notify_callbacks = [] + + def _launch_daemon(self, delay): +- self.launcher.launch_delayed(["mousetweaks"], delay) ++ self.launcher.launch_delayed(["@mousetweaks@/bin/mousetweaks"], delay) + + def _set_connection(self, active): + ''' Update interface object, state and notify listeners ''' diff --git a/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch b/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch new file mode 100644 index 000000000000..2463c8d5f5ac --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch @@ -0,0 +1,20 @@ +diff --git a/Onboard/SpellChecker.py b/Onboard/SpellChecker.py +index 6a92757..46e755e 100644 +--- a/Onboard/SpellChecker.py ++++ b/Onboard/SpellChecker.py +@@ -506,6 +506,10 @@ class hunspell(SCBackend): + if dicpath: + paths.extend(dicpath.split(pathsep)) + ++ datadirs = os.getenv("XDG_DATA_DIRS") ++ if datadirs: ++ paths.extend(map(lambda datadir: os.path.join(datadir, 'hunspell'), datadirs.split(pathsep))) ++ + paths.extend(LIBDIRS) + + home = os.getenv("HOME") +@@ -723,4 +727,3 @@ class aspell_cmd(SCBackend): + _logger.error(_format("Failed to execute '{}', {}", \ + " ".join(args), e)) + return [id for id in dict_ids if id] +- diff --git a/nixpkgs/pkgs/applications/misc/oneko/default.nix b/nixpkgs/pkgs/applications/misc/oneko/default.nix new file mode 100644 index 000000000000..e8399aeb098f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/oneko/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, imake, gccmakedep, xlibsWrapper }: + +stdenv.mkDerivation rec { + version_name = "1.2.hanami.6"; + version = "1.2.6"; + pname = "oneko"; + src = fetchFromGitHub { + owner = "IreneKnapp"; + repo = "oneko"; + rev = version_name; + sha256 = "0vx12v5fm8ar3f1g6jbpmd3b1q652d32nc67ahkf28djbqjgcbnc"; + }; + nativeBuildInputs = [ imake gccmakedep ]; + buildInputs = [ xlibsWrapper ]; + + makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ]; + installTargets = [ "install" "install.man" ]; + + meta = with lib; { + description = "Creates a cute cat chasing around your mouse cursor"; + longDescription = '' + Oneko changes your mouse cursor into a mouse + and creates a little cute cat, which starts + chasing around your mouse cursor. + When the cat is done catching the mouse, it starts sleeping. + ''; + homepage = "https://github.com/IreneKnapp/oneko"; + license = with licenses; [ publicDomain ]; + maintainers = with maintainers; [ xaverdh irenes ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openambit/default.nix b/nixpkgs/pkgs/applications/misc/openambit/default.nix new file mode 100644 index 000000000000..5ef6d4ae84d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openambit/default.nix @@ -0,0 +1,48 @@ +{ cmake +, fetchFromGitHub +, lib +, libusb1 +, mkDerivation +, python3 +, qtbase +, qttools +, udev +, zlib +}: + +mkDerivation rec { + pname = "openambit"; + version = "0.5"; + + src = fetchFromGitHub { + owner = "openambitproject"; + repo = pname; + rev = version; + sha256 = "1074kvkamwnlkwdajsw1799wddcfkjh2ay6l842r0s4cvrxrai85"; + }; + + nativeBuildInputs = [ cmake qttools ]; + buildInputs = [ libusb1 python3 qtbase udev zlib ]; + + cmakeFlags = [ "-DCMAKE_INSTALL_UDEVRULESDIR=${placeholder "out"}/lib/udev/rules.d" ]; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/openambit --version + ''; + + postInstall = '' + install -m755 -D $src/tools/openambit2gpx.py $out/bin/openambit2gpx + + mv -v $out/lib/udev/rules.d/libambit.rules \ + $out/lib/udev/rules.d/20-libambit.rules + ''; + + meta = with lib; { + description = "Helps fetch data from Suunto Ambit GPS watches"; + homepage = "https://github.com/openambitproject/openambit/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ rycee ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openbox-menu/000-enable-svg.patch b/nixpkgs/pkgs/applications/misc/openbox-menu/000-enable-svg.patch new file mode 100644 index 000000000000..dd6710f5cfc9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openbox-menu/000-enable-svg.patch @@ -0,0 +1,11 @@ +--- a/Makefile.old 2013-12-11 06:39:44.397358610 +0100 ++++ b/Makefile 2013-12-11 06:39:51.082275037 +0100 +@@ -7,7 +7,7 @@ + CFLAGS+=-DWITH_ICONS + # Uncomment this line if Openbox can display SVG icons + # Check SVG support with '$ ldd /usr/bin/openbox | grep svg', librsvg must appear.. +-# CFLAGS+=-DWITH_SVG ++CFLAGS+=-DWITH_SVG + + prefix= /usr/local + DESTDIR ?= $(prefix) diff --git a/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix b/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix new file mode 100644 index 000000000000..e9646b9c21d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix @@ -0,0 +1,46 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, glib +, gtk2 +, menu-cache +}: + +stdenv.mkDerivation rec { + pname = "openbox-menu"; + version = "0.8.0"; + + src = fetchurl { + url = "https://bitbucket.org/fabriceT/openbox-menu/downloads/${pname}-${version}.tar.bz2"; + sha256 = "1hi4b6mq97y6ajq4hhsikbkk23aha7ikaahm92djw48mgj2f1w8l"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ glib gtk2 menu-cache ]; + + # Enables SVG support by uncommenting the Makefile + patches = [ ./000-enable-svg.patch ]; + + # The strip options are not recognized by Darwin. + postPatch = lib.optionalString stdenv.isDarwin '' + sed -i -e '/strip -s/d' Makefile + ''; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; + + installFlags = [ "prefix=${placeholder "out"}" ]; + + meta = with lib; { + homepage = "http://fabrice.thiroux.free.fr/openbox-menu_en.html"; + description = "Dynamic XDG menu generator for Openbox"; + longDescription = '' + Openbox-menu is a pipemenu for Openbox window manager. It provides a + dynamic menu listing installed applications. Most of the work is done by + the LXDE library menu-cache. + ''; + license = licenses.gpl3Plus; + maintainers = [ maintainers.romildo ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openbrf/default.nix b/nixpkgs/pkgs/applications/misc/openbrf/default.nix new file mode 100644 index 000000000000..e815fd7a39f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openbrf/default.nix @@ -0,0 +1,47 @@ +{ mkDerivation, lib, stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU, libGL }: + + +mkDerivation { + name = "openbrf-unstable-2016-01-09"; + + src = fetchFromGitHub { + owner = "cfcohen"; + repo = "openbrf"; + rev = "4bdc66e38def5e5184f5379c84a7558b7484c70a"; + sha256 = "16254cnr60ihcn7bki7wl1qm6gkvzb99cn66md1pnb7za8nvzf4j"; + }; + + buildInputs = [ qtbase vcg glew ]; + + enableParallelBuilding = true; + nativeBuildInputs = [ qmake ]; + + qmakeFlags = [ "openBrf.pro" ]; + + postPatch = '' + sed -i 's,^VCGLIB .*,VCGLIB = ${vcg}/include,' openBrf.pro + ''; + + installPhase = '' + install -Dm755 openBrf $out/share/openBrf/openBrf + install -Dm644 carry_positions.txt $out/share/openBrf/carry_positions.txt + install -Dm644 reference.brf $out/share/openBrf/reference.brf + + patchelf \ + --set-rpath "${lib.makeLibraryPath [ qtbase glew stdenv.cc.cc libGLU libGL ]}" \ + $out/share/openBrf/openBrf + + mkdir -p "$out/bin" + ln -s "$out/share/openBrf/openBrf" "$out/bin/openBrf" + ''; + + dontPatchELF = true; + + meta = with lib; { + description = "A tool to edit resource files (BRF)"; + homepage = "https://github.com/cfcohen/openbrf"; + maintainers = with lib.maintainers; [ abbradar ]; + license = licenses.free; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/opencpn/default.nix b/nixpkgs/pkgs/applications/misc/opencpn/default.nix new file mode 100644 index 000000000000..522c5739a882 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/opencpn/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, gtk2, wxGTK30, libpulseaudio, curl, + gettext, glib, portaudio }: + +stdenv.mkDerivation rec { + pname = "opencpn-unstable"; + version = "2019-11-21"; + + src = fetchFromGitHub { + owner = "OpenCPN"; + repo = "OpenCPN"; + rev = "e73dc935545b2bbcf193cc61d987a0178c52d7a7"; + sha256 = "0yiqahkzwcbzgabc5xgxmwlngapkfiaqyva3mwz29xj0c5lg2bdk"; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ gtk2 wxGTK30 libpulseaudio curl gettext + glib portaudio ]; + + cmakeFlags = [ + "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" + "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" + ]; + + meta = { + description = "A concise ChartPlotter/Navigator"; + maintainers = [ lib.maintainers.kragniz ]; + platforms = [ "x86_64-linux" ]; + license = lib.licenses.gpl2; + homepage = "https://opencpn.org/"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openjump/default.nix b/nixpkgs/pkgs/applications/misc/openjump/default.nix new file mode 100644 index 000000000000..d6b20a7f01e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openjump/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl, unzip, makeWrapper +, coreutils, gawk, which, gnugrep, findutils +, jdk +}: + +stdenv.mkDerivation { + pname = "openjump"; + version = "1.15"; + + src = fetchurl { + url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.15/OpenJUMP-Portable-1.15-r6241-CORE.zip"; + sha256 = "12snzkv83w6khcdqzp6xahqapwp82af6c7j2q8n0lj62hk79rfgl"; + }; + + # TODO: build from source + unpackPhase = '' + mkdir -p $out/bin; + cd $out; unzip $src + ''; + + nativeBuildInputs = [ makeWrapper unzip ]; + + installPhase = '' + dir=$(echo $out/OpenJUMP-*) + + chmod +x $dir/bin/oj_linux.sh + makeWrapper $dir/bin/oj_linux.sh $out/bin/OpenJump \ + --set JAVA_HOME ${jdk.home} \ + --set PATH "${coreutils}/bin:${gawk}/bin:${which}/bin:${gnugrep}/bin:${findutils}/bin" + ''; + + meta = { + description = "Open source Geographic Information System (GIS) written in the Java programming language"; + homepage = "http://www.openjump.org/index.html"; + license = lib.licenses.gpl2; + maintainers = [lib.maintainers.marcweber]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openlp/default.nix b/nixpkgs/pkgs/applications/misc/openlp/default.nix new file mode 100644 index 000000000000..1ee482564747 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openlp/default.nix @@ -0,0 +1,86 @@ +# This file contains all runtime glue: Bindings to optional runtime dependencies +# for pdfSupport, presentationSupport, and media playback. +{ lib, mkDerivation, wrapGAppsHook, python3Packages + +# qt deps +, qtbase, qtmultimedia + +# optional deps +, pdfSupport ? false, mupdf # alternatively could use ghostscript +, presentationSupport ? false, libreoffice-unwrapped +, vlcSupport ? false +, gstreamerSupport ? false, gst_all_1, gstPlugins ? (gst: [ + gst.gst-plugins-base + gst.gst-plugins-good + gst.gst-plugins-bad + gst.gst-plugins-ugly + ]) + +#, enableMySql ? false # Untested. If interested, contact maintainer. +#, enablePostgreSql ? false # Untested. If interested, contact maintainer. +#, enableJenkinsApi ? false # Untested. If interested, contact maintainer. +}: + +let p = gstPlugins gst_all_1; +# If gstreamer is activated but no plugins are given, it will at runtime +# create the false illusion of being usable. +in assert gstreamerSupport -> (builtins.isList p && builtins.length p > 0); + +let + # optional packages + libreofficePath = "${libreoffice-unwrapped}/lib/libreoffice/program"; + + # lib functions + inherit (lib.lists) optional optionals; + wrapSetVar = var: ''--set ${var} "''$${var}"''; + + # base pkg/lib + baseLib = python3Packages.callPackage ./lib.nix { }; +in mkDerivation { + inherit (baseLib) pname version src; + + nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ]; + buildInputs = [ qtbase ] ++ optionals gstreamerSupport + ([ qtmultimedia.bin gst_all_1.gstreamer ] ++ gstPlugins gst_all_1); + propagatedBuildInputs = optional pdfSupport mupdf + ++ optional presentationSupport libreoffice-unwrapped; + pythonPath = [ baseLib ] ++ optional vlcSupport python3Packages.python-vlc; + # ++ optional enableMySql mysql-connector # Untested. If interested, contact maintainer. + # ++ optional enablePostgreSql psycopg2 # Untested. If interested, contact maintainer. + # ++ optional enableJenkinsApi jenkinsapi # Untested. If interested, contact maintainer. + + PYTHONPATH = libreofficePath; + URE_BOOTSTRAP = "vnd.sun.star.pathname:${libreofficePath}/fundamentalrc"; + UNO_PATH = libreofficePath; + LD_LIBRARY_PATH = libreofficePath; + JAVA_HOME = "${libreoffice-unwrapped.jdk.home}"; + + dontWrapQtApps = true; + dontWrapGApps = true; + + # defined in gappsWrapperHook + wrapPrefixVariables = optionals presentationSupport + [ "PYTHONPATH" "LD_LIBRARY_PATH" "JAVA_HOME" ]; + makeWrapperArgs = [ + "\${gappsWrapperArgs[@]}" + "\${qtWrapperArgs[@]}" + ] ++ optionals presentationSupport + ([ "--prefix PATH : ${libreoffice-unwrapped}/bin" ] + ++ map wrapSetVar [ "URE_BOOTSTRAP" "UNO_PATH" ]); + + installPhase = '' + install -D openlp.py $out/bin/openlp + ''; + + preFixup = '' + wrapPythonPrograms + ''; + + meta = baseLib.meta // { + hydraPlatforms = [ ]; # this is only the wrapper; baseLib gets built + }; + + passthru = { + inherit baseLib; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openlp/lib.nix b/nixpkgs/pkgs/applications/misc/openlp/lib.nix new file mode 100644 index 000000000000..c044e76c597d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openlp/lib.nix @@ -0,0 +1,103 @@ +# This file contains the base package, some of which is compiled. +# Runtime glue to optinal runtime dependencies is in 'default.nix'. +{ fetchurl, lib, qt5 + +# python deps +, python, buildPythonPackage +, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant +, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy_migrate +}: + +buildPythonPackage rec { + pname = "openlp"; + version = "2.4.6"; + + src = fetchurl { + url = "https://get.openlp.org/${version}/OpenLP-${version}.tar.gz"; + sha256 = "f63dcf5f1f8a8199bf55e806b44066ad920d26c9cf67ae432eb8cdd1e761fc30"; + }; + + doCheck = false; + # FIXME: checks must be disabled because they are lacking the qt env. + # They fail like this, even if built and wrapped with all Qt and + # runtime dependencies: + # + # running install tests + # qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "" + # This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. + # + # Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx. + # + # See also https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/ + + #checkInputs = [ mock nose ]; + nativeBuildInputs = [ qt5.qttools ]; + propagatedBuildInputs = [ + alembic + beautifulsoup4 + chardet + lxml + Mako + pyenchant + pyqt5_with_qtwebkit + pyxdg + sip_4 + sqlalchemy + sqlalchemy_migrate + ]; + + prePatch = '' + echo 'from vlc import *' > openlp/core/ui/media/vendor/vlc.py + ''; + + dontWrapQtApps = true; + dontWrapGApps = true; + postInstall = '' + ( # use subshell because of cd + tdestdir="$out/i18n" + mkdir -p "$tdestdir" + cd ./resources/i18n + for file in *.ts; do + lconvert -i "$file" -o "$tdestdir/''${file%%ts}qm" + done + ) + ''; + + preFixup = '' + rm -r $out/${python.sitePackages}/tests + rm -r $out/bin + ''; + + meta = with lib; { + description = "Free church presentation software"; + homepage = "https://openlp.org/"; + downloadPage = "https://openlp.org/#downloads"; + platforms = platforms.unix; + license = licenses.gpl2Only; + maintainers = [ maintainers.jorsn ]; + + longDescription = '' + OpenLP is a free church presentation software. + + Features: + + * Cross platform between Linux, Windows, OS X and FreeBSD + * Display songs, Bible verses, presentations, images, audio and video + * Control OpenLP remotely via the Android remote, iOS remote or mobile web browser + * Quickly and easily import songs from other popular presentation packages + * Easy enough to use to get up and running in less than 10 minutes + + Remark: This pkg only supports sqlite dbs. If you wish to have support for + mysql or postgresql dbs, or Jenkins, please contact the maintainer. + + Bugs which affect this software packaged in Nixpkgs: + + 1. The package must disable checks, because they are lacking the qt env. + (see pkg source and https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/) + 2. There is a segfault on exit. Not a real problem, according to debug log, everything + shuts down correctly. Maybe related to https://forums.openlp.org/discussion/3620/crash-on-exit. + Plan: Wait for OpenLP-3, since it is already in beta 1 + (2021-02-09; news: https://openlp.org/blog/). + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openrgb/default.nix b/nixpkgs/pkgs/applications/misc/openrgb/default.nix new file mode 100644 index 000000000000..eeff215679ad --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openrgb/default.nix @@ -0,0 +1,44 @@ +{ lib, mkDerivation, fetchFromGitLab, qmake, libusb1, hidapi, pkg-config, coreutils }: + +mkDerivation rec { + pname = "openrgb"; + version = "0.6"; + + src = fetchFromGitLab { + owner = "CalcProgrammer1"; + repo = "OpenRGB"; + rev = "release_${version}"; + sha256 = "sha256-x/wGD39Jm/kmcTEZP3BnLXxyv/jkPOJd6mLCO0dp5wM="; + }; + + nativeBuildInputs = [ qmake pkg-config ]; + buildInputs = [ libusb1 hidapi ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp openrgb $out/bin + + substituteInPlace 60-openrgb.rules \ + --replace /bin/chmod "${coreutils}/bin/chmod" + + mkdir -p $out/etc/udev/rules.d + cp 60-openrgb.rules $out/etc/udev/rules.d + + runHook postInstall + ''; + + doInstallCheck = true; + installCheckPhase = '' + HOME=$TMPDIR $out/bin/openrgb --help > /dev/null + ''; + + meta = with lib; { + description = "Open source RGB lighting control"; + homepage = "https://gitlab.com/CalcProgrammer1/OpenRGB"; + maintainers = with maintainers; [ jonringer ]; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/openring/default.nix b/nixpkgs/pkgs/applications/misc/openring/default.nix new file mode 100644 index 000000000000..248c33c4dea3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/openring/default.nix @@ -0,0 +1,25 @@ +{ buildGoModule, fetchFromSourcehut, lib }: + +buildGoModule rec { + pname = "openring"; + version = "unstable-2021-06-28"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = pname; + rev = "e566294050776355ca0d3bfd7a1f6f70767cd08b"; + sha256 = "sha256-h9Tout3KGiv6jbq9Ui3crb5NdTOHcn7BIy+aPoWG5sM="; + }; + + vendorSha256 = "sha256-BbBTmkGyLrIWphXC+dBaHaVzHuXRZ+4N/Jt2k3nF7Z4="; + + # The package has no tests. + doCheck = false; + + meta = with lib; { + description = "A webring for static site generators"; + homepage = "https://git.sr.ht/~sircmpwn/openring"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ sumnerevans ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/opentrack/aruco.nix b/nixpkgs/pkgs/applications/misc/opentrack/aruco.nix new file mode 100644 index 000000000000..9a315a132073 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/opentrack/aruco.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, cmake, fetchFromGitHub, opencv4 }: + +stdenv.mkDerivation { + pname = "opentrack-aruco"; + version = "unstable-20190303"; + + src = fetchFromGitHub { + owner = "opentrack"; + repo = "aruco"; + rev = "12dc60efd61149227bd05c805208d9bcce308f6d"; + sha256 = "0gkrixgfbpg8pls4qqilphbz4935mg5z4p18a0vv6kclmfccw9ad"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ opencv4 ]; + + NIX_CFLAGS_COMPILE = "-Wall -Wextra -Wpedantic -ffast-math -march=native -O3"; + + preInstall = '' + mkdir -p $out/include/aruco + ''; + + # copy headers required by main package + postInstall = '' + cp $src/src/*.h $out/include/aruco + ''; + + meta = with lib; { + homepage = "https://github.com/opentrack/aruco"; + description = "C++ library for detection of AR markers based on OpenCV"; + license = licenses.isc; + maintainers = with maintainers; [ zaninime ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/opentrack/default.nix b/nixpkgs/pkgs/applications/misc/opentrack/default.nix new file mode 100644 index 000000000000..9bef85c2b249 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/opentrack/default.nix @@ -0,0 +1,58 @@ +{ mkDerivation, lib, callPackage, fetchzip, fetchFromGitHub, cmake, pkg-config +, ninja, copyDesktopItems, qtbase, qttools, opencv4, procps, eigen, libXdmcp +, libevdev, makeDesktopItem, fetchurl }: + +let + version = "2.3.13"; + + aruco = callPackage ./aruco.nix { }; + + # license.txt inside the zip file is MIT + xplaneSdk = fetchzip { + url = "https://developer.x-plane.com/wp-content/plugins/code-sample-generation/sample_templates/XPSDK303.zip"; + sha256 = "11wqjsr996c5qhiv2djsd55gc373a9qcq30dvc6rhzm0fys42zba"; + }; + +in mkDerivation { + pname = "opentrack"; + inherit version; + + src = fetchFromGitHub { + owner = "opentrack"; + repo = "opentrack"; + rev = "opentrack-${version}"; + sha256 = "1s986lmm5l1pwbwvd1pfiq84n32s1q1dav7a0cbga4d1vcf0v1ay"; + }; + + nativeBuildInputs = [ cmake pkg-config ninja copyDesktopItems ]; + buildInputs = [ qtbase qttools opencv4 procps eigen libXdmcp libevdev aruco ]; + + NIX_CFLAGS_COMPILE = "-Wall -Wextra -Wpedantic -ffast-math -march=native -O3"; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=RELEASE" + "-DSDK_ARUCO_LIBPATH=${aruco}/lib/libaruco.a" + "-DSDK_XPLANE=${xplaneSdk}" + ]; + + desktopItems = [ + (makeDesktopItem rec { + name = "opentrack"; + exec = "opentrack"; + icon = fetchurl { + url = "https://github.com/opentrack/opentrack/raw/opentrack-${version}/gui/images/opentrack.png"; + sha256 = "0d114zk78f7nnrk89mz4gqn7yk3k71riikdn29w6sx99h57f6kgn"; + }; + desktopName = name; + genericName = "Head tracking software"; + categories = "Utility;"; + }) + ]; + + meta = with lib; { + homepage = "https://github.com/opentrack/opentrack"; + description = "Head tracking software for MS Windows, Linux, and Apple OSX"; + license = licenses.isc; + maintainers = with maintainers; [ zaninime ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/opentx/default.nix b/nixpkgs/pkgs/applications/misc/opentx/default.nix new file mode 100644 index 000000000000..71bab089601d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/opentx/default.nix @@ -0,0 +1,49 @@ +{ lib, mkDerivation, fetchFromGitHub +, cmake, gcc-arm-embedded, python3Packages +, qtbase, qtmultimedia, qttranslations, SDL, gtest +, dfu-util, avrdude +}: + +mkDerivation rec { + pname = "opentx"; + version = "2.3.13"; + + src = fetchFromGitHub { + owner = "opentx"; + repo = "opentx"; + rev = "release/${version}"; + sha256 = "sha256-Bi/Cz2T2NdtnJZHav8qvo+gErPsR8Ym7K3KcD5APt6Y="; + }; + + nativeBuildInputs = [ cmake gcc-arm-embedded python3Packages.pillow ]; + + buildInputs = [ qtbase qtmultimedia qttranslations SDL ]; + + postPatch = '' + sed -i companion/src/burnconfigdialog.cpp \ + -e 's|/usr/.*bin/dfu-util|${dfu-util}/bin/dfu-util|' \ + -e 's|/usr/.*bin/avrdude|${avrdude}/bin/avrdude|' + ''; + + cmakeFlags = [ + "-DGTEST_ROOT=${gtest.src}/googletest" + "-DQT_TRANSLATIONS_DIR=${qttranslations}/translations" + # XXX I would prefer to include these here, though we will need to file a bug upstream to get that changed. + #"-DDFU_UTIL_PATH=${dfu-util}/bin/dfu-util" + #"-DAVRDUDE_PATH=${avrdude}/bin/avrdude" + ]; + + meta = with lib; { + description = "OpenTX Companion transmitter support software"; + longDescription = '' + OpenTX Companion is used for many different tasks like loading OpenTX + firmware to the radio, backing up model settings, editing settings and + running radio simulators. + ''; + homepage = "https://www.open-tx.org/"; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ]; + maintainers = with maintainers; [ elitak lopsided98 ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/orca/default.nix b/nixpkgs/pkgs/applications/misc/orca/default.nix new file mode 100644 index 000000000000..f8facbe01fa0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/orca/default.nix @@ -0,0 +1,117 @@ +{ lib +, pkg-config +, fetchurl +, buildPythonApplication +, autoreconfHook +, wrapGAppsHook +, gobject-introspection +, gettext +, yelp-tools +, itstool +, libxmlxx3 +, python +, pygobject3 +, gtk3 +, gnome +, substituteAll +, at-spi2-atk +, at-spi2-core +, pyatspi +, dbus +, dbus-python +, pyxdg +, xkbcomp +, procps +, lsof +, coreutils +, gsettings-desktop-schemas +, speechd +, brltty +, liblouis +, setproctitle +, gst_all_1 +, gst-python +}: + +buildPythonApplication rec { + pname = "orca"; + version = "40.0"; + + format = "other"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; + sha256 = "0hq0zdcn80ficpcffbk667907v6m7dih3dhyc7ss01mrj3iyw000"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + cat = "${coreutils}/bin/cat"; + lsof = "${lsof}/bin/lsof"; + pgrep = "${procps}/bin/pgrep"; + xkbcomp = "${xkbcomp}/bin/xkbcomp"; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook + wrapGAppsHook + pkg-config + libxmlxx3 + gettext + yelp-tools + itstool + gobject-introspection + ]; + + propagatedBuildInputs = [ + pygobject3 + pyatspi + dbus-python + pyxdg + brltty + liblouis + speechd + gst-python + setproctitle + ]; + + strictDeps = false; + + buildInputs = [ + python + gtk3 + at-spi2-atk + at-spi2-core + dbus + gsettings-desktop-schemas + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + }; + }; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Projects/Orca"; + description = "Screen reader"; + longDescription = '' + A free, open source, flexible and extensible screen reader that provides + access to the graphical desktop via speech and refreshable braille. + It works with applications and toolkits that support the Assistive + Technology Service Provider Interface (AT-SPI). That includes the GNOME + GTK toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and + WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued. + + Needs `services.gnome.at-spi2-core.enable = true;` in `configuration.nix`. + ''; + maintainers = with maintainers; [ berce ] ++ teams.gnome.members; + license = licenses.lgpl21; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch b/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch new file mode 100644 index 000000000000..037b323c8cb1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch @@ -0,0 +1,84 @@ +diff --git a/src/orca/debug.py b/src/orca/debug.py +index e79482ed4..cbf3a24ec 100644 +--- a/src/orca/debug.py ++++ b/src/orca/debug.py +@@ -502,7 +502,7 @@ def traceit(frame, event, arg): + return traceit + + def getOpenFDCount(pid): +- procs = subprocess.check_output([ 'lsof', '-w', '-Ff', '-p', str(pid)]) ++ procs = subprocess.check_output([ '@lsof@', '-w', '-Ff', '-p', str(pid)]) + procs = procs.decode('UTF-8').split('\n') + files = list(filter(lambda s: s and s[0] == 'f' and s[1:].isdigit(), procs)) + +@@ -510,7 +510,7 @@ def getOpenFDCount(pid): + + def getCmdline(pid): + try: +- openFile = os.popen('cat /proc/%s/cmdline' % pid) ++ openFile = os.popen('@cat@ /proc/%s/cmdline' % pid) + cmdline = openFile.read() + openFile.close() + except: +@@ -520,7 +520,7 @@ def getCmdline(pid): + return cmdline + + def pidOf(procName): +- openFile = subprocess.Popen('pgrep %s' % procName, ++ openFile = subprocess.Popen('@pgrep@ %s' % procName, + shell=True, + stdout=subprocess.PIPE).stdout + pids = openFile.read() +diff --git a/src/orca/orca.py b/src/orca/orca.py +index 2fe0a0bf2..087526556 100644 +--- a/src/orca/orca.py ++++ b/src/orca/orca.py +@@ -285,7 +285,7 @@ def updateKeyMap(keyboardEvent): + + def _setXmodmap(xkbmap): + """Set the keyboard map using xkbcomp.""" +- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']], ++ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']], + stdin=subprocess.PIPE, stdout=None, stderr=None) + p.communicate(xkbmap) + +@@ -363,7 +363,7 @@ def _storeXmodmap(keyList): + """ + + global _originalXmodmap +- _originalXmodmap = subprocess.check_output(['xkbcomp', os.environ['DISPLAY'], '-']) ++ _originalXmodmap = subprocess.check_output(['@xkbcomp@', os.environ['DISPLAY'], '-']) + + def _restoreXmodmap(keyList=[]): + """Restore the original xmodmap values for the keys in keyList. +@@ -375,7 +375,7 @@ def _restoreXmodmap(keyList=[]): + + global _capsLockCleared + _capsLockCleared = False +- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']], ++ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']], + stdin=subprocess.PIPE, stdout=None, stderr=None) + p.communicate(_originalXmodmap) + +diff --git a/src/orca/orca_bin.py.in b/src/orca/orca_bin.py.in +index 8c9d40153..eec0d5437 100644 +--- a/src/orca/orca_bin.py.in ++++ b/src/orca/orca_bin.py.in +@@ -62,7 +62,7 @@ class ListApps(argparse.Action): + name = "[DEAD]" + + try: +- cmdline = subprocess.getoutput('cat /proc/%s/cmdline' % pid) ++ cmdline = subprocess.getoutput('@cat@ /proc/%s/cmdline' % pid) + except: + cmdline = '(exception encountered)' + else: +@@ -197,7 +197,7 @@ def inGraphicalDesktop(): + def otherOrcas(): + """Returns the pid of any other instances of Orca owned by this user.""" + +- openFile = subprocess.Popen('pgrep -u %s -x orca' % os.getuid(), ++ openFile = subprocess.Popen('@pgrep@ -u %s -x orca' % os.getuid(), + shell=True, + stdout=subprocess.PIPE).stdout + pids = openFile.read() diff --git a/nixpkgs/pkgs/applications/misc/orpie/default.nix b/nixpkgs/pkgs/applications/misc/orpie/default.nix new file mode 100644 index 000000000000..45e043b6dcfa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/orpie/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, ocamlPackages }: + +ocamlPackages.buildDunePackage rec { + pname = "orpie"; + version = "1.6.1"; + + useDune2 = true; + + src = fetchFromGitHub { + owner = "pelzlpj"; + repo = pname; + rev = "release-${version}"; + sha256 = "1rx2nl6cdv609pfymnbq53pi3ql5fr4kda8x10ycd9xq2gc4f21g"; + }; + + preConfigure = '' + patchShebangs scripts + substituteInPlace scripts/compute_prefix \ + --replace '"topfind"' \ + '"${ocamlPackages.findlib}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/topfind"' + export PREFIX=$out + ''; + + buildInputs = with ocamlPackages; [ curses camlp5 num gsl ]; + + meta = { + inherit (src.meta) homepage; + description = "A Curses-based RPN calculator"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ obadz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix b/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix new file mode 100644 index 000000000000..4f2af99ab14d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, libroxml, proj, libyamlcpp, boost } : + +stdenv.mkDerivation rec { + pname = "osm2xmap"; + version = "2.0"; + + src = fetchFromGitHub { + sha256 = "1d3f18wzk240yp0q8i2vskhcfj5ar61s4hw83vgps0wr2aglph3w"; + repo = "osm2xmap"; + owner = "sembruk"; + rev = "v${version}"; + }; + + makeFlags = [ + "GIT_VERSION=${version}" + "GIT_TIMESTAMP=" + "SHAREDIR=${placeholder "out"}/share/osm2xmap" + "INSTALL_BINDIR=${placeholder "out"}/bin" + "INSTALL_MANDIR=${placeholder "out"}/share/man/man1" + ]; + + NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H"; + + buildInputs = [ libroxml proj libyamlcpp boost ]; + + meta = with lib; { + homepage = "https://github.com/sembruk/osm2xmap"; + description = "Converter from OpenStreetMap data format to OpenOrienteering Mapper format"; + license = licenses.gpl3; + maintainers = [ maintainers.mpickering ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/osmctools/default.nix b/nixpkgs/pkgs/applications/misc/osmctools/default.nix new file mode 100644 index 000000000000..fc46ffb7ffac --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/osmctools/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitLab, autoreconfHook, zlib }: + +stdenv.mkDerivation rec { + pname = "osmctools"; + version = "0.9"; + + src = fetchFromGitLab { + owner = "osm-c-tools"; + repo = pname; + rev = version; + sha256 = "1m8d3r1q1v05pkr8k9czrmb4xjszw6hvgsf3kn9pf0v14gpn4r8f"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ zlib ]; + + meta = with lib; { + description = "Command line tools for transforming Open Street Map files"; + homepage = [ + "https://wiki.openstreetmap.org/wiki/osmconvert" + "https://wiki.openstreetmap.org/wiki/osmfilter" + "https://wiki.openstreetmap.org/wiki/osmupdate" + ]; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.unix; + license = licenses.agpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix b/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix new file mode 100644 index 000000000000..009f40e1a219 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv +, fetchFromGitHub +, cmake +, installShellFiles +, pandoc +, boost +, bzip2 +, expat +, libosmium +, lz4 +, protozero +, zlib +}: + +stdenv.mkDerivation rec { + pname = "osmium-tool"; + version = "1.13.1"; + + src = fetchFromGitHub { + owner = "osmcode"; + repo = "osmium-tool"; + rev = "v${version}"; + sha256 = "sha256-IeFbcgwayBl3xxv3onCJr0f1oeveyyNlLxXQlzOoVq0="; + }; + + nativeBuildInputs = [ + cmake + installShellFiles + pandoc + ]; + + buildInputs = [ + boost + bzip2 + expat + libosmium + lz4 + protozero + zlib + ]; + + doCheck = true; + + postInstall = '' + installShellCompletion --zsh ../zsh_completion/_osmium + ''; + + meta = with lib; { + description = "Multipurpose command line tool for working with OpenStreetMap data based on the Osmium library"; + homepage = "https://osmcode.org/osmium-tool/"; + changelog = "https://github.com/osmcode/osmium-tool/blob/v${version}/CHANGELOG.md"; + license = with licenses; [ gpl3Plus mit bsd3 ]; + maintainers = with maintainers; [ das-g ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix b/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix new file mode 100644 index 000000000000..a3815dae00fc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/osmscout-server/default.nix @@ -0,0 +1,65 @@ +{ lib, mkDerivation, fetchFromGitHub, fetchpatch, pkg-config +, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation +, libosmscout, mapnik, valhalla, libpostal, osrm-backend, protobuf +, libmicrohttpd_0_9_70, sqlite, marisa, kyotocabinet, boost +}: + +let + date = fetchFromGitHub { + owner = "HowardHinnant"; + repo = "date"; + rev = "a2fdba1adcb076bf9a8343c07524afdf09aa8dcc"; + sha256 = "00sf1pbaz0g0gsa0dlm23lxk4h46xm1jv1gzbjj5rr9sf1qccyr5"; + }; +in +mkDerivation rec { + pname = "osmscout-server"; + version = "1.17.1"; + + src = fetchFromGitHub { + owner = "rinigus"; + repo = "osmscout-server"; + rev = version; + sha256 = "0rpsi6nyhcz6bv0jab4vixkxhjmn84xi0q2xz15a097hn46cklx9"; + fetchSubmodules = true; + }; + + # Two patches required to work with valhalla 3.1 + patches = [ + # require C++14 to match latest Valhalla + (fetchpatch { + url = "https://github.com/rinigus/osmscout-server/commit/78b41b9b4c607fe9bfd6fbd61ae31cb7c8a725cd.patch"; + sha256 = "0gk9mdwa75awl0bj30gm8waj454d8k2yixxwh05m0p550cbv3lg0"; + }) + # add Valhalla 3.1 config + (fetchpatch { + url = "https://github.com/rinigus/osmscout-server/commit/584de8bd47700053960fa139a2d7f8d3d184c876.patch"; + sha256 = "0liz72n83q93bzzyyiqjkxa6hp9zjx7v9rgsmpwf88gc4caqm2dz"; + }) + ]; + + nativeBuildInputs = [ qmake pkg-config qttools ]; + buildInputs = [ + kirigami2 qtquickcontrols2 qtlocation + mapnik valhalla libosmscout osrm-backend libmicrohttpd_0_9_70 + libpostal sqlite marisa kyotocabinet boost protobuf date + ]; + + # OSMScout server currently defaults to an earlier version of valhalla, + # but valhalla 3.1 support has been added. (See patches above) + # Replace the default valhalla.json with the valhalla 3.1 version + postPatch = '' + mv data/valhalla.json-3.1 data/valhalla.json + ''; + + # Choose to build the kirigami UI variant + qmakeFlags = [ "SCOUT_FLAVOR=kirigami" ]; + + meta = with lib; { + description = "Maps server providing tiles, geocoder, and router"; + homepage = "https://github.com/rinigus/osmscout-server"; + license = licenses.gpl3Only; + maintainers = [ maintainers.Thra11 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/otpclient/default.nix b/nixpkgs/pkgs/applications/misc/otpclient/default.nix new file mode 100644 index 000000000000..b15eb1a78b42 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/otpclient/default.nix @@ -0,0 +1,36 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, gtk3 +, wrapGAppsHook +, jansson +, libgcrypt +, libzip +, libpng +, libcotp +, zbar +}: + +stdenv.mkDerivation rec { + pname = "otpclient"; + version = "2.4.4"; + + src = fetchFromGitHub { + owner = "paolostivanin"; + repo = pname; + rev = "v${version}"; + sha256 = "0zjvhcx9q8nsf97zikddxriky0kghi4j4i7312s94pl8c7kb4abr"; + }; + + buildInputs = [ gtk3 jansson libgcrypt libzip libpng libcotp zbar ]; + nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ]; + + meta = with lib; { + description = "Highly secure and easy to use OTP client written in C/GTK that supports both TOTP and HOTP"; + homepage = "https://github.com/paolostivanin/OTPClient"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ alexbakker ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/overmind/default.nix b/nixpkgs/pkgs/applications/misc/overmind/default.nix new file mode 100644 index 000000000000..80a423a3c83c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/overmind/default.nix @@ -0,0 +1,28 @@ +{ lib, buildGoModule, fetchFromGitHub, tmux, which, makeWrapper }: + +buildGoModule rec { + pname = "overmind"; + version = "2.2.2"; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram "$out/bin/overmind" --prefix PATH : "${lib.makeBinPath [ tmux which ]}" + ''; + + src = fetchFromGitHub { + owner = "DarthSim"; + repo = pname; + rev = "v${version}"; + sha256 = "zDjIwnhDoUj+zTAhtBa94dx7QhYMCTxv2DNUpeP8CP0="; + }; + + vendorSha256 = "KDMzR6qAruscgS6/bHTN6RnHOlLKCm9lxkr9k3oLY+Y="; + + meta = with lib; { + homepage = "https://github.com/DarthSim/overmind"; + description = "Process manager for Procfile-based applications and tmux"; + license = with licenses; [ mit ]; + maintainers = [ maintainers.adisbladis ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix b/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix new file mode 100644 index 000000000000..932fa588d271 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pass-secret-service/default.nix @@ -0,0 +1,61 @@ +{ lib, fetchFromGitHub, python3, dbus, gnupg }: + +python3.pkgs.buildPythonApplication rec { + pname = "pass-secret-service"; + # PyPI has old alpha version. Since then the project has switched from using a + # seemingly abandoned D-Bus package pydbus and started using maintained + # dbus-next. So let's use latest from GitHub. + version = "unstable-2020-04-12"; + + src = fetchFromGitHub { + owner = "mdellweg"; + repo = "pass_secret_service"; + rev = "f6fbca6ac3ccd16bfec407d845ed9257adf74dfa"; + sha256 = "0rm4pbx1fiwds1v7f99khhh7x3inv9yniclwd95mrbgljk3cc6a4"; + }; + + + # Need to specify session.conf file for tests because it won't be found under + # /etc/ in check phase. + postPatch = '' + substituteInPlace Makefile \ + --replace \ + "dbus-run-session" \ + "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf" + ''; + + propagatedBuildInputs = with python3.pkgs; [ + click + cryptography + dbus-next + decorator + pypass + secretstorage + ]; + + checkInputs = + let + ps = python3.pkgs; + in + [ + dbus + gnupg + ps.pytest + ps.pytest-asyncio + ps.pypass + ]; + + checkPhase = '' + runHook preCheck + make test + runHook postCheck + ''; + + meta = { + description = "Libsecret D-Bus API with pass as the backend"; + homepage = "https://github.com/mdellweg/pass_secret_service/"; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ jluttine ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pastel/default.nix b/nixpkgs/pkgs/applications/misc/pastel/default.nix new file mode 100644 index 000000000000..b894195cfa60 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pastel/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }: + +rustPlatform.buildRustPackage rec { + pname = "pastel"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "sharkdp"; + repo = pname; + rev = "v${version}"; + sha256 = "12n1a9j61r4spx0zi2kk85nslv11j1s510asxqvj92ggqhr2s3sq"; + }; + + cargoSha256 = "12zachbg78ajx1n1mqp53rd00dzcss5cqhsq0119lalzc8b5zkrn"; + + buildInputs = lib.optional stdenv.isDarwin Security; + + meta = with lib; { + description = "A command-line tool to generate, analyze, convert and manipulate colors"; + homepage = "https://github.com/sharkdp/pastel"; + changelog = "https://github.com/sharkdp/pastel/releases/tag/v${version}"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ davidtwco ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix b/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix new file mode 100644 index 000000000000..a8b407dd7b5d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchurl, glib, intltool, libfm, libX11, pango, pkg-config +, wrapGAppsHook, gnome, withGtk3 ? true, gtk2, gtk3 }: + +let + libfm' = libfm.override { inherit withGtk3; }; + gtk = if withGtk3 then gtk3 else gtk2; + inherit (lib) optional; +in +stdenv.mkDerivation rec { + name = "pcmanfm-1.3.2"; + src = fetchurl { + url = "mirror://sourceforge/pcmanfm/${name}.tar.xz"; + sha256 = "sha256-FMt7JHSTxMzmX7tZAmEeOtAKeocPvB5QrcUEKMUUDPc="; + }; + + buildInputs = [ glib gtk libfm' libX11 pango gnome.adwaita-icon-theme ]; + nativeBuildInputs = [ pkg-config wrapGAppsHook intltool ]; + + configureFlags = optional withGtk3 "--with-gtk=3"; + + meta = with lib; { + homepage = "https://blog.lxde.org/category/pcmanfm/"; + license = licenses.gpl2Plus; + description = "File manager with GTK interface"; + maintainers = [ maintainers.ttuegel ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix b/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix new file mode 100644 index 000000000000..484b9d3b4073 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, gtk2, libXft, intltool, automake, autoconf, libtool, pkg-config }: + +stdenv.mkDerivation rec { + pname = "pcmanx-gtk2"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "pcman-bbs"; + repo = "pcmanx"; + rev = version; + sha256 = "0fbwd149wny67rfhczz4cbh713a1qnswjiz7b6c2bxfcwh51f9rc"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk2 libXft intltool automake autoconf libtool ]; + + preConfigure = '' + ./autogen.sh + # libtoolize generates configure script which uses older version of automake, we need to autoreconf it + cd libltdl; autoreconf; cd .. + ''; + + meta = with lib; { + homepage = "https://pcman.ptt.cc"; + license = licenses.gpl2; + description = "Telnet BBS browser with GTK interface"; + maintainers = [ maintainers.sifmelcara ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix b/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix new file mode 100644 index 000000000000..4255127b3dfe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix @@ -0,0 +1,37 @@ +{ lib, fetchFromGitHub, pkgs, python3, wrapGAppsHook}: + +python3.pkgs.buildPythonApplication { + pname = "pdf-quench"; + version = "1.0.5"; + + src = fetchFromGitHub { + owner = "linuxerwang"; + repo = "pdf-quench"; + rev = "b72b3970b371026f9a7ebe6003581e8a63af98f6"; + sha256 = "1rp9rlwr6rarcsxygv5x2c5psgwl6r69k0lsgribgyyla9cf2m7n"; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + buildInputs = with pkgs; [ + gtk3 + gobject-introspection + goocanvas2 + poppler_gi + ]; + propagatedBuildInputs = with python3.pkgs; [ pygobject3 pypdf2 ]; + + format = "other"; + doCheck = false; + + installPhase = '' + install -D -T -m 755 src/pdf_quench.py $out/bin/pdf-quench + ''; + + meta = with lib; { + homepage = "https://github.com/linuxerwang/pdf-quench"; + description = "A visual tool for cropping pdf files"; + platforms = platforms.linux; + license = licenses.gpl2; + maintainers = with maintainers; [ flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix b/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix new file mode 100644 index 000000000000..5657c7f7e1a5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix @@ -0,0 +1,51 @@ +{ fetchFromGitHub, lib +, wrapGAppsHook, intltool +, python3Packages, gtk3, poppler_gi +}: + +python3Packages.buildPythonApplication rec { + pname = "pdfarranger"; + version = "1.7.1"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "1c2mafnz8pv32wzkc2wx4q8y2x7xffpn6ag12dj7ga5n772fb6s3"; + }; + + nativeBuildInputs = [ + wrapGAppsHook intltool + ] ++ (with python3Packages; [ + setuptools distutils_extra + ]); + + buildInputs = [ + gtk3 poppler_gi + ]; + + propagatedBuildInputs = with python3Packages; [ + pygobject3 + pikepdf + img2pdf + setuptools + python-dateutil + ]; + + # incompatible with wrapGAppsHook + strictDeps = false; + dontWrapGApps = true; + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + doCheck = false; # no tests + + meta = with lib; { + inherit (src.meta) homepage; + description = "Merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface"; + platforms = platforms.linux; + maintainers = with maintainers; [ symphorien ]; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix b/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix new file mode 100644 index 000000000000..65ee6a655930 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix @@ -0,0 +1,41 @@ +{ lib, pythonPackages, fetchurl, xpdf }: +let + py = pythonPackages; +in +py.buildPythonApplication rec { + name = "pdfdiff-${version}"; + version = "0.92"; + + src = fetchurl { + url = "https://www.cs.ox.ac.uk/people/cas.cremers/downloads/software/pdfdiff.py"; + sha256 = "0zxwjjbklz87wkbhkmsvhc7xmv5php7m2a9vm6ydhmhlxsybf836"; + }; + + buildInputs = [ pythonPackages.wrapPython ]; + + dontConfigure = true; + dontBuild = true; + doCheck = false; + + unpackPhase = "cp $src pdfdiff.py"; + + postPatch = '' + sed -i -r 's|pdftotextProgram = "pdftotext"|pdftotextProgram = "${xpdf}/bin/pdftotext"|' pdfdiff.py + sed -i -r 's|progName = "pdfdiff.py"|progName = "pdfdiff"|' pdfdiff.py + ''; + + installPhase = '' + mkdir -p $out/bin + cp pdfdiff.py $out/bin/pdfdiff + chmod +x $out/bin/pdfdiff + + substituteInPlace $out/bin/pdfdiff --replace "#!/usr/bin/python" "#!${pythonPackages.python.interpreter}" + ''; + + meta = with lib; { + homepage = "http://www.cs.ox.ac.uk/people/cas.cremers/misc/pdfdiff.html"; + description = "Tool to view the difference between two PDF or PS files"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pdfmod/default.nix b/nixpkgs/pkgs/applications/misc/pdfmod/default.nix new file mode 100644 index 000000000000..da9340f30759 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pdfmod/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, fetchpatch, pkg-config, gnome-doc-utils, intltool, lib +, mono, gtk-sharp-2_0, gnome-sharp, hyena +, which, makeWrapper, glib, gnome2, poppler, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "pdfmod"; + version = "0.9.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; + sha256 = "eb7c987514a053106ddf03f26544766c751c801d87762909b36415d46bc425c9"; + }; + + patches = [ (fetchpatch { + url = "https://raw.githubusercontent.com/City-busz/Arch-Linux-Repository" + + "/master/gnome/pdfmod/pdfmod/pdfmod-mono-2.10.patch"; + sha256 = "0fpz9ifr6476lqhd5rkb94dm68vlrwdq5w1aaxzgyjgdax9hxx81"; + }) ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + gnome-doc-utils intltool mono gtk-sharp-2_0 gnome-sharp + hyena which makeWrapper wrapGAppsHook + ]; + + preConfigure = '' + substituteInPlace lib/poppler-sharp/poppler-sharp/poppler-sharp.dll.config \ + --replace libpoppler-glib.so.4 libpoppler-glib.so + ''; + + postInstall = '' + makeWrapper "${mono}/bin/mono" "$out/bin/pdfmod" \ + --add-flags "$out/lib/pdfmod/PdfMod.exe" \ + --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \ + --prefix MONO_GAC_PREFIX : ${gnome-sharp} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gnome-sharp gnome2.GConf gtk-sharp-2_0 gtk-sharp-2_0.gtk poppler ]} + ''; + + dontStrip = true; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Attic/PdfMod"; + description = "A simple application for modifying PDF documents"; + platforms = platforms.all; + maintainers = with maintainers; [ obadz ]; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix new file mode 100644 index 000000000000..ec78c43dbe04 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, vala, gtk3, libgee +, poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook +, webkitgtk, discount, json-glib }: + +stdenv.mkDerivation rec { + name = "${product}-${version}"; + product = "pdfpc"; + version = "4.5.0"; + + src = fetchFromGitHub { + repo = product; + owner = product; + rev = "v${version}"; + sha256 = "0bmy51w6ypz927hxwp5g7wapqvzqmsi3w32rch6i3f94kg1152ck"; + }; + + nativeBuildInputs = [ + cmake pkg-config vala + # For setup hook + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 libgee poppler + libpthreadstubs librsvg pcre + gstreamer + gst-plugins-base + (gst-plugins-good.override { gtkSupport = true; }) + gst-libav + webkitgtk + discount + json-glib + ]; + + cmakeFlags = lib.optional stdenv.isDarwin "-DMOVIES=OFF"; + + meta = with lib; { + description = "A presenter console with multi-monitor support for PDF files"; + homepage = "https://pdfpc.github.io/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ pSub ]; + platforms = platforms.unix; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix new file mode 100644 index 000000000000..404c95f52a85 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, makeDesktopItem, fetchurl, jdk11, wrapGAppsHook, glib }: + +stdenv.mkDerivation rec { + pname = "pdfsam-basic"; + version = "4.2.3"; + + src = fetchurl { + url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb"; + sha256 = "sha256-WmJ+atndIXm5Z6RvRVSvf2de1Gda+cs5kSw4iotPVfU="; + }; + + unpackPhase = '' + ar vx ${src} + tar xvf data.tar.gz + ''; + + nativeBuildInputs = [ wrapGAppsHook ]; + buildInputs = [ glib ]; + + preFixup = '' + gappsWrapperArgs+=(--set JAVA_HOME "${jdk11}" --set PDFSAM_JAVA_PATH "${jdk11}") + ''; + + installPhase = '' + cp -R opt/pdfsam-basic/ $out/ + mkdir -p "$out"/share/icons + cp --recursive ${desktopItem}/share/applications $out/share + cp $out/icon.svg "$out"/share/icons/pdfsam-basic.svg + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + comment = meta.description; + desktopName = "PDFsam Basic"; + genericName = "PDF Split and Merge"; + mimeType = "application/pdf;"; + categories = "Office;"; + }; + + meta = with lib; { + homepage = "https://github.com/torakiki/pdfsam"; + description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files"; + license = licenses.agpl3; + platforms = platforms.all; + maintainers = with maintainers; [ _1000101 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pdfslicer/default.nix b/nixpkgs/pkgs/applications/misc/pdfslicer/default.nix new file mode 100644 index 000000000000..31bc47140159 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pdfslicer/default.nix @@ -0,0 +1,48 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, gettext +, intltool +, pkg-config +, wrapGAppsHook +, gtkmm3 +, libuuid +, poppler +, qpdf +}: + +stdenv.mkDerivation rec { + pname = "pdfslicer"; + version = "1.8.8"; + + src = fetchFromGitHub { + owner = "junrrein"; + repo = "pdfslicer"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "0sja0ddd9c8wjjpzk2ag8q1lxpj09adgmhd7wnsylincqnj2jyls"; + }; + + nativeBuildInputs = [ + cmake + gettext + intltool + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + gtkmm3 + libuuid + poppler + qpdf + ]; + + meta = with lib; { + description = "A simple application to extract, merge, rotate and reorder pages of PDF documents"; + homepage = "https://junrrein.github.io/pdfslicer/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/peaclock/default.nix b/nixpkgs/pkgs/applications/misc/peaclock/default.nix new file mode 100644 index 000000000000..619b6ed9b375 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/peaclock/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchFromGitHub, cmake, libpthreadstubs, icu }: + +stdenv.mkDerivation rec { + pname = "peaclock"; + version = "0.4.3"; + + src = fetchFromGitHub { + owner = "octobanana"; + repo = pname; + rev = version; + sha256 = "1582vgslhpgbvcd7ipgf1d1razrvgpq1f93q069yr2bbk6xn8i16"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libpthreadstubs icu ]; + + meta = with lib; { + description = "A clock, timer, and stopwatch for the terminal"; + homepage = "https://octobanana.com/software/peaclock"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ djanatyn ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pell/default.nix b/nixpkgs/pkgs/applications/misc/pell/default.nix new file mode 100644 index 000000000000..0b21de1e91e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pell/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchFromGitHub, scsh, sox, libnotify }: + +stdenv.mkDerivation rec { + pname = "pell"; + version = "0.0.4"; + + src = fetchFromGitHub { + owner = "ebzzry"; + repo = pname; + rev = "f251625ece6bb5517227970287119e7d2dfcea8b"; + sha256 = "0k8m1lv2kyrs8fylxmbgxg3jn65g57frf2bndc82gkr5svwb554a"; + }; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share + cp pell $out/bin + cp resources/online.mp3 $out/share + cp resources/offline.mp3 $out/share + chmod +x $out/bin/pell + ''; + + postFixup = '' + substituteInPlace $out/bin/pell --replace "/usr/bin/env scsh" "${scsh}/bin/scsh" + substituteInPlace $out/bin/pell --replace "(play " "(${sox}/bin/play " + substituteInPlace $out/bin/pell --replace "(notify-send " "(${libnotify}/bin/notify-send " + substituteInPlace $out/bin/pell --replace "/usr/share/pell/online.mp3" "$out/share/online.mp3" + substituteInPlace $out/bin/pell --replace "/usr/share/pell/offline.mp3" "$out/share/offline.mp3" + ''; + + meta = with lib; { + homepage = "https://github.com/ebzzry/pell"; + description = "A simple host availability monitor"; + license = licenses.mit; + maintainers = [ maintainers.ebzzry ]; + platforms = platforms.unix; + }; + + dontBuild = true; +} diff --git a/nixpkgs/pkgs/applications/misc/perkeep/default.nix b/nixpkgs/pkgs/applications/misc/perkeep/default.nix new file mode 100644 index 000000000000..2b14079ae609 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/perkeep/default.nix @@ -0,0 +1,59 @@ +{ buildGoModule, fetchurl, fetchFromGitHub, lib }: + +let + gouiJS = fetchurl { + url = "https://storage.googleapis.com/perkeep-release/gopherjs/goui.js"; + sha256 = "0xbkdpd900gnmzj8p0x38dn4sv170pdvgzcvzsq70s80p6ykkh6g"; + }; + + publisherJS = fetchurl { + url = "https://storage.googleapis.com/perkeep-release/gopherjs/publisher.js"; + sha256 = "09hd7p0xscqnh612jbrjvh3njmlm4292zd5sbqx2lg0aw688q8p2"; + }; + + packages = [ + "perkeep.org/server/perkeepd" + "perkeep.org/cmd/pk" + "perkeep.org/cmd/pk-get" + "perkeep.org/cmd/pk-put" + "perkeep.org/cmd/pk-mount" + ]; + +in buildGoModule rec { + pname = "perkeep"; + version = "0.11"; + + src = fetchFromGitHub { + owner = "perkeep"; + repo = "perkeep"; + rev = version; + sha256 = "07j5gplk4kcrbazyg4m4bwggzlz5gk89h90r14jvfcpms7v5nrll"; + }; + + vendorSha256 = "1af9a6r9qfrak0n5xyv9z8n7gn7xw2sdjn4s9bwwidkrdm81iq6b"; + deleteVendor = true; # Vendor is out of sync with go.mod + + buildPhase = '' + cd "$NIX_BUILD_TOP/source" + + # Skip network fetches + cp ${publisherJS} app/publisher/publisher.js + cp ${gouiJS} server/perkeepd/ui/goui.js + + go run make.go -offline=true -targets=${lib.concatStringsSep "," packages} + ''; + + # genfileembed gets built regardless of -targets, to embed static + # content into the Perkeep binaries. Remove it in post-install to + # avoid polluting paths. + postInstall = '' + rm -f $out/bin/genfileembed + ''; + + meta = with lib; { + description = "A way of storing, syncing, sharing, modelling and backing up content (née Camlistore)"; + homepage = "https://perkeep.org"; + license = licenses.asl20; + maintainers = with maintainers; [ cstrahan danderson kalbasit ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pgadmin/default.nix b/nixpkgs/pkgs/applications/misc/pgadmin/default.nix new file mode 100644 index 000000000000..f4981f6d3fb7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pgadmin/default.nix @@ -0,0 +1,58 @@ +{ lib, stdenv, fetchurl, fetchpatch, postgresql, wxGTK, libxml2, libxslt, openssl, zlib, makeDesktopItem }: + +stdenv.mkDerivation rec { + pname = "pgadmin3"; + version = "1.22.2"; + + src = fetchurl { + url = "https://ftp.postgresql.org/pub/pgadmin/pgadmin3/v${version}/src/pgadmin3-${version}.tar.gz"; + sha256 = "1b24b356h8z188nci30xrb57l7kxjqjnh6dq9ws638phsgiv0s4v"; + }; + + enableParallelBuilding = true; + + buildInputs = [ postgresql wxGTK openssl zlib ]; + + patches = [ + (fetchpatch { + sha256 = "09hp7s3zjz80rpx2j3xyznwswwfxzi70z7c05dzrdk74mqjjpkfk"; + name = "843344.patch"; + url = "https://sources.debian.net/data/main/p/pgadmin3/1.22.2-1/debian/patches/843344"; + }) + ]; + + preConfigure = '' + substituteInPlace pgadmin/ver_svn.sh --replace "bin/bash" "$shell" + ''; + + configureFlags = [ + "--with-pgsql=${postgresql}" + "--with-libxml2=${libxml2.dev}" + "--with-libxslt=${libxslt.dev}" + ]; + + meta = with lib; { + description = "PostgreSQL administration GUI tool"; + homepage = "https://www.pgadmin.org"; + license = licenses.gpl2; + maintainers = with maintainers; [ domenkozar wmertens ]; + platforms = platforms.unix; + }; + + postFixup = let + desktopItem = makeDesktopItem { + name = "pgAdmin"; + desktopName = "pgAdmin III"; + genericName = "SQL Administration"; + exec = "pgadmin3"; + icon = "pgAdmin3"; + type = "Application"; + categories = "Development;"; + mimeType = "text/html"; + }; + in '' + mkdir -p $out/share/pixmaps; + cp pgadmin/include/images/pgAdmin3.png $out/share/pixmaps/; + cp -rv ${desktopItem}/share/applications $out/share/ + ''; +} diff --git a/nixpkgs/pkgs/applications/misc/pgmanage/default.nix b/nixpkgs/pkgs/applications/misc/pgmanage/default.nix new file mode 100644 index 000000000000..b892ebb2a9e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pgmanage/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchFromGitHub, postgresql, openssl } : + +stdenv.mkDerivation rec { + pname = "pgmanage"; + version = "11.0.1"; + + src = fetchFromGitHub { + owner = "pgManage"; + repo = "pgManage"; + rev = "v${version}"; + sha256 = "1a1dbc32b3y0ph8ydf800h6pz7dg6g1gxgid4gffk7k58xj0c5yf"; + }; + + patchPhase = '' + patchShebangs src/configure + ''; + + configurePhase = '' + ./configure --prefix $out + ''; + + buildInputs = [ postgresql openssl ]; + + meta = with lib; { + description = "A fast replacement for PGAdmin"; + longDescription = '' + At the heart of pgManage is a modern, fast, event-based C-binary, built in + the style of NGINX and Node.js. This heart makes pgManage as fast as any + PostgreSQL interface can hope to be. (Note: pgManage replaces Postage, + which is no longer maintained.) + ''; + homepage = "https://github.com/pgManage/pgManage"; + license = licenses.postgresql; + maintainers = [ maintainers.basvandijk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix b/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix new file mode 100644 index 000000000000..0a99d357e68f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix @@ -0,0 +1,35 @@ +{ lib +, fetchFromGitHub +, pkg-config +, qmake +, mkDerivation +, qtsvg +, libxml2 +, postgresql +}: + +mkDerivation rec { + pname = "pgmodeler"; + version = "0.9.3"; + + src = fetchFromGitHub { + owner = "pgmodeler"; + repo = "pgmodeler"; + rev = "v${version}"; + sha256 = "1bci5x418dbnkny7hn0b5q5lxyajrgl3frv41ji0hcw9vivrds2g"; + }; + + nativeBuildInputs = [ pkg-config qmake ]; + qmakeFlags = [ "pgmodeler.pro" "CONFIG+=release" ]; + + # todo: libpq would suffice here. Unfortunately this won't work, if one uses only postgresql.lib here. + buildInputs = [ postgresql qtsvg ]; + + meta = with lib; { + description = "A database modeling tool for PostgreSQL"; + homepage = "https://pgmodeler.io/"; + license = licenses.gpl3; + maintainers = [ maintainers.esclear ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/phoc/default.nix b/nixpkgs/pkgs/applications/misc/phoc/default.nix new file mode 100644 index 000000000000..aad2a4d0e48c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/phoc/default.nix @@ -0,0 +1,84 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, libinput +, gnome +, glib +, gtk3 +, wayland +, libdrm +, libxkbcommon +, wlroots +}: + +let + phocWlroots = wlroots.overrideAttrs (old: { + patches = (old.patches or []) ++ [ + # Temporary fix. Upstream report: https://source.puri.sm/Librem5/phosh/-/issues/422 + (fetchpatch { + name = "0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; + url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/78fde4aaf1a74eb13a3f083cb6dfb29f578c3265/community/wlroots/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; + sha256 = "1zjn7mwdj21z0jsc2mz90cnrzk97yqkiq58qqgpjav4h4dgpfb38"; + }) + # To fix missing header `EGL/eglmesaext.h` dropped upstream + (fetchpatch { + name = "0002-stop-including-eglmesaext-h.patch"; + url = "https://github.com/swaywm/wlroots/commit/e18599b05e0f0cbeba11adbd489e801285470eab.patch"; + sha256 = "17ax4dyk0584yhs3lq8ija5bkainjf7psx9c9r50cr4jm9c0i37l"; + }) + ]; + }); +in stdenv.mkDerivation rec { + pname = "phoc"; + version = "0.7.1"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "0n188xa2pwl4258naxhz45cvipcid8y1zvlbddll9xydrrh9bwqn"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + libdrm.dev + libxkbcommon + libinput + glib + gtk3 + gnome.gnome-desktop + # For keybindings settings schemas + gnome.mutter + wayland + phocWlroots + ]; + + mesonFlags = ["-Dembed-wlroots=disabled"]; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + meta = with lib; { + description = "Wayland compositor for mobile phones like the Librem 5"; + homepage = "https://source.puri.sm/Librem5/phoc"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ archseer masipcat zhaofengli ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/phwmon/default.nix b/nixpkgs/pkgs/applications/misc/phwmon/default.nix new file mode 100644 index 000000000000..717c5c3feb10 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/phwmon/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchFromGitLab, pythonPackages }: + +stdenv.mkDerivation { + pname = "phwmon"; + version = "2017-04-10"; + + src = fetchFromGitLab { + owner = "o9000"; + repo = "phwmon"; + rev = "b162e53dccc4adf8f11f49408d05fd85d9c6c909"; + sha256 = "1hqmsq66y8bqkpvszw84jyk8haxq3cjnz105hlkmp7786vfmkisq"; + }; + + nativeBuildInputs = [ pythonPackages.wrapPython ]; + + buildInputs = [ pythonPackages.pygtk pythonPackages.psutil ]; + + pythonPath = [ pythonPackages.pygtk pythonPackages.psutil ]; + + patchPhase = '' + substituteInPlace install.sh --replace "/usr/local" "$out" + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/applications + ./install.sh + ''; + + postFixup = '' + wrapPythonPrograms + ''; + + meta = { + homepage = "https://gitlab.com/o9000/phwmon"; + description = "Hardware monitor (CPU, memory, network and disk I/O) for the system tray"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pinfo/default.nix b/nixpkgs/pkgs/applications/misc/pinfo/default.nix new file mode 100644 index 000000000000..b0fc64a1a5e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pinfo/default.nix @@ -0,0 +1,45 @@ +{ lib +, autoreconfHook +, fetchFromGitHub +, gettext +, ncurses +, readline +, stdenv +, texinfo +}: + +stdenv.mkDerivation rec { + pname = "pinfo"; + version = "0.6.13"; + + src = fetchFromGitHub { + owner = "baszoetekouw"; + repo = pname; + rev = "v${version}"; + sha256 = "173d2p22irwiabvr4z6qvr6zpr6ysfkhmadjlyhyiwd7z62larvy"; + }; + + nativeBuildInputs = [ + autoreconfHook + ]; + + buildInputs = [ + gettext + texinfo + ncurses + readline + ]; + + configureFlags = [ + "--with-curses=${ncurses.dev}" + "--with-readline=${readline.dev}" + ]; + + meta = with lib; { + description = "A viewer for info files"; + homepage = "https://github.com/baszoetekouw/pinfo"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pipr/default.nix b/nixpkgs/pkgs/applications/misc/pipr/default.nix new file mode 100644 index 000000000000..96627f5cccb5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pipr/default.nix @@ -0,0 +1,33 @@ +{ lib +, fetchFromGitHub +, rustPlatform +, bubblewrap +, makeWrapper +}: + +rustPlatform.buildRustPackage rec { + pname = "pipr"; + version = "0.0.15"; + + src = fetchFromGitHub { + owner = "ElKowar"; + repo = pname; + rev = "v${version}"; + sha256 = "1pbj198nqi27kavz9bm31a3h7h70by6l00046x09yf9n8qjpp01w"; + }; + + cargoSha256 = "05ryaxi479fxzdcl51r1xlqbiasfzxcxgvl4wnxync8qi8q2yqk0"; + + nativeBuildInputs = [ makeWrapper ]; + postFixup = '' + wrapProgram "$out/bin/pipr" --prefix PATH : ${lib.makeBinPath [ bubblewrap ]} + ''; + + meta = with lib; { + description = "A commandline-tool to interactively write shell pipelines"; + homepage = "https://github.com/ElKowar/pipr"; + license = licenses.mit; + maintainers = with maintainers; [ elkowar ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/plank/default.nix b/nixpkgs/pkgs/applications/misc/plank/default.nix new file mode 100644 index 000000000000..85e3bb48119c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/plank/default.nix @@ -0,0 +1,89 @@ +{ lib, stdenv +, fetchurl +, vala +, atk +, cairo +, dconf +, glib +, gnome +, gtk3 +, libwnck +, libX11 +, libXfixes +, libXi +, pango +, gettext +, pkg-config +, libxml2 +, bamf +, gdk-pixbuf +, libdbusmenu-gtk3 +, file +, gnome-menus +, libgee +, wrapGAppsHook +, autoreconfHook +, pantheon +}: + +stdenv.mkDerivation rec { + pname = "plank"; + version = "0.11.89"; + + src = fetchurl { + url = "https://launchpad.net/${pname}/1.0/${version}/+download/${pname}-${version}.tar.xz"; + sha256 = "17cxlmy7n13jp1v8i4abxyx9hylzb39andhz3mk41ggzmrpa8qm6"; + }; + + nativeBuildInputs = [ + autoreconfHook + gettext + gnome.gnome-common + libxml2 # xmllint + pkg-config + vala + wrapGAppsHook + ]; + + buildInputs = [ + atk + bamf + cairo + gdk-pixbuf + glib + gnome-menus + dconf + gtk3 + libX11 + libXfixes + libXi + libdbusmenu-gtk3 + libgee + libwnck + pango + ]; + + # fix paths + makeFlags = [ + "INTROSPECTION_GIRDIR=${placeholder "out"}/share/gir-1.0/" + "INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0" + ]; + + # Make plank's application launcher hidden in Pantheon + patches = [ + ./hide-in-pantheon.patch + ]; + + postPatch = '' + substituteInPlace ./configure \ + --replace "/usr/bin/file" "${file}/bin/file" + ''; + + meta = with lib; { + description = "Elegant, simple, clean dock"; + homepage = "https://launchpad.net/plank"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ davidak ] ++ pantheon.maintainers; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch b/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch new file mode 100644 index 000000000000..ab8a4c723897 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch @@ -0,0 +1,9 @@ +diff --git a/data/plank.desktop.in b/data/plank.desktop.in +index 330c3a4..e1bdf5f 100644 +--- a/data/plank.desktop.in ++++ b/data/plank.desktop.in +@@ -8,3 +8,4 @@ Exec=plank + Icon=plank + Terminal=false + NoDisplay=false ++NotShowIn=Pantheon; diff --git a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch new file mode 100644 index 000000000000..b33a3e174bc4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch @@ -0,0 +1,20 @@ +diff -Naur org.kde.plasma.volumewin7mixer/CMakeLists.txt org.kde.plasma.volumewin7mixer.patch/CMakeLists.txt +--- org.kde.plasma.volumewin7mixer/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 ++++ org.kde.plasma.volumewin7mixer.patch/CMakeLists.txt 2016-04-19 11:23:35.137866949 +0200 +@@ -0,0 +1,15 @@ ++# Set minimum CMake version (required for CMake 3.0 or later) ++cmake_minimum_required(VERSION 2.8.12) ++ ++# Use Extra CMake Modules (ECM) for common functionality. ++# See http://api.kde.org/ecm/manual/ecm.7.html ++# and http://api.kde.org/ecm/manual/ecm-kde-modules.7.html ++find_package(ECM REQUIRED NO_MODULE) ++# Needed by find_package(KF5Plasma) below. ++set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_MODULE_PATH}) ++ ++# Locate plasma_install_package macro. ++find_package(KF5Plasma REQUIRED) ++ ++# Add installatation target ("make install"). ++plasma_install_package(package org.kde.plasma.volumewin7mixer) + diff --git a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix new file mode 100644 index 000000000000..e8bc572e284f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, plasma-pa, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "plasma-applet-volumewin7mixer"; + version = "26"; + + src = fetchFromGitHub { + owner = "Zren"; + repo = "plasma-applet-volumewin7mixer"; + rev = "v${version}"; + sha256 = "sha256-VMOUNtAURTHDuJBOGz2N0+3VzxBmVNC1O8dVuyUZAa4="; + }; + + # Adds the CMakeLists.txt not provided by upstream + patches = [ ./cmake.patch ]; + postPatch = "rm build"; + nativeBuildInputs = [ cmake extra-cmake-modules ]; + buildInputs = [ plasma-framework kwindowsystem plasma-pa ]; + + dontWrapQtApps = true; + + meta = with lib; { + description = "A fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)"; + homepage = "https://github.com/Zren/plasma-applet-volumewin7mixer"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mdevlamynck ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/plater/default.nix b/nixpkgs/pkgs/applications/misc/plater/default.nix new file mode 100644 index 000000000000..9b034f9f904e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/plater/default.nix @@ -0,0 +1,47 @@ +{ mkDerivation +, cmake +, fetchFromGitHub +, lib +, libGLU +, makeDesktopItem +, qtbase +, wrapQtAppsHook +}: + +mkDerivation rec { + pname = "plater"; + version = "2020-07-30"; + + src = fetchFromGitHub { + owner = "Rhoban"; + repo = "Plater"; + rev = "f8de6d038f95a9edebfcfe142c8e9783697d5b47"; + sha256 = "0r20mbzd16zv1aiadjqdy7z6sp09rr6lgfxhvir4ll3cpakkynr4"; + }; + + nativeBuildInputs = [ cmake wrapQtAppsHook ]; + buildInputs = [ libGLU qtbase ]; + + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + desktopName = "Ideamaker"; + genericName = meta.description; + categories = "Utility;Engineering;"; + }; + + postInstall = '' + mkdir -p $out/share/pixmaps + ln -s ${desktopItem}/share/applications $out/share/ + cp $src/gui/img/plater.png $out/share/pixmaps/${pname}.png + ''; + + meta = with lib; { + description = "3D-printer parts placer and plate generator"; + homepage = "https://github.com/Rhoban/Plater"; + maintainers = with maintainers; [ lovesegfault ]; + platforms = platforms.linux; + license = licenses.cc-by-nc-30; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/playonlinux/0001-fix-locale.patch b/nixpkgs/pkgs/applications/misc/playonlinux/0001-fix-locale.patch new file mode 100644 index 000000000000..2ae1a17ca8b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/playonlinux/0001-fix-locale.patch @@ -0,0 +1,17 @@ +diff --git a/python/lib/lng.py b/python/lib/lng.py +index a390d920..00c3527e 100755 +--- a/python/lib/lng.py ++++ b/python/lib/lng.py +@@ -12,11 +12,7 @@ class Lang(object): + + class iLang(object): + def __init__(self): +- if(os.environ["DEBIAN_PACKAGE"] == "TRUE"): +- languages = os.listdir('/usr/share/locale') +- else: +- languages = os.listdir(Variables.playonlinux_env+'/lang/locale') +- ++ languages = os.listdir('@out@/share/playonlinux/lang/locale') + if(os.environ["POL_OS"] == "Mac"): + wxLocale = wx.Locale().FindLanguageInfo(os.environ["RLANG"]) + diff --git a/nixpkgs/pkgs/applications/misc/playonlinux/default.nix b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix new file mode 100644 index 000000000000..320d771bc67c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix @@ -0,0 +1,134 @@ +{ lib, stdenv +, makeWrapper +, fetchurl +, cabextract +, gettext +, glxinfo +, gnupg +, icoutils +, imagemagick +, netcat-gnu +, p7zip +, python3 +, unzip +, wget +, wine +, xdg-user-dirs +, xterm +, pkgs +, pkgsi686Linux +, which +, curl +, jq +, xorg +, libGL +, steam-run-native +# needed for avoiding crash on file selector +, gsettings-desktop-schemas +}: + +let + version = "4.4"; + + binpath = lib.makeBinPath [ + cabextract + python + gettext + glxinfo + gnupg + icoutils + imagemagick + netcat-gnu + p7zip + unzip + wget + wine + xdg-user-dirs + xterm + which + curl + jq + ]; + + ld32 = + if stdenv.hostPlatform.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32" + else if stdenv.hostPlatform.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker" + else throw "Unsupported platform for PlayOnLinux: ${stdenv.hostPlatform.system}"; + ld64 = "${stdenv.cc}/nix-support/dynamic-linker"; + libs = pkgs: lib.makeLibraryPath [ xorg.libX11 libGL ]; + + python = python3.withPackages(ps: with ps; [ + wxPython_4_1 + setuptools + natsort + ]); + +in stdenv.mkDerivation { + pname = "playonlinux"; + inherit version; + + src = fetchurl { + url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz"; + sha256 = "0n40927c8cnjackfns68zwl7h4d7dvhf7cyqdkazzwwx4k2xxvma"; + }; + + patches = [ + ./0001-fix-locale.patch + ]; + + nativeBuildInputs = [ makeWrapper ]; + + preBuild = '' + makeFlagsArray+=(PYTHON="python -m py_compile") + ''; + + buildInputs = [ + xorg.libX11 + libGL + python + ]; + + postPatch = '' + substituteAllInPlace python/lib/lng.py + patchShebangs python tests/python + sed -i "s/ %F//g" etc/PlayOnLinux.desktop + ''; + + installPhase = '' + install -d $out/share/playonlinux + cp -r . $out/share/playonlinux/ + + install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop + + makeWrapper $out/share/playonlinux/playonlinux{,-wrapper} \ + --prefix PATH : ${binpath} \ + --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/GConf + # steam-run is needed to run the downloaded wine executables + mkdir -p $out/bin + cat > $out/bin/playonlinux <<EOF + #!${stdenv.shell} -e + exec ${steam-run-native}/bin/steam-run $out/share/playonlinux/playonlinux-wrapper "\$@" + EOF + chmod a+x $out/bin/playonlinux + + bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2 + patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${libs pkgsi686Linux} $out/share/playonlinux/bin/check_dd_x86 + ${if stdenv.hostPlatform.system == "x86_64-linux" then '' + bunzip2 $out/share/playonlinux/bin/check_dd_amd64.bz2 + patchelf --set-interpreter $(cat ${ld64}) --set-rpath ${libs pkgs} $out/share/playonlinux/bin/check_dd_amd64 + '' else '' + rm $out/share/playonlinux/bin/check_dd_amd64.bz2 + ''} + for f in $out/share/playonlinux/bin/*; do + bzip2 $f + done + ''; + + meta = with lib; { + description = "GUI for managing Windows programs under linux"; + homepage = "https://www.playonlinux.com/"; + license = licenses.gpl3; + maintainers = [ maintainers.pasqui23 ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/plover/default.nix b/nixpkgs/pkgs/applications/misc/plover/default.nix new file mode 100644 index 000000000000..ac4811b30c41 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/plover/default.nix @@ -0,0 +1,55 @@ +{ lib, fetchurl, python27Packages, python36Packages, wmctrl, + qtbase, mkDerivationWith }: + +{ + stable = with python27Packages; buildPythonPackage rec { + pname = "plover"; + version = "3.1.1"; + + meta = with lib; { + description = "OpenSteno Plover stenography software"; + maintainers = with maintainers; [ twey kovirobi ]; + license = licenses.gpl2; + }; + + src = fetchurl { + url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz"; + sha256 = "1hdg5491phx6svrxxsxp8v6n4b25y7y4wxw7x3bxlbyhaskgj53r"; + }; + + nativeBuildInputs = [ setuptools-scm ]; + buildInputs = [ pytest mock ]; + propagatedBuildInputs = [ + six setuptools pyserial appdirs hidapi wxPython xlib wmctrl dbus-python + ]; + }; + + dev = with python36Packages; mkDerivationWith buildPythonPackage rec { + pname = "plover"; + version = "4.0.0.dev8"; + + meta = with lib; { + description = "OpenSteno Plover stenography software"; + maintainers = with maintainers; [ twey kovirobi ]; + license = licenses.gpl2; + }; + + src = fetchurl { + url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz"; + sha256 = "1wxkmik1zyw5gqig5r0cas5v6f5408fbnximzw610rdisqy09rxp"; + }; + + # I'm not sure why we don't find PyQt5 here but there's a similar + # sed on many of the platforms Plover builds for + postPatch = "sed -i /PyQt5/d setup.cfg"; + + checkInputs = [ pytest mock ]; + propagatedBuildInputs = [ Babel pyqt5 xlib pyserial appdirs wcwidth setuptools ]; + + dontWrapQtApps = true; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix new file mode 100644 index 000000000000..8fcd9e1a04fe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix @@ -0,0 +1,130 @@ +{ stdenv +, lib +, makeWrapper +, fetchurl +, dpkg +, wrapGAppsHook +, autoPatchelfHook +, gtk3 +, cairo +, pango +, atk +, gdk-pixbuf +, glib +, at-spi2-atk +, dbus +, libX11 +, libxcb +, libXi +, libXcursor +, libXdamage +, libXrandr +, libXcomposite +, libXext +, libXfixes +, libXrender +, libXtst +, libXScrnSaver +, nss +, nspr +, alsa-lib +, cups +, fontconfig +, expat +, libudev0-shim +, glibc +, curl +, openssl +, libnghttp2 +, gsettings-desktop-schemas +, libdrm +, mesa +}: + + +stdenv.mkDerivation rec { + pname = "polar-bookshelf"; + version = "2.0.103"; + + # fetching a .deb because there's no easy way to package this Electron app + src = fetchurl { + url = "https://github.com/burtonator/polar-bookshelf/releases/download/v${version}/polar-desktop-app-${version}-amd64.deb"; + hash = "sha256-jcq0hW698bAhVM3fLQQeKAnld33XLkHsGjS3QwUpciQ="; + }; + + buildInputs = [ + libdrm + mesa + gsettings-desktop-schemas + glib + gtk3 + cairo + pango + atk + gdk-pixbuf + at-spi2-atk + dbus + libX11 + libxcb + libXi + libXcursor + libXdamage + libXrandr + libXcomposite + libXext + libXfixes + libXrender + libXtst + libXScrnSaver + nss + nspr + alsa-lib + cups + fontconfig + expat + ]; + + nativeBuildInputs = [ + wrapGAppsHook + autoPatchelfHook + makeWrapper + dpkg + ]; + + runtimeLibs = lib.makeLibraryPath [ libudev0-shim glibc curl openssl libnghttp2 ]; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/polar-bookshelf + mkdir -p $out/bin + mkdir -p $out/lib + + mv opt/Polar/* $out/share/polar-bookshelf + mv $out/share/polar-bookshelf/*.so $out/lib + + mv usr/share/* $out/share/ + + ln -s $out/share/polar-bookshelf/polar-desktop-app $out/bin/polar-desktop-app + + substituteInPlace $out/share/applications/polar-desktop-app.desktop \ + --replace "/opt/Polar/polar-desktop-app" "$out/bin/polar-desktop-app" + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" ) + ''; + + meta = { + homepage = "https://getpolarized.io/"; + description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation"; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.noneucat ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/polybar/default.nix b/nixpkgs/pkgs/applications/misc/polybar/default.nix new file mode 100644 index 000000000000..b3b71d87608e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/polybar/default.nix @@ -0,0 +1,116 @@ +{ config +, cairo +, cmake +, fetchFromGitHub +, libXdmcp +, libpthreadstubs +, libxcb +, pcre +, pkg-config +, python3 +, python3Packages # sphinx-build +, lib +, stdenv +, xcbproto +, xcbutil +, xcbutilcursor +, xcbutilimage +, xcbutilrenderutil +, xcbutilwm +, xcbutilxrm +, makeWrapper +, removeReferencesTo +, alsa-lib +, curl +, libmpdclient +, libpulseaudio +, wirelesstools +, libnl +, i3 +, i3-gaps +, jsoncpp + + # override the variables ending in 'Support' to enable or disable modules +, alsaSupport ? true +, githubSupport ? false +, mpdSupport ? false +, pulseSupport ? config.pulseaudio or false +, iwSupport ? false +, nlSupport ? true +, i3Support ? false +, i3GapsSupport ? false +}: + +stdenv.mkDerivation rec { + pname = "polybar"; + version = "3.5.6"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "sha256-Uvj9V2M/uQxyziTx1hecrcaQZECijlpVmWcUeT+PqrI="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + cmake + pkg-config + python3Packages.sphinx + removeReferencesTo + ] ++ lib.optional (i3Support || i3GapsSupport) makeWrapper; + + buildInputs = [ + cairo + libXdmcp + libpthreadstubs + libxcb + pcre + python3 + xcbproto + xcbutil + xcbutilcursor + xcbutilimage + xcbutilrenderutil + xcbutilwm + xcbutilxrm + ] ++ lib.optional alsaSupport alsa-lib + ++ lib.optional githubSupport curl + ++ lib.optional mpdSupport libmpdclient + ++ lib.optional pulseSupport libpulseaudio + ++ lib.optional iwSupport wirelesstools + ++ lib.optional nlSupport libnl + ++ lib.optional (i3Support || i3GapsSupport) jsoncpp + ++ lib.optional i3Support i3 + ++ lib.optional i3GapsSupport i3-gaps; + + postInstall = + if i3Support then '' + wrapProgram $out/bin/polybar \ + --prefix PATH : "${i3}/bin" + '' + else if i3GapsSupport + then '' + wrapProgram $out/bin/polybar \ + --prefix PATH : "${i3-gaps}/bin" + '' + else ""; + + postFixup = '' + remove-references-to -t ${stdenv.cc} $out/bin/polybar + ''; + + meta = with lib; { + homepage = "https://polybar.github.io/"; + changelog = "https://github.com/polybar/polybar/releases/tag/${version}"; + description = "A fast and easy-to-use tool for creating status bars"; + longDescription = '' + Polybar aims to help users build beautiful and highly customizable + status bars for their desktop environment, without the need of + having a black belt in shell scripting. + ''; + license = licenses.mit; + maintainers = with maintainers; [ afldcr Br1ght0ne fortuneteller2k ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/portfolio-filemanager/default.nix b/nixpkgs/pkgs/applications/misc/portfolio-filemanager/default.nix new file mode 100644 index 000000000000..6b4946976bf6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/portfolio-filemanager/default.nix @@ -0,0 +1,71 @@ +{ lib +, python3 +, fetchFromGitHub +, appstream-glib +, desktop-file-utils +, gettext +, glib +, gobject-introspection +, gtk3 +, libhandy +, librsvg +, meson +, ninja +, pkg-config +, wrapGAppsHook +}: + +python3.pkgs.buildPythonApplication rec { + pname = "portfolio"; + version = "0.9.10"; + + format = "other"; + + src = fetchFromGitHub { + owner = "tchx84"; + repo = "Portfolio"; + rev = "v${version}"; + sha256 = "06hk0kx6h8w263qa71bik68rg4r8qs94b6s60pyhzicfc822k0j4"; + }; + + postPatch = '' + patchShebangs build-aux/meson + ''; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + gettext + glib + gobject-introspection + gtk3 + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + glib + gobject-introspection + libhandy + librsvg + ]; + + propagatedBuildInputs = with python3.pkgs; [ + pygobject3 + ]; + + postInstall = '' + ln -s dev.tchx84.Portfolio "$out/bin/portfolio" + ''; + + meta = with lib; { + description = "A minimalist file manager for those who want to use Linux mobile devices"; + homepage = "https://github.com/tchx84/Portfolio"; + changelog = "https://github.com/tchx84/Portfolio/blob/v${version}/CHANGELOG.md"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/posterazor/default.nix b/nixpkgs/pkgs/applications/misc/posterazor/default.nix new file mode 100644 index 000000000000..602ac3e5e3b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/posterazor/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl, cmake, unzip, pkg-config, libXpm, fltk13, freeimage }: + +stdenv.mkDerivation { + name = "posterazor-1.5.1"; + + src = fetchurl { + url = "mirror://sourceforge/posterazor/1.5.1/PosteRazor-1.5.1-Source.zip"; + sha256 = "1dqpdk8zl0smdg4fganp3hxb943q40619qmxjlga9jhjc01s7fq5"; + }; + + hardeningDisable = [ "format" ]; + + nativeBuildInputs = [ cmake pkg-config unzip ]; + buildInputs = [ libXpm fltk13 freeimage ]; + + unpackPhase = '' + unzip $src -d posterazor + cd posterazor/src + ''; + + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667328 + patchPhase = '' + sed "s/\(#define CASESENSITIVESTRCMP strcasecmp\)/#include <unistd.h>\n\1/" -i FlPosteRazorDialog.cpp + ''; + + installPhase = '' + mkdir -p $out/bin + cp PosteRazor $out/bin + ''; + + meta = with lib; { + homepage = "http://posterazor.sourceforge.net/"; + description = "Cuts a raster image into pieces which can afterwards be printed out and assembled to a poster"; + maintainers = [ maintainers.madjar ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/prevo/data.nix b/nixpkgs/pkgs/applications/misc/prevo/data.nix new file mode 100644 index 000000000000..efd19d7745ca --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/prevo/data.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchFromGitHub, prevo-tools }: + +stdenv.mkDerivation rec { + pname = "prevo-data"; + version = "2020-03-08"; + + src = fetchFromGitHub { + owner = "bpeel"; + repo = "revo"; + rev = "1e8d7197c0bc831e2127909e77e64dfc26906bdd"; + sha256 = "1ldhzpi3d5cbssv8r7acsn7qwxcl8qpqi8ywpsp7cbgx3w7hhkyz"; + }; + + nativeBuildInputs = [ prevo-tools ]; + + dontUnpack = true; + + buildPhase = '' + prevodb -s -i $src -o prevo.db + ''; + + installPhase = '' + mkdir -p $out/share/prevo + cp prevo.db $out/share/prevo/ + ''; + + meta = with lib; { + description = + "data for offline version of the Esperanto dictionary Reta Vortaro"; + longDescription = '' + PReVo is the "portable" ReVo, i.e., the offline version + of the Esperanto dictionary Reta Vortaro. + + This package provides the ReVo database for the prevo command line application. + ''; + homepage = "https://github.com/bpeel/revo"; + license = licenses.gpl2Only; + maintainers = [ maintainers.das-g ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/prevo/default.nix b/nixpkgs/pkgs/applications/misc/prevo/default.nix new file mode 100644 index 000000000000..45f5889d4d5d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/prevo/default.nix @@ -0,0 +1,27 @@ +{ lib, symlinkJoin, prevo-tools, prevo-data, makeWrapper }: + +symlinkJoin rec { + name = "prevo-${version}"; + inherit (prevo-tools) version; + + paths = [ prevo-tools ]; + + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/prevo \ + --prefix XDG_DATA_DIRS : "${prevo-data}/share" + ''; + + meta = with lib; { + description = "offline version of the Esperanto dictionary Reta Vortaro"; + longDescription = '' + PReVo is the "portable" ReVo, i.e., the offline version + of the Esperanto dictionary Reta Vortaro. + ''; + homepage = "https://github.com/bpeel/prevodb"; + license = licenses.gpl2Only; + maintainers = [ maintainers.das-g ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/prevo/tools.nix b/nixpkgs/pkgs/applications/misc/prevo/tools.nix new file mode 100644 index 000000000000..508f085bb44b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/prevo/tools.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, glib, expat +, installShellFiles }: + +stdenv.mkDerivation rec { + pname = "prevo-tools"; + version = "0.2"; + + src = fetchFromGitHub { + owner = "bpeel"; + repo = "prevodb"; + rev = version; + sha256 = "1fyrc4g9qdq04nxs4g8x0krxfani5xady6v9m0qfqpbh4xk2ry2d"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config installShellFiles ]; + buildInputs = [ glib expat ]; + + postInstall = '' + installShellCompletion --bash src/prevo-completion + ''; + + meta = with lib; { + description = + "CLI tools for the offline version of the Esperanto dictionary Reta Vortaro"; + longDescription = '' + PReVo is the "portable" ReVo, i.e., the offline version + of the Esperanto dictionary Reta Vortaro. + + This package provides the command line application prevo to query a local + ReVo database, as well as the command line tool revodb to create such a + database for this application or for the Android app of the same name. + ''; + homepage = "https://github.com/bpeel/prevodb"; + license = licenses.gpl2Only; + maintainers = [ maintainers.das-g ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/printrun/default.nix b/nixpkgs/pkgs/applications/misc/printrun/default.nix new file mode 100644 index 000000000000..7ae8662e2c19 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/printrun/default.nix @@ -0,0 +1,48 @@ +{ lib, python3Packages, fetchFromGitHub, glib, wrapGAppsHook }: + +python3Packages.buildPythonApplication rec { + pname = "printrun"; + version = "2.0.0rc5"; + + src = fetchFromGitHub { + owner = "kliment"; + repo = "Printrun"; + rev = "${pname}-${version}"; + sha256 = "179x8lwrw2h7cxnkq7izny6qcb4nhjnd8zx893i77zfhzsa6kx81"; + }; + + nativeBuildInputs = [ glib wrapGAppsHook ]; + + propagatedBuildInputs = with python3Packages; [ + appdirs cython dbus-python numpy six wxPython_4_0 psutil pyglet pyopengl pyserial + ]; + + doCheck = false; + + setupPyBuildFlags = ["-i"]; + + postPatch = '' + sed -i -r "s|/usr(/local)?/share/|$out/share/|g" printrun/utils.py + ''; + + postInstall = '' + for f in $out/share/applications/*.desktop; do + sed -i -e "s|/usr/|$out/|g" "$f" + done + ''; + + dontWrapGApps = true; + # https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Pronterface, Pronsole, and Printcore - Pure Python 3d printing host software"; + homepage = "https://github.com/kliment/Printrun"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/privacyidea/default.nix b/nixpkgs/pkgs/applications/misc/privacyidea/default.nix new file mode 100644 index 000000000000..7545253d5066 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/privacyidea/default.nix @@ -0,0 +1,73 @@ +{ lib, fetchFromGitHub, cacert, openssl, nixosTests +, python3 +}: + +let + python3' = python3.override { + packageOverrides = self: super: { + sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec { + version = "1.3.24"; + src = oldAttrs.src.override { + inherit version; + sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519"; + }; + }); + }; + }; +in +python3'.pkgs.buildPythonPackage rec { + pname = "privacyIDEA"; + version = "3.6"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-yywkQ3TdBzRMbJGY0Seaprztgt0JrCAbgqosMQ5fcQM="; + fetchSubmodules = true; + }; + + propagatedBuildInputs = with python3'.pkgs; [ + cryptography pyrad pymysql python-dateutil flask-versioned flask_script + defusedxml croniter flask_migrate pyjwt1 configobj sqlsoup pillow + python-gnupg passlib pyopenssl beautifulsoup4 smpplib flask-babel + ldap3 huey pyyaml qrcode oauth2client requests lxml cbor2 psycopg2 + pydash ecdsa google-auth importlib-metadata + ]; + + passthru.tests = { inherit (nixosTests) privacyidea; }; + + checkInputs = with python3'.pkgs; [ openssl mock pytestCheckHook responses testfixtures ]; + disabledTests = [ + "AESHardwareSecurityModuleTestCase" + "test_01_cert_request" + "test_01_loading_scripts" + "test_02_api_push_poll" + "test_02_cert_enrolled" + "test_02_enroll_rights" + "test_02_get_resolvers" + "test_02_success" + "test_03_get_identifiers" + "test_04_remote_user_auth" + "test_14_convert_timestamp_to_utc" + ]; + + pythonImportsCheck = [ "privacyidea" ]; + + postPatch = '' + substituteInPlace privacyidea/lib/resolvers/LDAPIdResolver.py --replace \ + "/etc/privacyidea/ldap-ca.crt" \ + "${cacert}/etc/ssl/certs/ca-bundle.crt" + ''; + + postInstall = '' + rm -r $out/${python3'.sitePackages}/tests + ''; + + meta = with lib; { + description = "Multi factor authentication system (2FA, MFA, OTP Server)"; + license = licenses.agpl3Plus; + homepage = "http://www.privacyidea.org"; + maintainers = with maintainers; [ globin ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch b/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch new file mode 100644 index 000000000000..e3aa5600e40e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch @@ -0,0 +1,18 @@ +From http://seclists.org/oss-sec/2014/q3/495 (with whitespace corrected). + +--- a/src/formisc.c 2013-08-04 00:13:33.000000000 -0700 ++++ b/src/formisc.c 2014-09-03 11:42:25.986002396 -0700 +@@ -84,12 +84,11 @@ + case '"':*target++=delim='"';start++; + } + ;{ int i; +- do ++ while(*start) + if((i= *target++= *start++)==delim) /* corresponding delimiter? */ + break; + else if(i=='\\'&&*start) /* skip quoted character */ + *target++= *start++; +- while(*start); /* anything? */ + } + hitspc=2; + } diff --git a/nixpkgs/pkgs/applications/misc/procmail/default.nix b/nixpkgs/pkgs/applications/misc/procmail/default.nix new file mode 100644 index 000000000000..1244347cc53c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/procmail/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "procmail-3.22"; + + patches = [ + ./CVE-2014-3618.patch + (fetchurl { + url = "https://sources.debian.org/data/main/p/procmail/3.22-26/debian/patches/30"; + sha256 = "11zmz1bj0v9pay3ldmyyg7473b80h89gycrhndsgg9q50yhcqaaq"; + name = "CVE-2017-16844"; + }) + ]; + + # getline is defined differently in glibc now. So rename it. + # Without the .PHONY target "make install" won't install anything on Darwin. + postPatch = '' + sed -e "s%^RM.*$%#%" -i Makefile + sed -e "s%^BASENAME.*%\BASENAME=$out%" -i Makefile + sed -e "s%^LIBS=.*%LIBS=-lm%" -i Makefile + sed -e "s%getline%thisgetline%g" -i src/*.c src/*.h + sed -e "3i\ +.PHONY: install +" -i Makefile + ''; + + src = fetchurl { + url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-3.22.tar.gz"; + sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08"; + }; + + meta = with lib; { + description = "Mail processing and filtering utility"; + homepage = "http://www.procmail.org/"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ gebner ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/projectlibre/default.nix b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix new file mode 100644 index 000000000000..ceb61d71866c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchgit, ant, jdk, makeWrapper, jre, coreutils, which }: + +stdenv.mkDerivation rec { + pname = "projectlibre"; + version = "1.7.0"; + + src = fetchgit { + url = "https://git.code.sf.net/p/projectlibre/code"; + rev = "0c939507cc63e9eaeb855437189cdec79e9386c2"; # version 1.7.0 was not tagged + sha256 = "0vy5vgbp45ai957gaby2dj1hvmbxfdlfnwcanwqm9f8q16qipdbq"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ ant jdk ]; + buildPhase = '' + export ANT_OPTS=-Dbuild.sysclasspath=ignore + ${ant}/bin/ant -f openproj_build/build.xml + ''; + + resourcesPath = "openproj_build/resources"; + desktopItem = "${resourcesPath}/projectlibre.desktop"; + + installPhase = '' + mkdir -p $out/share/{applications,projectlibre/samples,pixmaps,doc/projectlibre} $out/bin + + substitute $resourcesPath/projectlibre $out/bin/projectlibre \ + --replace "\"/usr/share/projectlibre\"" "\"$out/share/projectlibre\"" + chmod +x $out/bin/projectlibre + wrapProgram $out/bin/projectlibre \ + --prefix PATH : "${jre}/bin:${coreutils}/bin:${which}/bin" + + cp -R openproj_build/dist/* $out/share/projectlibre + cp -R openproj_build/license $out/share/doc/projectlibre + cp $desktopItem $out/share/applications + cp $resourcesPath/projectlibre.png $out/share/pixmaps + cp -R $resourcesPath/samples/* $out/share/projectlibre/samples + ''; + + meta = with lib; { + homepage = "https://www.projectlibre.com/"; + description = "Project-Management Software similar to MS-Project"; + maintainers = [ maintainers.Mogria ]; + license = licenses.cpal10; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix b/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix new file mode 100644 index 000000000000..a6e81375de55 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix @@ -0,0 +1,116 @@ +{ stdenv, lib, fetchFromGitHub, cmake, copyDesktopItems, makeDesktopItem, pkg-config, wrapGAppsHook +, boost, cereal, cgal_5, curl, dbus, eigen, expat, glew, glib, gmp, gtest, gtk3, hicolor-icon-theme +, ilmbase, libpng, mpfr, nlopt, openvdb, pcre, qhull, systemd, tbb, wxGTK31-gtk3, xorg +}: +stdenv.mkDerivation rec { + pname = "prusa-slicer"; + version = "2.3.1"; + + nativeBuildInputs = [ + cmake + copyDesktopItems + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + boost + cereal + cgal_5 + curl + dbus + eigen + expat + glew + glib + gmp + gtk3 + hicolor-icon-theme + ilmbase + libpng + mpfr + nlopt + openvdb + pcre + systemd + tbb + wxGTK31-gtk3 + xorg.libX11 + ] ++ checkInputs; + + doCheck = true; + checkInputs = [ gtest ]; + + # The build system uses custom logic - defined in + # cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt + # library, which doesn't pick up the package in the nix store. We + # additionally need to set the path via the NLOPT environment variable. + NLOPT = nlopt; + + # Disable compiler warnings that clutter the build log. + # It seems to be a known issue for Eigen: + # http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221 + NIX_CFLAGS_COMPILE = "-Wno-ignored-attributes"; + + # prusa-slicer uses dlopen on `libudev.so` at runtime + NIX_LDFLAGS = "-ludev"; + + prePatch = '' + # In nix ioctls.h isn't available from the standard kernel-headers package + # like in other distributions. The copy in glibc seems to be identical to the + # one in the kernel though, so we use that one instead. + sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' src/libslic3r/GCodeSender.cpp + + # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx + # now seems to be integrated into the main lib. + sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake + ''; + + src = fetchFromGitHub { + owner = "prusa3d"; + repo = "PrusaSlicer"; + sha256 = "1lyaxc9nha1cd8p35iam1k1pikp9kfx0fj1l6vb1xb8pgqp02jnn"; + rev = "version_${version}"; + }; + + cmakeFlags = [ + "-DSLIC3R_FHS=1" + "-DSLIC3R_GTK=3" + ]; + + postInstall = '' + ln -s "$out/bin/prusa-slicer" "$out/bin/prusa-gcodeviewer" + + mkdir -p "$out/share/pixmaps/" + ln -s "$out/share/PrusaSlicer/icons/PrusaSlicer.png" "$out/share/pixmaps/PrusaSlicer.png" + ln -s "$out/share/PrusaSlicer/icons/PrusaSlicer-gcodeviewer_192px.png" "$out/share/pixmaps/PrusaSlicer-gcodeviewer.png" + ''; + + desktopItems = [ + (makeDesktopItem { + name = "PrusaSlicer"; + exec = "prusa-slicer"; + icon = "PrusaSlicer"; + comment = "G-code generator for 3D printers"; + desktopName = "PrusaSlicer"; + genericName = "3D printer tool"; + categories = "Development;"; + }) + (makeDesktopItem { + name = "PrusaSlicer G-code Viewer"; + exec = "prusa-gcodeviewer"; + icon = "PrusaSlicer-gcodeviewer"; + comment = "G-code viewer for 3D printers"; + desktopName = "PrusaSlicer G-code Viewer"; + genericName = "G-code Viewer"; + categories = "Development;"; + }) + ]; + + meta = with lib; { + description = "G-code generator for 3D printer"; + homepage = "https://github.com/prusa3d/PrusaSlicer"; + license = licenses.agpl3; + maintainers = with maintainers; [ moredread tweber ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix new file mode 100644 index 000000000000..2bf28aa892f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix @@ -0,0 +1,46 @@ +{ lib, fetchFromGitHub, makeDesktopItem, prusa-slicer }: +let + appname = "SuperSlicer"; + version = "2.3.56.5"; + pname = "super-slicer"; + description = "PrusaSlicer fork with more features and faster development cycle"; + override = super: { + inherit version pname; + + src = fetchFromGitHub { + owner = "supermerill"; + repo = "SuperSlicer"; + sha256 = "sha256-Gg+LT1YKyUGNJE9XvWE1LSlIQ6Vq5GfVBTUw/A7Qx7E="; + rev = version; + fetchSubmodules = true; + }; + + # We don't need PS overrides anymore, and gcode-viewer is embedded in the binary. + postInstall = null; + + # See https://github.com/supermerill/SuperSlicer/issues/432 + cmakeFlags = super.cmakeFlags ++ [ + "-DSLIC3R_BUILD_TESTS=0" + ]; + + desktopItems = [ + (makeDesktopItem { + name = appname; + exec = "superslicer"; + icon = appname; + comment = description; + desktopName = appname; + genericName = "3D printer tool"; + categories = "Development;"; + }) + ]; + + meta = with lib; { + inherit description; + homepage = "https://github.com/supermerili/SuperSlicer"; + license = licenses.agpl3; + maintainers = with maintainers; [ cab404 moredread ]; + }; + + }; +in prusa-slicer.overrideAttrs override diff --git a/nixpkgs/pkgs/applications/misc/pstree/default.nix b/nixpkgs/pkgs/applications/misc/pstree/default.nix new file mode 100644 index 000000000000..d25e4a6f90ba --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pstree/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "pstree"; + version = "2.39"; + + src = fetchurl { + urls = [ + "https://distfiles.macports.org/${pname}/${pname}-${version}.tar.gz" + "https://fossies.org/linux/misc/${pname}-${version}.tar.gz" + "ftp://ftp.thp.uni-duisburg.de/pub/source/${pname}-${version}.tar.gz" + ]; + sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw"; + }; + + sourceRoot = "."; + buildPhase = '' + runHook preBuild + $CC $NIX_CFLAGS -o pstree pstree.c + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm0555 ${pname} -t $out/bin + install -Dm0444 ${pname}.1 -t $out/share/man/man1 + runHook postInstall + ''; + + meta = with lib; { + description = "Show the set of running processes as a tree"; + homepage = "http://www.thp.uni-duisburg.de/pstree/"; + license = licenses.gpl2; + maintainers = [ maintainers.c0bw3b ]; + platforms = platforms.unix; + priority = 5; # Lower than psmisc also providing pstree on Linux platforms + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pt/.bundle/config b/nixpkgs/pkgs/applications/misc/pt/.bundle/config new file mode 100644 index 000000000000..88cb2d529351 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pt/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_NO_INSTALL: true diff --git a/nixpkgs/pkgs/applications/misc/pt/Gemfile b/nixpkgs/pkgs/applications/misc/pt/Gemfile new file mode 100644 index 000000000000..ed2136ea5b85 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pt/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem 'pt' diff --git a/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock b/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock new file mode 100644 index 000000000000..dfaa018d3724 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock @@ -0,0 +1,69 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.6.0) + public_suffix (>= 2.0.2, < 4.0) + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) + colored (1.2) + declarative (0.0.10) + declarative-option (0.1.0) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + equalizer (0.0.11) + excon (0.64.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) + faraday_middleware (0.13.1) + faraday (>= 0.7.4, < 1.0) + highline (2.0.2) + hirb (0.7.3) + hirb-unicode (0.0.5) + hirb (~> 0.5) + unicode-display_width (~> 0.1.1) + ice_nine (0.11.2) + multi_json (1.13.1) + multipart-post (2.0.0) + pt (0.10.0) + colored (~> 1.2) + highline + hirb (~> 0.7, >= 0.7.3) + hirb-unicode (~> 0.0.5, >= 0.0.5) + thor + tracker_api (~> 1.6.0) + public_suffix (3.0.3) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + thor (0.20.3) + thread_safe (0.3.6) + tracker_api (1.6.0) + addressable + equalizer + excon + faraday (~> 0.9.0) + faraday_middleware + multi_json + representable + virtus + uber (0.1.0) + unicode-display_width (0.1.1) + virtus (1.0.5) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + equalizer (~> 0.0, >= 0.0.9) + +PLATFORMS + ruby + +DEPENDENCIES + pt + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/misc/pt/default.nix b/nixpkgs/pkgs/applications/misc/pt/default.nix new file mode 100644 index 000000000000..ef490702a672 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pt/default.nix @@ -0,0 +1,17 @@ +{ lib, bundlerApp, bundlerUpdateScript }: + +bundlerApp { + pname = "pt"; + gemdir = ./.; + exes = [ "pt" ]; + + passthru.updateScript = bundlerUpdateScript "pt"; + + meta = with lib; { + description = "Minimalist command-line Pivotal Tracker client"; + homepage = "http://www.github.com/raul/pt"; + license = licenses.mit; + maintainers = with maintainers; [ ebzzry manveru nicknovitski ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pt/gemset.nix b/nixpkgs/pkgs/applications/misc/pt/gemset.nix new file mode 100644 index 000000000000..9cd83a90721d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pt/gemset.nix @@ -0,0 +1,273 @@ +{ + addressable = { + dependencies = ["public_suffix"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"; + type = "gem"; + }; + version = "2.6.0"; + }; + axiom-types = { + dependencies = ["descendants_tracker" "ice_nine" "thread_safe"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1"; + type = "gem"; + }; + version = "0.1.1"; + }; + coercible = { + dependencies = ["descendants_tracker"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah"; + type = "gem"; + }; + version = "1.0.0"; + }; + colored = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx"; + type = "gem"; + }; + version = "1.2"; + }; + declarative = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j"; + type = "gem"; + }; + version = "0.0.10"; + }; + declarative-option = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p"; + type = "gem"; + }; + version = "0.1.0"; + }; + descendants_tracker = { + dependencies = ["thread_safe"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"; + type = "gem"; + }; + version = "0.0.4"; + }; + equalizer = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; + type = "gem"; + }; + version = "0.0.11"; + }; + excon = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vcplvlykirg2vc56jjxavgpkllzq26xgp7ind7wc5ikaqaz64gn"; + type = "gem"; + }; + version = "0.64.0"; + }; + faraday = { + dependencies = ["multipart-post"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kplqkpn2s2yl3lxdf6h7sfldqvkbkpxwwxhyk7mdhjplb5faqh6"; + type = "gem"; + }; + version = "0.9.2"; + }; + faraday_middleware = { + dependencies = ["faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a93rs58bakqck7bcihasz66a1riy22h2zpwrpmb13gp8mw3wkmr"; + type = "gem"; + }; + version = "0.13.1"; + }; + highline = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g0zpalfj8wvca86hcnirir5py2zyqrhkgdgv9f87fxkjaw815wr"; + type = "gem"; + }; + version = "2.0.2"; + }; + hirb = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji"; + type = "gem"; + }; + version = "0.7.3"; + }; + hirb-unicode = { + dependencies = ["hirb" "unicode-display_width"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b7hka1p4mkjdy2wr2cxsivnsmnz31zz1bswznmmxnvf5a6c00jk"; + type = "gem"; + }; + version = "0.0.5"; + }; + ice_nine = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x"; + type = "gem"; + }; + version = "0.11.2"; + }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; + multipart-post = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; + type = "gem"; + }; + version = "2.0.0"; + }; + pt = { + dependencies = ["colored" "highline" "hirb" "hirb-unicode" "thor" "tracker_api"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ypyya7bk0w7zd9c3224zsizhv5wbs1icjpn0023wh3ii1by16a8"; + type = "gem"; + }; + version = "0.10.0"; + }; + public_suffix = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"; + type = "gem"; + }; + version = "3.0.3"; + }; + representable = { + dependencies = ["declarative" "declarative-option" "uber"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07"; + type = "gem"; + }; + version = "3.0.4"; + }; + thor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29"; + type = "gem"; + }; + version = "0.20.3"; + }; + thread_safe = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tracker_api = { + dependencies = ["addressable" "equalizer" "excon" "faraday" "faraday_middleware" "multi_json" "representable" "virtus"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pxwzbjzxign81wynl44napkvkrrhlyl7rm4ywrcdqahmzxmavsp"; + type = "gem"; + }; + version = "1.6.0"; + }; + uber = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv"; + type = "gem"; + }; + version = "0.1.0"; + }; + unicode-display_width = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06dpm3yqc974qfy6nyx7b0w0f6b8k08jadd5l9xnmla3fji6c405"; + type = "gem"; + }; + version = "0.1.1"; + }; + virtus = { + dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk"; + type = "gem"; + }; + version = "1.0.5"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ptask/default.nix b/nixpkgs/pkgs/applications/misc/ptask/default.nix new file mode 100644 index 000000000000..b243f1941817 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ptask/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config, makeWrapper, gtk3, json_c, taskwarrior }: + +stdenv.mkDerivation rec { + name = "ptask-1.0.0"; + + src = fetchurl { + url = "https://wpitchoune.net/ptask/files/${name}.tar.gz"; + sha256 = "13nirr7b29bv3w2zc8zxphhmc9ayhs61i11jl4819nabk7vy1kdq"; + }; + + buildInputs = [ gtk3 json_c ]; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + + patches = [ ./tw-version.patch ./json_c_is_error.patch ]; + + preFixup = '' + wrapProgram "$out/bin/ptask" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --prefix PATH : "${taskwarrior}/bin" + ''; + + meta = with lib; { + homepage = "http://wpitchoune.net/ptask/"; + description = "GTK-based GUI for taskwarrior"; + license = licenses.gpl2; + maintainers = [ maintainers.spacefrogg ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch b/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch new file mode 100644 index 000000000000..435c8b26e6f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch @@ -0,0 +1,13 @@ +diff --git a/src/tw.c b/src/tw.c +index 602f7b3..ca601cd 100644 +--- a/src/tw.c ++++ b/src/tw.c +@@ -163,7 +163,7 @@ static struct json_object *task_exec_json(const char *opts) + + free(cmd); + +- if (o && is_error(o)) ++ if (!o) + return NULL; + + return o; diff --git a/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch b/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch new file mode 100644 index 000000000000..995fffeda2f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch @@ -0,0 +1,11 @@ +--- a/src/tw.c 2017-02-21 22:56:19.289037608 +0100 ++++ b/src/tw.c 2017-02-21 22:57:04.726814256 +0100 +@@ -116,7 +116,7 @@ + || !strcmp(ver, "2.3.0") + || !strcmp(ver, "2.4.0") + || !strcmp(ver, "2.4.1") +- || !strcmp(ver, "2.5.0")) ++ || !strcmp(ver, "2.5.1")) + return 1; + else + return 0; diff --git a/nixpkgs/pkgs/applications/misc/pueue/default.nix b/nixpkgs/pkgs/applications/misc/pueue/default.nix new file mode 100644 index 000000000000..8cf8d8286ae3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pueue/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, SystemConfiguration, libiconv }: + +rustPlatform.buildRustPackage rec { + pname = "pueue"; + version = "0.12.1"; + + src = fetchFromGitHub { + owner = "Nukesor"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-wcOF34GzlB6YKISkjDgYgsaN1NmWBMIntfT23A6byx8="; + }; + + cargoSha256 = "sha256-aW1VliL7QQm9gMeM6N+SroHlgqI3F7MX0EzcuEzcJnQ="; + + nativeBuildInputs = [ installShellFiles ]; + + buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration libiconv ]; + + checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ]; + + postInstall = '' + for shell in bash fish zsh; do + $out/bin/pueue completions $shell . + done + installShellCompletion pueue.{bash,fish} _pueue + ''; + + meta = with lib; { + description = "A daemon for managing long running shell commands"; + homepage = "https://github.com/Nukesor/pueue"; + changelog = "https://github.com/Nukesor/pueue/raw/v${version}/CHANGELOG.md"; + license = licenses.mit; + maintainers = [ maintainers.marsam ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pure-maps/default.nix b/nixpkgs/pkgs/applications/misc/pure-maps/default.nix new file mode 100644 index 000000000000..3f964824e6dd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pure-maps/default.nix @@ -0,0 +1,49 @@ +{ lib, mkDerivation, fetchFromGitHub +, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation, qtsensors +, nemo-qml-plugin-dbus, mapbox-gl-qml, s2geometry +, python3, pyotherside +}: + +mkDerivation rec { + pname = "pure-maps"; + version = "2.6.5"; + + src = fetchFromGitHub { + owner = "rinigus"; + repo = "pure-maps"; + rev = version; + sha256 = "17gfb7rdaadmcdba4mhish0jrz9lmiban6fpzwhyvn8z1rc43zx9"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + qmake python3 qttools python3.pkgs.wrapPython + ]; + + buildInputs = [ + kirigami2 qtquickcontrols2 qtlocation qtsensors + nemo-qml-plugin-dbus pyotherside mapbox-gl-qml s2geometry + ]; + + postPatch = '' + substituteInPlace pure-maps.pro \ + --replace '$$[QT_HOST_BINS]/lconvert' 'lconvert' + ''; + + qmakeFlags = [ "FLAVOR=kirigami" ]; + + pythonPath = with python3.pkgs; [ gpxpy ]; + + preInstall = '' + buildPythonPath "$pythonPath" + qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH") + ''; + + meta = with lib; { + description = "Display vector and raster maps, places, routes, and provide navigation instructions with a flexible selection of data and service providers"; + homepage = "https://github.com/rinigus/pure-maps"; + license = licenses.gpl3Only; + maintainers = [ maintainers.Thra11 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pwsafe/default.nix b/nixpkgs/pkgs/applications/misc/pwsafe/default.nix new file mode 100644 index 000000000000..6aa1099c35c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pwsafe/default.nix @@ -0,0 +1,68 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, zip, gettext, perl +, wxGTK30, libXext, libXi, libXt, libXtst, xercesc +, qrencode, libuuid, libyubikey, yubikey-personalization +, curl, openssl, file +}: + +stdenv.mkDerivation rec { + pname = "pwsafe"; + version = "3.55.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "sha256-+Vfwz8xGmSzFNdiN5XYkRqGmFuBVIgexXdH3B+XYY3o="; + }; + + nativeBuildInputs = [ + cmake gettext perl pkg-config zip + ]; + buildInputs = [ + libXext libXi libXt libXtst wxGTK30 + curl qrencode libuuid openssl xercesc + libyubikey yubikey-personalization + file + ]; + + cmakeFlags = [ + "-DNO_GTEST=ON" + "-DCMAKE_CXX_FLAGS=-I${yubikey-personalization}/include/ykpers-1" + ]; + + postPatch = '' + # Fix perl scripts used during the build. + for f in `find . -type f -name '*.pl'`; do + patchShebangs $f + done + + # Fix hard coded paths. + for f in `grep -Rl /usr/share/ src`; do + substituteInPlace $f --replace /usr/share/ $out/share/ + done + + # Fix hard coded zip path. + substituteInPlace help/Makefile.linux --replace /usr/bin/zip ${zip}/bin/zip + + for f in `grep -Rl /usr/bin/ .`; do + substituteInPlace $f --replace /usr/bin/ "" + done + ''; + + installFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + description = "A password database utility"; + longDescription = '' + Password Safe is a password database utility. Like many other + such products, commercial and otherwise, it stores your + passwords in an encrypted file, allowing you to remember only + one password (the "safe combination"), instead of all the + username/password combinations that you use. + ''; + homepage = "https://pwsafe.org/"; + maintainers = with maintainers; [ c0bw3b pjones ]; + platforms = platforms.linux; + license = licenses.artistic2; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pydf/default.nix b/nixpkgs/pkgs/applications/misc/pydf/default.nix new file mode 100644 index 000000000000..afec377e9b66 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pydf/default.nix @@ -0,0 +1,24 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonPackage rec { + pname = "pydf"; + version = "12"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "7f47a7c3abfceb1ac04fc009ded538df1ae449c31203962a1471a4eb3bf21439"; + }; + + postInstall = '' + mkdir -p $out/share/man/man1 $out/share/pydf + install -t $out/share/pydf -m 444 pydfrc + install -t $out/share/man/man1 -m 444 pydf.1 + ''; + + meta = with lib; { + description = "colourised df(1)-clone"; + homepage = "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/"; + license = licenses.publicDomain; + maintainers = with maintainers; [ monsieurp ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pyditz/cerberus.nix b/nixpkgs/pkgs/applications/misc/pyditz/cerberus.nix new file mode 100644 index 000000000000..0e473c6a1ba1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pyditz/cerberus.nix @@ -0,0 +1,19 @@ +{ lib, buildPythonPackage, fetchPypi, pytest-runner, pytest }: + +buildPythonPackage rec { + pname = "Cerberus"; + version = "1.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "1pxzr8sfm2hc5s96m9k044i44nwkva70n0ypr6a35v73zn891cx5"; + }; + + checkInputs = [ pytest-runner pytest ]; + + meta = with lib; { + homepage = "http://python-cerberus.org/"; + description = "Lightweight, extensible schema and data validation tool for Python dictionaries"; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pyditz/default.nix b/nixpkgs/pkgs/applications/misc/pyditz/default.nix new file mode 100644 index 000000000000..c5f3143bedc1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pyditz/default.nix @@ -0,0 +1,29 @@ +{ lib, pythonPackages }: + +with pythonPackages; + +let + cerberus_1_1 = callPackage ./cerberus.nix { }; +in buildPythonApplication rec { + pname = "pyditz"; + version = "0.11"; + + src = fetchPypi { + inherit pname version; + sha256 = "da0365ae9064e30c4a27526fb0d7a802fda5c8651cda6990d17be7ede89a2551"; + }; + nativeBuildInputs = [ setuptools-scm ]; + propagatedBuildInputs = [ pyyaml six jinja2 cerberus_1_1 ]; + + checkPhase = '' + ${python.interpreter} -m unittest discover + ''; + + meta = with lib; { + homepage = "https://pythonhosted.org/pyditz/"; + description = "Drop-in replacement for the Ditz distributed issue tracker"; + maintainers = [ maintainers.ilikeavocadoes ]; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/pytrainer/default.nix b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix new file mode 100644 index 000000000000..05cc834591f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix @@ -0,0 +1,90 @@ +{ lib +, python3 +, fetchFromGitHub +, gdk-pixbuf +, gnome +, gpsbabel +, glib-networking +, glibcLocales +, gobject-introspection +, gtk3 +, perl +, sqlite +, tzdata +, webkitgtk +, wrapGAppsHook +, xvfb-run +}: + +let + python = python3.override { + packageOverrides = (self: super: { + matplotlib = super.matplotlib.override { + enableGtk3 = true; + }; + }); + }; +in python.pkgs.buildPythonApplication rec { + pname = "pytrainer"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "pytrainer"; + repo = "pytrainer"; + rev = "v${version}"; + sha256 = "sha256-i3QC6ct7tS8B0QQjtVqPcd03LLIxo6djQe4YX35syzk="; + }; + + propagatedBuildInputs = with python.pkgs; [ + sqlalchemy_migrate + python-dateutil + matplotlib + lxml + setuptools + requests + gdal + ]; + + nativeBuildInputs = [ + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + sqlite + gtk3 + webkitgtk + glib-networking + gnome.adwaita-icon-theme + gdk-pixbuf + ]; + + makeWrapperArgs = [ + "--prefix" "PATH" ":" (lib.makeBinPath [ perl gpsbabel ]) + ]; + + checkInputs = [ + glibcLocales + perl + xvfb-run + ] ++ (with python.pkgs; [ + mysqlclient + psycopg2 + ]); + + checkPhase = '' + env HOME=$TEMPDIR TZDIR=${tzdata}/share/zoneinfo \ + TZ=Europe/Kaliningrad \ + LC_ALL=en_US.UTF-8 \ + xvfb-run -s '-screen 0 800x600x24' \ + ${python3.interpreter} setup.py test + ''; + + meta = with lib; { + homepage = "https://github.com/pytrainer/pytrainer"; + description = "Application for logging and graphing sporting excursions"; + maintainers = with maintainers; [ rycee dotlambda ]; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix b/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix new file mode 100644 index 000000000000..d3449da97f36 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, mkDerivation, fetchFromGitHub, qtbase, qmake, libX11, libXtst, openssl, libscrypt }: + +mkDerivation rec { + name = "qMasterPassword"; + version = "1.2.2"; + + src = fetchFromGitHub { + owner = "bkueng"; + repo = name; + rev = "v${version}"; + sha256 = "0l0jarvfdc69rcjl2wa0ixq8gp3fmjsy9n84m38sxf3n9j2bh13c"; + }; + + buildInputs = [ qtbase libX11 libXtst openssl libscrypt ]; + nativeBuildInputs = [ qmake ]; + + # Upstream install is mostly defunct. It hardcodes target.path and doesn't + # install anything but the binary. + installPhase = if stdenv.isDarwin then '' + mkdir -p "$out"/{Applications,bin} + mv qMasterPassword.app "$out"/Applications/ + ln -s ../Applications/qMasterPassword.app/Contents/MacOS/qMasterPassword "$out"/bin/qMasterPassword + '' else '' + mkdir -p $out/bin + mkdir -p $out/share/{applications,doc/qMasterPassword,icons/qmasterpassword,icons/hicolor/512x512/apps} + mv qMasterPassword $out/bin + mv data/qMasterPassword.desktop $out/share/applications + mv LICENSE README.md $out/share/doc/qMasterPassword + mv data/icons/app_icon.png $out/share/icons/hicolor/512x512/apps/qmasterpassword.png + mv data/icons/* $out/share/icons/qmasterpassword + ''; + + meta = with lib; { + description = "Stateless Master Password Manager"; + longDescription = '' + Access all your passwords using only a single master password. But in + contrast to other managers it does not store any passwords: Unique + passwords are generated from the master password and a site name. This + means you automatically get different passwords for each account and + there is no password file that can be lost or get stolen. There is also + no need to trust any online password service. + ''; + homepage = "https://github.com/bkueng/qMasterPassword"; + license = licenses.gpl3; + maintainers = [ maintainers.tadeokondrak ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch b/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch new file mode 100644 index 000000000000..0b8a29319eb3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch @@ -0,0 +1,48 @@ +diff --git a/src/core/RS.cpp b/src/core/RS.cpp +index d8a135d6f..659795dbb 100644 +--- a/src/core/RS.cpp ++++ b/src/core/RS.cpp +@@ -151,7 +151,7 @@ QStringList RS::getDirectoryList(const QString& subDirectory) { + dirList.append(appDir + "/../../../" + subDirectory); + dirList.append(QDir::currentPath() + "/" + subDirectory); + #else +- dirList.append(appDir + "/" + subDirectory); ++ dirList.append(appDir + "/../lib/" + subDirectory); + #endif + + /* +diff --git a/src/core/RSettings.cpp b/src/core/RSettings.cpp +index c6c31cbf5..c51b59ce6 100644 +--- a/src/core/RSettings.cpp ++++ b/src/core/RSettings.cpp +@@ -367,6 +367,8 @@ QString RSettings::getApplicationPath() { + ret.cdUp(); + } + ++ ret.cd("../lib"); ++ + return ret.path(); + } + +@@ -1268,7 +1270,7 @@ QString RSettings::getRevisionString() { + } + + QString RSettings::getReleaseDate() { +- return __DATE__; ++ return ""; + } + + int RSettings::getSnapRange() { +diff --git a/qcad.desktop b/qcad.desktop +index 93c5e9720..2d0e6bf32 100644 +--- a/qcad.desktop ++++ b/qcad.desktop +@@ -48,7 +48,7 @@ Comment[sv]=2D CAD-system + Comment[sl]=Sistem 2D CAD + Comment[uk]=2D САПР + Comment[tr]=2D CAD Sistemi +-Exec=qcad %F ++Exec=qcad-bin %F + X-MultipleArgs=true + Icon=qcad_icon + Terminal=false diff --git a/nixpkgs/pkgs/applications/misc/qcad/default.nix b/nixpkgs/pkgs/applications/misc/qcad/default.nix new file mode 100644 index 000000000000..19e5d18fe93c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qcad/default.nix @@ -0,0 +1,116 @@ +{ boost +, fetchFromGitHub +, libGLU +, mkDerivationWith +, muparser +, pkg-config +, qtbase +, qmake +, qtscript +, qtsvg +, qtxmlpatterns +, qttools +, lib +, stdenv +, installShellFiles +}: + +mkDerivationWith stdenv.mkDerivation rec { + pname = "qcad"; + version = "3.26.1.0"; + + src = fetchFromGitHub { + owner = "qcad"; + repo = "qcad"; + rev = "v${version}"; + sha256 = "sha256-OWAc7g8DiJR3z6dUF5D0Yo3wnRKd1Xe7D1eq15NRW5c="; + }; + + patches = [ + # Patch directory lookup, remove __DATE__ and executable name + ./application-dir.patch + ]; + + postPatch = '' + if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version} ]; then + mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version} + cp \ + src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \ + src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}/qt-labs-qtscriptgenerator-${qtbase.version}.pro + fi + ''; + + qmakeFlags = [ + "MUPARSER_DIR=${muparser}" + "INSTALLROOT=$(out)" + "BOOST_DIR=${boost.dev}" + ]; + + installPhase = '' + runHook preInstall + + install -Dm555 -t $out/bin release/qcad-bin + install -Dm555 -t $out/lib release/libspatialindexnavel.so + install -Dm555 -t $out/lib release/libqcadcore.so + install -Dm555 -t $out/lib release/libqcadentity.so + install -Dm555 -t $out/lib release/libqcadgrid.so + install -Dm555 -t $out/lib release/libqcadsnap.so + install -Dm555 -t $out/lib release/libqcadoperations.so + install -Dm555 -t $out/lib release/libqcadstemmer.so + install -Dm555 -t $out/lib release/libqcadspatialindex.so + install -Dm555 -t $out/lib release/libqcadgui.so + install -Dm555 -t $out/lib release/libqcadecmaapi.so + + install -Dm444 -t $out/share/applications qcad.desktop + install -Dm644 -t $out/share/pixmaps scripts/qcad_icon.png + + cp -r scripts $out/lib + cp -r plugins $out/lib/plugins + cp -r patterns $out/lib/patterns + cp -r fonts $out/lib/fonts + cp -r libraries $out/lib/libraries + cp -r linetypes $out/lib/linetypes + cp -r ts $out/lib/ts + + # workaround to fix the library browser: + rm -r $out/lib/plugins/sqldrivers + ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/sqldrivers + + rm -r $out/lib/plugins/printsupport + ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/printsupport + + rm -r $out/lib/plugins/imageformats + ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/imageformats + + install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg + + installManPage qcad.1 + + runHook postInstall + ''; + + buildInputs = [ + boost + muparser + libGLU + qtbase + qtscript + qtsvg + qtxmlpatterns + ]; + + nativeBuildInputs = [ + pkg-config + qmake + qttools + installShellFiles + ]; + + meta = with lib; { + description = "2D CAD package based on Qt"; + homepage = "https://qcad.org"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ yvesf ]; + platforms = qtbase.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix new file mode 100644 index 000000000000..d5450f0e5c4e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix @@ -0,0 +1,57 @@ +{ lib, fetchFromGitHub, qmake +, coreutils, xdg-utils, bash +, makeWrapper, perlPackages, mkDerivation }: + +let + pname = "qdirstat"; + version = "1.7.1"; + + src = fetchFromGitHub { + owner = "shundhammer"; + repo = pname; + rev = version; + sha256 = "sha256-i1xHMwSnBULJbOA/ykQK9WBd+6TBNBRI9hnU1FDGQlY="; + }; +in + +mkDerivation { + inherit pname version src; + + nativeBuildInputs = [ qmake makeWrapper ]; + + buildInputs = [ perlPackages.perl ]; + + postPatch = '' + substituteInPlace scripts/scripts.pro \ + --replace /bin/true ${coreutils}/bin/true + + for i in src/SysUtil.cpp src/FileSizeStatsWindow.cpp + do + substituteInPlace $i \ + --replace /usr/bin/xdg-open ${xdg-utils}/bin/xdg-open + done + for i in src/Cleanup.cpp src/cleanup-config-page.ui + do + substituteInPlace $i \ + --replace /bin/bash ${bash}/bin/bash \ + --replace /bin/sh ${bash}/bin/sh + done + substituteInPlace src/StdCleanup.cpp \ + --replace /bin/bash ${bash}/bin/bash + ''; + + qmakeFlags = [ "INSTALL_PREFIX=${placeholder "out"}" ]; + + postInstall = '' + wrapProgram $out/bin/qdirstat-cache-writer \ + --set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.URI ]}" + ''; + + meta = with lib; { + description = "Graphical disk usage analyzer"; + homepage = src.meta.homepage; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qlandkartegt/default.nix b/nixpkgs/pkgs/applications/misc/qlandkartegt/default.nix new file mode 100644 index 000000000000..cb30571e0552 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qlandkartegt/default.nix @@ -0,0 +1,93 @@ +{ mkDerivation, lib, fetchurl, fetchpatch, cmake +, qtmultimedia, qtserialport, qtscript, qtwebkit +, garmindev, gdal, gpsd, libdmtx, libexif, libGLU, proj }: + +mkDerivation rec { + pname = "qlandkartegt"; + version = "1.8.1"; + + src = fetchurl { + url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; + sha256 = "1rwv5ar5jv15g1cc6pp0lk69q3ip10pjazsh3ds2ggaciymha1ly"; + }; + + patches = [ + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-gps_read.patch?h=qlandkartegt"; + sha256 = "1xyqxdqxwviq7b8jjxssxjlkldk01ms8dzqdjgvjs8n3fh7w0l70"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-incomplete-type.patch?h=qlandkartegt"; + sha256 = "1q7rm321az3q6pq5mq0yjrihxl9sf3nln9z3xp20g9qldslv2cy2"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-proj_api.patch?h=qlandkartegt"; + sha256 = "12yibxn85z2n30azmhyv02q091jj5r50nlnjq4gfzyqd3xb9582n"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-qt5-build.patch?h=qlandkartegt"; + sha256 = "1wq2hr06gzq8m7zddh10vizmvpwp4lcy1g86rlpppvdc5cm3jpkl"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-qtgui-include.patch?h=qlandkartegt"; + sha256 = "16hql8ignzw4n1hlp4icbvaddqcadh2rjns0bvis720535112sc8"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-timespec.patch?h=qlandkartegt"; + sha256 = "1yzdwfsgjn7q04r9f7s5qk50y25hdl384dxrmpfmkm97fmpgyr7w"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-ver_str.patch?h=qlandkartegt"; + sha256 = "13fg05gqrjfa9j00lrqz1b06xf6r5j01kl6l06vkn0hz1jzxss5m"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/improve-gpx-creator.patch?h=qlandkartegt"; + sha256 = "1sdf5z8qrd43azrhwfw06zc0qr48z925hgbcfqlp0xrsxv2n6kks"; + }) + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/improve-gpx-name.patch?h=qlandkartegt"; + sha256 = "10phafhns79i3rl4zpc7arw11x46cywgkdkxm7gw1i9y5h0cal79"; + }) + ]; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ + qtmultimedia qtserialport qtscript qtwebkit + garmindev gdal gpsd libdmtx libexif libGLU proj + ]; + + cmakeFlags = [ + "-DQK_QT5_PORT=ON" + "-DEXIF_LIBRARIES=${libexif}/lib/libexif.so" + "-DEXIF_INCLUDE_DIRS=${libexif}/include" + ]; + + postPatch = '' + substituteInPlace ConfigureChecks.cmake \ + --replace \$\{PLUGIN_INSTALL_DIR\} "${garmindev}/lib/qlandkartegt" + ''; + + postInstall = '' + mkdir -p $out/share/mime/packages + cat << EOF > $out/share/mime/packages/qlandkartegt.xml + <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> + <mime-type type="application/vnd.qlandkartegt.qlb"> + <comment>QLandkarteGT File</comment> + <glob pattern="*.qlb"/> + </mime-type> + </mime-info> + EOF + ''; + + meta = with lib; { + homepage = "http://www.qlandkarte.org/"; + description = '' + QLandkarte GT is the ultimate outdoor aficionado's tool. + It supports GPS maps in GeoTiff format as well as Garmin's img vector map format. + ''; + license = licenses.gpl2; + maintainers = with maintainers; [ sikmir ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qlandkartegt/garmindev.nix b/nixpkgs/pkgs/applications/misc/qlandkartegt/garmindev.nix new file mode 100644 index 000000000000..07b58b72c494 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qlandkartegt/garmindev.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchurl, cmake, libusb-compat-0_1 }: + +stdenv.mkDerivation rec { + pname = "garmindev"; + version = "0.3.4"; + + src = fetchurl { + url = "mirror://sourceforge/qlandkartegt/${pname}-${version}.tar.gz"; + sha256 = "1mc7rxdn9790pgbvz02xzipxp2dp9h4hfq87xgawa18sp9jqzhw6"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ libusb-compat-0_1 ]; + + meta = with lib; { + homepage = "http://www.qlandkarte.org/"; + description = "Garmin Device Drivers for QlandkarteGT"; + license = licenses.gpl2; + maintainers = with maintainers; [ sikmir ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qlcplus/default.nix b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix new file mode 100644 index 000000000000..d387468bcddc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix @@ -0,0 +1,55 @@ +{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake, pkg-config, udev +, qtmultimedia, qtscript, alsa-lib, ola, libftdi1, libusb-compat-0_1 +, libsndfile, libmad +}: + +mkDerivation rec { + pname = "qlcplus"; + version = "4.12.3"; + + src = fetchFromGitHub { + owner = "mcallegari"; + repo = "qlcplus"; + rev = "QLC+_${version}"; + sha256 = "PB1Y8N1TrJMcS7A2e1nKjsUlAxOYjdJqBhbyuDCAbGs="; + }; + + patches = [ + (fetchpatch { + name = "qt5.15-deprecation-fixes.patch"; + url = "https://github.com/mcallegari/qlcplus/commit/e4ce4b0226715876e8e9e3b23785d43689b2bb64.patch"; + sha256 = "1zhrg6ava1nyc97xcx75r02zzkxmar0973w4jwkm5ch3iqa8bqnh"; + }) + ]; + + nativeBuildInputs = [ qmake pkg-config ]; + buildInputs = [ + udev qtmultimedia qtscript alsa-lib ola libftdi1 libusb-compat-0_1 libsndfile libmad + ]; + + qmakeFlags = [ "INSTALLROOT=$(out)" ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; + + postPatch = '' + patchShebangs . + sed -i -e '/unix:!macx:INSTALLROOT += \/usr/d' \ + -e "s@\$\$LIBSDIR/qt4/plugins@''${qtPluginPrefix}@" \ + -e "s@/etc/udev/rules.d@''${out}/lib/udev/rules.d@" \ + variables.pri + ''; + + enableParallelBuilding = true; + + postInstall = '' + ln -sf $out/lib/*/libqlcplus* $out/lib + ''; + + meta = with lib; { + description = "A free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc"; + maintainers = [ maintainers.globin ]; + license = licenses.asl20; + platforms = platforms.all; + homepage = "https://www.qlcplus.org/"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qmetro/default.nix b/nixpkgs/pkgs/applications/misc/qmetro/default.nix new file mode 100644 index 000000000000..70c41ff3142f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qmetro/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, qmake4Hook, unzip, qt4 }: + +stdenv.mkDerivation rec { + name = "${project}-${version}"; + project = "qmetro"; + version = "0.7.1"; + + src = fetchurl { + url = "mirror://sourceforge/${project}/${name}.zip"; + sha256 = "1zdj87lzcr43gr2h05g17z31pd22n5kxdwbvx7rx656rmhv0sjq5"; + }; + + nativeBuildInputs = [ qmake4Hook unzip ]; + + buildInputs = [ qt4 ]; + + postPatch = '' + sed -e 's#Exec=/usr/bin/qmetro#Exec=qmetro#' -i rc/qmetro.desktop + echo 'LIBS += -lz' >> qmetro.pro + ''; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://sourceforge.net/projects/qmetro/"; + description = "Worldwide transit maps viewer"; + license = licenses.gpl3; + + maintainers = with maintainers; [ orivej ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qolibri/default.nix b/nixpkgs/pkgs/applications/misc/qolibri/default.nix new file mode 100644 index 000000000000..3b61e3dbc1ad --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qolibri/default.nix @@ -0,0 +1,27 @@ +{ mkDerivation, lib, fetchFromGitHub, pkg-config, cmake, libeb, lzo +, qtbase, qtmultimedia, qttools, qtwebengine }: + +mkDerivation { + pname = "qolibri"; + version = "2019-07-22"; + + src = fetchFromGitHub { + owner = "ludios"; + repo = "qolibri"; + rev = "b58f9838d39300cba444eba725a369181c5d746b"; + sha256 = "0kcc6dvbcmq9y7hk8mp23pydiaqz6f0clg64d1f2y04ppphmah42"; + }; + + nativeBuildInputs = [ pkg-config cmake ]; + buildInputs = [ + libeb lzo qtbase qtmultimedia qttools qtwebengine + ]; + + meta = with lib; { + homepage = "https://github.com/ludios/qolibri"; + description = "EPWING reader for viewing Japanese dictionaries"; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qpdfview/default.nix b/nixpkgs/pkgs/applications/misc/qpdfview/default.nix new file mode 100644 index 000000000000..954c17097618 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qpdfview/default.nix @@ -0,0 +1,51 @@ +{lib, mkDerivation, fetchurl, qmake, qtbase, qtsvg, pkg-config, poppler, djvulibre, libspectre, cups +, file, ghostscript +}: +let + s = # Generated upstream information + rec { + baseName="qpdfview"; + version = "0.4.18"; + name="${baseName}-${version}"; + url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz"; + sha256 = "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c"; + }; + nativeBuildInputs = [ qmake pkg-config ]; + buildInputs = [ + qtbase qtsvg poppler djvulibre libspectre cups file ghostscript + ]; + # apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104 + patches = [ ./qpdfview-qt515-compat.patch ]; +in +mkDerivation { + pname = s.baseName; + inherit (s) version; + inherit nativeBuildInputs buildInputs patches; + src = fetchurl { + inherit (s) url sha256; + }; + + preConfigure = '' + qmakeFlags+=(*.pro) + ''; + + qmakeFlags = [ + "TARGET_INSTALL_PATH=${placeholder "out"}/bin" + "PLUGIN_INSTALL_PATH=${placeholder "out"}/lib/qpdfview" + "DATA_INSTALL_PATH=${placeholder "out"}/share/qpdfview" + "MANUAL_INSTALL_PATH=${placeholder "out"}/share/man/man1" + "ICON_INSTALL_PATH=${placeholder "out"}/share/icons/hicolor/scalable/apps" + "LAUNCHER_INSTALL_PATH=${placeholder "out"}/share/applications" + "APPDATA_INSTALL_PATH=${placeholder "out"}/share/appdata" + ]; + + meta = { + inherit (s) version; + description = "A tabbed document viewer"; + license = lib.licenses.gpl2Plus; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; + homepage = "https://launchpad.net/qpdfview"; + updateWalker = true; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch b/nixpkgs/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch new file mode 100644 index 000000000000..1fbf5ec3f101 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch @@ -0,0 +1,17 @@ +Fix compatibility with Qt 5.15. + +Patch copied from upstream source repository: + +https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104 + +--- a/sources/model.h 2017-04-19 21:01:25 +0000 ++++ b/sources/model.h 2020-06-09 06:24:11 +0000 +@@ -24,6 +24,7 @@ + #define DOCUMENTMODEL_H + + #include <QList> ++#include <QPainterPath> + #include <QtPlugin> + #include <QWidget> + #include <QVector> + diff --git a/nixpkgs/pkgs/applications/misc/qsudo/default.nix b/nixpkgs/pkgs/applications/misc/qsudo/default.nix new file mode 100644 index 000000000000..5f9958f2d5d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qsudo/default.nix @@ -0,0 +1,42 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, qmake +, qtbase +, sudo +}: + +mkDerivation rec { + pname = "qsudo"; + version = "2020.03.27"; + + src = fetchFromGitHub { + owner = "project-trident"; + repo = pname; + rev = "v${version}"; + sha256 = "06kg057vwkvafnk69m9rar4wih3vq4h36wbzwbfc2kndsnn47lfl"; + }; + + sourceRoot = "source/src-qt5"; + + nativeBuildInputs = [ + qmake + ]; + + buildInputs = [ + qtbase + sudo + ]; + + postPatch = '' + substituteInPlace qsudo.pro --replace /usr/bin $out/bin + ''; + + meta = with lib; { + description = "Graphical sudo utility from Project Trident"; + homepage = "https://github.com/project-trident/qsudo"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix b/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix new file mode 100644 index 000000000000..100be6c2dc87 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix @@ -0,0 +1,72 @@ +{ mkDerivation, stdenv, lib, fetchFromGitHub, fetchpatch, procps +, qtbase, qtwebengine, qtwebkit +, cmake +, syncthing +, preferQWebView ? false +, preferNative ? true }: + +mkDerivation rec { + version = "0.5.8"; + pname = "qsyncthingtray"; + + src = fetchFromGitHub { + owner = "sieren"; + repo = "QSyncthingTray"; + rev = version; + sha256 = "1n9g4j7qznvg9zl6x163pi9f7wsc3x6q76i33psnm7x2v1i22x5w"; + }; + + buildInputs = [ qtbase qtwebengine ] ++ lib.optional preferQWebView qtwebkit; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ ] + ++ lib.optional preferQWebView "-DQST_BUILD_WEBKIT=1" + ++ lib.optional preferNative "-DQST_BUILD_NATIVEBROWSER=1"; + + patches = [ (fetchpatch { + name = "support_native_browser.patch"; + url = "https://patch-diff.githubusercontent.com/raw/sieren/QSyncthingTray/pull/225.patch"; + sha256 = "0w665xdlsbjxs977pdpzaclxpswf7xys1q3rxriz181lhk2y66yy"; + }) ] ++ lib.optional (!preferQWebView && !preferNative) ./qsyncthingtray-0.5.8-qt-5.6.3.patch; + + postPatch = '' + ${lib.optionalString stdenv.isLinux '' + substituteInPlace includes/platforms/linux/posixUtils.hpp \ + --replace '"/usr/local/bin/syncthing"' '"${syncthing}/bin/syncthing"' \ + --replace '"pgrep -x' '"${procps}/bin/pgrep -x' + ''} + + ${lib.optionalString stdenv.isDarwin '' + substituteInPlace includes/platforms/darwin/macUtils.hpp \ + --replace '"/usr/local/bin/syncthing"' '"${syncthing}/bin/syncthing"' + ''} + ''; + + installPhase = let qst = "qsyncthingtray"; in '' + runHook preInstall + + mkdir -p $out/bin + install -m755 QSyncthingTray $out/bin/${qst} + ln -s $out/bin/${qst} $out/bin/QSyncthingTray + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/sieren/QSyncthingTray/"; + description = "A Traybar Application for Syncthing written in C++"; + longDescription = '' + A cross-platform status bar for Syncthing. + Currently supports macOS, Windows and Linux. + Written in C++ with Qt. + ''; + license = licenses.lgpl3; + maintainers = with maintainers; [ zraexy peterhoeg ]; + platforms = platforms.all; + # 0.5.7 segfaults when opening the main panel with qt 5.7 and fails to compile with qt 5.8 + # but qt > 5.6 works when only using the native browser + # https://github.com/sieren/QSyncthingTray/issues/223 + broken = (builtins.compareVersions qtbase.version "5.7.0" >= 0 && !preferNative) || stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch b/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch new file mode 100644 index 000000000000..424bbe171779 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b778d09..247b606 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,7 +12,7 @@ set(CMAKE_AUTOMOC ON) + + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + +-find_package(Qt5 5.6 COMPONENTS Widgets Network PrintSupport) ++find_package(Qt5 5.6 COMPONENTS Widgets Network PrintSupport WebEngineWidgets) + if (NOT Qt5_FOUND) + message(FATAL_ERROR + "Some components of Qt5 not found (see above messages for details. " diff --git a/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix b/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix new file mode 100644 index 000000000000..9480a32aae3d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix @@ -0,0 +1,39 @@ +{ mkDerivation +, lib +, fetchFromGitHub +, qtbase +, qtsvg +, qmake +, leptonica +, tesseract +}: + +mkDerivation { + pname = "qt-box-editor"; + version = "unstable-2019-07-12"; + + src = fetchFromGitHub { + owner = "zdenop"; + repo = "qt-box-editor"; + rev = "75a68b466868ba41ba2886caa796057403fe1901"; + sha256 = "0zwsyy7cnbhy5aazwlkhd9y8bnzlgy1gffqa46abajn4809b95k3"; + }; + + buildInputs = [ qtbase qtsvg leptonica tesseract ]; + + nativeBuildInputs = [ qmake ]; + + # remove with next release + # https://github.com/zdenop/qt-box-editor/pull/78 + postPatch = '' + printf "INSTALLS += target\ntarget.path = $out/bin" >> qt-box-editor.pro + ''; + + meta = with lib; { + description = "Editor of tesseract-ocr box files"; + homepage = "https://github.com/zdenop/qt-box-editor"; + license = licenses.asl20; + maintainers = [ maintainers.costrouc ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix b/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix new file mode 100644 index 000000000000..bdb434085da0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix @@ -0,0 +1,46 @@ +{ stdenv, lib, fetchFromGitHub, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia }: +let + gstreamerPath = with gst_all_1; lib.makeSearchPath "lib/gstreamer-1.0" [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + ]; +in stdenv.mkDerivation rec { + pname = "qt-video-wlr"; + version = "2020-08-03"; + + src = fetchFromGitHub { + owner = "xdavidwu"; + repo = "qt-video-wlr"; + rev = "f88a7aa43f28b879b18752069f4a1ec33d73f2fe"; + sha256 = "135kfyg1b61xvfpk8vpk4qyw6s9q1mn3a6lfkrqrhl0dz9kka9lx"; + }; + + nativeBuildInputs = [ pkg-config meson ninja wrapQtAppsHook ]; + buildInputs = [ + wayland + pixman + cairo + librsvg + wayland-protocols + wlroots + libxkbcommon + qtbase + qtmultimedia + ]; + + qtWrapperArgs = [ + "--prefix PATH : $out/bin/qt-video-wlr" + "--prefix GST_PLUGIN_PATH : ${gstreamerPath}" + ]; + + meta = with lib; { + description = "Qt pip-mode-like video player for wlroots-based wayland compositors"; + homepage = "https://github.com/xdavidwu/qt-video-wlr"; + license = licenses.mit; + maintainers = with maintainers; [ fionera ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix new file mode 100644 index 000000000000..1bdcd6ea8a6f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix @@ -0,0 +1,35 @@ +{ lib, fetchzip, qt5, mkDerivation }: + +let + version = "1.40.43"; +in +mkDerivation { + pname = "qtbitcointrader"; + inherit version; + + src = fetchzip { + url = "https://github.com/JulyIGHOR/QtBitcoinTrader/archive/v${version}.tar.gz"; + sha256 = "07xbsi78cykpyxidp1bw5ahmymdrs2afg7b0lla7dfhagz18lzxv"; + }; + + buildInputs = [ qt5.qtbase qt5.qtmultimedia qt5.qtscript ]; + + postUnpack = "sourceRoot=\${sourceRoot}/src"; + + configurePhase = '' + runHook preConfigure + qmake $qmakeFlags \ + PREFIX=$out \ + DESKTOPDIR=$out/share/applications \ + ICONDIR=$out/share/pixmaps \ + QtBitcoinTrader_Desktop.pro + runHook postConfigure + ''; + + meta = with lib; { + description = "Bitcoin trading client"; + homepage = "https://centrabit.com/"; + license = licenses.gpl3; + platforms = qt5.qtbase.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/qtpass/default.nix b/nixpkgs/pkgs/applications/misc/qtpass/default.nix new file mode 100644 index 000000000000..faa199147490 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/qtpass/default.nix @@ -0,0 +1,61 @@ +{ lib, mkDerivation, fetchFromGitHub +, git, gnupg, pass, pwgen, qrencode +, fetchpatch +, qtbase, qtsvg, qttools, qmake +}: + +mkDerivation rec { + pname = "qtpass"; + version = "1.3.2"; + + src = fetchFromGitHub { + owner = "IJHack"; + repo = "QtPass"; + rev = "v${version}"; + sha256 = "0748hjvhjrybi33ci3c8hcr74k9pdrf5jv8npf9hrsrmdyy1kr9x"; + }; + + postPatch = '' + substituteInPlace src/qtpass.cpp \ + --replace "/usr/bin/qrencode" "${qrencode}/bin/qrencode" + ''; + + buildInputs = [ git gnupg pass qtbase qtsvg ]; + + nativeBuildInputs = [ qmake qttools ]; + + enableParallelBuilding = true; + + patches = [ + # Fix path to pass-otp plugin `/usr/lib/password-store/extensions/otp.bash` being hardcoded. + # TODO: Remove when https://github.com/IJHack/QtPass/pull/499 is merged and available. + (fetchpatch { + name = "qtpass-Dont-hardcode-pass-otp-usr-lib-path.patch"; + url = "https://github.com/IJHack/QtPass/commit/2ca9f0ec5a8d709c97a2433c5cd814040c82d4f3.patch"; + sha256 = "0ljlvqxvarrz2a4j71i66aflrxi84zirb6cg9kvygnvhvm1zbc7d"; + }) + ]; + + qmakeFlags = [ + # setup hook only sets QMAKE_LRELEASE, set QMAKE_LUPDATE too: + "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate" + ]; + + qtWrapperArgs = [ + "--suffix PATH : ${lib.makeBinPath [ git gnupg pass pwgen ]}" + ]; + + postInstall = '' + install -D qtpass.desktop -t $out/share/applications + install -D artwork/icon.svg $out/share/icons/hicolor/scalable/apps/qtpass-icon.svg + install -D qtpass.1 -t $out/share/man/man1 + ''; + + meta = with lib; { + description = "A multi-platform GUI for pass, the standard unix password manager"; + homepage = "https://qtpass.org"; + license = licenses.gpl3; + maintainers = [ maintainers.hrdinka ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix b/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix new file mode 100644 index 000000000000..81a4ef3d99f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix @@ -0,0 +1,37 @@ +{lib, stdenv, fetchurl, pkg-config, gtk2, synergy}: + +stdenv.mkDerivation rec { + pname = "quicksynergy"; + version = "0.9.0"; + src = fetchurl { + url = "mirror://sourceforge/project/quicksynergy/Linux/${version}/quicksynergy-${version}.tar.gz"; + sha256 = "1pi8503bg8q1psw50y6d780i33nnvfjqiy9vnr3v52pdcfip8pix"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + gtk2 + synergy + ]; + preBuild = " + sed -i 's@/usr/bin@${synergy.out}/bin@' src/synergy_config.c + "; + meta = { + description = "GUI application to share mouse and keyboard between computers"; + longDescription = " + QuickSynergy is a graphical interface (GUI) for easily configuring + Synergy2, an application that allows the user to share his mouse and + keyboard between two or more computers. + + Without the need for any external hardware, Synergy2 uses the TCP-IP + protocol to share the resources, even between machines with diferent + operating systems, such as Mac OS, Linux and Windows. + + Remember to open port 24800 (used by synergys program) if you want to + host mouse and keyboard."; + homepage = "https://sourceforge.net/projects/quicksynergy/"; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.spinus ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix b/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix new file mode 100644 index 000000000000..88b215acdfa9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix @@ -0,0 +1,26 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "raiseorlaunch"; + version = "2.3.3"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "3d694015d020a888b42564d56559213b94981ca2b32b952a49b2de4d029d2e59"; + }; + + nativeBuildInputs = [ python3Packages.setuptools-scm ]; + pythonPath = with python3Packages; [ i3ipc ]; + + # no tests + doCheck = false; + pythonImportsCheck = [ "raiseorlaunch" ]; + + meta = with lib; { + maintainers = with maintainers; [ winpat ]; + description = "A run-or-raise-application-launcher for i3 window manager"; + homepage = "https://github.com/open-dynaMIX/raiseorlaunch"; + license = licenses.mit; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ranger/default.nix b/nixpkgs/pkgs/applications/misc/ranger/default.nix new file mode 100644 index 000000000000..4bd8a182d6f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ranger/default.nix @@ -0,0 +1,50 @@ +{ lib, fetchFromGitHub, python3Packages, file, less, highlight +, imagePreviewSupport ? true, w3m }: + +python3Packages.buildPythonApplication rec { + pname = "ranger"; + version = "1.9.3"; + + src = fetchFromGitHub { + owner = "ranger"; + repo = "ranger"; + rev = "v${version}"; + sha256= "1rygfryczanvqxn43lmlkgs04sbqznbvbb9hlbm3h5qgdcl0xlw8"; + }; + + LC_ALL = "en_US.UTF-8"; + + checkInputs = with python3Packages; [ pytestCheckHook ]; + propagatedBuildInputs = [ file ] + ++ lib.optionals (imagePreviewSupport) [ python3Packages.pillow ]; + + preConfigure = '' + ${lib.optionalString (highlight != null) '' + sed -i -e 's|^\s*highlight\b|${highlight}/bin/highlight|' \ + ranger/data/scope.sh + ''} + + substituteInPlace ranger/__init__.py \ + --replace "DEFAULT_PAGER = 'less'" "DEFAULT_PAGER = '${lib.getBin less}/bin/less'" + + # give file previews out of the box + substituteInPlace ranger/config/rc.conf \ + --replace /usr/share $out/share \ + --replace "#set preview_script ~/.config/ranger/scope.sh" "set preview_script $out/share/doc/ranger/config/scope.sh" + '' + lib.optionalString imagePreviewSupport '' + substituteInPlace ranger/ext/img_display.py \ + --replace /usr/lib/w3m ${w3m}/libexec/w3m + + # give image previews out of the box when building with w3m + substituteInPlace ranger/config/rc.conf \ + --replace "set preview_images false" "set preview_images true" + ''; + + meta = with lib; { + description = "File manager with minimalistic curses interface"; + homepage = "https://ranger.github.io/"; + license = licenses.gpl3Only; + platforms = platforms.unix; + maintainers = with maintainers; [ toonn magnetophon ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/razergenie/default.nix b/nixpkgs/pkgs/applications/misc/razergenie/default.nix new file mode 100644 index 000000000000..8f78c0becaf5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/razergenie/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub, lib, meson, ninja, pkg-config, qtbase, qttools +, wrapQtAppsHook +, enableExperimental ? false +, includeMatrixDiscovery ? false +}: + +let + version = "0.9.0"; + pname = "razergenie"; + +in stdenv.mkDerivation { + inherit pname version; + + src = fetchFromGitHub { + owner = "z3ntu"; + repo = "RazerGenie"; + rev = "v${version}"; + sha256 = "17xlv26q8sdbav00wdm043449pg2424l3yaf8fvkc9rrlqkv13a4"; + }; + + nativeBuildInputs = [ + pkg-config meson ninja wrapQtAppsHook + ]; + + buildInputs = [ + qtbase qttools + ]; + + mesonFlags = [ + "-Denable_experimental=${lib.boolToString enableExperimental}" + "-Dinclude_matrix_discovery=${lib.boolToString includeMatrixDiscovery}" + ]; + + meta = with lib; { + homepage = "https://github.com/z3ntu/RazerGenie"; + description = "Qt application for configuring your Razer devices under GNU/Linux"; + license = licenses.gpl3; + maintainers = with maintainers; [ f4814n Mogria ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/reddsaver/default.nix b/nixpkgs/pkgs/applications/misc/reddsaver/default.nix new file mode 100644 index 000000000000..23fddf3b7ed6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/reddsaver/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv +, fetchFromGitHub +, rustPlatform +, openssl +, pkg-config +, Security +}: + +rustPlatform.buildRustPackage rec { + pname = "reddsaver"; + version = "0.3.3"; + + src = fetchFromGitHub { + owner = "manojkarthick"; + repo = "reddsaver"; + rev = "v${version}"; + sha256 = "1czsy1bb0ja650sndwzq9rcbbhcci7s7ablw0agaynhi403shavv"; + }; + + cargoSha256 = "0wr6y7mfffaqdh6i5nqhx692dih159121sm6k0i37wcdvxhvd51z"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ] + ++ lib.optional stdenv.isDarwin Security; + + # package does not contain tests as of v0.3.3 + docCheck = false; + + meta = with lib; { + description = "CLI tool to download saved media from Reddit"; + homepage = "https://github.com/manojkarthick/reddsaver"; + license = with licenses; [ mit /* or */ asl20 ]; + maintainers = [ maintainers.manojkarthick ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix b/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix new file mode 100644 index 000000000000..8c4fa2efb227 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix @@ -0,0 +1,84 @@ +{ mkDerivation, lib, fetchFromGitHub, fetchFromGitiles, pkg-config, libssh2 +, qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols2 +, qtsvg, qttools, qtquick1, qtcharts +, qmake +}: + +let + breakpad_lss = fetchFromGitiles { + url = "https://chromium.googlesource.com/linux-syscall-support"; + rev = "08056836f2b4a5747daff75435d10d649bed22f6"; + sha256 = "1ryshs2nyxwa0kn3rlbnd5b3fhna9vqm560yviddcfgdm2jyg0hz"; + }; + +in + +mkDerivation rec { + pname = "redis-desktop-manager"; + version = "0.9.1"; + + src = fetchFromGitHub { + owner = "uglide"; + repo = "RedisDesktopManager"; + fetchSubmodules = true; + rev = version; + sha256 = "0yd4i944d4blw8jky0nxl7sfkkj975q4d328rdcbhizwvf6dx81f"; + }; + + nativeBuildInputs = [ pkg-config qmake ]; + buildInputs = [ + libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats + qtquick1 qtquickcontrols2 qtsvg qttools qtcharts + ]; + + dontUseQmakeConfigure = true; + dontWrapQtApps = true; + + NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated" ]; + + # Disable annoying update reminder + postPatch = '' + sed -i s/'^\s*initUpdater();'/'\/\/initUpdater():'/ src/app/app.cpp + ''; + + buildPhase = '' + srcdir=$PWD + + cat <<EOF > src/version.h +#ifndef RDM_VERSION + #define RDM_VERSION "${version}-120" +#endif // !RDM_VERSION +EOF + + cd $srcdir/3rdparty/gbreakpad + cp -r ${breakpad_lss} src/third_party/lss + chmod +w -R src/third_party/lss + touch README + + cd $srcdir/3rdparty/crashreporter + qmake CONFIG+=release DESTDIR="$srcdir/rdm/bin/linux/release" QMAKE_LFLAGS_RPATH="" + make + + cd $srcdir/3rdparty/gbreakpad + ./configure + make + + cd $srcdir/src + qmake + make + ''; + + installPhase = '' + mkdir -p $out/bin + instdir="$srcdir/bin/linux/release" + cp $instdir/rdm $out/bin + ''; + + meta = with lib; { + description = "Cross-platform open source Redis DB management tool"; + homepage = "https://redisdesktop.com/"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix b/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix new file mode 100644 index 000000000000..b8d25f0db1de --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix @@ -0,0 +1,47 @@ +{ lib, stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, redshift, fetchFromGitHub, }: + +let version = "1.0.18"; in + +stdenv.mkDerivation { + pname = "redshift-plasma-applet"; + inherit version; + + src = fetchFromGitHub { + owner = "kotelnik"; + repo = "plasma-applet-redshift-control"; + rev = "v${version}"; + sha256 = "122nnbafa596rxdxlfshxk45lzch8c9342bzj7kzrsjkjg0xr9pq"; + }; + + patchPhase = '' + substituteInPlace package/contents/ui/main.qml \ + --replace "redshiftCommand: 'redshift'" \ + "redshiftCommand: '${redshift}/bin/redshift'" \ + --replace "redshiftOneTimeCommand: 'redshift -O " \ + "redshiftOneTimeCommand: '${redshift}/bin/redshift -O " + + substituteInPlace package/contents/ui/config/ConfigAdvanced.qml \ + --replace "'redshift -V'" \ + "'${redshift}/bin/redshift -V'" + ''; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + buildInputs = [ + plasma-framework + kwindowsystem + ]; + + dontWrapQtApps = true; + + meta = with lib; { + description = "KDE Plasma 5 widget for controlling Redshift"; + homepage = "https://github.com/kotelnik/plasma-applet-redshift-control"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ benley zraexy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/redshift/575.patch b/nixpkgs/pkgs/applications/misc/redshift/575.patch new file mode 100644 index 000000000000..d731d8ec43ad --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/redshift/575.patch @@ -0,0 +1,51 @@ +From 467156efccc5e36a36bec8c0b64cc5a70f14d5ed Mon Sep 17 00:00:00 2001 +From: Yegor Timoshenko <yegortimoshenko@riseup.net> +Date: Tue, 16 Jan 2018 11:43:46 +0000 +Subject: [PATCH] Fix Autoconf script + +gettext/intltool macros are not used correctly, see: +https://bugs.launchpad.net/inkscape/+bug/1418943 +--- + bootstrap | 6 +----- + configure.ac | 5 +---- + 2 files changed, 2 insertions(+), 9 deletions(-) + +diff --git a/bootstrap b/bootstrap +index 0599cf5..40b1dca 100755 +--- a/bootstrap ++++ b/bootstrap +@@ -1,7 +1,3 @@ + #!/bin/sh + +-# change to root directory +-cd $(dirname "$0") +- +-autopoint --force && \ +- AUTOPOINT="intltoolize --automake --copy" autoreconf --force --install --verbose ++autoreconf --force --install && intltoolize +diff --git a/configure.ac b/configure.ac +index be0b51a..a2e7c42 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -17,6 +17,7 @@ AC_PROG_OBJC # For macOS support modules + AC_LANG([C]) + + AC_PROG_INTLTOOL([0.50]) ++AC_SUBST(LIBINTL) + + AC_CANONICAL_HOST + +@@ -51,10 +52,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [ + ]) + AC_LANG_POP([Objective C]) + +-# Checks for libraries. +-AM_GNU_GETTEXT_VERSION([0.17]) +-AM_GNU_GETTEXT([external]) +- + GETTEXT_PACKAGE=redshift + AC_SUBST(GETTEXT_PACKAGE) + AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext]) +-- +2.15.1 + diff --git a/nixpkgs/pkgs/applications/misc/redshift/default.nix b/nixpkgs/pkgs/applications/misc/redshift/default.nix new file mode 100644 index 000000000000..5798473db5e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/redshift/default.nix @@ -0,0 +1,152 @@ +{ lib, stdenv, fetchFromGitHub, fetchFromGitLab +, autoconf, automake, gettext, intltool +, libtool, pkg-config, wrapGAppsHook, wrapPython, gobject-introspection +, gtk3, python, pygobject3, pyxdg + +, withQuartz ? stdenv.isDarwin, ApplicationServices +, withRandr ? stdenv.isLinux, libxcb +, withDrm ? stdenv.isLinux, libdrm + +, withGeolocation ? true +, withCoreLocation ? withGeolocation && stdenv.isDarwin, CoreLocation, Foundation, Cocoa +, withGeoclue ? withGeolocation && stdenv.isLinux, geoclue +, withAppIndicator ? stdenv.isLinux, libappindicator, libayatana-appindicator +}: + +let + mkRedshift = + { pname, version, src, meta }: + stdenv.mkDerivation rec { + inherit pname version src meta; + + patches = lib.optionals (pname != "gammastep") [ + # https://github.com/jonls/redshift/pull/575 + ./575.patch + ]; + + nativeBuildInputs = [ + autoconf + automake + gettext + intltool + libtool + pkg-config + wrapGAppsHook + wrapPython + ]; + + configureFlags = [ + "--enable-randr=${if withRandr then "yes" else "no"}" + "--enable-geoclue2=${if withGeoclue then "yes" else "no"}" + "--enable-drm=${if withDrm then "yes" else "no"}" + "--enable-quartz=${if withQuartz then "yes" else "no"}" + "--enable-corelocation=${if withCoreLocation then "yes" else "no"}" + ] ++ lib.optionals (pname == "gammastep") [ + "--with-systemduserunitdir=${placeholder "out"}/share/systemd/user/" + "--enable-apparmor" + ]; + + buildInputs = [ + gobject-introspection + gtk3 + python + ] ++ lib.optional withRandr libxcb + ++ lib.optional withGeoclue geoclue + ++ lib.optional withDrm libdrm + ++ lib.optional withQuartz ApplicationServices + ++ lib.optionals withCoreLocation [ CoreLocation Foundation Cocoa ] + ++ lib.optional withAppIndicator (if (pname != "gammastep") + then libappindicator + else libayatana-appindicator) + ; + + pythonPath = [ pygobject3 pyxdg ]; + + preConfigure = "./bootstrap"; + + postFixup = "wrapPythonPrograms"; + + # the geoclue agent may inspect these paths and expect them to be + # valid without having the correct $PATH set + postInstall = if (pname == "gammastep") then '' + substituteInPlace $out/share/applications/gammastep.desktop \ + --replace 'Exec=gammastep' "Exec=$out/bin/gammastep" + substituteInPlace $out/share/applications/gammastep-indicator.desktop \ + --replace 'Exec=gammastep-indicator' "Exec=$out/bin/gammastep-indicator" + '' else '' + substituteInPlace $out/share/applications/redshift.desktop \ + --replace 'Exec=redshift' "Exec=$out/bin/redshift" + substituteInPlace $out/share/applications/redshift-gtk.desktop \ + --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk" + ''; + + enableParallelBuilding = true; + }; +in +rec { + redshift = mkRedshift rec { + pname = "redshift"; + version = "1.12"; + + src = fetchFromGitHub { + owner = "jonls"; + repo = "redshift"; + rev = "v${version}"; + sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6"; + }; + + meta = with lib; { + description = "Screen color temperature manager"; + longDescription = '' + Redshift adjusts the color temperature according to the position + of the sun. A different color temperature is set during night and + daytime. During twilight and early morning, the color temperature + transitions smoothly from night to daytime temperature to allow + your eyes to slowly adapt. At night the color temperature should + be set to match the lamps in your room. + ''; + license = licenses.gpl3Plus; + homepage = "http://jonls.dk/redshift"; + platforms = platforms.unix; + maintainers = with maintainers; [ yegortimoshenko globin ]; + }; + }; + + redshift-wlr = mkRedshift { + pname = "redshift-wlr"; + # upstream rebases so this is the push date + version = "2019-08-24"; + + src = fetchFromGitHub { + owner = "minus7"; + repo = "redshift"; + rev = "7da875d34854a6a34612d5ce4bd8718c32bec804"; + sha256 = "0rs9bxxrw4wscf4a8yl776a8g880m5gcm75q06yx2cn3lw2b7v22"; + }; + + meta = redshift.meta // { + description = redshift.meta.description + "(with wlroots patches)"; + homepage = "https://github.com/minus7/redshift"; + }; + }; + + gammastep = mkRedshift rec { + pname = "gammastep"; + version = "2.0.7"; + + src = fetchFromGitLab { + owner = "chinstrap"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-78z2CQ+r7undbp+8E0mMDNWWl+RXeS5he/ax0VomRYY="; + }; + + meta = redshift.meta // { + name = "${pname}-${version}"; + longDescription = "Gammastep" + + lib.removePrefix "Redshift" redshift.meta.longDescription; + homepage = "https://gitlab.com/chinstrap/gammastep"; + maintainers = [ lib.maintainers.primeos ] ++ redshift.meta.maintainers; + }; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/regextester/default.nix b/nixpkgs/pkgs/applications/misc/regextester/default.nix new file mode 100644 index 000000000000..b7eb2367528d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/regextester/default.nix @@ -0,0 +1,59 @@ +{ lib, stdenv +, fetchFromGitHub +, vala +, gettext +, libxml2 +, pkg-config +, glib +, gtk3 +, libgee +, meson +, ninja +, gobject-introspection +, gsettings-desktop-schemas +, pantheon +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "regextester"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "artemanufrij"; + repo = "regextester"; + rev = version; + sha256 = "1xwwv1hccni1mrbl58f7ly4qfq6738vn24bcbl2q346633cd7kx3"; + }; + + nativeBuildInputs = [ + vala + gettext + gobject-introspection + libxml2 + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + pantheon.elementary-icon-theme + pantheon.granite + glib + libgee + gsettings-desktop-schemas + gtk3 + ]; + + postInstall = '' + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + meta = with lib; { + description = "A desktop application to test regular expressions interactively"; + homepage = "https://github.com/artemanufrij/regextester"; + maintainers = with maintainers; [ samdroid-apps ]; + platforms = platforms.linux; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix new file mode 100644 index 000000000000..800170b314a5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix @@ -0,0 +1,24 @@ +{ lib, buildPythonApplication, fetchPypi, python3Packages }: + +buildPythonApplication rec { + pname = "remarkable-mouse"; + version = "5.2.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "0k2wjfcgnvb8yqn4c4ddfyyhrvl6hj61kn1ddnyp6ay9vklnw160"; + }; + + propagatedBuildInputs = with python3Packages; [ screeninfo paramiko pynput libevdev ]; + + # no tests + doCheck = false; + pythonImportsCheck = [ "remarkable_mouse" ]; + + meta = with lib; { + description = "A program to use a reMarkable as a graphics tablet"; + homepage = "https://github.com/evidlo/remarkable_mouse"; + license = licenses.gpl3; + maintainers = [ maintainers.nickhu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix new file mode 100644 index 000000000000..f2ce2bd441c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix @@ -0,0 +1,48 @@ +{ lib +, bash +, stdenv +, lz4 +, ffmpeg-full +, fetchFromGitHub +, openssh +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "restream"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "rien"; + repo = pname; + rev = version; + sha256 = "18z17chl7r5dg12xmr3f9gbgv97nslm8nijigd03iysaj6dhymp3"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + install -D ${src}/restream.arm.static $out/libexec/restream.arm.static + install -D ${src}/reStream.sh $out/bin/restream + + runHook postInstall + ''; + + postInstall = '' + # `ffmpeg-full` is used here to bring in `ffplay`, which is used to display + # the reMarkable framebuffer + wrapProgram "$out/bin/restream" --suffix PATH ":" "${lib.makeBinPath [ ffmpeg-full lz4 openssh ]}" + ''; + + meta = with lib; { + description = "reMarkable screen sharing over SSH"; + homepage = "https://github.com/rien/reStream"; + license = licenses.mit; + maintainers = [ maintainers.cpcloud ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix new file mode 100644 index 000000000000..11373756f8d0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "rmapi"; + version = "0.0.15"; + + src = fetchFromGitHub { + owner = "juruen"; + repo = "rmapi"; + rev = "v${version}"; + sha256 = "sha256-ju54JSd3Zyye5YGLPEOkhY93ONh0b7eDSnvJlIawizE="; + }; + + vendorSha256 = "sha256-SE/0a8QUJsWoGwkSiZqYx1eXuOIL3avJujyg8iSdcBU="; + + doCheck = false; + + meta = with lib; { + description = "A Go app that allows access to the ReMarkable Cloud API programmatically"; + homepage = "https://github.com/juruen/rmapi"; + changelog = "https://github.com/juruen/rmapi/blob/v${version}/CHANGELOG.md"; + license = licenses.agpl3Only; + maintainers = [ maintainers.nickhu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix new file mode 100644 index 000000000000..385607ec7098 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix @@ -0,0 +1,31 @@ +{ lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }: + +python3Packages.buildPythonApplication rec { + pname = "rmview"; + version = "2.1"; + + src = fetchFromGitHub { + owner = "bordaigorl"; + repo = pname; + rev = "v${version}"; + sha256 = "0zyngirpg808k1pkyhrk43qr3i8ilvfci0wzwk4b5f6f9cmjs7kb"; + }; + + nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ]; + propagatedBuildInputs = with python3Packages; [ pyqt5 paramiko twisted ]; + + preBuild = '' + pyrcc5 -o src/rmview/resources.py resources.qrc + ''; + + preFixup = '' + wrapQtApp "$out/bin/rmview" + ''; + + meta = with lib; { + description = "Fast live viewer for reMarkable 1 and 2"; + homepage = "https://github.com/bordaigorl/rmview"; + license = licenses.gpl3Only; + maintainers = [ maintainers.nickhu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rescuetime/default.nix b/nixpkgs/pkgs/applications/misc/rescuetime/default.nix new file mode 100644 index 000000000000..69f0b26b9ec4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rescuetime/default.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, fetchurl, dpkg, patchelf, qt5, libXtst, libXext, libX11, mkDerivation, makeWrapper, libXScrnSaver, writeScript, common-updater-scripts, curl, pup }: + +let + version = "2.16.5.1"; + src = + if stdenv.hostPlatform.system == "i686-linux" then fetchurl { + name = "rescuetime-installer.deb"; + url = "https://www.rescuetime.com/installers/rescuetime_${version}_i386.deb"; + sha256 = "1xrvyy0higc1fbc8ascpaszvg2bl6x0a35bzmdq6dkay48hnrd8b"; + } else fetchurl { + name = "rescuetime-installer.deb"; + url = "https://www.rescuetime.com/installers/rescuetime_${version}_amd64.deb"; + sha256 = "09ng0yal66d533vzfv27k9l2va03rqbqmsni43qi3hgx7w9wx5ii"; + }; +in mkDerivation rec { + # https://www.rescuetime.com/updates/linux_release_notes.html + inherit version; + pname = "rescuetime"; + inherit src; + nativeBuildInputs = [ dpkg ]; + # avoid https://github.com/NixOS/patchelf/issues/99 + dontStrip = true; + unpackPhase = '' + mkdir pkg + dpkg-deb -x $src pkg + sourceRoot=pkg + ''; + installPhase = '' + mkdir -p $out/bin + cp usr/bin/rescuetime $out/bin + + ${patchelf}/bin/patchelf \ + --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${lib.makeLibraryPath [ qt5.qtbase libXtst libXext libX11 libXScrnSaver ]}" \ + $out/bin/rescuetime + ''; + + passthru.updateScript = writeScript "${pname}-updater" '' + #!${stdenv.shell} + set -eu -o pipefail + PATH=${lib.makeBinPath [curl pup common-updater-scripts]}:$PATH + latestVersion="$(curl -sS https://www.rescuetime.com/release-notes/linux | pup '.release:first-of-type h2 strong text{}' | tr -d '\n')" + + for platform in ${lib.concatStringsSep " " meta.platforms}; do + # The script will not perform an update when the version attribute is up to date from previous platform run + # We need to clear it before each run + update-source-version ${pname} 0 $(yes 0 | head -64 | tr -d "\n") --system=$platform + update-source-version ${pname} "$latestVersion" --system=$platform + done + ''; + + meta = with lib; { + description = "Helps you understand your daily habits so you can focus and be more productive"; + homepage = "https://www.rescuetime.com"; + maintainers = with maintainers; [ cstrahan ]; + license = licenses.unfree; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rm-improved/default.nix b/nixpkgs/pkgs/applications/misc/rm-improved/default.nix new file mode 100644 index 000000000000..0a1d38f5f7f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rm-improved/default.nix @@ -0,0 +1,24 @@ +{ fetchFromGitHub, rustPlatform, lib }: + +with lib; + +rustPlatform.buildRustPackage rec { + pname = "rm-improved"; + version = "0.13.0"; + + cargoSha256 = "0wgpr6gx9dpvf02xgvrdbyiqfz1k9vipnvriz3jg0cz7n1afqisj"; + + src = fetchFromGitHub { + owner = "nivekuil"; + repo = "rip"; + rev = "0.13.0"; + sha256 = "0d065xia4mwdhxkiqfg7pic6scfzipzmsvvx7l6l97w62lzpiqx3"; + }; + + meta = { + description = "Replacement for rm with focus on safety, ergonomics and performance"; + homepage = "https://github.com/nivekuil/rip"; + maintainers = with maintainers; [ nils-degroot ]; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/robo3t/default.nix b/nixpkgs/pkgs/applications/misc/robo3t/default.nix new file mode 100644 index 000000000000..41f3475a645f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/robo3t/default.nix @@ -0,0 +1,101 @@ +{ lib +, stdenv +, fetchurl +, curl +, zlib +, glib +, xorg +, dbus +, fontconfig +, libGL +, freetype +, xkeyboard_config +, makeDesktopItem +, makeWrapper +}: + +let + curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; }; +in + +stdenv.mkDerivation rec { + pname = "robo3t"; + version = "1.4.3"; + rev = "48f7dfd"; + + src = fetchurl { + url = "https://github.com/Studio3T/robomongo/releases/download/v${version}/robo3t-${version}-linux-x86_64-${rev}.tar.gz"; + sha256 = "sha256-pH4q/O3bq45ZZn+s/12iScd0WbfkcLjK4MBdVCMXK00="; + }; + + icon = fetchurl { + url = "https://github.com/Studio3T/robomongo/raw/${rev}/install/macosx/robomongo.iconset/icon_128x128.png"; + sha256 = "sha256-2PkUxBq2ow0wl09k8B6LJJUQ+y4GpnmoAeumKN1u5xg="; + }; + + desktopItem = makeDesktopItem { + name = "robo3t"; + exec = "robo3t"; + icon = icon; + comment = "Query GUI for mongodb"; + desktopName = "Robo3T"; + genericName = "MongoDB management tool"; + categories = "Development;IDE;"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + ldLibraryPath = lib.makeLibraryPath [ + stdenv.cc.cc + zlib + glib + xorg.libXi + xorg.libxcb + xorg.libXrender + xorg.libX11 + xorg.libSM + xorg.libICE + xorg.libXext + dbus + fontconfig + freetype + libGL + curlWithGnuTls + ]; + + installPhase = '' + runHook preInstall + + BASEDIR=$out/lib/robo3t + + mkdir -p $BASEDIR/bin + cp bin/* $BASEDIR/bin + + mkdir -p $BASEDIR/lib + cp -r lib/* $BASEDIR/lib + + mkdir -p $out/share/applications + cp $desktopItem/share/applications/* $out/share/applications + + mkdir -p $out/share/icons + cp ${icon} $out/share/icons/robomongo.png + + patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $BASEDIR/bin/robo3t + + mkdir $out/bin + + makeWrapper $BASEDIR/bin/robo3t $out/bin/robo3t \ + --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ + --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://robomongo.org/"; + description = "Query GUI for mongodb. Formerly called Robomongo"; + platforms = [ "x86_64-linux" ]; + license = licenses.gpl3Only; + maintainers = with maintainers; [ eperuffo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch b/nixpkgs/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch new file mode 100644 index 000000000000..9b9479b1b49a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofi-emoji/0001-Patch-plugindir-to-output.patch @@ -0,0 +1,25 @@ +From 695e7a441fc28b874e65917fe2c0059b5b8ca749 Mon Sep 17 00:00:00 2001 +From: Cole Helbling <cole.e.helbling@outlook.com> +Date: Sat, 28 Mar 2020 23:46:03 -0700 +Subject: [PATCH] Patch plugindir to output + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 75e476f..cb1ddf7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,7 +55,7 @@ PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.40 gio-unix-2.0 gmodule-2.0 ]) + PKG_CHECK_MODULES([cairo], [cairo]) + PKG_CHECK_MODULES([rofi], [rofi]) + +-[rofi_PLUGIN_INSTALL_DIR]="`$PKG_CONFIG --variable=pluginsdir rofi`" ++[rofi_PLUGIN_INSTALL_DIR]="`echo $out/lib/rofi`" + AC_SUBST([rofi_PLUGIN_INSTALL_DIR]) + + LT_INIT([disable-static]) +-- +2.25.1 + diff --git a/nixpkgs/pkgs/applications/misc/rofi-emoji/default.nix b/nixpkgs/pkgs/applications/misc/rofi-emoji/default.nix new file mode 100644 index 000000000000..73d8999be5b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofi-emoji/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, substituteAll +, makeWrapper + +, autoreconfHook +, pkg-config + +, cairo +, glib +, libnotify +, rofi-unwrapped +, wl-clipboard +, xclip +, xsel +}: + +stdenv.mkDerivation rec { + pname = "rofi-emoji"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "Mange"; + repo = pname; + rev = "v${version}"; + sha256 = "0knsvsdff2c7ww94120bq92735qrfriyd28mi0n72ccb2iikyi8b"; + }; + + patches = [ + # Look for plugin-related files in $out/lib/rofi + ./0001-Patch-plugindir-to-output.patch + ]; + + postPatch = '' + patchShebangs clipboard-adapter.sh + ''; + + postFixup = '' + chmod +x $out/share/rofi-emoji/clipboard-adapter.sh + wrapProgram $out/share/rofi-emoji/clipboard-adapter.sh \ + --prefix PATH ":" ${lib.makeBinPath [ libnotify wl-clipboard xclip xsel ]} + ''; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs = [ + cairo + glib + libnotify + makeWrapper + rofi-unwrapped + wl-clipboard + xclip + xsel + ]; + + meta = with lib; { + description = "An emoji selector plugin for Rofi"; + homepage = "https://github.com/Mange/rofi-emoji"; + license = licenses.mit; + maintainers = with maintainers; [ cole-h ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rofi-file-browser/default.nix b/nixpkgs/pkgs/applications/misc/rofi-file-browser/default.nix new file mode 100644 index 000000000000..0f9067a7e39d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofi-file-browser/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, rofi, gtk3 }: + +stdenv.mkDerivation rec { + pname = "rofi-file-browser-extended"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "marvinkreis"; + repo = pname; + rev = version; + sha256 = "10wk5sif3bmvsgyk2gdy0qhpv1b37zgzf89n3h0yh7pg195fi2gn"; + fetchSubmodules = true; + }; + + prePatch = '' + substituteInPlace ./CMakeLists.txt \ + --replace ' ''${ROFI_PLUGINS_DIR}' " $out/lib/rofi" \ + --replace "/usr/share/" "$out/share/" + ''; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ rofi gtk3 ]; + + ROFI_PLUGINS_DIR = "$out/lib/rofi"; + + dontUseCmakeBuildDir = true; + + meta = with lib; { + description = "Use rofi to quickly open files"; + homepage = "https://github.com/marvinkreis/rofi-file-browser-extended"; + license = licenses.mit; + maintainers = with maintainers; [ jluttine ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix b/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix new file mode 100644 index 000000000000..6c9e5f6feff8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, rofi, gnused }: + +stdenv.mkDerivation rec { + rev = "168efd2608fdb88b1aff3e0244bda8402169f207"; + name = "rofi-menugen-2015-12-28-${builtins.substring 0 7 rev}"; + src = fetchFromGitHub { + owner = "octotep"; + repo = "menugen"; + inherit rev; + sha256 = "09fk9i6crw772qlc5zld35pcff1jq4jcag0syial2q000fbpjx5m"; + }; + patchPhase = '' + sed -i -e "s|menugenbase|$out/bin/rofi-menugenbase|" menugen + sed -i -e "s|rofi |${rofi}/bin/rofi |" menugen + sed -i -e "s|sed |${gnused}/bin/sed |" menugenbase + ''; + installPhase = '' + mkdir -p $out/bin + cp menugen $out/bin/rofi-menugen + cp menugenbase $out/bin/rofi-menugenbase + ''; + meta = with lib; { + description = "Generates menu based applications using rofi"; + homepage = "https://github.com/octotep/menugen"; + maintainers = with maintainers; [ ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rofi-power-menu/default.nix b/nixpkgs/pkgs/applications/misc/rofi-power-menu/default.nix new file mode 100644 index 000000000000..657796a5972a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofi-power-menu/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchFromGitHub, rofi }: + +stdenv.mkDerivation rec { + pname = "rofi-power-menu"; + version = "3.0.2"; + + src = fetchFromGitHub { + owner = "jluttine"; + repo = "rofi-power-menu"; + rev = version; + sha256 = "sha256-Bkc87BXSnAR517wCkyOAfoACYx/5xprDGJQhLWGUNns="; + }; + + installPhase = '' + mkdir -p $out/bin + cp rofi-power-menu $out/bin/rofi-power-menu + cp dmenu-power-menu $out/bin/dmenu-power-menu + ''; + + meta = with lib; { + description = "Shows a Power/Lock menu with Rofi"; + homepage = "https://github.com/jluttine/rofi-power-menu"; + maintainers = with maintainers; [ ikervagyok ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rofi/default.nix b/nixpkgs/pkgs/applications/misc/rofi/default.nix new file mode 100644 index 000000000000..d47d1fe26a61 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofi/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, fetchurl +, autoreconfHook, pkg-config, libxkbcommon, pango, which, git +, cairo, libxcb, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification +, bison, flex, librsvg, check +}: + +stdenv.mkDerivation rec { + pname = "rofi-unwrapped"; + version = "1.6.1"; + + src = fetchurl { + url = "https://github.com/davatorium/rofi/releases/download/${version}/rofi-${version}.tar.gz"; + sha256 = "04glljqbf9ckkc6x6fv4x1gqmy468n1agya0kd8rxdvz24wzf7cd"; + }; + + preConfigure = '' + patchShebangs "script" + # root not present in build /etc/passwd + sed -i 's/~root/~nobody/g' test/helper-expand.c + ''; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ libxkbcommon pango cairo git bison flex librsvg check + libstartup_notification libxcb xcbutil xcbutilwm xcbutilxrm which + ]; + + doCheck = false; + + meta = with lib; { + description = "Window switcher, run dialog and dmenu replacement"; + homepage = "https://github.com/davatorium/rofi"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix b/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix new file mode 100644 index 000000000000..2f98fe164161 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix @@ -0,0 +1,42 @@ +{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, wrapGAppsHook, gdk-pixbuf, hicolor-icon-theme, theme ? null, plugins ? [], symlink-dmenu ? false }: + +symlinkJoin { + name = "rofi-${rofi-unwrapped.version}"; + + paths = [ + rofi-unwrapped.out + ] ++ (lib.forEach plugins (p: p.out)); + + nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + buildInputs = [ gdk-pixbuf ]; + + preferLocalBuild = true; + passthru.unwrapped = rofi-unwrapped; + + dontWrapGApps = true; + + postBuild = '' + rm -rf $out/bin + mkdir $out/bin + ln -s ${rofi-unwrapped}/bin/* $out/bin + rm $out/bin/rofi + + gappsWrapperArgsHook + makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \ + ''${gappsWrapperArgs[@]} \ + --prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \ + ${lib.optionalString (plugins != []) ''--prefix XDG_DATA_DIRS : ${lib.concatStringsSep ":" (lib.forEach plugins (p: "${p.out}/share"))}''} \ + ${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \ + ${lib.optionalString (plugins != []) ''--add-flags "-plugin-path $out/lib/rofi"''} + + ${lib.optionalString symlink-dmenu "ln -s ${rofi-unwrapped}/bin/rofi $out/bin/dmenu"} + + rm $out/bin/rofi-theme-selector + makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \ + --prefix XDG_DATA_DIRS : $out/share + ''; + + meta = rofi-unwrapped.meta // { + priority = (rofi-unwrapped.meta.priority or 0) - 1; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rofimoji/default.nix b/nixpkgs/pkgs/applications/misc/rofimoji/default.nix new file mode 100644 index 000000000000..d0d59af604d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rofimoji/default.nix @@ -0,0 +1,49 @@ +{ buildPythonApplication +, fetchFromGitHub +, lib + +, waylandSupport ? true +, x11Support ? true + +, configargparse +, rofi +, wl-clipboard +, wtype +, xdotool +, xsel +}: + +buildPythonApplication rec { + pname = "rofimoji"; + version = "5.1.0"; + + src = fetchFromGitHub { + owner = "fdw"; + repo = "rofimoji"; + rev = version; + sha256 = "sha256-bLV0hYDjVH11euvNHUHZFcCVywuceRljkCqyX4aANVs="; + }; + + # `rofi` and the `waylandSupport` and `x11Support` dependencies + # contain binaries needed at runtime. + propagatedBuildInputs = with lib; [ configargparse rofi ] + ++ optionals waylandSupport [ wl-clipboard wtype ] + ++ optionals x11Support [ xdotool xsel ]; + + # The 'extractors' sub-module is used for development + # and has additional dependencies. + postPatch = '' + rm -rf extractors + ''; + + # no tests executed + doCheck = false; + + meta = with lib; { + description = "A simple emoji and character picker for rofi"; + homepage = "https://github.com/fdw/rofimoji"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ justinlovinger ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rootbar/default.nix b/nixpkgs/pkgs/applications/misc/rootbar/default.nix new file mode 100644 index 000000000000..d50cefb2a718 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rootbar/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv +, fetchhg +, pkg-config +, meson +, ninja +, gtk3 +, json_c +, libpulseaudio +, wayland +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "rootbar"; + version = "unstable-2020-11-13"; + + src = fetchhg { + url = "https://hg.sr.ht/~scoopta/rootbar"; + rev = "a018e10cfc5e"; + sha256 = "sha256-t6oDIYCVaCxaYy4bS1vxESaFDNxsx5JQLQK77eVuafE="; + }; + + nativeBuildInputs = [ + meson ninja pkg-config wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + json_c + libpulseaudio + wayland + ]; + + meta = with lib; { + homepage = "https://github.com/alexays/waybar"; + description = "A bar for Wayland WMs"; + longDescription = '' + Root Bar is a bar for wlroots based wayland compositors such as sway and + was designed to address the lack of good bars for wayland. + ''; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rsclock/default.nix b/nixpkgs/pkgs/applications/misc/rsclock/default.nix new file mode 100644 index 000000000000..97a5445638ed --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rsclock/default.nix @@ -0,0 +1,22 @@ +{ lib, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "rsClock"; + version = "0.1.4"; + + src = fetchFromGitHub { + owner = "valebes"; + repo = pname; + rev = "v${version}"; + sha256 = "1i93qkz6d8sbk78i4rvx099hnn4lklp4cjvanpm9ssv8na4rqvh2"; + }; + + cargoSha256 = "1vgizkdzi9mnan4rcswyv450y6a4b9l74d0siv1ix0nnlznnqyg1"; + + meta = with lib; { + description = "A simple terminal clock written in Rust"; + homepage = "https://github.com/valebes/rsClock"; + license = licenses.mit; + maintainers = with maintainers; [valebes]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rsibreak/default.nix b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix new file mode 100644 index 000000000000..9f765793dc9a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix @@ -0,0 +1,28 @@ +{ + mkDerivation, fetchurl, lib, + extra-cmake-modules, kdoctools, + knotifyconfig, kidletime, kwindowsystem, ktextwidgets, kcrash +}: + +let + pname = "rsibreak"; + version = "0.12"; + revision = ".13"; +in mkDerivation rec { + name = "rsibreak-${version}${revision}"; + + src = fetchurl { + url = "https://download.kde.org/stable/${pname}/${version}/${name}.tar.xz"; + sha256 = "N0C+f788fq5yotSC54H2K4WDc6PnGi8Nh/vXL4v0fxo="; + }; + + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedBuildInputs = [ knotifyconfig kidletime kwindowsystem ktextwidgets kcrash ]; + + meta = with lib; { + description = "Takes care of your health and regularly breaks your work to avoid repetitive strain injury (RSI)"; + license = licenses.gpl2; + homepage = "https://www.kde.org/applications/utilities/rsibreak/"; + maintainers = with maintainers; [ vandenoever ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix b/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix new file mode 100644 index 000000000000..05d2bca99b1b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix @@ -0,0 +1,27 @@ +{ lib, writeShellScriptBin, rss-bridge, php }: + +let + phpWithExts = (php.withExtensions + ({ all, ... }: with all; [ + curl + filter + iconv + mbstring + openssl + simplexml + sqlite3 + ]) + ); + phpBin = "${phpWithExts}/bin/php"; +in (writeShellScriptBin "rss-bridge-cli" '' + ${phpBin} ${rss-bridge}/index.php "$@" +'').overrideAttrs (oldAttrs: rec { + version = rss-bridge.version; + + meta = with lib; { + description = "Command-line interface for RSS-Bridge"; + homepage = "https://github.com/RSS-Bridge/rss-bridge"; + license = licenses.unlicense; + maintainers = with maintainers; [ ymeister ]; + }; +}) diff --git a/nixpkgs/pkgs/applications/misc/rtv/default.nix b/nixpkgs/pkgs/applications/misc/rtv/default.nix new file mode 100644 index 000000000000..be539a37a301 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/rtv/default.nix @@ -0,0 +1,46 @@ +{ lib, fetchFromGitHub, python3Packages }: + +with python3Packages; +buildPythonApplication rec { + version = "1.27.0"; + pname = "rtv"; + + src = fetchFromGitHub { + owner = "michael-lazar"; + repo = "rtv"; + rev = "v${version}"; + sha256 = "1hw7xy2kjxq7y3wcibcz4l7zj8icvigialqr17l362xry0y17y5j"; + }; + + # Tests try to access network + doCheck = false; + + checkPhase = '' + py.test + ''; + + checkInputs = [ + coverage + coveralls + docopt + mock + pylint + pytest + vcrpy + ]; + + propagatedBuildInputs = [ + beautifulsoup4 + decorator + kitchen + requests + six + ]; + + meta = with lib; { + homepage = "https://github.com/michael-lazar/rtv"; + description = "Browse Reddit from your Terminal"; + license = licenses.mit; + maintainers = with maintainers; [ matthiasbeyer wedens ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/safeeyes/default.nix b/nixpkgs/pkgs/applications/misc/safeeyes/default.nix new file mode 100644 index 000000000000..179ebd33d856 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/safeeyes/default.nix @@ -0,0 +1,71 @@ +{ lib, python3Packages, gobject-introspection, libappindicator-gtk3, libnotify, gtk3, gnome, xprintidle-ng, wrapGAppsHook, gdk-pixbuf, shared-mime-info, librsvg +}: + +let inherit (python3Packages) python buildPythonApplication fetchPypi croniter; + +in buildPythonApplication rec { + pname = "safeeyes"; + version = "2.1.3"; + namePrefix = ""; + + src = fetchPypi { + inherit pname version; + sha256 = "1b5w887hivmdrkm1ydbar4nmnks6grpbbpvxgf9j9s46msj03c9x"; + }; + + buildInputs = [ + gtk3 + gobject-introspection + gnome.adwaita-icon-theme + gnome.adwaita-icon-theme + ]; + + nativeBuildInputs = [ + wrapGAppsHook + ]; + + propagatedBuildInputs = with python3Packages; [ + Babel + psutil + xlib + pygobject3 + dbus-python + croniter + + libappindicator-gtk3 + libnotify + xprintidle-ng + ]; + + # patch smartpause plugin + postPatch = '' + sed -i \ + -e 's!xprintidle!xprintidle-ng!g' \ + safeeyes/plugins/smartpause/plugin.py + + sed -i \ + -e 's!xprintidle!xprintidle-ng!g' \ + safeeyes/plugins/smartpause/config.json + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + + # safeeyes images + --prefix XDG_DATA_DIRS : "$out/lib/${python.libPrefix}/site-packages/usr/share" + ) + ''; + + doCheck = false; # no tests + + meta = { + homepage = "http://slgobinath.github.io/SafeEyes"; + description = "Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder. A Free and Open Source Linux alternative to EyeLeo"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ srghma ]; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sampler/default.nix b/nixpkgs/pkgs/applications/misc/sampler/default.nix new file mode 100644 index 000000000000..2e1b94b6b6c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sampler/default.nix @@ -0,0 +1,29 @@ +{ lib, buildGoModule, fetchFromGitHub, alsa-lib }: + +buildGoModule rec { + pname = "sampler"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "sqshq"; + repo = pname; + rev = "v${version}"; + sha256 = "1lanighxhnn28dfzils7i55zgxbw2abd6y723mq7x9wg1aa2bd0z"; + }; + + vendorSha256 = "04nywhkil5xkipcibrp6vi63rfcvqgv7yxbxmmrhqys2cdxfvazv"; + + doCheck = false; + + subPackages = [ "." ]; + + buildInputs = [ alsa-lib ]; + + meta = with lib; { + description = "Tool for shell commands execution, visualization and alerting"; + homepage = "https://sampler.dev"; + license = licenses.gpl3; + maintainers = with maintainers; [ uvnikita ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sbagen/default.nix b/nixpkgs/pkgs/applications/misc/sbagen/default.nix new file mode 100644 index 000000000000..215447ed4e9f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sbagen/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "sbagen-1.4.4"; + + src = fetchurl { + url = "https://uazu.net/sbagen/${name}.tgz"; + sha256 = "0w62yk1b0hq79kl0angma897yqa8p1ww0dwydf3zlwav333prkd2"; + }; + + postPatch = '' + patchShebangs ./mk + ''; + + buildPhase = "./mk"; + + installPhase = '' + mkdir -p $out/{bin,share/sbagen/doc} + cp -r --target-directory=$out/share/sbagen examples scripts river1.ogg river2.ogg + cp sbagen $out/bin + cp --target-directory=$out/share/sbagen/doc README.txt SBAGEN.txt theory{,2}.txt {wave,holosync,focus,TODO}.txt + ''; + + meta = { + description = "Binaural sound generator"; + homepage = "http://uazu.net/sbagen"; + license = lib.licenses.gpl2; + platforms = [ "i686-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sc-im/default.nix b/nixpkgs/pkgs/applications/misc/sc-im/default.nix new file mode 100644 index 000000000000..e299ec2ac86b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sc-im/default.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, pkg-config +, which +, bison +, gnuplot +, libxls +, libxlsxwriter +, libxml2 +, libzip +, ncurses +}: + +stdenv.mkDerivation rec { + pname = "sc-im"; + version = "0.8.2"; + + src = fetchFromGitHub { + owner = "andmarti1424"; + repo = "sc-im"; + rev = "v${version}"; + sha256 = "sha256-H+GQUpouiXc/w6GWdkSVvTXZ/Dtb7sUmBLGcpxG3Mts="; + }; + + sourceRoot = "${src.name}/src"; + + nativeBuildInputs = [ + makeWrapper + pkg-config + which + bison + ]; + + buildInputs = [ + gnuplot + libxls + libxlsxwriter + libxml2 + libzip + ncurses + ]; + + makeFlags = [ "prefix=${placeholder "out"}" ]; + + postInstall = '' + wrapProgram "$out/bin/sc-im" --prefix PATH : "${lib.makeBinPath [ gnuplot ]}" + ''; + + meta = with lib; { + homepage = "https://github.com/andmarti1424/sc-im"; + description = "An ncurses spreadsheet program for terminal"; + license = licenses.bsdOriginal; + maintainers = with maintainers; [ dotlambda ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/scli/default.nix b/nixpkgs/pkgs/applications/misc/scli/default.nix new file mode 100644 index 000000000000..3605e7c416fd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/scli/default.nix @@ -0,0 +1,52 @@ +{ lib +, python3 +, fetchFromGitHub +, dbus +, signal-cli +, xclip +}: + +python3.pkgs.buildPythonApplication rec { + pname = "scli"; + version = "0.6.4"; + + src = fetchFromGitHub { + owner = "isamert"; + repo = pname; + rev = "v${version}"; + sha256 = "0fx9ig08whl7bsii9m1h9wp361ngf1szd8v8yqglgl0x8044fwrk"; + }; + + propagatedBuildInputs = with python3.pkgs; [ + pyqrcode + urwid + urwid-readline + ]; + + dontBuild = true; + + checkPhase = '' + # scli attempts to write to these directories, make sure they're writeable + export XDG_DATA_HOME=$(mktemp -d) + export XDG_CONFIG_HOME=$(mktemp -d) + ./scli --help > /dev/null # don't spam nix-build log + test $? == 0 + ''; + + installPhase = '' + mkdir -p $out/bin + patchShebangs scli + install -m755 -D scli $out/bin/scli + ''; + + makeWrapperArgs = [ + "--prefix" "PATH" ":" (lib.makeBinPath [ dbus signal-cli xclip ]) + ]; + + meta = with lib; { + description = "Simple terminal user interface for Signal"; + homepage = "https://github.com/isamert/scli"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ alex-eyre ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sdcv/default.nix b/nixpkgs/pkgs/applications/misc/sdcv/default.nix new file mode 100644 index 000000000000..391ef82daf13 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sdcv/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, glib, gettext, readline }: + +stdenv.mkDerivation rec { + pname = "sdcv"; + version = "0.5.3"; + + src = fetchFromGitHub { + owner = "Dushistov"; + repo = "sdcv"; + rev = "v${version}"; + sha256 = "144qpl9b8r2php0zhi9b7vg6flpvdgjy6yfaipydwwhxi4wy9600"; + }; + + hardeningDisable = [ "format" ]; + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ glib gettext readline ]; + + preInstall = '' + mkdir locale + ''; + + NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__"; + + meta = with lib; { + homepage = "https://dushistov.github.io/sdcv/"; + description = "Console version of StarDict"; + maintainers = with maintainers; [ lovek323 ]; + license = licenses.gpl2; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/seatd/default.nix b/nixpkgs/pkgs/applications/misc/seatd/default.nix new file mode 100644 index 000000000000..98f278e0c3a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/seatd/default.nix @@ -0,0 +1,40 @@ +{ fetchFromSourcehut +, lib +, meson +, ninja +, pkg-config +, scdoc +, stdenv +, systemd +}: + +stdenv.mkDerivation rec { + pname = "seatd"; + version = "0.5.0"; + + src = fetchFromSourcehut { + owner = "~kennylevinsen"; + repo = "seatd"; + rev = version; + sha256 = "sha256-JwlJLHkRgSRqfQEhXbzuFTmhxfbwKVdLICPbTDbC9M0="; + }; + + outputs = [ "bin" "out" "dev" "man" ]; + + depsBuildBuild = [ pkg-config ]; + + nativeBuildInputs = [ meson ninja pkg-config scdoc ]; + + buildInputs = [ systemd ]; + + mesonFlags = [ "-Dlogind=enabled" "-Dbuiltin=enabled" ]; + + meta = with lib; { + description = "A universal seat management library"; + changelog = "https://git.sr.ht/~kennylevinsen/seatd/refs/${version}"; + homepage = "https://sr.ht/~kennylevinsen/seatd/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ emantor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sent/default.nix b/nixpkgs/pkgs/applications/misc/sent/default.nix new file mode 100644 index 000000000000..fcf021a5ac7f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sent/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, farbfeld, libX11, libXft, makeWrapper +, patches ? [] }: + +stdenv.mkDerivation rec { + pname = "sent"; + version = "1"; + + src = fetchurl { + url = "https://dl.suckless.org/tools/sent-${version}.tar.gz"; + sha256 = "0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv"; + }; + + buildInputs = [ libX11 libXft ]; + nativeBuildInputs = [ makeWrapper ]; + + # unpacking doesn't create a directory + sourceRoot = "."; + + inherit patches; + + installFlags = [ "PREFIX=$(out)" ]; + postInstall = '' + wrapProgram "$out/bin/sent" --prefix PATH : "${farbfeld}/bin" + ''; + + meta = with lib; { + description = "A simple plaintext presentation tool"; + homepage = "https://tools.suckless.org/sent/"; + license = licenses.isc; + platforms = platforms.unix; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/senv/default.nix b/nixpkgs/pkgs/applications/misc/senv/default.nix new file mode 100644 index 000000000000..6df8dc781e70 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/senv/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "senv"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "SpectralOps"; + repo = pname; + rev = "v${version}"; + sha256 = "014422sdks2xlpsgvynwibz25jg1fj5s8dcf8b1j6djgq5glhfaf"; + }; + + vendorSha256 = "05n55yf75r7i9kl56kw9x6hgmyf5bva5dzp9ni2ws0lb1389grfc"; + + subPackages = [ "." ]; + + meta = with lib; { + description = "Friends don't let friends leak secrets on their terminal window"; + homepage = "https://github.com/SpectralOps/senv"; + license = licenses.mit; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sequeler/default.nix b/nixpkgs/pkgs/applications/misc/sequeler/default.nix new file mode 100644 index 000000000000..c8a0e0175fae --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sequeler/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchFromGitHub, nix-update-script +, vala, meson, ninja, pkg-config, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils +, gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libssh2 }: + + +let + sqlGda = libgda.override { + mysqlSupport = true; + postgresSupport = true; + }; + +in stdenv.mkDerivation rec { + pname = "sequeler"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "Alecaddd"; + repo = pname; + rev = "v${version}"; + sha256 = "090plqnby2wxzr1waq5kz89w3269j363mgxwfz9g7qg55lddaahz"; + }; + + nativeBuildInputs = [ meson ninja pkg-config vala gettext wrapGAppsHook python3 desktop-file-utils ]; + + buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libssh2 ]; + + postPatch = '' + chmod +x build-aux/meson_post_install.py + patchShebangs build-aux/meson_post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Friendly SQL Client"; + longDescription = '' + Sequeler is a native Linux SQL client built in Vala and Gtk. It allows you + to connect to your local and remote databases, write SQL in a handy text + editor with language recognition, and visualize SELECT results in a + Gtk.Grid Widget. + ''; + homepage = "https://github.com/Alecaddd/sequeler"; + license = licenses.gpl3; + maintainers = [ maintainers.etu ] ++ pantheon.maintainers; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sequelpro/default.nix b/nixpkgs/pkgs/applications/misc/sequelpro/default.nix new file mode 100644 index 000000000000..dd1aca73b7db --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sequelpro/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchurl, undmg }: + +stdenv.mkDerivation { + pname = "sequel-pro"; + version = "1.1.2"; + + src = fetchurl { + url = "https://github.com/sequelpro/sequelpro/releases/download/release-1.1.2/sequel-pro-1.1.2.dmg"; + sha256 = "1il7yc3f0yzxkra27bslnmka5ycxzx0q4m3xz2j9r7iyq5izsd3v"; + }; + + buildInputs = [ undmg ]; + installPhase = '' + mkdir -p "$out/Applications/Sequel Pro.app" + cp -R . "$out/Applications/Sequel Pro.app" + chmod +x "$out/Applications/Sequel Pro.app/Contents/MacOS/Sequel Pro" + ''; + + meta = { + description = "MySQL database management for macOS"; + homepage = "http://www.sequelpro.com/"; + license = lib.licenses.mit; + platforms = lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sfm/default.nix b/nixpkgs/pkgs/applications/misc/sfm/default.nix new file mode 100644 index 000000000000..1d9dc3811aae --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sfm/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, writeText, conf ? null }: + +stdenv.mkDerivation rec { + pname = "sfm"; + version = "0.2"; + + src = fetchFromGitHub { + owner = "afify"; + repo = pname; + rev = "v${version}"; + hash = "sha256-DwXKrSqcebNI5N9REXyMV16W2kr72IH9+sKSVehc5zw="; + }; + + configFile = lib.optionalString (conf!=null) (writeText "config.def.h" conf); + + postPatch = lib.optionalString (conf!=null) "cp ${configFile} config.def.h"; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Simple file manager"; + homepage = "https://github.com/afify/sfm"; + license = licenses.isc; + platforms = platforms.unix; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/shfm/default.nix b/nixpkgs/pkgs/applications/misc/shfm/default.nix new file mode 100644 index 000000000000..602151075fc7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/shfm/default.nix @@ -0,0 +1,38 @@ +{ lib +, stdenv +, fetchFromGitHub +}: + +stdenv.mkDerivation rec { + pname = "shfm"; + version = "0.4.2"; + + src = fetchFromGitHub { + owner = "dylanaraps"; + repo = pname; + rev = version; + hash = "sha256-ilVrUFfyzOZgjbBTqlHA9hLaTHw1xHFo1Y/tjXygNEs="; + }; + + postPatch = '' + patchShebangs ./shfm + ''; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + install -D shfm --target-directory $out/bin/ + install -D README --target-directory $out/share/doc/${pname}/ + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/dylanaraps/shfm"; + description = "POSIX-shell based file manager"; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sidequest/default.nix b/nixpkgs/pkgs/applications/misc/sidequest/default.nix new file mode 100644 index 000000000000..c83cd7726591 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sidequest/default.nix @@ -0,0 +1,69 @@ +{ stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }: + let + pname = "sidequest"; + version = "0.10.19"; + + desktopItem = makeDesktopItem rec { + name = "SideQuest"; + exec = "SideQuest"; + desktopName = name; + genericName = "VR App Store"; + categories = "Settings;PackageManager;"; + }; + + sidequest = stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/SideQuestVR/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz"; + sha256 = "14zqp12nigc4kv6hppyx2s59mmriimnzczay4xi3vh7zcw207px2"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildCommand = '' + mkdir -p "$out/lib/SideQuest" "$out/bin" + tar -xJf "$src" -C "$out/lib/SideQuest" --strip-components 1 + + ln -s "$out/lib/SideQuest/sidequest" "$out/bin" + + fixupPhase + + # mkdir -p "$out/share/applications" + # ln -s "${desktopItem}/share/applications/*" "$out/share/applications" + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${atomEnv.libPath}/lib:${lib.makeLibraryPath [libuuid at-spi2-atk]}:$out/lib/SideQuest" \ + "$out/lib/SideQuest/sidequest" + ''; + }; + in buildFHSUserEnv { + name = "SideQuest"; + + passthru = { + inherit pname version; + + meta = with lib; { + description = "An open app store and side-loading tool for Android-based VR devices such as the Oculus Go, Oculus Quest or Moverio BT 300"; + homepage = "https://github.com/SideQuestVR/SideQuest"; + downloadPage = "https://github.com/SideQuestVR/SideQuest/releases"; + license = licenses.mit; + maintainers = with maintainers; [ joepie91 rvolosatovs ]; + platforms = [ "x86_64-linux" ]; + }; + }; + + targetPkgs = pkgs: [ + sidequest + # Needed in the environment on runtime, to make QuestSaberPatch work + icu openssl zlib + ]; + + extraInstallCommands = '' + mkdir -p "$out/share/applications" + ln -s ${desktopItem}/share/applications/* "$out/share/applications" + ''; + + runScript = "sidequest"; + } diff --git a/nixpkgs/pkgs/applications/misc/sigal/default.nix b/nixpkgs/pkgs/applications/misc/sigal/default.nix new file mode 100644 index 000000000000..20b944efd5d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sigal/default.nix @@ -0,0 +1,44 @@ +{ lib, python3Packages, ffmpeg }: + +python3Packages.buildPythonApplication rec { + version = "2.2"; + pname = "sigal"; + + src = python3Packages.fetchPypi { + inherit version pname; + sha256 = "sha256-49XsNdZuicsiYJZuF1UdqMA4q33Ly/Ug/Hc4ybJKmPo="; + }; + + disabled = !(python3Packages.pythonAtLeast "3.6"); + + propagatedBuildInputs = with python3Packages; [ + # install_requires + jinja2 + markdown + pillow + pilkit + click + blinker + natsort + # extras_require + brotli + feedgenerator + zopfli + cryptography + ]; + + checkInputs = [ + ffmpeg + ] ++ (with python3Packages; [ + pytestCheckHook + ]); + + makeWrapperArgs = [ "--prefix PATH : ${ffmpeg}/bin" ]; + + meta = with lib; { + description = "Yet another simple static gallery generator"; + homepage = "http://sigal.saimon.org/en/latest/index.html"; + license = licenses.mit; + maintainers = with maintainers; [ domenkozar matthiasbeyer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/signumone-ks/default.nix b/nixpkgs/pkgs/applications/misc/signumone-ks/default.nix new file mode 100644 index 000000000000..eb0af95d58d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/signumone-ks/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, + atk, ffmpeg, gdk-pixbuf, gtk3, libXtst }: + +stdenv.mkDerivation rec { + pname = "signumone-ks"; + version = "3.1.3"; + + src = fetchurl { + url = "https://cdn-dist.signum.one/${version}/${pname}-${version}.deb"; + sha256 = "00wlya3kb6qac2crflm86km9r48r29bvngjq1wgzj9w2xv0q32b9"; + }; + + # Necessary to avoid using multiple ffmpeg and gtk libs + autoPatchelfIgnoreMissingDeps = true; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + ]; + + buildInputs = [ + atk gdk-pixbuf ffmpeg + gtk3 libXtst + ]; + + libPath = lib.makeLibraryPath buildInputs; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + installPhase = '' + DESKTOP_PATH=$out/share/applications/signumone-ks.desktop + + mkdir -p $out/bin $out/share/applications + mv opt/SignumOne-KS/SignumOne-KS.desktop $DESKTOP_PATH + mv opt $out + + substituteInPlace $DESKTOP_PATH --replace 'Exec=/opt/SignumOne-KS' Exec=$out/bin + substituteInPlace $DESKTOP_PATH --replace 'Icon=' Icon=$out + + makeWrapper $out/opt/SignumOne-KS/SignumOne-KS \ + $out/bin/SignumOne-KS \ + --prefix LD_LIBRARY_PATH : ${libPath} + ''; + + meta = with lib; { + description = "Digital signature tool for Costa Rican electronic invoicing"; + homepage = "https://signum.one/download.html"; + license = licenses.unfree; + maintainers = with maintainers; [ wolfangaukang ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/simplenote/default.nix b/nixpkgs/pkgs/applications/misc/simplenote/default.nix new file mode 100644 index 000000000000..675fe9cf1a58 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/simplenote/default.nix @@ -0,0 +1,97 @@ +{ atomEnv +, autoPatchelfHook +, dpkg +, fetchurl +, makeDesktopItem +, makeWrapper +, lib +, stdenv +, udev +, wrapGAppsHook +}: + +let + inherit (stdenv.hostPlatform) system; + + throwSystem = throw "Unsupported system: ${system}"; + + pname = "simplenote"; + + version = "2.9.0"; + + sha256 = { + x86_64-linux = "sha256-uwd9fYqZepJ/BBttprqkJhswqMepGsHDTd5Md9gjI68="; + }.${system} or throwSystem; + + meta = with lib; { + description = "The simplest way to keep notes"; + homepage = "https://github.com/Automattic/simplenote-electron"; + license = licenses.gpl2; + maintainers = with maintainers; [ + kiwi + ]; + platforms = [ + "x86_64-linux" + ]; + }; + + linux = stdenv.mkDerivation rec { + inherit pname version meta; + + src = fetchurl { + url = + "https://github.com/Automattic/simplenote-electron/releases/download/" + + "v${version}/Simplenote-linux-${version}-amd64.deb"; + inherit sha256; + }; + + desktopItem = makeDesktopItem { + categories = "Development"; + comment = "Simplenote for Linux"; + desktopName = "Simplenote"; + exec = "simplenote %U"; + icon = "simplenote"; + name = "simplenote"; + startupNotify = "true"; + type = "Application"; + }; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + dontWrapGApps = true; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + wrapGAppsHook + ]; + + buildInputs = atomEnv.packages; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p "$out/bin" + cp -R "opt" "$out" + cp -R "usr/share" "$out/share" + chmod -R g-w "$out" + + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* "$out/share/applications" + ''; + + runtimeDependencies = [ + (lib.getLib udev) + ]; + + postFixup = '' + makeWrapper $out/opt/Simplenote/simplenote $out/bin/simplenote \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }" \ + "''${gappsWrapperArgs[@]}" + ''; + }; + +in +linux diff --git a/nixpkgs/pkgs/applications/misc/skytemple/default.nix b/nixpkgs/pkgs/applications/misc/skytemple/default.nix new file mode 100644 index 000000000000..d341c9821996 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/skytemple/default.nix @@ -0,0 +1,46 @@ +{ lib, fetchFromGitHub, gobject-introspection, gtk3, gtksourceview3, webkitgtk, wrapGAppsHook, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "skytemple"; + version = "1.2.5"; + + src = fetchFromGitHub { + owner = "SkyTemple"; + repo = pname; + rev = version; + sha256 = "0780517gjc97wb2g67pwdv3fz3sqxm2ica1hdbrhqm4rfbnb28xr"; + }; + + buildInputs = [ + gobject-introspection + gtk3 + gtksourceview3 + # webkitgkt is used for rendering interactive statistics graph which + # can be seen by opening a ROM, entering Pokemon section, selecting + # any Pokemon, and clicking Stats and Moves tab. + webkitgtk + ]; + nativeBuildInputs = [ gobject-introspection wrapGAppsHook ]; + propagatedBuildInputs = with python3Packages; [ + natsort + packaging + pycairo + pygal + pypresence + setuptools + skytemple-dtef + skytemple-eventserver + skytemple-files + skytemple-icons + skytemple-ssb-debugger + ]; + + doCheck = false; # there are no tests + + meta = with lib; { + homepage = "https://github.com/SkyTemple/skytemple"; + description = "ROM hacking tool for Pokémon Mystery Dungeon Explorers of Sky"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ xfix ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix b/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix new file mode 100644 index 000000000000..a8a0bfb1e10a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, pillow +, pyside2 +, numpy +, pyphotonfile +, shiboken2 +, which +}: +let + version = "0.1.3"; +in + buildPythonApplication rec { + pname = "sl1-to-photon"; + inherit version; + + src = fetchFromGitHub { + owner = "fookatchu"; + repo = "SL1toPhoton"; + rev = "v${version}"; + sha256 = "1hmb74rcky3nax4lxn7pw6lcd5a66fdbwrm11c84zb31xb51bakw"; + }; + + propagatedBuildInputs = [ pyphotonfile pillow numpy pyside2 shiboken2 ]; + + format = "other"; + + installPhase = '' + install -D -m 0755 SL1_to_Photon.py $out/bin/${pname} + sed -i '1i#!/usr/bin/env python' $out/bin/${pname} + ''; + + meta = with lib; { + maintainers = [ maintainers.cab404 ]; + license = licenses.gpl3Plus; + description = "Tool for converting Slic3r PE's SL1 files to Photon files for the Anycubic Photon 3D-Printer"; + homepage = "https://github.com/fookatchu/SL1toPhoton"; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/slade/default.nix b/nixpkgs/pkgs/applications/misc/slade/default.nix new file mode 100644 index 000000000000..e9ba7b2a8f31 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/slade/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, wxGTK, gtk2, sfml, fluidsynth, curl, freeimage, ftgl, glew, zip }: + +stdenv.mkDerivation rec { + pname = "slade"; + version = "3.1.1.5"; + + src = fetchFromGitHub { + owner = "sirjuddington"; + repo = "SLADE"; + rev = version; + sha256 = "0mdn59jm6ab4cdh99bgvadif3wdlqmk5mq635gg7krq35njgw6f6"; + }; + + nativeBuildInputs = [ cmake pkg-config zip ]; + buildInputs = [ wxGTK gtk2 sfml fluidsynth curl freeimage ftgl glew ]; + + meta = with lib; { + description = "Doom editor"; + homepage = "http://slade.mancubus.net/"; + license = licenses.gpl2; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/slade/git.nix b/nixpkgs/pkgs/applications/misc/slade/git.nix new file mode 100644 index 000000000000..f263c4ee74dd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/slade/git.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchFromGitHub +, cmake +, pkg-config +, wxGTK +, sfml +, fluidsynth +, curl +, freeimage +, ftgl +, glew +, zip +, lua +, fmt +, mpg123 +}: + +stdenv.mkDerivation { + name = "slade-git-3.2.0.2021.05.13"; + + src = fetchFromGitHub { + owner = "sirjuddington"; + repo = "SLADE"; + rev = "d2e249c89062a44c912a9b86951526edc8735ba0"; + sha256 = "08dsvx7m7c97jm8fxzivmi1fr47hj53y0lv57clqc35bh2gi62dg"; + }; + + cmakeFlags = [ + "-DwxWidgets_CONFIG_EXECUTABLE=${wxGTK}/bin/wx-config" + "-DWX_GTK3=OFF" + "-DNO_WEBVIEW=1" + ]; + nativeBuildInputs = [ cmake pkg-config zip ]; + buildInputs = [ wxGTK wxGTK.gtk sfml fluidsynth curl freeimage ftgl glew lua fmt mpg123 ]; + + meta = with lib; { + description = "Doom editor"; + homepage = "http://slade.mancubus.net/"; + license = licenses.gpl2Plus; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ ertes ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix b/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix new file mode 100644 index 000000000000..bf8a9efb9fd0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, mkDerivation, fetchgit, zlib, libGLU, libX11, qtbase, qtwebkit, qtserialport, wrapQtAppsHook }: + +let + name = "sleepyhead-${version}"; + version = "1.0.0-beta-git"; +in mkDerivation { + inherit name; + + src = fetchgit { + url = "https://gitlab.com/sleepyhead/sleepyhead-code.git"; + rev = "9e2329d8bca45693231b5e3dae80063717c24578"; + sha256 = "0448z8gyaxpgpnksg34lzmffj36jdpm0ir4xxa5gvzagkx0wk07h"; + }; + + buildInputs = [ + qtbase qtwebkit qtserialport + zlib + libGLU + libX11 + ]; + + nativeBuildInputs = [ wrapQtAppsHook ]; + + patchPhase = '' + patchShebangs configure + ''; + + installPhase = if stdenv.isDarwin then '' + mkdir -p $out/Applications + cp -r sleepyhead/SleepyHead.app $out/Applications + '' else '' + mkdir -p $out/bin + cp sleepyhead/SleepyHead $out/bin + ''; + + postFixup = lib.optionalString stdenv.isDarwin '' + wrapQtApp "$out/Applications/SleepyHead.app/Contents/MacOS/SleepyHead" + ''; + + meta = with lib; { + homepage = "https://sleepyhead.jedimark.net/"; + description = "Review and explore data produced by CPAP and related machines"; + longDescription = '' + SleepyHead is cross platform, opensource sleep tracking program for reviewing CPAP and Oximetry data, which are devices used in the treatment of Sleep Disorders like Obstructive Sleep Apnea. + ''; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = [ maintainers.krav ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/slic3r/boost-compile-error.patch b/nixpkgs/pkgs/applications/misc/slic3r/boost-compile-error.patch new file mode 100644 index 000000000000..4dbdb85f743d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/slic3r/boost-compile-error.patch @@ -0,0 +1,12 @@ +diff --git a/xs/src/libslic3r/GCodeSender.hpp b/xs/src/libslic3r/GCodeSender.hpp +index cc0b2983..0f39f5a3 100644 +--- a/xs/src/libslic3r/GCodeSender.hpp ++++ b/xs/src/libslic3r/GCodeSender.hpp +@@ -9,6 +9,7 @@ + #include <boost/asio.hpp> + #include <boost/bind.hpp> + #include <boost/thread.hpp> ++#include <boost/core/noncopyable.hpp> + + namespace Slic3r { + diff --git a/nixpkgs/pkgs/applications/misc/slic3r/default.nix b/nixpkgs/pkgs/applications/misc/slic3r/default.nix new file mode 100644 index 000000000000..49ff51c2f485 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/slic3r/default.nix @@ -0,0 +1,90 @@ +{ lib, stdenv, fetchgit, perl, makeWrapper +, makeDesktopItem, which, perlPackages, boost +}: + +stdenv.mkDerivation rec { + version = "1.3.0"; + pname = "slic3r"; + + src = fetchgit { + url = "git://github.com/alexrj/Slic3r"; + rev = version; + sha256 = "1pg4jxzb7f58ls5s8mygza8kqdap2c50kwlsdkf28bz1xi611zbi"; + }; + + buildInputs = + [boost] ++ + (with perlPackages; [ perl makeWrapper which + EncodeLocale MathClipper ExtUtilsXSpp + MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo + IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus ImportInto XMLSAX + ExtUtilsMakeMaker OpenGL WxGLCanvas ModuleBuild LWP + ExtUtilsCppGuess ModuleBuildWithXSpp ExtUtilsTypemapsDefault + DevelChecklib locallib + ]); + + desktopItem = makeDesktopItem { + name = "slic3r"; + exec = "slic3r"; + icon = "slic3r"; + comment = "G-code generator for 3D printers"; + desktopName = "Slic3r"; + genericName = "3D printer tool"; + categories = "Development;"; + }; + + prePatch = '' + # In nix ioctls.h isn't available from the standard kernel-headers package + # on other distributions. As the copy in glibc seems to be identical to the + # one in the kernel, we use that one instead. + sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' xs/src/libslic3r/GCodeSender.cpp + ''; + + # note the boost-compile-error is fixed in + # https://github.com/slic3r/Slic3r/commit/90f108ae8e7a4315f82e317f2141733418d86a68 + # this patch can be probably be removed in the next version after 1.3.0 + patches = lib.optional (lib.versionAtLeast boost.version "1.56.0") ./boost-compile-error.patch; + + buildPhase = '' + export SLIC3R_NO_AUTO=true + export LD=$CXX + export PERL5LIB="./xs/blib/arch/:./xs/blib/lib:$PERL5LIB" + + substituteInPlace Build.PL \ + --replace "0.9918" "0.9923" \ + --replace "eval" "" + + pushd xs + perl Build.PL + perl Build + popd + + perl Build.PL --gui + ''; + + installPhase = '' + mkdir -p "$out/share/slic3r/" + cp -r * "$out/share/slic3r/" + wrapProgram "$out/share/slic3r/slic3r.pl" \ + --prefix PERL5LIB : "$out/share/slic3r/xs/blib/arch:$out/share/slic3r/xs/blib/lib:$PERL5LIB" + mkdir -p "$out/bin" + ln -s "$out/share/slic3r/slic3r.pl" "$out/bin/slic3r" + mkdir -p "$out/share/pixmaps/" + ln -s "$out/share/slic3r/var/Slic3r.png" "$out/share/pixmaps/slic3r.png" + mkdir -p "$out/share/applications" + cp "$desktopItem"/share/applications/* "$out/share/applications/" + ''; + + meta = with lib; { + description = "G-code generator for 3D printers"; + longDescription = '' + Slic3r is the tool you need to convert a digital 3D model into printing + instructions for your 3D printer. It cuts the model into horizontal + slices (layers), generates toolpaths to fill them and calculates the + amount of material to be extruded.''; + homepage = "https://slic3r.org/"; + license = licenses.agpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/slides/default.nix b/nixpkgs/pkgs/applications/misc/slides/default.nix new file mode 100644 index 000000000000..491e889f242d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/slides/default.nix @@ -0,0 +1,34 @@ +{ lib, buildGoModule, fetchFromGitHub, bash, go, python3, ruby }: + +buildGoModule rec { + pname = "slides"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "maaslalani"; + repo = "slides"; + rev = "v${version}"; + sha256 = "1cywqrqj199hmx532h4vn0j17ypswq2zkmv8qpxpayvjwimx4pwk"; + }; + + checkInputs = [ + bash + go + python3 + ruby + ]; + + vendorSha256 = "0y6fz9rw702mji571k0gp4kpfx7xbv7rvlnmpfjygy6lmp7wga6f"; + + ldflags = [ + "-s" "-w" + "-X=main.Version=${version}" + ]; + + meta = with lib; { + description = "Terminal based presentation tool"; + homepage = "https://github.com/maaslalani/slides"; + license = licenses.mit; + maintainers = with maintainers; [ maaslalani ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/slmenu/default.nix b/nixpkgs/pkgs/applications/misc/slmenu/default.nix new file mode 100644 index 000000000000..16145a915feb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/slmenu/default.nix @@ -0,0 +1,30 @@ +{lib, stdenv, fetchhg}: +let + s = + rec { + baseName = "slmenu"; + version = "hg-${date}"; + date = "2012-02-01"; + name = "${baseName}-${version}"; + url = "https://bitbucket.org/rafaelgg/slmenu/"; + rev = "7e74fa5db73e8b018da48d50dbbaf11cb5c62d13"; + sha256 = "0zb7mm8344d3xmvrl62psazcabfk75pp083jqkmywdsrikgjagv6"; + }; + buildInputs = [ + ]; +in +stdenv.mkDerivation { + inherit (s) name version; + inherit buildInputs; + src = fetchhg { + inherit (s) url sha256; + }; + makeFlags = [ "PREFIX=$(out)" ]; + meta = { + inherit (s) version; + description = "A console dmenu-like tool"; + license = lib.licenses.mit; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/slstatus/default.nix b/nixpkgs/pkgs/applications/misc/slstatus/default.nix new file mode 100644 index 000000000000..613d2f8e78bf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/slstatus/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchgit, pkg-config, writeText, libX11, conf ? null, patches ? [] }: + +with lib; + +stdenv.mkDerivation rec { + pname = "slstatus"; + version = "unstable-2019-02-16"; + + src = fetchgit { + url = "https://git.suckless.org/slstatus"; + rev = "b14e039639ed28005fbb8bddeb5b5fa0c93475ac"; + sha256 = "0kayyhpmppybhwndxgabw48wsk9v8x9xdb05xrly9szkw3jbvgw4"; + }; + + configFile = optionalString (conf!=null) (writeText "config.def.h" conf); + preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h"; + + inherit patches; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libX11 ]; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = { + homepage = "https://tools.suckless.org/slstatus/"; + description = "status monitor for window managers that use WM_NAME like dwm"; + license = licenses.isc; + maintainers = with maintainers; [ oxzi ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/smos/default.nix b/nixpkgs/pkgs/applications/misc/smos/default.nix new file mode 100644 index 000000000000..7d994a749bd4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/smos/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv +, fetchurl +, unzip +}: + +stdenv.mkDerivation rec { + name = "smos-${version}"; + version = "0.1.0"; + + src = fetchurl { + url = "https://github.com/NorfairKing/smos/releases/download/v${version}/smos-release.zip"; + sha256 = "sha256:07yavk7xl92yjwwjdig90yq421n8ldv4fjfw7izd4hfpzw849a12"; + }; + + phases = [ "unpackPhase" ]; + unpackCmd = "${unzip}/bin/unzip -d $out $curSrc"; + sourceRoot = "."; + + meta = with lib; { + description = "A comprehensive self-management system"; + homepage = https://smos.online; + license = licenses.mit; + maintainers = with maintainers; [ norfair ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix b/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix new file mode 100644 index 000000000000..2c6343159336 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix @@ -0,0 +1,49 @@ +{ lib, fetchFromGitHub, python3, python3Packages +, gnome, gtk3, wrapGAppsHook, gtksourceview3, snapper +, gobject-introspection +}: + +python3Packages.buildPythonApplication rec { + pname = "snapper-gui"; + version = "2020-10-20"; + + src = fetchFromGitHub { + owner = "ricardomv"; + repo = pname; + rev = "f0c67abe0e10cc9e2ebed400cf80ecdf763fb1d1"; + sha256 = "13j4spbi9pxg69zifzai8ifk4207sn0vwh6vjqryi0snd5sylh7h"; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + + buildInputs = [ + python3 + gobject-introspection + gnome.adwaita-icon-theme + ]; + + doCheck = false; # it doesn't have any tests + + propagatedBuildInputs = with python3Packages; [ + gtk3 + dbus-python + pygobject3 + setuptools + gtksourceview3 + snapper + ]; + + meta = with lib; { + description = "Graphical interface for snapper"; + longDescription = '' + A graphical user interface for the tool snapper for Linux filesystem + snapshot management. It can compare snapshots and revert differences between snapshots. + In simple terms, this allows root and non-root users to view older versions of files + and revert changes. Currently works with btrfs, ext4 and thin-provisioned LVM volumes. + ''; + homepage = "https://github.com/ricardomv/snapper-gui"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ ahuzik ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/snowmachine/default.nix b/nixpkgs/pkgs/applications/misc/snowmachine/default.nix new file mode 100644 index 000000000000..022d75030d0a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/snowmachine/default.nix @@ -0,0 +1,24 @@ +{ buildPythonPackage, lib, click, colorama, fetchPypi, setuptools-git }: + +buildPythonPackage rec { + pname = "snowmachine"; + version = "1.0.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "1v385hhxy2a8vx5p0fhn0di8l4qfpb0a86j6nwsg0aw6ngb09qf1"; + }; + + buildInputs = [ setuptools-git ]; + propagatedBuildInputs = [ click colorama ]; + + doCheck = false; + pythonImportsCheck = [ "snowmachine" ]; + + meta = with lib; { + description = "A python script that will make your terminal snow"; + homepage = "https://github.com/sontek/snowmachine"; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ djanatyn ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/snowsql/default.nix b/nixpkgs/pkgs/applications/misc/snowsql/default.nix new file mode 100644 index 000000000000..531bc4893541 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/snowsql/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv +, fetchurl +, rpmextract +, patchelf +, makeWrapper +, openssl +}: + +stdenv.mkDerivation rec { + pname = "snowsql"; + majorVersion = "1.2"; + version = "${majorVersion}.9"; + + src = fetchurl { + url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${majorVersion}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm"; + sha256 = "1k9dyr4vyqivpg054kbvs0jdwhbqbmlp9lsyxgazdsviw8ch70c8"; + }; + + nativeBuildInputs = [ rpmextract makeWrapper ]; + + libPath = lib.makeLibraryPath [ openssl ]; + + buildCommand = '' + mkdir -p $out/bin/ + cd $out + rpmextract $src + rm -R usr/bin + mv usr/* $out + rmdir usr + + ${patchelf}/bin/patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + lib64/snowflake/snowsql/snowsql + + makeWrapper $out/lib64/snowflake/snowsql/snowsql $out/bin/snowsql \ + --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/lib64/snowflake/snowsql \ + ''; + + meta = with lib; { + description = "Command line client for the Snowflake database"; + homepage = "https://www.snowflake.com"; + license = licenses.unfree; + maintainers = with maintainers; [ andehen ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/solaar/default.nix b/nixpkgs/pkgs/applications/misc/solaar/default.nix new file mode 100644 index 000000000000..b6059ac1a71b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/solaar/default.nix @@ -0,0 +1,59 @@ +{ fetchFromGitHub, lib, gobject-introspection, gtk3, python3Packages }: + +# Although we copy in the udev rules here, you probably just want to use +# logitech-udev-rules instead of adding this to services.udev.packages on NixOS +python3Packages.buildPythonApplication rec { + pname = "solaar"; + version = "1.0.6"; + + src = fetchFromGitHub { + owner = "pwr-Solaar"; + repo = "Solaar"; + rev = version; + sha256 = "sha256-Ys0005hIQ+fT4oMeU5iFtbLNqn1WM6iLdIKGwdyn7BM="; + }; + + propagatedBuildInputs = with python3Packages; [ + gobject-introspection + gtk3 + psutil + pygobject3 + pyudev + pyyaml + xlib + ]; + + makeWrapperArgs = [ + "--prefix PYTHONPATH : $PYTHONPATH" + "--prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH" + ]; + + # the -cli symlink is just to maintain compabilility with older versions where + # there was a difference between the GUI and CLI versions. + postInstall = '' + ln -s $out/bin/solaar $out/bin/solaar-cli + + install -Dm444 -t $out/etc/udev/rules.d rules.d/*.rules + ''; + + # No tests + doCheck = false; + + meta = with lib; { + description = "Linux devices manager for the Logitech Unifying Receiver"; + longDescription = '' + Solaar is a Linux manager for many Logitech keyboards, mice, and trackpads that + connect wirelessly to a USB Unifying, Lightspeed, or Nano receiver, connect + directly via a USB cable, or connect via Bluetooth. Solaar does not work with + peripherals from other companies. + + Solaar can be used as a GUI application or via its command-line interface. + + This tool requires either to be run with root/sudo or alternatively to have the udev rules files installed. On NixOS this can be achieved by setting `hardware.logitech.wireless.enable`. + ''; + homepage = "https://pwr-solaar.github.io/Solaar/"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ spinus ysndr ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/spacefm/default.nix b/nixpkgs/pkgs/applications/misc/spacefm/default.nix new file mode 100644 index 000000000000..3d9f72048754 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spacefm/default.nix @@ -0,0 +1,61 @@ +{ pkgs, fetchFromGitHub, lib, stdenv, gtk3, udev, desktop-file-utils +, shared-mime-info, intltool, pkg-config, wrapGAppsHook, ffmpegthumbnailer +, jmtpfs, ifuseSupport ? false, ifuse ? null, lsof, udisks2 }: + +stdenv.mkDerivation rec { + pname = "spacefm"; + version = "1.0.6"; + + src = fetchFromGitHub { + owner = "IgnorantGuru"; + repo = "spacefm"; + rev = version; + sha256 = "089r6i40lxcwzp60553b18f130asspnzqldlpii53smz52kvpirx"; + }; + + patches = [ + # fix compilation error due to missing include + ./glibc-fix.patch + + # restrict GDK backends to only X11 + ./x11-only.patch + ]; + + configureFlags = [ + "--with-bash-path=${pkgs.bash}/bin/bash" + ]; + + preConfigure = '' + configureFlags="$configureFlags --sysconfdir=$out/etc" + ''; + + postInstall = '' + rm -f $out/etc/spacefm/spacefm.conf + ln -s /etc/spacefm/spacefm.conf $out/etc/spacefm/spacefm.conf + ''; + + preFixup = '' + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share") + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + gtk3 udev desktop-file-utils shared-mime-info intltool + wrapGAppsHook ffmpegthumbnailer jmtpfs lsof udisks2 + ] ++ (if ifuseSupport then [ ifuse ] else []); + # Introduced because ifuse doesn't build due to CVEs in libplist + # Revert when libplist builds again… + + meta = with lib; { + description = "A multi-panel tabbed file manager"; + longDescription = '' + Multi-panel tabbed file and desktop manager for Linux + with built-in VFS, udev- or HAL-based device manager, + customizable menu system, and bash integration + ''; + homepage = "http://ignorantguru.github.io/spacefm/"; + platforms = platforms.linux; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ jagajaga obadz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/spacefm/glibc-fix.patch b/nixpkgs/pkgs/applications/misc/spacefm/glibc-fix.patch new file mode 100644 index 000000000000..b8e9f1e9195e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spacefm/glibc-fix.patch @@ -0,0 +1,12 @@ +diff --git a/src/main.c b/src/main.c +index 27f5614..2b45708 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -23,6 +23,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + #include <sys/un.h> ++#include <sys/sysmacros.h> + + #include <signal.h> + diff --git a/nixpkgs/pkgs/applications/misc/spacefm/x11-only.patch b/nixpkgs/pkgs/applications/misc/spacefm/x11-only.patch new file mode 100644 index 000000000000..1b2f9f145824 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spacefm/x11-only.patch @@ -0,0 +1,10 @@ +--- a/src/main.c 2021-02-09 13:54:32.847364236 +0100 ++++ b/src/main.c 2021-02-09 10:41:51.541203271 +0100 +@@ -1350,6 +1351,7 @@ + vfs_file_monitor_clean(); + return 1; + } ++ gdk_set_allowed_backends("x11"); + gtk_init (&argc, &argv); + int ret = custom_dialog_init( argc, argv ); + if ( ret != 0 ) diff --git a/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix b/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix new file mode 100644 index 000000000000..697d13c8c0e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix @@ -0,0 +1,29 @@ +{ stdenv, lib, libspnav, libX11, mesa_glu }: + +stdenv.mkDerivation { + pname = "spacenav-cube-example"; + version = libspnav.version; + + src = libspnav.src; + + sourceRoot = "source/examples/cube"; + + buildInputs = [ libX11 mesa_glu libspnav ]; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp cube $out/bin/spacenav-cube-example + runHook postInstall + ''; + + meta = with lib; { + homepage = "http://spacenav.sourceforge.net/"; + description = "An example application to test the spacenavd driver"; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = with maintainers; [ sohalt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/speedread/default.nix b/nixpkgs/pkgs/applications/misc/speedread/default.nix new file mode 100644 index 000000000000..a7b9cb591a5e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/speedread/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, perl }: + +stdenv.mkDerivation rec { + name = "speedread-unstable-2016-09-21"; + + src = fetchFromGitHub { + owner = "pasky"; + repo = "speedread"; + rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd"; + sha256 = "1h94jx3v18fdlc64lfmj2g5x63fjyqb8c56k5lihl7bva0xgdkxd"; + }; + + buildInputs = [ perl ]; + + installPhase = '' + install -m755 -D speedread $out/bin/speedread + ''; + + meta = with lib; { + description = "A simple terminal-based open source Spritz-alike"; + longDescription = '' + Speedread is a command line filter that shows input text as a + per-word rapid serial visual presentation aligned on optimal + reading points. This allows reading text at a much more rapid + pace than usual as the eye can stay fixed on a single place. + ''; + homepage = src.meta.homepage; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.oxij ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix b/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix new file mode 100644 index 000000000000..e20b95922f9a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spicetify-cli/default.nix @@ -0,0 +1,32 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "spicetify-cli"; + version = "2.2.6"; + + src = fetchFromGitHub { + owner = "khanhas"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-9g6rkSDjE7x/YprPX0dkzqgpjgED5qBpUUQoVv6fGkk="; + }; + + vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs="; + + # used at runtime, but not installed by default + postInstall = '' + cp -r ${src}/jsHelper $out/bin/jsHelper + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/spicetify-cli --help > /dev/null + ''; + + meta = with lib; { + description = "Command-line tool to customize Spotify client"; + homepage = "https://github.com/khanhas/spicetify-cli/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ jonringer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/spnavcfg/configure-cfgfile-path.patch b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-cfgfile-path.patch new file mode 100644 index 000000000000..22db2ee66ce3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-cfgfile-path.patch @@ -0,0 +1,100 @@ +diff --git a/back.c b/back.c +index c1810dc..75416fb 100644 +--- a/back.c ++++ b/back.c +@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + #include "cfgfile.h" + #include "cmd.h" + +-#define CFGFILE "/etc/spnavrc" + + int get_daemon_pid(void); + static int update_cfg(void); +@@ -127,7 +126,7 @@ int get_daemon_pid(void) + + static int update_cfg(void) + { +- if(write_cfg(CFGFILE, &cfg) == -1) { ++ if(write_cfg(cfg_path(), &cfg) == -1) { + fprintf(stderr, "failed to update config file\n"); + return -1; + } +diff --git a/cfgfile.c b/cfgfile.c +index 5a9c502..2ea323d 100644 +--- a/cfgfile.c ++++ b/cfgfile.c +@@ -22,12 +22,40 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + #include <ctype.h> + #include <errno.h> + #include <fcntl.h> ++#include <unistd.h> ++#include <sys/types.h> ++#include <pwd.h> + #include "cfgfile.h" + + enum {TX, TY, TZ, RX, RY, RZ}; + + static const int def_axmap[] = {0, 2, 1, 3, 5, 4}; + static const int def_axinv[] = {0, 1, 1, 0, 1, 1}; ++static char* config_path; ++ ++char* cfg_path() ++{ ++ char* buf; ++ if((buf = getenv("XDG_CONFIG_HOME"))) { ++ if(config_path == NULL) { ++ config_path = malloc(strlen(buf) + strlen("/spnavrc") + 1); ++ if ( config_path != NULL) { ++ sprintf(config_path, "%s/spnavrc", buf); ++ } ++ }; ++ return config_path; ++ } else { ++ if (!(buf = getenv("HOME"))) { ++ struct passwd *pw = getpwuid(getuid()); ++ buf = pw->pw_dir; ++ } ++ config_path = malloc(strlen(buf) + strlen("/.config/spnavrc") + 1); ++ if ( config_path != NULL) { ++ sprintf(config_path, "%s/.config/spnavrc", buf); ++ } ++ return config_path; ++ } ++} + + void default_cfg(struct cfg *cfg) + { +diff --git a/cfgfile.h b/cfgfile.h +index dfed8c9..5bb1b2c 100644 +--- a/cfgfile.h ++++ b/cfgfile.h +@@ -47,6 +47,7 @@ struct cfg { + int devid[MAX_CUSTOM][2]; /* custom USB vendor/product id list */ + }; + ++char* cfg_path(void); + void default_cfg(struct cfg *cfg); + int read_cfg(const char *fname, struct cfg *cfg); + int write_cfg(const char *fname, struct cfg *cfg); +diff --git a/front_gtk.c b/front_gtk.c +index e4c2cd7..6a800a0 100644 +--- a/front_gtk.c ++++ b/front_gtk.c +@@ -28,8 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + #include "cmd.h" + #include "ui.h" + +-#define CFGFILE "/etc/spnavrc" +- + #define CHK_AXINV_TRANS_X "axinv_trans_x" + #define CHK_AXINV_TRANS_Y "axinv_trans_y" + #define CHK_AXINV_TRANS_Z "axinv_trans_z" +@@ -121,7 +119,7 @@ void frontend(int pfd) + + gtk_init(&argc, 0); + +- read_cfg(CFGFILE, &cfg); ++ read_cfg(cfg_path(), &cfg); + + create_ui(); + diff --git a/nixpkgs/pkgs/applications/misc/spnavcfg/configure-pidfile-path.patch b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-pidfile-path.patch new file mode 100644 index 000000000000..a420fcbc07b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-pidfile-path.patch @@ -0,0 +1,40 @@ +diff --git a/back.c b/back.c +index f364e31..c1810dc 100644 +--- a/back.c ++++ b/back.c +@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. + #include "cmd.h" + + #define CFGFILE "/etc/spnavrc" +-#define PIDFILE "/var/run/spnavd.pid" + + int get_daemon_pid(void); + static int update_cfg(void); +@@ -97,11 +96,26 @@ int get_daemon_pid(void) + { + FILE *fp; + char buf[64]; ++ char* xdg_runtime_dir; ++ char* pidfile; + +- if(!(fp = fopen(PIDFILE, "r"))) { ++ if(!(xdg_runtime_dir = getenv("XDG_RUNTIME_DIR"))){ ++ fprintf(stderr, "XDG_RUNTIME_DIR not set, can't find spacenav pid file\n"); ++ return -1; ++ } ++ pidfile = malloc(strlen(xdg_runtime_dir) + strlen("/spnavd.pid") + 1); ++ if (pidfile == NULL) { ++ fprintf(stderr, "failed to allocate memory\n"); ++ return -1; ++ } ++ sprintf(pidfile, "%s/spnavd.pid", xdg_runtime_dir); ++ ++ if(!(fp = fopen(pidfile, "r"))) { + fprintf(stderr, "no spacenav pid file, can't find daemon\n"); ++ free(pidfile); + return -1; + } ++ free(pidfile); + if(!fgets(buf, sizeof buf, fp) || !isdigit(buf[0])) { + fprintf(stderr, "corrupted pidfile, can't find the daemon\n"); + fclose(fp); diff --git a/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix b/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix new file mode 100644 index 000000000000..fcd4630e8039 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchFromGitHub, pkg-config, gtk2 }: + +stdenv.mkDerivation rec { + pname = "spnavcfg"; + version = "0.3.1"; + + src = fetchFromGitHub { + owner = "FreeSpacenav"; + repo = pname; + rev = "v${version}"; + sha256 = "180mkdis15gxs79rr3f7hpwa1p6v81bybw37pzzdjnmqwqrc08a0"; + }; + + patches = [ + # Changes the pidfile path from /run/spnavd.pid to $XDG_RUNTIME_DIR/spnavd.pid + # to allow for a user service + ./configure-pidfile-path.patch + # Changes the config file path from /etc/spnavrc to $XDG_CONFIG_HOME/spnavrc or $HOME/.config/spnavrc + # to allow for a user service + ./configure-cfgfile-path.patch + ]; + + postPatch = '' + sed -i s/4775/775/ Makefile.in + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk2 ]; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; + + meta = with lib; { + homepage = "http://spacenav.sourceforge.net/"; + description = "Interactive configuration GUI for space navigator input devices"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ gebner ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sqliteman/default.nix b/nixpkgs/pkgs/applications/misc/sqliteman/default.nix new file mode 100644 index 000000000000..a0ddf8db053e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sqliteman/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, cmake, qt4, qscintilla }: + +stdenv.mkDerivation rec { + pname = "sqliteman"; + version = "1.2.0"; + + src = fetchFromGitHub { + repo = "sqliteman"; + owner = "pvanek"; + rev = version; + sha256 = "1blzyh1646955d580f71slgdvz0nqx0qacryx0jc9w02yrag17cs"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ qt4 qscintilla ]; + + prePatch = '' + sed -i 's,m_file(0),m_file(QString()),' Sqliteman/sqliteman/main.cpp + ''; + + preConfigure = '' + cd Sqliteman + sed -i 's,/usr/include/Qsci,${qscintilla}/include/Qsci,' cmake/modules/FindQScintilla.cmake + sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla}/libs,' cmake/modules/FindQScintilla.cmake + ''; + + meta = with lib; { + description = "A simple but powerful Sqlite3 GUI database manager"; + homepage = "http://sqliteman.yarpen.cz/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.eikek ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ssh-tools/default.nix b/nixpkgs/pkgs/applications/misc/ssh-tools/default.nix new file mode 100644 index 000000000000..8740633262fd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ssh-tools/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "ssh-tools"; + version = "1.6"; + + src = fetchFromGitHub { + owner = "vaporup"; + repo = pname; + rev = "v${version}"; + sha256 = "0m0x9383p9ab4hdirncmrfha130iasa0v4cbif2y5nbxnxgh101r"; + }; + + installPhase = '' + mkdir -p $out/bin + cp ssh-* $out/bin/ + ''; + + meta = with lib; { + description = "Collection of various tools using ssh"; + homepage = "https://github.com/vaporup/ssh-tools/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ssocr/default.nix b/nixpkgs/pkgs/applications/misc/ssocr/default.nix new file mode 100644 index 000000000000..42bd58cd7831 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ssocr/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchFromGitHub, imlib2, libX11 }: + +stdenv.mkDerivation { + pname = "ssocr"; + version = "unstable-2018-08-11"; + + src = fetchFromGitHub { + owner = "auerswal"; + repo = "ssocr"; + rev = "5e47e26b125a1a13bc79de93a5e87dd0b51354ca"; + sha256 = "0yzprwflky9a7zxa3zic7gvdwqg0zy49zvrqkdxng2k1ng78k3s7"; + }; + + nativeBuildInputs = [ imlib2 libX11 ]; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Seven Segment Optical Character Recognition"; + homepage = "https://github.com/auerswal/ssocr"; + license = licenses.gpl3; + maintainers = [ maintainers.kroell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ssw/default.nix b/nixpkgs/pkgs/applications/misc/ssw/default.nix new file mode 100644 index 000000000000..f3dc8e136a1d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ssw/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, pkg-config, gtk3 }: + +stdenv.mkDerivation rec { + pname = "ssw"; + version = "0.6"; + + src = fetchurl { + url = "https://alpha.gnu.org/gnu/ssw/spread-sheet-widget-${version}.tar.gz"; + sha256 = "08ck9l697xg8vpya5h07raq837i4pqxjqzx30vhscq4xpps2b8kj"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk3 ]; + + meta = with lib; { + homepage = "https://www.gnu.org/software/ssw/"; + license = licenses.gpl3; + description = "GNU Spread Sheet Widget"; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/stag/default.nix b/nixpkgs/pkgs/applications/misc/stag/default.nix new file mode 100644 index 000000000000..03c90af23689 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/stag/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchgit, curses }: + +stdenv.mkDerivation { + name = "stag-1.0"; + + src = fetchgit { + url = "https://github.com/seenaburns/stag.git"; + rev = "90e2964959ea8242349250640d24cee3d1966ad6"; + sha256 = "1yrzjhcwrxrxq5jj695wvpgb0pz047m88yq5n5ymkcw5qr78fy1v"; + }; + + buildInputs = [ stdenv curses ]; + + installPhase = '' + make install PREFIX=$out + ''; + + meta = { + homepage = "https://github.com/seenaburns/stag"; + description = "Terminal streaming bar graph passed through stdin"; + license = lib.licenses.bsdOriginal; + maintainers = [ lib.maintainers.matthiasbeyer ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/stog/default.nix b/nixpkgs/pkgs/applications/misc/stog/default.nix new file mode 100644 index 000000000000..442750837bb5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/stog/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitLab, ocaml, findlib, ocf, ptime, + uutf, uri, ppx_blob, xtmpl, ocaml_lwt, higlo, omd +}: + +stdenv.mkDerivation rec { + pname = "stog"; + version = "0.18.0"; + src = fetchFromGitLab { + domain = "framagit.org"; + owner = "zoggy"; + repo = "stog"; + rev = version; + sha256 = "154gl3ljxqlw8wz1vmsyv8180igrl5bjq0wir7ybrnzq2cdflkv0"; + }; + + buildInputs = [ ocaml uutf ]; + propagatedBuildInputs = [ findlib omd ppx_blob ocf ptime uri xtmpl ocaml_lwt higlo ]; + + createFindlibDestdir = true; + + patches = [ ./install.patch ./uri.patch ]; + + meta = with lib; { + description = "XML documents and web site compiler"; + homepage = "https://www.good-eris.net/stog"; + license = licenses.lgpl3; + platforms = ocaml.meta.platforms or []; + maintainers = with maintainers; [ regnat ]; + }; +} + + diff --git a/nixpkgs/pkgs/applications/misc/stog/install.patch b/nixpkgs/pkgs/applications/misc/stog/install.patch new file mode 100644 index 000000000000..a2407d3079f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/stog/install.patch @@ -0,0 +1,18 @@ +diff --git a/src/Makefile b/src/Makefile +index 736dd037..79a85b9c 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -431,11 +431,12 @@ install-lib: + install-share: + + install-bin: ++ mkdir $(out)/bin + $(CP) $(MAIN) $(MAIN_BYTE) $(TMPL) $(TMPL_BYTE) \ + $(SERVER) $(SERVER_BYTE) $(OCAML_SESSION) \ + $(MK_STOG) $(MK_STOG_BYTE) $(MK_STOG_OCAML) \ + $(LATEX2STOG) $(LATEX2STOG_BYTE) \ +- `dirname \`which $(OCAMLC)\``/ ++ $(out)/bin + + uninstall: uninstall-lib uninstall-share uninstall-bin + diff --git a/nixpkgs/pkgs/applications/misc/stog/uri.patch b/nixpkgs/pkgs/applications/misc/stog/uri.patch new file mode 100644 index 000000000000..08063a38add4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/stog/uri.patch @@ -0,0 +1,13 @@ +diff --git a/src/stog_url.ml b/src/stog_url.ml +index 5d30a43f..c67bfc36 100644 +--- a/src/stog_url.ml ++++ b/src/stog_url.ml +@@ -40,7 +40,7 @@ let of_string s = + with _ -> + failwith (Printf.sprintf "Malformed URL %S" s) + ;; +-let to_string = Uri.to_string ;; ++let to_string u = Uri.to_string u;; + + let path url = + let l = diff --git a/nixpkgs/pkgs/applications/misc/stork/default.nix b/nixpkgs/pkgs/applications/misc/stork/default.nix new file mode 100644 index 000000000000..5f108049c359 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/stork/default.nix @@ -0,0 +1,31 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, openssl +, pkg-config +}: + +rustPlatform.buildRustPackage rec { + pname = "stork"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "jameslittle230"; + repo = "stork"; + rev = "v${version}"; + sha256 = "sha256-rox8X+lYiiCXO66JemW+R2I6y/IxdK6qpaiFXYoL6nY="; + }; + + cargoSha256 = "sha256-ujmBAld6DCc1l+yUu9qhRF8pS5HoIlstcdPTeTAyyXs="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl ]; + + meta = with lib; { + description = "Impossibly fast web search, made for static sites"; + homepage = "https://github.com/jameslittle230/stork"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ chuahou ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/stretchly/default.nix b/nixpkgs/pkgs/applications/misc/stretchly/default.nix new file mode 100644 index 000000000000..52c5f542b276 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/stretchly/default.nix @@ -0,0 +1,80 @@ +{ stdenv +, lib +, fetchurl +, makeWrapper +, electron +, common-updater-scripts +, writeShellScript +, makeDesktopItem +}: + +stdenv.mkDerivation rec { + + pname = "stretchly"; + version = "1.6.0"; + + src = fetchurl { + url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz"; + sha256 = "1q0ihp6cd65lnscbr7xj3yyb06qds77r4s6m1xbk5l9vs2rw923d"; + }; + + icon = fetchurl { + url = "https://raw.githubusercontent.com/hovancik/stretchly/v${version}/stretchly_128x128.png"; + sha256 = "0whfg1fy2hjyk1lzpryikc1aj8agsjhfrb0bf7ggl6r9m8s1rvdl"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/${pname}/ + mv resources/app.asar $out/share/${pname}/ + + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications/ + + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/app.asar + + runHook postInstall + ''; + + passthru = { + updateScript = writeShellScript "update-stretchly" '' + set -eu -o pipefail + + # get the latest release version + latest_version=$(curl -s https://api.github.com/repos/hovancik/stretchly/releases/latest | jq --raw-output .tag_name | sed -e 's/^v//') + + echo "updating to $latest_version..." + + ${common-updater-scripts}/bin/update-source-version stretchly "$latest_version" + ''; + }; + + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = icon; + desktopName = "Stretchly"; + genericName = "Stretchly"; + categories = "Utility;"; + }; + + meta = with lib; { + description = "A break time reminder app"; + longDescription = '' + stretchly is a cross-platform electron app that reminds you to take + breaks when working on your computer. By default, it runs in your tray + and displays a reminder window containing an idea for a microbreak for 20 + seconds every 10 minutes. Every 30 minutes, it displays a window + containing an idea for a longer 5 minute break. + ''; + homepage = "https://hovancik.net/stretchly"; + downloadPage = "https://hovancik.net/stretchly/downloads/"; + license = licenses.bsd2; + maintainers = with maintainers; [ _1000101 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/styx/default.nix b/nixpkgs/pkgs/applications/misc/styx/default.nix new file mode 100644 index 000000000000..e59f6710737a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/styx/default.nix @@ -0,0 +1,71 @@ +{ lib, stdenv, fetchFromGitHub, caddy, asciidoctor +, file, lessc, sass, multimarkdown, linkchecker +, perlPackages, python27 }: + +stdenv.mkDerivation rec { + pname = "styx"; + version = "0.7.2"; + + src = fetchFromGitHub { + owner = "styx-static"; + repo = "styx"; + rev = "0f0a878156eac416620a177cc030fa9f2f69b1b8"; + sha256 = "0ig456j1s17w4zhhcmkrskpy6n7061v5f2isa3qhipmn0gwb91af"; + }; + + server = "${caddy}/bin/caddy"; + linkcheck = "${linkchecker}/bin/linkchecker"; + + nativeBuildInputs = [ asciidoctor ]; + + outputs = [ "out" "lib" "themes" ]; + + propagatedBuildInputs = [ + file + lessc + sass + asciidoctor + multimarkdown + perlPackages.ImageExifTool + (python27.withPackages (ps: [ ps.parsimonious ])) + ]; + + installPhase = '' + mkdir $out + install -D -m 777 src/styx.sh $out/bin/styx + + mkdir -p $out/share/styx-src + cp -r ./* $out/share/styx-src + + mkdir -p $out/share/doc/styx + asciidoctor src/doc/index.adoc -o $out/share/doc/styx/index.html + asciidoctor src/doc/styx-themes.adoc -o $out/share/doc/styx/styx-themes.html + asciidoctor src/doc/library.adoc -o $out/share/doc/styx/library.html + cp -r src/doc/highlight $out/share/doc/styx/ + cp -r src/doc/imgs $out/share/doc/styx/ + + substituteAllInPlace $out/bin/styx + substituteAllInPlace $out/share/doc/styx/index.html + substituteAllInPlace $out/share/doc/styx/styx-themes.html + substituteAllInPlace $out/share/doc/styx/library.html + + mkdir -p $out/share/styx/scaffold + cp -r src/scaffold $out/share/styx + cp -r src/tools $out/share/styx + + mkdir $lib + cp -r src/lib/* $lib + + mkdir $themes + cp -r themes/* $themes + ''; + + meta = with lib; { + description = "Nix based static site generator"; + maintainers = with maintainers; [ ericsagnes ]; + homepage = "https://styx-static.github.io/styx-site/"; + downloadPage = "https://github.com/styx-static/styx/"; + platforms = platforms.all; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/subsurface/default.nix b/nixpkgs/pkgs/applications/misc/subsurface/default.nix new file mode 100644 index 000000000000..d5a7d6f0fd67 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/subsurface/default.nix @@ -0,0 +1,113 @@ +{ lib, stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, wrapQtAppsHook, pkg-config, qmake +, curl, grantlee, libgit2, libusb-compat-0_1, libssh2, libxml2, libxslt, libzip, zlib +, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite +, bluez +}: + +let + version = "5.0.2"; + + subsurfaceSrc = (fetchFromGitHub { + owner = "Subsurface"; + repo = "subsurface"; + rev = "v${version}"; + sha256 = "1yay06m8p9qp2ghrg8dxavdq55y09apcgdnb7rihgs3hq86k539n"; + fetchSubmodules = true; + }); + + libdc = stdenv.mkDerivation { + pname = "libdivecomputer-ssrf"; + inherit version; + + src = subsurfaceSrc; + sourceRoot = "source/libdivecomputer"; + + nativeBuildInputs = [ autoreconfHook ]; + + buildInputs = [ zlib ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "http://www.libdivecomputer.org"; + description = "A cross-platform and open source library for communication with dive computers from various manufacturers"; + maintainers = with maintainers; [ mguentner ]; + license = licenses.lgpl21; + platforms = platforms.all; + }; + }; + + googlemaps = stdenv.mkDerivation rec { + pname = "googlemaps"; + + version = "2021-03-19"; + + src = fetchFromGitHub { + owner = "vladest"; + repo = "googlemaps"; + rev = "8f7def10c203fd3faa5ef96c5010a7294dca0759"; + sha256 = "1irz398g45hk6xizwzd07qcx1ln8f7l6bhjh15f56yc20waqpx1x"; + }; + + nativeBuildInputs = [ qmake ]; + + buildInputs = [ qtbase qtlocation libXcomposite ]; + + dontWrapQtApps = true; + + pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins"; + + installPhase = '' + mkdir -p $out $(dirname ${pluginsSubdir}/geoservices) + mkdir -p ${pluginsSubdir}/geoservices + mv *.so ${pluginsSubdir}/geoservices + mv lib $out/ + ''; + + enableParallelBuilding = true; + + meta = with lib; { + inherit (src.meta) homepage; + description = "QtLocation plugin for Google maps tile API"; + maintainers = with maintainers; [ orivej ]; + license = licenses.mit; + platforms = platforms.all; + }; + }; + +in stdenv.mkDerivation { + pname = "subsurface"; + inherit version; + + src = subsurfaceSrc; + + buildInputs = [ + libdc googlemaps + curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip + qtbase qtconnectivity qtsvg qttools qtwebkit + bluez + ]; + + nativeBuildInputs = [ cmake wrapQtAppsHook pkg-config ]; + + cmakeFlags = [ + "-DLIBDC_FROM_PKGCONFIG=ON" + "-DNO_PRINTING=OFF" + ]; + + passthru = { inherit version libdc googlemaps; }; + + meta = with lib; { + description = "A divelog program"; + longDescription = '' + Subsurface can track single- and multi-tank dives using air, Nitrox or TriMix. + It allows tracking of dive locations including GPS coordinates (which can also + conveniently be entered using a map interface), logging of equipment used and + names of other divers, and lets users rate dives and provide additional notes. + ''; + homepage = "https://subsurface-divelog.org"; + license = licenses.gpl2; + maintainers = with maintainers; [ mguentner adisbladis ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sunwait/default.nix b/nixpkgs/pkgs/applications/misc/sunwait/default.nix new file mode 100644 index 000000000000..2d1f8f46f5a6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sunwait/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + pname = "sunwait"; + version = "2020-10-26"; + + src = fetchFromGitHub { + owner = "risacher"; + repo = "sunwait"; + rev = "102cb417ecbb7a3757ba9ee4b94d6db3225124c4"; + sha256 = "0cs8rdcnzsl10zia2k49a6c2z6gvp5rnf31sgn3hn5c7kgy7l3ax"; + }; + + makeFlags = [ "C=${stdenv.cc.targetPrefix}c++" ]; + + installPhase = '' + install -Dm755 sunwait -t $out/bin + ''; + + meta = with lib; { + description = "Calculates sunrise or sunset times with civil, nautical, astronomical and custom twilights"; + homepage = "https://github.com/risacher/sunwait"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ etu ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/surface-control/default.nix b/nixpkgs/pkgs/applications/misc/surface-control/default.nix new file mode 100644 index 000000000000..d78904f59880 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/surface-control/default.nix @@ -0,0 +1,37 @@ +{ lib, rustPlatform, fetchFromGitHub, installShellFiles, coreutils }: + +rustPlatform.buildRustPackage rec { + pname = "surface-control"; + version = "0.3.1-2"; + + src = fetchFromGitHub { + owner = "linux-surface"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-SLJ4mwBafLGL5pneMTHLc4S4Tgds2xLqByWFH95TK1k="; + }; + + cargoSha256 = "sha256-NH33AMuwf4bOF9zZJlONVMYgrrYSBq5VQClYW/rbzsM="; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion \ + $releaseDir/build/surface-*/out/surface.{bash,fish} \ + --zsh $releaseDir/build/surface-*/out/_surface + install -Dm 0444 -t $out/etc/udev/rules.d \ + etc/udev/40-surface-control.rules + substituteInPlace $out/etc/udev/rules.d/40-surface-control.rules \ + --replace "/usr/bin/chmod" "${coreutils}/bin/chmod" \ + --replace "/usr/bin/chown" "${coreutils}/bin/chown" + ''; + + meta = with lib; { + description = + "Control various aspects of Microsoft Surface devices on Linux from the Command-Line"; + homepage = "https://github.com/linux-surface/surface-control"; + license = licenses.mit; + maintainers = with maintainers; [ winterqt ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/survex/default.nix b/nixpkgs/pkgs/applications/misc/survex/default.nix new file mode 100644 index 000000000000..f6865f877d7d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/survex/default.nix @@ -0,0 +1,79 @@ +{ lib +, stdenv +, fetchgit +, autoreconfHook +, pkg-config +, wxGTK30-gtk3 +, wxmac +, ffmpeg +, proj +, perl532 +, unscii +, python +, libGL +, libGLU +, xlibsWrapper +, docbook2x +, docbook5 +, Carbon +, Cocoa +}: + +let + perlenv = perl532.withPackages (perlPackages: with perlPackages; [ LocalePO ] ); +in +stdenv.mkDerivation rec { + pname = "survex"; + version = "1.2.44"; + + nativeBuildInputs = [ docbook5 docbook2x autoreconfHook pkg-config perlenv python ]; + + buildInputs = [ + libGL libGLU ffmpeg proj + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + wxmac Carbon Cocoa + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ + wxGTK30-gtk3 xlibsWrapper + ]; + + src = fetchgit { + url = "git://git.survex.com/survex"; + rev = version; + sha256 = "11gaqmabrf3av665jy3mr0m8hg76fmvnd0g3rghzmyh8d8v6xk34"; + }; + + enableParallelBuilding = true; + + # Docs rely on sgmltools-lite, a package that would be quite complex to + # provide as it is quite old. So this preConfigure hook effectively disables + # the doc generation. An example of packaging sgmltools-lite from Gentoo can + # be found here: + # https://gitweb.gentoo.org/repo/gentoo.git/tree/app-text/sgmltools-lite/sgmltools-lite-3.0.3-r15.ebuild?id=0b8b716331049599ea3299981e3a9ea6e258c5e0 + + postPatch = '' + patchShebangs . + echo "" > doc/Makefile.am + # substituteInPlace doc/Makefile --replace "docbook2man" "docbook2man --sgml" # Will be needed once sgmltools-lite is packaged. + for perltool in './extract-msgs.pl' './gettexttomsg.pl' '$(srcdir)/gdtconvert' '$(srcdir)/gen_img2aven'; do + substituteInPlace src/Makefile.am \ + --replace "$perltool" "${perlenv}/bin/perl $perltool" + done + substituteInPlace lib/Makefile.am \ + --replace '$(srcdir)/make-pixel-font' '${perlenv}/bin/perl $(srcdir)/make-pixel-font' + substituteInPlace lib/make-pixel-font --replace /usr/share/unifont/unifont.hex ${unscii.extra}/share/fonts/misc/unifont.hex + ''; + + meta = with lib; { + description = "Free Software/Open Source software package for mapping caves"; + longDescription = '' + Survex is a Free Software/Open Source software package for mapping caves, + licensed under the GPL. It is designed to be portable and can be run on a + variety of platforms, including Linux/Unix, macOS, and Microsoft Windows. + ''; + homepage = "https://survex.com/"; + changelog = "https://github.com/ojwb/survex/blob/${version}/NEWS"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.matthewcroughan ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/swappy/default.nix b/nixpkgs/pkgs/applications/misc/swappy/default.nix new file mode 100644 index 000000000000..69d7836e7622 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/swappy/default.nix @@ -0,0 +1,49 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, wayland +, cairo +, pango +, gtk +, pkg-config +, scdoc +, libnotify +, glib +, wrapGAppsHook +, hicolor-icon-theme +}: + +stdenv.mkDerivation rec { + pname = "swappy"; + version = "1.3.1"; + + src = fetchFromGitHub { + owner = "jtheoof"; + repo = pname; + rev = "v${version}"; + sha256 = "12z643c7vzffhjsxaz1lak99i4nwm688pha0hh4pg69jf5wz5xx3"; + }; + + nativeBuildInputs = [ glib meson ninja pkg-config scdoc wrapGAppsHook ]; + + buildInputs = [ + cairo pango gtk libnotify wayland glib hicolor-icon-theme + ]; + + strictDeps = true; + + mesonFlags = [ + # TODO: https://github.com/NixOS/nixpkgs/issues/36468 + "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" + ]; + + meta = with lib; { + homepage = "https://github.com/jtheoof/swappy"; + description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS"; + license = licenses.mit; + maintainers = [ maintainers.matthiasbeyer ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix new file mode 100644 index 000000000000..387177a8c4c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix @@ -0,0 +1,124 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper +, makeDesktopItem +# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later? +, jdk8 +, jre8 +, ant +, gtk3 +, gsettings-desktop-schemas +, p7zip +, libXxf86vm +, unzip +}: + +let + + # TODO: Should we move this to `lib`? Seems like its would be useful in many cases. + extensionOf = filePath: + lib.concatStringsSep "." (lib.tail (lib.splitString "." (builtins.baseNameOf filePath))); + + installIcons = iconName: icons: lib.concatStringsSep "\n" (lib.mapAttrsToList (size: iconFile: '' + mkdir -p "$out/share/icons/hicolor/${size}/apps" + ln -s -T "${iconFile}" "$out/share/icons/hicolor/${size}/apps/${iconName}.${extensionOf iconFile}" + '') icons); + + mkSweetHome3D = + { pname, module, version, src, license, description, desktopName, icons }: + + stdenv.mkDerivation rec { + inherit pname version src description; + exec = lib.toLower module; + sweethome3dItem = makeDesktopItem { + inherit exec desktopName; + name = pname; + icon = pname; + comment = description; + genericName = "Computer Aided (Interior) Design"; + categories = "Graphics;2DGraphics;3DGraphics;"; + }; + + postPatch = '' + patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_awt.so + patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_x11.so + patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_awt.so + patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so + ''; + + nativeBuildInputs = [ makeWrapper unzip ]; + buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas ]; + + buildPhase = '' + runHook preBuild + + ant furniture textures help + mkdir -p $out/share/{java,applications} + mv "build/"*.jar $out/share/java/. + ant + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp install/${module}-${version}.jar $out/share/java/. + + ${installIcons pname icons} + + cp "${sweethome3dItem}/share/applications/"* $out/share/applications + + # MESA_GL_VERSION_OVERRIDE is needed since the update from MESA 19.3.3 to 20.0.2: + # without it a "Profiles [GL4bc, GL3bc, GL2, GLES1] not available on device null" + # exception is thrown on startup. + # https://discourse.nixos.org/t/glx-not-recognised-after-mesa-update/6753 + makeWrapper ${jre8}/bin/java $out/bin/$exec \ + --set MESA_GL_VERSION_OVERRIDE 2.1 \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \ + --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}" + + runHook postInstall + ''; + + dontStrip = true; + + meta = { + homepage = "http://www.sweethome3d.com/index.jsp"; + inherit description; + inherit license; + maintainers = [ lib.maintainers.edwtjo ]; + platforms = lib.platforms.linux; + }; + }; + + d2u = lib.replaceChars ["."] ["_"]; + +in { + + application = mkSweetHome3D rec { + pname = lib.toLower module + "-application"; + version = "6.5.2"; + module = "SweetHome3D"; + description = "Design and visualize your future home"; + license = lib.licenses.gpl2Plus; + src = fetchurl { + url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip"; + sha256 = "1j0xm2vmcxxjmf12k8rfnisq9hd7hqaiyxrfbrbjxis9iq3kycp3"; + }; + desktopName = "Sweet Home 3D"; + icons = { + "32x32" = fetchurl { + url = "http://sweethome3d.cvs.sourceforge.net/viewvc/sweethome3d/SweetHome3D/deploy/SweetHome3DIcon32x32.png"; + sha256 = "1r2fhfg27mx00nfv0qj66rhf719s2g1vhdis7bdc9mqk9x0mb0ir"; + }; + "48x48" = fetchurl { + url = "http://sweethome3d.cvs.sourceforge.net/viewvc/sweethome3d/SweetHome3D/deploy/SweetHome3DIcon48x48.png"; + sha256 = "1ap6d75dyqqvx21wddvn8vw2apq3v803vmbxdriwd0dw9rq3zn4g"; + }; + }; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix new file mode 100644 index 000000000000..783ea3e79402 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix @@ -0,0 +1,114 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper +, makeDesktopItem +# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later? +, jdk8 +, jre8 +, ant +, gtk3 +, gsettings-desktop-schemas +, sweethome3dApp +, unzip +}: + +let + + sweetExec = with lib; + m: "sweethome3d-" + + removeSuffix "libraryeditor" (toLower m) + + "-editor"; + + applicationSrc = stdenv.mkDerivation { + name = "application-src"; + src = sweethome3dApp.src; + nativeBuildInputs = [ unzip ]; + buildPhase = ""; + installPhase = "cp -r . $out"; + }; + + mkEditorProject = + { pname, module, version, src, license, description, desktopName }: + + stdenv.mkDerivation rec { + application = sweethome3dApp; + inherit pname module version src description; + exec = sweetExec module; + editorItem = makeDesktopItem { + inherit exec desktopName; + name = pname; + comment = description; + genericName = "Computer Aided (Interior) Design"; + categories = "Graphics;2DGraphics;3DGraphics;"; + }; + + nativeBuildInputs = [ makeWrapper unzip ]; + buildInputs = [ ant jre8 jdk8 gtk3 gsettings-desktop-schemas ]; + + postPatch = '' + sed -i -e 's,../SweetHome3D,${applicationSrc},g' build.xml + sed -i -e 's,lib/macosx/java3d-1.6/jogl-all.jar,lib/java3d-1.6/jogl-all.jar,g' build.xml + ''; + + buildPhase = '' + runHook preBuild + + ant -lib ${applicationSrc}/libtest -lib ${applicationSrc}/lib -lib ${jdk8}/lib + + runHook postBuild + ''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/{java,applications} + cp ${module}-${version}.jar $out/share/java/. + cp "${editorItem}/share/applications/"* $out/share/applications + makeWrapper ${jre8}/bin/java $out/bin/$exec \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \ + --add-flags "-jar $out/share/java/${module}-${version}.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}" + ''; + + dontStrip = true; + + meta = { + homepage = "http://www.sweethome3d.com/index.jsp"; + inherit description; + inherit license; + maintainers = [ lib.maintainers.edwtjo ]; + platforms = lib.platforms.linux; + }; + + }; + + d2u = lib.replaceChars ["."] ["_"]; + +in { + + textures-editor = mkEditorProject rec { + version = "1.7"; + module = "TexturesLibraryEditor"; + pname = module; + description = "Easily create SH3T files and edit the properties of the texture images it contain"; + license = lib.licenses.gpl2Plus; + src = fetchurl { + url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip"; + sha256 = "03vb9y645qzffxxdhgbjb0d98k3lafxckg2vh2s86j62b6357d0h"; + }; + desktopName = "Sweet Home 3D - Textures Library Editor"; + }; + + furniture-editor = mkEditorProject rec { + version = "1.27"; + module = "FurnitureLibraryEditor"; + pname = module; + description = "Quickly create SH3F files and edit the properties of the 3D models it contain"; + license = lib.licenses.gpl2; + src = fetchurl { + url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip"; + sha256 = "1zxbcn9awgax8lalzkc05f5yfwbgnrayc17fkyv5i19j4qb3r2a0"; + }; + desktopName = "Sweet Home 3D - Furniture Library Editor"; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/synapse/default.nix b/nixpkgs/pkgs/applications/misc/synapse/default.nix new file mode 100644 index 000000000000..da822f5347bf --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/synapse/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchurl, gettext, pkg-config, glib, libnotify, gtk3, libgee +, keybinder3, json-glib, zeitgeist, vala, gobject-introspection +}: + +let + version = "0.2.99.4"; +in stdenv.mkDerivation rec { + pname = "synapse"; + inherit version; + + src = fetchurl { + url = "https://launchpad.net/synapse-project/0.3/${version}/+download/${pname}-${version}.tar.xz"; + sha256 = "1g6x9knb4jy1d8zgssjhzkgac583137pibisy9whjs8mckaj4k1j"; + }; + + nativeBuildInputs = [ + pkg-config gettext vala + # For setup hook + gobject-introspection + ]; + buildInputs = [ + glib libnotify gtk3 libgee keybinder3 json-glib zeitgeist + ]; + + meta = with lib; { + longDescription = '' + Semantic launcher written in Vala that you can use to start applications + as well as find and access relevant documents and files by making use of + the Zeitgeist engine + ''; + description = "Semantic launcher to start applications and find relevant files"; + homepage = "https://launchpad.net/synapse-project"; + license = licenses.gpl3; + maintainers = with maintainers; [ mahe ]; + platforms = with platforms; all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix b/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix new file mode 100644 index 000000000000..db734bff5878 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix @@ -0,0 +1,27 @@ +{ lib, fetchFromGitHub, buildGoPackage, pkg-config, libappindicator-gtk3 }: + +buildGoPackage rec { + pname = "syncthing-tray"; + version = "0.7"; + + goPackagePath = "github.com/alex2108/syncthing-tray"; + + src = fetchFromGitHub { + owner = "alex2108"; + repo = "syncthing-tray"; + rev = "v${version}"; + sha256 = "0869kinnsfzb8ydd0sv9fgqsi1sy5rhqg4whfdnrv82xjc71xyw3"; + }; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libappindicator-gtk3 ]; + + meta = with lib; { + description = "Simple application tray for syncthing"; + homepage = "https://github.com/alex2108/syncthing-tray"; + license = licenses.mit; + maintainers = with maintainers; [ nickhu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix b/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix new file mode 100644 index 000000000000..1103146ed1b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix @@ -0,0 +1,93 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/alex2108/systray"; + fetch = { + type = "git"; + url = "https://github.com/alex2108/systray"; + rev = "40e874866be2dc2c57ab031bcbde27a76b90721a"; + sha256 = "1bxnb6skb9ss0lwlwswql07ardkhm28nxglvlsxkdlmzv1dcwy1q"; + }; + } + { + goPackagePath = "github.com/getlantern/context"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/context"; + rev = "624d99b1798d7c5375ea1d3ca4c5b04d58f7c775"; + sha256 = "09yf9x6478a5z01hybr98zwa8ax3fx7l6wwsvdkxp3fdg9dqm13b"; + }; + } + { + goPackagePath = "github.com/getlantern/errors"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/errors"; + rev = "99fa440517e8f3d1e4cd8d6dbed6b41f4c1ed3d6"; + sha256 = "08rl32l5ks67hcgjxik62nd5g558mv4101kmz1ak7d3vfgg3m6i3"; + }; + } + { + goPackagePath = "github.com/getlantern/golog"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/golog"; + rev = "cca714f7feb5df8e455f409b549d384441ac4578"; + sha256 = "0gnf30n38zkx356cqc6jdv1kbzy59ddqhqndwrxsm2n2zc3b5p7q"; + }; + } + { + goPackagePath = "github.com/getlantern/hex"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/hex"; + rev = "083fba3033ad473db3dd31c9bb368473d37581a7"; + sha256 = "18q6rypmcqmcwlfzrrdcz08nff0a289saplvd9y3ifnfcqdw3j77"; + }; + } + { + goPackagePath = "github.com/getlantern/hidden"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/hidden"; + rev = "d52a649ab33af200943bb599898dbdcfdbc94cb7"; + sha256 = "0133qmp4sjq8da5di3459vc5g5nqbpqra0f558zd95js3fdmkmsi"; + }; + } + { + goPackagePath = "github.com/getlantern/ops"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/ops"; + rev = "b70875f5d689a9438bca72aefd7142a2af889b18"; + sha256 = "0cfa2bbkykbzbskmgd2an34him72z6f3y88ag1v5ffpb0d6bnar7"; + }; + } + { + goPackagePath = "github.com/getlantern/stack"; + fetch = { + type = "git"; + url = "https://github.com/getlantern/stack"; + rev = "02f928aad224fbccd50d66edd776fc9d1e9f2f2b"; + sha256 = "0ddl5r4iw3c7p4drh4d8phl7d0ssdddsnd3xjm1lzgxylqq6r568"; + }; + } + { + goPackagePath = "github.com/oxtoacart/bpool"; + fetch = { + type = "git"; + url = "https://github.com/oxtoacart/bpool"; + rev = "4e1c5567d7c2dd59fa4c7c83d34c2f3528b025d6"; + sha256 = "01kk6dhkz96yhp3p5v2rjwq8mbrwrdsn6glqw7jp4h7g5za7yi95"; + }; + } + { + goPackagePath = "github.com/toqueteos/webbrowser"; + fetch = { + type = "git"; + url = "https://github.com/toqueteos/webbrowser"; + rev = "e2ebfdc6cb1a3fdc4fc4dbd20a0cae0c2e406792"; + sha256 = "0sgjnxrq0jgipkij8b6xiy4am9bv9zziqxxdhw15rdjc5piyk3a2"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix new file mode 100644 index 000000000000..dc4569c6fca3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix @@ -0,0 +1,68 @@ +{ mkDerivation +, lib +, fetchFromGitHub +, qtbase +, qtwebengine +, qtdeclarative +, extra-cmake-modules +, cpp-utilities +, qtutilities +, cmake +, kio +, plasma-framework +, qttools +, webviewSupport ? true +, jsSupport ? true +, kioPluginSupport ? true +, plasmoidSupport ? true +, systemdSupport ? true +}: + +mkDerivation rec { + version = "1.1.3"; + pname = "syncthingtray"; + + src = fetchFromGitHub { + owner = "Martchus"; + repo = "syncthingtray"; + rev = "v${version}"; + sha256 = "sha256-ovit2XSkxSjcbpqQUv8IzMqfsfItbtXLbx0/Vy0+J0Y="; + }; + + buildInputs = [ qtbase cpp-utilities qtutilities ] + ++ lib.optionals webviewSupport [ qtwebengine ] + ++ lib.optionals jsSupport [ qtdeclarative ] + ++ lib.optionals kioPluginSupport [ kio ] + ++ lib.optionals plasmoidSupport [ plasma-framework ] + ; + + nativeBuildInputs = [ + cmake + qttools + ] + ++ lib.optionals plasmoidSupport [ extra-cmake-modules ] + ; + + # No tests are available by upstream, but we test --help anyway + doInstallCheck = true; + installCheckPhase = '' + $out/bin/syncthingtray --help | grep ${version} + ''; + + cmakeFlags = [ + # See https://github.com/Martchus/syncthingtray/issues/42 + "-DQT_PLUGIN_DIR:STRING=${placeholder "out"}/lib/qt-5" + ] ++ lib.optionals (!plasmoidSupport) ["-DNO_PLASMOID=ON"] + ++ lib.optionals (!kioPluginSupport) ["-DNO_FILE_ITEM_ACTION_PLUGIN=ON"] + ++ lib.optionals systemdSupport ["-DSYSTEMD_SUPPORT=ON"] + ++ lib.optionals (!webviewSupport) ["-DWEBVIEW_PROVIDER:STRING=none"] + ; + + meta = with lib; { + homepage = "https://github.com/Martchus/syncthingtray"; + description = "Tray application and Dolphin/Plasma integration for Syncthing"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ doronbehar ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch b/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch new file mode 100644 index 000000000000..ab08195e794d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/synergy/build-tests.patch @@ -0,0 +1,97 @@ +From 9c2278dad498b8e4040f30c80cf65b3a089ba218 Mon Sep 17 00:00:00 2001 +From: talyz <kim.lindberger@gmail.com> +Date: Fri, 14 Feb 2020 16:26:36 +0100 +Subject: [PATCH] Build tests again + +The tests were accidentally disabled in +688095d0a7d22704b5c3282bc68b41ceca42ab7e. Since then, the code has +drifted slightly: the synergy lib has been renamed from synergy to +synlib in 4263fd17177d7717b04ac6d6ec62efa2f657ed74 and the curl +dependency was dropped in 491bb2de000245a943b8298462c4a9d8f34c9a44. + +This reenables the tests, targets the right lib and removes the +obsolete test. +--- + src/CMakeLists.txt | 2 + + src/test/integtests/CMakeLists.txt | 2 +- + .../integtests/arch/ArchInternetTests.cpp | 37 ------------------- + src/test/unittests/CMakeLists.txt | 2 +- + 4 files changed, 4 insertions(+), 39 deletions(-) + delete mode 100644 src/test/integtests/arch/ArchInternetTests.cpp + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index ab63a066..fee080ab 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -22,3 +22,5 @@ add_subdirectory(cmd) + if (SYNERGY_BUILD_LEGACY_GUI) + add_subdirectory(gui) + endif (SYNERGY_BUILD_LEGACY_GUI) ++ ++add_subdirectory(test) +diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt +index f39968a3..096ba3d5 100644 +--- a/src/test/integtests/CMakeLists.txt ++++ b/src/test/integtests/CMakeLists.txt +@@ -68,4 +68,4 @@ endif() + + add_executable(integtests ${sources}) + target_link_libraries(integtests +- arch base client common io ipc mt net platform server synergy gtest gmock ${libs} ${OPENSSL_LIBS}) ++ arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS}) +diff --git a/src/test/integtests/arch/ArchInternetTests.cpp b/src/test/integtests/arch/ArchInternetTests.cpp +deleted file mode 100644 +index 95823e9f..00000000 +--- a/src/test/integtests/arch/ArchInternetTests.cpp ++++ /dev/null +@@ -1,37 +0,0 @@ +-/* +- * synergy -- mouse and keyboard sharing utility +- * Copyright (C) 2014-2016 Symless Ltd. +- * +- * This package is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License +- * found in the file LICENSE that should have accompanied this file. +- * +- * This package is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program. If not, see <http://www.gnu.org/licenses/>. +- */ +- +-#include "arch/Arch.h" +- +-#include "test/global/gtest.h" +- +-#define TEST_URL "https://symless.com/tests/?testString" +-//#define TEST_URL "http://localhost/synergy/tests/?testString" +- +-TEST(ArchInternetTests, get) +-{ +- ARCH_INTERNET internet; +- String result = internet.get(TEST_URL); +- ASSERT_EQ("Hello world!", result); +-} +- +-TEST(ArchInternetTests, urlEncode) +-{ +- ARCH_INTERNET internet; +- String result = internet.urlEncode("hello=+&world"); +- ASSERT_EQ("hello%3D%2B%26world", result); +-} +diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt +index 54131eb2..46307e90 100644 +--- a/src/test/unittests/CMakeLists.txt ++++ b/src/test/unittests/CMakeLists.txt +@@ -68,4 +68,4 @@ endif() + + add_executable(unittests ${sources}) + target_link_libraries(unittests +- arch base client server common io net platform server synergy mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS}) ++ arch base client server common io net platform server synlib mt ipc gtest gmock shared ${libs} ${OPENSSL_LIBS}) +-- +2.25.0 + diff --git a/nixpkgs/pkgs/applications/misc/synergy/default.nix b/nixpkgs/pkgs/applications/misc/synergy/default.nix new file mode 100644 index 000000000000..8d3cc8c30966 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/synergy/default.nix @@ -0,0 +1,68 @@ +{ stdenv, lib, fetchpatch, fetchFromGitHub, cmake, openssl, qttools +, ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver +, xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat +, withGUI ? true, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "synergy"; + version = "1.13.1.41"; + + src = fetchFromGitHub { + owner = "symless"; + repo = "synergy-core"; + rev = "${version}-stable"; + fetchSubmodules = true; + sha256 = "1phg0szc9g018zxs5wbys4drzq1cdhyzajfg45l6a3fmi6qdi1kw"; + }; + + patches = lib.optional stdenv.isDarwin ./macos_build_fix.patch; + + postPatch = '' + substituteInPlace src/gui/src/SslCertificate.cpp \ + --replace 'kUnixOpenSslCommand[] = "openssl";' 'kUnixOpenSslCommand[] = "${openssl}/bin/openssl";' + ''; + + cmakeFlags = lib.optional (!withGUI) "-DSYNERGY_BUILD_LEGACY_GUI=OFF"; + + nativeBuildInputs = [ cmake ] ++ lib.optional withGUI wrapQtAppsHook; + + dontWrapQtApps = true; + + buildInputs = [ + openssl + ] ++ lib.optionals withGUI [ + qttools + ] ++ lib.optionals stdenv.isDarwin [ + ApplicationServices Carbon Cocoa CoreServices ScreenSaver + ] ++ lib.optionals stdenv.isLinux [ + xlibsWrapper libX11 libXi libXtst libXrandr xinput avahi-compat + ]; + + installPhase = '' + mkdir -p $out/bin + cp bin/{synergyc,synergys,synergyd,syntool} $out/bin/ + '' + lib.optionalString withGUI '' + cp bin/synergy $out/bin/ + wrapQtApp $out/bin/synergy + '' + lib.optionalString stdenv.isLinux '' + mkdir -p $out/share/icons/hicolor/scalable/apps + cp ../res/synergy.svg $out/share/icons/hicolor/scalable/apps/ + mkdir -p $out/share/applications + substitute ../res/synergy.desktop $out/share/applications/synergy.desktop --replace /usr/bin $out/bin + '' + lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications/ + mv bundle/Synergy.app $out/Applications/ + ln -s $out/bin $out/Applications/Synergy.app/Contents/MacOS + ''; + + doCheck = true; + checkPhase = "bin/unittests"; + + meta = with lib; { + description = "Share one mouse and keyboard between multiple computers"; + homepage = "https://synergy-project.org/"; + license = licenses.gpl2; + maintainers = with maintainers; [ talyz ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch b/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch new file mode 100644 index 000000000000..50087a2c4b4b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c1e78d1d..13639ba1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -328,14 +328,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") + ${OPENSSL_ROOT}/lib/libssl.lib + ${OPENSSL_ROOT}/lib/libcrypto.lib + ) +-elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") +- set (OPENSSL_ROOT /usr/local/opt/openssl) +- include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include) +- set (OPENSSL_LIBS +- ${OPENSSL_ROOT}/lib/libssl.a +- ${OPENSSL_ROOT}/lib/libcrypto.a +- ) +-elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|.*BSD|DragonFly") ++elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|Darwin|.*BSD|DragonFly") + set (OPENSSL_LIBS ssl crypto) + else() + message (FATAL_ERROR "Couldn't find OpenSSL") diff --git a/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix b/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix new file mode 100644 index 000000000000..6e5405ce988e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, systemd }: + +stdenv.mkDerivation rec { + pname = "systembus-notify"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "rfjakob"; + repo = "systembus-notify"; + rev = "v${version}"; + sha256 = "1pdn45rfpwhrf20hs87qmk2j8sr7ab8161f81019wnypnb1q2fsv"; + }; + + buildInputs = [ systemd ]; + + installPhase = '' + runHook preInstall + install -Dm755 systembus-notify -t $out/bin + install -Dm644 systembus-notify.desktop -t $out/etc/xdg/autostart + runHook postInstall + ''; + + meta = with lib; { + description = "System bus notification daemon"; + homepage = "https://github.com/rfjakob/systembus-notify"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; []; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tabula-java/default.nix b/nixpkgs/pkgs/applications/misc/tabula-java/default.nix new file mode 100644 index 000000000000..a88a83bc234e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tabula-java/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, fetchurl, jre, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "tabula-java"; + version = "1.0.4"; + + src = fetchurl { + url = "https://github.com/tabulapdf/tabula-java/releases/download/v${version}/tabula-${version}-jar-with-dependencies.jar"; + sha256 = "12d0jcc3j0q8jbqv0gzfiif7c8ig37834vb8yq0jnyr0s72k30xw"; + }; + + buildInputs = [ makeWrapper ]; + + dontUnpack = true; + dontBuild = true; + + installPhase = '' + mkdir -pv $out/share/tabula-java + cp -v $src $out/share/tabula-java/tabula-java.jar + + makeWrapper ${jre}/bin/java $out/bin/tabula-java --add-flags "-jar $out/share/tabula-java/tabula-java.jar" + ''; + + meta = with lib; { + description = "A library for extracting tables from PDF files."; + longDescription = '' + tabula-java is the table extraction engine that powers + Tabula. You can use tabula-java as a command-line tool to + programmatically extract tables from PDFs. + ''; + homepage = "https://tabula.technology/"; + license = licenses.mit; + maintainers = [ maintainers.jakewaksbaum ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tabula/default.nix b/nixpkgs/pkgs/applications/misc/tabula/default.nix new file mode 100644 index 000000000000..b396c578c903 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tabula/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchzip, jre, makeWrapper }: + + +stdenv.mkDerivation rec { + pname = "tabula"; + version = "1.2.1"; + + + src = fetchzip { + url = "https://github.com/tabulapdf/tabula/releases/download/v${version}/tabula-jar-${version}.zip"; + sha256 = "0lkpv8hkji81fanyxm7ph8421fr9a6phqc3pbhw2bc4gljg7sgxi"; + }; + + + nativeBuildInputs = [ makeWrapper ]; + + + installPhase = '' + mkdir -pv $out/share/tabula + cp -v * $out/share/tabula + + makeWrapper ${jre}/bin/java $out/bin/tabula --add-flags "-jar $out/share/tabula/tabula.jar" + ''; + + + meta = with lib; { + description = "A tool for liberating data tables locked inside PDF files"; + longDescription = '' + If you’ve ever tried to do anything with data provided to you in PDFs, you + know how painful it is — there's no easy way to copy-and-paste rows of data + out of PDF files. Tabula allows you to extract that data into a CSV or + Microsoft Excel spreadsheet using a simple, easy-to-use interface. + ''; + homepage = "https://tabula.technology/"; + license = licenses.mit; + maintainers = [ maintainers.dpaetzel ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taizen/default.nix b/nixpkgs/pkgs/applications/misc/taizen/default.nix new file mode 100644 index 000000000000..7974622be7da --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taizen/default.nix @@ -0,0 +1,25 @@ +{ rustPlatform, lib, fetchFromGitHub, ncurses, openssl, pkg-config, Security, stdenv }: + +rustPlatform.buildRustPackage rec { + pname = "taizen"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "NerdyPepper"; + repo = pname; + rev = "5c1876429e2da7424e9d31b1e16f5a3147cc58d0"; + sha256 = "09izgx7icvizskdy9kplk0am61p7550fsd0v42zcihq2vap2j92z"; + }; + + buildInputs = [ ncurses openssl ] ++ lib.optional stdenv.isDarwin Security; + nativeBuildInputs = [ pkg-config ]; + + cargoSha256 = "1yqy5v02a4qshgb7k8rnn408k3n6qx3jc8zziwvv7im61n9sjynf"; + + meta = with lib; { + homepage = "https://crates.io/crates/taizen"; + license = licenses.mit; + description = "curses based mediawiki browser"; + maintainers = with maintainers; [ ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile new file mode 100644 index 000000000000..77cbaeeed793 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile @@ -0,0 +1,2 @@ +source 'http://rubygems.org' +gem 'taskjuggler' diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock new file mode 100644 index 000000000000..8831993117d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock @@ -0,0 +1,21 @@ +GEM + remote: http://rubygems.org/ + specs: + mail (2.6.3) + mime-types (>= 1.16, < 3) + mime-types (2.6.1) + taskjuggler (3.5.0) + mail (>= 2.4.3) + term-ansicolor (>= 1.0.7) + term-ansicolor (1.3.2) + tins (~> 1.0) + tins (1.6.0) + +PLATFORMS + ruby + +DEPENDENCIES + taskjuggler + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix new file mode 100644 index 000000000000..d3a8e26a4d82 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix @@ -0,0 +1,15 @@ +{ lib, bundlerEnv, ruby }: + +bundlerEnv { + name = "taskjuggler-3.5.0"; + + inherit ruby; + gemdir = ./.; + + meta = { + description = "A modern and powerful project management tool"; + homepage = "https://taskjuggler.org/"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix new file mode 100644 index 000000000000..deeeac106943 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix @@ -0,0 +1,47 @@ +{ + mail = { + version = "2.6.3"; + source = { + type = "gem"; + sha256 = "1nbg60h3cpnys45h7zydxwrl200p7ksvmrbxnwwbpaaf9vnf3znp"; + }; + dependencies = [ + "mime-types" + ]; + }; + mime-types = { + version = "2.6.1"; + source = { + type = "gem"; + sha256 = "1vnrvf245ijfyxzjbj9dr6i1hkjbyrh4yj88865wv9bs75axc5jv"; + }; + }; + taskjuggler = { + version = "3.5.0"; + source = { + type = "gem"; + sha256 = "0r84rlc7a6w7p9nc9mgycbs5h0hq0kzscjq7zj3296xyf0afiwj2"; + }; + dependencies = [ + "mail" + "term-ansicolor" + ]; + }; + term-ansicolor = { + version = "1.3.2"; + source = { + type = "gem"; + sha256 = "0ydbbyjmk5p7fsi55ffnkq79jnfqx65c3nj8d9rpgl6sw85ahyys"; + }; + dependencies = [ + "tins" + ]; + }; + tins = { + version = "1.6.0"; + source = { + type = "gem"; + sha256 = "02qarvy17nbwvslfgqam8y6y7479cwmb1a6di9z18hzka4cf90hz"; + }; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile new file mode 100644 index 000000000000..ab9f5a354646 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'taskjuggler' diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock new file mode 100644 index 000000000000..0f05c496173f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock @@ -0,0 +1,21 @@ +GEM + remote: https://rubygems.org/ + specs: + mail (2.7.1) + mini_mime (>= 0.1.1) + mini_mime (1.0.1) + taskjuggler (3.6.0) + mail (>= 2.4.3) + term-ansicolor (>= 1.0.7) + term-ansicolor (1.7.1) + tins (~> 1.0) + tins (1.20.2) + +PLATFORMS + ruby + +DEPENDENCIES + taskjuggler + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix new file mode 100644 index 000000000000..5c15748f2b8e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix @@ -0,0 +1,21 @@ +{ lib, bundlerApp, bundlerUpdateScript }: + +bundlerApp { + pname = "taskjuggler"; + gemdir = ./.; + + exes = [ + "tj3" "tj3client" "tj3d" "tj3man" "tj3ss_receiver" "tj3ss_sender" + "tj3ts_receiver" "tj3ts_sender" "tj3ts_summary" "tj3webd" + ]; + + passthru.updateScript = bundlerUpdateScript "taskjuggler"; + + meta = with lib; { + description = "A modern and powerful project management tool"; + homepage = "https://taskjuggler.org/"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ manveru nicknovitski ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix new file mode 100644 index 000000000000..c22d49c7dc74 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix @@ -0,0 +1,55 @@ +{ + mail = { + dependencies = ["mini_mime"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; + type = "gem"; + }; + version = "2.7.1"; + }; + mini_mime = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3"; + type = "gem"; + }; + version = "1.0.1"; + }; + taskjuggler = { + dependencies = ["mail" "term-ansicolor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ky3cydl3szhdyxsy4k6zxzjlbll7mlq025aj6xd5jmh49k3pfbp"; + type = "gem"; + }; + version = "3.6.0"; + }; + term-ansicolor = { + dependencies = ["tins"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj"; + type = "gem"; + }; + version = "1.7.1"; + }; + tins = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pqj45n216zrz7yckdbdknlmhh187iqzx8fp76y2h0jrgqjfkxmj"; + type = "gem"; + }; + version = "1.20.2"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tasknc/default.nix b/nixpkgs/pkgs/applications/misc/tasknc/default.nix new file mode 100644 index 000000000000..d24a7d3e0d13 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tasknc/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, perl, ncurses5, taskwarrior }: + +stdenv.mkDerivation rec { + version = "2020-12-17"; + pname = "tasknc"; + + src = fetchFromGitHub { + owner = "lharding"; + repo = "tasknc"; + rev = "a182661fbcc097a933d5e8cce3922eb1734a563e"; + sha256 = "0jrv2k1yizfdjndbl06lmy2bb62ky2rjdk308967j31c5kqqnw56"; + }; + + nativeBuildInputs = [ + makeWrapper + perl # For generating the man pages with pod2man + ]; + + buildInputs = [ ncurses5 ]; + + hardeningDisable = [ "format" ]; + + buildFlags = [ "VERSION=${version}" ]; + + installPhase = '' + mkdir -p $out/bin/ + mkdir -p $out/share/man/man1 + mkdir -p $out/share/tasknc + + DESTDIR=$out PREFIX= MANPREFIX=/share/man make install + + wrapProgram $out/bin/tasknc --prefix PATH : ${taskwarrior}/bin + ''; + + + meta = with lib; { + homepage = "https://github.com/lharding/tasknc"; + description = "A ncurses wrapper around taskwarrior"; + maintainers = with maintainers; [ matthiasbeyer infinisil ]; + platforms = platforms.linux; # Cannot test others + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taskopen/default.nix b/nixpkgs/pkgs/applications/misc/taskopen/default.nix new file mode 100644 index 000000000000..8933faf5fb01 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskopen/default.nix @@ -0,0 +1,34 @@ +{ fetchurl, lib, stdenv, makeWrapper, which, perl, perlPackages }: + +stdenv.mkDerivation { + name = "taskopen-1.1.4"; + src = fetchurl { + url = "https://github.com/ValiValpas/taskopen/archive/v1.1.4.tar.gz"; + sha256 = "774dd89f5c92462098dd6227e181268e5ec9930bbc569f25784000df185c71ba"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ which perl ] ++ (with perlPackages; [ JSON ]); + + installPhase = '' + # We don't need a DESTDIR and an empty string results in an absolute path + # (due to the trailing slash) which breaks the build. + sed 's|$(DESTDIR)/||' -i Makefile + + make PREFIX=$out + make PREFIX=$out install + ''; + + postFixup = '' + wrapProgram $out/bin/taskopen \ + --set PERL5LIB "$PERL5LIB" + ''; + + meta = with lib; { + description = "Script for taking notes and open urls with taskwarrior"; + homepage = "https://github.com/ValiValpas/taskopen"; + platforms = platforms.linux; + license = lib.licenses.free ; + maintainers = [ maintainers.winpat ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tasksh/default.nix b/nixpkgs/pkgs/applications/misc/tasksh/default.nix new file mode 100644 index 000000000000..134d1373ad4b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tasksh/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, cmake, readline }: + +stdenv.mkDerivation rec { + pname = "tasksh"; + version = "1.2.0"; + + src = fetchurl { + url = "https://taskwarrior.org/download/${pname}-${version}.tar.gz"; + sha256 = "1z8zw8lld62fjafjvy248dncjk0i4fwygw0ahzjdvyyppx4zjhkf"; + }; + + buildInputs = [ readline ]; + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "REPL for taskwarrior"; + homepage = "http://tasktools.org"; + license = licenses.mit; + maintainers = with maintainers; [ matthiasbeyer ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix b/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix new file mode 100644 index 000000000000..5c32d8622e33 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix @@ -0,0 +1,28 @@ +{ lib +, rustPlatform +, fetchFromGitHub +}: + +rustPlatform.buildRustPackage rec { + pname = "taskwarrior-tui"; + version = "0.10.4"; + + src = fetchFromGitHub { + owner = "kdheepak"; + repo = "taskwarrior-tui"; + rev = "v${version}"; + sha256 = "1rs6xpnmqzp45jkdzi8x06i8764gk7zl86sp6s0hiirbfqf7vwsy"; + }; + + # Because there's a test that requires terminal access + doCheck = false; + + cargoSha256 = "1c9vw1n6h7irwim1zf3mr0g520jnlvfqdy7y9v9g9xpkvbjr7ich"; + + meta = with lib; { + description = "A terminal user interface for taskwarrior "; + homepage = "https://github.com/kdheepak/taskwarrior-tui"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ matthiasbeyer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix b/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix new file mode 100644 index 000000000000..812c9b72f99e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchurl, cmake, libuuid, gnutls, python3, bash }: + +stdenv.mkDerivation rec { + pname = "taskwarrior"; + version = "2.5.3"; + + srcs = [ + (fetchurl { + url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/${sourceRoot}.tar.gz"; + sha256 = "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj"; + }) + (fetchurl { + url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/tests-${version}.tar.gz"; + sha256 = "165xmf9h6rb7l6l9nlyygj0mx9bi1zyd78z0lrl3nadhmgzggv0b"; + }) + ]; + + sourceRoot = "task-${version}"; + + postUnpack = '' + mv test ${sourceRoot} + ''; + + nativeBuildInputs = [ cmake libuuid gnutls ]; + + doCheck = true; + preCheck = '' + find test -type f -exec sed -i \ + -e "s|/usr/bin/env python3|${python3.interpreter}|" \ + -e "s|/usr/bin/env bash|${bash}/bin/bash|" \ + {} + + ''; + checkTarget = "test"; + + postInstall = '' + mkdir -p "$out/share/bash-completion/completions" + ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/task.bash" + mkdir -p "$out/share/fish/vendor_completions.d" + ln -s "../../../share/doc/task/scripts/fish/task.fish" "$out/share/fish/vendor_completions.d/" + mkdir -p "$out/share/zsh/site-functions" + ln -s "../../../share/doc/task/scripts/zsh/_task" "$out/share/zsh/site-functions/" + ''; + + meta = with lib; { + description = "Highly flexible command-line tool to manage TODO lists"; + homepage = "https://taskwarrior.org"; + license = licenses.mit; + maintainers = with maintainers; [ marcweber ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tdrop/default.nix b/nixpkgs/pkgs/applications/misc/tdrop/default.nix new file mode 100644 index 000000000000..66708aa8135d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tdrop/default.nix @@ -0,0 +1,43 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper +, xwininfo, xdotool, xprop, gawk, coreutils +, gnugrep, procps }: + +stdenv.mkDerivation rec { + pname = "tdrop"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "noctuid"; + repo = "tdrop"; + rev = version; + sha256 = "sha256-1umHwzpv4J8rZ0c0q+2dPsEk4vhFB4UerwI8ctIJUZg="; + }; + + dontBuild = true; + + installFlags = [ "PREFIX=$(out)" ]; + + postInstall = let + binPath = lib.makeBinPath [ + xwininfo + xdotool + xprop + gawk + coreutils + gnugrep + procps + ]; + in '' + wrapProgram $out/bin/tdrop --prefix PATH : ${binPath} + ''; + + nativeBuildInputs = [ makeWrapper ]; + + meta = with lib; { + description = "A Glorified WM-Independent Dropdown Creator"; + homepage = "https://github.com/noctuid/tdrop"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = with maintainers; [ wedens ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/teleprompter/default.nix b/nixpkgs/pkgs/applications/misc/teleprompter/default.nix new file mode 100644 index 000000000000..96265356ead7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/teleprompter/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchurl, electron_10, makeDesktopItem, makeWrapper, nodePackages, autoPatchelfHook}: + +let + electron = electron_10; +in +stdenv.mkDerivation rec { + pname = "teleprompter"; + version = "2.4.0"; + + src = fetchurl { + url = "https://github.com/ImaginarySense/Imaginary-Teleprompter-Electron/releases/download/${lib.versions.majorMinor version}/imaginary-teleprompter-${version}.tar.gz"; + sha256 = "bgdtK8l5d26avv1WUw9cfOgZrIL1q/a9890Ams4yidQ="; + }; + + dontBuild = true; + dontStrip = true; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper nodePackages.asar ]; + installPhase = '' + mkdir -p $out/bin $out/opt/teleprompter $out/share/applications + asar e resources/app.asar $out/opt/teleprompter/resources/app.asar.unpacked + ln -s ${desktopItem}/share/applications/* $out/share/applications + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/teleprompter \ + --add-flags "$out/opt/teleprompter/resources/app.asar.unpacked --without-update" + ''; + + desktopItem = makeDesktopItem { + name = "teleprompter"; + exec = "teleprompter"; + type = "Application"; + desktopName = "Teleprompter"; + }; + + meta = with lib; { + description = "The most complete, free, teleprompter app on the web"; + license = [ licenses.gpl3Plus ]; + homepage = "https://github.com/ImaginarySense/Teleprompter-Core"; + platforms = platforms.linux; + maintainers = with maintainers; [ Scriptkiddi ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/tellico/default.nix b/nixpkgs/pkgs/applications/misc/tellico/default.nix new file mode 100644 index 000000000000..10d8dc026141 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tellico/default.nix @@ -0,0 +1,70 @@ +{ lib +, fetchurl +, mkDerivation +, cmake +, exempi +, extra-cmake-modules +, karchive +, kdoctools +, kfilemetadata +, khtml +, kitemmodels +, knewstuff +, kxmlgui +, libcdio +, libkcddb +, libksane +, makeWrapper +, poppler +, qtcharts +, qtwebengine +, solid +, taglib +}: + +mkDerivation rec { + pname = "tellico"; + version = "3.4.1"; + + src = fetchurl { + # version 3.3.0 just uses 3.3 in its file name + urls = [ + "https://tellico-project.org/files/tellico-${version}.tar.xz" + "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz" + ]; + sha256 = "sha256-+FFN6sO0mvlage8JazyrqNZk4onejz1XJPiOK3gnhWE="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + kdoctools + makeWrapper + ]; + + buildInputs = [ + exempi + karchive + kfilemetadata + khtml + kitemmodels + knewstuff + kxmlgui + libcdio + libkcddb + libksane + poppler + qtcharts + qtwebengine + solid + taglib + ]; + + meta = with lib; { + description = "Collection management software, free and simple"; + homepage = "https://tellico-project.org/"; + license = with licenses; [ gpl2Only gpl3Only lgpl2Only ]; + maintainers = with maintainers; [ numkem ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tellico/hex.patch b/nixpkgs/pkgs/applications/misc/tellico/hex.patch new file mode 100644 index 000000000000..999c502287e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tellico/hex.patch @@ -0,0 +1,15 @@ +index 7ea81c7..0c19767 100644 +--- a/src/utils/iso5426converter.cpp ++++ b/src/utils/iso5426converter.cpp +@@ -1211,7 +1211,11 @@ QChar Iso5426Converter::getCombiningChar(uint c) { + return 0x1EF1; // SMALL LETTER U WITH HORN AND DOT BELOW + + default: ++#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) ++ myDebug() << "no match for" << hex << c; ++#else + myDebug() << "no match for" << Qt::hex << c; ++#endif + return QChar(); + } + } diff --git a/nixpkgs/pkgs/applications/misc/termdown/default.nix b/nixpkgs/pkgs/applications/misc/termdown/default.nix new file mode 100644 index 000000000000..f28bd665a5e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/termdown/default.nix @@ -0,0 +1,29 @@ +{ lib +, fetchFromGitHub +, buildPythonApplication +, click +, pyfiglet +, python-dateutil +, setuptools +}: + +buildPythonApplication rec { + pname = "termdown"; + version = "1.17.0"; + + src = fetchFromGitHub { + rev = version; + sha256 = "1sd9z5n2a4ir35832wgxs68vwav7wxhq39b5h8pq934mp8sl3v2k"; + repo = "termdown"; + owner = "trehn"; + }; + + propagatedBuildInputs = [ python-dateutil click pyfiglet setuptools ]; + + meta = with lib; { + description = "Starts a countdown to or from TIMESPEC"; + longDescription = "Countdown timer and stopwatch in your terminal"; + homepage = "https://github.com/trehn/termdown"; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix b/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix new file mode 100644 index 000000000000..cde53ef41654 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix @@ -0,0 +1,34 @@ +{ stdenv, runtimeShell, lib, fetchzip }: + +stdenv.mkDerivation rec { + pname = "terminal-notifier"; + + version = "2.0.0"; + + src = fetchzip { + url = "https://github.com/alloy/terminal-notifier/releases/download/${version}/terminal-notifier-${version}.zip"; + sha256 = "0gi54v92hi1fkryxlz3k5s5d8h0s66cc57ds0vbm1m1qk3z4xhb0"; + stripRoot = false; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/Applications + mkdir -p $out/bin + cp -r terminal-notifier.app $out/Applications + cat >$out/bin/terminal-notifier <<EOF + #!${runtimeShell} + cd $out/Applications/terminal-notifier.app + exec ./Contents/MacOS/terminal-notifier "\$@" + EOF + chmod +x $out/bin/terminal-notifier + ''; + + meta = with lib; { + maintainers = with maintainers; [ cstrahan ]; + homepage = "https://github.com/julienXX/terminal-notifier"; + license = licenses.mit; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix b/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix new file mode 100644 index 000000000000..b44b4bd0a703 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terminal-parrot"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "jmhobbs"; + repo = "terminal-parrot"; + rev = version; + sha256 = "1b4vr4s1zpkpf5kc1r2kdlp3hf88qp1f7h05g8kd62zf4sfbj722"; + }; + + vendorSha256 = "1qalnhhq3fmyzj0hkzc5gk9wbypr558mz3ik5msw7fid68k2i48c"; + + doCheck = false; + + meta = with lib; { + description = "Shows colorful, animated party parrot in your terminial"; + homepage = "https://github.com/jmhobbs/terminal-parrot"; + license = licenses.mit; + maintainers = [ maintainers.heel ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix b/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix new file mode 100644 index 000000000000..48ae142c1aef --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv +, fetchFromGitLab +, rustPlatform +, pkg-config +, openssl +, sqlite +, libiconv +, Security +}: + +rustPlatform.buildRustPackage rec { + pname = "terminal-typeracer"; + version = "2.0.4"; + + src = fetchFromGitLab { + owner = "ttyperacer"; + repo = pname; + rev = "v${version}"; + sha256 = "RjGHY6KN6thxbg9W5FRwaAmUeD+5/WCeMCvzFHqZ+J4="; + }; + + cargoSha256 = "sha256-A7O/e8PAcW36i8pT71SkWoWDIiMuEhSS9SmASNzNCjk="; + + buildInputs = [ openssl sqlite ] ++ lib.optionals stdenv.isDarwin [ libiconv Security ]; + nativeBuildInputs = [ pkg-config ]; + + meta = with lib; { + description = "An open source terminal based version of Typeracer written in rust"; + homepage = "https://gitlab.com/ttyperacer/terminal-typeracer"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ yoctocell ]; + platforms = platforms.x86_64; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix b/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix new file mode 100644 index 000000000000..95937ea5f2e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix @@ -0,0 +1,51 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, fetchPypi +, bibtool +, pybtex +, pymupdf +, pynvim +, pyperclip +, roman +, pdfrw +, pagelabels +, setuptools +}: + +buildPythonApplication { + pname = "termpdf.py"; + version = "2019-10-03"; + + src = fetchFromGitHub { + owner = "dsanson"; + repo = "termpdf.py"; + rev = "4f3bdf4b5a00801631f2498f2c38c81e0a588ae2"; + sha256 = "05gbj2fqzqndq1mx6g9asa7i6z8a9jdjrvilfwx8lg23cs356m6m"; + }; + + propagatedBuildInputs = [ + bibtool + pybtex + pymupdf + pyperclip + roman + pagelabels + pdfrw + pynvim + setuptools + ]; + + # upstream doesn't contain tests + doCheck = false; + + meta = with lib; { + description = '' + A graphical pdf (and epub, cbz, ...) reader that works + inside the kitty terminal. + ''; + homepage = "https://github.com/dsanson/termpdf.py"; + maintainers = with maintainers; [ teto ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/teseq/default.nix b/nixpkgs/pkgs/applications/misc/teseq/default.nix new file mode 100644 index 000000000000..c07cc39f84ef --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/teseq/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchurl }: + +let + version = "1.1.1"; +in +stdenv.mkDerivation { + pname = "teseq"; + inherit version; + + src = fetchurl { + url = "mirror://gnu/teseq/teseq-${version}.tar.gz"; + sha256 = "08ln005qciy7f3jhv980kfhhfmh155naq59r5ah9crz1q4mx5yrj"; + }; + + meta = { + homepage = "https://www.gnu.org/software/teseq/"; + description = "Escape sequence illuminator"; + license = lib.licenses.gpl3; + + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.vaibhavsagar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix new file mode 100644 index 000000000000..bf53848b5d38 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, runtimeShell }: + +stdenv.mkDerivation rec { + pname = "thinkingrock-binary"; + version = "2.2.1"; + + src = fetchurl { + url = "mirror://sourceforge/thinkingrock/ThinkingRock/TR%20${version}/tr-${version}.tar.gz"; + sha256 = "0hnwvvyc8miiz8w2g4iy7s4rgfy0kfbncgbgfzpsq6nrzq334kgm"; + }; + + /* it would be a really bad idea to put thinkingrock tr executable in PATH! + the tr.sh script does use the coreutils tr itself + That's why I've renamed the wrapper and called it thinkingrock + However you may not rename the bin/tr script cause it will notice and throw an + "java.lang.IllegalArgumentException: Malformed branding token: thinkingrock" + exception. I hope that's fine + */ + + buildPhase = '' + # only keep /bin/tr + ls -1 bin/* | grep -ve 'bin/tr''$' | xargs rm + # don't keep the other .exe file either + find . -iname "*.exe" | xargs -n1 rm + mkdir -p $out/{nix-support/tr-files,bin} + cp -r . $out/nix-support/tr-files + cat >> $out/bin/thinkingrock << EOF + #!${runtimeShell} + exec $out/nix-support/tr-files/bin/tr "$@" + EOF + chmod +x $out/bin/thinkingrock + ''; + + dontInstall = true; + + meta = with lib; { + description = "Task management system"; + homepage = "http://www.thinkingrock.com.au/"; + license = licenses.cddl; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ticker/default.nix b/nixpkgs/pkgs/applications/misc/ticker/default.nix new file mode 100644 index 000000000000..a3e2dc11c6f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ticker/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "ticker"; + version = "4.2.0"; + + src = fetchFromGitHub { + owner = "achannarasappa"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-FavbBGmChWQ3xySPHlw5HisZwVaNe/NaxA6+InN8fL8="; + }; + + vendorSha256 = "sha256-XBfTVd3X3IDxLCAaNnijf6E5bw+AZ94UdOG9w7BOdBU="; + + preBuild = '' + buildFlagsArray+=("-ldflags" "-s -w -X github.com/achannarasappa/ticker/cmd.Version=v${version}") + ''; + + # Tests require internet + doCheck = false; + + meta = with lib; { + description = "Terminal stock ticker with live updates and position tracking"; + homepage = "https://github.com/achannarasappa/ticker"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ siraben ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tickrs/default.nix b/nixpkgs/pkgs/applications/misc/tickrs/default.nix new file mode 100644 index 000000000000..e6476cb42212 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tickrs/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, rustPlatform, fetchFromGitHub, perl, Security }: + +rustPlatform.buildRustPackage rec { + pname = "tickrs"; + version = "0.14.4"; + + src = fetchFromGitHub { + owner = "tarkah"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-OOsBo+NCfn++2XyfQVoeEPcbSv645Ng7g9s4W7X2xg4="; + }; + + cargoSha256 = "sha256-HAkJKqoz4vrY4mGFSz6sylV6DdrjWvPfwb4BiLWEyKY="; + + nativeBuildInputs = [ perl ]; + + buildInputs = lib.optionals stdenv.isDarwin [ Security ]; + + meta = with lib; { + description = "Realtime ticker data in your terminal"; + homepage = "https://github.com/tarkah/tickrs"; + license = licenses.mit; + maintainers = with maintainers; [ mredaelli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/timew-sync-server/default.nix b/nixpkgs/pkgs/applications/misc/timew-sync-server/default.nix new file mode 100644 index 000000000000..86a428df38f6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/timew-sync-server/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "timew-sync-server"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "timewarrior-synchronize"; + repo = pname; + rev = "v${version}"; + sha256 = "041j618c2bcryhgi2j2w5zlfcxcklgbir2xj3px4w7jxbbg6p68n"; + }; + + vendorSha256 = "0wbd4cpswgbr839sk8qwly8gjq4lqmq448m624akll192mzm9wj7"; + + meta = with lib; { + homepage = "https://github.com/timewarrior-synchronize/timew-sync-server"; + description = "Server component of timewarrior synchronization application"; + license = licenses.mit; + maintainers = [ maintainers.joachimschmidt557 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/timewarrior/default.nix b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix new file mode 100644 index 000000000000..adff6741d31f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, cmake, asciidoctor }: + +stdenv.mkDerivation rec { + pname = "timewarrior"; + version = "1.4.3"; + + src = fetchFromGitHub { + owner = "GothenburgBitFactory"; + repo = "timewarrior"; + rev = "v${version}"; + sha256 = "00ydikzmxym5jhv6w1ii12a6zw5ighddbzxsw03xg8yabzzfnvzw"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake asciidoctor ]; + + dontUseCmakeBuildDir = true; + + meta = with lib; { + description = "A command-line time tracker"; + homepage = "https://timewarrior.net"; + license = licenses.mit; + maintainers = with maintainers; [ matthiasbeyer mrVanDalo ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/tint2/default.nix b/nixpkgs/pkgs/applications/misc/tint2/default.nix new file mode 100644 index 000000000000..847b95c7874f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tint2/default.nix @@ -0,0 +1,81 @@ +{ lib, stdenv +, fetchFromGitLab +, pkg-config +, cmake +, gettext +, cairo +, pango +, pcre +, glib +, imlib2 +, gtk3 +, libXinerama +, libXrender +, libXcomposite +, libXdamage +, libX11 +, libXrandr +, librsvg +, libpthreadstubs +, libXdmcp +, libstartup_notification +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "tint2"; + version = "17.0"; + + src = fetchFromGitLab { + owner = "o9000"; + repo = "tint2"; + rev = version; + sha256 = "1gy5kki7vqrj43yl47cw5jqwmj45f7a8ppabd5q5p1gh91j7klgm"; + }; + + nativeBuildInputs = [ + pkg-config + cmake + gettext + wrapGAppsHook + ]; + + buildInputs = [ + cairo + pango + pcre + glib + imlib2 + gtk3 + libXinerama + libXrender + libXcomposite + libXdamage + libX11 + libXrandr + librsvg + libpthreadstubs + libXdmcp + libstartup_notification + ]; + + cmakeFlags = [ + "-Ddocdir=share/doc/${pname}" + ]; + + postPatch = '' + for f in ./src/launcher/apps-common.c \ + ./src/launcher/icon-theme-common.c + do + substituteInPlace $f --replace /usr/share/ /run/current-system/sw/share/ + done + ''; + + meta = with lib; { + homepage = "https://gitlab.com/o9000/tint2"; + description = "Simple panel/taskbar unintrusive and light (memory, cpu, aestetic)"; + license = licenses.gpl2Only; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tipp10/default.nix b/nixpkgs/pkgs/applications/misc/tipp10/default.nix new file mode 100644 index 000000000000..37aafb7827ef --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tipp10/default.nix @@ -0,0 +1,25 @@ +{ cmake, lib, mkDerivation, fetchFromGitLab, + qtmultimedia, qttools, ... }: + +mkDerivation rec { + pname = "tipp10"; + version = "3.2.1"; + + src = fetchFromGitLab { + owner = "tipp10"; + repo = "tipp10"; + rev = "v${version}"; + sha256 = "4cxN2AnvYhZAMuA/qfmdLVICJNk6VCpRnfelbxYRvPg="; + }; + + nativeBuildInputs = [ cmake qttools ]; + buildInputs = [ qtmultimedia ]; + + meta = with lib; { + description = "Learn and train typing with the ten-finger system"; + homepage = "https://gitlab.com/tipp10/tipp10"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ petabyteboy ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix b/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix new file mode 100644 index 000000000000..9aeb726e5c2c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, sqlite, zlib, perl }: + +stdenv.mkDerivation rec { + pname = "tippecanoe"; + version = "1.36.0"; + + src = fetchFromGitHub { + owner = "mapbox"; + repo = pname; + rev = version; + sha256 = "0lbmhly4ivnqc6qk1k3sdqvsg6x3nfd8gnjx846bhqj4wag3f88m"; + }; + + buildInputs = [ sqlite zlib ]; + checkInputs = [ perl ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + enableParallelBuilding = true; + doCheck = true; + + meta = with lib; { + description = "Build vector tilesets from large collections of GeoJSON features"; + homepage = "https://github.com/mapbox/tippecanoe"; + license = licenses.bsd2; + maintainers = with maintainers; [ sikmir ]; + platforms = with platforms; linux ++ darwin; + broken = stdenv.hostPlatform.isAarch64; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tiramisu/default.nix b/nixpkgs/pkgs/applications/misc/tiramisu/default.nix new file mode 100644 index 000000000000..f3743d33c364 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tiramisu/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, glib }: + +stdenv.mkDerivation { + pname = "tiramisu"; + version = "unstable-2021-05-20"; + + src = fetchFromGitHub { + owner = "Sweets"; + repo = "tiramisu"; + rev = "e53833d0b5b0ae41ceb7dc434d8e25818fe62291"; + sha256 = "sha256-F4oaTOAQQfOkEXeBVbGH+0CHc9v9Ac08GyzHliOdAfc="; + }; + + buildInputs = [ glib ]; + + nativeBuildInputs = [ pkg-config ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Desktop notifications, the UNIX way"; + longDescription = '' + tiramisu is a notification daemon based on dunst that outputs notifications + to STDOUT in order to allow the user to process notifications any way they + prefer. + ''; + homepage = "https://github.com/Sweets/tiramisu"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ wishfort36 fortuneteller2k ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tiv/default.nix b/nixpkgs/pkgs/applications/misc/tiv/default.nix new file mode 100644 index 000000000000..1ee176166ea4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tiv/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, imagemagick }: + +stdenv.mkDerivation rec { + pname = "tiv"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "stefanhaustein"; + repo = "TerminalImageViewer"; + rev = "v${version}"; + sha256 = "17zqbwj2imk6ygyc142mw6v4fh7h4rd5vzn5wxr9gs0g8qdc6ixn"; + }; + + buildInputs = [ imagemagick ]; + + makeFlags = [ "prefix=$(out)" ]; + + preConfigure = "cd src/main/cpp"; + + meta = with lib; { + homepage = "https://github.com/stefanhaustein/TerminalImageViewer"; + description = "Small C++ program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphics characters"; + license = licenses.asl20; + maintainers = with maintainers; [ magnetophon ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tmatrix/default.nix b/nixpkgs/pkgs/applications/misc/tmatrix/default.nix new file mode 100644 index 000000000000..e63370566880 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tmatrix/default.nix @@ -0,0 +1,40 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, installShellFiles +, ncurses +}: + +stdenv.mkDerivation rec { + pname = "tmatrix"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "M4444"; + repo = "TMatrix"; + rev = "v${version}"; + sha256 = "1cvgxmdpdzpl8w4z3sh4g5pbd15rd8s1kcspi9v95yf9rydyy69s"; + }; + + nativeBuildInputs = [ cmake installShellFiles ]; + buildInputs = [ ncurses ]; + + postInstall = '' + installManPage ../tmatrix.6 + ''; + + meta = with lib; { + description = "Terminal based replica of the digital rain from The Matrix"; + longDescription = '' + TMatrix is a program that simulates the digital rain form The Matrix. + It's focused on being the most accurate replica of the digital rain effect + achievable on a typical terminal, while also being customizable and + performant. + ''; + homepage = "https://github.com/M4444/TMatrix"; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = with maintainers; [ infinisil Br1ght0ne ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tnef/default.nix b/nixpkgs/pkgs/applications/misc/tnef/default.nix new file mode 100644 index 000000000000..65e07915c760 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tnef/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook }: + +stdenv.mkDerivation rec { + version = "1.4.18"; + pname = "tnef"; + + src = fetchFromGitHub { + owner = "verdammelt"; + repo = "tnef"; + rev = version; + sha256 = "104g48mcm00bgiyzas2vf86331w7bnw7h3bc11ib4lp7rz6zqfck"; + }; + + doCheck = true; + + nativeBuildInputs = [ autoreconfHook ]; + + meta = with lib; { + description = "Unpacks MIME attachments of type application/ms-tnef"; + longDescription = '' + TNEF is a program for unpacking MIME attachments of type "application/ms-tnef". This is a Microsoft only attachment. + + Due to the proliferation of Microsoft Outlook and Exchange mail servers, more and more mail is encapsulated into this format. + + The TNEF program allows one to unpack the attachments which were encapsulated into the TNEF attachment. Thus alleviating the need to use Microsoft Outlook to view the attachment. + ''; + homepage = "https://github.com/verdammelt/tnef"; + license = licenses.gpl2; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/todiff/default.nix b/nixpkgs/pkgs/applications/misc/todiff/default.nix new file mode 100644 index 000000000000..752ab35461ea --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/todiff/default.nix @@ -0,0 +1,24 @@ +{ lib, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "todiff"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "Ekleog"; + repo = "todiff"; + rev = version; + sha256 = "1y0v8nkaqb8kn61xwarpbyrq019gxx1f5f5p1hzw73nqxadc1rcm"; + }; + + cargoSha256 = "0vrn1vc3rwabv6l2r1qb7mkcxbp75q79bfl3rxhyi51ra3ij507r"; + + checkPhase = "cargo test --features=integration_tests"; + + meta = with lib; { + description = "Human-readable diff for todo.txt files"; + homepage = "https://github.com/Ekleog/todiff"; + maintainers = with maintainers; [ ekleog ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix b/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix new file mode 100644 index 000000000000..945b0b324910 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_11, libsecret }: + +stdenv.mkDerivation rec { + pname = "todoist-electron"; + version = "0.2.4"; + + src = fetchurl { + url = "https://electron-dl.todoist.com/linux/Todoist-${version}.AppImage"; + sha256 = "1xrf2qjhq116z18qx7n1zd7mhvkb2dccaq7az4w6fs216l8q5zf2"; + }; + + appimageContents = appimageTools.extractType2 { + name = "${pname}-${version}"; + inherit src; + }; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/${pname} $out/share/applications $out/share/icons/hicolor/512x512 + + cp -a ${appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${appimageContents}/todoist.desktop $out/share/applications/${pname}.desktop + cp -a ${appimageContents}/usr/share/icons/hicolor/0x0/apps $out/share/icons/hicolor/512x512 + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron_11}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app.asar \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc libsecret ]}" + ''; + + meta = with lib; { + homepage = "https://todoist.com"; + description = "The official Todoist electron app"; + platforms = [ "x86_64-linux" ]; + license = licenses.unfree; + maintainers = with maintainers; [ i077 kylesferrazza ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/todoist/default.nix b/nixpkgs/pkgs/applications/misc/todoist/default.nix new file mode 100644 index 000000000000..68388376f8f0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/todoist/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "todoist"; + version = "0.15.0"; + + src = fetchFromGitHub { + owner = "sachaos"; + repo = "todoist"; + rev = "v${version}"; + sha256 = "0d3c621jaqxd6i58xm6nvi0avrh5mk23r169i95bn73igzw62w33"; + }; + + vendorSha256 = "0cznb8glh36dwyyn1gx1ggkwa9zffrrxg52k78brnaczsl0rsmky"; + + doCheck = false; + + meta = { + homepage = "https://github.com/sachaos/todoist"; + description = "Todoist CLI Client"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro b/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro new file mode 100644 index 000000000000..e86156313d1f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro @@ -0,0 +1,19 @@ +QT += core network widgets + +DEFINES += APP_ENVIRONMENT=\\\"production\\\" +DEFINES += APP_VERSION=\\\"@version@\\\" + +TARGET = toggldesktop +TEMPLATE = app + +SOURCES += *.cpp +HEADERS += *.h +FORMS += *.ui +RESOURCES += *.qrc + +target.path = $$PREFIX + +INSTALLS += target + +CONFIG += link_pkgconfig +PKGCONFIG += bugsnag-qt qxtglobalshortcut qt-oauth-lib toggl x11 xscrnsaver diff --git a/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix b/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix new file mode 100644 index 000000000000..44c46f746550 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix @@ -0,0 +1,149 @@ +{ mkDerivation, lib, fetchzip, buildEnv, makeDesktopItem, runCommand, writeText, pkg-config +, cmake, qmake, cacert, jsoncpp, libX11, libXScrnSaver, lua, openssl, poco +, qtbase, qtwebengine, qtx11extras, sqlite }: + +let + name = "toggldesktop-${version}"; + version = "7.4.231"; + + src = fetchzip { + url = "https://github.com/toggl/toggldesktop/archive/v${version}.tar.gz"; + sha256 = "01hqkx9dljnhwnyqi6mmzfp02hnbi2j50rsfiasniqrkbi99x9v1"; + }; + + bugsnag-qt = mkDerivation rec { + pname = "bugsnag-qt"; + version = "20180522.005732"; + + src = fetchzip { + url = "https://github.com/yegortimoshenko/bugsnag-qt/archive/${version}.tar.gz"; + sha256 = "02s6mlggh0i4a856md46dipy6mh47isap82jlwmjr7hfsk2ykgnq"; + }; + + nativeBuildInputs = [ qmake ]; + buildInputs = [ qtbase ]; + }; + + qxtglobalshortcut = mkDerivation rec { + pname = "qxtglobalshortcut"; + version = "f584471dada2099ba06c574bdfdd8b078c2e3550"; + + src = fetchzip { + url = "https://github.com/hluk/qxtglobalshortcut/archive/${version}.tar.gz"; + sha256 = "1iy17gypav10z8aa62s5jb6mq9y4kb9ms4l61ydmk3xwlap7igw1"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ qtbase qtx11extras ]; + }; + + qt-oauth-lib = mkDerivation rec { + pname = "qt-oauth-lib"; + version = "20190125.190943"; + + src = fetchzip { + url = "https://github.com/yegortimoshenko/qt-oauth-lib/archive/${version}.tar.gz"; + sha256 = "0zmfgvdf6n79mgfvbda7lkdxxlzjmy86436gqi2r5x05vq04sfrj"; + }; + + nativeBuildInputs = [ qmake ]; + buildInputs = [ qtbase qtwebengine ]; + }; + + poco-pc = writeText "poco.pc" '' + Name: Poco + Description: ${poco.meta.description} + Version: ${poco.version} + Libs: -L${poco}/lib -lPocoDataSQLite -lPocoData -lPocoNet -lPocoNetSSL -lPocoCrypto -lPocoUtil -lPocoXML -lPocoFoundation + Cflags: -I${poco}/include/Poco + ''; + + poco-pc-wrapped = runCommand "poco-pc-wrapped" {} '' + mkdir -p $out/lib/pkgconfig && ln -s ${poco-pc} $_/poco.pc + ''; + + libtoggl = mkDerivation { + name = "libtoggl-${version}"; + inherit src version; + + sourceRoot = "source/src"; + + nativeBuildInputs = [ qmake pkg-config ]; + buildInputs = [ jsoncpp lua openssl poco poco-pc-wrapped sqlite libX11 ]; + + postPatch = '' + cat ${./libtoggl.pro} > libtoggl.pro + rm get_focused_window_{mac,windows}.cc + ''; + }; + + toggldesktop = mkDerivation { + name = "${name}-unwrapped"; + inherit src version; + + sourceRoot = "source/src/ui/linux/TogglDesktop"; + + postPatch = '' + substituteAll ${./TogglDesktop.pro} TogglDesktop.pro + substituteInPlace toggl.cpp \ + --replace ./../../../toggl_api.h toggl_api.h + ''; + + postInstall = '' + ln -s ${cacert}/etc/ssl/certs/ca-bundle.crt $out/cacert.pem + ''; + + nativeBuildInputs = [ qmake pkg-config ]; + + buildInputs = [ + bugsnag-qt + libtoggl + qxtglobalshortcut + qtbase + qtwebengine + qt-oauth-lib + qtx11extras + libX11 + libXScrnSaver + ]; + }; + + toggldesktop-icons = mkDerivation { + name = "${name}-icons"; + inherit (toggldesktop) src sourceRoot; + + installPhase = '' + for f in icons/*; do + mkdir -p $out/share/icons/hicolor/$(basename $f)/apps + mv $f/toggldesktop.png $_ + done + ''; + }; + + toggldesktop-wrapped = runCommand "toggldesktop-wrapped" {} '' + mkdir -p $out/bin && ln -s ${toggldesktop}/toggldesktop $_ + ''; + + desktopItem = makeDesktopItem rec { + categories = "Utility;"; + desktopName = "Toggl"; + genericName = desktopName; + name = "toggldesktop"; + exec = "${toggldesktop-wrapped}/bin/toggldesktop"; + icon = "toggldesktop"; + }; +in + +buildEnv { + inherit name; + paths = [ desktopItem toggldesktop-icons toggldesktop-wrapped ]; + + meta = with lib; { + broken = true; # libtoggl is broken + description = "Client for Toggl time tracking service"; + homepage = "https://github.com/toggl/toggldesktop"; + license = licenses.bsd3; + maintainers = with maintainers; [ yegortimoshenko ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro b/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro new file mode 100644 index 000000000000..c8303440fe67 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro @@ -0,0 +1,20 @@ +TARGET = toggl +TEMPLATE = lib + +SOURCES += *.cc +HEADERS += *.h + +headers.files = $$HEADERS +headers.path = $$PREFIX/include +target.path = $$PREFIX/lib + +INSTALLS += headers target + +CONFIG += create_prl create_pc link_pkgconfig +PKGCONFIG += jsoncpp openssl lua poco sqlite3 x11 + +QMAKE_PKGCONFIG_NAME = $$TARGET +QMAKE_PKGCONFIG_PREFIX = $$PREFIX +QMAKE_PKGCONFIG_LIBDIR = $$target.path +QMAKE_PKGCONFIG_INCDIR = $$headers.path +QMAKE_PKGCONFIG_DESTDIR = pkgconfig diff --git a/nixpkgs/pkgs/applications/misc/tomboy/default.nix b/nixpkgs/pkgs/applications/misc/tomboy/default.nix new file mode 100644 index 000000000000..5aaec7a1e600 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tomboy/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, itstool, intltool, pkg-config +, libxml2, gnome2, atk, gtk2, glib +, mono, mono-addins, dbus-sharp-2_0, dbus-sharp-glib-2_0, gnome-sharp, gtk-sharp-2_0 +, makeWrapper, lib}: + +let + version = "1.15.9"; +in + +stdenv.mkDerivation { + pname = "tomboy"; + inherit version; + + src = fetchurl { + url = "https://github.com/tomboy-notes/tomboy/releases/download/${version}/tomboy-${version}.tar.xz"; + sha256 = "0j5jmd079bm2fydqaic5ymbfdxna3qlx6fkp2mqhgcdr7prsbl3q"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ itstool intltool + libxml2 gnome2.GConf atk gtk2 + mono mono-addins dbus-sharp-2_0 dbus-sharp-glib-2_0 gnome-sharp gtk-sharp-2_0 + makeWrapper ]; + + postInstall = '' + makeWrapper "${mono}/bin/mono" "$out/bin/tomboy" \ + --add-flags "$out/lib/tomboy/Tomboy.exe" \ + --prefix MONO_GAC_PREFIX : ${dbus-sharp-2_0} \ + --prefix MONO_GAC_PREFIX : ${dbus-sharp-glib-2_0} \ + --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \ + --prefix MONO_GAC_PREFIX : ${gnome-sharp} \ + --prefix MONO_GAC_PREFIX : ${mono-addins} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk-sharp-2_0 gtk-sharp-2_0.gtk gnome2.GConf ]} + ''; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Tomboy"; + description = "A simple note-taking application with synchronization"; + platforms = platforms.linux; + license = lib.licenses.lgpl2; + maintainers = with maintainers; [ stesie ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/toot/default.nix b/nixpkgs/pkgs/applications/misc/toot/default.nix new file mode 100644 index 000000000000..2a322b208819 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/toot/default.nix @@ -0,0 +1,31 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + version = "0.27.0"; + name = "toot-${version}"; + + src = fetchFromGitHub { + owner = "ihabunek"; + repo = "toot"; + rev = version; + sha256 = "197g9lvwg8qnsf18kifcqdj3cpfdnxz9vay766rn9bi4nfz0s6j2"; + }; + + checkInputs = with python3Packages; [ pytest ]; + + propagatedBuildInputs = with python3Packages; + [ requests beautifulsoup4 future wcwidth urwid ]; + + checkPhase = '' + py.test + ''; + + meta = with lib; { + description = "Mastodon CLI interface"; + homepage = "https://github.com/ihabunek/toot"; + license = licenses.gpl3; + maintainers = [ maintainers.matthiasbeyer ]; + }; + +} + diff --git a/nixpkgs/pkgs/applications/misc/tootle/default.nix b/nixpkgs/pkgs/applications/misc/tootle/default.nix new file mode 100644 index 000000000000..63ac88ecac9d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tootle/default.nix @@ -0,0 +1,71 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, fetchpatch +, vala +, meson +, ninja +, pkg-config +, python3 +, libgee +, gsettings-desktop-schemas +, gnome +, pantheon +, wrapGAppsHook +, gtk3 +, json-glib +, glib +, glib-networking +, libhandy +}: + +stdenv.mkDerivation rec { + pname = "tootle"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "bleakgrey"; + repo = pname; + rev = version; + sha256 = "NRM7GiJA8c5z9AvXpGXtMl4ZaYN2GauEIbjBmoY4pdo="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + glib-networking + gnome.libsoup + gsettings-desktop-schemas + gtk3 + json-glib + libgee + pantheon.granite + libhandy + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Simple Mastodon client designed for elementary OS"; + homepage = "https://github.com/bleakgrey/tootle"; + license = licenses.gpl3; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/topydo/default.nix b/nixpkgs/pkgs/applications/misc/topydo/default.nix new file mode 100644 index 000000000000..3ea3511308b2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/topydo/default.nix @@ -0,0 +1,41 @@ +{ lib, python3Packages, fetchFromGitHub, glibcLocales }: + +with python3Packages; + +buildPythonApplication rec { + pname = "topydo"; + version = "0.13"; + + src = fetchFromGitHub { + owner = "bram85"; + repo = pname; + rev = version; + sha256 = "0b3dz137lpbvpjvfy42ibqvj3yk526x4bpn819fd11lagn77w69r"; + }; + + propagatedBuildInputs = [ + arrow + icalendar + glibcLocales + prompt_toolkit + urwid + watchdog + ]; + + checkInputs = [ mock freezegun pylint ]; + + # Skip test that has been reported multiple times upstream without result: + # bram85/topydo#271, bram85/topydo#274. + checkPhase = '' + substituteInPlace test/test_revert_command.py --replace 'test_revert_ls' 'dont_test_revert_ls' + python -m unittest discover + ''; + + LC_ALL="en_US.UTF-8"; + + meta = with lib; { + description = "A cli todo application compatible with the todo.txt format"; + homepage = "https://github.com/bram85/topydo"; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix b/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix new file mode 100644 index 000000000000..b2839a97efcc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchgit, qt4, qmake4Hook, trousers }: + +stdenv.mkDerivation rec { + version = "0.8.1"; + pname = "tpmmanager"; + + src = fetchgit { + url = "https://github.com/Sirrix-AG/TPMManager"; + rev = "9f989206635a6d2c1342576c90fa73eb239519cd"; + sha256 = "24a606f88fed67ed0d0e61dc220295e9e1ab8db3ef3d028fa34b04ff30652d8e"; + }; + + nativeBuildInputs = [ qmake4Hook ]; + + buildInputs = [ qt4 trousers ]; + + installPhase = '' + mkdir -p $out/bin + install -Dpm755 -D bin/tpmmanager $out/bin/tpmmanager + + mkdir -p $out/share/applications + cat > $out/share/applications/tpmmanager.desktop <<EOF + [Desktop Entry] + Type=Application + Version=1.0 + Name=tpmmanager + Comment=TPM manager + Exec=$out/bin/tpmmanager + Terminal=false + EOF + ''; + + meta = { + homepage = "https://projects.sirrix.com/trac/tpmmanager"; + description = "Tool for managing the TPM"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ tstrobel ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/translate-shell/default.nix b/nixpkgs/pkgs/applications/misc/translate-shell/default.nix new file mode 100644 index 000000000000..319ba3643da4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/translate-shell/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, fribidi, rlwrap, gawk, groff, ncurses }: + +stdenv.mkDerivation rec { + pname = "translate-shell"; + version = "0.9.6.12"; + + src = fetchFromGitHub { + owner = "soimort"; + repo = "translate-shell"; + rev = "v${version}"; + sha256 = "075vqnha21rhr1b61dim7dqlfwm1yffyzcaa83s36rpk9r5sddzx"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installFlags = [ "PREFIX=$(out)" ]; + + postInstall = '' + wrapProgram $out/bin/trans \ + --prefix PATH : ${lib.makeBinPath [ + gawk + curl + ncurses + rlwrap + groff + fribidi + ]} + ''; + + meta = with lib; { + homepage = "https://www.soimort.org/translate-shell"; + description = "Command-line translator using Google Translate, Bing Translator, Yandex.Translate, and Apertium"; + license = licenses.unlicense; + maintainers = with maintainers; [ ebzzry infinisil ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tsukae/default.nix b/nixpkgs/pkgs/applications/misc/tsukae/default.nix new file mode 100644 index 000000000000..f4ebaa41efb0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tsukae/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "tsukae"; + version = "unstable-2021-04-19"; + + src = fetchFromGitHub { + owner = "irevenko"; + repo = pname; + rev = "8111dddd67e4b4f83ae4bca7d7305f6dc64e77cd"; + sha256 = "sha256-1y/WYLW6/HMGmuaX2wOlQbwYn0LcgQCMb4qw8BtCgxQ="; + }; + + vendorSha256 = "sha256-mVhc9roT7rm9WMwck7jobjn9ykKQRgWJAqM75AmhMN0="; + + runVend = true; + + meta = with lib; { + description = "Show off your most used shell commands."; + homepage = "https://github.com/irevenko/tsukae"; + license = licenses.mit; + mainProgram = pname; + maintainers = with maintainers; [ l3af ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tthsum/default.nix b/nixpkgs/pkgs/applications/misc/tthsum/default.nix new file mode 100644 index 000000000000..7db743559a4e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tthsum/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "tthsum"; + version = "1.3.2"; + + src = fetchurl { + url = "http://tthsum.devs.nu/pkg/tthsum-${version}.tar.bz2"; + sha256 = "0z6jq8lbg9rasv98kxfs56936dgpgzsg3yc9k52878qfw1l2bp59"; + }; + + installPhase = '' + mkdir -p $out/bin $out/share/man/man1 + cp share/tthsum.1.gz $out/share/man/man1 + cp obj-unix/tthsum $out/bin + ''; + + doCheck = !stdenv.isDarwin; + + meta = with lib; { + description = "An md5sum-alike program that works with Tiger/THEX hashes"; + longDescription = '' + tthsum generates or checks TTH checksums (root of the THEX hash + tree). The Merkle Hash Tree, invented by Ralph Merkle, is a hash + construct that exhibits desirable properties for verifying the + integrity of files and file subranges in an incremental or + out-of-order fashion. tthsum uses the Tiger hash algorithm for + both the internal and the leaf nodes. + + The specification of the Tiger hash algorithm is at: + http://www.cs.technion.ac.il/~biham/Reports/Tiger/ + + The specification of the THEX algorithm is at: + http://adc.sourceforge.net/draft-jchapweske-thex-02.html + ''; + homepage = "http://tthsum.devs.nu/"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.ebzzry ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tty-share/default.nix b/nixpkgs/pkgs/applications/misc/tty-share/default.nix new file mode 100644 index 000000000000..08c88e376bb6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tty-share/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +# Upstream has a `./vendor` directory with all deps which we rely upon. +buildGoPackage rec { + pname = "tty-share"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "elisescu"; + repo = "tty-share"; + rev = "v${version}"; + sha256 = "sha256-+bdQ7KyGEdJJAopzGnDOcLvFNyiKqpagPR1EoU1VR5E="; + }; + + goPackagePath = "github.com/elisescu/tty-share"; + + meta = with lib; { + homepage = "https://tty-share.com"; + description = "Share terminal via browser for remote work or shared sessions"; + platforms = platforms.linux; + license = licenses.mit; + maintainers = with maintainers; [ andys8 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix b/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix new file mode 100644 index 000000000000..9ea26b52bc34 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, ncurses }: + +stdenv.mkDerivation rec { + pname = "tty-solitaire"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "mpereira"; + repo = pname; + rev = "v${version}"; + sha256 = "0kix7wfy2bda8cw5kfm7bm5acd5fqmdl9g52ms9bza4kf2jnb754"; + }; + + buildInputs = [ ncurses ]; + + patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile"; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + description = "Klondike Solitaire in your ncurses terminal"; + license = licenses.mit; + homepage = "https://github.com/mpereira/tty-solitaire"; + platforms = ncurses.meta.platforms; + maintainers = [ maintainers.AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tuir/default.nix b/nixpkgs/pkgs/applications/misc/tuir/default.nix new file mode 100644 index 000000000000..fb1a85b1e491 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tuir/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitLab, python3Packages }: + +with python3Packages; +buildPythonApplication rec { + pname = "tuir"; + version = "1.29.0"; + + src = fetchFromGitLab { + owner = "ajak"; + repo = pname; + rev = "v${version}"; + sha256 = "1fqp6bvq8kzdsf3nna4mn1phdcixpx76bya43xrivxjbzsfl59ib"; + }; + + # Tests try to access network + doCheck = false; + + checkPhase = '' + py.test + ''; + + checkInputs = [ coverage coveralls docopt mock pylint pytest vcrpy ]; + + propagatedBuildInputs = [ beautifulsoup4 decorator kitchen requests six ]; + + meta = with lib; { + description = "Browse Reddit from your Terminal (fork of rtv)"; + homepage = "https://gitlab.com/ajak/tuir/"; + license = licenses.mit; + maintainers = with maintainers; [ Br1ght0ne matthiasbeyer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tut/default.nix b/nixpkgs/pkgs/applications/misc/tut/default.nix new file mode 100644 index 000000000000..4901eda54aa6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tut/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "tut"; + version = "0.0.20"; + + src = fetchFromGitHub { + owner = "RasmusLindroth"; + repo = pname; + rev = version; + sha256 = "03jiv5m807z96796fbpi6ny22am3sq4jfni37fxbld05sxdzwcnd"; + }; + + vendorSha256 = "1in5b7ixnm5iizkzziqclvgaq87ccdh507amkgfhfy5sxsgbfb1g"; + + meta = with lib; { + description = "A TUI for Mastodon with vim inspired keys"; + homepage = "https://github.com/RasmusLindroth/tut"; + license = licenses.mit; + maintainers = with maintainers; [ equirosa ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix b/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix new file mode 100644 index 000000000000..fa08b5f555a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix @@ -0,0 +1,56 @@ +{ lib, stdenv, fetchurl, makeWrapper, jre, makeDesktopItem }: + +let + desktopItem = makeDesktopItem { + name = "tvbrowser"; + exec = "tvbrowser"; + icon = "tvbrowser"; + comment = "Themeable and easy to use TV Guide"; + desktopName = "TV-Browser"; + genericName = "Electronic TV Program Guide"; + categories = "AudioVideo;TV;Java;"; + startupNotify = "true"; + extraEntries = '' + StartupWMClass=tvbrowser-TVBrowser + ''; + }; + +in stdenv.mkDerivation rec { + pname = "tvbrowser"; + version = "4.0.1"; + name = "${pname}-bin-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/${pname}/TV-Browser%20Releases%20%28Java%208%20and%20higher%29/${version}/${pname}_${version}_bin.tar.gz"; + sha256 = "0ahsirf6cazs5wykgbwsc6n35w6jprxyphzqmm7d370n37sb07pm"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/share/java/${pname} + cp -R * $out/share/java/${pname} + rm $out/share/java/${pname}/${pname}.{sh,desktop} + + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications/ + + for i in 16 32 48 128; do + mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps + ln -s $out/share/java/${pname}/imgs/${pname}$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/${pname}.png + done + + mkdir -p $out/bin + makeWrapper ${jre}/bin/java $out/bin/${pname} \ + --add-flags "-jar $out/share/java/${pname}/${pname}.jar" \ + --run "cd $out/share/java/${pname}" + ''; + + meta = with lib; { + description = "Electronic TV Program Guide"; + homepage = "https://www.tvbrowser.org/"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ jfrankenau ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix b/nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix new file mode 100644 index 000000000000..a8ffb46c1f88 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonApplication +, fetchPypi +, requests +, twitch-python +, pytz +, python-dateutil +}: + +buildPythonApplication rec { + pname = "twitch-chat-downloader"; + version = "3.2.1"; + + src = fetchPypi { + inherit version; + pname = "tcd"; + sha256 = "f9b5ea2ad3badb7deffdd9604368ccb54170cd7929efbaa2d7b534e089ae6338"; + }; + + postPatch = '' + substituteInPlace setup.py --replace "'pipenv>=2020.5.28'," "" + ''; + + propagatedBuildInputs = [ requests twitch-python pytz python-dateutil ]; + + doCheck = false; # no tests + + pythonImportsCheck = [ "tcd" ]; + + meta = with lib; { + description = "Twitch Chat Downloader"; + homepage = "https://github.com/PetterKraabol/Twitch-Chat-Downloader"; + license = licenses.mit; + maintainers = with maintainers; [ marsam ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/twmn/default.nix b/nixpkgs/pkgs/applications/misc/twmn/default.nix new file mode 100644 index 000000000000..b7974966be45 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/twmn/default.nix @@ -0,0 +1,36 @@ +{ lib, mkDerivation, fetchFromGitHub, qtbase, qtx11extras, qmake, pkg-config, boost }: + +mkDerivation { + name = "twmn-git-2018-10-01"; + + src = fetchFromGitHub { + owner = "sboli"; + repo = "twmn"; + rev = "80f48834ef1a07087505b82358308ee2374b6dfb"; + sha256 = "0mpjvp800x07lp9i3hfcc5f4bqj1fj4w3dyr0zwaxc6wqmm0fdqz"; + }; + + nativeBuildInputs = [ pkg-config qmake ]; + buildInputs = [ qtbase qtx11extras boost ]; + + postPatch = '' + sed -i s/-Werror// twmnd/twmnd.pro + ''; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/bin" + cp bin/* "$out/bin" + + runHook postInstall + ''; + + meta = { + description = "A notification system for tiling window managers"; + homepage = "https://github.com/sboli/twmn"; + platforms = with lib.platforms; linux; + maintainers = [ lib.maintainers.matejc ]; + license = lib.licenses.lgpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/tzupdate/default.nix b/nixpkgs/pkgs/applications/misc/tzupdate/default.nix new file mode 100644 index 000000000000..f6416f0f3522 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/tzupdate/default.nix @@ -0,0 +1,23 @@ +{ lib, python3 }: + +let + inherit (python3.pkgs) buildPythonApplication fetchPypi requests; +in +buildPythonApplication rec { + pname = "tzupdate"; + version = "2.1.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "5b55795c390e4ccc90e649c8cc387447daaf30a21d68f7196b49824cbcba8adc"; + }; + + propagatedBuildInputs = [ requests ]; + + meta = with lib; { + description = "Update timezone information based on geoip"; + homepage = "https://github.com/cdown/tzupdate"; + maintainers = [ maintainers.michaelpj ]; + license = licenses.unlicense; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/udevil/default.nix b/nixpkgs/pkgs/applications/misc/udevil/default.nix new file mode 100644 index 000000000000..9d1df5245edc --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/udevil/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, intltool, glib, pkg-config, udev, util-linux, acl }: + +stdenv.mkDerivation rec { + pname = "udevil"; + version = "0.4.4"; + + src = fetchFromGitHub { + owner = "IgnorantGuru"; + repo = "udevil"; + rev = version; + sha256 = "0nd44r8rbxifx4x4m24z5aji1c6k1fhw8cmf5s43wd5qys0bcdad"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ intltool glib udev ]; + + configurePhase = '' + substituteInPlace src/Makefile.in --replace "-o root -g root" "" + # do not set setuid bit in nix store + substituteInPlace src/Makefile.in --replace 4755 0755 + ./configure \ + --prefix=$out \ + --with-mount-prog=${util-linux}/bin/mount \ + --with-umount-prog=${util-linux}/bin/umount \ + --with-losetup-prog=${util-linux}/bin/losetup \ + --with-setfacl-prog=${acl.bin}/bin/setfacl \ + --sysconfdir=$prefix/etc + ''; + + postInstall = '' + substituteInPlace $out/lib/systemd/system/devmon@.service \ + --replace /usr/bin/devmon "$out/bin/devmon" + ''; + + patches = [ ./device-info-sys-stat.patch ]; + + meta = with lib; { + description = "A command line Linux program which mounts and unmounts removable devices without a password, shows device info, and monitors device changes"; + homepage = "https://ignorantguru.github.io/udevil/"; + platforms = platforms.linux; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch b/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch new file mode 100644 index 000000000000..554682108e39 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch @@ -0,0 +1,14 @@ +diff --git a/src/device-info.h b/src/device-info.h +index 6cb3683..ddac24c 100644 +--- a/src/device-info.h ++++ b/src/device-info.h +@@ -18,7 +18,8 @@ + // intltool + #include <glib/gi18n.h> + +- ++// stat ++#include <sys/stat.h> + + typedef struct device_t { + struct udev_device *udevice; diff --git a/nixpkgs/pkgs/applications/misc/udiskie/default.nix b/nixpkgs/pkgs/applications/misc/udiskie/default.nix new file mode 100644 index 000000000000..7563fa0ca3d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/udiskie/default.nix @@ -0,0 +1,89 @@ +{ lib +, fetchFromGitHub +, asciidoc-full +, buildPythonApplication +, docopt +, gettext +, gobject-introspection +, gtk3 +, keyutils +, libappindicator-gtk3 +, libnotify +, librsvg +, nose +, pygobject3 +, pyyaml +, udisks2 +, wrapGAppsHook +}: + +buildPythonApplication rec { + pname = "udiskie"; + version = "2.3.3"; + + src = fetchFromGitHub { + owner = "coldfix"; + repo = "udiskie"; + rev = "v${version}"; + hash = "sha256-OeNAcL7jd8GiPVUGxWwX4N/G/jzxfyifaoSD/hXXwyM="; + }; + + nativeBuildInputs = [ + asciidoc-full # Man page + gettext + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + gobject-introspection + gtk3 + libappindicator-gtk3 + libnotify + librsvg # Because it uses SVG icons + udisks2 + ]; + + propagatedBuildInputs = [ + docopt + pygobject3 + pyyaml + ]; + + postBuild = "make -C doc"; + + postInstall = '' + mkdir -p $out/share/man/man8 + cp -v doc/udiskie.8 $out/share/man/man8/ + ''; + + checkInputs = [ + keyutils + nose + ]; + + checkPhase = '' + nosetests + ''; + + meta = with lib; { + homepage = "https://github.com/coldfix/udiskie"; + description = "Removable disk automounter for udisks"; + longDescription = '' + udiskie is a udisks2 front-end that allows to manage removeable media such + as CDs or flash drives from userspace. + + Its features include: + - automount removable media + - notifications + - tray icon + - command line tools for manual un-/mounting + - LUKS encrypted devices + - unlocking with keyfiles (requires udisks 2.6.4) + - loop devices (mounting iso archives) + - password caching (requires python keyutils 0.3) + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch b/nixpkgs/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch new file mode 100644 index 000000000000..f14d7f718027 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ulauncher/0001-Adjust-get_data_path-for-NixOS.patch @@ -0,0 +1,55 @@ +From 86cc27022015697a61d1ec1b13e52f9dbe7f6c57 Mon Sep 17 00:00:00 2001 +From: worldofpeace <worldofpeace@protonmail.ch> +Date: Mon, 23 Mar 2020 18:34:00 -0400 +Subject: [PATCH] Adjust get_data_path for NixOS + +We construct the ulauncher data path from xdg_data_dirs +and prevent it from being a nix store path or being xdg_data_home. +We do this to prevent /nix/store paths being hardcoded to shortcuts.json. +On NixOS this path will either be /run/current-system/sw/share/ulauncher +or $HOME/.nix-profile/share/ulauncher if the user used nix-env. +--- + ulauncher/config.py | 27 ++++++++++++++++++--------- + 1 file changed, 18 insertions(+), 9 deletions(-) + +diff --git a/ulauncher/config.py b/ulauncher/config.py +index f21014e..cc636e1 100644 +--- a/ulauncher/config.py ++++ b/ulauncher/config.py +@@ -50,15 +50,24 @@ def get_data_path(): + is specified at installation time. + """ + +- # Get pathname absolute or relative. +- path = os.path.join( +- os.path.dirname(__file__), __ulauncher_data_directory__) +- +- abs_data_path = os.path.abspath(path) +- if not os.path.exists(abs_data_path): +- raise ProjectPathNotFoundError(abs_data_path) +- +- return abs_data_path ++ paths = list( ++ filter( ++ os.path.exists, ++ [ ++ os.path.join(dir, "ulauncher") ++ for dir in xdg_data_dirs ++ # Get path that isn't in the /nix/store so they don't get hardcoded into configs ++ if not dir.startswith("/nix/store/") ++ # Exclude .local/share/ulauncher which isn't what we want ++ if not dir.startswith(xdg_data_home) ++ ], ++ ) ++ ) ++ ++ try: ++ return paths[0] ++ except: ++ raise ProjectPathNotFoundError() + + + def is_wayland(): +-- +2.25.1 + diff --git a/nixpkgs/pkgs/applications/misc/ulauncher/default.nix b/nixpkgs/pkgs/applications/misc/ulauncher/default.nix new file mode 100644 index 000000000000..6d9d9deefa20 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ulauncher/default.nix @@ -0,0 +1,120 @@ +{ lib +, fetchurl +, nix-update-script +, python3Packages +, gdk-pixbuf +, glib +, gnome +, gobject-introspection +, gtk3 +, wrapGAppsHook +, webkitgtk +, libnotify +, keybinder3 +, libappindicator +, intltool +, wmctrl +, xvfb-run +, librsvg +}: + +python3Packages.buildPythonApplication rec { + pname = "ulauncher"; + version = "5.9.0"; + + disabled = python3Packages.isPy27; + + src = fetchurl { + url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz"; + sha256 = "sha256-jRCrkJcjUHDd3wF+Hkxg0QaW7YgIh7zM/KZ4TAH84/U="; + }; + + nativeBuildInputs = with python3Packages; [ + distutils_extra + intltool + wrapGAppsHook + ]; + + buildInputs = [ + gdk-pixbuf + glib + gnome.adwaita-icon-theme + gobject-introspection + gtk3 + keybinder3 + libappindicator + libnotify + librsvg + webkitgtk + wmctrl + ]; + + propagatedBuildInputs = with python3Packages; [ + mock + mypy + mypy-extensions + dbus-python + pygobject3 + pyinotify + python-Levenshtein + pyxdg + requests + websocket-client + ]; + + checkInputs = with python3Packages; [ + mock + pytest + pytest-mock + xvfb-run + ]; + + patches = [ + ./fix-path.patch + ./0001-Adjust-get_data_path-for-NixOS.patch + ./fix-extensions.patch + ]; + + postPatch = '' + substituteInPlace setup.py --subst-var out + ''; + + # https://github.com/Ulauncher/Ulauncher/issues/390 + doCheck = false; + + preCheck = '' + export PYTHONPATH=$PYTHONPATH:$out/${python3Packages.python.sitePackages} + ''; + + # Simple translation of + # - https://github.com/Ulauncher/Ulauncher/blob/f5a601bdca75198a6a31b9d84433496b63530e74/test + checkPhase = '' + runHook preCheck + + # skip tests in invocation that handle paths that + # aren't nix friendly (i think) + xvfb-run -s '-screen 0 1024x768x16' \ + pytest -k 'not TestPath and not test_handle_key_press_event' tests + + runHook postCheck + ''; + + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ wmctrl ]}") + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + + meta = with lib; { + description = "A fast application launcher for Linux, written in Python, using GTK"; + homepage = "https://ulauncher.io/"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ aaronjanse ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/ulauncher/fix-extensions.patch b/nixpkgs/pkgs/applications/misc/ulauncher/fix-extensions.patch new file mode 100644 index 000000000000..f6d00f9fafd5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ulauncher/fix-extensions.patch @@ -0,0 +1,13 @@ +diff --git a/ulauncher/api/server/ExtensionRunner.py b/ulauncher/api/server/ExtensionRunner.py +index 22042bf..f7b31c8 100644 +--- a/ulauncher/api/server/ExtensionRunner.py ++++ b/ulauncher/api/server/ExtensionRunner.py +@@ -79,7 +79,7 @@ class ExtensionRunner: + cmd = [sys.executable, os.path.join(self.extensions_dir, extension_id, 'main.py')] + env = os.environ.copy() + env['ULAUNCHER_WS_API'] = self.extension_server.generate_ws_url(extension_id) +- env['PYTHONPATH'] = ':'.join(filter(bool, [ULAUNCHER_APP_DIR, os.getenv('PYTHONPATH')])) ++ env['PYTHONPATH'] = ':'.join([ULAUNCHER_APP_DIR] + sys.path) + + if self.verbose: + env['VERBOSE'] = '1' diff --git a/nixpkgs/pkgs/applications/misc/ulauncher/fix-path.patch b/nixpkgs/pkgs/applications/misc/ulauncher/fix-path.patch new file mode 100644 index 000000000000..2936df65194e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ulauncher/fix-path.patch @@ -0,0 +1,13 @@ +diff --git a/setup.py b/setup.py +index 3616104..e9bbfda 100755 +--- a/setup.py ++++ b/setup.py +@@ -112,7 +112,7 @@ class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto): + DistUtilsExtra.auto.install_auto.run(self) + + target_data = '/' + os.path.relpath(self.install_data, self.root) + '/' +- target_pkgdata = target_data + 'share/ulauncher/' ++ target_pkgdata = '@out@/share/ulauncher/' + target_scripts = '/' + os.path.relpath(self.install_scripts, + self.root) + '/' + diff --git a/nixpkgs/pkgs/applications/misc/ultralist/default.nix b/nixpkgs/pkgs/applications/misc/ultralist/default.nix new file mode 100644 index 000000000000..af2b6be2b2ff --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/ultralist/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ultralist"; + version = "1.7.0"; + + src = fetchFromGitHub { + owner = "ultralist"; + repo = "ultralist"; + rev = version; + sha256 = "sha256-GGBW6rpwv1bVbLTD//cU8jNbq/27Ls0su7DymCJTSmY="; + }; + + vendorSha256 = null; + + meta = with lib; { + description = "Simple GTD-style todo list for the command line"; + homepage = "https://ultralist.io"; + license = licenses.mit; + maintainers = with maintainers; [ uvnikita ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/unipicker/default.nix b/nixpkgs/pkgs/applications/misc/unipicker/default.nix new file mode 100644 index 000000000000..7ec284f402d1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/unipicker/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, lib, fzf, xclip }: + +stdenv.mkDerivation rec { + pname = "unipicker"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "jeremija"; + repo = pname; + rev = "v${version}"; + sha256 = "1k4v53pm3xivwg9vq2kndpcmah0yn4679r5jzxvg38bbkfdk86c1"; + }; + + buildInputs = [ + fzf + xclip + ]; + + preInstall = '' + substituteInPlace unipicker --replace "/etc/unipickerrc" "$out/etc/unipickerrc" + substituteInPlace unipickerrc --replace "/usr/local" "$out" + ''; + + makeFlags = [ + "PREFIX=$(out)" + "DESTDIR=$(out)" + ]; + + meta = with lib; { + description = "A CLI utility for searching unicode characters by description and optionally copying them to clipboard"; + homepage = "https://github.com/jeremija/unipicker"; + license = licenses.mit; + maintainers = with maintainers; [ kiyengar ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/upwork/default.nix b/nixpkgs/pkgs/applications/misc/upwork/default.nix new file mode 100644 index 000000000000..976aae781710 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/upwork/default.nix @@ -0,0 +1,57 @@ +{ lib, stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook +, alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype +, gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid +, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb +, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }: + +stdenv.mkDerivation rec { + pname = "upwork"; + version = "5.5.0.11"; + + src = fetchurl { + url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_5_0_11_61df9c99b6df4e7b/${pname}_${version}_amd64.deb"; + sha256 = "db83d5fb1b5383992c6156284f6f3cd3a6b23f727ce324ba90c82817553fb4f7"; + }; + + dontWrapGApps = true; + + nativeBuildInputs = [ + dpkg + wrapGAppsHook + autoPatchelfHook + ]; + + buildInputs = [ + libcxx systemd libpulseaudio + stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype + gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid + libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender + libXtst nspr nss libxcb pango systemd libXScrnSaver + ]; + + libPath = lib.makeLibraryPath buildInputs; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + installPhase = '' + runHook preInstall + mv usr $out + mv opt $out + sed -e "s|/opt/Upwork|$out/bin|g" -i $out/share/applications/upwork.desktop + + makeWrapper $out/opt/Upwork/upwork \ + $out/bin/upwork \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --prefix LD_LIBRARY_PATH : ${libPath} + runHook postInstall + ''; + + meta = with lib; { + description = "Online freelancing platform desktop application for time tracking"; + homepage = "https://www.upwork.com/ab/downloads/"; + license = licenses.unfree; + maintainers = with maintainers; [ zakkor wolfangaukang ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/urlscan/default.nix b/nixpkgs/pkgs/applications/misc/urlscan/default.nix new file mode 100644 index 000000000000..576d66659a3a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/urlscan/default.nix @@ -0,0 +1,24 @@ +{ lib, python3Packages, fetchFromGitHub }: + +python3Packages.buildPythonApplication rec { + pname = "urlscan"; + version = "0.9.6"; + + src = fetchFromGitHub { + owner = "firecat53"; + repo = pname; + rev = version; + sha256 = "D+WJ1HG1gXIFtIpaqazFqC9Y4GBCUsz88U8q8W9tHFA="; + }; + + propagatedBuildInputs = [ python3Packages.urwid ]; + + doCheck = false; # No tests available + + meta = with lib; { + description = "Mutt and terminal url selector (similar to urlview)"; + homepage = "https://github.com/firecat53/urlscan"; + license = licenses.gpl2; + maintainers = with maintainers; [ dpaetzel jfrankenau ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/urlview/default.nix b/nixpkgs/pkgs/applications/misc/urlview/default.nix new file mode 100644 index 000000000000..0374fb91844d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/urlview/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchurl, ncurses, autoreconfHook }: + +stdenv.mkDerivation rec { + version = "0.9"; + patchLevel = "19"; + + name = "urlview-${version}-${patchLevel}"; + + urlBase = "mirror://debian/pool/main/u/urlview/"; + + src = fetchurl { + url = urlBase + "urlview_${version}.orig.tar.gz"; + sha256 = "746ff540ccf601645f500ee7743f443caf987d6380e61e5249fc15f7a455ed42"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ ncurses ]; + + preAutoreconf = '' + touch NEWS + ''; + + preConfigure = '' + mkdir -p $out/share/man/man1 + ''; + + debianPatches = fetchurl { + url = urlBase + "urlview_${version}-${patchLevel}.diff.gz"; + sha256 = "056883c17756f849fb9235596d274fbc5bc0d944fcc072bdbb13d1e828301585"; + }; + + patches = debianPatches; + + postPatch = '' + substituteInPlace urlview.c \ + --replace '/etc/urlview/url_handler.sh' "$out/etc/urlview/url_handler.sh" + ''; + + postInstall = '' + install -Dm755 url_handler.sh $out/etc/urlview/url_handler.sh + patchShebangs $out/etc/urlview + ''; + + meta = with lib; { + description = "Extract URLs from text"; + homepage = "https://packages.qa.debian.org/u/urlview.html"; + license = licenses.gpl2; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/usb-reset/default.nix b/nixpkgs/pkgs/applications/misc/usb-reset/default.nix new file mode 100644 index 000000000000..db05eda0d41d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/usb-reset/default.nix @@ -0,0 +1,41 @@ +{ lib +, stdenv +, fetchFromGitHub +, libusb1 +}: + +stdenv.mkDerivation rec { + pname = "usb-reset"; + # not tagged, but changelog has this with the date of the e9a9d6c commit + # and no significant change occured between bumping the version in the Makefile and that + # and the changes since then (up to ff822d8) seem snap related + version = "0.3"; + + src = fetchFromGitHub { + owner = "ralight"; + repo = pname; + rev = "e9a9d6c4a533430e763e111a349efbba69e7a5bb"; + sha256 = "0k9qmhqi206gcnv3z4vwya82g5nm225972ylf67zjiikk8pn8m0s"; + }; + + buildInputs = [ libusb1 ]; + + postPatch = '' + substituteInPlace Makefile \ + --replace /usr/include/libusb-1.0 ${libusb1.dev}/include/libusb-1.0 + ''; + + makeFlags = [ + "DESTDIR=${placeholder "out"}" + "prefix=" + ]; + + meta = with lib; { + description = "Perform a bus reset on a USB device using its vendor and product ID"; + homepage = "https://github.com/ralight/usb-reset"; + changelog = "https://github.com/ralight/usb-reset/blob/master/ChangeLog.txt"; + license = licenses.mit; + maintainers = [ maintainers.evils ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/usql/default.nix b/nixpkgs/pkgs/applications/misc/usql/default.nix new file mode 100644 index 000000000000..7a83ec05c10a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/usql/default.nix @@ -0,0 +1,56 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, unixODBC +, icu +}: + +buildGoModule rec { + pname = "usql"; + version = "0.9.1"; + + src = fetchFromGitHub { + owner = "xo"; + repo = "usql"; + rev = "v${version}"; + sha256 = "sha256-fcKn4kHIRvMdgGFKDNQg49YxLc0Y5j/8VwKoDLiXbEU="; + }; + + vendorSha256 = "sha256-uAV8NLnqXjIDILfnbbkVr2BOIucQ8vX89KI5yIkVtus="; + + buildInputs = [ unixODBC icu ]; + + # These tags and flags are copied from build-release.sh + buildFlags = [ "-tags" ]; + buildFlagsArray = [ + "most" + "sqlite_app_armor" + "sqlite_fts5" + "sqlite_introspect" + "sqlite_json1" + "sqlite_stat4" + "sqlite_userauth" + "sqlite_vtable" + "sqlite_icu" + "no_adodb" + ]; + + ldflags = [ + "-s" + "-w" + "-X github.com/xo/usql/text.CommandVersion=${version}" + ]; + + # All the checks currently require docker instances to run the databases. + doCheck = false; + + meta = with lib; { + description = "Universal command-line interface for SQL databases"; + homepage = "https://github.com/xo/usql"; + license = licenses.mit; + maintainers = with maintainers; [ georgyo ]; + # usql does not build on ARM. + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/usync/default.nix b/nixpkgs/pkgs/applications/misc/usync/default.nix new file mode 100644 index 000000000000..cf51a53e7139 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/usync/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, scsh, rsync, unison }: + +stdenv.mkDerivation rec { + pname = "usync"; + version = "0.0.3"; + + src = fetchFromGitHub { + owner = "ebzzry"; + repo = "usync"; + rev = "99f11b0c196a81843f55ca3456abcb85149b6d51"; + sha256 = "16i1q8f0jmfd43rb8d70l2b383vr5ib4kh7iq3yd345q7xjz9c2j"; + }; + + installPhase = '' + install -m 555 -Dt $out/bin $pname + ''; + + postFixup = '' + substituteInPlace $out/bin/$pname --replace "/usr/bin/env scsh" "${scsh}/bin/scsh" + substituteInPlace $out/bin/$pname --replace "(rsync " "(${rsync}/bin/rsync " + substituteInPlace $out/bin/$pname --replace "(unison " "(${unison}/bin/unison " + ''; + + meta = with lib; { + homepage = "https://github.com/ebzzry/usync"; + description = "A simple site-to-site synchronization tool"; + license = licenses.mit; + maintainers = [ maintainers.ebzzry ]; + platforms = platforms.unix; + }; + + dontBuild = true; +} diff --git a/nixpkgs/pkgs/applications/misc/valentina/default.nix b/nixpkgs/pkgs/applications/misc/valentina/default.nix new file mode 100644 index 000000000000..7329d8204cd7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/valentina/default.nix @@ -0,0 +1,66 @@ +{ mkDerivation, lib, fetchhg +, qmake, qttools +, qtbase, qtsvg, qtxmlpatterns +, poppler_utils +}: + +with lib; + +mkDerivation rec { + pname = "valentina"; + version = "0.6.1"; + + src = fetchhg { + url = "https://bitbucket.org/dismine/valentina"; + rev = "v${version}"; + sha256 = "0dxk2av7xbsd233sr9wa1hamzb7pp8yx6p5b43rsnvnzchkqf423"; + }; + + postPatch = '' + substituteInPlace common.pri \ + --replace '$$[QT_INSTALL_HEADERS]/QtXmlPatterns' '${getDev qtxmlpatterns}/include/QtXmlPatterns' \ + --replace '$$[QT_INSTALL_HEADERS]/QtSvg' '${getDev qtsvg}/include/QtSvg' \ + --replace '$$[QT_INSTALL_HEADERS]/' '${getDev qtbase}/include/' \ + --replace '$$[QT_INSTALL_HEADERS]' '${getDev qtbase}' + substituteInPlace src/app/tape/tape.pro \ + --replace '$$[QT_INSTALL_BINS]/rcc' '${getDev qtbase}/bin/rcc' + substituteInPlace src/app/translations.pri \ + --replace '$$[QT_INSTALL_BINS]/$$LRELEASE' '${getDev qttools}/bin/lrelease' + substituteInPlace src/app/valentina/mainwindowsnogui.cpp \ + --replace 'define PDFTOPS "pdftops"' 'define PDFTOPS "${getBin poppler_utils}/bin/pdftops"' + substituteInPlace src/app/valentina/dialogs/dialogsavelayout.h \ + --replace 'define PDFTOPS "pdftops"' 'define PDFTOPS "${getBin poppler_utils}/bin/pdftops"' + ''; + + nativeBuildInputs = [ qmake qttools ]; + + buildInputs = [ qtbase qtsvg qtxmlpatterns poppler_utils ]; + + configurePhase = '' + qmake PREFIX=/ Valentina.pro -r "CONFIG += noTests noRunPath no_ccache noDebugSymbols" + ''; + + installFlags = [ "INSTALL_ROOT=$(out)" ]; + + postInstall = '' + mv $out/usr/share $out/ + rmdir $out/usr + + mkdir -p $out/share/man/man1 + gzip -9c dist/debian/valentina.1 > $out/share/man/man1/valentina.1.gz + gzip -9c dist/debian/tape.1 > $out/share/man/man1/tape.1.gz + + mkdir -p $out/share/mime/packages + cp dist/debian/valentina.sharedmimeinfo $out/share/mime/packages/valentina.xml + ''; + + enableParallelBuilding = true; + + meta = { + description = "An open source sewing pattern drafting software"; + homepage = "https://valentinaproject.bitbucket.io/"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ jfrankenau ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/variety/default.nix b/nixpkgs/pkgs/applications/misc/variety/default.nix new file mode 100644 index 000000000000..9b40c4c44f1f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/variety/default.nix @@ -0,0 +1,87 @@ +{ stdenv, lib, fetchFromGitHub +, python37Packages +, fehSupport ? false, feh +, imagemagickSupport ? true, imagemagick +, intltool +, gtk3 +, gexiv2 +, libnotify +, gobject-introspection +, hicolor-icon-theme +, librsvg +, wrapGAppsHook +, makeWrapper +}: + +with python37Packages; + +buildPythonApplication rec { + pname = "variety"; + version = "0.8.5"; + + src = fetchFromGitHub { + owner = "varietywalls"; + repo = "variety"; + rev = version; + sha256 = "sha256-6dLz4KXavXwnk5GizBH46d2EHMHPjRo0WnnUuVMtI1M="; + }; + + nativeBuildInputs = [ makeWrapper intltool wrapGAppsHook ]; + + buildInputs = [ distutils_extra ]; + + doCheck = false; + + postInstall = '' + wrapProgram $out/bin/variety --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ + ''; + + prePatch = '' + substituteInPlace variety_lib/varietyconfig.py \ + --replace "__variety_data_directory__ = \"../data\"" "__variety_data_directory__ = \"$out/share/variety\"" + substituteInPlace data/scripts/set_wallpaper \ + --replace /bin/bash ${stdenv.shell} + substituteInPlace data/scripts/get_wallpaper \ + --replace /bin/bash ${stdenv.shell} + ''; + + propagatedBuildInputs = [ + beautifulsoup4 + configobj + dbus-python + gexiv2 + gobject-introspection + gtk3 + hicolor-icon-theme + httplib2 + libnotify + librsvg + lxml + pillow + pycairo + pygobject3 + requests + setuptools + ] ++ lib.optional fehSupport feh + ++ lib.optional imagemagickSupport imagemagick; + + meta = with lib; { + homepage = "https://github.com/varietywalls/variety"; + description = "A wallpaper manager for Linux systems"; + longDescription = '' + Variety is a wallpaper manager for Linux systems. It supports numerous + desktops and wallpaper sources, including local files and online services: + Flickr, Wallhaven, Unsplash, and more. + + Where supported, Variety sits as a tray icon to allow easy pausing and + resuming. Otherwise, its desktop entry menu provides a similar set of + options. + + Variety also includes a range of image effects, such as oil painting and + blur, as well as options to layer quotes and a clock onto the background. + ''; + license = licenses.gpl3; + maintainers = with maintainers; [ p3psi AndersonTorres zfnmxt ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/vcal/default.nix b/nixpkgs/pkgs/applications/misc/vcal/default.nix new file mode 100644 index 000000000000..9519e033473e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/vcal/default.nix @@ -0,0 +1,37 @@ +{ stdenv, lib, fetchurl, perl }: + +stdenv.mkDerivation rec { + pname = "vcal"; + version = "2.8"; + + src = fetchurl { + url = "https://waynemorrison.com/software/vcal"; + sha256 = "0jrm0jzqxb1xjp24hwbzlxsh22gjssay9gj4zszljzdm68r5afvc"; + }; + + nativeBuildInputs = [ perl ]; # for pod2man + + dontUnpack = true; + dontBuild = true; + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,share/man/man1} + substitute ${src} $out/bin/vcal \ + --replace /usr/bin/perl ${perl}/bin/perl + chmod 0755 $out/bin/* + pod2man --name=vcal --release=${version} ${src} > $out/share/man/man1/vcal.1 + + runHook postInstall + ''; + + # There are no tests + doCheck = false; + + meta = with lib; { + description = "Parser for VCalendar and ICalendar files, usable from the command line"; + homepage = "https://waynemorrison.com/software/"; + license = licenses.asl20; + maintainers = with maintainers; [ peterhoeg ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/veracrypt/default.nix b/nixpkgs/pkgs/applications/misc/veracrypt/default.nix new file mode 100644 index 000000000000..33d0da5c93a4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/veracrypt/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, makeself +, yasm +, fuse +, wxGTK +, lvm2 +, substituteAll +, e2fsprogs +, exfat +, ntfs3g +, btrfs-progs +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "veracrypt"; + version = "1.24-Update7"; + + src = fetchurl { + url = "https://launchpad.net/${pname}/trunk/${toLower version}/+download/VeraCrypt_${version}_Source.tar.bz2"; + sha256 = "0i7h44zn2mjzgh416l7kfs0dk6qc7b1bxsaxqqqcvgrpl453n7bc"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + ext2 = "${e2fsprogs}/bin/mkfs.ext2"; + ext3 = "${e2fsprogs}/bin/mkfs.ext3"; + ext4 = "${e2fsprogs}/bin/mkfs.ext4"; + exfat = "${exfat}/bin/mkfs.exfat"; + ntfs = "${ntfs3g}/bin/mkfs.ntfs"; + btrfs = "${btrfs-progs}/bin/mkfs.btrfs"; + }) + ]; + + sourceRoot = "src"; + + nativeBuildInputs = [ makeself pkg-config yasm ]; + buildInputs = [ fuse lvm2 wxGTK ]; + + enableParallelBuilding = true; + + installPhase = '' + install -Dm 755 Main/${pname} "$out/bin/${pname}" + install -Dm 444 Resources/Icons/VeraCrypt-256x256.xpm "$out/share/pixmaps/${pname}.xpm" + install -Dm 444 License.txt -t "$out/share/doc/${pname}/" + install -d $out/share/applications + substitute Setup/Linux/${pname}.desktop $out/share/applications/${pname}.desktop \ + --replace "Exec=/usr/bin/veracrypt" "Exec=$out/bin/veracrypt" \ + --replace "Icon=veracrypt" "Icon=veracrypt.xpm" + ''; + + meta = { + description = "Free Open-Source filesystem on-the-fly encryption"; + homepage = "https://www.veracrypt.fr/"; + license = with licenses; [ asl20 /* and */ unfree /* TrueCrypt License version 3.0 */ ]; + maintainers = with maintainers; [ dsferruzza ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/veracrypt/fix-paths.patch b/nixpkgs/pkgs/applications/misc/veracrypt/fix-paths.patch new file mode 100644 index 000000000000..56b4fc483804 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/veracrypt/fix-paths.patch @@ -0,0 +1,22 @@ +diff --color --unified --recursive --text a/Core/VolumeCreator.h b/Core/VolumeCreator.h +--- a/Core/VolumeCreator.h 2021-06-20 20:54:50.725210056 +0300 ++++ b/Core/VolumeCreator.h 2021-06-20 20:58:46.117742419 +0300 +@@ -77,12 +77,12 @@ + switch (fsType) + { + #if defined (TC_LINUX) +- case VolumeCreationOptions::FilesystemType::Ext2: return "mkfs.ext2"; +- case VolumeCreationOptions::FilesystemType::Ext3: return "mkfs.ext3"; +- case VolumeCreationOptions::FilesystemType::Ext4: return "mkfs.ext4"; +- case VolumeCreationOptions::FilesystemType::NTFS: return "mkfs.ntfs"; +- case VolumeCreationOptions::FilesystemType::exFAT: return "mkfs.exfat"; +- case VolumeCreationOptions::FilesystemType::Btrfs: return "mkfs.btrfs"; ++ case VolumeCreationOptions::FilesystemType::Ext2: return "@ext2@"; ++ case VolumeCreationOptions::FilesystemType::Ext3: return "@ext3@"; ++ case VolumeCreationOptions::FilesystemType::Ext4: return "@ext4@"; ++ case VolumeCreationOptions::FilesystemType::NTFS: return "@ntfs@"; ++ case VolumeCreationOptions::FilesystemType::exFAT: return "@exfat@"; ++ case VolumeCreationOptions::FilesystemType::Btrfs: return "@btrfs@"; + #elif defined (TC_MACOSX) + case VolumeCreationOptions::FilesystemType::MacOsExt: return "newfs_hfs"; + case VolumeCreationOptions::FilesystemType::exFAT: return "newfs_exfat"; diff --git a/nixpkgs/pkgs/applications/misc/verbiste/default.nix b/nixpkgs/pkgs/applications/misc/verbiste/default.nix new file mode 100644 index 000000000000..9f27f8e73d7f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/verbiste/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, pkg-config, libgnomeui, libxml2 }: + +stdenv.mkDerivation rec { + pname = "verbiste"; + + version = "0.1.47"; + + src = fetchurl { + url = "https://perso.b2b2c.ca/~sarrazip/dev/${pname}-${version}.tar.gz"; + sha256 = "02kzin3pky2q2jnihrch8y0hy043kqqmzxq8j741x80kl0j1qxkm"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ libgnomeui libxml2 ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "http://sarrazip.com/dev/verbiste.html"; + description = "French and Italian verb conjugator"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ orivej ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/vifm/default.nix b/nixpkgs/pkgs/applications/misc/vifm/default.nix new file mode 100644 index 000000000000..531c108cdbf9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/vifm/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, makeWrapper +, pkg-config +, ncurses, libX11 +, util-linux, file, which, groff + + # adds support for handling removable media (vifm-media). Linux only! +, mediaSupport ? false, python3 ? null, udisks2 ? null, lib ? null +}: + +let isFullPackage = mediaSupport; +in stdenv.mkDerivation rec { + pname = if isFullPackage then "vifm-full" else "vifm"; + version = "0.11"; + + src = fetchurl { + url = "https://github.com/vifm/vifm/releases/download/v${version}/vifm-${version}.tar.bz2"; + sha256 = "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + buildInputs = [ ncurses libX11 util-linux file which groff ]; + + postFixup = let + path = lib.makeBinPath + [ udisks2 + (python3.withPackages (p: [p.dbus-python])) + ]; + + wrapVifmMedia = "wrapProgram $out/share/vifm/vifm-media --prefix PATH : ${path}"; + in '' + ${if mediaSupport then wrapVifmMedia else ""} + ''; + + meta = with lib; { + description = "A vi-like file manager${if isFullPackage then "; Includes support for optional features" else ""}"; + maintainers = with maintainers; [ raskin ]; + platforms = if mediaSupport then platforms.linux else platforms.unix; + license = licenses.gpl2; + downloadPage = "https://vifm.info/downloads.shtml"; + homepage = "https://vifm.info/"; + updateWalker = true; + changelog = "https://github.com/vifm/vifm/blob/v${version}/ChangeLog"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/viking/default.nix b/nixpkgs/pkgs/applications/misc/viking/default.nix new file mode 100644 index 000000000000..72c0fefd4e6c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/viking/default.nix @@ -0,0 +1,71 @@ +{ lib, stdenv, fetchurl +, docbook_xml_dtd_45, docbook_xsl, intltool, itstool, libxslt, pkg-config, wrapGAppsHook, yelp-tools +, curl, gdk-pixbuf, gtk3, json-glib, libxml2 +, gpsbabel +, withGeoClue ? true, geoclue2 +, withGeoTag ? true, gexiv2 +, withMagic ? true, file +, withMapnik ? false, mapnik +, withMBTiles ? true, sqlite +, withMd5Hash ? true, nettle +, withOAuth ? true, liboauth +, withRealtimeGPSTracking ? true, gpsd +}: + +stdenv.mkDerivation rec { + pname = "viking"; + version = "1.9"; + + src = fetchurl { + url = "mirror://sourceforge/viking/viking-${version}.tar.bz2"; + sha256 = "0fybpy6k0vmjp231h5ckysl3c0rcnh2afznijwq6y78j4hywyjpy"; + }; + + nativeBuildInputs = [ docbook_xml_dtd_45 docbook_xsl intltool itstool libxslt pkg-config wrapGAppsHook yelp-tools ]; + + buildInputs = [ curl gdk-pixbuf gtk3 json-glib libxml2 ] + ++ lib.optional withGeoClue geoclue2 + ++ lib.optional withGeoTag gexiv2 + ++ lib.optional withMagic file + ++ lib.optional withMapnik mapnik + ++ lib.optional withMBTiles sqlite + ++ lib.optional withMd5Hash nettle + ++ lib.optional withOAuth liboauth + ++ lib.optional withRealtimeGPSTracking gpsd; + + configureFlags = [ + (lib.enableFeature withGeoClue "geoclue") + (lib.enableFeature withGeoTag "geotag") + (lib.enableFeature withMagic "magic") + (lib.enableFeature withMapnik "mapnik") + (lib.enableFeature withMBTiles "mbtiles") + (lib.enableFeature withMd5Hash "nettle") + (lib.enableFeature withOAuth "oauth") + (lib.enableFeature withRealtimeGPSTracking "realtime-gps-tracking") + ]; + + hardeningDisable = [ "format" ]; + + doCheck = true; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : ${lib.makeBinPath [ gpsbabel ]} + ) + ''; + + meta = with lib; { + description = "GPS data editor and analyzer"; + longDescription = '' + Viking is a free/open source program to manage GPS data. You + can import and plot tracks and waypoints, show Openstreetmaps + and/or Terraserver maps under it, download geocaches for an area + on the map, make new tracks and waypoints, see real-time GPS + position, etc. + ''; + homepage = "https://sourceforge.net/projects/viking/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ pSub sikmir ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/visidata/default.nix b/nixpkgs/pkgs/applications/misc/visidata/default.nix new file mode 100644 index 000000000000..11216b1d8878 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/visidata/default.nix @@ -0,0 +1,95 @@ +{ stdenv +, lib +, buildPythonApplication +, fetchFromGitHub +, python-dateutil +, pandas +, requests +, lxml +, openpyxl +, xlrd +, h5py +, psycopg2 +, pyshp +, fonttools +, pyyaml +, pdfminer +, vobject +, tabulate +, wcwidth +, zstandard +, setuptools +, git +, withPcap ? true, dpkt, dnslib +}: +buildPythonApplication rec { + pname = "visidata"; + version = "2.5"; + + src = fetchFromGitHub { + owner = "saulpw"; + repo = "visidata"; + rev = "v${version}"; + sha256 = "1iijggdgj36v7d2zm45c00nrbzxaaah2azflpca0f6fjaaxh3lr2"; + }; + + propagatedBuildInputs = [ + # from visidata/requirements.txt + # packages not (yet) present in nixpkgs are commented + python-dateutil + pandas + requests + lxml + openpyxl + xlrd + h5py + psycopg2 + pyshp + #mapbox-vector-tile + #pypng + fonttools + #sas7bdat + #xport + #savReaderWriter + pyyaml + #namestand + #datapackage + pdfminer + #tabula + vobject + tabulate + wcwidth + zstandard + setuptools + ] ++ lib.optionals withPcap [ dpkt dnslib ]; + + checkInputs = [ + git + ]; + + # check phase uses the output bin, which is not possible when cross-compiling + doCheck = stdenv.buildPlatform == stdenv.hostPlatform; + + checkPhase = '' + # disable some tests which require access to the network + rm tests/load-http.vd # http + rm tests/graph-cursor-nosave.vd # http + rm tests/messenger-nosave.vd # dns + + # tests use git to compare outputs to references + git init -b "test-reference" + git config user.name "nobody"; git config user.email "no@where" + git add .; git commit -m "test reference" + + substituteInPlace dev/test.sh --replace "bin/vd" "$out/bin/vd" + bash dev/test.sh + ''; + + meta = { + description = "Interactive terminal multitool for tabular data"; + license = lib.licenses.gpl3; + maintainers = [ lib.maintainers.raskin ]; + homepage = "http://visidata.org/"; + changelog = "https://github.com/saulpw/visidata/blob/v${version}/CHANGELOG.md"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/vit/default.nix b/nixpkgs/pkgs/applications/misc/vit/default.nix new file mode 100644 index 000000000000..d5c454a06e85 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/vit/default.nix @@ -0,0 +1,41 @@ +{ lib +, python3Packages +, taskwarrior +, glibcLocales +}: + +with python3Packages; + +buildPythonApplication rec { + pname = "vit"; + version = "2.1.0"; + disabled = lib.versionOlder python.version "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "fd34f0b827953dfdecdc39f8416d41c50c24576c33a512a047a71c1263eb3e0f"; + }; + + propagatedBuildInputs = [ + pytz + tasklib + tzlocal + urwid + ]; + + checkInputs = [ glibcLocales ]; + + makeWrapperArgs = [ "--suffix" "PATH" ":" "${taskwarrior}/bin" ]; + + preCheck = '' + export TERM=''${TERM-linux} + ''; + + meta = with lib; { + homepage = "https://github.com/scottkosty/vit"; + description = "Visual Interactive Taskwarrior"; + maintainers = with maintainers; [ dtzWill arcnmx ]; + platforms = platforms.all; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/volnoti/default.nix b/nixpkgs/pkgs/applications/misc/volnoti/default.nix new file mode 100644 index 000000000000..d70918f2e7ce --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/volnoti/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch +, pkg-config, dbus, gdk-pixbuf, glib, libX11, gtk2, librsvg +, dbus-glib, autoreconfHook, wrapGAppsHook }: + +stdenv.mkDerivation { + pname = "volnoti-unstable"; + version = "2013-09-23"; + + src = fetchFromGitHub { + owner = "davidbrazdil"; + repo = "volnoti"; + rev = "4af7c8e54ecc499097121909f02ecb42a8a60d24"; + sha256 = "155lb7w563dkdkdn4752hl0zjhgnq3j4cvs9z98nb25k1xpmpki7"; + }; + + patches = [ + # Fix dbus interface headers. See + # https://github.com/davidbrazdil/volnoti/pull/10 + (fetchpatch { + url = "https://github.com/davidbrazdil/volnoti/pull/10.patch"; + sha256 = "046zfdjmvhb7jrsgh04vfgi35sgy1zkrhd3bzdby3nvds1wslfam"; + }) + ]; + + nativeBuildInputs = [ pkg-config autoreconfHook wrapGAppsHook ]; + + buildInputs = [ + dbus gdk-pixbuf glib libX11 gtk2 dbus-glib librsvg + ]; + + meta = with lib; { + description = "Lightweight volume notification for Linux"; + homepage = "https://github.com/davidbrazdil/volnoti"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.gilligan ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/vp/default.nix b/nixpkgs/pkgs/applications/misc/vp/default.nix new file mode 100644 index 000000000000..d133331a0a7b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/vp/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, SDL, SDL_image }: + +stdenv.mkDerivation rec { + pname = "vp"; + version = "1.8"; + + src = fetchFromGitHub { + owner = "erikg"; + repo = "vp"; + rev = "v${version}"; + sha256 = "08q6xrxsyj6vj0sz59nix9isqz84gw3x9hym63lz6v8fpacvykdq"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + + buildInputs = [ SDL SDL_image ]; + + NIX_CFLAGS_COMPILE="-I${SDL}/include/SDL -I${SDL_image}/include/SDL"; + + meta = with lib; { + homepage = "https://brlcad.org/~erik/"; + description = "SDL based picture viewer/slideshow"; + platforms = platforms.unix; + license = licenses.gpl3; + maintainers = [ maintainers.vrthra ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/vue/default.nix b/nixpkgs/pkgs/applications/misc/vue/default.nix new file mode 100644 index 000000000000..5994df7c559a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/vue/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchurl, jre, runtimeShell }: + +stdenv.mkDerivation rec { + pname = "vue"; + version = "3.3.0"; + src = fetchurl { + url = "http://releases.atech.tufts.edu/jenkins/job/VUE/116/deployedArtifacts/download/artifact.1"; + sha256 = "0yfzr80pw632lkayg4qfmwzrqk02y30yz8br7isyhmgkswyp5rnx"; + }; + + dontUnpack = true; + + installPhase = '' + mkdir -p "$out"/{share/vue,bin} + cp ${src} "$out/share/vue/vue.jar" + echo '#!${runtimeShell}' >> "$out/bin/vue" + echo '${jre}/bin/java -jar "'"$out/share/vue/vue.jar"'" "$@"' >> "$out/bin/vue" + chmod a+x "$out/bin/vue" + ''; + + meta = { + description = "Visual Understanding Environment - mind mapping software"; + maintainers = with lib.maintainers; [ raskin ]; + platforms = with lib.platforms; linux; + license = lib.licenses.free; # Apache License fork, actually + }; +} diff --git a/nixpkgs/pkgs/applications/misc/vul/default.nix b/nixpkgs/pkgs/applications/misc/vul/default.nix new file mode 100644 index 000000000000..9acefa939427 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/vul/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "vul"; + version = "unstable-2020-02-15"; + + src = fetchFromGitHub { + owner = "LukeSmithxyz"; + repo = pname; + rev = "f6ebd8f6b6fb8a111e7b59470d6748fcbe71c559"; + sha256 = "aUl4f82sGOWkEvTDNILDszj5hztDRvYpHVovFl4oOCc="; + }; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + ]; + + meta = with lib; { + description = "Latin Vulgate Bible on the Command Line"; + homepage = "https://github.com/LukeSmithxyz/vul"; + license = licenses.publicDomain; + maintainers = [ maintainers.j0hax ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/vym/default.nix b/nixpkgs/pkgs/applications/misc/vym/default.nix new file mode 100644 index 000000000000..9d820fc4da70 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/vym/default.nix @@ -0,0 +1,61 @@ +{ lib, mkDerivation, fetchurl, pkg-config, qmake, qtscript, qtsvg }: + +mkDerivation rec { + pname = "vym"; + version = "2.7.1"; + + src = fetchurl { + url = "mirror://sourceforge/project/vym/${version}/${pname}-${version}.tar.bz2"; + sha256 = "0lyf0m4y5kn5s47z4sg10215f3jsn3k1bl389jfbh2f5v4srav4g"; + }; + + # Hardcoded paths scattered about all have form share/vym + # which is encouraging, although we'll need to patch them (below). + qmakeFlags = [ + "DATADIR=${placeholder "out"}/share" + "DOCDIR=${placeholder "out"}/share/doc/vym" + ]; + + postPatch = '' + for x in \ + exportoofiledialog.cpp \ + main.cpp \ + mainwindow.cpp \ + tex/*.{tex,lyx}; \ + do + substituteInPlace $x \ + --replace /usr/share/vym $out/share/vym \ + --replace /usr/local/share/vym $out/share/vym \ + --replace /usr/share/doc $out/share/doc/vym + done + ''; + + hardeningDisable = [ "format" ]; + + nativeBuildInputs = [ pkg-config qmake ]; + buildInputs = [ qtscript qtsvg ]; + + postInstall = '' + install -Dm755 -t $out/share/man/man1 doc/*.1.gz + ''; + + dontGzipMan = true; + + meta = with lib; { + description = "A mind-mapping software"; + longDescription = '' + VYM (View Your Mind) is a tool to generate and manipulate maps which show your thoughts. + Such maps can help you to improve your creativity and effectivity. You can use them + for time management, to organize tasks, to get an overview over complex contexts, + to sort your ideas etc. + + Maps can be drawn by hand on paper or a flip chart and help to structure your thoughs. + While a tree like structure like shown on this page can be drawn by hand or any drawing software + vym offers much more features to work with such maps. + ''; + homepage = "http://www.insilmaril.de/vym/"; + license = licenses.gpl2; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/waybar/default.nix b/nixpkgs/pkgs/applications/misc/waybar/default.nix new file mode 100644 index 000000000000..6a3f33db27e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/waybar/default.nix @@ -0,0 +1,89 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, pkg-config +, ninja +, wrapGAppsHook +, wayland +, wlroots +, gtkmm3 +, libsigcxx +, jsoncpp +, fmt +, scdoc +, spdlog +, gtk-layer-shell +, howard-hinnant-date, cmake +, traySupport ? true, libdbusmenu-gtk3 +, pulseSupport ? true, libpulseaudio +, sndioSupport ? true, sndio +, nlSupport ? true, libnl +, udevSupport ? true, udev +, swaySupport ? true, sway +, mpdSupport ? true, libmpdclient +, withMediaPlayer ? false, glib, gobject-introspection, python3, python38Packages, playerctl +}: + +stdenv.mkDerivation rec { + pname = "waybar"; + version = "0.9.7"; + + src = fetchFromGitHub { + owner = "Alexays"; + repo = "Waybar"; + rev = version; + sha256 = "17cn4d3dx92v40jd9vl41smp8hh3gf5chd1j2f7l1lrpfpnllg5x"; + }; + + nativeBuildInputs = [ + meson ninja pkg-config scdoc wrapGAppsHook cmake + ] ++ lib.optional withMediaPlayer gobject-introspection; + + propagatedBuildInputs = lib.optionals withMediaPlayer [ + glib + playerctl + python38Packages.pygobject3 + ]; + strictDeps = false; + + buildInputs = with lib; + [ wayland wlroots gtkmm3 libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date ] + ++ optional traySupport libdbusmenu-gtk3 + ++ optional pulseSupport libpulseaudio + ++ optional sndioSupport sndio + ++ optional nlSupport libnl + ++ optional udevSupport udev + ++ optional swaySupport sway + ++ optional mpdSupport libmpdclient; + + mesonFlags = (lib.mapAttrsToList + (option: enable: "-D${option}=${if enable then "enabled" else "disabled"}") + { + dbusmenu-gtk = traySupport; + pulseaudio = pulseSupport; + sndio = sndioSupport; + libnl = nlSupport; + libudev = udevSupport; + mpd = mpdSupport; + } + ) ++ [ + "-Dout=${placeholder "out"}" + "-Dsystemd=disabled" + ]; + + preFixup = lib.optional withMediaPlayer '' + cp $src/resources/custom_modules/mediaplayer.py $out/bin/waybar-mediaplayer.py + + wrapProgram $out/bin/waybar-mediaplayer.py \ + --prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}" + ''; + + meta = with lib; { + description = "Highly customizable Wayland bar for Sway and Wlroots based compositors"; + license = licenses.mit; + maintainers = with maintainers; [ FlorianFranzen minijackson synthetica lovesegfault ]; + platforms = platforms.unix; + homepage = "https://github.com/alexays/waybar"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wbg/default.nix b/nixpkgs/pkgs/applications/misc/wbg/default.nix new file mode 100644 index 000000000000..4f385ef21740 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wbg/default.nix @@ -0,0 +1,52 @@ +{ stdenv +, lib +, fetchgit +, meson +, ninja +, pkg-config +, git +, scdoc +, cairo +, fcft +, libpng +, librsvg +, libxkbcommon +, pixman +, tllist +, wayland +, wayland-protocols +, wlroots +}: + +stdenv.mkDerivation rec { + pname = "wbg"; + version = "unstable-2020-08-01"; + + src = fetchgit { + url = "https://codeberg.org/dnkl/wbg"; + rev = "1b05bd80d0f40e3ba1e977002d0653f532649269"; + sha256 = "0i1j7aqvj0vl2ww5cvffqci1kjqjn0sw6sp2j0ljblaif6qk9asc"; + }; + + nativeBuildInputs = [ pkg-config meson ninja scdoc git ]; + buildInputs = [ + cairo + fcft + libpng + librsvg + libxkbcommon + pixman + tllist + wayland + wayland-protocols + wlroots + ]; + + meta = with lib; { + description = "Wallpaper application for Wayland compositors"; + homepage = "https://codeberg.org/dnkl/wbg"; + license = licenses.isc; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wcalc/default.nix b/nixpkgs/pkgs/applications/misc/wcalc/default.nix new file mode 100644 index 000000000000..7541b759e06c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wcalc/default.nix @@ -0,0 +1,20 @@ +{ lib, stdenv, fetchurl, mpfr, readline }: + +stdenv.mkDerivation rec { + pname = "wcalc"; + version = "2.5"; + + src = fetchurl { + url = "mirror://sourceforge/w-calc/${pname}-${version}.tar.bz2"; + sha256 = "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f"; + }; + + buildInputs = [ mpfr readline ]; + + meta = with lib; { + description = "A command line calculator"; + homepage = "http://w-calc.sourceforge.net"; + license = licenses.gpl2; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/weather/default.nix b/nixpkgs/pkgs/applications/misc/weather/default.nix new file mode 100644 index 000000000000..bd5a117f0f43 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/weather/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, pythonPackages, installShellFiles }: + +stdenv.mkDerivation rec { + version = "2.4.1"; + pname = "weather"; + + src = fetchurl { + url = "http://fungi.yuggoth.org/weather/src/${pname}-${version}.tar.xz"; + sha256 = "0nf680dl7a2vlgavdhj6ljq8a7lkhvr6zghkpzad53vmilxsndys"; + }; + + nativeBuildInputs = [ + installShellFiles + pythonPackages.wrapPython + ]; + + dontConfigure = true; + dontBuild = true; + + # Upstream doesn't provide a setup.py or alike, so we follow: + # http://fungi.yuggoth.org/weather/doc/install.rst#id3 + installPhase = '' + site_packages=$out/${pythonPackages.python.sitePackages} + install -Dt $out/bin -m 755 weather + install -Dt $site_packages weather.py + install -Dt $out/share/weather-util \ + airports overrides.{conf,log} places slist stations \ + zctas zlist zones + install -Dt $out/etc weatherrc + + sed -i \ + -e "s|/etc|$out/etc|g" \ + -e "s|else: default_setpath = \".:~/.weather|&:$out/share/weather-util|" \ + $site_packages/weather.py + + wrapPythonPrograms + + installManPage weather.1 weatherrc.5 + ''; + + meta = with lib; { + homepage = "http://fungi.yuggoth.org/weather"; + description = "Quick access to current weather conditions and forecasts"; + license = licenses.isc; + maintainers = [ maintainers.matthiasbeyer ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/web-media-controller/default.nix b/nixpkgs/pkgs/applications/misc/web-media-controller/default.nix new file mode 100644 index 000000000000..7e0fbb999f5f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/web-media-controller/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, glib, pcre, json-glib }: + +stdenv.mkDerivation rec { + pname = "wmc-mpris"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "f1u77y"; + repo = pname; + rev = "v${version}"; + sha256 = "1zcnaf9g55cbj9d2zlsr0i15qh0w9gp5jmxkm6dcp1j6yd7j3ymc"; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ glib pcre json-glib ]; + cmakeFlags = [ + "-DCHROMIUM_MANIFEST_DESTINATION=${placeholder "out"}/etc/chromium/native-messaging-hosts" + "-DCHROME_MANIFEST_DESTINATION=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts" + "-DFIREFOX_MANIFEST_DESTINATION=${placeholder "out"}/lib/mozilla/native-messaging-hosts" + ]; + + meta = with lib; { + homepage = "https://github.com/f1u77y/wmc-mpris"; + description = "MPRIS proxy for usage with 'Web Media Controller' web extension"; + license = licenses.unlicense; + maintainers = with maintainers; [ doronbehar ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wego/default.nix b/nixpkgs/pkgs/applications/misc/wego/default.nix new file mode 100644 index 000000000000..4bbd0289a156 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wego/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoPackage, fetchgit }: + +buildGoPackage rec { + pname = "wego"; + version = "unstable-2019-02-11"; + rev = "994e4f141759a1070d7b0c8fbe5fad2cc7ee7d45"; + + goPackagePath = "github.com/schachmat/wego"; + + src = fetchgit { + inherit rev; + url = "https://github.com/schachmat/wego"; + sha256 = "1affzwi5rbp4zkirhmby8bvlhsafw7a4rs27caqwyj8g3jhczmhy"; + }; + + goDeps = ./deps.nix; + + meta = { + license = lib.licenses.isc; + homepage = "https://github.com/schachmat/wego"; + description = "Weather app for the terminal"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wego/deps.nix b/nixpkgs/pkgs/applications/misc/wego/deps.nix new file mode 100644 index 000000000000..133315cd0222 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wego/deps.nix @@ -0,0 +1,48 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.3.0 +[ + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "98ec13f34aabf44cc914c65a1cfb7b9bc815aef1"; + sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "31745d66dd679ac0ac4f8d3ecff168fce6170c6a"; + sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "18c3d09a134a52720932bbaa92c798a0ab111004"; + sha256 = "1snr8mk63vz2h44knq26dm81p83887v7kb09iywqmx0nqzngih66"; + }; + } + { + goPackagePath = "github.com/schachmat/ingo"; + fetch = { + type = "git"; + url = "https://github.com/schachmat/ingo"; + rev = "a4bdc0729a3fda62cc4069b6e490fc657fd54e33"; + sha256 = "1gw0kddy7jh3467imsqni86cf9yq7k6vpfc0ywkbwj0zsjsdgd49"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "b016eb3dc98ea7f69ed55e8216b87187067ae621"; + sha256 = "1k0qr26046d228gi6ngkfxp4m1rjgxk4jj75h0kh1cpyp91n5rja"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/misc/wikicurses/default.nix b/nixpkgs/pkgs/applications/misc/wikicurses/default.nix new file mode 100644 index 000000000000..ec7dff141439 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wikicurses/default.nix @@ -0,0 +1,35 @@ +{ lib, fetchFromGitHub, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + version = "1.4"; + pname = "wikicurses"; + + src = fetchFromGitHub { + owner = "ids1024"; + repo = "wikicurses"; + rev = "v${version}"; + sha256 = "0f14s4qx3q5pr5vn460c34b5mbz2xs62d8ljs3kic8gmdn8x2knm"; + }; + + outputs = [ "out" "man" ]; + + propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ]; + + postInstall = '' + mkdir -p $man/share/man/man{1,5} + cp wikicurses.1 $man/share/man/man1/ + cp wikicurses.conf.5 $man/share/man/man5/ + ''; + + doCheck = false; + + meta = { + description = "A simple curses interface for MediaWiki sites such as Wikipedia"; + homepage = "https://github.com/ids1024/wikicurses/"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ pSub ]; + }; + +} + diff --git a/nixpkgs/pkgs/applications/misc/with-shell/default.nix b/nixpkgs/pkgs/applications/misc/with-shell/default.nix new file mode 100644 index 000000000000..cf52d194f617 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/with-shell/default.nix @@ -0,0 +1,76 @@ +{ lib +, stdenv +, fetchFromGitHub +, installShellFiles +}: + +stdenv.mkDerivation rec { + pname = "with"; + version = "unstable-2018-03-20"; + + src = fetchFromGitHub { + owner = "mchav"; + repo = "With"; + rev = "28eb40bbc08d171daabf0210f420477ad75e16d6"; + hash = "sha256-mKHsLHs9/I+NUdb1t9wZWkPxXcsBlVWSj8fgZckXFXk="; + }; + + nativeBuildInputs = [ installShellFiles ]; + + installPhase = '' + runHook preInstall + install -D with $out/bin/with + installShellCompletion --bash --name with.bash with.bash-completion + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/mchav/With"; + description = "Command prefixing for continuous workflow using a single tool"; + longDescription = '' + with is a Bash script that starts an interactive shell with where every + command is prefixed using <program>. + + For example: + + $ with git + git> add . + git> commit -a -m "Commited" + git> push + + Can also be used for compound commands. + + $ with java Primes + java Primes> 1 + 2 + java Primes> 4 + 7 + + And to repeat commands: + + $ with gcc -o output input.c + gcc -o -output input.c> + <enter> + Compiling... + gcc -o -output input.c> + + To execute a shell command proper prefix line with :. + + git> :ls + + You can also drop, add, and replace different commands. + + git> +add + git add> <some file> + git add> !commit + git commit> <arguments and message> + git commit> - + git> + + To exit use either :q or :exit. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wmname/default.nix b/nixpkgs/pkgs/applications/misc/wmname/default.nix new file mode 100644 index 000000000000..d501869770e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wmname/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, libX11 }: + +stdenv.mkDerivation rec { + name = "wmname-0.1"; + + src = fetchurl { + url = "https://dl.suckless.org/tools/${name}.tar.gz"; + sha256 = "559ad188b2913167dcbb37ecfbb7ed474a7ec4bbcb0129d8d5d08cb9208d02c5"; + }; + + buildInputs = [ libX11 ]; + + preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ]; + + meta = { + description = "Prints or set the window manager name property of the root window"; + homepage = "https://tools.suckless.org/wmname"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wofi-emoji/default.nix b/nixpkgs/pkgs/applications/misc/wofi-emoji/default.nix new file mode 100644 index 000000000000..201add9cda25 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wofi-emoji/default.nix @@ -0,0 +1,54 @@ +{ stdenv, lib, fetchFromGitHub, jq }: + +let + emojiJSON = fetchFromGitHub { + owner = "github"; + repo = "gemoji"; + sha256 = "sha256-Tn0vba129LPlX+MRcCBA9qp2MU1ek1jYzVCqoNxCL/w="; + rev = "v4.0.0.rc2"; + }; + +in stdenv.mkDerivation rec { + pname = "wofi-emoji"; + version = "unstable-2021-05-24"; + + src = fetchFromGitHub { + owner = "dln"; + repo = pname; + rev = "bfe35c1198667489023109f6843217b968a35183"; + sha256 = "sha256-wMIjTUCVn4uF0cpBkPfs76NRvwS0WhGGJRy9vvtmVWQ="; + }; + + nativeBuildInputs = [ jq ]; + + postPatch = '' + cp "${emojiJSON}/db/emoji.json" . + substituteInPlace build.sh \ + --replace 'curl https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json' 'cat emoji.json' + ''; + + buildPhase = '' + runHook preBuild + + bash build.sh + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp wofi-emoji $out/bin + + runHook postInstall + ''; + + meta = with lib; { + description = "Simple emoji selector for Wayland using wofi and wl-clipboard"; + homepage = "https://github.com/dln/wofi-emoji"; + license = licenses.mit; + maintainers = [ maintainers.ymarkus ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wofi/default.nix b/nixpkgs/pkgs/applications/misc/wofi/default.nix new file mode 100644 index 000000000000..d8af28093b9e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wofi/default.nix @@ -0,0 +1,32 @@ +{ stdenv, lib, fetchhg, fetchpatch, pkg-config, meson, ninja, wayland, gtk3, wrapGAppsHook, installShellFiles }: + +stdenv.mkDerivation rec { + pname = "wofi"; + version = "1.2.4"; + + src = fetchhg { + url = "https://hg.sr.ht/~scoopta/wofi"; + rev = "v${version}"; + sha256 = "1bnf078fg1kwslzwm1mjxwcqqq3bhk1dzymwfw9gk3brqbxrl75c"; + }; + + nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook installShellFiles ]; + buildInputs = [ wayland gtk3 ]; + + patches = [ + # https://todo.sr.ht/~scoopta/wofi/121 + ./do_not_follow_symlinks.patch + ]; + + postInstall = '' + installManPage man/wofi* + ''; + + meta = with lib; { + description = "A launcher/menu program for wlroots based wayland compositors such as sway"; + homepage = "https://hg.sr.ht/~scoopta/wofi"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ elyhaka ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch b/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch new file mode 100644 index 000000000000..f917c4c1685d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch @@ -0,0 +1,39 @@ +diff -r 3414ab984249 modes/run.c +--- a/modes/run.c Tue Aug 11 19:07:49 2020 -0700 ++++ b/modes/run.c Sat Aug 22 13:39:52 2020 +0200 +@@ -91,23 +91,10 @@ + + char* path = strdup(getenv("PATH")); + +- struct map* paths = map_init(); +- + char* save_ptr; + char* str = strtok_r(path, ":", &save_ptr); + do { + +- str = realpath(str, NULL); +- if(str == NULL) { +- continue; +- } +- if(map_contains(paths, str)) { +- free(str); +- continue; +- } +- +- map_put(paths, str, "true"); +- + DIR* dir = opendir(str); + if(dir == NULL) { + continue; +@@ -132,11 +119,9 @@ + } + free(full_path); + } +- free(str); + closedir(dir); + } while((str = strtok_r(NULL, ":", &save_ptr)) != NULL); + free(path); +- map_free(paths); + map_free(cached); + map_free(entries); + } diff --git a/nixpkgs/pkgs/applications/misc/wordnet/default.nix b/nixpkgs/pkgs/applications/misc/wordnet/default.nix new file mode 100644 index 000000000000..27694174d703 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wordnet/default.nix @@ -0,0 +1,54 @@ +{ lib, stdenv, fetchurl, tcl, tk, Cocoa, xlibsWrapper, makeWrapper }: + +stdenv.mkDerivation rec { + version = "3.0"; + pname = "wordnet"; + src = fetchurl { + url = "http://wordnetcode.princeton.edu/${version}/WordNet-${version}.tar.bz2"; + sha256 = "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ tcl tk xlibsWrapper ] + ++ lib.optionals stdenv.isDarwin [ Cocoa ]; + + hardeningDisable = [ "format" ]; + + patchPhase = '' + sed "13i#define USE_INTERP_RESULT 1" -i src/stubs.c + ''; + + # Needs the path to `tclConfig.sh' and `tkConfig.sh'. + configureFlags = [ + "--with-tcl=${tcl}/lib" + "--with-tk=${tk}/lib" + ]; + + postInstall = '' + wrapProgram $out/bin/wishwn --set TK_LIBRARY "${tk}/lib/${tk.libPrefix}" + wrapProgram $out/bin/wnb --prefix PATH : "$out/bin" + ''; + + meta = { + description = "Lexical database for the English language"; + + longDescription = + '' WordNet® is a large lexical database of English. Nouns, verbs, + adjectives and adverbs are grouped into sets of cognitive synonyms + (synsets), each expressing a distinct concept. Synsets are + interlinked by means of conceptual-semantic and lexical relations. + The resulting network of meaningfully related words and concepts can + be navigated with the browser. WordNet is also freely and publicly + available for download. WordNet's structure makes it a useful tool + for computational linguistics and natural language processing. + ''; + + homepage = "https://wordnet.princeton.edu/"; + license = { + fullName = "WordNet 3.0 license"; + url = "https://wordnet.princeton.edu/license-and-commercial-use"; + }; + maintainers = [ ]; + platforms = with lib.platforms; linux ++ darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/worker/default.nix b/nixpkgs/pkgs/applications/misc/worker/default.nix new file mode 100644 index 000000000000..20ed6d55f366 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/worker/default.nix @@ -0,0 +1,20 @@ +{ lib, stdenv, libX11, fetchurl }: + +stdenv.mkDerivation rec { + pname = "worker"; + version = "4.7.0"; + + src = fetchurl { + url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz"; + sha256 = "sha256-9x/nHd2nUeFSH7a2qH4qlyH4FRH/NfNvTE1LEaMMSwU="; + }; + + buildInputs = [ libX11 ]; + + meta = with lib; { + description = "A two-pane file manager with advanced file manipulation features"; + homepage = "http://www.boomerangsworld.de/cms/worker/index.html"; + license = licenses.gpl2; + maintainers = []; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/workrave/default.nix b/nixpkgs/pkgs/applications/misc/workrave/default.nix new file mode 100644 index 000000000000..6b63fde222f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/workrave/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, fetchFromGitHub, wrapGAppsHook +, autoconf, autoconf-archive, automake, gettext, intltool, libtool, pkg-config +, libICE, libSM, libXScrnSaver, libXtst, cheetah +, gobject-introspection, glib, glibmm, gtkmm3, atk, pango, pangomm, cairo +, cairomm , dbus, dbus-glib, gdome2, gstreamer, gst-plugins-base +, gst-plugins-good, libsigcxx }: + +stdenv.mkDerivation rec { + pname = "workrave"; + version = "1.10.31"; + + src = fetchFromGitHub { + sha256 = "0v2mx2idaxlsyv5w66b7pknlill9j9i2gqcs3vq54gak7ix9fj1p"; + rev = with lib; + "v" + concatStringsSep "_" (splitVersion version); + repo = "workrave"; + owner = "rcaelers"; + }; + + nativeBuildInputs = [ + autoconf autoconf-archive automake gettext intltool libtool pkg-config wrapGAppsHook + ]; + buildInputs = [ + libICE libSM libXScrnSaver libXtst cheetah + gobject-introspection glib glibmm gtkmm3 atk pango pangomm cairo cairomm + dbus dbus-glib gdome2 gstreamer gst-plugins-base gst-plugins-good libsigcxx + ]; + + preConfigure = "./autogen.sh"; + + enableParallelBuilding = true; + + meta = with lib; { + description = "A program to help prevent Repetitive Strain Injury"; + longDescription = '' + Workrave is a program that assists in the recovery and prevention of + Repetitive Strain Injury (RSI). The program frequently alerts you to + take micro-pauses, rest breaks and restricts you to your daily limit. + ''; + homepage = "http://www.workrave.org/"; + downloadPage = "https://github.com/rcaelers/workrave/releases"; + license = licenses.gpl3; + maintainers = with maintainers; [ prikhi ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/writefreely/default.nix b/nixpkgs/pkgs/applications/misc/writefreely/default.nix new file mode 100644 index 000000000000..5f38d405cb82 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/writefreely/default.nix @@ -0,0 +1,34 @@ +{ lib, buildGoModule, fetchFromGitHub, go-bindata }: + +buildGoModule rec { + pname = "writefreely"; + version = "0.12.0"; + + src = fetchFromGitHub { + owner = "writeas"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-6LpRfDu3xvE1eIRLfZliKnzsrrG5pjjf2ydxn9HQJJU="; + }; + + vendorSha256 = "sha256-U17AkMJQr/OIMED0i2ThcNVw3+aOvRLbpLNP/wEv6k8="; + + nativeBuildInputs = [ go-bindata ]; + + preBuild = '' + make assets + export buildFlagsArray=( + "-ldflags=-s -w -X github.com/writeas/writefreely.softwareVer=${version}" + "-tags='sqlite'" + ) + ''; + + subPackages = [ "cmd/writefreely" ]; + + meta = with lib; { + description = "Build a digital writing community"; + homepage = "https://github.com/writeas/writefreely"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/wtf/default.nix b/nixpkgs/pkgs/applications/misc/wtf/default.nix new file mode 100644 index 000000000000..962059600a4c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/wtf/default.nix @@ -0,0 +1,43 @@ +{ buildGoModule +, fetchFromGitHub +, lib +, makeWrapper +, ncurses +, stdenv +}: + +buildGoModule rec { + pname = "wtf"; + version = "0.36.0"; + + src = fetchFromGitHub { + owner = "wtfutil"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-JVHcunpS+2/0d7XaUZ95m9QpVHCG1Tq8LJ9KNURSRy8="; + }; + + vendorSha256 = "sha256-4uRhbRPfCRYwFlfucXOYhLruj7hkV4G9Sxjh9yQkDEQ="; + + doCheck = false; + + buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; + + subPackages = [ "." ]; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + mv "$out/bin/wtf" "$out/bin/wtfutil" + wrapProgram "$out/bin/wtfutil" --prefix PATH : "${ncurses.dev}/bin" + ''; + + meta = with lib; { + description = "The personal information dashboard for your terminal"; + homepage = "https://wtfutil.com/"; + license = licenses.mpl20; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.linux ++ platforms.darwin; + broken = stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xastir/default.nix b/nixpkgs/pkgs/applications/misc/xastir/default.nix new file mode 100644 index 000000000000..63240e0402fe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xastir/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook +, curl, db, libgeotiff +, libXpm, libXt, motif, pcre +, perl, proj, rastermagick, shapelib +}: + +stdenv.mkDerivation rec { + pname = "xastir"; + version = "2.1.6"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "Release-${version}"; + sha256 = "0yrvwy6hlc73gzwrsrczflyymyz0k33hj991ajrd1vijq14m3n91"; + }; + + buildInputs = [ + autoreconfHook + curl db libgeotiff + libXpm libXt motif pcre + perl proj rastermagick shapelib + ]; + + configureFlags = [ "--with-motif-includes=${motif}/include" ]; + + postPatch = "patchShebangs ."; + + meta = with lib; { + description = "Graphical APRS client"; + homepage = "https://xastir.org"; + license = licenses.gpl2; + maintainers = [ maintainers.ehmry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xautoclick/default.nix b/nixpkgs/pkgs/applications/misc/xautoclick/default.nix new file mode 100644 index 000000000000..3429e80f0540 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xautoclick/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, xorg, pkg-config +, cmake, libevdev +, gtkSupport ? true, gtk3, pcre, glib, wrapGAppsHook +, fltkSupport ? true, fltk +, qtSupport ? true, qt5 +}: + +stdenv.mkDerivation rec { + pname = "xautoclick"; + version = "0.34"; + + src = fetchFromGitHub { + owner = "qarkai"; + repo = "xautoclick"; + rev = "v${version}"; + sha256 = "GN3zI5LQnVmRC0KWffzUTHKrxcqnstiL55hopwTTwpE="; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ libevdev xorg.libXtst ] + ++ lib.optionals gtkSupport [ gtk3 pcre glib wrapGAppsHook ] + ++ lib.optionals fltkSupport [ fltk ] + ++ lib.optionals qtSupport [ qt5.qtbase qt5.wrapQtAppsHook ]; + + meta = with lib; { + description = "Autoclicker application, which enables you to automatically click the left mousebutton"; + homepage = "https://github.com/qarkai/xautoclick"; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xbattbar/default.nix b/nixpkgs/pkgs/applications/misc/xbattbar/default.nix new file mode 100644 index 000000000000..93f5d1c2279c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xbattbar/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, fetchgit, libX11, perl, ... }: + +stdenv.mkDerivation rec { + pname = "xbattbar"; + version = "1.4.9"; + + # The current active upstream of xbattbar seems to be the Debian source + # repository. + src = fetchgit { + url = "https://salsa.debian.org/debian/xbattbar.git"; + rev = "upstream/${version}"; + sha256 = "10w7gs0l4hzhdn38yqyr3az7n4ncmfnd6hhhly6lk5dg7k441ck6"; + }; + + buildInputs = [ libX11 ]; + + # The following patches are applied: + # - sys-by-default: remove the APM checker binary, make the sys checker + # script the default. Rationale: checking battery status by /proc/apm is + # extremely oldschool and does not work on NixOS, while the sysfs script + # does. + # - perl shebang patches for acpi/sys scripts + # - unhardcode path to checker scripts + patchPhase = '' + patch -p1 < ${./sys-by-default.patch} + sed -i -e "s,/usr/lib/xbattbar/,$out/libexec/," xbattbar.c + sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-acpi + sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-sys + ''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/libexec + install -m 0755 xbattbar $out/bin/ + install -m 0755 xbattbar-check-acpi $out/libexec/ + install -m 0755 xbattbar-check-sys $out/libexec/ + ''; + + meta = with lib; { + description = "Display battery status in X11"; + homepage = "https://salsa.debian.org/debian/xbattbar"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.q3k ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch b/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch new file mode 100644 index 000000000000..367f7217eecb --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch @@ -0,0 +1,26 @@ +diff --git a/xbattbar.c b/xbattbar.c +index 1e26019..cb3eab5 100644 +--- a/xbattbar.c ++++ b/xbattbar.c +@@ -75,9 +75,8 @@ char *ONOUT_C = "olive drab"; + char *OFFIN_C = "blue"; + char *OFFOUT_C = "red"; + +-char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-apm"; ++char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-sys"; + char *EXTERNAL_CHECK_ACPI = "/usr/lib/xbattbar/xbattbar-check-acpi"; +-char *EXTERNAL_CHECK_SYS = "/usr/lib/xbattbar/xbattbar-check-sys"; + + int alwaysontop = False; + +@@ -245,10 +244,6 @@ main(int argc, char **argv) + EXTERNAL_CHECK = EXTERNAL_CHECK_ACPI; + break; + +- case 'r': +- EXTERNAL_CHECK = EXTERNAL_CHECK_SYS; +- break; +- + case 's': + EXTERNAL_CHECK = optarg; + break; diff --git a/nixpkgs/pkgs/applications/misc/xca/default.nix b/nixpkgs/pkgs/applications/misc/xca/default.nix new file mode 100644 index 000000000000..9e05e09caefe --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xca/default.nix @@ -0,0 +1,33 @@ +{ mkDerivation, lib, fetchFromGitHub, autoreconfHook, perl, pkg-config +, libtool, openssl, qtbase, qttools }: + +mkDerivation rec { + pname = "xca"; + version = "2.2.1"; + + src = fetchFromGitHub { + owner = "chris2511"; + repo = "xca"; + rev = "RELEASE.${version}"; + sha256 = "0na2816lkfkkvssh9kmf5vwy6x8kd4x7h138jzy61wrvs69vhnbi"; + }; + + postPatch = '' + substituteInPlace doc/code2html \ + --replace /usr/bin/perl ${perl}/bin/perl + ''; + + buildInputs = [ libtool openssl qtbase ]; + + nativeBuildInputs = [ autoreconfHook pkg-config qttools ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "An x509 certificate generation tool, handling RSA, DSA and EC keys, certificate signing requests (PKCS#10) and CRLs"; + homepage = "https://hohnstaedt.de/xca/"; + license = licenses.bsd3; + maintainers = with maintainers; [ offline peterhoeg ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xchm/default.nix b/nixpkgs/pkgs/applications/misc/xchm/default.nix new file mode 100644 index 000000000000..a7037522c627 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xchm/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, chmlib }: + +stdenv.mkDerivation rec { + pname = "xchm"; + version = "1.32"; + + src = fetchFromGitHub { + owner = "rzvncj"; + repo = "xCHM"; + rev = version; + sha256 = "sha256-Ss8kdfUAMC8v05rdt2SoO6vPyssG5v8gOzdf/v18cdg="; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ wxGTK30 chmlib ]; + + configureFlags = [ "--with-wx-prefix=${wxGTK30}" ]; + + preConfigure = '' + export LDFLAGS="$LDFLAGS $(${wxGTK30}/bin/wx-config --libs | sed -e s@-pthread@@) -lwx_gtk2u_aui-3.0" + ''; + + meta = with lib; { + description = "A viewer for Microsoft HTML Help files"; + homepage = "https://github.com/rzvncj/xCHM"; + license = licenses.gpl2; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xcruiser/default.nix b/nixpkgs/pkgs/applications/misc/xcruiser/default.nix new file mode 100644 index 000000000000..2e4771563a04 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xcruiser/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, gccmakedep, imake, libXt, libXaw, libXpm, libXext }: + +stdenv.mkDerivation { + name = "xcruiser-0.30"; + + src = fetchurl { + url = "mirror://sourceforge/xcruiser/xcruiser/xcruiser-0.30/xcruiser-0.30.tar.gz"; + sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi"; + }; + + nativeBuildInputs = [ gccmakedep imake ]; + buildInputs = [ libXt libXaw libXpm libXext ]; + + makeFlags = [ + "BINDIR=$(out)/bin" + "XAPPLOADDIR=$(out)/etc/X11/app-defaults" + ]; + + meta = with lib; { + description = "Filesystem visualization utility"; + longDescription = '' + XCruiser, formerly known as XCruise, is a filesystem visualization utility. + It constructs a virtually 3-D formed universe from a directory + tree and allows you to "cruise" within a visualized filesystem. + ''; + homepage = "http://xcruiser.sourceforge.net/"; + license = licenses.gpl2; + maintainers = with maintainers; [ ehmry ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xdg-launch/default.nix b/nixpkgs/pkgs/applications/misc/xdg-launch/default.nix new file mode 100644 index 000000000000..257b15387baa --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xdg-launch/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, lib +, fetchFromGitHub +, autoconf +, automake +, gettext +, libtool +, perl +, pkg-config +, glib +, xorg +}: +stdenv.mkDerivation rec { + pname = "xdg-launch"; + version = "1.10"; + + postPatch = '' + # fix gettext configuration + echo 'AM_GNU_GETTEXT_VERSION' >> configure.ac + echo 'AM_GNU_GETTEXT([external])' >> configure.ac + + sed -i data/*.desktop \ + -e "s,/usr/bin,/$out/bin,g" + ''; + + src = fetchFromGitHub { + owner = "bbidulock"; + repo = pname; + rev = version; + sha256 = "sha256-WY1TAPnXAn5GOaP9aMHar761m1MkKm4vavLlWELWUu8="; + }; + + preConfigure = "./autogen.sh"; + + buildInputs = [ + xorg.libX11 + xorg.libXrandr + glib # can be optional + ]; + + nativeBuildInputs = [ + autoconf + automake + gettext + libtool + perl # pod2man + pkg-config + ]; + + meta = with lib; { + homepage = "https://github.com/bbidulock/xdg-launch"; + description = "A command line XDG compliant launcher and tools"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.ck3d ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix b/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix new file mode 100644 index 000000000000..00ae2df100e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix @@ -0,0 +1,49 @@ +{ lib, fetchFromGitHub, txt2tags, python3Packages, glib, gobject-introspection, wrapGAppsHook }: + +python3Packages.buildPythonApplication rec { + pname = "xdgmenumaker"; + version = "1.5"; + + src = fetchFromGitHub { + owner = "gapan"; + repo = pname; + rev = version; + sha256 = "1vrsp5c1ah7p4dpwd6aqvinpwzd8crdimvyyr3lbm3c6cwpyjmif"; + }; + + format = "other"; + + strictDeps = false; + + nativeBuildInputs = [ + gobject-introspection + txt2tags + wrapGAppsHook + ]; + + buildInputs = [ + glib + ]; + + pythonPath = with python3Packages; [ + pyxdg + pygobject3 + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + ]; + + installFlags = [ + "DESTDIR=" + ]; + + meta = with lib; { + description = "Command line tool that generates XDG menus for several window managers"; + homepage = "https://github.com/gapan/xdgmenumaker"; + license = licenses.gpl2Plus; + # NOTE: exclude darwin from platforms because Travis reports hash mismatch + platforms = with platforms; filter (x: !(elem x darwin)) unix; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xdragon/default.nix b/nixpkgs/pkgs/applications/misc/xdragon/default.nix new file mode 100644 index 000000000000..39f291a88493 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xdragon/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, gtk3 }: + +stdenv.mkDerivation rec { + pname = "xdragon"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "mwh"; + repo = "dragon"; + rev = "v${version}"; + sha256 = "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk3 ]; + + installFlags = [ "PREFIX=${placeholder "out"}/bin" ]; + postInstall = '' + ln -s $out/bin/dragon $out/bin/xdragon + ''; + + meta = with lib; { + description = "Simple drag-and-drop source/sink for X (called dragon in upstream)"; + homepage = "https://github.com/mwh/dragon"; + license = licenses.gpl3; + maintainers = with maintainers; [ das_j ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xfe/default.nix b/nixpkgs/pkgs/applications/misc/xfe/default.nix new file mode 100644 index 000000000000..17e58cb54d71 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xfe/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, fox, pkg-config, gettext, xlibsWrapper, gcc, intltool, file, libpng }: + +stdenv.mkDerivation rec { + name = "xfe-1.42"; + + src = fetchurl { + url = "mirror://sourceforge/xfe/${name}.tar.gz"; + sha256 = "1v1v0vcbnm30kpyd3rj8f56yh7lfnwy7nbs9785wi229b29fiqx1"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ fox gettext xlibsWrapper gcc intltool file libpng ]; + + preConfigure = '' + sed -i s,/usr/share/xfe,$out/share/xfe, src/xfedefs.h + ''; + + enableParallelBuilding = true; + + meta = { + description = "MS-Explorer like file manager for X"; + longDescription = '' + X File Explorer (Xfe) is an MS-Explorer like file manager for X. + It is based on the popular, but discontinued, X Win Commander, which was developed by Maxim Baranov. + Xfe aims to be the filemanager of choice for all the Unix addicts! + ''; + homepage = "https://sourceforge.net/projects/xfe/"; + license = lib.licenses.gpl2; + maintainers = []; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xfontsel/default.nix b/nixpkgs/pkgs/applications/misc/xfontsel/default.nix new file mode 100644 index 000000000000..365f6217861b --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xfontsel/default.nix @@ -0,0 +1,36 @@ +# This program used to come with xorg releases, but now I could only find it +# at https://www.x.org/releases/individual/. +# That is why this expression is not inside pkgs.xorg + +{lib, stdenv, fetchurl, makeWrapper, libX11, pkg-config, libXaw}: +stdenv.mkDerivation rec { + name = "xfontsel-1.0.6"; + + src = fetchurl { + url = "mirror://xorg/individual/app/${name}.tar.bz2"; + sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + buildInputs = [libX11 libXaw]; + + # Without this, it gets Xmu as a dependency, but without rpath entry + NIX_LDFLAGS = "-lXmu"; + + # This will not make xfontsel find its app-defaults, but at least the $out + # directory will contain them. + # hack: Copying the XFontSel app-defaults file to $HOME makes xfontsel work. + installPhase = '' + make install appdefaultdir=$out/share/X11/app-defaults + wrapProgram $out/bin/xfontsel \ + --set XAPPLRESDIR $out/share/X11/app-defaults + ''; + + meta = { + homepage = "https://www.x.org/"; + description = "Allows testing the fonts available in an X server"; + license = lib.licenses.free; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux ++ darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xiphos/default.nix b/nixpkgs/pkgs/applications/misc/xiphos/default.nix new file mode 100644 index 000000000000..01706011e2d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xiphos/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config +, python +, intltool +, docbook2x, docbook_xml_dtd_412, libxslt +, sword, clucene_core, biblesync +, gnome-doc-utils +, libgsf, gconf +, gtkhtml, libglade, scrollkeeper +, webkitgtk +, dbus-glib, enchant, isocodes, libuuid, icu +, wrapGAppsHook +, wafHook +}: + +stdenv.mkDerivation rec { + pname = "xiphos"; + version = "4.1.0"; + + src = fetchFromGitHub { + owner = "crosswire"; + repo = "xiphos"; + rev = version; + sha256 = "14il9k4i58qbc78hcadw3gqy21sb9q661d75vlj6fwpczbzj7x1a"; + }; + + nativeBuildInputs = [ pkg-config wrapGAppsHook wafHook ]; + buildInputs = [ python intltool docbook2x docbook_xml_dtd_412 libxslt + sword clucene_core biblesync gnome-doc-utils libgsf gconf gtkhtml + libglade scrollkeeper webkitgtk dbus-glib enchant isocodes libuuid icu ]; + + prePatch = '' + patchShebangs .; + ''; + + preConfigure = '' + export CLUCENE_HOME=${clucene_core}; + export SWORD_HOME=${sword}; + ''; + + wafConfigureFlags = [ "--enable-webkit2" ]; + + meta = with lib; { + description = "A GTK Bible study tool"; + longDescription = '' + Xiphos (formerly known as GnomeSword) is a Bible study tool + written for Linux, UNIX, and Windows using GTK, offering a rich + and featureful environment for reading, study, and research using + modules from The SWORD Project and elsewhere. + ''; + homepage = "https://www.xiphos.org/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xkbd/default.nix b/nixpkgs/pkgs/applications/misc/xkbd/default.nix new file mode 100644 index 000000000000..173ea71fe407 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xkbd/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, freetype, libXrender, libXft, xorgproto +, xinput, libXi, libXext, libXtst, libXpm, libX11, autoreconfHook +}: + +stdenv.mkDerivation rec { + pname = "xkbd"; + version = "0.8.18"; + + src = fetchFromGitHub { + owner = "mahatma-kaganovich"; + repo = "xkbd"; + rev = "${pname}-${version}"; + sha256 = "05ry6q75jq545kf6p20nhfywaqf2wdkfiyp6iwdpv9jh238hf7m9"; + }; + + buildInputs = [ + freetype libXrender libXft libXext libXtst libXpm libX11 + libXi xorgproto xinput + ]; + + nativeBuildInputs = [ autoreconfHook ]; + + meta = with lib; { + homepage = "https://github.com/mahatma-kaganovich/xkbd"; + description = "onscreen soft keyboard for X11"; + license = licenses.gpl2Plus; + maintainers = [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix b/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix new file mode 100644 index 000000000000..4d1dd54bba6c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, qt4 }: + +stdenv.mkDerivation rec { + pname = "xkblayout-state"; + version = "1b"; + + src = fetchurl { + url = "https://github.com/nonpop/${pname}/archive/v${version}.tar.gz"; + sha256 = "1m1nnplrdb2mclhj0881wf78ckvdnyk24g4k4p5s5gpd96cxxwnx"; + }; + + buildInputs = [ qt4 ]; + + installPhase = '' + mkdir -p $out/bin + cp xkblayout-state $out/bin + ''; + + meta = with lib; { + description = "A small command-line program to get/set the current XKB keyboard layout"; + homepage = "https://github.com/nonpop/xkblayout-state"; + license = licenses.gpl2; + maintainers = [ maintainers.jagajaga ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xkbmon/default.nix b/nixpkgs/pkgs/applications/misc/xkbmon/default.nix new file mode 100644 index 000000000000..cd7037872cb7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xkbmon/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, libX11 }: + +stdenv.mkDerivation rec { + pname = "xkbmon"; + version = "0.3"; + + src = fetchFromGitHub { + owner = "xkbmon"; + repo = "xkbmon"; + rev = version; + sha256 = "03v8f6fijgwagjphyj8w7lgh5hlc8jk0j2n45n7fm0xwy82cxxx9"; + }; + + buildInputs = [ libX11 ]; + + installPhase = "install -D -t $out/bin xkbmon"; + + meta = with lib; { + homepage = "https://github.com/xkbmon/xkbmon"; + description = "Command-line keyboard layout monitor for X11"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xmenu/default.nix b/nixpkgs/pkgs/applications/misc/xmenu/default.nix new file mode 100644 index 000000000000..c6a37caf34da --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xmenu/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, imlib2, libX11, libXft, libXinerama }: + +stdenv.mkDerivation rec { + pname = "xmenu"; + version = "4.5.4"; + + src = fetchFromGitHub { + owner = "phillbush"; + repo = "xmenu"; + rev = "v${version}"; + sha256 = "1dy3aqqczs7d3f8rf6h7xssgr3881g8m5y4waskizjy9z7chs64q"; + }; + + buildInputs = [ imlib2 libX11 libXft libXinerama ]; + + postPatch = "sed -i \"s:/usr/local:$out:\" config.mk"; + + meta = with lib; { + description = "A menu utility for X"; + homepage = "https://github.com/phillbush/xmenu"; + license = licenses.mit; + maintainers = with maintainers; [ neonfuz ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xmind/default.nix b/nixpkgs/pkgs/applications/misc/xmind/default.nix new file mode 100644 index 000000000000..7629b42c877f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xmind/default.nix @@ -0,0 +1,92 @@ +{ stdenv, lib, fetchzip, fetchurl, gtk2, jre, libXtst, makeWrapper, makeDesktopItem, runtimeShell }: + +stdenv.mkDerivation rec { + pname = "xmind"; + version = "8-update8"; + + src = fetchzip { + url = "https://xmind.net/xmind/downloads/${pname}-${version}-linux.zip"; + stripRoot = false; + sha256 = "1p68z0b4brgiyybz190alqv716ncql49vsksm41y90mcjd8s4jhn"; + }; + + srcIcon = fetchurl { + url = "https://aur.archlinux.org/cgit/aur.git/plain/xmind.png?h=xmind"; + sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f"; + }; + + preferLocalBuild = true; + + patches = [ ./java-env-config-fixes.patch ]; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + dontPatchELF = true; + dontStrip = true; + + libPath = lib.makeLibraryPath [ gtk2 libXtst ]; + + desktopItem = makeDesktopItem { + name = "XMind"; + exec = "XMind"; + icon = "xmind"; + desktopName = "XMind"; + comment = meta.description; + categories = "Office;"; + mimeType = "application/xmind;x-scheme-handler/xmind"; + }; + + installPhase = let + targetDir = if stdenv.hostPlatform.system == "i686-linux" + then "XMind_i386" + else "XMind_amd64"; + in '' + mkdir -p $out/{bin,libexec/configuration/,share/{applications/,fonts/,icons/hicolor/scalable/apps/}} + cp -r ${targetDir}/{configuration,p2,XMind{,.ini}} $out/libexec + cp -r {plugins,features} $out/libexec/ + cp -r fonts $out/share/fonts/ + cp "${desktopItem}/share/applications/XMind.desktop" $out/share/applications/XMind.desktop + cp ${srcIcon} $out/share/icons/hicolor/scalable/apps/xmind.png + + patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ + $out/libexec/XMind + + wrapProgram $out/libexec/XMind \ + --prefix LD_LIBRARY_PATH : "${libPath}" + + # Inspired by https://aur.archlinux.org/cgit/aur.git/tree/?h=xmind + cat >$out/bin/XMind <<EOF + #! ${runtimeShell} + if [ ! -d "\$HOME/.xmind" ]; then + mkdir -p "\$HOME/.xmind/configuration-cathy/" + cp -r $out/libexec/configuration/ \$HOME/.xmind/configuration-cathy/ + fi + + exec "$out/libexec/XMind" "\$@" + EOF + chmod +x $out/bin/XMind + + ln -s ${jre} $out/libexec/jre + ''; + + meta = with lib; { + description = "Mind-mapping software"; + longDescription = '' + XMind is a mind mapping and brainstorming software. In addition + to the management elements, the software can capture ideas, + clarify thinking, manage complex information, and promote team + collaboration for higher productivity. + + It supports mind maps, fishbone diagrams, tree diagrams, + organization charts, spreadsheets, etc. Normally, it is used for + knowledge management, meeting minutes, task management, and + GTD. Meanwhile, XMind can read FreeMind and MindManager files, + and save to Evernote. + ''; + homepage = "https://www.xmind.net/"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ michalrus ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch b/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch new file mode 100644 index 000000000000..f359a9c2ba46 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch @@ -0,0 +1,40 @@ +diff --git a/XMind_amd64/XMind.ini b/XMind_amd64/XMind.ini +index bdd8a37..5f35daf 100644 +--- a/XMind_amd64/XMind.ini ++++ b/XMind_amd64/XMind.ini +@@ -1,11 +1,11 @@ + -configuration +-./configuration ++@user.home/.xmind/configuration-cathy_linux_64 + -data +-../workspace ++@user.home/.xmind/workspace-cathy + -startup +-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar ++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar + --launcher.library +-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444 ++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444 + --launcher.defaultAction + openFile + --launcher.GTK_version +diff --git a/XMind_i386/XMind.ini b/XMind_i386/XMind.ini +index 4ed3225..1d74258 100644 +--- a/XMind_i386/XMind.ini ++++ b/XMind_i386/XMind.ini +@@ -1,11 +1,11 @@ + -configuration +-./configuration ++@user.home/.xmind/configuration-cathy_linux_64 + -data +-../workspace ++@user.home/.xmind/workspace-cathy + -startup +-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar ++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar + --launcher.library +-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444 ++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444 + --launcher.defaultAction + openFile + --launcher.GTK_version diff --git a/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix b/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix new file mode 100644 index 000000000000..cb4233be8ec3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix @@ -0,0 +1,46 @@ +{ stdenv, stdenvGcc6, lib +, fetchFromGitHub, cmake, libmicrohttpd_0_9_70, openssl +, opencl-headers, ocl-icd, hwloc, cudatoolkit +, devDonationLevel ? "0.0" +, cudaSupport ? false +, openclSupport ? true +}: + +let + stdenv' = if cudaSupport then stdenvGcc6 else stdenv; +in + +stdenv'.mkDerivation rec { + name = "xmr-stak-${version}"; + version = "2.10.8"; + + src = fetchFromGitHub { + owner = "fireice-uk"; + repo = "xmr-stak"; + rev = version; + sha256 = "0ilx5mhh91ks7dwvykfyynh53l6vkkignjpwkkss8ss6b2k8gdbj"; + }; + + NIX_CFLAGS_COMPILE = "-O3"; + + cmakeFlags = lib.optional (!cudaSupport) "-DCUDA_ENABLE=OFF" + ++ lib.optional (!openclSupport) "-DOpenCL_ENABLE=OFF"; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libmicrohttpd_0_9_70 openssl hwloc ] + ++ lib.optional cudaSupport cudatoolkit + ++ lib.optionals openclSupport [ opencl-headers ocl-icd ]; + + postPatch = '' + substituteInPlace xmrstak/donate-level.hpp \ + --replace 'fDevDonationLevel = 2.0' 'fDevDonationLevel = ${devDonationLevel}' + ''; + + meta = with lib; { + description = "Unified All-in-one Monero miner"; + homepage = "https://github.com/fireice-uk/xmr-stak"; + license = licenses.gpl3Plus; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ fpletz bfortz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xmrig/default.nix b/nixpkgs/pkgs/applications/misc/xmrig/default.nix new file mode 100644 index 000000000000..4ac463068678 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xmrig/default.nix @@ -0,0 +1,37 @@ +{ stdenv, lib, fetchFromGitHub, cmake, libuv, libmicrohttpd, openssl, hwloc +, donateLevel ? 0 +}: + +stdenv.mkDerivation rec { + pname = "xmrig"; + version = "6.12.2"; + + src = fetchFromGitHub { + owner = "xmrig"; + repo = "xmrig"; + rev = "v${version}"; + sha256 = "1gjwh509cxs8vqz72v97cir0aazcrd9y9l0k1q5ywbl5l3yf6ryf"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libuv libmicrohttpd openssl hwloc ]; + + inherit donateLevel; + + patches = [ ./donate-level.patch ]; + postPatch = '' + substituteAllInPlace src/donate.h + ''; + + installPhase = '' + install -vD xmrig $out/bin/xmrig + ''; + + meta = with lib; { + description = "Monero (XMR) CPU miner"; + homepage = "https://github.com/xmrig/xmrig"; + license = licenses.gpl3Plus; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + maintainers = with maintainers; [ fpletz kim0 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xmrig/donate-level.patch b/nixpkgs/pkgs/applications/misc/xmrig/donate-level.patch new file mode 100644 index 000000000000..3aaae3e67763 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xmrig/donate-level.patch @@ -0,0 +1,12 @@ +diff --git a/src/donate.h b/src/donate.h +--- a/src/donate.h ++++ b/src/donate.h +@@ -46,6 +46,6 @@ + */ +-constexpr const int kDefaultDonateLevel = 1; +-constexpr const int kMinimumDonateLevel = 1; ++constexpr const int kDefaultDonateLevel = @donateLevel@; ++constexpr const int kMinimumDonateLevel = @donateLevel@; + + + #endif /* XMRIG_DONATE_H */ diff --git a/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix b/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix new file mode 100644 index 000000000000..1b8f79415838 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchFromGitHub, cmake, libuv, libmicrohttpd, openssl +, donateLevel ? 0 +}: + +stdenv.mkDerivation rec { + pname = "xmrig-proxy"; + version = "6.4.0"; + + src = fetchFromGitHub { + owner = "xmrig"; + repo = "xmrig-proxy"; + rev = "v${version}"; + sha256 = "0bcbil9b5z95haqbmdqaslckvjflw7h77fqrcdxc6lrn29575nnf"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libuv libmicrohttpd openssl ]; + + postPatch = '' + # Link dynamically against libuuid instead of statically + substituteInPlace CMakeLists.txt --replace uuid.a uuid + ''; + + installPhase = '' + install -vD xmrig-proxy $out/bin/xmrig-proxy + ''; + + meta = with lib; { + description = "Monero (XMR) Stratum protocol proxy"; + homepage = "https://github.com/xmrig/xmrig-proxy"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ aij ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xneur/default.nix b/nixpkgs/pkgs/applications/misc/xneur/default.nix new file mode 100644 index 000000000000..2d8af0465a77 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xneur/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, fetchpatch, pkg-config, intltool, xorg, pcre, gst_all_1, glib +, xosd, libnotify, enchant, wrapGAppsHook, gdk-pixbuf }: + +stdenv.mkDerivation { + pname = "xneur"; + version = "0.20.0"; + + src = fetchurl { + url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/0.20.0/xneur_0.20.0.orig.tar.gz"; + sha256 = "1lg3qpi9pkx9f5xvfc8yf39wwc98f769yb7i2438vqn66kla1xpr"; + }; + + nativeBuildInputs = [ + pkg-config intltool wrapGAppsHook + ]; + + buildInputs = [ + xorg.libX11 xorg.libXtst pcre gst_all_1.gstreamer glib + xosd xorg.libXext xorg.libXi libnotify + enchant gdk-pixbuf + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + ]; + + patches = [ + (fetchpatch { + name = "gcc-10.patch"; + url = "https://salsa.debian.org/debian/xneur/-/raw/da38ad9c8e1bf4e349f5ed4ad909f810fdea44c9/debian/patches/gcc-10.patch"; + sha256 = "0pc17a4sdrnrc4z7gz28889b9ywqsm5mzm6m41h67j2f5zh9k3fy"; + }) + ]; + + postPatch = '' + sed -e 's@for xosd_dir in@for xosd_dir in ${xosd} @' -i configure + ''; + + meta = with lib; { + description = "Utility for switching between keyboard layouts"; + homepage = "https://xneur.ru"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xpad/default.nix b/nixpkgs/pkgs/applications/misc/xpad/default.nix new file mode 100644 index 000000000000..dbb5eb42e1d9 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xpad/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchurl +, autoreconfHook, pkg-config, wrapGAppsHook +, glib, intltool, gtk3, gtksourceview }: + +stdenv.mkDerivation rec { + pname = "xpad"; + version = "5.4.0"; + + src = fetchurl { + url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2"; + sha256 = "1qpmlwn0bcw1q73ag0l0fdnlzmwawfvsy4g9y5b0vyrc58lcp5d3"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ]; + + buildInputs = [ glib intltool gtk3 gtksourceview ]; + + meta = with lib; { + description = "A sticky note application for jotting down things to remember"; + homepage = "https://launchpad.net/xpad"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ michalrus ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch b/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch new file mode 100644 index 000000000000..59a51f7506d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch @@ -0,0 +1,15 @@ + +Fix "No known features for CXX compiler", see +https://cmake.org/pipermail/cmake/2016-December/064733.html and the note at +https://cmake.org/cmake/help/v3.10/command/cmake_minimum_required.html +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,7 +8,7 @@ + # + #======================================================================== + +-cmake_minimum_required(VERSION 2.8.8) ++cmake_minimum_required(VERSION 3.1.0) + + project(xpdf) + diff --git a/nixpkgs/pkgs/applications/misc/xpdf/default.nix b/nixpkgs/pkgs/applications/misc/xpdf/default.nix new file mode 100644 index 000000000000..e57fb75c11f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xpdf/default.nix @@ -0,0 +1,86 @@ +{ enableGUI ? true +, enablePDFtoPPM ? true +, enablePrinting ? true +, lib, stdenv, fetchzip, cmake, makeDesktopItem +, zlib, libpng, cups ? null, freetype ? null +, qtbase ? null, qtsvg ? null, wrapQtAppsHook +}: + +assert enableGUI -> qtbase != null && qtsvg != null && freetype != null; +assert enablePDFtoPPM -> freetype != null; +assert enablePrinting -> cups != null; + +stdenv.mkDerivation rec { + pname = "xpdf"; + version = "4.03"; + + src = fetchzip { + url = "https://dl.xpdfreader.com/xpdf-${version}.tar.gz"; + sha256 = "09yhvmh1vxjy763nnmawynygp5bh3j4i8ixqja64j11676yl77n6"; + }; + + # Fix "No known features for CXX compiler", see + # https://cmake.org/pipermail/cmake/2016-December/064733.html and the note at + # https://cmake.org/cmake/help/v3.10/command/cmake_minimum_required.html + patches = lib.optional stdenv.isDarwin ./cmake_version.patch; + + nativeBuildInputs = + [ cmake ] + ++ lib.optional enableGUI wrapQtAppsHook; + + cmakeFlags = ["-DSYSTEM_XPDFRC=/etc/xpdfrc" "-DA4_PAPER=ON" "-DOPI_SUPPORT=ON"] + ++ lib.optional (!enablePrinting) "-DXPDFWIDGET_PRINTING=OFF"; + + buildInputs = [ zlib libpng ] ++ + lib.optional enableGUI qtbase ++ + lib.optional enablePrinting cups ++ + lib.optional enablePDFtoPPM freetype; + + desktopItem = makeDesktopItem { + name = "xpdf"; + desktopName = "Xpdf"; + comment = "Views Adobe PDF files"; + icon = "xpdf"; + exec = "xpdf %f"; + categories = "Office;"; + terminal = "false"; + }; + + postInstall = lib.optionalString (!stdenv.isDarwin) '' + install -Dm644 ${desktopItem}/share/applications/xpdf.desktop -t $out/share/applications + install -Dm644 $src/xpdf-qt/xpdf-icon.svg $out/share/pixmaps/xpdf.svg + ''; + + # wrapQtAppsHook broken on macOS (https://github.com/NixOS/nixpkgs/issues/102044) + postFixup = lib.optionalString stdenv.isDarwin '' + wrapQtApp $out/bin/xpdf + ''; + + meta = with lib; { + homepage = "https://www.xpdfreader.com"; + description = "Viewer for Portable Document Format (PDF) files"; + longDescription = '' + XPDF includes multiple tools for viewing and processing PDF files. + xpdf: PDF viewer (with Graphical Interface) + pdftotext: converts PDF to text + pdftops: converts PDF to PostScript + pdftoppm: converts PDF pages to netpbm (PPM/PGM/PBM) image files + pdftopng: converts PDF pages to PNG image files + pdftohtml: converts PDF to HTML + pdfinfo: extracts PDF metadata + pdfimages: extracts raw images from PDF files + pdffonts: lists fonts used in PDF files + pdfdetach: extracts attached files from PDF files + ''; + license = with licenses; [ gpl2Only gpl3Only ]; + platforms = platforms.unix; + maintainers = with maintainers; [ sikmir ]; + knownVulnerabilities = [ + "CVE-2018-7453: loop in PDF objects" + "CVE-2018-16369: loop in PDF objects" + "CVE-2019-9587: loop in PDF objects" + "CVE-2019-9588: loop in PDF objects" + "CVE-2019-16088: loop in PDF objects" + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix new file mode 100644 index 000000000000..065ca813155d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix @@ -0,0 +1,57 @@ +{ lib, stdenv, fetchurl +}: + +stdenv.mkDerivation { + name = "libxpdf-3.02pl5"; + + src = fetchurl { + url = "https://dl.xpdfreader.com/old/xpdf-3.02.tar.gz"; + sha256 = "000zq4ddbwyxiki4vdwpmxbnw5n9hsg9hvwra2p33hslyib7sfmk"; + }; + + patches = [ + (fetchurl { + url = "https://dl.xpdfreader.com/old/xpdf-3.02pl1.patch"; + sha256 = "1wxv9l0d2kkwi961ihpdwi75whdvk7cgqxkbfym8cjj11fq17xjq"; + }) + (fetchurl { + url = "https://dl.xpdfreader.com/old/xpdf-3.02pl2.patch"; + sha256 = "1nfrgsh9xj0vryd8h65myzd94bjz117y89gq0hzji9dqn23xihfi"; + }) + (fetchurl { + url = "https://dl.xpdfreader.com/old/xpdf-3.02pl3.patch"; + sha256 = "0jskkv8x6dqr9zj4azaglas8cziwqqrkbbnzrpm2kzrvsbxyhk2r"; + }) + (fetchurl { + url = "https://dl.xpdfreader.com/old/xpdf-3.02pl4.patch"; + sha256 = "1c48h7aizx0ngmzlzw0mpja1w8vqyy3pg62hyxp7c60k86al715h"; + }) + (fetchurl { + url = "https://dl.xpdfreader.com/old/xpdf-3.02pl5.patch"; + sha256 = "1fki66pw56yr6aw38f6amrx7wxwcxbx4704pjqq7pqqr784b7z4j"; + }) + ./xpdf-3.02-protection.patch + ./libxpdf.patch + ]; + + installPhase = '' + mkdir -p $out/lib/goo + mkdir -p $out/lib/fofi + mkdir -p $out/lib/xpdf + mkdir -p $out/include + + cp -v goo/libGoo.a $out/lib/goo + cp -v fofi/libfofi.a $out/lib/fofi + cp -v xpdf/libxpdf.a $out/lib/xpdf + + cp -v *.h $out/include + cp -v goo/*.h $out/include + cp -v fofi/*.h $out/include + cp -v xpdf/*.h $out/include + ''; + + meta = with lib; { + platforms = platforms.unix; + license = licenses.gpl2Only; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch new file mode 100644 index 000000000000..606da76c7293 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch @@ -0,0 +1,45 @@ +diff -rc xpdf-3.02/xpdf/Makefile.in xpdf-3.02-new/xpdf/Makefile.in +*** xpdf-3.02/xpdf/Makefile.in 2007-02-27 23:05:52.000000000 +0100 +--- xpdf-3.02-new/xpdf/Makefile.in 2010-08-25 14:54:14.000000000 +0200 +*************** +*** 110,116 **** + pdffonts$(EXE) pdftoppm$(EXE) pdfimages$(EXE) + + all-no-x: pdftops$(EXE) pdftotext$(EXE) pdfinfo$(EXE) pdffonts$(EXE) \ +! pdfimages$(EXE) + + #------------------------------------------------------------------------ + +--- 110,116 ---- + pdffonts$(EXE) pdftoppm$(EXE) pdfimages$(EXE) + + all-no-x: pdftops$(EXE) pdftotext$(EXE) pdfinfo$(EXE) pdffonts$(EXE) \ +! pdfimages$(EXE) libxpdf.a + + #------------------------------------------------------------------------ + +*************** +*** 248,253 **** +--- 248,269 ---- + + #------------------------------------------------------------------------ + ++ PDFTOEPDF_OBJS = \ ++ Array.o BuiltinFont.o BuiltinFontTables.o CMap.o \ ++ Catalog.o CharCodeToUnicode.o Decrypt.o Dict.o Error.o \ ++ FontEncodingTables.o Gfx.o GfxFont.o GfxState.o \ ++ GlobalParams.o JArithmeticDecoder.o JBIG2Stream.o JPXStream.o Lexer.o Link.o \ ++ NameToCharCode.o Object.o OutputDev.o Outline.o PDFDoc.o Page.o \ ++ Parser.o PDFDocEncoding.o Stream.o UnicodeMap.o XRef.o Function.o \ ++ PSTokenizer.o UnicodeTypeTable.o ++ ++ libxpdf.a: $(PDFTOEPDF_OBJS) ++ rm -f $@ ++ $(AR) $(ARFLAGS) $@ *.o ++ ranlib $@ ++ ++ #------------------------------------------------------------------------ ++ + depend: + $(CXX) $(CXXFLAGS) -MM $(CXX_SRC) >Makefile.dep + diff --git a/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch b/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch new file mode 100644 index 000000000000..598fc6dbd073 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch @@ -0,0 +1,74 @@ +diff -C 3 -r orig/xpdf/pdfimages.cc xpdf-3.02/xpdf/pdfimages.cc +*** orig/xpdf/pdfimages.cc 2007-02-27 23:05:52.000000000 +0100 +--- xpdf-3.02/xpdf/pdfimages.cc 2007-10-31 20:17:22.601449943 +0100 +*************** +*** 118,130 **** + goto err1; + } + +- // check for copy permission +- if (!doc->okToCopy()) { +- error(-1, "Copying of images from this document is not allowed."); +- exitCode = 3; +- goto err1; +- } +- + // get page range + if (firstPage < 1) + firstPage = 1; +--- 118,123 ---- +diff -C 3 -r orig/xpdf/pdftotext.cc xpdf-3.02/xpdf/pdftotext.cc +*** orig/xpdf/pdftotext.cc 2007-02-27 23:05:52.000000000 +0100 +--- xpdf-3.02/xpdf/pdftotext.cc 2007-10-31 20:17:34.392224196 +0100 +*************** +*** 160,172 **** + goto err2; + } + +- // check for copy permission +- if (!doc->okToCopy()) { +- error(-1, "Copying of text from this document is not allowed."); +- exitCode = 3; +- goto err2; +- } +- + // construct text file name + if (argc == 3) { + textFileName = new GString(argv[2]); +--- 160,165 ---- +diff -C 3 -r orig/xpdf/XPDFCore.cc xpdf-3.02/xpdf/XPDFCore.cc +*** orig/xpdf/XPDFCore.cc 2007-02-27 23:05:52.000000000 +0100 +--- xpdf-3.02/xpdf/XPDFCore.cc 2007-10-31 20:18:05.370494431 +0100 +*************** +*** 384,394 **** + #ifndef NO_TEXT_SELECT + if (selectULX != selectLRX && + selectULY != selectLRY) { +! if (doc->okToCopy()) { +! copySelection(); +! } else { +! error(-1, "Copying of text from this document is not allowed."); +! } + } + #endif + } +--- 384,390 ---- + #ifndef NO_TEXT_SELECT + if (selectULX != selectLRX && + selectULY != selectLRY) { +! copySelection(); + } + #endif + } +*************** +*** 407,415 **** + int pg; + double ulx, uly, lrx, lry; + +- if (!doc->okToCopy()) { +- return; +- } + if (getSelection(&pg, &ulx, &uly, &lrx, &lry)) { + //~ for multithreading: need a mutex here + if (currentSelection) { +--- 403,408 ---- diff --git a/nixpkgs/pkgs/applications/misc/xplr/default.nix b/nixpkgs/pkgs/applications/misc/xplr/default.nix new file mode 100644 index 000000000000..3ee90dce51c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xplr/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, rustPlatform, fetchCrate, libiconv }: + +rustPlatform.buildRustPackage rec { + pname = "xplr"; + version = "0.14.4"; + + src = fetchCrate { + inherit pname version; + sha256 = "1jfclwpip4xvwkvz5g0fb3v04pdnk3ddvkdll0yr7wm0g6p44xfd"; + }; + + buildInputs = lib.optional stdenv.isDarwin libiconv; + + cargoSha256 = "06iwx3s7h6l9kvd17hx0ihy6zrz4jbfjmdlkyij2fs0fhvas110x"; + + meta = with lib; { + description = "A hackable, minimal, fast TUI file explorer"; + homepage = "https://github.com/sayanarijit/xplr"; + license = licenses.mit; + maintainers = with maintainers; [ sayanarijit suryasr007 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix b/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix new file mode 100644 index 000000000000..f1a0f7b5ba1d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix @@ -0,0 +1,26 @@ +{ fetchurl, lib, stdenv, libXrandr}: + +stdenv.mkDerivation rec { + version = "0.01"; + pname = "xrandr-invert-colors"; + src = fetchurl { + url = "https://github.com/zoltanp/xrandr-invert-colors/archive/v${version}.tar.gz"; + sha256 = "1z4hxn56rlflvqanb8ncqa1xqawnda85b1b37w6r2iqs8rw52d75"; + }; + + buildInputs = [ libXrandr ]; + + installPhase = '' + mkdir -p $out/bin + mv xrandr-invert-colors.bin xrandr-invert-colors + install xrandr-invert-colors $out/bin + ''; + + meta = with lib; { + description = "Inverts the colors of your screen"; + license = lib.licenses.gpl3Plus; + homepage = "https://github.com/zoltanp/xrandr-invert-colors"; + maintainers = [lib.maintainers.magnetophon ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xrq/default.nix b/nixpkgs/pkgs/applications/misc/xrq/default.nix new file mode 100644 index 000000000000..e8e6490cbd64 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xrq/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, libX11}: + +stdenv.mkDerivation { + name = "xrq-unstable-2016-01-15"; + + src = fetchFromGitHub { + owner = "arianon"; + repo = "xrq"; + rev = "d5dc19c63881ebdd1287a02968e3a1447dde14a9"; + sha256 = "1bxf6h3fjw3kjraz7028m7p229l423y1ngy88lqvf0xl1g3dhp36"; + }; + + installPhase = '' + make PREFIX=$out install + ''; + + outputs = [ "out" "man" ]; + + buildInputs = [ libX11 ]; + + meta = { + description = "X utility for querying xrdb"; + homepage = "https://github.com/arianon/xrq"; + license = lib.licenses.mit; + platforms = with lib.platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xscope/default.nix b/nixpkgs/pkgs/applications/misc/xscope/default.nix new file mode 100644 index 000000000000..ba798a861a8d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xscope/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchurl, pkg-config, libXt }: + +stdenv.mkDerivation rec { + pname = "xscope"; + version = "1.4.1"; + + src = fetchurl { + url = "mirror://xorg/individual/app/${pname}-${version}.tar.bz2"; + sha256 = "08zl3zghvbcqy0r5dn54dim84lp52s0ygrr87jr3a942a6ypz01k"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libXt ]; + + meta = with lib; { + description = "program to monitor X11/Client conversations"; + homepage = "https://cgit.freedesktop.org/xorg/app/xscope/"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ ]; + platforms = with platforms; unix; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/xsuspender/default.nix b/nixpkgs/pkgs/applications/misc/xsuspender/default.nix new file mode 100644 index 000000000000..c09c9329aab3 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xsuspender/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper, pkg-config +, glib, libwnck, procps }: + +with lib; + +stdenv.mkDerivation rec { + pname = "xsuspender"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "kernc"; + repo = "xsuspender"; + rev = version; + sha256 = "03lbga68dxg89d227sdwk1f5xj4r1pmj0qh2kasi2cqh8ll7qv4b"; + }; + + outputs = [ "out" "man" "doc" ]; + + nativeBuildInputs = [ cmake pkg-config makeWrapper ]; + buildInputs = [ glib libwnck ]; + + postInstall = '' + wrapProgram $out/bin/xsuspender \ + --prefix PATH : "${makeBinPath [ procps ]}" + ''; + + meta = { + description = "Auto-suspend inactive X11 applications"; + homepage = "https://kernc.github.io/xsuspender/"; + license = licenses.wtfpl; + maintainers = with maintainers; [ offline ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xsw/default.nix b/nixpkgs/pkgs/applications/misc/xsw/default.nix new file mode 100644 index 000000000000..a664aec45e1f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xsw/default.nix @@ -0,0 +1,35 @@ +{ stdenv, lib, fetchFromGitHub, pkg-config, SDL, SDL_image, SDL_ttf, SDL_gfx, flex, bison }: + +let + makeSDLFlags = map (p: "-I${lib.getDev p}/include/SDL"); + +in stdenv.mkDerivation rec { + pname = "xsw"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "andrenho"; + repo = "xsw"; + rev = version; + sha256 = "092vp61ngd2vscsvyisi7dv6qrk5m1i81gg19hyfl5qvjq5p0p8g"; + }; + + nativeBuildInputs = [ pkg-config flex bison ]; + + buildInputs = [ SDL SDL_image SDL_ttf SDL_gfx ]; + + NIX_CFLAGS_COMPILE = toString (makeSDLFlags [ SDL SDL_image SDL_ttf SDL_gfx ]); + + patches = [ + ./parse.patch # Fixes compilation error by avoiding redundant definitions. + ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A slide show presentation tool"; + + platforms = platforms.unix; + license = licenses.gpl3; + maintainers = [ maintainers.vrthra ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xsw/parse.patch b/nixpkgs/pkgs/applications/misc/xsw/parse.patch new file mode 100644 index 000000000000..6db6c14c26a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xsw/parse.patch @@ -0,0 +1,21 @@ +The `%code` causes Color definition to be added in both parser.h and parser.c +causing duplicate definitions error. This ensures that once it has been included +as part of parser.h, it wont be redefined in parser.c + +--- xsw-0.1.2-src/src/parser.y 1969-12-31 16:00:01.000000000 -0800 ++++ xsw-0.1.2-src/src/parser.y 2016-06-28 13:21:35.707027770 -0700 +@@ -38,7 +38,13 @@ + + %} + +-%code requires { typedef struct { unsigned char c; } Color; } ++%code requires ++{ ++#ifndef COLORDEF ++#define COLORDEF ++typedef struct { unsigned char c; } Color; ++#endif ++} + + %token SLIDE COLON HIFEN TEXT X Y W H IMAGE SIZE SCALE TEMPLATE BACKGROUND FONT + %token STYLE ALIGN EXPAND PLUS IMAGE_PATH diff --git a/nixpkgs/pkgs/applications/misc/xteddy/default.nix b/nixpkgs/pkgs/applications/misc/xteddy/default.nix new file mode 100644 index 000000000000..717ba66feb86 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xteddy/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchFromGitLab, pkg-config, xorg, imlib2, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "xteddy"; + version = "2.2-5"; + src = fetchFromGitLab { + domain = "salsa.debian.org"; + owner = "games-team"; + repo = pname; + rev = "debian/${version}"; + sha256 = "0rm7w78d6qajq4fvi4agyqm0c70f3c1i0cy2jdb6kqql2k8w78qy"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + buildInputs = [ imlib2 xorg.libX11 xorg.libXext ]; + + patches = [ "${src}/debian/patches/10_libXext.patch" "${src}/debian/patches/wrong-man-page-section.patch" ]; + + postPatch = '' + sed -i "s:/usr/games/xteddy:$out/bin/xteddy:" xtoys + sed -i "s:/usr/share/xteddy:$out/share/xteddy:" xtoys + ''; + + postInstall = '' + cp -R images $out/share/images + # remove broken test script + rm $out/bin/xteddy_test + ''; + + postFixup = '' + # this is needed, because xteddy expects images to reside + # in the current working directory + wrapProgram $out/bin/xteddy --run "cd $out/share/images/" + ''; + + meta = with lib; { + description = "Cuddly teddy bear for your X desktop"; + homepage = "https://weber.itn.liu.se/~stegu/xteddy/"; + license = licenses.gpl2; + maintainers = [ maintainers.xaverdh ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xxkb/default.nix b/nixpkgs/pkgs/applications/misc/xxkb/default.nix new file mode 100644 index 000000000000..7a0111785c14 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xxkb/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, libX11, libXt, libXext, libXpm, imake, gccmakedep +, svgSupport ? false, librsvg, glib, gdk-pixbuf, pkg-config +}: + +assert svgSupport -> + librsvg != null && glib != null && gdk-pixbuf != null && pkg-config != null; + +stdenv.mkDerivation rec { + name = "xxkb-1.11.1"; + + src = fetchurl { + url = "mirror://sourceforge/xxkb/${name}-src.tar.gz"; + sha256 = "0hl1i38z9xnbgfjkaz04vv1n8xbgfg88g5z8fyzyb2hxv2z37anf"; + }; + + nativeBuildInputs = [ imake gccmakedep ]; + buildInputs = [ + libX11 libXt libXext libXpm + ] ++ lib.optionals svgSupport [ librsvg glib gdk-pixbuf pkg-config ]; + + outputs = [ "out" "man" ]; + + imakeFlags = lib.optionalString svgSupport "-DWITH_SVG_SUPPORT"; + + makeFlags = [ + "BINDIR=${placeholder "out"}/bin" + "PIXMAPDIR=${placeholder "out"}/share/xxkb" + "XAPPLOADDIR=${placeholder "out"}/etc/X11/app-defaults" + "MANDIR=${placeholder "man"}/share/man" + ]; + + installTargets = [ "install" "install.man" ]; + + meta = { + description = "A keyboard layout indicator and switcher"; + homepage = "http://xxkb.sourceforge.net/"; + license = lib.licenses.artistic2; + maintainers = with lib.maintainers; [ rasendubi ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/xygrib/default.nix b/nixpkgs/pkgs/applications/misc/xygrib/default.nix new file mode 100644 index 000000000000..864ea27ede77 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/xygrib/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg }: + +stdenv.mkDerivation rec { + version = "1.2.6.1"; + pname = "xygrib"; + + src = fetchFromGitHub { + owner = "opengribs"; + repo = "XyGrib"; + rev = "v${version}"; + sha256 = "0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"; + }; + + nativeBuildInputs = [ cmake qttools wrapQtAppsHook ]; + buildInputs = [ bzip2 qtbase libnova proj openjpeg libpng ]; + cmakeFlags = [ "-DOPENJPEG_INCLUDE_DIR=${openjpeg.dev}/include/openjpeg-${lib.versions.majorMinor openjpeg.version}" ] + ++ lib.optionals stdenv.isDarwin [ "-DLIBNOVA_LIBRARY=${libnova}/lib/libnova.dylib" ]; + + postInstall = + if stdenv.isDarwin then '' + mkdir -p "$out/Applications" "$out/XyGrib/XyGrib.app/Contents/Resources" + cp "../data/img/xyGrib.icns" "$out/XyGrib/XyGrib.app/Contents/Resources/xyGrib.icns" + mv $out/XyGrib/XyGrib.app $out/Applications + wrapQtApp "$out/Applications/XyGrib.app/Contents/MacOS/XyGrib" + '' else '' + wrapQtApp $out/XyGrib/XyGrib + mkdir -p $out/bin + ln -s $out/XyGrib/XyGrib $out/bin/xygrib + ''; + + meta = with lib; { + homepage = "https://opengribs.org"; + description = "Weather Forecast Visualization"; + longDescription = '' + XyGrib is a leading opensource weather visualization package. + It interacts with OpenGribs's Grib server providing a choice + of global and large area atmospheric and wave models. + ''; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = with maintainers; [ j03 SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/yambar/default.nix b/nixpkgs/pkgs/applications/misc/yambar/default.nix new file mode 100644 index 000000000000..375b802d5c16 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/yambar/default.nix @@ -0,0 +1,86 @@ +{ stdenv +, lib +, fetchgit +, pkg-config +, meson +, ninja +, scdoc +, alsa-lib +, fcft +, json_c +, libmpdclient +, libxcb +, libyaml +, pixman +, tllist +, udev +, wayland +, wayland-protocols +, xcbutil +, xcbutilcursor +, xcbutilerrors +, xcbutilwm +}: + +stdenv.mkDerivation rec { + pname = "yambar"; + version = "1.6.1"; + + src = fetchgit { + url = "https://codeberg.org/dnkl/yambar.git"; + rev = version; + sha256 = "p47tFsEWsYNe6IVV65xGG211u6Vm2biRf4pmUDylBOQ="; + }; + + nativeBuildInputs = [ pkg-config meson ninja scdoc ]; + buildInputs = [ + alsa-lib + fcft + json_c + libmpdclient + libxcb + libyaml + pixman + tllist + udev + wayland + wayland-protocols + xcbutil + xcbutilcursor + xcbutilerrors + xcbutilwm + ]; + + meta = with lib; { + homepage = "https://codeberg.org/dnkl/yambar"; + description = "Modular status panel for X11 and Wayland"; + longDescription = '' + yambar is a lightweight and configurable status panel (bar, for short) for + X11 and Wayland, that goes to great lengths to be both CPU and battery + efficient - polling is only done when absolutely necessary. + + It has a number of modules that provide information in the form of + tags. For example, the clock module has a date tag that contains the + current date. + + The modules do not know how to present the information though. This is + instead done by particles. And the user, you, decides which particles (and + thus how to present the data) to use. + + Furthermore, each particle can have a decoration - a background color or a + graphical underline, for example. + + There is no support for images or icons. use an icon font (e.g. Font + Awesome, or Material Icons) if you want a graphical representation. + + There are a number of modules and particles builtin. More can be added as + plugins. You can even write your own! + + To summarize: a bar displays information provided by modules, using + particles and decorations. How is configured by you. + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/yarssr/default.nix b/nixpkgs/pkgs/applications/misc/yarssr/default.nix new file mode 100644 index 000000000000..93e8f1fc9d75 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/yarssr/default.nix @@ -0,0 +1,64 @@ +{ fetchFromGitHub, stdenv, lib, gettext, gtk2, makeWrapper, perlPackages, gnome2 }: + +let + perlDeps = with perlPackages; [ + Glib Gtk2 Gnome2 Pango Cairo Gnome2Canvas Gnome2VFS Gtk2GladeXML Gtk2TrayIcon + XMLLibXML XMLSAXBase XMLParser XMLRSS + HTMLParser + DateTime DateTimeFormatMail DateTimeFormatW3CDTF DateTimeLocale DateTimeTimeZone + ParamsValidate + ModuleImplementation ModuleRuntime + TryTiny + ClassSingleton + URI + AnyEvent AnyEventHTTP + commonsense + FileSlurp + JSON + Guard + LocaleGettext + ]; + libs = [ + stdenv.cc.cc.lib + gtk2 + ]; +in +stdenv.mkDerivation { + version = "git-2017-12-01"; + pname = "yarssr"; + + src = fetchFromGitHub { + owner = "JGRennison"; + repo = "yarssr"; + rev = "e70eb9fc6563599bfb91c6de6a79654de531c18d"; + sha256 = "0x7hz8x8qyp3i1vb22zhcnvwxm3jhmmmlr22jqc5b09vpmbw1l45"; + }; + + nativeBuildInputs = [ perlPackages.perl gettext makeWrapper ]; + buildInputs = perlDeps ++ [gnome2.libglade]; + propagatedBuildInputs = libs ++ perlDeps; + + installPhase = '' + DESTDIR=$out make install + mv $out/usr/* $out/ + rm -R $out/usr + sed -i -r "s!use lib [^;]+;!use lib '$out/share/yarssr';!" $out/bin/yarssr + sed -i -r "s!$Yarssr::PREFIX = [^;]+;!$Yarssr::PREFIX = '$out';!" $out/bin/yarssr + sed -i -r "s!use Yarssr::Browser;!!" $out/share/yarssr/Yarssr/GUI.pm + chmod a+x $out/bin/yarssr + ''; + + postFixup = '' + wrapProgram $out/bin/yarssr \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath libs} \ + --set PERL5LIB "${perlPackages.makePerlPath perlDeps}" + ''; + + meta = with lib; { + homepage = "https://github.com/tsyrogit/zxcvbn-c"; + description = "A fork of Yarssr (a RSS reader for the GNOME Tray) from http://yarssr.sf.net with various fixes"; + license = licenses.gpl1; + platforms = platforms.linux; + maintainers = with maintainers; [ xurei ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/yate/default.nix b/nixpkgs/pkgs/applications/misc/yate/default.nix new file mode 100644 index 000000000000..3046638ec4a6 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/yate/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, lib, qt4, openssl, pkg-config }: + +stdenv.mkDerivation rec { + pname = "yate"; + version = "6.1.0-1"; + + src = fetchurl { + url = "http://voip.null.ro/tarballs/yate${lib.versions.major version}/${pname}-${version}.tar.gz"; + sha256 = "0xx3i997nsf2wzbv6m5n6adsym0qhgc6xg4rsv0fwqrgisf5327d"; + }; + + # TODO zaptel ? postgres ? + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ qt4 openssl ]; + + # /dev/null is used when linking which is a impure path for the wrapper + preConfigure = + '' + sed -i 's@,/dev/null@@' configure + patchShebangs configure + ''; + + # --unresolved-symbols=ignore-in-shared-libs makes ld no longer find --library=yate? Why? + preBuild = + '' + export NIX_LDFLAGS="-L$TMP/yate $NIX_LDFLAGS" + find . -type f -iname Makefile | xargs sed -i \ + -e 's@-Wl,--unresolved-symbols=ignore-in-shared-libs@@' \ + -e 's@-Wl,--retain-symbols-file@@' + ''; + + meta = { + description = "Yet another telephony engine"; + homepage = "http://yate.null.ro/"; + # Yate's license is GPL with an exception for linking with + # OpenH323 and PWlib (licensed under MPL). + license = ["GPL" "MPL"]; + maintainers = [ lib.maintainers.marcweber ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/misc/yokadi/default.nix b/nixpkgs/pkgs/applications/misc/yokadi/default.nix new file mode 100644 index 000000000000..10d519efa45c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/yokadi/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchurl, buildPythonApplication, python-dateutil, + sqlalchemy, setproctitle, icalendar }: + +buildPythonApplication rec { + pname = "yokadi"; + version = "1.2.0"; + + src = fetchurl { + url = "https://yokadi.github.io/download/${pname}-${version}.tar.gz"; + sha256 = "681c8aa52b2e4b5255e1311e76b4b81dcb63ee7f6ca3a47178e684c06baf330f"; + }; + + propagatedBuildInputs = [ + python-dateutil + sqlalchemy + setproctitle + icalendar + ]; + + # Yokadi doesn't have any tests + doCheck = false; + + meta = with lib; { + description = "A command line oriented, sqlite powered, todo-list"; + homepage = "https://yokadi.github.io/index.html"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.nkpvk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix b/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix new file mode 100644 index 000000000000..9cfd7650c49f --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix @@ -0,0 +1,65 @@ +{ lib, stdenv, fetchurl, mkDerivation +, qmake, qtbase, qtquickcontrols2, qtgraphicaleffects +, python3, pyotherside +, pcsclite, yubikey-personalization +, yubikey-manager, makeWrapper }: + +mkDerivation rec { + pname = "yubioath-desktop"; + version = "5.0.5"; + + src = fetchurl { + url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz"; + sha256 = "05xs6xh9pi50h0668arirj0gnz11adpixgsdkds072077gasdm0g"; + }; + + doCheck = false; + + buildInputs = [ stdenv qtbase qtquickcontrols2 qtgraphicaleffects python3 ]; + + nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ]; + + postPatch = '' + substituteInPlace deployment.pri \ + --replace '/usr/bin' "$out/bin" + ''; + + pythonPath = [ yubikey-manager ]; + + # Need LD_PRELOAD for libykpers as the Nix cpython disables ctypes.cdll.LoadLibrary + # support that the yubicommon library uses to load libykpers + + postInstall = '' + buildPythonPath "$out $pythonPath" + wrapProgram $out/bin/yubioath-desktop \ + --prefix PYTHONPATH : "$program_PYTHONPATH" \ + --prefix QML2_IMPORT_PATH : "${pyotherside}/${qtbase.qtQmlPrefix}" \ + --prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so" \ + --prefix LD_LIBRARY_PATH : "${lib.getLib pcsclite}/lib:${yubikey-personalization}/lib" + + mkdir -p $out/share/applications + cp resources/com.yubico.yubioath.desktop \ + $out/share/applications/com.yubico.yubioath.desktop + mkdir -p $out/share/yubioath/icons + cp resources/icons/*.{icns,ico,png,svg} $out/share/yubioath/icons + substituteInPlace $out/share/applications/com.yubico.yubioath.desktop \ + --replace 'Exec=yubioath-desktop' "Exec=$out/bin/yubioath-desktop" \ + --replace 'Icon=com.yubico.yubioath' "Icon=$out/share/yubioath/icons/com.yubico.yubioath.png" + ''; + + meta = with lib; { + description = "Yubico Authenticator"; + longDescription = '' + Application for generating Open Authentication (OATH) time-based TOTP and + event-based HOTP one-time password codes, with the help of a YubiKey that + protects the shared secrets. + ''; + + homepage = "https://developers.yubico.com/yubioath-desktop"; + downloadPage = "https://developers.yubico.com/yubioath-desktop/Releases/"; + changelog = "https://developers.yubico.com/yubioath-desktop/Release_Notes.html"; + + license = lib.licenses.bsd2; + maintainers = with maintainers; [ mic92 risson ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zathura/cb/default.nix b/nixpkgs/pkgs/applications/misc/zathura/cb/default.nix new file mode 100644 index 000000000000..69ecb1cfd1b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/cb/default.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core +, girara, gettext, libarchive }: + +stdenv.mkDerivation rec { + pname = "zathura-cb"; + version = "0.1.8"; + + src = fetchurl { + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5"; + }; + + nativeBuildInputs = [ meson ninja pkg-config gettext ]; + buildInputs = [ libarchive zathura_core girara ]; + + PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; + + meta = with lib; { + homepage = "https://pwmt.org/projects/zathura-cb/"; + description = "A zathura CB plugin"; + longDescription = '' + The zathura-cb plugin adds comic book support to zathura. + ''; + license = licenses.zlib; + platforms = platforms.unix; + maintainers = with maintainers; [ jlesquembre ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix new file mode 100644 index 000000000000..0b6a57492c5c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix @@ -0,0 +1,54 @@ +{ lib, stdenv, fetchurl, meson, ninja, wrapGAppsHook, pkg-config +, appstream-glib, desktop-file-utils, python3 +, gtk, girara, gettext, libxml2, check +, sqlite, glib, texlive, libintl, libseccomp +, file, librsvg +, gtk-mac-integration +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "zathura"; + version = "0.4.7"; + + src = fetchurl { + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "1rx1fk9s556fk59lmqgvhwrmv71ashh89bx9adjq46wq5gzdn4p0"; + }; + + outputs = [ "bin" "man" "dev" "out" ]; + + # Flag list: + # https://github.com/pwmt/zathura/blob/master/meson_options.txt + mesonFlags = [ + "-Dsqlite=enabled" + "-Dmagic=enabled" + "-Dmanpages=enabled" + "-Dconvert-icon=enabled" + "-Dsynctex=enabled" + # Make sure tests are enabled for doCheck + "-Dtests=enabled" + ] ++ optional (!stdenv.isLinux) "-Dseccomp=disabled"; + + nativeBuildInputs = [ + meson ninja pkg-config desktop-file-utils python3.pkgs.sphinx + gettext wrapGAppsHook libxml2 check appstream-glib + ]; + + buildInputs = [ + gtk girara libintl sqlite glib file librsvg + texlive.bin.core + ] ++ optional stdenv.isLinux libseccomp + ++ optional stdenv.isDarwin gtk-mac-integration; + + doCheck = !stdenv.isDarwin; + + meta = { + homepage = "https://git.pwmt.org/pwmt/zathura"; + description = "A core component for zathura PDF viewer"; + license = licenses.zlib; + platforms = platforms.unix; + maintainers = with maintainers; [ globin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zathura/default.nix b/nixpkgs/pkgs/applications/misc/zathura/default.nix new file mode 100644 index 000000000000..1548b0581b65 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/default.nix @@ -0,0 +1,33 @@ +{ config, pkgs +# zathura_pdf_mupdf fails to load _opj_create_decompress at runtime on Darwin (https://github.com/NixOS/nixpkgs/pull/61295#issue-277982980) +, useMupdf ? config.zathura.useMupdf or (!pkgs.stdenv.isDarwin) }: + +let + callPackage = pkgs.newScope self; + + self = rec { + gtk = pkgs.gtk3; + + zathura_core = callPackage ./core { }; + + zathura_pdf_poppler = callPackage ./pdf-poppler { }; + + zathura_pdf_mupdf = callPackage ./pdf-mupdf { }; + + zathura_djvu = callPackage ./djvu { }; + + zathura_ps = callPackage ./ps { }; + + zathura_cb = callPackage ./cb { }; + + zathuraWrapper = callPackage ./wrapper.nix { + plugins = [ + zathura_djvu + zathura_ps + zathura_cb + (if useMupdf then zathura_pdf_mupdf else zathura_pdf_poppler) + ]; + }; + }; + +in self.zathuraWrapper diff --git a/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix b/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix new file mode 100644 index 000000000000..f0fe09486324 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gtk, zathura_core, girara, djvulibre, gettext }: + +stdenv.mkDerivation rec { + pname = "zathura-djvu"; + version = "0.2.9"; + + src = fetchurl { + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "0062n236414db7q7pnn3ccg5111ghxj3407pn9ri08skxskgirln"; + }; + + nativeBuildInputs = [ meson ninja pkg-config ]; + buildInputs = [ djvulibre gettext zathura_core gtk girara ]; + + PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; + + meta = with lib; { + homepage = "https://pwmt.org/projects/zathura-djvu/"; + description = "A zathura DJVU plugin"; + longDescription = '' + The zathura-djvu plugin adds DjVu support to zathura by using the + djvulibre library. + ''; + license = licenses.zlib; + platforms = platforms.unix; + maintainers = with maintainers; [ ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix new file mode 100644 index 000000000000..05f6c2b6a65e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix @@ -0,0 +1,56 @@ +{ stdenv, lib, meson, ninja, fetchurl, fetchpatch +, cairo +, girara +, gtk-mac-integration +, gumbo +, jbig2dec +, libjpeg +, mupdf +, openjpeg +, pkg-config +, zathura_core +}: + +stdenv.mkDerivation rec { + version = "0.3.6"; + pname = "zathura-pdf-mupdf"; + + src = fetchurl { + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66"; + }; + + nativeBuildInputs = [ meson ninja pkg-config ]; + + buildInputs = [ + cairo + girara + gumbo + jbig2dec + libjpeg + mupdf + openjpeg + zathura_core + ] ++ lib.optional stdenv.isDarwin gtk-mac-integration; + + mesonFlags = [ + "-Dlink-external=true" + ]; + + # avoid: undefined symbol: gumbo_destroy_output + NIX_LDFLAGS = [ "-lgumbo" ]; + + PKG_CONFIG_ZATHURA_PLUGINDIR= "lib/zathura"; + + meta = with lib; { + homepage = "https://pwmt.org/projects/zathura-pdf-mupdf/"; + description = "A zathura PDF plugin (mupdf)"; + longDescription = '' + The zathura-pdf-mupdf plugin adds PDF support to zathura by + using the mupdf rendering library. + ''; + license = licenses.zlib; + platforms = platforms.unix; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix b/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix new file mode 100644 index 000000000000..b76e72a6970c --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core, girara, poppler }: + +stdenv.mkDerivation rec { + pname = "zathura-pdf-poppler"; + version = "0.3.0"; + + src = fetchurl { + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "1vfl4vkyy3rf39r1sqaa7y8113bgkh2bkfq3nn2inis9mrykmk6m"; + }; + + nativeBuildInputs = [ meson ninja pkg-config zathura_core ]; + buildInputs = [ poppler girara ]; + + PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; + + meta = with lib; { + homepage = "https://pwmt.org/projects/zathura-pdf-poppler/"; + description = "A zathura PDF plugin (poppler)"; + longDescription = '' + The zathura-pdf-poppler plugin adds PDF support to zathura by + using the poppler rendering library. + ''; + license = licenses.zlib; + platforms = platforms.unix; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix b/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix new file mode 100644 index 000000000000..ee63a9df53bd --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix @@ -0,0 +1,29 @@ +{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core, girara, libspectre, gettext }: + +stdenv.mkDerivation rec { + pname = "zathura-ps"; + version = "0.2.6"; + + src = fetchurl { + url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz"; + sha256 = "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y"; + }; + + nativeBuildInputs = [ meson ninja pkg-config gettext ]; + buildInputs = [ libspectre zathura_core girara ]; + + PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura"; + + meta = with lib; { + homepage = "https://pwmt.org/projects/zathura-ps/"; + description = "A zathura PS plugin"; + longDescription = '' + The zathura-ps plugin adds PS support to zathura by using the + libspectre library. + ''; + license = licenses.zlib; + platforms = platforms.unix; + maintainers = with maintainers; [ cstrahan ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix new file mode 100644 index 000000000000..49f78729a310 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix @@ -0,0 +1,37 @@ +{ symlinkJoin, lib, makeWrapper, zathura_core, file, plugins ? [] }: +symlinkJoin { + name = "zathura-with-plugins-${zathura_core.version}"; + + paths = with zathura_core; [ man dev out ] ++ plugins; + + nativeBuildInputs = [ makeWrapper ]; + + postBuild = let + fishCompletion = "share/fish/vendor_completions.d/zathura.fish"; + in '' + makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \ + --prefix PATH ":" "${lib.makeBinPath [ file ]}" \ + --add-flags --plugins-dir="$out/lib/zathura" + + # zathura fish completion references the zathura_core derivation to + # check for supported plugins which live in the wrapper derivation, + # so we need to fix the path to reference $out instead. + rm "$out/${fishCompletion}" + substitute "${zathura_core.out}/${fishCompletion}" "$out/${fishCompletion}" \ + --replace "${zathura_core.out}" "$out" + ''; + + meta = with lib; { + homepage = "https://git.pwmt.org/pwmt/zathura/"; + description = "A highly customizable and functional PDF viewer"; + longDescription = '' + Zathura is a highly customizable and functional PDF viewer based on the + poppler rendering library and the GTK toolkit. The idea behind zathura + is an application that provides a minimalistic and space saving interface + as well as an easy usage that mainly focuses on keyboard interaction. + ''; + license = licenses.zlib; + platforms = platforms.unix; + maintainers = with maintainers; [ smironov globin TethysSvensson ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zettlr/default.nix b/nixpkgs/pkgs/applications/misc/zettlr/default.nix new file mode 100644 index 000000000000..77ff11b98622 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zettlr/default.nix @@ -0,0 +1,47 @@ +{ appimageTools +, lib +, fetchurl +, gtk3 +, gsettings-desktop-schemas +, texlive +, pandoc +}: + +# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs. +let + pname = "zettlr"; + version = "1.8.9"; + name = "${pname}-${version}"; + src = fetchurl { + url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage"; + sha256 = "sha256-1cU9HdPXrJ4ibSjOitO8iJfMIaGub/jjlb2lssYFfcU="; + }; + appimageContents = appimageTools.extractType2 { + inherit name src; + }; +in +appimageTools.wrapType2 rec { + inherit name src; + + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ texlive pandoc ]; + extraInstallCommands = '' + mv $out/bin/{${name},${pname}} + install -m 444 -D ${appimageContents}/Zettlr.desktop $out/share/applications/zettlr.desktop + install -m 444 -D ${appimageContents}/Zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png + substituteInPlace $out/share/applications/zettlr.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "A markdown editor for writing academic texts and taking notes"; + homepage = "https://www.zettlr.com"; + platforms = [ "x86_64-linux" ]; + license = licenses.gpl3; + maintainers = with maintainers; [ tfmoraes ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zk-shell/default.nix b/nixpkgs/pkgs/applications/misc/zk-shell/default.nix new file mode 100644 index 000000000000..1dbaa842ba43 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zk-shell/default.nix @@ -0,0 +1,28 @@ +{ lib, fetchFromGitHub, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + version = "1.0.0"; + name = "zk-shell-" + version; + + src = fetchFromGitHub { + owner = "rgs1"; + repo = "zk_shell"; + rev = "v${version}"; + sha256 = "0zisvvlclsf4sdh7dpqcl1149xbxw6pi1aqcwjbqblgf8m4nm0c7"; + }; + + propagatedBuildInputs = (with pythonPackages; [ + ansi kazoo nose six tabulate twitter + ]); + + #requires a running zookeeper, don't know how to fix that for the moment + doCheck = false; + + meta = { + description = "A powerful & scriptable shell for Apache ZooKeeper"; + homepage = "https://github.com/rgs1/zk_shell"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.mahe ]; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zktree/default.nix b/nixpkgs/pkgs/applications/misc/zktree/default.nix new file mode 100644 index 000000000000..86e12712340a --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zktree/default.nix @@ -0,0 +1,25 @@ +{ lib +, fetchFromGitHub +, rustPlatform +}: + +rustPlatform.buildRustPackage rec { + pname = "zktree"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "alirezameskin"; + repo = "zktree"; + rev = version; + sha256 = "11w86k1w5zryiq6bqr98pjhffd3l76377yz53qx0n76vc5374fk9"; + }; + + cargoSha256 = "18v7agm39acnblc703278cn8py5971hm8p5kxmznpw119fjp36s5"; + + meta = with lib; { + description = "A small tool to display Znodes in Zookeeper in tree structure."; + homepage = "https://github.com/alirezameskin/zktree"; + license = licenses.unlicense; + maintainers = with lib.maintainers; [ alirezameskin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zola/default.nix b/nixpkgs/pkgs/applications/misc/zola/default.nix new file mode 100644 index 000000000000..d669b97c44d1 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zola/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices, installShellFiles }: + +rustPlatform.buildRustPackage rec { + pname = "zola"; + version = "unstable-2021-07-14"; + + src = fetchFromGitHub { + owner = "getzola"; + repo = pname; + # unstable because the latest release fails to build + rev = "312ffcb04c06c5f157b9fd2b944b858703238592"; + sha256 = "0i5zqs1gwxhvsynb540c3azfi4357igr4i5p0bi3h7ras2asas8w"; + }; + + cargoSha256 = "0g5z0s837cfwzral2zz0avp0xywyaa3l1adxg520qrnga7z0kbh8"; + + nativeBuildInputs = [ cmake pkg-config installShellFiles]; + buildInputs = [ openssl oniguruma ] + ++ lib.optional stdenv.isDarwin CoreServices; + + RUSTONIG_SYSTEM_LIBONIG = true; + + postInstall = '' + installShellCompletion --cmd zola \ + --fish completions/zola.fish \ + --zsh completions/_zola \ + --bash completions/zola.bash + ''; + + meta = with lib; { + description = "A fast static site generator with everything built-in"; + homepage = "https://www.getzola.org/"; + license = licenses.mit; + maintainers = with maintainers; [ dandellion dywedir _0x4A6F ]; + # set because of unstable-* version + mainProgram = "zola"; + }; +} diff --git a/nixpkgs/pkgs/applications/misc/zscroll/default.nix b/nixpkgs/pkgs/applications/misc/zscroll/default.nix new file mode 100644 index 000000000000..3acac8b3c68d --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/zscroll/default.nix @@ -0,0 +1,27 @@ +{ lib, python3, python3Packages, fetchFromGitHub }: + +let version = "1.0"; in + +python3Packages.buildPythonApplication { + name = "zscroll-${version}"; + # don't prefix with python version + namePrefix = ""; + + src = fetchFromGitHub { + owner = "noctuid"; + repo = "zscroll"; + rev = "v${version}"; + sha256 = "0rf9m1czy19hzpcp8dq9c5zawk0nhwfzzjxlhk9r2n06lhb81ig5"; + }; + + doCheck = false; + + propagatedBuildInputs = [ python3 ]; + + meta = with lib; { + description = "A text scroller for use with panels and shells"; + homepage = "https://github.com/noctuid/zscroll"; + license = licenses.bsd2; + platforms = platforms.all; + }; +} |