diff --git a/pkgs/tools/misc/popsicle/default.nix b/pkgs/tools/misc/popsicle/default.nix new file mode 100644 index 000000000000..e9369270fcd0 --- /dev/null +++ b/pkgs/tools/misc/popsicle/default.nix @@ -0,0 +1,73 @@ +{ stdenv +, fetchFromGitHub +, rustc +, cargo +, rustPlatform +, pkg-config +, dbus +, glib +, cairo +, pango +, atk +, lib +, gdk-pixbuf +, gtk3 +}: + +rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec { + pname = "popsicle"; + version = "unstable-2021-12-20"; + + src = fetchFromGitHub { + owner = "pop-os"; + repo = pname; + rev = "b02ebf5f2e6c18777453ca9a144d69689a6fa901"; + sha256 = "03ilhvnr4mwy7b8bipp616h16m2ilxzxz2zjpkzy3afwvh9bz1mx"; + }; + + cargoSha256 = "1c54wxyrfxk5chnjhxw6vaznm7ff9dkx1rxlgp417jfygiwijjs4"; + + nativeBuildInputs = [ gtk3 pkg-config ]; + + buildInputs = [ + gtk3 + dbus + glib + cairo + pango + atk + gdk-pixbuf + ]; + + # Use the stdenv default phases (./configure; make) instead of the + # ones from buildRustPackage. + configurePhase = "configurePhase"; + buildPhase = "buildPhase"; + checkPhase = "checkPhase"; + installPhase = "installPhase"; + + postPatch = '' + # Have to do this here instead of in preConfigure because + # cargoDepsCopy gets unset after postPatch. + configureFlagsArray+=("RUST_VENDORED_SOURCES=$NIX_BUILD_TOP/$cargoDepsCopy") + ''; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "DESTDIR=${placeholder "out"}" + ]; + + postInstall = '' + # install man page, icon, etc... + mv $out/usr/local/* $out + rm -rf $out/usr + ''; + + meta = with lib; { + description = "Multiple USB File Flasher"; + homepage = "https://github.com/pop-os/popsicle"; + maintainers = with maintainers; [ _13r0ck ]; + license = licenses.mit; + platforms = [ "aarch64-linux" "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8125d0ad73d0..e11a20f894ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1142,6 +1142,8 @@ with pkgs; pikchr = callPackage ../tools/graphics/pikchr { }; + popsicle = callPackage ../tools/misc/popsicle { }; + roxterm = callPackage ../applications/terminal-emulators/roxterm { }; rxvt = callPackage ../applications/terminal-emulators/rxvt { };