diff options
Diffstat (limited to 'pkgs/tools')
32 files changed, 1349 insertions, 160 deletions
diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix new file mode 100644 index 00000000000..6f8f9e44cc4 --- /dev/null +++ b/pkgs/tools/X11/opentabletdriver/default.nix @@ -0,0 +1,152 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchurl +, makeWrapper +, linkFarmFromDrvs +, dotnet-netcore +, dotnet-sdk +, dotnetPackages +, dpkg +, gtk3 +, libX11 +, libXrandr +, libappindicator +, libevdev +, libnotify +, udev +, makeDesktopItem +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "OpenTabletDriver"; + version = "0.4.2"; + + src = fetchFromGitHub { + owner = "InfinityGhost"; + repo = "OpenTabletDriver"; + rev = "v${version}"; + sha256 = "048y7gjlk2yw4vh62px1d9w0va6ap1a0cndcpbirlyj9q6b8jxax"; + }; + + debPkg = fetchurl { + url = "https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${version}/OpenTabletDriver.deb"; + sha256 = "13gg0dhvjy88h9lhcrp30fjiwgb9dzjsgk1k760pi1ki71a5vz2r"; + }; + + nativeBuildInputs = [ + dotnet-sdk + dotnetPackages.Nuget + dpkg + makeWrapper + wrapGAppsHook + ]; + + nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix { + fetchNuGet = { name, version, sha256 }: fetchurl { + name = "nuget-${name}-${version}.nupkg"; + url = "https://www.nuget.org/api/v2/package/${name}/${version}"; + inherit sha256; + }; + }); + + runtimeDeps = [ + gtk3 + libX11 + libXrandr + libappindicator + libevdev + libnotify + udev + ]; + + configurePhase = '' + export HOME=$(mktemp -d) + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + + nuget sources Add -Name nixos -Source "$PWD/nixos" + nuget init "$nugetDeps" "$PWD/nixos" + + # FIXME: https://github.com/NuGet/Home/issues/4413 + mkdir -p $HOME/.nuget/NuGet + cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet + + for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do + dotnet restore --source "$PWD/nixos" $project + done + ''; + + buildPhase = '' + for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do + dotnet build $project \ + --no-restore \ + --configuration Release \ + --framework net5 + done + ''; + + installPhase = '' + mkdir -p $out/lib/OpenTabletDriver/ + cp -r ./OpenTabletDriver/Configurations/ $out/lib/OpenTabletDriver/ + + for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do + dotnet publish $project \ + --no-build \ + --no-self-contained \ + --configuration Release \ + --framework net5 \ + --output $out/lib + done + + # Give a more "*nix" name to the binaries + makeWrapper $out/lib/OpenTabletDriver.Console $out/bin/otd \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --set DOTNET_ROOT "${dotnet-netcore}" \ + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" + + makeWrapper $out/lib/OpenTabletDriver.Daemon $out/bin/otd-daemon \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --set DOTNET_ROOT "${dotnet-netcore}" \ + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" + + makeWrapper $out/lib/OpenTabletDriver.UX.Gtk $out/bin/otd-gui \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --set DOTNET_ROOT "${dotnet-netcore}" \ + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" + + mkdir -p $out/share/{applications,pixmaps} + + cp -r $src/OpenTabletDriver.UX/Assets/* $out/share/pixmaps + + cp -r ${makeDesktopItem { + desktopName = "OpenTabletDriver"; + name = "OpenTabletDriver"; + exec = "otd-gui"; + icon = "otd"; + comment = meta.description; + type = "Application"; + categories = "Utility;"; + }}/share/applications/* $out/share/applications + + # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead + dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/30-opentabletdriver.rules + mkdir -p $out/lib/udev/rules.d + cp ./usr/lib/udev/rules.d/* $out/lib/udev/rules.d + ''; + + dontWrapGApps = true; + dontStrip = true; + + meta = with lib; { + description = "Open source, cross-platform, user-mode tablet driver"; + homepage = "https://github.com/InfinityGhost/OpenTabletDriver"; + license = licenses.lgpl3Plus; + maintainers = with maintainers; [ thiagokokada ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix new file mode 100644 index 00000000000..34d2981cff5 --- /dev/null +++ b/pkgs/tools/X11/opentabletdriver/deps.nix @@ -0,0 +1,462 @@ +{ fetchNuGet }: [ + (fetchNuGet { + name = "AtkSharp"; + version = "3.22.25.74"; + sha256 = "04zjpjrddw5clac0mjpk0q00rbmv45bh1bsqa4s3pc5pb7fm9cd9"; + }) + (fetchNuGet { + name = "CairoSharp"; + version = "3.22.25.74"; + sha256 = "0sx7vmwcrfbkg3g887v051iklcdmdhh43ndp96nk4bccjimmmwl6"; + }) + (fetchNuGet { + name = "Eto.Forms"; + version = "2.5.6"; + sha256 = "035ny8jlanchwq16gcq0xb6ywabjl71c7qbpv26sjwg96na8vz51"; + }) + (fetchNuGet { + name = "Eto.Platform.Gtk"; + version = "2.5.6"; + sha256 = "1ijkjd3lc7x59yk369kxipzgk1zhyr9g6k319wc0n033vij26mwl"; + }) + (fetchNuGet { + name = "GdkSharp"; + version = "3.22.25.74"; + sha256 = "07sdfvqk2jmyjj7fyd0mikhnzsk52zd3g2dhip8kz3006cczqm81"; + }) + (fetchNuGet { + name = "GioSharp"; + version = "3.22.25.74"; + sha256 = "01l4216bm5jxbxypkkq4d2527c6zd68kbywr3h1lr1darc9nf1d1"; + }) + (fetchNuGet { + name = "GLibSharp"; + version = "3.22.25.74"; + sha256 = "0k2p79z4wcswi528v0ykc37rsqfqi6xd6pl0j4csdj9zf19svgx2"; + }) + (fetchNuGet { + name = "GtkSharp"; + version = "3.22.25.74"; + sha256 = "0vazfvkjyzppcynqa1h70s1jmp4vq2j30v5x2scg8n2c5dxaj0k3"; + }) + (fetchNuGet { + name = "HidSharpCore"; + version = "1.1.0"; + sha256 = "122s5j3wrv8hcgnbxrnjqydvcfz7gdm8xq0wlwzrgwdjk44lr45a"; + }) + (fetchNuGet { + name = "MessagePack.Annotations"; + version = "2.1.194"; + sha256 = "1jkhq3hiy4brvzsywl4p4jb9jrnzs3vmgr3s8fxpb1dzafadw8b0"; + }) + (fetchNuGet { + name = "MessagePack"; + version = "2.1.194"; + sha256 = "1v2gyd9sd6hppfhlzngmzzhnpr39b95rwrqq0r9zzp480b6vzaj0"; + }) + (fetchNuGet { + name = "Microsoft.Bcl.AsyncInterfaces"; + version = "1.1.1"; + sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; + }) + (fetchNuGet { + name = "Microsoft.CSharp"; + version = "4.4.1"; + sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "1.1.0"; + sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "1.1.1"; + sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Platforms"; + version = "3.0.0"; + sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; + }) + (fetchNuGet { + name = "Microsoft.NETCore.Targets"; + version = "1.1.0"; + sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; + }) + (fetchNuGet { + name = "Microsoft.VisualStudio.Threading.Analyzers"; + version = "16.7.56"; + sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; + }) + (fetchNuGet { + name = "Microsoft.VisualStudio.Threading"; + version = "16.7.56"; + sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; + }) + (fetchNuGet { + name = "Microsoft.VisualStudio.Validation"; + version = "15.5.31"; + sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; + }) + (fetchNuGet { + name = "Microsoft.Win32.Primitives"; + version = "4.3.0"; + sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; + }) + (fetchNuGet { + name = "Microsoft.Win32.Registry"; + version = "4.6.0"; + sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; + }) + (fetchNuGet { + name = "Nerdbank.Streams"; + version = "2.6.77"; + sha256 = "13dnfwxa8syx7vfjmd5pcrqz31k0q8y3mmh6yz6bmljhjri65q5c"; + }) + (fetchNuGet { + name = "Newtonsoft.Json"; + version = "12.0.2"; + sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; + }) + (fetchNuGet { + name = "Newtonsoft.Json"; + version = "12.0.3"; + sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; + }) + (fetchNuGet { + name = "PangoSharp"; + version = "3.22.25.74"; + sha256 = "172i1hjpz4rgqlilir8a57kgmciw9x0shz4zwbhhlr59mndvqbih"; + }) + (fetchNuGet { + name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; + }) + (fetchNuGet { + name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; + }) + (fetchNuGet { + name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; + }) + (fetchNuGet { + name = "runtime.native.System.Net.Http"; + version = "4.3.0"; + sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; + }) + (fetchNuGet { + name = "runtime.native.System.Security.Cryptography.Apple"; + version = "4.3.0"; + sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; + }) + (fetchNuGet { + name = "runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; + }) + (fetchNuGet { + name = "runtime.native.System"; + version = "4.3.0"; + sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; + }) + (fetchNuGet { + name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; + }) + (fetchNuGet { + name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; + }) + (fetchNuGet { + name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; + version = "4.3.0"; + sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; + }) + (fetchNuGet { + name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; + }) + (fetchNuGet { + name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; + }) + (fetchNuGet { + name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; + }) + (fetchNuGet { + name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; + }) + (fetchNuGet { + name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; + version = "4.3.2"; + sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; + }) + (fetchNuGet { + name = "StreamJsonRpc"; + version = "2.6.121"; + sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76"; + }) + (fetchNuGet { + name = "System.Collections.Concurrent"; + version = "4.3.0"; + sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; + }) + (fetchNuGet { + name = "System.Collections.Immutable"; + version = "1.7.1"; + sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; + }) + (fetchNuGet { + name = "System.Collections"; + version = "4.3.0"; + sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; + }) + (fetchNuGet { + name = "System.CommandLine"; + version = "2.0.0-beta1.20253.1"; + sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r"; + }) + (fetchNuGet { + name = "System.CommandLine"; + version = "2.0.0-beta1.20303.1"; + sha256 = "0isnz8ipqlqim06hf56zlaq2vnsy5facvf5nvq6kzm5h1dm3l2vn"; + }) + (fetchNuGet { + name = "System.ComponentModel.Annotations"; + version = "4.7.0"; + sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; + }) + (fetchNuGet { + name = "System.Diagnostics.Debug"; + version = "4.3.0"; + sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; + }) + (fetchNuGet { + name = "System.Diagnostics.DiagnosticSource"; + version = "4.3.0"; + sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; + }) + (fetchNuGet { + name = "System.Diagnostics.Tracing"; + version = "4.3.0"; + sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; + }) + (fetchNuGet { + name = "System.Globalization.Calendars"; + version = "4.3.0"; + sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; + }) + (fetchNuGet { + name = "System.Globalization.Extensions"; + version = "4.3.0"; + sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; + }) + (fetchNuGet { + name = "System.Globalization"; + version = "4.3.0"; + sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; + }) + (fetchNuGet { + name = "System.IO.FileSystem.Primitives"; + version = "4.3.0"; + sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; + }) + (fetchNuGet { + name = "System.IO.FileSystem"; + version = "4.3.0"; + sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; + }) + (fetchNuGet { + name = "System.IO.Pipelines"; + version = "4.7.2"; + sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9"; + }) + (fetchNuGet { + name = "System.IO"; + version = "4.3.0"; + sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; + }) + (fetchNuGet { + name = "System.Linq"; + version = "4.3.0"; + sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; + }) + (fetchNuGet { + name = "System.Memory"; + version = "4.5.3"; + sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; + }) + (fetchNuGet { + name = "System.Memory"; + version = "4.5.4"; + sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; + }) + (fetchNuGet { + name = "System.Net.Http"; + version = "4.3.4"; + sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; + }) + (fetchNuGet { + name = "System.Net.Primitives"; + version = "4.3.0"; + sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; + }) + (fetchNuGet { + name = "System.Net.WebSockets"; + version = "4.3.0"; + sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; + }) + (fetchNuGet { + name = "System.Numerics.Vectors"; + version = "4.5.0"; + sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; + }) + (fetchNuGet { + name = "System.Reflection.Emit.Lightweight"; + version = "4.6.0"; + sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; + }) + (fetchNuGet { + name = "System.Reflection.Emit"; + version = "4.7.0"; + sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; + }) + (fetchNuGet { + name = "System.Reflection.Primitives"; + version = "4.3.0"; + sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; + }) + (fetchNuGet { + name = "System.Reflection"; + version = "4.3.0"; + sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; + }) + (fetchNuGet { + name = "System.Resources.ResourceManager"; + version = "4.3.0"; + sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; + }) + (fetchNuGet { + name = "System.Runtime.CompilerServices.Unsafe"; + version = "4.5.2"; + sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; + }) + (fetchNuGet { + name = "System.Runtime.CompilerServices.Unsafe"; + version = "4.7.1"; + sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; + }) + (fetchNuGet { + name = "System.Runtime.Extensions"; + version = "4.3.0"; + sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; + }) + (fetchNuGet { + name = "System.Runtime.Handles"; + version = "4.3.0"; + sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; + }) + (fetchNuGet { + name = "System.Runtime.InteropServices"; + version = "4.3.0"; + sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; + }) + (fetchNuGet { + name = "System.Runtime.Numerics"; + version = "4.3.0"; + sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; + }) + (fetchNuGet { + name = "System.Runtime"; + version = "4.3.0"; + sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; + }) + (fetchNuGet { + name = "System.Security.AccessControl"; + version = "4.6.0"; + sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Algorithms"; + version = "4.3.0"; + sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Cng"; + version = "4.3.0"; + sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Csp"; + version = "4.3.0"; + sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Encoding"; + version = "4.3.0"; + sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.OpenSsl"; + version = "4.3.0"; + sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.Primitives"; + version = "4.3.0"; + sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; + }) + (fetchNuGet { + name = "System.Security.Cryptography.X509Certificates"; + version = "4.3.0"; + sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; + }) + (fetchNuGet { + name = "System.Security.Principal.Windows"; + version = "4.6.0"; + sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; + }) + (fetchNuGet { + name = "System.Text.Encoding"; + version = "4.3.0"; + sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; + }) + (fetchNuGet { + name = "System.Threading.Tasks.Dataflow"; + version = "4.11.1"; + sha256 = "09fbfsiay1xcbpvnq2j38b6mb2scvf0s8mpn78bcqsldidg7k2vw"; + }) + (fetchNuGet { + name = "System.Threading.Tasks.Extensions"; + version = "4.5.4"; + sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; + }) + (fetchNuGet { + name = "System.Threading.Tasks"; + version = "4.3.0"; + sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; + }) + (fetchNuGet { + name = "System.Threading"; + version = "4.3.0"; + sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; + }) + (fetchNuGet { + name = "WaylandNET"; + version = "0.2.0"; + sha256 = "1qjpvra08vdqdw4j1gamz6451x5sd5r1j86lsvrl8akq4nymfr8k"; + }) +] diff --git a/pkgs/tools/X11/opentabletdriver/shell.nix b/pkgs/tools/X11/opentabletdriver/shell.nix new file mode 100644 index 00000000000..526fa4a4432 --- /dev/null +++ b/pkgs/tools/X11/opentabletdriver/shell.nix @@ -0,0 +1,12 @@ +{ pkgs ? import ../../../../. {} }: + +with pkgs; + +mkShell { + buildInputs = [ + common-updater-scripts + curl + dotnetCorePackages.sdk_5_0 + jq + ]; +} diff --git a/pkgs/tools/X11/opentabletdriver/update.sh b/pkgs/tools/X11/opentabletdriver/update.sh new file mode 100755 index 00000000000..04fae30c05a --- /dev/null +++ b/pkgs/tools/X11/opentabletdriver/update.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env nix-shell +#!nix-shell shell.nix -i bash + +set -eo pipefail + +cd "$(dirname "${BASH_SOURCE[0]}")" + +deps_file="$(realpath "./deps.nix")" + +new_version="$(curl -s "https://api.github.com/repos/InfinityGhost/OpenTabletDriver/releases" | jq -r '.[0].tag_name' | sed 's|[^0-9.]||g')" +old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)" +if [[ "$new_version" == "$old_version" ]]; then + echo "Up to date" + [[ "${1}" != "--force" ]] && exit 0 +fi + +cd ../../../.. +update-source-version opentabletdriver "$new_version" +store_src="$(nix-build . -A opentabletdriver.src --no-out-link)" +src="$(mktemp -d /tmp/opentabletdriver-src.XXX)" +echo "Temp src dir: $src" +cp -rT "$store_src" "$src" +chmod -R +w "$src" + +pushd "$src" + +# Setup empty nuget package folder to force reinstall. +mkdir ./nuget_tmp.packages +cat >./nuget_tmp.config <<EOF +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <packageSources> + <add key="nuget" value="https://api.nuget.org/v3/index.json" /> + </packageSources> + <config> + <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" /> + </config> +</configuration> +EOF + +export DOTNET_CLI_TELEMETRY_OPTOUT=1 + +for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do + dotnet restore $project --configfile ./nuget_tmp.config +done + +echo "{ fetchNuGet }: [" >"$deps_file" +while read pkg_spec; do + { read pkg_name; read pkg_version; } < <( + # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3` + sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec") + pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)" + cat >>"$deps_file" <<EOF + (fetchNuGet { + name = "$pkg_name"; + version = "$pkg_version"; + sha256 = "$pkg_sha256"; + }) +EOF +done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort) +echo "]" >>"$deps_file" + +popd +rm -r "$src" diff --git a/pkgs/tools/X11/xkb-switch-i3/default.nix b/pkgs/tools/X11/xkb-switch-i3/default.nix new file mode 100644 index 00000000000..9485cb62b2b --- /dev/null +++ b/pkgs/tools/X11/xkb-switch-i3/default.nix @@ -0,0 +1,34 @@ +{ stdenv +, cmake +, fetchFromGitHub +, i3 +, jsoncpp +, libsigcxx +, libX11 +, libxkbfile +, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "xkb-switch-i3"; + version = "1.8.1"; + + src = fetchFromGitHub { + owner = "Zebradil"; + repo = "xkb-switch-i3"; + rev = version; + sha256 = "15c19hp0n1k3w15qn97j6wp5b8hbk0mq6x3xjfn6dkkjfz1fl6cn"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ i3 jsoncpp libsigcxx libX11 libxkbfile ]; + + meta = with stdenv.lib; { + description = "Switch your X keyboard layouts from the command line(i3 edition)"; + homepage = "https://github.com/Zebradil/xkb-switch-i3"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ewok ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix index 4f28a6d744b..9c7f9936e59 100644 --- a/pkgs/tools/admin/awscli/default.nix +++ b/pkgs/tools/admin/awscli/default.nix @@ -28,11 +28,11 @@ let in with py.pkgs; buildPythonApplication rec { pname = "awscli"; - version = "1.18.203"; # N.B: if you change this, change botocore to a matching version too + version = "1.18.204"; # N.B: if you change this, change botocore to a matching version too src = fetchPypi { inherit pname version; - sha256 = "sha256-afcXbYKRc9w0Zbuyg/bDA/J/lHm4N4FttUgGk4h4H4k="; + sha256 = "sha256-YAyqRJbETCagcME63dt5b9WDRj6tq8Gdwk6qyAd86lE="; }; postPatch = '' diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix index a155c1717eb..610e89c2fc3 100644 --- a/pkgs/tools/archivers/p7zip/default.nix +++ b/pkgs/tools/archivers/p7zip/default.nix @@ -13,6 +13,10 @@ stdenv.mkDerivation rec { } ; + patches = [ + ./gcc10.patch + ]; + # Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional postPatch = '' sed -i '/CC=\/usr/d' makefile.macosx_llvm_64bits diff --git a/pkgs/tools/archivers/p7zip/gcc10.patch b/pkgs/tools/archivers/p7zip/gcc10.patch new file mode 100644 index 00000000000..9361249af93 --- /dev/null +++ b/pkgs/tools/archivers/p7zip/gcc10.patch @@ -0,0 +1,40 @@ +From 1b7d2c73f01b2d2b6a3d2d16840e96e92afdcd61 Mon Sep 17 00:00:00 2001 +From: jinfeihan57 <jinfeihan57@gmail.com> +Date: Tue, 9 Jun 2020 16:48:25 +0800 +Subject: [PATCH] gix gcc10 compiler error + +--- + CPP/Windows/ErrorMsg.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp +index 99684ae..90a7e20 100644 +--- a/CPP/Windows/ErrorMsg.cpp ++++ b/CPP/Windows/ErrorMsg.cpp +@@ -13,7 +13,7 @@ UString MyFormatMessage(DWORD errorCode) + const char * txt = 0; + AString msg; + +- switch(errorCode) { ++ switch(HRESULT(errorCode)) { + case ERROR_NO_MORE_FILES : txt = "No more files"; break ; + case E_NOTIMPL : txt = "E_NOTIMPL"; break ; + case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ; +@@ -22,7 +22,7 @@ UString MyFormatMessage(DWORD errorCode) + case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ; + case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ; + case E_INVALIDARG : txt = "E_INVALIDARG"; break ; +- case ERROR_DIRECTORY : txt = "Error Directory"; break ; ++ case ERROR_DIRECTORY : txt = "Error Directory"; break ; + default: + txt = strerror(errorCode); + } +@@ -43,7 +43,7 @@ bool MyFormatMessage(DWORD messageID, CSysString &message) + const char * txt = 0; + AString msg; + +- switch(messageID) { ++ switch(HRESULT(messageID)) { + case ERROR_NO_MORE_FILES : txt = "No more files"; break ; + case E_NOTIMPL : txt = "E_NOTIMPL"; break ; + case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ; diff --git a/pkgs/tools/backup/duplicacy/default.nix b/pkgs/tools/backup/duplicacy/default.nix index b261289f0bf..9fecfb70f39 100644 --- a/pkgs/tools/backup/duplicacy/default.nix +++ b/pkgs/tools/backup/duplicacy/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "duplicacy"; - version = "2.3.0"; + version = "2.7.2"; goPackagePath = "github.com/gilbertchen/duplicacy"; @@ -10,7 +10,7 @@ buildGoPackage rec { owner = "gilbertchen"; repo = "duplicacy"; rev = "v${version}"; - sha256 = "12swp3kbwkmwn3g2mp964m60kabmz0ip7kkhvhiqq7k74nxzj312"; + sha256 = "0j37sqicj7rl982czqsl3ipxw7k8k4smcr63s0yklxwz7ch3353c"; }; goDeps = ./deps.nix; buildPhase = '' diff --git a/pkgs/tools/backup/duplicacy/deps.nix b/pkgs/tools/backup/duplicacy/deps.nix index 12d30b53b6c..e7bf7e91f89 100644 --- a/pkgs/tools/backup/duplicacy/deps.nix +++ b/pkgs/tools/backup/duplicacy/deps.nix @@ -4,27 +4,18 @@ goPackagePath = "cloud.google.com/go"; fetch = { type = "git"; - url = "https://code.googlesource.com/gocloud"; + url = "https://github.com/googleapis/google-cloud-go"; rev = "2d3a6656c17a60b0815b7e06ab0be04eacb6e613"; sha256 = "0fi3qj9fvc4bxbrwa1m5sxsb8yhvawiwigaddvmmizjykxbq5csq"; }; } { - goPackagePath = "github.com/Azure/azure-sdk-for-go"; - fetch = { - type = "git"; - url = "https://github.com/Azure/azure-sdk-for-go"; - rev = "b7fadebe0e7f5c5720986080a01495bd8d27be37"; - sha256 = "11zcmd17206byxhgz2a75qascilydlzjbz73l2mrqng3yyr20yk1"; - }; - } - { goPackagePath = "github.com/Azure/go-autorest"; fetch = { type = "git"; url = "https://github.com/Azure/go-autorest"; - rev = "0ae36a9e544696de46fdadb7b0d5fb38af48c063"; - sha256 = "0f2qcv24l9bx3jys2m9ycyy77vqlx7dbfa3frxlk19wnrwiv3p6g"; + rev = "9bc4033dd347c7f416fca46b2f42a043dc1fbdf6"; + sha256 = "158xbd8wn1bna1k1ichlirz6a1zvlh3rg7klr9cnp72l2q8jwvcl"; }; } { @@ -41,8 +32,8 @@ fetch = { type = "git"; url = "https://github.com/aws/aws-sdk-go"; - rev = "a32b1dcd091264b5dee7b386149b6cc3823395c9"; - sha256 = "1yicb7l6m4hs3mi724hz74wn8305qvx6g73mjqafaaqvh6dyn86m"; + rev = "851d5ffb66720c2540cc68020d4d8708950686c8"; + sha256 = "16qp8ywcf04d2y1ibf3mpglcrxk07x8gak46a2l53lchps2mgcrp"; }; } { @@ -59,8 +50,8 @@ fetch = { type = "git"; url = "https://github.com/dgrijalva/jwt-go"; - rev = "dbeaa9332f19a944acb5736b4456cfcc02140e29"; - sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs"; + rev = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e"; + sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp"; }; } { @@ -68,8 +59,8 @@ fetch = { type = "git"; url = "https://github.com/gilbertchen/azure-sdk-for-go"; - rev = "bbf89bd4d716c184f158d1e1428c2dbef4a18307"; - sha256 = "14563izc2y05k8s20fmhanvjydbcq8k5adp4cgw91d9bs52qivx7"; + rev = "8fd4663cab7c7c1c46d00449291c92ad23b0d0d9"; + sha256 = "123fj5jni1pjj8i9adzd4r07n9hnlmfprlcjf5hqb1zjb72xi1p7"; }; } { @@ -86,8 +77,8 @@ fetch = { type = "git"; url = "https://github.com/gilbertchen/go-dropbox"; - rev = "90711b603312b1f973f3a5da3793ac4f1e5c2f2a"; - sha256 = "0y2ydl3mjbkfbqyygrwq7vqig9hjh7cxvzsn2gxc1851haqp4h19"; + rev = "2233fa1dd846b3a3e8060b6c1ea12883deb9d288"; + sha256 = "01fqxad5mm7rs0mp1ipp9aw80ski6sqyqljpf9dgify8dbiffl97"; }; } { @@ -145,12 +136,12 @@ }; } { - goPackagePath = "github.com/go-ini/ini"; + goPackagePath = "github.com/golang/groupcache"; fetch = { type = "git"; - url = "https://github.com/go-ini/ini"; - rev = "32e4c1e6bc4e7d0d8451aa6b75200d19e37a536a"; - sha256 = "0mhgxw5q6b0pryhikx3k4wby7g32rwjjljzihi47lwn34kw5y1qn"; + url = "https://github.com/golang/groupcache"; + rev = "8c9f03a8e57eb486e42badaed3fb287da51807ba"; + sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh"; }; } { @@ -158,8 +149,8 @@ fetch = { type = "git"; url = "https://github.com/golang/protobuf"; - rev = "1e59b77b52bf8e4b449a57e6f79f21226d571845"; - sha256 = "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8"; + rev = "84668698ea25b64748563aa20726db66a6b8d299"; + sha256 = "1gkd1942vk9n8kfzdwy1iil6wgvlwjq7a3y5jc49ck4lz9rhmgkq"; }; } { @@ -167,8 +158,8 @@ fetch = { type = "git"; url = "https://github.com/googleapis/gax-go"; - rev = "317e0006254c44a0ac427cc52a0e083ff0b9622f"; - sha256 = "0h92x579vbrv2fka8q2ddy1kq6a63qbqa8zc09ygl6skzn9gw1dh"; + rev = "c8a15bac9b9fe955bd9f900272f9a306465d28cf"; + sha256 = "13x3x7agq0b46wpchbd2sqli5l33z6hvfn1qjbiqvsgpbv7wd140"; }; } { @@ -176,8 +167,26 @@ fetch = { type = "git"; url = "https://github.com/jmespath/go-jmespath"; - rev = "0b12d6b5"; - sha256 = "1vv6hph8j6xgv7gwl9vvhlsaaqsm22sxxqmgmldi4v11783pc1ld"; + rev = "c2b33e84"; + sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz"; + }; + } + { + goPackagePath = "github.com/klauspost/cpuid"; + fetch = { + type = "git"; + url = "https://github.com/klauspost/cpuid"; + rev = "750c0591dbbd50ef88371c665ad49e426a4b830b"; + sha256 = "1yiby4xa12j3kcw5q7dfsbcybhaxjkppvgz6ac2p2lcwha303b1g"; + }; + } + { + goPackagePath = "github.com/klauspost/reedsolomon"; + fetch = { + type = "git"; + url = "https://github.com/klauspost/reedsolomon"; + rev = "7daa20bf74337a939c54f892a2eca9d9b578eb7f"; + sha256 = "1xk4wqgrl63l95lqnszzbpa06apzxfmpwfnkrn1n8jb0ws7mi01m"; }; } { @@ -185,8 +194,8 @@ fetch = { type = "git"; url = "https://github.com/kr/fs"; - rev = "2788f0dbd16903de03cb8186e5c7d97b69ad387b"; - sha256 = "1c0fipl4rsh0v5liq1ska1dl83v3llab4k6lm8mvrx9c4dyp71ly"; + rev = "1455def202f6e05b95cc7bfc7e8ae67ae5141eba"; + sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"; }; } { @@ -208,12 +217,30 @@ }; } { + goPackagePath = "github.com/minio/highwayhash"; + fetch = { + type = "git"; + url = "https://github.com/minio/highwayhash"; + rev = "86a2a969d04373bf05ca722517d30fb1c9a3e4f9"; + sha256 = "0kj2hs82sphag0h25xvprvf2fz3zlinmlif89sk9jp8h518aiahf"; + }; + } + { + goPackagePath = "github.com/mmcloughlin/avo"; + fetch = { + type = "git"; + url = "https://github.com/mmcloughlin/avo"; + rev = "443f81d771042b019379ae4bfcd0a591cb47c88a"; + sha256 = "1zc95crbyi7ylqq3jwv4ya55lyzn9x730szdm307vdss4gqlx8yn"; + }; + } + { goPackagePath = "github.com/ncw/swift"; fetch = { type = "git"; url = "https://github.com/ncw/swift"; - rev = "ae9f0ea1605b9aa6434ed5c731ca35d83ba67c55"; - sha256 = "0a0iwynhgxsl3czabl7ajnxpyw6x0dzbiqz6il8aw7kn10ld1rvl"; + rev = "3e1a09f21340e4828e7265aa89f4dc1495fa7ccc"; + sha256 = "19gb8xh400hzlbdp3nx1f85jxzs36zk0py39vmjcg3fnvdjzblm2"; }; } { @@ -221,8 +248,8 @@ fetch = { type = "git"; url = "https://github.com/pkg/errors"; - rev = "645ef00459ed84a119197bfb8d8205042c6df63d"; - sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5"; + rev = "614d223910a179a466c1767a985424175c39b465"; + sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"; }; } { @@ -230,8 +257,17 @@ fetch = { type = "git"; url = "https://github.com/pkg/sftp"; - rev = "3edd153f213d8d4191a0ee4577c61cca19436632"; - sha256 = "0iw6lijdljwh5xw5hsy0b578cr52h6vvm7hbnzlrvciwhh4sfhhp"; + rev = "5616182052227b951e76d9c9b79a616c608bd91b"; + sha256 = "1rjlhlkr505a0wvync1ycfn9njfc6bib6bw44qnnm50hlfs59hz2"; + }; + } + { + goPackagePath = "github.com/pkg/xattr"; + fetch = { + type = "git"; + url = "https://github.com/pkg/xattr"; + rev = "dd870b5cfebab49617ea0c1da6176474e8a52bf4"; + sha256 = "11ynkc61qrmf853g04sav8vawz8i6a8b73w71f3cq4djb4cnsw0d"; }; } { @@ -253,12 +289,30 @@ }; } { + goPackagePath = "go.opencensus.io"; + fetch = { + type = "git"; + url = "https://github.com/census-instrumentation/opencensus-go"; + rev = "d835ff86be02193d324330acdb7d65546b05f814"; + sha256 = "0xj16iq5jp26hi2py7lsd8cvqh651fgn39y05gzvjdi88d9xd3nw"; + }; + } + { goPackagePath = "golang.org/x/crypto"; fetch = { type = "git"; url = "https://go.googlesource.com/crypto"; - rev = "9f005a07e0d31d45e6656d241bb5c0f2efd4bc94"; - sha256 = "1mhmr6ljzl3iafsz4qy8vval7rmr828wh59dlqqqjqx6sqmcs1dv"; + rev = "056763e48d71961566155f089ac0f02f1dda9b5a"; + sha256 = "0dcmns62hwid7hk4bmpl22z6ygjh168p23x3arzy320sd1lvap92"; + }; + } + { + goPackagePath = "golang.org/x/mod"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/mod"; + rev = "859b3ef565e237f9f1a0fb6b55385c497545680d"; + sha256 = "0ldgbx2zpprbsfn6p8pfgs4nn87gwbfcv2z0fa7n8alwsq2yw78q"; }; } { @@ -266,8 +320,8 @@ fetch = { type = "git"; url = "https://go.googlesource.com/net"; - rev = "9dfe39835686865bff950a07b394c12a98ddc811"; - sha256 = "0z8mnl4mi88syafrgqys2ak2gg3yrbna25hpz88y3anl8x4jhg1a"; + rev = "d3edc9973b7eb1fb302b0ff2c62357091cea9a30"; + sha256 = "12zbjwcsh9b0lwycqlkrnbyg5a6a9dzgj8hhgq399bdda5bd97y7"; }; } { @@ -275,8 +329,8 @@ fetch = { type = "git"; url = "https://go.googlesource.com/oauth2"; - rev = "f95fa95eaa936d9d87489b15d1d18b97c1ba9c28"; - sha256 = "0p9kis69wvhv8a2qbcjxvn9ggpdh81cbfjpq5pjga7n8k6d065fh"; + rev = "bf48bf16ab8d622ce64ec6ce98d2c98f916b6303"; + sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg"; }; } { @@ -284,8 +338,8 @@ fetch = { type = "git"; url = "https://go.googlesource.com/sys"; - rev = "82aafbf43bf885069dc71b7e7c2f9d7a614d47da"; - sha256 = "1jvngpvy0q40f7krkgmwf5bbjzhv449297awcr0y78kzn0cyawi2"; + rev = "59c9f1ba88faf592b225274f69c5ef1e4ebacf82"; + sha256 = "014iiqjh9sikbcvacqiwhg6mvrsrr1va91wmc9yrnsm11c63yxfa"; }; } { @@ -293,17 +347,35 @@ fetch = { type = "git"; url = "https://go.googlesource.com/text"; - rev = "88f656faf3f37f690df1a32515b479415e1a6769"; - sha256 = "0zakmgg6dlwnkhignwjajn0dckzqq18zxvnmmg0fq6455x7fs673"; + rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "5d1fdd8fa3469142b9369713b23d8413d6d83189"; + sha256 = "0xp5ggnjnl1gqwi2ks042zimgkfv2qda9a57ar198xpyzdn1bv5s"; + }; + } + { + goPackagePath = "golang.org/x/xerrors"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/xerrors"; + rev = "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca"; + sha256 = "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb"; }; } { goPackagePath = "google.golang.org/api"; fetch = { type = "git"; - url = "https://code.googlesource.com/google-api-go-client"; - rev = "17b5f22a248d6d3913171c1a557552ace0d9c806"; - sha256 = "0gs78qsxfg89kpiiray1x9jiv6bh328jmjkwd3ghnygf3l98kc8c"; + url = "https://github.com/googleapis/google-api-go-client"; + rev = "52f0532eadbcc6f6b82d6f5edf66e610d10bfde6"; + sha256 = "0l7q0mmq0v51wc72bk50nwaz9frl1pqp7gn5jhy1vzxdry930gkc"; }; } { @@ -311,17 +383,17 @@ fetch = { type = "git"; url = "https://github.com/golang/appengine"; - rev = "150dc57a1b433e64154302bdc40b6bb8aefa313a"; - sha256 = "0w3knznv39k8bm85ri62f83czcrxknql7dv6p9hk1a5jx3xljgxq"; + rev = "971852bfffca25b069c31162ae8f247a3dba083b"; + sha256 = "05hbq4cs7bqw0zl17bx8rzdkszid3nyl92100scg3jjrg70dhm7w"; }; } { goPackagePath = "google.golang.org/genproto"; fetch = { type = "git"; - url = "https://github.com/google/go-genproto"; - rev = "891aceb7c239e72692819142dfca057bdcbfcb96"; - sha256 = "1axim84fqzsp6iialk6zl4fsbfpx658vssc6ccakn4yy1xc9h854"; + url = "https://github.com/googleapis/go-genproto"; + rev = "baae70f3302d3efdff74db41e48a5d476d036906"; + sha256 = "1xacik4i5w2bpkrxzrfm00ggy5vygbzh8jmm2yq4mxiv0lnsh9nk"; }; } { @@ -329,8 +401,8 @@ fetch = { type = "git"; url = "https://github.com/grpc/grpc-go"; - rev = "5a9f7b402fe85096d2e1d0383435ee1876e863d0"; - sha256 = "1hlirgvmzb929jpb1dvh930646ih5ffg3b6pmlilqr7ffdkl5z3j"; + rev = "ac54eec90516cee50fc6b9b113b34628a85f976f"; + sha256 = "17zfx4xgqjamk7rc1sivm5gppkh3j4qp3i294w9rqbv0rqi0c9pq"; }; } ] \ No newline at end of file diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix index 1f62834e4d1..c29af7b2fd4 100644 --- a/pkgs/tools/backup/duplicity/default.nix +++ b/pkgs/tools/backup/duplicity/default.nix @@ -19,11 +19,11 @@ let in pythonPackages.buildPythonApplication rec { pname = "duplicity"; - version = "0.8.13"; + version = "0.8.15"; src = fetchurl { url = "https://code.launchpad.net/duplicity/${majorMinor version}-series/${majorMinorPatch version}/+download/duplicity-${version}.tar.gz"; - sha256 = "0lflg1ay4q4w9qzpmh6y2hza4fc3ig12q44qkd80ks17hj21bxa6"; + sha256 = "1kg467mxg5a97v1rlv4shk32krgv8ys4nczq4b11av4bp1lgysdc"; }; patches = [ diff --git a/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch b/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch index a3ba1422915..c02527cf394 100644 --- a/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch +++ b/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch @@ -38,12 +38,12 @@ # """ERROR 2 --- a/testing/functional/test_rdiffdir.py +++ b/testing/functional/test_rdiffdir.py -@@ -38,7 +38,7 @@ class RdiffdirTest(FunctionalTestCase): - - def run_rdiffdir(self, argstring): - u"""Run rdiffdir with given arguments""" -- self.run_cmd(u"../bin/rdiffdir " + argstring) -+ self.run_cmd(u"rdiffdir " + argstring) - - def run_cycle(self, dirname_list): - u"""Run diff/patch cycle on directories in dirname_list""" +@@ -42,7 +42,7 @@ class RdiffdirTest(FunctionalTestCase): + basepython = os.environ.get(u'TOXPYTHON', None) + if basepython is not None: + cmd_list.extend([basepython]) +- cmd_list.extend([u"../bin/rdiffdir"]) ++ cmd_list.extend([u"rdiffdir"]) + cmd_list.extend(argstring.split()) + cmdline = u" ".join([u'"%s"' % x for x in cmd_list]) + self.run_cmd(cmdline) diff --git a/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch b/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch new file mode 100644 index 00000000000..90b60235aad --- /dev/null +++ b/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch @@ -0,0 +1,25 @@ +From e34a16301f425f273a67ed3abbc45840bc82d892 Mon Sep 17 00:00:00 2001 +From: srs5694 <srs5694@users.sourceforge.net> +Date: Fri, 15 May 2020 12:34:14 -0400 +Subject: [PATCH] Fix GCC 10 compile problem + +--- + Make.common | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Make.common b/Make.common +index 3f0b919..95a3a97 100644 +--- a/Make.common ++++ b/Make.common +@@ -60,7 +60,7 @@ endif + # + + # ...for both GNU-EFI and TianoCore.... +-OPTIMFLAGS = -Os -fno-strict-aliasing ++OPTIMFLAGS = -Os -fno-strict-aliasing -fno-tree-loop-distribute-patterns + CFLAGS = $(OPTIMFLAGS) -fno-stack-protector -fshort-wchar -Wall + + # ...for GNU-EFI.... +-- +2.29.2 + diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix index 5c7c68d9d9e..76786c26d81 100644 --- a/pkgs/tools/bootloaders/refind/default.nix +++ b/pkgs/tools/bootloaders/refind/default.nix @@ -24,6 +24,7 @@ stdenv.mkDerivation rec { patches = [ ./0001-toolchain.patch + ./0001-Fix-GCC-10-compile-problem.patch ]; buildInputs = [ gnu-efi ]; diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix index cdc19887333..c9c71a99deb 100644 --- a/pkgs/tools/cd-dvd/brasero/default.nix +++ b/pkgs/tools/cd-dvd/brasero/default.nix @@ -36,7 +36,7 @@ in stdenv.mkDerivation rec { ]; preFixup = '' - gappsWrapperArgs+=(--prefix PATH : "${binpath}" --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH") + gappsWrapperArgs+=(--prefix PATH : "${binpath}") ''; meta = with stdenv.lib; { diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix index c9bad789ad2..3cdfa36337f 100644 --- a/pkgs/tools/misc/agedu/default.nix +++ b/pkgs/tools/misc/agedu/default.nix @@ -1,15 +1,17 @@ {stdenv, fetchgit, autoreconfHook, halibut}: let - date = "20200206"; - rev = "963bc9d"; + date = "20200705"; + rev = "2a7d4a2"; in stdenv.mkDerivation { - name = "agedu-${date}.${rev}"; + pname = "agedu"; + version = "${date}.${rev}"; + # upstream provides tarballs but it seems they disappear after the next version is released src = fetchgit { url = "https://git.tartarus.org/simon/agedu.git"; inherit rev; - sha256 = "1jmvgg2v6aqgbgpxbndrdhgfhlglrq4yv4sdbjaj6bsz9fb8lqhc"; + sha256 = "gRNscl/vhBoZaHFCs9JjDBHDRoEpILJLtiI4YV+K/b4="; }; nativeBuildInputs = [autoreconfHook halibut]; diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix index fb8e2508294..4e40a4a336d 100644 --- a/pkgs/tools/misc/broot/default.nix +++ b/pkgs/tools/misc/broot/default.nix @@ -11,14 +11,14 @@ rustPlatform.buildRustPackage rec { pname = "broot"; - version = "1.0.8"; + version = "1.1.10"; src = fetchCrate { inherit pname version; - sha256 = "06881c8qnh917y2mn5q5qlf86idz17xi2dapsad3m1zbdr53c25j"; + sha256 = "04nidx43w4nnccgbrw30wg9ai8p7hbklxpn1gc6gr2325yhqvwhl"; }; - cargoSha256 = "1k5qm4h028172r7i2pz5l8886qviy7ni83qxn10a8d5hsgalarvx"; + cargoSha256 = "1bzq0dsdnmxniwnb6989wlhih28c4lyd11sci821whs11lhlfpz0"; nativeBuildInputs = [ makeWrapper diff --git a/pkgs/tools/misc/html-proofer/Gemfile.lock b/pkgs/tools/misc/html-proofer/Gemfile.lock index 13c630718b1..ce75c4e7fd8 100644 --- a/pkgs/tools/misc/html-proofer/Gemfile.lock +++ b/pkgs/tools/misc/html-proofer/Gemfile.lock @@ -5,8 +5,8 @@ GEM public_suffix (>= 2.0.2, < 5.0) ethon (0.12.0) ffi (>= 1.3.0) - ffi (1.13.1) - html-proofer (3.18.2) + ffi (1.14.2) + html-proofer (3.18.3) addressable (~> 2.3) mercenary (~> 0.3) nokogumbo (~> 2.0) diff --git a/pkgs/tools/misc/html-proofer/gemset.nix b/pkgs/tools/misc/html-proofer/gemset.nix index 49f7726fc8b..da26cc347fe 100644 --- a/pkgs/tools/misc/html-proofer/gemset.nix +++ b/pkgs/tools/misc/html-proofer/gemset.nix @@ -26,10 +26,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af"; + sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx"; type = "gem"; }; - version = "1.13.1"; + version = "1.14.2"; }; html-proofer = { dependencies = ["addressable" "mercenary" "nokogumbo" "parallel" "rainbow" "typhoeus" "yell"]; @@ -37,10 +37,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06vbbm8qdmw4955522zh9wqn2214ajsf70y0vymxgl7dlwjd2pz0"; + sha256 = "0l0nkk0px6bc4g3xwc1c5fyi0c3n8sgl1zy94vqdzllfmkjvfggc"; type = "gem"; }; - version = "3.18.2"; + version = "3.18.3"; }; mercenary = { groups = ["default"]; diff --git a/pkgs/tools/misc/kcollectd/default.nix b/pkgs/tools/misc/kcollectd/default.nix new file mode 100644 index 00000000000..ffc64b1455a --- /dev/null +++ b/pkgs/tools/misc/kcollectd/default.nix @@ -0,0 +1,56 @@ +{ lib +, fetchFromGitLab +, mkDerivation +, qtbase +, cmake +, kconfig +, kio +, kiconthemes +, kxmlgui +, ki18n +, kguiaddons +, extra-cmake-modules +, boost +, shared-mime-info +, rrdtool +, breeze-icons +}: + +mkDerivation rec { + pname = "kcollectd"; + version = "0.11.99.0"; + src = fetchFromGitLab { + owner = "aerusso"; + repo = pname; + rev = "v${version}"; + sha256 = "0h4ymvzihzbmyv3z0bp28g94wxc6c7lgi3my0xbka3advxr811gn"; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + shared-mime-info + ]; + + buildInputs = [ + qtbase + kconfig + kio + kxmlgui + kiconthemes + ki18n + kguiaddons + boost + rrdtool + # otherwise some buttons are blank + breeze-icons + ]; + + meta = with lib; { + description = "A graphical frontend to collectd"; + homepage = "https://www.antonioerusso.com/projects/kcollectd/"; + maintainers = [ maintainers.symphorien ]; + license = [ lib.licenses.gpl3Plus ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/tools/misc/woof/default.nix b/pkgs/tools/misc/woof/default.nix index e89ef8dab0e..158a83a99ca 100644 --- a/pkgs/tools/misc/woof/default.nix +++ b/pkgs/tools/misc/woof/default.nix @@ -1,24 +1,25 @@ -{ stdenv, fetchurl, python }: +{ stdenv, fetchFromGitHub, python3 }: stdenv.mkDerivation rec { - version = "2012-05-31"; + version = "2020-12-17"; pname = "woof"; - src = fetchurl { - url = "http://www.home.unix-ag.org/simon/woof-${version}.py"; - sha256 = "d84353d07f768321a1921a67193510bf292cf0213295e8c7689176f32e945572"; + src = fetchFromGitHub { + owner = "simon-budig"; + repo = "woof"; + rev = "4aab9bca5b80379522ab0bdc5a07e4d652c375c5"; + sha256 = "0ypd2fs8isv6bqmlrdl2djgs5lnk91y1c3rn4ar6sfkpsqp9krjn"; }; - buildInputs = [ python ]; + propagatedBuildInputs = [ python3 ]; dontUnpack = true; - installPhase = - '' - mkdir -p $out/bin - cp $src $out/bin/woof - chmod +x $out/bin/woof - ''; + installPhase = '' + mkdir -p $out/bin + cp $src/woof $out/bin/woof + chmod +x $out/bin/woof + ''; meta = with stdenv.lib; { homepage = "http://www.home.unix-ag.org/simon/woof.html"; diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix index 5222f731efb..4a6eca89624 100644 --- a/pkgs/tools/networking/dhcp/default.nix +++ b/pkgs/tools/networking/dhcp/default.nix @@ -44,6 +44,7 @@ stdenv.mkDerivation rec { "-Wno-error=format-truncation" "-Wno-error=stringop-truncation" "-Wno-error=format-overflow" + "-Wno-error=stringop-overflow=8" ]; installFlags = [ "DESTDIR=\${out}" ]; @@ -67,7 +68,7 @@ stdenv.mkDerivation rec { '' substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file" sed -i "includes/dhcpd.h" \ - -"es|^ *#define \+_PATH_DHCLIENT_SCRIPT.*$|#define _PATH_DHCLIENT_SCRIPT \"$out/sbin/dhclient-script\"|g" + -e "s|^ *#define \+_PATH_DHCLIENT_SCRIPT.*$|#define _PATH_DHCLIENT_SCRIPT \"$out/sbin/dhclient-script\"|g" export AR='${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar' ''; diff --git a/pkgs/tools/networking/fdm/default.nix b/pkgs/tools/networking/fdm/default.nix index fb125b486d7..cb5a781f5ef 100644 --- a/pkgs/tools/networking/fdm/default.nix +++ b/pkgs/tools/networking/fdm/default.nix @@ -1,20 +1,14 @@ { stdenv, fetchFromGitHub, autoreconfHook, openssl, tdb, zlib, flex, bison }: -let - - baseName = "fdm"; - version = "1.9.0.20170124"; - -in - -stdenv.mkDerivation { - name = "${baseName}-${version}"; +stdenv.mkDerivation rec { + pname = "fdm"; + version = "2.0"; src = fetchFromGitHub { owner = "nicm"; - repo = baseName; - rev = "cae4ea37b6b296d1b2e48f62934ea3a7f6085e33"; - sha256 = "048191wdv1yprwinipmx2152gvd2iq1ssv7xfb1bzh6zirh1ya3n"; + repo = pname; + rev = version; + sha256 = "0j2n271ni5wslgjq1f4zgz1nsvqjf895dxy3ij5c904bbp8ckcwq"; }; nativeBuildInputs = [ autoreconfHook ]; @@ -23,7 +17,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Mail fetching and delivery tool - should do the job of getmail and procmail"; - maintainers = with maintainers; [ raskin ]; + maintainers = with maintainers; [ ninjin raskin ]; platforms = with platforms; linux; homepage = "https://github.com/nicm/fdm"; downloadPage = "https://github.com/nicm/fdm/releases"; diff --git a/pkgs/tools/networking/saldl/default.nix b/pkgs/tools/networking/saldl/default.nix index d51e5515bd6..9c2b4915bf1 100644 --- a/pkgs/tools/networking/saldl/default.nix +++ b/pkgs/tools/networking/saldl/default.nix @@ -2,6 +2,7 @@ , fetchFromGitHub , pkgconfig , wafHook +, python3 , asciidoc , docbook_xml_dtd_45 , docbook_xsl @@ -25,6 +26,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig wafHook + python3 asciidoc docbook_xml_dtd_45 docbook_xsl diff --git a/pkgs/tools/package-management/librepo/default.nix b/pkgs/tools/package-management/librepo/default.nix index f636560844b..203d5e20f88 100644 --- a/pkgs/tools/package-management/librepo/default.nix +++ b/pkgs/tools/package-management/librepo/default.nix @@ -38,9 +38,8 @@ stdenv.mkDerivation rec { curl check gpgme - ] - # zchunk currently has issues compiling in darwin, fine in linux - ++ stdenv.lib.optional stdenv.isLinux zchunk; + zchunk + ]; # librepo/fastestmirror.h includes curl/curl.h, and pkg-config specfile refers to others in here propagatedBuildInputs = [ @@ -49,9 +48,7 @@ stdenv.mkDerivation rec { libxml2 ]; - cmakeFlags = [ - "-DPYTHON_DESIRED=${stdenv.lib.substring 0 1 python.pythonVersion}" - ] ++ stdenv.lib.optional stdenv.isDarwin "-DWITH_ZCHUNK=OFF"; + cmakeFlags = [ "-DPYTHON_DESIRED=${stdenv.lib.substring 0 1 python.pythonVersion}" ]; postFixup = '' moveToOutput "lib/${python.libPrefix}" "$py" diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index bfc67ccac63..e30b712c5fa 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchurl, fetchFromGitHub, callPackage +{ lib, fetchurl, fetchpatch, fetchFromGitHub, callPackage , storeDir ? "/nix/store" , stateDir ? "/nix/var" , confDir ? "/etc" @@ -23,13 +23,13 @@ common = , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp , withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp , enableStatic ? false - , name, suffix ? "", src + , name, suffix ? "", src, patches ? [] }: let sh = busybox-sandbox-shell; nix = stdenv.mkDerivation rec { - inherit name src; + inherit name src patches; version = lib.getVersion name; is24 = lib.versionAtLeast version "2.4pre"; @@ -208,6 +208,13 @@ in rec { sha256 = "0qhd3nxvqzszzsfvh89xhd239ycqb0kq2n0bzh9br78pcb60vj3g"; }; + patches = [ + (fetchpatch { # Fix build on gcc10 + url = "https://github.com/NixOS/nix/commit/d4870462f8f539adeaa6dca476aff6f1f31e1981.patch"; + sha256 = "mTvLvuxb2QVybRDgntKMq+b6da/s3YgM/ll2rWBeY/Y="; + }) + ]; + inherit storeDir stateDir confDir boehmgc; }); diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix index 02bc599f47d..e4e60442c8f 100644 --- a/pkgs/tools/package-management/protontricks/default.nix +++ b/pkgs/tools/package-management/protontricks/default.nix @@ -1,31 +1,29 @@ -{ stdenv -, lib +{ lib , buildPythonApplication , fetchFromGitHub , setuptools_scm , vdf -, wine +, steam-run , winetricks , zenity -, pytest +, pytestCheckHook }: buildPythonApplication rec { pname = "protontricks"; - version = "1.4.2"; + version = "1.4.3"; src = fetchFromGitHub { owner = "Matoking"; repo = pname; rev = version; - sha256 = "0ri4phi1rna9snrxa6gl23walyack09mgax7zpjqfpxivwls3ach"; + sha256 = "0a5727igwafwvj8rr5lv0lx8rlfji3qkzmrbp0d15w5dc4fhknp0"; }; - # Fix interpreter in mock run.sh for tests - postPatch = '' - substituteInPlace tests/conftest.py \ - --replace '#!/bin/bash' '#!${stdenv.shell}' \ - ''; + patches = [ + # Use steam-run to run Proton binaries + ./steam-run.patch + ]; preBuild = '' export SETUPTOOLS_SCM_PRETEND_VERSION="${version}" @@ -34,22 +32,30 @@ buildPythonApplication rec { nativeBuildInputs = [ setuptools_scm ]; propagatedBuildInputs = [ vdf ]; - # The wine install shipped with Proton must run under steam's - # chrootenv, but winetricks and zenity break when running under - # it. See https://github.com/NixOS/nix/issues/902. - # - # The current workaround is to use wine from nixpkgs makeWrapperArgs = [ - "--set STEAM_RUNTIME 0" - "--set-default WINE ${wine}/bin/wine" - "--set-default WINESERVER ${wine}/bin/wineserver" - "--prefix PATH : ${lib.makeBinPath [ winetricks zenity ]}" + "--prefix PATH : ${lib.makeBinPath [ + steam-run + (winetricks.override { + # Remove default build of wine to reduce closure size. + # Falls back to wine in PATH when --no-runtime is passed. + wine = null; + }) + zenity + ]}" ]; - checkInputs = [ pytest ]; - checkPhase = "pytest"; + checkInputs = [ pytestCheckHook ]; + disabledTests = [ + # Steam runtime is hard-coded with steam-run.patch and can't be configured + "test_run_steam_runtime_not_found" + "test_unknown_steam_runtime_detected" + + # Steam runtime 2 currently isn't supported + # See https://github.com/NixOS/nixpkgs/issues/100655 + "test_run_winetricks_steam_runtime_v2" + ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A simple wrapper for running Winetricks commands for Proton-enabled games"; homepage = "https://github.com/Matoking/protontricks"; license = licenses.gpl3; diff --git a/pkgs/tools/package-management/protontricks/steam-run.patch b/pkgs/tools/package-management/protontricks/steam-run.patch new file mode 100644 index 00000000000..536072cafc4 --- /dev/null +++ b/pkgs/tools/package-management/protontricks/steam-run.patch @@ -0,0 +1,254 @@ +diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py +index 6506dae..2f762c9 100755 +--- a/src/protontricks/cli.py ++++ b/src/protontricks/cli.py +@@ -14,7 +14,7 @@ import os + import logging + + from . import __version__ +-from .steam import (find_proton_app, find_steam_path, find_steam_runtime_path, ++from .steam import (find_proton_app, find_steam_path, + get_steam_apps, get_steam_lib_paths) + from .winetricks import get_winetricks_path + from .gui import select_steam_app_with_gui +@@ -75,8 +75,7 @@ def main(args=None): + "WINE: path to a custom 'wine' executable\n" + "WINESERVER: path to a custom 'wineserver' executable\n" + "STEAM_RUNTIME: 1 = enable Steam Runtime, 0 = disable Steam " +- "Runtime, valid path = custom Steam Runtime path, " +- "empty = enable automatically (default)" ++ "Runtime, empty = enable automatically (default)" + ), + formatter_class=argparse.RawTextHelpFormatter + ) +@@ -133,14 +132,10 @@ def main(args=None): + sys.exit(-1) + + # 2. Find Steam Runtime if enabled +- steam_runtime_path = None ++ steam_runtime = False + + if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime: +- steam_runtime_path = find_steam_runtime_path(steam_root=steam_root) +- +- if not steam_runtime_path: +- print("Steam Runtime was enabled but couldn't be found!") +- sys.exit(-1) ++ steam_runtime = True + else: + logger.info("Steam Runtime disabled.") + +@@ -194,7 +189,7 @@ def main(args=None): + winetricks_path=winetricks_path, + proton_app=proton_app, + steam_app=steam_app, +- steam_runtime_path=steam_runtime_path, ++ steam_runtime=steam_runtime, + command=[winetricks_path, "--gui"] + ) + return +@@ -261,7 +256,7 @@ def main(args=None): + winetricks_path=winetricks_path, + proton_app=proton_app, + steam_app=steam_app, +- steam_runtime_path=steam_runtime_path, ++ steam_runtime=steam_runtime, + command=[winetricks_path] + args.winetricks_command) + elif args.command: + run_command( +@@ -269,7 +264,7 @@ def main(args=None): + proton_app=proton_app, + steam_app=steam_app, + command=args.command, +- steam_runtime_path=steam_runtime_path, ++ steam_runtime=steam_runtime, + # Pass the command directly into the shell *without* + # escaping it + cwd=steam_app.install_path, +diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py +index 215b31d..aa545b8 100644 +--- a/src/protontricks/steam.py ++++ b/src/protontricks/steam.py +@@ -11,7 +11,7 @@ from .util import lower_dict + + __all__ = ( + "COMMON_STEAM_DIRS", "SteamApp", "find_steam_path", +- "find_steam_proton_app", "find_proton_app", "find_steam_runtime_path", ++ "find_steam_proton_app", "find_proton_app", + "find_appid_proton_prefix", "get_steam_lib_paths", "get_steam_apps", + "get_custom_proton_installations" + ) +@@ -245,37 +245,6 @@ def find_steam_path(): + return None, None + + +-def find_steam_runtime_path(steam_root): +- """ +- Find the Steam Runtime either using the STEAM_RUNTIME env or +- steam_root +- """ +- env_steam_runtime = os.environ.get("STEAM_RUNTIME", "") +- +- if env_steam_runtime == "0": +- # User has disabled Steam Runtime +- logger.info("STEAM_RUNTIME is 0. Disabling Steam Runtime.") +- return None +- elif env_steam_runtime and Path(env_steam_runtime).is_dir(): +- # User has a custom Steam Runtime +- logger.info( +- "Using custom Steam Runtime at %s", env_steam_runtime) +- return Path(env_steam_runtime) +- elif env_steam_runtime in ["1", ""]: +- # User has enabled Steam Runtime or doesn't have STEAM_RUNTIME set; +- # default to enabled Steam Runtime in either case +- steam_runtime_path = steam_root / "ubuntu12_32" / "steam-runtime" +- +- logger.info( +- "Using default Steam Runtime at %s", str(steam_runtime_path)) +- return steam_runtime_path +- +- logger.error( +- "Path in STEAM_RUNTIME doesn't point to a valid Steam Runtime!") +- +- return None +- +- + APPINFO_STRUCT_HEADER = "<4sL" + APPINFO_STRUCT_SECTION = "<LLLLQ20sL" + +diff --git a/src/protontricks/util.py b/src/protontricks/util.py +index a850427..390fc01 100644 +--- a/src/protontricks/util.py ++++ b/src/protontricks/util.py +@@ -6,7 +6,7 @@ import stat + from pathlib import Path + from subprocess import check_output, run, PIPE + +-__all__ = ("get_runtime_library_paths", "create_wine_bin_dir", "run_command") ++__all__ = ("create_wine_bin_dir", "run_command") + + logger = logging.getLogger("protontricks") + +@@ -25,70 +25,10 @@ def lower_dict(d): + return {k.lower(): v for k, v in d.items()} + + +-def get_host_library_paths(): +- """ +- Get host library paths to use when creating the LD_LIBRARY_PATH environment +- variable for use with newer Steam Runtime installations +- """ +- # The traditional Steam Runtime does the following when running the +- # `run.sh --print-steam-runtime-library-paths` command. +- # Since that command is unavailable with newer Steam Runtime releases, +- # do it ourselves here. +- result = run( +- ["/sbin/ldconfig", "-XNv"], +- check=True, stdout=PIPE, stderr=PIPE +- ) +- lines = result.stdout.decode("utf-8").split("\n") +- paths = [ +- line.split(":")[0] for line in lines +- if line.startswith("/") and ":" in line +- ] +- +- return ":".join(paths) +- +- +-def get_runtime_library_paths(steam_runtime_path, proton_app): +- """ +- Get LD_LIBRARY_PATH value to run a command using Steam Runtime +- """ +- if proton_app.required_tool_app: +- # bwrap based Steam Runtime is used for Proton installations that +- # use separate Steam runtimes +- # TODO: Try to run the Wine binaries inside an user namespace somehow. +- # Newer Steam Runtime environments may rely on a newer glibc than what +- # is available on the host system, which may cause potential problems +- # otherwise. +- runtime_root = next( +- proton_app.required_tool_app.install_path.glob("*/files/") +- ) +- return "".join([ +- str(proton_app.install_path / "dist" / "lib"), os.pathsep, +- str(proton_app.install_path / "dist" / "lib64"), os.pathsep, +- get_host_library_paths(), os.pathsep, +- str(runtime_root / "i686-pc-linux-gnu" / "lib"), os.pathsep, +- str(runtime_root / "x86_64-pc-linux-gnu" / "lib") +- ]) +- +- # Traditional LD_LIBRARY_PATH based Steam Runtime is used otherwise +- steam_runtime_paths = check_output([ +- str(steam_runtime_path / "run.sh"), +- "--print-steam-runtime-library-paths" +- ]) +- steam_runtime_paths = str(steam_runtime_paths, "utf-8") +- # Add Proton installation directory first into LD_LIBRARY_PATH +- # so that libwine.so.1 is picked up correctly (see issue #3) +- return "".join([ +- str(proton_app.install_path / "dist" / "lib"), os.pathsep, +- str(proton_app.install_path / "dist" / "lib64"), os.pathsep, +- steam_runtime_paths +- ]) +- +- + WINE_SCRIPT_TEMPLATE = ( +- "#!/bin/bash\n" ++ "#!/bin/sh\n" + "# Helper script created by Protontricks to run Wine binaries using Steam Runtime\n" +- "export LD_LIBRARY_PATH=\"$PROTON_LD_LIBRARY_PATH\"\n" +- "exec \"$PROTON_PATH\"/dist/bin/{name} \"$@\"" ++ "exec steam-run \"$PROTON_PATH\"/dist/bin/{name} \"$@\"" + ) + + +@@ -149,7 +89,7 @@ def create_wine_bin_dir(proton_app): + + def run_command( + winetricks_path, proton_app, steam_app, command, +- steam_runtime_path=None, ++ steam_runtime=False, + **kwargs): + """Run an arbitrary command with the correct environment variables + for the given Proton app +@@ -157,7 +97,7 @@ def run_command( + The environment variables are set for the duration of the call + and restored afterwards + +- If 'steam_runtime_path' is provided, run the command using Steam Runtime ++ If 'steam_runtime' is provided, run the command using Steam Runtime + """ + # Make a copy of the environment variables to restore later + environ_copy = os.environ.copy() +@@ -200,7 +140,7 @@ def run_command( + os.environ.pop("WINEARCH", "") + + wine_bin_dir = None +- if steam_runtime_path: ++ if steam_runtime: + if proton_app.required_tool_app: + runtime_name = proton_app.required_tool_app.name + logger.info( +@@ -217,8 +157,6 @@ def run_command( + # that load the underlying Proton Wine executables with Steam Runtime + # and Proton libraries instead of system libraries + wine_bin_dir = create_wine_bin_dir(proton_app=proton_app) +- os.environ["PROTON_LD_LIBRARY_PATH"] = \ +- get_runtime_library_paths(steam_runtime_path, proton_app) + os.environ["PATH"] = "".join([ + str(wine_bin_dir), os.pathsep, os.environ["PATH"] + ]) +diff --git a/tests/test_cli.py b/tests/test_cli.py +index 19e1137..2ef56d6 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -114,9 +114,6 @@ class TestCLIRun: + assert str(command.args[0]).endswith(".local/bin/winetricks") + assert command.args[1] == "winecfg" + assert command.env["PATH"].startswith(str(wine_bin_dir)) +- assert ( +- "fake_steam_runtime/lib64" in command.env["PROTON_LD_LIBRARY_PATH"] +- ) + assert command.env["WINE"] == str(wine_bin_dir / "wine") + assert command.env["WINELOADER"] == str(wine_bin_dir / "wine") + assert command.env["WINESERVER"] == str(wine_bin_dir / "wineserver") diff --git a/pkgs/tools/security/enpass/data.json b/pkgs/tools/security/enpass/data.json index a4a3b919e64..7a52e260eb9 100644 --- a/pkgs/tools/security/enpass/data.json +++ b/pkgs/tools/security/enpass/data.json @@ -1,12 +1,12 @@ { "amd64": { - "path": "pool/main/e/enpass/enpass_6.0.1.239_amd64.deb", - "sha256": "408a2bb318564307607f13b52fec7667f425c01ac40cbe345ebfa191ab1479ba", - "version": "6.0.1.239" - }, + "path": "pool/main/e/enpass/enpass_6.5.1.723_amd64.deb", + "sha256": "d9bb408fa2253ce44ab5396898f7db13291ce23ae58964f4a27ade38bd5067bf", + "version": "6.5.1.723" + }, "i386": { "path": "pool/main/e/enpass/enpass_5.6.9_i386.deb", "sha256": "3f699ac3e2ecfd4afee1505d8d364d4f6b6b94c55ba989d0a80bd678ff66cb2c", "version": "5.6.9" } -} \ No newline at end of file +} diff --git a/pkgs/tools/security/enpass/default.nix b/pkgs/tools/security/enpass/default.nix index 370282d02d0..be2e5b06246 100644 --- a/pkgs/tools/security/enpass/default.nix +++ b/pkgs/tools/security/enpass/default.nix @@ -2,7 +2,7 @@ , glib, libGLU, libGL, libpulseaudio, zlib, dbus, fontconfig, freetype , gtk3, pango , makeWrapper , python2Packages, lib -, lsof, curl, libuuid, cups, mesa +, lsof, curl, libuuid, cups, mesa, lzma, libxkbcommon }: let @@ -38,6 +38,8 @@ let curl libuuid cups + lzma + libxkbcommon ]); package = stdenv.mkDerivation { @@ -49,11 +51,12 @@ let url = "${baseUrl}/${data.path}"; }; - meta = { - description = "a well known password manager"; + meta = with stdenv.lib; { + description = "A well known password manager"; homepage = "https://www.enpass.io/"; - license = lib.licenses.unfree; + license = licenses.unfree; platforms = [ "x86_64-linux" "i686-linux"]; + maintainers = with maintainers; [ ewok ]; }; buildInputs = [makeWrapper dpkg]; diff --git a/pkgs/tools/typesetting/tectonic/default.nix b/pkgs/tools/typesetting/tectonic/default.nix index fc4a971f230..d37a4a69570 100644 --- a/pkgs/tools/typesetting/tectonic/default.nix +++ b/pkgs/tools/typesetting/tectonic/default.nix @@ -3,16 +3,16 @@ rustPlatform.buildRustPackage rec { pname = "tectonic"; - version = "0.3.3"; + version = "0.4.0"; src = fetchFromGitHub { owner = "tectonic-typesetting"; repo = "tectonic"; rev = "tectonic@${version}"; - sha256 = "1ncczcchyphprkrb8spya400gi212a6akx18fm3j4xdhmg9caj3f"; + sha256 = "1p93428ln3sfsflc7spjpfcgy81c4z5y0xhwv5mkgzf55g8nrin1"; }; - cargoSha256 = "11xvq0l9xrppcplkshd5wxv90s97x4iavhzbdk9px992zl0m6ar6"; + cargoSha256 = "0jzngl1iwrq20cx3l0mwdrrddvyw977rwb75nz1k4hkxjnicc1ga"; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix index 4c37054f4a0..bd63481054c 100644 --- a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix +++ b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix @@ -2,18 +2,18 @@ stdenv.mkDerivation rec { pname = "amazon-ecs-cli"; - version = "1.20.0"; + version = "1.21.0"; src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-v${version}"; - sha256 = "11cw2hk48x66wlsg5bzay95l2pgncwnawzj4xmqmbchhhvphrvxr"; + sha256 = "sEHwhirU2EYwtBRegiIvN4yr7VKtmy7e6xx5gZOkuY0="; } else if stdenv.hostPlatform.system == "x86_64-darwin" then fetchurl { url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-darwin-amd64-v${version}"; - sha256 = "1f4yq04sgwkj2p0j598a8vc54dzihmqvg9daa6mxnqj403ln0rg1"; + sha256 = "1viala49sifpcmgn3jw24h5bkrlm4ffadjiqagbxj3lr0r78i9nm"; } else throw "Architecture not supported"; |