···99, hunspell, libevent, libstartup_notification
1010, libvpx_1_8
1111, icu67, libpng, jemalloc, glib, pciutils
1212-, autoconf213, which, gnused, rustPackages, rustPackages_1_45
1212+, autoconf213, which, gnused, rustPackages
1313, rust-cbindgen, nodejs, nasm, fetchpatch
1414, gnum4
1515, debugBuild ? false
···9090 then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS"
9191 else "/bin";
92929393- # 78 ESR won't build with rustc 1.47
9494- inherit (if lib.versionAtLeast ffversion "82" then rustPackages else rustPackages_1_45)
9595- rustc cargo;
9393+ inherit (rustPackages) rustc cargo;
96949795 # Darwin's stdenv provides the default llvmPackages version, match that since
9896 # clang LTO on Darwin is broken so the stdenv is not being changed.
9999- # Target the LLVM version that rustc -Vv reports it is built with for LTO.
100100- # rustPackages_1_45 -> LLVM 10, rustPackages -> LLVM 11
10197 llvmPackages = if stdenv.isDarwin
10298 then buildPackages.llvmPackages
103103- else if lib.versionAtLeast rustc.llvm.version "11"
104104- then buildPackages.llvmPackages_11
105105- else buildPackages.llvmPackages_10;
9999+ else buildPackages.llvmPackages_11;
106100107101 # When LTO for Darwin is fixed, the following will need updating as lld
108102 # doesn't work on it. For now it is fine since ltoSupport implies no Darwin.
···11+{ rustPlatform
22+, fetchFromGitHub
33+, lib
44+, stdenv
55+, pkg-config
66+, postgresql
77+, sqlite
88+, openssl
99+, Security
1010+, libiconv
1111+}:
1212+1313+rustPlatform.buildRustPackage rec {
1414+ pname = "movine";
1515+ version = "0.11.0";
1616+1717+ src = fetchFromGitHub {
1818+ owner = "byronwasti";
1919+ repo = pname;
2020+ rev = "v${version}";
2121+ sha256 = "0rms8np8zd23xzrd5avhp2q1ndhdc8f49lfwpff9h0slw4rnzfnj";
2222+ };
2323+2424+ cargoSha256 = "sha256-4ghfenwmauR4Ft9n7dvBflwIMXPdFq1vh6FpIegHnZk=";
2525+2626+ nativeBuildInputs = [ pkg-config ];
2727+ buildInputs = [ postgresql sqlite ] ++ (
2828+ if !stdenv.isDarwin then [ openssl ] else [ Security libiconv ]
2929+ );
3030+3131+ meta = with lib; {
3232+ description = "A migration manager written in Rust, that attempts to be smart yet minimal";
3333+ homepage = "https://github.com/byronwasti/movine";
3434+ license = licenses.mit;
3535+ longDescription = ''
3636+ Movine is a simple database migration manager that aims to be compatible
3737+ with real-world migration work. Many migration managers get confused
3838+ with complicated development strategies for migrations. Oftentimes
3939+ migration managers do not warn you if the SQL saved in git differs from
4040+ what was actually run on the database. Movine solves this issue by
4141+ keeping track of the unique hashes for the <literal>up.sql</literal> and
4242+ <literal>down.sql</literal> for each migration, and provides tools for
4343+ fixing issues. This allows users to easily keep track of whether their
4444+ local migration history matches the one on the database.
4545+4646+ This project is currently in early stages.
4747+4848+ Movine does not aim to be an ORM.
4949+ Consider <link xling:href="https://diesel.rs/">diesel</link> instead if
5050+ you want an ORM.
5151+ '';
5252+ maintainers = with maintainers; [ netcrns ];
5353+ };
5454+}